diff --git a/MAP/Makefile b/MAP/Makefile new file mode 100644 index 0000000..1c09b39 --- /dev/null +++ b/MAP/Makefile @@ -0,0 +1,17 @@ + +.PHONY: all +all: + cd asn_src && $(MAKE) + cd src && $(MAKE) + cd doc && $(MAKE) + +.PHONY: doc +doc: + cd doc && $(MAKE) $@ + +.PHONY: clean +clean: + cd asn_src && $(MAKE) $@ + cd src && $(MAKE) $@ + cd doc && $(MAKE) $@ + diff --git a/MAP/asn_src/GSM/MAP-ApplicationContexts.asn b/MAP/asn_src/GSM/MAP-ApplicationContexts.asn new file mode 100644 index 0000000..ad6b096 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-ApplicationContexts.asn @@ -0,0 +1,168 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-ApplicationContexts {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ApplicationContexts(2) + version8(8)} DEFINITIONS ::= +BEGIN + +-- EXPORTS everything +IMPORTS + gsm-NetworkId, ac-Id + FROM MobileDomainDefinitions {itu-t(0) identified-organization(4) + etsi(0) mobileDomain(0) mobileDomainDefinitions(0) version1(1)}; + +-- application-context-names +map-ac OBJECT IDENTIFIER ::= {gsm-NetworkId ac-Id} + +networkLocUpContext-v3 OBJECT IDENTIFIER ::= + {map-ac networkLocUp(1) version3(3)} + +locationCancellationContext-v3 OBJECT IDENTIFIER ::= + {map-ac locationCancel(2) version3(3)} + +roamingNumberEnquiryContext-v3 OBJECT IDENTIFIER ::= + {map-ac roamingNbEnquiry(3) version3(3)} + +authenticationFailureReportContext-v3 OBJECT IDENTIFIER ::= + {map-ac authenticationFailureReport(39) version3(3)} + +locationInfoRetrievalContext-v3 OBJECT IDENTIFIER ::= + {map-ac locInfoRetrieval(5) version3(3)} + +resetContext-v2 OBJECT IDENTIFIER ::= {map-ac reset(10) version2(2)} + +handoverControlContext-v3 OBJECT IDENTIFIER ::= + {map-ac handoverControl(11) version3(3)} + +equipmentMngtContext-v3 OBJECT IDENTIFIER ::= + {map-ac equipmentMngt(13) version3(3)} + +infoRetrievalContext-v3 OBJECT IDENTIFIER ::= + {map-ac infoRetrieval(14) version3(3)} + +interVlrInfoRetrievalContext-v3 OBJECT IDENTIFIER ::= + {map-ac interVlrInfoRetrieval(15) version3(3)} + +subscriberDataMngtContext-v3 OBJECT IDENTIFIER ::= + {map-ac subscriberDataMngt(16) version3(3)} + +tracingContext-v3 OBJECT IDENTIFIER ::= {map-ac tracing(17) version3(3)} + +networkFunctionalSsContext-v2 OBJECT IDENTIFIER ::= + {map-ac networkFunctionalSs(18) version2(2)} + +networkUnstructuredSsContext-v2 OBJECT IDENTIFIER ::= + {map-ac networkUnstructuredSs(19) version2(2)} + +shortMsgGatewayContext-v3 OBJECT IDENTIFIER ::= + {map-ac shortMsgGateway(20) version3(3)} + +shortMsgMO-RelayContext-v3 OBJECT IDENTIFIER ::= + {map-ac shortMsgMO-Relay(21) version3(3)} + +shortMsgAlertContext-v2 OBJECT IDENTIFIER ::= + {map-ac shortMsgAlert(23) version2(2)} + +mwdMngtContext-v3 OBJECT IDENTIFIER ::= {map-ac mwdMngt(24) version3(3)} + +shortMsgMT-RelayContext-v3 OBJECT IDENTIFIER ::= + {map-ac shortMsgMT-Relay(25) version3(3)} + +imsiRetrievalContext-v2 OBJECT IDENTIFIER ::= + {map-ac imsiRetrieval(26) version2(2)} + +msPurgingContext-v3 OBJECT IDENTIFIER ::= {map-ac msPurging(27) version3(3)} + +subscriberInfoEnquiryContext-v3 OBJECT IDENTIFIER ::= + {map-ac subscriberInfoEnquiry(28) version3(3)} + +anyTimeInfoEnquiryContext-v3 OBJECT IDENTIFIER ::= + {map-ac anyTimeInfoEnquiry(29) version3(3)} + +callControlTransferContext-v4 OBJECT IDENTIFIER ::= + {map-ac callControlTransfer(6) version4(4)} + +ss-InvocationNotificationContext-v3 OBJECT IDENTIFIER ::= + {map-ac ss-InvocationNotification(36) version3(3)} + +sIWFSAllocationContext-v3 OBJECT IDENTIFIER ::= + {map-ac sIWFSAllocation(12) version3(3)} + +groupCallControlContext-v3 OBJECT IDENTIFIER ::= + {map-ac groupCallControl(31) version3(3)} + +gprsLocationUpdateContext-v3 OBJECT IDENTIFIER ::= + {map-ac gprsLocationUpdate(32) version3(3)} + +gprsLocationInfoRetrievalContext-v4 OBJECT IDENTIFIER ::= + {map-ac gprsLocationInfoRetrieval(33) version4(4)} + +failureReportContext-v3 OBJECT IDENTIFIER ::= + {map-ac failureReport(34) version3(3)} + +gprsNotifyContext-v3 OBJECT IDENTIFIER ::= {map-ac gprsNotify(35) version3(3)} + +reportingContext-v3 OBJECT IDENTIFIER ::= {map-ac reporting(7) version3(3)} + +callCompletionContext-v3 OBJECT IDENTIFIER ::= + {map-ac callCompletion(8) version3(3)} + +istAlertingContext-v3 OBJECT IDENTIFIER ::= {map-ac istAlerting(4) version3(3)} + +serviceTerminationContext-v3 OBJECT IDENTIFIER ::= + {map-ac immediateTermination(9) version3(3)} + +locationSvcGatewayContext-v3 OBJECT IDENTIFIER ::= + {map-ac locationSvcGateway(37) version3(3)} + +locationSvcEnquiryContext-v3 OBJECT IDENTIFIER ::= + {map-ac locationSvcEnquiry(38) version3(3)} + +mm-EventReportingContext-v3 OBJECT IDENTIFIER ::= + {map-ac mm-EventReporting(42) version3(3)} + +anyTimeInfoHandlingContext-v3 OBJECT IDENTIFIER ::= + {map-ac anyTimeInfoHandling(43) version3(3)} + +subscriberDataModificationNotificationContext-v3 OBJECT IDENTIFIER ::= + {map-ac subscriberDataModificationNotification(22) version3(3)} + +secureTransportHandlingContext-v3 OBJECT IDENTIFIER ::= + {map-ac secureTransportHandling(40) version3(3)} + +-- The following Object Identifiers are reserved for application-contexts +-- existing in previous versions of the protocol +-- AC Name & Version Object Identifier +-- +-- networkLocUpContext-v1 map-ac networkLocUp (1) version1 (1) +-- networkLocUpContext-v2 map-ac networkLocUp (1) version2 (2) +-- locationCancellationContext-v1 map-ac locationCancellation (2) version1 (1) +-- locationCancellationContext-v2 map-ac locationCancellation (2) version2 (2) +-- roamingNumberEnquiryContext-v1 map-ac roamingNumberEnquiry (3) version1 (1) +-- roamingNumberEnquiryContext-v2 map-ac roamingNumberEnquiry (3) version2 (2) +-- locationInfoRetrievalContext-v1 map-ac locationInfoRetrieval (5) version1 (1) +-- locationInfoRetrievalContext-v2 map-ac locationInfoRetrieval (5) version2 (2) +-- resetContext-v1 map-ac reset (10) version1 (1) +-- handoverControlContext-v1 map-ac handoverControl (11) version1 (1) +-- handoverControlContext-v2 map-ac handoverControl (11) version2 (2) +-- equipmentMngtContext-v1 map-ac equipmentMngt (13) version1 (1) +-- equipmentMngtContext-v2 map-ac equipmentMngt (13) version2 (2) +-- infoRetrievalContext-v1 map-ac infoRetrieval (14) version1 (1) +-- infoRetrievalContext-v2 map-ac infoRetrieval (14) version2 (2) +-- interVlrInfoRetrievalContext-v2 map-ac interVlrInfoRetrieval (15) version2 (2) +-- subscriberDataMngtContext-v1 map-ac subscriberDataMngt (16) version1 (1) +-- subscriberDataMngtContext-v2 map-ac subscriberDataMngt (16) version2 (2) +-- tracingContext-v1 map-ac tracing (17) version1 (1) +-- tracingContext-v2 map-ac tracing (17) version2 (2) +-- networkFunctionalSsContext-v1 map-ac networkFunctionalSs (18) version1 (1) +-- shortMsgGatewayContext-v1 map-ac shortMsgGateway (20) version1 (1) +-- shortMsgGatewayContext-v2 map-ac shortMsgGateway (20) version2 (2) +-- shortMsgRelayContext-v1 map-ac shortMsgRelay (21) version1 (1) +-- shortMsgAlertContext-v1 map-ac shortMsgAlert (23) version1 (1) +-- mwdMngtContext-v1 map-ac mwdMngt (24) version1 (1) +-- mwdMngtContext-v2 map-ac mwdMngt (24) version2 (2) +-- shortMsgMT-RelayContext-v2 map-ac shortMsgMT-Relay (25) version2 (2) +-- msPurgingContext-v2 map-ac msPurging (27) version2 (2) +-- callControlTransferContext-v3 map-ac callControlTransferContext (6) version3 (3) +-- gprsLocationInfoRetrievalContext-v3 map-ac gprsLocationInfoRetrievalContext (33) version3 (3) +END + diff --git a/MAP/asn_src/GSM/MAP-BS-Code.asn b/MAP/asn_src/GSM/MAP-BS-Code.asn new file mode 100644 index 0000000..d370773 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-BS-Code.asn @@ -0,0 +1,165 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-BS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-BS-Code(20) version8(8)} DEFINITIONS ::= +BEGIN + +BearerServiceCode ::= OCTET STRING(SIZE (1)) + +-- This type is used to represent the code identifying a single +-- bearer service, a group of bearer services, or all bearer +-- services. The services are defined in TS 3GPP TS 22.002 [3]. +-- The internal structure is defined as follows: +-- +-- plmn-specific bearer services: +-- bits 87654321: defined by the HPLMN operator +-- rest of bearer services: +-- bit 8: 0 (unused) +-- bits 7654321: group (bits 7654), and rate, if applicable +-- (bits 321) +Ext-BearerServiceCode ::= OCTET STRING(SIZE (1..5)) + +-- This type is used to represent the code identifying a single +-- bearer service, a group of bearer services, or all bearer +-- services. The services are defined in TS 3GPP TS 22.002 [3]. +-- The internal structure is defined as follows: +-- +-- OCTET 1: +-- plmn-specific bearer services: +-- bits 87654321: defined by the HPLMN operator +-- +-- rest of bearer services: +-- bit 8: 0 (unused) +-- bits 7654321: group (bits 7654), and rate, if applicable +-- (bits 321) +-- OCTETS 2-5: reserved for future use. If received the +-- Ext-TeleserviceCode shall be +-- treated according to the exception handling defined for the +-- operation that uses this type. +-- Ext-BearerServiceCode includes all values defined for BearerServiceCode. +allBearerServices BearerServiceCode ::= + '00000000'B + +allDataCDA-Services BearerServiceCode ::= '00010000'B + +dataCDA-300bps BearerServiceCode ::= '00010001'B + +dataCDA-1200bps BearerServiceCode ::= '00010010'B + +dataCDA-1200-75bps BearerServiceCode ::= '00010011'B + +dataCDA-2400bps BearerServiceCode ::= '00010100'B + +dataCDA-4800bps BearerServiceCode ::= '00010101'B + +dataCDA-9600bps BearerServiceCode ::= '00010110'B + +general-dataCDA BearerServiceCode ::= '00010111'B + +allDataCDS-Services BearerServiceCode ::= '00011000'B + +dataCDS-1200bps BearerServiceCode ::= '00011010'B + +dataCDS-2400bps BearerServiceCode ::= '00011100'B + +dataCDS-4800bps BearerServiceCode ::= '00011101'B + +dataCDS-9600bps BearerServiceCode ::= '00011110'B + +general-dataCDS BearerServiceCode ::= '00011111'B + +allPadAccessCA-Services BearerServiceCode ::= '00100000'B + +padAccessCA-300bps BearerServiceCode ::= '00100001'B + +padAccessCA-1200bps BearerServiceCode ::= '00100010'B + +padAccessCA-1200-75bps BearerServiceCode ::= '00100011'B + +padAccessCA-2400bps BearerServiceCode ::= '00100100'B + +padAccessCA-4800bps BearerServiceCode ::= '00100101'B + +padAccessCA-9600bps BearerServiceCode ::= '00100110'B + +general-padAccessCA BearerServiceCode ::= '00100111'B + +allDataPDS-Services BearerServiceCode ::= '00101000'B + +dataPDS-2400bps BearerServiceCode ::= '00101100'B + +dataPDS-4800bps BearerServiceCode ::= '00101101'B + +dataPDS-9600bps BearerServiceCode ::= '00101110'B + +general-dataPDS BearerServiceCode ::= '00101111'B + +allAlternateSpeech-DataCDA BearerServiceCode ::= '00110000'B + +allAlternateSpeech-DataCDS BearerServiceCode ::= '00111000'B + +allSpeechFollowedByDataCDA BearerServiceCode ::= '01000000'B + +allSpeechFollowedByDataCDS BearerServiceCode ::= '01001000'B + +-- The following non-hierarchical Compound Bearer Service +-- Groups are defined in TS 3GPP TS 22.030: +allDataCircuitAsynchronous BearerServiceCode ::= + '01010000'B + +-- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA" and +-- "allSpeechFollowedByDataCDA" +allAsynchronousServices BearerServiceCode ::= + '01100000'B + +-- covers "allDataCDA-Services", "allAlternateSpeech-DataCDA", +-- "allSpeechFollowedByDataCDA" and "allPadAccessCDA-Services" +allDataCircuitSynchronous BearerServiceCode ::= + '01011000'B + +-- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS" and +-- "allSpeechFollowedByDataCDS" +allSynchronousServices BearerServiceCode ::= + '01101000'B + +-- covers "allDataCDS-Services", "allAlternateSpeech-DataCDS", +-- "allSpeechFollowedByDataCDS" and "allDataPDS-Services" +-- +-- Compound Bearer Service Group Codes are only used in call +-- independent supplementary service operations, i.e. they +-- are not used in InsertSubscriberData or in +-- DeleteSubscriberData messages. +allPLMN-specificBS BearerServiceCode ::= + '11010000'B + +plmn-specificBS-1 BearerServiceCode ::= '11010001'B + +plmn-specificBS-2 BearerServiceCode ::= '11010010'B + +plmn-specificBS-3 BearerServiceCode ::= '11010011'B + +plmn-specificBS-4 BearerServiceCode ::= '11010100'B + +plmn-specificBS-5 BearerServiceCode ::= '11010101'B + +plmn-specificBS-6 BearerServiceCode ::= '11010110'B + +plmn-specificBS-7 BearerServiceCode ::= '11010111'B + +plmn-specificBS-8 BearerServiceCode ::= '11011000'B + +plmn-specificBS-9 BearerServiceCode ::= '11011001'B + +plmn-specificBS-A BearerServiceCode ::= '11011010'B + +plmn-specificBS-B BearerServiceCode ::= '11011011'B + +plmn-specificBS-C BearerServiceCode ::= '11011100'B + +plmn-specificBS-D BearerServiceCode ::= '11011101'B + +plmn-specificBS-E BearerServiceCode ::= '11011110'B + +plmn-specificBS-F BearerServiceCode ::= '11011111'B + +END + diff --git a/MAP/asn_src/GSM/MAP-CH-DataTypes.asn b/MAP/asn_src/GSM/MAP-CH-DataTypes.asn new file mode 100644 index 0000000..0e5fef0 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-CH-DataTypes.asn @@ -0,0 +1,393 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-CH-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-CH-DataTypes(13) version8(8)} DEFINITIONS +IMPLICIT TAGS ::= +BEGIN + +EXPORTS + SendRoutingInfoArg, SendRoutingInfoRes, ProvideRoamingNumberArg, + ProvideRoamingNumberRes, ResumeCallHandlingArg, ResumeCallHandlingRes, + NumberOfForwarding, SuppressionOfAnnouncement, CallReferenceNumber, + ProvideSIWFSNumberArg, ProvideSIWFSNumberRes, SIWFSSignallingModifyArg, + SIWFSSignallingModifyRes, SetReportingStateArg, SetReportingStateRes, + StatusReportArg, StatusReportRes, RemoteUserFreeArg, RemoteUserFreeRes, + IST-AlertArg, IST-AlertRes, IST-CommandArg, IST-CommandRes; + +IMPORTS + SubscriberInfo, SupportedCamelPhases, OfferedCamel4CSIs, CUG-Interlock, + O-CSI, D-CSI, O-BcsmCamelTDPCriteriaList, T-BCSM-CAMEL-TDP-CriteriaList, + IST-SupportIndicator, IST-AlertTimerValue, T-CSI + FROM MAP-MS-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-MS-DataTypes(11) + version8(8)} + ForwardingOptions, SS-List, CCBS-Feature + FROM MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-SS-DataTypes(14) + version8(8)} + ISDN-AddressString, ISDN-SubaddressString, FTN-AddressString, + ExternalSignalInfo, Ext-ExternalSignalInfo, IMSI, LMSI, + Ext-BasicServiceCode, AlertingPattern, NAEA-PreferredCI + FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18) + version8(8)} + ExtensionContainer + FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21) + version8(8)}; + +CUG-CheckInfo ::= SEQUENCE { + cug-Interlock CUG-Interlock, + cug-OutgoingAccess NULL OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +NumberOfForwarding ::= INTEGER(1..5) + +SendRoutingInfoArg ::= SEQUENCE { + msisdn [0] ISDN-AddressString, + cug-CheckInfo [1] CUG-CheckInfo OPTIONAL, + numberOfForwarding [2] NumberOfForwarding OPTIONAL, + interrogationType [3] InterrogationType, + or-Interrogation [4] NULL OPTIONAL, + or-Capability [5] OR-Phase OPTIONAL, + gmsc-OrGsmSCF-Address [6] ISDN-AddressString, + callReferenceNumber [7] CallReferenceNumber OPTIONAL, + forwardingReason [8] ForwardingReason OPTIONAL, + basicServiceGroup [9] Ext-BasicServiceCode OPTIONAL, + networkSignalInfo [10] ExternalSignalInfo OPTIONAL, + camelInfo [11] CamelInfo OPTIONAL, + suppressionOfAnnouncement [12] SuppressionOfAnnouncement OPTIONAL, + extensionContainer [13] ExtensionContainer OPTIONAL, + ..., + alertingPattern [14] AlertingPattern OPTIONAL, + ccbs-Call [15] NULL OPTIONAL, + supportedCCBS-Phase [16] SupportedCCBS-Phase OPTIONAL, + additionalSignalInfo [17] Ext-ExternalSignalInfo OPTIONAL, + istSupportIndicator [18] IST-SupportIndicator OPTIONAL, + pre-pagingSupported [19] NULL OPTIONAL, + callDiversionTreatmentIndicator + [20] CallDiversionTreatmentIndicator OPTIONAL, + longFTN-Supported [21] NULL OPTIONAL, + suppress-VT-CSI [22] NULL OPTIONAL, + suppressIncomingCallBarring [23] NULL OPTIONAL, + gsmSCF-InitiatedCall [24] NULL OPTIONAL} + +SuppressionOfAnnouncement ::= NULL + +InterrogationType ::= ENUMERATED {basicCall(0), forwarding(1)} + +OR-Phase ::= INTEGER(1..127) + +CallReferenceNumber ::= OCTET STRING(SIZE (1..8)) + +ForwardingReason ::= ENUMERATED {notReachable(0), busy(1), noReply(2)} + +SupportedCCBS-Phase ::= INTEGER(1..127) + +-- exception handling: +-- Only value 1 is used. +-- Values in the ranges 2-127 are reserved for future use. +-- If received values 2-127 shall be mapped on to value 1. +CallDiversionTreatmentIndicator ::= OCTET STRING(SIZE (1)) + +-- callDiversionAllowed (xxxx xx01) +-- callDiversionNotAllowed (xxxx xx10) +-- network default is call diversion allowed +SendRoutingInfoRes ::= [3] SEQUENCE { + imsi [9] IMSI OPTIONAL, + -- IMSI must be present if SendRoutingInfoRes is not segmented. + -- If the TC-Result-NL segmentation option is taken the IMSI must be + -- present in one segmented transmission of SendRoutingInfoRes. + extendedRoutingInfo ExtendedRoutingInfo OPTIONAL, + cug-CheckInfo [3] CUG-CheckInfo OPTIONAL, + cugSubscriptionFlag [6] NULL OPTIONAL, + subscriberInfo [7] SubscriberInfo OPTIONAL, + ss-List [1] SS-List OPTIONAL, + basicService [5] Ext-BasicServiceCode OPTIONAL, + forwardingInterrogationRequired [4] NULL OPTIONAL, + vmsc-Address [2] ISDN-AddressString OPTIONAL, + extensionContainer [0] ExtensionContainer OPTIONAL, + ..., + naea-PreferredCI [10] NAEA-PreferredCI OPTIONAL, + -- naea-PreferredCI is included at the discretion of the HLR operator. + ccbs-Indicators [11] CCBS-Indicators OPTIONAL, + msisdn [12] ISDN-AddressString OPTIONAL, + numberPortabilityStatus [13] NumberPortabilityStatus OPTIONAL, + istAlertTimer [14] IST-AlertTimerValue OPTIONAL, + supportedCamelPhasesInVMSC [15] SupportedCamelPhases OPTIONAL, + offeredCamel4CSIsInVMSC [16] OfferedCamel4CSIs OPTIONAL} + +NumberPortabilityStatus ::= ENUMERATED { + notKnownToBePorted(0), ownNumberPortedOut(1), + foreignNumberPortedToForeignNetwork(2), ... + } + +-- exception handling: +-- reception of other values than the ones listed the receiver shall ignore the +-- whole NumberPortabilityStatus +CCBS-Indicators ::= SEQUENCE { + ccbs-Possible [0] NULL OPTIONAL, + keepCCBS-CallIndicator [1] NULL OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +RoutingInfo ::= CHOICE { + roamingNumber ISDN-AddressString, + forwardingData ForwardingData} + +ForwardingData ::= SEQUENCE { + forwardedToNumber [5] ISDN-AddressString OPTIONAL, + -- When this datatype is sent from an HLR which supports CAMEL Phase 2 + -- to a GMSC which supports CAMEL Phase 2 the GMSC shall not check the + -- format of the number + forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL, + forwardingOptions [6] ForwardingOptions OPTIONAL, + extensionContainer [7] ExtensionContainer OPTIONAL, + ..., + longForwardedToNumber [8] FTN-AddressString OPTIONAL} + +ProvideRoamingNumberArg ::= SEQUENCE { + imsi [0] IMSI, + msc-Number [1] ISDN-AddressString, + msisdn [2] ISDN-AddressString OPTIONAL, + lmsi [4] LMSI OPTIONAL, + gsm-BearerCapability [5] ExternalSignalInfo OPTIONAL, + networkSignalInfo [6] ExternalSignalInfo OPTIONAL, + suppressionOfAnnouncement + [7] SuppressionOfAnnouncement OPTIONAL, + gmsc-Address [8] ISDN-AddressString OPTIONAL, + callReferenceNumber [9] CallReferenceNumber OPTIONAL, + or-Interrogation [10] NULL OPTIONAL, + extensionContainer [11] ExtensionContainer OPTIONAL, + ..., + alertingPattern [12] AlertingPattern OPTIONAL, + ccbs-Call [13] NULL OPTIONAL, + supportedCamelPhasesInInterrogatingNode + [15] SupportedCamelPhases OPTIONAL, + additionalSignalInfo + [14] Ext-ExternalSignalInfo OPTIONAL, + orNotSupportedInGMSC [16] NULL OPTIONAL, + pre-pagingSupported [17] NULL OPTIONAL, + longFTN-Supported [18] NULL OPTIONAL, + suppress-VT-CSI [19] NULL OPTIONAL, + offeredCamel4CSIsInInterrogatingNode [20] OfferedCamel4CSIs OPTIONAL} + +ProvideRoamingNumberRes ::= SEQUENCE { + roamingNumber ISDN-AddressString, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +ResumeCallHandlingArg ::= SEQUENCE { + callReferenceNumber [0] CallReferenceNumber OPTIONAL, + basicServiceGroup [1] Ext-BasicServiceCode OPTIONAL, + forwardingData [2] ForwardingData OPTIONAL, + imsi [3] IMSI OPTIONAL, + cug-CheckInfo [4] CUG-CheckInfo OPTIONAL, + o-CSI [5] O-CSI OPTIONAL, + extensionContainer [7] ExtensionContainer OPTIONAL, + ccbs-Possible [8] NULL OPTIONAL, + msisdn [9] ISDN-AddressString OPTIONAL, + uu-Data [10] UU-Data OPTIONAL, + allInformationSent [11] NULL OPTIONAL, + ..., + d-csi [12] D-CSI OPTIONAL, + o-BcsmCamelTDPCriteriaList [13] O-BcsmCamelTDPCriteriaList OPTIONAL} + +UU-Data ::= SEQUENCE { + uuIndicator [0] UUIndicator OPTIONAL, + uui [1] UUI OPTIONAL, + uusCFInteraction [2] NULL OPTIONAL, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +UUIndicator ::= OCTET STRING(SIZE (1)) + +-- Octets are coded according to ETS 300 356 +UUI ::= OCTET STRING(SIZE (1..131)) + +-- Octets are coded according to ETS 300 356 +ResumeCallHandlingRes ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +CamelInfo ::= SEQUENCE { + supportedCamelPhases SupportedCamelPhases, + suppress-T-CSI NULL OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ..., + offeredCamel4CSIs [0] OfferedCamel4CSIs OPTIONAL} + +ExtendedRoutingInfo ::= CHOICE { + routingInfo RoutingInfo, + camelRoutingInfo [8] CamelRoutingInfo} + +CamelRoutingInfo ::= SEQUENCE { + forwardingData ForwardingData OPTIONAL, + gmscCamelSubscriptionInfo [0] GmscCamelSubscriptionInfo, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +GmscCamelSubscriptionInfo ::= SEQUENCE { + t-CSI [0] T-CSI OPTIONAL, + o-CSI [1] O-CSI OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ..., + o-BcsmCamelTDP-CriteriaList [3] O-BcsmCamelTDPCriteriaList OPTIONAL, + t-BCSM-CAMEL-TDP-CriteriaList [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL, + d-csi [5] D-CSI OPTIONAL} + +ProvideSIWFSNumberArg ::= SEQUENCE { + gsm-BearerCapability [0] ExternalSignalInfo, + isdn-BearerCapability [1] ExternalSignalInfo, + call-Direction [2] CallDirection, + b-Subscriber-Address [3] ISDN-AddressString, + chosenChannel [4] ExternalSignalInfo, + lowerLayerCompatibility [5] ExternalSignalInfo OPTIONAL, + highLayerCompatibility [6] ExternalSignalInfo OPTIONAL, + extensionContainer [7] ExtensionContainer OPTIONAL, + ...} + +CallDirection ::= OCTET STRING(SIZE (1)) + +-- OCTET 1 +-- bit 1 (direction of call) +-- 0 Mobile Originated Call (MOC) +-- 1 Mobile Terminated Call (MTC) +ProvideSIWFSNumberRes ::= SEQUENCE { + sIWFSNumber [0] ISDN-AddressString, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +SIWFSSignallingModifyArg ::= SEQUENCE { + channelType [0] ExternalSignalInfo OPTIONAL, + chosenChannel [1] ExternalSignalInfo OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +SIWFSSignallingModifyRes ::= SEQUENCE { + chosenChannel [0] ExternalSignalInfo OPTIONAL, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +SetReportingStateArg ::= SEQUENCE { + imsi [0] IMSI OPTIONAL, + lmsi [1] LMSI OPTIONAL, + ccbs-Monitoring [2] ReportingState OPTIONAL, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +ReportingState ::= ENUMERATED {stopMonitoring(0), startMonitoring(1), ... + } + +-- exception handling: +-- reception of values 2-10 shall be mapped to 'stopMonitoring' +-- reception of values > 10 shall be mapped to 'startMonitoring' +SetReportingStateRes ::= SEQUENCE { + ccbs-SubscriberStatus [0] CCBS-SubscriberStatus OPTIONAL, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +CCBS-SubscriberStatus ::= ENUMERATED { + ccbsNotIdle(0), ccbsIdle(1), ccbsNotReachable(2), ... + } + +-- exception handling: +-- reception of values 3-10 shall be mapped to 'ccbsNotIdle' +-- reception of values 11-20 shall be mapped to 'ccbsIdle' +-- reception of values > 20 shall be mapped to 'ccbsNotReachable' +StatusReportArg ::= SEQUENCE { + imsi [0] IMSI, + eventReportData [1] EventReportData OPTIONAL, + callReportdata [2] CallReportData OPTIONAL, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +EventReportData ::= SEQUENCE { + ccbs-SubscriberStatus [0] CCBS-SubscriberStatus OPTIONAL, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +CallReportData ::= SEQUENCE { + monitoringMode [0] MonitoringMode OPTIONAL, + callOutcome [1] CallOutcome OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +MonitoringMode ::= ENUMERATED {a-side(0), b-side(1), ... + } + +-- exception handling: +-- reception of values 2-10 shall be mapped 'a-side' +-- reception of values > 10 shall be mapped to 'b-side' +CallOutcome ::= ENUMERATED {success(0), failure(1), busy(2), ... + } + +-- exception handling: +-- reception of values 3-10 shall be mapped to 'success' +-- reception of values 11-20 shall be mapped to 'failure' +-- reception of values > 20 shall be mapped to 'busy' +StatusReportRes ::= SEQUENCE { + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +RemoteUserFreeArg ::= SEQUENCE { + imsi [0] IMSI, + callInfo [1] ExternalSignalInfo, + ccbs-Feature [2] CCBS-Feature, + translatedB-Number [3] ISDN-AddressString, + replaceB-Number [4] NULL OPTIONAL, + alertingPattern [5] AlertingPattern OPTIONAL, + extensionContainer [6] ExtensionContainer OPTIONAL, + ...} + +RemoteUserFreeRes ::= SEQUENCE { + ruf-Outcome [0] RUF-Outcome, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +RUF-Outcome ::= ENUMERATED { + accepted(0), rejected(1), + noResponseFromFreeMS(2), -- T4 Expiry + noResponseFromBusyMS(3), -- T10 Expiry + udubFromFreeMS(4), udubFromBusyMS(5), ... + } + +-- exception handling: +-- reception of values 6-20 shall be mapped to 'accepted' +-- reception of values 21-30 shall be mapped to 'rejected' +-- reception of values 31-40 shall be mapped to 'noResponseFromFreeMS' +-- reception of values 41-50 shall be mapped to 'noResponseFromBusyMS' +-- reception of values 51-60 shall be mapped to 'udubFromFreeMS' +-- reception of values > 60 shall be mapped to 'udubFromBusyMS' +IST-AlertArg ::= SEQUENCE { + imsi [0] IMSI, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +IST-AlertRes ::= SEQUENCE { + istAlertTimer [0] IST-AlertTimerValue OPTIONAL, + istInformationWithdraw [1] NULL OPTIONAL, + callTerminationIndicator [2] CallTerminationIndicator OPTIONAL, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +IST-CommandArg ::= SEQUENCE { + imsi [0] IMSI, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +IST-CommandRes ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +CallTerminationIndicator ::= ENUMERATED { + terminateCallActivityReferred(0), terminateAllCallActivities(1), ... + } + +-- exception handling: +-- reception of values 2-10 shall be mapped to ' terminateCallActivityReferred ' +-- reception of values > 10 shall be mapped to ' terminateAllCallActivities ' +-- In MSCs not supporting linkage of all call activities, any value received shall +-- be interpreted as ' terminateCallActivityReferred ' +END + diff --git a/MAP/asn_src/GSM/MAP-CallHandlingOperations.asn b/MAP/asn_src/GSM/MAP-CallHandlingOperations.asn new file mode 100644 index 0000000..6926a75 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-CallHandlingOperations.asn @@ -0,0 +1,123 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-CallHandlingOperations {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CallHandlingOperations(7) + version8(8)} DEFINITIONS ::= +BEGIN + +EXPORTS + sendRoutingInfo, provideRoamingNumber, resumeCallHandling, + provideSIWFSNumber, siwfs-SignallingModify, setReportingState, + statusReport, remoteUserFree, ist-Alert, ist-Command; + +IMPORTS + OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + systemFailure, dataMissing, unexpectedDataValue, facilityNotSupported, + or-NotAllowed, unknownSubscriber, numberChanged, + bearerServiceNotProvisioned, teleserviceNotProvisioned, + noRoamingNumberAvailable, absentSubscriber, busySubscriber, + noSubscriberReply, callBarred, forwardingViolation, forwardingFailed, + cug-Reject, resourceLimitation, incompatibleTerminal, + unidentifiedSubscriber + FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-Errors(10) version8(8)} + SendRoutingInfoArg, SendRoutingInfoRes, ProvideRoamingNumberArg, + ProvideRoamingNumberRes, ResumeCallHandlingArg, ResumeCallHandlingRes, + ProvideSIWFSNumberArg, ProvideSIWFSNumberRes, SIWFSSignallingModifyArg, + SIWFSSignallingModifyRes, SetReportingStateArg, SetReportingStateRes, + StatusReportArg, StatusReportRes, RemoteUserFreeArg, RemoteUserFreeRes, + IST-AlertArg, IST-AlertRes, IST-CommandArg, IST-CommandRes + FROM MAP-CH-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CH-DataTypes(13) + version8(8)}; + +sendRoutingInfo OPERATION ::= { --Timer m + -- The timer is set to the upper limit of the range if the GMSC supports pre-paging. + ARGUMENT SendRoutingInfoArg + RESULT SendRoutingInfoRes + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported | + or-NotAllowed | unknownSubscriber | numberChanged | + bearerServiceNotProvisioned | teleserviceNotProvisioned | + absentSubscriber | busySubscriber | noSubscriberReply | callBarred | + cug-Reject | forwardingViolation} + CODE local:22} + +provideRoamingNumber OPERATION ::= { --Timer m + -- The timer is set to the upper limit of the range if the HLR supports pre-paging. + ARGUMENT ProvideRoamingNumberArg + RESULT ProvideRoamingNumberRes + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported | + or-NotAllowed | absentSubscriber | noRoamingNumberAvailable} + CODE local:4} + +resumeCallHandling OPERATION ::= { --Timer m + ARGUMENT ResumeCallHandlingArg + RESULT ResumeCallHandlingRes + -- optional + ERRORS + {forwardingFailed | or-NotAllowed | unexpectedDataValue | dataMissing} + CODE local:6} + +provideSIWFSNumber OPERATION ::= { --Timer m + ARGUMENT ProvideSIWFSNumberArg + RESULT ProvideSIWFSNumberRes + ERRORS + {resourceLimitation | dataMissing | unexpectedDataValue | systemFailure} + CODE local:31} + +siwfs-SignallingModify OPERATION ::= { --Timer m + ARGUMENT SIWFSSignallingModifyArg + RESULT SIWFSSignallingModifyRes + -- optional + ERRORS + {resourceLimitation | dataMissing | unexpectedDataValue | systemFailure} + CODE local:32} + +setReportingState OPERATION ::= { --Timer m + ARGUMENT SetReportingStateArg + RESULT SetReportingStateRes + -- optional + ERRORS + {systemFailure | unidentifiedSubscriber | unexpectedDataValue | dataMissing + | resourceLimitation | facilityNotSupported} + CODE local:73} + +statusReport OPERATION ::= { --Timer m + ARGUMENT StatusReportArg + RESULT StatusReportRes + -- optional + ERRORS + {unknownSubscriber | systemFailure | unexpectedDataValue | dataMissing} + CODE local:74} + +remoteUserFree OPERATION ::= { --Timer ml + ARGUMENT RemoteUserFreeArg + RESULT RemoteUserFreeRes + ERRORS + {unexpectedDataValue | dataMissing | incompatibleTerminal | + absentSubscriber | systemFailure | busySubscriber} + CODE local:75} + +ist-Alert OPERATION ::= { --Timer m + ARGUMENT IST-AlertArg + RESULT IST-AlertRes + -- optional + ERRORS + {unexpectedDataValue | resourceLimitation | unknownSubscriber | + systemFailure | facilityNotSupported} + CODE local:87} + +ist-Command OPERATION ::= { --Timer m + ARGUMENT IST-CommandArg + RESULT IST-CommandRes + -- optional + ERRORS + {unexpectedDataValue | resourceLimitation | unknownSubscriber | + systemFailure | facilityNotSupported} + CODE local:88} + +END + diff --git a/MAP/asn_src/GSM/MAP-CommonDataTypes.asn b/MAP/asn_src/GSM/MAP-CommonDataTypes.asn new file mode 100644 index 0000000..8a75251 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-CommonDataTypes.asn @@ -0,0 +1,449 @@ +MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-CommonDataTypes(18) version8(8)} DEFINITIONS +IMPLICIT TAGS ::= +BEGIN + +EXPORTS + -- general data types and values + AddressString, ISDN-AddressString, maxISDN-AddressLength, FTN-AddressString, + ISDN-SubaddressString, ExternalSignalInfo, Ext-ExternalSignalInfo, + AccessNetworkSignalInfo, SignalInfo, maxSignalInfoLength, + AlertingPattern, + -- data types for numbering and identification + IMSI, TMSI, Identity, SubscriberId, IMEI, HLR-List, LMSI, GlobalCellId, + NetworkResource, NAEA-PreferredCI, NAEA-CIC, ASCI-CallReference, + SubscriberIdentity, + -- data types for CAMEL + CellGlobalIdOrServiceAreaIdOrLAI, + -- data types for subscriber management + BasicServiceCode, Ext-BasicServiceCode, EMLPP-Info, EMLPP-Priority, + MC-SS-Info, MaxMC-Bearers, MC-Bearers, + Ext-SS-Status, + -- data types for geographic location + AgeOfLocationInformation, LCSClientExternalID, LCSClientInternalID, + LCSServiceTypeID; + +IMPORTS + TeleserviceCode, Ext-TeleserviceCode + FROM MAP-TS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-TS-Code(19) version8(8)} + BearerServiceCode, Ext-BearerServiceCode + FROM MAP-BS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-BS-Code(20) version8(8)} + SS-Code + FROM MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-SS-Code(15) version8(8)} + ExtensionContainer + FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21) + version8(8)}; + +-- general data types +TBCD-STRING ::= OCTET STRING + +-- This type (Telephony Binary Coded Decimal String) is used to +-- represent several digits from 0 through 9, *, #, a, b, c, two +-- digits per octet, each digit encoded 0000 to 1001 (0 to 9), +-- 1010 (*), 1011 (#), 1100 (a), 1101 (b) or 1110 (c); 1111 used +-- as filler when there is an odd number of digits. +-- bits 8765 of octet n encoding digit 2n +-- bits 4321 of octet n encoding digit 2(n-1) +1 +AddressString ::= OCTET STRING(SIZE (1..maxAddressLength)) + +-- This type is used to represent a number for addressing +-- purposes. It is composed of +-- a) one octet for nature of address, and numbering plan +-- indicator. +-- b) digits of an address encoded as TBCD-String. +-- a) The first octet includes a one bit extension indicator, a +-- 3 bits nature of address indicator and a 4 bits numbering +-- plan indicator, encoded as follows: +-- bit 8: 1 (no extension) +-- bits 765: nature of address indicator +-- 000 unknown +-- 001 international number +-- 010 national significant number +-- 011 network specific number +-- 100 subscriber number +-- 101 reserved +-- 110 abbreviated number +-- 111 reserved for extension +-- bits 4321: numbering plan indicator +-- 0000 unknown +-- 0001 ISDN/Telephony Numbering Plan (Rec ITU-T E.164) +-- 0010 spare +-- 0011 data numbering plan (ITU-T Rec X.121) +-- 0100 telex numbering plan (ITU-T Rec F.69) +-- 0101 spare +-- 0110 land mobile numbering plan (ITU-T Rec E.212) +-- 0111 spare +-- 1000 national numbering plan +-- 1001 private numbering plan +-- 1111 reserved for extension +-- all other values are reserved. +-- b) The following octets representing digits of an address +-- encoded as a TBCD-STRING. +maxAddressLength INTEGER ::= 20 + +-- vances@motivity.ca Mon Dec 20 2004 +-- There apears to be a bug in asn1 which we need to work around here +--- ISDN-AddressString ::= AddressString(SIZE (1..maxISDN-AddressLength)) +ISDN-AddressString ::= AddressString(SIZE (1..9)) + +-- This type is used to represent ISDN numbers. +maxISDN-AddressLength INTEGER ::= 9 + +-- vances@motivity.ca Mon Dec 20 2004 +-- There apears to be a bug in asn1 which we need to work around here +-- FTN-AddressString ::= AddressString(SIZE (1..maxFTN-AddressLength)) +FTN-AddressString ::= AddressString(SIZE (1..15)) + +-- This type is used to represent forwarded-to numbers. +-- For long forwarded-to numbers (longer than 15 digits) NPI shall be unknown; +-- if NAI = international the first digits represent the country code (CC) +-- and the network destination code (NDC) as for E.164. +maxFTN-AddressLength INTEGER ::= 15 + +ISDN-SubaddressString ::= OCTET STRING(SIZE (1..maxISDN-SubaddressLength)) + +-- This type is used to represent ISDN subaddresses. +-- It is composed of +-- a) one octet for type of subaddress and odd/even indicator. +-- b) 20 octets for subaddress information. +-- a) The first octet includes a one bit extension indicator, a +-- 3 bits type of subaddress and a one bit odd/even indicator, +-- encoded as follows: +-- bit 8: 1 (no extension) +-- bits 765: type of subaddress +-- 000 NSAP (X.213/ISO 8348 AD2) +-- 010 User Specified +-- All other values are reserved +-- bit 4: odd/even indicator +-- 0 even number of address signals +-- 1 odd number of address signals +-- The odd/even indicator is used when the type of subaddress +-- is "user specified" and the coding is BCD. +-- bits 321: 000 (unused) +-- b) Subaddress information. +-- The NSAP X.213/ISO8348AD2 address shall be formatted as specified +-- by octet 4 which contains the Authority and Format Identifier +-- (AFI). The encoding is made according to the "preferred binary +-- encoding" as defined in X.213/ISO834AD2. For the definition +-- of this type of subaddress, see ITU-T Rec I.334. +-- For User-specific subaddress, this field is encoded according +-- to the user specification, subject to a maximum length of 20 +-- octets. When interworking with X.25 networks BCD coding should +-- be applied. +maxISDN-SubaddressLength INTEGER ::= 21 + +ExternalSignalInfo ::= SEQUENCE { + protocolId ProtocolId, + signalInfo SignalInfo, + -- Information about the internal structure is given in + -- clause 7.6.9. + extensionContainer ExtensionContainer OPTIONAL, + -- extensionContainer must not be used in version 2 + ...} + +SignalInfo ::= OCTET STRING(SIZE (1..maxSignalInfoLength)) + +maxSignalInfoLength INTEGER ::= 200 + +-- This NamedValue represents the theoretical maximum number of octets which is +-- available to carry a single instance of the SignalInfo data type, +-- without requiring segmentation to cope with the network layer service. +-- However, the actual maximum size available for an instance of the data +-- type may be lower, especially when other information elements +-- have to be included in the same component. +ProtocolId ::= ENUMERATED { + gsm-0408(1), gsm-0806(2), + gsm-BSSMAP(3), + -- Value 3 is reserved and must not be used + ets-300102-1(4)} + +Ext-ExternalSignalInfo ::= SEQUENCE { + ext-ProtocolId Ext-ProtocolId, + signalInfo SignalInfo, + -- Information about the internal structure is given in + -- clause 7.6.9.10 + extensionContainer ExtensionContainer OPTIONAL, + ...} + +Ext-ProtocolId ::= ENUMERATED {ets-300356(1), ... } + +-- exception handling: +-- For Ext-ExternalSignalInfo sequences containing this parameter with any +-- other value than the ones listed the receiver shall ignore the whole +-- Ext-ExternalSignalInfo sequence. +AccessNetworkSignalInfo ::= SEQUENCE { + accessNetworkProtocolId AccessNetworkProtocolId, + signalInfo LongSignalInfo, + -- Information about the internal structure is given in clause 7.6.9.1 + extensionContainer ExtensionContainer OPTIONAL, + ...} + +LongSignalInfo ::= OCTET STRING(SIZE (1..maxLongSignalInfoLength)) + +maxLongSignalInfoLength INTEGER ::= 2560 + +-- This Named Value represents the maximum number of octets which is available +-- to carry a single instance of the LongSignalInfo data type using +-- White Book SCCP with the maximum number of segments. +-- It takes account of the octets used by the lower layers of the protocol, and +-- other information elements which may be included in the same component. +AccessNetworkProtocolId ::= ENUMERATED {ts3G-48006(1), ts3G-25413(2), ... } + +-- exception handling: +-- For AccessNetworkSignalInfo sequences containing this parameter with any +-- other value than the ones listed the receiver shall ignore the whole +-- AccessNetworkSignalInfo sequence. +AlertingPattern ::= OCTET STRING(SIZE (1)) + +-- This type is used to represent Alerting Pattern +-- bits 8765 : 0000 (unused) +-- bits 43 : type of Pattern +-- 00 level +-- 01 category +-- 10 category +-- all other values are reserved. +-- bits 21 : type of alerting +alertingLevel-0 AlertingPattern ::= '00000000'B + +alertingLevel-1 AlertingPattern ::= '00000001'B + +alertingLevel-2 AlertingPattern ::= '00000010'B + +-- all other values of Alerting level are reserved +-- Alerting Levels are defined in GSM 02.07 +alertingCategory-1 AlertingPattern ::= '00000100'B + +alertingCategory-2 AlertingPattern ::= '00000101'B + +alertingCategory-3 AlertingPattern ::= '00000110'B + +alertingCategory-4 AlertingPattern ::= '00000111'B + +alertingCategory-5 AlertingPattern ::= '00001000'B + +-- all other values of Alerting Category are reserved +-- Alerting categories are defined in GSM 02.07 +-- data types for numbering and identification +IMSI ::= TBCD-STRING(SIZE (3..8)) + +-- digits of MCC, MNC, MSIN are concatenated in this order. +Identity ::= CHOICE {imsi IMSI, + imsi-WithLMSI IMSI-WithLMSI} + +IMSI-WithLMSI ::= SEQUENCE { + imsi IMSI, + lmsi LMSI, + -- a special value 00000000 indicates that the LMSI is not in use + ...} + +ASCI-CallReference ::= TBCD-STRING(SIZE (1..8)) + +-- digits of VGCS/VBC-area,Group-ID are concatenated in this order. +TMSI ::= OCTET STRING(SIZE (1..4)) + +SubscriberId ::= CHOICE {imsi [0] IMSI, + tmsi [1] TMSI} + +IMEI ::= TBCD-STRING(SIZE (8)) + +-- Refers to International Mobile Station Equipment Identity +-- and Software Version Number (SVN) defined in TS 3GPP TS 23.003 [17]. +-- If the SVN is not present the last octet shall contain the +-- digit 0 and a filler. +-- If present the SVN shall be included in the last octet. +HLR-Id ::= IMSI + +-- leading digits of IMSI, i.e. (MCC, MNC, leading digits of +-- MSIN) forming HLR Id defined in TS 3GPP TS 23.003 [17]. +HLR-List ::= SEQUENCE SIZE (1..maxNumOfHLR-Id) OF HLR-Id + +maxNumOfHLR-Id INTEGER ::= 50 + +LMSI ::= OCTET STRING(SIZE (4)) + +GlobalCellId ::= OCTET STRING(SIZE (5..7)) + +-- Refers to Cell Global Identification defined in TS 3GPP TS 23.003 [17]. +-- The internal structure is defined as follows: +-- octet 1 bits 4321 Mobile Country Code 1st digit +-- bits 8765 Mobile Country Code 2nd digit +-- octet 2 bits 4321 Mobile Country Code 3rd digit +-- bits 8765 Mobile Network Code 3rd digit +-- or filler (1111) for 2 digit MNCs +-- octet 3 bits 4321 Mobile Network Code 1st digit +-- bits 8765 Mobile Network Code 2nd digit +-- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008 [35] +-- octets 6 and 7 Cell Identity (CI) according to TS 3GPP TS 24.008 [35] +NetworkResource ::= ENUMERATED { + plmn(0), hlr(1), vlr(2), pvlr(3), controllingMSC(4), vmsc(5), eir(6), rss(7) +} + +NAEA-PreferredCI ::= SEQUENCE { + naea-PreferredCIC [0] NAEA-CIC, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +NAEA-CIC ::= OCTET STRING(SIZE (3)) + +-- The internal structure is defined by the Carrier Identification +-- parameter in ANSI T1.113.3. Carrier codes between “000” and “999” may +-- be encoded as 3 digits using “000” to “999” or as 4 digits using +-- “0000” to “0999”. Carrier codes between “1000” and “9999” are encoded +-- using 4 digits. +SubscriberIdentity ::= CHOICE { + imsi [0] IMSI, + msisdn [1] ISDN-AddressString} + +LCSClientExternalID ::= SEQUENCE { + externalAddress [0] ISDN-AddressString OPTIONAL, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +LCSClientInternalID ::= ENUMERATED { + broadcastService(0), o-andM-HPLMN(1), o-andM-VPLMN(2), anonymousLocation(3), + targetMSsubscribedService(4), ... + } + +-- for a CAMEL phase 3 PLMN operator client, the value targetMSsubscribedService shall be used +LCSServiceTypeID ::= INTEGER(0..127) + +-- the integer values 0-63 are reserved for Standard LCS service types +-- the integer values 64-127 are reserved for Non Standard LCS service types +emergencyServices LCSServiceTypeID ::= 0 + +emergencyAlertServices LCSServiceTypeID ::= 1 + +personTracking LCSServiceTypeID ::= 2 + +fleetManagement LCSServiceTypeID ::= 3 + +assetManagement LCSServiceTypeID ::= 4 + +trafficCongestionReporting LCSServiceTypeID ::= 5 + +roadsideAssistance LCSServiceTypeID ::= 6 + +routingToNearestCommercialEnterprise LCSServiceTypeID ::= 7 + +navigation LCSServiceTypeID ::= 8 + +citySightseeing LCSServiceTypeID ::= 9 + +localizedAdvertising LCSServiceTypeID ::= 10 + +mobileYellowPages LCSServiceTypeID ::= 11 + +-- The values of LCSServiceTypeID are defined according to 3GPP TS 22.071. +-- data types for CAMEL +CellGlobalIdOrServiceAreaIdOrLAI ::= CHOICE { + cellGlobalIdOrServiceAreaIdFixedLength + [0] CellGlobalIdOrServiceAreaIdFixedLength, + laiFixedLength [1] LAIFixedLength} + +CellGlobalIdOrServiceAreaIdFixedLength ::= OCTET STRING(SIZE (7)) + +-- Refers to Cell Global Identification or Service Are Identification +-- defined in 3GPP TS 23.003. +-- The internal structure is defined as follows: +-- octet 1 bits 4321 Mobile Country Code 1st digit +-- bits 8765 Mobile Country Code 2nd digit +-- octet 2 bits 4321 Mobile Country Code 3rd digit +-- bits 8765 Mobile Network Code 3rd digit +-- or filler (1111) for 2 digit MNCs +-- octet 3 bits 4321 Mobile Network Code 1st digit +-- bits 8765 Mobile Network Code 2nd digit +-- octets 4 and 5 Location Area Code according to 3GPP TS 24.008 +-- octets 6 and 7 Cell Identity (CI) value or +-- Service Area Code (SAC) value +-- according to 3GPP TS 23.003 +LAIFixedLength ::= OCTET STRING(SIZE (5)) + +-- Refers to Location Area Identification defined in TS 3GPP TS 23.003 [17]. +-- The internal structure is defined as follows: +-- octet 1 bits 4321 Mobile Country Code 1st digit +-- bits 8765 Mobile Country Code 2nd digit +-- octet 2 bits 4321 Mobile Country Code 3rd digit +-- bits 8765 Mobile Network Code 3rd digit +-- or filler (1111) for 2 digit MNCs +-- octet 3 bits 4321 Mobile Network Code 1st digit +-- bits 8765 Mobile Network Code 2nd digit +-- octets 4 and 5 Location Area Code according to TS 3GPP TS 24.008 [35] +-- data types for subscriber management +BasicServiceCode ::= CHOICE { + bearerService [2] BearerServiceCode, + teleservice [3] TeleserviceCode} + +Ext-BasicServiceCode ::= CHOICE { + ext-BearerService [2] Ext-BearerServiceCode, + ext-Teleservice [3] Ext-TeleserviceCode} + +EMLPP-Info ::= SEQUENCE { + maximumentitledPriority EMLPP-Priority, + defaultPriority EMLPP-Priority, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +EMLPP-Priority ::= INTEGER(0..15) + +-- The mapping from the values A,B,0,1,2,3,4 to the integer-value is +-- specified as follows where A is the highest and 4 is the lowest +-- priority level +-- the integer values 7-15 are spare and shall be mapped to value 4 +priorityLevelA EMLPP-Priority ::= 6 + +priorityLevelB EMLPP-Priority ::= 5 + +priorityLevel0 EMLPP-Priority ::= 0 + +priorityLevel1 EMLPP-Priority ::= 1 + +priorityLevel2 EMLPP-Priority ::= 2 + +priorityLevel3 EMLPP-Priority ::= 3 + +priorityLevel4 EMLPP-Priority ::= 4 + +MC-SS-Info ::= SEQUENCE { + ss-Code [0] SS-Code, + ss-Status [1] Ext-SS-Status, + nbrSB [2] MaxMC-Bearers, + nbrUser [3] MC-Bearers, + extensionContainer [4] ExtensionContainer OPTIONAL, + ...} + +MaxMC-Bearers ::= INTEGER(2..maxNumOfMC-Bearers) + +MC-Bearers ::= INTEGER(1..maxNumOfMC-Bearers) + +maxNumOfMC-Bearers INTEGER ::= 7 + +Ext-SS-Status ::= OCTET STRING(SIZE (1..5)) + +-- OCTET 1: +-- +-- bits 8765: 0000 (unused) +-- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit", +-- representing supplementary service state information +-- as defined in TS 3GPP TS 23.011 [22] +-- bit 4: "Q bit" +-- bit 3: "P bit" +-- bit 2: "R bit" +-- bit 1: "A bit" +-- OCTETS 2-5: reserved for future use. They shall be discarded if +-- received and not understood. +-- data types for geographic location +AgeOfLocationInformation ::= INTEGER(0..32767) + +-- the value represents the elapsed time in minutes since the last +-- network contact of the mobile station (i.e. the actuality of the +-- location information). +-- value “0” indicates that the MS is currently in contact with the +-- network +-- value “32767” indicates that the location information is at least +-- 32767 minutes old +END + diff --git a/MAP/asn_src/GSM/MAP-DialogueInformation.asn b/MAP/asn_src/GSM/MAP-DialogueInformation.asn new file mode 100644 index 0000000..8869374 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-DialogueInformation.asn @@ -0,0 +1,114 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-DialogueInformation {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-DialogueInformation(3) + version8(8)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +EXPORTS + map-DialogueAS, MAP-DialoguePDU, map-ProtectedDialogueAS, + MAP-ProtectedDialoguePDU; + +IMPORTS + gsm-NetworkId, as-Id + FROM MobileDomainDefinitions {itu-t(0) identified-organization(4) + etsi(0) mobileDomain(0) mobileDomainDefinitions(0) version1(1)} + AddressString + FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18) + version8(8)} + ExtensionContainer + FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21) + version8(8)} + SecurityHeader, ProtectedPayload + FROM MAP-ST-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ST-DataTypes(27) + version8(8)}; + +-- abstract syntax name for MAP-DialoguePDU +map-DialogueAS OBJECT IDENTIFIER ::= + {gsm-NetworkId as-Id map-DialoguePDU(1) version1(1)} + +MAP-DialoguePDU ::= CHOICE { + map-open [0] MAP-OpenInfo, + map-accept [1] MAP-AcceptInfo, + map-close [2] MAP-CloseInfo, + map-refuse [3] MAP-RefuseInfo, + map-userAbort [4] MAP-UserAbortInfo, + map-providerAbort [5] MAP-ProviderAbortInfo} + +MAP-OpenInfo ::= SEQUENCE { + destinationReference [0] AddressString OPTIONAL, + originationReference [1] AddressString OPTIONAL, + ..., + extensionContainer ExtensionContainer OPTIONAL} + -- extensionContainer must not be used in version 2 + +MAP-AcceptInfo ::= SEQUENCE { + ..., + extensionContainer ExtensionContainer OPTIONAL} + -- extensionContainer must not be used in version 2 + +MAP-CloseInfo ::= SEQUENCE { + ..., + extensionContainer ExtensionContainer OPTIONAL} + -- extensionContainer must not be used in version 2 + +MAP-RefuseInfo ::= SEQUENCE { + reason Reason, + ..., + extensionContainer ExtensionContainer OPTIONAL, + -- extensionContainer must not be used in version 2 + alternativeApplicationContext OBJECT IDENTIFIER OPTIONAL} + -- alternativeApplicationContext must not be used in version 2 + +Reason ::= ENUMERATED { + noReasonGiven(0), invalidDestinationReference(1), + invalidOriginatingReference(2), encapsulatedAC-NotSupported(3), + transportProtectionNotAdequate(4)} + +-- encapsulatedAC-NotSupported and transportProtectionNotAdequate must not be used in +-- dialogues with an AC different from secureTransportHandling +MAP-UserAbortInfo ::= SEQUENCE { + map-UserAbortChoice MAP-UserAbortChoice, + ..., + extensionContainer ExtensionContainer OPTIONAL} + -- extensionContainer must not be used in version 2 + +MAP-UserAbortChoice ::= CHOICE { + userSpecificReason [0] NULL, + userResourceLimitation [1] NULL, + resourceUnavailable [2] ResourceUnavailableReason, + applicationProcedureCancellation [3] ProcedureCancellationReason} + +ResourceUnavailableReason ::= ENUMERATED { + shortTermResourceLimitation(0), longTermResourceLimitation(1)} + +ProcedureCancellationReason ::= ENUMERATED { + handoverCancellation(0), radioChannelRelease(1), networkPathRelease(2), + callRelease(3), associatedProcedureFailure(4), tandemDialogueRelease(5), + remoteOperationsFailure(6)} + +MAP-ProviderAbortInfo ::= SEQUENCE { + map-ProviderAbortReason MAP-ProviderAbortReason, + ..., + extensionContainer ExtensionContainer OPTIONAL} + -- extensionContainer must not be used in version 2 + +MAP-ProviderAbortReason ::= ENUMERATED {abnormalDialogue(0), invalidPDU(1)} + +-- abstract syntax name for MAP-ProtectedDialoguePDU +map-ProtectedDialogueAS OBJECT IDENTIFIER ::= + {gsm-NetworkId as-Id map-ProtectedDialoguePDU(3) version1(1)} + +MAP-ProtectedDialoguePDU ::= SEQUENCE { + encapsulatedAC OBJECT IDENTIFIER, + securityHeader SecurityHeader OPTIONAL, + protectedPayload ProtectedPayload OPTIONAL, + ...} + +-- The protectedPayload carries the result of applying the security function +-- defined in 3GPP TS 33.200 to the encoding of the securely transported +-- MAP-DialoguePDU +END + diff --git a/MAP/asn_src/GSM/MAP-ER-DataTypes.asn b/MAP/asn_src/GSM/MAP-ER-DataTypes.asn new file mode 100644 index 0000000..5772e23 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-ER-DataTypes.asn @@ -0,0 +1,332 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-ER-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-ER-DataTypes(17) version8(8)} DEFINITIONS +IMPLICIT TAGS ::= +BEGIN + +EXPORTS + RoamingNotAllowedParam, CallBarredParam, CUG-RejectParam, + SS-IncompatibilityCause, PW-RegistrationFailureCause, + SM-DeliveryFailureCause, SystemFailureParam, DataMissingParam, + UnexpectedDataParam, FacilityNotSupParam, OR-NotAllowedParam, + UnknownSubscriberParam, NumberChangedParam, UnidentifiedSubParam, + IllegalSubscriberParam, IllegalEquipmentParam, BearerServNotProvParam, + TeleservNotProvParam, TracingBufferFullParam, NoRoamingNbParam, + AbsentSubscriberParam, BusySubscriberParam, NoSubscriberReplyParam, + ForwardingViolationParam, ForwardingFailedParam, ATI-NotAllowedParam, + SubBusyForMT-SMS-Param, MessageWaitListFullParam, AbsentSubscriberSM-Param, + AbsentSubscriberDiagnosticSM, ResourceLimitationParam, NoGroupCallNbParam, + IncompatibleTerminalParam, ShortTermDenialParam, LongTermDenialParam, + UnauthorizedRequestingNetwork-Param, UnauthorizedLCSClient-Param, + PositionMethodFailure-Param, UnknownOrUnreachableLCSClient-Param, + MM-EventNotSupported-Param, SecureTransportErrorParam, + ATSI-NotAllowedParam, ATM-NotAllowedParam, IllegalSS-OperationParam, + SS-NotAvailableParam, SS-SubscriptionViolationParam, + InformationNotAvailableParam, TargetCellOutsideGCA-Param; + +IMPORTS + SS-Status + FROM MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-SS-DataTypes(14) + version8(8)} + SignalInfo, BasicServiceCode, NetworkResource + FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18) + version8(8)} + SecurityHeader, ProtectedPayload + FROM MAP-ST-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ST-DataTypes(27) + version8(8)} + SS-Code + FROM MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-SS-Code(15) version8(8)} + ExtensionContainer + FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21) + version8(8)}; + +RoamingNotAllowedParam ::= SEQUENCE { + roamingNotAllowedCause RoamingNotAllowedCause, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +RoamingNotAllowedCause ::= ENUMERATED { + plmnRoamingNotAllowed(0), operatorDeterminedBarring(3)} + +CallBarredParam ::= CHOICE { + callBarringCause CallBarringCause, + -- call BarringCause must not be used in version 3 and higher + extensibleCallBarredParam ExtensibleCallBarredParam} + -- extensibleCallBarredParam must not be used in version <3 + +CallBarringCause ::= ENUMERATED {barringServiceActive(0), operatorBarring(1)} + +ExtensibleCallBarredParam ::= SEQUENCE { + callBarringCause CallBarringCause OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ..., + unauthorisedMessageOriginator [1] NULL OPTIONAL} + +CUG-RejectParam ::= SEQUENCE { + cug-RejectCause CUG-RejectCause OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +CUG-RejectCause ::= ENUMERATED { + incomingCallsBarredWithinCUG(0), subscriberNotMemberOfCUG(1), + requestedBasicServiceViolatesCUG-Constraints(5), + calledPartySS-InteractionViolation(7)} + +SS-IncompatibilityCause ::= SEQUENCE { + ss-Code [1] SS-Code OPTIONAL, + basicService BasicServiceCode OPTIONAL, + ss-Status [4] SS-Status OPTIONAL, + ...} + +PW-RegistrationFailureCause ::= ENUMERATED { + undetermined(0), invalidFormat(1), newPasswordsMismatch(2)} + +SM-EnumeratedDeliveryFailureCause ::= ENUMERATED { + memoryCapacityExceeded(0), equipmentProtocolError(1), + equipmentNotSM-Equipped(2), unknownServiceCentre(3), sc-Congestion(4), + invalidSME-Address(5), subscriberNotSC-Subscriber(6)} + +SM-DeliveryFailureCause ::= SEQUENCE { + sm-EnumeratedDeliveryFailureCause SM-EnumeratedDeliveryFailureCause, + diagnosticInfo SignalInfo OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +AbsentSubscriberSM-Param ::= SEQUENCE { + absentSubscriberDiagnosticSM + AbsentSubscriberDiagnosticSM OPTIONAL, + -- AbsentSubscriberDiagnosticSM can be either for non-GPRS + -- or for GPRS + extensionContainer ExtensionContainer OPTIONAL, + ..., + additionalAbsentSubscriberDiagnosticSM + [0] AbsentSubscriberDiagnosticSM OPTIONAL} + +-- if received, additionalAbsentSubscriberDiagnosticSM +-- is for GPRS and absentSubscriberDiagnosticSM is +-- for non-GPRS +AbsentSubscriberDiagnosticSM ::= INTEGER(0..255) + +-- AbsentSubscriberDiagnosticSM values are defined in 3GPP TS 23.040 +SystemFailureParam ::= CHOICE { + networkResource NetworkResource, + -- networkResource must not be used in version 3 + extensibleSystemFailureParam ExtensibleSystemFailureParam} + -- extensibleSystemFailureParam must not be used in version <3 + +ExtensibleSystemFailureParam ::= SEQUENCE { + networkResource NetworkResource OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +DataMissingParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +UnexpectedDataParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +FacilityNotSupParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ..., + shapeOfLocationEstimateNotSupported [0] NULL OPTIONAL, + neededLcsCapabilityNotSupportedInServingNode [1] NULL OPTIONAL} + +OR-NotAllowedParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +UnknownSubscriberParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ..., + unknownSubscriberDiagnostic UnknownSubscriberDiagnostic OPTIONAL} + +UnknownSubscriberDiagnostic ::= ENUMERATED { + imsiUnknown(0), gprsSubscriptionUnknown(1), ..., + npdbMismatch(2)} + +-- if unknown values are received in +-- UnknownSubscriberDiagnostic they shall be discarded +NumberChangedParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +UnidentifiedSubParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +IllegalSubscriberParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +IllegalEquipmentParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +BearerServNotProvParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +TeleservNotProvParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +TracingBufferFullParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +NoRoamingNbParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +AbsentSubscriberParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ..., + absentSubscriberReason [0] AbsentSubscriberReason OPTIONAL} + +AbsentSubscriberReason ::= ENUMERATED { + imsiDetach(0), restrictedArea(1), noPageResponse(2), ..., + purgedMS(3)} + +-- exception handling: at reception of other values than the ones listed the +-- AbsentSubscriberReason shall be ignored. +-- The AbsentSubscriberReason: purgedMS is defined for the Super-Charger feature +-- (see TS 23.116). If this value is received in a Provide Roaming Number response +-- it shall be mapped to the AbsentSubscriberReason: imsiDetach in the Send Routeing +-- Information response +BusySubscriberParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ..., + ccbs-Possible [0] NULL OPTIONAL, + ccbs-Busy [1] NULL OPTIONAL} + +NoSubscriberReplyParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +ForwardingViolationParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +ForwardingFailedParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +ATI-NotAllowedParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +ATSI-NotAllowedParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +ATM-NotAllowedParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +IllegalSS-OperationParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +SS-NotAvailableParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +SS-SubscriptionViolationParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +InformationNotAvailableParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +SubBusyForMT-SMS-Param ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ..., + gprsConnectionSuspended NULL OPTIONAL} + +-- If GprsConnectionSuspended is not understood it shall +-- be discarded +MessageWaitListFullParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +ResourceLimitationParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +NoGroupCallNbParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +IncompatibleTerminalParam ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +ShortTermDenialParam ::= SEQUENCE {...} + +LongTermDenialParam ::= SEQUENCE {...} + +UnauthorizedRequestingNetwork-Param ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +UnauthorizedLCSClient-Param ::= SEQUENCE { + unauthorizedLCSClient-Diagnostic + [0] UnauthorizedLCSClient-Diagnostic OPTIONAL, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +UnauthorizedLCSClient-Diagnostic ::= ENUMERATED { + noAdditionalInformation(0), clientNotInMSPrivacyExceptionList(1), + callToClientNotSetup(2), privacyOverrideNotApplicable(3), + disallowedByLocalRegulatoryRequirements(4), ..., + unauthorizedPrivacyClass(5), + unauthorizedCallSessionUnrelatedExternalClient(6), + unauthorizedCallSessionRelatedExternalClient(7)} + +-- exception handling: +-- any unrecognized value shall be ignored +PositionMethodFailure-Param ::= SEQUENCE { + positionMethodFailure-Diagnostic + [0] PositionMethodFailure-Diagnostic OPTIONAL, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +PositionMethodFailure-Diagnostic ::= ENUMERATED { + congestion(0), insufficientResources(1), insufficientMeasurementData(2), + inconsistentMeasurementData(3), locationProcedureNotCompleted(4), + locationProcedureNotSupportedByTargetMS(5), qoSNotAttainable(6), + positionMethodNotAvailableInNetwork(7), + positionMethodNotAvailableInLocationArea(8), ... + } + +-- exception handling: +-- any unrecognized value shall be ignored +UnknownOrUnreachableLCSClient-Param ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +MM-EventNotSupported-Param ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +TargetCellOutsideGCA-Param ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +SecureTransportErrorParam ::= SEQUENCE { + securityHeader SecurityHeader, + protectedPayload ProtectedPayload OPTIONAL} + +-- The protectedPayload carries the result of applying the security function +-- defined in 3GPP TS 33.200 to the encoding of the securely transported error +-- parameter +END + diff --git a/MAP/asn_src/GSM/MAP-Errors.asn b/MAP/asn_src/GSM/MAP-Errors.asn new file mode 100644 index 0000000..7f7cd69 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-Errors.asn @@ -0,0 +1,358 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-Errors(10) version8(8)} DEFINITIONS ::= +BEGIN + +EXPORTS + -- generic errors + systemFailure, dataMissing, unexpectedDataValue, facilityNotSupported, + incompatibleTerminal, + resourceLimitation, + -- identification and numbering errors + unknownSubscriber, numberChanged, unknownMSC, unidentifiedSubscriber, + unknownEquipment, + -- subscription errors + roamingNotAllowed, illegalSubscriber, illegalEquipment, + bearerServiceNotProvisioned, + teleserviceNotProvisioned, + -- handover errors + noHandoverNumberAvailable, subsequentHandoverFailure, + targetCellOutsideGroupCallArea, + -- operation and maintenance errors + tracingBufferFull, + -- call handling errors + or-NotAllowed, noRoamingNumberAvailable, busySubscriber, noSubscriberReply, + absentSubscriber, callBarred, forwardingViolation, forwardingFailed, + cug-Reject, + -- any time interrogation errors + ati-NotAllowed, + -- any time information handling errors + atsi-NotAllowed, atm-NotAllowed, + informationNotAvailable, + -- supplementary service errors + illegalSS-Operation, ss-ErrorStatus, ss-NotAvailable, + ss-SubscriptionViolation, ss-Incompatibility, unknownAlphabet, ussd-Busy, + pw-RegistrationFailure, negativePW-Check, numberOfPW-AttemptsViolation, + shortTermDenial, + longTermDenial, + -- short message service errors + subscriberBusyForMT-SMS, sm-DeliveryFailure, messageWaitingListFull, + absentSubscriberSM, + -- Group Call errors + noGroupCallNumberAvailable, + -- location service errors + unauthorizedRequestingNetwork, unauthorizedLCSClient, + positionMethodFailure, + unknownOrUnreachableLCSClient, + -- Mobility Management errors + mm-EventNotSupported, + -- Secure transport errors + secureTransportError; + +IMPORTS + ERROR + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + SS-Status + FROM MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-SS-DataTypes(14) + version8(8)} + SS-IncompatibilityCause, PW-RegistrationFailureCause, + SM-DeliveryFailureCause, SystemFailureParam, DataMissingParam, + UnexpectedDataParam, FacilityNotSupParam, UnknownSubscriberParam, + NumberChangedParam, UnidentifiedSubParam, RoamingNotAllowedParam, + IllegalSubscriberParam, IllegalEquipmentParam, BearerServNotProvParam, + TeleservNotProvParam, TracingBufferFullParam, NoRoamingNbParam, + OR-NotAllowedParam, AbsentSubscriberParam, BusySubscriberParam, + NoSubscriberReplyParam, CallBarredParam, ForwardingViolationParam, + ForwardingFailedParam, CUG-RejectParam, ATI-NotAllowedParam, + SubBusyForMT-SMS-Param, MessageWaitListFullParam, AbsentSubscriberSM-Param, + ResourceLimitationParam, NoGroupCallNbParam, IncompatibleTerminalParam, + ShortTermDenialParam, LongTermDenialParam, + UnauthorizedRequestingNetwork-Param, UnauthorizedLCSClient-Param, + PositionMethodFailure-Param, UnknownOrUnreachableLCSClient-Param, + MM-EventNotSupported-Param, ATSI-NotAllowedParam, ATM-NotAllowedParam, + IllegalSS-OperationParam, SS-NotAvailableParam, + SS-SubscriptionViolationParam, InformationNotAvailableParam, + TargetCellOutsideGCA-Param, SecureTransportErrorParam + FROM MAP-ER-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ER-DataTypes(17) + version8(8)}; + +-- generic errors +systemFailure ERROR ::= { + PARAMETER SystemFailureParam + -- optional + CODE local:34} + +dataMissing ERROR ::= { + PARAMETER DataMissingParam + -- optional + -- DataMissingParam must not be used in version <3 + CODE local:35} + +unexpectedDataValue ERROR ::= { + PARAMETER UnexpectedDataParam + -- optional + -- UnexpectedDataParam must not be used in version <3 + CODE local:36} + +facilityNotSupported ERROR ::= { + PARAMETER FacilityNotSupParam + -- optional + -- FacilityNotSupParam must not be used in version <3 + CODE local:21} + +incompatibleTerminal ERROR ::= { + PARAMETER IncompatibleTerminalParam + -- optional + CODE local:28} + +resourceLimitation ERROR ::= { + PARAMETER ResourceLimitationParam + -- optional + CODE local:51} + +-- identification and numbering errors +unknownSubscriber ERROR ::= { + PARAMETER UnknownSubscriberParam + -- optional + -- UnknownSubscriberParam must not be used in version <3 + CODE local:1} + +numberChanged ERROR ::= { + PARAMETER NumberChangedParam + -- optional + CODE local:44} + +unknownMSC ERROR ::= {CODE local:3} + +unidentifiedSubscriber ERROR ::= { + PARAMETER UnidentifiedSubParam + -- optional + -- UunidentifiedSubParam must not be used in version <3 + CODE local:5} + +unknownEquipment ERROR ::= {CODE local:7} + +-- subscription errors +roamingNotAllowed ERROR ::= { + PARAMETER RoamingNotAllowedParam + CODE local:8} + +illegalSubscriber ERROR ::= { + PARAMETER IllegalSubscriberParam + -- optional + -- IllegalSubscriberParam must not be used in version <3 + CODE local:9} + +illegalEquipment ERROR ::= { + PARAMETER IllegalEquipmentParam + -- optional + -- IllegalEquipmentParam must not be used in version <3 + CODE local:12} + +bearerServiceNotProvisioned ERROR ::= { + PARAMETER BearerServNotProvParam + -- optional + -- BearerServNotProvParam must not be used in version <3 + CODE local:10} + +teleserviceNotProvisioned ERROR ::= { + PARAMETER TeleservNotProvParam + -- optional + -- TeleservNotProvParam must not be used in version <3 + CODE local:11} + +-- handover errors +noHandoverNumberAvailable ERROR ::= {CODE local:25} + +subsequentHandoverFailure ERROR ::= {CODE local:26} + +targetCellOutsideGroupCallArea ERROR ::= { + PARAMETER TargetCellOutsideGCA-Param + -- optional + CODE local:42} + +-- operation and maintenance errors +tracingBufferFull ERROR ::= { + PARAMETER TracingBufferFullParam + -- optional + CODE local:40} + +-- call handling errors +noRoamingNumberAvailable ERROR ::= { + PARAMETER NoRoamingNbParam + -- optional + CODE local:39} + +absentSubscriber ERROR ::= { + PARAMETER AbsentSubscriberParam + -- optional + -- AbsentSubscriberParam must not be used in version <3 + CODE local:27} + +busySubscriber ERROR ::= { + PARAMETER BusySubscriberParam + -- optional + CODE local:45} + +noSubscriberReply ERROR ::= { + PARAMETER NoSubscriberReplyParam + -- optional + CODE local:46} + +callBarred ERROR ::= {PARAMETER CallBarredParam + -- optional + CODE local:13} + +forwardingViolation ERROR ::= { + PARAMETER ForwardingViolationParam + -- optional + CODE local:14} + +forwardingFailed ERROR ::= { + PARAMETER ForwardingFailedParam + -- optional + CODE local:47} + +cug-Reject ERROR ::= {PARAMETER CUG-RejectParam + -- optional + CODE local:15} + +or-NotAllowed ERROR ::= { + PARAMETER OR-NotAllowedParam + -- optional + CODE local:48} + +-- any time interrogation errors +ati-NotAllowed ERROR ::= { + PARAMETER ATI-NotAllowedParam + -- optional + CODE local:49} + +-- any time information handling errors +atsi-NotAllowed ERROR ::= { + PARAMETER ATSI-NotAllowedParam + -- optional + CODE local:60} + +atm-NotAllowed ERROR ::= { + PARAMETER ATM-NotAllowedParam + -- optional + CODE local:61} + +informationNotAvailable ERROR ::= { + PARAMETER InformationNotAvailableParam + -- optional + CODE local:62} + +-- supplementary service errors +illegalSS-Operation ERROR ::= { + PARAMETER IllegalSS-OperationParam + -- optional + -- IllegalSS-OperationParam must not be used in version <3 + CODE local:16} + +ss-ErrorStatus ERROR ::= {PARAMETER SS-Status + -- optional + CODE local:17} + +ss-NotAvailable ERROR ::= { + PARAMETER SS-NotAvailableParam + -- optional + -- SS-NotAvailableParam must not be used in version <3 + CODE local:18} + +ss-SubscriptionViolation ERROR ::= { + PARAMETER SS-SubscriptionViolationParam + -- optional + -- SS-SubscriptionViolationParam must not be used in version <3 + CODE local:19} + +ss-Incompatibility ERROR ::= { + PARAMETER SS-IncompatibilityCause + -- optional + CODE local:20} + +unknownAlphabet ERROR ::= {CODE local:71} + +ussd-Busy ERROR ::= {CODE local:72} + +pw-RegistrationFailure ERROR ::= { + PARAMETER PW-RegistrationFailureCause + CODE local:37} + +negativePW-Check ERROR ::= {CODE local:38} + +numberOfPW-AttemptsViolation ERROR ::= {CODE local:43} + +shortTermDenial ERROR ::= { + PARAMETER ShortTermDenialParam + -- optional + CODE local:29} + +longTermDenial ERROR ::= { + PARAMETER LongTermDenialParam + -- optional + CODE local:30} + +-- short message service errors +subscriberBusyForMT-SMS ERROR ::= { + PARAMETER SubBusyForMT-SMS-Param + -- optional + CODE local:31} + +sm-DeliveryFailure ERROR ::= { + PARAMETER SM-DeliveryFailureCause + CODE local:32} + +messageWaitingListFull ERROR ::= { + PARAMETER MessageWaitListFullParam + -- optional + CODE local:33} + +absentSubscriberSM ERROR ::= { + PARAMETER AbsentSubscriberSM-Param + -- optional + CODE local:6} + +-- Group Call errors +noGroupCallNumberAvailable ERROR ::= { + PARAMETER NoGroupCallNbParam + -- optional + CODE local:50} + +-- location service errors +unauthorizedRequestingNetwork ERROR ::= { + PARAMETER UnauthorizedRequestingNetwork-Param + -- optional + CODE local:52} + +unauthorizedLCSClient ERROR ::= { + PARAMETER UnauthorizedLCSClient-Param + -- optional + CODE local:53} + +positionMethodFailure ERROR ::= { + PARAMETER PositionMethodFailure-Param + -- optional + CODE local:54} + +unknownOrUnreachableLCSClient ERROR ::= { + PARAMETER UnknownOrUnreachableLCSClient-Param + -- optional + CODE local:58} + +mm-EventNotSupported ERROR ::= { + PARAMETER MM-EventNotSupported-Param + -- optional + CODE local:59} + +-- Secure transport errors +secureTransportError ERROR ::= { + PARAMETER SecureTransportErrorParam + CODE local:4} + +END + diff --git a/MAP/asn_src/GSM/MAP-ExtensionDataTypes.asn b/MAP/asn_src/GSM/MAP-ExtensionDataTypes.asn new file mode 100644 index 0000000..48e1988 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-ExtensionDataTypes.asn @@ -0,0 +1,39 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21) + version8(8)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +EXPORTS PrivateExtension, ExtensionContainer; + +-- IOC for private MAP extensions +MAP-EXTENSION ::= CLASS { + &ExtensionType OPTIONAL, + &extensionId OBJECT IDENTIFIER} + +-- The length of the Object Identifier shall not exceed 16 octets and the +-- number of components of the Object Identifier shall not exceed 16 +-- data types +ExtensionContainer ::= SEQUENCE { + privateExtensionList [0] PrivateExtensionList OPTIONAL, + pcs-Extensions [1] PCS-Extensions OPTIONAL, + ...} + +PrivateExtensionList ::= + SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF PrivateExtension + +PrivateExtension ::= SEQUENCE { + extId MAP-EXTENSION.&extensionId({ExtensionSet}), + extType MAP-EXTENSION.&ExtensionType({ExtensionSet}{@extId}) OPTIONAL} + +maxNumOfPrivateExtensions INTEGER ::= 10 + +ExtensionSet MAP-EXTENSION ::= + {...} + -- ExtensionSet is the set of all defined private extensions + +-- Unsupported private extensions shall be discarded if received. +PCS-Extensions ::= SEQUENCE {...} + +END + diff --git a/MAP/asn_src/GSM/MAP-GR-DataTypes.asn b/MAP/asn_src/GSM/MAP-GR-DataTypes.asn new file mode 100644 index 0000000..a248eb5 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-GR-DataTypes.asn @@ -0,0 +1,101 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-GR-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-GR-DataTypes(23) version8(8)} DEFINITIONS +IMPLICIT TAGS ::= +BEGIN + +EXPORTS + PrepareGroupCallArg, PrepareGroupCallRes, SendGroupCallEndSignalArg, + SendGroupCallEndSignalRes, ForwardGroupCallSignallingArg, + ProcessGroupCallSignallingArg; + +IMPORTS + ISDN-AddressString, IMSI, EMLPP-Priority, ASCI-CallReference + FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18) + version8(8)} + Ext-TeleserviceCode + FROM MAP-TS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-TS-Code(19) version8(8)} + Kc + FROM MAP-MS-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-MS-DataTypes(11) + version8(8)} + ExtensionContainer + FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21) + version8(8)}; + +PrepareGroupCallArg ::= SEQUENCE { + teleservice Ext-TeleserviceCode, + asciCallReference ASCI-CallReference, + codec-Info CODEC-Info, + cipheringAlgorithm CipheringAlgorithm, + groupKeyNumber [0] GroupKeyNumber OPTIONAL, + groupKey [1] Kc OPTIONAL, + priority [2] EMLPP-Priority OPTIONAL, + uplinkFree [3] NULL OPTIONAL, + extensionContainer [4] ExtensionContainer OPTIONAL, + ...} + +PrepareGroupCallRes ::= SEQUENCE { + groupCallNumber ISDN-AddressString, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +SendGroupCallEndSignalArg ::= SEQUENCE { + imsi IMSI OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +SendGroupCallEndSignalRes ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +ForwardGroupCallSignallingArg ::= SEQUENCE { + imsi IMSI OPTIONAL, + uplinkRequestAck [0] NULL OPTIONAL, + uplinkReleaseIndication [1] NULL OPTIONAL, + uplinkRejectCommand [2] NULL OPTIONAL, + uplinkSeizedCommand [3] NULL OPTIONAL, + uplinkReleaseCommand [4] NULL OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ..., + stateAttributes [5] StateAttributes OPTIONAL} + +ProcessGroupCallSignallingArg ::= SEQUENCE { + uplinkRequest [0] NULL OPTIONAL, + uplinkReleaseIndication [1] NULL OPTIONAL, + releaseGroupCall [2] NULL OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +GroupKeyNumber ::= INTEGER(0..15) + +CODEC-Info ::= OCTET STRING(SIZE (5..10)) + +-- Refers to channel type +-- coded according to 3GPP TS 48.008 [49] and including Element identifier and Length +CipheringAlgorithm ::= OCTET STRING(SIZE (1)) + +-- Refers to 'permitted algorithms' in 'encryption information' +-- coded according to 3GPP TS 48.008 [49]: +-- Bits 8-1 +-- 8765 4321 +-- 0000 0001 No encryption +-- 0000 0010 GSM A5/1 +-- 0000 0100 GSM A5/2 +-- 0000 1000 GSM A5/3 +-- 0001 0000 GSM A5/4 +-- 0010 0000 GSM A5/5 +-- 0100 0000 GSM A5/6 +-- 1000 0000 GSM A5/7 +StateAttributes ::= SEQUENCE { + downlinkAttached [5] NULL OPTIONAL, + uplinkAttached [6] NULL OPTIONAL, + dualCommunication [7] NULL OPTIONAL, + callOriginator [8] NULL OPTIONAL} + +-- Refers to 3GPP TS 44.068 for definitions of StateAttributes fields. +END + diff --git a/MAP/asn_src/GSM/MAP-Group-Call-Operations.asn b/MAP/asn_src/GSM/MAP-Group-Call-Operations.asn new file mode 100644 index 0000000..f91b847 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-Group-Call-Operations.asn @@ -0,0 +1,45 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-Group-Call-Operations {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-Group-Call-Operations(22) + version8(8)} DEFINITIONS ::= +BEGIN + +EXPORTS + prepareGroupCall, sendGroupCallEndSignal, forwardGroupCallSignalling, + processGroupCallSignalling; + +IMPORTS + OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + systemFailure, unexpectedDataValue, noGroupCallNumberAvailable + FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-Errors(10) version8(8)} + PrepareGroupCallArg, PrepareGroupCallRes, SendGroupCallEndSignalArg, + SendGroupCallEndSignalRes, ForwardGroupCallSignallingArg, + ProcessGroupCallSignallingArg + FROM MAP-GR-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-GR-DataTypes(23) + version8(8)}; + +prepareGroupCall OPERATION ::= { --Timer m + ARGUMENT PrepareGroupCallArg + RESULT PrepareGroupCallRes + ERRORS {systemFailure | noGroupCallNumberAvailable | unexpectedDataValue} + CODE local:39} + +sendGroupCallEndSignal OPERATION ::= { --Timer l + ARGUMENT SendGroupCallEndSignalArg + RESULT SendGroupCallEndSignalRes + CODE local:40} + +processGroupCallSignalling OPERATION ::= { --Timer s + ARGUMENT ProcessGroupCallSignallingArg + CODE local:41} + +forwardGroupCallSignalling OPERATION ::= { --Timer s + ARGUMENT ForwardGroupCallSignallingArg + CODE local:42} + +END + diff --git a/MAP/asn_src/GSM/MAP-LCS-DataTypes.asn b/MAP/asn_src/GSM/MAP-LCS-DataTypes.asn new file mode 100644 index 0000000..81acb8d --- /dev/null +++ b/MAP/asn_src/GSM/MAP-LCS-DataTypes.asn @@ -0,0 +1,370 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-LCS-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-LCS-DataTypes(25) version8(8)} DEFINITIONS +IMPLICIT TAGS ::= +BEGIN + +EXPORTS + RoutingInfoForLCS-Arg, RoutingInfoForLCS-Res, ProvideSubscriberLocation-Arg, + ProvideSubscriberLocation-Res, SubscriberLocationReport-Arg, + SubscriberLocationReport-Res, LocationType, LCSClientName, LCS-QoS, + Horizontal-Accuracy, ResponseTime, Ext-GeographicalInformation, + SupportedGADShapes, Add-GeographicalInformation, LCSRequestorID, + LCSCodeword; + +IMPORTS + AddressString, ISDN-AddressString, IMEI, IMSI, LMSI, SubscriberIdentity, + AgeOfLocationInformation, LCSClientExternalID, LCSClientInternalID, + LCSServiceTypeID + FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18) + version8(8)} + ExtensionContainer + FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21) + version8(8)} + USSD-DataCodingScheme, USSD-String + FROM MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-SS-DataTypes(14) + version8(8)} + APN + FROM MAP-MS-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-MS-DataTypes(11) + version8(8)} + Additional-Number + FROM MAP-SM-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-SM-DataTypes(16) + version8(8)}; + +RoutingInfoForLCS-Arg ::= SEQUENCE { + mlcNumber [0] ISDN-AddressString, + targetMS [1] SubscriberIdentity, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +RoutingInfoForLCS-Res ::= SEQUENCE { + targetMS [0] SubscriberIdentity, + lcsLocationInfo [1] LCSLocationInfo, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +LCSLocationInfo ::= SEQUENCE { + networkNode-Number ISDN-AddressString, + -- NetworkNode-number can be either msc-number or sgsn-number + lmsi [0] LMSI OPTIONAL, + extensionContainer [1] ExtensionContainer OPTIONAL, + ..., + gprsNodeIndicator [2] NULL OPTIONAL, + -- gprsNodeIndicator is set only if the SGSN number is sent as the Network Node Number + additional-Number [3] Additional-Number OPTIONAL} + +ProvideSubscriberLocation-Arg ::= SEQUENCE { + locationType LocationType, + mlc-Number ISDN-AddressString, + lcs-ClientID [0] LCS-ClientID OPTIONAL, + privacyOverride [1] NULL OPTIONAL, + imsi [2] IMSI OPTIONAL, + msisdn [3] ISDN-AddressString OPTIONAL, + lmsi [4] LMSI OPTIONAL, + imei [5] IMEI OPTIONAL, + lcs-Priority [6] LCS-Priority OPTIONAL, + lcs-QoS [7] LCS-QoS OPTIONAL, + extensionContainer [8] ExtensionContainer OPTIONAL, + ..., + supportedGADShapes [9] SupportedGADShapes OPTIONAL, + lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL, + lcsServiceTypeID [11] LCSServiceTypeID OPTIONAL, + lcsCodeword [12] LCSCodeword OPTIONAL} + +-- one of imsi or msisdn is mandatory +-- If a location estimate type indicates activate deferred location or cancel deferred +-- location, a lcs-Reference number shall be included. +LocationType ::= SEQUENCE { + locationEstimateType [0] LocationEstimateType, + ..., + deferredLocationEventType [1] DeferredLocationEventType OPTIONAL} + +LocationEstimateType ::= ENUMERATED { + currentLocation(0), currentOrLastKnownLocation(1), initialLocation(2), ..., + activateDeferredLocation(3), cancelDeferredLocation(4)} + +-- exception handling: +-- a ProvideSubscriberLocation-Arg containing an unrecognized LocationEstimateType +-- shall be rejected by the receiver with a return error cause of unexpected data value +DeferredLocationEventType ::= BIT STRING {msAvailable(0)}(SIZE (1..16)) + +-- exception handling +-- a ProvideSubscriberLocation-Arg containing other values than listed above in +-- DeferredLocationEventType shall be rejected by the receiver with a return error cause of +-- unexpected data value. +LCS-ClientID ::= SEQUENCE { + lcsClientType [0] LCSClientType, + lcsClientExternalID [1] LCSClientExternalID OPTIONAL, + lcsClientDialedByMS [2] AddressString OPTIONAL, + lcsClientInternalID [3] LCSClientInternalID OPTIONAL, + lcsClientName [4] LCSClientName OPTIONAL, + ..., + lcsAPN [5] APN OPTIONAL, + lcsRequestorID [6] LCSRequestorID OPTIONAL} + +LCSClientType ::= ENUMERATED { + emergencyServices(0), valueAddedServices(1), plmnOperatorServices(2), + lawfulInterceptServices(3), ... + } + +-- exception handling: +-- unrecognized values may be ignored if the LCS client uses the privacy override +-- otherwise, an unrecognized value shall be treated as unexpected data by a receiver +-- a return error shall then be returned if received in a MAP invoke +LCSClientName ::= SEQUENCE { + dataCodingScheme [0] USSD-DataCodingScheme, + nameString [2] NameString, + ...} + +-- The USSD-DataCodingScheme shall indicate use of the default alphabet through the +-- following encoding +-- bit 7 6 5 4 3 2 1 0 +-- 0 0 0 0 1 1 1 1 +NameString ::= USSD-String(SIZE (1..maxNameStringLength)) + +maxNameStringLength INTEGER ::= 63 + +LCSRequestorID ::= SEQUENCE { + dataCodingScheme [0] USSD-DataCodingScheme, + requestorIDString [1] RequestorIDString, + ...} + +RequestorIDString ::= USSD-String(SIZE (1..maxRequestorIDStringLength)) + +maxRequestorIDStringLength INTEGER ::= 127 + +LCS-Priority ::= OCTET STRING(SIZE (1)) + +-- 0 = highest priority +-- 1 = normal priority +-- all other values treated as 1 +LCS-QoS ::= SEQUENCE { + horizontal-accuracy [0] Horizontal-Accuracy OPTIONAL, + verticalCoordinateRequest [1] NULL OPTIONAL, + vertical-accuracy [2] Vertical-Accuracy OPTIONAL, + responseTime [3] ResponseTime OPTIONAL, + extensionContainer [4] ExtensionContainer OPTIONAL, + ...} + +Horizontal-Accuracy ::= OCTET STRING(SIZE (1)) + +-- bit 8 = 0 +-- bits 7-1 = 7 bit Uncertainty Code defined in 3GPP TS 23.032. The horizontal location +-- error should be less than the error indicated by the uncertainty code with 67% +-- confidence. +Vertical-Accuracy ::= OCTET STRING(SIZE (1)) + +-- bit 8 = 0 +-- bits 7-1 = 7 bit Vertical Uncertainty Code defined in 3GPP TS 23.032. +-- The vertical location error should be less than the error indicated +-- by the uncertainty code with 67% confidence. +ResponseTime ::= SEQUENCE {responseTimeCategory ResponseTimeCategory, + ...} + +-- note: an expandable SEQUENCE simplifies later addition of a numeric response time. +ResponseTimeCategory ::= ENUMERATED {lowdelay(0), delaytolerant(1), ... + } + +-- exception handling: +-- an unrecognized value shall be treated the same as value 1 (delaytolerant) +SupportedGADShapes ::= BIT STRING { + ellipsoidPoint(0), ellipsoidPointWithUncertaintyCircle(1), + ellipsoidPointWithUncertaintyEllipse(2), polygon(3), + ellipsoidPointWithAltitude(4), + ellipsoidPointWithAltitudeAndUncertaintyElipsoid(5), ellipsoidArc(6) +}(SIZE (7..16)) + +-- A node shall mark in the BIT STRING all Shapes defined in 3GPP TS 23.032 it supports. +-- exception handling: bits 7 to 15 shall be ignored if received. +LCS-ReferenceNumber ::= OCTET STRING(SIZE (1)) + +LCSCodeword ::= SEQUENCE { + dataCodingScheme [0] USSD-DataCodingScheme, + lcsCodewordString [1] LCSCodewordString, + ...} + +LCSCodewordString ::= USSD-String(SIZE (1..maxLCSCodewordStringLength)) + +maxLCSCodewordStringLength INTEGER ::= 127 + +ProvideSubscriberLocation-Res ::= SEQUENCE { + locationEstimate Ext-GeographicalInformation, + ageOfLocationEstimate [0] AgeOfLocationInformation OPTIONAL, + extensionContainer [1] ExtensionContainer OPTIONAL, + ..., + add-LocationEstimate [2] Add-GeographicalInformation OPTIONAL, + deferredmt-lrResponseIndicator [3] NULL OPTIONAL, + positioningData [4] PositioningDataInformation OPTIONAL} + +-- if deferredmt-lrResponseIndicator is set, locationEstimate is ignored. +-- the add-LocationEstimate parameter shall not be sent to a node that did not indicate the +-- geographic shapes supported in the ProvideSubscriberLocation-Arg +-- The locationEstimate and the add-locationEstimate parameters shall not be sent if +-- the supportedGADShapes parameter has been received in ProvideSubscriberLocation-Arg +-- and the shape encoded in locationEstimate or add-LocationEstimate is not marked +-- as supported in supportedGADShapes. In such a case ProvideSubscriberLocation +-- shall be rejected with error FacilityNotSupported with additional indication +-- shapeOfLocationEstimateNotSupported +Ext-GeographicalInformation ::= + OCTET STRING(SIZE (1..maxExt-GeographicalInformation)) + +-- Refers to geographical Information defined in 3GPP TS 23.032. +-- This is composed of 1 or more octets with an internal structure according to +-- 3GPP TS 23.032 +-- Octet 1: Type of shape, only the following shapes in 3GPP TS 23.032 are allowed: +-- (a) Ellipsoid point with uncertainty circle +-- (b) Ellipsoid point with uncertainty ellipse +-- (c) Ellipsoid point with altitude and uncertainty ellipsoid +-- (d) Ellipsoid Arc +-- (e) Ellipsoid Point +-- Any other value in octet 1 shall be treated as invalid +-- Octets 2 to 8 for case (a) – Ellipsoid point with uncertainty circle +-- Degrees of Latitude 3 octets +-- Degrees of Longitude 3 octets +-- Uncertainty code 1 octet +-- Octets 2 to 11 for case (b) – Ellipsoid point with uncertainty ellipse: +-- Degrees of Latitude 3 octets +-- Degrees of Longitude 3 octets +-- Uncertainty semi-major axis 1 octet +-- Uncertainty semi-minor axis 1 octet +-- Angle of major axis 1 octet +-- Confidence 1 octet +-- Octets 2 to 14 for case (c) – Ellipsoid point with altitude and uncertainty ellipsoid +-- Degrees of Latitude 3 octets +-- Degrees of Longitude 3 octets +-- Altitude 2 octets +-- Uncertainty semi-major axis 1 octet +-- Uncertainty semi-minor axis 1 octet +-- Angle of major axis 1 octet +-- Uncertainty altitude 1 octet +-- Confidence 1 octet +-- Octets 2 to 13 for case (d) – Ellipsoid Arc +-- Degrees of Latitude 3 octets +-- Degrees of Longitude 3 octets +-- Inner radius 2 octets +-- Uncertainty radius 1 octet +-- Offset angle 1 octet +-- Included angle 1 octet +-- Confidence 1 octet +-- Octets 2 to 7 for case (e) – Ellipsoid Point +-- Degrees of Latitude 3 octets +-- Degrees of Longitude 3 octets +-- +-- An Ext-GeographicalInformation parameter comprising more than one octet and +-- containing any other shape or an incorrect number of octets or coding according +-- to 3GPP TS 23.032 shall be treated as invalid data by a receiver. +-- +-- An Ext-GeographicalInformation parameter comprising one octet shall be discarded +-- by the receiver if an Add-GeographicalInformation parameter is received +-- in the same message. +-- +-- An Ext-GeographicalInformation parameter comprising one octet shall be treated as +-- invalid data by the receiver if an Add-GeographicalInformation parameter is not +-- received in the same message. +maxExt-GeographicalInformation INTEGER ::= + 20 + +-- the maximum length allows for further shapes in 3GPP TS 23.032 to be included in later +-- versions of 3GPP TS 29.002 +PositioningDataInformation ::= + OCTET STRING(SIZE (2..maxPositioningDataInformation)) + +-- Refers to the Positioning Data defined in 3GPP TS 49.031. +-- This is composed of 2 or more octets with an internal structure according to +-- 3GPP TS 49.031. +maxPositioningDataInformation INTEGER ::= + 10 + +-- +Add-GeographicalInformation ::= + OCTET STRING(SIZE (1..maxAdd-GeographicalInformation)) + +-- Refers to geographical Information defined in 3GPP TS 23.032. +-- This is composed of 1 or more octets with an internal structure according to +-- 3GPP TS 23.032 +-- Octet 1: Type of shape, all the shapes defined in 3GPP TS 23.032 are allowed: +-- Octets 2 to n (where n is the total number of octets necessary to encode the shape +-- according to 3GPP TS 23.032) are used to encode the shape itself in accordance with the +-- encoding defined in 3GPP TS 23.032 +-- +-- An Add-GeographicalInformation parameter, whether valid or invalid, received +-- together with a valid Ext-GeographicalInformation parameter in the same message +-- shall be discarded. +-- +-- An Add-GeographicalInformation parameter containing any shape not defined in +-- 3GPP TS 23.032 or an incorrect number of octets or coding according to +-- 3GPP TS 23.032 shall be treated as invalid data by a receiver if not received +-- together with a valid Ext-GeographicalInformation parameter in the same message. +maxAdd-GeographicalInformation INTEGER ::= + 91 + +-- the maximum length allows support for all the shapes currently defined in 3GPP TS 23.032 +SubscriberLocationReport-Arg ::= SEQUENCE { + lcs-Event LCS-Event, + lcs-ClientID LCS-ClientID, + lcsLocationInfo LCSLocationInfo, + msisdn [0] ISDN-AddressString OPTIONAL, + imsi [1] IMSI OPTIONAL, + imei [2] IMEI OPTIONAL, + na-ESRD [3] ISDN-AddressString OPTIONAL, + na-ESRK [4] ISDN-AddressString OPTIONAL, + locationEstimate [5] Ext-GeographicalInformation OPTIONAL, + ageOfLocationEstimate [6] AgeOfLocationInformation OPTIONAL, + extensionContainer [7] ExtensionContainer OPTIONAL, + ..., + add-LocationEstimate [8] Add-GeographicalInformation OPTIONAL, + deferredmt-lrData [9] Deferredmt-lrData OPTIONAL, + lcs-ReferenceNumber [10] LCS-ReferenceNumber OPTIONAL, + positioningData [11] PositioningDataInformation OPTIONAL} + +-- one of msisdn or imsi is mandatory +-- a location estimate that is valid for the locationEstimate parameter should +-- be transferred in this parameter in preference to the add-LocationEstimate. +-- the deferredmt-lrData parameter shall be included if and only if the lcs-Event +-- indicates a deferredmt-lrResponse. +-- if the lcs-Event indicates a deferredmt-lrResponse then the locationEstimate +-- and the add-locationEstimate parameters shall not be sent if the +-- supportedGADShapes parameter had been received in ProvideSubscriberLocation-Arg +-- and the shape encoded in locationEstimate or add-LocationEstimate was not marked +-- as supported in supportedGADShapes. In such a case terminationCause +-- in deferredmt-lrData shall be present with value +-- shapeOfLocationEstimateNotSupported. +-- If a lcs event indicates deferred mt-lr response, the lcs-Reference number shall be +-- included. +Deferredmt-lrData ::= SEQUENCE { + deferredLocationEventType DeferredLocationEventType, + terminationCause [0] TerminationCause OPTIONAL, + lcsLocationInfo [1] LCSLocationInfo OPTIONAL, + ...} + +-- lcsLocationInfo may be included only if a terminationCause is present +-- indicating mt-lrRestart. +LCS-Event ::= ENUMERATED { + emergencyCallOrigination(0), emergencyCallRelease(1), mo-lr(2), ..., + deferredmt-lrResponse(3)} + +-- exception handling: +-- a SubscriberLocationReport-Arg containing an unrecognized LCS-Event +-- shall be rejected by a receiver with a return error cause of unexpected data value +TerminationCause ::= ENUMERATED { + normal(0), errorundefined(1), internalTimeout(2), congestion(3), + mt-lrRestart(4), privacyViolation(5), ..., + shapeOfLocationEstimateNotSupported(6)} + +-- mt-lrRestart shall be used to trigger the GMLC to restart the location procedure, +-- either because the sending node knows that the terminal has moved under coverage +-- of another MSC or SGSN (e.g. Send Identification received), or because the subscriber +-- has been deregistered due to a Cancel Location received from HLR. +-- +-- exception handling +-- an unrecognized value shall be treated the same as value 1 (errorundefined) +SubscriberLocationReport-Res ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +END diff --git a/MAP/asn_src/GSM/MAP-LocationServiceOperations.asn b/MAP/asn_src/GSM/MAP-LocationServiceOperations.asn new file mode 100644 index 0000000..8075528 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-LocationServiceOperations.asn @@ -0,0 +1,56 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-LocationServiceOperations {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-LocationServiceOperations(24) + version8(8)} DEFINITIONS ::= +BEGIN + +EXPORTS + provideSubscriberLocation, sendRoutingInfoForLCS, subscriberLocationReport; + +IMPORTS + OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + systemFailure, dataMissing, unexpectedDataValue, facilityNotSupported, + unknownSubscriber, absentSubscriber, unauthorizedRequestingNetwork, + unauthorizedLCSClient, positionMethodFailure, resourceLimitation, + unknownOrUnreachableLCSClient, unidentifiedSubscriber, illegalEquipment, + illegalSubscriber + FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-Errors(10) version8(8)} + RoutingInfoForLCS-Arg, RoutingInfoForLCS-Res, ProvideSubscriberLocation-Arg, + ProvideSubscriberLocation-Res, SubscriberLocationReport-Arg, + SubscriberLocationReport-Res + FROM MAP-LCS-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-LCS-DataTypes(25) + version8(8)}; + +sendRoutingInfoForLCS OPERATION ::= { --Timer m + ARGUMENT RoutingInfoForLCS-Arg + RESULT RoutingInfoForLCS-Res + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported | + unknownSubscriber | absentSubscriber | unauthorizedRequestingNetwork} + CODE local:85} + +provideSubscriberLocation OPERATION ::= { --Timer ml + ARGUMENT ProvideSubscriberLocation-Arg + RESULT ProvideSubscriberLocation-Res + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported | + unidentifiedSubscriber | illegalSubscriber | illegalEquipment | + absentSubscriber | unauthorizedRequestingNetwork | unauthorizedLCSClient + | positionMethodFailure} + CODE local:83} + +subscriberLocationReport OPERATION ::= { --Timer m + ARGUMENT SubscriberLocationReport-Arg + RESULT SubscriberLocationReport-Res + ERRORS + {systemFailure | dataMissing | resourceLimitation | unexpectedDataValue | + unknownSubscriber | unauthorizedRequestingNetwork | + unknownOrUnreachableLCSClient} + CODE local:86} + +END + diff --git a/MAP/asn_src/GSM/MAP-MS-DataTypes.asn b/MAP/asn_src/GSM/MAP-MS-DataTypes.asn new file mode 100644 index 0000000..97e7359 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-MS-DataTypes.asn @@ -0,0 +1,2123 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-MS-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-MS-DataTypes(11) version8(8)} DEFINITIONS +IMPLICIT TAGS ::= +BEGIN + +EXPORTS + -- location registration types + UpdateLocationArg, UpdateLocationRes, CancelLocationArg, CancelLocationRes, + PurgeMS-Arg, PurgeMS-Res, SendIdentificationArg, SendIdentificationRes, + UpdateGprsLocationArg, UpdateGprsLocationRes, IST-SupportIndicator, + SupportedLCS-CapabilitySets, + -- gprs location registration types + GSN-Address, + -- handover types + ForwardAccessSignalling-Arg, PrepareHO-Arg, PrepareHO-Res, + PrepareSubsequentHO-Arg, PrepareSubsequentHO-Res, + ProcessAccessSignalling-Arg, SendEndSignal-Arg, + SendEndSignal-Res, + -- authentication management types + SendAuthenticationInfoArg, SendAuthenticationInfoRes, + AuthenticationFailureReportArg, + AuthenticationFailureReportRes, + -- security management types + Kc, + -- equipment management types + CheckIMEI-Arg, + CheckIMEI-Res, + -- subscriber management types + InsertSubscriberDataArg, InsertSubscriberDataRes, LSAIdentity, + DeleteSubscriberDataArg, DeleteSubscriberDataRes, Ext-QoS-Subscribed, + SubscriberData, ODB-Data, SubscriberStatus, ZoneCodeList, + maxNumOfZoneCodes, O-CSI, D-CSI, O-BcsmCamelTDPCriteriaList, + T-BCSM-CAMEL-TDP-CriteriaList, SS-CSI, ServiceKey, DefaultCallHandling, + CamelCapabilityHandling, BasicServiceCriteria, SupportedCamelPhases, + OfferedCamel4CSIs, OfferedCamel4Functionalities, maxNumOfCamelTDPData, + CUG-Index, CUG-Info, CUG-Interlock, InterCUG-Restrictions, + IntraCUG-Options, NotificationToMSUser, QoS-Subscribed, + IST-AlertTimerValue, T-CSI, T-BcsmTriggerDetectionPoint, + APN, + -- fault recovery types + ResetArg, RestoreDataArg, + RestoreDataRes, + -- provide subscriber info types + GeographicalInformation, MS-Classmark2, + GPRSMSClass, + -- subscriber information enquiry types + ProvideSubscriberInfoArg, ProvideSubscriberInfoRes, SubscriberInfo, + LocationInformation, LocationInformationGPRS, RAIdentity, SubscriberState, + GPRSChargingID, + -- any time information enquiry types + AnyTimeInterrogationArg, + AnyTimeInterrogationRes, + -- any time information handling types + AnyTimeSubscriptionInterrogationArg, AnyTimeSubscriptionInterrogationRes, + AnyTimeModificationArg, + AnyTimeModificationRes, + -- subscriber data modification notification types + NoteSubscriberDataModifiedArg, + NoteSubscriberDataModifiedRes, + -- gprs location information retrieval types + SendRoutingInfoForGprsArg, + SendRoutingInfoForGprsRes, + -- failure reporting types + FailureReportArg, + FailureReportRes, + -- gprs notification types + NoteMsPresentForGprsArg, + NoteMsPresentForGprsRes, + -- Mobility Management types + NoteMM-EventArg, NoteMM-EventRes; + +IMPORTS + maxNumOfSS, SS-SubscriptionOption, SS-List, SS-ForBS-Code, Password + FROM MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-SS-DataTypes(14) + version8(8)} + SS-Code + FROM MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-SS-Code(15) version8(8)} + Ext-BearerServiceCode + FROM MAP-BS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-BS-Code(20) version8(8)} + Ext-TeleserviceCode + FROM MAP-TS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-TS-Code(19) version8(8)} + AddressString, ISDN-AddressString, ISDN-SubaddressString, FTN-AddressString, + AccessNetworkSignalInfo, IMSI, IMEI, TMSI, HLR-List, LMSI, Identity, + GlobalCellId, CellGlobalIdOrServiceAreaIdOrLAI, Ext-BasicServiceCode, + NAEA-PreferredCI, EMLPP-Info, MC-SS-Info, SubscriberIdentity, + AgeOfLocationInformation, LCSClientExternalID, LCSClientInternalID, + Ext-SS-Status, LCSServiceTypeID, ASCI-CallReference + FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18) + version8(8)} + ExtensionContainer + FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21) + version8(8)} + AbsentSubscriberDiagnosticSM + FROM MAP-ER-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ER-DataTypes(17) + version8(8)}; + +-- location registration types +UpdateLocationArg ::= SEQUENCE { + imsi IMSI, + msc-Number [1] ISDN-AddressString, + vlr-Number ISDN-AddressString, + lmsi [10] LMSI OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ..., + vlr-Capability [6] VLR-Capability OPTIONAL, + informPreviousNetworkEntity [11] NULL OPTIONAL, + cs-LCS-NotSupportedByUE [12] NULL OPTIONAL} + +VLR-Capability ::= SEQUENCE { + supportedCamelPhases + [0] SupportedCamelPhases OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ..., + solsaSupportIndicator [2] NULL OPTIONAL, + istSupportIndicator + [1] IST-SupportIndicator OPTIONAL, + superChargerSupportedInServingNetworkEntity + [3] SuperChargerInfo OPTIONAL, + longFTN-Supported [4] NULL OPTIONAL, + supportedLCS-CapabilitySets + [5] SupportedLCS-CapabilitySets OPTIONAL, + offeredCamel4CSIs + [6] OfferedCamel4CSIs OPTIONAL} + +SuperChargerInfo ::= CHOICE { + sendSubscriberData [0] NULL, + subscriberDataStored [1] AgeIndicator} + +AgeIndicator ::= OCTET STRING(SIZE (1..6)) + +-- The internal structure of this parameter is implementation specific. +IST-SupportIndicator ::= ENUMERATED { + basicISTSupported(0), istCommandSupported(1), ... + } + +-- exception handling: +-- reception of values > 1 shall be mapped to ' istCommandSupported ' +SupportedLCS-CapabilitySets ::= BIT STRING { + lcsCapabilitySet1(0), lcsCapabilitySet2(1), lcsCapabilitySet3(2) +}(SIZE (2..16)) + +-- Core network signalling capability set1 indicates LCS Release98 or Release99 version. +-- Core network signalling capability set2 indicates LCS Release4. +-- Core network signalling capability set3 indicates LCS Release5 or later version. +-- A node shall mark in the BIT STRING all LCS capability sets it supports. +-- If no bit is set then the sending node does not support LCS. +-- If the parameter is not sent by an VLR then the VLR may support at most capability set1. +-- If the parameter is not sent by an SGSN then no support for LCS is assumed. +-- An SGSN is not allowed to indicate support of capability set1. +-- Other bits than listed above shall be discarded. +UpdateLocationRes ::= SEQUENCE { + hlr-Number ISDN-AddressString, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +CancelLocationArg ::= [3] SEQUENCE { + identity Identity, + cancellationType CancellationType OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +CancellationType ::= ENUMERATED { + updateProcedure(0), subscriptionWithdraw(1), ... + } + +-- The HLR shall not send values other than listed above +CancelLocationRes ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +PurgeMS-Arg ::= [3] SEQUENCE { + imsi IMSI, + vlr-Number [0] ISDN-AddressString OPTIONAL, + sgsn-Number [1] ISDN-AddressString OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +PurgeMS-Res ::= SEQUENCE { + freezeTMSI [0] NULL OPTIONAL, + freezeP-TMSI [1] NULL OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +SendIdentificationArg ::= SEQUENCE { + tmsi TMSI, + numberOfRequestedVectors NumberOfRequestedVectors OPTIONAL, + -- within a dialogue numberOfRequestedVectors shall be present in + -- the first service request and shall not be present in subsequent service requests. + -- If received in a subsequent service request it shall be discarded. + segmentationProhibited NULL OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +SendIdentificationRes ::= [3] SEQUENCE { + imsi IMSI OPTIONAL, + -- IMSI shall be present in the first (or only) service response of a dialogue. + -- If multiple service requests are present in a dialogue then IMSI + -- shall not be present in any service response other than the first one. + authenticationSetList AuthenticationSetList OPTIONAL, + currentSecurityContext [2] CurrentSecurityContext OPTIONAL, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +-- authentication management types +AuthenticationSetList ::= CHOICE { + tripletList [0] TripletList, + quintupletList [1] QuintupletList} + +TripletList ::= SEQUENCE SIZE (1..5) OF AuthenticationTriplet + +QuintupletList ::= SEQUENCE SIZE (1..5) OF AuthenticationQuintuplet + +AuthenticationTriplet ::= SEQUENCE {rand RAND, + sres SRES, + kc Kc, + ...} + +AuthenticationQuintuplet ::= SEQUENCE { + rand RAND, + xres XRES, + ck CK, + ik IK, + autn AUTN, + ...} + +CurrentSecurityContext ::= CHOICE { + gsm-SecurityContextData [0] GSM-SecurityContextData, + umts-SecurityContextData [1] UMTS-SecurityContextData} + +GSM-SecurityContextData ::= SEQUENCE {kc Kc, + cksn Cksn, + ...} + +UMTS-SecurityContextData ::= SEQUENCE {ck CK, + ik IK, + ksi KSI, + ...} + +RAND ::= OCTET STRING(SIZE (16)) + +SRES ::= OCTET STRING(SIZE (4)) + +Kc ::= OCTET STRING(SIZE (8)) + +XRES ::= OCTET STRING(SIZE (4..16)) + +CK ::= OCTET STRING(SIZE (16)) + +IK ::= OCTET STRING(SIZE (16)) + +AUTN ::= OCTET STRING(SIZE (16)) + +AUTS ::= OCTET STRING(SIZE (14)) + +Cksn ::= OCTET STRING(SIZE (1)) + +-- The internal structure is defined in 3GPP TS 24.008 +KSI ::= OCTET STRING(SIZE (1)) + +-- The internal structure is defined in 3GPP TS 24.008 +AuthenticationFailureReportArg ::= SEQUENCE { + imsi IMSI, + failureCause FailureCause, + extensionContainer ExtensionContainer OPTIONAL, + ..., + re-attempt BOOLEAN OPTIONAL, + accessType AccessType OPTIONAL, + rand RAND OPTIONAL, + vlr-Number [0] ISDN-AddressString OPTIONAL, + sgsn-Number [1] ISDN-AddressString OPTIONAL} + +AccessType ::= ENUMERATED { + call(0), emergencyCall(1), locationUpdating(2), supplementaryService(3), + shortMessage(4), gprsAttach(5), routingAreaUpdating(6), serviceRequest(7), + pdpContextActivation(8), pdpContextDeactivation(9), ..., + gprsDetach(10)} + +-- exception handling: +-- received values greater than 10 shall be ignored. +AuthenticationFailureReportRes ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +FailureCause ::= ENUMERATED {wrongUserResponse(0), wrongNetworkSignature(1)} + +-- gprs location registration types +UpdateGprsLocationArg ::= SEQUENCE { + imsi IMSI, + sgsn-Number ISDN-AddressString, + sgsn-Address GSN-Address, + extensionContainer ExtensionContainer OPTIONAL, + ..., + sgsn-Capability [0] SGSN-Capability OPTIONAL, + informPreviousNetworkEntity [1] NULL OPTIONAL, + ps-LCS-NotSupportedByUE [2] NULL OPTIONAL} + +SGSN-Capability ::= SEQUENCE { + solsaSupportIndicator NULL OPTIONAL, + extensionContainer + [1] ExtensionContainer OPTIONAL, + ..., + superChargerSupportedInServingNetworkEntity + [2] SuperChargerInfo OPTIONAL, + gprsEnhancementsSupportIndicator [3] NULL OPTIONAL, + supportedCamelPhases + [4] SupportedCamelPhases OPTIONAL, + supportedLCS-CapabilitySets + [5] SupportedLCS-CapabilitySets OPTIONAL, + offeredCamel4CSIs + [6] OfferedCamel4CSIs OPTIONAL} + +GSN-Address ::= OCTET STRING(SIZE (5..17)) + +-- Octets are coded according to TS 3GPP TS 23.003 [17] +UpdateGprsLocationRes ::= SEQUENCE { + hlr-Number ISDN-AddressString, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +-- handover types +ForwardAccessSignalling-Arg ::= [3] SEQUENCE { + an-APDU AccessNetworkSignalInfo, + integrityProtectionInfo [0] IntegrityProtectionInformation OPTIONAL, + encryptionInfo [1] EncryptionInformation OPTIONAL, + keyStatus [2] KeyStatus OPTIONAL, + allowedGSM-Algorithms [4] AllowedGSM-Algorithms OPTIONAL, + allowedUMTS-Algorithms [5] AllowedUMTS-Algorithms OPTIONAL, + radioResourceInformation [6] RadioResourceInformation OPTIONAL, + extensionContainer [3] ExtensionContainer OPTIONAL, + ..., + radioResourceList [7] RadioResourceList OPTIONAL, + bssmap-ServiceHandover [9] BSSMAP-ServiceHandover OPTIONAL, + ranap-ServiceHandover [8] RANAP-ServiceHandover OPTIONAL, + bssmap-ServiceHandoverList [10] BSSMAP-ServiceHandoverList OPTIONAL, + currentlyUsedCodec [11] Codec OPTIONAL, + availableCodecsList [12] AvailableCodecsList OPTIONAL, + rab-ConfigurationIndicator [13] NULL OPTIONAL} + +AllowedGSM-Algorithms ::= OCTET STRING(SIZE (1)) + +-- internal structure is coded as Algorithm identifier octet from +-- Permitted Algorithms defined in 3GPP TS 48.008 +-- A node shall mark all GSM algorithms that are allowed in MSC-B +AllowedUMTS-Algorithms ::= SEQUENCE { + integrityProtectionAlgorithms + [0] PermittedIntegrityProtectionAlgorithms OPTIONAL, + encryptionAlgorithms [1] PermittedEncryptionAlgorithms OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +PermittedIntegrityProtectionAlgorithms ::= + OCTET STRING(SIZE (1..maxPermittedIntegrityProtectionAlgorithmsLength)) + +-- Octets contain a complete PermittedIntegrityProtectionAlgorithms data type +-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme +-- mandated by 3GPP TS 25.413. +-- Padding bits are included, if needed, in the least significant bits of the +-- last octet of the octet string. +maxPermittedIntegrityProtectionAlgorithmsLength INTEGER ::= + 9 + +PermittedEncryptionAlgorithms ::= + OCTET STRING(SIZE (1..maxPermittedEncryptionAlgorithmsLength)) + +-- Octets contain a complete PermittedEncryptionAlgorithms data type +-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme +-- mandated by 3GPP TS 25.413 +-- Padding bits are included, if needed, in the least significant bits of the +-- last octet of the octet string. +maxPermittedEncryptionAlgorithmsLength INTEGER ::= + 9 + +KeyStatus ::= ENUMERATED {old(0), new(1), ... + } + +-- exception handling: +-- received values in range 2-31 shall be treated as "old" +-- received values greater than 31 shall be treated as "new" +PrepareHO-Arg ::= [3] SEQUENCE { + targetCellId [0] GlobalCellId OPTIONAL, + ho-NumberNotRequired NULL OPTIONAL, + targetRNCId [1] RNCId OPTIONAL, + an-APDU [2] AccessNetworkSignalInfo OPTIONAL, + multipleBearerRequested [3] NULL OPTIONAL, + imsi [4] IMSI OPTIONAL, + integrityProtectionInfo [5] IntegrityProtectionInformation OPTIONAL, + encryptionInfo [6] EncryptionInformation OPTIONAL, + radioResourceInformation [7] RadioResourceInformation OPTIONAL, + allowedGSM-Algorithms [9] AllowedGSM-Algorithms OPTIONAL, + allowedUMTS-Algorithms [10] AllowedUMTS-Algorithms OPTIONAL, + radioResourceList [11] RadioResourceList OPTIONAL, + extensionContainer [8] ExtensionContainer OPTIONAL, + ..., + rab-Id [12] RAB-Id OPTIONAL, + bssmap-ServiceHandover [13] BSSMAP-ServiceHandover OPTIONAL, + ranap-ServiceHandover [14] RANAP-ServiceHandover OPTIONAL, + bssmap-ServiceHandoverList [15] BSSMAP-ServiceHandoverList OPTIONAL, + asciCallReference [20] ASCI-CallReference OPTIONAL, + geran-classmark [16] GERAN-Classmark OPTIONAL, + currentlyUsedCodec [17] Codec OPTIONAL, + availableCodecsList [18] AvailableCodecsList OPTIONAL, + rab-ConfigurationIndicator [19] NULL OPTIONAL, + uesbi [21] UESBI OPTIONAL} + +BSSMAP-ServiceHandoverList ::= + SEQUENCE SIZE (1..maxNumOfServiceHandovers) OF BSSMAP-ServiceHandoverInfo + +BSSMAP-ServiceHandoverInfo ::= SEQUENCE { + bssmap-ServiceHandover BSSMAP-ServiceHandover, + rab-Id RAB-Id, + -- RAB Identity is needed to relate the service handovers with the radio access bearers. + ...} + +maxNumOfServiceHandovers INTEGER ::= 7 + +BSSMAP-ServiceHandover ::= OCTET STRING(SIZE (1)) + +-- Octets are coded according the Service Handover information element in +-- 3GPP TS 48.008. +RANAP-ServiceHandover ::= OCTET STRING(SIZE (1)) + +-- Octet contains a complete Service-Handover data type +-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme +-- mandated by 3GPP TS 25.413 +-- Padding bits are included in the least significant bits. +RadioResourceList ::= + SEQUENCE SIZE (1..maxNumOfRadioResources) OF RadioResource + +RadioResource ::= SEQUENCE { + radioResourceInformation RadioResourceInformation, + rab-Id RAB-Id, + -- RAB Identity is needed to relate the radio resources with the radio access bearers. + ...} + +maxNumOfRadioResources INTEGER ::= 7 + +PrepareHO-Res ::= [3] SEQUENCE { + handoverNumber [0] ISDN-AddressString OPTIONAL, + relocationNumberList [1] RelocationNumberList OPTIONAL, + an-APDU [2] AccessNetworkSignalInfo OPTIONAL, + multicallBearerInfo [3] MulticallBearerInfo OPTIONAL, + multipleBearerNotSupported NULL OPTIONAL, + selectedUMTS-Algorithms [5] SelectedUMTS-Algorithms OPTIONAL, + chosenRadioResourceInformation [6] ChosenRadioResourceInformation OPTIONAL, + extensionContainer [4] ExtensionContainer OPTIONAL, + ..., + selectedCodec [7] Codec OPTIONAL} + +SelectedUMTS-Algorithms ::= SEQUENCE { + integrityProtectionAlgorithm + [0] ChosenIntegrityProtectionAlgorithm OPTIONAL, + encryptionAlgorithm [1] ChosenEncryptionAlgorithm OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +ChosenIntegrityProtectionAlgorithm ::= OCTET STRING(SIZE (1)) + +-- Octet contains a complete IntegrityProtectionAlgorithm data type +-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme +-- mandated by 3GPP TS 25.413 +-- Padding bits are included in the least significant bits. +ChosenEncryptionAlgorithm ::= OCTET STRING(SIZE (1)) + +-- Octet contains a complete EncryptionAlgorithm data type +-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme +-- mandated by 3GPP TS 25.413 +-- Padding bits are included in the least significant bits. +ChosenRadioResourceInformation ::= SEQUENCE { + chosenChannelInfo [0] ChosenChannelInfo OPTIONAL, + chosenSpeechVersion [1] ChosenSpeechVersion OPTIONAL, + ...} + +ChosenChannelInfo ::= OCTET STRING(SIZE (1)) + +-- Octets are coded according the Chosen Channel information element in 3GPP TS 48.008 +ChosenSpeechVersion ::= OCTET STRING(SIZE (1)) + +-- Octets are coded according the Speech Version (chosen) information element in 3GPP TS +-- 48.008 +PrepareSubsequentHO-Arg ::= [3] SEQUENCE { + targetCellId [0] GlobalCellId OPTIONAL, + targetMSC-Number [1] ISDN-AddressString, + targetRNCId [2] RNCId OPTIONAL, + an-APDU [3] AccessNetworkSignalInfo OPTIONAL, + selectedRab-Id [4] RAB-Id OPTIONAL, + extensionContainer [5] ExtensionContainer OPTIONAL, + ..., + geran-classmark [6] GERAN-Classmark OPTIONAL, + rab-ConfigurationIndicator [7] NULL OPTIONAL} + +PrepareSubsequentHO-Res ::= [3] SEQUENCE { + an-APDU AccessNetworkSignalInfo, + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +ProcessAccessSignalling-Arg ::= [3] SEQUENCE { + an-APDU AccessNetworkSignalInfo, + selectedUMTS-Algorithms [1] SelectedUMTS-Algorithms OPTIONAL, + selectedGSM-Algorithm [2] SelectedGSM-Algorithm OPTIONAL, + chosenRadioResourceInformation [3] ChosenRadioResourceInformation OPTIONAL, + selectedRab-Id [4] RAB-Id OPTIONAL, + extensionContainer [0] ExtensionContainer OPTIONAL, + ..., + selectedCodec [5] Codec OPTIONAL} + +AvailableCodecsList ::= SEQUENCE { + utranCodecList [0] CodecList OPTIONAL, + geranCodecList [1] CodecList OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +CodecList ::= SEQUENCE { + codec1 [1] Codec, + codec2 [2] Codec OPTIONAL, + codec3 [3] Codec OPTIONAL, + codec4 [4] Codec OPTIONAL, + codec5 [5] Codec OPTIONAL, + codec6 [6] Codec OPTIONAL, + codec7 [7] Codec OPTIONAL, + codec8 [8] Codec OPTIONAL, + extensionContainer [9] ExtensionContainer OPTIONAL, + ...} + +-- Codecs are sent in priority order where codec1 has highest priority +Codec ::= OCTET STRING(SIZE (1..4)) + +-- The internal structure is defined as follows: +-- octet 1 Coded as Codec Identification code in 3GPP TS 26.103 +-- octets 2,3,4 Parameters for the Codec as defined in 3GPP TS +-- 26.103, if available, length depending on the codec +GERAN-Classmark ::= OCTET STRING(SIZE (2..87)) + +-- Octets are coded according the GERAN Classmark information element in 3GPP TS 48.008 +SelectedGSM-Algorithm ::= OCTET STRING(SIZE (1)) + +-- internal structure is coded as Algorithm identifier octet from Chosen Encryption +-- Algorithm defined in 3GPP TS 48.008 +-- A node shall mark only the selected GSM algorithm +SendEndSignal-Arg ::= [3] SEQUENCE { + an-APDU AccessNetworkSignalInfo, + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +SendEndSignal-Res ::= SEQUENCE { + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +RNCId ::= OCTET STRING(SIZE (7)) + +-- The internal structure is defined as follows: +-- octet 1 bits 4321 Mobile Country Code 1st digit +-- bits 8765 Mobile Country Code 2nd digit +-- octet 2 bits 4321 Mobile Country Code 3rd digit +-- bits 8765 Mobile Network Code 3rd digit +-- or filler (1111) for 2 digit MNCs +-- octet 3 bits 4321 Mobile Network Code 1st digit +-- bits 8765 Mobile Network Code 2nd digit +-- octets 4 and 5 Location Area Code according to 3GPP TS 24.008 +-- octets 6 and 7 RNC Id value according to 3GPP TS 25.413 +RelocationNumberList ::= + SEQUENCE SIZE (1..maxNumOfRelocationNumber) OF RelocationNumber + +MulticallBearerInfo ::= INTEGER(1..maxNumOfRelocationNumber) + +RelocationNumber ::= SEQUENCE { + handoverNumber ISDN-AddressString, + rab-Id RAB-Id, + -- RAB Identity is needed to relate the calls with the radio access bearers. + ...} + +RAB-Id ::= INTEGER(1..maxNrOfRABs) + +maxNrOfRABs INTEGER ::= 255 + +maxNumOfRelocationNumber INTEGER ::= 7 + +RadioResourceInformation ::= OCTET STRING(SIZE (3..13)) + +-- Octets are coded according the Channel Type information element in 3GPP TS 48.008 +IntegrityProtectionInformation ::= + OCTET STRING(SIZE (18..maxNumOfIntegrityInfo)) + +-- Octets contain a complete IntegrityProtectionInformation data type +-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme +-- mandated by 3GPP TS 25.413 +-- Padding bits are included, if needed, in the least significant bits of the +-- last octet of the octet string. +maxNumOfIntegrityInfo INTEGER ::= + 100 + +EncryptionInformation ::= OCTET STRING(SIZE (18..maxNumOfEncryptionInfo)) + +-- Octets contain a complete EncryptionInformation data type +-- as defined in 3GPP TS 25.413, encoded according to the encoding scheme +-- mandated by 3GPP TS 25.413 +-- Padding bits are included, if needed, in the least significant bits of the +-- last octet of the octet string. +maxNumOfEncryptionInfo INTEGER ::= + 100 + +-- authentication management types +SendAuthenticationInfoArg ::= SEQUENCE { + imsi [0] IMSI, + numberOfRequestedVectors NumberOfRequestedVectors, + segmentationProhibited NULL OPTIONAL, + immediateResponsePreferred [1] NULL OPTIONAL, + re-synchronisationInfo Re-synchronisationInfo OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ..., + requestingNodeType [3] RequestingNodeType OPTIONAL} + +NumberOfRequestedVectors ::= INTEGER(1..5) + +Re-synchronisationInfo ::= SEQUENCE {rand RAND, + auts AUTS, + ...} + +SendAuthenticationInfoRes ::= [3] SEQUENCE { + authenticationSetList AuthenticationSetList OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +RequestingNodeType ::= ENUMERATED {vlr(0), sgsn(1), ... + } + +-- exception handling: +-- received values in the range 2-15 shall be treated as "vlr" +-- received values greater than 15 shall be treated as "sgsn" +-- equipment management types +CheckIMEI-Arg ::= SEQUENCE { + imei IMEI, + requestedEquipmentInfo RequestedEquipmentInfo, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +CheckIMEI-Res ::= SEQUENCE { + equipmentStatus EquipmentStatus OPTIONAL, + bmuef UESBI OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +RequestedEquipmentInfo ::= BIT STRING {equipmentStatus(0), bmuef(1) +}(SIZE (2..8)) + +-- exception handling: reception of unknown bit assignments in the +-- RequestedEquipmentInfo data type shall be discarded by the receiver +UESBI ::= OCTET STRING(SIZE (10)) + +-- Octets are coded according the UESBI information element in 3GPP TS 25.413. +EquipmentStatus ::= ENUMERATED {whiteListed(0), blackListed(1), greyListed(2) +} + +-- subscriber management types +InsertSubscriberDataArg ::= SEQUENCE { + imsi [0] IMSI OPTIONAL, + COMPONENTS OF SubscriberData, + extensionContainer + [14] ExtensionContainer OPTIONAL, + ..., + naea-PreferredCI + [15] NAEA-PreferredCI OPTIONAL, + -- naea-PreferredCI is included at the discretion of the HLR operator. + gprsSubscriptionData + [16] GPRSSubscriptionData OPTIONAL, + roamingRestrictedInSgsnDueToUnsupportedFeature [23] NULL OPTIONAL, + networkAccessMode + [24] NetworkAccessMode OPTIONAL, + lsaInformation + [25] LSAInformation OPTIONAL, + lmu-Indicator [21] NULL OPTIONAL, + lcsInformation + [22] LCSInformation OPTIONAL, + istAlertTimer + [26] IST-AlertTimerValue OPTIONAL, + superChargerSupportedInHLR + [27] AgeIndicator OPTIONAL, + mc-SS-Info [28] MC-SS-Info OPTIONAL, + cs-AllocationRetentionPriority + [29] CS-AllocationRetentionPriority OPTIONAL, + sgsn-CAMEL-SubscriptionInfo + [17] SGSN-CAMEL-SubscriptionInfo OPTIONAL, + chargingCharacteristics + [18] ChargingCharacteristics OPTIONAL} + +-- If the Network Access Mode parameter is sent, it shall be present only in +-- the first sequence if seqmentation is used +CS-AllocationRetentionPriority ::= OCTET STRING(SIZE (1)) + +-- This data type encodes each priority level defined in TS 23.107 as the binary value +-- of the priority level. +IST-AlertTimerValue ::= INTEGER(15..255) + +LCSInformation ::= SEQUENCE { + gmlc-List [0] GMLC-List OPTIONAL, + lcs-PrivacyExceptionList [1] LCS-PrivacyExceptionList OPTIONAL, + molr-List [2] MOLR-List OPTIONAL, + ..., + add-lcs-PrivacyExceptionList [3] LCS-PrivacyExceptionList OPTIONAL} + +-- add-lcs-PrivacyExceptionList may be sent only if lcs-PrivacyExceptionList is +-- present and contains four instances of LCS-PrivacyClass. If the mentioned condition +-- is not satisfied the receiving node shall discard add-lcs-PrivacyExceptionList. +-- If an LCS-PrivacyClass is received both in lcs-PrivacyExceptionList and in +-- add-lcs-PrivacyExceptionList with the same SS-Code, then the error unexpected +-- data value shall be returned. +GMLC-List ::= SEQUENCE SIZE (1..maxNumOfGMLC) OF ISDN-AddressString + +-- if segmentation is used, the complete GMLC-List shall be sent in one segment +maxNumOfGMLC INTEGER ::= + 5 + +NetworkAccessMode ::= ENUMERATED { + bothMSCAndSGSN(0), onlyMSC(1), onlySGSN(2), ... + } + +-- if unknown values are received in NetworkAccessMode +-- they shall be discarded. +GPRSDataList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF PDP-Context + +maxNumOfPDP-Contexts INTEGER ::= 50 + +PDP-Context ::= SEQUENCE { + pdp-ContextId ContextId, + pdp-Type [16] PDP-Type, + pdp-Address [17] PDP-Address OPTIONAL, + qos-Subscribed [18] QoS-Subscribed, + vplmnAddressAllowed [19] NULL OPTIONAL, + apn [20] APN, + extensionContainer [21] ExtensionContainer OPTIONAL, + ..., + ext-QoS-Subscribed [0] Ext-QoS-Subscribed OPTIONAL, + pdp-ChargingCharacteristics [1] ChargingCharacteristics OPTIONAL} + +ContextId ::= INTEGER(1..maxNumOfPDP-Contexts) + +GPRSSubscriptionData ::= SEQUENCE { + completeDataListIncluded NULL OPTIONAL, + -- If segmentation is used, completeDataListIncluded may only be present in the + -- first segment. + gprsDataList [1] GPRSDataList, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +SGSN-CAMEL-SubscriptionInfo ::= SEQUENCE { + gprs-CSI [0] GPRS-CSI OPTIONAL, + mo-sms-CSI [1] SMS-CSI OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ..., + mt-sms-CSI [3] SMS-CSI OPTIONAL, + mt-smsCAMELTDP-CriteriaList [4] MT-smsCAMELTDP-CriteriaList OPTIONAL, + mg-csi [5] MG-CSI OPTIONAL} + +GPRS-CSI ::= SEQUENCE { + gprs-CamelTDPDataList [0] GPRS-CamelTDPDataList OPTIONAL, + camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + notificationToCSE [3] NULL OPTIONAL, + csi-Active [4] NULL OPTIONAL, + ...} + +-- notificationToCSE and csi-Active shall not be present when GPRS-CSI is sent to SGSN. +-- They may only be included in ATSI/ATM ack/NSDC message. +-- GPRS-CamelTDPData and camelCapabilityHandling shall be present in +-- the GPRS-CSI sequence. +-- If GPRS-CSI is segmented, gprs-CamelTDPDataList and camelCapabilityHandling shall be +-- present in the first segment +GPRS-CamelTDPDataList ::= + SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF GPRS-CamelTDPData + +-- GPRS-CamelTDPDataList shall not contain more than one instance of +-- GPRS-CamelTDPData containing the same value for gprs-TriggerDetectionPoint. +GPRS-CamelTDPData ::= SEQUENCE { + gprs-TriggerDetectionPoint [0] GPRS-TriggerDetectionPoint, + serviceKey [1] ServiceKey, + gsmSCF-Address [2] ISDN-AddressString, + defaultSessionHandling [3] DefaultGPRS-Handling, + extensionContainer [4] ExtensionContainer OPTIONAL, + ...} + +DefaultGPRS-Handling ::= ENUMERATED { + continueTransaction(0), releaseTransaction(1), ... + } + +-- exception handling: +-- reception of values in range 2-31 shall be treated as "continueTransaction" +-- reception of values greater than 31 shall be treated as "releaseTransaction" +GPRS-TriggerDetectionPoint ::= ENUMERATED { + attach(1), attachChangeOfPosition(2), pdp-ContextEstablishment(11), + pdp-ContextEstablishmentAcknowledgement(12), pdp-ContextChangeOfPosition(14), + ... + } + +-- exception handling: +-- For GPRS-CamelTDPData sequences containing this parameter with any +-- other value than the ones listed the receiver shall ignore the whole +-- GPRS-CamelTDPDatasequence. +APN ::= OCTET STRING(SIZE (2..63)) + +-- Octets are coded according to TS 3GPP TS 23.003 [17] +PDP-Type ::= OCTET STRING(SIZE (2)) + +-- Octets are coded according to TS 3GPP TS 29.060 [105] +PDP-Address ::= OCTET STRING(SIZE (1..16)) + +-- Octets are coded according to TS 3GPP TS 29.060 [105] +-- The possible size values are: +-- 1-7 octets X.25 address type +-- 4 octets IPv4 address type +-- 16 octets Ipv6 address type +QoS-Subscribed ::= OCTET STRING(SIZE (3)) + +-- Octets are coded according to TS 3GPP TS 24.008 [35] Quality of Service Octets +-- 3-5. +Ext-QoS-Subscribed ::= OCTET STRING(SIZE (1..9)) + +-- OCTET 1: +-- Allocation/Retention Priority (This octet encodes each priority level defined in +-- 23.107 as the binary value of the priority level, declaration in 29.060) +-- Octets 2-9 are coded according to 3GPP TS 24.008[35] Quality of Service Octets +-- 6-13. +ChargingCharacteristics ::= OCTET STRING(SIZE (2)) + +-- Octets are coded according to 3GPP TS 32.015. +LSAOnlyAccessIndicator ::= ENUMERATED { + accessOutsideLSAsAllowed(0), accessOutsideLSAsRestricted(1)} + +LSADataList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF LSAData + +maxNumOfLSAs INTEGER ::= 20 + +LSAData ::= SEQUENCE { + lsaIdentity [0] LSAIdentity, + lsaAttributes [1] LSAAttributes, + lsaActiveModeIndicator [2] NULL OPTIONAL, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +LSAInformation ::= SEQUENCE { + completeDataListIncluded NULL OPTIONAL, + -- If segmentation is used, completeDataListIncluded may only be present in the + -- first segment. + lsaOnlyAccessIndicator [1] LSAOnlyAccessIndicator OPTIONAL, + lsaDataList [2] LSADataList OPTIONAL, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +LSAIdentity ::= OCTET STRING(SIZE (3)) + +-- Octets are coded according to TS 3GPP TS 23.003 [17] +LSAAttributes ::= OCTET STRING(SIZE (1)) + +-- Octets are coded according to TS 3GPP TS 48.008 [49] +SubscriberData ::= SEQUENCE { + msisdn [1] ISDN-AddressString OPTIONAL, + category [2] Category OPTIONAL, + subscriberStatus [3] SubscriberStatus OPTIONAL, + bearerServiceList [4] BearerServiceList OPTIONAL, + -- The exception handling for reception of unsupported / not allocated + -- bearerServiceCodes is defined in section 8.8.1 + teleserviceList [6] TeleserviceList OPTIONAL, + -- The exception handling for reception of unsupported / not allocated + -- teleserviceCodes is defined in section 8.8.1 + provisionedSS [7] Ext-SS-InfoList OPTIONAL, + odb-Data [8] ODB-Data OPTIONAL, + roamingRestrictionDueToUnsupportedFeature [9] NULL OPTIONAL, + regionalSubscriptionData [10] ZoneCodeList OPTIONAL, + vbsSubscriptionData [11] VBSDataList OPTIONAL, + vgcsSubscriptionData [12] VGCSDataList OPTIONAL, + vlrCamelSubscriptionInfo + [13] VlrCamelSubscriptionInfo OPTIONAL} + +Category ::= OCTET STRING(SIZE (1)) + +-- The internal structure is defined in ITU-T Rec Q.763. +SubscriberStatus ::= ENUMERATED { + serviceGranted(0), operatorDeterminedBarring(1)} + +BearerServiceList ::= + SEQUENCE SIZE (1..maxNumOfBearerServices) OF Ext-BearerServiceCode + +maxNumOfBearerServices INTEGER ::= 50 + +TeleserviceList ::= + SEQUENCE SIZE (1..maxNumOfTeleservices) OF Ext-TeleserviceCode + +maxNumOfTeleservices INTEGER ::= 20 + +ODB-Data ::= SEQUENCE { + odb-GeneralData ODB-GeneralData, + odb-HPLMN-Data ODB-HPLMN-Data OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +ODB-GeneralData ::= BIT STRING { + allOG-CallsBarred(0), internationalOGCallsBarred(1), + internationalOGCallsNotToHPLMN-CountryBarred(2), interzonalOGCallsBarred(6), + interzonalOGCallsNotToHPLMN-CountryBarred(7), + interzonalOGCallsAndInternationalOGCallsNotToHPLMN-CountryBarred(8), + premiumRateInformationOGCallsBarred(3), + premiumRateEntertainementOGCallsBarred(4), ss-AccessBarred(5), + allECT-Barred(9), chargeableECT-Barred(10), internationalECT-Barred(11), + interzonalECT-Barred(12), doublyChargeableECT-Barred(13), + multipleECT-Barred(14), allPacketOrientedServicesBarred(15), + roamerAccessToHPLMN-AP-Barred(16), roamerAccessToVPLMN-AP-Barred(17), + roamingOutsidePLMNOG-CallsBarred(18), allIC-CallsBarred(19), + roamingOutsidePLMNIC-CallsBarred(20), + roamingOutsidePLMNICountryIC-CallsBarred(21), roamingOutsidePLMN-Barred(22), + roamingOutsidePLMN-CountryBarred(23), registrationAllCF-Barred(24), + registrationCFNotToHPLMN-Barred(25), registrationInterzonalCF-Barred(26), + registrationInterzonalCFNotToHPLMN-Barred(27), + registrationInternationalCF-Barred(28)}(SIZE (15..32)) + +-- exception handling: reception of unknown bit assignments in the +-- ODB-GeneralData type shall be treated like unsupported ODB-GeneralData +-- When the ODB-GeneralData type is removed from the HLR for a given subscriber, +-- in NoteSubscriberDataModified operation sent toward the gsmSCF +-- all bits shall be set to “O“. +ODB-HPLMN-Data ::= BIT STRING { + plmn-SpecificBarringType1(0), plmn-SpecificBarringType2(1), + plmn-SpecificBarringType3(2), plmn-SpecificBarringType4(3)}(SIZE (4..32)) + +-- exception handling: reception of unknown bit assignments in the +-- ODB-HPLMN-Data type shall be treated like unsupported ODB-HPLMN-Data +-- When the ODB-HPLMN-Data type is removed from the HLR for a given subscriber, +-- in NoteSubscriberDataModified operation sent toward the gsmSCF +-- all bits shall be set to “O“. +Ext-SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF Ext-SS-Info + +Ext-SS-Info ::= CHOICE { + forwardingInfo [0] Ext-ForwInfo, + callBarringInfo [1] Ext-CallBarInfo, + cug-Info [2] CUG-Info, + ss-Data [3] Ext-SS-Data, + emlpp-Info [4] EMLPP-Info} + +Ext-ForwInfo ::= SEQUENCE { + ss-Code SS-Code, + forwardingFeatureList Ext-ForwFeatureList, + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +Ext-ForwFeatureList ::= + SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF Ext-ForwFeature + +Ext-ForwFeature ::= SEQUENCE { + basicService Ext-BasicServiceCode OPTIONAL, + ss-Status [4] Ext-SS-Status, + forwardedToNumber [5] ISDN-AddressString OPTIONAL, + -- When this data type is sent from an HLR which supports CAMEL Phase 2 + -- to a VLR that supports CAMEL Phase 2 the VLR shall not check the + -- format of the number + forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL, + forwardingOptions [6] Ext-ForwOptions OPTIONAL, + noReplyConditionTime [7] Ext-NoRepCondTime OPTIONAL, + extensionContainer [9] ExtensionContainer OPTIONAL, + ..., + longForwardedToNumber [10] FTN-AddressString OPTIONAL} + +Ext-ForwOptions ::= OCTET STRING(SIZE (1..5)) + +-- OCTET 1: +-- bit 8: notification to forwarding party +-- 0 no notification +-- 1 notification +-- bit 7: redirecting presentation +-- 0 no presentation +-- 1 presentation +-- bit 6: notification to calling party +-- 0 no notification +-- 1 notification +-- bit 5: 0 (unused) +-- bits 43: forwarding reason +-- 00 ms not reachable +-- 01 ms busy +-- 10 no reply +-- 11 unconditional +-- bits 21: 00 (unused) +-- OCTETS 2-5: reserved for future use. They shall be discarded if +-- received and not understood. +Ext-NoRepCondTime ::= INTEGER(1..100) + +-- Only values 5-30 are used. +-- Values in the ranges 1-4 and 31-100 are reserved for future use +-- If received: +-- values 1-4 shall be mapped on to value 5 +-- values 31-100 shall be mapped on to value 30 +Ext-CallBarInfo ::= SEQUENCE { + ss-Code SS-Code, + callBarringFeatureList Ext-CallBarFeatureList, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +Ext-CallBarFeatureList ::= + SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF Ext-CallBarringFeature + +Ext-CallBarringFeature ::= SEQUENCE { + basicService Ext-BasicServiceCode OPTIONAL, + ss-Status [4] Ext-SS-Status, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +CUG-Info ::= SEQUENCE { + cug-SubscriptionList CUG-SubscriptionList, + cug-FeatureList CUG-FeatureList OPTIONAL, + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +CUG-SubscriptionList ::= SEQUENCE SIZE (0..maxNumOfCUG) OF CUG-Subscription + +CUG-Subscription ::= SEQUENCE { + cug-Index CUG-Index, + cug-Interlock CUG-Interlock, + intraCUG-Options IntraCUG-Options, + basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL, + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +CUG-Index ::= INTEGER(0..32767) + +-- The internal structure is defined in ETS 300 138. +CUG-Interlock ::= OCTET STRING(SIZE (4)) + +IntraCUG-Options ::= ENUMERATED { + noCUG-Restrictions(0), cugIC-CallBarred(1), cugOG-CallBarred(2)} + +maxNumOfCUG INTEGER ::= 10 + +CUG-FeatureList ::= + SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF CUG-Feature + +Ext-BasicServiceGroupList ::= + SEQUENCE SIZE (1..maxNumOfExt-BasicServiceGroups) OF Ext-BasicServiceCode + +maxNumOfExt-BasicServiceGroups INTEGER ::= 32 + +CUG-Feature ::= SEQUENCE { + basicService Ext-BasicServiceCode OPTIONAL, + preferentialCUG-Indicator CUG-Index OPTIONAL, + interCUG-Restrictions InterCUG-Restrictions, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +InterCUG-Restrictions ::= OCTET STRING(SIZE (1)) + +-- bits 876543: 000000 (unused) +-- Exception handling: +-- bits 876543 shall be ignored if received and not understood +-- bits 21 +-- 00 CUG only facilities +-- 01 CUG with outgoing access +-- 10 CUG with incoming access +-- 11 CUG with both outgoing and incoming access +Ext-SS-Data ::= SEQUENCE { + ss-Code SS-Code, + ss-Status [4] Ext-SS-Status, + ss-SubscriptionOption SS-SubscriptionOption OPTIONAL, + basicServiceGroupList Ext-BasicServiceGroupList OPTIONAL, + extensionContainer [5] ExtensionContainer OPTIONAL, + ...} + +LCS-PrivacyExceptionList ::= + SEQUENCE SIZE (1..maxNumOfPrivacyClass) OF LCS-PrivacyClass + +maxNumOfPrivacyClass INTEGER ::= 4 + +LCS-PrivacyClass ::= SEQUENCE { + ss-Code SS-Code, + ss-Status Ext-SS-Status, + notificationToMSUser [0] NotificationToMSUser OPTIONAL, + -- notificationToMSUser may be sent only for SS-codes callSessionRelated + -- and callSessionUnrelated. If not received for SS-codes callSessionRelated + -- and callSessionUnrelated, + -- the default values according to 3GPP TS 23.271 shall be assumed. + externalClientList [1] ExternalClientList OPTIONAL, + -- externalClientList may be sent only for SS-code callSessionUnrelated to a + -- visited node that does not support LCS Release 4 or later versions. + -- externalClientList may be sent only for SS-codes callSessionUnrelated and + -- callSessionRelated to a visited node that supports LCS Release 4 or later versions. + plmnClientList [2] PLMNClientList OPTIONAL, + -- plmnClientList may be sent only for SS-code plmnoperator. + extensionContainer [3] ExtensionContainer OPTIONAL, + ..., + ext-externalClientList [4] Ext-ExternalClientList OPTIONAL, + -- Ext-externalClientList may be sent only if the visited node supports LCS Release 4 or + -- later versions, the user did specify more than 5 clients, and White Book SCCP is used. + serviceTypeList [5] ServiceTypeList OPTIONAL} + -- serviceTypeList may be sent only for SS-code serviceType and if the visited node + -- supports LCS Release 5 or later versions. + -- + -- if segmentation is used, the complete LCS-PrivacyClass shall be sent in one segment + +ExternalClientList ::= + SEQUENCE SIZE (0..maxNumOfExternalClient) OF ExternalClient + +maxNumOfExternalClient INTEGER ::= 5 + +PLMNClientList ::= SEQUENCE SIZE (1..maxNumOfPLMNClient) OF LCSClientInternalID + +maxNumOfPLMNClient INTEGER ::= 5 + +Ext-ExternalClientList ::= + SEQUENCE SIZE (1..maxNumOfExt-ExternalClient) OF ExternalClient + +maxNumOfExt-ExternalClient INTEGER ::= 35 + +ExternalClient ::= SEQUENCE { + clientIdentity LCSClientExternalID, + gmlc-Restriction [0] GMLC-Restriction OPTIONAL, + notificationToMSUser [1] NotificationToMSUser OPTIONAL, + -- If notificationToMSUser is not received, the default value according to + -- 3GPP TS 23.271 shall be assumed. + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +GMLC-Restriction ::= ENUMERATED {gmlc-List(0), home-Country(1), ... + } + +-- exception handling: +-- At reception of any other value than the ones listed the receiver shall ignore +-- GMLC-Restriction. +NotificationToMSUser ::= ENUMERATED { + notifyLocationAllowed(0), notifyAndVerify-LocationAllowedIfNoResponse(1), + notifyAndVerify-LocationNotAllowedIfNoResponse(2), ..., + locationNotAllowed(3)} + +-- exception handling: +-- At reception of any other value than the ones listed the receiver shall ignore +-- NotificationToMSUser. +ServiceTypeList ::= SEQUENCE SIZE (1..maxNumOfServiceType) OF ServiceType + +maxNumOfServiceType INTEGER ::= 32 + +ServiceType ::= SEQUENCE { + serviceTypeIdentity LCSServiceTypeID, + gmlc-Restriction [0] GMLC-Restriction OPTIONAL, + notificationToMSUser [1] NotificationToMSUser OPTIONAL, + -- If notificationToMSUser is not received, the default value according to + -- 3GPP TS 23.271 shall be assumed. + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +MOLR-List ::= SEQUENCE SIZE (1..maxNumOfMOLR-Class) OF MOLR-Class + +maxNumOfMOLR-Class INTEGER ::= 3 + +MOLR-Class ::= SEQUENCE { + ss-Code SS-Code, + ss-Status Ext-SS-Status, + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +ZoneCodeList ::= SEQUENCE SIZE (1..maxNumOfZoneCodes) OF ZoneCode + +ZoneCode ::= OCTET STRING(SIZE (2)) + +-- internal structure is defined in TS 3GPP TS 23.003 [17] +maxNumOfZoneCodes INTEGER ::= + 10 + +InsertSubscriberDataRes ::= SEQUENCE { + teleserviceList [1] TeleserviceList OPTIONAL, + bearerServiceList [2] BearerServiceList OPTIONAL, + ss-List [3] SS-List OPTIONAL, + odb-GeneralData [4] ODB-GeneralData OPTIONAL, + regionalSubscriptionResponse [5] RegionalSubscriptionResponse OPTIONAL, + supportedCamelPhases [6] SupportedCamelPhases OPTIONAL, + extensionContainer [7] ExtensionContainer OPTIONAL, + ..., + offeredCamel4CSIs [8] OfferedCamel4CSIs OPTIONAL} + +RegionalSubscriptionResponse ::= ENUMERATED { + networkNode-AreaRestricted(0), tooManyZoneCodes(1), zoneCodesConflict(2), + regionalSubscNotSupported(3)} + +DeleteSubscriberDataArg ::= SEQUENCE { + imsi [0] IMSI, + basicServiceList + [1] BasicServiceList OPTIONAL, + -- The exception handling for reception of unsupported/not allocated + -- basicServiceCodes is defined in section 6.8.2 + ss-List [2] SS-List OPTIONAL, + roamingRestrictionDueToUnsupportedFeature [4] NULL OPTIONAL, + regionalSubscriptionIdentifier [5] ZoneCode OPTIONAL, + vbsGroupIndication [7] NULL OPTIONAL, + vgcsGroupIndication [8] NULL OPTIONAL, + camelSubscriptionInfoWithdraw [9] NULL OPTIONAL, + extensionContainer + [6] ExtensionContainer OPTIONAL, + ..., + gprsSubscriptionDataWithdraw + [10] GPRSSubscriptionDataWithdraw OPTIONAL, + roamingRestrictedInSgsnDueToUnsuppportedFeature [11] NULL OPTIONAL, + lsaInformationWithdraw + [12] LSAInformationWithdraw OPTIONAL, + gmlc-ListWithdraw [13] NULL OPTIONAL, + istInformationWithdraw [14] NULL OPTIONAL, + specificCSI-Withdraw + [15] SpecificCSI-Withdraw OPTIONAL} + +SpecificCSI-Withdraw ::= BIT STRING { + o-csi(0), ss-csi(1), tif-csi(2), d-csi(3), vt-csi(4), mo-sms-csi(5), + m-csi(6), gprs-csi(7), t-csi(8), mt-sms-csi(9), mg-csi(10), o-IM-CSI(11), + d-IM-CSI(12), vt-IM-CSI(13)}(SIZE (8..32)) + +-- exception handling: +-- bits 11 to 31 shall be ignored if received by a non-IP Multimedia Core Network entity. +-- bits 0-10 and 14-31 shall be ignored if received by an IP Multimedia Core Network entity. +-- bits 11-13 are only applicable in an IP Multimedia Core Network. +-- Bit 8 and bits 11-13 are only applicable for the NoteSubscriberDataModified operation. +GPRSSubscriptionDataWithdraw ::= CHOICE { + allGPRSData NULL, + contextIdList ContextIdList} + +ContextIdList ::= SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF ContextId + +LSAInformationWithdraw ::= CHOICE { + allLSAData NULL, + lsaIdentityList LSAIdentityList} + +LSAIdentityList ::= SEQUENCE SIZE (1..maxNumOfLSAs) OF LSAIdentity + +BasicServiceList ::= + SEQUENCE SIZE (1..maxNumOfBasicServices) OF Ext-BasicServiceCode + +maxNumOfBasicServices INTEGER ::= 70 + +DeleteSubscriberDataRes ::= SEQUENCE { + regionalSubscriptionResponse [0] RegionalSubscriptionResponse OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +VlrCamelSubscriptionInfo ::= SEQUENCE { + o-CSI [0] O-CSI OPTIONAL, + extensionContainer [1] ExtensionContainer OPTIONAL, + ..., + ss-CSI [2] SS-CSI OPTIONAL, + o-BcsmCamelTDP-CriteriaList [4] O-BcsmCamelTDPCriteriaList OPTIONAL, + tif-CSI [3] NULL OPTIONAL, + m-CSI [5] M-CSI OPTIONAL, + mo-sms-CSI [6] SMS-CSI OPTIONAL, + vt-CSI [7] T-CSI OPTIONAL, + t-BCSM-CAMEL-TDP-CriteriaList [8] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL, + d-CSI [9] D-CSI OPTIONAL, + mt-sms-CSI [10] SMS-CSI OPTIONAL, + mt-smsCAMELTDP-CriteriaList [11] MT-smsCAMELTDP-CriteriaList OPTIONAL} + +MT-smsCAMELTDP-CriteriaList ::= + SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF MT-smsCAMELTDP-Criteria + +MT-smsCAMELTDP-Criteria ::= SEQUENCE { + sms-TriggerDetectionPoint SMS-TriggerDetectionPoint, + tpdu-TypeCriterion [0] TPDU-TypeCriterion OPTIONAL, + ...} + +TPDU-TypeCriterion ::= SEQUENCE SIZE (1..maxNumOfTPDUTypes) OF MT-SMS-TPDU-Type + +maxNumOfTPDUTypes INTEGER ::= 5 + +MT-SMS-TPDU-Type ::= ENUMERATED { + sms-DELIVER(0), sms-SUBMIT-REPORT(1), sms-STATUS-REPORT(2), ... + } + +-- exception handling: +-- For TPDU-TypeCriterion sequences containing this parameter with any +-- other value than the ones listed above the receiver shall ignore +-- the whole TPDU-TypeCriterion sequence. +-- In CAMEL phase 4, sms-SUBMIT-REPORT shall not be used and a received TPDU-TypeCriterion +-- sequence containing sms-SUBMIT-REPORT shall be wholly ignored. +D-CSI ::= SEQUENCE { + dp-AnalysedInfoCriteriaList [0] DP-AnalysedInfoCriteriaList OPTIONAL, + camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + notificationToCSE [3] NULL OPTIONAL, + csi-Active [4] NULL OPTIONAL, + ...} + +-- notificationToCSE and csi-Active shall not be present when D-CSI is sent to VLR/GMSC. +-- They may only be included in ATSI/ATM ack/NSDC message. +-- DP-AnalysedInfoCriteria and camelCapabilityHandling shall be present in +-- the D-CSI sequence. +-- If D-CSI is segmented, dp-AnalysedInfoCriteriaList and camelCapabilityHandling shall be +-- present in the first segment +DP-AnalysedInfoCriteriaList ::= + SEQUENCE SIZE (1..maxNumOfDP-AnalysedInfoCriteria) OF + DP-AnalysedInfoCriterium + +maxNumOfDP-AnalysedInfoCriteria INTEGER ::= 10 + +DP-AnalysedInfoCriterium ::= SEQUENCE { + dialledNumber ISDN-AddressString, + serviceKey ServiceKey, + gsmSCF-Address ISDN-AddressString, + defaultCallHandling DefaultCallHandling, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +SS-CSI ::= SEQUENCE { + ss-CamelData SS-CamelData, + extensionContainer ExtensionContainer OPTIONAL, + ..., + notificationToCSE [0] NULL OPTIONAL, + csi-Active [1] NULL OPTIONAL} + -- notificationToCSE and csi-Active shall not be present when SS-CSI is sent to VLR. + -- They may only be included in ATSI/ATM ack/NSDC message. + +SS-CamelData ::= SEQUENCE { + ss-EventList SS-EventList, + gsmSCF-Address ISDN-AddressString, + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +SS-EventList ::= SEQUENCE SIZE (1..maxNumOfCamelSSEvents) OF SS-Code + +-- Actions for the following SS-Code values are defined in CAMEL Phase 3: +-- ect SS-Code ::= '00110001'B +-- multiPTY SS-Code ::= '01010001'B +-- cd SS-Code ::= '00100100'B +-- ccbs SS-Code ::= '01000100'B +-- all other SS codes shall be ignored +-- When SS-CSI is sent to the VLR, it shall not contain a marking for ccbs. +-- If the VLR receives SS-CSI containing a marking for ccbs, the VLR shall discard the +-- ccbs marking in SS-CSI. +maxNumOfCamelSSEvents INTEGER ::= + 10 + +O-CSI ::= SEQUENCE { + o-BcsmCamelTDPDataList O-BcsmCamelTDPDataList, + extensionContainer ExtensionContainer OPTIONAL, + ..., + camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL, + notificationToCSE [1] NULL OPTIONAL, + csiActive [2] NULL OPTIONAL} + +-- notificationtoCSE and csiActive shall not be present when O-CSI is sent to VLR/GMSC. +-- They may only be included in ATSI/ATM ack/NSDC message. +-- O-CSI shall not be segmented. +O-BcsmCamelTDPDataList ::= + SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF O-BcsmCamelTDPData + +-- O-BcsmCamelTDPDataList shall not contain more than one instance of +-- O-BcsmCamelTDPData containing the same value for o-BcsmTriggerDetectionPoint. +-- For CAMEL Phase 2, this means that only one instance of O-BcsmCamelTDPData is allowed +-- with o-BcsmTriggerDetectionPoint being equal to DP2. +maxNumOfCamelTDPData INTEGER ::= + 10 + +O-BcsmCamelTDPData ::= SEQUENCE { + o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint, + serviceKey ServiceKey, + gsmSCF-Address [0] ISDN-AddressString, + defaultCallHandling [1] DefaultCallHandling, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +ServiceKey ::= INTEGER(0..2147483647) + +O-BcsmTriggerDetectionPoint ::= ENUMERATED { + collectedInfo(2), ..., + routeSelectFailure(4)} + +-- exception handling: +-- For O-BcsmCamelTDPData sequences containing this parameter with any +-- other value than the ones listed the receiver shall ignore the whole +-- O-BcsmCamelTDPDatasequence. +-- For O-BcsmCamelTDP-Criteria sequences containing this parameter with any +-- other value than the ones listed the receiver shall ignore the whole +-- O-BcsmCamelTDP-Criteria sequence. +O-BcsmCamelTDPCriteriaList ::= + SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF O-BcsmCamelTDP-Criteria + +T-BCSM-CAMEL-TDP-CriteriaList ::= + SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF T-BCSM-CAMEL-TDP-Criteria + +O-BcsmCamelTDP-Criteria ::= SEQUENCE { + o-BcsmTriggerDetectionPoint O-BcsmTriggerDetectionPoint, + destinationNumberCriteria [0] DestinationNumberCriteria OPTIONAL, + basicServiceCriteria [1] BasicServiceCriteria OPTIONAL, + callTypeCriteria [2] CallTypeCriteria OPTIONAL, + ..., + o-CauseValueCriteria [3] O-CauseValueCriteria OPTIONAL, + extensionContainer [4] ExtensionContainer OPTIONAL} + +T-BCSM-CAMEL-TDP-Criteria ::= SEQUENCE { + t-BCSM-TriggerDetectionPoint T-BcsmTriggerDetectionPoint, + basicServiceCriteria [0] BasicServiceCriteria OPTIONAL, + t-CauseValueCriteria [1] T-CauseValueCriteria OPTIONAL, + ...} + +DestinationNumberCriteria ::= SEQUENCE { + matchType [0] MatchType, + destinationNumberList [1] DestinationNumberList OPTIONAL, + destinationNumberLengthList [2] DestinationNumberLengthList OPTIONAL, + -- one or both of destinationNumberList and destinationNumberLengthList + -- shall be present + ...} + +DestinationNumberList ::= + SEQUENCE SIZE (1..maxNumOfCamelDestinationNumbers) OF ISDN-AddressString + +-- The receiving entity shall not check the format of a number in +-- the dialled number list +DestinationNumberLengthList ::= + SEQUENCE SIZE (1..maxNumOfCamelDestinationNumberLengths) OF + INTEGER(1..maxNumOfISDN-AddressDigits) + +BasicServiceCriteria ::= + SEQUENCE SIZE (1..maxNumOfCamelBasicServiceCriteria) OF Ext-BasicServiceCode + +maxNumOfISDN-AddressDigits INTEGER ::= 15 + +maxNumOfCamelDestinationNumbers INTEGER ::= 10 + +maxNumOfCamelDestinationNumberLengths INTEGER ::= 3 + +maxNumOfCamelBasicServiceCriteria INTEGER ::= 5 + +CallTypeCriteria ::= ENUMERATED {forwarded(0), notForwarded(1)} + +MatchType ::= ENUMERATED {inhibiting(0), enabling(1)} + +O-CauseValueCriteria ::= + SEQUENCE SIZE (1..maxNumOfCAMEL-O-CauseValueCriteria) OF CauseValue + +T-CauseValueCriteria ::= + SEQUENCE SIZE (1..maxNumOfCAMEL-T-CauseValueCriteria) OF CauseValue + +maxNumOfCAMEL-O-CauseValueCriteria INTEGER ::= 5 + +maxNumOfCAMEL-T-CauseValueCriteria INTEGER ::= 5 + +CauseValue ::= OCTET STRING(SIZE (1)) + +-- Type extracted from Cause parameter in ITU-T Recommendation Q.763. +-- For the use of cause value refer to ITU-T Recommendation Q.850. +DefaultCallHandling ::= ENUMERATED {continueCall(0), releaseCall(1), ... + } + +-- exception handling: +-- reception of values in range 2-31 shall be treated as "continueCall" +-- reception of values greater than 31 shall be treated as "releaseCall" +CamelCapabilityHandling ::= INTEGER(1..16) + +-- value 1 = CAMEL phase 1, +-- value 2 = CAMEL phase 2, +-- value 3 = CAMEL Phase 3, +-- value 4 = CAMEL phase 4: +-- reception of values greater than 4 shall be treated as CAMEL phase 4. +SupportedCamelPhases ::= BIT STRING {phase1(0), phase2(1), phase3(2), phase4(3) +}(SIZE (1..16)) + +-- A node shall mark in the BIT STRING all CAMEL Phases it supports. +-- Other values than listed above shall be discarded. +OfferedCamel4CSIs ::= BIT STRING { + o-csi(0), d-csi(1), vt-csi(2), t-csi(3), mt-sms-csi(4), mg-csi(5), + psi-enhancements(6)}(SIZE (7..16)) + +-- A node supporting Camel phase 4 shall mark in the BIT STRING all Camel4 CSIs +-- it offers. +-- Other values than listed above shall be discarded. +OfferedCamel4Functionalities ::= BIT STRING { + initiateCallAttempt(0), splitLeg(1), moveLeg(2), disconnectLeg(3), + entityReleased(4), dfc-WithArgument(5), playTone(6), dtmf-MidCall(7), + chargingIndicator(8), alertingDP(9), locationAtAlerting(10), + changeOfPositionDP(11), or-Interactions(12), warningToneEnhancements(13), + cf-Enhancements(14)}(SIZE (15..32)) + +-- A node supporting Camel phase 4 shall mark in the BIT STRING all Camel4 +-- functionalities it offers. +-- Other values than listed above shall be discarded. +SMS-CSI ::= SEQUENCE { + sms-CAMEL-TDP-DataList [0] SMS-CAMEL-TDP-DataList OPTIONAL, + camelCapabilityHandling [1] CamelCapabilityHandling OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + notificationToCSE [3] NULL OPTIONAL, + csi-Active [4] NULL OPTIONAL, + ...} + +-- notificationToCSE and csi-Active shall not be present +-- when MO-SMS-CSI or MT-SMS-CSI is sent to VLR or SGSN. +-- They may only be included in ATSI/ATM ack/NSDC message. +-- SMS-CAMEL-TDP-Data and camelCapabilityHandling shall be present in +-- the SMS-CSI sequence. +-- If SMS-CSI is segmented, sms-CAMEL-TDP-DataList and camelCapabilityHandling shall be +-- present in the first segment +SMS-CAMEL-TDP-DataList ::= + SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF SMS-CAMEL-TDP-Data + +-- SMS-CAMEL-TDP-DataList shall not contain more than one instance of +-- SMS-CAMEL-TDP-Data containing the same value for sms-TriggerDetectionPoint. +SMS-CAMEL-TDP-Data ::= SEQUENCE { + sms-TriggerDetectionPoint [0] SMS-TriggerDetectionPoint, + serviceKey [1] ServiceKey, + gsmSCF-Address [2] ISDN-AddressString, + defaultSMS-Handling [3] DefaultSMS-Handling, + extensionContainer [4] ExtensionContainer OPTIONAL, + ...} + +SMS-TriggerDetectionPoint ::= ENUMERATED { + sms-CollectedInfo(1), ..., + sms-DeliveryRequest(2)} + +-- exception handling: +-- For SMS-CAMEL-TDP-Data and MT-smsCAMELTDP-Criteria sequences containing this +-- parameter with any other value than the ones listed the receiver shall ignore +-- the whole sequence. +-- +-- If this parameter is received with any other value than sms-CollectedInfo +-- in an SMS-CAMEL-TDP-Data sequence contained in mo-sms-CSI, then the receiver shall +-- ignore the whole SMS-CAMEL-TDP-Data sequence. +-- +-- If this parameter is received with any other value than sms-DeliveryRequest +-- in an SMS-CAMEL-TDP-Data sequence contained in mt-sms-CSI then the receiver shall +-- ignore the whole SMS-CAMEL-TDP-Data sequence. +-- +-- If this parameter is received with any other value than sms-DeliveryRequest +-- in an MT-smsCAMELTDP-Criteria sequence then the receiver shall +-- ignore the whole MT-smsCAMELTDP-Criteria sequence. +DefaultSMS-Handling ::= ENUMERATED { + continueTransaction(0), releaseTransaction(1), ... + } + +-- exception handling: +-- reception of values in range 2-31 shall be treated as "continueTransaction" +-- reception of values greater than 31 shall be treated as "releaseTransaction" +M-CSI ::= SEQUENCE { + mobilityTriggers MobilityTriggers, + serviceKey ServiceKey, + gsmSCF-Address [0] ISDN-AddressString, + extensionContainer [1] ExtensionContainer OPTIONAL, + notificationToCSE [2] NULL OPTIONAL, + csi-Active [3] NULL OPTIONAL, + ...} + +-- notificationToCSE and csi-Active shall not be present when M-CSI is sent to VLR. +-- They may only be included in ATSI/ATM ack/NSDC message. +MG-CSI ::= SEQUENCE { + mobilityTriggers MobilityTriggers, + serviceKey ServiceKey, + gsmSCF-Address [0] ISDN-AddressString, + extensionContainer [1] ExtensionContainer OPTIONAL, + notificationToCSE [2] NULL OPTIONAL, + csi-Active [3] NULL OPTIONAL, + ...} + +-- notificationToCSE and csi-Active shall not be present when MG-CSI is sent to SGSN. +-- They may only be included in ATSI/ATM ack/NSDC message. +MobilityTriggers ::= SEQUENCE SIZE (1..maxNumOfMobilityTriggers) OF MM-Code + +maxNumOfMobilityTriggers INTEGER ::= 10 + +MM-Code ::= OCTET STRING(SIZE (1)) + +-- This type is used to indicate a Mobility Management event. +-- Actions for the following MM-Code values are defined in CAMEL Phase 4: +-- +-- CS domain MM events: +-- Location-update-in-same-VLR MM-Code ::= '00000000'B +-- Location-update-to-other-VLR MM-Code ::= '00000001'B +-- IMSI-Attach MM-Code ::= '00000010'B +-- MS-initiated-IMSI-Detach MM-Code ::= '00000011'B +-- Network-initiated-IMSI-Detach MM-Code ::= '00000100'B +-- +-- PS domain MM events: +-- Routeing-Area-update-in-same-SGSN MM-Code ::= '10000000'B +-- Routeing-Area-update-to-other-SGSN-update-from-new-SGSN +-- MM-Code ::= '10000001'B +-- Routeing-Area-update-to-other-SGSN-disconnect-by-detach +-- MM-Code ::= '10000010'B +-- GPRS-Attach MM-Code ::= '10000011'B +-- MS-initiated-GPRS-Detach MM-Code ::= '10000100'B +-- Network-initiated-GPRS-Detach MM-Code ::= '10000101'B +-- Network-initiated-transfer-to-MS-not-reachable-for-paging +-- MM-Code ::= '10000110'B +-- +-- If the MSC receives any other MM-code than the ones listed above for the +-- CS domain, then the MSC shall ignore that MM-code. +-- If the SGSN receives any other MM-code than the ones listed above for the +-- PS domain, then the SGSN shall ignore that MM-code. +T-CSI ::= SEQUENCE { + t-BcsmCamelTDPDataList T-BcsmCamelTDPDataList, + extensionContainer ExtensionContainer OPTIONAL, + ..., + camelCapabilityHandling [0] CamelCapabilityHandling OPTIONAL, + notificationToCSE [1] NULL OPTIONAL, + csi-Active [2] NULL OPTIONAL} + +-- notificationToCSE and csi-Active shall not be present when VT-CSI/T-CSI is sent +-- to VLR/GMSC. +-- They may only be included in ATSI/ATM ack/NSDC message. +-- T-CSI shall not be segmented. +T-BcsmCamelTDPDataList ::= + SEQUENCE SIZE (1..maxNumOfCamelTDPData) OF T-BcsmCamelTDPData + +--= T-BcsmCamelTDPDataList shall not contain more than one instance of +--= T-BcsmCamelTDPData containing the same value for t-BcsmTriggerDetectionPoint. +--= For CAMEL Phase 2, this means that only one instance of T-BcsmCamelTDPData is allowed +--= with t-BcsmTriggerDetectionPoint being equal to DP12. +--= For CAMEL Phase 3, more TDP’s are allowed. +T-BcsmCamelTDPData ::= SEQUENCE { + t-BcsmTriggerDetectionPoint T-BcsmTriggerDetectionPoint, + serviceKey ServiceKey, + gsmSCF-Address [0] ISDN-AddressString, + defaultCallHandling [1] DefaultCallHandling, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +T-BcsmTriggerDetectionPoint ::= ENUMERATED { + termAttemptAuthorized(12), ..., + tBusy(13), tNoAnswer(14)} + +-- exception handling: +-- For T-BcsmCamelTDPData sequences containing this parameter with any other +-- value than the ones listed above, the receiver shall ignore the whole +-- T-BcsmCamelTDPData sequence. +-- gprs location information retrieval types +SendRoutingInfoForGprsArg ::= SEQUENCE { + imsi [0] IMSI, + ggsn-Address [1] GSN-Address OPTIONAL, + ggsn-Number [2] ISDN-AddressString, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +SendRoutingInfoForGprsRes ::= SEQUENCE { + sgsn-Address [0] GSN-Address, + ggsn-Address [1] GSN-Address OPTIONAL, + mobileNotReachableReason [2] AbsentSubscriberDiagnosticSM OPTIONAL, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +-- failure report types +FailureReportArg ::= SEQUENCE { + imsi [0] IMSI, + ggsn-Number [1] ISDN-AddressString, + ggsn-Address [2] GSN-Address OPTIONAL, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +FailureReportRes ::= SEQUENCE { + ggsn-Address [0] GSN-Address OPTIONAL, + extensionContainer [1] ExtensionContainer OPTIONAL, + ...} + +-- gprs notification types +NoteMsPresentForGprsArg ::= SEQUENCE { + imsi [0] IMSI, + sgsn-Address [1] GSN-Address, + ggsn-Address [2] GSN-Address OPTIONAL, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +NoteMsPresentForGprsRes ::= SEQUENCE { + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +-- fault recovery types +ResetArg ::= SEQUENCE { + hlr-Number ISDN-AddressString, + hlr-List HLR-List OPTIONAL, + ...} + +RestoreDataArg ::= SEQUENCE { + imsi IMSI, + lmsi LMSI OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ..., + vlr-Capability [6] VLR-Capability OPTIONAL} + +RestoreDataRes ::= SEQUENCE { + hlr-Number ISDN-AddressString, + msNotReachable NULL OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +-- VBS/VGCS types +VBSDataList ::= SEQUENCE SIZE (1..maxNumOfVBSGroupIds) OF VoiceBroadcastData + +VGCSDataList ::= SEQUENCE SIZE (1..maxNumOfVGCSGroupIds) OF VoiceGroupCallData + +maxNumOfVBSGroupIds INTEGER ::= 50 + +maxNumOfVGCSGroupIds INTEGER ::= 50 + +VoiceGroupCallData ::= SEQUENCE { + groupId GroupId, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +VoiceBroadcastData ::= SEQUENCE { + groupid GroupId, + broadcastInitEntitlement NULL OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +GroupId ::= OCTET STRING(SIZE (3)) + +-- Refers to the Group Identification as specified in GSM TS 03.03 +-- and 03.68/ 03.69 +-- provide subscriber info types +ProvideSubscriberInfoArg ::= SEQUENCE { + imsi [0] IMSI, + lmsi [1] LMSI OPTIONAL, + requestedInfo [2] RequestedInfo, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +ProvideSubscriberInfoRes ::= SEQUENCE { + subscriberInfo SubscriberInfo, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +SubscriberInfo ::= SEQUENCE { + locationInformation [0] LocationInformation OPTIONAL, + subscriberState [1] SubscriberState OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ..., + locationInformationGPRS [3] LocationInformationGPRS OPTIONAL, + ps-SubscriberState [4] PS-SubscriberState OPTIONAL, + imei [5] IMEI OPTIONAL, + ms-Classmark2 [6] MS-Classmark2 OPTIONAL, + gprs-MS-Class [7] GPRSMSClass OPTIONAL} + +-- If the HLR receives locationInformation, subscriberState or ms-Classmark2 from an SGSN +-- it shall discard them. +-- If the HLR receives locationInformationGPRS, ps-SubscriberState or gprs-MS-Class from +-- a VLR it shall discard them. +-- If the HLR receives parameters which it has not requested, it shall discard them. +MS-Classmark2 ::= OCTET STRING(SIZE (3)) + +-- This parameter carries the value part of the MS Classmark 2 IE defined in +-- 3GPP TS 24.008 [35]. +GPRSMSClass ::= SEQUENCE { + mSNetworkCapability [0] MSNetworkCapability, + mSRadioAccessCapability [1] MSRadioAccessCapability OPTIONAL} + +MSNetworkCapability ::= OCTET STRING(SIZE (1..8)) + +-- This parameter carries the value part of the MS Network Capability IE defined in +-- 3GPP TS 24.008 [35]. +MSRadioAccessCapability ::= OCTET STRING(SIZE (1..50)) + +-- This parameter carries the value part of the MS Radio Access Capability IE defined in +-- 3GPP TS 24.008 [35]. +RequestedInfo ::= SEQUENCE { + locationInformation [0] NULL OPTIONAL, + subscriberState [1] NULL OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ..., + currentLocation [3] NULL OPTIONAL, + requestedDomain [4] DomainType OPTIONAL, + imei [6] NULL OPTIONAL, + ms-classmark [5] NULL OPTIONAL} + +-- currentLocation shall be absent if locationInformation is absent +DomainType ::= ENUMERATED {cs-Domain(0), ps-Domain(1), ... + } + +-- exception handling: +-- reception of values > 1 shall be mapped to 'cs-Domain' +LocationInformation ::= SEQUENCE { + ageOfLocationInformation AgeOfLocationInformation OPTIONAL, + geographicalInformation [0] GeographicalInformation OPTIONAL, + vlr-number [1] ISDN-AddressString OPTIONAL, + locationNumber [2] LocationNumber OPTIONAL, + cellGlobalIdOrServiceAreaIdOrLAI + [3] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL, + extensionContainer [4] ExtensionContainer OPTIONAL, + ..., + selectedLSA-Id [5] LSAIdentity OPTIONAL, + msc-Number [6] ISDN-AddressString OPTIONAL, + geodeticInformation [7] GeodeticInformation OPTIONAL, + currentLocationRetrieved [8] NULL OPTIONAL, + sai-Present [9] NULL OPTIONAL} + +-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains +-- a Service Area Identity. +-- currentLocationRetrieved shall be present +-- if the location information were retrieved after a successfull paging. +LocationInformationGPRS ::= SEQUENCE { + cellGlobalIdOrServiceAreaIdOrLAI + [0] CellGlobalIdOrServiceAreaIdOrLAI OPTIONAL, + routeingAreaIdentity [1] RAIdentity OPTIONAL, + geographicalInformation [2] GeographicalInformation OPTIONAL, + sgsn-Number [3] ISDN-AddressString OPTIONAL, + selectedLSAIdentity [4] LSAIdentity OPTIONAL, + extensionContainer [5] ExtensionContainer OPTIONAL, + ..., + sai-Present [6] NULL OPTIONAL, + geodeticInformation [7] GeodeticInformation OPTIONAL, + currentLocationRetrieved [8] NULL OPTIONAL, + ageOfLocationInformation [9] AgeOfLocationInformation OPTIONAL} + +-- sai-Present indicates that the cellGlobalIdOrServiceAreaIdOrLAI parameter contains +-- a Service Area Identity. +-- currentLocationRetrieved shall be present if the location information +-- was retrieved after successful paging. +RAIdentity ::= OCTET STRING(SIZE (6)) + +-- Routing Area Identity is coded in accordance with 3GPP TS 29.060 [105]. +-- It shall contain the value part defined in 3GPP TS 29.060 only. I.e. the 3GPP TS 29.060 +-- type identifier octet shall not be included. +GeographicalInformation ::= OCTET STRING(SIZE (8)) + +-- Refers to geographical Information defined in 3GPP TS 23.032. +-- Only the description of an ellipsoid point with uncertainty circle +-- as specified in 3GPP TS 23.032 is allowed to be used +-- The internal structure according to 3GPP TS 23.032 is as follows: +-- Type of shape (ellipsoid point with uncertainty circle) 1 octet +-- Degrees of Latitude 3 octets +-- Degrees of Longitude 3 octets +-- Uncertainty code 1 octet +GeodeticInformation ::= OCTET STRING(SIZE (10)) + +-- Refers to Calling Geodetic Location defined in Q.763 (1999). +-- Only the description of an ellipsoid point with uncertainty circle +-- as specified in Q.763 (1999) is allowed to be used +-- The internal structure according to Q.763 (1999) is as follows: +-- Screening and presentation indicators 1 octet +-- Type of shape (ellipsoid point with uncertainty circle) 1 octet +-- Degrees of Latitude 3 octets +-- Degrees of Longitude 3 octets +-- Uncertainty code 1 octet +-- Confidence 1 octet +LocationNumber ::= OCTET STRING(SIZE (2..10)) + +-- the internal structure is defined in ITU-T Rec Q.763 +SubscriberState ::= CHOICE { + assumedIdle [0] NULL, + camelBusy [1] NULL, + netDetNotReachable NotReachableReason, + notProvidedFromVLR [2] NULL} + +PS-SubscriberState ::= CHOICE { + notProvidedFromSGSN [0] NULL, + ps-Detached [1] NULL, + ps-AttachedNotReachableForPaging [2] NULL, + ps-AttachedReachableForPaging [3] NULL, + ps-PDP-ActiveNotReachableForPaging [4] PDP-ContextInfoList, + ps-PDP-ActiveReachableForPaging [5] PDP-ContextInfoList, + netDetNotReachable NotReachableReason} + +PDP-ContextInfoList ::= + SEQUENCE SIZE (1..maxNumOfPDP-Contexts) OF PDP-ContextInfo + +PDP-ContextInfo ::= SEQUENCE { + pdp-ContextIdentifier [0] ContextId, + pdp-ContextActive [1] NULL OPTIONAL, + pdp-Type [2] PDP-Type, + pdp-Address [3] PDP-Address OPTIONAL, + apn-Subscribed [4] APN OPTIONAL, + apn-InUse [5] APN OPTIONAL, + nsapi [6] NSAPI OPTIONAL, + transactionId [7] TransactionId OPTIONAL, + teid-ForGnAndGp [8] TEID OPTIONAL, + teid-ForIu [9] TEID OPTIONAL, + ggsn-Address [10] GSN-Address OPTIONAL, + qos-Subscribed [11] Ext-QoS-Subscribed OPTIONAL, + qos-Requested [12] Ext-QoS-Subscribed OPTIONAL, + qos-Negotiated [13] Ext-QoS-Subscribed OPTIONAL, + chargingId [14] GPRSChargingID OPTIONAL, + chargingCharacteristics [15] ChargingCharacteristics OPTIONAL, + rnc-Address [16] GSN-Address OPTIONAL, + extensionContainer [17] ExtensionContainer OPTIONAL, + ...} + +NSAPI ::= INTEGER(0..15) + +-- This type is used to indicate the Network layer Service Access Point +TransactionId ::= OCTET STRING(SIZE (1..2)) + +-- This type carries the value part of the transaction identifier which is used in the +-- session management messages on the access interface. The encoding is defined in +-- 3GPP TS 24.008 +TEID ::= OCTET STRING(SIZE (4)) + +-- This type carries the value part of the Tunnel Endpoint Identifier which is used to +-- distinguish between different tunnels between the same pair of entities which communicate +-- using the GPRS Tunnelling Protocol The encoding is defined in 3GPP TS 29.060. +GPRSChargingID ::= OCTET STRING(SIZE (4)) + +-- The Charging ID is a unique four octet value generated by the GGSN when +-- a PDP Context is activated. A Charging ID is generated for each activated context. +-- The encoding is defined in 3GPP TS 29.060. +NotReachableReason ::= ENUMERATED { + msPurged(0), imsiDetached(1), restrictedArea(2), notRegistered(3)} + +-- any time interrogation info types +AnyTimeInterrogationArg ::= SEQUENCE { + subscriberIdentity [0] SubscriberIdentity, + requestedInfo [1] RequestedInfo, + gsmSCF-Address [3] ISDN-AddressString, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +AnyTimeInterrogationRes ::= SEQUENCE { + subscriberInfo SubscriberInfo, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +-- any time information handling types +AnyTimeSubscriptionInterrogationArg ::= SEQUENCE { + subscriberIdentity [0] SubscriberIdentity, + requestedSubscriptionInfo [1] RequestedSubscriptionInfo, + gsmSCF-Address [2] ISDN-AddressString, + extensionContainer [3] ExtensionContainer OPTIONAL, + longFTN-Supported [4] NULL OPTIONAL, + ...} + +AnyTimeSubscriptionInterrogationRes ::= SEQUENCE { + callForwardingData [1] CallForwardingData OPTIONAL, + callBarringData [2] CallBarringData OPTIONAL, + odb-Info [3] ODB-Info OPTIONAL, + camel-SubscriptionInfo [4] CAMEL-SubscriptionInfo OPTIONAL, + supportedVLR-CAMEL-Phases [5] SupportedCamelPhases OPTIONAL, + supportedSGSN-CAMEL-Phases [6] SupportedCamelPhases OPTIONAL, + extensionContainer [7] ExtensionContainer OPTIONAL, + ..., + offeredCamel4CSIsInVLR [8] OfferedCamel4CSIs OPTIONAL, + offeredCamel4CSIsInSGSN [9] OfferedCamel4CSIs OPTIONAL} + +RequestedSubscriptionInfo ::= SEQUENCE { + requestedSS-Info [1] SS-ForBS-Code OPTIONAL, + odb [2] NULL OPTIONAL, + requestedCAMEL-SubscriptionInfo + [3] RequestedCAMEL-SubscriptionInfo OPTIONAL, + supportedVLR-CAMEL-Phases [4] NULL OPTIONAL, + supportedSGSN-CAMEL-Phases [5] NULL OPTIONAL, + extensionContainer + [6] ExtensionContainer OPTIONAL, + ..., + additionalRequestedCAMEL-SubscriptionInfo + [7] AdditionalRequestedCAMEL-SubscriptionInfo OPTIONAL} + +RequestedCAMEL-SubscriptionInfo ::= ENUMERATED { + o-CSI(0), t-CSI(1), vt-CSI(2), tif-CSI(3), gprs-CSI(4), mo-sms-CSI(5), + ss-CSI(6), m-CSI(7), d-csi(8)} + +AdditionalRequestedCAMEL-SubscriptionInfo ::= ENUMERATED { + mt-sms-CSI(0), mg-csi(1), o-IM-CSI(2), d-IM-CSI(3), vt-IM-CSI(4), ... + } + +-- exception handling: unknown values shall be discarded by the receiver. +CallForwardingData ::= SEQUENCE { + forwardingFeatureList Ext-ForwFeatureList, + notificationToCSE NULL OPTIONAL, + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +CallBarringData ::= SEQUENCE { + callBarringFeatureList Ext-CallBarFeatureList, + password Password OPTIONAL, + wrongPasswordAttemptsCounter WrongPasswordAttemptsCounter OPTIONAL, + notificationToCSE NULL OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +WrongPasswordAttemptsCounter ::= INTEGER(0..4) + +ODB-Info ::= SEQUENCE { + odb-Data ODB-Data, + notificationToCSE NULL OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +CAMEL-SubscriptionInfo ::= SEQUENCE { + o-CSI [0] O-CSI OPTIONAL, + o-BcsmCamelTDP-CriteriaList + [1] O-BcsmCamelTDPCriteriaList OPTIONAL, + d-CSI [2] D-CSI OPTIONAL, + t-CSI [3] T-CSI OPTIONAL, + t-BCSM-CAMEL-TDP-CriteriaList + [4] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL, + vt-CSI [5] T-CSI OPTIONAL, + vt-BCSM-CAMEL-TDP-CriteriaList + [6] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL, + tif-CSI [7] NULL OPTIONAL, + tif-CSI-NotificationToCSE [8] NULL OPTIONAL, + gprs-CSI [9] GPRS-CSI OPTIONAL, + mo-sms-CSI [10] SMS-CSI OPTIONAL, + ss-CSI [11] SS-CSI OPTIONAL, + m-CSI [12] M-CSI OPTIONAL, + extensionContainer [13] ExtensionContainer OPTIONAL, + ..., + specificCSIDeletedList [14] SpecificCSI-Withdraw OPTIONAL, + mt-sms-CSI [15] SMS-CSI OPTIONAL, + mt-smsCAMELTDP-CriteriaList + [16] MT-smsCAMELTDP-CriteriaList OPTIONAL, + mg-csi [17] MG-CSI OPTIONAL, + o-IM-CSI [18] O-CSI OPTIONAL, + o-IM-BcsmCamelTDP-CriteriaList + [19] O-BcsmCamelTDPCriteriaList OPTIONAL, + d-IM-CSI [20] D-CSI OPTIONAL, + vt-IM-CSI [21] T-CSI OPTIONAL, + vt-IM-BCSM-CAMEL-TDP-CriteriaList + [22] T-BCSM-CAMEL-TDP-CriteriaList OPTIONAL} + +AnyTimeModificationArg ::= SEQUENCE { + subscriberIdentity [0] SubscriberIdentity, + gsmSCF-Address [1] ISDN-AddressString, + modificationRequestFor-CF-Info + [2] ModificationRequestFor-CF-Info OPTIONAL, + modificationRequestFor-CB-Info + [3] ModificationRequestFor-CB-Info OPTIONAL, + modificationRequestFor-CSI [4] ModificationRequestFor-CSI OPTIONAL, + extensionContainer [5] ExtensionContainer OPTIONAL, + longFTN-Supported [6] NULL OPTIONAL, + ..., + modificationRequestFor-ODB-data + [7] ModificationRequestFor-ODB-data OPTIONAL} + +AnyTimeModificationRes ::= SEQUENCE { + ss-InfoFor-CSE [0] Ext-SS-InfoFor-CSE OPTIONAL, + camel-SubscriptionInfo [1] CAMEL-SubscriptionInfo OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ..., + odb-Info [3] ODB-Info OPTIONAL} + +ModificationRequestFor-CF-Info ::= SEQUENCE { + ss-Code [0] SS-Code, + basicService [1] Ext-BasicServiceCode OPTIONAL, + ss-Status [2] Ext-SS-Status OPTIONAL, + forwardedToNumber [3] AddressString OPTIONAL, + forwardedToSubaddress [4] ISDN-SubaddressString OPTIONAL, + noReplyConditionTime [5] Ext-NoRepCondTime OPTIONAL, + modifyNotificationToCSE [6] ModificationInstruction OPTIONAL, + extensionContainer [7] ExtensionContainer OPTIONAL, + ...} + +ModificationRequestFor-CB-Info ::= SEQUENCE { + ss-Code [0] SS-Code, + basicService [1] Ext-BasicServiceCode OPTIONAL, + ss-Status [2] Ext-SS-Status OPTIONAL, + password [3] Password OPTIONAL, + wrongPasswordAttemptsCounter [4] WrongPasswordAttemptsCounter OPTIONAL, + modifyNotificationToCSE [5] ModificationInstruction OPTIONAL, + extensionContainer [6] ExtensionContainer OPTIONAL, + ...} + +ModificationRequestFor-ODB-data ::= SEQUENCE { + odb-data [0] ODB-Data OPTIONAL, + modifyNotificationToCSE [1] ModificationInstruction OPTIONAL, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +ModificationRequestFor-CSI ::= SEQUENCE { + requestedCamel-SubscriptionInfo + [0] RequestedCAMEL-SubscriptionInfo, + modifyNotificationToCSE + [1] ModificationInstruction OPTIONAL, + modifyCSI-State + [2] ModificationInstruction OPTIONAL, + extensionContainer + [3] ExtensionContainer OPTIONAL, + ..., + additionalRequestedCAMEL-SubscriptionInfo + [4] AdditionalRequestedCAMEL-SubscriptionInfo OPTIONAL} + +-- requestedCamel-SubscriptionInfo shall be discarded if +-- additionalRequestedCAMEL-SubscriptionInfo is received +ModificationInstruction ::= ENUMERATED {deactivate(0), activate(1)} + +-- subscriber data modification notification types +NoteSubscriberDataModifiedArg ::= SEQUENCE { + imsi IMSI, + msisdn ISDN-AddressString, + forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE OPTIONAL, + callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE OPTIONAL, + odb-Info [2] ODB-Info OPTIONAL, + camel-SubscriptionInfo [3] CAMEL-SubscriptionInfo OPTIONAL, + allInformationSent [4] NULL OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +NoteSubscriberDataModifiedRes ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +-- mobility management event notificatioon info types +NoteMM-EventArg ::= SEQUENCE { + serviceKey ServiceKey, + eventMet [0] MM-Code, + imsi [1] IMSI, + msisdn [2] ISDN-AddressString, + locationInformation [3] LocationInformation OPTIONAL, + supportedCAMELPhases [5] SupportedCamelPhases OPTIONAL, + extensionContainer [6] ExtensionContainer OPTIONAL, + ..., + locationInformationGPRS [7] LocationInformationGPRS OPTIONAL, + offeredCamel4Functionalities [8] OfferedCamel4Functionalities OPTIONAL} + +NoteMM-EventRes ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +Ext-SS-InfoFor-CSE ::= CHOICE { + forwardingInfoFor-CSE [0] Ext-ForwardingInfoFor-CSE, + callBarringInfoFor-CSE [1] Ext-CallBarringInfoFor-CSE} + +Ext-ForwardingInfoFor-CSE ::= SEQUENCE { + ss-Code [0] SS-Code, + forwardingFeatureList [1] Ext-ForwFeatureList, + notificationToCSE [2] NULL OPTIONAL, + extensionContainer [3] ExtensionContainer OPTIONAL, + ...} + +Ext-CallBarringInfoFor-CSE ::= SEQUENCE { + ss-Code [0] SS-Code, + callBarringFeatureList [1] Ext-CallBarFeatureList, + password [2] Password OPTIONAL, + wrongPasswordAttemptsCounter [3] WrongPasswordAttemptsCounter OPTIONAL, + notificationToCSE [4] NULL OPTIONAL, + extensionContainer [5] ExtensionContainer OPTIONAL, + ...} + +END + diff --git a/MAP/asn_src/GSM/MAP-MobileServiceOperations.asn b/MAP/asn_src/GSM/MAP-MobileServiceOperations.asn new file mode 100644 index 0000000..9304077 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-MobileServiceOperations.asn @@ -0,0 +1,287 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-MobileServiceOperations {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-MobileServiceOperations(5) + version8(8)} DEFINITIONS ::= +BEGIN + +EXPORTS + -- location registration operations + updateLocation, cancelLocation, purgeMS, + sendIdentification, + -- gprs location registration operations + updateGprsLocation, + -- subscriber information enquiry operations + provideSubscriberInfo, + -- any time information enquiry operations + anyTimeInterrogation, + -- any time information handling operations + anyTimeSubscriptionInterrogation, + anyTimeModification, + -- subscriber data modification notification operations + noteSubscriberDataModified, + -- handover operations + prepareHandover, sendEndSignal, processAccessSignalling, + forwardAccessSignalling, + prepareSubsequentHandover, + -- authentication management operations + sendAuthenticationInfo, + authenticationFailureReport, + -- IMEI management operations + checkIMEI, + -- subscriber management operations + insertSubscriberData, + deleteSubscriberData, + -- fault recovery operations + reset, forwardCheckSS-Indication, + restoreData, + -- gprs location information retrieval operations + sendRoutingInfoForGprs, + -- failure reporting operations + failureReport, + -- gprs notification operations + noteMsPresentForGprs, + -- Mobility Management operations + noteMM-Event; + +IMPORTS + OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + systemFailure, dataMissing, unexpectedDataValue, unknownSubscriber, + unknownMSC, unidentifiedSubscriber, unknownEquipment, roamingNotAllowed, + ati-NotAllowed, noHandoverNumberAvailable, subsequentHandoverFailure, + absentSubscriber, mm-EventNotSupported, atsi-NotAllowed, atm-NotAllowed, + bearerServiceNotProvisioned, teleserviceNotProvisioned, callBarred, + illegalSS-Operation, ss-ErrorStatus, ss-NotAvailable, ss-Incompatibility, + ss-SubscriptionViolation, informationNotAvailable, + targetCellOutsideGroupCallArea + FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-Errors(10) version8(8)} + UpdateLocationArg, UpdateLocationRes, CancelLocationArg, CancelLocationRes, + PurgeMS-Arg, PurgeMS-Res, SendIdentificationArg, SendIdentificationRes, + UpdateGprsLocationArg, UpdateGprsLocationRes, PrepareHO-Arg, PrepareHO-Res, + ForwardAccessSignalling-Arg, ProcessAccessSignalling-Arg, + SendEndSignal-Arg, SendEndSignal-Res, PrepareSubsequentHO-Res, + PrepareSubsequentHO-Arg, SendAuthenticationInfoArg, + SendAuthenticationInfoRes, AuthenticationFailureReportArg, + AuthenticationFailureReportRes, CheckIMEI-Arg, CheckIMEI-Res, + InsertSubscriberDataArg, InsertSubscriberDataRes, DeleteSubscriberDataArg, + DeleteSubscriberDataRes, ResetArg, RestoreDataArg, RestoreDataRes, + ProvideSubscriberInfoArg, ProvideSubscriberInfoRes, + AnyTimeSubscriptionInterrogationArg, AnyTimeSubscriptionInterrogationRes, + AnyTimeModificationArg, AnyTimeModificationRes, + NoteSubscriberDataModifiedArg, NoteSubscriberDataModifiedRes, + AnyTimeInterrogationArg, AnyTimeInterrogationRes, + SendRoutingInfoForGprsArg, SendRoutingInfoForGprsRes, FailureReportArg, + FailureReportRes, NoteMsPresentForGprsArg, NoteMsPresentForGprsRes, + NoteMM-EventArg, NoteMM-EventRes + FROM MAP-MS-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-MS-DataTypes(11) + version8(8)}; + +-- location registration operations +updateLocation OPERATION ::= { --Timer m + ARGUMENT UpdateLocationArg + RESULT UpdateLocationRes + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | unknownSubscriber | + roamingNotAllowed} + CODE local:2} + +cancelLocation OPERATION ::= { --Timer m + ARGUMENT CancelLocationArg + RESULT CancelLocationRes + -- optional + ERRORS {dataMissing | unexpectedDataValue} + CODE local:3} + +purgeMS OPERATION ::= { --Timer m + ARGUMENT PurgeMS-Arg + RESULT PurgeMS-Res + -- optional + ERRORS {dataMissing | unexpectedDataValue | unknownSubscriber} + CODE local:67} + +sendIdentification OPERATION ::= { --Timer s + ARGUMENT SendIdentificationArg + RESULT SendIdentificationRes + ERRORS {dataMissing | unidentifiedSubscriber} + CODE local:55} + +-- gprs location registration operations +updateGprsLocation OPERATION ::= { --Timer m + ARGUMENT UpdateGprsLocationArg + RESULT UpdateGprsLocationRes + ERRORS + {systemFailure | unexpectedDataValue | unknownSubscriber | + roamingNotAllowed} + CODE local:23} + +-- subscriber information enquiry operations +provideSubscriberInfo OPERATION ::= { --Timer m + ARGUMENT ProvideSubscriberInfoArg + RESULT ProvideSubscriberInfoRes + ERRORS {dataMissing | unexpectedDataValue} + CODE local:70} + +-- any time information enquiry operations +anyTimeInterrogation OPERATION ::= { --Timer m + ARGUMENT AnyTimeInterrogationArg + RESULT AnyTimeInterrogationRes + ERRORS + {systemFailure | ati-NotAllowed | dataMissing | unexpectedDataValue | + unknownSubscriber} + CODE local:71} + +-- any time information handling operations +anyTimeSubscriptionInterrogation OPERATION ::= { --Timer m + ARGUMENT AnyTimeSubscriptionInterrogationArg + RESULT AnyTimeSubscriptionInterrogationRes + ERRORS + {atsi-NotAllowed | dataMissing | unexpectedDataValue | unknownSubscriber | + bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred | + illegalSS-Operation | ss-NotAvailable | informationNotAvailable} + CODE local:62} + +anyTimeModification OPERATION ::= { --Timer m + ARGUMENT AnyTimeModificationArg + RESULT AnyTimeModificationRes + ERRORS + {atm-NotAllowed | dataMissing | unexpectedDataValue | unknownSubscriber | + bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred | + illegalSS-Operation | ss-SubscriptionViolation | ss-ErrorStatus | + ss-Incompatibility | informationNotAvailable} + CODE local:65} + +-- subscriber data modification notification operations +noteSubscriberDataModified OPERATION ::= { --Timer m + ARGUMENT NoteSubscriberDataModifiedArg + RESULT NoteSubscriberDataModifiedRes + -- optional + ERRORS {dataMissing | unexpectedDataValue | unknownSubscriber} + CODE local:5} + +-- handover operations +prepareHandover OPERATION ::= { --Timer m + ARGUMENT PrepareHO-Arg + RESULT PrepareHO-Res + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | + noHandoverNumberAvailable | targetCellOutsideGroupCallArea} + CODE local:68} + +sendEndSignal OPERATION ::= { --Timer l + ARGUMENT SendEndSignal-Arg + RESULT SendEndSignal-Res + CODE local:29} + +processAccessSignalling OPERATION ::= { --Timer s + ARGUMENT ProcessAccessSignalling-Arg + CODE local:33} + +forwardAccessSignalling OPERATION ::= { --Timer s + ARGUMENT ForwardAccessSignalling-Arg + CODE local:34} + +prepareSubsequentHandover OPERATION ::= { --Timer m + ARGUMENT PrepareSubsequentHO-Arg + RESULT PrepareSubsequentHO-Res + ERRORS + {unexpectedDataValue | dataMissing | unknownMSC | + subsequentHandoverFailure} + CODE local:69} + +-- authentication management operations +sendAuthenticationInfo OPERATION ::= { --Timer m + ARGUMENT SendAuthenticationInfoArg + -- optional + -- within a dialogue sendAuthenticationInfoArg shall not be present in + -- subsequent invoke components. If received in a subsequent invoke component + -- it shall be discarded. + RESULT SendAuthenticationInfoRes + -- optional + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | unknownSubscriber} + CODE local:56} + +authenticationFailureReport OPERATION ::= { --Timer m + ARGUMENT AuthenticationFailureReportArg + RESULT AuthenticationFailureReportRes + -- optional + ERRORS {systemFailure | unexpectedDataValue | unknownSubscriber} + CODE local:15} + +-- IMEI management operations +checkIMEI OPERATION ::= { --Timer m + ARGUMENT CheckIMEI-Arg + RESULT CheckIMEI-Res + ERRORS {systemFailure | dataMissing | unknownEquipment} + CODE local:43} + +-- subscriber management operations +insertSubscriberData OPERATION ::= { --Timer m + ARGUMENT InsertSubscriberDataArg + RESULT InsertSubscriberDataRes + -- optional + ERRORS {dataMissing | unexpectedDataValue | unidentifiedSubscriber} + CODE local:7} + +deleteSubscriberData OPERATION ::= { --Timer m + ARGUMENT DeleteSubscriberDataArg + RESULT DeleteSubscriberDataRes + -- optional + ERRORS {dataMissing | unexpectedDataValue | unidentifiedSubscriber} + CODE local:8} + +-- fault recovery operations +reset OPERATION ::= { --Timer m + ARGUMENT ResetArg + CODE local:37} + +forwardCheckSS-Indication OPERATION ::= { --Timer s + CODE local:38} + +restoreData OPERATION ::= { --Timer m + ARGUMENT RestoreDataArg + RESULT RestoreDataRes + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | unknownSubscriber} + CODE local:57} + +-- gprs location information retrieval operations +sendRoutingInfoForGprs OPERATION ::= { --Timer m + ARGUMENT SendRoutingInfoForGprsArg + RESULT SendRoutingInfoForGprsRes + ERRORS + {absentSubscriber | systemFailure | dataMissing | unexpectedDataValue | + unknownSubscriber | callBarred} + CODE local:24} + +-- failure reporting operations +failureReport OPERATION ::= { --Timer m + ARGUMENT FailureReportArg + RESULT FailureReportRes + -- optional + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | unknownSubscriber} + CODE local:25} + +-- gprs notification operations +noteMsPresentForGprs OPERATION ::= { --Timer m + ARGUMENT NoteMsPresentForGprsArg + RESULT NoteMsPresentForGprsRes + -- optional + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | unknownSubscriber} + CODE local:26} + +noteMM-Event OPERATION ::= { --Timer m + ARGUMENT NoteMM-EventArg + RESULT NoteMM-EventRes + ERRORS + {dataMissing | unexpectedDataValue | unknownSubscriber | + mm-EventNotSupported} + CODE local:89} + +END + diff --git a/MAP/asn_src/GSM/MAP-OM-DataTypes.asn b/MAP/asn_src/GSM/MAP-OM-DataTypes.asn new file mode 100644 index 0000000..7569174 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-OM-DataTypes.asn @@ -0,0 +1,49 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-OM-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-OM-DataTypes(12) version8(8)} DEFINITIONS +IMPLICIT TAGS ::= +BEGIN + +EXPORTS + ActivateTraceModeArg, ActivateTraceModeRes, DeactivateTraceModeArg, + DeactivateTraceModeRes; + +IMPORTS + AddressString, IMSI + FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18) + version8(8)} + ExtensionContainer + FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21) + version8(8)}; + +ActivateTraceModeArg ::= SEQUENCE { + imsi [0] IMSI OPTIONAL, + traceReference [1] TraceReference, + traceType [2] TraceType, + omc-Id [3] AddressString OPTIONAL, + extensionContainer [4] ExtensionContainer OPTIONAL, + ...} + +TraceReference ::= OCTET STRING(SIZE (1..2)) + +TraceType ::= INTEGER(0..255) + +-- Trace types are fully defined in TS GSM 12.08. +ActivateTraceModeRes ::= SEQUENCE { + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +DeactivateTraceModeArg ::= SEQUENCE { + imsi [0] IMSI OPTIONAL, + traceReference [1] TraceReference, + extensionContainer [2] ExtensionContainer OPTIONAL, + ...} + +DeactivateTraceModeRes ::= SEQUENCE { + extensionContainer [0] ExtensionContainer OPTIONAL, + ...} + +END + diff --git a/MAP/asn_src/GSM/MAP-OperationAndMaintenanceOperations.asn b/MAP/asn_src/GSM/MAP-OperationAndMaintenanceOperations.asn new file mode 100644 index 0000000..5650b76 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-OperationAndMaintenanceOperations.asn @@ -0,0 +1,51 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-OperationAndMaintenanceOperations {itu-t identified-organization(4) + etsi(0) mobileDomain(0) gsm-Network(1) modules(3) + map-OperationAndMaintenanceOperations(6) version8(8)} DEFINITIONS ::= +BEGIN + +EXPORTS activateTraceMode, deactivateTraceMode, sendIMSI; + +IMPORTS + OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + systemFailure, dataMissing, unexpectedDataValue, facilityNotSupported, + unknownSubscriber, unidentifiedSubscriber, tracingBufferFull + FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-Errors(10) version8(8)} + ActivateTraceModeArg, ActivateTraceModeRes, DeactivateTraceModeArg, + DeactivateTraceModeRes + FROM MAP-OM-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-OM-DataTypes(12) + version8(8)} + ISDN-AddressString, IMSI + FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18) + version8(8)}; + +activateTraceMode OPERATION ::= { --Timer m + ARGUMENT ActivateTraceModeArg + RESULT ActivateTraceModeRes + -- optional + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported | + unidentifiedSubscriber | tracingBufferFull} + CODE local:50} + +deactivateTraceMode OPERATION ::= { --Timer m + ARGUMENT DeactivateTraceModeArg + RESULT DeactivateTraceModeRes + -- optional + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported | + unidentifiedSubscriber} + CODE local:51} + +sendIMSI OPERATION ::= { --Timer m + ARGUMENT ISDN-AddressString + RESULT IMSI ERRORS {dataMissing | unexpectedDataValue | unknownSubscriber} + CODE local:58} + +END + diff --git a/MAP/asn_src/GSM/MAP-OperationPackages.asn b/MAP/asn_src/GSM/MAP-OperationPackages.asn new file mode 100644 index 0000000..56969fe --- /dev/null +++ b/MAP/asn_src/GSM/MAP-OperationPackages.asn @@ -0,0 +1,371 @@ + +MAP-OperationPackages {ccitt (0) identified-organization (4) etsi (0) + mobileDomain (0) gsm-Network (1) modules (3 ) ??? (?)} + +OPERATION-PACKAGE ::= CLASS { +&Both OPERATION OPTIONAL, +&Consumer OPERATION OPTIONAL, +&Supplier OPERATION OPTIONAL, +&id OBJECT IDENTIFIER UNIQUE OPTIONAL } +WITH SYNTAX { +[ OPERATIONS &Both ] +[ CONSUMER INVOKES &Supplier ] +[ SUPPLIER INVOKES &Consumer ] +[ ID &id ] } + +locationUpdatingPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +CONSUMER INVOKES { +updateLocation} +SUPPLIER INVOKES { +forwardCheckSs-Indication} } + +locationCancellationPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is VLR or SGSN if Consumer is HLR +CONSUMER INVOKES { +cancelLocation} } + +roamingNumberEnquiryPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is VLR if Consumer is HLR +CONSUMER INVOKES { +provideRoamingNumber} } + +infoRetrievalPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +-- Supplier is HLR if Consumer is SGSN +CONSUMER INVOKES { +sendAuthenticationInfo} } + +infoRetrievalPackage-v2 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +-- Supplier is HLR if Consumer is SGSN +CONSUMER INVOKES { +sendAuthenticationInfo} } + +infoRetrievalPackage-v1 OPERATION-PACKAGE ::= { +-- Supplier is HLR or VLR if Consumer is VLR +-- Supplier is HLR if Consumer is SGSN +CONSUMER INVOKES { +sendParameters} } + +interVlrInfoRetrievalPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is VLR if Consumer is VLR +CONSUMER INVOKES { +sendIdentification} } + +interVlrInfoRetrievalPackage-v2 OPERATION-PACKAGE ::= { +-- Supplier is VLR if Consumer is VLR +CONSUMER INVOKES { +sendIdentification} } + +imsiRetrievalPackage-v2 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +CONSUMER INVOKES { +sendIMSI} } + +callControlTransferPackage-v4 OPERATION-PACKAGE ::= { +-- Supplier is GMSC if Consumer is VMSC +CONSUMER INVOKES { +resumeCallHandling} } + +secureTransportHandlingPackage-v3 OPERATION-PACKAGE ::= { +CONSUMER INVOKES { +secureTransportClass1 | -- to be used if the original operation is a +-- TCAP class 1 operation +secureTransportClass2 | -- to be used if the original operation is a +-- TCAP class 2 operation +secureTransportClass3 | -- to be used if the original operation is a +-- TCAP class 3 operation +secureTransportClass4} -- to be used if the original operation is a +-- TCAP class 4 operation +} + +interrogationPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR or NPLR if Consumer is MSC +-- Supplier is HLR if Consumer is gsmSCF +CONSUMER INVOKES { +sendRoutingInfo} } + +handoverControlPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is MSCB if Consumer is MSCA +CONSUMER INVOKES { +prepareHandover | +forwardAccessSignalling} +SUPPLIER INVOKES { +sendEndSignal | +processAccessSignalling | +prepareSubsequentHandover} } + +handoverControlPackage-v1 OPERATION-PACKAGE ::= { +-- Supplier is MSCB if Consumer is MSCA +CONSUMER INVOKES { +performHandover | +forwardAccessSignalling | +traceSubscriberActivity} +SUPPLIER INVOKES { +sendEndSignal | +noteInternalHandover | +processAccessSignalling | +performSubsequentHandover} } + +subscriberDataMngtStandAlonePackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is VLR or SGSN if Consumer is HLR +CONSUMER INVOKES { +insertSubscriberData | +deleteSubscriberData} } + +equipmentMngtPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is EIR if Consumer is MSC +-- Supplier is EIR if Consumer is SGSN +CONSUMER INVOKES { +checkIMEI} } + +subscriberDataMngtPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is VLR or SGSN if Consumer is HLR +CONSUMER INVOKES { +insertSubscriberData} } + +resetPackage-v2 OPERATION-PACKAGE ::= { +-- Supplier is VLR or SGSN if Consumer is HLR +CONSUMER INVOKES { +reset} } + +tracingStandAlonePackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is VLR or SGSN if Consumer is HLR +CONSUMER INVOKES { +activateTraceMode | +deactivateTraceMode} } + +functionalSsPackage-v2 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +CONSUMER INVOKES { +registerSS | +eraseSS | +activateSS | +deactivateSS | +registerPassword | +interrogateSS} +SUPPLIER INVOKES { +getPassword} } + +tracingPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is VLR or SGSN if Consumer is HLR +CONSUMER INVOKES { +activateTraceMode} } + +bindingPackage-v1 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +-- Supplier is gsmSCF if Consumer is HLR +CONSUMER INVOKES { +beginSubscriberActivity} } + +unstructuredSsPackage-v2 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +-- Supplier is gsmSCF or HLR if Consumer is HLR +CONSUMER INVOKES { +processUnstructuredSS-Request} +SUPPLIER INVOKES { +unstructuredSS-Request | +unstructuredSS-Notify} } + +unstructuredSsPackage-v1 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +-- Supplier is gsmSCF if Consumer is HLR +CONSUMER INVOKES { +processUnstructuredSS-Data} } + +mo-ShortMsgRelayPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is IWMSC if Consumer is MSC +-- Supplier is IWMSC if Consumer is SGSN +CONSUMER INVOKES { +mo-forwardSM} } + +shortMsgRelayPackage-v2 OPERATION-PACKAGE ::= { +-- Supplier is IWMSC if Consumer is MSC +-- Supplier is MSC or SGSN if Consumer is GMSC +-- Supplier is IWMSC if Consumer is SGSN +CONSUMER INVOKES { +forwardSM} } + +shortMsgGatewayPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is GMSC +CONSUMER INVOKES { +sendRoutingInfoForSM | +reportSM-DeliveryStatus} +SUPPLIER INVOKES { +informServiceCentre} } + +shortMsgGatewayPackage-v1 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is GMSC +CONSUMER INVOKES { +sendRoutingInfoForSM | +reportSMDeliveryStatus} } + +mt-ShortMsgRelayPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is MSC or SGSN if Consumer is GMSC +CONSUMER INVOKES { +mt-forwardSM} } + +mwdMngtPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is SGSN +-- Supplier is HLR if Consumer is VLR +CONSUMER INVOKES { +readyForSM} } + +mwdMngtPackage-v1 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +CONSUMER INVOKES { +noteSubscriberPresent} } + +alertingPackage-v2 OPERATION-PACKAGE ::= { +-- Supplier is IWMSC if Consumer is HLR +CONSUMER INVOKES { +alertServiceCentre} } + +alertingPackage-v1 OPERATION-PACKAGE ::= { +-- Supplier is IWMSC if Consumer is HLR +CONSUMER INVOKES { +alertServiceCentreWithoutResult} } + +dataRestorationPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +CONSUMER INVOKES { +restoreData} } + +purgingPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +-- Supplier is HLR if Consumer is SGSN +CONSUMER INVOKES { +purgeMS} } + +subscriberInformationEnquiryPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is VLR or SGSN if Consumer is HLR +CONSUMER INVOKES { +provideSubscriberInfo} } + +anyTimeInformationEnquiryPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR or GMLC if Consumer is gsmSCF +CONSUMER INVOKES { +anyTimeInterrogation} } + +groupCallControlPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is relay MSC if Consumer is anchor MSC +CONSUMER INVOKES { +prepareGroupCall | +forwardGroupCallSignalling} +SUPPLIER INVOKES { +sendGroupCallEndSignal | +processGroupCallSignalling} } + +provideSIWFSNumberPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is SIWF if Consumer is VMSC +CONSUMER INVOKES { +provideSIWFSNumber} } + +siwfs-SignallingModifyPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is SIWF if Consumer is VMSC +CONSUMER INVOKES { +siwfs-SignallingModify} } + +gprsLocationUpdatingPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is SGSN +CONSUMER INVOKES { +updateGprsLocation} } + +gprsInterrogationPackage-v4 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is GGSN +CONSUMER INVOKES { +sendRoutingInfoForGprs} } + +gprsInterrogationPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is GGSN +CONSUMER INVOKES { +sendRoutingInfoForGprs} } + +failureReportingPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is GGSN +CONSUMER INVOKES { +failureReport} } + +gprsNotifyingPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is GGSN if Consumer is HLR +CONSUMER INVOKES { +noteMsPresentForGprs} } + +ss-InvocationNotificationPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is gsmSCF if Consumer is MSC +-- Supplier is gsmSCF if Consumer is HLR +CONSUMER INVOKES { +ss-InvocationNotification} } + +setReportingStatePackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is VLR if Consumer is HLR +CONSUMER INVOKES { +setReportingState} } + +statusReportPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +CONSUMER INVOKES { +statusReport} } + +remoteUserFreePackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is VLR if Consumer is HLR +CONSUMER INVOKES { +remoteUserFree} } + +callCompletionPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +CONSUMER INVOKES { +registerCC-Entry | +eraseCC-Entry} } + +locationSvcGatewayPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is GMLC +CONSUMER INVOKES { +sendRoutingInfoForLCS} } + +locationSvcEnquiryPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is MSC or SGSN if Consumer is GMLC +CONSUMER INVOKES { +provideSubscriberLocation} } + +locationSvcReportingPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is GMLC if Consumer is MSC +-- Supplier is GMLC if Consumer is SGSN +CONSUMER INVOKES { +subscriberLocationReport} } + +ist-AlertingPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VMSC +-- Supplier is HLR if Consumer is GMSC +CONSUMER INVOKES { +istAlert} } + +serviceTerminationPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is VMSC or GMSC if Consumer is HLR +CONSUMER INVOKES { +istCommand} } + +mm-EventReportingPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is gsmSCF if Consumer is VLR +CONSUMER INVOKES { +noteMM-Event} } + +anyTimeInformationHandlingPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is gsmSCF +CONSUMER INVOKES { +anyTimeSubscriptionInterrogation | +anyTimeModification} } + +subscriberDataModificationNotificationPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is gsmSCF if Consumer is HLR +CONSUMER INVOKES { +noteSubscriberDataModified} } + +authenticationFailureReportPackage-v3 OPERATION-PACKAGE ::= { +-- Supplier is HLR if Consumer is VLR +-- Supplier is HLR if Consumer is SGSN +CONSUMER INVOKES { +authenticationFailureReport} } + + diff --git a/MAP/asn_src/GSM/MAP-Protocol.asn b/MAP/asn_src/GSM/MAP-Protocol.asn new file mode 100644 index 0000000..7c3c8de --- /dev/null +++ b/MAP/asn_src/GSM/MAP-Protocol.asn @@ -0,0 +1,106 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-Protocol {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-Protocol(4) version8(8)} DEFINITIONS ::= +BEGIN + +IMPORTS + OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + updateLocation, cancelLocation, purgeMS, sendIdentification, + updateGprsLocation, prepareHandover, sendEndSignal, + processAccessSignalling, forwardAccessSignalling, + prepareSubsequentHandover, sendAuthenticationInfo, + authenticationFailureReport, checkIMEI, insertSubscriberData, + deleteSubscriberData, reset, forwardCheckSS-Indication, restoreData, + provideSubscriberInfo, anyTimeInterrogation, + anyTimeSubscriptionInterrogation, anyTimeModification, + sendRoutingInfoForGprs, failureReport, noteMsPresentForGprs, noteMM-Event, + noteSubscriberDataModified + FROM MAP-MobileServiceOperations {itu-t identified-organization(4) + etsi(0) mobileDomain(0) gsm-Network(1) modules(3) + map-MobileServiceOperations(5) version8(8)} + activateTraceMode, deactivateTraceMode, sendIMSI + FROM MAP-OperationAndMaintenanceOperations {itu-t + identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) + modules(3) map-OperationAndMaintenanceOperations(6) version8(8)} + sendRoutingInfo, provideRoamingNumber, resumeCallHandling, + provideSIWFSNumber, siwfs-SignallingModify, setReportingState, + statusReport, remoteUserFree, ist-Alert, ist-Command + FROM MAP-CallHandlingOperations {itu-t identified-organization(4) + etsi(0) mobileDomain(0) gsm-Network(1) modules(3) + map-CallHandlingOperations(7) version8(8)} + registerSS, eraseSS, activateSS, deactivateSS, interrogateSS, + processUnstructuredSS-Request, unstructuredSS-Request, + unstructuredSS-Notify, registerPassword, getPassword, + ss-InvocationNotification, registerCC-Entry, eraseCC-Entry + FROM MAP-SupplementaryServiceOperations {itu-t identified-organization(4) + etsi(0) mobileDomain(0) gsm-Network(1) modules(3) + map-SupplementaryServiceOperations(8) version8(8)} + sendRoutingInfoForSM, mo-ForwardSM, mt-ForwardSM, reportSM-DeliveryStatus, + alertServiceCentre, informServiceCentre, readyForSM + FROM MAP-ShortMessageServiceOperations {itu-t identified-organization(4) + etsi(0) mobileDomain(0) gsm-Network(1) modules(3) + map-ShortMessageServiceOperations(9) version8(8)} + prepareGroupCall, processGroupCallSignalling, forwardGroupCallSignalling, + sendGroupCallEndSignal + FROM MAP-Group-Call-Operations {itu-t identified-organization(4) + etsi(0) mobileDomain(0) gsm-Network(1) modules(3) + map-Group-Call-Operations(22) version8(8)} + provideSubscriberLocation, sendRoutingInfoForLCS, subscriberLocationReport + FROM MAP-LocationServiceOperations {itu-t identified-organization(4) + etsi(0) mobileDomain(0) gsm-Network(1) modules(3) + map-LocationServiceOperations(24) version8(8)} + secureTransportClass1, secureTransportClass2, secureTransportClass3, + secureTransportClass4 + FROM MAP-SecureTransportOperations {itu-t identified-organization(4) + etsi(0) mobileDomain(0) gsm-Network(1) modules(3) + map-SecureTransportOperations(26) version8(8)}; + +Supported-MAP-Operations OPERATION ::= + {updateLocation | cancelLocation | purgeMS | sendIdentification | + updateGprsLocation | prepareHandover | sendEndSignal | + processAccessSignalling | forwardAccessSignalling | + prepareSubsequentHandover | sendAuthenticationInfo | + authenticationFailureReport | checkIMEI | insertSubscriberData | + deleteSubscriberData | reset | forwardCheckSS-Indication | restoreData | + provideSubscriberInfo | anyTimeInterrogation | + anyTimeSubscriptionInterrogation | anyTimeModification | + sendRoutingInfoForGprs | failureReport | noteMsPresentForGprs | noteMM-Event + | noteSubscriberDataModified | activateTraceMode | deactivateTraceMode | + sendIMSI | sendRoutingInfo | provideRoamingNumber | resumeCallHandling | + provideSIWFSNumber | siwfs-SignallingModify | setReportingState | + statusReport | remoteUserFree | ist-Alert | ist-Command | registerSS | + eraseSS | activateSS | deactivateSS | interrogateSS | + processUnstructuredSS-Request | unstructuredSS-Request | + unstructuredSS-Notify | registerPassword | getPassword | + ss-InvocationNotification | registerCC-Entry | eraseCC-Entry | + sendRoutingInfoForSM | mo-ForwardSM | mt-ForwardSM | reportSM-DeliveryStatus + | alertServiceCentre | informServiceCentre | readyForSM | prepareGroupCall | + processGroupCallSignalling | forwardGroupCallSignalling | + sendGroupCallEndSignal | provideSubscriberLocation | sendRoutingInfoForLCS | + subscriberLocationReport | secureTransportClass1 | secureTransportClass2 | + secureTransportClass3 | secureTransportClass4} + +-- The following operation codes are reserved for operations +-- existing in previous versions of the protocol +-- Operation Name AC used Oper. Code +-- +-- sendParameters map-ac infoRetrieval (14) version1 (1) local:9 +-- processUnstructuredSS-Data map-ac networkFunctionalSs (18) version1 (1) local:19 +-- performHandover map-ac handoverControl (11) version1 (1) local:28 +-- performSubsequentHandover map-ac handoverControl (11) version1 (1) local:30 +-- noteInternalHandover map-ac handoverControl (11) version1 (1) local:35 +-- noteSubscriberPresent map-ac mwdMngt (24) version1 (1) local:48 +-- alertServiceCentreWithoutResult map-ac shortMsgAlert (23) version1 (1) local:49 +-- traceSubscriberActivity map-ac handoverControl (11) version1 (1) local:52 +-- beginSubscriberActivity map-ac networkFunctionalSs (18) version1 (1) local:54 +-- The following error codes are reserved for errors +-- existing in previous versions of the protocol +-- Error Name AC used Error Code +-- +-- unknownBaseStation map-ac handoverControl (11) version1 (1) local:2 +-- invalidTargetBaseStation map-ac handoverControl (11) version1 (1) local:23 +-- noRadioResourceAvailable map-ac handoverControl (11) version1 (1) local:24 +END + diff --git a/MAP/asn_src/GSM/MAP-SM-DataTypes.asn b/MAP/asn_src/GSM/MAP-SM-DataTypes.asn new file mode 100644 index 0000000..157663a --- /dev/null +++ b/MAP/asn_src/GSM/MAP-SM-DataTypes.asn @@ -0,0 +1,189 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-SM-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-SM-DataTypes(16) version8(8)} DEFINITIONS +IMPLICIT TAGS ::= +BEGIN + +EXPORTS + RoutingInfoForSM-Arg, RoutingInfoForSM-Res, MO-ForwardSM-Arg, + MO-ForwardSM-Res, MT-ForwardSM-Arg, MT-ForwardSM-Res, + ReportSM-DeliveryStatusArg, ReportSM-DeliveryStatusRes, + AlertServiceCentreArg, InformServiceCentreArg, ReadyForSM-Arg, + ReadyForSM-Res, SM-DeliveryOutcome, AlertReason, Additional-Number; + +IMPORTS + AddressString, ISDN-AddressString, SignalInfo, IMSI, LMSI + FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18) + version8(8)} + AbsentSubscriberDiagnosticSM + FROM MAP-ER-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ER-DataTypes(17) + version8(8)} + ExtensionContainer + FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21) + version8(8)}; + +RoutingInfoForSM-Arg ::= SEQUENCE { + msisdn [0] ISDN-AddressString, + sm-RP-PRI [1] BOOLEAN, + serviceCentreAddress [2] AddressString, + extensionContainer [6] ExtensionContainer OPTIONAL, + ..., + gprsSupportIndicator [7] NULL OPTIONAL, + -- gprsSupportIndicator is set only if the SMS-GMSC supports + -- receiving of two numbers from the HLR + sm-RP-MTI [8] SM-RP-MTI OPTIONAL, + sm-RP-SMEA [9] SM-RP-SMEA OPTIONAL} + +SM-RP-MTI ::= INTEGER(0..10) + +-- 0 SMS Deliver +-- 1 SMS Status Report +-- other values are reserved for future use and shall be discarded if +-- received +SM-RP-SMEA ::= OCTET STRING(SIZE (1..12)) + +-- this parameter contains an address field which is encoded +-- as defined in 3GPP TS 23.040. An address field contains 3 elements : +-- address-length +-- type-of-address +-- address-value +RoutingInfoForSM-Res ::= SEQUENCE { + imsi IMSI, + locationInfoWithLMSI [0] LocationInfoWithLMSI, + extensionContainer [4] ExtensionContainer OPTIONAL, + ...} + +LocationInfoWithLMSI ::= SEQUENCE { + networkNode-Number [1] ISDN-AddressString, + lmsi LMSI OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ..., + gprsNodeIndicator [5] NULL OPTIONAL, + -- gprsNodeIndicator is set only if the SGSN number is sent as the + -- Network Node Number + additional-Number [6] Additional-Number OPTIONAL} + -- NetworkNode-number can be either msc-number or sgsn-number + +Additional-Number ::= CHOICE { + msc-Number [0] ISDN-AddressString, + sgsn-Number [1] ISDN-AddressString} + +-- additional-number can be either msc-number or sgsn-number +-- if received networkNode-number is msc-number then the +-- additional number is sgsn-number +-- if received networkNode-number is sgsn-number then the +-- additional number is msc-number +MO-ForwardSM-Arg ::= SEQUENCE { + sm-RP-DA SM-RP-DA, + sm-RP-OA SM-RP-OA, + sm-RP-UI SignalInfo, + extensionContainer ExtensionContainer OPTIONAL, + ..., + imsi IMSI OPTIONAL} + +MO-ForwardSM-Res ::= SEQUENCE { + sm-RP-UI SignalInfo OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +MT-ForwardSM-Arg ::= SEQUENCE { + sm-RP-DA SM-RP-DA, + sm-RP-OA SM-RP-OA, + sm-RP-UI SignalInfo, + moreMessagesToSend NULL OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +MT-ForwardSM-Res ::= SEQUENCE { + sm-RP-UI SignalInfo OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +SM-RP-DA ::= CHOICE { + imsi [0] IMSI, + lmsi [1] LMSI, + serviceCentreAddressDA [4] AddressString, + noSM-RP-DA [5] NULL} + +SM-RP-OA ::= CHOICE { + msisdn [2] ISDN-AddressString, + serviceCentreAddressOA [4] AddressString, + noSM-RP-OA [5] NULL} + +ReportSM-DeliveryStatusArg ::= SEQUENCE { + msisdn ISDN-AddressString, + serviceCentreAddress AddressString, + sm-DeliveryOutcome SM-DeliveryOutcome, + absentSubscriberDiagnosticSM + [0] AbsentSubscriberDiagnosticSM OPTIONAL, + extensionContainer [1] ExtensionContainer OPTIONAL, + ..., + gprsSupportIndicator [2] NULL OPTIONAL, + -- gprsSupportIndicator is set only if the SMS-GMSC supports + -- handling of two delivery outcomes + deliveryOutcomeIndicator [3] NULL OPTIONAL, + -- DeliveryOutcomeIndicator is set when the SM-DeliveryOutcome + -- is for GPRS + additionalSM-DeliveryOutcome [4] SM-DeliveryOutcome OPTIONAL, + -- If received, additionalSM-DeliveryOutcome is for GPRS + -- If DeliveryOutcomeIndicator is set, then AdditionalSM-DeliveryOutcome shall be absent + additionalAbsentSubscriberDiagnosticSM + [5] AbsentSubscriberDiagnosticSM OPTIONAL} + -- If received additionalAbsentSubscriberDiagnosticSM is for GPRS + -- If DeliveryOutcomeIndicator is set, then AdditionalAbsentSubscriberDiagnosticSM + -- shall be absent + +SM-DeliveryOutcome ::= ENUMERATED { + memoryCapacityExceeded(0), absentSubscriber(1), successfulTransfer(2) +} + +ReportSM-DeliveryStatusRes ::= SEQUENCE { + storedMSISDN ISDN-AddressString OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ...} + +AlertServiceCentreArg ::= SEQUENCE { + msisdn ISDN-AddressString, + serviceCentreAddress AddressString, + ...} + +InformServiceCentreArg ::= SEQUENCE { + storedMSISDN ISDN-AddressString OPTIONAL, + mw-Status MW-Status OPTIONAL, + extensionContainer ExtensionContainer OPTIONAL, + ..., + absentSubscriberDiagnosticSM + AbsentSubscriberDiagnosticSM OPTIONAL, + additionalAbsentSubscriberDiagnosticSM + [0] AbsentSubscriberDiagnosticSM OPTIONAL} + +-- additionalAbsentSubscriberDiagnosticSM may be present only if +-- absentSubscriberDiagnosticSM is present. +-- if included, additionalAbsentSubscriberDiagnosticSM is for GPRS and +-- absentSubscriberDiagnosticSM is for non-GPRS +MW-Status ::= BIT STRING { + sc-AddressNotIncluded(0), mnrf-Set(1), mcef-Set(2), mnrg-Set(3) +}(SIZE (6..16)) + +-- exception handling: +-- bits 4 to 15 shall be ignored if received and not understood +ReadyForSM-Arg ::= SEQUENCE { + imsi [0] IMSI, + alertReason AlertReason, + alertReasonIndicator NULL OPTIONAL, + -- alertReasonIndicator is set only when the alertReason + -- sent to HLR is for GPRS + extensionContainer ExtensionContainer OPTIONAL, + ...} + +ReadyForSM-Res ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +AlertReason ::= ENUMERATED {ms-Present(0), memoryAvailable(1)} + +END + diff --git a/MAP/asn_src/GSM/MAP-SS-Code.asn b/MAP/asn_src/GSM/MAP-SS-Code.asn new file mode 100644 index 0000000..1914b96 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-SS-Code.asn @@ -0,0 +1,260 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-SS-Code(15) version8(8)} DEFINITIONS ::= +BEGIN + +SS-Code ::= OCTET STRING(SIZE (1)) + +-- This type is used to represent the code identifying a single +-- supplementary service, a group of supplementary services, or +-- all supplementary services. The services and abbreviations +-- used are defined in TS 3GPP TS 22.004 [5]. The internal structure is +-- defined as follows: +-- +-- bits 87654321: group (bits 8765), and specific service +-- (bits 4321) +allSS SS-Code ::= + '00000000'B + +-- reserved for possible future use +-- all SS +allLineIdentificationSS SS-Code ::= + '00010000'B + +-- reserved for possible future use +-- all line identification SS +clip SS-Code ::= + '00010001'B + +-- calling line identification presentation +clir SS-Code ::= '00010010'B + +-- calling line identification restriction +colp SS-Code ::= '00010011'B + +-- connected line identification presentation +colr SS-Code ::= '00010100'B + +-- connected line identification restriction +mci SS-Code ::= '00010101'B + +-- reserved for possible future use +-- malicious call identification +allNameIdentificationSS SS-Code ::= + '00011000'B + +-- all name identification SS +cnap SS-Code ::= '00011001'B + +-- calling name presentation +-- SS-Codes '00011010'B to '00011111'B are reserved for future +-- NameIdentification Supplementary Service use. +allForwardingSS SS-Code ::= + '00100000'B + +-- all forwarding SS +cfu SS-Code ::= '00100001'B + +-- call forwarding unconditional +allCondForwardingSS SS-Code ::= '00101000'B + +-- all conditional forwarding SS +cfb SS-Code ::= '00101001'B + +-- call forwarding on mobile subscriber busy +cfnry SS-Code ::= '00101010'B + +-- call forwarding on no reply +cfnrc SS-Code ::= '00101011'B + +-- call forwarding on mobile subscriber not reachable +cd SS-Code ::= '00100100'B + +-- call deflection +allCallOfferingSS SS-Code ::= '00110000'B + +-- reserved for possible future use +-- all call offering SS includes also all forwarding SS +ect SS-Code ::= + '00110001'B + +-- explicit call transfer +mah SS-Code ::= '00110010'B + +-- reserved for possible future use +-- mobile access hunting +allCallCompletionSS SS-Code ::= + '01000000'B + +-- reserved for possible future use +-- all Call completion SS +cw SS-Code ::= + '01000001'B + +-- call waiting +hold SS-Code ::= '01000010'B + +-- call hold +ccbs-A SS-Code ::= '01000011'B + +-- completion of call to busy subscribers, originating side +ccbs-B SS-Code ::= + '01000100'B + +-- completion of call to busy subscribers, destination side +-- this SS-Code is used only in InsertSubscriberData and DeleteSubscriberData +mc SS-Code ::= + '01000101'B + +-- multicall +allMultiPartySS SS-Code ::= '01010000'B + +-- reserved for possible future use +-- all multiparty SS +multiPTY SS-Code ::= + '01010001'B + +-- multiparty +allCommunityOfInterest-SS SS-Code ::= '01100000'B + +-- reserved for possible future use +-- all community of interest SS +cug SS-Code ::= + '01100001'B + +-- closed user group +allChargingSS SS-Code ::= '01110000'B + +-- reserved for possible future use +-- all charging SS +aoci SS-Code ::= + '01110001'B + +-- advice of charge information +aocc SS-Code ::= '01110010'B + +-- advice of charge charging +allAdditionalInfoTransferSS SS-Code ::= '10000000'B + +-- reserved for possible future use +-- all additional information transfer SS +uus1 SS-Code ::= + '10000001'B + +-- UUS1 user-to-user signalling +uus2 SS-Code ::= '10000010'B + +-- UUS2 user-to-user signalling +uus3 SS-Code ::= '10000011'B + +-- UUS3 user-to-user signalling +allBarringSS SS-Code ::= '10010000'B + +-- all barring SS +barringOfOutgoingCalls SS-Code ::= '10010001'B + +-- barring of outgoing calls +baoc SS-Code ::= '10010010'B + +-- barring of all outgoing calls +boic SS-Code ::= '10010011'B + +-- barring of outgoing international calls +boicExHC SS-Code ::= '10010100'B + +-- barring of outgoing international calls except those directed +-- to the home PLMN +barringOfIncomingCalls SS-Code ::= + '10011001'B + +-- barring of incoming calls +baic SS-Code ::= '10011010'B + +-- barring of all incoming calls +bicRoam SS-Code ::= '10011011'B + +-- barring of incoming calls when roaming outside home PLMN +-- Country +allPLMN-specificSS SS-Code ::= + '11110000'B + +plmn-specificSS-1 SS-Code ::= '11110001'B + +plmn-specificSS-2 SS-Code ::= '11110010'B + +plmn-specificSS-3 SS-Code ::= '11110011'B + +plmn-specificSS-4 SS-Code ::= '11110100'B + +plmn-specificSS-5 SS-Code ::= '11110101'B + +plmn-specificSS-6 SS-Code ::= '11110110'B + +plmn-specificSS-7 SS-Code ::= '11110111'B + +plmn-specificSS-8 SS-Code ::= '11111000'B + +plmn-specificSS-9 SS-Code ::= '11111001'B + +plmn-specificSS-A SS-Code ::= '11111010'B + +plmn-specificSS-B SS-Code ::= '11111011'B + +plmn-specificSS-C SS-Code ::= '11111100'B + +plmn-specificSS-D SS-Code ::= '11111101'B + +plmn-specificSS-E SS-Code ::= '11111110'B + +plmn-specificSS-F SS-Code ::= '11111111'B + +allCallPrioritySS SS-Code ::= '10100000'B + +-- reserved for possible future use +-- all call priority SS +emlpp SS-Code ::= + '10100001'B + +-- enhanced Multilevel Precedence Pre-emption (EMLPP) service +allLCSPrivacyException SS-Code ::= + '10110000'B + +-- all LCS Privacy Exception Classes +universal SS-Code ::= '10110001'B + +-- allow location by any LCS client +callSessionRelated SS-Code ::= '10110010'B + +-- allow location by any value added LCS client to which a call/session +-- is established from the target MS +callSessionUnrelated SS-Code ::= + '10110011'B + +-- allow location by designated external value added LCS clients +plmnoperator SS-Code ::= + '10110100'B + +-- allow location by designated PLMN operator LCS clients +serviceType SS-Code ::= + '10110101'B + +-- allow location by LCS clients of a designated LCS service type +allMOLR-SS SS-Code ::= + '11000000'B + +-- all Mobile Originating Location Request Classes +basicSelfLocation SS-Code ::= + '11000001'B + +-- allow an MS to request its own location +autonomousSelfLocation SS-Code ::= + '11000010'B + +-- allow an MS to perform self location without interaction +-- with the PLMN for a predetermined period of time +transferToThirdParty SS-Code ::= + '11000011'B + +-- allow an MS to request transfer of its location to another LCS client +END + diff --git a/MAP/asn_src/GSM/MAP-SS-DataTypes.asn b/MAP/asn_src/GSM/MAP-SS-DataTypes.asn new file mode 100644 index 0000000..ab8558f --- /dev/null +++ b/MAP/asn_src/GSM/MAP-SS-DataTypes.asn @@ -0,0 +1,270 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-SS-DataTypes(14) version8(8)} DEFINITIONS +IMPLICIT TAGS ::= +BEGIN + +EXPORTS + RegisterSS-Arg, SS-Info, SS-Status, SS-SubscriptionOption, SS-ForBS-Code, + InterrogateSS-Res, USSD-Arg, USSD-Res, USSD-DataCodingScheme, USSD-String, + Password, GuidanceInfo, SS-List, SS-InfoList, OverrideCategory, + CliRestrictionOption, NoReplyConditionTime, ForwardingOptions, maxNumOfSS, + SS-Data, SS-InvocationNotificationArg, SS-InvocationNotificationRes, + CCBS-Feature, RegisterCC-EntryArg, RegisterCC-EntryRes, EraseCC-EntryArg, + EraseCC-EntryRes; + +IMPORTS + AddressString, ISDN-AddressString, ISDN-SubaddressString, FTN-AddressString, + IMSI, BasicServiceCode, AlertingPattern, EMLPP-Priority, MaxMC-Bearers, + MC-Bearers, ExternalSignalInfo + FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18) + version8(8)} + ExtensionContainer + FROM MAP-ExtensionDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ExtensionDataTypes(21) + version8(8)} + SS-Code + FROM MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-SS-Code(15) version8(8)}; + +RegisterSS-Arg ::= SEQUENCE { + ss-Code SS-Code, + basicService BasicServiceCode OPTIONAL, + forwardedToNumber [4] AddressString OPTIONAL, + forwardedToSubaddress [6] ISDN-SubaddressString OPTIONAL, + noReplyConditionTime [5] NoReplyConditionTime OPTIONAL, + ..., + defaultPriority [7] EMLPP-Priority OPTIONAL, + nbrUser [8] MC-Bearers OPTIONAL, + longFTN-Supported [9] NULL OPTIONAL} + +NoReplyConditionTime ::= INTEGER(5..30) + +SS-Info ::= CHOICE { + forwardingInfo [0] ForwardingInfo, + callBarringInfo [1] CallBarringInfo, + ss-Data [3] SS-Data} + +ForwardingInfo ::= SEQUENCE { + ss-Code SS-Code OPTIONAL, + forwardingFeatureList ForwardingFeatureList, + ...} + +ForwardingFeatureList ::= + SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF ForwardingFeature + +ForwardingFeature ::= SEQUENCE { + basicService BasicServiceCode OPTIONAL, + ss-Status [4] SS-Status OPTIONAL, + forwardedToNumber [5] ISDN-AddressString OPTIONAL, + forwardedToSubaddress [8] ISDN-SubaddressString OPTIONAL, + forwardingOptions [6] ForwardingOptions OPTIONAL, + noReplyConditionTime [7] NoReplyConditionTime OPTIONAL, + ..., + longForwardedToNumber [9] FTN-AddressString OPTIONAL} + +SS-Status ::= OCTET STRING(SIZE (1)) + +-- bits 8765: 0000 (unused) +-- bits 4321: Used to convey the "P bit","R bit","A bit" and "Q bit", +-- representing supplementary service state information +-- as defined in TS 3GPP TS 23.011 [22] +-- bit 4: "Q bit" +-- bit 3: "P bit" +-- bit 2: "R bit" +-- bit 1: "A bit" +ForwardingOptions ::= OCTET STRING(SIZE (1)) + +-- bit 8: notification to forwarding party +-- 0 no notification +-- 1 notification +-- bit 7: redirecting presentation +-- 0 no presentation +-- 1 presentation +-- bit 6: notification to calling party +-- 0 no notification +-- 1 notification +-- bit 5: 0 (unused) +-- bits 43: forwarding reason +-- 00 ms not reachable +-- 01 ms busy +-- 10 no reply +-- 11 unconditional when used in a SRI Result, +-- or call deflection when used in a RCH Argument +-- bits 21: 00 (unused) +CallBarringInfo ::= SEQUENCE { + ss-Code SS-Code OPTIONAL, + callBarringFeatureList CallBarringFeatureList, + ...} + +CallBarringFeatureList ::= + SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF CallBarringFeature + +CallBarringFeature ::= SEQUENCE { + basicService BasicServiceCode OPTIONAL, + ss-Status [4] SS-Status OPTIONAL, + ...} + +SS-Data ::= SEQUENCE { + ss-Code SS-Code OPTIONAL, + ss-Status [4] SS-Status OPTIONAL, + ss-SubscriptionOption SS-SubscriptionOption OPTIONAL, + basicServiceGroupList BasicServiceGroupList OPTIONAL, + ..., + defaultPriority EMLPP-Priority OPTIONAL, + nbrUser [5] MC-Bearers OPTIONAL} + +SS-SubscriptionOption ::= CHOICE { + cliRestrictionOption [2] CliRestrictionOption, + overrideCategory [1] OverrideCategory} + +CliRestrictionOption ::= ENUMERATED { + permanent(0), temporaryDefaultRestricted(1), temporaryDefaultAllowed(2) +} + +OverrideCategory ::= ENUMERATED {overrideEnabled(0), overrideDisabled(1)} + +SS-ForBS-Code ::= SEQUENCE { + ss-Code SS-Code, + basicService BasicServiceCode OPTIONAL, + ..., + longFTN-Supported [4] NULL OPTIONAL} + +GenericServiceInfo ::= SEQUENCE { + ss-Status SS-Status, + cliRestrictionOption CliRestrictionOption OPTIONAL, + ..., + maximumEntitledPriority [0] EMLPP-Priority OPTIONAL, + defaultPriority [1] EMLPP-Priority OPTIONAL, + ccbs-FeatureList [2] CCBS-FeatureList OPTIONAL, + nbrSB [3] MaxMC-Bearers OPTIONAL, + nbrUser [4] MC-Bearers OPTIONAL, + nbrSN [5] MC-Bearers OPTIONAL} + +CCBS-FeatureList ::= SEQUENCE SIZE (1..maxNumOfCCBS-Requests) OF CCBS-Feature + +maxNumOfCCBS-Requests INTEGER ::= 5 + +CCBS-Feature ::= SEQUENCE { + ccbs-Index [0] CCBS-Index OPTIONAL, + b-subscriberNumber [1] ISDN-AddressString OPTIONAL, + b-subscriberSubaddress [2] ISDN-SubaddressString OPTIONAL, + basicServiceGroup [3] BasicServiceCode OPTIONAL, + ...} + +CCBS-Index ::= INTEGER(1..maxNumOfCCBS-Requests) + +InterrogateSS-Res ::= CHOICE { + ss-Status [0] SS-Status, + basicServiceGroupList [2] BasicServiceGroupList, + forwardingFeatureList [3] ForwardingFeatureList, + genericServiceInfo [4] GenericServiceInfo} + +USSD-Arg ::= SEQUENCE { + ussd-DataCodingScheme USSD-DataCodingScheme, + ussd-String USSD-String, + ..., + alertingPattern AlertingPattern OPTIONAL, + msisdn [0] ISDN-AddressString OPTIONAL} + +USSD-Res ::= SEQUENCE { + ussd-DataCodingScheme USSD-DataCodingScheme, + ussd-String USSD-String, + ...} + +USSD-DataCodingScheme ::= OCTET STRING(SIZE (1)) + +-- The structure of the USSD-DataCodingScheme is defined by +-- the Cell Broadcast Data Coding Scheme as described in +-- TS 3GPP TS 23.038 [25] +USSD-String ::= OCTET STRING(SIZE (1..maxUSSD-StringLength)) + +-- The structure of the contents of the USSD-String is dependent +-- on the USSD-DataCodingScheme as described in TS 3GPP TS 23.038 [25]. +maxUSSD-StringLength INTEGER ::= + 160 + +Password ::= + NumericString + (FROM ("0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9")) + (SIZE (4)) + +GuidanceInfo ::= ENUMERATED {enterPW(0), enterNewPW(1), enterNewPW-Again(2)} + +-- How this information is really delivered to the subscriber +-- (display, announcement, ...) is not part of this +-- specification. +SS-List ::= SEQUENCE SIZE (1..maxNumOfSS) OF SS-Code + +maxNumOfSS INTEGER ::= 30 + +SS-InfoList ::= SEQUENCE SIZE (1..maxNumOfSS) OF SS-Info + +BasicServiceGroupList ::= + SEQUENCE SIZE (1..maxNumOfBasicServiceGroups) OF BasicServiceCode + +maxNumOfBasicServiceGroups INTEGER ::= 13 + +SS-InvocationNotificationArg ::= SEQUENCE { + imsi [0] IMSI, + msisdn [1] ISDN-AddressString, + ss-Event [2] SS-Code, + -- The following SS-Code values are allowed : + -- ect SS-Code ::= '00110001'B + -- multiPTY SS-Code ::= '01010001'B + -- cd SS-Code ::= '00100100'B + -- ccbs SS-Code ::= '01000100'B + ss-EventSpecification [3] SS-EventSpecification OPTIONAL, + extensionContainer [4] ExtensionContainer OPTIONAL, + ..., + b-subscriberNumber [5] ISDN-AddressString OPTIONAL, + ccbs-RequestState [6] CCBS-RequestState OPTIONAL} + +CCBS-RequestState ::= ENUMERATED { + request(0), recall(1), active(2), completed(3), suspended(4), frozen(5), + deleted(6)} + +SS-InvocationNotificationRes ::= SEQUENCE { + extensionContainer ExtensionContainer OPTIONAL, + ...} + +SS-EventSpecification ::= + SEQUENCE SIZE (1..maxEventSpecification) OF AddressString + +maxEventSpecification INTEGER ::= 2 + +RegisterCC-EntryArg ::= SEQUENCE { + ss-Code [0] SS-Code, + ccbs-Data [1] CCBS-Data OPTIONAL, + ...} + +CCBS-Data ::= SEQUENCE { + ccbs-Feature [0] CCBS-Feature, + translatedB-Number [1] ISDN-AddressString, + serviceIndicator [2] ServiceIndicator OPTIONAL, + callInfo [3] ExternalSignalInfo, + networkSignalInfo [4] ExternalSignalInfo, + ...} + +ServiceIndicator ::= BIT STRING {clir-invoked(0), camel-invoked(1) +}(SIZE (2..32)) + +-- exception handling: +-- bits 2 to 31 shall be ignored if received and not understood +RegisterCC-EntryRes ::= SEQUENCE { + ccbs-Feature [0] CCBS-Feature OPTIONAL, + ...} + +EraseCC-EntryArg ::= SEQUENCE { + ss-Code [0] SS-Code, + ccbs-Index [1] CCBS-Index OPTIONAL, + ...} + +EraseCC-EntryRes ::= SEQUENCE { + ss-Code [0] SS-Code, + ss-Status [1] SS-Status OPTIONAL, + ...} + +END + diff --git a/MAP/asn_src/GSM/MAP-ST-DataTypes.asn b/MAP/asn_src/GSM/MAP-ST-DataTypes.asn new file mode 100644 index 0000000..b8c1f2a --- /dev/null +++ b/MAP/asn_src/GSM/MAP-ST-DataTypes.asn @@ -0,0 +1,84 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-ST-DataTypes {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-ST-DataTypes(27) version8(8)} DEFINITIONS +IMPLICIT TAGS ::= +BEGIN + +EXPORTS + SecureTransportArg, SecureTransportRes, SecurityHeader, ProtectedPayload; + +IMPORTS + IMSI + FROM MAP-CommonDataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-CommonDataTypes(18) + version8(8)}; + +SecureTransportArg ::= SEQUENCE { + securityHeader SecurityHeader, + protectedPayload ProtectedPayload OPTIONAL} + +-- The protectedPayload carries the result of applying the security function +-- defined in 3GPP TS 33.200 to the encoding of the argument of the securely +-- transported operation +SecureTransportRes ::= SEQUENCE { + securityHeader SecurityHeader, + protectedPayload ProtectedPayload OPTIONAL} + +-- The protectedPayload carries the result of applying the security function +-- defined in 3GPP TS 33.200 to the encoding of the result of the securely +-- transported operation +SecurityHeader ::= SEQUENCE { + securityParametersIndex SecurityParametersIndex, + originalComponentIdentifier OriginalComponentIdentifier, + initialisationVector InitialisationVector OPTIONAL, + ...} + +ProtectedPayload ::= OCTET STRING(SIZE (1..3438)) + +-- In protection mode 0 (noProtection) the ProtectedPayload carries the transfer +-- syntax value of the component parameter identified by the +-- originalComponentIdentifier. +-- In protection mode 1 (integrityAuthenticity) the protectedPayload carries +-- the transfer syntax value of the component +-- parameter identified by the originalComponentIdentifier, followed by +-- the 32 bit integrity check value. +-- The integrity check value is the result of applying the hash algorithm +-- to the concatenation of the transfer syntax value of the SecurityHeader, +-- and the transfer syntax value of the component parameter. +-- In protection mode 2 (confidentialityIntegrityAuthenticity) the protected +-- payload carries the encrypted transfer syntax +-- value of the component parameter identified by the +-- originalComponentIdentifier, followed by the 32 bit integrity check value. +-- The integrity check value is the result of applying the hash algorithm +-- to the concatenation of the transfer syntax value of the SecurityHeader, +-- and the encrypted transfer syntax value of the component parameter. +-- See 33.200. +-- The length of the protectedPayload is adjusted according to the capabilities of +-- the lower protocol layers +SecurityParametersIndex ::= OCTET STRING(SIZE (4)) + +InitialisationVector ::= OCTET STRING(SIZE (14)) + +-- the internal structure is defined as follows: +-- Octets 1 to 4 : TVP. The TVP is a 32 bit time stamp. Its value is binary coded +-- and indicates the number of intervals of 100 milliseconds +-- elapsed since 1st January 2002, 0:00:00 UTC +-- Octets 5 to 10: NE-Id. The NE-Id uniquely identifies the sending network entity +-- within the PLMN. It is the entity's E.164 number without CC and +-- NDC. It is TBCD-coded, padded with zeros. +-- Octets 11 to 14: PROP. This 32 bit value is used to make the +-- InitialisationVector unique within the same TVP period. +-- The content is not standardized. +OriginalComponentIdentifier ::= CHOICE { + operationCode [0] OperationCode, + errorCode [1] ErrorCode, + userInfo [2] NULL} + +OperationCode ::= CHOICE {localValue INTEGER, + globalValue OBJECT IDENTIFIER} + +ErrorCode ::= CHOICE {localValue INTEGER, + globalValue OBJECT IDENTIFIER} + +END + diff --git a/MAP/asn_src/GSM/MAP-SecureTransportOperations.asn b/MAP/asn_src/GSM/MAP-SecureTransportOperations.asn new file mode 100644 index 0000000..a94a4c2 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-SecureTransportOperations.asn @@ -0,0 +1,52 @@ +MAP-SecureTransportOperations + {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-SecureTransportOperations(26) + version8(8)} DEFINITIONS ::= +BEGIN + +EXPORTS + secureTransportClass1, secureTransportClass2, secureTransportClass3, + secureTransportClass4; + +IMPORTS + OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + dataMissing, secureTransportError, unexpectedDataValue + FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-Errors(10) version8(8)} + SecureTransportArg, SecureTransportRes + FROM MAP-ST-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-ST-DataTypes(27) + version8(8)}; + +secureTransportClass1 OPERATION ::= { + --Timer shall be the same as for the + --securely transported operation + ARGUMENT SecureTransportArg + RESULT SecureTransportRes + ERRORS {secureTransportError | dataMissing | unexpectedDataValue} + CODE local:78} + +secureTransportClass2 OPERATION ::= { + --Timer shall be the same as for the + --securely transported operation + ARGUMENT SecureTransportArg + ERRORS {secureTransportError | dataMissing | unexpectedDataValue} + CODE local:79} + +secureTransportClass3 OPERATION ::= { + --Timer shall be the same as for the + --securely transported operation + ARGUMENT SecureTransportArg + RESULT SecureTransportRes + CODE local:80} + +secureTransportClass4 OPERATION ::= { + --Timer shall be the same as for the + --securely transported operation + ARGUMENT SecureTransportArg + CODE local:81} + +END + diff --git a/MAP/asn_src/GSM/MAP-ShortMessageServiceOperations.asn b/MAP/asn_src/GSM/MAP-ShortMessageServiceOperations.asn new file mode 100644 index 0000000..b9c6422 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-ShortMessageServiceOperations.asn @@ -0,0 +1,88 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-ShortMessageServiceOperations {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) + map-ShortMessageServiceOperations(9) version8(8)} DEFINITIONS ::= +BEGIN + +EXPORTS + sendRoutingInfoForSM, mo-ForwardSM, mt-ForwardSM, reportSM-DeliveryStatus, + alertServiceCentre, informServiceCentre, readyForSM; + +IMPORTS + OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + systemFailure, dataMissing, unexpectedDataValue, facilityNotSupported, + unknownSubscriber, unidentifiedSubscriber, illegalSubscriber, + illegalEquipment, teleserviceNotProvisioned, callBarred, + subscriberBusyForMT-SMS, sm-DeliveryFailure, messageWaitingListFull, + absentSubscriberSM + FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-Errors(10) version8(8)} + RoutingInfoForSM-Arg, RoutingInfoForSM-Res, MO-ForwardSM-Arg, + MO-ForwardSM-Res, MT-ForwardSM-Arg, MT-ForwardSM-Res, + ReportSM-DeliveryStatusArg, ReportSM-DeliveryStatusRes, + AlertServiceCentreArg, InformServiceCentreArg, ReadyForSM-Arg, + ReadyForSM-Res + FROM MAP-SM-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-SM-DataTypes(16) + version8(8)}; + +sendRoutingInfoForSM OPERATION ::= { --Timer m + ARGUMENT RoutingInfoForSM-Arg + RESULT RoutingInfoForSM-Res + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported | + unknownSubscriber | teleserviceNotProvisioned | callBarred | + absentSubscriberSM} + CODE local:45} + +mo-ForwardSM OPERATION ::= { --Timer ml + ARGUMENT MO-ForwardSM-Arg + RESULT MO-ForwardSM-Res + -- optional + ERRORS + {systemFailure | unexpectedDataValue | facilityNotSupported | + sm-DeliveryFailure} + CODE local:46} + +mt-ForwardSM OPERATION ::= { --Timer ml + ARGUMENT MT-ForwardSM-Arg + RESULT MT-ForwardSM-Res + -- optional + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | facilityNotSupported | + unidentifiedSubscriber | illegalSubscriber | illegalEquipment | + subscriberBusyForMT-SMS | sm-DeliveryFailure | absentSubscriberSM} + CODE local:44} + +reportSM-DeliveryStatus OPERATION ::= { --Timer s + ARGUMENT ReportSM-DeliveryStatusArg + RESULT ReportSM-DeliveryStatusRes + -- optional + ERRORS + {dataMissing | unexpectedDataValue | unknownSubscriber | + messageWaitingListFull} + CODE local:47} + +alertServiceCentre OPERATION ::= { --Timer s + ARGUMENT AlertServiceCentreArg + RETURN RESULT TRUE + ERRORS {systemFailure | dataMissing | unexpectedDataValue} + CODE local:64} + +informServiceCentre OPERATION ::= { --Timer s + ARGUMENT InformServiceCentreArg + CODE local:63} + +readyForSM OPERATION ::= { --Timer m + ARGUMENT ReadyForSM-Arg + RESULT ReadyForSM-Res + -- optional + ERRORS + {dataMissing | unexpectedDataValue | facilityNotSupported | + unknownSubscriber} + CODE local:66} + +END + diff --git a/MAP/asn_src/GSM/MAP-SupplementaryServiceOperations.asn b/MAP/asn_src/GSM/MAP-SupplementaryServiceOperations.asn new file mode 100644 index 0000000..65aec22 --- /dev/null +++ b/MAP/asn_src/GSM/MAP-SupplementaryServiceOperations.asn @@ -0,0 +1,154 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-SupplementaryServiceOperations {itu-t identified-organization(4) + etsi(0) mobileDomain(0) gsm-Network(1) modules(3) + map-SupplementaryServiceOperations(8) version8(8)} DEFINITIONS ::= +BEGIN + +EXPORTS + registerSS, eraseSS, activateSS, deactivateSS, interrogateSS, + processUnstructuredSS-Request, unstructuredSS-Request, + unstructuredSS-Notify, registerPassword, getPassword, + ss-InvocationNotification, registerCC-Entry, eraseCC-Entry; + +IMPORTS + OPERATION + FROM Remote-Operations-Information-Objects {joint-iso-itu-t + remote-operations(4) informationObjects(5) version1(0)} + systemFailure, dataMissing, unexpectedDataValue, unknownSubscriber, + bearerServiceNotProvisioned, teleserviceNotProvisioned, callBarred, + illegalSS-Operation, ss-ErrorStatus, ss-NotAvailable, + ss-SubscriptionViolation, ss-Incompatibility, pw-RegistrationFailure, + negativePW-Check, numberOfPW-AttemptsViolation, unknownAlphabet, + ussd-Busy, absentSubscriber, illegalSubscriber, illegalEquipment, + shortTermDenial, longTermDenial, facilityNotSupported + FROM MAP-Errors {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-Errors(10) version8(8)} + RegisterSS-Arg, SS-Info, SS-ForBS-Code, InterrogateSS-Res, USSD-Arg, + USSD-Res, Password, GuidanceInfo, SS-InvocationNotificationArg, + SS-InvocationNotificationRes, RegisterCC-EntryArg, RegisterCC-EntryRes, + EraseCC-EntryArg, EraseCC-EntryRes + FROM MAP-SS-DataTypes {itu-t identified-organization(4) etsi(0) + mobileDomain(0) gsm-Network(1) modules(3) map-SS-DataTypes(14) + version8(8)} + SS-Code + FROM MAP-SS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-SS-Code(15) version8(8)}; + +-- supplementary service handling operations +registerSS OPERATION ::= { --Timer m + ARGUMENT RegisterSS-Arg + RESULT SS-Info + -- optional + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | + bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred | + illegalSS-Operation | ss-ErrorStatus | ss-Incompatibility} + CODE local:10} + +eraseSS OPERATION ::= { --Timer m + ARGUMENT SS-ForBS-Code + RESULT SS-Info + -- optional + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | + bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred | + illegalSS-Operation | ss-ErrorStatus} + CODE local:11} + +activateSS OPERATION ::= { --Timer m + ARGUMENT SS-ForBS-Code + RESULT SS-Info + -- optional + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | + bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred | + illegalSS-Operation | ss-ErrorStatus | ss-SubscriptionViolation | + ss-Incompatibility | negativePW-Check | numberOfPW-AttemptsViolation} + CODE local:12} + +deactivateSS OPERATION ::= { --Timer m + ARGUMENT SS-ForBS-Code + RESULT SS-Info + -- optional + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | + bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred | + illegalSS-Operation | ss-ErrorStatus | ss-SubscriptionViolation | + negativePW-Check | numberOfPW-AttemptsViolation} + CODE local:13} + +interrogateSS OPERATION ::= { --Timer m + ARGUMENT SS-ForBS-Code + RESULT InterrogateSS-Res + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | + bearerServiceNotProvisioned | teleserviceNotProvisioned | callBarred | + illegalSS-Operation | ss-NotAvailable} + CODE local:14} + +processUnstructuredSS-Request OPERATION ::= { --Timer 10 minutes + ARGUMENT USSD-Arg + RESULT USSD-Res + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | unknownAlphabet | + callBarred} + CODE local:59} + +unstructuredSS-Request OPERATION ::= { --Timer ml + ARGUMENT USSD-Arg + RESULT USSD-Res + -- optional + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | absentSubscriber | + illegalSubscriber | illegalEquipment | unknownAlphabet | ussd-Busy} + CODE local:60} + +unstructuredSS-Notify OPERATION ::= { --Timer ml + ARGUMENT USSD-Arg + RETURN RESULT TRUE + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | absentSubscriber | + illegalSubscriber | illegalEquipment | unknownAlphabet | ussd-Busy} + CODE local:61} + +registerPassword OPERATION ::= { --Timer ml + ARGUMENT SS-Code + RESULT Password + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | callBarred | + ss-SubscriptionViolation | pw-RegistrationFailure | negativePW-Check | + numberOfPW-AttemptsViolation} + LINKED {getPassword} + CODE local:17} + +getPassword OPERATION ::= { --Timer m + ARGUMENT GuidanceInfo + RESULT Password + CODE local:18} + +ss-InvocationNotification OPERATION ::= { --Timer m + ARGUMENT SS-InvocationNotificationArg + RESULT SS-InvocationNotificationRes + -- optional + ERRORS {dataMissing | unexpectedDataValue | unknownSubscriber} + CODE local:72} + +registerCC-Entry OPERATION ::= { --Timer m + ARGUMENT RegisterCC-EntryArg + RESULT RegisterCC-EntryRes + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | callBarred | + illegalSS-Operation | ss-ErrorStatus | ss-Incompatibility | + shortTermDenial | longTermDenial | facilityNotSupported} + CODE local:76} + +eraseCC-Entry OPERATION ::= { --Timer m + ARGUMENT EraseCC-EntryArg + RESULT EraseCC-EntryRes + ERRORS + {systemFailure | dataMissing | unexpectedDataValue | callBarred | + illegalSS-Operation | ss-ErrorStatus} + CODE local:77} + +END + diff --git a/MAP/asn_src/GSM/MAP-TS-Code.asn b/MAP/asn_src/GSM/MAP-TS-Code.asn new file mode 100644 index 0000000..c89f93e --- /dev/null +++ b/MAP/asn_src/GSM/MAP-TS-Code.asn @@ -0,0 +1,108 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MAP-TS-Code {itu-t identified-organization(4) etsi(0) mobileDomain(0) + gsm-Network(1) modules(3) map-TS-Code(19) version8(8)} DEFINITIONS ::= +BEGIN + +TeleserviceCode ::= OCTET STRING(SIZE (1)) + +-- This type is used to represent the code identifying a single +-- teleservice, a group of teleservices, or all teleservices. The +-- services are defined in TS GSM 22.003 [4]. +-- The internal structure is defined as follows: +-- bits 87654321: group (bits 8765) and specific service +-- (bits 4321) +Ext-TeleserviceCode ::= OCTET STRING(SIZE (1..5)) + +-- This type is used to represent the code identifying a single +-- teleservice, a group of teleservices, or all teleservices. The +-- services are defined in TS GSM 22.003 [4]. +-- The internal structure is defined as follows: +-- OCTET 1: +-- bits 87654321: group (bits 8765) and specific service +-- (bits 4321) +-- OCTETS 2-5: reserved for future use. If received the +-- Ext-TeleserviceCode shall be +-- treated according to the exception handling defined for the +-- operation that uses this type. +-- Ext-TeleserviceCode includes all values defined for TeleserviceCode. +allTeleservices TeleserviceCode ::= + '00000000'B + +allSpeechTransmissionServices TeleserviceCode ::= '00010000'B + +telephony TeleserviceCode ::= '00010001'B + +emergencyCalls TeleserviceCode ::= '00010010'B + +allShortMessageServices TeleserviceCode ::= '00100000'B + +shortMessageMT-PP TeleserviceCode ::= '00100001'B + +shortMessageMO-PP TeleserviceCode ::= '00100010'B + +allFacsimileTransmissionServices TeleserviceCode ::= '01100000'B + +facsimileGroup3AndAlterSpeech TeleserviceCode ::= '01100001'B + +automaticFacsimileGroup3 TeleserviceCode ::= '01100010'B + +facsimileGroup4 TeleserviceCode ::= '01100011'B + +-- The following non-hierarchical Compound Teleservice Groups +-- are defined in TS 3GPP TS 22.030: +allDataTeleservices TeleserviceCode ::= + '01110000'B + +-- covers Teleservice Groups 'allFacsimileTransmissionServices' +-- and 'allShortMessageServices' +allTeleservices-ExeptSMS TeleserviceCode ::= + '10000000'B + +-- covers Teleservice Groups 'allSpeechTransmissionServices' and +-- 'allFacsimileTransmissionServices' +-- +-- Compound Teleservice Group Codes are only used in call +-- independent supplementary service operations, i.e. they +-- are not used in InsertSubscriberData or in +-- DeleteSubscriberData messages. +allVoiceGroupCallServices TeleserviceCode ::= + '10010000'B + +voiceGroupCall TeleserviceCode ::= '10010001'B + +voiceBroadcastCall TeleserviceCode ::= '10010010'B + +allPLMN-specificTS TeleserviceCode ::= '11010000'B + +plmn-specificTS-1 TeleserviceCode ::= '11010001'B + +plmn-specificTS-2 TeleserviceCode ::= '11010010'B + +plmn-specificTS-3 TeleserviceCode ::= '11010011'B + +plmn-specificTS-4 TeleserviceCode ::= '11010100'B + +plmn-specificTS-5 TeleserviceCode ::= '11010101'B + +plmn-specificTS-6 TeleserviceCode ::= '11010110'B + +plmn-specificTS-7 TeleserviceCode ::= '11010111'B + +plmn-specificTS-8 TeleserviceCode ::= '11011000'B + +plmn-specificTS-9 TeleserviceCode ::= '11011001'B + +plmn-specificTS-A TeleserviceCode ::= '11011010'B + +plmn-specificTS-B TeleserviceCode ::= '11011011'B + +plmn-specificTS-C TeleserviceCode ::= '11011100'B + +plmn-specificTS-D TeleserviceCode ::= '11011101'B + +plmn-specificTS-E TeleserviceCode ::= '11011110'B + +plmn-specificTS-F TeleserviceCode ::= '11011111'B + +END + diff --git a/MAP/asn_src/GSM/Makefile b/MAP/asn_src/GSM/Makefile new file mode 100644 index 0000000..4c7b405 --- /dev/null +++ b/MAP/asn_src/GSM/Makefile @@ -0,0 +1,119 @@ + +## I found it necessary to copy Remote-Operations-* here +## TCAPINCLUDES = -I ../../../TCAP/itu/asn_src +TCAPINCLUDES = + +ERLC = erlc +ERLCFLAGS = -b beam -W -v + +ASNC = $(ERLC) +ASNCFLAGS = -W -b ber_bin $(TCAPINCLUDES) +optimize +driver + +%.beam:%.erl + $(ERLC) $(ERLCFLAGS) $< + +.SECONDARY: %.erl +%.erl:%.asn + $(ASNC) $(ASNCFLAGS) $< + +default: all + +all: MAP-SecureTransportOperations.beam \ + MAP-MobileServiceOperations.beam \ + MAP-LocationServiceOperations.beam \ + MAP-OperationAndMaintenanceOperations.beam \ + MAP-CallHandlingOperations.beam \ + MAP-SupplementaryServiceOperations.beam \ + MAP-ShortMessageServiceOperations.beam \ + MAP-Group-Call-Operations.beam \ + MAP-ApplicationContexts.beam \ + MAP-DialogueInformation.beam \ + MAP-Protocol.beam + + +MAP-CommonDataTypes.erl: MAP-ExtensionDataTypes.erl \ + MAP-TS-Code.erl MAP-BS-Code.erl MAP-SS-Code.erl +MAP-ER-DataTypes.erl: MAP-ExtensionDataTypes.erl \ + MAP-SS-DataTypes.erl MAP-CommonDataTypes.erl \ + MAP-ST-DataTypes.erl MAP-SS-Code.erl +MAP-ST-DataTypes.erl: MAP-CommonDataTypes.erl +MAP-MS-DataTypes.erl: MAP-ER-DataTypes.erl \ + MAP-SS-DataTypes.erl MAP-SS-Code.erl \ + MAP-BS-Code.erl MAP-TS-Code.erl \ + MAP-CommonDataTypes.erl MAP-ExtensionDataTypes.erl +MAP-LCS-DataTypes.erl: MAP-SM-DataTypes.erl \ + MAP-CommonDataTypes.erl MAP-ExtensionDataTypes.erl \ + MAP-SS-DataTypes.erl MAP-MS-DataTypes.erl +MAP-CH-DataTypes.erl: MAP-ExtensionDataTypes.erl \ + MAP-MS-DataTypes.erl MAP-SS-DataTypes.erl \ + MAP-CommonDataTypes.erl +MAP-OM-DataTypes.erl: MAP-ExtensionDataTypes.erl \ + MAP-CommonDataTypes.erl +MAP-SS-DataTypes.erl: MAP-SS-Code.erl \ + MAP-CommonDataTypes.erl MAP-ExtensionDataTypes.erl +MAP-SM-DataTypes.erl: MAP-ExtensionDataTypes.erl \ + MAP-CommonDataTypes.erl MAP-ER-DataTypes.erl +MAP-GR-DataTypes.erl: MAP-ExtensionDataTypes.erl \ + MAP-CommonDataTypes.erl MAP-TS-Code.erl \ + MAP-MS-DataTypes.erl + +MAP-Errors.erl: MAP-ER-DataTypes.erl \ + MAP-SS-DataTypes.erl + +MAP-SecureTransportOperations.erl: MAP-ST-DataTypes.erl \ + MAP-Errors.erl +MAP-MobileServiceOperations.erl: MAP-MS-DataTypes.erl \ + MAP-Errors.erl +MAP-LocationServiceOperations.erl: MAP-LCS-DataTypes.erl \ + MAP-Errors.erl +MAP-OperationAndMaintenanceOperations.erl: MAP-CommonDataTypes.erl \ + MAP-Errors.erl MAP-OM-DataTypes.erl +MAP-CallHandlingOperations.erl: MAP-CH-DataTypes.erl \ + MAP-Errors.erl +MAP-SupplementaryServiceOperations.erl: MAP-SS-Code.erl \ + MAP-Errors.erl MAP-SS-DataTypes.erl +MAP-ShortMessageServiceOperations.erl: MAP-SM-DataTypes.erl \ + MAP-Errors.erl +MAP-Group-Call-Operations.erl: MAP-GR-DataTypes.erl \ + MAP-Errors.erl + +MAP-ApplicationContexts.erl: MobileDomainDefinitions.erl +MAP-DialogueInformation.erl: MAP-ST-DataTypes.erl \ + MobileDomainDefinitions.erl MAP-CommonDataTypes.erl \ + MAP-ExtensionDataTypes.erl +MAP-Protocol.erl: MAP-MobileServiceOperations.erl \ + MAP-OperationAndMaintenanceOperations.erl \ + MAP-CallHandlingOperations.erl \ + MAP-SupplementaryServiceOperations.erl \ + MAP-ShortMessageServiceOperations.erl \ + MAP-Group-Call-Operations.erl \ + MAP-LocationServiceOperations.erl \ + MAP-SecureTransportOperations.erl + +.PHONY: clean +clean: + rm -rf *.asn1db + rm -rf MobileDomainDefinitions.erl \ + MAP-ApplicationContexts.erl MAP-BS-Code.erl \ + MAP-CH-DataTypes.erl MAP-CallHandlingOperations.erl \ + MAP-CommonDataTypes.erl MAP-DialogueInformation.erl \ + MAP-ER-DataTypes.erl MAP-Errors.erl MAP-ExtensionDataTypes.erl \ + MAP-GR-DataTypes.erl MAP-Group-Call-Operations.erl \ + MAP-LCS-DataTypes.erl MAP-LocationServiceOperations.erl \ + MAP-MS-DataTypes.erl MAP-MobileServiceOperations.erl \ + MAP-OM-DataTypes.erl MAP-OperationAndMaintenanceOperations.erl \ + MAP-Protocol.erl MAP-SM-DataTypes.erl \ + MAP-SS-Code.erl MAP-SS-DataTypes.erl MAP-ST-DataTypes.erl \ + MAP-SecureTransportOperations.erl \ + MAP-ShortMessageServiceOperations.erl \ + MAP-SupplementaryServiceOperations.erl MAP-TS-Code.erl + rm -rf MAP-ApplicationContexts.hrl MAP-MS-DataTypes.hrl \ + MAP-CH-DataTypes.hrl MAP-OM-DataTypes.hrl \ + MAP-DialogueInformation.hrl MAP-SM-DataTypes.hrl \ + MAP-GR-DataTypes.hrl MobileDomainDefinitions.hrl \ + MAP-LCS-DataTypes.hrl MAP-BS-Code.hrl \ + MAP-CommonDataTypes.hrl MAP-ER-DataTypes.hrl \ + MAP-ExtensionDataTypes.hrl MAP-SS-Code.hrl \ + MAP-SS-DataTypes.hrl MAP-ST-DataTypes.hrl \ + MAP-TS-Code.hrl + rm -rf *.beam diff --git a/MAP/asn_src/GSM/MobileDomainDefinitions.asn b/MAP/asn_src/GSM/MobileDomainDefinitions.asn new file mode 100644 index 0000000..3448725 --- /dev/null +++ b/MAP/asn_src/GSM/MobileDomainDefinitions.asn @@ -0,0 +1,35 @@ +-- Pretty-printed by Asnp, the pretty-printer of France Telecom R&D (http://asn1.elibel.tm.fr/asnp/) +MobileDomainDefinitions {ccitt(0) identified-organization(4) etsi(0) + mobileDomain(0) mobileDomainDefinitions(0) version1(1)} DEFINITIONS ::= +BEGIN + +-- Mobile DomainId +mobileDomainId OBJECT IDENTIFIER ::= + {ccitt(0) identified-organization(4) etsi(0) mobileDomain(0)} + +-- Mobile Subdomains +gsm-NetworkId OBJECT IDENTIFIER ::= + {mobileDomainId gsm-Network(1)} + +gsm-AccessId OBJECT IDENTIFIER ::= {mobileDomainId gsm-Access(2)} + +gsm-OperationAndMaintenanceId OBJECT IDENTIFIER ::= + {mobileDomainId gsm-Operation-Maintenance(3)} + +gsm-MessagingId OBJECT IDENTIFIER ::= {mobileDomainId gsm-Messaging(4)} + +-- Common Component Ids for structuring Mobile Subdomains +CommonComponentId ::= INTEGER(0..9) + +ac-Id CommonComponentId ::= 0 + +as-Id CommonComponentId ::= 1 + +ase-Id CommonComponentId ::= 2 + +moduleId CommonComponentId ::= 3 + +er-Id CommonComponentId ::= 4 + +END -- MobileDomainDefinitions + diff --git a/MAP/asn_src/GSM/README b/MAP/asn_src/GSM/README new file mode 100644 index 0000000..2a31d09 --- /dev/null +++ b/MAP/asn_src/GSM/README @@ -0,0 +1,7 @@ + +The ASN.1 modules here were derived from the following version +of the Mobile Application Part (MAP) Specification: + + ETSI TS 129 002 V5.6.2 (2003-07) + + diff --git a/MAP/asn_src/Makefile b/MAP/asn_src/Makefile new file mode 100644 index 0000000..f21d4e3 --- /dev/null +++ b/MAP/asn_src/Makefile @@ -0,0 +1,5 @@ + +all: + cd gsm && $(MAKE) + cd ansi && $(MAKE) + diff --git a/MAP/doc/Makefile b/MAP/doc/Makefile new file mode 100644 index 0000000..daa3ced --- /dev/null +++ b/MAP/doc/Makefile @@ -0,0 +1,13 @@ + +.PHONY: all +all: + cd html && $(MAKE) + +.PHONY: doc +doc: + cd html && $(MAKE) $@ + +.PHONY: clean +clean: + cd html && $(MAKE) $@ + diff --git a/MAP/doc/html/Makefile b/MAP/doc/html/Makefile new file mode 100644 index 0000000..e067c3e --- /dev/null +++ b/MAP/doc/html/Makefile @@ -0,0 +1,31 @@ +## $Id: Makefile,v 1.2 2005/02/13 00:42:12 vances Exp $ + +ERL = erl + +SRC = ../../src + +DOCS = map.html + +%.html:${SRC}/%.erl + ${ERL} -noshell -run edoc_run file '"$<"' '[{dir,"."}]' -s init stop + +%.html:${SRC}/ansi/%.erl + ${ERL} -noshell -run edoc_run file '"$<"' '[{dir,"."}]' -s init stop + +%.html:${SRC}/gsm/%.erl + ${ERL} -noshell -run edoc_run file '"$<"' '[{dir,"."}]' -s init stop + + +.PHONY: all +all: doc + + +.PHONY: doc +doc: ${DOCS} + +.PHONY: clean +clean: + - rm ${DOCS} + +tcap.html: ${ESRC}/tcap.erl + diff --git a/MAP/doc/html/index.html b/MAP/doc/html/index.html new file mode 100644 index 0000000..ec4523e --- /dev/null +++ b/MAP/doc/html/index.html @@ -0,0 +1,106 @@ + + + + MAP User's Guide + + + +

MAP User's Guide

+

Copyright © 2003-2005 Motivity Telecom Inc.

+

Version: 1.0

+

Authors: Vance Shipley (vances@motivity.ca).

+ +

The MAP application is a protocol stack implementation of the Mobile Application Part procedures.

+ +

Application

+ +

Requirements

+

This application includes only the MAP procedures and must be used with a seperate application providing the TCAP service. + The tcap application may be used in conjunction with the + sccp and + nms applications for a complete system.

+ +

Process Communication

+

+ Figure 1-1 depicts the message paths between processes.

+ + Figure 1-1
+ diagram of process communication
+ +

Modules

+ +
map
+

This library module implements the user API for the application.

+ +
map_sup
+

This supervisor behaviour callback module implements the top level supervisor for the application.

+ +
map_load_fsm
+

This gen_fsm behaviour callback module implements the load control process.

+ +
map_sap_sup
+

This supervisor behaviour callback module implements the service access point (SAP) supervisors.

+ +
map_pm_sup
+

This supervisor behaviour callback module implements the protocol machine (PM) supervisors.

+ +
map_dsm_dsm
+

This gen_fsm behaviour callback module implements the dialogue state machines (DSM).

+ +
map_psm_fsm
+

This gen_fsm behaviour callback module implements the performing state machines (PSM).

+ +
map_rsm_fsm
+

This gen_fsm behaviour callback module implements the requesting state machines (RSM).

+ + +

Supervision Tree

+ +

The processes which make up the MAP application are all instantiated under a single supervisor. + Figure 1-2 shows the structure of the supervision tree.

+ + Figure 1-2
+ diagram of supervision tree
+ +

Common Primitives

+ +

MAP-User → MAP

+ {'MAP', 'OPEN', request, Parms}
+ {'MAP', 'CLOSE', request, Parms}
+ {'MAP', 'DELIMITER', request, Parms}
+ {'MAP', 'U-ABORT', request, Parms}
+ +

MAP ← MAP-User

+ {'MAP', 'OPEN', indication, Parms}
+ {'MAP', 'CLOSE', indication, Parms}
+ {'MAP', 'DELIMITER', indication, Parms}
+ {'MAP', 'U-ABORT', indication, Parms}
+ {'MAP', 'P-ABORT', indication, Parms}
+ {'MAP', 'NOTICE', indication, Parms}
+ +

GSM Primitives

+ +

MAP-User → MAP

+ {'MAP', 'UPDATE_LOCATION', request, Parms}
+ {'MAP', 'CANCEL_LOCATION', request, Parms}
+ ...
+ +

MAP ← MAP-User

+ {'MAP', 'UPDATE_LOCATION', indication, Parms}
+ {'MAP', 'CANCEL_LOCATION', indication, Parms}
+ ...
+ +

ANSI Primitives

+ +

MAP-User → MAP

+ {'MAP', 'REGNOT', request, Parms}
+ {'MAP', 'REGCANC', request, Parms}
+ ...
+ +

MAP ← MAP-User

+ {'MAP', 'REGNOT', indication, Parms}
+ {'MAP', 'REGCANC', indication, Parms}
+ ...
+ + + diff --git a/MAP/doc/html/map_messaging.png b/MAP/doc/html/map_messaging.png new file mode 100644 index 0000000..49d1dd9 Binary files /dev/null and b/MAP/doc/html/map_messaging.png differ diff --git a/MAP/doc/html/map_supervision.png b/MAP/doc/html/map_supervision.png new file mode 100644 index 0000000..1be3d11 Binary files /dev/null and b/MAP/doc/html/map_supervision.png differ diff --git a/MAP/doc/map_messaging.graffle b/MAP/doc/map_messaging.graffle new file mode 100644 index 0000000..f287e28 --- /dev/null +++ b/MAP/doc/map_messaging.graffle @@ -0,0 +1,4860 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGrafflePro + 138.17.0.133677 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {756, 553}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2011-03-07 15:09:56 +0100 + Creator + Vance Shipley + DisplayScale + 1 0/72 in = 1.0000 in + GraphDocumentVersion + 6 + GraphicsList + + + Class + LineGraphic + Head + + ID + 71 + + ID + 75 + Points + + {647.845, 168.342} + {468.154, 69.1424} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 11 + + + + Class + LineGraphic + Head + + ID + 70 + + ID + 74 + Points + + {108.155, 168.342} + {287.845, 69.1424} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 3 + + + + Class + LineGraphic + Head + + ID + 9 + + ID + 73 + Points + + {310.499, 74.6357} + {310.5, 162.849} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 70 + + + + Class + LineGraphic + Head + + ID + 10 + + ID + 72 + Points + + {445.499, 74.6357} + {445.5, 162.849} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 71 + + + + Bounds + {{413.999, 38.6357}, {63, 36}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 71 + Shape + Circle + Style + + fill + + Color + + b + 1 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 1 + g + 0.8 + r + 0.4 + + + stroke + + Color + + b + 0.2 + g + 0.2 + r + 0.2 + + CornerRadius + 12 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 PSM} + + + + Bounds + {{278.999, 38.6357}, {63, 36}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 12 + + ID + 70 + Shape + Circle + Style + + fill + + Color + + b + 1 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 1 + g + 0.8 + r + 0.4 + + + stroke + + Color + + b + 0.2 + g + 0.2 + r + 0.2 + + CornerRadius + 12 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 RSM} + + + + Bounds + {{25.2606, 30.2215}, {705.478, 60.627}} + Class + ShapedGraphic + ID + 50 + Shape + Rectangle + Style + + fill + + Color + + b + 1 + g + 0.8 + r + 0.8 + + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural + +\f0\fs24 \cf0 MAP} + + TextPlacement + 0 + + + Class + LineGraphic + Head + + ID + 9 + + ID + 48 + Points + + {357.154, 150.647} + {331.347, 167.354} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 46 + + + + Class + LineGraphic + Head + + ID + 10 + + ID + 47 + Points + + {398.847, 150.647} + {424.654, 167.354} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 46 + + + + Bounds + {{346.5, 119.152}, {63, 36}} + Class + ShapedGraphic + ID + 46 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.6 + r + 1 + + FillType + 3 + GradientColor + + b + 0.4 + g + 0.4 + r + 1 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 LOAD} + + + + Class + LineGraphic + Head + + ID + 4 + + ID + 40 + Points + + {280.264, 399.986} + {303.139, 345.59} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 30 + + + + Class + LineGraphic + Head + + ID + 12 + + ID + 39 + Points + + {475.736, 399.986} + {452.861, 345.59} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 29 + + + + Class + LineGraphic + Head + + ID + 4 + + ID + 37 + Points + + {365.559, 453.57} + {318.162, 345.548} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 28 + + + + Class + LineGraphic + Head + + ID + 12 + + ID + 36 + Points + + {381.967, 453.736} + {436.755, 345.382} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 28 + + + + Class + LineGraphic + Head + + ID + 28 + + ID + 35 + Points + + {295.924, 429.777} + {350.2, 458.745} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 30 + + + + Class + LineGraphic + Head + + ID + 29 + + ID + 34 + Points + + {397.191, 459.352} + {459.127, 429.171} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 28 + + + + Bounds + {{241.403, 399.491}, {63, 36}} + Class + ShapedGraphic + ID + 30 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 0.2 + g + 0.4 + r + 0.2 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 TSM} + + + + Bounds + {{451.597, 399.491}, {63, 36}} + Class + ShapedGraphic + ID + 29 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 0.2 + g + 0.4 + r + 0.2 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 TSM} + + + + Bounds + {{341.721, 453.032}, {63, 36}} + Class + ShapedGraphic + ID + 28 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 0.2 + g + 0.4 + r + 0.2 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 TCO} + + + + Class + LineGraphic + Head + + ID + 13 + + ID + 27 + Points + + {207.644, 274.479} + {116.357, 285.219} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 15 + + + + Class + LineGraphic + Head + + ID + 12 + + ID + 26 + Points + + {639.477, 308.51} + {476.523, 324.955} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 14 + + + + Class + LineGraphic + Head + + ID + 4 + + ID + 25 + Points + + {115.634, 294.104} + {280.366, 322.831} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 13 + + + + Class + LineGraphic + Head + + ID + 13 + + ID + 24 + Points + + {286.379, 192.427} + {109.621, 277.271} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 9 + + + + Class + LineGraphic + Head + + ID + 14 + + ID + 23 + Points + + {468.127, 193.372} + {647.873, 292.856} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 10 + + + + Class + LineGraphic + Head + + ID + 12 + + ID + 22 + Points + + {445.5, 198.849} + {445.5, 310.086} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 10 + + + + Class + LineGraphic + Head + + ID + 4 + + ID + 21 + Points + + {310.5, 198.849} + {310.5, 310.086} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + FilledArrow + + + Tail + + ID + 9 + + + + Class + LineGraphic + Head + + ID + 9 + + ID + 20 + Points + + {251.6, 254.474} + {297.4, 197.224} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 15 + + + + Class + LineGraphic + Head + + ID + 14 + + ID + 19 + Points + + {670.5, 198.849} + {670.5, 287.379} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 11 + + + + Class + LineGraphic + Head + + ID + 11 + + ID + 18 + Points + + {477, 180.849} + {639, 180.849} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 10 + + + + Class + LineGraphic + Head + + ID + 13 + + ID + 17 + Points + + {85.5002, 198.849} + {85.5002, 270.849} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 3 + + + + Class + LineGraphic + Head + + ID + 3 + + ID + 16 + Points + + {279, 180.849} + {117, 180.849} + + Style + + stroke + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + HeadArrow + FilledArrow + TailArrow + 0 + + + Tail + + ID + 9 + + + + Bounds + {{207, 252.849}, {63, 36}} + Class + ShapedGraphic + ID + 15 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 0.2 + g + 0.4 + r + 0.2 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 ISM} + + + + Bounds + {{639, 287.379}, {63, 36}} + Class + ShapedGraphic + ID + 14 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 0.2 + g + 0.4 + r + 0.2 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 CCO} + + + + Bounds + {{54.0002, 270.849}, {63, 36}} + Class + ShapedGraphic + ID + 13 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 0.2 + g + 0.4 + r + 0.2 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 CCO} + + + + Bounds + {{414, 310.086}, {63, 36}} + Class + ShapedGraphic + ID + 12 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 0.2 + g + 0.4 + r + 0.2 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 DHA} + + + + Bounds + {{639, 162.849}, {63, 36}} + Class + ShapedGraphic + ID + 11 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.6 + r + 1 + + FillType + 3 + GradientColor + + b + 0.4 + g + 0.4 + r + 1 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 PSM} + + + + Bounds + {{414, 162.849}, {63, 36}} + Class + ShapedGraphic + ID + 10 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.6 + r + 1 + + FillType + 3 + GradientColor + + b + 0.4 + g + 0.4 + r + 1 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 DSM} + + + + Bounds + {{279, 162.849}, {63, 36}} + Class + ShapedGraphic + ID + 9 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.6 + r + 1 + + FillType + 3 + GradientColor + + b + 0.4 + g + 0.4 + r + 1 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 DSM} + + + + Bounds + {{279, 310.086}, {63, 36}} + Class + ShapedGraphic + ID + 4 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 0.2 + g + 0.4 + r + 0.2 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 DHA} + + + + Bounds + {{54.0002, 162.849}, {63, 36}} + Class + ShapedGraphic + ID + 3 + Shape + Circle + Style + + fill + + Color + + b + 0.6 + g + 0.6 + r + 1 + + FillType + 3 + GradientColor + + b + 0.4 + g + 0.4 + r + 1 + + + stroke + + CornerRadius + 8 + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs24 \cf0 RSM} + + + + Bounds + {{25.2614, 106.662}, {705.478, 113.905}} + Class + ShapedGraphic + ID + 41 + Shape + Rectangle + Style + + fill + + Color + + b + 0.8 + g + 0.8 + r + 1 + + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural + +\f0\fs24 \cf0 MAP} + + TextPlacement + 0 + + + Bounds + {{38.5806, 385.909}, {678.838, 113.905}} + Class + ShapedGraphic + ID + 44 + Shape + Rectangle + Style + + fill + + Color + + b + 0.6 + g + 0.8 + r + 0.6 + + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural + +\f0\fs24 \cf0 Transaction Sub-layer} + + TextPlacement + 0 + + + Bounds + {{38.5806, 247.088}, {678.838, 125.881}} + Class + ShapedGraphic + ID + 45 + Shape + Rectangle + Style + + fill + + Color + + b + 0.6 + g + 0.8 + r + 0.6 + + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural + +\f0\fs24 \cf0 Component Sub-layer} + + TextPlacement + 2 + + + Bounds + {{25.2608, 235.898}, {705.478, 286.881}} + Class + ShapedGraphic + ID + 42 + Shape + Rectangle + Style + + fill + + Color + + b + 0.8 + g + 1 + r + 0.8 + + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural + +\f0\fs24 \cf0 TCAP} + + TextPlacement + 2 + + + GridInfo + + ShowsGrid + YES + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2011-03-08 00:14:07 +0100 + Modifier + Vance Shipley + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {792, 612} + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + QuickLookPreview + + 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 + dCA0IDAgUiAvUmVzb3VyY2VzIDcgMCBSIC9Db250ZW50cyA1IDAgUiAvTWVkaWFCb3gg + WzAgMCA3NTYgNTUzXQo+PgplbmRvYmoKNyAwIG9iago8PCAvUHJvY1NldCBbIC9QREYg + L1RleHQgL0ltYWdlQiAvSW1hZ2VDIC9JbWFnZUkgXSAvQ29sb3JTcGFjZSA8PCAvQ3My + IDI3IDAgUgovQ3MxIDggMCBSID4+IC9Gb250IDw8IC9GMS4wIDI4IDAgUiA+PiAvWE9i + amVjdCA8PCAvSW02IDE5IDAgUiAvSW04IDIzIDAgUgovSW05IDI1IDAgUiAvSW0xIDkg + MCBSIC9JbTUgMTcgMCBSIC9JbTIgMTEgMCBSIC9JbTMgMTMgMCBSIC9JbTcgMjEgMCBS + IC9JbTQKMTUgMCBSID4+IC9TaGFkaW5nIDw8IC9TaDEgMjkgMCBSIC9TaDQgMzIgMCBS + IC9TaDExIDM5IDAgUiAvU2gxNCA0MiAwIFIgL1NoMTUKNDMgMCBSIC9TaDcgMzUgMCBS + IC9TaDYgMzQgMCBSIC9TaDUgMzMgMCBSIC9TaDkgMzcgMCBSIC9TaDMgMzEgMCBSIC9T + aDEyIDQwIDAgUgovU2gxMyA0MSAwIFIgL1NoOCAzNiAwIFIgL1NoMiAzMCAwIFIgL1No + MTAgMzggMCBSID4+ID4+CmVuZG9iagoyOSAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAw + IFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9E + b21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNDUg + MCBSID4+CmVuZG9iagozMiAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRp + bmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAw + IDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNDYgMCBSID4+CmVu + ZG9iagozOSAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMg + L0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0 + ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNDcgMCBSID4+CmVuZG9iago0MiAw + IG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBb + IDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFs + c2UgZmFsc2UgXSAvRnVuY3Rpb24gNDggMCBSID4+CmVuZG9iago0MyAwIG9iago8PCAv + Q29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAg + MCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2Ug + XSAvRnVuY3Rpb24gNDkgMCBSID4+CmVuZG9iagozNSAwIG9iago8PCAvQ29sb3JTcGFj + ZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4 + MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rp + b24gNTAgMCBSID4+CmVuZG9iagozNCAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIg + L1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21h + aW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNTEgMCBS + ID4+CmVuZG9iagozMyAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdU + eXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEg + XSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNTIgMCBSID4+CmVuZG9i + agozNyAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nv + b3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5k + IFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNTMgMCBSID4+CmVuZG9iagozMSAwIG9i + ago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAg + MCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2Ug + ZmFsc2UgXSAvRnVuY3Rpb24gNTQgMCBSID4+CmVuZG9iago0MCAwIG9iago8PCAvQ29s + b3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAz + Ni45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAv + RnVuY3Rpb24gNTUgMCBSID4+CmVuZG9iago0MSAwIG9iago8PCAvQ29sb3JTcGFjZSA0 + NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBd + IC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24g + NTYgMCBSID4+CmVuZG9iagozNiAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1No + YWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4K + WyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNTcgMCBSID4+ + CmVuZG9iagozMCAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBl + IDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAv + RXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNTggMCBSID4+CmVuZG9iagoz + OCAwIG9iago8PCAvQ29sb3JTcGFjZSA0NCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3Jk + cyBbIDAgMCAwIDAgMCAzNi45NjI4MiBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsg + ZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNTkgMCBSID4+CmVuZG9iagoxOSAwIG9iago8 + PCAvTGVuZ3RoIDIwIDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dp + ZHRoIDE2MiAvSGVpZ2h0IDEwOCAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA2 + MCAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgNjEgMCBSIC9CaXRzUGVyQ29t + cG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg + 9U9tCy+IQGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAwHtgzQgAAQplbmRzdHJlYW0KZW5k + b2JqCjIwIDAgb2JqCjI1MgplbmRvYmoKMjMgMCBvYmoKPDwgL0xlbmd0aCAyNCAwIFIg + L1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAxNjQgL0hlaWdodCAx + MDggL0ludGVycG9sYXRlCnRydWUgL0NvbG9yU3BhY2UgNjAgMCBSIC9JbnRlbnQgL1Bl + cmNlcHR1YWwgL1NNYXNrIDYzIDAgUiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIg + L0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae3QgQAAAADDoPlTH+SFUGHAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDjwMDz5AAAQplbmRzdHJlYW0KZW5kb2JqCjI0IDAgb2JqCjI1 + NAplbmRvYmoKMjUgMCBvYmoKPDwgL0xlbmd0aCAyNiAwIFIgL1R5cGUgL1hPYmplY3Qg + L1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAxNDQ4IC9IZWlnaHQgMTU4IC9JbnRlcnBvbGF0 + ZQp0cnVlIC9Db2xvclNwYWNlIDYwIDAgUiAvSW50ZW50IC9QZXJjZXB0dWFsIC9TTWFz + ayA2NSAwIFIgL0JpdHNQZXJDb21wb25lbnQKOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+ + PgpzdHJlYW0KeAHt0DEBAAAAwqD1T20JT4hAYcCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAgc/AAHmmAAEKZW5kc3RyZWFtCmVuZG9iagoyNiAwIG9iagozMDE3CmVu + ZG9iago5IDAgb2JqCjw8IC9MZW5ndGggMTAgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0 + eXBlIC9JbWFnZSAvV2lkdGggMTQ0OCAvSGVpZ2h0IDYxMCAvSW50ZXJwb2xhdGUKdHJ1 + ZSAvQ29sb3JTcGFjZSA2MCAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgNjcg + MCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3Ry + ZWFtCngB7dABDQAAAMKg909tDjeIQGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBv4G + BnFIAAEKZW5kc3RyZWFtCmVuZG9iagoxMCAwIG9iagoxMTU3OAplbmRvYmoKMTcgMCBv + YmoKPDwgL0xlbmd0aCAxOCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdl + IC9XaWR0aCAxNjIgL0hlaWdodCAxMDggL0ludGVycG9sYXRlCnRydWUgL0NvbG9yU3Bh + Y2UgNjAgMCBSIC9JbnRlbnQgL1BlcmNlcHR1YWwgL1NNYXNrIDY5IDAgUiAvQml0c1Bl + ckNvbXBvbmVudAo4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae3QMQEA + AADCoPVPbQsviEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwMB7YM0IAAEKZW5kc3RyZWFt + CmVuZG9iagoxOCAwIG9iagoyNTIKZW5kb2JqCjExIDAgb2JqCjw8IC9MZW5ndGggMTIg + MCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTM5NCAvSGVp + Z2h0IDI4OCAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA2MCAwIFIgL0ludGVu + dCAvUGVyY2VwdHVhbCAvU01hc2sgNzEgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0Zp + bHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg9U9tCU+IQGHAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgIHPwABhzgAB + CmVuZHN0cmVhbQplbmRvYmoKMTIgMCBvYmoKNTI3NgplbmRvYmoKMTMgMCBvYmoKPDwg + L0xlbmd0aCAxNCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0 + aCAxMzk0IC9IZWlnaHQgMjY0IC9JbnRlcnBvbGF0ZQp0cnVlIC9Db2xvclNwYWNlIDYw + IDAgUiAvSW50ZW50IC9QZXJjZXB0dWFsIC9TTWFzayA3MyAwIFIgL0JpdHNQZXJDb21w + b25lbnQKOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt0DEBAAAAwqD1 + T20IX4hAYcCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDLwDA9mgAAEKZW5kc3RyZWFtCmVuZG9iagox + NCAwIG9iago0ODM4CmVuZG9iagoyMSAwIG9iago8PCAvTGVuZ3RoIDIyIDAgUiAvVHlw + ZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDE2MiAvSGVpZ2h0IDExMCAv + SW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA2MCAwIFIgL0ludGVudCAvUGVyY2Vw + dHVhbCAvU01hc2sgNzUgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxh + dGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg9U9tB2+IQGHAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgw8AwPQ1AABCmVuZHN0cmVhbQplbmRvYmoKMjIgMCBvYmoKMjU3 + CmVuZG9iagoxNSAwIG9iago8PCAvTGVuZ3RoIDE2IDAgUiAvVHlwZSAvWE9iamVjdCAv + U3VidHlwZSAvSW1hZ2UgL1dpZHRoIDE0NDggL0hlaWdodCAyNjQgL0ludGVycG9sYXRl + CnRydWUgL0NvbG9yU3BhY2UgNjAgMCBSIC9JbnRlbnQgL1BlcmNlcHR1YWwgL1NNYXNr + IDc3IDAgUiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+ + CnN0cmVhbQp4Ae3QAQ0AAADCoPdP7ewBESgMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg4AMDgL8AAQplbmRzdHJlYW0KZW5kb2Jq + CjE2IDAgb2JqCjUwMjQKZW5kb2JqCjczIDAgb2JqCjw8IC9MZW5ndGggNzQgMCBSIC9U + eXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTM5NCAvSGVpZ2h0IDI2 + NCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1Bl + ckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae3c2VeU + V5eA8SjzVFBQUFBMBcgMFqVoCYqCGBREcUJJVEQxRAxKghJn1DigRCUOBJxQI8aI4pgY + p6z+1/q8OAQSO7vy9b7p1c+5SVa2a1/8Lp6cdXjxk084CCCAAAIIIIAAAgj8fxCYwkEA + AQQQ+E8F/P3fhNk/9c8TwEEAAQQQ+BcCf/bTqvU/lfddbQMCAgMDgzgIIIAAAv+hQGBg + QMB4e//H6L693JraBgUFB4eEhL49YRwEEEAAAf8E3nUzJCQ42KT6bXU/3tzx4AZYuTWx + DQsPj4iIiIyMjOIggAACCPgrYKpp2hkRHhYWGhpiqhto3XQ/0lwruFZvQ0xtTWujbLbo + mBg7BwEEEEDgXwnExETbbFEmvCa675r7t+SOB9fcb63eRtmi7fbYOIcjPj4hwclBAAEE + EPBTICEhPt7hiIu1m+xGRoRb91zrmvuXn6BZwQ203hOs3tpjHY4EZ2KSy5WckpLKQQAB + BBDwTyAlJTnZ5UpyOuMdcfYY09yw0JCPJNd6UjAX3NCISFtMrCMh0ZWcmprudmdkZnEQ + QAABBPwWyMxwu9NSU0x14x32aJt1zf17cqeY4AaFhFkXXKu3praZWdk5uXn5+QUFhRwE + EEAAAVmgoKAgPz8vNyc7K9OdluJyxseZa+675E58Vxh/UwgJjYiKtjucrlR3ZnZOfkFR + scfj9XpncBBAAAEE/BLweks804uLCvJysjLSU5ISHHYrucFBAZNecq0rbrAV3FiHMzk9 + MzuvsNjjnTnL5ysrLy+fy0EAAQQQkAVML8vm+GaXzvR6igpyp2WkupwmueZhIdj89GzC + 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 + 15OsCmVuZHN0cmVhbQplbmRvYmoKNzQgMCBvYmoKNTgyNAplbmRvYmoKNjMgMCBvYmoK + PDwgL0xlbmd0aCA2NCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9X + aWR0aCAxNjQgL0hlaWdodCAxMDggL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVy + cG9sYXRlIHRydWUgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29k + ZSA+PgpzdHJlYW0KeAHtm/k/W/kax7vMtbVaY99rjURCRG2l1NKxK0JK0YhSW1NbG9Wq + tNSaQVBBG0ttRWnRKr0zc1/zr93Pc05CYpiaqd4br3ufH5zVOW+fz/M8iXO+31On/h8m + psDp3TApMIbqzKHBHP7vAeP2LNrZs2d/QPxjX9A+HGLPwcn/YVIdHgNHZGZm5ubmFvsC + u8zM6Ogu6n8MlOUj6QiOQbO0tLI6x8Z5JnQbVlaWlgAHq44Umn5/TsZe8DF4uL0lsZ23 + tr5w4cLFixdtED8iaIlN7LS2Po8TrBhSBpTx/vv5rhNQz0d454kNWLa2dvYUDrvBbNrZ + 2gKYWEFKoKyglKLfRU5WQQCaIfEIz5roiM3B0cnJ2dnFlcJNF8yGi7Ozk5Ojg729nS2R + kqRWLOcPLOaxVpEhIPSDfAwe6MDm5u7h4el5yQvh7e3tg8CCti55enp4uLu5ujgTKYGS + oNCT5DxmTCKkFISCAIR+JB/wXF3dPcDm7ePr6+fP4QQEcLk8XXC5AQEcjr+fr6+PN1g9 + 3F1dAUqc0NMQ8/SxtCRqgkS4B2jvAD43D0+i8+cEcHmBfIEgKFiICNEFrQcHCQT8QB43 + gONPpJ4ebuB0sN/D1Iv5rZbrCElCWAwFIaAL8REel8cXBAlDRKLLYWHhEZGRkVFRUVcQ + WGAjIjws7LJIFCIMEvB5XAIlThfISZjnzzGes5Z/C6WekKrE+oINAULAS96+/gG8QEGw + UBQaFh4ZdSU65mps3LX4+PiEhIREBBbYuBYXezUm+kpUZHhYqEgYLAjkBfj7el+CnIRp + Q55bWJjpEvPvUury0AyEJKGdAyno5ePH4QYKhCGhYRGRV2Ji4+ITEpOuJyenpKalpWdk + ZGQisEhPS0tNSU6+npSYEB8XG3MlMiIsNEQoCORy/Hy8SE0HOxJzl/Lv5aURoc2P9o7O + rqQgh8cPEorCIqKiY6/FAy4lLSMzKzs7VyzOy5dQ3LzJLPLzxOLc7OyszIy0FKDGX4uN + jooIEwmD+DwOqenq7GiPQv8mSrKZqRSrc9AQhJDQl8PlB4WEhkeCLyEpOTU980aOOE9y + s/BWcfFtqbRUJpOVMYGVUqn0dnHxrcKbkjxxzo3M9NTkpARwRoaHhgTxuRxfiEmUFy/A + cXNUD/X1v2g4EFHMZpSHROji5kkSCoSh4VExsfFJyWkZWTliSUFhcYlUVlZecbeyqqam + tvaeXBf3amtraqoq71aUl8mkJcWFBRJxTlZGWnJSfGxMVHioUEBierq5ECXlJZuWfwmS + fCZCS1SKjtAvgB8sCoOCCddT0rOyxZLC4tulZeV3q2pq5ffr6xubmh48VCCaEbR8+KCp + qbG+/r68tqbqbnlZ6e3iQok4Oys95XoC1AwTBfMD/HSUqB5LooSSR6dkRTSHiBds7Byc + oaE/lw8Jr0DBlPQbufkFRbdldyqqakDX+EDR/KjlcWvr0zalUvlMF1hte9ra+rjlUbPi + QSNIa6oq7shuFxXk595IT4GaVyAmn+sPSmcHOxvWcOpDR4UkRPRsiAibnVw9vPy4AuHl + yOi4xOS0rNz8wmJpGfERHuCeKp+1t7/o7Ozq7kH0MkFr3V2dnS/a258pn7Y+fkSgxFkm + LS7Mz81KS06Mi468LBRw/bw8XJ0Ywy2RlUeG3PUZIjq6uHv5BvCJ8FpSSkZ2XgEA71bf + q2t80NzS2qZs7+js6untU/3cPzAwqEYMMUFrgwMD/T+r+np7ujo72pVtrS3NDxrr7lXf + BWZBXnZGStI1ouQH+Hq5uziSlHq/j1A5OkS0RBLR04fDCw4lwtTMHEnhbVlFtby+SQG+ + Z+2d3T19qv4B9dDwyMjoqEYzNjY+Pj6BwGJsTKMZHR0ZGR5SD/Sr+nq6O9ufgVPRVC+v + rpDdLpTkZKYSZWgwj+PjSVJSG2KT8quQDKK5BXy2dXB2J5tF4dFxIMyVFEnvVNbWEaAS + fL2q/kH18MioZmx84tVrrXZycmpqejempiYntdrXrybGxzSjI8PqwX5VLziVhFlXW3lH + WiTJBWVcdLiIDHd3drBFgaMLUeV8BXIXET67enhzAoVhUbGJKSAsLi2vljc8fESAPX3g + G3mpAZ12cmp65s3s7Ozc/PyCQczPz2Hnm5npqUktSDUvR8DZ10OYjx42yKvLS4tBmZIY + GxUmDOR4e7jC76NB6hEv2MDnS74BAlFETHxyRo6kqLS8Rt6oeNz2vLNH1a8eBh/wiG5u + fmHx7dulpeXllZWVd7rA6vLy0tLbt4sLYAUpQME5rO5X9XQ+b3usaJTXlJcWSXIykuNj + IkSCAN9L8BtJ+XUldxGRim5efrzgy1GxSWk38m5Jy6vvNzU/UXZ09QFwdGziNfhm50C3 + tAyw1dW194gPBkHba6ur796tLC+9XViYmwXn64mxUWD2dXUonzQ33a8ul97Ku5GWFBt1 + OZjn5+VGSflVSENEdy9/+BwNEXMLSu5UyRubW5UvelQDQy81E9qpaeIjPIL7sL6xsbG5 + +RHxSRe0vrmJ3esfCJVAF8E5PaWd0LwcGlD1vFC2NjfKq+6UFORCymj47e/lfhTI0+iL + ZhbnqKDdvTj8kIiYhJSsvKLSu/caFE+IcHBEQwrOzi8Q3xpDt0lgW1ufP3/eNgrs2NrC + oY9ABekacS7Mz5KampFBonyiaLh3t7QoLyslISYihM/RQ5qhTx5WNzpEa+QiIYoi4XO2 + pOROdd2DFmVHj0oNQi0L+G6V+Ahvi0Hb2fny5cs/jQI7dnaI+jNIAQrO1XcsJsQcUat6 + OpQtD+qq75RIsuF3pIiFpMI5HJJxGl8Vbez0iNfTcwulFbUNza3tXaThq8mZ2YW3ywRI + fAwe4AjtF8SvRkF76AhQWVBwMphvF2ZnJl+Rll3trc0NtRXSwtz063pIOxv0yUM7EMlo + bnn+oi3KhVHxpwzxLVmlvKlF2dk7MKyZmJyZW1haYQCh3/Y2i0dsvx0av/7KkDKg0JPB + XFlamJuZnNAMD/R2Klua5JWyW+KMn1hINyfbi+fxsXiw27vJ6Oh6yT8QRv+UKS6SVdUp + Wtu7f1aPTmhn5haXkIOkIPzdgXwGeP86MHToLCjp+ZlcR24uLc7NaCdG1T93t7cq6qpk + ReJMggz0v+TqSMV9iNun8W3Mwsr6R3sXT1+eMCL2emZeUVl1veJpR+/AyNjr6dkFEMJj + VkEA6uU7kM5gJwsKTvgOzC0SE5QLs9Ovx0YGejueKuqry4ryMq/HRgh5vp4u9j9aM27/ + sWz0Tts5efhwheFXkzLERWU19c1tnSr1y4nJNywhScgoqAM0QGFWf9fF/v0Mpx4TYrKU + byYnXqpVnW3N9TVlReKMpKvhQq6Ph5PdYW4zMqLtOLp6cQSXoxPTkIs19Y+UQNS8np5b + XFn9sMEQ7iloDKLH21saH9/D3CHLNz6srizOTb/WAFL5qL4GOZmWGH1ZwPFi3UbZ7BdS + J6MNnPYLFEXFp+YUyqoZxKEx7QxERB6ShkTI3M0IYI9r/5rRaSwmPCdK5CUMn9GODTGQ + 1bLCnNT4KFGgH9y2ObBsdDLaOrl7c5GMyTduSivrFDB6eEw7u7AMEZGHu4RGd96PtX/b + 6GTCpMzcQV5CyuWFWe3YMOxW1FVKb95IRkpyvd2dbFE2fxTy9BnqOzb2qGk4nZSRX1Ih + Vzx9oYKKs4sra+ubnygPWQ2Nbrqf6KBto1/QUaJ8Pm2ur60sAnJI9eKpQl5Rkp+RBLdR + 26yQ+81Gb8SHIGREwUReS825VVbb9KSjT60BInz+uLVNvYax2eCOBwEdvM/gl/RSftne + +gi/AalR93U8aaotu5WTei0SZaMT8uwZoy+SsNrMAjK6kIwxSZkSaVV9y/OeQY32zeLK + +w1k4gEiHkxz2N4/Un5BVm68X1l8o9UM9jxvqa+SSjKTYkhIykgLs31VQ1ajNzq6IRsh + o7i4XK5o6+p/+WpmgUHUZ6LBjQ5jOXy/wS/rs5KBXJh59bK/q00hLy8WM0J6uzmiR5r/ + w9js04zV6I2+/NBoyFha3fikXTU0PjW/tAYVgbjP5sNJ/uzIHiVjOEoHkGtL81PjQ6r2 + J43VpRAyOpTvix5JVXPWqPsw6YiK8eIEhcUm5xRBRmX3AJLx7bv1j0BkMnHvDn/G8efH + 9q7BSrnz+eP6u7dIyYFuJYQsykmODQtCj7S3IUajhEQ6Wuqtjk/Pl1Y1PG5XDU9Mw+nN + re3jQ/z99/2Q21ub71cWpieGVe2PG6qk+enxqBrGbEskpGHRnPnB3ApV7eEbKIpOyioo + q33Y1jUwqp1dWt34hHIho3cv/udCff3o7oVIyX9+2f60sbo0qx0d6Gp7WFtWkJUULQqE + 2bYXrMyNGKlkzl2wc/b0F4RdTc4uKr//6Hmvenx6fhky7hwvooGUDOQOhFyenx5X9z5/ + dL+8KDv5apjA39MZCWlcNGC0OHeR0jE4PC5VXFLZ8LhDNfJqZvHdOmSkZNT/8V+X6Shn + 6K9GnzkQcv3d4syrEVXH44bKEnFqXHgwJeRFJKRhYTOMVDIBwsj4tHxpTVNrJ2M1inqb + ZNRf9CgARzlHfz1yG2avMWZ3tjbVSPPTkJABuqLZz3jexgHdMSQqIV0iQzp2D2om55be + b7BW6655lNsf7RzdBYlxZ2vj/dLcpGawGwkpk6QnRIWgaBzQxY11RHs8jw7uwwu5kph5 + U3ZPoexRj01ROn7+8suujEe7/dHO2oX85ctnSsipMXWPUnFPdjMz8UoIzwddHIyGDZJa + OBjdfXgiYixDd+xRj0+h83w0YDzazY96Fgv5229g/IjuMzVOjPIyYhTxfNxPMqNpe43e + Y/I1Q/3xBPSeE9DDTf6z8NQJ+E4BxhPw3Yy+h5v4d9yT8L/Cifif6wT873rqBDwDOEVm + m/qzlJPxTIp5GG7Sz/ZgNh41m/YzUjCybxVM+VkzK+Shz+zx7ui//8yeEZJ5EWfC7z52 + 3Tbhd0hgZN7QmPS7OL3bpvxO85Qe8mvvhme+5d3wzLe9G2bdxngPFtI037EbQf7dsQrr + 68yIBaOxCovHN1aB3EbdkJKmO+ZjD9LadMfOGECa7hgkHSQGPprwWK5dSEsaWGiiY+IY + yGMeW9hy3GMLWUgq731jNCNMaIwmIJkeZNJjXfF2CZAmPmaYhUQ7Zw030bHXrN+MlNSG + THMMO0mpN9xk5wLQK09AsmlpNKfC61vmVGB8/XHOqTCkNJybwsyd+btzUxjA45ybYkCJ + 6tFPQjK1OT4MJZuXJjxXSk9JianDNME5Z0TJFLkeExVkenP3dJS6MmfnGJrgHEgGU6cm + uc7MhaQyMqm5pCwlMBk5TXdOrhHnGZOd26zDpCoiQemTyCTniO9yMqR6VpbY+Cf+kL8w + Acrgut9tlSEyPazv9vf+/8L/owr8G5LMf4UKZW5kc3RyZWFtCmVuZG9iago2NCAwIG9i + ago0MDQzCmVuZG9iago2OSAwIG9iago8PCAvTGVuZ3RoIDcwIDAgUiAvVHlwZSAvWE9i + amVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDE2MiAvSGVpZ2h0IDEwOCAvQ29sb3JT + cGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVu + dCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2b+VsTaRaFXXrYFKXZ + d1lDAoEQZEeQxWZHIBBBwBAE2UQ2DaBIFGRNAwEkgIZFdhAVUASnu+fpf23OrUogYVAZ + xZnqZ+b+QK1UvZxz702o+r5Tp/4fHFLg9H5wDerMZ4NB/m/h4uYs2NmzZ39C/O1Q0D4c + Ys/Byf9RTh0cg0ZcJiampqZmhwK7TEzo6D7ofwiTpSPZCI0BMze3sDjHxnkmdBsWFubm + wAapjhN6/mhKxljQMXC4uTmRnbe0vHDhwsWLF60QPyNoiU3stLQ8jxMsGE4Gk3H9Rzmu + E09PR3DniQxQ1tY2thR2+8Fs2lhbA5dIwUmYrJiUmj9ASlY94Jkg4QjOktiIzM7ewcHR + 0cmZwkUXzIaTo6ODg72dra2NNXGSnBYs5U8s5AnWjiEetIN0DBzYQObi6ubm7n7JA+Hp + 6emFwIK2Lrm7u7m5ujg7ORInYZKY0JKkPFFI4qPUg3rAg3YkHeCcnV3dQObp5e3t48vj + +fnx+QJd8Pl+fjyer4+3t5cnSN1cnZ2BSZTQ0hDy9Ak0IWp6xHeAZ2sHOhc3d2Lz5fnx + Bf4BQmFgkAgRrAtaDwoUCgP8BXw/ni9xuru5gNLO9gBSL+T3ma3jI/lgLtSDeE5ER3B8 + QYAwUBQsFl8ODQ0Lj4iIiIyMjEJggY3wsNDQy2JxsChQGCDgEyZROkFKgjx/jnGbNfvb + GfV8VBuWF6wID+Jd8vT29RP4C4NE4pDQsIjIqOiYK7FxV+Pj4xMSEhIRWGDjalzslZjo + qMiIsNAQsShI6C/w8/X2vAQpCdKK3DYzM9El5Lcx6vLPBHwkn40dqefh5cPj+wtFwSGh + 4RFRMbFx8QmJSdeSk1NS09LSMzIyMhFYpKelpaYkJ19LSkyIj4uNiYoIDw0JFgn9+Twf + Lw9S0s6GhNxn/JZ8NOKz+tnW3tGZ1OMJAgJF4tDwyOjYq/FAS0nLyMzKzs6VSPLypRQ3 + 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 + ZePDLtXYi7nl15uQkJJQ/4d/XaLjnKG/Gn2+QMTN18tzL8ZUXQ8bK0skqXFhQZSIF5GI + B8XMEFKh+Iki4tPyZTXN7d2MySjkXZJQf8nj3P445+ivRz7D5jeMzd3tzTWy/DQkop+u + VIwJz1vZoRsGRyakS+VIw95hzfTC6tst1mTdFY9z8+Odo7sgEe7tbL1dXZjWDPciEeXS + 9ITIYJSKHXq2oYZoh+fRr70EwVGJmTfkdxXKPvXEDKXhx0+/7Ut4vJsf76x9xN8+faRE + nJlQ9ykVd+U3MhOjggVe6NkgPGiI1LBB6OolEBNhGbphn3pyBr3mvQHh8W593LNYxD/+ + AOF79JuZSSKsKyNCscDL9a9KyGWX0W04XinUDznfbTjfsTn+qXeK898cQMj5b1/0HZvT + 32C5/1/AX+A/Kc7/N3qK8//RnyKbuf1U5K/wZIl5iM3hp3OwGQ+JufyEE4TsmwDuPiVm + Rfzsk3a86flvP2lnRGRemXH2bcW+z5x94wNC5o0Kh9+a6X3m7pvHU3rEr729nfuet7dz + 3/P2lvUZozBYRC6+ATdC/NZRBJubzFgCo1EEyyc1ioB8RrWQilwdiXGAaMnV0SwGiFwd + EaRDxMBDzo6q2kc0p6F9nByZxiCe8Oi+tpMd3cciUkkfGiEZzpkRkkBkug6HR5niTRAQ + OT1Sl0VE82at5uRoZ9ZpRkZqPFwcMU4y6q3m6Kh7ei0JRDYdjWYueHzPzAWMZT+5mQuG + jIazP5i5Kd86+4PBO7nZHwaMqBn9BB9uzaBhGNl85OwsJD0jJaQOknMzuYiRKWw9JOqG + a7PhdIy60mbn7HFuRiEDqVOS/GZmFlLxcGhWJssISEZKrs5sNaI8w9HZwTpIqh0Skz51 + ODjDep+S4dSTsrzGP/FnHHtqkcFVf9gqw8M1qB/21/7/wv9jCvwTR1N/hQplbmRzdHJl + YW0KZW5kb2JqCjcwIDAgb2JqCjQwMzcKZW5kb2JqCjY3IDAgb2JqCjw8IC9MZW5ndGgg + NjggMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTQ0OCAv + SGVpZ2h0IDYxMCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1 + ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh + bQp4Ae3d7ZvPBd7/8VyMwYwxw5hhGMZMLkY0Jmo0JRNSwko1shXJtEqRXTWlVaJV4qyk + ONGF0kEtrbLZlC6O81/7fb60Z7rY892N37f3ncfnxt55bfvueNx4Hp/jM8NedZWHAAEC + BAgQIECAAIH/vwIDPAQIECDw+wr81owX/1YDf3wGeQgQIECg3AI/Rndg0eD/M9c/NHrQ + oMGDB1d4CBAgQOD3FCjKO2hQKdn/OdWXX6SLRldUDBlSWTn08jPMQ4AAAQLlFPihtpWV + Q4ZUVBStvlTqX32rvpTpQaVIF4keNnx4VVVVdXX1CA8BAgQIlFegaG1R3OHDhw0dWllK + 9eVS//LzRynTpUpXFo0uCj2ipmZkbW2dhwABAgTKL1BbO7KmZkRR6+FFqi+X+pcfPy5l + uniXLlV6RM3IurpRo+vrx4xpaGj0ECBAgEA5BRoaxoyprx89qq6I9YhSqYt36uKV+ueh + LmV6cOmLR6nSdaPq6xsax45raho/YUKzhwABAgTKKTBhwvimpnFjGxvq60fVXip16ZX6 + F6EuffQoXqaHVlXX1I6qbxjbNL65eVJLy+TWNg8BAgQIlFegdXJLy6Tm5vFNYxtKpa4e + Xvr2UXqj/skn6gFFpisqh5VepkuVLhrd2jZl6rTp7e0zZlzjIUCAAIEyCcyYMaO9ffq0 + qVPaWotWF6UeXVdTXXU51D/p9KWvHpVDq0aMrKtvbGpuaZ0ytX3GzFkdHZ2dndd5CBAg + QKB8AkVnOzpmzZzRPvXq1pbmpsb6upEjSqEuffm44oW69Do9pJTpUfWN4ye1Tpl+zayO + zjnXd3Xd2N3dfZOHAAECBMokUES2+8auruvndHbMumb6lNZJ40uhLj59DCm+fPy004Mr + hg6vLt6mx05oaZt2TUfn3K4bb5q/oGfhokWLFnsIECBAoEwCRWQXLexZMP+mG7vmdnZc + M63tUqhL36iLF+orOv3D63TxbbrI9NXtszqvn3fzglsXL7lj6bLlK/7gIUCAAIHyCaxY + vmzpHUsW37rg5nnXd85qb2spvVHXVP3shXpA8Tt5Q4ePqC0+ehSZ7pjTdXPPotvvXLHy + 7nt7V6/xECBAgEA5BVb33nv3yhV33r6o5+auOde2l96oR9eO+NkLddHp4ut0zaiGpklt + 7R1zu3sWL12xqnfNA2vXrd/Q1/eIhwABAgTKJNDX17dh/bq1D6zpXbVi6eKe7rlFqCc2 + NVx6ob7yw8eAgRWVpdfpsc2t02bN6e5ZsmxV7x/Xre/buOmJzVue3OohQIAAgTIJPPnk + ls1PbNrYt37dH3vvWrakp3vOzGmtzWPrixfqyoorPlAXv+1RvE7XNTS1TL2ms6tnyfK7 + 16x9eOOmzVu3Pd3/7HYPAQIECJRP4Nn+p7dt3bxp48Nr19y9fMmCrs5rprQ0jSm9UBe/ + 8fG/v5h3qdMjRzc2t07vuP7mxUWm1/Vt2rKtf/uOF3bu2u0hQIAAgfIJ7Nr5wo7t/du2 + bOpbt+buZYtumnvt9NbmxtEjf97pIcOqa+ubJl19Tee8nqV3rVn3yONb+597YdffXt67 + b7+HAAECBMonsG/vy3/b9cJz/Vsff2Tdmrvu6JnXOePqiePqa6uHDbnyfXpw5bARdQ3j + W6bOmnvzohW9a/se//MzO3bt2bv/9QNvvuUhQIAAgfIJvHng9f179+za8cyfN/Wt7V1e + vFDPmtpS/CRxxLDKwVd89xhcObxmVOOE1vaOrgW3r/rjw49t7d+x+5X9bxw8dPjo0WMe + AgQIECiTwNGjRw8fOvjG/ld27+jf+tjDa+5acssNHe2tExpH1Qz/WaeraorP020zOm+8 + 9c7etX/aXGR672tvHjryznvHP/jQQ4AAAQJlEvjgg+PvvXPk0Juv7d294+nNf1p779LS + h4+24gN1TdVPOl38usfI+nGTpsyce9OiFWvWb/rL9hdfee3g4WPvf/jRyVMfewgQIECg + TAKnTp386MP3jx0++NorL27/y6b19y1fVPxqXukDdekHiVd897jU6eK38mZdP3/Jyvv7 + Nve/sGf/m4ffOX7i1Cenz3zqIUCAAIEyCZw5c/qTUyeOv3P4zf17nu/f3Hf/ytvmFx+o + JzX9SqeLX/domVZ8nr7j7rUbt27ftfeNQ8eOf/TxmU/Pfn7OQ4AAAQJlEvj887Ofnvn4 + o+PHDr2x98XtWzc+uOr24gN18YPE+tqfv09X145pmjy9o6tn6T0Pbdr217/tP3jk/SLT + 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 + gWXLli1devuSxQt75nd3zZk9s5TpxvraEcXr9JU/Rryq9OGj+EJdfPkoQj2xbWr7rNnX + Xd/VfdP8W3p6bl3oIUCAAIHyCdza03PL/Ju6u66/rmNm+9TWUqaLrx7F1+krP3uUOj2o + YsjQ4dWXQt08+eqp7TOvnd05Z+4NXV3z5t3oIUCAAIEyCcybN6+r64a5czpnX1tU+uqW + 5kuZrh5+6XX6x88epU6XXqiHVpVC3TBuwsTJbVOmtc+YOevajo7Zszs9BAgQIFAmgdmz + Z3d0XDtr5oz2aVPaJk+cMK5hdF1NkenS6/QVn6eL3/soXqhLoS7eqGtHjWlsmtA8aXJr + 25SpU6dNb/cQIECAQDkFpk+bOnVKW2vLpOYJTY1jRtX+kOkrf4pY+vW84oV6UEUp1FU1 + I+vqxzSObRo/oXnipJaWyZNbPQQIECBQPoHJk1taJk1snjC+aWzjmNF1I0dUld6mix8i + /vR1+sdQDyu+fdTWjaqvb2hsHDuuqalpvIcAAQIEyilQlHbc2MbGhvr6UXUja6qrhpU+ + evwy01cNKL1RD64YUjm0VOripbpu1Oj64hnjIUCAAIHyCpRiO3pUXRHpy5UecjnTV/4U + sfTh49+hvlTq4VVV1SNqilqPrK2trfMQIECAQPkEis6OLApdM6K6qmp48S49pOI/ZPpy + qEuv1EWpK4cOHTasiPWlp9pDgAABAuUT+KG1w4cNG1pE+odKDxzwi7fp/32lHjiolOoi + 1kWti1x7CBAgQOB3ECiKW0r05Vfp4ieIv17pyx8/is/UxYfqItbFU/pHPAQIECDwOwiU + olu0t5TgAf9HpS+9VBcfqks/U/QQIECAwO8uUArw5RT/xv8s/QMeAgQIEPgdBH5jl/3X + CBAgQIAAAQIECBAgQIAAAQIECBAgQIDA7yfw/wCvW3pbCmVuZHN0cmVhbQplbmRvYmoK + NjggMCBvYmoKOTMxMwplbmRvYmoKNjUgMCBvYmoKPDwgL0xlbmd0aCA2NiAwIFIgL1R5 + cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAxNDQ4IC9IZWlnaHQgMTU4 + IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9CaXRzUGVy + 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 + tcFojom1xztdmxLdSckez+YUBgEEEEBATYHNHk9ykjtxk8sRb4+NMRvfZVpsp1d9iii+ + R71xZfOhvKijjCZzjNVmj3M4nAkul2sTgwACCCCgpoAobYLT4Yiz26wx5mij+AhRvKaV + rcfaTisParGiFh8mKqWONpktVmuszS4mjkEAAQQQUFNASa0t1mq1mE2i0mLnEaZTMr3u + Oa28qIOUHbUuVCm1SLXSajEWSwyDAAIIIKCmgMWi5FY0WkRaqXSoTtlNf5jp96EWT2pR + 6vCISL2ItcFgMDIIIIAAAmoLiNqKROsjI8JXKq08pj+W6ZUdtXhSK9uPUKXVotZiIhkE + EEAAAXUFlNgq0Q0LFU/pkOCVSq/bTf/++zEpyw8l1aLVyoQyCCCAAAJ/hMC76Ia8i/QH + nyD+u9Irf7JRfPPj3QSvTAiDAAIIIKCuwLvcvm+vqPDaLH/8r8Q/tjLvfxV/QAABBBBQ + V+C37H48yvxdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAYL3A/wGhKsgi + CmVuZHN0cmVhbQplbmRvYmoKNjYgMCBvYmoKNDcwMAplbmRvYmoKNzEgMCBvYmoKPDwg + L0xlbmd0aCA3MiAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0 + aCAxMzk0IC9IZWlnaHQgMjg4IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBv + bGF0ZSB0cnVlIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUg + Pj4Kc3RyZWFtCngB7dzZU9RXt4DhKPNMQ0NDM4M0g2DTijaiIIqiIAZRQZwQxRAxKBEl + 4hAcgqIkihMRoxJNMCoG5xCn1PnXzv6hn2Lil9VJrYtTdd59k4tlrYvn4s2u3d188gkH + AQQQQAABBBBAAIH/DwLTOAgggAAC/1bA1/9NmP3T3x8/DgIIIIDAPxB430+r1n9X3re1 + 9fPz9/cP4CCAAAII/EsBf38/v8n2/tfovrncmtoGBAQGBgUFvzkhHAQQQAAB3wTedjMo + KDDQpPpNdT/e3Mng+lm5NbENCQ0NCwsLDw+P4CCAAAII+CpgqmnaGRYaEhIcHGSq62/d + dD/SXCu4Vm+DTG1NayMiI6Oio20cBBBAAIF/JBAdHRUZGWHCa6L7trl/Se5kcM391upt + RGSUzRYTa7fHxcXHOzgIIIAAAj4KxMfHxdntsTE2k93wsFDrnmtdc//0CZoVXH/rPcHq + rS3Gbo93JCQ6nUnJySkcBBBAAAHfBJKTk5KczkSHI84ea4s2zQ0JDvpIcq0nBXPBDQ4L + j4yOsccnOJNSUtLS0zMyszgIIIAAAj4LZGakp6emJJvqxtltUZHWNfevyZ1mghsQFGJd + cK3emtpmZmW7cnLz8vLzZ3IQQAABBGSB/Pz8vLzcHFd2VmZ6arLTERdrrrlvkzv1XWHy + TSEoOCwiymZ3OFPSM7NdefkFhW63x+OZzUEAAQQQ8EnA4ylyzyosyM91ZWWkJSfG221W + cgMD/D54ybWuuIFWcGPsjqS0zOzcmYVuz5y5Xu/80tLSBRwEEEAAAVnA9HJ+iXde8RyP + uyA/Z0ZGitNhkmseFgLNp2dTLrnTzMdmwaHh5oabkJyelTPT7Sn2zl9QtqhiSWVl5VIO + AggggIAsYHq5ZHFFeVlpybw5RYX5rqzUN8kNCfrgkvv2imvecE1wZ+QVeuaWLFy0eGnV + iuqVtas+5SCAAAII+CKwqra2pnp5VWVFeam3uKggx0pubHSEdcmdcsd9c8WNiDZPCia4 + 7jnehRWVy2tW1a1Z19DYxEEAAQQQ8E1gfWPD2vq62uqqykWlXs9kcuNjosImL7nv/qiN + Ka55xY2MiXemZeW5i0srllavqm9o2rSluWV7a+sODgIIIICALNDa2rqtpXnzxsa1dbXL + K8tK5hTmZKYkWk+5wVOfFaZNDwgKNVfchJTMnMI5pRVVK+sbNjS3tLa1f9Gxe08nBwEE + EEBAFtizZ3fHrp1trVs3N62rq15aXuIpcKUnO2Kjwj54VjDfVDBXXFu8M9010+OtqKpd + 07RlW1t7R2fX/u4DPRwEEEAAAZ8EDnTv6+rs2LmjZVPj6prKsnnuvKzURLt5yQ0KeP+Q + O1ncqFhHSmaue+7CpSa4za3tu7u6ew5/3XvsOAcBBBBAwCeBY71HDh3Y39nx+fbNjaur + l5TOMZfcpHjzrPBhcQNDwqPtzrQZMz0lFdWrm5p37OrsPvj1sW9O9p8Z4CCAAAII+CJw + 5nR/34mjhw907Wlv3dzwaVW5dclNmXxWCPB794Xc6f5BIRG2+KR0V2HxwspVDVtad335 + 1eFjff0DZwfPX+QggAACCPgicGHw3HcDp77pPbi/c+e2TWtqFpd6ZmZbzwqTH53958sK + prihkTGO5Mw8t3fR8voN23Z2dh8+fmrg3IXLQ8PDVzkIIIAAArLA8PCVoYvnz57pO3po + /+62rY2fLltYXOhKd8bZwq0vK0wpblikecbNyvfMX1zTsOWzDhPc/u/OX77yw/WRH29y + EEAAAQRkgR9HRq5d/f7i4MDJowe7drVurF+xyOvOzUiOt0WEBE4prvmqQpQ9MS27oHhB + 5aqmlva9PUdPfXdh6OqNmz+N3v6FgwACCCAgC9we/fnWyPXhy4MDfb1f7WlrXlezeL7H + esiNiQw1vzp7d8edLK75bljh3LKquo2tHd1f9w2cH/ph5NbtO/fG7nMQQAABBGSBsbG7 + d0Zv3Ri+dO708UNd7S3raytLZ8+0Pjr7S3HNVxXSc8wz7oo1W9o6e471n7t8deSnX8bu + jz98xEEAAQQQkAUePhi/f/e2Se7F705+3d3RuqHOPOQWZKcmmOIGfXDHDY+Oc2bkur0V + 1Wu3tncd+mbgwpUbJrjjjx4/5SCAAAII+CLw5PHDX++N3ro2NHj6WE/nZ5vqq8rmFrrS + Eu3mC7kfFtcWl5SZVzR/8cqGll37j5w8e+mHm7fvjT96+tvE7xwEEEAAAVlgYuLZk4e/ + 3hkdGb4wcOLQ3s+3rFlRPm+WKz3RHvWX4sYnZ+V5SitrG7d3dPf2nxu6/tOdX01wf3/B + QQABBBDwReD5xLPHD8d+ufnDpbN9h7vam9dWV3jd5uthHy9uvlXc9a27Dxw7M3hlZPTe + +GMT3FevOQgggAACssCrly8mnj769Y55Vjh36uv97VvXWcXN+bvirmpq3dNzfODC8I+3 + xx4+nTDB/YODAAIIICALvH798vlvT8bv/Xzj+8H+3u5dLQ01HynuNL8A8yNf8wOImbMX + LP20aUenKe7Fqzd/uf/o6e8vXv/xPxwEEEAAAVngj9evzCX3wdjoyBWruF+0NKxcXFKU + m+GMs37m+58/HkZxZUn+BQIIICAJUFxJiDkCCCCgJUBxtSTZgwACCEgCFFcSYo4AAgho + CVBcLUn2IIAAApIAxZWEmCOAAAJaAhRXS5I9CCCAgCRAcSUh5ggggICWAMXVkmQPAggg + IAlQXEmIOQIIIKAlQHG1JNmDAAIISAIUVxJijgACCGgJUFwtSfYggAACkgDFlYSYI4AA + AloCFFdLkj0IIICAJEBxJSHmCCCAgJYAxdWSZA8CCCAgCVBcSYg5AgggoCVAcbUk2YMA + AghIAhRXEmKOAAIIaAlQXC1J9iCAAAKSAMWVhJgjgAACWgIUV0uSPQgggIAkQHElIeYI + IICAlgDF1ZJkDwIIICAJUFxJiDkCCCCgJUBxtSTZgwACCEgCFFcSYo4AAghoCVBcLUn2 + IIAAApIAxZWEmCOAAAJaAhRXS5I9CCCAgCRAcSUh5ggggICWAMXVkmQPAgggIAlQXEmI + OQIIIKAlQHG1JNmDAAIISAIUVxJijgACCGgJUFwtSfYggAACkgDFlYSYI4AAAloCFFdL + kj0IIICAJEBxJSHmCCCAgJYAxdWSZA8CCCAgCVBcSYg5AgggoCVAcbUk2YMAAghIAhRX + EmKOAAIIaAlQXC1J9iCAAAKSAMWVhJgjgAACWgIUV0uSPQgggIAkQHElIeYIIICAlgDF + 1ZJkDwIIICAJUFxJiDkCCCCgJUBxtSTZgwACCEgCFFcSYo4AAghoCVBcLUn2IIAAApIA + xZWEmCOAAAJaAhRXS5I9CCCAgCRAcSUh5ggggICWAMXVkmQPAgggIAlQXEmIOQIIIKAl + QHG1JNmDAAIISAIUVxJijgACCGgJUFwtSfYggAACkgDFlYSYI4AAAloCFFdLkj0IIICA + JEBxJSHmCCCAgJYAxdWSZA8CCCAgCVBcSYg5AgggoCVAcbUk2YMAAghIAhRXEmKOAAII + aAlQXC1J9iCAAAKSAMWVhJgjgAACWgIUV0uSPQgggIAkQHElIeYIIICAlgDF1ZJkDwII + ICAJUFxJiDkCCCCgJUBxtSTZgwACCEgCFFcSYo4AAghoCVBcLUn2IIAAApIAxZWEmCOA + AAJaAhRXS5I9CCCAgCRAcSUh5ggggICWAMXVkmQPAgggIAlQXEmIOQIIIKAlQHG1JNmD + AAIISAIUVxJijgACCGgJUFwtSfYggAACkgDFlYSYI4AAAloCFFdLkj0IIICAJEBxJSHm + CCCAgJYAxdWSZA8CCCAgCVBcSYg5AgggoCVAcbUk2YMAAghIAhRXEmKOAAIIaAlQXC1J + 9iCAAAKSAMWVhJgjgAACWgIUV0uSPQgggIAkQHElIeYIIICAlgDF1ZJkDwIIICAJUFxJ + iDkCCCCgJUBxtSTZgwACCEgCFFcSYo4AAghoCVBcLUn2IIAAApIAxZWEmCOAAAJaAhRX + S5I9CCCAgCRAcSUh5ggggICWAMXVkmQPAgggIAlQXEmIOQIIIKAlQHG1JNmDAAIISAIU + VxJijgACCGgJUFwtSfYggAACkgDFlYSYI4AAAloCFFdLkj0IIICAJEBxJSHmCCCAgJYA + xdWSZA8CCCAgCVBcSYg5AgggoCVAcbUk2YMAAghIAhRXEmKOAAIIaAlQXC1J9iCAAAKS + AMWVhJgjgAACWgIUV0uSPQgggIAkQHElIeYIIICAlgDF1ZJkDwIIICAJUFxJiDkCCCCg + JUBxtSTZgwACCEgCFFcSYo4AAghoCVBcLUn2IIAAApIAxZWEmCOAAAJaAhRXS5I9CCCA + gCRAcSUh5ggggICWAMXVkmQPAgggIAlQXEmIOQIIIKAlQHG1JNmDAAIISAIUVxJijgAC + CGgJUFwtSfYggAACkgDFlYSYI4AAAloCFFdLkj0IIICAJEBxJSHmCCCAgJYAxdWSZA8C + CCAgCVBcSYg5AgggoCVAcbUk2YMAAghIAhRXEmKOAAIIaAlQXC1J9iCAAAKSAMWVhJgj + gAACWgIUV0uSPQgggIAkQHElIeYIIICAlgDF1ZJkDwIIICAJUFxJiDkCCCCgJUBxtSTZ + gwACCEgCFFcSYo4AAghoCVBcLUn2IIAAApIAxZWEmCOAAAJaAhRXS5I9CCCAgCRAcSUh + 5ggggICWAMXVkmQPAgggIAlQXEmIOQIIIKAlQHG1JNmDAAIISAIUVxJijgACCGgJUFwt + SfYggAACkgDFlYSYI4AAAloCFFdLkj0IIICAJEBxJSHmCCCAgJYAxdWSZA8CCCAgCVBc + SYg5AgggoCVAcbUk2YMAAghIAhRXEmKOAAIIaAlQXC1J9iCAAAKSAMWVhJgjgAACWgIU + V0uSPQgggIAkQHElIeYIIICAlgDF1ZJkDwIIICAJUFxJiDkCCCCgJUBxtSTZgwACCEgC + FFcSYo4AAghoCVBcLUn2IIAAApIAxZWEmCOAAAJaAhRXS5I9CCCAgCRAcSUh5ggggICW + AMXVkmQPAgggIAlQXEmIOQIIIKAlQHG1JNmDAAIISAIUVxJijgACCGgJUFwtSfYggAAC + kgDFlYSYI4AAAloCFFdLkj0IIICAJEBxJSHmCCCAgJYAxdWSZA8CCCAgCVBcSYg5Aggg + oCVAcbUk2YMAAghIAhRXEmKOAAIIaAlQXC1J9iCAAAKSAMWVhJgjgAACWgIUV0uSPQgg + gIAkQHElIeYIIICAlgDF1ZJkDwIIICAJUFxJiDkCCCCgJUBxtSTZgwACCEgCFFcSYo4A + AghoCVBcLUn2IIAAApIAxZWEmCOAAAJaAhRXS5I9CCCAgCRAcSUh5ggggICWAMXVkmQP + AgggIAlQXEmIOQIIIKAlQHG1JNmDAAIISAIUVxJijgACCGgJUFwtSfYggAACkgDFlYSY + I4AAAloCFFdLkj0IIICAJEBxJSHmCCCAgJYAxdWSZA8CCCAgCVBcSYg5AgggoCVAcbUk + 2YMAAghIAhRXEmKOAAIIaAlQXC1J9iCAAAKSAMWVhJgjgAACWgIUV0uSPQgggIAkQHEl + IeYIIICAlgDF1ZJkDwIIICAJUFxJiDkCCCCgJeBjcacHBIfb4pOz8j2llauaWvf0HB+4 + MPzj7bGHTydevHr9BwcBBBBAQBZ4/frl89+ejN/7+cb3g/293btaGmoqvO6cdKc9KizI + f/onb89Hint+eGR07MGTiecvX3MQQAABBHwRePXi92ePx+/+dH3I1+LWrm/d/dXR04NX + RkbvjT96NvHi5SsOAggggIAs8PLF84mnj+7fuXVt6OzJI/vat66r/ps7bmaep3RJbeO2 + ju7e/nND127duf/w6W8Tz19wEEAAAQRkgee/Tzx7/GDs9o9XL33Xd7hrZ/Pa6kVet+uj + rwpxSZl5RSWLaxpadu070vfdpas/jt799dGTZxMcBBBAAAFfBH57+vjB/Ts/37hyYeD4 + wS/bNq9ZUT5vlis98S/vuGHRcc6MXLe3onpt8869h06cOf/99Vu3740/ePTkKQcBBBBA + QBZ48vjR+P27ozd/uHyu/+iBzh2bVleVFRdmpyXYI//0yVlYtN2ZnjNrXvny+s1tnQeO + njp7aXjk1u27Y+MPHnIQQAABBGSBB+O/jt0ZvXn9+wvf9h3Z37G96dNlC4sLZqQmxEaG + fvhdhbAoe2K6q6C4rKpuY2vH/sMnzgxevnrj1ugvd+6NcRBAAAEEZIF7d+/c/unmteGL + Z/uPH9zb3tJYW1k6e2ZWisMUN3DKt8P8g8MiYxNSswvmlFbWrm/Z+WVPb9/A4OXhayO3 + fhrlIIAAAgj4IvDzrZs3rl25eO7MN0e6d7dtWVtdUeLJy0xxxESGfFDcoLDIGEdKVp6n + xDzkbt7Rse/gsZMDgxeHhq9dH+EggAACCPgicOPaD8NDF86e6evt2du+fcPq5eXz3LkZ + SfG2iJBAv/e/gPAPCo20OZIzc93zyqtWN7V83tl9+FjfmbODFy8PXRnmIIAAAgjIAle+ + H7p0YfDb/m96e7o6PmtuWLV0QXGB9eUwW3hwwNTiBoZE2OKc1kPugsradZu2t3d2H+w9 + cfL0t2cHB89zEEAAAQRkgcHBc2cH+vuOH+np2t3WsqHeelTIn5GaaI8O+6C4foHB4dH2 + xFTzlxW8i1bUNW5pbd/TdeBw7/G+k/39pzkIIIAAArJAf/+pvhPHvj7Uvbfj822b1tUu + K5vrzs1MNs+4VnGnvfu7Cn4B1kdnjpSMnFnmkltTv37L9raOzn1f9Rw+0nv0GAcBBBBA + QBY42tt75FBPd9eeXZ+1bGqoW1Exf7b1qBBvM18OC5j+vrjmT9mYh9w4Z9qM/CJv+bKV + qxs3bW39fNfuzq593d1fcRBAAAEEZIHu7u59ezs72tu2N29YV1ddubDYnZeVkmCPNh+c + +b8v7rTpAUEh5lkhITnDVTB7/qKl1XVrmzY1b9vRtrP9iw4OAggggIAvAl/sav+8rbWl + eWPjmlUrKsu8RfnZ6Unx1qPCh8X1DzTPCuaSm5qVWzinpGxJ1cq6NQ1NGzc3b23ZxkEA + AQQQ8EWgpWXrlk0b1q+rX1W9rGKh11PgyjBXXFtEqPXB2btXhWnT/QKCQsOjYh2TyfXM + Ky1fsmzFylV19WvXNTQ0chBAAAEEZIGGhoZ1a+rramuWL60omz+3yApuYpwtMizEPOO+ + +zruJ1ZxJy+5doczLSu3oGiOt7SsYsnSquXV1StX1nIQQAABBGSBlStrqlcsX1a5eNHC + +fNmu/NdmSnO+Ngo64o75Rn3E5Ncf/OSa94VTHJTs1x5hUWz53pLF5SVV1QsXsJBAAEE + EPBFYHFFxaLystL53mKPuyAvO8MKbnREWHDQ1EcFq7jWJTc0fDK5KRkzXHkFs4o8c4rn + eb0lJfM5CCCAAAKyQElJiXfe3OI5HnfhzDxXVnpKYnzsmzcF/+nvn3Gt4lqX3OAwK7nx + icmpGVnZOXn5BYWz3O6iIg8HAQQQQEAWKCoqcrtnFRTk5bqyTW+TEuJio80jbnDgh1fc + yUuulVxzy42OiXM4k1PSMjKzsl2unNw8DgIIIICAbwK5uTku14yszPS0lKREhz3GBDfU + BPfDK+7kJdcvwEpuWGSUzR7nSHAmJaekpqWnZ2RkchBAAAEEfBHIyMhIT09LTUl2OhPi + 7eZFIWLyhus/5athb37qa94VJpMbYl4Wom0xdnu8w5GQ6HQ6kzgIIIAAAj4KmGgmJjgc + cfbYGFuUueBaTwomuFNfca3mTrOS6x8QGBRsNddcdG0xsXZz4jgIIIAAAj4LmGya2Nqi + o8z91lxwgwI+Ftx3yZ1sbmhYWHhEpOluVHR0tI2DAAIIIOCLgClmdFSUiWdEeJh1vw16 + c8GdPu3d783ePCq8veVa11zT3KDg4JAQk93JE85BAAEEEPBJ4E01Q0NDQoKt3Jr7rXlR + +POTwtvqWi8L0/2s6Jrsmu6a8HIQQAABBP6ZgIlnoKltgL/1gGt6+9cL7rvmWtE11fXz + N8cqLwcBBBBA4J8JWP2cvNxauf2vvX2TXfMPJrNrpZeDAAIIIPDvBKyWvr3M+vQf699z + EEAAAQT+kYBPfeUfIYAAAggggAACCCCAAAIIIIAAAggggAACCPzfFPhfFA5tRwplbmRz + dHJlYW0KZW5kb2JqCjcyIDAgb2JqCjYxMDUKZW5kb2JqCjYxIDAgb2JqCjw8IC9MZW5n + dGggNjIgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMTYy + IC9IZWlnaHQgMTA4IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0 + cnVlIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3Ry + 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 + j3Pz452juyAR7u5sv1lbmtWM9iMR5dKMxKgQlIo9erahhmiHFujX3oKQ6KSs6/I7CuWA + emqO0vDj51/3JDzezY931h7ir58/UiLOTakHlIo78utZSdEhAm/0bBDuN0Rq2CB08xaI + ibAc3XBAPT2HXvPegPB4tz7uWSzi77+D8D36zdw0EdaXE6FY4O32dyXkssvoNhyvFOqH + nO82nO/YHP/UO8X5bw4g5Py3L/qOzelvsNz/L+Bv8J8U5/8bPcX5/+hPkc3cfiryd3iy + xDzE5vDTOdiMh8RcfsIJQvZNAHefErMiHvmkHW96Tv5Ju/ZPPWlnRGRemXH2bcWez5x9 + 4wNC5o0Kh9+a6X3m7pvHU3rEr729XfiWt7cL3/L2lvUZozBYRC6+ATdCPMlRBKsnNYqA + fEa1kIpcHYmxj2jJ1dEsBohcHRGkQ8TAQ86OqtpDNKOhfZwcmcYgnvDovvaTHd3HIlJJ + HxghGXGSIyQjvmWEJBCZrsPhUaZ4EwRETo/UZRHRvFmrOTnamXWakZEaDxdHjJOMeqs5 + OuqeXksCkU1Ho5kLnt8ycwFj2U9u5oIho+HsD2Zuyl+d/cHgndzsDwNG1Ix+gg+3ZtAw + jGw+cnYWkp6RElIHybmZXMTIFLYeEnXDtdlwOkZdabNz9jg3o5CB1ClJfjMzC6l4ODQr + k2UEJCMlV2e2GlGe4ejsYB0k1Q6JSZ86HJxhvUfJcOpJWV7jn/gzjj21yOCq322V4eEa + 1Hf7a/9/4f8xBf4F0kB/iQplbmRzdHJlYW0KZW5kb2JqCjYyIDAgb2JqCjQwNDEKZW5k + b2JqCjc1IDAgb2JqCjw8IC9MZW5ndGggNzYgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0 + eXBlIC9JbWFnZSAvV2lkdGggMTYyIC9IZWlnaHQgMTEwIC9Db2xvclNwYWNlCi9EZXZp + Y2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRl + ciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7Zv5O1t5+8e7zEMpaux7rZEQImorpUjH + rggpRSNKbVVbG6UqLbVmEFTQxlJbUW1pq9VnZp5r/rXv+z4nIfGlNa0+z5nrmvsHZ3XO + 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 + LSv5YpjAFz0bhHsNkRo2CD18BWIiLEc37NdMzaLXvDciPNqtj3oWi/jHHyB8j34zO0WE + 9eVEKBb4evxdCbnsMroNxyuF+iHnuw3nOzbHP/VOcP6bAwg5/+2LvmNz+hss9/8L+Bv8 + J8X5/0ZPcP4/+hNkM7efivwdniwxD7E5/HQONuMhMZefcIKQfRPA3afErIiHPmnHm57/ + 9ZN2RkTmlRln31bs+szZNz4gZN6ocPitmcFn7r55PGFA/Nrb2/nveXs7/z1vb1mfMQqD + ReTiG3ATxG8dRbC5yYwlMBlFsHJcowjIZ1QLqcjVkRh7iNZcHc1ihMjVEUF6RAw85Oyo + ql1ECxrax8mRaQziMY/uazve0X0sIpX0vhGSUZwZIQlEputweJQp3gQBkdMjdVlENG/W + ak6OdmadZmSkxsPFEeMko8Fqjo66p9eSQGTT0WTmgvf3zFzAWPbjm7lgzGg8+4OZm/Kt + sz8YvOOb/WHEiJoxTPDh1gwahpHNR87OQjIwUkLqITk3k4sYmcI2QKJuuDYbTs+oL212 + zh7nZhQykHolyW9mZiEVD4dmZbKMgGSk5OrMVhPKUxydHayHpNohMelTh4MzrHcpGU4D + Kctr+hN/xpGnFhld9YetMjxcg/phf+0/F/5HgX8U+IsK/B+1Fn+FCmVuZHN0cmVhbQpl + bmRvYmoKNzYgMCBvYmoKNDA0MwplbmRvYmoKNzcgMCBvYmoKPDwgL0xlbmd0aCA3OCAw + IFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAxNDQ4IC9IZWln + aHQgMjY0IC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9C + aXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB + 7d3pV5RXtoBxlXkqKCgoLEAmBQpBKEVLcADFoAjGESUxELSMEUUxKkpEEROVSKs4EcAB + hwZtMcQp0Taa1f/aPS/aEdS+uz/c130/POdDVrK2K9v1+/Css04VOmUKBwEEEEAAAQQQ + QAABBP5vBaZyEEAAAQQ+rcB/m3Hzu5r27gRxEEAAAQTsFngX3Wmmwf9rrt82OigoODg4 + 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 + in0cBBBAAAH7BIqLiuYUFsz25uZkZ6anTk8yt2mTaes6PeF52vw51OaTRCvU1o06IdHt + SU3LyMyeOSsnNy/Py0EAAQQQsFMgLy83Z9bM7MyMtFSPOzEh7m2mJ36KaP11AeZCHRRi + hTrKEet0Jbqne1LS0tIzMjIzszgIIIAAAnYKZGZmZKSnpaV4kt2JLmesI8q6TZsPESdf + p9+FOsK8fcQ5412JSe7k6R6PJyUlJZWDAAIIIGCTgIlsimnt9GR3UqIr3mku01ERH8/0 + lKnWjTo4JNS6Ukc7TKqd8QkulysxMTGJgwACCCBgn4DprKltQrzTRNpU2lymQ0OCrdv0 + uy9PW88e5rwNtVXqCJPqmBiHIzY2Ls4Em4MAAgggYKOAKW1srMMRE2Mibe7SoSH/IdNv + Qm1dqa1Sh5tWR0ZZJ5qDAAIIIGCvwHhtI02jw/+q9Edu039dqacFWakOCQ0NDbNyzUEA + AQQQ+BQCYWGh5iJtXaXNk8d/qvSbxw/zTG0eqk2sg61ccxBAAAEEPo2Aqa5pr5XgqR++ + TI/fpd/9w/wK6xdyEEAAAQQ+uYDc6He1Nv9mfjkHAQQQQODTCEzqL/+BAAIIIIAAAggg + gAACCCCAAAIIIIAAAggggMD/A4H/AeBQ5V4KZW5kc3RyZWFtCmVuZG9iago3OCAwIG9i + ago1ODQyCmVuZG9iago3OSAwIG9iago8PCAvTGVuZ3RoIDgwIDAgUiAvTiAzIC9BbHRl + cm5hdGUgL0RldmljZVJHQiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGF + VM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi + 0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWA + BOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoH + hP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhT + zSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHC + 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 + fwf/GP8Rv0FFRyVEpU5lReVDlUCVRVVG1Ub1iGqaaoNATxAhaBLsCUGEw4R8Qi2hj/CG + 8I2ampqfWo3ahjqQOpk6n/o69V3qSeofRAaiOFGf6EaMJWYSK4idxJfEbyQSSZikQ3Il + xZAySZWkHtIYaY2GkUaaxpTGh+YQTSFNE81jmkVaKlohWl3avbSJtHm0jbSPaBfoqOiE + 6fTpKHRJdIV0rXTP6VboGenl6K3oQ+lP0l+jH6SfYcAxCDMYMvgwpDBcZuhheM+IYhRg + 1Gf0ZjzKWMbYxzjNhGUSYTJlCmLKYKphesi0xMzArMjsyBzPXMjczjzBgmIRZjFlCWHJ + YmlgGWVZZ+Vm1WX1ZU1jrWV9zLrKxsmmw+bLls5Wx/aMbZ2dzG7IHsyezd7M/pYDzSHO + YcOxj6OYo49jgZOJU4PTmzOds4HzFRfMJc5ly7Wf6zLXfa4Vbh5uY+4I7vPcPdwLPCw8 + OjxBPGd57vDM8jLyavEG8p7l7eCdIzOTdckh5HxyL3mJj4vPhC+Wr4TvId8Gvwi/A/8R + /jr+twIEAVUBP4GzAt0CS4K8ghaCBwSrBF8JUQmpCgUInRMaEFoVFhF2Ej4u3Cw8I8Im + YiqSKFIl8kaUJKotGilaKvpUDCumKhYsdkFsWBwWVxIPEC8UfyQBSyhLBEpckBiRxEiq + SYZJlko+lyJK6UrFSVVJTUqzSO+WPiLdLL0oIyjjKpMtMyDzS1ZJNkS2TPa1HIOcmdwR + uTa5r/Li8t7yhfJPFUgKRgqHFFoUvihKKPoqFiu+UGJUslA6rtSt9FNZRTlKuVZ5VkVQ + xVOlSOW5KpOqtepJ1btqGDU9tUNqt9V+qCurx6g3qH/WkNII1rimMbNLZJfvrrJd7zX5 + NSmaJZoTWmQtT61LWhPafNoU7VLtdzoCOj465TofdcV0g3SrdRf1ZPWi9G7qreqr6x/U + 7zRAGRgbpBs8NGQwdDAsMBwz4jfyN6oyWjJWMt5v3GmCMTE3yTZ5bspt6m1aabpkpmJ2 + 0KzXnGhuZ15g/m63+O6o3W0WsIWZxRmLN5ZClmGWzVbAytTqjNVbaxHrSOtbNlgba5tC + mw+2crYHbAfsGO087K7ZfbfXs8+yf+0g6hDr0O1I6+jmWOm46mTglOM04SzjfNB5yIXD + JdClxRXn6uha7rqyx3BP7p5pNyW3VLdRdxH3ePfBvRx7Q/a2e9B6UDwaPTGeTp7XPDcp + VpRSyoqXqVeR15K3vvc573kfHZ+zPrO+mr45vh/9NP1y/Gb8Nf3P+M8GaAfkBSwE6gcW + BH4JMgm6GLQabBVcEbwV4hRSF4oP9QxtDWMICw7rDecJjw8fiZCISI2YiFSPzI1cijKP + Ko+Got2jW2KYkMPh/VjR2GOxk3FacYVxa/sc9zXG08eHxd9PEE9IS/iYaJR4ZT96v/f+ + 7gN8Bw4fmDyoe7AkCUrySuo+JHAo5dB0snHy1cOEw8GHHxyRPZJzZPmo09G2FO6U5JT3 + x4yPVaXSpEalPj+ucfziCfSJwBMP0xTSzqf9SvdJv5chm5GXsXnS++S9U3Kn8k9tZfpl + PsxSzio+jT0ddno0Wzv7ag59TmLO+zMWZ5rOks+mn13O9cgdzFPMu3iOcC723ET+7vyW + 84LnT5/fLAgoeFaoV1hXxFWUVrR6wefC42Kd4tqL3BczLq5fCrz0osS4pKlUuDTvMvZy + 3OUPZY5lA1dUr1SWc5RnlP+sCKuYuGp7tbdSpbLyGte1rCq4KrZqttqterjGoKalVqq2 + pI6lLuM6uB57fa7es360wbyhu1G1sfaG0I2im4w305ugpoSmpeaA5okWl5aRVrPW7jaN + tpu3pG9V3Oa7XdjO3J51h3An5c5WR2LHSmdE50KXf9f7bo/u1z3OPU97bXof9pn33e03 + 6u8Z0B3ouKt59/ag+mDrPdV7zUPKQ033le7ffKD04OZD5YdNj1QetQyrDbeN7Bq581j7 + cdcTgyf9T02fDj2zfDYy6jD64rnb84kXPi9mXoa8/PIq7tXG6+Q3mDfpb+ne5o1xjZWO + i43XTShPtE8aTN5/Z/fu9Xvv9/NT0VOb0ykfSB/yPvJ+rJyRn7k9azQ7PLdnbno+Yn5j + IfUT/aeiRdHFG591Pt9fcl6a/hL1ZevryW/s3yqWFZe7V6xXxr6Hft9YTV9jX7v6Q/XH + wLrT+seNfZu4zfyfYj/bfpn/erMVurUVQYmi7JwFUMgM+/kB8LUCqSFckNphGABC5++a + YkcCKVcgRAbBaOT8K4qcR/eDFgiG7KB6mAvORjGj6tGeGH7MMnYUdw8/SrVKzUsMInXT + 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 + vEdOl96YK5gZrBQ2GnsLh8HZ4kpwX/GG+EL8NyoLqioCNSGM8JR6F3U1kZOYRcKSkkm/ + aJJpYdp0Ola6Unop+lYGY4Y3jJFM1ExXmA2ZZ1iyWTVYP7CdYzfngJD3UByXCtca9y2e + g7wGZGryKN9F/mABS0FNIUVhcRF+UW4xLnFuCR5JESlpaXUZU1kXuQj5Ewrlij1KUyoE + VUU1b/VCjVXNQK0JHR/daf0oQ8goz0TStN/cY/e6ZZa1qM1tO3P7Ccdwp18ux/YwuF3a + q+oxRPH22vIp8dPxfx+YHqwQ8i4sI0Itcjo6P9YwbiX+aqL7AfTBskNmyYtHclIUj705 + fjRNML3/ZHAmKasm2yRn8mxSHs+5W+cdCr4UZRZLXOwuoZRulOWWK1c8rvSvwlSfr1Wo + G6oPbFi7kdsk2dzb6t62fDvjjmjHYJd/D663rN9q4Mdg8dDuB/DDC8OcI8VPxJ92jPq/ + wL9sfR38lmasdsJpcuF96NTUB7uPrbNMc9bzRxdqPvUvjnx+utT/5ebX099CliWX51eK + v5t8/7p6Yo1rre6HzI9r64LrxRvwht/GvU3pzeObIz85f/r+rPu5/sviV+uW8FbOtv+j + /RTkt98eACLqIe3Hsa2tb8IA4HIA+Jm9tbVRurX18zJSbCD/gXSG/P6/YlsYi/Tci1K2 + 0X8a/wOh8o8aCmVuZHN0cmVhbQplbmRvYmoKODIgMCBvYmoKNTk1MAplbmRvYmoKNjAg + MCBvYmoKWyAvSUNDQmFzZWQgODEgMCBSIF0KZW5kb2JqCjgzIDAgb2JqCjw8IC9MZW5n + dGggODQgMCBSIC9OIDMgL0FsdGVybmF0ZSAvRGV2aWNlUkdCIC9GaWx0ZXIgL0ZsYXRl + RGVjb2RlID4+CnN0cmVhbQp4AYVUz2sTQRT+Nm6p0CIIWmsOsniQIklZq2hF1Db9EWJr + DNsftkWQZDNJ1m426+4mtaWI5OLRKt5F7aEH/4AeevBkL0qFWkUo3qsoYqEXLfHNbky2 + perAzn7z3jfvfW923wANctI09YAE5A3HUqIRaWx8Qmr8iACOoglBNCVV2+xOJAZBg3P5 + e+fYeg+BW1bDe/t3snetmtK2mgeE/UDgR5rZKrDvF3EKWRICiDzfoSnHdAjf49jy7I85 + Tnl4wbUPKz3EWSJ8QDUtzn9NuFPNJdNAg0g4lPVxUj6c14uU1x0HaW5mxsgQvU+QprvM + 7qtioZxO9g6QvZ30fk6z3j7CIcILGa0/RriNnvWM1T/iYeGk5sSGPRwYNfT4YBW3Gqn4 + NcIUXxBNJ6JUcdkuDfGYrv1W8kqCcJA4ymRhgHNaSE/XTG74uocFfSbXE6/id1ZR4XmP + E2fe1N3vRdoCrzAOHQwaDJoNSFAQRQRhmLBQQIY8GjE0snI/I6sGG5N7MnUkart0YkSx + QXs23D23UaTdPP4oInGUQ7UIkvxB/iqvyU/lefnLXLDYVveUrZuauvLgO8XlmbkaHtfT + yONzTV58ldR2k1dHlqx5erya7Bo/7FeXMeaCNY/Ec7D78S1flcyXKYwUxeNV8+pLhHVa + MTffn2x/Oz3iLs8utdZzrYmLN1abl2f9akj77qq8k+ZV+U9e9fH8Z83EY+IpMSZ2iuch + iZfFLvGS2EurC+JgbccInZWGKdJtkfok1WBgmrz1L10/W3i9Rn8M9VGUGczSVIn3f8Iq + ZDSduQ5v+o/bx/wX5PeK558oAi9s4MiZum1Tce8QoWWlbnOuAhe/0X3wtm5ro344/ARY + PKsWrVI1nyC8ARx2h3oe6CmY05aWzTlShyyfk7rpymJSzFDbQ1JS1yXXZUsWs5lVYul2 + 2JnTHW4coTlC98SnSmWT+q/xEbD9sFL5+axS2X5OGtaBl/pvwLz9RQplbmRzdHJlYW0K + ZW5kb2JqCjg0IDAgb2JqCjczNwplbmRvYmoKNDQgMCBvYmoKWyAvSUNDQmFzZWQgODMg + MCBSIF0KZW5kb2JqCjg1IDAgb2JqCjw8IC9MZW5ndGggODYgMCBSIC9OIDEgL0FsdGVy + bmF0ZSAvRGV2aWNlR3JheSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGF + Uk9IFFEc/s02EoSIQYV4iHcKCZUprKyg2nZ1WZVtW5XSohhn37qjszPTm9k1xZMEXaI8 + dQ+iY3Ts0KGbl6LArEvXIKkgCDx16PvN7OoohG95O9/7/f1+33tEbZ2m7zspQVRzQ5Ur + paduTk2Lgx8pRR3UTlimFfjpYnGMseu5kr+719Zn0tiy3se1dvv2PbWVZWAh6i22txD6 + IZFmAB+ZnyhlgLPAHZav2D4BPFgOrBrwI6IDD5q5MNPRnHSlsi2RU+aiKCqvYjtJrvv5 + uca+i7WJg/5cj2bWjr2z6qrRTNS090ShvA+uRBnPX1T2bDUUpw3jnEhDGinyrtXfK0zH + EZErEEoGUjVkuZ9qTp114HUYu126k+P49hClPslgqIm16bKZHYV9AHYqy+wQ8AXo8bJi + D+eBe2H/W1HDk8AnYT9kh3nWrR/2F65T4HuEPTXgzhSuxfHaih9eLQFD91QjaIxzTcTT + 1zlzpIjvMdQZmPdGOaYLMXeWqhM3gDthH1mqZgqxXfuu6iXuewJ30+M70Zs5C1ygHEly + sRXZFNA8CVgUfYuwSQ48Ps4eVeB3qJjAHLmJ3M0o9x7VERtno1KBVnqNV8ZP47nxxfhl + bBjPgH6sdtd7fP/p4xV117Y+PPmNetw5rr2dG1VhVnFlC93/xzKEj9knOabB06FZWGvY + duQPmsxMsAwoxH8FPpf6khNV3NXu7bhFEsxQPixsJbpLVG4p1Oo9g0qsHCvYAHZwksQs + Why4U2u6OXh32CJ6bflNV7Lrhv769nr72vIebcqoKSgTzbNEZpSxW6Pk3Xjb/WaREZ84 + Or7nvYpayf5JRRA/hTlaKvIUVfRWUNbEb2cOfhu2flw/pef1Qf08CT2tn9Gv6KMRvgx0 + Sc/Cc1Efo0nwsGkh4hKgioMz1E5UY40D4inx8rRbZJH9D0AZ/WYKZW5kc3RyZWFtCmVu + ZG9iago4NiAwIG9iago3MDQKZW5kb2JqCjI3IDAgb2JqClsgL0lDQ0Jhc2VkIDg1IDAg + UiBdCmVuZG9iago0IDAgb2JqCjw8IC9UeXBlIC9QYWdlcyAvTWVkaWFCb3ggWzAgMCA2 + MTIgNzkyXSAvQ291bnQgMSAvS2lkcyBbIDMgMCBSIF0gPj4KZW5kb2JqCjg3IDAgb2Jq + Cjw8IC9UeXBlIC9DYXRhbG9nIC9PdXRsaW5lcyAyIDAgUiAvUGFnZXMgNCAwIFIgL1Zl + cnNpb24gLzEuNCA+PgplbmRvYmoKNTkgMCBvYmoKPDwgL0xlbmd0aCA4OCAwIFIgL09y + ZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5cGUgMCAvQml0c1BlclNh + bXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21haW4gWyAwIDEgXSAvUmFu + Z2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9GaWx0ZXIgL0ZsYXRlRGVj + b2RlID4+CnN0cmVhbQp4AY3CVVYVAABAwUXR3d3dDa+7u7s7LJQ0wAAFAwxUBGVRLoCf + O2fKd+XyvaV/Jbj4t0gWbgtk/iYP5/7kyOx1lsz8zsDpX2ky9TMFJ6+SZOJHgox/j8Ox + bzEy+jVKRi4jcPgiTIa+hODg5yAZ+BQg/R/9sO/cR3rPvKTngwd2v3eTrlMX7Dxxko53 + DtL+1g7b3thI62sraTm2wOYjM2l6ZSKNL42w4YWB1D/Xw7pDHak90JKafQ2s3lOTql0V + qdxRwopnClL+VA7LtmWk9ImUlDyWwOJHYlL0UEQKHwhhQVlAbpW24M3iJrlR2CDX8+vw + Wm6NXM2ukiuZFXg5vUwupZbgxeQiuZBYIOfj8/BcbI6cjc6SM5EZeDo8TU6FpuDJ4CQ5 + EZggx/3j8JhvjBz1jpIjnhF42D1MDrmG4EHnIDngGCD77f1wn62P7LX2kj2WHrjb3E12 + mbrITmMn3GHoINv17XCbro1s1baSLZoWuFndTDapmshGZSPcoGgg6+X1cJ2sjqyV1pI1 + khq4WlxNVomqyEphJVwhqLj/Px8Fb/YKZW5kc3RyZWFtCmVuZG9iago4OCAwIG9iago0 + MTcKZW5kb2JqCjU4IDAgb2JqCjw8IC9MZW5ndGggODkgMCBSIC9PcmRlciAxIC9FbmNv + ZGUgWyAwIDEzNjQgXSAvRnVuY3Rpb25UeXBlIDAgL0JpdHNQZXJTYW1wbGUKOCAvRGVj + b2RlIFsgMCAxIDAgMSAwIDEgXSAvRG9tYWluIFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAg + MSAwIDEgXSAvU2l6ZSBbIDEzNjUKXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJl + YW0KeAGNwlVWFQAAQMFF0d3d3Q2vu7u7OyyUNMAABQMMVARlUS6Anztnynfl8r2lfyW4 + +LdIFm4LZP4mD+f+5MjsdZbM/M7A6V9pMvUzBSevkmTiR4KMf4/DsW8xMvo1SkYuI3D4 + IkyGvoTg4OcgGfgUIP0f/bDv3Ed6z7yk54MHdr93k65TF+w8cZKOdw7S/tYO297YSOtr + K2k5tsDmIzNpemUijS+NsOGFgdQ/18O6Qx2pPdCSmn0NrN5Tk6pdFancUcKKZwpS/lQO + y7ZlpPSJlJQ8lsDiR2JS9FBECh8IYUFZQG6VtuDN4ia5Udgg1/Pr8FpujVzNrpIrmRV4 + Ob1MLqWW4MXkIrmQWCDn4/PwXGyOnI3OkjORGXg6PE1OhabgyeAkORGYIMf94/CYb4wc + 9Y6SI54ReNg9TA65huBB5yA54Bgg++39cJ+tj+y19pI9lh6429xNdpm6yE5jJ9xh6CDb + 9e1wm66NbNW2ki2aFrhZ3Uw2qZrIRmUj3KBoIOvl9XCdrI6sldaSNZIauFpcTVaJqshK + YSVcIai4/z8fBW/2CmVuZHN0cmVhbQplbmRvYmoKODkgMCBvYmoKNDE3CmVuZG9iago1 + NyAwIG9iago8PCAvTGVuZ3RoIDkwIDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0 + IF0gL0Z1bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAw + IDEgMCAxIF0gL0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1Np + emUgWyAxMzY1Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBjcJVVhUA + AEDBRdHd3d0Nr7u7uzsslDTAAAUDDFQEZVEugJ87Z8p35fK9pX8luPi3SBZuC2T+Jg/n + /uTI7HWWzPzOwOlfaTL1MwUnr5Jk4keCjH+Pw7FvMTL6NUpGLiNw+CJMhr6E4ODnIBn4 + FCD9H/2w79xHes+8pOeDB3a/d5OuUxfsPHGSjncO0v7WDtve2EjraytpObbA5iMzaXpl + Io0vjbDhhYHUP9fDukMdqT3Qkpp9DazeU5OqXRWp3FHCimcKUv5UDsu2ZaT0iZSUPJbA + 4kdiUvRQRAofCGFBWUBulbbgzeImuVHYINfz6/Babo1cza6SK5kVeDm9TC6lluDF5CK5 + kFgg5+Pz8FxsjpyNzpIzkRl4OjxNToWm4MngJDkRmCDH/ePwmG+MHPWOkiOeEXjYPUwO + uYbgQecgOeAYIPvt/XCfrY/stfaSPZYeuNvcTXaZushOYyfcYegg2/XtcJuujWzVtpIt + mha4Wd1MNqmayEZlI9ygaCDr5fVwnayOrJXWkjWSGrhaXE1WiarISmElXCGouP8/HwVv + 9gplbmRzdHJlYW0KZW5kb2JqCjkwIDAgb2JqCjQxNwplbmRvYmoKNTYgMCBvYmoKPDwg + L0xlbmd0aCA5MSAwIFIgL09yZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlv + blR5cGUgMCAvQml0c1BlclNhbXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9E + b21haW4gWyAwIDEgXSAvUmFuZ2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpd + IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Aa3CVRaCAAAAwduKYmNhYGML + qFinXa/gx84bvl/+/Pngfr8Rv164n0/cZYn78UB8v+O+3XAXBe48R5xluK9X3JcL7vMZ + 8emE+3jEfTjg3u8R73a40xT3dot7s0G8XuNerXAvl7gXC8TzOe4kwT2bIZ5OcU8muMdj + 3HGMeDTCPRziHgxw9/uIez3cUYS728Xd6SBut3G3WribTdyNBuJ6HXcY4q7VcFeriIMA + d6XCf39Sbp/uCmVuZHN0cmVhbQplbmRvYmoKOTEgMCBvYmoKMTgxCmVuZG9iago1NSAw + IG9iago8PCAvTGVuZ3RoIDkyIDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0g + L0Z1bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEg + MCAxIF0gL0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUg + WyAxMzY1Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBjcJVVhUAAEDB + RdHd3d0Nr7u7uzsslDTAAAUDDFQEZVEugJ87Z8p35fK9pX8luPi3SBZuC2T+Jg/n/uTI + 7HWWzPzOwOlfaTL1MwUnr5Jk4keCjH+Pw7FvMTL6NUpGLiNw+CJMhr6E4ODnIBn4FCD9 + H/2w79xHes+8pOeDB3a/d5OuUxfsPHGSjncO0v7WDtve2EjraytpObbA5iMzaXplIo0v + jbDhhYHUP9fDukMdqT3Qkpp9DazeU5OqXRWp3FHCimcKUv5UDsu2ZaT0iZSUPJbA4kdi + UvRQRAofCGFBWUBulbbgzeImuVHYINfz6/Babo1cza6SK5kVeDm9TC6lluDF5CK5kFgg + 5+Pz8FxsjpyNzpIzkRl4OjxNToWm4MngJDkRmCDH/ePwmG+MHPWOkiOeEXjYPUwOuYbg + QecgOeAYIPvt/XCfrY/stfaSPZYeuNvcTXaZushOYyfcYegg2/XtcJuujWzVtpItmha4 + Wd1MNqmayEZlI9ygaCDr5fVwnayOrJXWkjWSGrhaXE1WiarISmElXCGouP8/HwVv9gpl + bmRzdHJlYW0KZW5kb2JqCjkyIDAgb2JqCjQxNwplbmRvYmoKNTQgMCBvYmoKPDwgL0xl + bmd0aCA5MyAwIFIgL09yZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5 + cGUgMCAvQml0c1BlclNhbXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21h + aW4gWyAwIDEgXSAvUmFuZ2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9G + aWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Aa3CVRaCAAAAwduKYmNhYGMLqFin + Xa/gx84bvl/+/Pngfr8Rv164n0/cZYn78UB8v+O+3XAXBe48R5xluK9X3JcL7vMZ8emE + +3jEfTjg3u8R73a40xT3dot7s0G8XuNerXAvl7gXC8TzOe4kwT2bIZ5OcU8muMdj3HGM + eDTCPRziHgxw9/uIez3cUYS728Xd6SBut3G3WribTdyNBuJ6HXcY4q7VcFeriIMAd6XC + f39Sbp/uCmVuZHN0cmVhbQplbmRvYmoKOTMgMCBvYmoKMTgxCmVuZG9iago1MyAwIG9i + ago8PCAvTGVuZ3RoIDk0IDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Z1 + bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEgMCAx + IF0gL0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUgWyAx + MzY1Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBjcJVVhUAAEDBRdHd + 3d0Nr7u7uzsslDTAAAUDDFQEZVEugJ87Z8p35fK9pX8luPi3SBZuC2T+Jg/n/uTI7HWW + zPzOwOlfaTL1MwUnr5Jk4keCjH+Pw7FvMTL6NUpGLiNw+CJMhr6E4ODnIBn4FCD9H/2w + 79xHes+8pOeDB3a/d5OuUxfsPHGSjncO0v7WDtve2EjraytpObbA5iMzaXplIo0vjbDh + hYHUP9fDukMdqT3Qkpp9DazeU5OqXRWp3FHCimcKUv5UDsu2ZaT0iZSUPJbA4kdiUvRQ + RAofCGFBWUBulbbgzeImuVHYINfz6/Babo1cza6SK5kVeDm9TC6lluDF5CK5kFgg5+Pz + 8FxsjpyNzpIzkRl4OjxNToWm4MngJDkRmCDH/ePwmG+MHPWOkiOeEXjYPUwOuYbgQecg + OeAYIPvt/XCfrY/stfaSPZYeuNvcTXaZushOYyfcYegg2/XtcJuujWzVtpItmha4Wd1M + NqmayEZlI9ygaCDr5fVwnayOrJXWkjWSGrhaXE1WiarISmElXCGouP8/HwVv9gplbmRz + dHJlYW0KZW5kb2JqCjk0IDAgb2JqCjQxNwplbmRvYmoKNTIgMCBvYmoKPDwgL0xlbmd0 + aCA5NSAwIFIgL09yZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5cGUg + MCAvQml0c1BlclNhbXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21haW4g + WyAwIDEgXSAvUmFuZ2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9GaWx0 + ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Aa3CVRaCAAAAwduKYmNhYGMLqFinXa/g + x84bvl/+/Pngfr8Rv164n0/cZYn78UB8v+O+3XAXBe48R5xluK9X3JcL7vMZ8emE+3jE + fTjg3u8R73a40xT3dot7s0G8XuNerXAvl7gXC8TzOe4kwT2bIZ5OcU8muMdj3HGMeDTC + PRziHgxw9/uIez3cUYS728Xd6SBut3G3WribTdyNBuJ6HXcY4q7VcFeriIMAd6XCf39S + bp/uCmVuZHN0cmVhbQplbmRvYmoKOTUgMCBvYmoKMTgxCmVuZG9iago1MSAwIG9iago8 + PCAvTGVuZ3RoIDk2IDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Z1bmN0 + aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEgMCAxIF0g + L0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUgWyAxMzY1 + Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBjcJVVhUAAEDBRdHd3d0N + r7u7uzsslDTAAAUDDFQEZVEugJ87Z8p35fK9pX8luPi3SBZuC2T+Jg/n/uTI7HWWzPzO + wOlfaTL1MwUnr5Jk4keCjH+Pw7FvMTL6NUpGLiNw+CJMhr6E4ODnIBn4FCD9H/2w79xH + es+8pOeDB3a/d5OuUxfsPHGSjncO0v7WDtve2EjraytpObbA5iMzaXplIo0vjbDhhYHU + P9fDukMdqT3Qkpp9DazeU5OqXRWp3FHCimcKUv5UDsu2ZaT0iZSUPJbA4kdiUvRQRAof + CGFBWUBulbbgzeImuVHYINfz6/Babo1cza6SK5kVeDm9TC6lluDF5CK5kFgg5+Pz8Fxs + jpyNzpIzkRl4OjxNToWm4MngJDkRmCDH/ePwmG+MHPWOkiOeEXjYPUwOuYbgQecgOeAY + IPvt/XCfrY/stfaSPZYeuNvcTXaZushOYyfcYegg2/XtcJuujWzVtpItmha4Wd1MNqma + yEZlI9ygaCDr5fVwnayOrJXWkjWSGrhaXE1WiarISmElXCGouP8/HwVv9gplbmRzdHJl + YW0KZW5kb2JqCjk2IDAgb2JqCjQxNwplbmRvYmoKNTAgMCBvYmoKPDwgL0xlbmd0aCA5 + NyAwIFIgL09yZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5cGUgMCAv + Qml0c1BlclNhbXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21haW4gWyAw + IDEgXSAvUmFuZ2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9GaWx0ZXIg + L0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AY3CVVYVAABAwUXR3d3dDa+7u7s7LJQ0wAAF + AwxUBGVRLoCfO2fKd+XyvaV/Jbj4t0gWbgtk/iYP5/7kyOx1lsz8zsDpX2ky9TMFJ6+S + ZOJHgox/j8OxbzEy+jVKRi4jcPgiTIa+hODg5yAZ+BQg/R/9sO/cR3rPvKTngwd2v3eT + rlMX7Dxxko53DtL+1g7b3thI62sraTm2wOYjM2l6ZSKNL42w4YWB1D/Xw7pDHak90JKa + fQ2s3lOTql0VqdxRwopnClL+VA7LtmWk9ImUlDyWwOJHYlL0UEQKHwhhQVlAbpW24M3i + JrlR2CDX8+vwWm6NXM2ukiuZFXg5vUwupZbgxeQiuZBYIOfj8/BcbI6cjc6SM5EZeDo8 + TU6FpuDJ4CQ5EZggx/3j8JhvjBz1jpIjnhF42D1MDrmG4EHnIDngGCD77f1wn62P7LX2 + kj2WHrjb3E12mbrITmMn3GHoINv17XCbro1s1baSLZoWuFndTDapmshGZSPcoGgg6+X1 + cJ2sjqyV1pI1khq4WlxNVomqyEphJVwhqLj/Px8Fb/YKZW5kc3RyZWFtCmVuZG9iago5 + NyAwIG9iago0MTcKZW5kb2JqCjQ5IDAgb2JqCjw8IC9MZW5ndGggOTggMCBSIC9PcmRl + ciAxIC9FbmNvZGUgWyAwIDEzNjQgXSAvRnVuY3Rpb25UeXBlIDAgL0JpdHNQZXJTYW1w + bGUKOCAvRGVjb2RlIFsgMCAxIDAgMSAwIDEgXSAvRG9tYWluIFsgMCAxIF0gL1Jhbmdl + IFsgMCAxIDAgMSAwIDEgXSAvU2l6ZSBbIDEzNjUKXSAvRmlsdGVyIC9GbGF0ZURlY29k + ZSA+PgpzdHJlYW0KeAGtwtdVAgAAwMBt7Sh2UewVCzZQ2Sk7xRX4yL1b4GK5f9j+xfAP + tufYnmH7G8Nf2P7E9ge23zE8xfYbtl+x/YLhZ2xPsP2E7UcMP2D7Htt32L7F8A22r7F9 + he1LDF9g+xzbYwyfYfsU2yNsn2D4GNtH2D7E9gGG97G9h+1dbA8xvIPtbWwPsL2F4U1s + b2B7HdtrGF7F9gou+R/97DfyCmVuZHN0cmVhbQplbmRvYmoKOTggMCBvYmoKMTU5CmVu + ZG9iago0OCAwIG9iago8PCAvTGVuZ3RoIDk5IDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsg + MCAxMzY0IF0gL0Z1bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBb + IDAgMSAwIDEgMCAxIF0gL0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAx + IF0gL1NpemUgWyAxMzY1Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB + rcLXVQIAAMDAbe0odlHsFQs2UNkpO8UV+Mi9W+BiuX/Y/sXwD7bn2J5h+xvDX9j+xPYH + tt8xPMX2G7Zfsf2C4WdsT7D9hO1HDD9g+x7bd9i+xfANtq+xfYXtSwxfYPsc22MMn2H7 + FNsjbJ9g+BjbR9g+xPYBhvexvYftXWwPMbyD7W1sD7C9heFNbG9gex3baxhexfYKLvkf + /ew38gplbmRzdHJlYW0KZW5kb2JqCjk5IDAgb2JqCjE1OQplbmRvYmoKNDcgMCBvYmoK + PDwgL0xlbmd0aCAxMDAgMCBSIC9PcmRlciAxIC9FbmNvZGUgWyAwIDEzNjQgXSAvRnVu + Y3Rpb25UeXBlIDAgL0JpdHNQZXJTYW1wbGUKOCAvRGVjb2RlIFsgMCAxIDAgMSAwIDEg + XSAvRG9tYWluIFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAgMSAwIDEgXSAvU2l6ZSBbIDEz + NjUKXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGNwlVWFQAAQMFF0d3d + 3Q2vu7u7OyyUNMAABQMMVARlUS6Anztnynfl8r2lfyW4+LdIFm4LZP4mD+f+5MjsdZbM + /M7A6V9pMvUzBSevkmTiR4KMf4/DsW8xMvo1SkYuI3D4IkyGvoTg4OcgGfgUIP0f/bDv + 3Ed6z7yk54MHdr93k65TF+w8cZKOdw7S/tYO297YSOtrK2k5tsDmIzNpemUijS+NsOGF + gdQ/18O6Qx2pPdCSmn0NrN5Tk6pdFancUcKKZwpS/lQOy7ZlpPSJlJQ8lsDiR2JS9FBE + Ch8IYUFZQG6VtuDN4ia5Udgg1/Pr8FpujVzNrpIrmRV4Ob1MLqWW4MXkIrmQWCDn4/Pw + XGyOnI3OkjORGXg6PE1OhabgyeAkORGYIMf94/CYb4wc9Y6SI54ReNg9TA65huBB5yA5 + 4Bgg++39cJ+tj+y19pI9lh6429xNdpm6yE5jJ9xh6CDb9e1wm66NbNW2ki2aFrhZ3Uw2 + qZrIRmUj3KBoIOvl9XCdrI6sldaSNZIauFpcTVaJqshKYSVcIai4/z8fBW/2CmVuZHN0 + cmVhbQplbmRvYmoKMTAwIDAgb2JqCjQxNwplbmRvYmoKNDYgMCBvYmoKPDwgL0xlbmd0 + aCAxMDEgMCBSIC9PcmRlciAxIC9FbmNvZGUgWyAwIDEzNjQgXSAvRnVuY3Rpb25UeXBl + IDAgL0JpdHNQZXJTYW1wbGUKOCAvRGVjb2RlIFsgMCAxIDAgMSAwIDEgXSAvRG9tYWlu + IFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAgMSAwIDEgXSAvU2l6ZSBbIDEzNjUKXSAvRmls + dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGtwlUWggAAAMHbimJjYWBjC6hYp12v + 4MfOG75f/vz54H6/Eb9euJ9P3GWJ+/FAfL/jvt1wFwXuPEecZbivV9yXC+7zGfHphPt4 + xH044N7vEe92uNMU93aLe7NBvF7jXq1wL5e4FwvE8znuJME9myGeTnFPJrjHY9xxjHg0 + wj0c4h4McPf7iHs93FGEu9vF3ekgbrdxt1q4m03cjQbieh13GOKu1XBXq4iDAHelwn9/ + Um6f7gplbmRzdHJlYW0KZW5kb2JqCjEwMSAwIG9iagoxODEKZW5kb2JqCjQ1IDAgb2Jq + Cjw8IC9MZW5ndGggMTAyIDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Z1 + bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEgMCAx + IF0gL0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUgWyAx + MzY1Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBrcJVFoIAAADB24pi + Y2FgYwuoWKddr+DHzhu+X/78+eB+vxG/XrifT9xlifvxQHy/477dcBcF7jxHnGW4r1fc + lwvu8xnx6YT7eMR9OODe7xHvdrjTFPd2i3uzQbxe416tcC+XuBcLxPM57iTBPZshnk5x + Tya4x2PccYx4NMI9HOIeDHD3+4h7PdxRhLvbxd3pIG63cbdauJtN3I0G4noddxjirtVw + V6uIgwB3pcJ/f1Jun+4KZW5kc3RyZWFtCmVuZG9iagoxMDIgMCBvYmoKMTgxCmVuZG9i + agoyIDAgb2JqCjw8IC9MYXN0IDEwMyAwIFIgL0ZpcnN0IDEwNCAwIFIgPj4KZW5kb2Jq + CjEwNCAwIG9iago8PCAvUGFyZW50IDEwNSAwIFIgL0NvdW50IDAgL0Rlc3QgWyAzIDAg + UiAvWFlaIDAgNTUzIDAgXSAvVGl0bGUgKENhbnZhcyAxKQo+PgplbmRvYmoKMTA1IDAg + b2JqCjw8ID4+CmVuZG9iagoxMDMgMCBvYmoKPDwgL1BhcmVudCAxMDUgMCBSIC9Db3Vu + dCAwIC9EZXN0IFsgMyAwIFIgL1hZWiAwIDU1MyAwIF0gL1RpdGxlIChDYW52YXMgMSkK + Pj4KZW5kb2JqCjEwNiAwIG9iago8PCAvTGVuZ3RoIDEwNyAwIFIgL0xlbmd0aDEgMTIx + MjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBvXp5fFRFtnBV3bWXdLo7 + ve83ne7OvkIgJJAmJCEsiSFhSZBgAgQIggLGKMzAFxVFIqKILIobLhBATRN40IDwGAYF + 3nNGdBCUUUdHcHwz5jkzHzoO0N3fqdshQj6dn3/4m3v7VNWpqlv31KmzVfVtX3p3K0pA + nYhBtdNbFs9F8pXFIkRmzF7UsjiOJ2VC/vbsjnZPHOdSEWIWzl08b1EcF59ESOmct3BZ + //OG4QhZqua3tsyJt6NrkBfOh4o4jodAnjJ/Ufu9cVy/D/J7F945u7896TvARy1qubf/ + /egjwD13tCxqjffP/BTylMV33tXej3dC3rx4aWt/f9wA9L2DMNS60J1IgW5HAiJIC3cT + QsKXSidioZW2wzUnU7XhtsSSb5BOlPHbqh+T87ekN85913otoFov/hMqFNf705xPi6Yh + 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 + RmxhZ3MgMzIKL0ZvbnRCQm94IFstOTUxIC00ODEgMTQ0NSAxMTIyXSAvRm9udE5hbWUg + L1dQRlBOUitIZWx2ZXRpY2EgL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDAgL01heFdpZHRo + IDE1MDAgL1hIZWlnaHQgNjM3IC9Gb250RmlsZTIgMTA2IDAgUiA+PgplbmRvYmoKMTA5 + IDAgb2JqClsgMjc4IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDMzMyAwIDAgMCAwIDAg + MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDY2NwowIDcyMiA3MjIgMCAwIDAgNzIy + IDI3OCAwIDAgNTU2IDgzMyAwIDc3OCA2NjcgMCA3MjIgNjY3IDYxMSAwIDAgMCAwIDAg + MCAwCjAgMCAwIDAgMCA1NTYgNTU2IDUwMCAwIDU1NiAwIDAgMCAyMjIgMCAwIDIyMiA4 + MzMgNTU2IDU1NiA1NTYgMCAzMzMgNTAwIDI3OAo1NTYgMCAwIDAgNTAwIF0KZW5kb2Jq + CjI4IDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UcnVlVHlwZSAvQmFzZUZv + bnQgL1dQRlBOUitIZWx2ZXRpY2EgL0ZvbnREZXNjcmlwdG9yCjEwOCAwIFIgL1dpZHRo + cyAxMDkgMCBSIC9GaXJzdENoYXIgMzIgL0xhc3RDaGFyIDEyMSAvRW5jb2RpbmcgL01h + Y1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjExMCAwIG9iagooTWFjIE9TIFggMTAuNi42 + IFF1YXJ0eiBQREZDb250ZXh0KQplbmRvYmoKMTExIDAgb2JqCihEOjIwMTEwMzA3MjMx + NDM3WjAwJzAwJykKZW5kb2JqCjEgMCBvYmoKPDwgL1Byb2R1Y2VyIDExMCAwIFIgL0Ny + ZWF0aW9uRGF0ZSAxMTEgMCBSIC9Nb2REYXRlIDExMSAwIFIgPj4KZW5kb2JqCnhyZWYK + MCAxMTIKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMTE3NzI3IDAwMDAwIG4gCjAwMDAx + MDg1ODEgMDAwMDAgbiAKMDAwMDAwNjA0MCAwMDAwMCBuIAowMDAwMTAwMzI4IDAwMDAw + IG4gCjAwMDAwMDAwMjIgMDAwMDAgbiAKMDAwMDAwNjAyMCAwMDAwMCBuIAowMDAwMDA2 + MTQ0IDAwMDAwIG4gCjAwMDAwOTI0MTkgMDAwMDAgbiAKMDAwMDAxMzAxMCAwMDAwMCBu + IAowMDAwMDI0ODA5IDAwMDAwIG4gCjAwMDAwMjUzMjQgMDAwMDAgbiAKMDAwMDAzMDgy + MiAwMDAwMCBuIAowMDAwMDMwODQzIDAwMDAwIG4gCjAwMDAwMzU5MDMgMDAwMDAgbiAK + MDAwMDAzNjQyMiAwMDAwMCBuIAowMDAwMDQxNjY4IDAwMDAwIG4gCjAwMDAwMjQ4MzEg + MDAwMDAgbiAKMDAwMDAyNTMwNCAwMDAwMCBuIAowMDAwMDA4NzYyIDAwMDAwIG4gCjAw + MDAwMDkyMzUgMDAwMDAgbiAKMDAwMDAzNTkyNCAwMDAwMCBuIAowMDAwMDM2NDAyIDAw + MDAwIG4gCjAwMDAwMDkyNTUgMDAwMDAgbiAKMDAwMDAwOTczMCAwMDAwMCBuIAowMDAw + MDA5NzUwIDAwMDAwIG4gCjAwMDAwMTI5ODkgMDAwMDAgbiAKMDAwMDEwMDI5MSAwMDAw + MCBuIAowMDAwMTE3NDU0IDAwMDAwIG4gCjAwMDAwMDY2MDIgMDAwMDAgbiAKMDAwMDAw + ODQ3NCAwMDAwMCBuIAowMDAwMDA3ODk4IDAwMDAwIG4gCjAwMDAwMDY3NDYgMDAwMDAg + biAKMDAwMDAwNzYxMCAwMDAwMCBuIAowMDAwMDA3NDY2IDAwMDAwIG4gCjAwMDAwMDcz + MjIgMDAwMDAgbiAKMDAwMDAwODMzMCAwMDAwMCBuIAowMDAwMDA3NzU0IDAwMDAwIG4g + CjAwMDAwMDg2MTggMDAwMDAgbiAKMDAwMDAwNjg5MCAwMDAwMCBuIAowMDAwMDA4MDQy + IDAwMDAwIG4gCjAwMDAwMDgxODYgMDAwMDAgbiAKMDAwMDAwNzAzNCAwMDAwMCBuIAow + MDAwMDA3MTc4IDAwMDAwIG4gCjAwMDAwOTk0MjYgMDAwMDAgbiAKMDAwMDEwODE2MyAw + MDAwMCBuIAowMDAwMTA3NzQ1IDAwMDAwIG4gCjAwMDAxMDcwOTEgMDAwMDAgbiAKMDAw + MDEwNjY5NyAwMDAwMCBuIAowMDAwMTA2MzAzIDAwMDAwIG4gCjAwMDAxMDU2NTEgMDAw + MDAgbiAKMDAwMDEwNDk5OSAwMDAwMCBuIAowMDAwMTA0NTgzIDAwMDAwIG4gCjAwMDAx + MDM5MzEgMDAwMDAgbiAKMDAwMDEwMzUxNSAwMDAwMCBuIAowMDAwMTAyODYzIDAwMDAw + IG4gCjAwMDAxMDI0NDcgMDAwMDAgbiAKMDAwMDEwMTc5NSAwMDAwMCBuIAowMDAwMTAx + MTQzIDAwMDAwIG4gCjAwMDAxMDA0OTEgMDAwMDAgbiAKMDAwMDA5ODUyOSAwMDAwMCBu + IAowMDAwMDc2OTkzIDAwMDAwIG4gCjAwMDAwODEyMjYgMDAwMDAgbiAKMDAwMDA0Nzcy + NyAwMDAwMCBuIAowMDAwMDUxOTYyIDAwMDAwIG4gCjAwMDAwNjU3NjAgMDAwMDAgbiAK + MDAwMDA3MDY1MyAwMDAwMCBuIAowMDAwMDU2MjMzIDAwMDAwIG4gCjAwMDAwNjU3Mzkg + MDAwMDAgbiAKMDAwMDA1MTk4MyAwMDAwMCBuIAowMDAwMDU2MjEyIDAwMDAwIG4gCjAw + MDAwNzA2NzQgMDAwMDAgbiAKMDAwMDA3Njk3MiAwMDAwMCBuIAowMDAwMDQxNjg5IDAw + MDAwIG4gCjAwMDAwNDc3MDYgMDAwMDAgbiAKMDAwMDA4MTI0NyAwMDAwMCBuIAowMDAw + MDg1NDgyIDAwMDAwIG4gCjAwMDAwODU1MDMgMDAwMDAgbiAKMDAwMDA5MTUzOCAwMDAw + MCBuIAowMDAwMDkxNTU5IDAwMDAwIG4gCjAwMDAwOTIzOTkgMDAwMDAgbiAKMDAwMDA5 + MjQ1NSAwMDAwMCBuIAowMDAwMDk4NTA4IDAwMDAwIG4gCjAwMDAwOTg1NjYgMDAwMDAg + biAKMDAwMDA5OTQwNiAwMDAwMCBuIAowMDAwMDk5NDYzIDAwMDAwIG4gCjAwMDAxMDAy + NzEgMDAwMDAgbiAKMDAwMDEwMDQxMSAwMDAwMCBuIAowMDAwMTAxMTIzIDAwMDAwIG4g + CjAwMDAxMDE3NzUgMDAwMDAgbiAKMDAwMDEwMjQyNyAwMDAwMCBuIAowMDAwMTAyODQz + IDAwMDAwIG4gCjAwMDAxMDM0OTUgMDAwMDAgbiAKMDAwMDEwMzkxMSAwMDAwMCBuIAow + MDAwMTA0NTYzIDAwMDAwIG4gCjAwMDAxMDQ5NzkgMDAwMDAgbiAKMDAwMDEwNTYzMSAw + MDAwMCBuIAowMDAwMTA2MjgzIDAwMDAwIG4gCjAwMDAxMDY2NzcgMDAwMDAgbiAKMDAw + MDEwNzA3MSAwMDAwMCBuIAowMDAwMTA3NzI0IDAwMDAwIG4gCjAwMDAxMDgxNDIgMDAw + MDAgbiAKMDAwMDEwODU2MCAwMDAwMCBuIAowMDAwMTA4NzQ5IDAwMDAwIG4gCjAwMDAx + MDg2MzEgMDAwMDAgbiAKMDAwMDEwODcyNiAwMDAwMCBuIAowMDAwMTA4ODQ0IDAwMDAw + IG4gCjAwMDAxMTY5NDYgMDAwMDAgbiAKMDAwMDExNjk2OCAwMDAwMCBuIAowMDAwMTE3 + MTk1IDAwMDAwIG4gCjAwMDAxMTc2MzEgMDAwMDAgbiAKMDAwMDExNzY4NCAwMDAwMCBu + IAp0cmFpbGVyCjw8IC9TaXplIDExMiAvUm9vdCA4NyAwIFIgL0luZm8gMSAwIFIgL0lE + IFsgPGNkMmE3Njg5M2EzMjViYjEyMmEyYzYzNzk3YTVlYmUyPgo8Y2QyYTc2ODkzYTMy + NWJiMTIyYTJjNjM3OTdhNWViZTI+IF0gPj4Kc3RhcnR4cmVmCjExNzgwNQolJUVPRgox + IDAgb2JqCjw8L0F1dGhvciAoVmFuY2UgU2hpcGxleSkvQ3JlYXRpb25EYXRlIChEOjIw + MTEwMzA3MTQwOTAwWikvQ3JlYXRvciAoT21uaUdyYWZmbGUgUHJvZmVzc2lvbmFsIDUu + Mi4zKS9Nb2REYXRlIChEOjIwMTEwMzA3MjMxNDAwWikvUHJvZHVjZXIgMTEwIDAgUiAv + VGl0bGUgKHRjYXBfbWVzc2FnaW5nLmdyYWZmbGUpPj4KZW5kb2JqCnhyZWYKMSAxCjAw + MDAxMjAyMDYgMDAwMDAgbiAKdHJhaWxlcgo8PC9JRCBbPGNkMmE3Njg5M2EzMjViYjEy + MmEyYzYzNzk3YTVlYmUyPiA8Y2QyYTc2ODkzYTMyNWJiMTIyYTJjNjM3OTdhNWViZTI+ + XSAvSW5mbyAxIDAgUiAvUHJldiAxMTc4MDUgL1Jvb3QgODcgMCBSIC9TaXplIDExMj4+ + CnN0YXJ0eHJlZgoxMjA0MDAKJSVFT0YK + + QuickLookThumbnail + + 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 + YXkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAABIAAAAMbmxO + TAAAABYAAADoZGFESwAAABwAAAD+cGxQTAAAABIAAAEaZW5VUwAAABIAAAEsbmJOTwAA + ABIAAAE+ZnJGUgAAABYAAAFQcHRCUgAAABgAAAFmcHRQVAAAABYAAAF+emhDTgAAAAwA + AAGUZXNFUwAAABIAAAGgamFKUAAAAA4AAAGycnVSVQAAACQAAAHAc3ZTRQAAABAAAAHk + emhUVwAAAA4AAAH0ZGVERQAAABAAAAICZmlGSQAAABAAAAISaXRJVAAAABQAAAIia29L + UgAAAAwAAAI2AEsAbABlAHUAcgBlAG4ALQBMAEMARABMAEMARAAtAGYAYQByAHYAZQBz + AGsA5gByAG0ASwBvAGwAbwByACAATABDAEQAQwBvAGwAbwByACAATABDAEQARgBhAHIA + ZwBlAC0ATABDAEQATABDAEQAIABjAG8AdQBsAGUAdQByAEwAQwBEACAAQwBvAGwAbwBy + AGkAZABvAEwAQwBEACAAYQAgAEMAbwByAGUAc19pgnIAIABMAEMARABMAEMARAAgAGMA + bwBsAG8AcjCrMOkw/AAgAEwAQwBEBCYEMgQ1BEIEPQQ+BDkAIAQWBBoALQQ0BDgEQQQ/ + BDsENQQ5AEYA5AByAGcALQBMAEMARF9pgnJtsmZ2mG95OlZoAEYAYQByAGIALQBMAEMA + RABWAOQAcgBpAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIAac7st+wAIABMAEMARAAA + dGV4dAAAAABDb3B5cmlnaHQgQXBwbGUsIEluYy4sIDIwMTEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAFhZWiAAAAAAAADzUgABAAAAARbPWFlaIAAAAAAAAGXbAAA6RgAACaRYWVogAAAA + AAAAaMsAAKyrAAAaoVhZWiAAAAAAAAAoMAAAGQ8AAK7oY3VydgAAAAAAAAQAAAAABQAK + AA8AFAAZAB4AIwAoAC0AMgA2ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYA + iwCQAJUAmgCfAKMAqACtALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwEN + ARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkB + wQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKi + AqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oD + xwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUc + BSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8G + wAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiW + CKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4K + xQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0m + DUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P + 7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLj + EwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYW + SRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxnd + GgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd + 7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yIn + IlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm + 6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvR + LAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIx + SjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbp + NyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9 + Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9 + Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdK + fUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGb + UeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZ + aVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFP + YaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp + 8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3Km + cwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8 + IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wr + hg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56Q + BpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/Jpo + mtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTil + qaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDq + sWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9 + Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6 + ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHW + VdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj + 4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXx + cvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t + //9wYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKwHZjZ3QAAAAAAAAAAAADAQAA + AgAAAAQAEAAoAEsAewC4AQIBUwGxAhwCkQMVA7EEYAUiBfQG1gfKCNYJ9wsfDGoNwg8k + EJoSIxOsFT8W9BibGlAcDR3NH4ohVSMbJNsmoyhkKiUr3i2ILx8wsTJHM981dDcLOKA6 + NTvAPUY+0EBTQdBDS0TBRjBHm0kDSmZLw00XTm9PuFEEUkxTj1TPVhJXUliIWcBa9Vwh + XUxedV+WYLxh3WMBZCFlPmZXZ21ohmmcaq9rwWzPbd9u7m/4cQJyDHMZdCV1MnY+d0l4 + WXlpemt7RnwbfO99xn6if3yAWoE4ghqDAIPohNGFwIaxh6aInomaipeLmoybjaKOrY+5 + kMeR1ZLlk/OU9ZXqltqXzZjBmbWaspuwnK2drp6xn7WgvKHCosmj0aTWpd6m5qfpqO2p + 8qr1q/Ss8q3vrvOwD7Ewsk6za7SDtZ62trfLuNu567r7vAm9Fb4gvynAMsE+wkrDWMRm + xXbGiceeyLTJy8q/y6LMgM1czjjPE8/u0MXRmtJx00XUFtTp1bvWjtdi2DTZBdnX2qzb + gNxV3SzeBN7V33vgH+DA4WTiCeKw41vkB+Sy5WHmD+a852roGOjH6XTqIOrK63fsI+zM + 7XXuHe7C72vwFPC48Vzx//Kk80rz8fSS9TH1z/Ze9un3V/fC+Br4YPim+Oz5c/ob+67+ + I///AAAABAASACwAUgCGAMgBFQFjAb4CJwKhAycDtwRgBSAF6gbEB7QIuAnNCuoMIA1o + DsMQIxGNEwgUihYdF7sZXRsDHKseVyAOIcEjfCUpJt4okiozK6stDy5rL8kxLTKPM/U1 + WTa/OCI5fzrfPD49mj72QFFBpkL6RElFmEbiSCdJb0qrS+lNI05bT5FQx1H7UyhUVFWA + VqNXxljmWgNbIlw7XVlec1+IYJxhrmLBY9Nk42XxZv9oDmkcaihrNGxBbVJuZW90cIlx + mnKyc8t00XW2dpJ3a3hIeSh6CHrqe818sX2bfoR/boBbgUqCOoMshB6FEoYHhvyH8ojr + ieSK3YvVjM2Nw466j6qQm5GOkoGTdZRulWeWYJdcmFiZV5pWm1WcVZ1VnlSfVaBVoVSi + U6NVpFOlT6ZNp0moUKl2qqarzqz6rh+vSLBvsZSys7PTtPW2FbczuFK5cLqOu7K81r37 + vyTATsF8wq3D4MUMxhvHFMgHyPrJ78rly9zM0M3Fzr3Ps9Cn0ZvSj9OE1HjVadZX10TY + M9kf2gra9Nvf3MPdkt5d3yjf9eDD4ZDiXOMp4/bkweWI5k7nE+fX6JrpWeoX6tbrkOxL + 7QXtve5x7yXv3vCP8UDx8PKk81j0CvS29WL2D/a791X35/iJ+Tj5//rt/Av9Z/66/zP/ + d/+7//8AAAACAAsAGgAxAFAAdwCnAOABHwFhAa0CAQJgAsgDOwO5BEIE2AV+BjEG6ge4 + CIwJbApcC1IMTw1VDmIPdxCTEbMS0hP1FRUWOxdaGH0ZnBq6G9Mc6x37HwcgFyEpIjoj + TSRfJW4meieGKJApmSqgK6YsqS2pLqgvpDCgMZUyhjN6NGk1VzZENy44FTkAOec6yjuw + PJs9iT55P2hAUkE/QihDFUP9ROVFyUatR5NIekldSj9LI0wGTOlNy06tT5FQdlFfUkZT + L1QXVQNV8FbRV6VYdVlBWhBa4FuxXINdVF4lXvlfzGCeYXNiR2MbY/BkxWWYZm1nQGgW + aOtpwWqVa2lsPG0MbdFujG8/b/JwpHFTcgVyt3NndBd0yHV5dit23neReEZ4/Hm1enB7 + K3vpfKt9b34yfvl/woCNgV2CLYL9g82Em4Vthj6HD4fgiLCJhIpXiyqL/YzRjaSOe49S + kCqRA5HckrmTlZRylU+WM5ccmAiY85nhmtCbwpyynaSem5+ToIuhhqKEo4aki6WQppWn + nKinqbOqv6vNrOCt8a8FsBqxL7JJs2S0g7WitsO35LkMujG7WbyCva2+2sAFwS/CW8OK + xLPF3ccKyDLJYcqsy/vNQ85/z7rQ7dIk02XUpNXy11fYydpM2/Tdv9+44ebkUecj6mzu + avN2+ln//wAAbmRpbgAAAAAAAAY2AACVRgAAVs8AAFKpAACRTgAAKHIAABcKAABQDQAA + VDkAAtwoAAKo9QABczMAAwEAAAIAAAAYADIATQBmAH4AlgCuAMYA3QD0AQwBIgE6AVAB + aAF/AZcBrgHGAd8B+AIQAigCQgJcAnYCkAKrAsYC4gL/AxsDOANVA3QDkwOzA9MD8wQV + BDcEWgR9BKMEyQTyBRwFRwVzBZ8FzAX5BigGVwaHBrgG6QccB1AHhge9B/QILAhmCKII + 3gkcCVsJnAnfCiMKaQqwCvkLQwuSC+EMMAyFDNoNMA2JDeQOQQ6gDv4PYA/GEC0QlBEA + EXAR4RJUEs0TRBO/FDwUuRU7Fb8WRxbSF10X6xh9GREZqRpDGt4bfRwhHMUdbB4SHrwf + ZyAVIMUhdCIlIuIjxiSyJaEmiid5KGcpVypEKzAsIC0LLfYu4S/KMLMxnDKDM200VTU7 + NiI3Cjf0ON45yzq+O8c82z3uPwFAGUEpQjlDTURfRXJGhUeYSK5JxUrdS/tNGU41T15Q + hVGwUtpUEVVIVoVXxFjmWf9bIFxBXWhelV/AYPBiJmNkZKRl5WcraHZpxWsWbG9txW8a + cHRxy3MmdIB113cweIl543tyfSN+4oClgm6EO4YVh/WJ1YvGjbiPr5Gmk6GVp5etmbGb + uJ3Dn8Oh36SSp1uqGKzTr4CyNLTft5m6VL0Uv9/CvMWQyH7LcM570XXUkde72t3eA+FJ + 5Kfohu2W9XX5NPrX++382f2m/qH//wAAABYAMQBLAGYAfgCXALAAyADgAPgBEQEpAUEB + WQFxAYoBowG9AdYB8AIKAiQCPgJZAnQCkAKsAskC5gMEAyIDQANfA38DngPAA+IEBAQn + BEoEbwSWBMAE7wUfBVEFhAW3BesGIAZWBowGxAb8BzYHcQeuB+wIKghqCKsI7gkxCXYJ + vQoFCk8KmwroCzYLiAvbDC4MhgzfDTkNlg31DlUOuA8aD4EP6xBWEMIRNBGnEhwSlRMQ + E4sUDBSLFQ4VlRYeFqsXORfIGFsY8BmJGiMavhtcG/4coR1FHekejh83H94giyE0Id8i + iyNeJD8lKCYOJvQn3ijHKbQqnCuILHYtYy5RL0AwLzEiMhQzCTQBNPc17zbqN+g46Tnu + OvQ8BT0YPis/QEBYQWtCgUOaRLFFzEblSAFJH0o/S2FMiE2sTtZQBFEzUmBTl1TSVgtX + TVh4WYRak1urXL5d3F78YBZhOmJgY45kvWXqZxxoUmmKasJsAW0+bndvs3DwcihzZ3Sh + ddl3EnhLeYV633xiffd/j4Engr+EWIX5h5uJO4rhjI6OPI/tkaCTV5UZluWYrpp+nFWe + MqAOof6kKKZfqJKqxa0Br0Kxg7PQti+4krsCvXnAB8KUxTbH3sqSzV/QHtL81ebYxNut + 3rnhxuTf6I/r2e6c8Ofy1PRz9fj3tP//AAAAJQBPAHgAoADHAOwBEgE2AVwBgAGlAcsB + 8QIYAj8CZwKPArkC5AMQAz4DbAOdA84EAgQ3BG4EqATjBSIFYwWlBegGLQZzBrsHBQdS + B6EH8ghFCJsI8wlNCasKCwpuCtQLPAusDBsMjw0GDYAN/g6ADwIPihAXEKIRLRG5EkcS + 3BNxFAsUpRVFFegWkRc7F+YYlxlLGgEauht2HDcc+B27Hn0fRCALINYhnyJrI04kPSU0 + JionIigdKRwqHSseLCctLi46L0kwWTFwMogzpjTDNeQ3Cjg0OWM6mzv3PWk+4EBkQeVD + ckUBRpZILEnGS19M+k6PUChRvFNLVOBWb1f+WYVbElygXjhfy2FjYv9koWZAZ+Npimsz + bOJui3A5ceVzmHVFdvV4qHpdfAR9pH9KgO6CkoQ0hdyHg4kkisaMa44Nj62RSJLhlH6W + Hpe7mVWa8ZyOniufwqFhovuklaY2p9KpZ6sFrJmuM6/LsWmy+LSVtiy3xLlduvS8i74o + v8nBZ8MHxKTGT8f5yZ7LTM0Czp3QG9Ge0yrUv9Zn2AjZudtr3Q7eruBX4ezjbeTk5lPn + uekU6lDrg+yt7cbu0e/U8MbxtfKQ82z0LPTr9Z72SPby94j4HPiv+S/5qvok+p77Avtm + +8r8LvyH/NH9G/1l/a/9+v5N/rn/Jv+S//8AAHNmMzIAAAAAAAEMQgAABd7///MmAAAH + kgAA/ZH///ui///9owAAA9wAAMBsbW1vZAAAAAAAAAYQAACchAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAA== + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + FitInWindow + + Frame + {{9, 4}, {957, 874}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, -54}, {755.081, 661.385}} + Zoom + 1.0886243581771851 + ZoomValues + + + Canvas 1 + 0.0 + 1 + + + + saveQuickLookFiles + YES + + diff --git a/MAP/doc/map_supervision.graffle b/MAP/doc/map_supervision.graffle new file mode 100644 index 0000000..ae06d4b --- /dev/null +++ b/MAP/doc/map_supervision.graffle @@ -0,0 +1,3602 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGrafflePro + 138.17.0.133677 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {756, 553}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2011-01-30 20:48:12 +0100 + Creator + Vance Shipley + DisplayScale + 1 0/72 in = 1.0000 in + GraphDocumentVersion + 6 + GraphicsList + + + Bounds + {{273.585, 386.41}, {8, 12}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + Font + Helvetica + Size + 10 + + ID + 84 + Line + + ID + 83 + Position + 0.77357888221740723 + RotationType + 0 + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf2 N} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 82 + + ID + 83 + Points + + {249.523, 354.182} + {285.799, 403.599} + + Style + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + HeadArrow + 0 + TailArrow + 0 + Width + 2 + + + Tail + + ID + 78 + + + + Bounds + {{246.659, 402.092}, {116.358, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 9 + + ID + 82 + Shape + Circle + Style + + fill + + Color + + b + 0.8 + g + 1 + r + 0.8 + + FillType + 3 + GradientColor + + b + 0.4 + g + 0.8 + r + 0.2 + + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs18 \cf2 permanent +\fs22 \cf0 \ +map_rsm_fsm} + + + + Bounds + {{181.574, 386.33}, {6, 12}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + Font + Helvetica + Size + 10 + + ID + 81 + Line + + ID + 80 + Position + 0.77357888221740723 + RotationType + 0 + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf2 1} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 79 + + ID + 80 + Points + + {211.242, 354.255} + {176.769, 403.474} + + Style + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + HeadArrow + 0 + TailArrow + 0 + Width + 2 + + + Tail + + ID + 78 + + + + Bounds + {{100.337, 402.092}, {116.358, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 9 + + ID + 79 + Shape + Circle + Style + + fill + + Color + + b + 0.8 + g + 1 + r + 0.8 + + FillType + 3 + GradientColor + + b + 0.4 + g + 0.8 + r + 0.2 + + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs18 \cf2 permanent +\fs22 \cf0 \ +map_dsm_fsm} + + + + Bounds + {{150.793, 300.031}, {158.332, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 11 + + ID + 78 + Shape + Circle + Style + + fill + + Color + + b + 1 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 1 + g + 0.6 + r + 0.4 + + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs18 \cf2 temporary +\fs22 \cf0 \ +map_pm_sup\ + +\fs18 \cf2 \{one_for_all,0,1\}} + + + + Bounds + {{276.515, 284.481}, {8, 12}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + Font + Helvetica + Size + 10 + + ID + 86 + Line + + ID + 85 + Position + 0.76724845170974731 + RotationType + 0 + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf2 N} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 78 + + ID + 85 + Points + + {335.43, 250.297} + {263.856, 302.671} + + Style + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + HeadArrow + 0 + TailArrow + 0 + Width + 2 + + + Tail + + ID + 19 + + + + Bounds + {{566.231, 386.41}, {8, 12}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + Font + Helvetica + Size + 10 + + ID + 75 + Line + + ID + 74 + Position + 0.77357888221740723 + RotationType + 0 + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf2 N} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 73 + + ID + 74 + Points + + {542.168, 354.182} + {578.444, 403.599} + + Style + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + HeadArrow + 0 + TailArrow + 0 + Width + 2 + + + Tail + + ID + 64 + + + + Bounds + {{539.305, 402.092}, {116.358, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 9 + + ID + 73 + Shape + Circle + Style + + fill + + Color + + b + 0.8 + g + 1 + r + 0.8 + + FillType + 3 + GradientColor + + b + 0.4 + g + 0.8 + r + 0.2 + + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs18 \cf2 permanent +\fs22 \cf0 \ +map_psm_fsm} + + + + Bounds + {{474.21, 386.328}, {6, 12}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + Font + Helvetica + Size + 10 + + ID + 72 + Line + + ID + 71 + Position + 0.77357888221740723 + RotationType + 0 + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf2 1} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 70 + + ID + 71 + Points + + {503.882, 354.255} + {469.403, 403.472} + + Style + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + HeadArrow + 0 + TailArrow + 0 + Width + 2 + + + Tail + + ID + 64 + + + + Bounds + {{392.982, 402.092}, {116.358, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 9 + + ID + 70 + Shape + Circle + Style + + fill + + Color + + b + 0.8 + g + 1 + r + 0.8 + + FillType + 3 + GradientColor + + b + 0.4 + g + 0.8 + r + 0.2 + + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs18 \cf2 permanent +\fs22 \cf0 \ +map_dsm_fsm} + + + + Bounds + {{443.438, 300.031}, {158.332, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 11 + + ID + 64 + Shape + Circle + Style + + fill + + Color + + b + 1 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 1 + g + 0.6 + r + 0.4 + + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs18 \cf2 temporary +\fs22 \cf0 \ +map_pm_sup\ + +\fs18 \cf2 \{one_for_all,0,1\}} + + + + Bounds + {{463.383, 284.729}, {8, 12}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + Font + Helvetica + Size + 10 + + ID + 48 + Line + + ID + 47 + Position + 0.76724845170974731 + RotationType + 0 + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf2 N} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 64 + + ID + 47 + Points + + {405.954, 249.832} + {486.018, 303.135} + + Style + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + HeadArrow + 0 + TailArrow + 0 + Width + 2 + + + Tail + + ID + 19 + + + + Bounds + {{212.266, 184.939}, {6, 12}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + Font + Helvetica + Size + 10 + + ID + 22 + Line + + ID + 8 + Position + 0.17890661954879761 + RotationType + 0 + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf2 1} + VerticalPad + 0 + + Wrap + NO + + + Bounds + {{330.573, 183.024}, {8, 12}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Color + + b + 0.4 + g + 0.4 + r + 0.4 + + Font + Helvetica + Size + 10 + + ID + 21 + Line + + ID + 20 + Position + 0.20757196843624115 + RotationType + 0 + + Shape + Rectangle + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Pad + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs20 \cf2 N} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + Head + + ID + 7 + + ID + 20 + Points + + {344.452, 199.373} + {296.862, 149.515} + + Style + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + HeadArrow + 0 + TailArrow + 0 + Width + 2 + + + Tail + + ID + 19 + + + + Bounds + {{290.569, 197.969}, {157.582, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 11 + + ID + 19 + Shape + Circle + Style + + fill + + Color + + b + 1 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 1 + g + 0.6 + r + 0.4 + + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs18 \cf2 permanent +\fs22 \cf0 \ +map_sap_sup\ + +\fs18 \cf2 \{one_for_one,10,60\}} + + + + Class + LineGraphic + Head + + ID + 7 + + ID + 8 + Points + + {207.748, 199.9} + {249.767, 149.814} + + Style + + stroke + + Color + + b + 0.6 + g + 0.6 + r + 0.6 + + HeadArrow + 0 + TailArrow + 0 + Width + 2 + + + Tail + + ID + 3 + + + + Bounds + {{192.76, 95.9081}, {158.332, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 11 + + ID + 7 + Shape + Circle + Style + + fill + + Color + + b + 1 + g + 0.8 + r + 0.6 + + FillType + 3 + GradientColor + + b + 1 + g + 0.6 + r + 0.4 + + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs18 \cf2 permanent +\fs22 \cf0 \ +map_sup\ + +\fs18 \cf2 \{one_for_one,1060\}} + + + + Bounds + {{128.117, 197.969}, {116.358, 55}} + Class + ShapedGraphic + FontInfo + + Font + Helvetica + Size + 9 + + ID + 3 + Shape + Circle + Style + + fill + + Color + + b + 0.8 + g + 1 + r + 0.8 + + FillType + 3 + GradientColor + + b + 0.4 + g + 0.8 + r + 0.2 + + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;\red102\green102\blue102;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural + +\f0\fs18 \cf2 permanent +\fs22 \cf0 \ +map_load_fsm} + + + + GridInfo + + GuidesLocked + NO + GuidesVisible + YES + HPages + 1 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Layer 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2011-03-08 00:24:54 +0100 + Modifier + Vance Shipley + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 41 + + NSLeftMargin + + float + 18 + + NSPaperSize + + size + {792, 612} + + NSRightMargin + + float + 18 + + NSTopMargin + + float + 18 + + + PrintOnePage + + QuickLookPreview + + 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 + o/45gOI5sF6h5gfD/I1ZSEAHja+qQGuh5nItvQamUnPF5TILWVPzr/4H2U+nfAplbmRz + dHJlYW0KZW5kb2JqCjYgMCBvYmoKMjU2OQplbmRvYmoKMyAwIG9iago8PCAvVHlwZSAv + UGFnZSAvUGFyZW50IDQgMCBSIC9SZXNvdXJjZXMgNyAwIFIgL0NvbnRlbnRzIDUgMCBS + IC9NZWRpYUJveCBbMCAwIDc1NiA1NTNdCj4+CmVuZG9iago3IDAgb2JqCjw8IC9Qcm9j + U2V0IFsgL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUMgL0ltYWdlSSBdIC9Db2xvclNw + YWNlIDw8IC9DczEgOCAwIFIKL0NzMiAyMSAwIFIgPj4gL0ZvbnQgPDwgL0YyLjAgMjIg + MCBSIC9GMS4wIDIwIDAgUiA+PiAvWE9iamVjdCA8PCAvSW01IDE3IDAgUgovSW00IDE1 + IDAgUiAvSW0zIDEzIDAgUiAvSW0yIDExIDAgUiAvSW0xIDkgMCBSID4+IC9TaGFkaW5n + IDw8IC9TaDQgMjUgMCBSCi9TaDcgMjggMCBSIC9TaDEgMTkgMCBSIC9TaDggMjkgMCBS + IC9TaDIgMjMgMCBSIC9TaDUgMjYgMCBSIC9TaDMgMjQgMCBSIC9TaDYKMjcgMCBSIC9T + aDkgMzAgMCBSID4+ID4+CmVuZG9iagoyNSAwIG9iago8PCAvQ29sb3JTcGFjZSAzMSAw + IFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCA4NC40NDMzMSBdIC9E + b21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gMzIg + MCBSID4+CmVuZG9iagoyOCAwIG9iago8PCAvQ29sb3JTcGFjZSAzMSAwIFIgL1NoYWRp + bmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCA4NC40NDMzMSBdIC9Eb21haW4KWyAw + IDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gMzMgMCBSID4+CmVu + ZG9iagoxOSAwIG9iago8PCAvQ29sb3JTcGFjZSAzMSAwIFIgL1NoYWRpbmdUeXBlIDMg + L0Nvb3JkcyBbIDAgMCAwIDAgMCA2NS4wMTcxMSBdIC9Eb21haW4KWyAwIDEgXSAvRXh0 + ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gMzQgMCBSID4+CmVuZG9iagoyOSAw + IG9iago8PCAvQ29sb3JTcGFjZSAzMSAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBb + IDAgMCAwIDAgMCA2NS4wMTcxMSBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFs + c2UgZmFsc2UgXSAvRnVuY3Rpb24gMzUgMCBSID4+CmVuZG9iagoyMyAwIG9iago8PCAv + Q29sb3JTcGFjZSAzMSAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAg + MCA4NC40NDMzMSBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2Ug + XSAvRnVuY3Rpb24gMzYgMCBSID4+CmVuZG9iagoyNiAwIG9iago8PCAvQ29sb3JTcGFj + ZSAzMSAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCA2NS4wMTcx + MSBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rp + b24gMzcgMCBSID4+CmVuZG9iagoyNCAwIG9iago8PCAvQ29sb3JTcGFjZSAzMSAwIFIg + L1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCA4NC4wODk2MSBdIC9Eb21h + aW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gMzggMCBS + ID4+CmVuZG9iagoyNyAwIG9iago8PCAvQ29sb3JTcGFjZSAzMSAwIFIgL1NoYWRpbmdU + eXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCA2NS4wMTcxMSBdIC9Eb21haW4KWyAwIDEg + XSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gMzkgMCBSID4+CmVuZG9i + agozMCAwIG9iago8PCAvQ29sb3JTcGFjZSAzMSAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nv + b3JkcyBbIDAgMCAwIDAgMCA2NS4wMTcxMSBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5k + IFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gNDAgMCBSID4+CmVuZG9iagoxNyAwIG9i + ago8PCAvTGVuZ3RoIDE4IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2Ug + L1dpZHRoIDM1NCAvSGVpZ2h0IDE0NiAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFj + ZSA0MSAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgNDIgMCBSIC9CaXRzUGVy + Q29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dCBAAAA + AMOg+VMf5IVQYcCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBj4HRhdygABCmVuZHN0cmVhbQplbmRvYmoKMTggMCBv + YmoKNjk4CmVuZG9iagoxNSAwIG9iago8PCAvTGVuZ3RoIDE2IDAgUiAvVHlwZSAvWE9i + amVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDM1NCAvSGVpZ2h0IDE0NiAvSW50ZXJw + b2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA0MSAwIFIgL0ludGVudCAvUGVyY2VwdHVhbCAv + U01hc2sgNDQgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAvRmxhdGVEZWNv + ZGUgPj4Kc3RyZWFtCngB7dCBAAAAAMOg+VMf5IVQYcCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBj4HRhdygABCmVu + ZHN0cmVhbQplbmRvYmoKMTYgMCBvYmoKNjk4CmVuZG9iagoxMyAwIG9iago8PCAvTGVu + Z3RoIDE0IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDM1 + MiAvSGVpZ2h0IDE0NiAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA0MSAwIFIg + L0ludGVudCAvUGVyY2VwdHVhbCAvU01hc2sgNDYgMCBSIC9CaXRzUGVyQ29tcG9uZW50 + CjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg9U9tDQ+I + QGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDjwMDWl4AAQplbmRzdHJlYW0KZW5kb2JqCjE0IDAgb2JqCjY5NgplbmRv + YmoKMTEgMCBvYmoKPDwgL0xlbmd0aCAxMiAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5 + cGUgL0ltYWdlIC9XaWR0aCAzNTQgL0hlaWdodCAxNDYgL0ludGVycG9sYXRlCnRydWUg + L0NvbG9yU3BhY2UgNDEgMCBSIC9JbnRlbnQgL1BlcmNlcHR1YWwgL1NNYXNrIDQ4IDAg + UiAvQml0c1BlckNvbXBvbmVudAo4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVh + bQp4Ae3QgQAAAADDoPlTH+SFUGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY+B0YXcoAAQplbmRzdHJlYW0KZW5k + b2JqCjEyIDAgb2JqCjY5OAplbmRvYmoKOSAwIG9iago8PCAvTGVuZ3RoIDEwIDAgUiAv + VHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDI3MCAvSGVpZ2h0IDE0 + NiAvSW50ZXJwb2xhdGUKdHJ1ZSAvQ29sb3JTcGFjZSA0MSAwIFIgL0ludGVudCAvUGVy + Y2VwdHVhbCAvU01hc2sgNTAgMCBSIC9CaXRzUGVyQ29tcG9uZW50CjggL0ZpbHRlciAv + RmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dAxAQAAAMKg9U9tCj+IQGHAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDgOzDOAwAB + CmVuZHN0cmVhbQplbmRvYmoKMTAgMCBvYmoKNTM5CmVuZG9iago0OCAwIG9iago8PCAv + TGVuZ3RoIDQ5IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRo + IDM1NCAvSGVpZ2h0IDE0NiAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xh + dGUgdHJ1ZSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+ + CnN0cmVhbQp4Ae3d519UWboF4O7p29pmRSUnRaKIoGQkK0hQkCwoUVGSZJQsiiAgGEEw + B8xO23acmb7zu//aXevd51QgKCAGtPYHW06dKoqH1WvvAuvs776zDIuAReBjCnz/7vEx + P/XX+Nia5j9mGz9wzHaj/q34GmE+6GtSMEY2UfwfGT/ObaiTp+jLw37QE1vqdxYBzZU4 + YNI9l2Es5/hpTkNO5X2WaQ9AcTyi/k3jZ1rqWvN6/vh6jbA6qzJVoCtWrFiJscowVs82 + DGes4h1wP/UAINe5Ta2/fmkDrSGwElWqiCm9YLlmzZq1MtZhrOfYMNuQW3maugPuuXq1 + qBu4aS3JNqb6q4TWbUnLr5eyAquSSlUaEZSYVlZWGzdu3CRjM4f1zIM3qbM24XwrK/lG + rF+vwDVtWvNTadJm0PP6X+9LPXmKrUaLFmBexVWp0hRYxLTBsLW1tbOzV8OBw3H6kOPq + FDs7O1tb3s/G2lrM4U1uha2CraSRaX6LCc2qwtP7UuXm8LwMuJJb2LINSIvISl6ZVmEV + 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 + wN1UVaxwRRsQlqFlalEJ6ATmlq2w0UpProbL3v3SdXV5g7IeZq4yTJ3ZGza2SLRIM9Og + Zqo9PIkNbUTbd8cOPxQJhj8G4GYauEVO8fPbAVKiQlVYlevWLZosUiu0zC1t10ktKFxO + apjVPuuiTLebx39VL6vpTzpDmDXn9RsYaIEWaaF2coa16xbRBje8MUDuRXR9+KihfwhN + Ly9PTwQVUXXfhrC6baWqqwsTy6o1yhpoWbmw5ZRmjvvF9e57vbUw68xcZ8CZeZbiwDyo + pEGNUMMasbZ3YLBRIs4uLhSnOdQ5wGc65Bhuk5NISlMnR0cHYWVibaw3M7MMraRWaE1t + 9eR+UWuG97JOPcHALKu5H5ctW26ARqJR0ZgKhdpqI2K9abPStrG1VeAwBzqG4/Qhx3kC + gmpnZ0tTqFpDVXcFLPoAskitotVyy87VamHpJXcqsXw8xVmHVpGWUNN67TqlvcHKCt4E + x9jMYT3z4E3qLER1oxXDirgq1rVrNFgpBL6GYN8KrdgiuF8Jrom47syfy/H1CVZ1iDQz + /RMWHewPYiPZwk1wkmOI3Ex/yK08jd8fhFVTRWDhiqaVrhVZc9qvz9aE+Tv8FJ+/KuH4 + gdSUprWOTW56CzjRqT7LkJvlD95BQyUrEqvDog9UaJnar5zWzJnQptR6rDVueqt4M4nv + HnIqSDVUVgF7Vof95mTNnfGRUOuxlmBLtskk8X7/HzxVmWpp5f8g8rDTPtk3f0BpG7lJ + ZTIYTEM0TY6rv2p3/qaaYDESo7vN8t/F+BSWx7AIWAQsAhaBr1rg/wGkJicMCmVuZHN0 + cmVhbQplbmRvYmoKNDkgMCBvYmoKOTY3NgplbmRvYmoKNDIgMCBvYmoKPDwgL0xlbmd0 + aCA0MyAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAzNTQg + L0hlaWdodCAxNDYgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVycG9sYXRlIHRy + dWUgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJl + YW0KeAHt3edfVFm6BeDu6dvaZkUlJ0WiiKBkJCtIUJAsKFFRkmSULIogIBhBMAfMTtt2 + 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 + Ug2VVcCe1WG/OVlzZ3wk1HqsJdiSbTJJvN//B09Vplpa+T+IPOy0T/bNH1DaRm5SmQwG + 0xBNk+Pqr9qdv6kmWIzE6G6z/HcxPoXlMSwCFgGLgEXgqxb4f81VJw0KZW5kc3RyZWFt + CmVuZG9iago0MyAwIG9iago5Njc3CmVuZG9iago0NiAwIG9iago8PCAvTGVuZ3RoIDQ3 + IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDM1MiAvSGVp + Z2h0IDE0NiAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvSW50ZXJwb2xhdGUgdHJ1ZSAv + Qml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4 + Ae3d919U17oG8JyccxILKoqK9N5BivTekSII0hSlg3QUEVGaKCoWQAEV7D22xPTk5p7z + uf/afZ537T2FkgBCombWDwnM7D3MfH181hqEvT77zDIsAhaBNRL4x++PNfqqn+jD6paf + LzL+ybHIfZ9/rp39idqs+GUJixFNDP8l499LG+rgOfbyqCt+Tp/AiQTQVWFDJI3zC44v + OdYtacihPEc7nw9Fbe3R+YU+Aa+lvgSjq1IVFAWqNNevX78BY6NhWC02DEds5Ak4Tz0A + vHVsJa2gP3VnA6y4aqxaRkkqWlZWmzZt2ixjC4Y1x9bFhtzLw9QJONPKSh7FgE1p+UqS + aHH+BJlNZFUJ8K8/sqap0pRC5BTKbdtsbGy2q7EDY+fCg3dpR+H4bdvkXGtrxa1ZU5qp + 1pzJbEjzUv/GfcjHgVZeDwsWQQKsckXMwGpEhSipYGnLsWuXnZ2dvQwHDsf5Q25Xh+DY + XbvkvJ07hRzaxFbUKtTKGXlmnHVlPLsPGe/3n5tGq8uqxLIFlCuzKqrKFKLAoqQThrOz + i4urDDc3N3cOD/Mht+E+NznIxcXZmac5Ojo44FHADW2hVtLWbJBN7A5hVsp6lj9CZDNa + LbOQlR7YIq7MKqKKmAKVpAoUlnD09PTy8sbw8fHx9fX1Mwx/NQyf+/nhbh8fHurl5emJ + M93dKQ5uYgs1pHeyRZhoA7NSlmrWovzxICtblVqhXS+yqFcNVrkqVmekFAEFKUGh6efn + 7x8QEBgYGBS0e3cwR0hISOjCA/fIEbt3BwXhjMAAf3/Q+9LbC9iwBjWkCc1E01lnZpg3 + oJm/lMIwIP/+38i//F5VtrBl1aJpTWi3oV8hyxZwYFrh6i6qPjSFKECBCcmwsD3h4eER + EZGRURzR0TEYsXMHb4yOjuYRkZEREThjz54wnA1yeBNbUYu05qyYNWVUhgGZpfyhGxty + S1raqqLdwpbVZFEEgNVcFauGStIIeEYTMi4+PiEhITEpKZkjJSU1NTVt/sCtKSkpPCIp + KRHHx8fH4dwYiEdCm9akDtKh4Yw8I85IM8MMZdUYpsioZM7GH96sJ8GV3Bpiu3kzaRFa + W1s7VixlPTy8UAKMK1xDQqGqocZBNBGeKZRMz8jMzMzauzcbIycnNzdPG/v0od+Qm5uT + k4OD9u7NwhkZ6elpaakQJzexY4Qa0oAWZ1QHmV1ddeWdKIytW5lkrS0QZJVjpOUvbwPt + CWilgE7QbbHuspbUCq2Tky7r5wfY4ODQUHGNRlITEogqpFnwzIHlvvz8goL9hYVFRUUH + iotLOEpLS8s4ytWQj8twI+8rLj6AIwsL9xcUFOTvy8vLBTi4M2gNakjHxiLTEUy0xizK + kmWJMpC3cepDkKWRxfhDibFZcFm3mziPbZNCYNGS1pOZpSwSGx4RFRWjXMGagZgSdV8+ + ROEJSiAePFRRUXH4SGVlZVVVNUZNTS1GndnADTU1vLOqCscdOYwzDh0sLy+DOcChTesc + kU5LS2Gk49kdYEaadwcG+Pn5eDPKKAwgc+qzMRpzzlNV8demWOHqwUXfGmzt7FEIitbP + 3yAbrWBT6ZqdDVaqArWMpAStqq6BY31DY2Pj0aZmjJbW1tY2jnYZHRzqQ7m1rbW1pQWH + NR3FGQ31dXW1MBduYJeVlChpZhqJZp4TE+KQ5khRDgr015GdHNnJuvHGjVxY6DH+q4jN + cDfwTYOWW9q6uLqjajXaPeFRlE1EEaQDNoeuRUXFZKVqdTVMQQrQFmC2d3R2Hjt+vKur + 60R390mOnp6eUxi9xsFPcavc2919AsceP36ss7Ojva2tFd7gBnYtqQ9XaND7C/Yhz1mZ + 6UizUo4IDwtBLytkN1cY29MYXbF5s1TFX0hsiotWkODabN+JmYy2bAQUwu6Q0D0RoI1P + SKLsXiQ2vwB5LaUrs1pXT9UWmJIUnrAk4+kzfX19/f0DA4MYQ0NDZzGGzQdvwj08YGCg + vx/HnzmNM0/BnN7AhnULpQldJc6lyPP+grzc7L2izMZAYaAvggL8fNEWYoyuUHPeJrbx + X0I8BxeNy8K13aXb+vqhEVC1kaRFaDOY2fz9TKzAaq6tbR2iClRF2g/PIUCeO3d+ZGTk + woWLFy9xjI6OXpZxxTDkU9wu91+8eOECjj9/7tzwMMwB3i/YoBbpDmaazjXVwlxSrJSz + MtEYifHoC9QFgqyMXZBjFWPMeGyKP5uYulyJYbGA5CpcBhd96+6B3NIWsY2JY2pBm7uv + oPAAugCRRRE0NCKv7XTtJuuZPqCKKUgvwHP0MhCvXr02hjE+PiHjOsaNeQM3qrvHx3nw + tatXceZlkMN7ZESsRbq3t4eRPoZAkxlprjxScbAMWUZjoDDQFyhlBhnzHo3dsXxzUDG2 + Nide+yo2RBdvIKQWkNydtlgooBS80AnKFmWbnJqeqdGiDSrRBQ1HIdvRSdhTdB0cPDuM + oAoqSCkKT0hOTk5OTU1P38S4devW7du3ZxYbuA9H8MDp6akpnHfjBszpfQ3Yl0F9AbEe + Pjs4iESzO050dSLNmvLhQ+WCnJuNumCQoyKY4wA/Hy8PNxcsK3axKUjMouDCeK3feqjo + yjp3PTtXx8VCwdvXH30bFh4VE5+YzNiyENgHCG19Y5PInkBiTwN2aHgYrsgqWBUqTKcI + eouWs7N37tzFuHfv/v37D/Tx0HzoNz/AMffu8fA7d2ZncfZtek8DW6jHxhS0OA8JM5WP + dSDLjfWIsiAXFuTlZGUYjQP9fb2xdmNTkHgLp7t167QFxZqFWHSxGNN6wYDr7uktwQ2P + RCckp9K2oLC4tLziSFVNndAe6+qm7AATS9jLyhVRpSpRZykKT7A9fPjo0WOMJ0+ePH36 + TB/P5w79jmdPnz598oQnPH706CHOhze1YU1qSBOazugOMCPNAwhzz8mu4506ckV5aXER + jPfSOC4mClWBGLMpQIz5bpsQm4R4Dd7a8dvkWusiutZbbXbY2jk4uSpcBjc2IYmdILaM + LQuhrUNozzCzlB1lD0xMiKvOeg+oQgpPoj1//uLFVxwvX758hfH69wYPwHFy/IsXz5/z + ARQ3rSmtQdNZMY9euijK/X29pxRyU2MdgnywjMbZWempyQmoirAQtLEQO9hj1aZ6gpPd + mtSErsvW3bSZ0d1l7+SCWvALQCtERMcmJKehb/MLD5SKbWNTa3snUwvas8PnRXZsbOL6 + 5OQ084q4KlbElCFVpPQk5ps3b9++/VqNbzjeLTzkPu04nPHmzRueDW9wA1uokWoFDWfk + eXpy8vrEOMLMLCPKQO7p7upsb21urKuBcWkxuiI7Mw1TXnTknlBFjC62s2VPSBOjJla7 + iEUXtYsFA1sX0bV3dHZF5wYEheyJiI5D4zK4RSXlzC1tj3WdPIVCGFK0KrOQnZlRsCgA + hvU5g/qSpiSlFC2/lfEdxvccP/zekCN4qDrp3TuY42GILdSUBvRTFAickWcwa8pj1zAD + CnLfaQT5WAeNqysrykuwsMjJSk9BU0TuCdmNovBwc0ZPSIitsGJjEa/iVGfUlWKQ6KIX + fPwDg5HcuMSU9KycffsR3MNVtQ1NLcgtbBHbcyMX0QcM7RQzK7IPHylYzVWpaqbiKZg/ + YvzE8fOSBo/kKeoP4vvvlTaslTQi/QqRhjOZkWYoz0B5ClEG8ugl1MVg/5leGLe3siuO + HCorLszP3ZuRksQUhwT5+3p5uDo5YLLbZo25ThUxhVehh7VZDdml7rbtaF1G1y8wOJSd + S9z8wmIV3OY2zZaxvXwF6y3Ssg3uo2IfP1GJlbwircgqUgdVzdTg+QvGrzL+ZylDHcqT + tD8N0eaDghpfQaCRaFaHpFmU79+9yygL8lUEWYyR4862lqP1NRJjIU6Mi44IC0YVM8So + iW1bdWFpifcUnq/r6OyG6KIXgJucRly2Qk390Zb2Yyd6evuY20uXJbbTN5la0DKz6AI2 + wRvCiqv8zWdORUWJGjh/k/G/ZuM/JsPsDnXwb/rJ9NasKW10Rp6NysjyowcKeRpTHypZ + jPtO93Qf72htaqjViLPSOd2Fh+4O8PFyd3FCTdhsxZKYLcGZ7v1Wa6gGrhnWrdOya+/o + 4u7lG4DoRscnoXP3SXJrGppaGdwzA0Oa7Y1JxvbuPdA+Bi1K1iiLVv3hB81VgqpcjKAm + jMv9ULHzodSDElpSrTkjzmwNUUZjsDDQyqgLBJnGly+NnDs70Ieq6GxrbqytQhkX5udg + uouP0ULsqgmrHn4/Ya14v1yHWY3NYI/lGIthTyR6IWNvXsGBMiS3oYmtgOCiFEavsG5h + y9g+MtBqmZUmUIFlXIUAFEQxh/zvyob5g/BhdWg90D9JmnVlFMZXX6GVJcg0Zo6vjF4c + GR40ECPFxfvzsjNSEmOj9oSwJkRYelhWayuuYUM1YEW2ZSt0HV1YuyHhUXGIbk5+UcnB + I9X1klziqlKYnDbaSiG8kTpQmWUT6LDK1URkcdL/W3wsftJ/jQ9tdNaYDcqM8uvXKOVn + zxBkyfH05PXxa4gxiE9LihtqKg+VFhXkZqUlxaEmgjRhznR4U/flikuC4WU1rOd6d/tO + OzSD6EbHJ6chupjRquoaWzpUckcuXbk2fmPq5u1ZLbcvvnrFqmXTqjYwlTXN6yJCi5Mu + es8ij2RwNmFmZ6CaMQF+x75AXbzixPeEhTw7I1VxBU0xJCluPVpXfbi8BCFGE0ebCHM9 + bKjh5c5zqnlVNdjs2OXg7O7F7EYnJKejdUsOohea2491q+SiFYA7c4d9+/SZ2CK2WBvQ + FqlFaFkGrALDy12QY1G85dyx4CMb8qyXBrIMZEx/XGO8+/prMZauuIeqmJ5EU0iKe08e + b0cVM8T5qImEmAjJsIuj3U5MdFYrizC7QQuvVIOTm5ev0s3Izi8qRXSPYkbrOTOAWgAu + WwGTGRZgzzGTMbcqtgZaKVmNdqGXvxy+JR+70BfS/3ipjD9xWWdIkDVjdsWTx4ixKfGp + E51tTXXVFWVFBTmZEGaGvdydHWx3sCQkwstbSIBXlg2Y17ba7LRzcvXwCQwOj4pPpm5Z + RXV9c9sxzGhD5y9evjZxg7j39eCa2TK1JrQLveAla634wAW+qqZsQGaQURbffouuYB8j + xmjjWS3F58/2S4gbUBMHRDg6PCTQ15MT3XbTCC+1I/RuUPMaqsHbPzgsKk50yw9XNzSj + dc9wRrs6fn1Kx2Vwv/763bffaZWg26rXMv9FrthrZSfOfwLqic0xlj5+A+LnQowU3xi/ + OnphePBMT1dHS2PNkfJiCsdH7QkO8PZwcdiFCKOF8d1hroWXBkxemdg2W0t4Pf2CQiNj + k9KRXeg2tnR2neobPHeRvYDOvf/g8VNpBVUKUrearRaTeS9tZUKrcNa8Z2IMspSF5Bh9 + zBi/0olvTl5HFZ/HZHeis5XCBwqyM5LjosJ2+3m5qQhLRywVWONlN2BR5uzhHRAcHpOA + NQObAbonevvOonXHb0zfnkXnPn2G5LIVMJkBV2YydMIitquA9L4PsQgygqwZoyoQY534 + wb07t6cnx69eGkFNdCthzHRpibEoCR9EWOsIvJ1bUoK1mW2D1ZatO3Y5ujK8UfEpmbn7 + SyqqG6jbf3Zk9Cqje/f+oyfPXrAWpBU4mSG4xkXCnBfyvi6rev6c56ZWF6orZF2hE6OL + sWq7O3NzcuIaamJAhKsPlxXlZaUmSIRdnex2bMNKjUvhJQBrvKjebTvtndzQvOExienZ + BcUHq+qbO6A7PDJ6bWLylkT3+VfARXJ/+EHH1Rdgc5//quKs0oPNeY6GPuayAk2hiN+8 + xori8cN7s7emro9dVsLNDdUVJQU5GUmxESEB3u7O9jttUMJLAhbeL9dt3GRtw27wCQyN + jEvJzCsqP1Lb1I7eRXbHrk/dvnP/4RPpBamFObhznvd/V4ljTR5mznMVY60pNOJvvkYV + I8T3URMi3N/b1dFcV1l+YB8jHBrkq3UEZ7k/SrCRd7utg4uH3+6w6IS07AJUQ2PrsZN9 + Q8iu6D56ItF9hzdnP2q1oCV3zhNeE5TVfdA5z9iEGCnG2w+pYk52qAkKj5ztO9XV1lhT + Ubo/Jz0pJjzYz9PVkSX8x8Dg5cph42Zr8KJ6g8Njkxneyrrmzu7Tg+cvXZtAdjGnoXXf + she0CU1/X2b+VFeXYU0fzfyJG4lRFFgZc0Hx+iVqQgmPjgydOdnZUl9ZXpSXmRwbEezv + 7eq4awnAfFtB3k3gdXT18g+JiEvJ2ld8qLqxretU//DFKxNTtzRdtK5EV01o8oTMn+Oa + cqzFg5s/fXNiCfEb1ASEb09NXL10bqC3q/1oDVo4OzU+MjTA281JgNHBv7NMM+P1DgiJ + jGc3HK5t7jx5Zmjk8tjkzdn7j5hdLBi+x5QmywW1EjN/dmvx+v+ExzR/EYoYizYtxO++ + fvOKGb5za3L8yoWzfSc7m+uOlO3PSUMJBxqAvwDwIu8zpHzXbeDU5uDqHRAalZCWU1he + Wd96/FT/uUvXrt+cuafrSjFgLbZQ6f4JEGv3JeYTy2z3K5v4OxF++uj+7M0bY6PnB3u7 + 2hqqyoty0xN1YK4iFgVWc9t6qy0G3vTcovIqdMPpwZEr45O37z548lyyyzmNxbBAdNfu + lf9pj2xGbAyxLvzyxZOHd2emJhDhM93tR6sPHcjLSIxmgjHJWW/asG6xRQTb4cv1Gzdj + 3evqxfSm5xUdrD7acbJvmOGdvf/42VdshsV1/zSCtf5CpsRG4V9Uhl+zhu8gwpeG0RFN + NRUH8jKTCOzqYGuzxQqrtAUbgvHl0mHrDntnT78Q4T1U09R5sv/c6BjC+/Dpi1dYM7B3 + Ddk1fR4f9DJ32X8gZq+MxHz3LC3x7TdvIfzo3szU+OXzA6eONddWFOdloiICvFztd2KV + tkhD/APf8GX5bt/l5OEXHJGQllt0qKa5s2dg5PLE9IwK7+K6y34BH/4JpsRG4Z+wlvj6 + zcvnjx/M3py4MjLYe7y5DsAZCVEhfh7Odtu3qoaYN8VpaweUr6Obz+7wuLScooPgPYXq + nbh558ETCS+q4Re9d02//IePtaJnaPoSdWEsiDnRvf7q6cO7t25cvUDgWlREekJEsK+7 + k+32RRpC4ivt4OodGBabkl1YXt1E3qvXb919yOZFeLkiU7Oa6Zde0XP/OE4yfZmaMFZr + PzLC6Ii7tyevXRgCcM2hopy02PAgVPDObWyIf81bo33+OSY3K9UOIVFJWQVlVUc7e8B7 + 49bdR89evvnm20WK9+OAWvGznCPM1dqvEuG3r54/vjcD4MHeY03V5fv3JseEBniiIbCG + mD/FsR44ue10QDtEJGTsK6lsbD85MHLlxu17j5+/evvuu4XDu+Ln/fGcaCJsLAlG+PWL + x/cF+FRnY1VZfmZiJBrC0ZYBxhrNvIFRD18wvnbOngFhsak5RRV1bd19569cv0VedIM0 + r7ydMPl6Hw/Sez1Tk1eslwSWagr49o2rIwMn2xuOFOelxe0J9HKxxxSHNdrnn5v9Y5Ex + vr7BkYlZBeXVzV2nh0cnbt4VXumGuc37Xs/54zrZXFjrCAG+d+v6lXN9J1prDxXuTY4K + 9sMUJwE2XwOr2W2LFt+0PLRD56mhS2PTdx49Q3qNvMYv9HEBvfezNb5wRJiL4V9+YoKf + P757c2L0LCq4qnRfenx4oDcCbG21fs4MB98v129C+7r6ML77D6Id+keuTs48ePaSvFiV + zemG937CH9sDmAFT+JefAfzq2cM7U2MXBk+21VcUZUuAHW23bsYMZ1bA//ics5uNrZOH + f2hsKuJ79Fjv8OWJW/effPX2neJl8xi+xseGsyrP1/Dq+a91BEaC3758+mDmxpVzZ7qa + qxHg2DAsIXZt34IZ7p+mBSz1a73d3sU7MDwhs+BgbdvJgQtsh+evv/n+R6bXVPfTeiu8 + DHuDsA78/bs3X6Ehxi8N9rTXVxRmJUbu9na132Ftte4Lc1+uHrg48w2OSs4+cKSxE/G9 + fvvBU7YDvt9gxruMJ/SpHToH+Ocfv0NDPJiZRICPN1WW5KZEh/phiYYVhFkBs343bN6m + 6iEtr7S6+UT/yNjUnccvXr+z8JqGxAwY7zR++FYCPHYRDVxbnp8etyfA08nWZk4Bo36/ + RP3ucvYMDI/PKMDs1jN0Ce2L+H7348//85tpOZh+tb/jx7owKwIVLAG+ff3ycG9nQ0Vh + ZgLeJLvYSQGbTHAyvWF15uIdFJGYVVjBergyOfPwGdpXtYP+qH9H0TmvWafgHIcAv3v9 + 4tHs5NXzZ44frTyQnRQV7OOKFRomuLm+mN6wOmP9VjZ19Y1cYz28QfsyvvpjzvlSf89P + dQwG+Ocfv33LGW7sQv+J5qqSnJToYF83hx1brbCAML5Dlvxa77CX6S2npAr1e2Hs5l0s + zr7F4gGTm/aQf0/Pea9a09AL4uXT+zcnLg2ebK0uzUuN4QS3cwFfq607HNz9QqJTckuq + W7oHL47fvMf6/YmLBwuvubEB+Ldff/qeK4jbE5eGOMHlpcWG+nnIAmJufrk8g29MKpYP + rScH9entp1/xbQf1eOZf42/9mQL5z39QwN9/8xq+10eHeuC7D77+Hk5coFl83yMhK/K1 + 9MNSxVfSDxst89uyedUCeGnz20bL+myJvlp68V2eZa3PLO8vluZrwruM9xeW98dL0/0/ + I+9y3h9bvr+zNF5dV74FvOTv73wm/7pp+f7kHxqb8f6Gd8dL+/7kZ5bvr/8hLQ+Yw/vL + T0v9/rrl34eW4GvQXf6/D1n+ffMPfc10l//vm/jhyY2Wf59fXNmMd9n/Pq8KWH48ij9f + kmn5+RJzaaOu1g38GbRl/HzJZygIy89HmZsaPzPXZTf8utyfj7L8fJ+Rc85H83XxoyXL + /fm+zyw/nzqHVfvURFeqQcLLH7Fe3s+nsiDkB1R32Ft+vtooPUdXqmFlP19t9vsBQZbf + D6DxArqohpX9foAKsOX3W343u/Kj6yv7/Rb4Wn4/a2Fc9i6bAbpcNqzw97MAbPn9Qg14 + bjEo3ff7/UIJMH/HxfL7sSa8jK4xu/wN5BX/fqwCtvx+9xzdVfv97s+kIQyXf7Bcn8AQ + XXWRjfe+PsFnlutrGLKrekEmNa7IeJGY97++BhvCcn2Y/8p64T+qF1R0V+n6MGwIvI2T + y0dZrm+EXxFa7esbmQJbrs+FXlCXNlq963NpwJzkLNeXk6skrvL15QzAlusjynXPVv36 + iALMSc5yfU91CdXVvr6nARiX4rFcnxYXsja/Pm3te1+fVgGrZQQvDm65vvIqX18ZwPhe + Dy+/brk+OK9yv+rXBxfgZV/fHheytlzf3uyiD7/3Cd/KsSMQYeu12J/B8E7U7APjN2Df + 4yOzRzR8Iu94+c0wbVMXw/4MWIZhqfDn7s8AeQDrEV7a/iLcAuMj31+EGzOY7i+CfQO6 + OtdmfxHVEaqFLfvjrMH+OFqE/8n9TFkSlv2dVnl/J7azamHL/mRrsz8ZgXVhw+6Fi+6v + h003LfvrMZTLG/OFV2F/SGxnatkfUv9z4EoCNaztwIm9yrA17x/tb8pteX9nf1N931jL + /qaCbBTGTLey/XmxV7dlf149sfP/L8KyEyd2M/y77S+NrXnXdn9peuvC2H3esj/6e24b + Oz+/IgxivOHAeni9HmJbe8MW9NhTNjImLiE5NSNL7UFfXnGkqgabebe0dcom9NjOG1ul + cxd6bI18dQybI6MzpqZvcu9pbpF8F1umYyv6Bw9lM3ps8I2d02VDeu4pj13p5wy5lf/B + UU+wozHGI26F/uA+d53Xt52/yX3nr6uN5y9zT/Tz2BR9oO9Mb4/aer65sb4We3ZjX3Ts + PZ+zNyMtGbt2Y5vN4CBs2+3p7sp9u7Gr9NYt+qbHavf5hYHe+1ZZS3Cqw1sOhHgL96EX + YmxE7+sfiJ3ow6Ni4rFbOo3z9xeVlHEz+tp6Ind0dp042dN7uq9/cGh4+DyZR68oZ0KL + tFDPzM7eofbde/AmuBoPzYd+Mzjv3yPo3Tt3ZmdnZrjJ/E2qCuv4GPY1xjbohD03PITt + 5il7Apuht7Uo2sOHyksOYM/5nCzaxsdGRewJDQ709/X2cHd1crTHlt3Ydx64G9bJtujv + vePxH/wZUFgLsTmxi6uHl49fQFBw6J6IqNh45Dg9Mzt3X0HhgZJyItfUNRxtpvLxru6T + p3rPgJlphvNFBX1tjJGeuE7ryampaQQb0b516/ZtxHuRgftwBA+cnp4C6eQNZnUcqtcU + 60VxPTsosKco29nR1tp8tLEOqRVa7DWfm51pYovg+nh5uLk4OShca2wmvUHtiA7cNSkG + c3MVYsx1Wk+oFNvZOzm7unt4+/gFKmN0RVIKg6yQy1AXiHJdQyOU2zuPkbmnl84Dg0Nn + hymtqC9fQaqvUntsHN4c1zFuzBu8Ve6mJ0VBegUdcOkiVEfODQ+fHRocYGCR2G5EtrMd + mVWyRyoOlpUcAG1edlZmWkpyQhxyi1LYHejnK63ACY3JJS42z/vyi3+veB9ec7wlfWYI + sSnxDttd9o5OiLGnt68Yh4VHRjPICpl1Ucy+OFyJVq5vPNrU3Io0w/nESUKfPtNHamVN + 7JELFy4i2hijo6OXZcBPG/Ipbpf74QlQFICYDg2K6mmyIq9wRWIJW19Xg8xWHCwvKS7a + X5CXS9pUVkJ0VDg6IUhsGVy0gu0O6Vwz3D8hukb9OcToYuutNihjO90YXREYHMKyIDKS + nJ65Nzs3L7+g6EBJKRoDzOiM+sbGJuQZgRbpblCf6lXYff39A/CG+NDQWYxh88GbcA8P + GBjo7+/r6zsD0l50AMMKVcQVeW2ia211lcCWIrMiuzcznamNj41hbEM4mSG3Hm5sXBVc + dK6qBS25fyquYjYlZhdv2myN+W6HbuzOPvZHWQA5HMhxCYmIcnpmVnZO3r6C/UVMM53R + GqgN9Aakm1taYd1B7ONdXV0nugGO0dPTcwoDfPrgp7hV7u2mZ9fx4yDtgCmyStUGslZX + imtZicDuy8tBZimbiEKIBm0YaAP9/Xw0WzSuBNd6Myc0Yy38BbgLEK/fyCWFGNtKjp1d + 3VAWOnJYOKMM5aTk1LQMMCPNcC5Engl9iNLMNKzrgc0CgXdLK8Q52mV0cKgP1c2trS3w + JGgjSetqa4h65HDFoYPlwlq4vyA/L5ewGWgDTTYShWCkdXdlJ9jRFo3L4KJyDZ37l+Ga + EnNZrMoY7+6U8U70sYMTClmQfVEXuxFlKkfFgDkhCWmm897sHEDnU5rUpWXlxK4Q7sqq + qmqMmpraWrCbDdxSUwPM6qqqSgGtIGl5WWlJSfGBIqruy0Ne99IViU1KZBsws5TdHRjg + J6kFrTMWCugE3dYYXLXSNV6Ez1iOf/JHUhSyaAMx33toxjbbdzDIGrKHF6IM5aDg4FA0 + RkQk0qycCZ0u0qSGdX4BtMFddKC4uASjFKOMo1wN+bgMN/LOYnBiQLRATJFVUU1PY16T + EuCKLiBsWGgw6iCAfeDFslW0u7BQwGTG3IqtMbh/cXLN/hTF+J9ajMXYajPef6CQNWRH + J2dGmcq+fv5gljSLc1Q0Ah2fwOZITklNE+xMBHtvNkZOTi7M1dinD/2G3NycHHBm70VM + MzMz0mmaAtREqMbFYvaKihTXEA3WV2TdXV2dnRyRWqG12Yq5jJ2AwtVs1Tr3A0juHGJ5 + 76GMGWT08SaFjCSjLhBlpezu4enljVWc5ozaCA3bE85Ikxqpjoc2uOEN8ZSU1FSqzx24 + FffxkCSCJsSTlB1AVKYVRRC8WwLrp8FKZpUsyhap1WJrtJVS+JCCa0Ys/9yB93c0Zh+r + IBMZ054NoizKbAyE2dVNOSPPhA4MQqRJHRpG7PCIiEh4Qzw6OgYDdOaDN+I+HhIZGQHR + 8D00FVSosgfIyirAW12WASYxZpayNqBlaq2MscUbCOb2w7XVpf+hdwXnvDnIujLDzDQr + Z0BLolEdtCa2cMMbIySE6AsN3CNH7N4dBFCSwlRQlaq7m+bqoGAxiYksutZIy/dmH42t + uTGDrCNrUVZZFmamGc4aNKQRaWQa1h6enl4oEG9vHx+Ig1wf/mron+L/uNsHIUVMvTwR + VA93dzeiMq2sWKOrAVaTlbI1o/3Q+la3XPT/KsgaMuoCfSHKUsuoDGtMfzZsDULb7mKk + 7R0cHJFq5FpxU9wN5hjAMx1yG+6DJgZAKerk6OggqKwBrLmYV1YBa1ZFFk1LWRVaQyN8 + dLRGcw1Z62RVGOvWcxG30YrT3+YtAq2kdWvRZrI5HDgc5w+5XR1iZ2e3i6IwFVRNFazK + FTWrYDVZvQ9Qth8xrRky1xaf61kms6R5/QYNmtI6NWKNXCPYMnZg7Fx48C7tKBy/jUFF + VBXq5k2brIRVAsuVF8vg3//SMst57JOgNSJjcSEzH5Wll/FyNWf0hpKWUG8SbHIz2xji + ttB/5F4exj8dFIBmirBCFT0gTSCuAivrA8J+arImyJ8ZmZUzl3KERqIZaQzQbMDA32lt + WC029AMIaiAlKtKqsyKwyvWThzVTNnXWEs21hgzgCLcOrtgX/y88RVSRsgRYAzrr3811 + DrOCVvWsdbT0B5E07z/6Hw9VolpS+TisgU+6B+Y5LuEGQcF/BHqB/zCVJoZzjtDOXsLX + sRxiENDJF/m/4TjLBxYBi4BFwCJgETAT+H8Sf8cfCmVuZHN0cmVhbQplbmRvYmoKNDcg + MCBvYmoKOTQ2NgplbmRvYmoKNTAgMCBvYmoKPDwgL0xlbmd0aCA1MSAwIFIgL1R5cGUg + L1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCAyNzAgL0hlaWdodCAxNDYgL0Nv + bG9yU3BhY2UKL0RldmljZUdyYXkgL0ludGVycG9sYXRlIHRydWUgL0JpdHNQZXJDb21w + b25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHtnfdfE9n7xT/r + rh1EihTpvTel9y5NgdA7CNIhUkIvIiC9iAJSpSr2ldV16+v7r33Pc++kEEBRUaOb5weF + mclk7ptzznMDydz//U9dagIqR+Cn/UrlrvKLXRAf/bHDFT/4i13LNzsxjUtK4GfUL1TH + Dy62nw4UHsS4fLOrP7InlmNgCPj4T5w4cRJ16uCi3TiKH/7LLzIsdLoju7aveSJcN/vB + MiXQsAgBG//p02fOnDkrlIZyCdtxyOnTp+l4BoZOQFTYKb8vJDIQ3A2cAjGgkWpoaGqe + o9LS0jqP0t5dtAl72BGamhoa9BCAYViYWL4rJlwRZAuSA6kBGAgCY4DxY/A6Orq6eqwu + oPQVizawPbq6ujo6OBZsQAZciApBgYW4TkgmqqwSgYQAQuCgQUrQAgQwwDgxeAMDA0ND + I6OLVMYoE3nRt2y7kZGhIY7T1yc2ugwLqDAonAlDwp2jglGiQOIECQJ6IA4MAyhcYAxA + AGM3NTU1Mze3oLK0tLSisqZiX2EL22NuZobjTAiOEbhwKpAKMYFOCAlTiZAlP6lOuO5D + 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 + i1bVppXXdy29rvhhLH5l3+pfetlPEzO5RkgkhERbR1dP7wJBYVRMTEwJDJGxsLS0tGKF + cWPkVNhEe7DsvBmOMzHmFAz0L+jpCRzkIOSL0B98U/JvxYP/IkQgwm0D3zAmHApRARZw + ITDQC8oYZSIv+pZtNzIyNMRx+pyCjrY2LTt/TlOqCCYJ3LcfK+R8/AJbXxGQoBEmEiCh + KCEmgAKlgAq0oq2jo0tgiA1KX7FoA9ujq6urwyAQBY6BOePUSVLE8V9oISkCoTruOAgy + rpEulfuG0hVMCAqjosG5nNPSAhoU6CgWbcIuEGAMkA7IBwoIigiBAwPxXZCQEZIh+Znr + 5PgJToVzITCsNJRL2H4GCE5zCFADYSA9fIccZEDwBZhwnRwjKIhYqhMEhgmGfuT7Fe3G + UfxwosAxkB5U3xqK49/3azkU+AcFMFI0fMRK/7L9dCBzHMuHHwGDMhvCIlWLMNKD/+MH + K5/ix/2ej1fp3x93uOqRqQmoCfyYBP4f1T0hOgplbmRzdHJlYW0KZW5kb2JqCjUxIDAg + b2JqCjY4NzQKZW5kb2JqCjQ0IDAgb2JqCjw8IC9MZW5ndGggNDUgMCBSIC9UeXBlIC9Y + T2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggMzU0IC9IZWlnaHQgMTQ2IC9Db2xv + clNwYWNlCi9EZXZpY2VHcmF5IC9JbnRlcnBvbGF0ZSB0cnVlIC9CaXRzUGVyQ29tcG9u + ZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7d3nX1RZugXg7unb + 2mZFRTIoGRFByUhWsoJkQYmKkkSigSSKICBgAARzwOy0bceZ6Tu/+6/dtd59TgWCAmJA + a3+w5dSponhYvfYusM7+7jvLsAhYBD6mwPfvHh/zU3+Nj61p/mO28QPHbDfq34qvEeaD + viYFY2QTxf+R8ePchjp5ir487Ac9saV+ZxHQXIkDJt1zGcZyjp/mNORU3meZ9gAUxyPq + 3zR+pqWuNa/nj6/XCKuzKlMFumLFipUYqwxj9WzDcMYq3gH3Uw8Acp3b1PrrlzbQGgIr + UaWKmNILlmvWrFkrYx3Geo4Nsw25laepO+Ceq1eLuoGb1pJsY6q/SmjdlrT8eikrsCqp + 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 + fqgrq8eoN6h/1pDSCNa4pjGzS2SX766yXe81+TUpmiWaE1pkLU+tS1oT2nzaFO1S7Xc6 + Ajo+OuU6H3XFdIN0q3UX9WT1ovRu6q3qq+sf1O80QBkYG6QbPDRkMHQwLDAcM+I38jeq + MloyVjLeb9xpgjExN8k2eW7KbeptWmm6ZKZidtCs15xobmdeYP5ut/juqN1tFrCFmcUZ + izeWQpZhls1WwMrU6ozVW2sR60jrWzZYG2ubQpsPtnK2B2wH7BjtPOyu2X2317PPsn/t + IOoQ69DtSOvo5ljpuOpk4JTjNOEs43zQeciFwyXQpcUV5+roWu66ssdwT+6eaTclt1S3 + UXcR93j3wb0ce0P2tnvQelA8Gj0xnk6e1zw3KVaUUsqKl6lXkdeSt773Oe95Hx2fsz6z + vpq+Ob4f/TT9cvxm/DX9z/jPBmgH5AUsBOoHFgR+CTIJuhi0GmwVXBG8FeIUUheKD/UM + bQ1jCAsO6w3nCY8PH4mQiEiNmIhUj8yNXIoyjyqPhqLdo1timJDD4f1Y0dhjsZNxWnGF + cWv7HPc1xtPHh8XfTxBPSEv4mGiUeGU/er/3/u4DfAcOH5g8qHuwJAlK8krqPiRwKOXQ + dLJx8tXDhMPBhx8ckT2Sc2T5qNPRthTulOSU98eMj1Wl0qRGpT4/rnH84gn0icATD9MU + 0s6n/Ur3Sb+XIZuRl7F50vvkvVNyp/JPbWX6ZT7MUs4qPo09HXZ6NFs7+2oOfU5izvsz + FmeazpLPpp9dzvXIHcxTzLt4jnAu9txE/u78lvOC50+f3ywIKHhWqFdYV8RVlFa0esHn + wuNineLai9wXMy6uXwq89KLEuKSpVLg07zL2ctzlD2WOZQNXVK9UlnOUZ5T/rAirmLhq + e7W3UqWy8hrXtawquCq2arbarXq4xqCmpVaqtqSOpS7jOrgee32u3rN+tMG8obtRtbH2 + htCNopuMN9OboKaEpqXmgOaJFpeWkVaz1u42jbabt6RvVdzmu13YztyedYdwJ+XOVkdi + x0pnROdCl3/X+26P7tc9zj1Pe216H/aZ993tN+rvGdAd6Lireff2oPpg6z3Ve81DykNN + 95Xu33yg9ODmQ+WHTY9UHrUMqw23jewaufNY+3HXE4Mn/U9Nnw49s3w2Muow+uK52/OJ + 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 + PCAvTGVuZ3RoIDU3IDAgUiAvTiAzIC9BbHRlcm5hdGUgL0RldmljZVJHQiAvRmlsdGVy + IC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWato + RdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKh + Fy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvs + TiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI + 3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbI + EL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0 + +GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv + 4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1 + JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF + 5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXj + VfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPi + KTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM + 0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZu + a6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VL + FrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UUKZW5k + c3RyZWFtCmVuZG9iago1NyAwIG9iago3MzcKZW5kb2JqCjggMCBvYmoKWyAvSUNDQmFz + ZWQgNTYgMCBSIF0KZW5kb2JqCjU4IDAgb2JqCjw8IC9MZW5ndGggNTkgMCBSIC9OIDEg + L0FsdGVybmF0ZSAvRGV2aWNlR3JheSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJl + YW0KeAGFUk9IFFEc/s02EoSIQYV4iHcKCZUprKyg2nZ1WZVtW5XSohhn37qjszPTm9k1 + xZMEXaI8dQ+iY3Ts0KGbl6LArEvXIKkgCDx16PvN7OoohG95O9/7/f1+33tEbZ2m7zsp + QVRzQ5UrpaduTk2Lgx8pRR3UTlimFfjpYnGMseu5kr+719Zn0tiy3se1dvv2PbWVZWAh + 6i22txD6IZFmAB+ZnyhlgLPAHZav2D4BPFgOrBrwI6IDD5q5MNPRnHSlsi2RU+aiKCqv + YjtJrvv5uca+i7WJg/5cj2bWjr2z6qrRTNS090ShvA+uRBnPX1T2bDUUpw3jnEhDGiny + rtXfK0zHEZErEEoGUjVkuZ9qTp114HUYu126k+P49hClPslgqIm16bKZHYV9AHYqy+wQ + 8AXo8bJiD+eBe2H/W1HDk8AnYT9kh3nWrR/2F65T4HuEPTXgzhSuxfHaih9eLQFD91Qj + aIxzTcTT1zlzpIjvMdQZmPdGOaYLMXeWqhM3gDthH1mqZgqxXfuu6iXuewJ30+M70Zs5 + C1ygHElysRXZFNA8CVgUfYuwSQ48Ps4eVeB3qJjAHLmJ3M0o9x7VERtno1KBVnqNV8ZP + 47nxxfhlbBjPgH6sdtd7fP/p4xV117Y+PPmNetw5rr2dG1VhVnFlC93/xzKEj9knOabB + 06FZWGvYduQPmsxMsAwoxH8FPpf6khNV3NXu7bhFEsxQPixsJbpLVG4p1Oo9g0qsHCvY + AHZwksQsWhy4U2u6OXh32CJ6bflNV7Lrhv769nr72vIebcqoKSgTzbNEZpSxW6Pk3Xjb + /WaREZ84Or7nvYpayf5JRRA/hTlaKvIUVfRWUNbEb2cOfhu2flw/pef1Qf08CT2tn9Gv + 6KMRvgx0Sc/Cc1Efo0nwsGkh4hKgioMz1E5UY40D4inx8rRbZJH9D0AZ/WYKZW5kc3Ry + ZWFtCmVuZG9iago1OSAwIG9iago3MDQKZW5kb2JqCjIxIDAgb2JqClsgL0lDQ0Jhc2Vk + IDU4IDAgUiBdCmVuZG9iago0IDAgb2JqCjw8IC9UeXBlIC9QYWdlcyAvTWVkaWFCb3gg + WzAgMCA2MTIgNzkyXSAvQ291bnQgMSAvS2lkcyBbIDMgMCBSIF0gPj4KZW5kb2JqCjYw + IDAgb2JqCjw8IC9UeXBlIC9DYXRhbG9nIC9PdXRsaW5lcyAyIDAgUiAvUGFnZXMgNCAw + IFIgL1ZlcnNpb24gLzEuNCA+PgplbmRvYmoKNDAgMCBvYmoKPDwgL0xlbmd0aCA2MSAw + IFIgL09yZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5cGUgMCAvQml0 + c1BlclNhbXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21haW4gWyAwIDEg + XSAvUmFuZ2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9GaWx0ZXIgL0Zs + YXRlRGVjb2RlID4+CnN0cmVhbQp4AXXCh1dTVxwA4D+qWq1W66pWq9VqtVqtVqsQ9gph + BQg7QAgbwgoBQlgBQoAQIAQIYYWw99577w09757zzum77/6+85kvzeb/bbs0o21tl3jT + RRupyXRhaoW3XJjQ1pYLfPN5K2tL8zm1Cdh43kJvbjxnNJ41kzYZz5oa4IazJrTRcIav + P20kNdafGuvgtadGtKH2FK8/aSA16E8MNXDdiQGt153gq4/rWeuqj6lVwMrjOnpt5TGj + 9qiWVK890lfANUd6tEZzhC8/rCHVlR/qyuClhzq0uvQQrz6oJq1SH1SVwFUHVWil6gBf + vF/Jqi3e1xbBC/e19IrCfUblXgWpRrmnKYDn72nQ8vw9fN5uOWlZ3m5ZLjxntwwtzdnF + K3ZKSdWKHXU2XL6jRkvkO/is7RJWVda2KhOesa2iF2dsM8q2ikmLZFtF6XDpVhFaKN3C + p20WkirTNpWp8JRNJVqQsolP3ihgzU/eoCbBJRv5aJ5kA5+4nseam7iemwCPX8+l58Sv + M8at5ZAq4tYUsfCYNQWaHbOGj17NJpVHr8qj4JGrcjQrchUvXslizRSvUCPgopVMNEO0 + gg9fzmCVhS/LwuChyzJ6eugyo3ApnVQqXJKGwIOXpGha8BI+aDGNNDVoMTUQHrCYiqYE + LOL9F1JYk/0XqH5wwUIymiRYwPvOJ7FKfOclPnDveQk90XuekT+XSJrAn0vwgnvOJaDx + nnN4j9l40jiP2Th3uNtsHBrrNovnzcSyxvBmqK5w7kwMGs2dYXSZjiaNcpmOcoY7TUfR + I52mGR2nIknFjlNiB7j9lBiNsJ/C201GkIrsJkW2cJtJERpuM4m3nghnDbOeoFrBORNh + aChngtFyPJRUaDkutIB/GxfSQ76NM34dCyEN/joW/C/8y1gwGvRlDP95NIg08PNo4D/w + T6OBaMCnUfzHkQBW/48j1L/hH0b8Ub8PI4zvh/1IBe+HBX/B3w0L6L7vhhnfDvmS+rwd + 8vkT/mbIB/V+M4R/PehNyn89yP8D/mqQj3q9GsS/HPBi9Xw5QP0d/mLAE/V4McD4vN+D + 1P15v/tv8Gf97qjbs3780z43Ut7TPt6v8Cd9PNT1SR/+ca8rKfdxL/cX+KNeLuryqBf/ + sMeF1flhD/Vn4IMeZ7rTgx7G+91OpI73ux3vwe92O6IOd7vxd7ocSO3vdNn/BL/dZY/a + 3e7C3+q0I7W91Wn7I/xmpy1qc7MTf6PDhtX6Rgf1B+D1Dmu61fUOxmvtVqSca+2c7+FX + 2zmo5dV2/BWzJanFFbPFd8z/AYTen+8KZW5kc3RyZWFtCmVuZG9iago2MSAwIG9iago5 + NzIKZW5kb2JqCjM5IDAgb2JqCjw8IC9MZW5ndGggNjIgMCBSIC9PcmRlciAxIC9FbmNv + ZGUgWyAwIDEzNjQgXSAvRnVuY3Rpb25UeXBlIDAgL0JpdHNQZXJTYW1wbGUKOCAvRGVj + b2RlIFsgMCAxIDAgMSAwIDEgXSAvRG9tYWluIFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAg + MSAwIDEgXSAvU2l6ZSBbIDEzNjUKXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJl + YW0KeAF1wodXU1ccAOA/qlqtVuuqVqvVarVarVarEPYKYQUIO0AIG8IKAUJYAUKAECAE + CGGFsPfee+8NPe+e887pu+/+vvOZL83m/227NKNtbZd400Ubqcl0YWqFt1yY0NaWC3zz + eStrS/M5tQnYeN5Cb248ZzSeNZM2Gc+aGuCGsya00XCGrz9tJDXWnxrr4LWnRrSh9hSv + P2kgNehPDDVw3YkBrded4KuP61nrqo+pVcDK4zp6beUxo/aollSvPdJXwDVHerRGc4Qv + P6wh1ZUf6srgpYc6tLr0EK8+qCatUh9UlcBVB1VopeoAX7xfyaot3tcWwQv3tfSKwn1G + 5V4FqUa5pymA5+9p0PL8PXzebjlpWd5uWS48Z7cMLc3ZxSt2SknVih11Nly+o0ZL5Dv4 + rO0SVlXWtioTnrGtohdnbDPKtopJi2RbRelw6VYRWijdwqdtFpIq0zaVqfCUTSVakLKJ + T94oYM1P3qAmwSUb+WieZAOfuJ7Hmpu4npsAj1/PpefErzPGreWQKuLWFLHwmDUFmh2z + ho9ezSaVR6/Ko+CRq3I0K3IVL17JYs0Ur1Aj4KKVTDRDtIIPX85glYUvy8Lgocsyenro + MqNwKZ1UKlyShsCDl6RoWvASPmgxjTQ1aDE1EB6wmIqmBCzi/RdSWJP9F6h+cMFCMpok + WMD7ziexSnznJT5w73kJPdF7npE/l0iawJ9L8IJ7ziWg8Z5zeI/ZeNI4j9k4d7jbbBwa + 6zaL583EssbwZqiucO5MDBrNnWF0mY4mjXKZjnKGO01H0SOdphkdpyJJxY5TYge4/ZQY + jbCfwttNRpCK7CZFtnCbSREabjOJt54IZw2znqBawTkTYWgoZ4LRcjyUVGg5LrSAfxsX + 0kO+jTN+HQshDf46Fvwv/MtYMBr0ZQz/eTSINPDzaOA/8E+jgWjAp1H8x5EAVv+PI9S/ + 4R9G/FG/DyOM74f9SAXvhwV/wd8NC+i+74YZ3w75kvq8HfL5E/5myAf1fjOEfz3oTcp/ + Pcj/A/5qkI96vRrEvxzwYvV8OUD9Hf5iwBP1eDHA+Lzfg9T9eb/7b/Bn/e6o27N+/NM+ + N1Le0z7er/AnfTzU9Ukf/nGvKyn3cS/3F/ijXi7q8qgX/7DHhdX5YQ/1Z+CDHme604Me + xvvdTqSO97sd78HvdjuiDne78Xe6HEjt73TZ/wS/3WWP2t3uwt/qtCO1vdVp+yP8Zqct + anOzE3+jw4bV+kYH9Qfg9Q5rutX1DsZr7VaknGvtnO/hV9s5qOXVdvwVsyWpxRWzxXfM + /wGE3p/vCmVuZHN0cmVhbQplbmRvYmoKNjIgMCBvYmoKOTcyCmVuZG9iagozOCAwIG9i + ago8PCAvTGVuZ3RoIDYzIDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Z1 + bmN0aW9uVHlwZSAwIC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEgMCAx + IF0gL0RvbWFpbiBbIDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUgWyAx + MzY1Cl0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBrcJVVkIBAEDB3dqI + RYgdhIKKzbNbAbuxu/d03QIfd84EfwTVLfzinv9BPPeNe/YL98wn7ukPxFPvuCffcOdf + cU+8IB5/xj32hDv3iDv7gHj0HvfIHe7MLe70DeJUBXfyGvfwFe6hS8SDF7gHznH3n+Hu + O0Xce4K75xh39xHirkPciQPcnfu442XEsRLuaBF3ZA93xy7i9h3cbdu4W7dwt2wiDm/g + bl7HHVrD3bSKuHEFd8My7vol3HWLiGsXcNcEVPkf+eqv7AplbmRzdHJlYW0KZW5kb2Jq + CjYzIDAgb2JqCjIwMQplbmRvYmoKMzcgMCBvYmoKPDwgL0xlbmd0aCA2NCAwIFIgL09y + ZGVyIDEgL0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5cGUgMCAvQml0c1BlclNh + bXBsZQo4IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21haW4gWyAwIDEgXSAvUmFu + Z2UgWyAwIDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9GaWx0ZXIgL0ZsYXRlRGVj + b2RlID4+CnN0cmVhbQp4AXXCh1dTVxwA4D+qWq1W66pWq9VqtVqtVqsQ9gphBQg7QAgb + wgoBQlgBQoAQIAQIYYWw99577w09757zzum77/6+85kvzeb/bbs0o21tl3jTRRupyXRh + aoW3XJjQ1pYLfPN5K2tL8zm1Cdh43kJvbjxnNJ41kzYZz5oa4IazJrTRcIavP20kNdaf + GuvgtadGtKH2FK8/aSA16E8MNXDdiQGt153gq4/rWeuqj6lVwMrjOnpt5TGj9qiWVK89 + 0lfANUd6tEZzhC8/rCHVlR/qyuClhzq0uvQQrz6oJq1SH1SVwFUHVWil6gBfvF/Jqi3e + 1xbBC/e19IrCfUblXgWpRrmnKYDn72nQ8vw9fN5uOWlZ3m5ZLjxntwwtzdnFK3ZKSdWK + HXU2XL6jRkvkO/is7RJWVda2KhOesa2iF2dsM8q2ikmLZFtF6XDpVhFaKN3Cp20WkirT + NpWp8JRNJVqQsolP3ihgzU/eoCbBJRv5aJ5kA5+4nseam7iemwCPX8+l58SvM8at5ZAq + 4tYUsfCYNQWaHbOGj17NJpVHr8qj4JGrcjQrchUvXslizRSvUCPgopVMNEO0gg9fzmCV + hS/LwuChyzJ6eugyo3ApnVQqXJKGwIOXpGha8BI+aDGNNDVoMTUQHrCYiqYELOL9F1JY + k/0XqH5wwUIymiRYwPvOJ7FKfOclPnDveQk90XuekT+XSJrAn0vwgnvOJaDxnnN4j9l4 + 0jiP2Th3uNtsHBrrNovnzcSyxvBmqK5w7kwMGs2dYXSZjiaNcpmOcoY7TUfRI52mGR2n + IknFjlNiB7j9lBiNsJ/C201GkIrsJkW2cJtJERpuM4m3nghnDbOeoFrBORNhaChngtFy + PJRUaDkutIB/GxfSQ76NM34dCyEN/joW/C/8y1gwGvRlDP95NIg08PNo4D/wT6OBaMCn + UfzHkQBW/48j1L/hH0b8Ub8PI4zvh/1IBe+HBX/B3w0L6L7vhhnfDvmS+rwd8vkT/mbI + B/V+M4R/PehNyn89yP8D/mqQj3q9GsS/HPBi9Xw5QP0d/mLAE/V4McD4vN+D1P15v/tv + 8Gf97qjbs3780z43Ut7TPt6v8Cd9PNT1SR/+ca8rKfdxL/cX+KNeLuryqBf/sMeF1flh + D/Vn4IMeZ7rTgx7G+91OpI73ux3vwe92O6IOd7vxd7ocSO3vdNn/BL/dZY/a3e7C3+q0 + I7W91Wn7I/xmpy1qc7MTf6PDhtX6Rgf1B+D1Dmu61fUOxmvtVqSca+2c7+FX2zmo5dV2 + /BWzJanFFbPFd8z/AYTen+8KZW5kc3RyZWFtCmVuZG9iago2NCAwIG9iago5NzIKZW5k + b2JqCjM2IDAgb2JqCjw8IC9MZW5ndGggNjUgMCBSIC9PcmRlciAxIC9FbmNvZGUgWyAw + IDEzNjQgXSAvRnVuY3Rpb25UeXBlIDAgL0JpdHNQZXJTYW1wbGUKOCAvRGVjb2RlIFsg + MCAxIDAgMSAwIDEgXSAvRG9tYWluIFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAgMSAwIDEg + XSAvU2l6ZSBbIDEzNjUKXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGt + wlVWQgEAQMHd2ohFiB2EgorNs1sBu7G793TdAh93zgR/BNUt/OKe/0E894179gv3zCfu + 6Q/EU++4J99w519xT7wgHn/GPfaEO/eIO/uAePQe98gd7swt7vQN4lQFd/Ia9/AV7qFL + xIMXuAfOcfef4e47Rdx7grvnGHf3EeKuQ9yJA9yd+7jjZcSxEu5oEXdkD3fHLuL2Hdxt + 27hbt3C3bCIOb+BuXscdWsPdtIq4cQV3wzLu+iXcdYuIaxdw1wRU+R/56q/sCmVuZHN0 + cmVhbQplbmRvYmoKNjUgMCBvYmoKMjAxCmVuZG9iagozNSAwIG9iago8PCAvTGVuZ3Ro + IDY2IDAgUiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Z1bmN0aW9uVHlwZSAw + IC9CaXRzUGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEgMCAxIF0gL0RvbWFpbiBb + IDAgMSBdIC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUgWyAxMzY1Cl0gL0ZpbHRl + ciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBdcKHV1NXHADgP6parVbrqlar1Wq1Wq1W + qxD2CmEFCDtACBvCCgFCWAFCgBAgBAhhhbD33nvvDT3vnvPO6bvv/r7zmS/N5v9tuzSj + bW2XeNNFG6nJdGFqhbdcmNDWlgt883kra0vzObUJ2HjeQm9uPGc0njWTNhnPmhrghrMm + tNFwhq8/bSQ11p8a6+C1p0a0ofYUrz9pIDXoTww1cN2JAa3XneCrj+tZ66qPqVXAyuM6 + em3lMaP2qJZUrz3SV8A1R3q0RnOELz+sIdWVH+rK4KWHOrS69BCvPqgmrVIfVJXAVQdV + aKXqAF+8X8mqLd7XFsEL97X0isJ9RuVeBalGuacpgOfvadDy/D183m45aVneblkuPGe3 + DC3N2cUrdkpJ1YoddTZcvqNGS+Q7+KztElZV1rYqE56xraIXZ2wzyraKSYtkW0XpcOlW + EVoo3cKnbRaSKtM2lanwlE0lWpCyiU/eKGDNT96gJsElG/lonmQDn7iex5qbuJ6bAI9f + z6XnxK8zxq3lkCri1hSx8Jg1BZods4aPXs0mlUevyqPgkatyNCtyFS9eyWLNFK9QI+Ci + lUw0Q7SCD1/OYJWFL8vC4KHLMnp66DKjcCmdVCpckobAg5ekaFrwEj5oMY00NWgxNRAe + sJiKpgQs4v0XUliT/ReofnDBQjKaJFjA+84nsUp85yU+cO95CT3Re56RP5dImsCfS/CC + e84loPGec3iP2XjSOI/ZOHe422wcGus2i+fNxLLG8GaornDuTAwazZ1hdJmOJo1ymY5y + hjtNR9EjnaYZHaciScWOU2IHuP2UGI2wn8LbTUaQiuwmRbZwm0kRGm4zibeeCGcNs56g + WsE5E2FoKGeC0XI8lFRoOS60gH8bF9JDvo0zfh0LIQ3+Ohb8L/zLWDAa9GUM/3k0iDTw + 82jgP/BPo4FowKdR/MeRAFb/jyPUv+EfRvxRvw8jjO+H/UgF74cFf8HfDQvovu+GGd8O + +ZL6vB3y+RP+ZsgH9X4zhH896E3Kfz3I/wP+apCPer0axL8c8GL1fDlA/R3+YsAT9Xgx + wPi834PU/Xm/+2/wZ/3uqNuzfvzTPjdS3tM+3q/wJ3081PVJH/5xrysp93Ev9xf4o14u + 6vKoF/+wx4XV+WEP9Wfggx5nutODHsb73U6kjve7He/B73Y7og53u/F3uhxI7e902f8E + v91lj9rd7sLf6rQjtb3Vafsj/GanLWpzsxN/o8OG1fpGB/UH4PUOa7rV9Q7Ga+1WpJxr + 7Zzv4VfbOajl1Xb8FbMlqcUVs8V3zP8BhN6f7wplbmRzdHJlYW0KZW5kb2JqCjY2IDAg + b2JqCjk3MgplbmRvYmoKMzQgMCBvYmoKPDwgL0xlbmd0aCA2NyAwIFIgL09yZGVyIDEg + L0VuY29kZSBbIDAgMTM2NCBdIC9GdW5jdGlvblR5cGUgMCAvQml0c1BlclNhbXBsZQo4 + IC9EZWNvZGUgWyAwIDEgMCAxIDAgMSBdIC9Eb21haW4gWyAwIDEgXSAvUmFuZ2UgWyAw + IDEgMCAxIDAgMSBdIC9TaXplIFsgMTM2NQpdIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+ + CnN0cmVhbQp4AXXCh1dTVxwA4D+qWq1W66pWq9VqtVqtVqsQ9gphBQg7QAgbwgoBQlgB + QoAQIAQIYYWw99577w09757zzum77/6+85kvzeb/bbs0o21tl3jTRRupyXRhaoW3XJjQ + 1pYLfPN5K2tL8zm1Cdh43kJvbjxnNJ41kzYZz5oa4IazJrTRcIavP20kNdafGuvgtadG + tKH2FK8/aSA16E8MNXDdiQGt153gq4/rWeuqj6lVwMrjOnpt5TGj9qiWVK890lfANUd6 + tEZzhC8/rCHVlR/qyuClhzq0uvQQrz6oJq1SH1SVwFUHVWil6gBfvF/Jqi3e1xbBC/e1 + 9IrCfUblXgWpRrmnKYDn72nQ8vw9fN5uOWlZ3m5ZLjxntwwtzdnFK3ZKSdWKHXU2XL6j + RkvkO/is7RJWVda2KhOesa2iF2dsM8q2ikmLZFtF6XDpVhFaKN3Cp20WkirTNpWp8JRN + JVqQsolP3ihgzU/eoCbBJRv5aJ5kA5+4nseam7iemwCPX8+l58SvM8at5ZAq4tYUsfCY + NQWaHbOGj17NJpVHr8qj4JGrcjQrchUvXslizRSvUCPgopVMNEO0gg9fzmCVhS/LwuCh + yzJ6eugyo3ApnVQqXJKGwIOXpGha8BI+aDGNNDVoMTUQHrCYiqYELOL9F1JYk/0XqH5w + wUIymiRYwPvOJ7FKfOclPnDveQk90XuekT+XSJrAn0vwgnvOJaDxnnN4j9l40jiP2Th3 + uNtsHBrrNovnzcSyxvBmqK5w7kwMGs2dYXSZjiaNcpmOcoY7TUfRI52mGR2nIknFjlNi + B7j9lBiNsJ/C201GkIrsJkW2cJtJERpuM4m3nghnDbOeoFrBORNhaChngtFyPJRUaDku + tIB/GxfSQ76NM34dCyEN/joW/C/8y1gwGvRlDP95NIg08PNo4D/wT6OBaMCnUfzHkQBW + /48j1L/hH0b8Ub8PI4zvh/1IBe+HBX/B3w0L6L7vhhnfDvmS+rwd8vkT/mbIB/V+M4R/ + PehNyn89yP8D/mqQj3q9GsS/HPBi9Xw5QP0d/mLAE/V4McD4vN+D1P15v/tv8Gf97qjb + s3780z43Ut7TPt6v8Cd9PNT1SR/+ca8rKfdxL/cX+KNeLuryqBf/sMeF1flhD/Vn4IMe + Z7rTgx7G+91OpI73ux3vwe92O6IOd7vxd7ocSO3vdNn/BL/dZY/a3e7C3+q0I7W91Wn7 + I/xmpy1qc7MTf6PDhtX6Rgf1B+D1Dmu61fUOxmvtVqSca+2c7+FX2zmo5dV2/BWzJanF + FbPFd8z/AYTen+8KZW5kc3RyZWFtCmVuZG9iago2NyAwIG9iago5NzIKZW5kb2JqCjMz + IDAgb2JqCjw8IC9MZW5ndGggNjggMCBSIC9PcmRlciAxIC9FbmNvZGUgWyAwIDEzNjQg + XSAvRnVuY3Rpb25UeXBlIDAgL0JpdHNQZXJTYW1wbGUKOCAvRGVjb2RlIFsgMCAxIDAg + MSAwIDEgXSAvRG9tYWluIFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAgMSAwIDEgXSAvU2l6 + ZSBbIDEzNjUKXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGtwlVWQgEA + QMHd2ohFiB2EgorNs1sBu7G793TdAh93zgR/BNUt/OKe/0E894179gv3zCfu6Q/EU++4 + J99w519xT7wgHn/GPfaEO/eIO/uAePQe98gd7swt7vQN4lQFd/Ia9/AV7qFLxIMXuAfO + cfef4e47Rdx7grvnGHf3EeKuQ9yJA9yd+7jjZcSxEu5oEXdkD3fHLuL2Hdxt27hbt3C3 + bCIOb+BuXscdWsPdtIq4cQV3wzLu+iXcdYuIaxdw1wRU+R/56q/sCmVuZHN0cmVhbQpl + bmRvYmoKNjggMCBvYmoKMjAxCmVuZG9iagozMiAwIG9iago8PCAvTGVuZ3RoIDY5IDAg + UiAvT3JkZXIgMSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Z1bmN0aW9uVHlwZSAwIC9CaXRz + UGVyU2FtcGxlCjggL0RlY29kZSBbIDAgMSAwIDEgMCAxIF0gL0RvbWFpbiBbIDAgMSBd + IC9SYW5nZSBbIDAgMSAwIDEgMCAxIF0gL1NpemUgWyAxMzY1Cl0gL0ZpbHRlciAvRmxh + dGVEZWNvZGUgPj4Kc3RyZWFtCngBrcJVVkIBAEDB3dqIRYgdhIKKzbNbAbuxu/d03QIf + d84EfwTVLfzinv9BPPeNe/YL98wn7ukPxFPvuCffcOdfcU+8IB5/xj32hDv3iDv7gHj0 + HvfIHe7MLe70DeJUBXfyGvfwFe6hS8SDF7gHznH3n+HuO0Xce4K75xh39xHirkPciQPc + nfu442XEsRLuaBF3ZA93xy7i9h3cbdu4W7dwt2wiDm/gbl7HHVrD3bSKuHEFd8My7vol + 3HWLiGsXcNcEVPkf+eqv7AplbmRzdHJlYW0KZW5kb2JqCjY5IDAgb2JqCjIwMQplbmRv + YmoKMiAwIG9iago8PCAvTGFzdCA3MCAwIFIgL0ZpcnN0IDcxIDAgUiA+PgplbmRvYmoK + NzEgMCBvYmoKPDwgL1BhcmVudCA3MiAwIFIgL0NvdW50IDAgL0Rlc3QgWyAzIDAgUiAv + WFlaIDAgNTUzIDAgXSAvVGl0bGUgKENhbnZhcyAxKQo+PgplbmRvYmoKNzIgMCBvYmoK + PDwgPj4KZW5kb2JqCjcwIDAgb2JqCjw8IC9QYXJlbnQgNzIgMCBSIC9Db3VudCAwIC9E + ZXN0IFsgMyAwIFIgL1hZWiAwIDU1MyAwIF0gL1RpdGxlIChDYW52YXMgMSkKPj4KZW5k + b2JqCjczIDAgb2JqCjw8IC9MZW5ndGggNzQgMCBSIC9MZW5ndGgxIDgxNDAgL0ZpbHRl + ciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBvVkJeFvVlT73vvf0niRblmTJWixZkmVJ + 3vc1dmzFkRw7iY1jZ7FCQmzHduyQFDcY09AmY9qkEBPMEmKyDSUUTJZCFMeAkpBMSl2W + aQuBDlAoXRgCXQZ/zHQCbZPYmnMlx43zTZl88/FVT+fec+65y7n/Pfe89+7r23RHJ8TC + AHDQuLKttwsiv6QgALGs3djWG5W1n2L+xNr+PntUFlIBuA1dves2RmXpEQCFdd2GzdPt + 47G94kB3Z1tHVA9XMC/uxoKoTAoxT+ne2PeNqKwdw7x0w21rp/XxD6KctLHtG9Pjwwco + 27/WtrEzWj9pJ+Ypvbfd3jctL8bc27upc7o+aUH73gCCpSq4DeRwK4hAQY3XagDx9wor + 8Khlevx1ZCp3rYmr+Bw0UkReU/9AJH/Z8eI7f+m84lE+JP0VC+RX67NcljaVBhBDUD+h + fGhGE2mHiSoEzRkhqEOqQipCysiYZ4QBMgIPIj2OxEEPuQ82I+1A2ovEz3CHUTpJ7hvl + Je8pshnMZKFXyduW6kw2o0JpeytEZGOP2d4zfnSamHD1PiSm0ViQz1OQx8n3oANs5Clw + kbugFlLJvhNpG2ytqDoMvUgDSFwkJeTwaFK+7SzJBBdPsI0bknjyvO13eVm2j/NClIza + XvKEeMx+mISSN852zvqY7V+s62xnkY5GVUfSsMbztsPWDbZdSSGyb9T2sDVEsM1D0ewO + KzZ93rYxbdjWkRfRLx4O0aOjtjLUL/cqbcWlDluR9YItxxOSCMpZ1sW29Lyf2VKwIVaz + Y6cur8Zmse6yzUFVktXvmYN0mhwh+yGd7B91LbSdQhane6IurXQ4RL55ojY1zxUid3mL + a1OH02o9rrTFNldajceD/PJXxW3izeI8MV/MEFNFt+gQE0WdpJXUkkqKkRSSJIkh8oPR + KpvsNDkKVQjL0ROSTBJC5Fks5E+TZyKFz7wg8RKVQNKFwr9F5yWgC5GjY2rGIfO8LMLJ + QuSZE9GiZ7w2nnF8RKGmjMcEU6BEorAQguT+kAy2J/RXGau0lZqyGt/fS1ojmqtpxt// + GYk1OLyouSV4xBoI5jMmbA1crW68yvzdvO8OVHVWZ2Qsatp8or93fZe/0+lvdfo7kVqD + 9/V3G4MD7Xb78fW9TGEPcu7W9rXdLG/rDPY6O33B9U6f/Xh/pN116i6m7nf6jkOXf2nL + 8S5vp2+039vvd7b5AifaqzetnjXWjpmxNlX/L2NVs842sbHaI+2uG2s1U7ezsVazsVaz + sdq97ZGx2OT9Pc3Vt/ehd9r9PYvswdTmYN2SlS1Be1vAFyIjWOi7A4RzoBbOQKowAGY+ + B2wA4feQ3mf51LLwJ8IroJ7aGP4vrhwX9SQjOlVVAefgftgPx0AGh5BPhVtgD7xG1uPe + XgVj8A5JgmyMvTyEYDH8lITDb0IXPIn1++Al2A3HIQbbbAQ9aoeIK3wXyl7k22Fb+AlI + gVL4LpyBMux1CCbCh8MnUNsEy+AIHMX2PyFOepyPDz8bvgASLME+t6HmzfDi8DHQQiZU + QyOWboOzxMW9H+4GI5SjdQfge3AQfgifkm+TsXB3uD98PvwhuqoRLNCM1xYyRj7kjvHf + DR8I/zE8hUikQjqO2gq74PvY/zG8zmFo9ZNbSR/ZRXZTL/02HeO3C4apScQhDRbgVYtR + +V5E4CSMw5/gr+QzauTUXB/343BR+L9BCYtwlmwmndCP1z14DeGcThMZySXzSSPZQh4h + u8nPaTpdRlvonfQb9BOugVvFbeZ+zt/Ojwo7hT0y5dTn4dPhV8JvgwGscDNsgq04u5fg + PFyES4TDvizERcpJNbkFrwGyn54kB8lJ2kjOkfP0CPkN+Yh8Ri5TgcZQPc2gfXQXPUpf + oq9zPdxubi/3G+5zvlKgwkHhY5lL/OVU+9SOqdfD5eEPw3/BECuBA1emGhpgDbThbHuh + EP4JZ/EMXsdw1cbhx/Ba5PqIWGAC/oIoANESM8kn9Xg1kJtIF+khj5FTeJ2N2PIFxYWg + cqqhBmqhzbSdbqQD9G06wCVy6dxCbiV3DK9XuXe4y9xlXuDjeT2/gK+DnfxGfh9eI/wh + fpR/QygTKoUGYbkwIOwQdnJrhTeFd2RbZUOyUdlnsv/EsLhYvE3ciavzGvrsD9GX//bj + SQpanw9fg7XER9phGFfjIGmDQfSuDnIv4tULqeHV3FZuAc1FbzgL30Rv3QdbYAe3Cg6G + f8EdgXfRUzZglwPwNF8NVuFRXJ1vQy560fTlTUtPS/W4XSnOZIcdQ74l0WwyGhL0unit + Rh0bo1TIJVEm8BwlkOl31rTag+7WIO921tZmMdnZhgVt1xS04la2B2tm1wnaWbs2VM2q + 6cWaXdfV9EZremdqErW9AiqyMu1+pz34M5/THiIrl7Qgf7/PGbAHJyJ8fYR/MMLHIu9w + YAO739jtswdJq90frOnvHvS3+rIyyUkvwqHIymSBwwtK1nEQ5rdtwQAL81kNf9Ds9PmD + JifyqONc/raOYOOSFr8v0eEIYBkWNbXgGFmZPUG0E+6L6XB23BfyQnsr49pWtQS5tkCQ + trK+NBlBg9MXNNz1sfFv4lXOv/MaZZC6ato6B2uC3tb7EFwmtjKpbSdKi5rt2C3dHmgJ + ku3TRjAb16OlzNzoPcHVut4elDurnd2D61sRXGhqGTV7zZHgG4TGllGT1xQRsjJPGreW + O3D2J7PmZc1jebnDuDWa/+470fK3zrHcuHX8t5gvapoBgDAEnHVoZ9C+NjKIE40tZUln + KQyuLUWc8BcgOM0etGd+kKLPcK6g4KprCw40XzWj2xc1rnW9b1RuMkduQtUBrN86qJ6D + K4X11U774Od4t251Tnw6u6RtukTmUn8OTMkWesZXgqTtKt/PbpYunHW30dnN1rc/sqYo + O43+awpQZtAwm4M6vIE3tjiC9gAW4NNk5qIQyBtbjhMyFAiR8PYQ+Kwn8RmVW3MLqjOZ + q/X4cHwUsjKxIN2BXHamvQZHrmG+Yh+0D9Z1DNpr7N3oTLwrkqOiczCQgwg2tyBOsBRH + 9AYSZ9jOQGAO9pPD+sEmWH0wgD2sn+4B80hRziRWys3EmynnbmxZ0hIc8CUGvb4ArgK6 + 77nGluA59NxAAGvlzViKFm/pMU7bnI8256WjviDaCz67DGAXgcFB1mdzi9MRPDc4mDjI + 9ltUDhG4vsA7XRACVoVBHiIDjdgWM6cjMbIGDqcDzQowTAvRpa96FD6zfznCxTN2Y8sS + tLY4gnDpV4Rw2Y0gPOeGEC6fsXQWwhVoczlDeO4/DuHKWQhXfTnC3hm70ch5aK03gnD1 + V4Tw/BtB2HdDCPtnLJ2FcA3a7GcIL/jHIVw7C+G6L0d44YzdaOQitHZhBOHFXxHC9TeC + cMMNIXzTjKWzEG5Em29iCC/5xyHcNAvh5i9HeOmM3WjkMrR2aQTh5V8RwituBOGWG0I4 + MGPpLIRXos0BhvDNMwh7E4NwbRweuC7swlcemFddAzk+KQlaqOZvh3F85zqAOSA1IZXS + MrCQV2CH7AhsQ7kcqZ8egR344s3qD2DTq2c+Mfgm8gjKeeBnr+D/zx/9P9txWAOHx5+A + JItw0UTENwR2pqTAVInvdYDnONFfIayEIIyTIXKJ1tBuegHfa17ndfxFoQErUHynAP48 + votyeKZVFT1nknLwYQBJUocAziMxGXnugxDwSIC8+AGcwhYAyzNOYS8C5rl5BRqHxoNU + zQ+Frvy7cObS/BBffxnPLBCVcRzsbeFhtNN5XCIhUuCN4XkxhheHBVAskKv7x43jb0+W + QVXVxZ/l5cYXVZKSAo1TM/6jfe6hc9wXg/GBkUtf476I2HwAAUhHm9l8+726ElIqoyIx + EA9ZQFqoIBJKQ2S/16CVyUQqShyheOii4BQKIpMox3TPCbw5RpRYLYUcTMqYxx39vXiG + 0XCxon6yokH9Bcs02rKyshy0qKKqAln+nuyMe7b8OC8XVpPV8QVEg/YR/B/4D/rJmd9M + xp2lc4Qzl1fyI5fm809dvhntY/OGMHpUuBPxjXuO1AAVoEJdATkTebmaIoceVdCJx5Ac + NIU/iLxdxeF7cwX8yluanksUamVijMVTUKvuka9Xi2WSNkbOJeaLKXKrOsZankGz08pf + KKfl+ekurVoUJIsn2WAJkUGv02C1iR5rtpJai5QVYkWFRSempR9KMVcmplkWxnlKTXMr + XySP4kvlSTIMkXnXT1ycwHnXX5gc10YmPVGF14S2TKM1lK1GKLInsicI5hpDWV7u/M3e + 1OISfTIQk4sUxznAmJTogAS7zkEcyVBCHWC2GhxE78AEzyoziLqCnY3cfffdDLyUhIL8 + kuK5REXiiEyU6UlxSXFRoduZLMpEZyUpyMfXM40OK+EQKuJM9rg9LHMXFRaXxBPVpoY1 + gWFHd/7G9rxmMlapj/nOXfeXOxSHhD9//0z/HQZXTJImPdO9Oj1BXvL6t3afOfXo4Bsr + M+tGHtJbZKpYS846skHKNGatal6c3vzy/traPZOPWpI5bnuMrNrprV3/3L27n4wnF9je + KA2/z00IL+GOssKd3vwS1QLVCtXT/OFEwSXpaJxVDZLVKsYrqNWgFLLjs9VpGq3ZpvSY + TUm2exybqqeBjbrThQuAiOJfU6aJImg2WuQKIMSodIPcggmYqBsUiZKbIGLTaGkZDBFw + ZHowJBiY1xUxNKCoUFvwxcMHtxwcuevew2SwOXfuM09U/eC2E1OXPvs1WfP7d1/7yY/O + /ystKUxaRK2XKnevbSFZl/5IVqBPWnByBuEtPMmo92aIVpnCypE4XVlCrEyrMBkMZlWs + Js2gFbVxKpuKqq7oTEbTFce6rdHpTK4uG8+pmKxQN/g7fZ+w3YFbpWri39CjtSXFBfkJ + Bn02mifTF+iduIGdRQVFzzmrxjQpBotJ2WQfHRvdvVuoLlxF6ZOULHt26EoHd2DoUGSv + 7MANMzcSi9K8etwUCgGNITQNOBMvHHG0RwGN7NDpsTFSIB47xsZYsIn0sQ0Do4tfAG7Y + 7i0XJVElizNIBpUhziN5VJ64WtNy5TpljNOlMFudJgXlDS6H1WCNlYkgS7S4uHhFKo6p + ScMDWDJqTmPnzl5co2xXmhtMntQQiT1xjR0X1BcnLk5OA2GoYFhMTLANwzaKFlcZMFDo + 0buZSxuuerZTw3xdpkd0Cj3T3LZRb2Hg6wMNmSkVT3T+oiH99K316/e+YE7r7Xp6jM/Z + c1PK3KqUmuXNB5YOTZbQ39/aODQy+RA9vTF/0WNvTL7K4kd5+D3ewTdg7DeCCR70FuyR + htV7E57iD0kj6sMJIelV6V3+Y9UfdDFzJJnVKMZYtUqTaDLpqSfOnCj36E3mxBCRn3Bs + Wv03t63H/c8CIEaCyJ7PBAPvVsbL0VU11E1EA3JCLHIKXYwbiBoTKUHmJpwKE7bhI0kG + bvoUbdH0XHFfa0GjphgnitRQINLfbs9dfOqp4eHv4wHmlak//2rqCtH+TtZH4kaGb3nk + yujRC9z7U59OXZyanHqWZFzBoOEVcG/2Ty3jXXgapYJk6PNmHpaeNtBUyW7RqGRWvRgn + U1ktymQV9RjNKYpsdbYjLTnO5Ey5x3EmOj10ogsXWLybiEyvakITWS+Ma5aERBDMbt4N + iTgxIQETYlK5gTNE5hSZEQtjKbgr2eph/NIZEgrI9DrjoZIoi4QsjZO+/LSr5tRpvwvT + qexjxd6bv/n81At9+zY35ZaPbf75WwOrjp/u2PetFSPc8aG61IqpP+AcnxheU5RUN/kr + du/A/UAfRl/WwE1et4dzx5ZwC3heJampSq6Rx3gkAb1Wo5DM8YTFHjBp40PEjw4a3aps + jg1qtkXrq8Ynx9ntjPnltFcyb5zZq7iHjuqfvFUwWtWJ6nsfRpc7Wbyfcmc5emzT5B4W + C6vD73LP84vwhDmHZHsfKJXvEYa1e3V79HvSZakpLk+xo8axIGWBZ3nKCk9Xyjr35pjN + sZtV/c6+lD5Xn3sk6VBmPAdKvZDFZ8eDWZ9osBj1Wbrs1Dhlj+R2FbuoKzlWwWfEG1+2 + WONF3pq9L0OZI8pVaipCjiPHbDMmGD2GylS36Ek156lsHnUleLJNuXmjjpGrHntxsowt + 6WSZGjk23bIcTDVl7Kligt3N2Nb8esSTF5Ms6ta7zG6HyuYAOX66IVwm3g+FdOSsWixL + 1BkdxB6X7ABHsipW8igcxO2SK0gW78DvdZgkaSwOYkrAhN3hMtR4X48mUadnZegm7Fkh + Af2DBXGPO4e4Pew2xuKB6ESexQF0HxvBOnodOo7bQz6TXL5DHXvmem5/YMe8vl+e/NOt + 8+kRwV25t6vHn9pw50vVPe/9+rNXRPICaVyZu2LFzf6UBGtKcnrd3XteHFrZPTd/QYO3 + Jt0Ub83J9D/ywPn3Hqd/xfUbCH/E/Rr3iwHjwy3eOSHdqzoqj5d0pniTLlV2J/euKEog + qBQgi1UIGBuMotGoTIjNVqTFKM1mkpZgMpnfuhr66tmjAnMvhDcaH6oqGODRZyOiYRsC + 7/BF7GZVgnd4th+KNC5Sas79zos+19gR6ixct+vj5ixyjM+ZLGsqbD208p+p6vKbj81N + X7q3aQf9hZn5XOSHz07T32mj8kyqQk6Hz9zV4MNvAHVwE36BaMJvCstgObREahH8MhF9 + Hpfht1rwr6yvW7wko7ZzQ39nX8/aNqwT1bLKXiT23XcVEjtP/hbSTiR81oQfIL2I9FOk + D5A+RbqCjWPC0z+UYYYnaNNsmT1pX6tfc53MLLlW33Gd3HWdvOE6OfLd/Jrxb7tO33ud + vOk6Gd96Zo1/B5P/B5qZV5MKZW5kc3RyZWFtCmVuZG9iago3NCAwIG9iago1MDkyCmVu + ZG9iago3NSAwIG9iago8PCAvVHlwZSAvRm9udERlc2NyaXB0b3IgL0FzY2VudCA3NzAg + L0NhcEhlaWdodCA3MTcgL0Rlc2NlbnQgLTIzMCAvRmxhZ3MgMzIKL0ZvbnRCQm94IFst + OTUxIC00ODEgMTQ0NSAxMTIyXSAvRm9udE5hbWUgL0VaTUlMUStIZWx2ZXRpY2EgL0l0 + YWxpY0FuZ2xlIDAKL1N0ZW1WIDAgL01heFdpZHRoIDE1MDAgL1hIZWlnaHQgNjM3IC9G + b250RmlsZTIgNzMgMCBSID4+CmVuZG9iago3NiAwIG9iagpbIDU1NiAwIDAgMCAwIDAg + MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDcyMiAw + IDAgMCAwCjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDU1NiAwIDU1NiAwIDAgNTU2IDAg + Mjc4IDAgMCAwIDAgMCAyMjIgODMzIDAgNTU2IDU1NgowIDMzMyA1MDAgMCA1NTYgXQpl + bmRvYmoKMjIgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1RydWVUeXBlIC9C + YXNlRm9udCAvRVpNSUxRK0hlbHZldGljYSAvRm9udERlc2NyaXB0b3IKNzUgMCBSIC9X + aWR0aHMgNzYgMCBSIC9GaXJzdENoYXIgNDkgL0xhc3RDaGFyIDExNyAvRW5jb2Rpbmcg + L01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjc3IDAgb2JqCjw8IC9MZW5ndGggNzgg + MCBSIC9MZW5ndGgxIDk0MjggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB + vVp5eFNlun+/szdJs+9NmqRpkqb7QktrCz2UtpSlpbSALVJsC4WyFEstVVS4RWGUogyI + FEQfHcUp2wChVA3ggoqis7jjNvqMzqCjc+117r3odRya3PeclA70mfHhD585J++3L+/7 + +97v/ZaT7q61bRAPvUBD7YKWzqUgP965AKR3cUdLZyxukLxnFvd0u2NxNgWAXrW0c1lH + LC48AKBwLlu1brS+4QKAhmlva1kSy4dL6Be0Y0IsTiagn9ze0X1rLK4fQn/WqpsWj+Yb + nsF4SkfLraP9w8cYd69u6WiLlfdmo5/cedPN3bF40pfoV3V2tY2WJw3I3xtAMNUAN0Ec + rAQeKNDi2wTAf6lwAoO5Uj4+S9KVO2/UlHwLOkGO31j9c9l/xfPMe9+3XQoodwh/w4S4 + y+UlnwtGggAqgvnDyh1jOXI9dAxhqE8Lw3SkUqR8pLS0KVboJQOwHekXSDQsJ1thHdIW + pAeRmLHQQYydJFsHGUE8RdaBncwQlYxrrtHmsiqUrrfDhBt6xPWh9U+niQ1H7zNiG4yH + uCkK8gvyKCwBF/kl+MhtUAUpZO+J4CpXM2YdhE6kXiRadgk5OJiY63qOpIOPIVjHD4kM + ecr155wM1+c5YYoMul4MhBn0XkjEmKhxnXE+4nreucz1HNLhWNahIJZ4ynXQucq1MzFM + 9g667neGCdbZEfPWOrHqU66OYL9rSY6cP6s/TB0edBVh/nxR6Soo9LjynRdcWYGwQDCe + 4ZzlSs35nSsZK2IxNzbqE3Uuh3On6zrMSnRWBK5DOk0OkYcglTw06JvhOoVBFPfE9GBh + f5jcfqIqJccXJreJBVUp/cGqgC84y+ULVgYCGJ7/Kr+Jv4GfwufyaXwK7+c9fAJvFPSC + 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 + Pf7of0hi8THXgCEN/lvEiLOkDMrxC+V0mC1/Ia3Dr57z4HpYiN9Zm7EUwbN37H6Aw/+T + wOx511fOK0uralvV09a9fHGLXAId+ZmLbjNSJ1Iv0nakXyCFkM4gvYn0KdJfpWaRtEhu + pGwkEakWqRmpMzr6AD5jYfz+NS6O9a7KzxkXLxgXv3FcXOL+yvZlrK7ob+m4fOk73pXl + 5f8DXVF+9bj8m8bFO8fFu8bF5f/3XNHeunH5t4+Lr5fi/w+AwrDACmVuZHN0cmVhbQpl + bmRvYmoKNzggMCBvYmoKNjA1OQplbmRvYmoKNzkgMCBvYmoKPDwgL1R5cGUgL0ZvbnRE + ZXNjcmlwdG9yIC9Bc2NlbnQgNzcwIC9DYXBIZWlnaHQgNzE3IC9EZXNjZW50IC0yMzAg + L0ZsYWdzIDMyCi9Gb250QkJveCBbLTk1MSAtNDgxIDE0NDUgMTEyMl0gL0ZvbnROYW1l + IC9PVVdGVUIrSGVsdmV0aWNhIC9JdGFsaWNBbmdsZSAwCi9TdGVtViAwIC9NYXhXaWR0 + aCAxNTAwIC9YSGVpZ2h0IDYzNyAvRm9udEZpbGUyIDc3IDAgUiA+PgplbmRvYmoKODAg + MCBvYmoKWyAyNzggMCAwIDAgNTU2IDU1NiAwIDAgMCAwIDU1NiAwIDAgMCAwIDAgMCAw + IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMCAwIDAg + MCAwIDAgMCAwIDAgMCAwIDU1NiAwIDU1NiAwIDAgMCA1NTYgMjc4IDAgMCAwIDAgMCAy + MjIKODMzIDU1NiA1NTYgNTU2IDAgMzMzIDAgMjc4IDAgMCAwIDAgNTAwIDAgMzM0IDAg + MzM0IF0KZW5kb2JqCjIwIDAgb2JqCjw8IC9UeXBlIC9Gb250IC9TdWJ0eXBlIC9UcnVl + VHlwZSAvQmFzZUZvbnQgL09VV0ZVQitIZWx2ZXRpY2EgL0ZvbnREZXNjcmlwdG9yCjc5 + IDAgUiAvV2lkdGhzIDgwIDAgUiAvRmlyc3RDaGFyIDQ0IC9MYXN0Q2hhciAxMjUgL0Vu + Y29kaW5nIC9NYWNSb21hbkVuY29kaW5nCj4+CmVuZG9iago4MSAwIG9iagooTWFjIE9T + IFggMTAuNi42IFF1YXJ0eiBQREZDb250ZXh0KQplbmRvYmoKODIgMCBvYmoKKEQ6MjAx + MTAzMDcyMzI1MDVaMDAnMDAnKQplbmRvYmoKMSAwIG9iago8PCAvUHJvZHVjZXIgODEg + MCBSIC9DcmVhdGlvbkRhdGUgODIgMCBSIC9Nb2REYXRlIDgyIDAgUiA+PgplbmRvYmoK + eHJlZgowIDgzCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDA4NTA0NCAwMDAwMCBuIAow + MDAwMDcyMTE3IDAwMDAwIG4gCjAwMDAwMDI2ODUgMDAwMDAgbiAKMDAwMDA2NDE3NSAw + MDAwMCBuIAowMDAwMDAwMDIyIDAwMDAwIG4gCjAwMDAwMDI2NjUgMDAwMDAgbiAKMDAw + MDAwMjc4OSAwMDAwMCBuIAowMDAwMDYzMjc0IDAwMDAwIG4gCjAwMDAwMDgxODQgMDAw + MDAgbiAKMDAwMDAwODk0MyAwMDAwMCBuIAowMDAwMDA3MjQ1IDAwMDAwIG4gCjAwMDAw + MDgxNjQgMDAwMDAgbiAKMDAwMDAwNjMwOCAwMDAwMCBuIAowMDAwMDA3MjI1IDAwMDAw + IG4gCjAwMDAwMDUzNjkgMDAwMDAgbiAKMDAwMDAwNjI4OCAwMDAwMCBuIAowMDAwMDA0 + NDMwIDAwMDAwIG4gCjAwMDAwMDUzNDkgMDAwMDAgbiAKMDAwMDAwMzQyMiAwMDAwMCBu + IAowMDAwMDg0Nzc1IDAwMDAwIG4gCjAwMDAwNjQxMzggMDAwMDAgbiAKMDAwMDA3Nzk4 + NSAwMDAwMCBuIAowMDAwMDAzNzEwIDAwMDAwIG4gCjAwMDAwMDM5OTggMDAwMDAgbiAK + MDAwMDAwMzEzNCAwMDAwMCBuIAowMDAwMDAzODU0IDAwMDAwIG4gCjAwMDAwMDQxNDIg + MDAwMDAgbiAKMDAwMDAwMzI3OCAwMDAwMCBuIAowMDAwMDAzNTY2IDAwMDAwIG4gCjAw + MDAwMDQyODYgMDAwMDAgbiAKMDAwMDA2MjM3NyAwMDAwMCBuIAowMDAwMDcxNjgxIDAw + MDAwIG4gCjAwMDAwNzEyNDUgMDAwMDAgbiAKMDAwMDA3MDAzOCAwMDAwMCBuIAowMDAw + MDY4ODMxIDAwMDAwIG4gCjAwMDAwNjgzOTUgMDAwMDAgbiAKMDAwMDA2NzE4OCAwMDAw + MCBuIAowMDAwMDY2NzUyIDAwMDAwIG4gCjAwMDAwNjU1NDUgMDAwMDAgbiAKMDAwMDA2 + NDMzOCAwMDAwMCBuIAowMDAwMDYxNDgwIDAwMDAwIG4gCjAwMDAwMTg4NTIgMDAwMDAg + biAKMDAwMDAyODcyMSAwMDAwMCBuIAowMDAwMDQ1NTA4IDAwMDAwIG4gCjAwMDAwNTUz + ODUgMDAwMDAgbiAKMDAwMDAyODc0MiAwMDAwMCBuIAowMDAwMDM4NDAwIDAwMDAwIG4g + CjAwMDAwMDg5NjMgMDAwMDAgbiAKMDAwMDAxODgzMSAwMDAwMCBuIAowMDAwMDM4NDIx + IDAwMDAwIG4gCjAwMDAwNDU0ODcgMDAwMDAgbiAKMDAwMDA1NTQwNiAwMDAwMCBuIAow + MDAwMDYxNDU5IDAwMDAwIG4gCjAwMDAwNjE1MTcgMDAwMDAgbiAKMDAwMDA2MjM1NyAw + MDAwMCBuIAowMDAwMDYyNDE0IDAwMDAwIG4gCjAwMDAwNjMyNTQgMDAwMDAgbiAKMDAw + MDA2MzMxMCAwMDAwMCBuIAowMDAwMDY0MTE4IDAwMDAwIG4gCjAwMDAwNjQyNTggMDAw + MDAgbiAKMDAwMDA2NTUyNSAwMDAwMCBuIAowMDAwMDY2NzMyIDAwMDAwIG4gCjAwMDAw + NjcxNjggMDAwMDAgbiAKMDAwMDA2ODM3NSAwMDAwMCBuIAowMDAwMDY4ODExIDAwMDAw + IG4gCjAwMDAwNzAwMTggMDAwMDAgbiAKMDAwMDA3MTIyNSAwMDAwMCBuIAowMDAwMDcx + NjYxIDAwMDAwIG4gCjAwMDAwNzIwOTcgMDAwMDAgbiAKMDAwMDA3MjI4MCAwMDAwMCBu + IAowMDAwMDcyMTY1IDAwMDAwIG4gCjAwMDAwNzIyNTggMDAwMDAgbiAKMDAwMDA3MjM3 + MyAwMDAwMCBuIAowMDAwMDc3NTU1IDAwMDAwIG4gCjAwMDAwNzc1NzYgMDAwMDAgbiAK + MDAwMDA3NzgwMSAwMDAwMCBuIAowMDAwMDc4MTYwIDAwMDAwIG4gCjAwMDAwODQzMDkg + MDAwMDAgbiAKMDAwMDA4NDMzMCAwMDAwMCBuIAowMDAwMDg0NTU1IDAwMDAwIG4gCjAw + MDAwODQ5NTAgMDAwMDAgbiAKMDAwMDA4NTAwMiAwMDAwMCBuIAp0cmFpbGVyCjw8IC9T + aXplIDgzIC9Sb290IDYwIDAgUiAvSW5mbyAxIDAgUiAvSUQgWyA8NzQ2ZTU0MTc2ZTFi + MWRkYzAwOTY3OWRkMWQzZGUwNDM+Cjw3NDZlNTQxNzZlMWIxZGRjMDA5Njc5ZGQxZDNk + ZTA0Mz4gXSA+PgpzdGFydHhyZWYKODUxMTkKJSVFT0YKMSAwIG9iago8PC9BdXRob3Ig + KFZhbmNlIFNoaXBsZXkpL0NyZWF0aW9uRGF0ZSAoRDoyMDExMDEzMDE5NDgwMFopL0Ny + ZWF0b3IgKE9tbmlHcmFmZmxlIFByb2Zlc3Npb25hbCA1LjIuMykvTW9kRGF0ZSAoRDoy + MDExMDMwNzIzMjQwMFopL1Byb2R1Y2VyIDgxIDAgUiAvVGl0bGUgKG1hcF9zdXBlcnZp + c2lvbik+PgplbmRvYmoKeHJlZgoxIDEKMDAwMDA4NjkzNyAwMDAwMCBuIAp0cmFpbGVy + Cjw8L0lEIFs8NzQ2ZTU0MTc2ZTFiMWRkYzAwOTY3OWRkMWQzZGUwNDM+IDw3NDZlNTQx + NzZlMWIxZGRjMDA5Njc5ZGQxZDNkZTA0Mz5dIC9JbmZvIDEgMCBSIC9QcmV2IDg1MTE5 + IC9Sb290IDYwIDAgUiAvU2l6ZSA4Mz4+CnN0YXJ0eHJlZgo4NzEyMwolJUVPRgo= + + QuickLookThumbnail + + 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 + aXRJVAAAABQAAAIia29LUgAAAAwAAAI2AEsAbABlAHUAcgBlAG4ALQBMAEMARABMAEMA + RAAtAGYAYQByAHYAZQBzAGsA5gByAG0ASwBvAGwAbwByACAATABDAEQAQwBvAGwAbwBy + ACAATABDAEQARgBhAHIAZwBlAC0ATABDAEQATABDAEQAIABjAG8AdQBsAGUAdQByAEwA + QwBEACAAQwBvAGwAbwByAGkAZABvAEwAQwBEACAAYQAgAEMAbwByAGUAc19pgnIAIABM + AEMARABMAEMARAAgAGMAbwBsAG8AcjCrMOkw/AAgAEwAQwBEBCYEMgQ1BEIEPQQ+BDkA + IAQWBBoALQQ0BDgEQQQ/BDsENQQ5AEYA5AByAGcALQBMAEMARF9pgnJtsmZ2mG95OlZo + AEYAYQByAGIALQBMAEMARABWAOQAcgBpAC0ATABDAEQATABDAEQAIABjAG8AbABvAHIA + ac7st+wAIABMAEMARAAAdGV4dAAAAABDb3B5cmlnaHQgQXBwbGUsIEluYy4sIDIwMTEA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUgABAAAAARbPWFlaIAAAAAAAAGXb + AAA6RgAACaRYWVogAAAAAAAAaMsAAKyrAAAaoVhZWiAAAAAAAAAoMAAAGQ8AAK7oY3Vy + dgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA2ADsAQABFAEoATwBUAFkAXgBj + AGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKMAqACtALIAtwC8AMEAxgDLANAA1QDbAOAA + 5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGD + AYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQC + XQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNm + A3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgE + tgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3 + BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gI + CwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woR + CicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwM + dQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8J + DyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegS + BxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0 + FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y + 1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyj + HMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg + 8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVo + JZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUq + aCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+R + L8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1 + TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zst + O2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpB + rEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhL + SJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lP + k0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3 + V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1f + D19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9 + Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9Fw + K3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkq + eYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC + 9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zK + jTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqX + dZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqIm + opajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUSt + uK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blK + ucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvF + yMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/ + 0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynf + r+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R + 7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7 + d/wH/Jj9Kf26/kv+3P9t//9wYXJhAAAAAAADAAAAAmZmAADypwAADVkAABPQAAAKwHZj + Z3QAAAAAAAAAAAADAQAAAgAAAAQAEAAoAEsAewC4AQIBUwGxAhwCkQMVA7EEYAUiBfQG + 1gfKCNYJ9wsfDGoNwg8kEJoSIxOsFT8W9BibGlAcDR3NH4ohVSMbJNsmoyhkKiUr3i2I + Lx8wsTJHM981dDcLOKA6NTvAPUY+0EBTQdBDS0TBRjBHm0kDSmZLw00XTm9PuFEEUkxT + j1TPVhJXUliIWcBa9VwhXUxedV+WYLxh3WMBZCFlPmZXZ21ohmmcaq9rwWzPbd9u7m/4 + cQJyDHMZdCV1MnY+d0l4WXlpemt7RnwbfO99xn6if3yAWoE4ghqDAIPohNGFwIaxh6aI + nomaipeLmoybjaKOrY+5kMeR1ZLlk/OU9ZXqltqXzZjBmbWaspuwnK2drp6xn7WgvKHC + osmj0aTWpd6m5qfpqO2p8qr1q/Ss8q3vrvOwD7Ewsk6za7SDtZ62trfLuNu567r7vAm9 + Fb4gvynAMsE+wkrDWMRmxXbGiceeyLTJy8q/y6LMgM1czjjPE8/u0MXRmtJx00XUFtTp + 1bvWjtdi2DTZBdnX2qzbgNxV3SzeBN7V33vgH+DA4WTiCeKw41vkB+Sy5WHmD+a852ro + GOjH6XTqIOrK63fsI+zM7XXuHe7C72vwFPC48Vzx//Kk80rz8fSS9TH1z/Ze9un3V/fC + +Br4YPim+Oz5c/ob+67+I///AAAABAASACwAUgCGAMgBFQFjAb4CJwKhAycDtwRgBSAF + 6gbEB7QIuAnNCuoMIA1oDsMQIxGNEwgUihYdF7sZXRsDHKseVyAOIcEjfCUpJt4okioz + K6stDy5rL8kxLTKPM/U1WTa/OCI5fzrfPD49mj72QFFBpkL6RElFmEbiSCdJb0qrS+lN + I05bT5FQx1H7UyhUVFWAVqNXxljmWgNbIlw7XVlec1+IYJxhrmLBY9Nk42XxZv9oDmkc + aihrNGxBbVJuZW90cIlxmnKyc8t00XW2dpJ3a3hIeSh6CHrqe818sX2bfoR/boBbgUqC + OoMshB6FEoYHhvyH8ojrieSK3YvVjM2Nw466j6qQm5GOkoGTdZRulWeWYJdcmFiZV5pW + m1WcVZ1VnlSfVaBVoVSiU6NVpFOlT6ZNp0moUKl2qqarzqz6rh+vSLBvsZSys7PTtPW2 + FbczuFK5cLqOu7K81r37vyTATsF8wq3D4MUMxhvHFMgHyPrJ78rly9zM0M3Fzr3Ps9Cn + 0ZvSj9OE1HjVadZX10TYM9kf2gra9Nvf3MPdkt5d3yjf9eDD4ZDiXOMp4/bkweWI5k7n + E+fX6JrpWeoX6tbrkOxL7QXtve5x7yXv3vCP8UDx8PKk81j0CvS29WL2D/a791X35/iJ + +Tj5//rt/Av9Z/66/zP/d/+7//8AAAACAAsAGgAxAFAAdwCnAOABHwFhAa0CAQJgAsgD + OwO5BEIE2AV+BjEG6ge4CIwJbApcC1IMTw1VDmIPdxCTEbMS0hP1FRUWOxdaGH0ZnBq6 + G9Mc6x37HwcgFyEpIjojTSRfJW4meieGKJApmSqgK6YsqS2pLqgvpDCgMZUyhjN6NGk1 + VzZENy44FTkAOec6yjuwPJs9iT55P2hAUkE/QihDFUP9ROVFyUatR5NIekldSj9LI0wG + TOlNy06tT5FQdlFfUkZTL1QXVQNV8FbRV6VYdVlBWhBa4FuxXINdVF4lXvlfzGCeYXNi + R2MbY/BkxWWYZm1nQGgWaOtpwWqVa2lsPG0MbdFujG8/b/JwpHFTcgVyt3NndBd0yHV5 + dit23neReEZ4/Hm1enB7K3vpfKt9b34yfvl/woCNgV2CLYL9g82Em4Vthj6HD4fgiLCJ + hIpXiyqL/YzRjaSOe49SkCqRA5HckrmTlZRylU+WM5ccmAiY85nhmtCbwpyynaSem5+T + oIuhhqKEo4aki6WQppWnnKinqbOqv6vNrOCt8a8FsBqxL7JJs2S0g7WitsO35LkMujG7 + WbyCva2+2sAFwS/CW8OKxLPF3ccKyDLJYcqsy/vNQ85/z7rQ7dIk02XUpNXy11fYydpM + 2/Tdv9+44ebkUecj6mzuavN2+ln//wAAbmRpbgAAAAAAAAY2AACVRgAAVs8AAFKpAACR + TgAAKHIAABcKAABQDQAAVDkAAtwoAAKo9QABczMAAwEAAAIAAAAYADIATQBmAH4AlgCu + AMYA3QD0AQwBIgE6AVABaAF/AZcBrgHGAd8B+AIQAigCQgJcAnYCkAKrAsYC4gL/AxsD + OANVA3QDkwOzA9MD8wQVBDcEWgR9BKMEyQTyBRwFRwVzBZ8FzAX5BigGVwaHBrgG6Qcc + B1AHhge9B/QILAhmCKII3gkcCVsJnAnfCiMKaQqwCvkLQwuSC+EMMAyFDNoNMA2JDeQO + QQ6gDv4PYA/GEC0QlBEAEXAR4RJUEs0TRBO/FDwUuRU7Fb8WRxbSF10X6xh9GREZqRpD + Gt4bfRwhHMUdbB4SHrwfZyAVIMUhdCIlIuIjxiSyJaEmiid5KGcpVypEKzAsIC0LLfYu + 4S/KMLMxnDKDM200VTU7NiI3Cjf0ON45yzq+O8c82z3uPwFAGUEpQjlDTURfRXJGhUeY + SK5JxUrdS/tNGU41T15QhVGwUtpUEVVIVoVXxFjmWf9bIFxBXWhelV/AYPBiJmNkZKRl + 5WcraHZpxWsWbG9txW8acHRxy3MmdIB113cweIl543tyfSN+4oClgm6EO4YVh/WJ1YvG + jbiPr5Gmk6GVp5etmbGbuJ3Dn8Oh36SSp1uqGKzTr4CyNLTft5m6VL0Uv9/CvMWQyH7L + cM570XXUkde72t3eA+FJ5Kfohu2W9XX5NPrX++382f2m/qH//wAAABYAMQBLAGYAfgCX + ALAAyADgAPgBEQEpAUEBWQFxAYoBowG9AdYB8AIKAiQCPgJZAnQCkAKsAskC5gMEAyID + QANfA38DngPAA+IEBAQnBEoEbwSWBMAE7wUfBVEFhAW3BesGIAZWBowGxAb8BzYHcQeu + B+wIKghqCKsI7gkxCXYJvQoFCk8KmwroCzYLiAvbDC4MhgzfDTkNlg31DlUOuA8aD4EP + 6xBWEMIRNBGnEhwSlRMQE4sUDBSLFQ4VlRYeFqsXORfIGFsY8BmJGiMavhtcG/4coR1F + Hekejh83H94giyE0Id8iiyNeJD8lKCYOJvQn3ijHKbQqnCuILHYtYy5RL0AwLzEiMhQz + CTQBNPc17zbqN+g46TnuOvQ8BT0YPis/QEBYQWtCgUOaRLFFzEblSAFJH0o/S2FMiE2s + TtZQBFEzUmBTl1TSVgtXTVh4WYRak1urXL5d3F78YBZhOmJgY45kvWXqZxxoUmmKasJs + AW0+bndvs3DwcihzZ3Shddl3EnhLeYV633xiffd/j4Engr+EWIX5h5uJO4rhjI6OPI/t + kaCTV5UZluWYrpp+nFWeMqAOof6kKKZfqJKqxa0Br0Kxg7PQti+4krsCvXnAB8KUxTbH + 3sqSzV/QHtL81ebYxNut3rnhxuTf6I/r2e6c8Ofy1PRz9fj3tP//AAAAJQBPAHgAoADH + AOwBEgE2AVwBgAGlAcsB8QIYAj8CZwKPArkC5AMQAz4DbAOdA84EAgQ3BG4EqATjBSIF + YwWlBegGLQZzBrsHBQdSB6EH8ghFCJsI8wlNCasKCwpuCtQLPAusDBsMjw0GDYAN/g6A + DwIPihAXEKIRLRG5EkcS3BNxFAsUpRVFFegWkRc7F+YYlxlLGgEauht2HDcc+B27Hn0f + RCALINYhnyJrI04kPSU0JionIigdKRwqHSseLCctLi46L0kwWTFwMogzpjTDNeQ3Cjg0 + OWM6mzv3PWk+4EBkQeVDckUBRpZILEnGS19M+k6PUChRvFNLVOBWb1f+WYVbElygXjhf + y2FjYv9koWZAZ+NpimszbOJui3A5ceVzmHVFdvV4qHpdfAR9pH9KgO6CkoQ0hdyHg4kk + isaMa44Nj62RSJLhlH6WHpe7mVWa8ZyOniufwqFhovuklaY2p9KpZ6sFrJmuM6/LsWmy + +LSVtiy3xLlduvS8i74ov8nBZ8MHxKTGT8f5yZ7LTM0Czp3QG9Ge0yrUv9Zn2AjZudtr + 3Q7eruBX4ezjbeTk5lPnuekU6lDrg+yt7cbu0e/U8MbxtfKQ82z0LPTr9Z72SPby94j4 + HPiv+S/5qvok+p77Avtm+8r8LvyH/NH9G/1l/a/9+v5N/rn/Jv+S//8AAHNmMzIAAAAA + AAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsbW1vZAAAAAAAAAYQAACc + hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canvas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 1 + WindowInfo + + CurrentSheet + 0 + ExpandedCanvases + + + name + Canvas 1 + + + FitInWindow + + Frame + {{0, 4}, {1033, 874}} + ListView + + OutlineWidth + 142 + RightSidebar + + ShowRuler + + Sidebar + + SidebarWidth + 120 + VisibleRegion + {{0, -26}, {755.159, 605.473}} + Zoom + 1.1891534328460693 + ZoomValues + + + Canvas 1 + 0.0 + 1 + + + + saveQuickLookFiles + YES + + diff --git a/MAP/ebin/map.app b/MAP/ebin/map.app new file mode 100644 index 0000000..022387f --- /dev/null +++ b/MAP/ebin/map.app @@ -0,0 +1,9 @@ +{application, map, + [{description, "Mobile Application Part"}, + {vsn, "0.1"}, + {modules, [map, map_app, map_sup, map_pm_sup, + map_load_fsm, map_dsm_fsm, map_psm_fsm, map_rsm_fsm]}, + {registered, []}, + {applications, [kernel, stdlib, tcap]}, + {env, [{supref, {local, map_sup}}]}, + {mod, {map_app, []}}]}. diff --git a/MAP/src/Makefile b/MAP/src/Makefile new file mode 100644 index 0000000..6484630 --- /dev/null +++ b/MAP/src/Makefile @@ -0,0 +1,36 @@ +## $Id: Makefile,v 1.1 2005/02/13 00:42:12 vances Exp $ + +EBIN = ../ebin + +ERL = erl +ERLC = erlc +EMULATOR = beam +ERLCFLAGS = -b $(EMULATOR) -o $(EBIN) -W -v +warn_unused_vars + +$(EBIN)/%.$(EMULATOR):%.erl + $(ERLC) $(ERLCFLAGS) $< + +BEAMS = $(EBIN)/map.$(EMULATOR) $(EBIN)/map_app.$(EMULATOR) \ + $(EBIN)/map_sup.$(EMULATOR) \ + $(EBIN)/map_pm_sup.$(EMULATOR) + +.PHONY: default +default: all + +.PHONY: all +all: $(BEAMS) gsm ansi + +.PHONY:gsm +gsm: + cd gsm && $(MAKE) + +.PHONY: ansi +ansi: + cd ansi && $(MAKE) + +.PHONY: clean +clean: + - rm -f $(BEAMS) + cd gsm && $(MAKE) $@ + cd ansi && $(MAKE) $@ + diff --git a/MAP/src/gsm/Makefile b/MAP/src/gsm/Makefile new file mode 100644 index 0000000..4d4960c --- /dev/null +++ b/MAP/src/gsm/Makefile @@ -0,0 +1,35 @@ +## $Id: Makefile,v 1.1 2005/02/13 09:45:06 vances Exp $ + +EBIN = ../ebin/itu + +ERL = erl +ERLC = erlc +EMULATOR = beam +ERLCFLAGS = -b $(EMULATOR) -o $(EBIN) -W -v +warn_unused_vars + +$(EBIN)/%.$(EMULATOR):%.erl + $(ERLC) $(ERLCFLAGS) $< + +BEAMS = $(EBIN)/map_dsm_fsm.$(EMULATOR) \ + $(EBIN)/map_load_fsm.$(EMULATOR) + +.PHONY: default +default: all + +.PHONY: all +all: $(BEAMS) gsm ansi + +.PHONY:gsm +gsm: + cd gsm && $(MAKE) + +.PHONY: ansi +ansi: + cd ansi && $(MAKE) + +.PHONY: clean +clean: + - rm -f $(BEAMS) + cd gsm && $(MAKE) $@ + cd ansi && $(MAKE) $@ + diff --git a/MAP/src/gsm/map_dsm_fsm.erl b/MAP/src/gsm/map_dsm_fsm.erl new file mode 100644 index 0000000..f55ab52 --- /dev/null +++ b/MAP/src/gsm/map_dsm_fsm.erl @@ -0,0 +1,684 @@ +%%% $Id: map_dsm_fsm.erl,v 1.2 2005/02/13 09:45:06 vances Exp $ +%%%--------------------------------------------------------------------- +%%% @copyright 2005 Motivity Telecom Inc. +%%% @author Vance Shipley +%%% @end +%%% +%%% Copyright 2005 Motivity Telecom Inc. +%%% +%%% All rights reserved. No part of this computer program(s) may be +%%% used, reproduced, stored in any retrieval system, or transmitted, +%%% in any form or by any means, electronic, mechanical, photocopying, +%%% recording, or otherwise without prior written permission of +%%% Motivity Telecom Inc. +%%%--------------------------------------------------------------------- +%%% +%%% @doc GSM MAP Dialogue State Machine (DSM). +%%% +%%% @reference 3GPP TS 29.02 Figure 15.6/3: Process Secure_MAP_DSM +%%% +-module(map_dsm_fsm). +-copyright('Copyright (c) 2005 Motivity Telecom Inc.'). +-author('vances@motivity.ca'). +-behaviour(gen_fsm). + +%% behaviour modules must export this function +-export([behaviour_info/1]). + +%% export the gen_fsm interface +-export([start/3, start/4, start_link/3, start_link/4, + send_event/2, sync_send_event/2, sync_send_event/3, + send_all_state_event/2, sync_send_all_state_event/2, + sync_send_all_state_event/3, reply/2, send_event_after/2, + start_timer/2, cancel_timer/1]). + +%% export the gen_fsm state handler call backs +-export([statename/2, statename/3]). + +%% export the gen_fsm common call backs +-export([init/1, handle_event/3, handle_sync_event/4, + handle_info/3, terminate/3, code_change/4]). + +%% define what callbacks users must export +%% +%% @hidden +behaviour_info(callbacks) -> + gen_fsm:behaviour_info(callbacks); +behaviour_info(Other) -> + gen_fsm:behaviour_info(Other). + +%% include record definitions for TC service primitives +-include("tcap.hrl"). +%% include record definitions for MAP service primitives +-include("map.hrl"). + +%% StateData record definition +-record(state, {module, ext_statename, ext_statedata + applicaton_context, requests = [], + % @reference 3GPP TS 2902 Figure 15.6/3a: Process Secure_MAP_DSM (sheet 1) DCL + secure_transport_required, components_present, ac_name_unchanged, + encapsulated_ac_name_unchanged, ac_included, ac_supported, + invoke_id_active, last_component, operation_exists, + alternative_name_exists, user_info_included, op_code). + + +%%---------------------------------------------------------------------- +%% The gen_fsm API functions +%%---------------------------------------------------------------------- + +%% @hidden +start(Module, Args, Options) -> + gen_fsm:start(?MODULE, [Module, Args], Options). + +%% @hidden +start(FsmRef, Module, Args, Options) -> + gen_fsm:start(FsmRef, ?MODULE, [Module, Args], Options). + +%% @hidden +start_link(Module, Args, Options) -> + gen_fsm:start_link(?MODULE, [Module, Args], Options). + +%% @hidden +start_link(FsmRef, Module, Args, Options) -> + gen_fsm:start_link(FsmRef, ?MODULE, [Module, Args], Options). + +%% @hidden +send_event(FsmRef, Event) -> + gen_fsm:send_event(FsmRef, Event). + +%% @hidden +sync_send_event(FsmRef, Event) -> + gen_fsm:sync_send_event(FsmRef, Event). + +%% @hidden +sync_send_event(FsmRef, Event, Timeout) -> + gen_fsm:sync_send_event(FsmRef, Event, Timeout). + +%% @hidden +send_all_state_event(FsmRef, Event) -> + gen_fsm:send_all_state_event(FsmRef, Event). + +%% @hidden +sync_send_all_state_event(FsmRef, Event) -> + gen_fsm:sync_send_all_state_event(FsmRef, Event). + +%% @hidden +sync_send_all_state_event(FsmRef, Event, Timeout) -> + gen_fsm:sync_send_all_state_event(FsmRef, Event, Timeout). + +%% @hidden +reply(Caller, Reply) -> + gen_fsm:reply(Caller, Reply). + +%% @hidden +send_event_after(Time, Event) -> + gen_fsm:send_event_after(Time, Event). + +%% @hidden +start_timer(Time, Msg) -> + gen_fsm:start_timer(Time, Msg). + +%% @hidden +cancel_timer(Ref) -> + gen_fsm:cancel_timer(Ref). + + +%%---------------------------------------------------------------------- +%% The gen_fsm call backs +%%---------------------------------------------------------------------- + +%% @hidden +init([Module, Args]) -> + process_flag(trap_exit, true), + % initialize user callback module + case Module:init(Args) of + {ok, ExtStateName, ExtStateData} -> + StateData = #state{module = Module, ext_statename = ExtStateName, ext_statedata = ExtStateData}, + {ok, idle, StateData}; + {ok, ExtStateName, ExtStateData, Timeout} -> + StateData = #state{module = Module, ext_statename = ExtStateName, ext_statedata = ExtStateData}, + {ok, idle, State, Timeout}; + {stop, Reason} -> + {stop, Reason}; + ignore -> + ignore; + Other -> + Other + end. + +%% @spec(Event, StateData) -> Result +%% +%% @doc State handler for the idle state. +%% +%% @hidden +%% +% +% @reference 3GPP TS 29.002 15.2.1 Behaviour at the initiating side +% @reference 3GPP TS 29.002 Figure 15.6/3a: Process_Secure_MAP_DSM (sheet 1) +% +idle({'MAP', 'OPEN', request, Open} = Event, StateData) -> + AC = Open#'MAP-OPEN'.application_context_name, + AC_PDU = Open#'MAP-OPEN'.specific_information), + % secure transport required? -- according to the AC and the identity of responder + case secure_transport_required(AC, AC_PDU) of + % true + true -> + % set AC: Secure_Transport + % build encapsulated AC PDU + NewStateData = build_encapsulated_ac_pdu(AC, AC_PDU)}, + {next_state, wait_for_user_requests, NewStateData#state{secure_transport_required = true}}; + % false + false -> + % store AC and user data + NewStateData = StateData#state{application_context = AC, user_data = AC_PDU}, + {next_state, wait_for_user_requests, StateData#state{secure_transport_required = false}}; + end; +% @reference 3GPP TS 29.002 Figure 15.6/3j: Process_Secure_MAP_DSM (sheet 10) +idle({'TC', 'BEGIN', indication, #'TR-BEGIN'{userInfo = undefined, componentsPresent = true}, StateData) -> + % AC included? (false) + % components present? (true) + {next_state, wait_for_init_data, StateData}; +idle({'TC', 'BEGIN', indication, Begin#'TR-BEGIN'{userInfo = AC}, StateData) -> + % AC included? (true) + % AC version = 1? (true) + % TODO: the rest of it! + {next_state, idle, StateData}; +idle({'TC', 'BEGIN', indication, Parms} = Event, StateData) -> + {next_state, wait_for_load_check_result1, StateData}; +% forward unrecognized events to user callback module +idle(Event, StateData) -> + Module = StateData#state.module, + ExtStateName = State#state.ext_statename, + case Module:StateName(Event, StateData#state.ext_statedata) of + {next_state, NextExtStateName, NewExtStateData} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, idle, NewStateData}; + {next_state, NextExtStateName, NewExtStateData, Timeout} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, idle, NewStateData, Timeout}; + {stop, Reason, NewExtStateData} -> + NewStateData = StateData#state{ext_statedata = NewExtStateData}, + {stop, Reason, NewStateData}; + Other -> + Other + end. + +%% @spec(Event, StateData) -> Result +%% +%% @doc State handler for the wait_for_user_requests state. +%% +%% @hidden +%% +% @reference 3GPP TS 29.002 15.2.1 Behaviour at the initiating side +% @reference 3GPP TS 29.002 Figure 15.6/3b: Process_Secure_MAP_DSM (sheet 2) +wait_for_user_requests({'MAP', 'DELIMITER', request, Parms} = Event, StateData) -> + % TC_BEGIN_req_VIA_TC1 + {next_state, dialogue_initiated, StateData}; +wait_for_user_requests({'MAP', 'U-ABORT', request, Parms} = Event, StateData) -> + % Set_Abort_Reason: User_Specific + % Set_User_Info: MAP_User_Abort_PDU + % TC_U_ABORT_req_VIA_TC1 + % secure transport required? + % true + % Note: To all active SRSSMs + % Terminated_VIA_Intern4 + % false + % Note: To all active RSSMs + % Terminated_VIA_Intern2 + {next_state, idle, StateData}; +% any MAP specific request primitive +wait_for_user_requests({'MAP', MapSpecificRequest, request, Parms} = Event, StateData) -> + % secure transport required? + case StateData#state.secure_transport_required of + % true + % store request + % spawn Secure_Requesting_MAP_SSM + % Service_Invoked_VIA_Intern4 + % false + % spawn Requesting_MAP_SSM + % Service_Invoked_VIA_Intern2 + {next_state, wait_for_user_requests, StateData}; +% forward unrecognized events to user callback module +wait_for_user_requests(Event, StateData) -> + Module = StateData#state.module, + ExtStateName = State#state.ext_statename, + case Module:StateName(Event, StateData#state.ext_statedata) of + {next_state, NextExtStateName, NewExtStateData} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, wait_for_user_requests, NewStateData}; + {next_state, NextExtStateName, NewExtStateData, Timeout} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, wait_for_user_requests, NewStateData, Timeout}; + {stop, Reason, NewExtStateData} -> + NewStateData = StateData#state{ext_statedata = NewExtStateData}, + {stop, Reason, NewStateData}; + Other -> + Other + end. + +%% @spec(Event, StateData) -> Result +%% +%% @doc State handler for the dialogue_initiated state. +%% +%% @hidden +%% +% @reference 3GPP TS 29.002 Figure 15.6/3c: Process_Secure_MAP_DSM (sheet 3) +dialogue_initiated({'TC', 'END', indication, End#'TC-END'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +dialogue_initiated({'TC', 'NOTICE', indication, Notice#'TC-NOTICE'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +% @reference 3GPP TS 29.002 Figure 15.6/3d: Process_Secure_MAP_DSM (sheet 4) +dialogue_initiated({'TC', 'P-ABORT', indication, Abort#'TC-P-ABORT'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +% @reference 3GPP TS 29.002 Figure 15.6/3e: Process_Secure_MAP_DSM (sheet 5) +dialogue_initiated({'TC', 'U-ABORT', indication, Abort#'TC-U-ABORT'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +% @reference 3GPP TS 29.002 Figure 15.6/3e: Process_Secure_MAP_DSM (sheet 5) +% @reference 3GPP TS 29.002 Figure 15.6/3f: Process_Secure_MAP_DSM (sheet 6) +% @reference 3GPP TS 29.002 Figure 15.6/3g: Process_Secure_MAP_DSM (sheet 7) +dialogue_initiated({'TC', 'U-ABORT', indication, Abort#'TC-U-ABORT'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, dialogue_initiated, StateData}; +dialogue_initiated({'TC', 'L-CANCEL', indication, Cancel#'TC-L-CANCEL'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, dialogue_initiated, StateData}; +% @reference 3GPP TS 29.002 Figure 15.6/3h: Process_Secure_MAP_DSM (sheet 8) +dialogue_initiated({'MAP', 'U-ABORT', request, Abort#'MAP-U-ABORT'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +dialogue_initiated({'MAP', 'CLOSE', request, Close#'MAP-CLOSE'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +% @reference 3GPP TS 29.002 Figure 15.6/3i: Process_Secure_MAP_DSM (sheet 9) +dialogue_initiated({'TC', 'CONTINUE', indication, Continue#'TC-Continue'{}} = Event, StateData) -> + % Note: the first one + % TODO: the rest! + {next_state, dialogue_established, StateData}; +% forward unrecognized events to user callback module +dialogue_initiated(Event, StateData) -> + Module = StateData#state.module, + ExtStateName = State#state.ext_statename, + case Module:StateName(Event, StateData#state.ext_statedata) of + {next_state, NextExtStateName, NewExtStateData} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, dialogue_initiated, NewStateData}; + {next_state, NextExtStateName, NewExtStateData, Timeout} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, dialogue_initiated, NewStateData, Timeout}; + {stop, Reason, NewExtStateData} -> + NewStateData = StateData#state{ext_statedata = NewExtStateData}, + {stop, Reason, NewStateData}; + Other -> + Other + end. + +%% @spec(Event, StateData) -> Result +%% +%% @doc State handler for the wait_for_init_data state. +%% +%% @hidden +%% +% @reference 3GPP TS 29.002 Figure 15.6/3k: Process_Secure_MAP_DSM (sheet 11) +wait_for_init_data({'TC', 'INVOKE', indication, Invoke#'TC-INVOKE'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, wait_for_load_check_result2, StateData}; +wait_for_init_data({'TC', 'L-REJECT', indication, Reject#'TC-L-REJECT'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +% any other indication +wait_for_init_data({'TC', _, indication, _} = Event, StateData) -> + % TC_U_ABORT_req_VIA_TC1 + {next_state, idle, StateData}; +% forward unrecognized events to user callback +wait_for_init_data(Event, StateData) -> + Module = StateData#state.module, + ExtStateName = State#state.ext_statename, + case Module:StateName(Event, StateData#state.ext_statedata) of + {next_state, NextExtStateName, NewExtStateData} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, wait_for_init_data, NewStateData}; + {next_state, NextExtStateName, NewExtStateData, Timeout} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, wait_for_init_data, NewStateData, Timeout}; + {stop, Reason, NewExtStateData} -> + NewStateData = StateData#state{ext_statedata = NewExtStateData}, + {stop, Reason, NewStateData}; + Other -> + Other + end. + +%% @spec(Event, StateData) -> Result +%% +%% @doc State handler for the wait_for_load_check_result2 state. +%% +%% @hidden +%% +% @reference 3GPP TS 29.002 Figure 15.6/3k: Process_Secure_MAP_DSM (sheet 11) +wait_for_load_check_result2('Load_OK', StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +wait_for_load_check_result2('Overload', StateData) -> + {next_state, idle, StateData}; +% any other indication +wait_for_load_check_result2({'TC', _, indication, _} = Event, StateData) -> + % TC_U_ABORT_req_VIA_TC1 + {next_state, idle, StateData}; +% forward unrecognized events to user callback module +wait_for_load_check_result2(Event, StateData) -> + Module = StateData#state.module, + ExtStateName = State#state.ext_statename, + case Module:StateName(Event, StateData#state.ext_statedata) of + {next_state, NextExtStateName, NewExtStateData} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, wait_for_load_check_result2, NewStateData}; + {next_state, NextExtStateName, NewExtStateData, Timeout} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, wait_for_load_check_result2, NewStateData, Timeout}; + {stop, Reason, NewExtStateData} -> + NewStateData = StateData#state{ext_statedata = NewExtStateData}, + {stop, Reason, NewStateData}; + Other -> + Other + end. + +%% @spec(Event, StateData) -> Result +%% +%% @doc State handler for the wait_for_load_check_result1 state. +%% +%% @hidden +%% +% @reference 3GPP TS 29.002 Figure 15.6/3l: Process_Secure_MAP_DSM (sheet 12) +wait_for_load_check_result1('Load_OK', StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +wait_for_load_check_result1('Load_OK', StateData) -> + % TODO: the rest! + {next_state, dialogue_pending, StateData}; +wait_for_load_check_result1('Overload', StateData) -> + {next_state, idle, StateData}; +% any other indication +wait_for_load_check_result1({'TC', _, indication, _} = Event, StateData) -> + % TC_U_ABORT_req_VIA_TC1 + {next_state, idle, StateData}; +% forward unrecognized events to user callback module +wait_for_load_check_result1(Event, StateData) -> + Module = StateData#state.module, + ExtStateName = State#state.ext_statename, + case Module:StateName(Event, StateData#state.ext_statedata) of + {next_state, NextExtStateName, NewExtStateData} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, wait_for_load_check_result1, NewStateData}; + {next_state, NextExtStateName, NewExtStateData, Timeout} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, wait_for_load_check_result1, NewStateData, Timeout}; + {stop, Reason, NewExtStateData} -> + NewStateData = StateData#state{ext_statedata = NewExtStateData}, + {stop, Reason, NewStateData}; + Other -> + Other + end. + +%% @spec(Event, StateData) -> Result +%% +%% @doc State handler for the dialogue_pending state. +%% +%% @hidden +%% +% @reference 3GPP TS 29.002 Figure 15.6/3m: Process_Secure_MAP_DSM (sheet 13) +dialogue_pending({'MAP', 'OPEN', response, Open#'MAP-OPEN'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, dialogue_accepted, StateData}; +dialogue_pending({'MAP', 'OPEN', response, Open#'MAP-OPEN'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +dialogue_pending({'MAP', 'U-ABORT', request, Abort#'MAP-U-ABORT'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +% forward unrecognized events to user callback module +dialogue_pending(Event, StateData) -> + Module = StateData#state.module, + ExtStateName = State#state.ext_statename, + case Module:StateName(Event, StateData#state.ext_statedata) of + {next_state, NextExtStateName, NewExtStateData} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, dialogue_pending, NewStateData}; + {next_state, NextExtStateName, NewExtStateData, Timeout} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, dialogue_pending, NewStateData, Timeout}; + {stop, Reason, NewExtStateData} -> + NewStateData = StateData#state{ext_statedata = NewExtStateData}, + {stop, Reason, NewStateData}; + Other -> + Other + end. + +%% @spec(Event, StateData) -> Result +%% +%% @doc State handler for the dialogue_accepted state. +%% +%% @hidden +%% +% @reference 3GPP TS 29.002 Figure 15.6/3n: Process_Secure_MAP_DSM (sheet 14) +dialogue_accepted({'MAP', 'CLOSE', request, Close#'MAP-CLOSE'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +dialogue_accepted({'MAP', 'DELIMITER', request, Delimiter#'MAP-DELIMITER'{}} = Event, StateData) -> + % TC_CONTINUE_req_VIA_TC1 + {next_state, dialogue_established, StateData}; +% any MAP specific request primitive +dialogue_accepted({'MAP', Request, request, Parm} = Event, StateData) -> + % TODO: the rest! + {next_state, dialogue_accepted, StateData}; +% any MAP specific response primitive +dialogue_accepted({'MAP', Response, response, Parm} = Event, StateData) -> + % TODO: the rest! + {next_state, dialogue_accepted, StateData}; +% forward unrecognized events to user callback module +dialogue_accepted(Event, StateData) -> + Module = StateData#state.module, + ExtStateName = State#state.ext_statename, + case Module:StateName(Event, StateData#state.ext_statedata) of + {next_state, NextExtStateName, NewExtStateData} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, dialogue_accepted, NewStateData}; + {next_state, NextExtStateName, NewExtStateData, Timeout} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, dialogue_accepted, NewStateData, Timeout}; + {stop, Reason, NewExtStateData} -> + NewStateData = StateData#state{ext_statedata = NewExtStateData}, + {stop, Reason, NewStateData}; + Other -> + Other + end. + +%% @spec(Event, StateData) -> Result +%% +%% @doc State handler for the dialogue_established state. +%% +%% @hidden +%% +% @reference 3GPP TS 29.002 Figure 15.6/3o: Process_Secure_MAP_DSM (sheet 15) +dialogue_established({'TC', 'L-CANCEL', indication, Cancel#'TC-L-CANCEL'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, dialogue_established, StateData}; +dialogue_established({'TC', 'NOTICE', indication, Notice#'TC-NOTICE'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, dialogue_established, StateData}; +dialogue_established({'TC', 'CONTINUE', indication, Continue#'TC-CONTINUE'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, dialogue_established, StateData}; +dialogue_established({'MAP', 'DELIMITER', request, Delimiter#'MAP-DELIMITER'{}} = Event, StateData) -> + % TC_CONTINUE_req_VIA_TC1 + {next_state, dialogue_established, StateData}; +% @reference 3GPP TS 29.002 Figure 15.6/3p: Process_Secure_MAP_DSM (sheet 16) +dialogue_established({'TC', 'END', indication, End#'TC-END'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +dialogue_established({'MAP', 'CLOSE', request, Close#'MAP-CLOSE'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, dialogue_established, StateData}; +% @reference 3GPP TS 29.002 Figure 15.6/3q: Process_Secure_MAP_DSM (sheet 17) +dialogue_established({'TC', 'U-ABORT', indication, Abort#'TC-U-ABORT'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +dialogue_established({'TC', 'P-ABORT', indication, Abort#'TC-P-ABORT'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +dialogue_established({'TC', 'U-ABORT', request, Abort#'TC-U-ABORT'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, idle, StateData}; +% @reference 3GPP TS 29.002 Figure 15.6/3o: Process_Secure_MAP_DSM (sheet 15) +% any MAP specific request primitive +dialogue_established({'MAP', Request, request, Parm} = Event, StateData) -> + % TODO: the rest! + {next_state, dialogue_established, StateData}; +% any MAP specific response primitive +dialogue_established({'MAP', Response, response, Parm} = Event, StateData) -> + % TODO: the rest! + {next_state, dialogue_established, StateData}; +% forward unrecognized events to user callback module +dialogue_established(Event, StateData) -> + Module = StateData#state.module, + ExtStateName = State#state.ext_statename, + case Module:StateName(Event, StateData#state.ext_statedata) of + {next_state, NextExtStateName, NewExtStateData} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, dialogue_established, NewStateData}; + {next_state, NextExtStateName, NewExtStateData, Timeout} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, dialogue_established, NewStateData, Timeout}; + {stop, Reason, NewExtStateData} -> + NewStateData = StateData#state{ext_statedata = NewExtStateData}, + {stop, Reason, NewStateData}; + Other -> + Other + end. + +%% @spec(Event, StateData) -> Result +%% +%% @doc State handler for the wait_for_components state. +%% +%% @hidden +%% +% @reference 3GPP TS 29.002 Figure 15.6/4a: Procedure Process_Components (sheet 1) +% @reference 3GPP TS 29.002 Figure 15.6/4b: Procedure Process_Components (sheet 2) +wait_for_components({'TC', 'INVOKE', indication, Invoke#'TC-INVOKE'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, wait_for_components, StateData}; +% @reference 3GPP TS 29.002 Figure 15.6/4c: Procedure Process_Components (sheet 3) +wait_for_components({'TC', 'RESULT-L', indication, Result#'TC-RESULT-L'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, wait_for_components, StateData}; +wait_for_components({'TC', 'RESULT-NL', indication, Result#'TC-RESULT-NL'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, wait_for_components, StateData}; +wait_for_components({'TC', 'U-ERROR', indication, Error#'TC-U-ERROR'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, wait_for_components, StateData}; +% @reference 3GPP TS 29.002 Figure 15.6/4d: Procedure Process_Components (sheet 4) +wait_for_components({'TC', 'L-REJECT', indication, Reject#'TC-L-REJECT'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, wait_for_components, StateData}; +wait_for_components({'TC', 'R-REJECT', indication, Reject#'TC-R-REJECT'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, wait_for_components, StateData}; +% @reference 3GPP TS 29.002 Figure 15.6/4e: Procedure Process_Components (sheet 5) +wait_for_components({'TC', 'U-REJECT', indication, Reject#'TC-U-REJECT'{}} = Event, StateData) -> + % TODO: the rest! + {next_state, wait_for_components, StateData}; +% forward unrecognized events to user callback module +wait_for_components(Event, StateData) -> + Module = StateData#state.module, + ExtStateName = State#state.ext_statename, + case Module:StateName(Event, StateData#state.ext_statedata) of + {next_state, NextExtStateName, NewExtStateData} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, wait_for_components, NewStateData}; + {next_state, NextExtStateName, NewExtStateData, Timeout} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, wait_for_components, NewStateData, Timeout}; + {stop, Reason, NewExtStateData} -> + NewStateData = StateData#state{ext_statedata = NewExtStateData}, + {stop, Reason, NewStateData}; + Other -> + Other + end. +%% @hidden +% accept TC service primitives sent with ! or erlang:send/2,3 + handle_info({'TC', _Primitive, indication, _Parms} = Info, StateName, StateData) -> + ?MODULE:StateName(Info, StateData); +% forward unrecognized info to user callback module +handle_info(Event, Statename, StateData) -> + Module = StateData#state.module, + ExtStateName = StateData#state.ext_statename, + ExtStateData = StateData#state.ext_statedata, + case Module:handle_info(Event, ExtStateName, StateData#state.ext_statedata of + {next_state, NextExtStateName, NewExtStateData} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, StateName, NewStateData}; + {next_state, NextExtStateName, NewExtStateData, Timeout} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {next_state, StateName, NewStateData, Timeout}; + {stop, Reason, NewExtStateData} -> + NewStateData = StateData#state{ext_statedata = NewExtStateData}, + {stop, Reason, NewStateData}; + Other -> + Other + end. + +%% @hidden +terminate(Reason, StateName, StateData) -> + Module = StateData#state.module, + ExtStateName = StateData#state.ext_statename, + ExtStateData = StateData#state.ext_statedata, + Module:terminate(Reason, ExtStateName, ExtStateData). + +%% @hidden +code_change(OldVersion, StateName, StateData, Extra) -> + Module = StateData#state.module, + ExtStateName = StateData#state.ext_statename, + ExtStateData = StateData#state.ext_statedata, + case Module:code_change(OldVersion, ExtStateName, ExtStateData, Extra) of + {ok, NextExtStateName, NewExtStateData} -> + NewStateData = StateData#state{ext_statename = NextExtStateName, ext_statedata = NewExtStateData}, + {ok, StateName, NewStateData}; + Other -> + Other + end. + + +%%---------------------------------------------------------------------- +%% internal functions +%%---------------------------------------------------------------------- + +%% @spec(Parms, StateData) -> boolean() +%% +%% @doc Check whether secure transport is required. +%% +%% @reference 3GPP TS 29.002 15.2.1 Behaviour at the initiating side +%% @reference 3GPP TS 33.200 +%% +%% @hidden +%% +secure_transport_required(Parms, #state{application_context = 'secureTransportHandlingContext-v3'}) -> + true; +secure_transport_required(Parms, #state{}) -> + false; + +%% @spec(StateData) -> NewStateData +%% +%% @doc Build an encapsulted AC PDU. +%% +%% @reference 3GPP TS 29.002 15.2.1 Behaviour at the initiating side +%% @reference 3GPP TS 33.200 +%% +%% @hidden +%% +build_encapsulated_ac_pdu(StateData) -> + % TODO: Build an encapsulted AC PDU. + StateData. + diff --git a/MAP/src/gsm/map_load_fsm.erl b/MAP/src/gsm/map_load_fsm.erl new file mode 100644 index 0000000..99e56b2 --- /dev/null +++ b/MAP/src/gsm/map_load_fsm.erl @@ -0,0 +1,92 @@ +%%% $Id: map_load_fsm.erl,v 1.1 2005/02/13 09:45:06 vances Exp $ +%%%--------------------------------------------------------------------- +%%% @copyright 2005 Motivity Telecom Inc. +%%% @author Vance Shipley +%%% @end +%%% +%%% Copyright 2005 Motivity Telecom Inc. +%%% +%%% All rights reserved. No part of this computer program(s) may be +%%% used, reproduced, stored in any retrieval system, or transmitted, +%%% in any form or by any means, electronic, mechanical, photocopying, +%%% recording, or otherwise without prior written permission of +%%% Motivity Telecom Inc. +%%%--------------------------------------------------------------------- +%%% +%%% @doc GSM MAP Load Control. +%%% +%%% @private +%%% +%%% @reference 3GPP TS 29.02 Figure 15.6/5: Process Load_Ctrl +%%% +-module(map_dsm_fsm). +-copyright('Copyright (c) 2005 Motivity Telecom Inc.'). +-author('vances@motivity.ca'). +-behaviour(gen_fsm). + +%% export the gen_fsm state handler call backs +-export([idle/2, congested/2]). + +%% export the gen_fsm common call backs +-export([init/1, handle_event/3, handle_sync_event/4, + handle_info/3, terminate/3, code_change/4]). + +%% include record definitions for TC service primitives +-include("tcap.hrl"). +%% include record definitions for MAP service primitives +-include("map.hrl"). + +%% StateData record definition +-record(state, {}). + +%%---------------------------------------------------------------------- +%% The gen_fsm call backs +%%---------------------------------------------------------------------- + +%% @hidden +init(_Args) -> + process_flag(trap_exit, true), + {ok, idle, StateData}. + +%% @spec(Event, StateData) -> Result +%% +%% @doc State handler for the idle state. +%% +%% @hidden +%% +idle({DSM, 'Check_Load', _AC}, StateData) -> + gen_fsm:send_event(DSM, 'Load_OK'), + {next_state, idle, StateData}. + +%% @spec(Event, StateData) -> Result +%% +%% @doc State handler for the congested state. +%% +%% @hidden +%% +congested({DSM, 'Check_Load', AC}, StateData) -> + % AC = Secure_Transport? + % true + % compare encapsulated AC priority with load + % false + % compare AC priority with load + % dialogue acceptable? + % true + gen_fsm:send_event(DSM, 'Load_OK'), + % false + % gen_fsm:send_event(DSM, 'Overload'), + {next_state, congested, StateData}. + +%% @hidden +terminate(_Reason, _StateName, _StateData) -> + ok. + +%% @hidden +code_change(_OldVersion, StateName, StateData, _Extra) -> + {ok, StateName, StateData}. + + +%%---------------------------------------------------------------------- +%% internal functions +%%---------------------------------------------------------------------- + diff --git a/MAP/src/map.erl b/MAP/src/map.erl new file mode 100644 index 0000000..52b004b --- /dev/null +++ b/MAP/src/map.erl @@ -0,0 +1,116 @@ +%%% $Id: map.erl,v 1.1 2005/02/13 00:42:12 vances Exp $ +%%%--------------------------------------------------------------------- +%%% @copyright 2005 Motivity Telecom Inc. +%%% @author Vance Shipley +%%% @end +%%% +%%% Copyright 2005 Motivity Telecom Inc. +%%% +%%% All rights reserved. No part of this computer program(s) may be +%%% used, reproduced, stored in any retrieval system, or transmitted, +%%% in any form or by any means, electronic, mechanical, photocopying, +%%% recording, or otherwise without prior written permission of +%%% Motivity Telecom Inc. +%%%--------------------------------------------------------------------- +%%% +%%% @doc Mobile Application Part +%%%

This module implements the user's API to the MAP protocol +%%% stack application.

+%%% +%%% @reference MAP User's Guide +%%% + +-module(map). +-copyright('Copyright (c) 2005 Motivity Telecom Inc.'). +-author('vances@motivity.ca'). +-vsn('$Revision: 1.1 $'). + +%% our published API functions +-export([start/0, stop/0]). +-export([open/3, close/1]). +-export([start_dialogue/3]). + + +%% @type map_options(). MAP layer options +%%

A list of one or more of the following tuples.

+%%
+%%
{variant, Variant}
gsm | ansi
+%%
+%% @end + +%%---------------------------------------------------------------------- +%% The API functions +%%---------------------------------------------------------------------- + +%% @spec () -> Result +%% Result = ok | {error, Reason} +%% Reason = term() +%% +%% @equiv application:start(map) +%% +start() -> + application:start(map). + +%% @spec () -> Result +%% Result = ok | {error, Reason} +%% Reason = term() +%% +%% @equiv application:stop(map) +%% +stop() -> + application:stop(map). + +%% @spec (Module::atom(), Args::term(), Options::term()) -> PM +%% Options = [map_options() | GenFsmOptions] +%% GenFsmOptions = list() +%% PM = pid() +%% +%% @doc Start a new MAP layer service access point. +%%

A new MAP protocol machine (PM) is created. The PM is +%% a collection of service state machines (SSM), one per MAP specific +%% service invoked, coordinated by a single dialogue state machine +%% (DSM). There are two types of SSM; requesting service state +%% machines (RSM) and performing service state machines (PSM).

+%% +%%

Module is the name of a +%% map_dsm_fsm +%% behaviour callback module which will provide the TCAP layer +%% adaptation.

+%% +%%

Args has meaning only to the callback module but +%% presumably would identify the specific TCAP service access +%% point (i.e. subsystem number) for this MAP layer.

+%% +%%

Options may include +%% map_options() and gen_fsm +%% options passed to the callback module.

+%% +%%

The callback module will be started with:
+%% gen_fsm:start_link(Module, Args, GenFsmOptions) +%%

+%% +%%

Returns the pid of the DSM.

+%% +%% @see gen_server:start_link/3 +%% +open(Module, Args, Options) -> + {ok, SupRef} = application:get_env(map, supref), + case supervisor:start_child(SupRef, [Module, Args, Options]) of + {ok, Sup} -> + Children = supervisor:which_children(Sup), + {value, {dsm, DSM, _, _}} = lists:keysearch(dsm, 1, Children), + DSM; + {error, Reason} -> + exit(Reason) + end. + +%% @spec (PM::pid()) -> ok +%% +%% @doc Close a MAP service access point. +%% +%%

PM is the pid of a DSM returned in a previous call to +%% open/3.

+%% +close(PM) when is_pid(PM) -> + gen_server:call(PM, close). + diff --git a/MAP/src/map_app.erl b/MAP/src/map_app.erl new file mode 100644 index 0000000..20fb1ec --- /dev/null +++ b/MAP/src/map_app.erl @@ -0,0 +1,80 @@ +%%% $Id: map_app.erl,v 1.1 2005/02/13 00:42:12 vances Exp $ +%%%--------------------------------------------------------------------- +%%% @copyright 2005 Motivity Telecom Inc. +%%% @author Vance Shipley +%%% @end +%%% +%%% Copyright 2005 Motivity Telecom Inc. +%%% +%%% All rights reserved. No part of this computer program(s) may be +%%% used, reproduced, stored in any retrieval system, or transmitted, +%%% in any form or by any means, electronic, mechanical, photocopying, +%%% recording, or otherwise without prior written permission of +%%% Motivity Telecom Inc. +%%%--------------------------------------------------------------------- +%%% +%%% @doc MAP application callback module. +%%% +%%% @reference MAP User's Guide +%%% +%%% @private + +-module(map_app). +-copyright('Copyright (c) 2005 Motivity Telecom Inc.'). +-author('vances@motivity.ca'). +-vsn('$Revision: 1.1 $'). + +%% export application behaviour callbacks +-export([start/2, start_phase/3, prep_stop/1, stop/1, config_change/3]). + + +%% @spec(StartType, StartArgs::term()) -> {ok, Pid} | {ok, Pid, State} | {error, Reason} +%% StartType = normal | {takeover,Node} | {failover,Node} +%% Node = node() +%% Pid = pid() +%% State = term() +%% Reason = term() +%% +%% @equiv //kernel/application:start/3 +%% +start(normal, StartArgs) -> + {ok, SupRef} = application:get_env(supref), + supervisor:start_link(SupRef, map_sup, StartArgs). + +%% @spec(Phase::atom(), StartType, PhaseArgs::term()) -> ok | {error, Reason} +%% StartType = normal | {takeover,Node} | {failover,Node} +%% Node = node() +%% Reason = term() +%% +%% @equiv //kernel/application:start_phase/3 +%% +start_phase(_Phase, _StartType, _PhaseArgs) -> + ok. + +%% @spec(State::term()) -> NewState +%% NewState = term() +%% +%% @equiv //kernel/application:prep_stop/1 +%% +prep_stop(State) -> + State. + +%% @spec(State) -> ok +%% +%% @equiv //kernel/application:stop/1 +%% +stop(_State) -> + ok. + +%% @spec(Changed, New, Removed) -> +%% Changed = [{Par,Val}] +%% New = [{Par,Val}] +%% Removed = [Par] +%% Par = atom() +%% Val = term() +%% +%% @equiv //kernel/application:config_change/3 +%% +config_change(_Changed, _New, _Removed) -> + ok. + diff --git a/MAP/src/map_pm_sup.erl b/MAP/src/map_pm_sup.erl new file mode 100644 index 0000000..1ecf3b1 --- /dev/null +++ b/MAP/src/map_pm_sup.erl @@ -0,0 +1,44 @@ +%%% $Id: map_pm_sup.erl,v 1.1 2005/02/13 00:42:12 vances Exp $ +%%%--------------------------------------------------------------------- +%%% @copyright 2005 Motivity Telecom Inc. +%%% @author Vance Shipley +%%% @end +%%% +%%% Copyright 2005 Motivity Telecom Inc. +%%% +%%% All rights reserved. No part of this computer program(s) may be +%%% used, reproduced, stored in any retrieval system, or transmitted, +%%% in any form or by any means, electronic, mechanical, photocopying, +%%% recording, or otherwise without prior written permission of +%%% Motivity Telecom Inc. +%%%--------------------------------------------------------------------- +%%% +%%% @doc MAP service protocol machine supervisor. +%%% +%%% @reference MAP User's Guide +%%% +%%% @private + +-module(tcap_pm_sup). +-copyright('Copyright (c) 2005 Motivity Telecom Inc.'). +-author('vances@motivity.ca'). +-vsn('$Revision: 1.1 $'). + +-behaviour(supervisor). + +-export([init/1]). + + +%% @spec(StartArgs::term()) -> Result = {ok,{{RestartStrategy,MaxR,MaxT},[ChildSpec]}} | ignore +%% RestartStrategy = one_for_all | one_for_one | rest_for_one | simple_one_for_one +%% MaxR = MaxT = int()>=0 +%% ChildSpec = child_spec() +%% +%% @see supervisor:init/1 +%% +init([Module, Args, Options]) when is_atom(Module), is_list(Args), is_list(Options) -> + StartArgs = [Module, [self()] ++ Args, Options], + StartFunc = {gen_fsm, start_link, StartArgs}, + ChildSpec = {dsm, StartFunc, permanent, 4000, worker, [Module, map_dsm_fsm]}, + {ok,{{one_for_one, 10, 60}, [ChildSpec]}}. + diff --git a/MAP/src/map_sup.erl b/MAP/src/map_sup.erl new file mode 100644 index 0000000..6728ac7 --- /dev/null +++ b/MAP/src/map_sup.erl @@ -0,0 +1,45 @@ +%%% $Id: map_sup.erl,v 1.1 2005/02/13 00:42:12 vances Exp $ +%%%--------------------------------------------------------------------- +%%% @copyright 2005 Motivity Telecom Inc. +%%% @author Vance Shipley +%%% @end +%%% +%%% Copyright 2005 Motivity Telecom Inc. +%%% +%%% All rights reserved. No part of this computer program(s) may be +%%% used, reproduced, stored in any retrieval system, or transmitted, +%%% in any form or by any means, electronic, mechanical, photocopying, +%%% recording, or otherwise without prior written permission of +%%% Motivity Telecom Inc. +%%%--------------------------------------------------------------------- +%%% +%%% @doc MAP application top level supervisor. +%%% +%%% @reference MAP User's Guide +%%% +%%% @private + + +-module(map_sup). +-copyright('Copyright (c) 2005 Motivity Telecom Inc.'). +-author('vances@motivity.ca'). +-vsn('$Revision: 1.1 $'). + +-behaviour(supervisor). + +%% call backs needed for supervisor behaviour +-export([init/1]). + +%% @spec(StartArgs::term()) -> Result = {ok,{{RestartStrategy,MaxR,MaxT},[ChildSpec]}} | ignore +%% RestartStrategy = one_for_all | one_for_one | rest_for_one | simple_one_for_one +%% MaxR = MaxT = int()>=0 +%% ChildSpec = child_spec() +%% +%% @equiv //stdlib/supervisor:init/1 +%% +init(_StartArgs) -> + StartMod = map_pm_sup, + StartFunc = {supervisor, start_link, [StartMod]}, + ChildSpec = {pm_sup, StartFunc, permanent, infinity, supervisor, [StartMod]}, + {ok,{{simple_one_for_one, 10, 60}, ChildSpec}}. +