12 Subscriber Mobile Number Portability status retrieval
23.0783GPPCustomised Applications for Mobile network Enhanced Logic (CAMEL) Phase 4Release 17Stage 2TS
Support of the procedures described in this clause in CAMEL Phase 4 is a network operator option.
12.1 Architecture
12.1.1 Functional Entities used for CAMEL
This clause describes procedures for the retrieval of subscriber Mobile Number Portability (MNP) information.
The gsmSCF may request subscriber MNP information of a mobile station from the MNP Signalling Relay Function (MNP SRF).
Figure 12.1 indicates the functional entities involved in the procedures for the retrieval of MNP information.
Figure 12.1: Functional architecture for CAMEL Support of providing MNP information
gsmSCF: see subclause 3.1.
MNP SRF: A functional entity that supports the mobile number portability of a mobile station, which is described in 3GPP TS 23.066 [17].
Recipient Network: Network that receives the number in the porting process. This network becomes the subscription network when the porting process is complete. See 3GPP TS 23.066 [17].
Number Range Holder Network: Network to which the number range containing the ported number has been allocated. See 3GPP TS 23.066 [17].
12.1.2 Interfaces defined for CAMEL
This subclause describes the interfaces applicable to CAMEL. It specifies on a high level the functions specific to CAMEL.
12.1.2.1 gsmSCF – MNP SRF interface
This interface is used by the gsmSCF to request MNP information from the MNP SRF at any time.
12.1.2.2 MNP SRF – gsmSCF interface
This interface is used by the MNP SRF to return the requested MNP information to the gsmSCF, as requested by the gsmSCF via the Any Time Interrogation procedure.
12.2 Procedures for CAMEL
12.2.1 Provide MNP Information
12.2.1.1 CAMEL_Provide_MNP_Info with ATI
The process for providing MNP information with Any Time Interrogation (ATI) is the following:
– CAMEL_ATI_MNP.
Sheet 1: Details of the task box "Query Number Portability Database" may be obtained from 3GPP TS 23.066 [17]. The task box returns an indication whether the MSISDN is known or not.
Figure 12.2-1: Process CAMEL_ATI_MNP (sheet 1)
12.3 Description of information flows
This subclause contains the detailed description of the information flows used by CAMEL for the retrieval of MNP information about a subscriber.
Each Information Element (IE) is marked as Mandatory (M), Conditional (C), Specific conditions (S), mutually Exclusive (E) or not applicable (-).
An ‘M’ IE shall always be included. A ‘C’ IE shall be included if the sending entity has the necessary information to populate the IE. The conditions for the inclusion of an ‘S’ IE are shown in the ‘Description’ column of the definition table. When a set of ‘E’ IEs is shown in the definition of an Information Flow or compound IE, only one of those IEs may be included. A ‘-‘ IE shall always be omitted. This categorization is a functional classification, i.e. it defines the requirements for the stage 2 information. It is not a stage 3 classification to be used for the ASN.1 syntax of the protocol.
The following principles apply for the handling of the IEs by the receiving entity:
– The gsmSCF may silently discard any IE which it does not functionally support.
– The MNP SRF shall return an error if it does not functionally support an IE which it receives.
Details of errors and exceptions to these rules are specified in 3GPP TS 29.002 [34].
12.3.1 gsmSCF to MNP SRF information flows
12.3.1.1 Any Time Interrogation Request
12.3.1.1.1 Description
This IF is used by the gsmSCF to request the MNP information for subscribers from the MNP SRF at any time.
12.3.1.1.2 Information Elements
Information element name |
Status |
Description |
---|---|---|
gsmSCF Address |
M |
This IE indicates the address of the interrogating gsmSCF. The gsmSCF Address shall be in international E.164 format. |
Requested Info |
M |
This IE indicates the type of subscriber information that is requested. It shall have the following value: – MNP Requested Info. |
Subscriber Identity |
M |
This IE identifies the subscriber for which the information is requested. The identity shall be: – MSISDN. |
12.3.2 MNP SRF to gsmSCF information flows
12.3.2.1 Any Time Interrogation ack
12.3.2.1.1 Description
This IF is used by the MNP SRF to provide the requested MNP information for the subscriber to the gsmSCF.
12.3.2.1.2 Information Elements
Information element name |
Status |
Description |
---|---|---|
MNP Information Result |
M |
This IE contains the MNP information for the subscriber. It is described in a table below. |
MNP Information Result contains the following information:
Information element name |
Status |
Description |
---|---|---|
Routeing Number |
C |
This IE shall be present, if requested by the gsmSCF. Refer to 3GPP TS 23.066 [17]. |
IMSI |
C |
This IE shall be present, if requested by the gsmSCF. Refer to 3GPP TS 23.066 [17]. |
MSISDN |
C |
This IE shall be present, if requested by the gsmSCF. Refer to 3GPP TS 23.066 [17]. |
Number Portability Status |
C |
This IE shall be present, if requested by the gsmSCF. It may have one of the following values: – Not Known To Be Ported; – Own Number PortedOut; – Foreign Number Ported To Foreign Network; – Own Number Not Ported Out; – Foreign Number Ported In. Refer to 3GPP TS 23.066 [17]. |
Annex A (informative):
Handling of Apply Charging GPRS and Apply Charging Report GPRS
This Annex provides an example to demonstrate the handling of Apply Charging GPRS and Apply Charging Report GPRS.
Figure A.1: Example of Handling of Apply Charging GPRS and Apply Charging Report GPRS
In Figure A.1, data volumes transferred for the active PDP context are listed on the left-hand side of diagram. The following is a description of the example:
a) Apply Charging GPRS threshold set to 2000, no tariff switch timer set.
b) After 2000 units of data have been transferred, an Apply Charging Report GPRS is sent to the gsmSCF.
c) The gsmSCF sends another Apply Charging GPRS with a 2000 unit threshold.
d) After 2000 units of data have been transferred, an Apply Charging Report GPRS is sent to the gsmSCF.
e) Another threshold (2000) is set by the gsmSCF in Apply Charging GPRS, and a tariff switch timer is set.
f) After 2000 units have been transferred, Apply Charging Report GPRS is sent to the gsmSCF, as a tariff switch timer has expired since the last Apply Charging GPRS, values for volumeTariffSwitchInterval and Volume transferred since the tariff switch are sent. The gsmSCF stores the value volumeTariffSwitchInterval.
g) The gsmSCF sends another Apply Charging GPRS with a 2000 unit threshold.
h) After 2000 units of data have been transferred, an Apply Charging Report GPRS is sent to the gsmSCF.
i) Apply Charging GPRS sets a tariff switch timer, which does not expire before the next Apply Charging Report GPRS.
j) A change in QoS is reported so Apply Charging Report GPRS is returned to the gsmSCF containing VolumeIfNoTariffSwitch as no tariff switch has occurred since the last Apply Charging Report GPRS. The gsmSCF should store this value if the volume of data transferred at each QoS level is to be calculated. The Tsw sent in the previous Apply Charging GPRS is stopped. In this example the tariff switch timer (Tsw) does not expire before this QoS change. If Tsw had expired the Apply Charging Report GPRS would report the volumeTariffSwitchInterval in the normal way.
k) An Apply Charging GPRS is sent giving a new threshold. This threshold is service logic dependent and does not rely on any previous value sent. In the example it is ‘previous threshold – volume transferred since last threshold was set’.
l) The VolumeSinceLastTariffSwitch is reported in the Apply Charging Report GPRS. Note: this includes data transferred before and after the QoS change.
m) Note that a tariff switch timer is set and expires.
n) A final Apply Charging Report GPRS is returned containing the data volume transferred since the last tariff switch, and also the total volume transferred at the previous tariff.
The calculations made by the gsmSCF in this example are:
a) Total Data Volume Transferred in this example: Total of all volumeTariffSwitchInterval received + final volumeSinceLastTariff switch is (5500 + 5000) + 1500 = 12000 units of data
b) Data Volume transferred for each tariff: (periods separated by Tsw in figure A.1)
– 1st Tariff: taken from Apply Charging Report GPRS (signal f)) volumeTariffSwitchInterval = 5500 units of data
– 2nd Tariff: taken from Apply Charging Report GPRS (signal n)) volumeTariffSwitchInterval = 5000 units of data
– 3rd Tariff: taken from VolumeSinceLastTariffSwitch (signal n)) volumeTariffSwitchInterval = 1500 units of data
c) Data Volume Transferred at each QoS level (One QoS Change Occurs in figure A.1)
– 1st QoS level (up to signal 10): All volumeTariffSwitchIntervals + final VolumeSinceLastTariffSwitch at QoS change is 5500 + 3200 = 8700 units of data.
– 2nd QoS level (from signal 10 onwards): (Value of first VolumeTariffSwitchInterval received after QoS change – VolumeNoTariffSwitch Received directly after QoS change ) + Volume transferred since this tariff switch is (5000-3200) + 1500 = 3300 units of data.
Note: The volume reported to the gsmSCF in an Apply Charging Report GPRS may exceed the threshold sent in the previous Apply Charging GPRS, e.g. if the delta timer exceeds the threshold received in the subsequent Apply Charging GPRS or a data packet is transferred causing the threshold to be exceeded.
Annex B (informative):
Change history
Date |
TSG # |
TSG Doc. |
CR |
Rev |
Subject/Comment |
New |
2003-12 |
CN#22 |
NP-030526 |
553 |
3 |
23.078-CR553 Collective CR for Rel-6 Enhanced Dialled Services |
6.0.0 |
2003-12 |
CN#22 |
NP-0305628 |
645 |
1 |
Change of position armed with criteria (check criteria in MSC) |
6.0.0 |
2003-12 |
CN#22 |
NP-030528 |
647 |
1 |
Enhancements for the Partial Implementation for "Change of position procedure armed with criteria" |
6.0.0 |
2004-03 |
CN#23 |
NP-040137 |
649 |
1 |
Missing DisconnectLeg Result |
6.1.0 |
2004-03 |
CN#23 |
NP-040137 |
651 |
1 |
Correction to DP description tables |
6.1.0 |
2004-03 |
CN#23 |
NP-040094 |
652 |
EDS and DisconnectLeg interworking |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040090 |
656 |
DP Triggering without having armed the TDP |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040145 |
657 |
1 |
No receipt of Int_DP_Analysed_Information in state Monitoring |
6.1.0 |
2004-03 |
CN#23 |
NP-040138 |
682 |
2 |
Enhancement of Event Specific Information for DP ‘Change of Position’ |
6.1.0 |
2004-03 |
CN#23 |
NP-040131 |
686 |
1 |
GPRS ODB reporting to CAMEL SCP |
6.1.0 |
2004-03 |
CN#23 |
NP-040095 |
688 |
2 |
CAMEL4 SCUDIF notification during active call for prepay |
6.1.0 |
2004-03 |
CN#23 |
NP-040138 |
689 |
1 |
NoReply timer clarification for follow-on calls |
6.1.0 |
2004-03 |
CN#23 |
NP-040096 |
693 |
1 |
Adding the Layer Compatibility information elements over the gsmSSF – gsmSCF interface |
6.1.0 |
2004-03 |
CN#23 |
NP-040136 |
694 |
Correction to dialed services triggering for NP and NC calls |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040136 |
695 |
Correction to No Answer handling (CAMEL_OCH_MSC2) |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040136 |
696 |
Correction to handling of DFC in CS_gsmSSF |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040136 |
697 |
Correction to both way through parameter for ETC and CTR |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040136 |
698 |
Correction to forwarded leg handling with Suppress O-CSI |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040136 |
699 |
Correction to ORLCF handling for CAMEL calls in VMSC |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040136 |
700 |
Handling of DFCWA in ETC and CTR procedures |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040137 |
701 |
Correction to CUG handling for NP calls |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040137 |
702 |
Correction to CAMEL_ICA_MSC (hanging connector) |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040137 |
703 |
Correction to Request Report BCSM Event handling in CSA_gsmSSF |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040137 |
704 |
Correction to Split Leg handling in CSA_gsmSSF |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040137 |
705 |
Correction to CS ID Prompt & Collect |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040137 |
706 |
Correction to SplitLeg preconditions |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040138 |
707 |
Correction to Disconnect Leg preconditions |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040136 |
708 |
Correction to Information Location at DP O_Term_Seized |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040138 |
710 |
Starting of Timer Tccd after ACR on DP ‘Change of Position’ |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040137 |
711 |
Correction to Tssf timer at Apply Charging |
6.1.0 |
|
2004-03 |
CN#23 |
NP-040137 |
712 |
Allowing Export_leg at DP Alerting and DP Answer |
6.1.0 |
|
2004-06 |
CN#24 |
NP-040249 |
685 |
3 |
IP version of GGSN address for CAMEL |
6.2.0 |
2004-06 |
CN#24 |
NP-040249 |
716 |
3 |
Enhancement to User Interaction |
6.2.0 |
2004-06 |
CN#24 |
NP-040207 |
721 |
1 |
Correction to Tssf timer |
6.2.0 |
2004-06 |
CN#24 |
NP-040207 |
722 |
Correction to D-CSI suppression in Continue With Argument |
6.2.0 |
|
2004-06 |
CN#24 |
NP-040249 |
723 |
Correction to CS_gsmSSF for call release |
6.2.0 |
|
2004-06 |
CN#24 |
NP-040249 |
724 |
Stopping charging timers after Cancel [All] |
6.2.0 |
|
2004-06 |
CN#24 |
NP-040207 |
725 |
Correction to Move Leg pre-condition |
6.2.0 |
|
2004-06 |
CN#24 |
NP-040207 |
726 |
Correction to InitialDP IF for NP leg |
6.2.0 |
|
2004-06 |
CN#24 |
NP-040207 |
727 |
Correction to User Interaction before Answer |
6.2.0 |
|
2004-06 |
CN#24 |
NP-040207 |
728 |
Correction to Entity Released for individual call party |
6.2.0 |
|
2004-09 |
CN#25 |
NP-040405 |
732 |
2 |
Support of User-to-User Information (UUI) in CAMEL InitialDP operation |
6.3.0 |
2004-09 |
CN#25 |
NP-040406 |
731 |
Correcting status in the procedure CAMEL_MT_CTR(sheet 4) |
6.3.0 |
|
2004-09 |
CN#25 |
NP-040406 |
732 |
Redundantly modifying call parameter in CAMEL_MT_GMSC_Notify_CF |
6.3.0 |
|
2004-09 |
CN#25 |
NP-040406 |
733 |
Correcting SDL of Process CS_gsmSSF(sheet 7) |
6.3.0 |
|
2004-09 |
CN#25 |
NP-040406 |
735 |
2 |
Appended a note in Process CAMEL_ICA_MSC |
6.3.0 |
2004-09 |
CN#25 |
NP-040406 |
737 |
Correction to CAP SCI for calls with multiple CAP dialogues |
6.3.0 |
|
2004-09 |
CN#25 |
NP-040406 |
738 |
Correction to CAMEL_ICA_MSC1 and CAMEL_ICA_MSC2 |
6.3.0 |
|
2004-09 |
CN#25 |
NP-040406 |
739 |
Removal of Int_O_Exception from CAMEL_OCH_MSC2 and CAMEL_MT_GMSC_DISC5 |
6.3.0 |
|
2004-09 |
CN#25 |
NP-040406 |
740 |
Correction to CAMEL_Modify_CUG_Info |
6.3.0 |
|
2004-09 |
CN#25 |
NP-040406 |
741 |
Correction to CAMEL_EXPORT_LEG_MSC procedure |
6.3.0 |
|
2004-09 |
CN#25 |
NP-040406 |
743 |
Correction to CS_gsmSSF for EDS |
6.3.0 |
|
2004-09 |
CN#25 |
NP-040406 |
744 |
Correction to CS_gsmSSF for Tcp expiry |
6.3.0 |
|
2004-09 |
CN#25 |
NP-040406 |
745 |
Correction to Handle_ACR procedure for Tccd timer |
6.3.0 |
|
2004-09 |
CN#25 |
NP-040406 |
747 |
Correction to any Time Interrogation |
6.3.0 |
|
2004-09 |
CN#25 |
NP-040406 |
730 |
1 |
Editorial correction |
6.3.0 |
2004-12 |
CN#26 |
NP-040525 |
748 |
5 |
Clarification on Outstanding Request Counter (ORC) handling at EDP-R or TDP-R resumption |
6.4.0 |
2004-12 |
CN#26 |
NP-040544 |
749 |
2 |
Correcting SDL of Process CS_gsmSSF (sheet 62) |
6.4.0 |
2004-12 |
CN#26 |
NP-040544 |
752 |
Correction to Change of Position handling in gsmSSF |
6.4.0 |
|
2004-12 |
CN#26 |
NP-040544 |
753 |
1 |
Correction in Sheet 18 of Process CSA_gsmSSF |
6.4.0 |
2004-12 |
CN#26 |
NP-040544 |
757 |
1 |
Warning Tone |
6.4.0 |
2005-01 |
CS_gsmSSF SDL file updated |
6.4.1 |
||||
2005-03 |
CN#27 |
NP-050051 |
762 |
1 |
CR 693 not implemented |
6.5.0 |
2005-06 |
CT#28 |
CP-050097 |
763 |
1 |
Correction to DP T_No_Answer |
6.6.0 |
2005-06 |
CT#28 |
CP-050097 |
765 |
Correction to conditional triggering for SCUDIF call |
6.6.0 |
|
2005-06 |
CT#28 |
CP-050083 |
767 |
1 |
Correction to CAMEL_MO_Dialled_Services |
6.6.0 |
2005-06 |
CT#28 |
CP-050097 |
769 |
Correction to Outstanding Request Counter setting at IDP handling |
6.6.0 |
|
2005-06 |
CT#28 |
CP-050083 |
772 |
Correction to No_Answer handling in CAMEL_ICA_MSC2 |
6.6.0 |
|
2005-06 |
CT#28 |
CP-050083 |
774 |
Correction to CAMEL_ICA_MSC1 and CAMEL_ICA_MSC2 for gsmSSF process checking |
6.6.0 |
|
2005-06 |
CT#28 |
CP-050083 |
776 |
Correction to EDP-N handling for ICA legs in Process CS_gsmSSF |
6.6.0 |
|
2005-06 |
CT#28 |
CP-050097 |
780 |
4 |
NoReply Timer clarification |
6.6.0 |
2005-06 |
CT#28 |
CP-050103 |
764 |
1 |
CAMEL procedures for trunk originated services |
7.0.0 |
2005-09 |
CT#29 |
CP-050312 |
781 |
1 |
Trunk Originated CAMEL triggering – SDLs (re-introduce CR770) |
7.1.0 |
2005-09 |
CT#29 |
CP-050312 |
784 |
2 |
Additions and clarifications for CAMEL trunk originated services |
7.1.0 |
2005-09 |
CT#29 |
CP-050309 |
786 |
Adding a missing reference |
7.1.0 |
|
2005-09 |
CT#29 |
CP-050309 |
789 |
Correction on Outstanding Request Counter handling |
7.1.0 |
|
2005-09 |
CT#29 |
CP-050309 |
791 |
Correction on T_Disconnect handling |
7.1.0 |
|
2005-12 |
CT#30 |
CP-050626 |
0792 |
2 |
Trunk Originated CAMEL triggering – DTMF and CollectInfo parameters in SDL |
7.2.0 |
2005-12 |
CT#30 |
CP-050626 |
0793 |
1 |
Modification Procedure CAMEL_OCH_LEG1_MSC 11(13) |
7.2.0 |
2006-03 |
CT#31 |
CP-060082 |
0794 |
Specification of gsmSCF Address format in AnyTime request messages |
7.3.0 |
|
2006-06 |
CT#32 |
CP-060311 |
0796 |
1 |
Addition of information related to service change |
7.4.0 |
2006-06 |
CT#32 |
CP-060336 |
0797 |
2 |
List of MSISDNs and Basic Service Code for MAP Any Time Subscription Interrogation. |
7.4.0 |
2006-06 |
CT#32 |
CP-060300 |
0798 |
1 |
Corrections of Process CS_gsmSSF |
7.4.0 |
2006-09 |
CT#33 |
CP-060414 |
0806 |
1 |
Response to ATI for GPRS information when PSI not supported in the SGSN |
7.5.0 |
2006-09 |
CT#33 |
CP-060414 |
0807 |
SGSN number to be included in the ATI response |
7.5.0 |
|
2006-12 |
CT#34 |
CP-060695 |
0810 |
1 |
Optional Suppress Terminating Services Bit String in SRI |
7.6.0 |
2007-03 |
CT#35 |
CP-070030 |
0813 |
1 |
Addition of SMS over IP functionality |
7.7.0 |
2007-06 |
CT#36 |
CP-070328 |
0815 |
Mobile Termination whilst the MS is moving to another MSC |
7.8.0 |
|
2007-06 |
CT#36 |
CP-070326 |
0816 |
1 |
Correction of IP-SM-GW update in the HSS |
7.8.0 |
2007-06 |
CT#36 |
CP-070325 |
0822 |
2 |
Adding a Information Element to Continue Camel Handling Information Flow |
7.8.0 |
2007-06 |
CT#36 |
CP-070325 |
0823 |
Mutually exclusive elements in Location Information in MSC for Initial DP SMS |
7.8.0 |
|
2007-06 |
CT#36 |
CP-070325 |
0824 |
1 |
Correction to DTMF detection in alerting phase |
7.8.0 |
2007-09 |
CT#37 |
CP-070540 |
0814 |
4 |
AC/ACR Handling |
7.9.0 |
2007-09 |
CT#37 |
CP-070540 |
0826 |
Correction to the Send Info For Incoming Call ack Information Flow |
7.9.0 |
|
2008-12 |
CT#42 |
Upgrade to Release 8 without technical change |
8.0.0 |
|||
2009-09 |
CT#45 |
CP-090524 |
0831 |
2 |
Correction on ACR and Warning Tone Play Handling of Leg 1 when successful move of a leg |
8.1.0 |
2009-12 |
– |
– |
– |
– |
Update to Rel-9 version (MCC) |
9.0.0 |
2010-03 |
CT#47 |
CP-100029 |
0832 |
1 |
User CSG Information for CAMEL |
9.1.0 |
2010-09 |
CT#49 |
CP-100449 |
0835 |
1 |
Correction for SMS via SGs charging |
9.2.0 |
2010-09 |
CT#49 |
CP-100467 |
0836 |
2 |
Addition of SS codes to the ATSI and ATM procedures |
10.0.0 |
2011-09 |
CT#53 |
CP-110732 |
0837 |
2 |
Extension parameter for Release Call |
11.0.0 |
2011-12 |
CT#54 |
CP-110780 |
0841 |
1 |
Provide Subscriber Information handling for UE under LTE |
11.1.0 |
2012-03 |
CT#55 |
CP-120038 |
0842 |
2 |
EPS Location in IDP SMS |
11.2.0 |
2012-06 |
CT#56 |
CP-120244 |
0843 |
– |
EPS location in Initial DP |
11.3.0 |
2012-06 |
CT#56 |
CP-120244 |
0844 |
– |
EPS location in MAP Note MM Event |
11.3.0 |
2012-09 |
CT#61 |
CP-130468 |
0845 |
– |
Clarification of allowed values for SS-status in Any Time Modification procedure |
12.0.0 |
2015-12 |
CT#70 |
– |
– |
– |
Update to Rel-13 version (MCC) |
13.0.0 |
2017-03 |
CT#75 |
– |
– |
– |
Update to Rel-14 version (MCC) |
14.0.0 |
2018-06 |
-CT#80 |
– |
– |
– |
Update to Rel-15 version (MCC) |
15.0.0 |
2020-07 |
– |
– |
– |
– |
Update to Rel-16 version (MCC) |
16.0.0 |
2022-03 |
– |
– |
– |
– |
Update to Rel-17 version (MCC) |
17.0.0 |