((M.%+signature_flag 4294967296''crc 4193987172CallTask__PlcTaskFunction RelativeStack+Output, IsCompiled, RelativeStack, Typified ptaskinfo _IMPLICIT_TASK_INFO *Input, IsCompiled, RelativeStack, Typified papplicationinfo _IMPLICIT_APPLICATION_INFO Compiled, Typified, Located$89dabc1a-f794-4a99-ba91-1ea51be3ba39$00000000-0000-0000-0000-000000000000 131785522generate_implicit_init_function__Setup__Call__POUProgram$de1786e8-5c6e-5585-b03e-8ab179626a32 2728864722real32__to__any32indwType2External, Compiled, SuperGlobal, Typified, Located$adb07db6-6cb2-4889-b206-007b85f53578 4094399910any32__to__real32$bc57a7e2-ed11-422f-976f-8be4fc5666bf 2020165724 real32__eq in1!in2"$79084732-5d65-4953-878b-b9d1570ab3c3# 651050431$ real32__ne%$26c1b838-f805-4f80-b547-7a6b4efbbbb5& 1108587135' real32__lt($8897f859-01db-4c48-85cd-8862ad90c271)76373463* real32__le+$06045a98-b196-40fe-bbf3-cc6b9cd04fa6, 4168934275- real32__gt.$57dc0ec0-25cf-4c02-9dde-c27a20a79806/ 32024852910 real32__ge1$27ea9ccf-ca7d-4bbb-8a0b-76d96b1b096b2 10447566433 real32__add4$4001e5c9-2959-421b-a1ea-3192b559210f5 2673141556 real32__sub7$7af69ff9-2d09-4573-9668-4abfb8238c6b8 11036320749 real32__mul:$07fdcf4d-2f32-4026-ba50-865a9a4cac44; 1466051322< real32__div=$7433aafb-0867-4fb3-b51c-62aedc81235f> 886904492? real32__abs@$a891677e-9887-4115-baf6-5bc18c14f21fA 3404262884B real32__minC$7f040799-feda-40a7-b376-ee0db6e12abfD 4154332537E real32__maxF$c46be4ae-b278-40fc-8552-9cdb664b8607G 497866625H real32__limitIin3J$6049606a-24c9-4d04-8810-fd7a837dc535K 1847162626L real32__truncM$ef945a32-7190-4712-af4e-686069feba9eN 346942548O real32__tanP$84acc91c-76a8-41d8-8957-1617354730fcQ 843193954R real32__atanS$4e10f990-4cf5-4424-abd6-16195b2c1947T 2676881535U real32__sinV$b59097e9-0c6c-4edf-a18e-d34da5f674deW 4177298540X real32__asinY$12baf47b-573e-437a-b3eb-06f4c4745ccfZ 406941506[ real32__cos\$21313f85-d945-4d56-bab3-9c0d70303453] 3446532930^ real32__acos_$29048f1c-76ff-4555-a36d-61013b9112e7` 831403110a real32__lnb$412735d8-6e6f-49d1-8d62-aad6e08f4198c 2281156508d real32__loge$bac2aa4e-fb73-4beb-bee8-1cbe13a49551f 1964720339g real32__exph$f127665c-c7d1-4290-b6be-8db37fc1df1ai 2929814886j real32__exptk$bbbdf0cf-b7ce-4f53-af3f-df8a531c4d5dl 2945838411m real32__sqrtn$cf137188-d4b3-4d76-b1f6-87afe6ee2148o 2367094826p int32__divq$16597b72-e6ca-4e3e-b487-0fab4f60f55dr 1538210473s uint32__divt$1acf0b76-2778-4975-844a-6ec15f762b2eu 997952827v int32__modw$32f74310-0500-40a8-bcdc-38e3a235c1a5x 1194593076y uint32__modz$cd4339d7-cb4c-4660-b471-ee4a5c114ad0{ 3531525309| int32__abs}$62876995-1a07-4244-a3f0-8c8f63eec49c~ 147726259 int32__limit$79dd4eba-d759-4918-8c09-9ba7cedb378c 1413729490 uint32__limit$46a8a0a1-a4c6-464a-a53c-87329443b190 2280991083 int32__mul$3330a6c6-0b50-4a3c-91f0-5ad24d44fbf5 1292175001 uint32__mul$47a65ed1-25f8-43b6-85a3-dee72d9a73cd 4142655437 int32__shr$1128c6ef-4d56-40a2-a91f-4f5dc0185d98 4111070444 uint32__shr$c1f5d873-aaf1-4f92-b314-c17c78644b9d 2164893551 uint32__shl$1393b595-1c79-4a79-a17f-db4b5fda7a44 2239779883 uint32__rol$af9cbc04-84b4-409b-8830-f18c8ed3a6ec 4051699624 uint32__ror$181ef5ee-7190-4ce0-ada3-cca4fd45a289 695114823 get__time$79ad9f0e-3a56-4c79-af55-c1dafc05b5e6 2006625495__sys__rts__cycle slotLower slotUpper stTaskNameAnyIntstApplicationName$8f58c4c2-6bd5-47c7-a149-8588821180e6 2641387053__sys__register__slot__pou nSlotNumberdwFunctionPointer$70da5b5d-fcb8-48d4-ac57-7c4cb04e2caa 3903245801__sys__unregister__slot__pou$9e4827e4-6b50-4e6a-bc7b-adeb6c4dd526 3363294660SysCpuDebugHandler$d6a84056-f4d9-45ca-9a49-a66cec23e145hide 242570791_Implicit_Application_InfoTypeRelativeInstance''NORMAL__COMMENT rest of runtime info DO NOT USE ! pcArea : ARRAY [0..APPL_NUM_OF_STATIC_AREAS-1] OF POINTER TO BYTE //Pointer to data areas of this application unsigned short ausAreaType[APPL_NUM_OF_STATIC_AREAS]; /* Area type */ unsigned long aulAreaSize[APPL_NUM_OF_STATIC_AREAS]; /* Area size */ unsigned char StaticSessionIdPool[MEM_GET_STATIC_LEN_(APPL_NUM_OF_STATIC_SESSIONIDS, sizeof(unsigned long))]; unsigned char StaticForcePool[MEM_GET_STATIC_LEN(APPL_STATIC_FORCE_ENTRIES, ForceVarDesc)]; unsigned char StaticBPPool[MEM_GET_STATIC_LEN(APP_STATIC_BP_ENTRIES, Breakpoint)]; pParentApplication8Local, Structure, IsCompiled, RelativeInstance, Typified pbyRightsguidCodeguidDataudState udOpState dwDoNotUse_0 dwDoNotUse_1 dwDoNotUse_2 dwDoNotUse_3 dwDoNotUse_4 dwDoNotUse_5 dwDoNotUse_6bAppendBootprojectbPersistentForce dwPSVersiondwTargetSettingVersionFB_INIT 3526140261Method bInitRetains bInCopyCode__INSTANCEPOINTER4Input, IsCompiled, RelativeStack, Implicit, Typified __Index__02Local, IsCompiled, RelativeStack, NoInit, Implicit'NonVirtual, Compiled, Typified, Located$ff589828-12c2-4e6a-9f0d-1d6dbb3264b6__FB_PARTIALINIT 15652336222NonVirtual, Generated, Compiled, Typified, Located?Structure, NonVirtual, Compiled, SuperGlobal, Typified, Located pack_mode8 1691734129int64__to__any32$e8c04d52-7d17-4965-9598-cb38a570750e 2445978047any32__to__int64$fbd44dd8-302c-4269-9682-4e63f10e32ee 716714719real32__to__any64$4996aebf-7b1a-4606-9275-58c6595fe093 3713006940any64__to__real32$fba8c26a-b719-4b40-ab2a-36a9440d345b 2394705132 int64__div$5df34150-5072-488a-a457-a82fe4dddcaf 1872403673 uint64__div$c72c0ae2-f6fb-4752-9d81-65e25c2adedd 953205245 int64__mod$285230dc-fbd4-44eb-96d1-c35d9d1d95a4 593286487 uint64__mod$7cf5a04d-a334-4d66-8458-aa41fd3d3cb4 113053312 uint64__add$bd215293-9d5f-451b-8b34-fbf355380a1f 3531041404 int64__add$f853b3c3-030b-457f-9c6f-904c951d4c1b 4246887690 int64__sub$b74d723c-4571-496b-9991-776c19eac243 924210632 uint64__sub$91c29cfe-4ed7-4aaf-862d-2b211eba3727 2220778925 int64__mul$56cf99a8-dd26-40fc-bd98-c75e222d12a2 2033230057 uint64__mul$9f1b41e0-0777-4b76-9af1-a82c5e0d5e37 3251236970 int64__min$938d42a9-f6db-4a23-944c-1eb5ddb2deee 4061158343 uint64__min$f38314a9-aaa0-47b1-8175-b88faad4b296 3984229475 int64__max$0d9bcbbc-7c0b-403c-afcc-ba79b0a580ab 3479610202 uint64__max$611c06e1-6846-4ba2-82b4-76c65f121ab0 2541544546 uint64__xor$367ed89a-2489-42df-ab7c-864d2f1d2f78 721305799 uint64__and$c5a4df4a-a8a2-4c18-a05f-5857c4899a0c 2965688650 uint64__or$32a1c099-4e89-49fc-b341-847a90f50e30 2371146893 uint64__not$b178ef7a-1592-434b-b462-6c46fac2c8a4 1107659532 uint64__eq$cea9db66-1a76-4c47-b9a0-6577ad6e4e74 480444143 uint64__ne$a5ae5f79-8207-4854-943b-288c0a7d2b9b 2021617967 uint64__lt$2c377459-e121-40b9-9e5a-1118a48f743d 1054973575 uint64__le$ae239119-6f5f-4534-a1ee-b390262a39a3 3255836883 uint64__gt$1450c7da-db41-485f-83a7-d6227fc55a01 2223951739 uint64__ge$20395126-4d3f-43d9-9df8-5b21c66b6dcb 863509285 int64__eq$e8ff23a5-d7c7-48b8-805a-b0c01e09cce3 881440595 int64__ne$18d11e8b-afdf-443e-82d2-046d71021018 238341524 int64__lt$35ead342-0197-4bd8-ba6f-d3002ea536e8 3414395280 int64__le$0a31942a-efba-4ddf-9c0d-7d4e887ec3ca 701077656 int64__gt$b93d8de7-8cc7-458d-b76b-54805d224bf8 3967736988 int64__ge$e3fa00fa-76dc-48d3-b18d-70546f8817d1 1867067789 int64__abs$83f47c43-8882-441b-809f-1bf3202ee267 3263826000 uint64__rol$d9ff9b48-8cb1-41b0-92d2-319173b767fc 3062520787 uint64__ror$8292f004-04fa-4067-bf44-2dd2c43db842 3322149652 uint64__shl$4f5894be-5a41-4c9b-8659-e81c12575fc4 2986584215 uint64__shr$821a527f-8831-4a09-b5da-58ca3b768f66 2726094904 uint64__limit$26311cc1-5920-4260-9336-be3754cf23cf 2206011875 int64__limit$b3a15fa1-b9b4-4cad-91f6-3fd673edbae6 1272716029 int64__shr$427ca261-109e-4d61-a08b-24f6068e58da 655075154 get__ltime$aeaaf22a-a260-4bac-83d9-18ff949be644 3183966539real32__to__real64$9673b4f8-36d6-42ee-b5ca-e06e2602fab5 3519950284real64__to__real32$68d11de2-a882-4f63-8e95-577fbe97dbef 2972115768real64__to__any32$51322543-1fa0-4892-92ab-c1559ce724fa 2081721515any32__to__real64$48ba7277-d0f9-4a61-8d0a-cfa10c9598a2 3454954494 real64__trunc$78aea275-8aff-407b-981c-8abf25d34255 3137264130 real64__tan$8ee3c317-6d75-4714-ab7c-ad187c5db2ee 3753412847 real64__atan$79d8c72b-fe9c-4bd0-8d79-62e93b3d01b9 836685353 real64__sin$df65bfb9-6613-453b-b2b8-4fcb3789d916 352719585 real64__asin$dad7794c-0bfd-4662-adbc-f2c4e528d37b 3054655764 real64__cos$22fbcf03-320c-4e2b-83ce-a942e5631489 546799055 real64__acos$a11f5103-2691-4d71-bad3-db29bf365b4b 3328776656 real64__ln$1c3bb0cc-2170-475c-b9b2-2c991a82ed64 698653130 real64__log$9335cd5c-acb1-4e96-ad18-0076459fc955 3678959237 real64__exp$4ffba013-6cc1-43e2-b6bb-6715ab108128 3062998530 real64__expt$fdfe2381-2e31-4926-b6d4-4cf674ac1326 942060455 real64__sqrt$4ffd7525-5270-4695-b699-ddbbc4b96fd3 3310343244 real64__eq$475d8087-1c89-48a4-8923-1690f76c80fd 2615714223 real64__ne$7229c098-2c5d-434a-9ab4-f35ad2b92202 4281675375 real64__lt$5de9e5f2-dd5e-4a6e-b860-18fd191e23ee 3115041223 real64__le$7301d2cc-2aa1-4de3-9bef-548d89987e86 1163558803 real64__gt$38f386c3-7170-454b-8528-c10a39021b2363213627 real64__ge$f9510bc1-1227-49ab-9870-64870fd1a5fb 175120083 real64__add$9dc891f0-020c-40ef-b8a7-99b35c1d6808 1004225947 real64__sub$2fd9375a-655d-4573-bd00-1bcc1c494227 1979560122 real64__mul$e2479120-cb69-43ba-87fa-98e33b5112c2 1666681994 real64__div$a1c7ca2c-f191-46d4-a7f5-1504f1ba9eb8 1943489239 real64__abs$99947bf9-0e45-48b1-ad7f-8efb60cecd95 4275915668 real64__min$fb18f571-3f0d-4f1e-9a10-9bf219caed48 3282809609 real64__max$7b55e231-072f-4e70-a3f9-b4b1a98c1c66 3952341867 real64__limit$b701090f-8dde-42e6-b8fe-5f22597768ee 960100917real64__to__any64$d8153915-f13d-4be5-963e-2e0db8de9f44 1431364689any64__to__real64$97dc91e6-edb3-4c35-be5d-6e444884a6ee 1535689152__sys__rts__cycle__2 hTaskinfo$1230b333-5d6b-46b8-a973-900b5373db72 1746117600exchange__and__add$a39e5468-86fa-4e6d-affe-3e2e51db2150 1630658070test__and__set$78879ef1-a378-4991-b06f-4f6324e3955f 1051002070compare__and__swappAddressxwExpectedValue xwNewValue$84b9de1a-938d-454b-a526-1c5121467a99DoLink 2355386198 __memcopypDestpSrcdwSize$9d234cab-298b-4f80-8b06-238a4ecbdbf1 1888671637__stringcomparepStr1pStr2$9f5705df-d2f0-46b3-8c4d-6a4d6217fac6 2923953018__wstringcompare$0bea6546-230e-4059-a0c6-574c96c9dcc9 1251102159__cycle__code__PlcTask hTaskInfo&Generated, Compiled, Typified, Located$3d36549b-22ab-4d87-83c0-e64a83562690 2055098298 IBase__UnionNone __InterfaceIBASE5Local, Structure, IsCompiled, RelativeInstance, Union__vfTablePointer?Local, Structure, IsCompiled, RelativeInstance, Union, Typified 1646999765!Output, IsCompiled, RelativeStack Input, IsCompiled, RelativeStack IBASE__UNION*Input, IsCompiled, RelativeStack, ImplicitNonVirtual, Compiled, Located$d66845db-6264-4814-8201-14e00ce3a97d\Structure, NonVirtual, Generated, Union, ImplicitInterfaceUnion, Compiled, Typified, Located!base interfaces, 3.5.2.0 (system)m4export_32bit_nosignature 124493086IoMgrConfigGetConnectorByDriverIOCONFIGCONNECTORIoConfigConnectorpIBaseIBase bIecDrivernIndexpResultRTS_IEC_RESULT%External, Compiled, Typified, Located$06985b41-279f-4177-be30-df6637cf2a9biostandard, 3.5.15.0 (system) 1849640412IoMgrConfigGetConnectorListppConnectorListpnCount$328a63c3-d551-4b32-9422-377bc6aac35e 2797965735IoMgrConfigGetDriver pConnector pbIecDriver$af3d345a-c11f-478f-b5df-a99d8ebf08b6m4export_nosignature 120351857IoMgrCopyInputBEpChannelIOCONFIGCHANNELMAPIoConfigChannelMap$55d03518-4ee8-4b82-a8b3-766e40682994 3573238966IoMgrCopyInputLE$2c81bc43-6ab4-4b52-9f19-2965d9566ee8 3451368126IoMgrCopyOutputBE$7717607d-0e2d-4e6e-9262-8273e4cd68de 1606949052IoMgrCopyOutputLE$5bc7d463-6913-4718-8a12-5e49d1a76983 2201279776IoMgrGetBusCycleType$b68569cb-9baa-4ce2-a823-c8a751a0fb64 4163672564IoMgrGetConfigApplicationpszConfigApplicationpnMaxLen$b8648e29-04fc-41e1-a469-45f6d098f662 3960301101IoMgrGetDriverPropertieshIoDrvRTS_IEC_HANDLE ppProperties$bff24870-39d9-48f3-9d34-114cbabbe751 2015607926IoMgrGetFirstDriverInstance$0e6f29bf-e5f9-4dc0-9040-46a430baf6fd 189232175IoMgrGetNextDriverInstance pIBasePrev$2321c32b-bfa7-46fc-9f42-71436c2534da | Reconfigure a single connector respectively the corresponding master. | In the reconfigure sequence we call the corresponding IO-driver at the connector the following way: | 1. disable the IO-configuration | 2. enable the IO-configuration | 3. update the mapping | This sequence is called asynchronously so the asynchronous state is transported in the parameter pudiState. :return: The runtime system error code (see CmpErrors.library) 1931367312IoMgrReconfigure7 Pointer to the corresponding connector to reconfigure  Asynchronous state of the reconfigure operation. Can be one of the the following states (see CmpAsyncMgr.library for details: (ASYNCSTATE_INVALID | ASYNCSTATE_PENDING | ASYNCSTATE_ACTIVE | ASYNCSTATE_READY | ASYNCSTATE_ERROR | ASYNCSTATE_TIMEOUT) pudiState$912d5cf9-41b7-4ddc-870c-b8cb86c2711e 3203918504IoMgrRegisterConfigApplication$b2f4c643-c7e5-48a2-9923-7da06f28f56f 1108998563IoMgrRegisterInstance2 dwClassIdpItf$d0558e3e-16a7-4cff-b56f-4bf2bab8dca5 1618632085IoMgrSetDriverProperties ulProperties$11359e5a-6c6f-4ab0-ad02-13f1415fc629 2473575876IoMgrSetDriverProperty ulPropertybValue$0d12bb26-2b08-402c-9be4-7a3d1d749aac 3971059502 IoMgrUnregisterConfigApplication$85fc8796-00e3-4500-8f02-96be88b1acab 2198568135IoMgrUnregisterInstance hInterface$5c4cac23-de3f-40ac-b8bc-1fcdb219c4c9 3870152214ConfigGetConnectorpIoConnectorList dwModuleType dwInstancei*Local, IsCompiled, RelativeStack, TypifieddwCurrentInstance$05448d5a-856f-498f-8d2c-f54d4a1d2b4b 2183295846ConfigGetFirstChildpFathernCount$4ec186af-b262-48d5-b7fc-df5bbfcaba7d 2505514326ConfigGetFirstConnectorwType$f4b6faa7-ed59-4b86-ac5f-530a108dd065 1184247126ConfigGetNextChild$24eb7af1-4fea-45c3-9f69-1d59d8d37254 182680892ConfigGetNextConnector$0f720af6-4d60-4925-b3d9-aa0ac2cc321c 2127479105ConfigGetParameterIOCONFIGPARAMETERIoConfigParameter pIoConnector dwParameterId$69449550-bc7e-40a6-a2d3-5b7f5d2fe50a 1690247643ConfigGetParameterLength pParameter$15163bae-b543-4ae9-85e3-287c9d15f16122967866ConfigGetParameterValueBytewValuedwValue$a482a558-eb9a-4b9b-92ef-440028b1a32e 2864151311ConfigGetParameterValueDwordbyValue$04e9467c-951f-4e5c-95cf-4a9100c257c9 1732278298ConfigGetParameterValuePointer$a0bb9009-1f2c-4f47-9efd-e6f6d57f364b38318646ConfigGetParameterValueWord$2520e670-523b-47bc-a617-0cf6550b9c99''DOCU__COMMENT Mapping information for a single channel. Every I/O-channel is described as a parameter, but with special meanings. The datatype of a channel can be simple (BOOL, BYTE, WORD, etc.) or array of simple types. 1485173771& Pointer to the parameter description.? Pointer to the parameter in the process image on the IEC side. pbyIecAddress Bitoffset of the device.wParameterBitOffset5 Bitoffset of pbyIecAddress in the IEC process image.wIecAddressBitOffset Size in bits of the channel.wSize This parameter is now used for the base type information. This information is needed for a correct swapping action. -- wBaseTypeInformation : WORD; -- compiler relies on the name 'wDummy' herewDummy= Driver specific entry. Reserved for the usage in the driver.dwDriverSpecificXWORD 3799954164$9993a70e-7153-4204-9a17-aa75207d5f4a2Structure, NonVirtual, Compiled, Typified, Locatedw Connector information. Each device is described completely as a set of one input- and one or more output-conenctors.  3076999907P Type of the connector. See category "Connector types" for detailed information.N Connector options. See category "Connector options" for detailed information.wOptionsJ Connector flags. See category "Connector flags" for detailed information.dwFlagsd Registered instance handle of the IO-driver, that operates this device respectively this connector., Number of parameters in the parameter list.dwNumOfParametersO Pointer to the parameter list, that contains all parameters of this connector.pParameterList= Pointer to the father connector to describe the device tree. 2550773687$7e08b7ae-f8e8-47d2-8a16-44662e62b8ce; Connector map to describe all IO-channels of one connector 2929473580IoConfigConnectorMap( Pointer to the corresponding connector. IO-manager specific entry.dwIoMgrSpecific, Number of channels in the channel map list.dwNumOfChannels Pointer to channel map list.pChannelMapList 3660353869IOCONFIGCONNECTORMAP$614b5eaf-fe26-4660-8316-12a2d58a3653T Parameter description. This entry describes completely a parameter of an connector. 837778035E ID of the parameter. This ID is specified in the device description.J Value (if is valud < 4 bytes) or a pointer to the value of the parameter.Q Type class of the parameter. See category "Type class" for detailed information.! Length of the parameter in bits.wLen Parameter value flags. See category "Parameter value flags" for detailed information. Bit 16 to 31 are used for extended parameters (size exceeding 65535 Bits,8192 Bytes) 3168140343$0c1f5741-c666-4ac4-8049-47e0d549144b# Mapping description for each task. 2318185417IoConfigTaskMap Index of the IEC task.dwTaskIdN Input or output type. See category "Task map types" for detailed information.5 Number of connector maps int the connector map list.wNumOfConnectorMap# Pointer to the connector map list.pConnectorMapList 3888132684IOCONFIGTASKMAP$1e2d8176-ccc8-45ec-9578-1060ca08f642 2962471661IoMgrConfigGetConnectorpConnectorList$12573be7-5a8e-4ae9-8d45-6c29427b520e 3097191027IoMgrConfigGetFirstChild$044f0bef-f59d-43ad-8496-90bb6703c2b5 451793610IoMgrConfigGetFirstConnector$2858dd16-f4fc-4483-bcdf-311c983114f4 797436920IoMgrConfigGetNextChild$e9fb4157-4aac-42be-ac94-2b7115a46f96 2780622961IoMgrConfigGetNextConnector$9eb80208-afcd-40cc-b7ef-e6ba0e5e4845 3349297925IoMgrConfigGetParameter$6d324e8a-97b5-4b18-a273-d5a249575d94 3729716360 IoMgrConfigGetParameterValueByte$7f0fa515-c756-4bdf-b369-2bc20d75cf4b 1871208306!IoMgrConfigGetParameterValueDword$edf4b27c-1558-4b38-8740-7733f1cd6224 1664861923#IoMgrConfigGetParameterValuePointer$c7e307ad-2f7f-41c3-a984-0cf8acc87b55 1378701427 IoMgrConfigGetParameterValueWord$534433e7-0f3d-4b97-9452-dcee4c3f5982 1801502966IoMgrConfigResetDiagnosis$883f4d8a-c225-480c-ab37-0adbd1349dfe 3771515593IoMgrConfigSetDiagnosis$a48fea34-3f67-4013-a0ba-98007fb1f0ff m4export_hide 3966152356EVTPARAM_CmpIoMgr 2142005226EVTPARAM_CMPIOMGR$0c7ba0e4-3fb3-4e68-be6f-1f18acd66874 1571261114IoMgrGetModuleDiagnosis$0e3b12d3-3da9-4300-b32d-a55b095483d1 3297191157 IoMgrIdentify$8f29ce56-8080-4f31-921c-c80d1e131a4b This function acquires the mutual-exclusion locks for the given operations for critical sections inside the I/O driver's implementation of IoDrvReadInputs(), IoDrvWriteOutputs(), and IoDrvStartBusCycle(). The locks can be released with the function ``IoMgrLockLeave()``. While a lock is held, any other thread is blocked from acquiring the lock and waits until the lock is released. IMPLEMENTATION NOTE: The behavior of the ``dwLockScope`` parameter can't be implemented on all platforms. Platforms without synchronization functionality may not be able to implement this behavior. IoMgrEmbedded of the CODESYSControlEmbedded runtime system for example can only disable and enable all interrupts. :return: error code + ERR_OK: Locks were successfully acquired. + ERR_PARAMETER: The ``pbyIoDrv`` parameter is ``NULL`` (only implementations that use this parameter), or the ``dwLockScope`` parameter has none of the GVL LockScopes set (only implementations that use this parameter). + ERR_FAILED: No driver entry for pbyIoDrv found in device pool. 890733340IoMgrLockEnterZ Handle to the driver instance which is returned by the function IoMgrRegisterInstance2().X The operations for which to acquire locks. See GVL LockScopes for detailed information. dwLockScope$4fd687bb-454e-46c6-92d3-30d2728a3718 This function releases the mutual-exclusion locks (that were acquired with the function ``IoMgrLockEnter()``) for the given operations. IMPLEMENTATION NOTE: The behavior of the ``dwLockScope`` parameter can't be implemented on all platforms. Platforms without synchronization functionality may not be able to implement this behavior. IoMgrEmbedded of the CODESYSControlEmbedded runtime system for example can only disable and enable all interrupts. :return: error code + ERR_OK: Locks were successfully released. + ERR_PARAMETER: The ``pbyIoDrv`` parameter is ``NULL`` (only implementations that use this parameter), or the ``dwLockScope`` parameter has none of the GVL LockScopes set (only implementations that use this parameter). + ERR_FAILED: No driver entry for pbyIoDrv found in device pool. 1023158587IoMgrLockLeave\ The operations for which to release the locks. See GVL LockScopes for detailed information.$50cd89f4-1210-43ef-b6c6-2969fa64e786 1003358786IoMgrReadInputspTaskMap$d5fc4c8b-d7aa-4c58-861a-b02328639e3c 4078812334IoMgrScanModules$86e554e2-e3be-4617-a91e-b1c3df71e91f 166652967IoMgrStartBusCycle$4a65f552-4c1b-4aa4-92a4-4c8eb2dd5024 Start the bus cycle for a specific connector, and pass the type of this call as an additional option. This way, the driver knows in which conditions (see BusCycleType) was called, by calling IoMgrGetBusCycleType(). 2327419416IoMgrStartBusCycle2$baa69047-4c1f-4c1a-b87c-8471ac7a7ad6 2973243251IoMgrUpdateConfiguration$8e8c1b49-af35-45e8-8dd6-4183dc7c1266 1154303272IoMgrUpdateConfiguration2$d75b572a-b27e-4240-94e8-0565f641933c 169153132IoMgrUpdateMapping pTaskMapList$f05cd498-57b1-4b93-bdc2-c8e263237f40 2002746541IoMgrUpdateMapping2$f51df010-35a8-4d39-b7ab-b84c2159ac76 2557345171IoMgrWatchdogTrigger$adc50bde-6417-4daf-91a3-310b13750941 3660854195IoMgrWriteOutputs$f3cda08a-24ef-4920-8b1f-737f86549f8b 3548116447IoMgrReadParameterpData dwBitSize dwBitOffset$0f6cb342-4622-47eb-8029-2ed7ce38f7e4 2902783976IoMgrWriteParameter$59947c7d-7697-4b40-a6f3-1458a495024c 2598087253$ConfigGetParameterValueByte_InternalpbyValueByte$ad79290f-4fb0-4668-a246-1230e7f20a89 743185784%ConfigGetParameterValueDword_InternalpdwValueDWord$1682af8a-160c-45a7-8955-5be9ff8acfb2 1882665782$ConfigGetParameterValueWord_InternalpwValueWord$d13aa643-3f97-483d-bb6d-577d824c73e4 3023225215private_iomgr_memcpypDstiSize$c3db5c9e-2306-4784-86d3-ddc840e503d2 450027817 LogToDevicepMessage$87fa260a-0206-486b-b1c7-ddcd71ec0182Jbreakpoint logging functions, 3.5.5.0 (3s - smart software solutions gmbh) Appending of a string to a target string. The string to append and the target have both a maximum length of 255. If there is no more room in the target, the remaining characters will be missing. There won't be an error. .. cds:ranges:: :HEAD: |StringRange255| :TAIL: |StringRange255| .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]  3222489690AppendToString& Head part of the concatenated result HEAD% Tail part of the concatenated resultTAILIntindex1indexRet$2534de7b-0ca5-4f62-a5ca-98671b8c49e2 linkalways 1647294876__DataSegmentsnNumOfSegments pDataSegments __SEGMENTINFO __SegmentInfo 4060142437__DATASEGMENTS$6d5ee79a-0165-410b-9a03-2dcb86d77084 4207933064 1489859144 displaymodehexdsKindOf__DATASEGMENTFLAGSuiAreaudOffsetudSizeudHighestUsedAddress 176517104$86a3bd70-f6af-446c-a3ca-d70c9d74cefb 224398676 3195237607__BasePropertyInfopVarAdr 930619704__BASEPROPERTYINFO$31ba9dec-acd8-475d-b624-39b6068c7eaf 461629027 236822733__PropertyInfoStructpGetterpSetter pInstance 4145388846__PROPERTYINFOSTRUCT$85b65d0b-a93f-4e02-80e4-fafd3f54abc3 1714484629 3751468166__POUInfoStruct dwCRCCodedwCRCInterfaceudiNameStringIndexusiAreaCodeLocationusiAreaFPPointerLocationudiOffsetCodeLocationudiOffsetFPPointerLocation 519335429__POUINFOSTRUCT$8467172f-0c66-4acf-9d6b-245b2445da14 2202995516 2428029082__FBInfoStruct dwCRCVFTableudiAreaVFTableLocationudiOffsetVFTableLocation 1621815094__FBINFOSTRUCT$1964cd27-f960-4298-b539-cf555cb4552c 2130618155 901311032__MethodInfoStructudiParentPOUIndex 2699900021__METHODINFOSTRUCT$d277c0d4-0a58-4c92-97d1-0453f8828707 3731023454 2494911014__DUTInfoStruct 2398341060__DUTINFOSTRUCT$76a1e5d2-9eb5-4a1b-a8e7-baf1b7eb9716 1327871788 3489042165__GVLInfoStruct 1374809287__GVLINFOSTRUCT$a40cb7c8-28fe-4494-89ac-d9ba39db98a8 2456846774 994902498AnyTypepValuediSize TypeClass TYPE_CLASS 3543456108ANYTYPE$b60a5c90-aa6c-4c3f-8332-c02981c0bf59 696726884 2125849342__CodeLocationStruct udiCodeSize 2823972544__CODELOCATIONSTRUCT$bb81851c-8557-43fd-ad66-2f0071e45f53 802123132 147588528__ImplicitReferenceTypesInit$270c4366-521b-4273-856a-24cad42924c9 2353654990__TaskSpecificInfo TaskIndex pTaskInfo 2567373613__TASKSPECIFICINFO$5f3af15b-046d-4359-9fb1-4011c841ebb0 1278195045qualified_only 406642837__CheckedInterfaceAssignInterfaceInput correction$09818148-288b-4e68-aaac-88d3699e851b 4255647081 __memcmp__iecptr1ptr2$0ac70c4a-9600-4218-ba11-7d8ad957fb05 4118428513any32__to__string diExponentdwMantdiExp10pstr diAfterKommaudPowdwTODdwDatepszHelp(Compiled, SuperGlobal, Typified, Located$52f276ac-71ea-475d-be1d-c34d7442869eF new and better way to convert single precision float values to string 812339439new__real32__to__string Area: 65535, Offset: 0x0 (0)indexpdwdwbSign decexponent binexponent binmantissa decmantissastrMantissaRaw strMantissa pstrMantissanLen bFirstChar nNewExponentnPointPositionnIndexMantissaNewbNanbInfExponent bNegExponentnTensnOnes__CONVERSION_CONSTANTSFAdrPFBoolbContainsPointCHAR_0FLocal, ReplacedConstant, Constant, IsCompiled, RelativeStack, Typified CHAR_POINT CHAR_MINUSCHAR_E$a891eece-ca29-4db8-b9cf-c1a855c9feac 4263303623any64__to__stringdintHighudintLow udintHighLWordulDivulDigbFirstnDigitsnWidthcount$3cce6ca9-0c61-42bf-9945-73fd93e91f59 748513653real64__to__stringsz pszSource pszHelpSourcepszDestDIntnSigniExp10nExpSignbSdiEliMxNanxInf$2a265c59-789e-4c94-a95e-f5f70529f084__GETINTERFACEPOINTER__GETINTERFACEREFERENCE__MAIN__VFINITCONFDYNLICCHALLENGEDEMOMODEEXPIREDDEMOMODESTARTEDFB_EXITGENERATEEXCEPTIONGETCODEMETERLICENSEVALUEGETDEMOLICENSEGETLICENSEVALUEGETLICENSEVALUEBITGETPURELICENSEVALUEGETUSERLICENSEVALUELICENSEMISSINGLOGERRORMESSAGEREADLICENSEFILEREQDYNLICCHALLENGE STORELICENSEUDINTVALUEOFLINE VALUEOFLINEhide_all_localsl This FB manages the access to license values. There is one global instance of it with the name ``g_olm``. 1762817067OLM_OnlineLicenseManager FunctionBlock_hFile-Local, IsCompiled, RelativeInstance, Typified _udiTarget_udiType_udiCPU_udiOS_abyFileContentgc_uiMaxFileSize _uiFileSize _xFileRead_uiStoredLicenses_udiDynLicReqID_udiDynLicReqValue_udiDynLicChallenge _xDemoMessage _semaStore_adwLicensesStoredgc_uiMaxStoredLic__VFTABLEPOINTER=Local, IsCompiled, RelativeInstance, NoInit, Implicit, NoCopy 3309119800OLM_ONLINELICENSEMANAGER __Index__1$85fe17fb-708c-43f1-921d-b15ce3e6d622 726124912ReadLicenseFileresuxiSize udiTarget udiTargetMASKudiTypeudiCPUudiOSpsSerialpdi uiCheckSumabyGenbStringOnlineLicenseManager stComponentstFilestrti$Compiled, Typified, Located, Private$245266f5-25c0-4347-ba16-cf8db3cb144883slicense, 3.5.14.0 (3s - smart software solutions gmbh) With this method a component that previously asked for a license and received a negative result can post an error log message in a unified way Hence this method should be called after GetUserLicenseValue has been called and returned no license. 3647277004LicenseMissing name of the component strComponent$c917544e-997c-4a95-85b8-b296375d8bdb 3970679331UdintValueOfLinestrId$482e9fa5-988d-470b-a26c-e7f543b44f5f 699475816GetLicenseValueBit udiLicenseIDusiBit udiLicense$0dd60a5f-bcb6-4ca9-bbbe-47aee3a7178a 2096955056fb_init$05fb8a48-e7b2-4a22-ad11-1fd89ee4b04e 1640385473GenerateException$3e4d0264-ac0c-4627-a2fa-6f413a9caafe 3646185970LogErrorMessage$35438eb1-a664-41a5-9c91-1c77ddde2b52w With this method a component can propagade in a uniform way that its demo mode has expired and it has stopped to work. 3922114547DemoModeExpired$e0a0ee36-9b29-4376-92d8-210830590cea 2895160340__GetInterfacePointer pRef 3063148035 fb_exit $fce63f6e-52d8-4464-9446-53dd8cc9eff7 167456217 GetPureLicenseValue xNotFromCache xFromCache udi udiCPUOS ui udiWibu $23227458-e40f-430b-b25c-630ba433fec3 4203605720 StoreLicense udiValue $3c47975d-1574-4342-8c3b-38c7e032490c  This method allows to ask for the license value of a component (specified by udiLicenseID) :return: Possible values: +-------------+------------------------------------------------------+ | 0 | no valid license installed | +-------------+------------------------------------------------------+ | 16#FFFFFFFF | demo mode (lasts for 30 min) | +-------------+------------------------------------------------------+ | else | license value; interpretation depends on component | +-------------+------------------------------------------------------+ 1784112674 GetUserLicenseValue O ID of the component that asks for its license value (centrally assigned by 3S) $faf62368-1791-496f-9aac-1dcccaddbebb 1553897900 ConfDynLicChallenge udiNewLicenseValue udiChallenge udiLicenseValue $3c2f7c5c-8743-4910-b672-93d5c08a11db 4275231191 GetCodemeterLicenseValue udiProductCode $2fd2d7ac-965c-4a78-9a9b-c721a84cea62 1869023576 GetDemoLicense stHelp $3dea640c-ce74-46db-89a9-6a2e7e8a089c  With this method a component can propagade in a uniform way that it is running in demo mode and will - after a certain time - stop. This method should be called after it is clear that the license will stay in demo mode, in particular the (possibly later / after initialization phase) confirmation of dynamic licenses should be taken into account. Therefore it is recommended for the OEM to confirm dynamic licenses *during the initialization* (after global init slot 40000) and *before the application* is started. 3669514694 DemoModeStarted $c9961dd4-2fb3-4d0b-9b3f-67937056004c 3864497688 __GetInterfaceReference nInterfaceId 4293952 GetLicenseValue param CMPEVENTMGR CmpEventMgr EVENTPARAM EventParam eventparam EVENTIDS CmpMgr_LicenseRequest $d5b19f2e-90e0-4b05-a5e8-3068951f9d50 1280744906 3890662013 ValueOfLine pby uiEndOfLine j usiBitOffs byOrig byPerm byBuff byOld xEndOfLine $969097ae-9ac4-46e5-a05b-018cd3f16004 584426206 ReqDynLicChallenge udiTime $477a8134-64d2-4992-ac2b-50ed5f5a8858 1774802008 Alias, IsCompiled, Typified Alias, Compiled, Typified $1f187897-1eca-4745-9dd7-6e656076701f &systypes2 interfaces, 3.5.4.0 (system) 3827756189 $5de0d991-1359-4458-ba16-a7e779ed9ddc 565296024 8 EventID of the event. Contains the class and the event EventId  Component ID of the provider. CmpIdProvider 0 Id of the parameter structure (see pParameter) usParamId 5 Version of the parameter structure (see pParameter) usVersion R Pointer to the event specific parameter, that is specified by Id (see usParamId) 3380528868 $708ad4f5-2a48-4fd2-8d88-fb3b143a33a4 cmpeventmgr, 3.5.14.0 (system) 154268403 ulLicenseID ulLicenseValue 2430688636 CMPMGR_LICENSEREQUEST $ec71f5d5-b2a8-42f3-8e75-3a56c8942752 __OffsetI_TESTRESULTFORMATTER LOGTESTSUITERESULTS 1989740091 I_TestResultFormatter Interface 4590928 LogTestSuiteResults TestResults GVL_PARAM_CFUNIT GVL_Param_CfUnit MaxNumberOfTestSuites ST_TESTSUITERESULT ST_TestSuiteResult I_TESTRESULTFORMATTER $6ab3f0b5-21a7-4cd5-8126-d8af5506b662 $fa75ee61-43fb-4767-8061-125a3a9e3424 cfunit, 1.1.0.0 (open source) Compiled, Typified  Detects a rising edge of a boolean signal .. code-block:: codesys (* Example declaration *) RTRIGInst : R_TRIG ; (* Example in ST *) RTRIGInst(CLK := VarBOOL1); VarBOOL2 := RTRIGInst.Q; .. cds:ranges:: :CLK: [TRUE,FALSE] :~CLK_OLD: [TRUE,FALSE] :Q: [TRUE,FALSE] 754564685 R_TRIG  Boolean signal to be checked CLK -Input, IsCompiled, RelativeInstance, Typified  ``TRUE``: Rising edge detected Q .Output, IsCompiled, RelativeInstance, Typified M 3552750443 $752f4be3-bcd1-4b9f-8c29-de66d869ade4 2057466445 2279655128 725723096 2849467804 standard, 3.5.14.0 (system)  This function block reports the results from the tests using CmpLog functionality. It sends the results into the DeviceLog (which can print Errors, Warnings and Messages). 4192911373 FB_CdsTestResultLogger __INTERFACEPOINTER__376 PrintedTestSuiteResultNumber UInt PrintedTestSuiteTrigger 8 This flag is set once the final end result has printed PrintedFinalTestResults @ This flag is set once the test suites result have been printed PrintedTestSuitesResults 1092721245 FB_CDSTESTRESULTLOGGER $d14d6247-3ce3-459f-be22-6ee3520279ed 3006019631 StringToPrint T_MAXSTRING T_MaxString TestsInTestSuiteCounter MaxNumberOfTestsForEachTestSuite NumberOfTestSuites NumberOfTestCases NumberOfSuccessfulTestCases NumberOfFailedTestCases #GeneralTestResultsTestSuitesCounter $5da87d69-39f1-48e4-bedb-3bc6f1ecc539 1109025389 1863379842 2079809534 612864726 2899725525 I_TestResultFormatter__Union 1286751965 I_TESTRESULTFORMATTER__UNION CLOSE OPEN READ SAVE 1695361983 FB_FileControl ACCESS_MODE SYSFILE SysFile AM_WRITE_PLUS FileAccessMode FileHandle SYSTYPES SysTypes 2535989555 FB_FILECONTROL $c9bec8fc-2de3-45f4-b839-e6c4276a6b5a 1889971345 2355446001 3308839526 Read  Call with ADR(); pString  Call with SIZEOF(); Size FileSize RTS_IEC_SIZE $3984ae50-1cdb-4045-af99-0bb56917afb2  Closes the current file 4214760544 Close $519e9011-283c-40b1-afd4-31686c5b81fe 2474451454 \ Saves the contents of the buffer into a file Be sure to call Open() before calling Save() 2206094130 Save  Call with SIZEOF(); $c4146a99-50c6-4ce0-88ab-794dbfb1af62 Opens a file 2914156665 Open p File name can contain an absolute or relative path to the file. Path entries must be separated with a Slash (/) filepath/output.xml FileName AM_APPEND_PLUS $1873bb2c-c6a3-4681-8948-02aa2bad0a9b 527503827 __GETBUFFERSIZE __GETLENGTH __SETAPPEND __SETLENGTH __SETPREPEND CLEAR COPY CUTOFF FIND FINDBACK SET M This functionblock acts as a stream buffer for use with FB_XmlControl 460344340 FB_StreamBuffer pStrBuf udiBufSize udiLength property set  Appends a string to the buffer message_guid $ddd7c0b6-46f9-4fa9-946e-0da608268245 Append get  Read current Buffersize $879a667c-416e-4879-91ff-6641233ded93 BufferSize $80c3b0fb-2bdc-4829-89c6-017e171b31eb Length Prepends a string to the buffer $c4fdd2db-7736-4bc5-a06f-ba3a29618794 Prepend 3894529336 CutOff udiStartPos udiCutLen XmlError E_XMLERROR iLoop pByteCut pByteBuffer FB_STREAMBUFFER $8914e4f8-8b6c-48c3-ba1f-e0642038624a $fbccbed5-94ee-455b-a9d5-e8b750ed732e  Find a searchstring in the buffer and returns its position. It's possible to add a preffered startposition within buffer 2249836283 Find sSearchString udiLoop iSearch pBuffer pSearch $7e38490a-9555-451d-957e-fef284a567e3 3770588605 FindBack udiSearch $7d08b204-2078-4fde-81eb-e04d71986196 3443550296 __setPrepend TempBuf GVL_PARAM_XMLCONTROL GVL_Param_XmlControl MaxFileSize pTempBuf pByteIn $4ce6b49b-00bd-4bd1-9dcd-2e9ecfab167b 3531527356 679612793 __getLength $063f44b5-d97e-4feb-bc58-4bdd7430c0c3 1 Copies a string from the character buffer 24631700 Copy udiStart udiEnd udiCopyLen pByteCopy $b796dd60-63f5-4b75-acc5-8fa40e24be46 + Clears the buffer and sets the length to 0 245412907 Clear $5f0bbce2-2600-4a2e-8c6f-4b957ad03395 3105935666 1526185124 __setLength $c516394c-e0bf-40e3-8a00-92e5ec5cc151 3911693793 __getBufferSize $c7ad50d6-c68e-4f97-8e99-a8d5c013ef7a 2742528156  Sets the Buffer 2765814553 Set  Set buffer adress (ADR ...) pbyAdr  Set buffer size (SIZEOF ...) udiSize $59092938-ca22-4896-8f54-1c854a0bd883 1070739256 431188798 3726327849 __setAppend $2498d17a-6a8a-4bf1-a5ce-9c1a248a9710 CLEARBUFFER CLOSETAG NEWCOMMENT NEWPARAMETER NEWTAG NEWTAGDATA NEXTPARAMETER NEXTTAG SETBUFFER TOSTARTBUFFER WRITEDOCUMENTHEADER Organizes parsing and composing of XML data. Data can be treated as STRING or char array. Filebuffersize is default 4096 bytes and can be set via Gvl_Param_XmlControl Usage example: 1. Initiate VAR XML : FB_XMLControl; Buffer: STRING(GVL_Param_XmlControl.udiMaxFileSize); //or Buffer: ARRAY [0..GVL_Param_XmlControl.udiMaxFileSize] OF BYTE; END_VAR XML.pBuffer: = ADR (buffer); XML.LenBuffer: = SIZEOF (buffer); Add your own preferred fileheader like so: XML: XML.WriteDocumentHeader( ''); 2. Compose a tag with a parameters: XML: XML.newTag(sTagName: = 'MyTag'); XML.newPara(sName: = 'ParaName', sPara: = sValue); XML.CloseTag(); 3. Add tag value: XML: MyText XML.newTag(sName := 'MyTag'); XML.newTagData(sTagData :='MyText'); XML.CloseTag(); 4. Jump to the beginning of the XML data XML.toStartBuffer(); 5. Add a comment: XML: XML.newComment(sTagName: = 'MyComment'); 6. Returns the next tag from the current position in buffer XML.NextTag(); 7. Output the parameter of the tag XML.NextPara(sPara: = LastValue); Feedback: sPara returns the value found (string) 4271593562 FB_XmlControl Buffer TagList sTags TagListSeek sTagsSeek Tag sTag xTagOpen iSelect iSelectStart iSelectEnd iSelectStartPara iSelectEndPara iSelectTagClose iSelectStartValue iSelectEndValue udiSearchPos < TAG_OPEN 7Local, Constant, IsCompiled, RelativeInstance, Typified > TAG_CLOSE /> END_TAG_CLOSE  SPACE = EQUALS " QUOTE \ BACK_SLASH / FORWARD_SLASH  CLOSE_COMMENT  TAB  CR_LF $4fdf30b6-5fe7-4452-ad0a-85e866e236d0 m Must be called after opening a new tag XML.NewParameter(Name: = 'ParaName', Value: = 'Value'); 2634837430 NewParameter Name Value FB_XMLCONTROL $60c10606-ff09-4f9b-a3dd-0b54d0f565c7 $f48b7de2-5c07-4763-a8be-3d8ab3c1f58c 2112014703 I Closes a Tag: XML: ' Method: XML.CloseTag(); 1350786801 CloseTag $eedd2aac-2425-4325-8128-bfe1e984f3f7 P Creates a new Tag: XML: XML.NewTag(Name: = 'MyTag'); 3405068434 NewTag $c44bdbda-725a-4943-a5cc-fa5ea9485541 2345788106 4091577810 NextTag $d039b781-905d-4b69-b5aa-bb0323e598de 311623939 NextParameter Parameter $4394d0a2-f7bc-4847-9625-00022c462a79  Add your own preffered fileheader like: XML: XML.WriteDocumentHeader(''); 1129208895 WriteDocumentHeader Header $14bf2549-9e7d-451f-8ab5-fe662eb30712 c Adds a comment; XML: XML.NewComment(Comment: = 'MyComment'); 1839979298 NewComment Comment $0f41fa45-b92e-4e7e-b2b3-ecb5d5918326 1660387904 $267105d4-b124-4c5c-a359-0434c4992afc 3578040079 3559116989 629852686 NewTagData Data $e4679d3f-10eb-47fd-936c-97e3aaaa3768 3231874346 SetBuffer iSizeOf $cbfaa6d5-eab9-48d0-a339-a8bf334e344e 1 Clears the contents of the entire buffer 1859166792 ClearBuffer $651b4460-232e-47e8-95ba-ecea1541fbb9 G Jump to the beginning of the XML data XML.ToStartBuffer(); 480465930 ToStartBuffer $cb065068-a6c8-48d5-8c1d-535a21365348 792755172 OPENSAVECLOSE x This function block reports the results from the tests into a xUnit compatible XmlFile see xUnit XML Template 886807295 FB_XmlResultFormatter * Default path for storing the output file ./output.xml szFilename  Default file access mode stFileAccessMode File Xml FB_XMLControl xBufferInitialised Minus WritingTestSuiteResultNumber AreAllTestsFinishedTrigger WritingFinalTestResults @ This flag is set once the test suites result have been written ReadyWritingTestSuitesResults 797895307 FB_XMLRESULTFORMATTER $6597c0b3-0890-4d5d-8d3a-2d0d0b2355db 3982966825 NumberOfSkippedTests CurTestSuite $32c3ccd7-3470-4554-b54c-b3a0a6491553 3964891648 1911703512 173356519 OpenSaveClose $84256533-6eb5-465b-b1e5-db6f61e2e6c3 3684701766 FB_Init is always available implicitly and it is used primarily for initialization. The return value is not evaluated. For a specific influence, you can also declare the methods explicitly and provide additional code there with the standard initialization code. You can evaluate the return value. 1205183587 FB_Init E TRUE: the retain variables are initialized (reset warm / reset cold) P TRUE: the instance will be copied to the copy code afterward (online change) $0f23c47b-7245-415e-b489-0ae429217263 3984686499 ST_TestCaseResult TestName TestClassName Skipped 2862998697 ST_TESTCASERESULT $827f1374-79d7-484a-b090-e913f2fd7e61 3654019189  Full class name W Should be 0..GVL_Param_TcUnit.MaxNumberOfTestSuites-1 but gives unknown compiler error Identity NumberOfTests NumberOfFailedTests TestCaseResults 2727633817 $5d16604c-bc9e-413c-8d4d-01667ea07b24 GETGENERALTESTRESULTS GETTESTSUITERESULTS ^ This function block holds results of the complete test run, i.e. results for all test suites 3609055345 FB_TestResults The total number of test suites 5 The total number of test cases (for all test suites) ? The total number of test cases that had all ASSERTS successful C The total number of test cases that had at least one ASSERT failed . Test results for each individiual test suite TestSuiteResults  Misc variables StoringTestSuiteResultNumber StoringTestSuiteTrigger StoredTestSuiteResults StoredGeneralTestResults 2772295229 TestSuiteName TestToBeStored FB_TEST FB_Test FB_TESTRESULTS $dcfade2b-3801-4064-9466-67a7a848e8d0 3733259722 2712372026 GetGeneralTestResults NoOfTestSuites NoOfTestCases NoOfSuccessfulTestCases NoOfFailedTestCases $531d5d08-5de3-4c4f-9365-451e69239140 3328074054 GetTestSuiteResults $3d7cfdb1-16a3-456d-be0a-82cecf4820a8 2050565673 1157713369 565388467 ABORTRUNNINGTESTSUITETESTS RUNTESTSUITETESTS ] This function block is responsible for holding track of the tests and executing them. 4236016373 FB_CfUnitRunner L Indication of whether all test suites have reported that they are finished AllTestSuitesFinished 3 Prints the results to Log to display the results. LogTestResultFormatter TestResultPrinter XmlTestResultFormatter XmlPublisher  Test result information w If this flag is set, it means that some external event triggered the request to abort running the test suites AbortRunningTestSuites 1585667064 FB_CFUNITRUNNER $857e16d6-a26c-468a-935e-aa7317c263b9 2542736242 2449661844 ` This function sets a flag which makes the runner stop running the tests in the test suites 573665699 AbortRunningTestSuiteTests $3fcbd569-749a-493c-a697-2c976fa6e96a 2950497563 2121166836 2836251582 RunTestSuiteTests Counter BusyPrinting  We need to hold a temporary state of the statistics (failed, successful, total amount of test cases etc) as we don't consider the tests to be completely finished until all test suites have executed completely. The reason we want to do it this way is because a test suite can run over several cycles. Only once all tests are finished (which might take many cycles), do we gather correct statistics NumberOfTestSuitesFinished_Temp NumberOfTestCases_Temp NumberOfFailedTestCases_Temp NumberOfSuccessfulTestCases_Temp $d333e6c4-a1da-4b5b-91b3-4b4808e6c299 2671643726 $a429e267-db3b-4872-871e-1ca509b971e2 161063444 $fc07005b-6ac8-404d-b2cd-f68d25f42f8e GETNAME ISFAILED ISFINISHED SETFAILED SETFINISHED SETNAME ? This function block holds all data that defines a test. 929400243 C Indication of whether this test has had at least one failed assert TestIsFailed TestIsFinished 1117055996 IsFinished $813a9067-b864-4739-9c14-830160e0eabc $a51e9086-33ec-4162-acad-93a76961e893 2617315923 2860593324 4294720336 2009680975 686902952 SetName $4c12f6eb-bbe4-4872-ac89-4411e2e81414 1394032034 SetFailed $b840b41b-4045-4fd9-b97d-0bf226c46fb3 340246040 IsFailed $e42409e3-251f-4133-8b14-3630785983d6 486247262 2121735863 GetName $94757f0e-9979-49d0-ad9f-e35c823175d4 2325423616 SetFinished $e1245d1c-be22-4d60-bc91-fe0262827234 external_name Task_Info  Task information out of the task configuration Task configuration menbers which are used with |IecTaskCreate| are marked with [c], status members are marked with [s]. Note for SIL2: This information is already inside of the data area, so we don't need to tag it as safe anywhere. 61652668 Task_Info2 ! [c] Version of the structure (2) dwVersion [c] Name of the task, mandatory pszName % [c] IEC priority of the task (0..31) nPriority 9 [c] Kind of task. See corresponding category |TaskType|. KindOfTask $ [c] Is TRUE, if watchdog is enabled bWatchdog C [c] Is TRUE, if profiling is enabled (not used, FALSE recommended) bProfiling E [c] Function pointer to the event check routine, see |IecTaskCreate| dwEventFunctionPointer 7 [c] Name of the event, if it is an external event task pszExternalEvent F [c] Function pointer to the task code, mandatory, see |IecTaskCreate| dwTaskEntryFunctionPointer  [c] Watchdog sensitivity dwWatchdogSensitivity  [c] Interval in microseconds dwInterval " [c] Watchdog time in microseconds dwWatchdogTime 5 [s] Cycle time in microseconds (last execution time) dwCycleTime ' [s] Average cycle time in microseconds dwAverageCycleTime ' [s] Maximum cycle time in microseconds dwMaxCycleTime ' [s] Minumum cycle time in microseconds dwMinCycleTime  [s] Jitter in microseconds iJitter  [s] Minimal jitter iJitterMin  [s] Maximal jitter iJitterMax  [s] Cycle counter dwCycleCount( [s] Task state. See category TaskState.iState3 [s] Number jitter statistical distribution entrieswNumOfJitterDistributions, [s] Statistical jitter distribution entriespJitterDistributionJITTER_DISTRIBUTIONJitter_Distribution [s] Timeslicing enabled bTimeSlicingbyDummy- [s] Cycle counter for execution of user codedwIECCycleCount 2750948561 TASK_INFO2$a1e9fbd6-93bf-46b3-bfe6-3b3118b8971acmpiectask, 3.5.14.0 (system)) reads the taskinfo from the current task 380229896GetCurTaskInfopCurTask CMPIECTASK CmpIecTask pCurTaskInfo CurTaskInfo 4105761433GETCURTASKINFO$21adb24c-373e-4435-8059-bba210563e99 2413748294 1915908239 4214002233 2906446323 227646264U_ExpectedOrActualboolExpectedOrActualbitExpectedOrActualbyteExpectedOrActualdwordExpectedOrActuallwordExpectedOrActualstringExpectedOrActualudintExpectedOrActualuintExpectedOrActualusintExpectedOrActualsintExpectedOrActualintExpectedOrActualwordExpectedOrActualdintExpectedOrActuallintExpectedOrActualulintExpectedOrActualrealExpectedOrActuallrealExpectedOrActualwstringExpectedOrActualtimeExpectedOrActualltimeExpectedOrActualdateExpectedOrActualdateandtimeExpectedOrActualtimeofdayExpectedOrActual25436326U_EXPECTEDORACTUAL$539c30a7-a560-469c-8422-aaf8c09f45d99Structure, NonVirtual, Union, Compiled, Typified, Located 2825047456ST_AssertResultExpectedActualMessageTestInstancePath 1612349127ST_ASSERTRESULT$63e20a3e-c451-4aff-a3c2-cc9b3a584290 1583981908ST_AssertResultInstances AssertResult* Amount of instances of the "AssertResult"DetectionCountD Amount of instance of the "AssertResult" in this specific PLC-cycleDetectionCountThisCycle93536004ST_ASSERTRESULTINSTANCES$018c91ab-7038-42ef-b6e4-5007ea06204fADDASSERTRESULT3COPYDETECTIONCOUNTANDRESETDETECTIONCOUNTINTHISCYCLECREATEASSERTRESULTINSTANCEGETDETECTIONCOUNTGETDETECTIONCOUNTTHISCYCLE$INCREASEDETECTIONCOUNTTHISCYCLEBYONE REPORTRESULT This function block is responsible for keeping track of which asserts that have been made. The reason we need to keep track of these is because if the user does the same assert twice (because of running a test suite over several PLC-cycles) we want to know it so we don't print several times (if the assert fails). An instance of an assert is keyed/identified with the following parameters as key: - Value of expected - Value of actual - Message (string) - Test instance path (string)  2083454144FB_AssertResultStatic> The total number of instances of each of the "AssertResults"  AssertResultsMaxNumberOfAsserts$ The total number of unique asserts  TotalAsserts. Function block to get the current task cycle GetCurrentTaskIndexAssertResultInstances The last PLC cycle count  CycleCount Only run first cycle FirstCycleExecuted 1249903082FB_ASSERTRESULTSTATIC$9683a633-879e-475e-a97f-0742f9ecfd04 692841312 1389387818 23729146033CopyDetectionCountAndResetDetectionCountInThisCycleIteratorCounter$a8cc95e0-191e-40c8-a6bc-8d58d9231bfa hasanytype 324331413$IncreaseDetectionCountThisCycleByOne uselocationExpected.pValueExpected__pValue2Local, IsCompiled, RelativeStack, NoInit, TypifiedExpected.TypeClassExpected__typeClassExpected.diSizeExpected__sizeOf anytypeclassANY Actual.pValueActual__pValueActual.TypeClassActual__typeClass Actual.diSizeActual__sizeOf$b4a5f59b-b092-46e9-a592-20ecca6c06c9 1534235042 1576367466 875312424CreateAssertResultInstance$0e48fb23-038c-40ed-90ff-ee834be2653d 4040583768GetDetectionCountThisCycle$9f89a925-0785-44b9-83cb-36f87d5bc546 1863076118GetDetectionCount$75f01348-487a-4441-a0e3-f41feb6c1781 This method is called in every assert and returns whether this particular assert has already been called. The reason one would like to know whether this assert has already been reported or not is to not report it several times to any logging service. Because a test-suite can consist of several tests, and certain tests can require the test to run over several cycles it means that certain asserts could be called several times and thus we need to keep track of which asserts we've already reported. The user of the framework should not need to care for any of this and he/she should be able to call the asserts in any way they FIND suitable. To know what assert this is we need to check for the total combination of: - Test message - Test instance path - Expected value - Actual value Theoretically we can have a situation where a test has three different asserts, each and one with the same test message/test instance path/actual value/expected value but called within the same or different cycles. In order for us to handle all situations we need a simple algorithm that works according to: - Keep track of how many instances the combination of test message/test instance path/expected value/actual value we have. So for example, if we have called Assert(Exp := 5, Act := 5, 'Hello there', 'PRG.InstanceTestSuite.Test') two times in one cycle, we have two instances of that combination. This is done according to: - Iterate all existing reports. - If we have a new PLC-cycle, set the current detection-count to zero. - If new report does not match in any of the above fields, create it (together with current PLC-cycle). Also store the information that we have one instance of this combination and +1 on the detection-count. - If new report matches in all of the above, +1 in the detection-count. If this detection-count is larger than the stored detection-count for this combination, create a new report and add +1 to the storage of the detection-count.  2144796275 ReportResultAlreadyReported LocationIndexDataTypesNotEqualsDataSizeNotEqualsDataContentNotEqualsCurrentCycleCountDetectionCountTempFoundOneAdditionalIdenticalAssert$675e4dfe-54f1-4dc0-a6fd-481bc63973c5 3239381763AddAssertResult$22afb213-95b2-4bfd-ada6-e7cf020d9c1d 3525697315ST_AssertArrayResult% Size in bytes of the expecteds-array ExpectedsSize% The data type of the expecteds-arrayExpectedsTypeClass TYPECLASS# Size in bytes of the actuals-array ActualsSize# The data type of the actuals-arrayActualsTypeClass 2307666740ST_ASSERTARRAYRESULT$a97be192-7eab-4934-bf94-f1c1e71902f6 1707683493ST_AssertArrayResultInstancesAssertArrayResult/ Amount of instances of the "AssertArrayResult"I Amount of instance of the "AssertArrayResult" in this specific PLC-cycle 2861258322ST_ASSERTARRAYRESULTINSTANCES$32c33d09-e3c1-4756-8559-edad569b31f5ADDASSERTARRAYRESULT This function block is responsible for keeping track of which array-asserts that have been made. The reason we need to keep track of these is because if the user does the same assert twice (because of running a test suite over several PLC-cycles) we want to know it so we don't print several times (if the assert fails). An instance of an array-assert is keyed/identified with the following parameters as key: - Array-size (in bytes) of the expecteds - Datatype of the expecteds - Array-size (in bytes) of the actuals - Datatype of the actuals - Message (string) - Test instance path (string)  285741936FB_AssertArrayResultStaticC The total amount of instances of each of the "AssertArrayResults" AssertArrayResults$ The total amount of unique asserts TotalArrayAssertsAssertArrayResultInstances 3879263428FB_ASSERTARRAYRESULTSTATIC$b20832df-51fb-47f1-8077-6f683834a939 4126057407 2905686437 4129591207$a7fb8083-d80a-4b1b-8816-a954d21029f6 4220474593 2080793920 2799846253$f9a4ac71-1920-4a28-b414-2ab956ba44ba 2199397778$a67f455d-9f04-4265-a3ae-ec73cfedab30 1425005247$da11a180-ba29-4114-ba12-6fb4c00ea850 This method is called in every assert and returns whether this particular assert has already been called. The reason one would like to know whether this assert has already been reported or not is to not report it several times to any logging service. Because a test-suite can consist of several tests, and certain tests can require the test to run over several cycles it means that certain asserts could be called several times and thus we need to keep track of which asserts we've already reported. The user of the framework should not need to care for any of this and he/she should be able to call the asserts in any way they FIND suitable. To know what assert this is we need to check for the total combination of: - Test message - Test instance path - Expecteds size (in bytes) - Actuals size (in bytes) - Expecteds datatype - Actuals datatype Theoretically we can have a situation where a test has three different asserts, each and one with the same test message/test instance path/actuals size&datatype/expecteds size&datatype but called within the same or different cycles. In order for us to handle all situations we need a simple algorithm that works according to: - Keep track of how many instances the combination of test message/test instance path/expecteds size&datatype/ actuals size&datatype we have. So for example, if we have called Assert(Exp := [5,4,3], Act := [5,4,3], 'Hello there', 'PRG.InstanceTestSuite.Test') two times in one cycle, we have two instances of that combination. This is done according to: - Iterate all existing reports. - If we have a new PLC-cycle, set the current detection-count to zero. - If new report does not match in any of the above fields, create it (together with current PLC-cycle). Also store the information that we have one instance of this combination and +1 on the detection-count. - If new report matches in all of the above, +1 in the detection-count. If this detection-count is larger than the stored detection-count for this combination, create a new report and add +1 to the storage of the detection-count.  334711663$9acdaaa9-94c5-4747-8072-7b7279f5cd81 2602585500$909102be-4739-47e1-abb5-2b1a0d9602c4 1114810495AddAssertArrayResult$60d61a50-adb0-4323-b700-3d64bcdd7ef0 __OffsetI_ASSERTMESSAGEFORMATTERLOGASSERTFAILURE 355528328I_AssertMessageFormatter 4291550583LogAssertFailureI_ASSERTMESSAGEFORMATTER$35efab01-6ac8-46a5-a5e1-adb4f1f5f9b2$71246e7e-3534-44b1-a788-c1f37427a096 This function block is responsible for printing the results of the assertions using the built-in LOGSTR functionality provided in this library. This sends the result to the DeviceLog.  856032233FB_LogAssertMessageFormatter__INTERFACEPOINTER__652 3082900915FB_LOGASSERTMESSAGEFORMATTER$54911d7d-b4a4-43a8-a981-a2fc14a13f71 1702637047 3821178837 498102394 2988799914,AdjustAssertFailureMessageToMax252CharLength/FB_ADJUSTASSERTFAILUREMESSAGETOMAX252CHARLENGTH/FB_AdjustAssertFailureMessageToMax252CharLengthTestInstancePathCleanedTestInstancePathFinal ReturnValueTestInstancePathProcessedMessageProcessed$48cbc6b0-5380-44b8-a045-57b6ad9f189d 4086985287 694510288I_AssertMessageFormatter__Union 1092183428I_ASSERTMESSAGEFORMATTER__UNIONADDTESTADDTESTNAMETOINSTANCEPATHAREALLTESTSFINISHEDASSERTARRAY2DEQUALS_LREALASSERTARRAY2DEQUALS_REALASSERTARRAY3DEQUALS_LREALASSERTARRAY3DEQUALS_REALASSERTARRAYEQUALS_BOOLASSERTARRAYEQUALS_BYTEASSERTARRAYEQUALS_DINTASSERTARRAYEQUALS_DWORDASSERTARRAYEQUALS_INTASSERTARRAYEQUALS_LINTASSERTARRAYEQUALS_LREALASSERTARRAYEQUALS_LWORDASSERTARRAYEQUALS_REALASSERTARRAYEQUALS_SINTASSERTARRAYEQUALS_UDINTASSERTARRAYEQUALS_UINTASSERTARRAYEQUALS_ULINTASSERTARRAYEQUALS_USINTASSERTARRAYEQUALS_WORD ASSERTEQUALSASSERTEQUALS_BOOLASSERTEQUALS_BYTEASSERTEQUALS_DATEASSERTEQUALS_DATE_AND_TIMEASSERTEQUALS_DINTASSERTEQUALS_DWORDASSERTEQUALS_INTASSERTEQUALS_LINTASSERTEQUALS_LREALASSERTEQUALS_LTIMEASSERTEQUALS_LWORDASSERTEQUALS_REALASSERTEQUALS_SINTASSERTEQUALS_STRINGASSERTEQUALS_TIMEASSERTEQUALS_TIME_OF_DAYASSERTEQUALS_UDINTASSERTEQUALS_UINTASSERTEQUALS_ULINTASSERTEQUALS_USINTASSERTEQUALS_WORD ASSERTFALSE ASSERTTRUEFINDTESTSUITEINSTANCEPATHGETINSTANCEPATHGETNUMBEROFFAILEDTESTSGETNUMBEROFSUCCESSFULTESTSGETNUMBEROFTESTSGETTESTBYPOSITIONISTESTFINISHED SETTESTFAILEDSETTESTFINISHEDcall_after_init reflection This function block is responsible for holding the internal state of the test suite. Every test suite can have one or more tests, and every test can do one or more asserts. It’s also responsible for providing all the assert-methods for asserting different data types. Only failed assertions are recorded.  1004086117 FB_TestSuite instance-pathnoinit InstancePath5Local, IsCompiled, RelativeInstance, NoInit, Typified We need to have access to specific information of the current task that this test suite is executed in. This is for instance necessary when we need to know whether a test is defined already. The definition of a test that is defined already is that we call on it with the same name twice in the same cycle Tests Rising trigger of whether we have already notified the user of that the test name pointed to by the current position is a duplicate TestDuplicateNameTrigger Last cycle count index for a specific test. Used to detect whether this test has already been defined in the current test suite TestCycleCountIndex Prints the failed asserts to DeviceLog to display the assert message. This assert formatter can be replaced with something else than the DeviceLog LogAssertMessageFormatterAssertMessageFormatter | Asserts that two REALs are equal TO within a positive delta. IF they are NOT, an assertion error is created. Parameters: | Expected – REAL expected value | Actual – REAL actual value | Delta – The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : REAL := 1234.5; b : REAL := 1234.4; END_VAR TEST('Test_REAL_Equals'); AssertEquals_REAL(Expected := a, Actual := b, Delta := 0.1, Message := 'Values differ'); TEST_FINISHED(); Failing example: VAR a : REAL := 1234.5; b : REAL := 1234.4; END_VAR TEST('Test_REAL_Differ'); AssertEquals_REAL(Expected := a, Actual := b, Delta := 0.05, Message := 'Values differ'); TEST_FINISHED();  3935931743AssertArrayEquals_REAL REAL array with expected valuesvariable_length_array Dimensions1 Expecteds REAL array with actual valuesActuals The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the Expected value in that array cellDelta0 The identifying message for the assertion errorEquals SizeEqualsIndexExpectedString ActualStringSizeOfExpecteds SizeOfActualsExpectedsIndex ActualsIndeximplicit_inputExpecteds__Array__Info__ARRAY__DIM__INFOActuals__Array__Info FB_TESTSUITE$c42ec40e-0859-4258-a3b2-11b258dab324$f80c23f2-119d-406b-ae11-06d1991bf64d | Asserts that two BOOLs are equal. If they are not, an assertion error is created. Parameters: | Expected – BOOL expected value | Actual – BOOL actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : BOOL := TRUE; b : BOOL := TRUE; END_VAR TEST('Test_BOOL_Equals'); AssertEquals_BOOL(Expected := a, Actual := b, Message := 'Bools differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : BOOL := TRUE; b : BOOL := FALSE; END_VAR TEST('Test_BOOL_Differ'); AssertEquals_BOOL(Expected := a, Actual := b, Message := 'Bools differ'); TEST_FINISHED(); 1285440394AssertEquals_BOOL BOOL expected value BOOL actual value$0c41b405-ea35-4450-93cc-7c3349bdf754 | Asserts that two WORD arrays are equal. If they are not, an assertion error is created. Parameters: | Expecteds – WORD array with expected values | Actuals – WORD array with actual values | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[1..5] OF WORD := [16#AAAA, 16#BBBB, 16#CCCC, 16#DDDD, 16#EEEE]; b : ARRAY[1..5] OF WORD := [16#AAAA, 16#BBBB, 16#CCCC, 16#DDDD, 16#EEEE]; END_VAR TEST('Test_WORD_Array_Equals'); AssertArrayEquals_WORD(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys VAR a : ARRAY[1..5] OF WORD := [16#0000, 16#3333, 16#5555, 16#7777, 16#BBBB]; b : ARRAY[1..7] OF WORD := [16#0000, 16#3333, 16#5555, 16#7777, 16#BBBB, 16#FFFF, 16#1122]; END_VAR TEST('Test_WORD_Array_DifferInSize'); AssertArrayEquals_WORD(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 2: .. code-block:: codesys VAR a : ARRAY[1..7] OF WORD := [16#2323, 16#876A, 16#4CD4, 16#F3DC, 16#BBBB, 16#FFFF, 16#1133]; b : ARRAY[1..7] OF WORD := [16#2323, 16#876A, 16#4CD4, 16#F3DC, 16#BBBB, 16#FFFF, 16#1122]; END_VAR TEST('Test_WORD_Array_DifferInContent'); AssertArrayEquals_WORD(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); 2226873030AssertArrayEquals_WORD WORD array with expected values WORD array with actual valuesExpectedDWordStringActualDWordString$16eada18-ce2b-459d-a8d9-277e84766935 | Asserts that two STRINGs are equal. If they are not, an assertion error is created. Parameters: | Expected – STRING expected value | Actual – STRING actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : STRING := 'Hello there'; b : STRING := 'Hello there'; END_VAR TEST('Test_STRING_Equals'); AssertEquals_STRING(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : STRING := 'This is a string'; b : STRING := 'This is another string'; END_VAR TEST('Test_STRING_Differ'); AssertEquals_STRING(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED();  696659643AssertEquals_STRING STRING expected value STRING actual value$cad7fed3-5db3-4371-9240-856c3c740489 | Asserts that two ULINTs are equal. If they are not, an assertion error is created. Parameters: | Expected – ULINT expected value | Actual – ULINT actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ULINT := 45683838383; b : ULINT := 45683838383; END_VAR TEST('Test_ULINT_Equals'); AssertEquals_ULINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : ULINT := 10000; b : ULINT := 53685437234; END_VAR TEST('Test_ULINT_Differ'); AssertEquals_ULINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 1081954271AssertEquals_ULINT ULINT expected value ULINT actual value$6f1e7566-33c3-4f9c-b92d-7828feb26211 | Asserts that two USINT arrays are equal. If they are not, an assertion error is created. Parameters: | Expecteds – USINT array with expected values | Actuals – USINT array with actual values | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[0..100] OF USINT := [42, 100(33)]; b : ARRAY[0..100] OF USINT := [42, 100(33)]; END_VAR TEST('Test_USINT_Array_Equals'); AssertArrayEquals_USINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys VAR a : ARRAY[0..100] OF USINT := [101(42)]; b : ARRAY[0..70] OF USINT := [71(42)]; END_VAR TEST('Test_USINT_Array_DifferInSize'); AssertArrayEquals_USINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 2: .. code-block:: codesys VAR a : ARRAY[0..10] OF USINT := [0,1,2,3,6(4),5]; b : ARRAY[0..10] OF USINT := [0,1,2,3,6(5),6]; END_VAR TEST('Test_USINT_Array_DifferInContent'); AssertArrayEquals_USINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); 887618224AssertArrayEquals_USINT! USINT array with expected values USINT array with actual values$b3215098-2f26-48bf-a7e4-ee1a0803a968 3215331727GetNumberOfSuccessfulTests$635213dc-96ca-4be6-9c0d-c0454c29d34d | Asserts that two BYTE arrays are equal. If they are not, an assertion error is created. Parameters: | Expecteds – BYTE array with expected values | Actuals – BYTE array with actual values | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[1..3] OF BYTE := [16#FD, 16#34, 16#9E]; b : ARRAY[1..3] OF BYTE := [16#FD, 16#34, 16#9E]; END_VAR TEST('Test_BYTE_Array_Equals'); AssertArrayEquals_BYTE(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys VAR a : ARRAY[1..2] OF BYTE := [16#AB, 16#CD]; b : ARRAY[1..5] OF BYTE := [16#AB, 16#CD, 16#EF, 16#01, 16#23]; END_VAR TEST('Test_BYTE_Array_DiffersInSize'); AssertArrayEquals_BYTE(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 2: .. code-block:: codesys VAR a : ARRAY[0..3] OF BYTE := [16#AB, 16#AA, 16#BB, 16#89]; b : ARRAY[0..3] OF BYTE := [16#AB, 16#CD, 16#BB, 16#89]; END_VAR TEST('Test_BYTE_Array_DiffersInContent'); AssertArrayEquals_BYTE(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); 843385749AssertArrayEquals_BYTE BYTE array with expected values BYTE array with actual valuesExpectedByteStringActualByteString$375a5287-a3e9-4833-ac17-bab8f3f0fdc9 2859496217 SetTestFailed$3adab5a4-e3e4-4dd7-8096-bf6ad3b874d9 | Asserts that two WORDs are equal. If they are not, an assertion error is created. Parameters: | Expected – WORD expected value | Actual – WORD actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : WORD := 16#ABCD; b : WORD := 16#ABCD; END_VAR TEST('Test_WORD_Equals'); AssertEquals_WORD(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : WORD := 16#EF01; b : WORD := 16#2345; END_VAR TEST('Test_WORD_Differ'); AssertEquals_WORD(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 1389270635AssertEquals_WORD WORD expected value WORD actual value$85132cdb-0553-4070-be9a-976fcddd873d | Asserts that two ULINT arrays are equal. If they are not, an assertion error is created. Parameters: | Expecteds – ULINT array with expected values | Actuals – ULINT array with actual values | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[0..3] OF ULINT := [0, 18_446_744_073_709_551_615, 9_400_000_000_000, 3_213_000_444_000]; b : ARRAY[0..3] OF ULINT := [0, 18_446_744_073_709_551_615, 9_400_000_000_000, 3_213_000_444_000]; END_VAR TEST('Test_ULINT_Array_Equals'); AssertArrayEquals_ULINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys VAR a : ARRAY[0..1] OF ULINT := [0, 9_400_000_000_000]; b : ARRAY[0..0] OF ULINT := [0]; END_VAR TEST('Test_ULINT_Array_DifferInSize'); AssertArrayEquals_ULINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); Failing example 2: .. code-block:: codesys VAR a : ARRAY[0..1] OF ULINT := [3_213_000_444_000, 9_400_000_000_000]; b : ARRAY[0..1] OF ULINT := [3_213_000_444_000, 18_446_744_073_709_551_615]; END_VAR TEST('Test_ULINT_Array_DifferInContent'); AssertArrayEquals_ULINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); 3439473642AssertArrayEquals_ULINT! ULINT array with expected values ULINT array with actual values$916529a0-57b3-4947-a5b8-e7b9ff17f35f 4055043037IsTestFinished$1ef139e2-1210-4139-ba5c-329f8493b09c | Asserts that two LINTs are equal. If they are not, an assertion error is created. Parameters: | Expected – LINT expected value | Actual – LINT actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : LINT := -123456789; b : LINT := -123456789; END_VAR TEST('Test_LINT_Equals'); AssertEquals_LINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : LINT := -451416345; b : LINT := 589532453; END_VAR TEST('Test_LINT_Differ'); AssertEquals_LINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED();9335976AssertEquals_LINT LINT expected value LINT actual value$9dc34017-cbc7-41a9-83a2-941f39cc7271 | Asserts that two objects (of any type) are equal. If they are not, an assertion error is created. | For REAL and LREAL it’s recommended to use the AssertEquals_REAL or AssertEquals_LREAL respectively | as these give the possibility to specify a delta between the expected and actual value. Parameters: | Expected – Expected value | Actual – Actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : INT := 5; b : INT := 5; END_VAR TEST('Test_ANY_Equals'); AssertEquals(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : INT := 5; b : UINT := 5; END_VAR TEST('Test_ANY_Differ_DataType'); AssertEquals(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 2024349150 AssertEquals Expected value$ The value to check against expectedCountExpectedDataStringActualDataString AnyComparatorFB_ANYCOMPARATORFB_AnyComparator boolExpected boolActual byteExpected byteActual dateExpected dateActualdateAndTimeExpecteddateAndTimeActual dintExpected dintActual dwordExpected dwordActual intExpected intActual lintExpected lintActual lrealExpected lrealActual ltimeExpected ltimeActual lwordExpected lwordActual realExpected realActual sintExpected sintActualstringExpected stringActual timeExpected timeActualtimeOfDayExpectedtimeOfDayActual udintExpected udintActual uintExpected uintActual ulintExpected ulintActual usintExpected usintActual wordExpected wordActual$092092ee-35b6-45cc-a1ac-e428e5d747ba | Asserts that two TIME_OF_DAYs are equal. If they are not, an assertion error is created. Parameters: | Expected – TIME_OF_DAY expected value | Actual – TIME_OF_DAY actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : TIME_OF_DAY := TIME_OF_DAY#06:21:11.492; b : TIME_OF_DAY := TIME_OF_DAY#06:21:11.492; END_VAR TEST('Test_TIME_OF_DAY_Equals'); AssertEquals_TIME_OF_DAY(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : TIME_OF_DAY := TIME_OF_DAY#15:36:30.123; b : TIME_OF_DAY := TIME_OF_DAY#06:21:11.492; END_VAR TEST('Test_TIME_OF_DAY_Differ'); AssertEquals_TIME_OF_DAY(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 262122215AssertEquals_TIME_OF_DAY TIME_OF_DAY expected value TIME_OF_DAY actual value$d892dd01-3d32-4eb1-9f95-980dff16616c | Asserts that two USINTs are equal. If they are not, an assertion error is created. Parameters: | Expected – USINT expected value | Actual – USINT actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : USINT := 5; b : USINT := 5; END_VAR TEST('Test_USINT_Equals'); AssertEquals_USINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : USINT := 3; b : USINT := 7; END_VAR TEST('Test_USINT_Differ'); AssertEquals_USINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 2368473972AssertEquals_USINT USINT expected value USINT actual value$7f12117a-f0ab-475b-ba47-c8a5c801a9ac | Asserts that two DINT arrays are equal. If they are not, an assertion error is created. Parameters: | Expecteds – DINT array with expected values | Actuals – DINT array with actual values | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[2..7] OF DINT := [64, 98, 2147483647, -2147483648, 0, -63987538]; b : ARRAY[2..7] OF DINT := [64, 98, 2147483647, -2147483648, 0, -63987538]; END_VAR TEST('Test_DINT_Array_Equals'); AssertArrayEquals_DINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys VAR a : ARRAY[3..4] OF DINT := [-11, 2147483647]; b : ARRAY[4..6] OF DINT := [-11, 2147483647, 0]; END_VAR TEST('Test_DINT_Array_DifferInSize'); AssertArrayEquals_DINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 2: .. code-block:: codesys VAR a : ARRAY[3..5] OF DINT := [-4746, -2147483645, 0]; b : ARRAY[3..5] OF DINT := [-4746, -2147483641, 0]; END_VAR TEST('Test_DINT_Array_DifferInContent'); AssertArrayEquals_DINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); 448306293AssertArrayEquals_DINT DINT array with expected values DINT array with actual values$4f0d9b20-0c78-467d-a52a-6badbd5d37cc | Asserts that two SINTs are equal. If they are not, an assertion error is created. Parameters: | Expected – SINT expected value | Actual – SINT actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : SINT := -128; b : SINT := -128; END_VAR TEST('Test_SINT_Equals'); AssertEquals_SINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : SINT := 127; b : SINT := -30; END_VAR TEST('Test_SINT_Differ'); AssertEquals_SINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 2975568326AssertEquals_SINT SINT expected value SINT actual value$10052dfe-cfcb-4a5a-aa97-151e272ce217 3094313462GetNumberOfTests$6f67c6d5-c29e-4577-8651-51bd6db3ab63 | Asserts that two LREALs are equal to within a positive delta. If they are not, an assertion error is created. Parameters: | Expected – LREAL expected value | Actual – LREAL actual value | Delta – The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : LREAL := 1234567.89; b : LREAL := 1234567.76; END_VAR TEST('Test_LREAL_Equals'); AssertEquals_LREAL(Expected := a, Actual := b, Delta := 0.2, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : LREAL := 1234567.89; b : LREAL := 1234567.76; END_VAR TEST('Test_LREAL_Differ'); AssertEquals_LREAL(Expected := a, Actual := b, Delta := 0.1, Message := 'Values differ'); TEST_FINISHED();  3690545254AssertEquals_LREAL LREAL expected value LREAL actual valuev The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal$205d107c-0a2d-44f7-b68a-eb06720b6a6b 4117816331 Parameters: | Expecteds – REAL 2d array with expected values | Actuals – REAL 2d array with actual values | Delta - REAL The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the Expected value in that array cell | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys TEST_FINISHED(); Failing example 1: .. code-block:: codesys TEST_FINISHED(); Failing example 2: .. code-block:: codesys TEST_FINISHED(); 4044968825AssertArray2dEquals_REAL# REAL 2d array with expected values2! REAL 2d array with actual values& Index when looping through DimensionsDimensionIndex2 Lower bounds of Expecteds array in each dimensionLowerBoundExpecteds2 Upper bounds of Expecteds array in each dimensionUpperBoundExpecteds0 Lower bounds of Actuals array in each dimensionLowerBoundActuals0 Upper bounds of Actuals array in each dimensionUpperBoundActuals* Size of Expecteds array in each dimension( Size of Actuals array in each dimension? Current Array index offsets from Lower Bound in each dimensionOffsetD Array of current Expected array indexes when looping through arraysExpectedArrayIndexB Array of current Actual array indexes when looping through arraysActualArrayIndex Single expected value Single actual value$dc3b5666-7b5a-49ae-9837-cbb9bedd911a 598611264AddTestNameToInstancePathCompleteTestInstancePath$abecfe2f-b0e2-4118-a1c6-bb248556b776 Asserts that a condition is true. If it is not, an assertion error is created. Parameters: | Condition – Condition to be checked | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : WORD := 16#ABCD; b : WORD := 16#0123; END_VAR TEST('AssertThatWORDsAreNotEqual'); AssertTrue(Condition := (a <> b), Message := 'WORDs are equal'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : WORD := 16#ABCD; b : WORD := 16#0123; END_VAR TEST('AssertThatWORDsAreEqual'); AssertTrue(Condition := (a = b), Message := 'WORDs are not equal'); TEST_FINISHED();  1043909239 AssertTrue Condition to be checked Condition$c415013c-c271-42ba-83ad-6c2c653d8f2e Parameters: | Expecteds – LREAL 3d array with expected values | Actuals – LREAL 3d array with actual values | Delta - LREAL The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the Expected value in that array cell | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys TEST_FINISHED(); Failing example 1: .. code-block:: codesys TEST_FINISHED(); Failing example 2: .. code-block:: codesys TEST_FINISHED(); 3893451479AssertArray3dEquals_LREAL$ LREAL 3d array with expected values3" LREAL 3d array with actual values$251da4d5-4df8-4eed-b154-a479323eb0d5 | Asserts that two INTs are equal. If they are not, an assertion error is created. Parameters: | Expected – INT expected value | Actual – INT actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : INT := -12345; b : INT := -12345; END_VAR TEST('Test_INT_Equals'); AssertEquals_INT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : INT := -32000; b : INT := 15423; END_VAR TEST('Test_INT_Differ'); AssertEquals_INT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 292426684AssertEquals_INT INT expected value INT actual value$7c61106e-9bcd-4577-a949-ab96d8862e41 | Asserts that two DATEs are equal. If they are not, an assertion error is created. Parameters: | Expected – DATE expected value | Actual – DATE actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : DATE := DATE#1996-05-06; b : DATE := DATE#1996-05-06; END_VAR TEST('Test_DATE_Equals'); AssertEquals_DATE(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : DATE := DATE#1996-05-06; b : DATE := DATE#2019-01-20; END_VAR TEST('Test_DATE_Differ'); AssertEquals_DATE(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED();  246969074AssertEquals_DATE DATE expected value DATE actual value$1645ab79-f969-41aa-a170-f589a5757e7f | Asserts that two DWORDs are equal. If they are not, an assertion error is created. Parameters: | Expected – DWORD expected value | Actual – DWORD actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : DWORD := 16#7890ABCD; b : DWORD := 16#7890ABCD; END_VAR TEST('Test_DWORD_Equals'); AssertEquals_DWORD(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : DWORD := 16#12345678; b : DWORD := 16#90ABCDEF; END_VAR TEST('Test_DWORD_Differ'); AssertEquals_DWORD(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 1252105877AssertEquals_DWORD DWORD expected value DWORD actual value$3ce6ba77-0ab2-46fc-a7c9-978b376b93be | Asserts that two REALs are equal to within a positive delta. If they are not, an assertion error is created. Parameters: | Expected – REAL expected value | Actual – REAL actual value | Delta – The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : REAL := 1234.5; b : REAL := 1234.4; END_VAR TEST('Test_REAL_Equals'); AssertEquals_REAL(Expected := a, Actual := b, Delta := 0.1, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : REAL := 1234.5; b : REAL := 1234.4; END_VAR TEST('Test_REAL_Differ'); AssertEquals_REAL(Expected := a, Actual := b, Delta := 0.05, Message := 'Values differ'); TEST_FINISHED(); 4233966449AssertEquals_REAL REAL expected value REAL actual value$fba4feaf-27d0-4f8b-9014-3895f7bb9cc7 | Asserts that two UDINTs are equal. If they are not, an assertion error is created. Parameters: | Expected – UDINT expected value | Actual – UDINT actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : UDINT := 21845123; b : UDINT := 21845123; END_VAR TEST('Test_UDINT_Equals'); AssertEquals_UDINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : UDINT := 34124214; b : UDINT := 52343244; END_VAR TEST('Test_UDINT_Differ'); AssertEquals_UDINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 3714610654AssertEquals_UDINT UDINT expected value UDINT actual value$9c21e8db-62d7-4e5c-8e00-cd508f4f5abc | Asserts that two LTIMEs are equal. If they are not, an assertion error is created. Parameters: | Expected – LTIME expected value | Actual – LTIME actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : LTIME := LTIME#213503D23H34M33S709MS551US615NS; b : LTIME := LTIME#213503D23H34M33S709MS551US615NS; END_VAR TEST('Test_LTIME_Equals'); AssertEquals_LTIME(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : LTIME := LTIME#213503D23H34M33S709MS551US615NS; b : LTIME := LTIME#1000D15H23M12S34MS2US44NS; END_VAR TEST('Test_LTIME_Differ'); AssertEquals_LTIME(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 3081469954AssertEquals_LTIME LTIME expected value LTIME actual value$05ea6378-c553-40a9-9e6b-8f3736f63098 | Asserts that two SINT arrays are equal. If they are not, an assertion error is created. Parameters: | Expecteds – SINT array with expected values | Actuals – SINT array with actual values | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[0..3] OF SINT := [-128, 127, -34, 62]; b : ARRAY[0..3] OF SINT := [-128, 127, -34, 62]; END_VAR TEST('Test_SINT_Array_Equals'); AssertArrayEquals_SINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys VAR a : ARRAY[0..0] OF SINT := [-128]; b : ARRAY[0..1] OF SINT := [-128, 127]; END_VAR TEST('Test_SINT_Array_DifferInSize'); AssertArrayEquals_SINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 2: .. code-block:: codesys VAR a : ARRAY[0..0] OF SINT := [-128]; b : ARRAY[0..0] OF SINT := [127]; END_VAR TEST('Test_SINT_Array_DifferInContent'); AssertArrayEquals_SINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); 167706794AssertArrayEquals_SINT SINT array with expected values SINT array with actual values$133c577e-0641-4157-b42b-46dbf29f788e | Asserts that two TIMEs are equal. If they are not, an assertion error is created. Parameters: | Expected – TIME expected value | Actual – TIME actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : TIME := T#11H34M13S244MS; b : TIME := T#11H34M13S244MS; END_VAR TEST('Test_TIME_Equals'); AssertEquals_TIME(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : TIME := T#12H34M15S10MS; b : TIME := T#11H34M13S244MS; END_VAR TEST('Test_TIME_Differ'); AssertEquals_TIME(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 3910873930AssertEquals_TIME TIME expected value TIME actual value$717a0cdd-16a7-4f45-90f3-f5700dba9369 | Asserts that two DATE_AND_TIMEs are equal. If they are not, an assertion error is created. Parameters: | Expected – DATE_AND_TIME expected value | Actual – DATE_AND_TIME actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : DATE_AND_TIME := DATE_AND_TIME#2019-01-20-13:54:30; b : DATE_AND_TIME := DATE_AND_TIME#2019-01-20-13:54:30; END_VAR TEST('Test_DATE_AND_TIME_Equals'); AssertEquals_DATE_AND_TIME(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : DATE_AND_TIME := DATE_AND_TIME#1996-05-06-15:36:30; b : DATE_AND_TIME := DATE_AND_TIME#1972-03-29-00:00:00; END_VAR TEST('Test_DATE_AND_TIME_Differ'); AssertEquals_DATE_AND_TIME(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 1401989022AssertEquals_DATE_AND_TIME DATE_AND_TIME expected value DATE_AND_TIME actual value$42befc01-2199-49e2-b7ef-cf909b8890f9 Parameters: | Expecteds – REAL 3d array with expected values | Actuals – REAL 3d array with actual values | Delta - REAL The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the Expected value in that array cell | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys TEST_FINISHED(); Failing example 1: .. code-block:: codesys TEST_FINISHED(); Failing example 2: .. code-block:: codesys TEST_FINISHED(); 1606741492AssertArray3dEquals_REAL# REAL 3d array with expected values! REAL 3d array with actual values$0dc8fccf-4b9a-4206-8d9f-212f576edb04 4262076380FB_initH if TRUE, the retain variables are initialized (warm start / cold start)O if TRUE, the instance afterwards gets moved into the copy code (online change)$9273f5af-0583-448b-bab6-3359f03f9b91 | Asserts that two DINTs are equal. If they are not, an assertion error is created. Parameters: | Expected – BYTE expected value | Actual – BYTE actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : DINT := -80000; b : DINT := -80000; END_VAR TEST('Test_DINT_Equals'); AssertEquals_DINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : DINT := -55555; b : DINT := 70000; END_VAR TEST('Test_DINT_Differ'); AssertEquals_DINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED();  1997820164AssertEquals_DINT DINT expected value DINT actual value$b7177b75-64df-4021-85c6-c366f61f5f89 | Asserts that two UDINT arrays are equal. If they are not, an assertion error is created. Parameters: | Expecteds – UDINT array with expected values | Actuals – UDINT array with actual values | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[1..3] OF UDINT := [0, 4294967295, 5000]; b : ARRAY[1..3] OF UDINT := [0, 4294967295, 5000]; END_VAR TEST('Test_UDINT_Array_Equals'); AssertArrayEquals_UDINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys a : ARRAY[-5..-4] OF UDINT := [4294967295, 0]; b : ARRAY[0..2] OF UDINT := [4294967295, 0, 5000]; END_VAR TEST('Test_UDINT_Array_DifferInSize'); AssertArrayEquals_UDINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 2: .. code-block:: codesys VAR a : ARRAY[-5..-4] OF UDINT := [4294967295, 5]; b : ARRAY[0..1] OF UDINT := [4294967295, 4]; END_VAR TEST('Test_UDINT_Array_DifferInContent'); AssertArrayEquals_UDINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); 523934130AssertArrayEquals_UDINT! UDINT array with expected values UDINT array with actual values$5f690331-57e2-4ea1-b1d7-ab65b52dc848 | Asserts that two INT arrays are equal. If they are not, an assertion error is created. Parameters: | Expecteds – INT array with expected values | Actuals – INT array with actual values | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[-5..1] OF INT := [64, 98, -32768, 32767, 5478, -378, 42]; b : ARRAY[1..7] OF INT := [64, 98, -32768, 32767, 5478, -378, 42]; END_VAR TEST('Test_INT_Array_Equals'); AssertArrayEquals_INT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys VAR a : ARRAY[-4..3] OF INT := [64, 98, -32768, 32767, 5478, -378, 42, 6234]; b : ARRAY[1..5] OF INT := [64, 98, -32768, 32767, 5478]; END_VAR TEST('Test_INT_Array_DifferInSize'); AssertArrayEquals_INT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 2: .. code-block:: codesys VAR a : ARRAY[-8..-6] OF INT := [42, -23, -32768]; b : ARRAY[1..3] OF INT := [42, 24, -32768]; END_VAR TEST('Test_INT_Array_DifferInContent'); AssertArrayEquals_INT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); 528458294AssertArrayEquals_INT INT array with expected values INT array with actual values$d54cf111-a7e7-4f51-bdf4-9853e055f62d | Asserts that a condition is false. If it is not, an assertion error is created. Parameters: | Condition – Condition to be checked | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : INT := -33; b : INT := -44; END_VAR TEST('AssertThatINTsAreNotEqual'); AssertFalse(Condition := (a = b), Message := 'INTs are equal'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : INT := -33; b : INT := -44; END_VAR TEST('AssertThatINTsAreEqual'); AssertFalse(Condition := (a <> b), Message := 'INTs are equal'); TEST_FINISHED();  1993015657 AssertFalse$022665a8-9003-4aaa-8ef4-bd39fe196883 614213211GetNumberOfFailedTestsFailedTestsCount$12e4522b-e67f-439a-af1d-8713231888aa | Asserts that two LINT arrays are equal. If they are not, an assertion error is created. Parameters: | Expecteds – LINT array with expected values | Actuals – LINT array with actual values | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[-1..0] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808]; b : ARRAY[4..5] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808]; END_VAR TEST('Test_LINT_Array_Equals'); AssertArrayEquals_LINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys VAR a : ARRAY[-1..1] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808, 55]; b : ARRAY[4..5] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808]; END_VAR TEST('Test_LINT_Array_DifferInSize'); AssertArrayEquals_LINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 2: .. code-block:: codesys VAR a : ARRAY[-1..1] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_853_775_808, 55]; b : ARRAY[4..6] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808, 55]; END_VAR TEST('Test_LINT_Array_DifferInContent'); AssertArrayEquals_LINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); 2145025305AssertArrayEquals_LINT LINT array with expected values LINT array with actual values$d7e53e6b-caed-4867-9ef5-3ccb7ae16bf8 | Asserts that two LWORD arrays are equal. If they are not, an assertion error is created. Parameters: | Expecteds – LWORD array with expected values | Actuals – LWORD array with actual values | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[1..2] OF LWORD := [16#01234567890ABCDE, 16#EDCBA09876543210]; b : ARRAY[1..2] OF LWORD := [16#01234567890ABCDE, 16#EDCBA09876543210]; END_VAR TEST('Test_LWORD_Array_Equals'); AssertArrayEquals_LWORD(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys VAR a : ARRAY[1..1] OF LWORD := [16#EDCBA09876543210]; b : ARRAY[1..2] OF LWORD := [16#01234567890ABCDE, 16#EDCBA09876543210]; END_VAR TEST('Test_LWORD_Array_DifferInSize'); AssertArrayEquals_LWORD(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 2: .. code-block:: codesys VAR a : ARRAY[1..1] OF LWORD := [16#EDCBA09876543210]; b : ARRAY[1..1] OF LWORD := [16#01234567890ABCDE]; END_VAR TEST('Test_LWORD_Array_DifferInContent'); AssertArrayEquals_LWORD(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED();  2393999758AssertArrayEquals_LWORD! LWORD array with expected values LWORD array with actual values$7bc0c786-fccc-46e3-b38f-2013c44bfcb0S This method returns the test at the n'th position, ranging from 1.. NumberOfTests  316618143GetTestByPositionPosition$3795ba6c-bb70-4d36-8d46-fa6431157992 | Asserts that two LWORDs are equal. If they are not, an assertion error is created. Parameters: | Expected – LWORD expected value | Actual – LWORD actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : LWORD := 16#0123456789ABCDEF; b : LWORD := 16#0123456789ABCDEF; END_VAR TEST('Test_LWORD_Equals'); AssertEquals_LWORD(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : LWORD := 16#0123656789ABCBEC; b : LWORD := 16#0123256789ABCAEE; END_VAR TEST('Test_LWORD_Differ'); AssertEquals_LWORD(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 2981194089AssertEquals_LWORD LWORD expected value LWORD actual value$08b090fb-911b-49fa-a51a-7f5edfd3dd2c Parameters: | Expecteds – LREAL 2d array with expected values | Actuals – LREAL 2d array with actual values | Delta - LREAL The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the Expected value in that array cell | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys TEST_FINISHED(); Failing example 1: .. code-block:: codesys TEST_FINISHED(); Failing example 2: .. code-block:: codesys TEST_FINISHED(); 3118050793AssertArray2dEquals_LREAL$ LREAL 2d array with expected values" LREAL 2d array with actual values$964c2fec-9de7-47ae-bee4-23c559ae4a3f 355422951 Asserts that two BOOL arrays are equal. If they are not, an assertion error is created. Parameters: * Expecteds – BOOL array with expected values * Actuals – BOOL array with actual values * Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[1..5] OF BOOL := [TRUE, FALSE, TRUE, FALSE, TRUE]; b : ARRAY[1..5] OF BOOL := [TRUE, FALSE, TRUE, FALSE, TRUE]; END_VAR TEST('Test_BOOL_Array_Equals'); AssertArrayEquals_BOOL(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys VAR a : ARRAY[1..6] OF BOOL := [TRUE, TRUE, TRUE, TRUE, TRUE, TRUE]; b : ARRAY[1..4] OF BOOL := [TRUE, TRUE, TRUE, TRUE]; END_VAR TEST('Test_BYTE_Array_DiffersInSize'); AssertArrayEquals_BOOL(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 2: .. code-block:: codesys VAR a : ARRAY[0..5] OF BOOL := [TRUE, TRUE, FALSE, TRUE, FALSE, TRUE]; b : ARRAY[0..5] OF BOOL := [TRUE, TRUE, TRUE, TRUE, FALSE, FALSE]; END_VAR TEST('Test_BYTE_Array_DiffersInContent'); AssertArrayEquals_BOOL(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED();  2327915240AssertArrayEquals_BOOL BOOL array with expected values BOOL array with actual values$3d4059ab-c241-4859-9a9f-090cab6db606 1486870384AreAllTestsFinished$2b211901-49a8-4e51-90e1-4b1e298f9e0c 1475975773AddTest ErrorMessageFunctionCallResultTestWithThisNameAlreadyExistsLowerCasedTestNameTrimmedTestName$d383011f-6bea-4b05-9018-ea4782ad2837 2609692221 | Asserts that two DWORD arrays are equal. If they are not, an assertion error is created. Parameters: | Expecteds – DWORD array with expected values | Actuals – DWORD array with actual values | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[2..3] OF DWORD := [16#6789ABCD, 16#EF012345]; b : ARRAY[1..2] OF DWORD := [16#6789ABCD, 16#EF012345]; END_VAR TEST('Test_DWORD_Array_Equals'); AssertArrayEquals_DWORD(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys VAR a : ARRAY[-2..1] OF DWORD := [16#6789ABCD, 16#EF012345, 16#67890ABC, 16#DDDDDDDD]; b : ARRAY[-3..-2] OF DWORD := [16#6789ABCD, 16#EF012345]; END_VAR TEST('Test_DWORD_Array_DifferInSize'); AssertArrayEquals_DWORD(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 2: .. code-block:: codesys VAR a : ARRAY[-2..1] OF DWORD := [16#6789ABCD, 16#EFAA2346, 16#ABABABAB, 16#EEEEEEEE]; b : ARRAY[-2..1] OF DWORD := [16#6789ABCD, 16#EF012345, 16#ABABABAB, 16#EEEEEEEE]; END_VAR TEST('Test_DWORD_Array_DifferInContent'); AssertArrayEquals_DWORD(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); 2193117219AssertArrayEquals_DWORD! DWORD array with expected values DWORD array with actual values$eec9d02d-95a1-4885-9906-ad4b2d0f4cab= Searches for the instance path of the calling function block 1936542576FindTestSuiteInstancePath$e69a4510-81a2-4d65-94e4-52c06ac49944 | Asserts that two BYTEs are equal. If they are not, an assertion error is created. Parameters: | Expected – BYTE expected value | Actual – BYTE actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : BYTE := 16#CD; b : BYTE := 16#CD; END_VAR TEST('Test_BYTE_Equals'); AssertEquals_BYTE(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : BYTE := 16#AB; b : BYTE := 16#CD; END_VAR TEST('Test_BYTE_Differ'); AssertEquals_BYTE(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); 268346097AssertEquals_BYTE BYTE expected value BYTE actual value$c039f3f1-9c41-4f5e-93a3-393ce160979a | Asserts that two UINTs are equal. If they are not, an assertion error is created. Parameters: | Expected – UINT expected value | Actual – UINT actual value | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : UINT := 65535; b : UINT := 65535; END_VAR TEST('Test_UINT_Equals'); AssertEquals_UINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED(); Failing example: .. code-block:: codesys VAR a : UINT := 64322; b : UINT := 32312; END_VAR TEST('Test_UINT_Differ'); AssertEquals_UINT(Expected := a, Actual := b, Message := 'Values differ'); TEST_FINISHED();  455476556AssertEquals_UINT UINT expected value UINT actual value$86b960b9-ebc0-46af-91ed-94a423f501dc 2084092420GetInstancePath$178fa338-5ed3-417b-8f4d-e9f120ace4b9 Marks the test as finished in this testsuite. Returns TRUE if test was found, and FALSE if a test with this name was not found in this testsuite  3967847859SetTestFinished$1ec94335-80d7-46d3-a0f0-345f8eda2ea4 | Asserts that two UINT arrays are equal. If they are not, an assertion error is created. Parameters: | Expecteds – UINT array with expected values | Actuals – UINT array with actual values | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : ARRAY[0..4] OF UINT := [0, 65535, 2000, 34123, 59]; b : ARRAY[0..4] OF UINT := [0, 65535, 2000, 34123, 59]; END_VAR TEST('Test_UINT_Array_Equals'); AssertArrayEquals_UINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 1: .. code-block:: codesys VAR a : ARRAY[0..2] OF UINT := [0, 4, 8]; b : ARRAY[0..3] OF UINT := [0, 4, 8, 12]; END_VAR TEST('Test_UINT_Array_DifferInSize'); AssertArrayEquals_UINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); Failing example 2: .. code-block:: codesys VAR a : ARRAY[0..3] OF UINT := [0, 4, 8, 99]; b : ARRAY[0..3] OF UINT := [0, 4, 8, 12]; END_VAR TEST('Test_UINT_Array_DifferInContent'); AssertArrayEquals_UINT(Expecteds := a, Actuals := b, Message := 'Arrays differ'); TEST_FINISHED(); 1542196384AssertArrayEquals_UINT UINT array with expected values UINT array with actual values$358571ac-0a0d-4e71-8097-c7943f718fce 405680698 | Asserts that two LREALs are equal TO within a positive delta. IF they are NOT, an assertion error is created. Parameters: | Expected – LREAL expected value | Actual – LREAL actual value | Delta – The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal | Message – The identifying message for the assertion error Positive example: .. code-block:: codesys VAR a : LREAL := 1234567.89; b : LREAL := 1234567.76; END_VAR TEST('Test_LREAL_Equals'); AssertEquals_LREAL(Expected := a, Actual := b, Delta := 0.2, Message := 'Values differ'); TEST_FINISHED(); Failing example: VAR a : LREAL := 1234567.89; b : LREAL := 1234567.76; END_VAR TEST('Test_LREAL_Differ'); AssertEquals_LREAL(Expected := a, Actual := b, Delta := 0.1, Message := 'Values differ'); TEST_FINISHED();  3785330774AssertArrayEquals_LREAL! LREAL array with expected values LREAL array with actual values$fbc23ff0-cdf6-43f2-82cd-e6f3a7903664 Jitter distribution 3779252147 Maximal range wRangeMax Jitters events negativewCountJitterNeg Jitter event positivewCountJitterPos 1489059357$f914311f-5c52-4cd5-b2c8-3263a1508247 This function block is responsible for making sure that the asserted test instance path and test message are not loo long. The total printed message can not be more than 252 characters long.  3001289633 Test instance path MsgFmtString Test message StringArgMsgFmtStringProcessedStringArgProcessedMsgFmtStringTemp...TestName too longTestNameTooLong...TestMsg too longTestMsgTooLongX This is actually 253, but if StrArg-argument is used (which it is in TcUnit) it is 252.'MSG_FMT_STRING_MAX_AMOUNT_OF_CHARACTERSILocal, ReplacedConstant, Constant, IsCompiled, RelativeInstance, Typified 228984903$d7648cea-fb9f-427f-b157-93784e5b7cab 3505840675 197406720 2734844869 3297551346 2662650258diLowerdiUpper 3465986364$c2d24aa9-2fc9-4f89-80ac-14d9f558122a 319472823 This FB compares two instances of any object type and returns whether they are the same type, size and value or not. This is necessary for two reasons: 1. So that we can know exactly what differs between the two input parameters 2. It's not possible to do a comparison (= or <>) between two instances of ANY.  797308994AnyValueOne.pValueAnyValueOne__pValueAnyValueOne.TypeClassAnyValueOne__typeClassAnyValueOne.diSizeAnyValueOne__sizeOf AnyValueOneAnyValueTwo.pValueAnyValueTwo__pValueAnyValueTwo.TypeClassAnyValueTwo__typeClassAnyValueTwo.diSizeAnyValueTwo__sizeOf AnyValueTwo< The data type of the two ANY input parameters are not equal< The data size of the two ANY input parameters are not equal? The data content of the two ANY input parameters are not equal 3159686021$e4f95c0d-0ece-47a8-977f-f9d45a4f920e 390107427211252403 173265148 958090425 2765784940_Implicit_Task_InfoKindOf_IMPLICIT_KINDOFTASKbProfilingTaskdwLastCycleTimediJitter diJitterMin diJitterMax wTaskStatus_IMPLICIT_JITTER_DISTRIBUTION_Implicit_Jitter_DistributionbWithinSPSTimeSlicing bShouldBlockbActivenCoreConfigured nCoreCurrent pTaskGroup_IMPLICIT_TASKGROUP_INFO_Implicit_TaskGroup_InfopszParentTaskName 3064147540$c4b8e551-3215-5dbb-9355-8dcf3e162bd6 4288098520 1363320977 235137531$87c49645-6ce5-5bcf-bae6-132a41e0c4aa 2880228939 2164913627 pszGroupNamedwTaskGroupOptions diMaxCoresparrdwCoreBits 638065670$3f237607-46ae-5106-b06d-831888578227 187872831 2860490203$e6fb6cf6-9591-477a-a303-fdedaad04613 __OffsetIBASEADDREF FB_REINITQUERYINTERFACERELEASEcompatibility_id$76B148E2-3A84-40c4-8BF2-2FBE56618A2F 2439911566$de784a2a-6a84-4c6b-a64b-74bfc4713c79 1835024534FB_Exit$d4f5d20f-e146-4306-9ffb-0b952fe8bdb2 805362587QueryInterface InterfaceID iid$eac54f77-5545-412a-8930-013043c93f65 3642965170Release$13829801-a5ee-4705-bf92-a3430e33fe75 951162479AddRef$63704945-b29a-4e6d-b620-0cc4c326d5f8 189822725 FB_Reinit$e129df86-3969-4c96-8e86-63bc2fcd6c83 331523042VERSIONuiMajoruiMinor uiServicePackuiPatch 3231598516$5181460b-9464-4c0f-82f2-1f9633a4c34e 1518820524TWOPLUSTWOEQUALSFOURZEROPLUSZEROEQUALSZEROCfUnit 4004392889 FB_Sum_Test 2468246447 FB_SUM_TEST$69b661ca-5faa-43bb-8b8a-2cae13b2cfe4 3804393560TwoPlusTwoEqualsFourSumFB_SUMFB_SumResult ExpectedSum$071ba4c3-fe0d-4b0b-be72-a320c9d403a4 470409468 4018862981ZeroPlusZeroEqualsZero$ac47aa92-0e7a-4876-b0ac-7ef29219d372 635803319 1660718324 3010342448 212020793 476154767PRG_TEST fbSum_Test1Local, IsCompiled, Absolut, Initialized, Typified$5e8cc903-e536-40be-a096-d6b305fbb618 1368625671onetworesult 323964421$8328f7d8-1dbc-4e08-98b0-eb6438d2b355 855406638 228684100 2173869412 1334945094 204906898 2338394504_Implicit_Task_Config_InfoTODO eventtaskswVersion nNumOfTaskspszApplicationNameptasks 3669029852_IMPLICIT_TASK_CONFIG_INFO$00bdef65-acea-502d-a09a-9b27b86d5df1 1234088797 1833442206__sys__setup__tasks$a7f75517-fce3-59d9-a7f4-75773ea190a0  830427680LogAdd2hLoggerudiCmpID udiClassID udiErrorID udiInfoIDpszInfo$f782c8f1-3e37-44f5-9ca0-ba40c1145169cmplog, 3.5.5.0 (system) 2222278874__HelpConvertDateppstrnYearnMonthnDayDayOfMonthTable$1c137676-f66f-428c-af12-54699e1772b8 2130786092__HelpConvertTimedwHourdwMinutedwSecond dwMilliSecond$13c0f538-7207-41d3-8311-a322a7c20a0e 3586288056__HelpConvertTimeWithUnitdwDay$50f01a4a-c350-4e6e-9dfa-0c242ec58ce8 371843759 __HelpConvertUDInt$fdd0113a-d0f8-4f19-bc73-fa6acf9ecc59 1562513299 __ExtractRealL True iff f is infinity, diM = 1 for +Infinity and -1 for -Infinity, iE is 0fiEdiMxNaNuiEudiM$b4fbe026-742b-4541-9a4b-a710de7d376c 2223293048__HelpConvertLTimeWithUnitlwDaylwHourlwMinutelwSecond lwMilliSecond lwMicroSecond lwNanoSecond$9b7fa8d4-59a0-43f0-a610-be7bd5350ad9 1212736547__ExtractLRealdudiEuliM$0ffc8285-5cf0-4854-bfbf-cfca06799935 3132572671__HelpRealConvertpnBeginnDigdBegindDivbNeg nHelpBegindDiff$e6a8a736-c389-4a55-8363-2e30c26fed79 Concatenates two strings ``CONCAT(STR1,STR2)`` means: Connect ``STR1`` and ``STR2`` to a single string ``STR1STR2``. .. code-block:: codesys (* Example declaration *) VarSTRING1 : STRING ; (* Example in ST , result is 'SUSIWILLI' *) VarSTRING1 := CONCAT ('SUSI','WILLI'); :return: Concatenated string, max. 255 characters. If the result doesn't fit into these 255 bytes, it will be silently truncated. No error is produced. .. cds:ranges:: :STR1: |StringRange255| :STR2: |StringRange255| .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]  2972623772CONCAT1 String 1 to be concatenated, max. 255 charactersSTR11 String 2 to be concatenated, max. 255 charactersSTR2 4221632325LicenseFunctions dwStructSizepfGetUserLicenseValuepfConfDynLicChallengepfReqDynLicChallenge 1958349117LICENSEFUNCTIONS$54113402-1f1a-4625-9cf5-98f840f808d4$component manager, 3.5.13.0 (system) 3247230088CMRegisterLicenseFunctionslicenseFunctions$9d4b8b53-13e6-49d1-812f-48d05c3b6bde 674459537UnregisterLicenseFunctionslf$fad78c76-def3-4349-88ac-a7d7b102610049087098SysTargetGetId pulTargetId/External, Compiled, Typified, Located, Internal$2882c277-8c61-400a-b7f8-fedf8770b0b5 1255376976SysTargetGetTypepulType$8626ba32-8246-4efc-a245-c6603743ef15 2879083722RegisterLicenseFunctions$3a698490-0f8e-4b05-ba85-54b389411e5bCodeMGetContentByFirmcode2 3702754381CodeMGetContentByFirmcode duiFirmcodeduiProductcode licenseEntryRTS_CMBOXENTRY*Inout, IsCompiled, RelativeStack, Typified$22f4fc39-59c8-43ad-9dcc-9e20e4b9a58bcmpcodemeter, 3.5.5.0 (system) 669955528 musBoxMask mulBoxSerial mflFiCtrl mulFirmCodemusFirmAccessCountermusFirmItemRefmulFirmUpdateCountermulFirmPreciseTimemausFirmItemTextmulProductCode mulFeatureMapmulUnitCountermulLicenseQuantitymusProductItemRef 3504795969$b624d05d-ae57-4b33-b835-ddb290871f29 Test and set a bit in an ULONG variable in one processor step. This operation is to provide a multitasking save operation.

RESULT: Returns the runtime system error code (see CmpErrors.library). ERR_OK: If bit could be set and was set before, ERR_FAILED: If bit is still set

 3306130432SysCpuTestAndSet Pointer to the unsigned value to test and set a bit inside in one atomic processor step pulValuep Bit number inside the variable to test and set. 0=first bit, 31=last bit ulBit$1b91f178-37d6-463f-a613-9f24443e9396!syscpuhandling, 3.5.13.0 (system) 2702096027mySTRING_TO_UDINTuiBase$7c03f9aa-a908-4345-8fdc-2902079aa956 Returns the number of characters of a string .. code-block:: codesys (* Example declaration *) VarINT1 : INT ; (* Example in ST , result is '4 *) VarINT1 := LEN ('SUSI'); :return: Length of string ``STR`` .. cds:ranges:: :STR: |StringRange255| .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]  2091238964LEN String to be analyzed STRp$d60923f9-da06-44f9-ab52-de513236e3e2 Searches for the position of a partial string within a string. ``FIND(STR1, STR2)`` means: Find the position of the first character where ``STR2`` appears in ``STR1`` for the first time. If STR2 is not found in STR1, then OUT:=0. .. code-block:: codesys (* Example declaration *) arINT1 : INT ; (* Example in ST , result is '4' *) arINT1 := FIND ('abcdef','de'); :return: Character position of the first occurance of ``STR2`` in ``STR1``. If no occurance is found, result is 0 .. cds:ranges:: :STR1: |StringRange255| :STR2: |StringRange255| .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]  3278768737* String within which ``STR2`` is searched / String whose position is searched in ``STR1`` pszComp1pszComp2$182b0d71-64b9-4f59-8550-dfdea6ddbf15 Returns a specific number of characters of a string, starting from left ``LEFT (STR, SIZE)`` means: Return the first ``SIZE`` characters from the left in string ``STR`` .. code-block:: codesys (* Example declaration *) VarSTRING1 : STRING ; (* Example in ST , result is 'SUS' *) VarSTRING1 := LEFT ('SUSI',3); :return: Resulting string .. cds:ranges:: :STR: |StringRange255| :SIZE: [0..255] .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]  3595690875LEFT String to be analyzed Number of characters SIZE$305543de-642d-43ec-a366-8f771da1539d Returns a specific number of characters of a string, starting from a specific position ``MID (STR, LEN, POS)`` means: Retrieve ``LEN`` characters from the ``STR`` string beginning with the character at position ``POS``. .. code-block:: codesys (* Example declaration *) VarSTRING1 : STRING ; (* Example in ST , result is 'US' *) VarSTRING1 := MID ('SUSI',2,2); :return: Partial string of ``STR`` .. cds:ranges:: :STR: |StringRange255| :LEN: [0..255] :POS: [0,1..255] .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]  176614815MID, Number of characters, counted from the left& Start position for the partial stringPOS$83426200-a15f-4a0f-939b-ec775900aa99 Returns a specific number of characters of a string, starting from right ``RIGHT (STR, SIZE)`` means: Return the first ``SIZE`` characters from the right in string ``STR`` .. code-block:: codesys (* Example declaration *) VarSTRING1 : STRING ; (* Example in ST , result is 'USI' *) VarSTRING1 := RIGHT ('SUSI',3); :return: Resulting string .. cds:ranges:: :STR: |StringRange255| :SIZE: [0..255] .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]  1359190538RIGHT Number of characters liResult$e1f7857b-7abd-48e8-91d6-d6b740f939c9 Adds a message to the log, if the message is longer then 127 characters ithe entry splits into two log messages (max 255 chars = 2 log entries) Usage example: LOGSTR( msgCtrlMask := UDINT_TO_DWORD( CmpLog.LogClass.LOG_INFO ), msgFmtStr := 'Ammount of tests : %s', strArg := uiTestAmmount ); results into the following logstring Ammount of tests : 3  2043841041WRITE_DEVICE_LOG/ use UDINT_TO_DWORD( CmpLog.LogClass.LOG_.... ) msgCtrlMask( Usage example: ' Ammount of tests : %s' msgFmtStr Usage example: uiTestAmmountstrArgUSInt uiMaxSizesTextiCharPos$4faf44db-355b-4967-8254-5b291732f959j Close a file specified by handle :return: Returns the runtime system error code (see CmpErrors.library) Handle of the filesysfile, 3.5.15.0 (system) | Open or create file. A standard path will be added to the filename, if no path is specified in the file name. | If a file extension is specified in the settings, this path will be used (see category settings). .. note:: File name can contain an absolute or relative path to the file. Path entries must be separated with a Slash (/) and not with a Backslash (\\)! :return: Handle to the file or RTS_INVALID_HANDLE if failed File name. File name can contain an absolute or relative path to the file. Path entries must be separated with a Slash (/) and not with a Backslash (\\)! | Requested access mode to the file. See |ACCESS_MODE| for details. | Here find some examples: :AM_READ: If file does not exist, an error is returned. If the file exists, the file will be opened :AM_WRITE: If file does not exist, a new file will be created. If the file exists, it will be overwritten! :AM_APPEND: If the file does not exist, an error is returned. If the file exists, the file will be opened = Pointer to runtime system error code (see CmpErrors.library)\ Read number of bytes out of the file :return: Number of bytes read from file. 0=if failed Handle of the file  Pointer to buffer for read dataL Number of bytes to read from file. Must be less or equal the buffer size!  Write number of bytes to the file. File must be opened with |AM_WRITE| or |AM_APPEND|. :return: Number of bytes written to the file. 0=if failed 1793200295 SysFileWrite/ Pointer to buffer with data to write to file M Number of bytes to write in the file. Must be less or equal the buffer size!$a0372ebf-eb9b-4113-942f-e5da73df71dd Project information * * Contains the project information as specified in the project information dialog in CoDeSys. To use this, the checkbox * "Automatically generate POUs for property access" in the project information dialog be enabled. * * Project name without ending * Title * Version as string in the format "x.x.x.x" * Author * Description  3365268717 PROJECT_INFO stProjectstTitle stVersionstAuthor stDescription 1178342348$c1e43dbd-7721-4bd4-a684-c21620fe030fcmpapp, 3.5.15.0 (system)8 reads the application info from the current application 3589885213GetCurProjInfoCMPAPPCmpApppCurApp APPLICATION pCurProjInfo 1186304137GETCURPROJINFO$a1b4b1d0-961b-443c-bfbc-d2cb7b8d4e24 3673772398 1934937439 2447250513 4156868057 34495476466F_RemoveInstancePathAndProjectNameFromTestInstancePathCharacterPositionOfProjectNameProjectNameWithDot$7816860e-5623-4ff0-b466-902e340371e3 3203763967 POINTER TO parent application  pAppParent* Id of the application. Is always unique. iId GUID for IEC code CodeGuid GUID for IEC data DataGuid> State of the application. See definitions Application states udiStateR Operating state of the application. See definitions Application operation states  udiOpState Handle to bootproject  hBootproject Handle to debug task  hDebugTask Global Init Function  pfGlobalInit Global Exit Function  pfGlobalExit Handle a pool of session-ids hSessionIdPool Handle a pool of force entries  hForcePool Handle a pool of breakpoints hBPPool Is persistent force enabled  Application name szNameMAX_LEN_APPLNAME7Version number of Programming system (set in download)  udiPSVersion?Version number of Target settings used by PS (set in download) udiTargetSettingVersion 1512497683$91664799-0da5-417a-9e5e-db9ec74ea6f2[ Removes leading spaces from the character string and returns the reduced character string. 1900748652F_LTrim$6ef917e6-7f9e-46f0-99fd-87a9a9b883adO Truncates all trailing spaces from the specified value and returns the result. 3142262884F_RTrim$29c1cd9e-70b7-43a9-8e3e-f8e8ed84bff7d The F_ToLCase function converts a specified string to lowercase. Contains portions of OSCAT BASIC 886767803 F_ToLCasePTpos$4177f901-1a7a-4eea-8fe8-63097fea53f3 This function converts a decimal number into a hexadecimal STRING (base 16). If the actual number of significant digits is less than the iPrecision parameter, the resulting STRING is filled with zeros FROM the left. If the number of significant digits is greater than the iPrecision parameter, the resulting string is not cut off! If the iPrecision parameter and the in parameter are zero, the resulting string is empty. 1972422664BYTE_TO_HEXSTR) The decimal number requiring conversion.IN. Minimum number of displayed digits (digits).  iPrecision[ This parameter determines whether lower or upper case letters are used in the conversion. bLoCasem_Format$83e397b4-6883-4c4e-9910-e0278934299a This function converts a decimal number into a hexadecimal STRING (base 16). If the actual number of significant digits is less than the iPrecision parameter, the resulting STRING is filled with zeros FROM the left. If the number of significant digits is greater than the iPrecision parameter, the resulting string is not cut off! If the iPrecision parameter and the in parameter are zero, the resulting string is empty. This is modified version of the DWORD_TO_STRH made by OSCAT, version 1.3, programmer hugo.  3725441371DWORD_TO_HEXSTR4 Minimum number of displayed digits (digits). tempptm_NumberOfDigits m_precision$37af6bb4-598b-402b-99e0-bd140fa86122 1557660451LWORD_TO_HEXSTR$6f6ad65d-94c9-44e7-b5f7-5394a261509c This function converts a decimal number into a hexadecimal STRING (base 16). If the actual number of significant digits is less than the iPrecision parameter, the resulting STRING is filled with zeros FROM the left. If the number of significant digits is greater than the iPrecision parameter, the resulting string is not cut off! If the iPrecision parameter and the in parameter are zero, the resulting string is empty.  952797014WORD_TO_HEXSTR$028c7654-6828-48cd-8703-659f86aef415? Copies buffer with size of N bytes from source to destination  1485283582MEMCPYdestAddrCAAPVOIDsrcAddrn$7d591bcc-b453-4853-8327-1622b58624cc; Realize a target specific data type for general pointers.  2901015905 Prefix: p $607a79a2-c60b-4e09-b161-a4f6d8099b004caa types extern, 3.5.13.0 (caa technical workgroup)e This function takes the type-class of a ANY-variable and returns the STRING representation of it.  3242817338F_AnyTypeClassToString AnyTypeClass$9e1352f3-5f86-40fd-88db-b6807b901391O Funktion to get own task handle :return: Returns the current IEC task handle 4249138636IecTaskGetCurrentK Pointer that returns the runtime system error code (see CmpErrors.library)$b1d506b4-a9e7-4ec3-8e73-e6697d723ffbt Function returns the task information of the specified task :return: Return a pointer to the task info structure 4205902187IecTaskGetInfo3 Handle to the specified taskhIecTaskpti$941fd632-1e71-4fc0-a13a-6074eb0adf1c 2092783167F_AnyToUnionValueAnyValue.pValueAnyValue__pValueAnyValue.TypeClassAnyValue__typeClassAnyValue.diSizeAnyValue__sizeOfAnyValue$04a97242-7600-4a30-a234-b9e3b1c2770c 3394829069F_IsAnyEqualToUnionValueuExpectedOrActualExpectedOrActual.pValueExpectedOrActual__pValueExpectedOrActual.TypeClassExpectedOrActual__typeClassExpectedOrActual.diSizeExpectedOrActual__sizeOfExpectedOrActualAnyExpectedOrActual$1ab30776-5b8c-4eb4-8ece-b0c087a9b905F This function runs all test suites that have been initialized.  740068242RUN$bd49b256-e7ba-4b73-b669-380d1f428417c This function declares a new test (if it has not been already declared in an earlier cycle)  3903357050TESTCounterTestSuiteAddress$8dd61791-c583-4b5e-b392-3e0ecf4878492 Sets the currently running test as finished  563735047 TEST_FINISHED$9922b45b-fca5-4323-be8f-93710371a816 Extracts the components of a REAL floating point number without interpreting them. Extracts the sign, (biased) exponent, and mantissa of a REAL value. We assume the IEEE 754 binary32 format. All values, including NaN and Infinity are supported. See http://en.wikipedia.org/wiki/Single_precision_floating-point_format 2007885473__ExtractRealRawC The mantissa as stored in the REAL, without the leading bit 24 setpudi$3d3aa07e-b7ec-4780-af79-d77e0e2cb50f 1475096513__HelpLConvert$26023af2-e263-44c0-b290-4197ca6caa6a 202956791__ExtractLRealRawpuliuli$e543e1fd-2bb8-4ac1-a749-ebad37d711fc 1673363469FctConfDynLicChallenge$f9972cfc-8a33-4e40-85fb-7109a5d893d5 2401095727FctGetUserLicenseValue$c20edd8e-8e57-4f8a-87df-58345eb4164f 2469315043FctReqDynLicChallenge$a38e7aa2-cfa8-41d5-adf5-85021e7b5eaa 1900323445CMUnregisterLicenseFunctions$f1a79dd5-021a-4cf4-ad25-7ec56df08e56CodeMGetContentByFirmcode_local Replaces a specific number of characters of a string by another string ``REPLACE(STR1, STR2, L, P)`` means: Replace ``L`` characters from ``STR1`` by ``STR2``, beginning with the character in the ``P`` position. .. code-block:: codesys (* Example declaration *) VarSTRING1 : STRING ; (* Example in ST , result is 'SKYSI' *) VarSTRING1 := REPLACE ('SUXYSI','K',2,2); :return: Resulting string .. cds:ranges:: :STR1: |StringRange255| :STR2: |StringRange255| :L: [0..255] :P: [0,1..255] .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]  517832753REPLACE# String of which a part is replaced) String which replaces a part of ``STR1``) Number of characters, counting from leftLs Start position of the characters to be replaced. ``P = 1`` or ``P = 0`` are both addressing the first characterP indexDest indexSource$f57e2f3d-6edd-4042-ac47-a14833c273c8 448115908 LogOptions Name OF logger  Logger active/inactive bEnable See above log types uiType0 Log filter. It is a combination of log classes uiFilter MAX number OF LOG entries  iMaxEntries Max file size  iMaxFileSize Max number of files  iMaxFiles 2267289889 LOGOPTIONS$f29300f0-f83d-490d-9603-d3255fa3095b 2950684213ST_LogCMPLOGCmpLogAssignLOGTYPESLogTypesLT_STDhLogCreated 3954219779ST_LOG$6fa083cf-0816-49b4-9f1f-643d3266b682 ADDLOGENTRYPRVCREATENEWLOGGER? registers a Log component in devicelog and accept log messages 2253974937CmpCfLoghCmp hStdLoggervendorIdcmpId 3274057501CMPCFLOG$e54b0b42-bf68-4a14-aacc-2136ead10c0b 3109562382 1341592248P if TRUE, the instance afterwards gets moved into the copy code (online change) $4b49c03c-b562-4a6d-a8a9-76b527f97a0e 1919457194 AddLogEntry udiClassId udiErrorId udiInfoId$f39143e0-de49-4075-8bca-59cb6ff62612 281198645$3ba547bb-218f-4ecb-aa09-3033908bd527 2650069375 1638336279 3519561854prvCreateNewLogger$e2af6d5a-2680-44e7-b66a-3c3897d9cb0a Deletes a number of characters from a string ``DELETE (STR, L, POS)`` means: Delete ``L`` characters from ``STR``, beginning with the character in the ``POS`` position. .. code-block:: codesys (* Example declaration *) VarSTRING1 : STRING ; (* Example in ST , result is 'SUSI' *) VarSTRING1 := DELETE ('SUXYSI',2,3); :return: String remaining after deletion .. cds:ranges:: :STR: |StringRange255| :LEN: [0..255] :POS: [0,1..255] .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]  1739723417DELETE String to be modfiedA Length of the partial string to be deleted, number of charactersZ Position in ``STR`` after which the deletion starts. Counted from left, starting with 1 indexResultbSkip$11510cc9-b7a0-4dd6-8600-402b1638691e 2665969477 AppGetCurrent$7b15c08a-0653-4e21-bae0-a0b9c0885693 1239233586AppGetApplicationInfoAPPLICATION_INFOpApp$a1d0114c-e318-46c3-9f61-93c7e287c132 Application information * * Contains the application information as specified in the application property dialog in CoDeSys. * * Pointer project name * Pointer to author * Pointer to version as string in the format "x.x.x.x" * Pointer to description * Pointer to used CoDeSys profile name * Time and date of last modification of the application (UTC)  2334584805pstProjectName pstAuthor pstVersionpstDescription pstProfile dtLastChanges 3658178702$d8358556-d5ee-4109-b0bb-55d3f6ee3e15 1693369342TO_LOWER$1e55f1d2-e8f8-4c11-a343-0d7e1cf88411 2020938782Printf. The buffer, where the result will be returned cbpResult" The capacity of the result bufferuiResultCapacity0 The format string used for formatting the value cbpFormatV A pointer to the begin of the piece of memory, where the value to format is stored.G A __SYSTEM.TYPE_CLASS value describing the type of the value to format typeClass$ba8d48f4-b190-46c7-be6b-9336508c391c iecstringutils, 3.5.8.0 (system)IecTaskGetInfo2 711891942IecTaskGetInfo2_Internal TASK_INFO$c6d3a5e1-7385-4753-b73c-f3b0df563229 2900023005 tInterval tWatchdogTime tCycleTimetAverageCycleTime tMaxCycleTime tMinCycleTime 3657274649$b83e07ab-a3d0-41a5-8f83-2de38b279984 3040543732CMRemoveComponent hComponent$11bbd436-1d57-4172-8904-e44dc772fedb 3645932812LogClose$c8aaeb24-0f38-477e-9044-1ecd207cbde3 1735259385 LogDelete$52842e3b-7e02-4eaf-bb44-a5db3758476c 2881342543LogOpen$8b85ed35-90d0-4d91-aef7-00ef0b080aad 1116480908 LogCreatepOptions$b35829e6-d182-4ea6-91ec-f4e82032a361Y Does a sprintf for the given format string and the given variable. Will not return NULL!k link even in simulation mode prevent introducing a signature check lately to prevent compatibility flaws 120951582 StuSprintf the formatstring pstFormat2 the address of the variable that shall be printed8 the type of the variable as a __SYSTEM.TYPE_CLASS value udiVarType+ the buffer where the text is to be printed the size of the buffer in bytes dwBufferSize$4933794d-6fe5-4285-9a7e-ea7baab7d3f3stringutils, 3.5.14.0 (system) 4251811505"I_TestResultFormatter__Struct__376GLocal, IsCompiled, RelativeInstance, NoInit, Implicit, NoCopy, Typified 358323719"I_TESTRESULTFORMATTER__STRUCT__376=Structure, NonVirtual, Generated, Compiled, Typified, Located 3524596434%I_AssertMessageFormatter__Struct__652 2449608530%I_ASSERTMESSAGEFORMATTER__STRUCT__652 205898594IBase__Struct__700__INTERFACEPOINTER__700 3371573693IBASE__STRUCT__700__download__code__online__change__code global__init__bInitRetains__Index __bInCopyCode GLOBAL__EXIT"__DATASEGMENTFLAGS__305__GVL__Init#__COMPILE_CONSTANTS__306__GVL__Init__WATCHVARS__307__GVL__Init1__ALLOCATEDIMPLICITREFERENCETYPES__308__GVL__Init#CONSTANTS__309__SYSTEM____GVL__InitTYPE_CLASS__614__GVL__Init$_IMPLICIT_KINDOFTASK__688__GVL__Init/_IMPLICIT_TASK_CONFIG_VARIABLES__749__GVL__Init/_IMPLICIT_TARGET_INFO_VARIABLES__137__GVL__Init!__APPLICATIONNAME__138__GVL__Init%__TASKSPECIFICINFOGVL__139__GVL__Init__TYPECLASS__754__GVL__Init&__CONVERSION_CONSTANTS__759__GVL__Init'__LCONVERSION_CONSTANTS__840__GVL__Init __SETUP__CALL__POU__1__GVL__InitPRG_TEST__714__GVL__InitAPPLICATION_CONTENT Offsets in stringtable!SizeOf udiInfoSizeudiInfoVersion uiNumPOUs uiNumDUTs uiNumGVLsuiNumFBs uiNumMethods uiNumLibsarPOUsarDUTsarGVLsarFBs arMethodsarLibs stringtableOutput, IsCompiledInput, IsCompiledInput, IsCompiled, ImplicitCompiledNonVirtual, Generated, Compiled1Structure, Generated, Compiled, Typified, LocatedRemovedAfterDownload__RELOCATE__CODE__PAreaOffsetsNew __dwVersion__PAreaOffsetsIn __pAdrHelp__i__j__RELOCATE__RESULT __dwOffset__wHigh__wLow__wCount__PRELOCATIONTABLE__PAreaOffsets8Generated, NoCompareWithNew, Compiled, Typified, Located 669599553__DataSegmentFlags VarGlobal) special flag to indicate an area segmentDA_Data=Local, ReplacedConstant, Constant, Enum, IsCompiled, Typified DA_ConstantDA_Input DA_Output DA_Memory DA_RetainDA_CodeDA_Area DA_PersistentEnum, Compiled, Typified$36b719e5-3a34-450b-b806-362248c6fc69 2121841030__COMPILE_CONSTANTSsystem_variable__CONTAINS_COPY_CODEAReplacedConstant, Constant, Global, IsCompiled, Absolut, Typified$db173c48-0431-4ee2-8080-d72c759a68e3 629370838 __WatchVarsCompiled, Typified, Internal$e4086481-b65b-4bfc-821c-c1f278b8711d72176917!__AllocatedImplicitReferenceTypes'Generated, Compiled, Typified, Internal$4e6b58d5-7a7d-4d43-b710-af56f2531e62 3976988861 Constants Like x86, ARM etc bLittleEndianA the runtime version number as defined by the device description.RuntimeVersion Heap memory was written out of bounds! Memory overwrite error&ERR_MEMORY_OVERWRITE& Invalid handle TO an object&ERR_INVALID_HANDLE& End OF object reached&ERR_END_OF_OBJECT' No changes done' ERR_NO_CHANGE' Invalid OR unknown INTERFACE'ERR_INVALID_INTERFACE' Functionality NOT supported'ERR_NOT_SUPPORTED'$ No access rights FOR THIS operation'ERR_NO_ACCESS_RIGHTS'( Specified limits OF a resource exceeded'ERR_OUT_OF_LIMITS'M Remaining entries that could NOT be transmitted because OF buffer limitation'ERR_ENTRIES_REMAINING' Invalid online sessionid'ERR_INVALID_SESSION_ID' Exception occurred' ERR_EXCEPTION'& Signature mismatch OF an api FUNCTION'ERR_SIGNATURE_MISMATCH' Version mismatch'ERR_VERSION_MISMATCH' TYPE mismatch'ERR_TYPE_MISMATCH' ID mismatch'ERR_ID_MISMATCH' Consistency error'ERR_NO_CONSISTENCY' No COMM_CYCLE needed'ERR_NO_COMM_CYCLE'' DO NOT suspend task after an exception'ERR_DONT_SUSPEND_TASK'* Memory cannot be locked in THIS operation'ERR_MEMORY_LOCK_FAILED' License missing FOR the runtime'ERR_LICENSE_MISSING' Operation denied'ERR_OPERATION_DENIED' Device error' ERR_DEVICE' Disk full' ERR_DISK_FULL' Internal use in runtime'ERR_CRC_FAILED'ERR_MEDIA_ERASE'T File error. e.g. cannot open a file FOR writing because it could be write PROTECTED'ERR_FILE_ERROR' No RETAIN memory available'ERR_NO_RETAIN_MEMORY'/ Specified minimum-limit of a resource exceeded'ERR_OUT_OF_LIMITS_MIN'/ Specified maximum-limit of a resource exceeded'ERR_OUT_OF_LIMITS_MAX' Size mismatch 'ERR_SIZE_MISMATCH'> Operation is not yet finished, call function again to proceed'ERR_CALL_AGAIN'+ Operation has nothing TO DO. No execution.'ERR_NOTHING_TO_DO' Some security checks have failed. THIS is a generic error code TO report THIS error over PUBLIC channels. In THIS CASE the error code doesn't provide a detailed cause for the error. */'ERR_SECURITY_CHECKS_FAILED'ERR_INVALID_SEQUENCE'f Dereferencing an IEC reference in IecVarAccess failed due to invalid destination address, e. G. NULL.'ERR_INVALID_REFERENCE'1 Conversion of string encodings was not lossless.'ERR_CONVERSION_INCOMPLETE' Socket not initialized 'ERR_SOCK_NOTINITIALIZED'& The provided socket handle is invalid'ERR_SOCK_NOTSOCKET'$ The address family is NOT supported'ERR_SOCK_AFUNSUPPORTED' Protocol is NOT supported'ERR_SOCK_PROTOUNSUPPORTED'( NOT enough buffer TO handle the request'ERR_SOCK_NOBUFFER'8 Socket is in nonblocking mode but THIS call would block'ERR_SOCK_WOULDBLOCK'' The provided address is already in use'ERR_SOCK_ADDRINUSE'7 The provided address is NOT available on THIS computer'ERR_SOCK_ADDRNOTAVAILABLE'/ Connection has been refused BY the remote host'ERR_SOCK_CONNREFUSED'ERR_SOCK_TIMEDOUT' The host has NOT been found'ERR_SOCK_HOSTNOTFOUND' Host is unreachable'ERR_SOCK_HOSTUNREACHABLE' Socket is already connected'ERR_SOCK_ISCONNECTED' The socket is NOT connected'ERR_SOCK_NOTCONNECTED'' Shutdown has been called on the socket'ERR_SOCK_SHUTDOWN'P FOR sockets OF TYPE DGRAM. The package TO send exceeds the maximum package size'ERR_SOCK_MSGSIZE'B Socket has been gracefully closed. No more send/receives allowed 'ERR_SOCK_CLOSED', Tag missing in online communication buffer 'ERR_L7_TAG_MISSING' Unknown command group'ERR_L7_UNKNOWNCMDGROUP'/ Unknown command (within a valid command group)'ERR_L7_UNKNOWNCMD' Level 7 service incomplete'ERR_L7_INCOMPLETE'# Certificate validation error codes' ERR_CERT_OK'B illegal error (FOR uninitialized values, TO avoid ERR_CERT_OK) */'"ERR_CERT_UNABLE_TO_GET_ISSUER_CERT'ERR_CERT_UNABLE_TO_GET_CRL')ERR_CERT_UNABLE_TO_DECRYPT_CERT_SIGNATURE'(ERR_CERT_UNABLE_TO_DECRYPT_CRL_SIGNATURE'+ERR_CERT_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY'ERR_CERT_SIGNATURE_FAILURE'ERR_CERT_CRL_SIGNATURE_FAILURE'ERR_CERT_NOT_YET_VALID'ERR_CERT_HAS_EXPIRED'ERR_CERT_CRL_NOT_YET_VALID'ERR_CERT_CRL_HAS_EXPIRED''ERR_CERT_ERROR_IN_CERT_NOT_BEFORE_FIELD'&ERR_CERT_ERROR_IN_CERT_NOT_AFTER_FIELD''ERR_CERT_ERROR_IN_CRL_LAST_UPDATE_FIELD''ERR_CERT_ERROR_IN_CRL_NEXT_UPDATE_FIELD'ERR_CERT_OUT_OF_MEM'$ERR_CERT_DEPTH_ZERO_SELF_SIGNED_CERT'"ERR_CERT_SELF_SIGNED_CERT_IN_CHAIN'*ERR_CERT_UNABLE_TO_GET_ISSUER_CERT_LOCALLY'(ERR_CERT_UNABLE_TO_VERIFY_LEAF_SIGNATURE(ERR_CERT_CHAIN_TOO_LONG(ERR_CERT_REVOKED(ERR_CERT_INVALID_CA(ERR_CERT_PATH_LENGTH_EXCEEDED(ERR_CERT_INVALID_PURPOSE(ERR_CERT_UNTRUSTED(ERR_CERT_REJECTED(7 These are 'informational' when looking for issuer cert( ERR_CERT_SUBJECT_ISSUER_MISMATCH(ERR_CERT_AKID_SKID_MISMATCH($ERR_CERT_AKID_ISSUER_SERIAL_MISMATCH(ERR_CERT_KEYUSAGE_NO_CERTSIGN(!ERR_CERT_UNABLE_TO_GET_CRL_ISSUER(%ERR_CERT_UNHANDLED_CRITICAL_EXTENSION(ERR_CERT_KEYUSAGE_NO_CRL_SIGN()ERR_CERT_UNHANDLED_CRITICAL_CRL_EXTENSION(ERR_CERT_INVALID_NON_CA(#ERR_CERT_PROXY_PATH_LENGTH_EXCEEDED(&ERR_CERT_KEYUSAGE_NO_DIGITAL_SIGNATURE('ERR_CERT_PROXY_CERTIFICATES_NOT_ALLOWED(ERR_CERT_INVALID_EXTENSION(!ERR_CERT_INVALID_POLICY_EXTENSION(ERR_CERT_NO_EXPLICIT_POLICY(ERR_CERT_DIFFERENT_CRL_SCOPE(&ERR_CERT_UNSUPPORTED_EXTENSION_FEATURE(ERR_CERT_UNNESTED_RESOURCE(ERR_CERT_PERMITTED_VIOLATION(ERR_CERT_EXCLUDED_VIOLATION(ERR_CERT_SUBTREE_MINMAX($ERR_CERT_UNSUPPORTED_CONSTRAINT_TYPE(&ERR_CERT_UNSUPPORTED_CONSTRAINT_SYNTAX( ERR_CERT_UNSUPPORTED_NAME_SYNTAX("ERR_CERT_CRL_PATH_VALIDATION_ERROR( The application is not happy(!ERR_CERT_APPLICATION_VERIFICATION(ERR_CERT_MISSING(ERR_CERT_UNKNOWN_ERROR($adcc37d5-f407-4f11-9834-0c31bac94657((cmperrors2 interfaces, 3.5.15.0 (system)( 1784674971( LogConstants( STD_LOGGER(LOG_STD_LOGGER(Pointer(RTS_INVALID_HANDLE(LOG_INVALID_HANDLE($4084b11d-b9ee-47b9-ad20-f9bc4eeb6bb6( 1666259597(LogClass(LOG_NONE(LOG_INFO( LOG_WARNING( LOG_ERROR( LOG_EXCEPTION( LOG_DEBUG(LOG_USER_NOTIFY(LOG_ALL($4daa954b-f889-4b97-a05f-93d44b64f374( 3164948391( LT_HIGHSPEED(LT_SAFE( LT_NORMAL(LT_TIMESTAMP_RTC(LT_TIMESTAMP_MS(LT_TIMESTAMP_US(LT_TIMESTAMP_NS( LT_NO_DISABLE( LT_DUMP_ASYNC(LT_DUMP_ALWAYS(LT_DUMP_ON_CLOSE(LT_DUMP_ON_REQUEST(Or($0f010cee-3948-41fd-82ad-af5b1e2e8803(49000( 251212993(HandleConstants(suppress_warning_0(C0195($471467d5-89a4-4482-b970-b13eff79244e( 1192820603(GlobalConstants(Common Defines($0c76e09e-5f6c-41d5-841a-2071be1c6304( 330479632( ComponentID(E ComponentID of the component manager, e.g. to specify for EventOpen ( CMPID_CmpMgr(B ComponentID as a placeholder for all IEC components/applications ( CMPID_IecCode(CMPID_CmpFileTransfer($228db6b8-947d-4adb-8c50-8280abf93255('Typified, Compiled, ContainsNoParseTree( System.Byte( Relocated(ToCheck(ATopLevel, Typified, NotForUpToDate, Compiled, ContainsNoParseTree(7Typified, Compiled, ContainsNoParseTree, ContainsNoCode(StaticFunctionCall(1TopLevel, Typified, Compiled, ContainsNoParseTree(^TopLevel, Typified, ToCompile, Compiled, ContainsNoParseTree, Generated, ToGenerate, NoCompile(OTopLevel, Typified, Compiled, ContainsNoParseTree, ContainsVirtualFunctionCalls(ETypified, Compiled, ContainsNoParseTree, ContainsVirtualFunctionCalls(VirtualFunctionCall( InterfaceCall(PTypified, ToCompile, Compiled, ContainsNoParseTree, ContainsVirtualFunctionCalls(0(ITypified, ToCompile, Compiled, ContainsNoParseTree, Generated, ToGenerate(__DOWNLOAD__CODE(__ONLINE__CHANGE__CODE("__DATASEGMENTFLAGS__305__GVL__INIT(GTopLevel, Typified, ToCompile, Compiled, ContainsNoParseTree, NoCompile(#__COMPILE_CONSTANTS__306__GVL__INIT(__WATCHVARS__307__GVL__INIT(1__ALLOCATEDIMPLICITREFERENCETYPES__308__GVL__INIT(#CONSTANTS__309__SYSTEM____GVL__INIT(TYPE_CLASS__614__GVL__INIT($_IMPLICIT_KINDOFTASK__688__GVL__INIT(/_IMPLICIT_TASK_CONFIG_VARIABLES__749__GVL__INIT(/_IMPLICIT_TARGET_INFO_VARIABLES__137__GVL__INIT(!__APPLICATIONNAME__138__GVL__INIT(%__TASKSPECIFICINFOGVL__139__GVL__INIT(__TYPECLASS__754__GVL__INIT(&__CONVERSION_CONSTANTS__759__GVL__INIT(HTypified, ToCompile, Compiled, ContainsNoParseTree, Generated, Blob, New('__LCONVERSION_CONSTANTS__840__GVL__INIT( __SETUP__CALL__POU__1__GVL__INIT(PRG_TEST__714__GVL__INIT(DToCompile, Compiled, DataRelocations, ContainsNoParseTree, ConstBlob) GLOBAL__INIT)+?+@+A+B) )))))))B )))))))+))) ))))))))))))) ) ) )))**C++*)))D) )))))))B )))))))))) ))))))))))))) ) ) )))**E++F+)G) )))))))B )))))))))) ))))))))))))) ) ) )))**H) )))))))B )))))))))) ))))))))))))) ) ) )))*@*I) )))))))B )))))))+))) ))))))))))))) ) ) ))B)**J) )))))))B )))))))+))) ))))))))))))) ) ) )))B))**K) )))))))B )))))))))) ))))))))))))) ) ) ))))*@*L) )))))))B )))))))))) ))))))))))))) ) ) ))))**M+N) )))))))B )))))))+))) ))))))))))))) ) ) )))B)**O) )))))))B )))))))+))) ))))))))))))) ) ) )))B)**P) )))))))B )))))))))) ))))))))))))) ) ) ))))*@*Q) )))))))B )))))))+))) ))))))))))))) ) ) ))B)**R) )))))))B )))))))+))) ))))))))))))) ) ) )))B)*@*S) )())))))B )))))))))) ))))))))))))) ) ) )))**T) )())))))B )))))))+))) ))))))))))))) ) ) )))B)**U) )())))))B )))))))))) ))))))))))))) ) ) ))))*@*V+) ))+++W+) ))++@+))X+ )Y+*@)+)+)+Z+[+) ))++@+\) )))))))B )))))))+))) ))))))))))))) ) ) )))B)*@*]*) ))* ****^+) ))*+**_) )))))))B )))))))))) ))))))))))))) ) ) )))*@*`) )))))))B )))))))))) ))))))))))))) ) ) ))))*@*a+) ))+++b) ) )))))))) ))c) )))))))B )))))))))) ))))))))))))) ) ) )))B)**d) )))))))B )))))))+))) ))))))))))))) ) ) )))B)**e+) +++f+*A)+)+)+g) )())))))B )))))))))) ))))))))))))) ) ) ))))*@*h) )))))))B )))))))+))) ))))))))))))) ) ) )))B)**i) )())))))B )))))))+))) ))))))))))))) ) ) )))B))**j) )())))))B )))))))))) ))))))))))))) ) ) )))*@*k+*A)+)+)+l+++)m) )())))))B )))))))))) ))))))))))))) ) ) ))))*@*n) )))))+)))B )))))))+))) ))))))))))))) ) ) )))B)*@*o) )))))))B )))))))+))) ))))))))))))) ) ) )))B)**p+) ))++A+))q) )())))))B )))))))+))) ))))))))))))) ) ) )))B)**r) )())))))B )))))))+))) ))))))))))))) ) ) )))B)*@*s) )())))))B )))))))+))) ))))))))))))) ) ) )))B))*@*t) )())))))B )))))))))) ))))))))))))) ) ) )))*@*u) )())))))B )))))))))) ))))))))))))) ) ) ))))*@*v) )))))))B )))))))))) ))))))))))))) ) ) ))))**w) )())))))B )))))))+))) ))))))))))))) ) ) )))B)**x) )())))))B )))))))+))) ))))))))))))) ) ) )))B)**y+z++{+|+}+~) )())))))B )))))))+))) ))))))))))))) ) ) )))B)*@*+) ))*) )())))))C )))))))))) ))))))))))))) ) ) )))*@*) )())))))C )))))))))) ))))))))))))) ) ) ))))*@*) )())))))B )))))))))) ))))))))))))) ) ) ))))**) )())))+)))B )))))))+))) ))))))))))))) ) ) )))B)**) )())))))B )))))))+))) ))))))))))))) ) ) )))**) ) )))))C))) ))) )())))))B )))))))))) ))))))))))))) ) ) )))*@*) )())))))B )))))))+))) ))))))))))))) ) ) )))B))**) )())))))C )))))))+))) ))))))))))))) ) ) )))B))**) )))))))B )))))))))) ))))))))))))) ) ) )))**) )))))))B )))))))))) ))))))))))))) ) ) )))**) )))))))B )))))))+))) ))))))))))))) ) ) )))B)**) )())))))B )))))))+))) ))))))))))))) ) ) )))B)**) )())))))B )))))))))) ))))))))))))) ) ) )))*@*) )())))))C )))))))))) ))))))))))))) ) ) ))))*@*) )())))))B )))))))+))) ))))))))))))) ) ) )))B))**) )())))))B )))))))))) ))))))))))))) ) ) ))))**+) ))+)) )())))))B )))))))))) ))))))))))))) ) ) ))))**) )())))))B )))))))))) ))))))))))))) ) ) ))))**+)++) )))))))B )))))))))) ))))))))))))) ) ) ))))**) )))))))B )))))))+))) ))))))))))))) ) ) ))B)*@*) ) )))))B))) ))+) ))++))+) ))++@+) )))))))B )))))))+))) ))))))))))))) ) ) )))B)**) ))))))) )))))))))) ))))))))))))) ) ) )))*@*) ))))))) )))))))))) ))))))))))))) ) ) )))**) ))))))) )))))))))) ))))))))))))) ) ) )))**) ))))))) )))))))))) ))))))))))))) ) ) )))**) ))))))) )))))))+))) ))))))))))))) ) ) ))))**) )))))))B )))))))))) ))))))))))))) ) ) )))*@*) )))))))C )))))))))) ))))))))))))) ) ) ))))**+) ))++A+) )))))))C )))))))))) ))))))))))))) ) ) )))*@*+) ))+++@) )))))))B )))))))))) ))))))))))))) ) ) )))*@*) )))))))B )))))))))) ))))))))))))) ) ) )))**) )))))))B )))))))))) ))))))))))))) ) ) )))**) )))))))C )))))))))) ))))))))))))) ) ) )))**) )))))))B )))))))))) ))))))))))))) ) ) )))*@*+) ))+*+*)) )))))))B )))))))))) ))))))))))))) ) ) )))*@*+ ) ++ ++++)+++ ) ++ ++)++)+++*A+* )**)))))))****) ) )***)*******++)++++ ) ++ ++)+++)++* )**)))))))****) ) )***)*******+*@+* )**)))))))****) ) )***)******** )**)))))))****) ) )*********** )**)))))))****) ) )*********** )**)))))))****) ) )**********+*@+*)++++@+*@+*)+++*@++*)(  TTy     11 1 T: &D 1  T : zSx?.OfOf~ +)I* W) V(: dȷ ~N7,*H) W) V0: dȷd;{&, A * P!* V""8: dȷ1u,# $$A * P!* V%%@: dȷ@tW U,& ''A * P!* V((H: dȷ7 `,) **A * P!* V++P: dȷ u,, --A * P!* V..X: dȷNYق,/ 00A * P!* V 11`: dȷۜp,2 33*B * Q!* V 44h: 1a(B0,5 66*B * Q!* V 77p: 1 ??*B * V@@: 1K `v,A BB*B * Q!* VCC: 1a(+,D EE*B * Q!* VFF: 1ס",G H H*D * S!* bI* VJJ: 1*U,K LL-D* VMM: qZm,N OO*B* VPP: qjG[.a,Q RR*C* VSS: qk,^,T UU*B* VVV: %ޥ>SH,W XX*C* VYY: %z9I;,Z [[*B* V\\: %l@햆,] ^^*C* V__: %muڹ,` aa*A* Vbb: %JhcB,c dd*B* Vee: %ecNY,f gg*B* Vhh: %#",i jj*C * R!* Vkk: %{h@ P,l mm*C * Vnn; 0Nj,o pp-A - P!- Vqq; O *,r ss.C . S!. Vtt; iɪ0,u vv-A - P!- V ww; RӸkn|ȁ,x yy.C . S!. V!zz ; RӸ} Ҋ,{ ||-A - V"}}(; RӸaVi[,~  -C - R!- aI- V#0; RӸH_U?,  .E . U!. eI. V$8; RӸPŒ]p, -A - P!- V%@; RӸ 6, .C . S!. V&H; RӸPiQ, -A - P!/ V'P; * ' 7nq, .C . S!/ V(X; * P\ , .C . S!/ V)`; * ^Jţ?, .C . S!/ V*h; ##T, .C . S!/ V+p; ##]e ҧ]1 0V,x; 9 ;GJR,plH- ^- t321 :321 V-; :f}K\P,p-Q32e1 n2321 d- h4 V.; k!*,&&p-b32v1 2321 d- h4 V/; kkM,  V0; k]:!5N44 11n1544.544 87624544876245B44,.5440.5444)5)448)5^44<)5 44@)5 44D)5 44H)5^ 44L)5 44P-544T-5(44X32C;5a44)544)944 " /   11 1- 41B ; A!f,  <<<_ < n!< V?; AlXk88,  <<<_ < n!< V@; Anv ,  <<=a = q!= VA; A-QQ!Q,  <<<_ < n!< VB< Abb0,  <<=a = q!= VC< AY54Q)5,  <<<_ < n!< VD< 7l1&oQ,  <<=a = q!= VE< 70F,F,  <<<_ < n!< VF < 궼]*,  <<=a = q!= VG(< 궼F,  <<=a = q!= VH0< 궼s',  <<=a = q!= VI8< <Ӽ?UW',  <<=` = p!= VJ@< <Ӽʩ@F, <<=a = VKH< <ӼQ?*w%,  <<_ = o!= VLP< <ӼU~*Pye,  <<_ = o!= VMX< <Ӽ ɚ,  <<_ = o!= VN`< <Ӽd1 a,  <<_ = o!= VOh< E&@_=|,  <<_ = o!= VPp< zmujv,  <<_ = o!= VQx< [^,  <<^ < m!< VR< G8ڎ_M,  <<^ < m!< VS< G8|,  <<^ < m!< VT< G8JV,  <<^ < m!< VU< `b;ʸi<,  <<^ < m!< VV< 6jf6,,  <<^ < m!< VW< 6jBZ, <<<_ < VX< 6jHF#,  <<=a = q!/ VY< 6jC!FV,  <<=a = q!/ VZ< 6j&/g=,  <<=a = q!/ V[< 6j"Mp9,  <<=a = q!/ V\< 쩽64,  <<=c = s!= I= V]< 쩽Mʿ?,  <<<a < p!< I< V^< 쩽 BVIZxs,  <<<_ < n!/ V_<  ʽϒ, >>>V`<  ʽM<Ֆc,<<?h* Va< yVqsa1s,<<*g? Vb= ZM4b]b+<< )g? v) Vc= Zba2x8+<<?g) v) Vd= گW6x98+ <<-b? Ve= 䯿nzav9, <<?a? Vf = 䯿~u0c, <<?b? Vg(= 䯿a, <<?a? Vh0= ˿[v-, <<?b? Vi8= ˿`=, <<?a? Vj@= ˿e?[47, <<?b? VkH= ˿9+ 6, <<?`? VlP= ;F jZ+ <<?a? VmX= ;eА֤9, <<?a? Vn`= ;'=,  <<?b ? r!? Voh= ;U*, <<?b ? Vpp= j Ns,  <<_ ? o!? Vqx= zߕX,  <<_ ? o!? Vr= ZMv_ V,  <<_ ? o!? Vs= 92"{,  <<_ ? o!? Vt= \Ӝ,  <<_ ? o!? Vu= giʺ,  <<_ ? o!? Vv= grri,  <<?a ? q!? Vw= g : ,  <<?a ? q!? Vx= g[6F,  <<?a ? q!? Vy= g >N,  <<?a ? q!? Vz= g_/E//, <<?a ? V{= Ԁ)1J&g,  <<?a ? q!? V|= ap,  <<?a ? q!? V}= a( ǽ ,  <<?c ? s!? I? V~= ab>9~, <<;g? v) V= azR, <<?g; v) V= NU0\1   N- d- z4 V= ?somu ,&& -X - u!- V> ?=,&&)W @ V> ?BK+*, &&ZA A A V> %7Y(.,  BB4v4 4 ) V> % ¥), BB-q4 4 V > %#$' , BB-r@ @ V(> [X3x9 @ V  m  11 1 4 T0> ~ Oˎ&D&D **B .FT876-)9 "/   B  ѐ`>D   C.WW'W) - @> n9FD     - C.WWW H> AغpD   C.WWW   4 P> ^k6?@D   C.WWW  4 X> t;6D   C.WWW  4 `> t;PPFD   C.WWW  4 h> t;(_ ,w!D   . C.WWW p> t;xvD   C.WW%WFE - x> t;* enD   C.WW$WC4VV V ) > t;ՐdD   '- C.WWW > t;F1QD   & - C.WWW > t;ѭ^%VG   C.WWW5## 5. > b= 6ruD  C.WW*WFE > b[D   C4VV"V )     C.WW W > b+ D   C.WW$WC4VV V ) > bl=q/.D   C.WW"WC4VV V )  - > b6=yD   C.WW,WFE > bB@D  C.WW#WC4VVV > b[ a6:H   )EE F- -) :) =-) >  0[H H   *   -  -,, > e; H   .   - @ 4- >  HhYG H   )   -  N-.. > ö;M H   -   - @ - > Q%6 H   )   ) ) > b p H  ) ) ? ea3E  H   4'' . S@T) ? Ѷ ~ H U U )WW X. o4p@ ? %=Z; H   4'' . ) ? %@D H   @'' . c4d)  ? L$cO I 5$$5 45%@5'@5!@5-@5CA9 " /   B 3>3N<_  )w  )  .         .!  .P   " /    `C 6P@ #>*Hyₚ%7w     %'()*,79:2 U0!57732577*  ) 477/D77)`77)r7777/77/ 77- 77- 7732  7732 774>77/M77/Y77o77/77/77/7777778766477774$774777W876Z M] )O876Z M] )V876Z M] )S876Z M] )S876Z M] )j*t7777 40477 4.477 4-477 4$E4 -7X@ !.Hg WAE%$ 6U0 88 3M9O88; ^88) 88-88.88.88488;#NJ;88; 88+ 88/;/C 88/R/Y 88/g/8`@ ީ4H)kܚ "+ U  99 3M<S99? b99) 99`E99499499499499-.-5 99-C 99-V 99-i- 99 99-99<9999999h@ 7-:HHM! memee\YX?X@XAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUp`@-53GGQQC4VV3 V54CCGGJJKKMMNNQQRR.54 CCGGJJKKMMNNQQRR.54GG.54 GG.55GGQQUU 8765 5456GGQQUU  57CCGGMMQQRR"59GGMMSS$ 5; CCGGRR(.5; CCGGRR,.5;& CCGGRR0.5< GGJJ45= GGSS8.5?GGMMSS<876? ?876?:2?=)5BB876 2#A9:::-- B:C LL :}K@QQQQC.WWWQQZQQ. QQ.QQ.$QQ.,QQ.QQ) QQE QQ- QQ  QQ/ QQ[87624 87624 4! 4( 4/ 45 4<87624QQQQ^3]EQQSE QQEQQ0:::-Q:C %SI_؆qi?>GMRF :::PPHH:PP:HHPP:HH::PP:HH:::PP:HH:TTTT:PP:HHTT:PP:HH:::_``5OOE OOE::: O:C #A$SI_2$U PP``TT\.TTE :::T:C 4M'SI_$pVFMQ UU_`858LL/:LL. 5vLL M zLL.PLLE[LL.[ LL.::: L:D "SI_ÓfS KK@JJ_GG 5  5  :::-- G:D  I)SI_9(("Q :::,:::QQ:::::::::::::::L:::H:D 7SI_gQ``PPE :::P:D d$SI_ԱXmIDEOQ _``5DDE DDE::: D: D MSI_ٯqX PP, ??7?? ) ::: ?:(D VVH  FF   ::: F: 0D (SI_>2" F`  MM .gKKMMRR. KKMMRR   eKKMM MMpEMM .MM. MM.MM . MME MM- MM  MM . MM0:::M: 8D "SI_Ϊ3B!KR :QQ:::::  TT` `   SS SS. SS  . LSS LSS gSSE"SS." SS.:::S: @D &SI_F0YCKR ::::::::::K   NN  .5NN . ::: N: HD G#SI_d{J KK@::` pZ  ZCC \CC. ]CC  . ^CC . aCC .bCC .bCC.bCC.cCC d CCE ::: C: PD SI_6SvI ::::::::II::SS:` ` II  .II . dIIEII0:::I: XD SI_cd"BCK         ` ` JJ .JJ .JJ.JJ.JJ E:::J: `D + SI_[iKL ::,::_  `` 5EEE EEE::: E: hD SI_yb PP,  @@ 9 - S@@ ) ::: @:pD 44K 8  8KK  .:KK. PKKE[KK.[ KK.KK 5KK a    X X X5KK  [[ \::: K: xD !SI_z 16LN ::MMMMMIIIISSJJZZ^^9 :::A:D *Ζ*Ζ F` p  UUY EUUE  UUE-UU 4cUU dUU/dUU /.UU MHUU 4H UU 4H UU 4H UU 4K UU  :::U: D 8(SI_T :::` pa  aRR .cRR. dRR  . gRR .hRR .iRR .iRR.iRR.jRRk RRE ::: R: D ;&SI_ߎ#4K :QQMMMMM::::SS::::,::,: : VRI_Z^#ƗBBQQOOTTLLGGHHPPDD??FFMMSSNNCCIIJJEE@@KKAAUURR <c b4 V   ."_U"_U"  ttssrrqqPPuuVV::::??>>00kk::c b. W   ?%-[E-[E&VVssrrqqQQ__MMLL  "">>??IIJJKKPPVVddeekkttuud   5ZZ )5ZZ )5 ZZ @5 ZZ  @5ZZ 4P ZZ " /   X X X ZX D zzV xtzz876-)9 zz "/  y zy E IA>IA P     E LL } `   4 4   .     E Hו:.8:.8  H   O O . .    E ӕ"j"j ,    E *Ζ*Ζ K      5 4 5 .     E |ᕖLЅ@LЅ@ P  " /      E >nkex X XXXXXX br0 x  r  5  87]])u ^3] u  E wd V .w. . w.  . w6  . zh  z {   { ||! } 876}p.}.V.}. } . }) 6}5 4 l  V +  ||+  |<   ! 5 5   8762A, 7 )     XF VV H    F876#V &  ||&  |7  }}Q }  l  V &  ||&  |7 G H I J  E l E V E2  ||E2  |EC       `F 镖qRnqRni |||_l}}}}66}}6}6}6}}}},    hF *Ζ*Ζ,   9 - S )     pF 44 `    C.aa   ' WW0W   xF  ԉ"ԉ" P   -  F LLjh }K     5  5      -  F [鱕@@j' @@@@@@    _\k__ |q  ww C3M    ww C3M         " /      F >>::????::::S @@7@@ ) ::: @:G VV :  aKKggDDAACCBB@@\xqbb@@AAbb@@AAybb@@AA4bb@@AA)bb@@AA; bb@@AAC3M     bb@@AA. bb@@AA  bb@@AAM  bb@@AA2 bb@@AA/ bb@@AA@ bb@@AA- bb@@AA<bb@@AA=bb@@AA*bb@@AA?bb@@AAzbb@@AA0bb@@AA>bb@@AA{bb@@AA|bb@@AA} bb " /  ``` b`G ">#;$;%*&*'2(2)C3M   *C3M   +0,0-}.}/.0. 1 !2 "3=#4=$5M%6M&7@'8@9     I :̝S%6S%6 ||;;;;;;;;;;;;;;@||;;;;;;;;;;;;;;@||;;;;;;;;;;;;;;@||;;;;;;;;;;;;;;@||;;;;;;;;;;;;;;@||;;;;;;;;;;;;;;@||;;;;;;;;;;;;;;@||;;;;;;;;;;;;;;     @||;;;;;;;;;;;;;;!!!!!!@||;;;;;;;;;;;;;;"""""@||;;;;;;;;;;;;;;#####@||;;;;;;;;;;;;;;$$$$$$@||;;;;;;;;;;;;;;%%%%%@||;;;;;;;;;;;;;;&&&&&@||;;;;;;;;;;;;;;'''''@||;;;;;;;;;;;;;;(((((@||;;;;;;;;;;;;;;)))))@||;;;;;;;;;;;;;;*****@||;;;;;;;;;;;;;;+++++@||;;;;;;;;;;;;;;,,,,,@||;;;;;;;;;;;;;;-----@11====667777777777\\\\\\\88u5((} 5(( } 5((C3M    "((C3M  " #((   ( (I hh 11\\\\\\\8866u5,,M 5,, M 5,, C3M    ",,#,,C3M  #    , 0I 2׬e@e@ 11\\\\\\\88660DF  - G  - 5J  C3M  J  M  @MN  ANO  D-P  HEQ  ER  S   C3M  S T   -U   -V   -W   -58766  5 8766       8I  %(ZLrO 11xxxxxxxxxxx||||88666666u5%%2 5%% 2 5%% C3M    "%%C3M  " #%%   % @I wAKAK 11\\\\\\\8866m55    5 HI %?2?2k34 u 5!!? 5!!? 5!!? 5 !! C3M     #!!C3M  # $!!   ! PI 򤕖>ж>ж 11\\\\\\\8899S  XI *Ζ*Ζ@LN* O* 5R* 5SC3M  S  VVWWXEYSEZ[ C3M  [ 5\ M5] 876] 2]#-5^ 876^ 2^#-5_ 876_2_!-5`876`2`!-5a876a2a-5b876b2b-5c876c2c-5d876d2d"-5e876e2e -5f*5g*58762  5,8762    -  `I 9v,?U| 11xxxxxxxxxxx||||88666666666666667667mC3M  +   !!""##$$%%&&''(())**++,,--C3M     C3M       hI e\pBCBC)      !"#$%&'()*+,-  5// 5 // C3M        / pI pV7V7 @P0? ? 5? 5  C3M     ##$$%E&#E't( uC3M  ( 5) uM5* x876* 2*#-5+ 876+ 2+#-5, 876,2,!-5-876-2-!-5.876.2.-5/876/2/-50876020-51876121"-52876222 -53?54?5 8762  588762    -  xI ZzlVN 11xxxxxxxxxxx||||8866666666666666666666696669u5/ 5 / 5 C3M    "C3M  " #    I D&PhD&Ph 11\\\\\\\8866u5{ 5 { 5C3M    "C3M  " #    I ?'H'H 11\\\\\\\8866u#5%) 5& ) 5'C3M  '  *C3M  * +    I Dm!Xm!X* 11\\\\\\\888888888888u 5$$* 5$$ * 5$$* 5 $$C3M     #$$C3M  # $$$   $ I Ƨ)n)n 11\\\\\\\8877u5)). 5)) . 5))C3M    "))C3M  " #))   ) I 7~<~< 11\\\\\\\8866u 5""> 5""> 5""C3M    """C3M  " #""   " I OWOW 11\\\\\\\88880DF2 G2 5JC3M  J  M@MNANOD-PHEQERS C3M  S T -U -V -W -58766  5 8766      I Z=WO 11xxxxxxxxxxx||||88666666u5''0 5'' 0 5''C3M    "''C3M  " #''   ' I ܩ60q60q 11\\\\\\\8866u5| 5 | 5C3M    "C3M  " #    I 8jUQ8jUQ 11\\\\\\\8866P 68* 9* 5<* 5=C3M  =  @@AABEC3EDE C3M  E 5F M5G 876G 2G#-5H 876H 2H#-5I 876I2I!-5J876J2J!-5K876K2K-5L876L2L-5M876M2M-5N876N2N"-5O876O2O -5P*5Q*58762  548762    -  I s~(A/\K 11xxxxxxxxxxx||||8866666666666666666666676667u  00 5 00 5 00    00- 0 I DYtZYtZ0 CC@DD@@@@@TT@XX@pp@tt@@@u5- 5 - 5C3M    "C3M  " #    I K± 11\\\\\\\88660DF. G. 5JC3M  J  M@MNANOD-PHEQERS C3M  S T -U -V -W -58766  5 8766      I L-pbG>uO 11xxxxxxxxxxx||||886666660DF  / G  / 5J  C3M  J  M  @MN  ANO  D-P  HEQ  ER  S   C3M  S T   -U   -V   -W   -58766  5 8766       I (sLO 11xxxxxxxxxxx||||88666666 5.. 5 .. C3M        . I ү^^ @m  33  33 33    3 I )^)^k4 55@55@0DF< G< 5JC3M  J  M@MNANOD-PHEQERS C3M  S T -U -V -W -58766  5 8766      J vC,/O 11xxxxxxxxxxx||||886668680`LN; O; 5RC3M  R  UUVVW-XEYEZJ[ KC3M  [ \ L-] P-^ TE_ E`-a-58766  5 8766      J 퍕?4] 11xxxxxxxxxxx||||8866999996999996m 66 "  66l6 V   ||   | (    6 J +f_ъъ |u #5%##; 5&##; 5'##C3M  '  *##C3M  * +##   # J pddkw 55@55@::Eu4 6CC C3M  6  9 :C3M  : ;C3M  ; <-=.>>,?C3M  ? @C3M  @      @J /oD=2CC 444555666::E!!!22@+   9 - S )    HJ 440`LN  ) O  ) 5R  C3M  R  U  UV  VW  -X  EY  EZ  J[   KC3M  [ \   L-]   P-^   TE_   E`  -a  -58766  5 8766       PJ }03g] 11xxxxxxxxxxx||||8866888886888886m11C3M  +   1 XJ DNN)      !"#$%&'()*+,- 22@u#5%4 5& 4 5' C3M  '  *C3M  * +    `J G]G]* 11\\\\\\\887777777777u5** 5**  5** C3M    "**C3M  " #**   * hJ ̫2S2S 11\\\\\\\8866m22C3M      2 pJ qq1 m  9999DD C3M    99    9 xJ JJD 0DF G 5JC3M  J  M@MNANOD-PHEQERS C3M  S T -U -V -W -58766  5 8766      J iowrB7O 11xxxxxxxxxxx||||88666666S 7 )    J VV0fh? i? 5l? 5m C3M  m  p@pqAqrD-sHEtEu v C3M  v w -x -y -z-5 8766  5(8766      J pBUW.O 11xxxxxxxxxxx||||88666969   ]k9| B&&++44  88--77  ((,,  %%55!!//$$))""''00  ..3366##    11**2299kkwwCCDDk |||I5JJ@5JJ@5JJ@9JJ " /  HHH JHJ ^3]> E?Y^3]?EB/B5/8762A  " /  // J  4X44X4@ ]4Hy8 FFFFFFFFFFFFFFU 7 575_? 599 599 -599<5995d99.=@ 0:H5YY9 GGGGGGHHHHHHHHU PH? X4 - 4444-5-. -. ?B ?T e -| ? /@ W9H {9 meeed[ [ 3M[5ww          ##--!!3M  5ww          ##--!!3M  ,/,///  @ +<I_~`O%DEMOw     #-!79:d()4 4 4  )P " /   K _ӆU5 u  -5ww) 5wwC3M    5wwC3M    MMC3M   /  pA iRIUj*ww NNOO__OO__OO__   C.WWW5C4VV V xA tE-E-    C4VVV52FE 53 . 5 C.WW W A t660 " "  A5$C4VV$ V 5%4 5&A 5'C.WW'W A tV1V10 ' '    A5)C4VV) V 5*4 5+A 5,C.WW,W  A tEEq !!//E //QE //E //E//DE // " /   - -- /-K n,>P ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||  >>C4VVV5BBC.WWW >A M_;$FBu   ?? E E& E5BB??C4VV V 5BB??C.WWW ?? E E E ?A DM_s7㍦SB kk  @@```545 f)5-5UUWW@@   @ A a=a=UWA ||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||;;;;;;;`||||||||||||||||||||||||||||||||;;;;;;;`||||bb   AAYYZZ[[\\AA``` 545 f)5-5YYZZ[[\\AA   AA``` A B g>M>MYZ[\ @@||``||``||``||``||``||``||``||``||``||``||``||``||``||``||``||``||``||``||``||``||``||``||||||||||||||||||||||||||||||||``||||bbm  B B аа kkm CC C3M    CC  C B ^rtDtD @777@u   DDDD C3M   DD    D B RԻɝQ 999@U5EE5EE* 5$EE5GEE 5sEE.EE.EE .E B "/H>R  0   FFIFF= ZFF4 FF- FF=#NJ=FFFF444F4FF-$--FF=A FF.F(B Y4Hbf19U 5GG5GG? 5&GG 5IGG .5wGG=GG=GG=G0B ;Hu;…` HHHHHHH   IIII. II . II . IIC.WWW TI8B  RI_G\,o CCH   JJ. JJ. JJC.WWW TJ@B  RI_ţVZ_ NNH   KK.KK. KK . KKC.WWW TKHB  RI_2+ RRL0  LL(C.WW(W LPB 4jL    MMC.WW 4W  .   .      MXB ?RI_%   NN3M5NN3M  5 NN3M  5 NN/ 5 NN/ ANN/ONN/ N `B gI_""d8 5PPRRUUaa325PPRRUU -5 PPRRUU$.5 PPRRUU(.5 PPRRUU,-5 PPRRUU0-5PPRRUU4-PUU " /   S SS USL  d6u-xM bzLC  6 \6m-pM 6IKԳ'W.=.D.\6u.z6  2  2 2 2 2 5876W2"26"6$ 335F ,876VW2Y22Y6[ jj5} <876W2226 5 T876W2226     5 876W2226 C D876SW2V22V6X .iT876~/e4bb"b/b )f)N)f)_)f)q)f))f))f) ) f)!)!f)")"f)#)#f)$)$f)%)%f)&)&f)f 'f?.P9P9vv@@jjAA==\\[[ZZYYWWUU9//K//\//p//// ˞x?.rrx" 87623228762322V3M|3M|3M|^3] ^3]87623225# 876$2'-lU [8766)8766))8766)0# [8766 8766 ) )  )EE W32232232232287623226+)))-- -))W8766)8766)8766)8766sP#  ~ ~) )  )E E W32232232232287623222&/ /  // //    44 4EE E44 W!%) )   ) ))  )))  )@2@@K7W-N--R-876$2'-$R6w///// / W87666/EEE ~# [876,6/ @W876,6/ @W ~X ~ ~ \876,6/ @h# }}@@@// /EEW32232232232287623226  W @ @ @ @876,6/ @6} ˞x?.[Ue޿   BBb0Too.. W ..6  6  2  2 $ 2' > 12A U K2X876W2"26"6$ 33i876W2"26"6$ 33b[876W2"26"6$ 33l876W2"26"6$ 3333m33)z) p.}Ю))-a..2W  2  6..-.;. ->p@876VW2Y22Y6[ jjZ876VW2Y22Y6[ jj S[876VW2Y22Y6[ jj]876VW2Y22Y6[ jjjj^jj)p)a-sM;..6jjjj))-..2876W2226 876W2226  [876W2226 876W2226 )). .. 2"v));),->_s;.].JM`g)y)j6|..M876W2226     876W2226      [876W2226     876W2226              )) 6))./..2  6 2 65.O.96R.q.V6t)) z.y".. 6.. -0g         )) 6))-Q.#.2&` ? +6B _ F6b.|.f6..6)) -EQb.. 6.. -!876W2226 876W2226  [876W2226 !876W2226 ")/) %.2)N)?.Qs.q.^2t  y2  6..-؊..-@K..6)() -+\)F)7.IXp.i.V2l#  q2  6..-(..-HK. .6) ) -#/\)?)0-B .a.N2d8 } i2  6..-h..-PK. .6  ) )  - r)7 )( .: .Z .G 2] @ v  b 2y   } 6 . . - ،. . - XK. . 6  ) )  - u)-)/ ) -2 .x2.Q .> 2T g n  Z 2q   u 6 . . - . . - K. . 6  ) )  . )( ) -+ Dq .J .7 2M o g  S 2j   n 6 . . - . . - K. . 6 876SW2V22V6X . 876SW2V22V6X .  [876SW2V22V6X . 876SW2V22V6X .. . . . H876~/e4. 876~/e4 " [876~/e41 876~/e442 A45 n49 y4= T4@ y4D p4H e4L 4N V4Q E4T R4W S4Z I4] O4` N4c 4e F4h B4k _4n S4q u4u m4y _4| T4 e4 s4 t4 4 _4 _4 M4 A4 I4 N4 4 T4 w4 o4 P4 l4 u4 s4 T4 w4 o4 E4 q4 u4 a4 l4 s4 F4 o4 u4 r4 4 F4 B4 _4 i4 n4 i4 t4 4 Z4 e4 r4 o4 P4 l4 u4" s4& Z4) e4- r41 o45 E48 q4< u4@ a4C l4G s4K Z4N e4R r4V o4Z 4\ P4_ R4b G4e _4h T4k E4n S4q T4t 4v F4y B4| _4 S4 u4 m4 4 F4 B4 _4 I4 N4 I4 T4 4 _4 _4 M4 A4 I4 N4 4 C4 o4 n4 s4 t4 a4 n4 t4 s4 4 T4 Y4 P4 E4 _4 C4 L4 A4 S4 S4 4 I4 M4P4L4I4 C4 I4T4_4F4U4N4C4"T4%I4(O4+N4._41P44O47I4:N4=T4@E4CR4FS4I4Ki4Oo4Ss4Wt4[a4^n4bd4fa4ir4md4q,4t 4w34z.4}54.41454.404 4(4s4y4s4t4e4m4)4434s4l4i4c4e4n4s4e4,4 434.454.41444.404 4(434s4 4-4 4s4 m4a4r4t4 4s4"o4&f4*t4.w42a45r49e4= 4@s4Do4Hl4Lu4Pt4Ti4Xo4\n4`s4d 4gg4km4ob4rh4v)4y4{b4~r4e4a4k4p4o4i4n4t4 4l4o4g4g4i4n4g4 4f4u4n4c4t4i4o4n4s4,4 434.454.454.404 4(434 s4 4-4 4s4m4a4"r4&t4* 4-s41o45f49t4=w4Aa4Dr4He4L 4Os4So4Wl4[u4_t4ci4go4kn4os4s 4vg4zm4~b4h4)44c4f4u4n4i4t4,4 414.414.404.404 4(4o4p4e4n4 4s4o4u4r4c4e4)4o  sSsS  BB`S[876y2|   876y2|         1 1    6..6..-HF..-V       1 1  2@ " 2%.1.'64.>.6-A.^.I-a80   m   1 w1 n2z  }6..6../..6      1 1 2  6../../..6   %   1 /1 &22 < 46?.K.A/N .[.S/^.x.c6{876y2|    T--2     W876y2|   876y2|   876y2|     a_I) BB BB4`48444444h4 P4 4 4 4 4 4 484444@4x4 4 4 44P44444 4 4!4"(4#4$4%4&4'4((4)4*H4+4,4-4.!4/H40)41342443`544X64584684794849:4:;4;=4<P?4=?4>@A4?A4@xC4Ap4B8E4C)4DG4E`M4FP4G4H4I4J4Khc4L4M4NS4OS4P4Q04R4SX4T0r4UH4V4WHr4Xr4Y 4Z@s4[s4\4]Ȉ4^@4_X4`x4a4b(4cX4d4ep4f(4gH4h4ix4j4k4lؐ4mPt4n4ov4px4q4rXz4s4t4u@4v4w4x4y؅4z4{x4|(4}8t4~ 4$4c4p 40o440p4x444` 4(4x4 48 44HP48 44`P4 4 4P44 444 44484` 4`44044 4 4_4 4@444h`4 484`4a4 4@ 4c40e4g4h4n444o4H 4`4o4 4 4Hq4s4t4v4z4 {4 44@|4 4X|4p 44444444P44444H4p44 44 44 4 4ؚ4p$4 D4E4F4q4u4@x4`|444P4444p444(4444@4(444 44)40+44p24P?4?4D4PG4G4H44(T44044 4 4 4 H4 p4`4@44444484؊4(4h4،44440444 4!4"4#4$ 04%4&4'(4(4)4*4+04, 4-X4.4/ 4004142X434445h464748@49X4:4;4<4=x4> 4?P4@04A4Bx4CȰ4D4Ex4Fض4Gp4Hx4I 4JH4K4L4MP4N4O84P04Q4R84S4T4U 4VX4W4Xx4Y4Z4[h4\4]4^4_4`4a4b4c4d4e4fp4g04h4i4j4k84l804mP$4nX4o4p4q4r4sH4tx4u4v4w(4xX4y`4z4{4|@4}p4@ ~BB }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} ^876'2*+@b8876V6Y@  |"|":#IF kE$oF5a$3M|5%3MF xƹ%kƠU}&876W2266 ****&876W2266 4&*"**"*8*"**"*/C/ *9/94T4 *J4J*"**"*...@.F ~ Oˎ%#  ='U66))d))r66))66))66))))66))66))66)) 88) ) 66) ) 66) )  66) ) ) )*6699))9))I))Z))l66)){66))66))66)))))))))))) ))))/))>))L))] ) )o!)!)")")#)#)$)$)%88)%)&)&) 'g!! ~77(&[876M/876M///////////// ///$/-/6/?/H/Q/Z/c/l/u/~////////////////// /)/2/;/D/M/V/_/h/q/z//////////////// ///%/./7/@/I/R/[/d/m/v///////////////////!/*/3/</E/N/W/`/i/r/{//////////////// ///&///8/A/J/S/\/e/n/w/////////////////////'///7/?/G/O/W/_/g/o/w//////// / / / / / / / / / / / / / /' // /7 /?/G/O/W/_/g/o/w//////////////////////'///7/?/G/O/W/_/g/o/w////////////////// / / / 876M/O 77(([876Z M] )r 876Z M] ) )x 3~> ) 3~> ) 3~? ) = ) e> ) > ) e? ) ƫ7> ) ƫ> ) ƫ7? )" > )3 > )D ? )U P= )f Pk> )w P> ) Pk? ) @<> ) @> ) @ ) v> ) v? ) ½= ) ½p> )! ½> )2 ½p? )C Η@> )T Η> )e Η@? )v  > )  > )  ? ) ߄= ) ߄v> ) ߄> ) ߄v? ) 7E> ) 7> ) 7E? ) > )1 ŝ> )B ? )S |o= )d |o|> )u |o> ) |o|? ) I> ) > ) I? ) !> ) > ) !? ) 9?> ) 9?> ) 9?? )0 = )A N> )R > )c N? )t o%> ) o> ) o%? ) QY> ) QY> ) QY? ) = ) S> ) > ) S? )h)> )/h> )@h)? )Qx> )bx> )sx? )'= )'X> )'> )'X? )x-> )x> )x-? )# > ) #NJ> )# ? ).k = )?k ^> )Pk > )ak ^? )r1> )> )1? )> )> )? )_= )_c> )_> ) _c? )!5> )-!> )>!5? )O> )`焑> )q? )= )h> )> )h? )C:> )C> )C:? )> ) > )? ),(k= )=(kn> )N(k> )_(kn? )p >> ) > ) >? )> )> )? )$= )$t> )$> ) $t? )PC> )+P> )<PC? )M@> )^@> )o@? )= )z> )> )z? )H> )> )H? ) > )> ) ? )*> );> )L? )]? )nL> )> )L? ) #> ) ף> ) #? )o> )o> )o? )= )Q> ))> ):Q? )K'> )\ŧ> )m'? )~7> )7> )7? )= )V> )> )V? )w+> )w̫> )w+? )(_p > )9_p> )J_p ? )[= )l[> )}> )[? )/> )> )/? )̼ > )̼> )̼ ? ).= ).a> )'.> )8.a? )I$4> )Z$> )k$4? )|}> )}> )}? )= )f> )> )f? )w8> )w> )w8? )&> )7> )H? )YJ= )jJl> ){J> )Jl? )<> )> ) )> )? )= )q> )%> )6q? )GmA> )Xm> )imA? )z> )> )? )= )w> )> )w? )F> )> )F? )$t> )5t> )Ft? )W= )h}> )y> )}? )J> )> )J? )`B"> )`B> )`B"? )> )΁> )#? )4= )EO>876Z M] )^$,[876lMo-876lMo--a-*-JU--6"-;lD-v؈-~^-6-ym- 2-c+-%ǔW-2(-?O#-LF-Y>!-f-sL 8-p-k-p,-Y--#-G-3~-ײ-e9-\r-y---)[-6]-C$-PwI-]-j*c-wT:-u--/- ^--%-M;K-v--q/<-^x-- %0--K`-:aB-GÄ&-T M-aNh-n-{8=-pB{--M1-b--kq'-N---?- 7~-Y>-$|2-1ed->1-Kc(-XP-e'-rO -@-:?-r-3-eg--[)-ӷR-*-T!-,B-QY-Cx-(4-5i-B--OZ*-\ T-i-v!--"}-"-"2-"d-"-#(-#P-#-,# -9#@-F#-S#-`#333-m#fff-z#z-#(-#Q-#Nb-# -#7A-#o-#6-#m4-#h-#- $k)-$S-#$-0$!-=$C-J$7-W$-d$5-q$_k-~$y-$*-$;)?<)@<)A<)B<)C <)D(<)E0<)F8<)G@<)HH<)IP<)JX<)K`<)Lh<)Mp<)Nx<)O<)P<)Q<)R<)S<)T<)U<)V<)W<)X<)Y<)Z<)[<)\<)]< )^< )_= )`= )a= )b= )c = )d(= )e0= )f8= )g@= )hH= )iP= )jX= )k`= )lh= )mp= )nx= )o= )p= )q= )r= )s= )t= )u= )v= )w= )x= )y= )z= ){= )|= )}= )~= )> )> )> )> ) > )(> )0> )B )8> )@> )H> )P> )X> )`> )h> )p> )x> )> )> )> )> )> )> )> )> )> )> )> )> )> )> )> )> )? )? )? )? ) ? )B )B )C )C )C )(? )0? )8? )@? )H? )P? )X? )`? )h? )p? )x? )? )C )? )? )? )? )? )? )? )? )? )? )? )? )? )? )? )@ )@ )@ )@ ) @ )(@ )0@ ) C )(C )0C )8C )@C )HC )PC )XC )`C )hC )pC )xC )C )C )C )C )C!)C!)C!)C!)C!)C!)8@!)C!)C!)@@!)H@!)P@!)X@!)`@!)h@!)C!)C!)C!)C!)D!)D!)D!)D!) D!)(D!)0D!)8D!)@D!)HD!)PD!)XD!)`D!)hD!)pD!)xD!)D!)D!)D!)D!)D!)D!)D!)D!)D!) D!) D!) D!) D!) D!)D!)D!)E!)E!)E!)E!) E!)(E!)0E!)8E!)@E!)HE!)PE!)XE!)`E!)hE!)pE!)xE!) E!)!E!)"E!)#E!)$E!)%E!)&E!)'E!)(E!))E!)*E!)+E!),E!)-E!).E!)/E!)0F!)1F!)2F!)3F!)4 F!)5(F!)60F!)78F!)8@F!)9HF!):PF!);XF!)<`F!)=hF!)>pF!)?xF!)@F!)AF!)BF!)CF!)DF!)EF!)FF!)GF!)HF!)IF!)JF!)KF!)LF!)MF!)NF!)OF!)PG!)QG!)RG!)SG!)T G!)U(G!)V0G!)W8G!)X@G!)YHG!)ZPG!)[XG!)\`G!)]hG")^pG")_xG")`G")aG")bG")cG")dG")eG")fG")gG")hG")iG")jG")kG")lG")mG")nG")oG")pH")qH")rH")sH")t H")u(H")v0H")w8H")x@H")yHH")zPH"){XH")|`H")}hH")~pH")xH")H")H")H")H")H")H")H")H")H")H")H")H")H")H")H")H")I")I")I")I") I")(I")0I")8I")@I")HI")PI")XI")`I")hI")pI")xI")I")I")I")I")I")I")I")I")I")I")I")I")I")I")I")I")J")J")J")J") J")(J")0J")8J")@J")HJ")PJ")XJ")`J")hJ")pJ")xJ")J")J")J")J")J")J")J")J")J")J")J")J")J")J")J")J")K")K")K")K") K")(K")0K")8K")@K")HK")PK")XK")`K")hK#)pK#)xK#)p@#)K#)K#)K#)K#)K#)K#)K#)K#)x@#)@#)@#)@#)@#)@#)@#)@#)@#)@#)@#)K#)@#)@#)@#)@#)@#)@#)K#)K#)A#)A#)A#)A#) A#)(A#)0A#)8A#)@A#)HA#)PA#)XA#) `A#) hA#) pA#) xA#) A#)A#)A#)K#)K#)K#)K#)K#)L#)A#)L#)A#)A#)A#)A#)A#)A#)A#)A#) A#)!A#)"A#)#A#)$B#)%B#)&B#)'B#)( B#))(B#)*0B#)+8B#),@B#)-HB#).PB#)/XB#)0`B#)1L#)2L#)3 L#)4(L#)50L#)68L#)7@L#)8HL#)9PL#):XL#);hB#)<pB#)=xB#)>`L#)?B#)@B#)AB#)BhL#)CB#)DB#)EB#)FB#)GB#)HB#)IpL#)JxL#)KL#)LB#)MB#)NL#)OL#)PL#)QL#)RL#)SL#)TL#)UL#)VL#)WL#)XL#)YL#)ZL#)[L#)\L#)]M$)^M$)_M$)$@  `BB$$$$ @$@$ @$@$ @$@ $$ LIπ$$$ $ . p$.$ .p$.$ .#p$.$ .&p$. $ . "p$.!$ .!p$."$ ."*p$.#$ .#$p$.$$ .$#p$.% $ .%#p$.& $ .&,$.' $ .',$. $ .+$. $$ L}~ٱ@i$$$ Y$ @Y$@Z$ @Z!$@[$ @[!$@\$ @\$$@]$ @]$$@^$ @^# $@_$ @_'@$@`$ @`$$@a$ @a&$@b $ @b#$@c $ @c-$@U $ @U$$@e $ @e"$@ $$ s y:X$$$V$ @V$@H$ @H&$@ $$ sy$$$F$ @F$@G$ @G  $@[$ @[$@H$ @H$@I$ @I$@J$ @J$@K$ @K $@]$ @]$@`$ @`$@L $ @L"$@M $ @M  $@N $ @N!$@O $ @O "$@P $ @P"#$@Q$ @Q"$$@R$ @R!0$@S$ @S 1$@T$ @T!2$@U$ @U @$@V$ @VA$@W$ @W B$@X$ @Xd%@Y% @Y"e%@Z% @Z%@% @%@ %% sAW"%%% )!%)% )%)% ) %)% )%)% )!%)% )" %)% )'@%)% )%) %% søc/%% % % ) $%)% )%%) %%  txe@LP%%%+% @+%@,% @,%@-% @-%@.% @.%@% @ %@0% @0%@ %% T± ,%% %Q% @Q%@I% @I%@ %% Q94w%% )%)% @%@% @%@ % ) ,%) % ) )%) % ) '%)% ))%)% )'%) %% 7ݠڊ%% %% .%.% .%. %% 7*uHK%%%%00%^3]0 %%320 %% oޞ!~m<%%%%80%^]8"%%%%28 %% ovW%%% %>0%^]^>%%%%2>^ %% ogF۱%%%%D%<D5%%%<G%<G5%%%< %% o$X`%%%%N%N%Q%Q%T%T%X%X% %% oPLd%%%%%`%|`$e\&&&|d0&^],d$%&%&2d,g.1&^] g%%&%&2g  && o1iUE&&& &#::QQ #  $::MMSS $  %JJPPQQ .% &.&JJRR0&@w&&&0)JJRRH10)@w&&&0*IIJJKKP1&::*:&5,CCGGJJKKMMRRL1&) D&& VRI_!MPc&% @# @ [&& JRI_ 3Dv && $ CQQ.& .D.& .E.& .F.& .G.  .%.  .&&& JRI_0Tkc9&& & 4&3M 5W3M (3M 3M  ,&&3M  D&& fn DF< && &oBB5& __o _5r0&&5ukkCCDD`T&&  u-5x88CCDDhT&&C3M  x! 5CChU&&5}*            !!""##$$%%&&''(())**++,,--iU&&kkww00CCDDjU& , & kkww00CCDDpU&876V "  ||"  |3   X D&&  ѫXcQo,' |&&  llww{{}} ,  ww}}66 d   KKVVWWYYZZ[[ggrrssuuvvww ,   |&&  HXwwv&& &4 & 44& 44& 4 4 & 4&&  nFWFhF&& &. . ^&^3]&&C3M     &&  XU:U:& &5aabb_&PPP `&VV V& O&&  d`\ \ v &&& $ C&.& .D&.& .E&.& .F&.& .G&.  .%&.  .&& t++v&& (   ==@@AA/|/ ==@@AA/|/   ==@@AA/|/ ==@@AA/|/   ==@@AA/|/ ==@@AA/|/ ==@@AA/|/   ==@@AA/|/   ==@@AA/|/ ==@@AA/ |/ ==@@AA/ |/ ==@@AA/ |/ ==@@AA/ |/ ==@@AA/ |/ ==@@AA/|/ ==@@AA/|/ ==@@AA/|/ ==@@AA/|/ ==@@AA/|/ ==@@AA/|/==@@AA/|/==@@AA/|/ ==@@AA/|/==@@AA/|/==@@AA/|/ ==@@AA/|/a ==@@AA/|/ ==@@AA/|/ ==@@AA/|/b ==@@AA/|/c ==@@AA/|/d ==@@AA/|/e ==@@AA/ |/f !==@@AA/!|/g "==@@AA/"|/h #==@@AA/#|/i $==@@AA/$|/j %==@@AA/%|/l&==@@AA/&|/n'==@@AA/n  n&|/|&& (`2pCssqqyyxxwwvvuu&& SS  IIJJKK__& .&.IIJJKK& .&. & .&.& .&.& .&. & . &. & . &. & .  &. & .  &.  & .  &. & . &. & .&. & .&. & .&.& .&.& .&.& .!&.& .&.& .&.' .'.' ."'.' .'.' .!'.' .'.' ."'. ' . #'.!' .!'.:' .:#'.K' .K!'.<' .< '.=' .=!'.>' .>"'.? ' .?#'.@!' .@"$'.A"' .A#%'.B#' .B &'.C$' .C!''.D%' .D('.E&' .E)'.G'' .G0'.H(' .H1'.I)' .I2'.J*' .J!3'.N+' .N"4'.O,' .O"5'.P-' .P6'.Q.' .Q7'.e/' .e8'.f0' .f'9'.d1 .d!:'.c2' .c";'.g3' .g%<'.&4' .&$'.'5' .''.(6' .(#'.)7' .)&'.*8' .*'.+9' .+ '.,:' .,'.-;' .-&'..<' ..! './=& ./ '.0>' .0" '.1?' .1% '.2@' .2! '.3A' .3"'.4B' .4'.5C' .5'.D' .'.`E' .`'.^F' .^#'.aG' .a'.bH' .b'.lI'.l"&'.oJ' .o<'.pK .p<'.qL .q<'.rM .r<'.sN .s<'.tO .t9'.uP .u='.vQ .v:'.wR .w: '.xS .x= '.yT .y= '.zU .z= '.{V .{= '.|W .|='.}X .}='.~Y .~='.Z .='.[ .='.\ .='.] .='.^ .:(._ .:(.` .=(.a .=(.b .=(.c .:(.d .:(.e( .=(.f .=(.g .=(.h .=(.i .= (.j .=!(.k .="(.l .=#(.m .=$(.n .=%(.o .=&(.p .='(.q .=((.r .=)(.s .=*(.t .=+(.u .=,(.v .=-(.w .=.(.x .=/(.y .=0(.z .=1(.{ .=2(.| .=3(.} .<4(.~( .25(. .%6(.i .i*7(. ((( cJGJG( (1P`41 (C4VV1V2JJPPX`4 2$((C4VV2V0``40((40(((C4VV0V (( δt1 =ޥ = (( .(.JJww .(. .(.PP .(. .(.  . (.  . (. .(. (( 'q199(  .(. .(.oo .(.oo .(. . (.  . @(.  . (. oo . (.  . (.  oo . (.  .(.  .(. PPRRp..p.2.W... o(.o!((. o5((. oF((. o(( rv1//&(((QQh`((4*(C4VVV ((  .kqkq((00(.<. 3(( &g&g( (( )()__aa( )() )"^() p(( kjKjKj((`UHPR3E 3HUBkfHEPjt 3HUBk!HEP,t Hp@Hf3HUBkZXfff(De(((`UHPRQWVPH H#H$HH3ɱHx@HUHRH3H HH0D$H X^_YZXff(`zSx?.oS68(((UHPRQSH3f&HEH&HEH&H 3$/uD$HE HD$H=HUHRH3H HH0D$H H HEH$HEHD$H:HfD$H H 0u$D$HE HD$H=HUHRH3H HH0D$H [YZXffff( 9Oˎy+(((C((M((((8$((t;v{((t;`!4((t;t ((t;%@((t;_!$((t;^kC((t;]Z_((big ((bw}((b''h((b{b6Z((b((b@((bG((b<(((UHHPRQPH3HE(3E3EHEHHUHƒ ƒt H3HE(3E3EHEE;kE3Ҳ(HcHU E H;uAEU$;u.HEE+HEE3Ҳ(HcHUH HM(EEEEH3HE(XYZXHff(ky3 V\7+@6/CB4 fk3QV?L Q0G/@ G.W % ((((UHHPRQPH3HE(3EH3HEHEHHUHƒ ƒt H3HE(HEHE HMH+3ɱ(R3ZHc+ЉUEHU ;~HEUHEHEHE HEE~CHEHP HE H;uEHUHEHE(#EEHE3Ҳ(HHEH3HE(XYZXHff(t;IK>5NU="<;rO5 4~ 2Vq x1]N TRIQBIPX '((((UHHPRQPH3HE(3EHEHHUHƒ ƒt H3HE(q3EHEE;UE3Ҳ(HcHU E ;u.HEE+HEE3Ҳ(HcHUH HM(EEH3HE(XYZXHff(?  LR4$x~.\aGL'B);B(\  ((((UHHPRH3HE(3EH3HEHEHHUHƒ ƒt H3HE(HEu3HUH3HE(oHEUHE3Ҳ(HHEE~CHEHP HE H;uEHUHEHE(#EEHE3Ҳ(HHEH3HE(ZXHff(h]KBH5GEZ!DOqi;w}hk qdfc_ fbW ]fPL RWGV@GUW%(((UHHPRQPH3HE(3EHEHHUHƒ ƒt H3HE(s3EHEE;UE3Ҳ(HcHU E ;u.HEE+HEE3Ҳ(HcHUH HM(EEH3HE(XYZXHf(Pϵ  NT3230z"^cGN'B);B([  ((((UHHPRQPH3HE 3EHEHu H3HE }HEPu H3HE e3EHEPE;wHE3Ҳ HUHJE;u E3Ҳ HUHJHHU EEH3HE XYZXHf(  KR;y~\aFK"A!:A W.5)" )D  ((((HUHHPRQP3E3EHEPHEH ʉMEEXYZXHfff(*5E6>06$?((((UHHPRQP3E 3fE3EHEHuHEHt 3HU3E HEPƒHEH3; уt2H HEH$HEHD$H@HfD$H E HEP3;u>H HEH$HEHD$H@HfD$H fEEHE dHEP3 ;u;H HEH$HEHD$H@HfD$H EEHE HEHt 3HU3E XYZXHffff(%T\!OT*!EM)>;CX6TW6,3VF(V !)V !U]T\4[D ([ [ Z KTJYp (J J xED L?T!:?3!082@&.0$((((UHHPRQP3E 3E3fEHEHuHEHt 3HU3E HEP3 ;u1H HEH$HEHD$H@HfD$H E HEPƒHEH3; уt=H HEH$HEHD$H@HfD$H EEHE gHEP3;u>H HEH$HEHD$H@HfD$H fEEHE HEHt 3HU3E XYZXHffff(%U]"PU*!FN)><Dm7Ut6,4sD(s $s kiUh7rE (r r g NUM[T (M!u}M!pu\ID L5?U4":?2!081@&.0$((((UHHPRH3HE 3EHEHu HEHt 3HUH3HE XHEP3#Ѕƒt#HEHt3HUHEHPHU HEHt 3HUH3HE ZXHfff( %ݩۡ$*!)>}-x.6lt,dj+9Zb&@G;$4 ;3!* 22@  (0  (((UHHPRQP3fE 3E3EHEHuHEHt 3HU3fE HEP3;u3H HEH$HEHD$H@HfD$H fE HEPƒHEH3; уt>H HEH$HEHD$H@HfD$H EEHfE fHEP3 ;u>Fh9Xj6.5gF(g #+g # faX`5eE (e e _ IXHYU (H v{H qv]DE M@X!:@3!082@&.0$(((f((-(( V((((((E((.((.d((.Ou((.֓((.V,((.]((7c((7&g((7G((E7ƲA((E7 ((E7j3((E7 ((E73)((E72H((E7`PZ((T^k?V((T^Ӈd((T^ ۑ((T^D((T^;((T^X6(((UHHPR3E H3HE3EHEP3#ЅƒtUHEHt3HUH HEHPH$HEHD$3fD$H @HfD$H EE `HEP3#Ѕƒt-HEHt3HUHEHPHUHEU HEHt 3HU3E ZXHff( i`&+L(((UHHPR3E H3HE3EHEP3#ЅƒtTHEHt3HUH HEHPH$HEHD$3fD$H @HfD$H EE _HEP3#Ѕƒt,HEHt3HUHEHPHUHEU HEHt 3HU3E ZXHfff( iM(((UHHPR3fE H3HE3fEHEP3#ЅƒtVHEHt3HUH HEHPH$HEHD$3fD$H @HfD$H EfE bHEP3#Ѕƒt.HEHt3HUHEHPHUHEfU HEHt 3HU3fE ZXHffff( H\E6(((hUHPR3fE"E fE"E ~W\0>RW*n 5(*8*8 G   (;;ow_fSZGN)5;8(  t((UHVPHuX^ffff(S\  (  w((UHHPRQWVPHuXHVHH3^3fE3fE3fE3fE3fE3fEFjU;V)҃#ƒ HFHpUHPPHHH$HH HQ0H HfT$HXXV HFH$HFHPHHfHF! H| Test suite '%s' with ID=XH$VHH3ɱ^HFlHU $3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^ finished runningXH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱ^H3$HHT$VHH3ɱ^FlHUH H$VHHQ3ɱY^HpAHf$HH| ID=XH$VHH3ɱ^HFlHU $3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^ number of tests=XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^HFlHU $3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱ^H3$HHT$VHH3ɱ^XH$VHH3^HpAHf$HH| ID=XH$VHH3ɱ^HFlHU $3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^ number of failed tests=XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^HFlHU $3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱ^H3$HHT$VHH3ɱ^XH$VHH3^HpAHf$H3fEEVlPRZXHM;jH3$| Test name=%sXHT$VHH3ɱ^E3ҲVlPRZX‹HUHH$VHHQ3ɱY^HpAHf$HH3$| Test class name=%sXHT$VHH3ɱ^E3ҲVlPRZX‹HUHH$VHHQ3ɱY^HpAHf$HEfEfFjU;u 3F) FfFH3F HFH$HFHPHHfHFjU;V(҃#ƒjUfE3fEEjU;EUlPRZXHMfEElHUElHU+EfEEUlPRZXHMfEEfE=H3$%sXHT$VHH3ɱ^-| ==========TESTS FINISHED RUNNING==========XH$VHH3ɱ,^HpAHf$HH3$| Test suites: %sXHT$VHH3ɱ^HE$3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HpAHf$HH3$ | Tests: %sXHT$VHH3ɱ ^HE$3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HpAHf$HH3$| Successful tests: %sXHT$VHH3ɱ^HE$3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HpAHf$HH3$| Failed tests: %sXHT$VHH3ɱ^HE$3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HpAHf$HH3$%sXHT$VHH3ɱ^)| ======================================XH$VHH3ɱ(^HpAHf$H3F(X^_YZXHff(S$蕖 %[ X (XXUT6((UU[R 6(   (RFMRAF O 6(A F < A (O  O   L0 6(    (L  L  7 I (I" ) I "  C4(   Fz] e E   Dh   C,  B?   A   <&x (<%  <%  ~ : Am t 8 !d k 7U ` +,71  (1 7 > 1 2 7  - (-   -   +$&N(&&U$i6(($$ p"t("b*2"b%* 6(;@6;(  t({6((5=05m([PX[KP6(hmch( ( m( [MU [HM  6(ej`e(   V !s"(#P#P(rrL Z#e$8(  {({䕖k (  ((0UHPRVPHuF ЃV#ЈV FF X^ZXf(hc{I_aI %* %  ((  ((UHVPHuX^ffff(c_J)  (  ((UHHPRQWVPHu3fE3fE3fE3fE3fE3fE3fE3fEH5HH$HHPHHfH H3$%sXHT$VHH3ɱ^-| ==========EXPORTING XML RESULTS===========XH$VHH3ɱ,^HpAHf$HjUfE3fEEjU;EUlPRZXHMfEElHUElHU+EfEEUlPRZXHMfEEfE=H'XHT$VHH3ɱ&^HH$HFHfHH testsuitesXHT$VHH3ɱ ^HH$HEHfHHtestsXHT$VHH3ɱ^HE$3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HH$HEHfHH failuresXHT$VHH3ɱ^HE$3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HH$HEHfH3fEEU;H testsuiteXHT$VHH3ɱ ^HH$HEHfHHnameXHT$VHH3ɱ^ElHUH H$VHHQ3ɱY^HH$HEHfHHidXHT$VHH3ɱ^HElHU $3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HH$HEHfHHerrorsXHT$VHH3ɱ^HElHU $3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HH$HEHfHHtestsXHT$VHH3ɱ^HElHU $3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HH$HEHfHHHH$HEHfHT$HVHH3ɱ^H3fEEUlPRZXHM;0H testcaseXHT$VHH3ɱ^HH$HEHfHHnameXHT$VHH3ɱ^E3ҲUlPRZX‹HUHH$VHHQ3ɱY^HH$HEHfHH classnameXHT$VHH3ɱ ^E3ҲUlPRZX‹HUHH$VHHQ3ɱY^HH$HEHfHHHH$HEHfHT$HVHH3ɱ^HHfailureXHT$VHH3ɱ^HH$HEHfHHmessageXHT$VHH3ɱ^Assertion messageXH$VHH3ɱ^HH$HEHfHHexpected: actual: XHT$VHH3ɱ^HH$H0FHfHHHH$HEHfHT$HVHH3ɱ^HEfEEfE:HHH$HEHfHT$HVHH3ɱ^HHHEH$HxFHfD$HX^_YZXHff($m)ꕖC "+ 0 X (X # + X  #   (     ] q,'Y a g (    n  % ( $` g  $[ `   2 ( 1   1   ~ P (~   ~   W |  (| , 1 | ' ,   pn ( o   o  uz f (z egnz ebgy  (y y q$QYo (o -2o (-lSQ6((lRlRXhZ6((hYJQhYEJK6(7<27(JJd9^(d8d8e_(_W^_RW]FR6((EEYG6((FKRFFKP`(PPgWL(WKY`WKTY4(5@zv}hHP,-5?")(2 }kI (jx}jsxT!8(  ((UHPRQWVPHu3EHHFHT$VHH3ɱP^Fd$HFhH$H@EHf$ HH HHD$HHH$HFHfD$HD$HFhH$H8EHfD$H HHFhH$H(EHfD$HHHH$H@FHfHX^_YZXff(0o̲: /(//; (; ; :/`(:":"(:.:.k9F(9ERY9EMR8(  ((UHHPRQWVPHu3E ./output.xmlXHVVHH3ɱ ^3FdHHFhH$HHEHfD$HHED$ED$ HFhH$HEHfD$ HHHH$H(FHfD$HHED$ED$ HH$HEHfD$ H33EE=3UEE3fHHH$HDHfD$HHED$ED$ HH$HDHfD$ H33H^HVVHH3ɱP^H HHD$D$HH$H8FHfH 3X^_YZXHfff(0p[鱕2  A(@@,8(  ((UHVPHuX^ffff(0r a[i  (  ((UHPRQVHu3E$H3HE(HFH;h`tZH0HFH$HEHD$E HD$HE$HD$HAHUHRH3H HH0HD$ H0HE(^YZXffff(HrE ƕ̘ %(qvTb-##((  ((hUHPRQVHu3EHFH;h`t >c L R G( > > c(~(11i\(HU]HPU!U(@@S|(DDT/(CnvCin:8(  ((UHHPRQWVPHuXHUVHH3^XHVHH3^XHVHH3^HpHHT$VHH3ɱ^D$\HFH$HXEHfD$`Hp;;ƒ#ƒH D$D$ HFH$HEHfHT$HVHH3ɱ^H HVHH3ɱ^HpHHT$VHH3ɱ^D$\HFH$HXEHfD$`HpHpHHT$VHH3ɱ^D$\HFH$HXEHfD$`HpH D$D$ HFH$HEHfHT$HVHH3ɱ^H HVHH3ɱ^HpHHT$VHH3ɱ^D$\HFH$HXEHfD$`HpH D$D$ HFH$HEHfHT$HVHH3ɱ^H HVHH3ɱ^HHUVHH3ɱ^X^_YZXHfff(j╖e  JO.5 N( E E Ws( C C~ (_eX(J#(J#Y(EEXW(BBbQ( H  HXi (EEt 8(  ((`UHPRQWVPHuHHEHT$VHH3ɱ^HFH$HhEHf$HX^_YZXff($ᕖIb RW(CK>C8(  ((UHPRQWVPHutOHHHT$VHH3ɱ^HFH$HEHf$H3HHHT$VHH3ɱ^HFH$HEHf$HHHEHT$VHH3ɱ^HFH$HEHf$HHHHT$VHH3ɱ^HFH$HEHf$HX^_YZXff(@ەR| ;@(,4',(i(pai(RZMR!N8(  ((PUHHPVHu3E3EHHFH$HxEHfD$HEEE^XHfff(]ٕh ;A( 08 +0 (  ((UHPRQWVPHuHHHT$VHH3ɱ^HFH$HEHf$HHHEHT$VHH3ɱ^HFH$HEHf$H3X^_YZXfff(؅ەx/ U(\(FNAF8(  ((UHPVHuH HEHD$E D$HFH$HEHfD$H H HF8HD$D$HF H$HEHfD$H H HPHD$3QD$H8H$HEHfD$H H HHD$D$HH$HEHfD$H ^Xfffff(L㕖, 6(55Hn(GGy<;(;ej;`eC2 (1271-2(  ((UHPRQWVPHu3H3D$H8H$HEHfD$ HH3D$HFH$HEHfD$ HXHPVHH3^XHVHH3^X^_YZXfff(xٕK  gm@(^cY^F(7<278(  ((UHPRQWVPHu3H3D$H8H$HEHfD$ HXHPVHH3^XHVHH3^X^_YZXff((UB㕖a z ]c@F(7<278(  ((UHVPHuX^ffff(ޕ[  (  ((UHH PRQWVPHuXHUVHH3^3Ep3Et3EH3HEH3HE3EHEHEHFUHHHEEU‹V;HU U3@Q;ƒ##ȃtGHEHEEEHEUHHEHFUHHUHHEzHEu3Et-E3ҲQ;u 3EtEU‹V;u3Et3HUEFHFUHHHE3HUEEpX^_YZXH ffff(ȈՕB ch]cU[)AH8>06))0& j p 1     )V ]NV IN8(  ((UHH PRQVHu3Ep3E3EH3HEH3HE3E3EHFUlHHEHEHEEUl‹V;HU #ȃHEHE;t0EEHFUlH‹UHHEHEHE3E9EEHFUlH‹UH‹UHHEHEUHHEREUl‰Ep^YZXH f(@~ ᕖX  " O U*5   +  R} GO!7 > 2 7 - 2((  ((UHH PRQVHu33E3EH3HEH3HE3E3EHFVHHEHEHEHEƒEN;#ЃHEHE;t0EEHFVH‹UH+HEHEHE3E9EEHFVH‹UH+‹UHHEHEUHHEWFU+ƒ^YZXH ffff(Xᕖ_f  % R Y,5  )  Y{ JR: A5 : 0 5((  ((UHPQH30H=HL$rHH-H=sH+HąHHH@PRQWVPHu3XHVHH3^H3HEH3HEH3HE3EHFHE3EFU;w"EHU EEEHEHEHFHEHEƒFN;#Ѓt0HEHEFFHEHHEHEHHEHHEHEƒFN;#Ѓt'HEHEHEHHEHEHHEHFVHHE3HUX^_YZXH0f(xtޕx|? IO#l9@Nwpksn^er.5H L (K J  I Fi ghgk8(  ((0UHHPVHu3E3EFEEE^XHf((?וb $(  ((UHH PRQWVPHuXHU VHH3^3 3$3EH3HEH3HE3EHE HEHFUHHHEEU‹V;U;ƒ#ЋEMM;#ЃtGHEHEEEHE UHHEHFUH‹UHHHEwE;u 3$&EU‹V;u 3$3$3HUE X^_YZXH f(XՕ HM?H7=/7)#-&p v / !    &\cT \ OT8(  ((xUHHPRQVHu3EHFHVƒ ƒt03EFU;w3UHNEE3F^YZXHf(wԕ_ ks&fk#@F$MR#;@6k9((  (( UHPVHu3EEF^Xff((Hו缊 (  ((0UHHPVHu3E3EFEEE^XHf(HӕB $(  ((`UHPRVPHu3E$HEHU ƒ ƒt 3E$E FHEHF3E$X^ZXfff(x|ᕖ' QV JQ BJ<B7Q 27J((  ((UHHPRQVHu3H3HEH3HEHEHEHFVHHEHEƒFN;#Ѓt0HEHEFFHEHHEHEHHEHFVHHE3HU^YZXHf(ؐ5˕S    #>E ypvcj#.5&. ((  ((UHH0PRQWATVHuXHVHH3^XHVHH3^3fHHH$HPGHfD$HH3D$3D$ HH$H GHfD$ H3fE jU; ҃#ƒbH HpUHPPHHH$HH HQ0H HfT$HXX H H$H HPHHfH H HpUHPPHHH$HH HH HfHL$HVHHQ3ɱY^HXXH$VHH3ɱ^HAHfH$HVHH3ɱ^HHVHH3ɱ^H lPRZXHLVHHQ3ɱY^  lPRZXf HpUHPPHHH$HH HH HfT$HXX lRZf HpUHPPHHH$HH HH HfT$HXX lRZf3f LpUI<$PPHHH$HH HH HfT$HXX;E HpUHPPH fT$HH$HH HH HfHL$HVHHQY^H XXHVHH^HHH$HXGHfHT$HVHH3ɱ^HPRZX3ɱPRZX lPRZXHVHHQ3ɱY^H HpUHPPHHH$HH HH HfHL$HVHHQ3ɱY^HXXH$VHH3ɱ^HAHfH$HVHH3ɱ^HPRZX3ɱPRZX lPRZXHVHHQ3ɱY^fi jU;u 3  f H3 H H$H HPHHfH jU; LpUI<$PPHHH$HH HQ0H HfT$HXX# ҃#ƒjUfF3fEEjU;F UlPRZXfF ElElRZ+F fF FUlPRZXfFEfES3 ^A\_YZXH0ffff(MZ敖qW |!us4(z=Ey vms,x?r|F(rOPrOPMM&(M%AFM%<AL A     ?,MQ 5(?,M?,MXk  2(kL kL!(kuNVkuINi }%(ipCHip>C,@ z6(@g@g?$F Qc3(cNS %cNS e5(eHMeHM\\ahXE)0`2(dLdL!(g PWs(#P!#P(rKPrFK8(  ((PUHPVHu3fE3fE3fE3fEFfEF fEF fEFfE^Xffff((Φ敖#N BG/:B 72: #*2 %"*(  (((UHPVHuH3HEHFHE^Xffff(xΦ敖ﰜ )(  ((UHVPHuX^ffff(V\ 7  (  (((UHPVHu3E E^Xffff(n7 (  ((8UHPRQWVPHuHEHVVHH3ɱ^X^_YZXffff(-%o3`7 ',8(  (( UHPVHu3^Xfff(nn  (  (((UHPVHu3EE^Xffff(8n (  ((PUHPRQWVPHuXHUVHH3^HFHUVHH3ɱ^X^_YZXfff(`in$. AF(08(  (((UHPVHu3E3 ^Xffff(o$`+. (((UHVPHuX^ffff(ؚ]MM#  (((UHHPRQWVPHu3@3A3DXHHVHH3^XHVHH3^3XHVHH3^3E3E3E3EiUt H HEH$HXJHfHT$H@VHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$H@VHH3ɱ^HHVHH3ɱ^0,+ƒ}؃E싅84+ƒ}؃EEU;t3@3A,E4E3DDU;E4+HcHU E,+HcHU \H $$$ $HE(/t 3@&EEEEDD]@ЃH ED$3fD$ ED$3fD$HE,HT$VHH3ɱ^HH$VHH3ɱ^H H$HhHHf$$H Ѓ@҃#ƒ<HHEH$HHHfHAЃHHE,H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHU,VHH3ɱ^SIZE = XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^SIZE = XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^ARRAY[XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^H0E,+HcHU$3D$HX@HfHT$H&VHH3ɱ^H0H$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^H0E4+HcHU $3D$HX@HfHT$H&VHH3ɱ^H0H$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHHHT$VHH3ɱP^HH$VHH3ɱP^HE,H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHf(|~""Y %~  b (bw ~ br w  _\ 7(< A 7 < (_K  _K}   ^=S (^,  ^,  Z ]S6((]B  ]B  \bnZd7((ZQ#+ZQ#YA(Y.GOY.BGXY(6(lqgl(XFXF/WUT26(v{qv(UCUC9T  SZ@ 6((SGSGGR 'QMt (QAQA{P_ fNB8(N Z_N UZJM_&Dx(D DC9qx9?!TZ>%KQ< Fq; >F:98(7,321/Lx~.R] c,K!1(,.,.(,6&,6)~ (7#"$8(((UHHPRQWVPHu3XHVHH3^iUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HEHT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HEHD$3D$$3HD$ HsH$HHHf$($(H0ЃUM;ƒ#ƒMHHEH$HHHfHH E$3D$HP@HfHT$HVHH3ɱ^HHT$VHH3ɱ^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HEH$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHfff(Ȫ  "'.6( 6(lqgl(-"-8(   \(    C_K1(BfkBaf(JJRF"7:A8(((UHH`PRQWVPHu333XHVHH3^XHVHH3^3JXHKVHH3^3L3PXHTVHH3^XHUVHH3^3E3EiUt H HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHKVHH3ɱ^,(+ƒ}؃L40+ƒ}؃PLP;t33(E0E3L;`E(+HcHU BE0+HcHU 8(((UHHPRQWVPHu3@3A3DXHHVHH3^XHVHH3^3XHVHH3^3E3E3E3EiUt H HEH$HXJHfHT$H@VHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$H@VHH3ɱ^HHVHH3ɱ^,(+ƒ}؃E싅40+ƒ}؃EEU;t3@3A(E0E3DDU;`E(+HcHU E0+HcHU <;t 3@#EEEEDD@ЃH ED$3 fD$ ED$3 fD$HE(HT$VHH3ɱ^HH$VHH3ɱ^H H$HhHHf$$H Ѓ@҃#ƒBHHEH$HHHfHAЃHHE(H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHU(VHH3ɱ^SIZE = XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^SIZE = XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^ARRAY[XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^HE(+HcHU  $3 D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE0+HcHU   $3 D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHHHT$VHH3ɱP^HH$VHH3ɱP^HE(H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHf(6> %N S = (=G N =B G  :] 6(    (:LR Z :LM R  9= (9,s { 9,n s ' 8ST6((8B8B[7/;5eP6((5R5RW4A(4.4. 3Y6(6;16(3F3Fz20T6(@E;@(0C0C/ .Z  6(NSIN(.G.G- ,M> (,A,AE+) 0) 8() $)) $(aPx(W;;B!!'% ;  r(,   Lx~ R] cK!1(..(6&6N 7#"$8(4((xUHPRQVHu3fEHHEH$HHHHfD$HPPHHUH$HHHHfT$HXX+fE^YZXfff(PF尕m joL5(05+03(3Y^3TY(( ((UHH`PRQWVPHu333XHVHH3^XHVHH3^3JXHKVHH3^3L3PXHTVHH3^XHUVHH3^3E3EiUt H HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHKVHH3ɱ^,(+ƒ}؃L40+ƒ}؃PLP;t33(E0E3L;`E(+HcHU E0+HcHU <;t 3#EEEEЃH LD$3fD$ PD$3fD$HE(HT$VHH3ɱ^HKH$VHH3ɱ^H H$HhHHf$J$H JЃ҃#ƒp HHEH$HHHfHЃHHE(H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHU(VHH3ɱ^SIZE = XHVHH3ɱ^HHH$VHH3ɱP^HL$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^SIZE = XHVHH3ɱ^HHH$VHH3ɱP^HP$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^H0xXH$VHH3ɱ^HE(+HcHU  $3fD$3D$HAHfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHTVHH3ɱP^ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HTH$VHH3ɱP^H@HfH$HVHH3ɱ^HHVHH3ɱP^H0xXH$VHH3ɱ^HE0+HcHU   $3fD$3D$HAHfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHUVHH3ɱP^ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HEH$VHH3ɱP^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHHT$VHH3ɱP^HH$VHH3ɱP^HE(H$VHH3ɱ^HKH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXH`f(: '  E (E  E   BG (B6  B6   A= (A,G O A,B G  @S( 6(l q g l (@B  @B  / ?  ;[ 7(<8~  <8y ~ (;F  ;F  % 9M(9:9:8A(8.QY8.LQ7Y26(v{qv(7F7F96  2g% 7(3:3:(2P2P,0TQ6((0C0CX/+ 8.Z\ 6((.G.Gc-6C,M(,A,A+{ )^8() v{) qvf(;Bx(&9!ms%dj _ W_r'0 ( ,    L! R"K#1(. . (6[c6V[ 7%$&8(8((UHHPRQWVPHu3fE3fEE;EHHHH$HXGHfHT$HVHWH3ɱ_^HHhT: u HH uu2EHHHH$H@GHfHEfE9X^_YZXHfff(OO޾l  3> #(  F( v{ qvM +3 "8(-((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HEHT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HEHD$3D$$3HD$ HsH$HHHf$(E$(H0EЃUM;ƒ#ƒCHHEH$HHHfHH0xXH$VHH3ɱ^HEf$3fD$3D$HAHfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHT$VHH3ɱ^H0xXH$VHH3ɱ^HEf$3fD$3D$HAHfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH$VHH3ɱ^HEH$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHff(enSg  2:(D<AD7<(88:(DD (6Zb6UZ(1 1 8(   \(   C_H1(BchB^c(JJOC77>8(((UHHPRQWVPHu3@3A3DXHHVHH3^XHVHH3^3XHVHH3^3E3E3E3EiUt H HEH$HXJHfHT$H@VHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$H@VHH3ɱ^HHVHH3ɱ^,(+ƒ}؃E싅40+ƒ}؃EEU;t3@3A(E0E3DDU;aE(+HcHUH ‹E0+HcHU H8(((@UHHPRQWVPHu3XHVHH3^XHVHH3^XH&VHH3^3&HH(H$HJHfD$HH3D$3D$ H(H$HJHfD$ H3X3Y3Z3[3\3`3d3h3l3p3t3x3f|3f~H3HH3HH3P$XH3P$XH3HH3HH3HH3HH3P$XH3P$X33XHVHH3^XHVHH3^3E3E3E3E3E3E3fE3fEH3HEH3HE3E3E3fE3fEiUtHHEH0E$C" '#V)*(UUQ*;(PPUO+;(TxTsxW}?,(F:Y.)(X3:X.3S/;(RRW0;(VVx1-sg#3((flsfgl*]4;(\#\a5;(``62V\8'(UUcQ+9;(PT\POT3U:;(T#+T#};7~\c=&(~[~[j}c.>;(}b[c}bV[9|i ?;(|h&.|h!&{ @< w vV B%(vU  vU   uQX C;(uP  uP  c tU$ D;(tTP X tTK P / s} EA o nd G$(nc  nc   mQm H;(mP  mP  x lU9 I;(lTe m lT` e D k) JF0 g$ fY L#(fX $ fX   eS M;(eR  eR   dWb N;(dV  dV  m cR OKY _M ^Y Q"(^XF M ^XA F  ]S R;(]R  ]R   \W S;(\V  \V   [{ TP Wv Vg V!(Vfo v Vfj o  US W;(UR  UR   TW X;(TV  TV   S YU O NV1 [ (NU  NU  8 MQ\;(MP) 1 MP$ )  LU];(LTLTK}^ZGFSZ`(FRFRaEO&a;(ENRZENMR1DSb;(DR&DRCuc_?>Ye(>X>X=SSf;(=R=Rz^<Wg;(<VKS<VFK*;hd7 6Vj(6U 6U5Qk;(5P5P4ULl;(4Tx4TsxW3}<miC/7.mo(.l07.l+0-ap;(-`-`,eyq;(,d,d+irnp'd&Vt(&U]d&UX]%Qu;(%P%P$Uv;($T$T#}wsV9y(UU@Qz;(P19P,1U{;(TT}|xVd~(UUkQ0;(P\dPW\;)U;()T(0)T#(x}O"Bo(AAwj7^e8((((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HE HT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HEHD$3D$$3HD$ HsH$HHHf$(E$(H0EЃUM;ƒ#ƒOHHEH$HHHfHH E$3D$HP@HfHT$HVHH3ɱ^HHT$VHH3ɱ^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HE H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHff( _d   ,6(  6(ej`e(++8(   \(   C_H1(BchB^c(JJOC77>8(,((UHHPRQWVPHu3XHVHH3^iUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HEHT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3 D$3HD$HEHD$3 D$$3HD$ HsH$HHHf$($(H0ЃUM;ƒ#ƒQHHEH$HHHfHH E$3 D$HP@HfHT$HVHH3ɱ^HHT$VHH3ɱ^HE$3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HEH$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHfff([ǮAJ  */06(6(tyot(/#*/#8(   \(    C_K1(BfkBaf(JJRF*7:A8( ((UHHPRQWVPHu3@3A3DXHHVHH3^XHVHH3^3XHVHH3^3E3E3E3EiUt H HEH$HXJHfHT$H@VHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$H@VHH3ɱ^HHVHH3ɱ^,(+ƒ}؃E싅40+ƒ}؃EEU;t3@3A(E0E3DDU;^E(+HcHU E0+HcHU <;t 3@#EEEEDD@ЃH ED$3fD$ ED$3fD$HE(HT$VHH3ɱ^HH$VHH3ɱ^H H$HhHHf$$H Ѓ@҃#ƒ@HHEH$HHHfHAЃHHE(H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHU(VHH3ɱ^SIZE = XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^SIZE = XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^ARRAY[XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^HE(+HcHU $3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE0+HcHU $3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHHHT$VHH3ɱP^HH$VHH3ɱP^HE(H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHfff( Ą.z3 %J O = (=C J => C  :\ 6(    (:KN V :KI N  9= (9,p x 9,k p $ 8SQ6((8B8BX7,85dN6((5Q5QU4A(4.4. 3Y6(49/4(3F}3Fx}20T6(>C9>(0C0C/ .Z 6(LQGL(.G.G- ,M< (,A,AC+' .) 8() "') "(_Nx(U99@!%% 9  r(,   Lx~ R] cK!1(..(6&6J 7#"$8(%((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HEHT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HEHD$3D$$3HD$ HsH$HHHf$(E$(H0EЃUM;ƒ#ƒQHHEH$HHHfHH E$3D$HP@HfHT$HVHH3ɱ^HHT$VHH3ɱ^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HEH$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHfff(,Q  !&.6( 6(kpfk(-!-8(   \(   C_H1(BchB^c(JJOC!77>8(5(((UHPVHu3fEfE^Xfff( %  "(!((UHHPRQWVPHuXHVHH3^3EiUt6H HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^E M\H $$$ $HE(f/H0HE0HT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HE HD$3D$$3HD$ HsH$HHHf$(E$(H0E M\H $$$ $HE(f/U҃#ЃWHHEH$HHHfHH E$3D$Hh@HfHT$ HVHH3ɱ^HHT$VHH3ɱ^HE $3D$Hh@HfHT$ HVHH3ɱ^HH$VHH3ɱ^HE0H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHf( 򤕖  ~0D9(indi9((/w~/rwK'8( ?D :?/ 0\(  7 O_H1(BchB^c(JJOC~77>8(((?UHHPRQWVPHu33XHVHH3^XHSVHH3^3XHVHH3^3E3EE3UDEE3EE3UDEE3EE3UDEE3EE3UDEE3EE3UDȋEE3EE3UDЋEE3EE3UD؋EE3EE3UDEE3EE3UDEEH3P$XEH3P$XEiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^,E0E4E8E<E@EDEHE3EEETEL+у}ڃETETEL+у}ڃETETEL;t33EE`3E؋EȃU;j3E܋ẼU;03EEwRETELETETELETEE륋84+ƒU,+U䋍4+HcHEEHD+ƒU苍<+U싍D+HcHE EEM\H $$$ $HE(/t 3E܃EЃtE؃EЃH EȋUD$3fD$ EЋUD$3fD$HE,HT$VHH3ɱ^HH$VHH3ɱ^H H$HhHHf$$H Ѓ҃#ƒHHEH$HHHfHЃEHHE,H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHU,VHH3ɱ^ SIZE = [XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] (XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HEȉ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^xXH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HẺ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^)XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^ SIZE = [XHSVHH3ɱ^HHSH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^HEĉ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^] (XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^HEЉ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^xXH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^HEԉ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^)XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^PARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^H0E$3D$HX@HfHT$HVHH3ɱ^H0H$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^ARRAY[XHSVHH3ɱ^HHSH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHSH$VHH3ɱP^H0E$3D$HX@HfHT$HVHH3ɱ^H0H$VHH3ɱ^H@HfH$HVHH3ɱ^HHSVHH3ɱP^HHHT$VHH3ɱP^HSH$VHH3ɱP^HE,H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHffff(p$v2 P'(''M7(V[QV(<<=(,,Z6((I@HI;@:$()t|)ot+ZX6((II_3?Si7((@@pA(.*2.%*`  6(OTJO(MM>| (++` 6((M=EM8= y:(y)GOy)BGW+6(otjo(FF2:())W6((F]eFX]<?(++F[s6((JJz;(*4<*/4[6([`V[(JJ~:(~)~)}[6((}JIQ}JDI|;,(|*}|*x}3{[`6(({J{Jgz9Gl>(l+l+x] 6("'"(xJksxJfk w>O (w+  w+  V v] 6(    (vJ  vJ   u@ (u-D L u-? D  ta& 6(j o e j (tN  tN  - s?  (s,  s,   ra !6(    (rNW _ rNR W  q>; "(q+  q+  B pao#6((pN pNvo?$(o,08o,+0na%6(W\RW(nNnNm&MF'(AAM 1( 8)8( ,1 ',! *IN+x(HHUg9,+@;- &-93/.:002 p31 <4 DG5M'96_7c871.y<- C=>?p@>wpCAJvB> 0D0E0F0G4H4I4J4KKL1(.-2.(-(6{6v{ 7NMO8(((UHHPRQWVPHuXHVHH3^XHVHH3^HHEH$VHH3ɱ^@XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^HhTH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱ^X^_YZXHfff( De\p%B inu(W*2W%*JO(--V8(/((pUHPRQWVPHuH3D$ED$ HEHT$ VHH3ɱ^HEH$HHHHfHX^_YZXfff(EpN `eM(LY`LTY8(((WUHH0PRQWVPHu33XHVHH3^XH#VHH3^3tXHuVHH3^3u3EE3UxEE3EE3UDEE3EE3UDEE3EE3UDEE3EE3UDEE3EE3UDEE3EE3UDEE3EE3UD̋EE3EE3UD؋EEH3P$XEH3P$XEiUt)H HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHuVHH3ɱ^0x4E8|<E@EDEHELEPETEXE\E3uuuTux+у}ڃuTuTuL+у}ڃuTuTuL;t33uu<J3EEU;43EċEU;3EȋEU;3uuwmuxuLuTuTuLuTuu뇋D@+ƒUЋ8+Uԋ@+ЋD@+<8+σRZM̋0+RZHcHEE苅\X+ƒU܋P+UX+Ћ\X+TP+σRZM؋H+RZHcHE EEM\H $$$ $HE(f/t 3EȃE/ЃtEăEЃtEEЃH EUUD$3fD$ EUUD$3fD$HE0HT$VHH3ɱ^HuH$VHH3ɱ^H H$HhHHf$t$H tЃ҃#ƒp$HHEH$HHHfHЃoHHE0H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHU0VHH3ɱ^ SIZE = [XHVHH3ɱ^HHH$VHH3ɱP^Hx$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^H|$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] (XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^xXH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^xXH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^)XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^ SIZE = [XH#VHH3ɱ^HH#H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^] (XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^xXH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^xXH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^)XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^ ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HẺ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HEЉ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HEԉ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$Hh@HfHT$ HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^ARRAY[XH#VHH3ɱ^HH#H$VHH3ɱP^HE؉$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^HE܉$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HH#H$VHH3ɱP^HE$3D$Hh@HfHT$ HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH#VHH3ɱP^HHHT$VHH3ɱP^H#H$VHH3ɱP^HE0H$VHH3ɱ^HuH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXH0ffff(Fz h++*(++++*hN"*9(j*o*e*j*(h=**h=**)*m=)(m,))m,)))nZ(6() )))(nIQ)Y)nIL)Q)(o:5((o)((o)((<(lZi'6(''''(lI''lI''p'k:&(k)*'2'k)%'*'&jZ&6(R&W&M&R&(jI&&jI&&&i%%_U% 9(a%f%\%a%(_B%%_B%% %fA$ (f.$$f.$$$e`# 6(#$##(eMH$P$eMC$H$#d>,# (d+|##d+w#|#3#c``" 6(""""(cM""cM""g"b>!(b+!")"b+"!"!a`!6(I!N!D!I!(aM!!aM!! !`  L:L (L)  L)  S ^W6((^F  ^F  ]:(])AI])<A\W%6(indi(\F\F,[:([)[)ZW6( (ZFW_ZFRWY<9(Y+Y+@X[m6((XJXJtW;(W*.6W*).V[6(UZPU(VJVJU:(U)U)T[6((TJCKTJ>CS;&(S*wS*rw-R[Z6((RJRJaQ:(Q)#Q)P[ 6(CH>C(PJPJO;o!(O*O*vN["6((NJ08NJ+0M|#9>$(9+=E9+8=K]!%6(ej`e(KJKJ(J>&(J+J+I]'6(  (IJS[IJNSH>7((H+H+>G]k)6((GJGJrF@*(F-,4F-',Ea+6(RWMR(ENEND?~,(D,D,Ca -6(    (CN?GCN:? B># .(B+s { B+n s * AaW /6(    (AN  AN  ^ @? 0(@,  @,   ?a 16(? D : ? (?N  ?N   >>i 2(>+  >+  p =a 36(    (=N* 2 =N% *  <? 4(<,^ f <,Y ^  ;a>56((;N;NE:6%Mq7(AAx\8c?98( W\ RWG :#so;x(rrvZ<;aO= G=Z36?>=+N@1#@6 ;BA"AMCGCE|FDQHGN[H+\LIc_JchKo#RJ\<DA&A+>P=<WQCRSTRpUvLVS2R<0)X/0 Y&0Z0[0\ 0]4^4_~4`}4a|4b{4cvKd1(v.38v..3(v6v6|s+r7feg8(((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HEHT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HEHD$3D$$3HD$ HsH$HHHf$(E$(H0EЃUM;ƒ#ƒQHHEH$HHHfHH E$3D$HP@HfHT$HVHH3ɱ^HHT$VHH3ɱ^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HEH$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHfff(q#磕k>  !&,6( 6(kpfk(+!+8(   \(   C_H1(BchB^c(JJOC!77>8(((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HE HT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HEHD$3D$$3HD$ HsH$HHHf$(E$(H0EЃUM;ƒ#ƒOHHEH$HHHfHH E$3D$HP@HfHT$HVHH3ɱ^HHT$VHH3ɱ^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HE H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHff(u?DX   .6(  6(ej`e(--8(   \(   C_H1(BchB^c(JJOC77>8(((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HE HT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HEHD$3D$$3HD$ HsH$HHHf$(E$(H0EЃUM;ƒ#ƒ?HHEH$HHHfHH0xXH$VHH3ɱ^HE$3fD$3D$HAHfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHT$VHH3ɱ^H0xXH$VHH3ɱ^HE$3fD$3D$HAHfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH$VHH3ɱ^HE H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHff(@xW{1   8(D6;D16(88z8(C C (6{RZ6{MR( 8(  Q \(   C_H1(BchB^c(JJOC 77>8($((UHHPRQWVPHuXHVHH3^3EiUt+H HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EM\H $$$ $HE /H0HE$HT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HEHD$3D$$3HD$ HsH$HHHf$(E$(H0EM\H $$$ $HE /U҃#ЃNHHEH$HHHfHH@E$3D$HX@HfHT$HVHH3ɱ^H0HT$VHH3ɱ^H0E$3D$HX@HfHT$HVHH3ɱ^H0H$VHH3ɱ^HE$H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHff(`|Ƨ,A4  sx.B7(glbg7((-ls-glI%8( =B 8=- /\(  6 O_H1(BchB^c(JJOCs77>8()((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HE HT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3 D$3HD$HEHD$3 D$$3HD$ HsH$HHHf$(E$(H0EЃUM;ƒ#ƒOHHEH$HHHfHH E$3 D$HP@HfHT$HVHH3ɱ^HHT$VHH3ɱ^HE$3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HE H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHff(7챝   06(  6(ej`e(//8(   \(   C_H1(BchB^c(JJOC77>8("((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^HEHU H;H0HE(HT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3%D$3HD$HE HD$3%D$$3HD$ HsH$HHHf$(E$(H0EЃHUHM H;ƒ#ƒSHHEH$HHHfHH HEH$3%D$H`@HfHT$ HVHH3ɱ^HHT$VHH3ɱ^HHE H$3%D$H`@HfHT$ HVHH3ɱ^HH$VHH3ɱ^HE(H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHf(G  %*08( 8(otjo(/%/8(   \(   C_H1(BchB^c(JJOC%77>8(((UHHPRQWVPHu3@3A3DXHHVHH3^XHVHH3^3XHVHH3^3E3E3E3EiUt H HEH$HXJHfHT$H@VHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$H@VHH3ɱ^HHVHH3ɱ^,(+ƒ}؃E싅40+ƒ}؃EEU;t3@3A(E0E3DDU;`E(+HcHU E0+HcHU <;t 3@#EEEEDD@ЃH ED$3fD$ ED$3fD$HE(HT$VHH3ɱ^HH$VHH3ɱ^H H$HhHHf$$H Ѓ@҃#ƒBHHEH$HHHfHAЃHHE(H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHU(VHH3ɱ^SIZE = XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^SIZE = XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^ARRAY[XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^HE(+HcHU  $3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE0+HcHU   $3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHHHT$VHH3ɱP^HH$VHH3ɱP^HE(H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHf(PP %N S = (=G N =B G  :\ 6(    (:KR Z :KM R  9= (9,s { 9,n s ' 8ST6((8B8B[7/;5dP6((5Q5QW4A(4.4. 3Y6(6;16(3F3Fz20T6(@E;@(0C0C/ .Z  6(NSIN(.G.G- ,M> (,A,AE+) 0) 8() $)) $(_Px(W9;B!!'% ;  r(,   Lx~ R] cK!1(..(6&6N 7#"$8('((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HE HT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HEHD$3D$$3HD$ HsH$HHHf$(E$(H0EЃUM;ƒ#ƒOHHEH$HHHfHH E$3D$HP@HfHT$HVHH3ɱ^HHT$VHH3ɱ^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HE H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHff(%C   .6(  6(ej`e(--8(   \(   C_H1(BchB^c(JJOC77>8(((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HE HT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HEHD$3D$$3HD$ HsH$HHHf$(E$(H0EЃUM;ƒ#ƒOHHEH$HHHfHH E$3D$HP@HfHT$HVHH3ɱ^HHT$VHH3ɱ^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HE H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHff(^   *6(  6(ej`e())8(  ~ \(   C_H1(BchB^c(JJOC77>8(((VUHH PRQWVPHu33XHVHH3^XH3VHH3^3XHVHH3^3E3EE3UDEE3EE3UDEE3EE3UDEE3EE3UDEE3EE3UDEE3EE3UDċEE3EE3UDЋEE3EE3UD܋EE3EE3UDEEH3P$XEH3P$XEiUt6)H HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^,E0E4E8E<E@EDEHELEPETEXE3EEETEL+у}ڃETETEL+у}ڃETETEL;t33EE`(3EЋEU;3EԋEU;3E؋EU;3EEwRETELETETELETEE륋@<+ƒU4+U䋍<+Ћ@<+84+σRZM܋,+RZHcHEEXT+ƒU싍L+UT+ЋXT+PL+σRZM苽D+RZHcHE EEM\H $$$ $HE(/t 3E؃EQЃtEԃEЃtEЃEЃH EUUD$3fD$ EċUUD$3fD$HE,HT$VHH3ɱ^HH$VHH3ɱ^H H$HhHHf$$H Ѓ҃#ƒ^$HHEH$HHHfHЃiHHE,H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHU,VHH3ɱ^ SIZE = [XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] (XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^xXH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^xXH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^)XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^ SIZE = [XH3VHH3ɱ^HH3H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^] (XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^HEĉ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^xXH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^HEȉ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^xXH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^HẺ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^)XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^ ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE܉$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^H0E$3D$HX@HfHT$HVHH3ɱ^H0H$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^ARRAY[XH3VHH3ɱ^HH3H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HH3H$VHH3ɱP^H0E$3D$HX@HfHT$HVHH3ɱ^H0H$VHH3ɱ^H@HfH$HVHH3ɱ^HH3VHH3ɱP^HHHT$VHH3ɱP^H3H$VHH3ɱP^HE,H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXH ffff("m* hH+M+*(A+H+<+A+*UM)7(* ***(U<L*T*U<G*L*)\=/)(\,))\,}))6)[Zc(6(((((([I(([I((j(Z:'(Z)$(,(Z)($('YZ'6(L'Q'G'L'(YI''YI'''X:y&(X)&&X)&&&WZ%6(%%%%(WI:&B&WI5&:&%V%%]T$ 7(%%$%(]AI%Q%]AD%I%$dA,$ (d.$$d.z$$3$c``# 6(####(cM##cM##g#b>" (b+!#)#b+#!#"a`" 6(I"N"D"I"(aM""aM"" "`>v!(`+!!`+!!}!_` 6(    (_M7!?!_M2!7! ^  f:(f)A I f)< A xW%6(indi(xFxF,w:(w)w)vW6( (vFW_vFRWu:;(u)u)BtWo6((tFtFvs<(s+08s++0r[6(V[QV(rJrJq;(q*q*p[6((pJCKpJ>Co:'(o)wo)rw.n[[6((nJnJbm;(m*$m*l[6(CH>C(lJlJk:p(k)k)wj[ 6((jJ19jJ,1i;!(i*emi*`eh[H"6((hJhJOg!#/y>$(y+y+]%6(  (JS[JNS>7&(++>]k'6((JJr>((+,4+',])6(TYOT(JJ@*(--a+6((N@HN;@?#,(,t|,ot*aW -6(    (N  N  ^ > .(+  +   a /6(@ E ; @ (N  N   ?l 0(,  ,  s a 16(    (N- 5 N( -  ~> 2(~+a i ~+\ a  }aE 36(    (}N  }N  L |?4(|,  |,  {a56(-2(-({Nv~{Nqvz6M7(AA#898(   :q;x(pp!<; O= =3?>N@@ ;BA"MCCE|gFDlQG[H+&LI-_RJYc/K6#J& DA>P=-WQ4RSTRpgUnv:VA&R-0X#0Y0 Z0[0\0]4^4_4`4a4b4cKd1(.-2.(-(6{6v{ H+7feg8(0((UHHPRWVHu3EHHH$HGHfD$HHED$ED$ HH$HpGHfD$ H3f3EE3Ҳd;EHHHH$HPGHfD$HEHHED$ED$ HH$H GHfD$ HEEi3EE3Ҳd;E3@HkHHH$HDHfD$HE3@HkHED$ED$ HH$HDHfD$ HEEi3EEd3U rEEHHsH$HGHfD$HHED$ED$ HsH$HGHfD$ HHH H$HHHHfD$HHED$ED$ H H$H0HHfD$ HHHH$HHHfD$HHED$ED$ HH$HHHfD$ HHHjUfjUHEjUHpU^_ZXHff(pDw'  P Y((((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HE HT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HEHD$3D$$3HD$ HsH$HHHf$(E$(H0EЃUM;ƒ#ƒOHHEH$HHHfHH E$3D$HP@HfHT$HVHH3ɱ^HHT$VHH3ɱ^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HE H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHff(KEo   .6(  6(ej`e(--8(   \(   C_H1(BchB^c(JJOC77>8(((UHHPRQWVPHu3@3A3DXHHVHH3^XHVHH3^3XHVHH3^3E3E3E3EiUt H HEH$HXJHfHT$H@VHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$H@VHH3ɱ^HHVHH3ɱ^,(+ƒ}؃E싅40+ƒ}؃EEU;t3@3A(E0E3DDU;^E(+HcHU E0+HcHU <;t 3@#EEEEDD@ЃH ED$3 fD$ ED$3 fD$HE(HT$VHH3ɱ^HH$VHH3ɱ^H H$HhHHf$$H Ѓ@҃#ƒ@HHEH$HHHfHAЃHHE(H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHU(VHH3ɱ^SIZE = XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^SIZE = XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^ARRAY[XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^HE(+HcHU $3 D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE0+HcHU $3 D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHHHT$VHH3ɱP^HH$VHH3ɱP^HE(H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHfff(Jy+ %J O = (=C J => C  :] 6(    (:LN V :LI N  9= (9,p x 9,k p $ 8SQ6((8B8BX7,85eN6((5R5RU4A(4.4. 3Y6(49/4(3F}3Fx}20T6(>C9>(0C0C/ .Z 6(LQGL(.G.G- ,M< (,A,AC+' .) 8() "') "(aNx(U;9@!%% 9  r(,   Lx~ R] cK!1(..(6&6J 7#"$8( ((UHHPRQWVPHu3@3A3DXHHVHH3^XHVHH3^3XHVHH3^3E3E3E3EiUt H HEH$HXJHfHT$H@VHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$H@VHH3ɱ^HHVHH3ɱ^,(+ƒ}؃E싅40+ƒ}؃EEU;t3@3A(E0E3DDU;`E(+HcHU BE0+HcHU  (,A,AE+) 0) 8() $)) $(]Px(W7;B!!'% ;  r(,   Lx~ R] cK!1(..(6&6N 7#"$8(.((pUHPRQWVPHuH3D$ED$ HEHT$ VHH3ɱ^HEH$HHHHfHX^_YZXffff(үk ^cN(MW^MRW8(3((UHHPRQWVPHu3fE3fE3fE3fEEPPHHUH$HHHHfT$HXX;wVEHHHH$HHGHfD$Ht EfEEfEwEfEX^_YZXHfff(F尕%uS + <5( `e [`A)vo(v4<$+8(((UHHPRQWVPHu3@3A3DXHHVHH3^XHVHH3^3XHVHH3^3E3E3E3EiUt H HEH$HXJHfHT$H@VHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$H@VHH3ɱ^HHVHH3ɱ^,(+ƒ}؃E싅40+ƒ}؃EEU;t3@3A(E0E3DDU;aE(+HcHUH ‹E0+HcHU HCD9>(889(DD(6\d6W\(99 8(   \(   C_H1(BchB^c(JJOC77>8(((?UHHPRQWVPHu33XHVHH3^XHCVHH3^3XHVHH3^3E3EE3UDEE3EE3UDEE3EE3UDEE3EE3UDEE3EE3UDEE3EE3UDEE3EE3UDȋEE3EE3UDЋEE3EE3UD؋EEH3P$XEH3P$XEiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^0E4E8E<E@EDEHELE3EEETEL+у}ڃETETEL+у}ڃETETEL;t33EE`3EȋEU;k3E̋EU;13EEwRETELETETELETEE륋<8+ƒUЋ0+Uԋ8+HcHEELH+ƒU؋@+U܋H+HcHE EEM\H $$$ $HE(f/t 3ẼEЃtEȃEЃH EUD$3fD$ EUD$3fD$HE0HT$VHH3ɱ^HH$VHH3ɱ^H H$HhHHf$$H Ѓ҃#ƒHHEH$HHHfHЃEHHE0H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHU0VHH3ɱ^ SIZE = [XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] (XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^xXH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^)XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^ SIZE = [XHCVHH3ɱ^HHCH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^..XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^] (XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^xXH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^HEĉ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^)XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^\ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HEЉ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HEԉ$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE$3D$Hh@HfHT$ HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^ARRAY[XHCVHH3ɱ^HHCH$VHH3ɱP^HE؉$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^,XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^HE܉$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHCH$VHH3ɱP^HE$3D$Hh@HfHT$ HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHCVHH3ɱP^HHHT$VHH3ɱP^HCH$VHH3ɱP^HE0H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHf(DtmH- P'(''N9(`e[`(===(,,Z6((IGOIBG:+(){)v{2Z_6((IIf:FTj9((AAqA(.+3.&+`  6(PUKP(MM>} (++` 6((M>FM9> :()HP)CHW,6(pukp(FF3:())W6((F^fFY^<@(++G[t6((J J{;(*5=*05[6(\aW\(JJ:())[6((JJRJEJ;-(*~*y~4[a6((JJh:H>(++] 6(#(#(JltJgl >P (+  +  W ] 6(    (J  J   @ (-E M -@ E  a' 6(k p f k (N  N  . ?  (,  ,   a !6(    (NX ` NS X  >< "(+  +  C ap#6((N Nw?$(,19,,1a%6(X]SX(NN&MG'(AAN 2( 9)8( -2 (- *KO+x(JJVi:,+A;- '-:3/.:002 p31 <4 DG5M'96_7c871.y<- C=>?p@>wpCAJvB> 0D0E0F0G4H4I4J4KKL1(.-2.(-(6{6v{ 7NMO8( ((UHHPRQWVPHu3@3A3DXHHVHH3^XHVHH3^3XHVHH3^3E3E3E3EiUt H HEH$HXJHfHT$H@VHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$H@VHH3ɱ^HHVHH3ɱ^,(+ƒ}؃E싅40+ƒ}؃EEU;t3@3A(E0E3DDU;`E(+HcHU E0+HcHU <;t 3@#EEEEDD@ЃH ED$3fD$ ED$3fD$HE(HT$VHH3ɱ^HH$VHH3ɱ^H H$HhHHf$$H Ѓ@҃#ƒ>HHEH$HHHfHAЃHHE(H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHU(VHH3ɱ^SIZE = XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^SIZE = XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^ARRAY[XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^HE(+HcHU  $3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE0+HcHU   $3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHHHT$VHH3ɱP^HH$VHH3ɱP^HE(H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHf(怕Kp %F K = (=? F =: ?  :\ 6(    (:KJ R :KE J  9= (9,m u 9,h m ! 8SN6((8B8BU7)55dL6((5Q5QS4A(4. 4. 3Y6(27-2(3F{3Fv{20T6(<A7<(0C0C/ .Z 6(JOEJ(.G.G - ,M: (,A,AA+% ,)8() %)  (_Px(W9;B!!'% ;  r(,   Lx~ R] cK!1(..(6&6F 7#"$8(((UHHPRQWATVHu3E3fE3E3E3E3fEEPPHHUH$HHHHfT$HXX;w[E}APAXL>PPHIH$HGHfT$HXX#ˆEEfErHHH$HHPHHfHEUƒ#ƒt3E^A\_YZXHf()>p2  /4'(/&\ )E%B(%%G5(kpfkLKz(77?G8?(/# ( 8(((UHHPRQWVPHu3fXHVHH3^XHVHH3^333XHVHH3^XHVHH3^3iUHHEH$VHH3ɱ^HAHfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^HAHfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^HAHfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^ disabled_XH$VHH3ɱ ^HPAHf$Hu3iUHHH$HHPHHfH3f;HHHH$HXGHfHT$HVHWH3ɱ_^HH: u HH u?3 r;3iU3@HkH3H׈BHH$HDHfH3ҲkHH`TH8HHH$HHHHHfHT$HVHWH3ɱ_^HH$VHH3ɱ^HAHfH$HVHH3ɱ^HHVHH3ɱ^3Test with name '%s' already exists in test suite 'XHVHH3ɱ2^HHH$VHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^'XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱ^H3$HHT$VHH3ɱ^HH$VHH3ɱ^HpAHf$H rfЃHHHHT$VHWH3ɱ_^HH$H8GHfHf rX^_YZXHff(0+!piU ,1312# 18(1717/ +3io& (&&U\&&PU%;m(% *% *t$G($ 6.6$ 6).#H ! 2(!o7 !o7!(!$OW!$JO F  7t ( 6 6{ %j tKR&AK(A>tB( o, %eo ~( 5QY 5LQ76(  25(LTGL$+4(&8( ((UHH`PRQWVPHu333XHVHH3^XHVHH3^3JXHKVHH3^3L3PXHTVHH3^XHUVHH3^3E3EiUt H HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHKVHH3ɱ^,(+ƒ}؃L40+ƒ}؃PLP;t33(E0E3L;^E(+HcHU E0+HcHU <;t 3#EEEEЃH LD$3fD$ PD$3fD$HE(HT$VHH3ɱ^HKH$VHH3ɱ^H H$HhHHf$J$H JЃ҃#ƒn HHEH$HHHfHЃHHE(H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHU(VHH3ɱ^SIZE = XHVHH3ɱ^HHH$VHH3ɱP^HL$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^SIZE = XHVHH3ɱ^HHH$VHH3ɱP^HP$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^H0xXH$VHH3ɱ^HE(+HcHU $3fD$3D$HAHfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHTVHH3ɱP^ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HTH$VHH3ɱP^H@HfH$HVHH3ɱ^HHVHH3ɱP^H0xXH$VHH3ɱ^HE0+HcHU $3fD$3D$HAHfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHUVHH3ɱP^ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HEH$VHH3ɱP^H@HfH$HVHH3ɱ^HHVHH3ɱP^HHHT$VHH3ɱP^HH$VHH3ɱP^HE(H$VHH3ɱ^HKH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXH`fff(p2\T5? '  E (E  E   BH (B7  B7   A= (A,C K A,> C  @S$ 6(h m c h (@B  @B  + ?  ;_ 8(<8z  <8u z (;I  ;I  " 9N(9;9;8A(8.NV8.IN7Y/6(sxns(7F7F66  2k# 8(3:3:}(2S2S*0TO6((0C0CV/) 6.ZZ 6((.G.Ga-4A,M(,A,A+y )\8() ty) otd(9@x($;!kq%bh ] U]r'0 ( ,    L! R"K#1(. . (6[c6V[ 7%$&8(1((UHHPRQWVPHuXHUVHH3^HHEH$HHHHfHT$HVHH3ɱ^HHUVHH3ɱ^X^_YZXHfff(P?D(8 //2(PUKP68(((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HEHT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3D$3HD$HEHD$3D$$3HD$ HsH$HHHf$(E$(H0EЃUM;ƒ#ƒAHHEH$HHHfHH0xXH$VHH3ɱ^HE$3fD$3D$HAHfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HHT$VHH3ɱ^H0xXH$VHH3ɱ^HE$3fD$3D$HAHfHT$HVHH3ɱ^HH$VHH3ɱ^H@HfH$HVHH3ɱ^HH$VHH3ɱ^HEH$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHfff(?p   7(?;@?6;(887(?? (6X`6SX(    8(  ^ \(   C_H1(BchB^c(JJOC77>8(*((UHHPRQWVPHuXHVHH3^3EiUtH HEH$HXJHfHT$HVHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$HVHH3ɱ^HHVHH3ɱ^EU;H0HEHT$(VHH3ɱ^HH$(VHH3ɱ^HEHD$3 D$3HD$HEHD$3 D$$3HD$ HsH$HHHf$(E$(H0EЃUM;ƒ#ƒQHHEH$HHHfHH E$3 D$HP@HfHT$HVHH3ɱ^HHT$VHH3ɱ^HE$3 D$HP@HfHT$HVHH3ɱ^HH$VHH3ɱ^HEH$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHfff(D̫ =  !&.6( 6(kpfk(-!-8(   \(   C_H1(BchB^c(JJOC!77>8(2((PUHPRQWVPHuXHUVHH3^HFHUVHH3ɱ^X^_YZXfff(PG&?j AF (08(9((UHHPRQWVPHu33fE3fEE;EHHHH$HXGHfHT$HVHWH3ɱ_^HHU: u HH uu@EHHHH$H`GHfD$H33EfE&X^_YZXHf(G  ;F %( " "N( ~ y~U3;#*8(((UHHPRQWVPHu3@3A3DXHHVHH3^XHVHH3^3XHVHH3^3E3E3E3EiUt H HEH$HXJHfHT$H@VHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$H@VHH3ɱ^HHVHH3ɱ^,(+ƒ}؃E싅40+ƒ}؃EEU;t3@3A(E0E3DDU;`E(+HcHU BE0+HcHU  (,A,AE+) 0) 8() $)) $(_Px(W9;B!!'% ;  r(,   Lx~ R] cK!1(..(6&6N 7#"$8(((UHHPRQWVPHu3@3A3DXHHVHH3^XHVHH3^3XHVHH3^3E3E3E3EiUt H HEH$HXJHfHT$H@VHH3ɱ^HHT$VHH3ɱ^HEH$HhIHfH$H@VHH3ɱ^HHVHH3ɱ^40+ƒ}؃E싅<8+ƒ}؃EEU;t3@3A0E8E3DDU;E8+HcHU ‹E0+HcHU \H $$$ $HE(f/t 3@&EEEEDD\@ЃH ED$3fD$ ED$3fD$HE0HT$VHH3ɱ^HH$VHH3ɱ^H H$HhHHf$$H Ѓ@҃#ƒHHHEH$HHHfHAЃHHE0H$VHH3ɱ^, size of arrays not matching.XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHU0VHH3ɱ^SIZE = XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^SIZE = XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^ARRAY[XHHVHH3ɱ^HHHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^HHHH$VHH3ɱP^HE0+HcHU$3D$Hh@HfHT$ H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHHVHH3ɱP^ARRAY[XHVHH3ɱ^HHH$VHH3ɱP^HE$3D$HP@HfHT$H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^] = XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHH$VHH3ɱP^HE8+HcHU $3D$Hh@HfHT$ H@VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱP^HHHHT$VHH3ɱP^HH$VHH3ɱP^HE0H$VHH3ɱ^HH$VHH3ɱ^HHH HҋH+H$HHHBHHfHX^_YZXHff((T e %  b (b  b   _] 9(F K A F (_L  _L   ^=Z (^,  ^,  a ]S6((]B # ]B  \iuZe9((ZR*2ZR%*YA(Y.HPY.CHXY)6(mrhm(XFXF0WUT36(w|rw(UCUC:T  SZA 6((SGSGHR (QMu (QAQA|P` gNC8(N [`N V[KMa 'Dx(D DC;ry9?!U[>%LR< Gr; ?G:98(7,321/Lx~.R] c,K!1(,.,.(,6&,6) (7#"$8(B((UHPRQWVPHuHHFH$HAHUHRH3H HH0HD$HHFH HFH$HFHD$HAHfHD$H HFHFHHF VHH3ɱp^X^_YZXff(_kbL- $zKVL?(KEmrKEhmTJ>>(J 1>CJ 1!/8(S((UHVPHuX^ffff(h`\'8/4  (V((UHHPRQVHu3fE3fEE=,w[EERZf3UPRZXfEfE^YZXHffff(`h #'DW]x)0(([((UHHPRQWVPHu3fE3fEE=,H EHH$VHH^HEH$E$$ E $HBHf$H PPH UPRZXHH$VHHQY^HU(H$U4$ U0$HBHf$H XX#UPRZXHHU89@::u HH u#UPRZXHH89@::u HH u#t1EERZfEfEFX^_YZXHffff(a,iu?Z1 # ) /A(A( 6 8(W((UHHPRQWVPHu3fE3fEE=,EƒERZ#уHHEH$E$D$ E D$HAHfHT$HVHH^HUPRZXHVHHQY^HHE(H$E4D$ E0D$HAHfHT$HVHH^HUPRZXHVHHQY^HE8UPRZXHVHHQ3ɱY^H8UPRZXHVHHQ3ɱY^3UPRZXfEfEX^_YZXHf(c zh1u,  ##,  D YGqyd@(F% %F% h}@(H'H'29# 8(Z((UHHPRQWVPHu3f83fE3fEE=,H EHH$VHH^HEH$E$$ E $HBHf$H PPH UPRZXHH$VHHQY^HU(H$U4$ U0$HBHf$H XX#UPRZXHHU89@::u HH u#UPRZXHH89@::u HH u#tEf8EfEZX^_YZXHff(0eqi& #)2 ]8A(A(  ?!)8(Y((UHHPRQWVPHu3f83fE3fEE=,H EHH$VHH^HEH$E$$ E $HBHf$H PPH UPRZXHH$VHHQY^HU(H$U4$ U0$HBHf$H XX#UPRZXHHU89@::u HH u#UPRZXHH89@::u HH u#tEf8EfEZX^_YZXHff(gji2% #)2 Kw8A(A(  ?!)8(\(( UHH PRQWVPHu383fE3E3E3E3E3fE3fE3E3Ej Ѓt=HHH$HHPHHfHj 3j HHH$HHPHHfHEE苖j ;tHHEH$HGHfH3fEE;H EHH$VHH^HEH$E$$ E $HBHf$H PPH UPRZXHH$VHHQY^HU(H$U4$ U0$HBHf$H XX#UPRZXHHU89@::u HH u#UPRZXHH89@::u HH u#tvEERZf3EEERZ;v3EEfEEЃH0HE8HT$(VHH3ɱ^H8H$(VHH3ɱ^HEHD$E$D$E D$HE(HD$E4D$$E0D$ HEH$HHHfH0H0HE8HT$(VHH3ɱ^H8H$(VHH3ɱ^HEHD$E$D$E D$HE(HD$E4D$$E0D$ HEH$HGHfH0EH0HE8HT$(VHH3ɱ^H8H$(VHH3ɱ^HEHD$E$D$E D$HE(HD$E4D$$E0D$ HEH$HHHfH0 38HHH$HHPHHfHEX^_YZXH ff(hjr aEeB(ee,)=5U()<)<<((/%W(%#%$=U($<$<"\ "    w ~  A(iqdiA(  6V( 3 3 i_EcB(cc`>b[B(b}bx}fJQ8(U((UHHPRQWVPHufHHEH$E$D$ E D$HAHfHT$HVHH^HPRZXHLVHHQY^HHE(H$E4D$ E0D$HAHfHT$HVHH^HPRZXHVHHQY^HE8PRZXHVHHQ3ɱY^H8PRZXHVHHQ3ɱY^X^_YZXHffff(ngɸ AU\/(L@(&%&%P&@(('OT('JO-!8(o((UHVPHuX^ffff(oA[ U  (w((UHHPRQWVPHu3fE3fEE=,IE⋔`kE;ƒERZdkE;#ERZhkE ;#ERZlkE$;#ERZHnkHE&9@:8u HH u#ERZHnlH&9@:8u HH u#уt1ErmERZfrmEfEX^_YZXHf(oe x}# ) 7>/6 8(s((UHHPRQWVPHu3fE3fEE=,sEpmƒERZrm#уEUPRZX`kEUPRZXfdkE UPRZXhkE$UPRZXflkHE&UPRZXHnkVHHQ3ɱY^H&UPRZXHnlVHHQ3ɱY^3UPRZXfrmEfE~X^_YZXHffff(Hqkd$  #  )  Iks c3: Q cYg]z/ 6 8(v((UHHPRQWVPHu3f&3fE3fEE=,5E⋔`kE;ƒERZdkE;#ERZhkE ;#ERZlkE$;#ERZHnkHE&9@:8u HH u#ERZHnlH&9@:8u HH u#уtErmf&EfEX^_YZXHfff(s{3e2c mr#)2 b@G8?!)8(u((UHHPRQWVPHu3f&3fE3fEE=,5E⋔`kE;ƒERZdkE;#ERZhkE ;#ERZlkE$;#ERZHnkHE&9@:8u HH u#ERZHnlH&9@:8u HH u#уtEpmf&EfEX^_YZXHfff(td,0ad mr#)2 P@G8?!)8(x(( UHH PRQWVPHu3&3fE3E3E3E3E3fE3fE3E3EЃt=HHjH$HjHPHHfH\k3HHjH$HjHPHHfH\kEE苖;tHHEH$HpHHfH3fEEj;E⋔`kE;ƒERZdkE;#ERZhkE ;#ERZlkE$;#ERZHnkHE&9@:8u HH u#ERZHnlH&9@:8u HH u#уtvErmERZfrm3EErmERZpm;v3EEfE_EЃH ED$EfD$ E D$E$fD$HE&HT$VHH3ɱ^H&H$VHH3ɱ^HEH$HxHHfH H ED$EfD$ E D$E$fD$HE&HT$VHH3ɱ^H&H$VHH3ɱ^HEH$HPHHfH EH ED$EfD$ E D$E$fD$HE&HT$VHH3ɱ^H&H$VHH3ɱ^HEH$HxHHfH  3&HHjH$HjHPHHfH\kX^_YZXH fff(vXYfs uzi>iooBB(odio_dM,8B)rq()q,3)q',(%)s(%%0$rq($q")$q""" M T F M E    6r( 3 3 ifEpB(ppd>m[B(m}mx}fJQ8(r((UHHPRQVHu3fE3fEE=,w[ErmERZfpm3UPRZXfrmEfE^YZXHffff(zpc9݌  #' IW] )0 ((q((UHPRQWVPHujfjEjPRZXDEjPRZXfD E jPRZXDE$jPRZXfDHE&jPRZXHLVHHQ3ɱY^H&jPRZXHVHHQ3ɱY^X^_YZXff( {cU$; K9KAakO?JE)+8(((UHVPHuX^ffff(@|݋\ɲ5  (((UHH PRQWVPHuHH@H$HJHfD$HH3D$3D$ H@H$HJHfD$ HXHVHH3^XHVHH3^3XHVHH3^XHVHH3^HHH$VHH3ɱ^HAHfH$H@VHH3ɱ^HHVHH3ɱ^HFAILED TEST 'XH$VHH3ɱ ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^'XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱ^HHEH$VHH3ɱ^HHAHf$H HHH$VHH3ɱ^, EXP: XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^HEH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^HHAHf$H#HHH$VHH3ɱ^, ACT: XH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^HH$VHH3ɱ^H@HfH$H@VHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^HHAHf$HHHH$VHH3ɱ^ , MSG: %s XH$VHH3ɱ ^H@HfH$H@VHH3ɱ^HHVHH3ɱ^HHHHVHH3ɱ^HHHVHH3ɱ^H@H$HJHfHHHVHH3ɱ^HHHVHH3ɱ^HH3$HHT$VHH3ɱ^HH$VHH3ɱ^HpAHf$HX^_YZXH fff(X| n2K 27(%)M*()L)L~5U(;;K(zuzR O( 5  5  R(( 8~ 8y~/ (    QV( 7 7]R(88} (M (3>F39>[S (AAZd !(HH 8((ecJ ((( UHHPRQWVPHuHHFH$VHH3ɱ^HHAHf$HPPHHH $VHHQ3ɱY^HHAHf$HXX=@HFHVHH3ɱ^HHVHH3ɱ^cHHFH$VHH3ɱ^HHAHf$H=mHHFH$VHH3ɱ^3PPHHH $VHHQ3ɱPY^HHAHf$HXX+f$HXAHfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^HH$VHH3ɱP^H@HfH$HVHH3ɱ^HHVHH3ɱ^XHVHH3^3PPHHYH $VHHQ3ɱPY^HHAHf$HXX+PPHHVH $VHHQ3ɱY^HHAHf$HXX;HFHVHH3ɱ^HHH$VHH3ɱ^3PPHHYH $VHHQ3ɱPY^HHAHf$HXX+PPHHH $VHHQ3ɱY^HHAHf$HXX+f$HXAHfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^HYH$VHH3ɱP^H@HfH$HVHH3ɱ^HHVHH3ɱ^hHHFH$VHH3ɱ^3PPHHH $VHHQ3ɱPY^HHAHf$HXX+f$HXAHfH$HVHH3ɱ^HHVHH3ɱ^HHH$VHH3ɱ^HH$VHH3ɱP^H@HfH$HVHH3ɱ^HHVHH3ɱ^XHVHH3^X^_YZXHffff(#Zs]C @E.#)-S(-9-9,(,e/7,e*/(,jV^,jQV(QE((:(:L&?(&d&d(&!&!(&&F%&#.$($1$1($P $P !nt S( 9/7 9*/# (ezeuz(jj* (   &  (AI<A(~8(((UHPRQWVPHu3F(3F)3F*FV$;t3F(F(ЃtFV ;t3F)F(ЃV)҃#ƒtI3F,FV,;7F,HcHV F,HcHV<;t 3F* F,F,X^_YZXffff(7V[  kq  x~fkZMSFM`<B.4 ' . ] #   8( (|_ 6((|_ 6((0y_ 6(('~_ 6(('~_ 6((`{_ 6((( UHPPHBHfXXffff(y?.6 B(  (((PUHPVHuHHEH$HHKHfHHHEH$HXKHfH^Xfff(؊'7y?.hpDI '( ?D :?/ ("'"(((UHH PRQWVPHuHHEH$HKHfD$HH3D$3D$ HEH$HKHfD$ H3fE3fEHTwoPlusTwoEqualsFourXH$VHH3ɱ^HBHfHH3fE3fEHEH$HKHfEfEHH0The calculation is not correctXHT$(VHH3ɱ^HEHD$3 D$3HD$HEHD$3 D$$3HD$ HEH$HHHHfH0HHBHf$HX^_YZXH f((G]y?.s'D(' ' (~~}*())nC(u8(((UHH PRQWVPHuHHEH$HKHfD$HH3D$3D$ HEH$HKHfD$ H3fE3fEHZeroPlusZeroEqualsZeroXH$VHH3ɱ^HBHfHH3fE3fEHEH$HKHfEfEHH0The calculation is not correctXHT$(VHH3ɱ^HEHD$3 D$3HD$HEHD$3 D$$3HD$ HEH$HHHHfH0HHBHf$HX^_YZXH fff(،y?.) D(  (~~~y~*())lC(s8((((UHPRVPHuFV fF X^ZXfff(y?.7  (((0Z (((UHH0PRQP3E 3E3E3E3E3E3E3E3E3E3E3E3E3E3E3EHEHHUEQ3EE=r EEE33ҲEЋEʃu33‰EE=s;Em3UЉUЋEmʃu33‰E3EBE=Hs3E݋EЃEЋE-EEЃE3E݋E-HEEUL;rEUL+EEԃE֋EԃEԋEEH EЉ$HEHD$3D$H@HfD$H 3-HUHEHHEH Eԉ$HEHD$3D$H@HfD$H 3-HUHEHHEH E؉$HEHD$3D$H@HfD$H HEHUHXYZXH0ffff((HMw((((UHH PRQP3E 3E3E3E3EHEHHUE63EE6ʃu33‰EE`3EE`ʃu33‰EE3EEʃu33‰EH E$HEHD$3D$H@HfD$H 3:HUHEHHEH E$HEHD$3D$H@HfD$H 3:HUHEHHEH E$HEHD$3D$H@HfD$H EtF3.HUHEHHEH E$HEHD$3D$H@HfD$H XYZXH ff((1)H ((((UHH PRQP3E 3E3E3E3E3EHEHHU3THU3#HUBHEHHEEu:30HU3mHUB3sHUB3HUBHEHHEME\&3EE\&ʃu33‰EE63EE6ʃu33‰EE`3EE`ʃu33‰EE3EEʃu33‰EEtFH E$HEHD$3D$H@HfD$H 3dHUHEHHEEtFH E$HEHD$3D$H@HfD$H 3hHUHEHHEEtFH E$HEHD$3D$H@HfD$H 3mHUHEHHEEtFH E$HEHD$3D$H@HfD$H 3sHUHEHHEEtQH E$HEHD$3D$H@HfD$H 3mHU3sHUBHEHHE3HUHEHUHXYZXH ff(#>*H((((UHH PRQP3E$ʚ;E3EHEHHU3 E3E3EEEU3EEЃUƒ#‹UM ;ƒ ƒt3EEt?E0HHUHEHHEEUʃu33‰EEEE3Ҳ 3EEEL3HUHEHUHXYZXH ff('(Hj((((UHHPR3E3E3fE3E3E3E3fE3E3E3EHE$H BHfD$ED$fED$ED$HEu.Eu 3fE3EHfEEHcEkE=uC3fEEu'Eu3 H‰E3E 3E3EEHfEE HcEZXHff("/HǶ((( UHH@PRQP3E H3HEH3HEH3HEH3HEH3HEH3HEH3HEHEHHU3LHU3THUB3IHUB3MHUB3EHUB3#HUBHEHHEHEHu:30HU3nHUB3sHUB3HUBHEHHEHEHONHH3HHEHEHtqH HEH$HEHD$3D$H(BHfD$H 3dHUHEHHEHEHONHHuH3 H3HHHEHEH0FHH3HHEHEHtqH HEH$HEHD$3D$H(BHfD$H 3hHUHEHHEHEH0FHHuH3 H3HHHEHEHXG HH3HHEHEHtqH HEH$HEHD$3D$H(BHfD$H 3mHUHEHHEHEHXG HHuH3 H3HHHEHEH3Һʚ;HH3HHEHEHtoH HEH$HEHD$3D$H(BHfD$H 3sHUHEHHEHEH3Һʚ;HHuH3 H3HHHEHEH3Һ@BHH3HHEHEHtzH HEH$HEHD$3D$H(BHfD$H 3mHU3sHUBHEHHEHEH3Һ@BHHuH3 H3HHHEHEH3ҺHH3HHEHEHtzH HEH$HEHD$3D$H(BHfD$H 3uHU3sHUBHEHHEHEH3ҺHHuH3 H3HHHEHEHtSH HEH$HEHD$3D$H(BHfD$H 3nHU3sHUBHEHHE3HUHEHUHXYZXH@ffff(0ީ4Hd8((((UHHPR3E3E3EH3HE 3E(3E)3EH3HE3E(3E)H E$H0BHfD$ ED$ EHD$HED$H Eu/HEHu3EH3HE HEHEHE {E;uJ3EHEHu+Eu3 HHcHE 3E)H3HE 3E(%EHc+‰EHEHH HE ZXHf( 0:Hq((( UHHPPRQP3E(3EHEHHU5E3E3EH3P$XEH3P$XE3E3EH3P$XE3fEHE$HX=HUHRH3H HH0D$HE3EH3P$XMf/HE$H=HUHRH3H HH0D$HEEЋE*f.{3t53EE3*\H?P$XXM3EE3*\MHE$H=HUHRH3H HH0D$HHU Et3HU +HU H H$@P$X$HE *D$Hh=HUHRH3H HH0D$H EEH@P $XYH4&k CP$X^EXEH3P$XMf/Uȃƒ#ƒHEM^H+=P$XX $H=HUHRH3H HH0D$HEċEă U#ƒt3E\Eă U҃#ƒt@31HU30HUB30HUBHEHHEHE HE EЃUăƒ#ƒt3EEȃU#ЃEH0HUHEHHEHEĉ$3 D$H=HUHRH3H HH0D$HMYEEM\MEȃEH$@P$XM^M؋EE3HUHEHUHXYZXHPffff(X:H!<((((UHHPRQWVPXHHH33fE3fE3fEE=fETƒE= Ѓt3U,ETEEfEEfE3fEE=lEƒE= Ѓt3U/EEEfEEfEX^_YZXHf(+<I_LN ).OVU!R)QPjO E; DLK! H{Gn tFjF OE 5;8(( jZ (((UHH0PRQWVP3EH3D$3D$ HEH$HKHfD$ H3(EH8BHEH@BHEHHBHEH0HEH$HH3ɱ(HPBHUHRH3H HH0D$(H0EX^_YZXH0f(0.}RI_D8((^RI_C8((^RI_cjS(((UHH0PRQWVP3EH3D$3D$ HEH$HKHfD$ H3(EH8BHEH@BHEHHBHEEH0HEH$HH3ɱ(H@HUHRH3H HH0D$(H0EX^_YZXH0f(.}RI_T}+8((h-_κoZ ( ((UHH0PRQP3EH3D$3D$ HH$HKHfD$ HH E$ED$HHD$HXBHUHRH3H HH0D$H uEEXYZXH0ffff(JRI_$(( ((UHHPRQWVPXHUHH33fE3fE3EEUƒ ƒtDE3Ҳ ʃu33ƒ0HUDE3Ҳ 3EEfE3UDEfE3fEE3ҲʙU;BEU+TUETEM+TEUDEfEX^_YZXHffff(h?RI_$a8((iZ ((^RI_ʤo((JRI_.V((^RI_M((JRI_i((Z (((UHHPRQP3EdH3HE3 fEHEHEHE3 U;rHƒ0HU ;HE0ƒ#уtEdUHU 0EdEHEAƒHEG#уtEd3ҲHU 7Ed?HEaƒHEg#уtEd3ҲHU WEdHE#uEdHfE3EdHEHHEXYZXHff(?RI_s>((((XUHHPR3fH3HEHEHEHEtHEHHEfZXHf(9cI_\h MS M"):A .6 "( ((UHH PRQW3f3fEH3HEH3HEEƒ ƒt3fETEHTHUHHEHEƒHEHE8;#уtHEHHEHEHHEHEuEfEfE`3f_YZXH ffff(@+<I_fz  g V[ dda`_SZ \[XzWm vSVR M VQU) 0((((UHHPRQWVPXHHH33fE 3S3fEU;+ETEu EfE3X^_YZXHffff(X9cI_/΃  NUyG`i HN7C5 ;C3H/68(((UHHPRQWVPXHHH33fE}3fEU; ETuiEfE3fEU;7EƒTEu EfE3UX^_YZXHfff(JI_o! $bdcRb \W^^w]8ir\ QWXLW-@ GT;S./ 6 8(((UHHPRQWVPXHHH33fE3fE3fE 3HHEH$HH3ɱHHAHf$HfEU;|HEHHH3ɱIE+fEEU;,ETEEfEEfEX^_YZXHf(gI_5QK   *+.* G T( ~ y~[VOTG ORH; B 8(((UHHPRQWVP33XHHH33fEHHEH$HH3ɱ%sXH$HH3ɱHPAHf$HfEEuHHEH$HH3ɱHH$HH3ɱ3f$Ef$H`BHfH$HHH3ɱHHHH3ɱHHH$HH3ɱHHAHf$H;H ED$3D$ 3D$HHH$HH3ɱHHH$HH3ɱHHAHf$H+f$HhAHfH$HHH3ɱHHT$HH3ɱH `H$H8LHf$H H ED$3D$ 3D$HHH$HH3ɱf$HXAHfH$HHH3ɱHHT$HH3ɱH `H$H8LHf$H [H ED$3D$ 3D$HHT$HH3ɱH `H$H8LHf$H X^_YZXHfff(}\U  c;?_(c:c:FlM(l5l5_(lL.6lL).w[(wC wC (w5$)1w5$$)_(wZywZtyjoJ(j wj rwQ^:N(^ 0^ 0 [Z&X+D(X X K8((tZ ((tZ ((tZ ( (tZ (!((UHHPRQWVPXHHH33f@XHBHH3HHHH$HKHfD$HH3D$3D$ HHH$HKHfD$ HHHHH$HKHfHHHPH$HH3ɱP.XH$HH3ɱH@HfH$H@HH3ɱHHBHH3ɱHHEH$HH3ɱHBH$HH3ɱHPAHf$Hf@@HHEH$HH3ɱ@PPHHBH $HHQ3ɱYHHAHf$HXXf$3f$HhBHfH$H@HH3ɱHHUHH3ɱHHEH$HH3ɱHBH$HH3ɱHPAHf$Hf@@HHEH$HH3ɱ@PPHHBH $HHQ3ɱYHHAHf$HXXf$3f$HhBHfH$H@HH3ɱHHUHH3ɱHEHHH3ɱX^_YZXHfff(ȰZ¸u-  K(%4DL%4?Dc(wrwf}("C"C ( 2 2 c( |EM |@E ]K(":":R"Y("B"B #*(## 8(*((UHPRQWVPHuHHH$HpBHUHRH3H HH0HD$HHH HH$HHD$HxBHUHRH3H HH0HD$H HHHHFVHH^X^_YZXffff(au(+  TRe( C Ct]6d( *AF *$28(4((UHHPRQWVPXHHH3HEHHH3ɱHHH$HH3ɱ3f$HXAHfH$HHH3ɱH Z: u HH uHHH$HH3ɱ3f$3f$HhBHfH$HHH3ɱHHHH3ɱX^_YZXHfff(xt JOIF(zMc(    ,78(5((UHHPRQWVPXHHH3HEHHH3ɱHHH$HH3ɱ3f$HhAHfH$HHH3ɱH Z: u HH uHHH$HH3ɱ3f$HHH$HH3ɱHHAHf$Hf$HhBHfH$HHH3ɱHHHH3ɱX^_YZXHfff(ضfn* UF(zM*( ' c( BJ =B,78(6((UHHPRQWVPXHHH3H3HE3fE3fEHHEHEHHH3ɱHHEH$HH3ɱHHAHf$HfE3fEEU;BHHE$HBHfD$HHUHEHHEEfEX^_YZXHfff(p_~\   i(    a(  h GR <C8(7((UHHPRQWVPXHUHH3XHUHH3EUƒ#Uƒ ƒtH%0XH$HH3ɱHE$3D$HP@HfHT$HHH3ɱHH$HH3ɱH@HfH$HHH3ɱHHUHH3ɱEHHEH$HH3ɱxXH$HH3ɱH@HfH$HHH3ɱHHUHH3ɱHHEH$HH3ɱXXH$HH3ɱH@HfH$HHH3ɱHHUHH3ɱH0HEHD$3fD$HEHD$3D$ HEH$HBHfD$$H0X^_YZXHffff(x0.` cLj(ccT`+(` ` ^+E(^ ^ L]u8?[9v6(([ ,[ ,}Y6qYDAH8(8((UHH PRQWVPXHUHH33fE3EH3HE3fE3fEEUƒ#Uƒ ƒtH0E$3D$H=HUHRH3H HH0D$H$HX=HUHRH3H HH0D$H$3D$H=HUHRH3H HH0D$ HHfEEU;} EfE*EU;~E ~ 3fE EfEHEUHҋҋHHE3HU3fEEU;mHEHHEEHEE w E0EEt EWE E7EEHUEEEfEX^_YZXH f( 쿕7Ӯ    v*   3x $m tc kZaN VA Id29&xd(m(c(&6sDDJ8(9((UHHPRQWVPXHUHH3XHUHH3HEHUƒ#Uƒ ƒtH%0XH$HH3ɱHE$3D$HP@HfHT$HHH3ɱHH$HH3ɱH@HfH$HHH3ɱHHUHH3ɱEHHEH$HH3ɱxXH$HH3ɱH@HfH$HHH3ɱHHUHH3ɱHHEH$HH3ɱXXH$HH3ɱH@HfH$HHH3ɱHHUHH3ɱH0HEHD$3fD$HEHD$3D$ HEH$HBHfD$$H0X^_YZXHfff(HD eMj(eeUb+(b b `+F(` ` M_u9@]9w6((] , ] ,~[6r[DAI8(:((UHHPRQWVPXHUHH3XHUHH3EUƒ#Uƒ ƒtH%0XH$HH3ɱHE$3D$HP@HfHT$HHH3ɱHH$HH3ɱH@HfH$HHH3ɱHHUHH3ɱEHHEH$HH3ɱxXH$HH3ɱH@HfH$HHH3ɱHHUHH3ɱHHEH$HH3ɱXXH$HH3ɱH@HfH$HHH3ɱHHUHH3ɱH0HEHD$3fD$HEHD$3D$ HEH$HBHfD$$H0X^_YZXHffff(K•:_ aLj(aaT^+(^ ^ \+E(\ \ L[u8?Y9v6((Y ,Y ,}W6qWDAH8(;((UHH PRQP3E$H3HEH3HE3EHEHHUHƒ ‹U ƒ ƒt 3E$LHEHEHEHE3EE U;w$EHU EHU EEϋE E$XYZXH f(ӭSq   tzotgo_gZ UZU$, ((=((UHPRQWVPXHUHH3EH $>W q    +Gd~2Lg ! "(#D$a%x&=UNKNOWNXHUHH3ɱBOOLXHUHH3ɱBITXHUHH3ɱaBYTEXHUHH3ɱ>WORDXHUHH3ɱDWORDXHUHH3ɱLWORDXHUHH3ɱSINTXHUHH3ɱINTXHUHH3ɱDINTXHUHH3ɱkLINTXHUHH3ɱHUSINTXHUHH3ɱ$UINTXHUHH3ɱUDINTXHUHH3ɱULINTXHUHH3ɱREALXHUHH3ɱLREALXHUHH3ɱrSTRINGXHUHH3ɱMWSTRINGXHUHH3ɱ'TIMEXHUHH3ɱDATEXHUHH3ɱ DATEANDTIMEXHUHH3ɱ  TIMEOFDAYXHUHH3ɱ POINTERXHUHH3ɱi REFERENCEXHUHH3ɱ A SUBRANGEXHUHH3ɱENUMXHUHH3ɱARRAYXHUHH3ɱPARAMSXHUHH3ɱUSERDEFXHUHH3ɱNONEXHUHH3ɱeANYXHUHH3ɱCANYBITXHUHH3ɱANYDATEXHUHH3ɱANYINTXHUHH3ɱANYNUMXHUHH3ɱANYREALXHUHH3ɱLAZYXHUHH3ɱhLTIMEXHUHH3ɱG BITCONSTXHUHH3ɱ# INTERFACEXHUHH3ɱ X^_YZXffff(Pe +_dU$S&<KQ%&O"M!K$I#G#gsE$ANC#(A ?!=$;#9"hs7!EO5%,3&1$/&-(~+![e)!8B'$%##"!!""^i!;E""!! !"hs "DO !!+ ! ! ")  !"#$%&'())*8(>(M_8ӑ(?((xUHHPRQPH3HE H3HEH HEH$HEHD$HBHUHRH3H HH0HD$H HEHEHE XYZXHff(DM_8iqai 3k( SX 6D"((@(( UHPPH3D$3D$ HE H$HGHfD$ HEHfLz  2 `  Ft,ZVRNJFB>:6 2!."*#&$"%&I=C>H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H bH HE H$HEHD$ED$HAHfD$H +H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H OH HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H sH HE H$HEHD$ED$HAHfD$H <H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H `H HE H$HEHD$ED$HAHfD$H )H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H H HE H$HEHD$ED$HAHfD$H zupkfa\WRMHC>9H HE H$HEHD$ED$HAHfD$H XXfffff(8V P;(PP,;(V^QV4;(';(;( P;( z uzX;(CK>C!;(  ;(t;(|=;(gobgE;(08+0;(;(a;(i*;(T\OT2;(%;(;(N;(xsxV;(AI<A;(  ;(s3) :(A(( UHHPRQWVP3 H3D$3D$ HH$HGHfD$ HHHH$D$ D$HAHfHT$HHHHHHH󤋅Hn ( > S h {.ATgkosw{ !"#$%&=3 E; wE; YE; ;E; E; HEHH; E; E; E; HEHH; kE; ME; /E; HEHH; M.{3 Mf.{3 HEH: u HH u vHEHf; u HH u FE; *E; E; E; 3 3 3 3 3 3 3 ~3 t3 j3 `3 V3 L3 B3 83 .HEHH; 3 3 X^_YZXHf(0Q ,"#+"~"{px"u"r"yo"owl"emi"[cf"QY_"GO\"=EY"08V"#+S"P" M"J"GxD|An>n;tOZ8r +5p2n/p,p)nx&pZe#n;F n(l nppnnlw lNYn0;)  !"#$%&'();I*@(#{#v{P+8(B((0UHPPHH5H$HGHfHXXff(o> &+,k()!&)!(C((UHHPRQWVP3fEHEHhTHH3ɱ3fEEjU;EHpUH;`TEHpUHPPHHUHL$HHQ3ɱYHH$HH HQ H HfHXXEHpUHPPHHUHL$HHQ3ɱYHH$HH HH Hf$HXXhUEfEX^_YZXHf(8 9>$(6A$9$7($,\ $,\ We(VVllIP.628(D((UHHPRQWVP3EXHHH33fEHhTHHH3ɱ3E3fEEjU;EHpUH;`TuqEHpUHPPHHhTHL$HHQ3ɱYHH$HH HH Hf$HXX3EEfETX^_YZXHf(   (al m9(llt{ YaTY27>8(E((UHHPR3E3E3fE3EH3HE3EHEHEHEUEEE%HfEE%EZXHffff(@/H#(F((UHH0PRQP3E$H#NJHE3EHEHHU3EH3HE3EHEHHEHUHH3HHEEЃHUHƒ#‹UM ;ƒ ƒt3EE؃tJHEH0HHUHEHHEHEHUHHuH3 H3HHHEEEHEH3Ҳ HH3HHEЋEE13HUHEHUHXYZXH0ffff( |74HdC((G((UHHPR3E3E3EH3HE H3HEH3HEHEHEHEHHUHEH?HEHEHH#H4EHEHH#HE ZXHf(X.;H(I((UHPRSPH3E(H ED$ED$ ED$HP1H$HPDHfD$H E(E(uHE Ht 3HU HE Ht3HU X[ZXff( RI_k|((J((UHPRSPH3E HED$HP1H$HHDHfD$ HE E uHEHt 3HUHEHt3HUX[ZXff(x RI_sR((K((UHPRSPH3E H ED$ED$ HP1H$HDHfD$H E E uHEHt 3HUHEHt3HUX[ZXff( RI_羂((L(4jZ (M(?RI_.Pz(N((UHHPRQWVPXHHH33fE3fEu(~f3fƒ ƒtHEHHH3ɱ3fEU;1ETEuKEfE3fEfEE=LE=~<EEuEfEEfEfEU;#ETuEfEfEE=LE=~<ETEu=EfEEfEE=}3U3X^_YZXHf(gI_lK "8=08$^sY ][8ZY7Ym t8C b i KJQJEbIU&2!b6N<F8EW<8PipU^i MTS4AHj5 <!8(]((UHVPHuX^ffff(BJa=  ( a((UHPRQVHu3EH3HFH3HF3FF#F H3HF(HHEHH$HXLHfHH H_H$H3HD$HBHUHRH3H HH0HD$H HFH CfUnitXH$F V ‰D$D$ HFHD$HAHUHRH3H HH0HD$H HF3E^YZXf(|\ k(bbA[t(22yf;b(V[QVC((_((UHHPRQVHu3$3E3$H0HFH$F V ‰D$ED$ ED$E D$HE$HD$H@HUHRH3H HH0D$ H0EEu 3$^YZXHf(ls +1<6%(6 6 gu-,%((`((UHPRQVHu3EHHFH$HBHUHRH3H HH0D$HHHFH$HBHUHRH3H HH0D$HHHFH$HBHUHRH3H HH0D$H3E^YZXff(;`Qg  s(   Jr( z ]kRq(AI$2((b((UHPRQVHuH`HuPH H_H$H`HD$HBHUHRH3H HH0HD$H H`H`H`^YZXffff(ٽg  Aipuu(VX]V;I$ ((c((UHHPRQWVPXHHH33fE3fE3Euf3f3fEE=U;u3E3EETu3UNEtfETEEfEEfEYX^_YZXHf(+<I_tw Kj sXJ"C OQJmlp\N =: 8 7>y K dj YdHOI<C8(d(qf(e(qf(i((UHPR3EE@U[ƒ#ƒt E EKE=Uƒ#Uƒ#ƒt E EEEZXfff(0 D |pw8A,3 (j((xUHPRQP3E4H0HE H$HE(HD$E0D$HEHD$ED$ HBHUHRH3H HH0D$$H0XYZXffff($zehmFF v(F^cFAO((k(M_8~(q( jZ (r(p0Z (s(p0Z (t(E0Z (u(0Z (v(L_Z (4((UHHPRQWVPHu3EH3H3F3EE3UD EE3EE3UDEE3F,3F03F43F83F<3F@3FD3FH3FL3FP3FTXHVXVHH3^33X^_YZXHfff(8Qń8((((UHPVHu3EH3HH3H^Xfff(2 (((HUHPVHu3EH3HH3HF3fF3fF3fF3fFH3HF^Xfff(8J;@(((HUHPVHu3E3f3fF3FH3HF3FH3HFH3HF ^Xffff('79>(((8UHPVHu3EH3HH3HF3FH3HF^Xfffff(w(-(((@UHPVHu3E3H3HF3fF3fF3FH3HF^Xfff(m 38(((8UHPVHu3E33fF3fFH3HF^Xfffff(@W/',((((UHPVHu3EH3H3F^Xffff(x ((((UHPVHu3E3H3HF^Xfff([\N (((8UHPVHu3E3f3fF3F3F3F ^Xfff(PU+0((( UHPVHu3EH3H^Xff(_PW(((hUHPRVPHu3EHED$ED$ HEHH$H@CHfD$ HH3HFH3HFH3HFX^ZXfff( NiZ_(( ((@UHPVHu3E33F3F3fF 3fF3F3F^Xfff(&49(((`UHPRVPHu3EHED$ED$ HEHH$H`CHfD$ H3F3F3F X^ZXff(IOTY((((XUHPRVPHu3EHED$ED$ HEHH$H`CHfD$ H3FX^ZXfff((UJO(((((UHPVHu3E33F^Xffff((@((((UHPVHu3E33F^Xffff((@("((0UHPVHu3EH3H3F3F ^Xfffff(%Ɗ$('(((UHPVHu3E3f3F3F^Xff( ,#(-(((UHPVHu3E3fH3HF^Xfff(( ( Z((8UHPVHu3E33F3fF3fF H3HF^Xfff(P  ,1( ^(((UHPVHu3E33F^Xffff(C@( (((UHPVHu3E3F3F 3F ^Xff(| #( v((UHPVHu3E3fFHHFH$HDHfD$HHED$ED$ HFH$HDHfD$ H3F(3F)^Xfff(r sx( z(((UHPVHu3EH3HH3H^Xfff(X2  ( (((UHPVHu3E3FH3HF^Xff(hJ "( ((0UHPVHu3EH3HF3F3F^Xfffff(mu  %( ((UHPRQWVPHu3E<XHVHH3ɱ^>XHVHH3ɱ^/>XHVHH3ɱ^ XHVHH3ɱ^=XHVHH3ɱ^"XHVHH3ɱ^\XHVHH3ɱ^/XHVHH3ɱ^XHVHH3ɱ^ XHVHH3ɱ^ XH VHH3ɱ^HHFH$HEHfD$HHED$ED$ HFH$HEHfD$ HHHF H$HEHfD$HHED$ED$ HF H$HEHfD$ HXHV8VHH3^HH8H$HEHfD$HHED$ED$ H8H$HEHfD$ HXHPVHH3^HHH$HEHfD$HHED$ED$ HH$HEHfD$ HXHVHH3^3333333333X^_YZXf(Wq 8( ((`UHPRQWVPHu3EXHVHH3^XHVHH3^3X^_YZXfff(xs QV8( ((UHHPRQWVPHu3EXHVHH3^3f3f3f3f3EE3Ҳd;PEHHED$ED$ HH$HFHfD$ HEEX^_YZXHff(xDG 8( ((UHHPRWVHu3E3fF3fF 3fF 3fF3EE,;MElH|HED$ED$ HH$HFHfD$ HEE3f HH H$HDHfD$HHED$ED$ H H$HDHfD$ H3 3 ^_ZXHff(i (( j((UHPVHu3E3FHHFH$HDHfD$HHED$ED$ HFH$HDHfD$ HHFHF@HHFHH$HFHfD$HHED$ED$ HFHH$HFHfD$ HHFPHHHH$HFHfD$HHED$ED$ HH$HFHfD$ H3^Xfff(.+c +0( ((HUHPRQWVPHu3EXHVVHH3^33 X^_YZXf(O} =B8(G((UHPVHu3E3H3HF3fF3fF3F3FH3HFH3HF H3HF(3F03F43F83F<3F@3FD3FH3FL3FP3FT3FX3fF\3fF^H3HF`3Fh3Fi3fFj3Fl^Xff(0o(D((`UHPVHu3EH3HFH3HFH3HFHED$ED$ HF H$HhGHfD$ H^Xff(| UZ(b((UHPRQWVPHu3E3333H3HXHVHH3^33f333f3f3H3HH3HH3P$XH3P$XXHVHH3ɱf^3H3H333X^_YZXfff(@> 8(_((UHPRQWVPHu3EHED$ED$ HH$HGHfD$ HHED$ED$ HH$HGHfD$ HXHVHH3^XHVHH3^X^_YZXfff(} 8(e((`UHPVHu3EHED$ED$ HH$HGHfD$ H3f3f^Xffff( QV(X((UHHPRWVHu3E3EE,;MEH|HED$ED$ HH$HGHfD$ HEE3fHHH$HGHfD$HHED$ED$ HH$HpGHfD$ H3EE,;PEHHED$ED$ HH$HGHfD$ HEE3j 3j ^_ZXHff(8{U IQ(({((pUHPRQWVPHu3E33fF3F3fF XHVVHH3^XHVHH3^X^_YZXfff(Rڒ `e8(((`UHPVHu3EHED$ED$ HH$HHHfD$ H3f3f^Xffff( QV(t((UHHPRWVHu3E3EE,;MEH|HED$ED$ HH$HHHfD$ HEE3fjHHjH$HGHfD$HHED$ED$ HjH$HpGHfD$ H3EE,;PEH`kHED$ED$ HH$HHHfD$ HEE33^_ZXHff(`v IQ(((( UHPVHu3E^Xfffff( ((((UHPVHu3EH3HH3H^Xfff(2  (J((0UHPVHu3E3f3fF3fF^Xfffff(x[ %(((UHPRQWVPHu3EXHVVHH3^XHVHH3^XHVHH3^XHVHH3^XHVHH3^...TestName too longXHVHH3ɱ^...TestMsg too longXHYVHH3ɱ^X^_YZXffff(00  8((((UHPVHu3E33F^Xffff(H-(((UHPVHu3EHED$ED$ HFH$HCHfD$ HHED$ED$ HFH$HCHfD$ H3F(3F)3F*3F,^Xff(p, (((UHPVHu3E3H3HF3fF3fF3F3FH3HFH3HF H3HF(3F03F43F83F<3F@3FD3FH3FL3FP3FT3FX3fF\3fF^H3HF`3Fh3Fi3Fj3Fk3Fl3fFp3fFrH3HFxH3H^Xff(;}(((0UHPVHu3E3f3fF3fF^Xfffff(x[ %(((8UHPVHu3E3H3HF3F3FH3HF^Xfff(+̛,1(((0UHPVHu3E3f3fF3fF3fF^Xff(8(&+(((PUHPRVPHu3EHED$ED$ HEHH$HIHfD$ HX^ZXf(heEJ((((0UHPVHu3E3fF3fF 3fF ^Xffff(63H!&(((8UHPVHu3E3f3fFH3HFH3HF^Xfffff(NK(-(((8UHPVHu3E3H3HFH3HFH3HF3F ^Xff( X.3(((UHPRQWVPHu3E3f3F3F3F 3fF3fF3F3FXHVVHH3ɱf^33 3$3(3f,X^_YZXf(Xb8( ((UHPRQWVPHu3E3f3F3F3F 3fF3fF3F3FXHVVHH3ɱf^33 3$3(3f,X^_YZXf(b8(/((UHPRQWVPHu3EXHVHH3^XHVQVHH3^XHVHH3^XHVHH3^XHDVHH3^X^_YZXf(x`8(,((hUHPVHu3EHED$ED$ HFH$HKHfD$ HH3HH3HH3H^Xff( sH ^c(2((UHHPRQWVPHu3EH3H3F3EE3UD EE3EE3UDEE3F,3F0H3HF8H3HF@H3HFHH3HFPH3HFXH3HF`H3HFh3FpXHVtVHH3^33X^_YZXHff(v8(U((XUHPRQWVPHu3EXHVHH3^3F 3F$3F(3F,3F03F4X^_YZXff(huJO8(R((UHPRQWVPHu3EHED$ED$ HH$HLHfD$ HCfUnitXHVHH3ɱ^3F F$F(F,F03 F4H3HF8H3HF@3FHX^_YZXf("K 8(h((@UHPVHu3EH3HH3HFH3HFH3HFH3HF 3F(^Xff(pCf6;(n((UHPVHu3E3H3HF3fF3fF3F3F3FH3HF 3F(3F,3F03F43F83F<3F@3FD3FH3FL3FP3FT3fFX3fFZH3HF`^Xfff(%9T(B(((UHHPVHuH 0H^XHfff(HkX(@(((UHPRVPHuH3HU H3E(X^ZXff(p&((?(((UHPRVPHuHEHUH3E X^ZXf(6(((( UHPVHuH0H^Xfff(z^((((UHPRVPHuH3HU H3E(X^ZXff(&(((((UHPRVPHuHEHUH3E X^ZXf(6((u((PUHPVHuH1HHHHFHHFH$HDHfD$H^Xfffff(0(s((XUHPRVPHuE=xtH3HU H3E($HEHU HHE HHHE H3E(X^ZXff(${((r(((UHPRVPHuHEHUH3E X^ZXf(6(((( UHPVHuHP1H^Xfff(G2G((((UHPRVPHuH3HU H3E(X^ZXff( &(((((UHPRVPHuHEHUH3E X^ZXf(H6(((( UHPVHuH1H^Xfff(pK!((((UHPRVPHuH3HU H3E(X^ZXff(&(((((UHPRVPHuHEHUH3E X^ZXf(6((((UHPVHuH(2HHHFH$HEHfD$HHHF H$HEHfD$HHH8H$HEHfD$HHHH$HEHfD$H^Xff(*((((UHPRVPHuH3HU H3E(X^ZXff(&(((((UHPRVPHuHEHUH3E X^ZXf(6((((UHHPVHuH2HHHHFHHFhH$HHEHfD$HHHH$H(FHfD$HHHH$HDHfD$H^XHf(^(((XUHPRVPHuE=xtH3HU H3E($HEHU HHE HHHE H3E(X^ZXff(p ${(((((UHPRVPHuHEHUH3E X^ZXf( 6((((HUHHPVHuH3HHH H$HDHfD$H^XHf( Fl((((UHPRVPHuH3HU H3E(X^ZXff(8 &(((((UHPRVPHuHEHUH3E X^ZXf(` 6((h((UHPVHuH@3HHHFH$HDHfD$HHHFHH$HFHfD$HHHH$HFHfD$H^Xffff( ùe(f(((UHPRVPHuH3HU H3E(X^ZXff( &((e(((UHPRVPHuHEHUH3E X^ZXf(8 6(((( UHPVHuH3H^Xfff(` `((((UHPRVPHuH3HU H3E(X^ZXff( &(((((UHPRVPHuHEHUH3E X^ZXf( 6((C(( UHPVHuH3H^Xfff( z(A(((UHPRVPHuH3HU H3E(X^ZXff( &((@(((UHPRVPHuHEHUH3E X^ZXf( 6((T((HUHHPVHuH4HHHH$HGHfD$H^XHf(@ ِ(R(((UHPRVPHuH3HU H3E(X^ZXff( &((Q(((UHPRVPHuHEHUH3E X^ZXf( 6((p((HUHHPVHuHx4HHHjH$HGHfD$H^XHf( [ (n(((UHPRVPHuH3HU H3E(X^ZXff( &((m(((UHPRVPHuHEHUH3E X^ZXf(H 6((((0UHPVHuH4HHHHF^Xfffff(p (((XUHPRVPHuE=tH3HU H3E($HEHU HHE HHHE H3E(X^ZXff( (((((UHPRVPHuHEHUH3E X^ZXf( 6((((UHHPRWVHuH 5HHHH$HGHfD$H3EE3Ҳd;@EHHHH$HPGHfD$HEE3EE3Ҳd;@E3@HkHHH$HDHfD$HEEHHsH$HGHfD$HHH H$HHHHfD$HHHH$HHHfD$H^_ZXHfff( v(((((UHPRVPHuH3HU H3E(X^ZXff(&(((((UHPRVPHuHEHUH3E X^ZXf(6(((( UHPVHuH7H^Xfff(&((((UHPRVPHuH3HU H3E(X^ZXff(&(((((UHPRVPHuHEHUH3E X^ZXf(6(((( UHPVHuH87H^Xfff(@-((((UHPRVPHuH3HU H3E(X^ZXff(`&(((((UHPRVPHuHEHUH3E X^ZXf(6((((HUHPRVPHuHHEHH$H(JHfD$HHh7HX^ZXfff(I1((((UHVPHuX^ffff(0~(((pUHPRVPHuH ED$HE HD$HEHH$HHJHfD$H t 3E(H3HU H3E(X^ZXffff(*F (((((UHPRVPHuHEHUH3E X^ZXf(6(((( UHPVHuHh9H^Xfff(Ο(((UHVPHuX^ffff( 0~((((UHPRVPHuH3HU H3E(X^ZXff(&(((((UHPRVPHuHEHUH3E X^ZXf(6((+(( UHPVHuH9H^Xfff(0()(((UHPRVPHuH3HU H3E(X^ZXff(P&((((((UHPRVPHuHEHUH3E X^ZXf(x6((^(( UHPVHuH9H^Xfff(1F"(\(((UHPRVPHuH3HU H3E(X^ZXff(&(([(((UHPRVPHuHEHUH3E X^ZXf(6(((~(((UHPSHH :Hf[Xfff(R(((( UHSPHX[fffff(8((((0UHHPSH3E3E3E[XHff(X Z((((0UHHPSH3E3E3E[XHff( UF((((0UHHPSH3E3E3E[XHff( د((((0UHHPSH3E3E3E[XHff( Gn((((0UHHPSH3E3E3E[XHff( pY3((((0UHHPSH3E3E3E[XHff(H dN((((0UHHPSH3E3E3E[XHff(x "!S((((UHHPRQWVSH3E3E3EH$Hx"HH3ɱ2 IEC-TasksXH"HH3ɱ PlcTaskXH"HH3ɱ3EE3Ҳ;ME3@H#HED$ED$ HH$HKHfD$ HEE머lU3EE3;ME3@ H0#HED$ED$ HH$H KHfD$ HEE30#H"H8#3@#3D#HlUHH#HED$ED$ HP#H$HKHfD$ H3e#3P#H"HX#3f`#3fb#3d#H3Hh#H3Hp#H0>Hx#3#3##3f#H#H#3#Hf#Hf#H0#H#H3H#HP#H#HED$ED$ H#H$HKHfD$ H3f#3f#Hx"H#H#H#[^_YZXHfff(>l((((hUHHPSH3E3E3EHED$ED$ H#H$H0KHfD$ H[XHffff( /~((((0UHHPSH3E3E3E[XHff(( H((((UHHPRWSH3E3E3E3EE3;ME3@H&HED$ED$ HH$HCHfD$ HEE3EEH3UH&EEHED$ED$ H&H$HCHfD$ HHf&H3H &[_ZXHffff(X ]PjH((((0UHHPSH3E3E3E[XHff(` 7N((((UHHPRQWVSH3E3E3EHMH$,HH3EE=3U$,EE[^_YZXHffff(6(((a*JU6";lDv؈~^6ym2c+ǔW(O#F>!L 8pkp,Y#G3~ײe9\ry-[]$wI*cT:u/ ^%M;Kvq/<^x%0K`aBÄ& MNh8=pB{M1bkq'N?7~Y>|2ed1c(P'O @:?r3eg[)ӷR*T!,BQYCx4i-Z* T!}2d(P @333fffz(QNb 7Ao6m4hk)S!C75_ky*(((ЮaWp@M; v_s;/y"0gQ`EQb!s؊@K\Xp#(HK/\ 8hPKr@،XKu)-.x2gKDq oKHAnyTypeVERSIONFB_Sum_Test__MAINTwoPlusTwoEqualsFourFB_initZeroPlusZeroEqualsZeroPRG_TESTFB_SumFB_INIT__MAINConstantsTYPE_CLASSIMPLICIT_FUNCTION_POINTERSiostandard, 3.5.15.0 (system)3slicense, 3.5.14.0 (3s - smart software solutions gmbh)breakpoint logging functions, 3.5.5.0 (3s - smart software solutions gmbh)cfunit, 1.1.0.0 (open source)(0T~(((  ((&~(((3~>3~>3~?=e>>e?ƫ7>ƫ>ƫ7?>>?P=Pk>P>Pk?@<>@>@v>v?½=½p>½>½p?Η@>Η>Η@? > > ?߄=߄v>߄>߄v?7E>7>7E?>ŝ>?|o=|o|>|o>|o|?I>>I?!>>!?9?>9?>9??=N>>N?o%>o>o%?QY>QY>QY?=S>>S?h)>h>h)?x>x>x?'='X>'>'X?x->x>x-?# >#NJ># ?k =k ^>k >k ^?1>>1?>>?_=_c>_>_c?!5>!>!5?>焑>?=h>>h?C:>C>C:?>>?(k=(kn>(k>(kn? >> > >?>>?$=$t>$>$t?PC>P>PC?@>@>@?=z>>z?H>>H? >> ?>>??L>>L? #> ף> #?o>o>o?=Q>>Q?'>ŧ>'?7>7>7?=V>>V?w+>w̫>w+?_p >_p>_p ?=[>>[?/>>/?̼ >̼>̼ ?.=.a>.>.a?$4>$>$4?}>}>}?=f>>f?w8>w>w8?>>?J=Jl>J>Jl?<>>>?=q>>q?mA>m>mA?>>?=w>>w?F>>F?t>t>t?=}>>}?J>>J?`B">`B>`B"?>΁>?=O>(((~())(UHHPRQWVSH3E3E3EH8@HfSimpleCfUnitExampleProjectXH$HH3ɱ?CODESYS_Control.SimpleCfUnitExampleProject.PRG_TEST.fbSum_TestXH0iHH3ɱ>HHh`35125MXH0HH3ɱ35125MXH0HH3ɱ fsvn://server04/LibrariesV3Source/branches/V3.5.15.0/Intern/IoDriverBase/IoStandard/IoStandard/XH0HH3ɱfZ2019-06-05 08:48:56 +0200 (Wed, 05 Jun 2019)XH0HH3ɱXfb.brueckmannXH.1HH3ɱftestresults.xmlXH^HH3ɱH3HP`HP`HX`Hh`H``HED$ED$ Hh"H$H0KHfD$ H3fh"3fj"3fl"3fn"HED$ED$ Hp"H$H0KHfD$ H3fp"3fr"3ft"3fv"@wH1HHP1H$HCHfD$HHED$ED$ HP1H$HDHfD$ HXH4HH3H4H5HH5H$HFHfD$HHED$ED$ H5H$HFHfD$ H30H3H`TXHhTHH33hU3iU3fjU3EE=,H3UHpUEEHED$ED$ H_H$HLHfD$ HHH `H$HPLHfD$HHED$ED$ H `H$H0LHfD$ HHE$HLHfD$HHE$HLHfD$HHE$HLHfD$HHE$HLHfD$HHE$HLHfD$HHE$HLHfD$HHE$HLHfD$HHE$HLHfD$H3EE3Ҳ;ME3@HSHED$ED$ HH$H0CHfD$ HEE머fS3fS3SHFSVS3@fS3fS3SS80S3fS3fS3SS3S3fS3fSTT3T3f T3fT TT3THED$ED$ H TH$H CHfD$ H3 THSH(THE$HLHfD$HHE$HLHfD$HHE$HLHfD$HHE$HLHfD$HHE$HLHfD$HHE$HMHfD$HHE$HMHfD$HHE$HMHfD$H[^_YZXHff(808(((xUHHPSHH3D$H `H$H@LHfD$ HH3D$HP1H$H0DHfD$ H[XHfff(P$ ())(JUHPSHIIH:IH0>IhH>IH?I8HBI@HCI H@IH CIH`CIHCI(HCIHX@I0rHEIHHEIHEIHrH EIrH(EI H0EI@sH8EIsH@EIHHEIxHFIHpGI HxGI HGI_HGI HGIh`HGI HGI8HGI`HGIaHGI HGI@ HGIcHGI0eHGIgHGIhHHInHHIHJIHKIHKIHKIHKIHKIHKI 0HKIH@IH@IH@IXHKI@HPAIHpAIHLIxHAIHAIHAI8HBIXH0BIHLI8HBIHLIHHLI(HLIHMIH>IH>I H?IHCI H@IPH(@IH@CI(HCIHCIHHH@I!Hh@IPHDIHDISHDISHDIHDI0HDIHDIPtHEIHEIvHEIxHEIHEIXzHEIHFIHFI@HFIHFIH FIH(FI؅H0FIH8FIxH@FI(HHFI8tHPFIHFI` HFI(HFIxHFI HFI8 HFIHFIHGI HGIH GIH(GI H0GIH8GIH@GI8HHGI` HPGI`HXGIH`GIHGIHHIHHIHHJIH KI؊H@KI(HHKIhHPKI،HXKIH`KIHhKIHpKI0HxKIH@I H@IH@IHAIH@AIH`AI HKIPHKI0HKIHKIxHLIضHAIHHAIPHAI0HBIH BIxH@BIH`BIHhBI0HBIP$HLIHLIHLI`HLIpHMIH>IH?I H ?IHCI H@IH0@I HPCIHCIH8@IHP@IHHCI)HCI3HCI4HCI`5HDIX6HDI8HDI8HDI9H DIH(DI:H0DI;H8DI=H@DIP?HHDI?HPDI@AHXDIAH`DIxCHhDIpHpDI8EHxDI)HDIGHDI`MHDIHDIXHEI HXFI$H`FIcHhFIp HpFI0oHxFIHFI0pHFIHPHFI8 HFIHFI`PHFI HFI HGIPHGI0HhGIHGIoH HIH H(HI`H0HIoH8HI H@HI HHHIHqHPHIsHXHItH`HIvHhHIzHpHI {HxHIHHIHHIHHIHHIHHIHHIPHHIHHIHHIHIIHIIHHIIpHIIH II H(IIH0II H8IIH@II HHII HPIIؚHXIIp$H`II DHhIIEHpIIFHxIIqHIIuHII@xHII`|HIIHIIHIIPHIIHIIHIIHIIpHIIHIIHII(HIIHIIHIIHJI@HJI(HJIHJIH JI H(JIH0JI)H8JI0+H@JIHHJIp2HPJIP?HXJI?H`JIDHhJIPGHpJIGHxJIHHJIHJI(THJIpHJI`HJI@HJIHJIHJIHp@IH@IXH@I0H@IhHAIHHAIHhAIȰHAIpHAIHAIHBI H(BIHHBIhHLIHBIHBIXHLIHLIHLIHLIC`H :I8HBIHBIH>IPH>IH?IHBIxHCIH @IH0CIHpCIHCIH@@IH`@IHDIHDIHDIhcHDIHDIȈHPEI@HXEIXH`EIxHhEIHpEI(HxEIXHEIHEIpHEI(HEIHHEIHEIxHEIHEIHEIؐHEIHFI@HGIHHI HHIHHI@|HHI HHIX|HHIp HHI0HJIHJIHJIHJIHJIHKI8H0KIHKI(H@I0H@I HKIHKIXHXAIxHKIxHAI HAI8HAIHBIH8BIH LIH(LIH0LIH8LIH@LIHHLIHPLIHXLIpH`LIHhLI80HLIHLIxHLIXHLI@HMHEHP1H0EHX1HEH`1HHEHh1H(EHp1HEHx1H@EH1H EH1H8EH1HGH3HxGH3HGH3HGH3HpGH4HGH4HGH4HGH 4HGH(4HHH04HGH84HGH@4HGHH4HGHP4HGHX4HGH`4HHHh4HKHh9HKHp9HKHx9HKH9HKH9HKH93H1HDH1HDH 1HDH(1HDH01HDH81HDH@1H FH(2HEH02HFH82HPFH@2H(FHH2H@FHP2HEHX2HEH`2HFHh2HEHp2HEHx2H0FH2HFH2HEH2H8FH2HHFH2HFH2HFH3HFH3HFH3HFH3HFH 3HFH(3HFH03HGH3H0GH3H(GH3HPGH3H GH3HXGH3HHGH3HGH3H@GH3H`GH3H8GH3HpKHh7HhKHp7H@KHx7H`KH7H@JH7HhIH7H8JH7H JH7H`IH7HxIH7HIH7H0JH7HHH7H8IH7HPJH7HIH7HJH7HJH7HJH7HHH8HIH8HIH8HJH8HIH 8HHH(8HHH08H IH88HHH@8H`JHH8HIHP8HIHX8HIH`8HIHh8HIHp8HIHx8HPIH8HIH8HJH8HIH8H@IH8HHH8HIH8H(IH8HIH8HhJH8HHH8H0IH8HIH8HIH8HpIH8HPKH8HXJH9HpJH9HIH9HHH9HHIH 9HJH(9HIH09HHH89HxJH@9HxKHH9HHKHP9HXKHX9HLH9HKH9HKH9HKH9HKH9HDH0HDH0HDH0HDH0HDH1HEH1HEH1HpEH1HxEH1HEH1HEH1HEH1HhEH1HEH1HEH1HEH1HPEH1HEH2HXEH2H`EH2HEH23H4HHH4HHH4HHH4HHH5HHH5HHH5HJH7HJH7HJH7HJH 7HJH(7H(LH9HHLH9H LH9HPLH9H8LH9H@LH9H0LH:HXLH:H(DH 0HpDH(0HDH00HCH80HPDH@0H DHH0HhDHP0H0DHX0HDH`0HDHh0HXDHp0H`DHx0HxDH0HDH0H8DH0HHDH0HCH0HDH0HCH0HDH0H@DH0HCH0HDH03H2H`FH2HXFH2HpFH2HhFH2HFH2HFH2HxFH2HFH@3HGHH3HFHP3HFHX3HFH`3HFHh3HGHp3H(HHx4H@HH4H HH4HHHH4HxHH4HpHH4HPHH4H0HH4H`HH4HXHH4H8HH4HhHH4HJH 5HHJH(5HXIH05H(JH85H@JH@5HhIHH5H8JHP5H JHX5H`IH`5HxIHh5HIHp5H0JHx5HHH5H8IH5HPJH5HIH5HJH5HJH5HJH5HHH5HIH5HIH5HJH5HIH5HHH5HHH5H IH5HHH5H`JH6HIH6HIH6HIH6HIH 6HIH(6HIH06HPIH86HIH@6HJHH6HIHP6H@IHX6HHH`6HIHh6H(IHp6HIHx6HhJH6HHH6H0IH6HIH6HIH6HpIH6HIH6HXJH6HpJH6HIH6HHH6HHIH6HJH6HIH6HHH6HxJH6HJH87HJH@7HJHH7HJHP7HJHX7[Xfffff(9)))(fXV!)3n5)9;NACIE݀>b"R2djJzZ$F099^~))(UHH0PRQSHEu HEHEHE HEII^HUHJHHE3fEE؃HEfUHE3ҲHHEHEfUHE3ҲHHE3fEEU;wfHEfUHE3ҲHHEEHUH ‰EHEHPEHHEHHBHHBUEڃfEE؃fE03fEE؃HEfUHE3ҲHHEHEfUHE3ҲHHE3fEEU;wgHEfUHE3ҲHHEEHUH ‰EHEHPEHHEHHHBHHBUEڃfEE؃fE/[YZXH0ffffH_ 0ėx())ҬAwHF)#&(QTV\cKHF)))c X 9p )) ) HF)))))))))!   )~ Oˎ ))))2`f s8\f )))))))))))))))#G")")")" ")" "()""" ) ") " ")"()" ")"  " ")"))" "()" )"  " " " "() " ) "  " "()"" ") ") ")) " ) " ") " "() " " " ") ")) " " )) ")))" )")))")))")))" )" )" ) "))"))"))")"))")))")))" ) "))"))"()" " " sy扣$)))0u)))))0u)%&'))