Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sql_insert ORA-01461: can bind a LONG value only for insert into a LONG column #2710

Open
JuchangGit opened this issue Jul 19, 2024 · 8 comments
Labels
bug sql Issues relating to the sql components waiting for upstream Blocked on changes needed in an upstream dependency

Comments

@JuchangGit
Copy link

目标库: oracle19c
目标表建表语句:
CREATE TABLE ACT_GE_BYTEARRAY_TEST4
(
RN NUMBER,
ID_ NVARCHAR2(64) NOT NULL,
REV_ INTEGER,
NAME_ NVARCHAR2(255),
DEPLOYMENT_ID_ NVARCHAR2(64),
BYTES_ BLOB,
GENERATED_ NUMBER(1)
);
redpanda-connect版本: Version: 4.30.1

@JuchangGit
Copy link
Author

JuchangGit commented Jul 19, 2024

input:
  broker:
    inputs:
      - generate:
          count: 1
          mapping: |
            root = {"BYTES_":"89504e470d0a1a0a0000000d49484452000002210000016808020000000ecabce90000000970485973000012740000127401de661f780000001174455874536f66747761726500536e6970617374655d17cedd0000200049444154789cecbdf98f1cd779f7fb9c535b77f5361b67c819eea42c4ab22cc99457c9f66b3b72ae6d254a6cd9c6bd41e200c9c57b81c0effd0bfc735e20408020081020af9d7bdfe4757c63295e225bde64d992ac8dd6464a14770ec9d9677aabbdead439cffda186a3e14cf77096ea65bacf0784344b55f599eaeaf33dcf7a4818862091743dd8e0470d7e769b73b1f18f9b5f7533c7343dacf9f13b83a476ce66af74fbe3b633a69d9ed987b4f666b5e4eab4151795485a4ebab3f6ca555b73d994496f905b57e9f4d915b7bc5b68edcd6ac9d5d5565c5422e961b6fa416c896e35bbe6d657a2b8c993367bdc7648fe1a69d06c8ad6deacf4af2eed1889648b74f3c27b5b63eb066ba6f597ef2d768f41233546225966330647571831b779c9569e2475a05f48ed9d961a2391dca4bf9d35dd201fdd30865d436b6f566a1f06a9311249ab9033a6442263fe128944225921350b26b990b463249255a4e72e93468c641792b2c080d41889a415488191ec42d21718901a239148249216090c488d91482409dd9055d70d63d835a479b35a253020354622d9901d7ff6da3f6b6eeb15d36b5cb67da4c0f424526324922dd2602eec9ae9510a4c9fb04b8c1890b9cb12c9ed202b21fc6d46f2490b7200d29b62da2f30bb464e7632d06dbce31db82fad55970469c74876275d3751b57140bb56604817be6fcdd8e140b77a7a8f0a0c488d9148b6430767905d2b30bb8954fee4cd5fa4770506a4c648249b60931fc8d64f155d2a30e91dd40dec9a816e9bf6090cc8788c6437b3f54047f3337013c7ece805761895496f9fc92d5c2925edd8359376ea034d2eb8c1fbbe6b6ecd5a363f70a931925dcd4e66ee2d9dbbeee0a66713006cfccbd59fcbcdbcf24e2720d2e0abed9cbd9d833a3f79767e0437e99e9100b47b576c223546b2eb6945dad60ed9c490dab2317b8ba79316277177d7d4dc03b4dda54900a41d23e909b6223364137eb1a666c8264d190020a413fb93edd476d9c2992d1318292d5ba30b647dc3d3a4c6487a831d5933ad88bfb45d6648d36fb67f992d1cd45e178c24a1db0506645e99a487d8de67644b676d396799b463065d5b76b26b046637d5cbf4382d121890768c44d2980d43fa9b3b72f511d09aa0d10e72c6b67966fb5f51d28c4efb263777a6d4188964537eb61d4b44ba4a9392e1b2b59377fca252575223ed14f496bdbed418498fb399e0fd16d98629b3fad0c683dacaabaffadf4ed8da25b69b4d2075257d3a5d93b495ab4b8d9148a0b14aecac7ee67647c3d69566b7a9cb764e68f9857a9e94efd48e2f27354622d9063bd6a4e513523d2eb56ba514d56f970baf4d17ea43d2b87752632492848d2462b3453469d783ee5675d9fe693b3ab35517ea4f52ba7d327759d24b6cfa63b1c9036f7358a3dcdbf426b634e7da6d09cc36538b7794919c5aae9414981d91deed93768ca4c7d88929b13dd3645d70258d0cb2b6e7a5a691a8b6dd419335ff97748a16bc03526324bdc7e664a6f151dbf680354a36836d2acd6e8aeaefe8b4d5e74981e9102dbef15263243d49fbad1968ac2a5b549ab6abcb7b27b4d1bf4576f472925468d71b203546d2ab6c42160800a61ecfdfbed2ecf453bfdddcaff6464f8854978ed1895b2f3546d2c374c49a59393461b3719a4ed46def60badfc4998d0e91fad27abaec1e4b8d91f436b793858d7e9f4a2672aa19016926ada51042d9e2215d36f9f51e5d7983a5c6487a99dbcee44208211010851000808804402002000a01b0fcb955284d16fd8452020408a1744b79ff3b569a54a78fd6094cf3df77e5fcd73374f1dd951a23e91110510821e25808213817421042cc4c86a020008808021131d90839d9d80501481c132104e789a22c4bcd4dbd59be34218250422902504a89a2504aa9aaae447390104208000142a2388e93d7268450aa6a1a10a2284a72a164a4ef0dba1353438b0466fbbfec2a521fe96d9711bbe7deac619303971a23d9b52002004104444404217818fa9e177a5e18045110680a3d3c3141a20884a04220e74408828888c959c97f8510abf7125b9196952f0821b7442e08a18400a1400810829400a5a828845201108751d5f743217443d733994cd634b25962188452204424d721a978e1b6432b04a6bbf28fbb6008b7d06de349832dfd4d240cc3560d4422498fb55332226131442109431a868431604c702ee2388e631ec7420885d29c69226384104024002004108242243fd9e936958960508a00841024040098108cf358202144d534aa50455150d7899111868e5953681a2e9b35b7fc59ad9c8b5a959d4c3673501be8c579bcdbd8f63d961a23e96a84105114f9b60d8c1984e40d0384803826429038863806c628e710c770d31c49ec8f9bd32ab9e5db169388cd8a054408497e0894a2aaa1aaa0a6a1aa82aa094288aa3871ecc51c543593cd1aa6a9bca73d905eba41a36fb67f99663f4b395e24693f2dbaebd25726e91638e72c8a581050c4acaa2a42102188106a10288e038c29842889c6700e9c13219210fdb239b2e2da5a7dd1e48076b1321872f3d597bf16824421300241808400a50208d1542d8e35ce9152356b2a41a0682ad1b458a0874828d5b3995b55676b03d9e8fbed5fa9c5f3bf54974ed0d2bb2e3546d21904e73c8e51089d100a0042f02812aecb5c97729ed5341500e218e2980aa10bb1ac16719ccce3edb44e5260950a12002044018098e510b30018c75408e2fba82a44d76300c105d154c2f28a914142042101e7aaae5145b95d3e5b835b92627b182930bd47abefbaf49549dacecdf8bc53af73cf1bc9660963348e318a0463827302a024c2b3f390c92e22c92c2044007044a094aa2a689ad0344ee85ce0e7878633f9bca2aab8260761e3ab6e6d0cadf965aa2775cde5259b426a8ca4ad20e7248aa8ef13cb8a5d1719331485202e4753fa475136c372de1a45009f0b2d6310d3c47c9e9b39d4b4cdc84c8a42b4fdc2989d1dbb0da4b47415526324ad8573eed9b66b59255dcf514aa288c43184e1f2175254364962bba8aad0346e1890c9d6631651aa1a996c3eafa80d9cde6d14982dbc5aeb14404a4bbbd8da9d96f11849ca082162c602d7cd2a8a018041a0dab66adb8a612894026364c5649102b37992dbc5188d631a86c2f775c680526a186a14918c51f57d54553397d7331968b7c06c9ace2b9164876cf99d911a234981445780738aa80a81ae1bd56a19455128a541a0c6b189a884613a5529fd4c72f784a09ce70104e784738822300c56af934c16594c8a858073a26aaaa65145211bb8d4ba5260a4ba7431db7973a4af4cb25308621c04ae6571d7cd0a910710be2fe23889db13292aad8610a0348c63a054d10da1a98b8c51d3cc148b462e4f54b571e4a6cdfeaf36eb99a425488d91b41fce691090c5c5d875933c638d90a4df97a403108284844280aa125d27a501313880eaba0481f6088c345c7a8aede6c04b8d916c15ce79e4fbf54aa5a8aa054288e711cf2371bccb6a567a9765b39152a1eb98cb89ac39efb9aa69e68b4555d35b2b3052577a901dbd5d321e23d92c4288d0f3208ab200aa6d6b958aa2285455218a965b4c767a849284e53742081a86248e851fe89eab06811273c8662dc1738542c354b45b4edfdc8b6ce9ccb63c21f231ec0256bd09526324b721662c0ec30ca594315eab81e7a994aa41a023d238269ccb704bd7421081731af84300c4f74188d8b1b910840bc5cc3242624a75c3b8e594cd5d78933fdbf405d3420a4c17b0c62f2b7d65928de0dcb72c7769698faa2a612818c338961197dd0a2182901840d575c8663d55f555b5303c8c8ab2bc03dba62f74db1f6ce56a692105a63bb8f57d90768ca43988c4b6b3958ae1ba2a0041a4b7769f94ec321029a20e0061088c6509d1751d14450c0ca0aaa69845d689c95e0a4c77b07ef921ed18c91a581405b65d44a441407c9ff83e89e34e0f4ad21a28e58681a689a619693ad3d44c36bbe109b7f7884981e95f1abd0fd28e912cc3e358e19c0681e2ba9ae32888248a64b8a5c7118206018963eefbaaa681611016db3153b35923d9bbf316a40523694e93f7416a4cbfc33907ce93e27cca18755dc3f7b538eebbb6c7fd0a41843856382741a0058108c3380cb552899b39ae69aaa1534a09215d2030524b7640e76e9ef495f53584f3d0753108728858a9289c631ccbcafcfe8510a494094175dd57943093c90c0ea96616a8729b36cf64e53fad1a590bafddf374f4e6498de95710811052ad924a85f83e45945d9025ef410807108a4232193132227279d0b40d8f9702d3ad74fae6498de9475818fab65d8c63d5719212fd4e8f48d2ad502a4c93e7f36126c38d8cd13023401a31dd4ca76f9e8cc7f4118818dab6ca981a459a65299c93a4445f22698610d4f3481c0bdd20baa6140a1e219a99a32b6d025a3e85757a8edcd574c1cd931ad32fa010e0fb50ad82ef6b9cab8c29c90f25928d118284a11e459aaa62181242e830423e0f8a2a05a6abe98e9b2735a6c74144c13967cc208456ab8a6d53c69673c6bae52194743d8804913086719c23445085101267b311a2a6eb1b6d51b359b67b05f9046f9a4edd2aa931bd4c223056a5c26ab5714d03db5664bd8b64db2012440580da16c68c695a9590e17dfba8aa2a6b2b69b6c4b6663fa92e9ba6b3b74ac6fc7b16440c2d4b731c741ce1fb394a218ee50753920e8a120184941ac5a29fc9288582769b0601cd90164ccb911a234999388ae220c872ce2a152d0814c640089aec732c91a404020021a0aa91ae8b5c0e4dd32324572cd22dd83452605a4ec76f95f495f51a8431701ca8d5142114cfa39c63b2b38b141849aa2c3f5471ac738e9c47be8f0054558969e28e5c679b7961c9a6e8865b25ed981e011151082a04b52c52af836d534410a21b1e3249ef4388208453aa0c0cf0c1416e18825245516e7bdad65f685bc3eb4bbae456493ba627400421e22832ea755aafd32000ce3b3d26493f814893ad1f6a351082e5f32c93514c1301d2c83abb4997cc9abb81eeb955d28ed9f5f038268c29be0f96a5fa3e89222930924ea269b1a6f16c96e4f38eaa6672b9e606cd8ef6ceec9e6954b2015263763791e751d7d5824009c3e58d5e64dc45d2590841425051d03042550d3319b554d2b2d94606cdf6b7cf9402b35b90beb25d4bb2bf4bb5aa3a8ecad8b2ba488191749ca4601311e338a328b1ef1300a228601869bd8214985d84d498dd871002385718a3b69da9d729634408a92e92ee0291009038ce710e8e039a16237245a1aaba518446aa47cf2135669781889c31e2ba9a6d2bb60d8c49759174330a227a1e32461dc7c964320303aaae43c3e466e925eb45a4c6ec3222d7d56c5b751c250880b14e0f4722b93d4408124510c7a6eb6a88612e8786a1ad719d6d423aa4baec4664cc7f77c03917516484615cafabaeab3206d23f26d95d108288249b8d340d4c13f2799635154521b481764839e919a41db30b1042601040ad4683c0f07d22fd6392dd48d26f2208b430c420c028e2254e8a45805b329ba5baf4185263ba1dce3930a63a8e52abd13896e68b6477b3b24d8065e99c0b558d0d031485debe298064572235a68b410480d0f30cdb566d9b46915417498f804838571c87aa6a649a98cb29d9ac00a0293605907407321ed3a5202270ae384e5caba99ea73226abf725bd072a0ad734344d289558a1a0284a9abd67245d80b463ba11ce390481e638d4b68d2080c4452691f41e9cab4280109c312508c27c5ecb661555ce4bbd837c2fbb9220a0b59a6259248a640046d2c32c6f10c018e55c678c85211919815c0ea435d32b488de92e109132a6d936b12c1286d27c91f40588847310222b04ea7a8cc85575bb1b6b4aba0b198fe916f0668b27b552a1b51a0902293092be8310d4344f557dd32c8c8f23a5841019a1d9d5483ba65b88c330b6acbceb52cf234989a544d26f20922832185339a74b4b61b148755d95e199dd8c7cf3ba82d07144bd6ed8368d22c2b90cc048fa190551610c2b158d315b51482e972f16a535b34b911ad37902dfc77a5dabd574c688eccf2fe97b0800080161a80ba12222e790c9a4b83580a49d34ea7e2a69174288c0f759ada63a4e268aa84c2193486e92b403283056f07d5aaf33df47f9e9d885488de91c881845d6fcbc51ab65c390cacf8f44b206440540f57d2c97ddf9798c2248ca9325bb07e92beb1c41a096cb439665702ea55e22690ae76a181619530b851800344dc666761152633a038922e2384abdaec671a7c72291743b54880c2296cbe079713ecf0b05d90b60b720dfa70ec0c250731ca55e2751d4e9b14824bb0444e2ba4a14611c33c4289fd7a441b31b901ad35e1009e7c47148bd4e5c5746f825922d804818531c0785f039877c5e350cda70db6649d72035a68d200263c4718c5a8db82e91559612c95641a471acdab6c9b91dc7747090ea3aca5e005d8cd498f64118a3e532add54814a16cd42f916c0f4482a8f97e8e3185525e2870d90ba08b916f4c9b20714c1d47a9d5200896379d954824db820000e70622562ac0181918807cbed3839234466a4c5b0843eabaa45a4d04a6d3a391487a022148105021841001e746a140646ca6fb901ad37aa2885816d4ebc4f7a5c04824698248a208ea75c11810c23319501445513a3d2cc97b488d692182738c63cdb669a5427c9f48819148d286206a719c771c4064c522e6722493a15266ba06a9312d240e437b6666348aa8ecd52f91b40c82a8720eae9b652c642c1e1cd44db3d383922c2335a655b028e28e53701c2a5b294b246d8073250c0ddb66aaca0d437accba0419226b098273f43cdd757388d2452691b4092168186ab6ad380e674c76cfec06a41d933e711411cfd32d4bf13c293012495be19cfa3e94cb82319ecd12c3909dcd3a0b09c3b0d363e81d10118560d5aa5eab69be4fe2586a8c44d26e08414a41d71dd38452492b14640a4007910a9f2682f3c075cd4a45f33c22842cb494483a0022e11c82201b453ee78110e6d050a7c7d4bfc8784c9ad038cedab61e86526024920e83a8729e711ccdb64359fbdc39a4c6a4060b82d8b274db269c4b819148ba019573ddf368ad16fa3e974d023b81f495a5441c83e360ad46c35096c248245d024154a388d8b6cf799ccb917c9eca1480f6226f770ac451a4b9ae61dbd4f7a5c048245d051142715dd3f76dcf0344bd58243205a08d488dd92928843d3b5bf4bc2c63208d7189a4db4024888a1079cff3cae50031333828f79b691b321eb32384102c0c739ea70501c471a7872391489aa20a91f57dd5b6a32090e5996d43da313b8270aedab6ceb9d46a89a4db4154e3183c2fb22c46a9a669722f8036203566fbf028129695a9d528e732335222e97e9653002c2b10222e14682623bb00b41a797fb70911823b0e5b5c34c3500a8c44b25b2042a89e970d432f8ac4c000953b9bb518a931db4108a1789ee13846181299482691ec2210817345884cbd1e2046941a8542a7c7d4cb488dd93a88f572396f59b9209099ca12c9ae04518de38cebf24c4698a66c68d63aa491b83510910ba1bbaeea7910459d1e8e4422d9260440654c771cea3832cdac75483b666b10441286f92852649c5f22d9e51021c0f7d56a3506e0990ca8aadcd92c75a4c66c0144c428d22c8b86a16cda2f91f400248e896dab5114964a4aa9045263d2466acc16e0712c1cc7585a22d28891487a0344608c729ea55464b3a8eb32cd2c5de4dddc020a639ae310c664a85f22e92984505c372a9703cbeaf4507a0d69c76c0a44a4beaf5816715d69c148243d08e7aa6d0b42425535f2f94e8fa677901ab32902cb322c4bf33c94b96412492f42000cce89e7b16a95681a6a1a48a7591a488db90d8888886c6949f73ce05c86fa25925e8520ea61a811829ac6070741d741b667de3152636e07621c4545c6d438965e3289a4b7498a13606909b3594e29a8aadc0560874863f036c45154bb7183842195022391f403420063ead2526c598cb14e8f66d723ed988d6051145a56ce75a94c249348fa0744705d058003f05249f666de09f2de6d4814298e931742d6654924fd05e7bae77142620096cba986219d66db436a4c7318537ddff07d29301249df8148e398d83632c63927232332febf3d643ca6318273701ccdb655e9909548fa1344c2b9160459cbc230947d33b787d498c6848e236a35ea38b2a45f22e9678810d4759db939e6fb9d1ecbee03a5af6c3d882884d06c5bf33c88e34e0f47229174144410c2b06d91cdc68aa21a46a707b43b5831faa41db31614c2ab5454d7a5d24b2691480008a2c9b956af13e9d8d81cabbd8a5263d6828cf1a525e2fbb2a45f2291245044230c75db269ec7a248c6663660cdad911af31e8898ecc03a10452aa2acea9748242b50ce69bd0eb3b3816da3b4669ab07ed2941af31e4208e13874694917421a311289e4161009e74a10e41c8708214d994d2263feef115a16a95432bedf15160c21a028a02840e9f23f429633f4131b4b0810023807ce4188ae18b3a445240f83aa82aa2e3f15c94f925f012cbffb88c039c4f1f253917c211f8c54a19cebae2b5c17f37994f5ff9b40dea36538e7c475954ec5f408014a41d3de9b4a566693d502b35205b6466356e614c6803190ed3b7b0045015d7fef61d0b4e52f2805555d7e60565705aeac3c566bccca23913c15722db27384a05104954ac039e6725a26d3e901753b526396114190614cedc8875051c0302093816c16340d340d0c63791e59ad2b00b768cceaff26330b6310041086108610451045db5bc6c68c857e2084c8e64c55d5405637b799445db259304d300cd0f5e5c5c7eae7a159cdf9ca2391fce3fc96a722f94266e4ef10218865a1104829488db91d526300001051f37d258a94760a4ce2ee2004b259181a8242617995ba7e897a5b1041d70111f2f965bdf13ca8542029f1d974fe8210823366d7ea4bb3b32c08f71e3e541c1a54354d766a6a07c9fbae2890c9c0e020148bcbcfc36a37e9564104c300d35c36796d1b2a1570dd658346da34db850891f17d110418c782522a77336b8ed4184044ceb9e179b49d7b5c1202990c944a90cb4126f39ee1b2edab25e7263e7a5d5f9e596c1bea75705dd85cad8f53af2f5cbfb13035ed5a1617a25ea91e3ef1beb1830764dfd976a0aa502a41a1b06cbeece479582179309219101154153219b06d705df03c88222933db4689636a598c10bf5030b3592265a60972ee008c63777151b56d85f396bf5862bb64b390cb413ebfac2ec95a35dd5749c2399a06d9ecb293c475a179b44908e1d9f68d0b1717a6a63dcb8ae31800aa8c0d8ded19da3b2635a685500a86b1fc3c24eaa2692d69bf48c8b2cf4dd7a150803004c701db06d922657b20922050000c80e54fb1a411fd3e7708ce5910a8f53a65acb5d1fee4136e9a609acbae765ddf911b6493afa8aa90cb0163cb0693ebaef7c80b2142df9fba7879fefa0dd7b2c4cdfb901401484759aba07479b5913c0fd9ec7b419796be6812e3495e319b05db5eb66964cdc71641ce9530d42dcb21c4181c5474bdd323ea46fa5d63208ea9eb1618535bea3420040c038a452895209f7f2f1db9d5acb84a56c2c896b5de7b1647acb6b03473f5aa67db62d54463168b66a1a06a5acbc7d9871002b9dc721c2e5905b75a5d56bf74f254240b1dd304cb02cb02df97e9005b820000e7d4f304633c93a13272d988bed618148286a15aafab2d2d2348929207076178183299e590499b59f1d1a9ea72466cad96649d09ce5dab3e7bed9ae7387cc55b4808a5746cff446978887664c03d4c32c56b1a8c8e42a1009ab6d5d546d2b69573beb2202084504a29a5c9179bbd50f26426411ac38072196c5b5a335b03912016198b134788fcb0aca3af35860501b1ed5c4b8b2e09817c1e8687a150804ca6c3db1c1102ba0ea512e83ae83a2c2e0263ae65cddf985a989ae2abc25194905cb138ba7f225f2ac9a559ca24623f3202c5e236422f8818c771bd5eb72ccbf7fd388e09219aa699a699cbe572b95c369bddc2e512c1d3751818581e49bdbea5f14808808a0841808ca1d49875f4b5c6a84140933cce56bd800aa5120c0f432eb7f9d98431b6b8b838353535333b5b2e975dc7b11dc775dd288a0080c7b1a6eb66369bcbe54cd31c1a1a1a1d1bdbb777efe8e8e8d0d01021e4f692a028609a49b1a775f1e2ecd56b335727c32058115a4248c6340fdf75a2303828a3fd29639acb2e53d3dc64e65810048b8b8b172e5e9cba71636e7ebe5aad5a96e5795e1004316342082044a154d3755dd7934762efd8d8c8c8c8be7dfb0e1e3c383131a16f264ea069502c2e17782636ae64f3202ab62d08c15289e7727259b69afe9d41c220d03c4f0b8256bd80aa42a1007bf62c07606ef7d8c5716cdbf6c58b17df7df7dd4b972f4f4d4d2d2c2cd46a35cff35cd7f53c8f3106004208555533998c699ad94ca63430303232b26764646cefde83070e7cec631f3b70e0c0ed57b29442268343434be5f2fcd4945bafafb6e4f44c66686c746cff7e5dd697a54b622e0c0d4136bb99e8cbe2e2e2bbefbefbce3bef4c4e4e5e9d9c9c9d9d2d97cbf57add755dce39ae945b1202375333344dcbe7f32323234383837b46470f1e3870f7dd777ffad39fdebb77efed9546d3a05058ee3451abc9cce62d418280220651640741617050e9578386ac6b8bd9bf1a83410041405ab45e5355c8e7617010f2f9dbba68c3302c97cbd7af5fbf70e1c22bafbcf2bbd75e9b9e9e4e4425f1b92724730a22ae76beab37c966b3fbf6eebd76fdfa871e7cf0d0a143c3c3c3434343aaaa365b522162e0bae5b979bb565b1de75754353f501a3b7830933365242635926cf252094a25c866370ec0c4716cd9f68debd7df78e38ddffce637a77ef7bb858585300c1963711caf0ec3347a1d6259d6c2c242f25498d9ecc14387969696ee79fffb272626c6c6c64686879b066c9241e6f3a0aa80b82c33924d8248c210e2388e63289590d2beb566d6c84c3f6a0c2222a2c179ab3ac7a82a148bcba5dacda769ceb9effb8ee3ccccccbcfefaebcf3ffffcef7ef7bbc5a525cbb2a20d37a84842bec9d76118265f10421617176766677ffbc20bf7dd7fff7df7dd77df073e303636562a951a2c601179142d9c7dd7995f8857cd235451f203a53d131323e3fbfa7621963e49c0a35080911130cd0d04260802c771169796ce9f3ffff39ffffc95575e999c9cb46e962b6d86a4a098739e3c18966555aad5d9d9d9a3478f7ee0031ff8f8c73ef6a10f7f7874cf1ed3341b2bcd4a6ec8e0200801d5aa749a6d014483f3a1a47f4f9286deafac9619b23249f50f4288300c73b3b3aae3a49fac49088c8c2ccf261b3e67d56af5adb7defad5af7ef5f2cb2f5fbd7a75a95cb656d5a66c1bd334f3f9fce0e0e0fefdfbbffce52fff6fbffffb870e1d5a33a108cebd72f9cdffb91d2de60000200049444154e7ffad5dbfc157790b0b438387ee7cdfc491238669f6ed2a2c7d3219181a823d7b40d73776919d3973e6d95ffffab9e79e7be79d771617172dcb62296dc69ac964f2f9fcf8f8f8073ff8c13ffbd33f7df0c1070b85c24627248d671617a152496500fd0221a8287c7c1c4b259449ff00d8a7760ce7f6cc4cc6f3d4d4052671352402d33c5ace183b7de6cc2f7ef18b679f7df6ca952bb333339eefa7b51d85e7799ee72d2d2dddb871a35aad9e3973e6939ff8c4873ef4a123478eac284d58afcfbdf9a6333bc75756188428948e1f3e34ba7f7f26974b6524120000c358cefb681edc1242388ef3b39ffffca73ffde96bafbd76fdfaf56ab59aee2882200882a056abcdcfcfcf4c4f7fe0befb3ef9894f9c3c79727c7cbcf1098a02f93c0080aa42a522f708d82c888473bab4e40b414a25d5303a3da00e4300946f7ef39b9d1e46bb219cc3c2821145293b839216647bf72ec7609a2f575f7cf1c5ef3df1c48f7ef4a337de78a352a96cec19db1e49866bb95c9e9a9aba7efd7aad5e2f148bc3c3c3aaaaa210d6f4cce4af9e75cb65bce909a1941687860ebeef8ed2d0906cf097260303303c0cf9fc06cfc3e2e2e24f7ef2937ffdd77f7dfef9e7af5fbfeea7b7e0588310220882e9e9e92b57aecccccce8ba7ee8d0a1a6192249118fae431441abbb60f416248e9152a2eb4466cdf4a11d4384a0515444540849796996746d4962308d2614c6986559972e5dfafffefddf9f79e699ab57afb6d45189885114cdcdcdd56ab599d959d775754d3b76ec18f1fdcae5cbd6d4945865c6299ab667ff44ae5894619834d175c8e721976b26304110cccccebefcd24bfff35ffee5b5d75eabd7ebbcc5f18f240a383b3b6bd5eb84d2a1a1a1cf7ce6338dc333496cc634617070dbfb44f429889aef0bdf47d314cdf36efa84fed218ce390d02ad5e27719cf26eca8a02b91c944acd5c64711c2f2c2cbcfaeaab4f3ef9e40bbffdedecec6c9452d24e9266a6280aa534315fc4aa8d6039e7aeeb5ebe7cf989279ec8e7f37ff8852f141c67eecd375918ae4c19545132397374ff849ee4d44a764e1277291621976b96f7c118bb78f1e22f7ef18bff7ceaa953a74ef9bebff3681c0010421445310c43d3b464c5c018638c4551b4f26070ce2ddb7ef9e59755552d954a77dd75d7e0e0a0b63e7e90c84ca9048eb36ccd4836078922c5b699a2b04241338c7e9699fef295f9aecbca65b35603ce537ecf8b4518198152a9e1848288e572f957cf3efbd7fffdbf9f3a756a696969f399421b93a42f170a85d1d1d1b1b1b17c3ecf394f6abf573fd69c73dbb6cf9f3fafba2e999be773f3b86abd9c31cdb103fb278e1ed174bd9f3f0c69927403dbbb1772b98689644288d9d9d9fff1ad6f7de73bdf397bf6ace77969f9c7344d1b1c1cbcf7de7befbbefbef7bffffd77dc71c7f0f0b0a669711c33c692dcf7e448dff7e7e6e6ce9d3f3f3838b86764249fcf377ef793f1277b9d4936070180388ec3d00e43a358ece7cefffd65c718714ca308184b731e5dd9642c690dd288cb972f3ffdd39ffec77ffcc73befbc9356a6100010424e9c38f17bbff77bf7df7fffc0c080a669899694cbe5c4e7febbdffd6e7e7e3ef1c871ce676666e6de3de71c3ea2af32b608a5b95271df9123aa1498b4a0147239181f6f66c424cd60fef11ffff13ffff33faf5cb992e223512a953ef0810f7cfdeb5f3f70e0403e9fd7751d113dcf4b9e8a4b972ebdfefaeb2fbdf4926559499d4dad567bf5d5577ddfbf7ee3c6a35ffce23df7dcd3e0a2493f24df07df87fe4b43dd364408350c4d2102db360a85bef542f791c6082134c6d456949525dd941b098c10627171f1c9279ffcc10f7f98bac01886f195af7ce5d1471f3d7efcb871d31e8fe3d875dda5a5a5e9e9e98f7ffce33ffef18fdf78e38d5aad4608c9a86a8990ecadebe55cb13832beaf382c43fde9a1eb502c42a1d0ac14a65eaf3ff3cc333f79fae9c9c9c9141f09003878f0e0e38f3ffed8638fe572397ab30c3029a80ac3707e7efec1071f7ce081079e7efae98b172fdab62d84f03ceff5d75f678ce573b9c3870fe71a661526b1c67c5e6acc9650014c2102cf23c9c60d7d491f690cf37deafb245d9f72521a5d282c973edc0a22fabeffeb5ffffa3f9f7aeaadb7de0a527535e472b9fbeebbeff39ffffcdd77df6dae2a6741c4a469d5e1c38713fb666c6cecadb7de9a9e9a1a318ca16cd65865c428aa3ab86764747cbc812f5eb23d56f6716832a7589675facc99ef7def7b939393e93e12849003070e7cf6b39f1d6cd4cb2493c9e472b9bd7bf7de7befbdc3c3c3bff9cd6fde7cf3cd1b376e0821a2283a7bf6ecf32fbc70f2e4c98f7ef4a38dffa84c06f279a8d765f07f0b202a8819df0fc31055b53f4d993e8ac7b06a55b12c355d8d49ca0886871b6a4c1886d7ae5dfb877ff887d75e7bcdb2ac345f17606c6cec2ffee22f3ef1894f0c0c0cacf671ada400e8ba9ecbe52626260e1d3a542a95e228daafeb778f8e0eacca55350bf97d870f8feedfdf9f4f7f4b48ba3c0c0f3734623ccf3b73e6cc7f7cfffb3ffcd18f5229b9bdf595d5071f7cf0cffeeccf8c4665192bb900a552e9f8f1e34965ccc2c2826ddb00c018e3719cc9641e78e001bda1d79452408428927dccb60ae53c5014d075a52f5772fd62c72062963135f5c4d0646398463d9511717e7efe073ff8c18b2fbd947a491d0098a679fffdf7e7366cf24a08191d1d2d168bc78f1ffff4c30fbff13fff75f0d65c8381913dc5a121b90b599a64321be4925dbc78f13fbefffd7ffbb77fab542aad2882a194aa1bb6ca4e94667474f4939ffce4be7dfbf6eddbf7b77ffbb74978e6eae4e4cf7efef38f7ef4a30f3ffc703e29c0bcf5d2609ab06fdff2d6dd5266360922c471d675b969767e778f4ed0172e78218453af83e7d1740bfb936d6b4ba5862b56c7714e9f39f36fdffdeed2d2522b8a1e6cdb7eeeb9e71cc7d9f8304248369bdd373676d7b163070706b2aba3fd840c8deec9178ba98fad7f49c2e34d2a2ec330fce52f7ff9f4d34fcfcfcfb742608410e572f9c2850b9b318f72b9dc9d77def9d8638ffdd55ffdd5d8d81821240cc30b172efc8f6f7debc68d1b8da344aa0aa609a552b3dc1649631015cf53ab55a8d55a5dffd485f485c600a2168634f55a654d836c1674bda1c6dcb871e3e5975fbe70e142ba41dd156ab5da0f7ff8c32b57aef8be7fdb83056351ada62595a70090a40c64b366a1a067fabddd459aacec29b90e44bc72e5caef5e7bedead5ab2d7a7121c4f4f4f4f3cf3fbf49175c2693397af4e857bffad5471f7d74fffefd006059d66f7ffbdbefffe007d7af5f6f7c0ea550286cd02749d21821a8ebc6e5726d6909fbac63425f680c0530a388a6fed66a1a9866b392fef3e7cfbff2ca2b6118b6a82f88effbefbefbee4b2fbd343f3f7fdb83e33074666757d7c4104272c5829ec9c806fe696218cdd61c88f8ca2baf5cbe7c79336b826d333b3bfbfcf3cf97cbe5cd146011424cd3bce38e3bbefad5af3ef0c003f97c3ee93ff4fdef7ffff49933aeeb363c074c731bdb77f6390480c431b82ed8b6d4989e039130a60441ca1a93346c37cd462f88d7ae5d3b75ead4993367d27cc575af1204c12f7ff9cba4826fe383e320b0a767c46a8da1b43038a86d668744c9e6c9661bfa91e238ae542acf3dfffcd4d4548bd61c09d56af58d37de78e9a597aad5ea66ac992403fe231ff9c8c30f3f7cf8f06100608cbdfdf6dba74e9d6a6cca248fbdaef76d26eef641348418e09c87615fc94c8f6b0c224214917a1d7c3f654799aa4236bbbe992e2232c6befffdeffff8273f2997cb69bee23a10f1c5175ffcf5af7f7df9f2e58d2614c4d8f7ad1b3770d5da96525a1a19d60ca931e94108e472b04eb611b15eaf3ffbecb32fbffcf2e2e2624b87c0189b9a9afafbbffffbd3a74f3b8eb34999c9e7f39ffce4273ff8c10f26f9234110bcf4d24b6fbffd766339a4b499944a364601d082c0999d8dfba9cca8c73526668c5916ad5448ea49fd85c2f2c6b4b7228478e7ecd9e75f78e1e2c58b6d88ef5996f5d4534f3df9e49357ae5c69760c672cac5bcec2e28a1d43085154b534342ced98d448ba1467b3eb631551145dba74e9effeeeefae5fbf9e560fa10df03cefd4a9537ff3377ff3e31fff78f3098d274e9cb8f7de7b070606926fcf9c39f3f6db6f377697014026b35e4a25b70751e1bc90ec2ad237a64c8f6b8c6b59f5a5259a7aaa65b2626de4288be338d90224ddf2ba0db87af5ea0f7ef083fff5bffe57a55269a86aa16ddb73f3f1aa9b40283532998c9995c198d4a014f2f986c1985aad76eedcb9d7df78e3b62ecd544876a379f1c5179f7aeaa9d75f7f7d9367150a8583070f1e3c7830f9b656ab5dbb7e7d6666a6f1d149d849b22db29c6b950a71dd3ef198f5b8c628719cbec00080aa826134ccaee19c9f3e7dba45d50f0d09c3f0dcb9734f3df5d473cf3dd770e119546bf6ccccea9ba0284a2697a38a221b94a506a5cd6afb2b95caf9f3e7832068db2381888ee3bcfaeaab49fc7f33a7504af7ecd973f4e8d1e45bcef9fcfcfce566c6b1ae83aacab0ff36200004915a16ab56a356667f740fbdac319c739390a156e4592631cf759f312184effbe7ce9dabd7ebe9bf681310310cc3ab57af7ee73bdfb976eddada3d6910fd6ad5be7541aaa86a369f970dca5263a5a550238d496a56da263009889864cfbffaeaab9cf3cdbcfad0d0d0a1438756be9d9f9fbf78f162e3432905556dd68d4d727be2585856dcfaed82ba815e7e4ae228a251a4b7c2206d62c430c6e6e7e72727279b3ab25b46ad56fbd5af7ef5cc33cfccceceae9e50841041b5eade9adfaca8aa59c8f773bff19449823186b17eda45c4858585b3efbedbfe41856178faf4e9ef7ef7bb9b6c5ab34663e6e6e69a9673261a23c3fedb0631cb79260822dfeff98e09bd3ccb8496155916a4be5248d2379b74a3ba70e1826ddbed5f9e70ceabd5ea77bef39db7df7e7b75d5671c0491ebb25b83438aaa66376c4223d91a94367b24e2385e5a5a6a5ad2d862cae5f2abafbefab39ffd6c338675a150181b1b5bf9b65aad4e4e4e36d527459195983b4111420f43a30fdc65bdac3106635a8ba26a9ad67042f17d7ff2dab536e40e35440871f6ecd93367cecccdcdadfc300e42be6acbcb044aa99ecd488d498d645ddf08c7712ad56a7ba2fdeb89e3787e7efe473ffad16612cc32994ca15058f9360cc3c5c5c5f3e7cf37deb0556acc0e41a451a43b4ecc589bfda86da6673586739e41d45af4e6294a438d09c3706666a6833ed6a4adefe5cb97577ec2c390476b9bd9504af5468da225dba4b9c6d4ebf57abddec149c475dda4bfc06d5bdb255d9957be4544cbb2de397bb6b1c6502acb30770811025dd7af56458756a5eda137354608e1d9b6f07da545764c738d999f9fefa0c620e23befbc73f6ecd995cc691e453c5eab31845255d7a5c2a446f309d7761cc7b6db3c9cd530c66edcb8f1ab5ffdeaead5ab1b4765d6dbb5aeeb366db847a98cf9ef1444648c97cb7110f470f0bf379f1214a2363fcf3caf55854e8d92ca008031566e4d97e5cd73e9d2a564efa9e45bced8fa5512a5445565cba9f420a4d984ebba6efb13405693349e78e289275e7ffdf58d5ba5c571bcc664715df7fcf9f38d35a6f99f2cd93c0ae2401cc7b6cd5bb13f6f77d09b4f090518d1f54ceb6c794a1b4ed031e7b6e37456633ccf7bf3cd379f79e699e45be41cd78d87102aab2f53a6896007beefb7ab1a7703ae5dbb76eedcb98ddba7866168df6a720541303b3bdbf879961a93060440e73c67db6aef7697e9cda78400e40194d639c19b4c289c73dff73b1ec1bb72e5ca0b2fbc90ecd68e42a058371e02945269c5a446f309378ee34ee580ac19c6b56bd7364e6fb36d7b4d3b35214410048d3d6c84483b381d10f53014961575d4de6d1dbda8319c9330a4be4fdadfaa01b11bfcaaf57afdd2a54befbefb6e14450008b05ef308c8f92145109b563910d225f97b172f5ebc74e9d2060ba0a5a5a54b972eadf961d3e779833f59b25538278e838e23ba60f6489d5ed318210430466a35487d47b2d534f974114268174c289cf38585855ffffad79ee735596f2274dcdaea319adc4e4a69373c120030393979eedc39cbb21afe368aa2ab57afbef9e69bab7f4808d175bda946ca27282d108d38d63c2fea022f48eaf49ac670ce99e328b51a69e95bd564114708d134ad1bd6ade572f999679eb16d3b5948aff92d226e72ab44c9a6406cb6a0d1344deb8e7af86ab57ae1c28573e7ce35fcedc2c2c2e9d3a7df7aebadd53fd4757d6464a471cf2169c7a40ae55c384e502e777eee489b5ed398c0f3dc5a8d44516b5b670bd1f003a6284a3e9fef068d715df7f4e9d3d7af5f0fc2707dcf1844e05c6a4c7a34d7986c2693cd66db3c9c8670ce2727275f78e18586bf7df9e5977ffbdbdfaeb1720cc3d8b76f9fdab0f4476a4cba201a4214ba2074973abda631c8186f430ba0261aa369dac0c080d205f9369cf3645facf9a545ba6e8e4021441ccb3922359a6b8c699a66a33d203ac2d4d4d40b2fbc303939b992a31c45d18d1b379e7cf2c97ffff77f3f7dfaf41a474d369b3d70e040638d1122fd2e4dfd8d82a88661bd52e1bda534bdd60dc24054dbe0056ab2e399a6692323234a77f4d888a2e8a73ffd69368eef50d435869510824511820cfca78410d0645e28954aa552a9cdc3698665596fbdf5d6b7bef5ad7beeb9676060400851ad56cf9f3f7fead4a9d3a74f2f2d2dad39be5028dc7fdf7d7ac3ad629affc9926d2204658c5a16e4f3bdd4a7a777fe1200e09c1b880aa52d5f61354928c86432070f1e6cbcee6b3b9cf3b7de7a4b65ecb3878fdc5fbc659a13424461fbb633e97d8480263574a58181e1e161c330d6eeb9d00938e7d3d3d3dffef6b78f1e3d3a3e3eaeebfae2e2e29933676cdbf63c6f4d0a99aaaa232323274f9e5cdd6066f5b5a4c6a48e82580c43882254d59e69d5d379af4e8a84becf7d5f69f5a38f0851d450c64cd33c7efc7897c47801c0f3bcb7cf9d9b9c9a5af3732178e0f90dea6624db430860aca1696b66b3c3c3c3232323ed1f5443a2289a9b9bbb7cf9f2c2c202e7dc344d55558346bd4c72b9dcc4c4c4c4c444e335531c43c3fa7fc94e40548340a9d5c0f77b262ba72b56dc69e1d4ebb16565dbb03c6fb21d77d6348f1c39d23d1a0300016301e748e9ea6a21c17918048dea6624db22711cc531686b3bf4504a4ba5d2f8f8f8f4f474a746b71a428861185ffffad73ff5a94feddbb7cff3bcd75f7ffdaffffaaf676666d6d8b583838307f6ef6ffc30234a3ba625201244a8d518a55c5132dd912db243ba5d6384109cb1c8f703c76551c4c2a0a0a8439a0e11031e031724f97873013c2e32a66a0a18addf69bc49de9aaeeb7bf7ee1d1c1c9c9b9b6bdce5a9bd10423efdd9cf3ef4fe7b4d42fcc5f7bced22e6a1e7f5c976e26d8273b06d2895d67bd28786868e1d3b76ead4a98e8c6b0d8383838f3efae897bef4a513274ee472b9288a262626969696bef7bdef9d3b776eb53533323272e8f0e1c6574904463e3fad813016d6eb42d3a4c6a44652aec18220f27dc2e20ca2c10589638c18e13184a1ea07aaeb4214912852a942759d300631072120e64470e00285c80f0fc0405be2ab61b82c33b7a6902994e60b853befbc736666667d04b5cd504a0f1d3af4852f7ce1a13b4fb00b17566b0c8f63cfb2653c667b08cea3308c82405154c3cc2aaa4a0801cea152816c767dbfd4b1b1b17befbdf7bbdffd6ea706bc82aaaa070e1cf8fad7bffebef7bd2f97cb514a93ece4af7ce52b5353538b8b8b0b0b0b2b078f8f8f9f3871a2f185a2483aca5a8a11452c0ce338ee92e0ee4ee8cc1f2038e78c85be9f2554158244110601b76ce6b8340c04172416348a200a817125661a1719c10151085408a19480400004bc596c8c480008a5a0b5e52fe21c3c0f7239b8352d951062e8fac73efad1b7df7ebbe31aa328cac993271f78e08123478f2e3036fbc69b2b864b1cc7ae63c78c69ba2e775cde12228ead5aadb6b8e4d9b6aa6903a37b4a43434636bb6cc7441118c69a68ed9e3d7b1eb8fffea3478f4e4d4d35de8ba55de4f3f923478e7cf8c31f364d33a9ac4caa868f1f3f7ef7dd77bff2ca2b2b1a931cf9be3bee687c21df6f96e32049858c10240c43d755bb262971dbb45563109108012c16beef55cab5b9f97d8aa68711755dc575d530ca710e4228080a20084cca50928afddbe758a82ae83aa86d49c64004db06d3846c76cda25555d5871e7ae8e9a79fbe78f162679b212a8af2fef7bf7f7474b4303c1c4c4c68990cbbd9a942701efa41e0794636db0dd53cbb08df7567ae5c9d9dbcc6a28810325cad1c3e719791f8341803df5f36655691cfe7efbaebaeaf7ded6bfffccfff3c3f3fdf41f3319fcf8f8f8fe7f3f9353fd7757d707070f52698870e1dbaf37def1b1d1d6d7c21a9312d860208d7658a025263360f22a210a466297373caecbc5aae6483204b09e582c49c704e77f2d923040c0dd4c6dbbab404df87647f9a5b27144551eeb9e79e3b4f9c78ebf4e9d59e87f64308191818d0759d6a9a9ecf658687e299d9953eff8273cfb673c5629754f3ec1696e6e7cb73f3ae652552515d581c3b70e0bd5ffb3e3006b726fb524ac7c7c7ffcfbffccb5ffef297e572b983813a45511a17bb0030c6562f894edc79e7b163c79a56f80781d49896420032ed29f56b3d2d9f5f781439b51ad8ee601cd3ba05964d6a35e2783408b4146b000980a183d2c625b9101086e0fb70ebaa901092cbe57eff739fbb76edda4f7ef293ceee89e9384e327128ba9e1b1d75e7175652ae5108ab5a1b1c1d357a22aed8065088280ccbb373ceaabd93398bc5eaae3c89c6ac43d7f503070e9c3c79727a7a7a6666a63d035e8fe7790d5db84288b9b9b9a4b13f212493c9dc77df7d77347494214218b6b6e1ac040092a9398aaad56aa158dcd5bb3db56a52e68cb94b65323d43ce5dd0debda09dbfa09cbf48cf5fa2d76f40a5066148522e3227eb7d142d278aa0c9960f274f9efc2f9ffad4f1e3c7db3a9e5b11429c3973a65c2e0b21d46cb6b47fffeaa6324288fa52390ae56a747320c68ccd5c9dac2f2dc5ab96f0aaaed1d5eed93084306c98d4ab28caef7fee73771c3fae746ebe701c677272f2dd77df5dd98a5b08e1baeecf7ef6b353a74e2d2d2d1142b2d9ec1f3cfae8c71f7aa8b1a32cf112cb80ff6a8400cf07db05db01db05c705d703cf073f802080205c4e918863e0bc591baa86972571ac3a4e6bdbfbb61ee59bdffc668a97e39c33db21b53a94cbd18da9ccd48c7a635a5b5cd22d5b71bda474b125b78c52d8330cd94c5bf7e64304458162717dfffc6c364b29add7eb67ce9ce9602d95effbfbf7ef1f1c1ca48a825c2c9d7d97afaa36e79c0fef1d33f3f9c68d7525abe09c3b967de9f469a7565f6d9b0e8c8cec199fc8978acbdf2382a68161c03a9754e2ba9cbc766d727272cd76936d83732e845055555194300c2dcb9a9e9e7ef5d557ffe55ffee5d4a953954a2597cbdd7befbddff8c6374e9e3c592c16d776774d4a4d1717c1f7a51d0390f47760e0f950ab83ed2eeb4af25f3f043f8020bcf92f823084205c4e490d238822881830068c03e7492506a000444000c064e7218d5292cb81aaeede1de152f395212208212c2bb83299592c9bb6a3f9be12c724e6b4d58f2321a02a9031dabdf96b925de6fb609aeb23ff77dd75d7673ef3999ffef4a7d3d3d31d09fe73ceaf5fbffec4134f542a9507eebb2fa7aa4e1429880a21008088a1ef3bb55a6978c85c15ec9534248aa2dae2a25dadad792b8b4343d9dcaadc4244f03c705dc8e5d64f0a7bf6ecf9d4a73e75e9d2a5f9f9f98e3c1288383f3fffed6f7ffb9d77de3971e244b1585c5a5a7aeeb9e72e5dba645916228e8d8d7ded6b5f3b79f2e4e0e060839547923b67dbb2fa1220f1964760d950b3c00f6e15dd953d00d77d913c159402a54009a80a5015540a9482aa8072f39faa80a210555185882d0b0901c3d8a532939ec608213c5f7feb1d6d768e7abe925885ed8152c8664055dbad3188c018d4eb9069603f158bc57beebefb91471ef9ee77bfeb384e5b077693288a4e9d3a75e9d2a552b198338ccfeddd77e7f048f166441a85b06b35dff3a4c6dc962808ab8b8b7c5db3eae2d050664d5be526c92000a028ca431ffff8e5cb975f7ef9e5f9f9f9568fb9218cb19999995ffce2172fbef8a2a6695114552a95388e1151d3b403070e7ce5f1c74746461a3bf4c21016169a75cde93b8210ca55a8d4806dab1c95102089e490f7be5efd4f53219b0133ab70c101c4f0f02e4dcf4961d04208e238ca6259999d576f4c91206c77d36f4d8562a1dd0293c039d4eb303cbcbef22ec9267aecb1c79e7df6d920083a95c7ec799ee779d3d3d386aa1d143891cf1757653d59958a67d943a3a3ddb0e74dd78242449e575b5c5cdd19812a4a616020572aaa6bdc62493288e74123e51e1818f8cca73f3d3f3fff4ffff44fb55aad2329218868dbf67a7fdd1dc78f7fee9147f6eedddb5860a2081c075c577ac900002206d51a542dd8764473c527d60c4ac10fc17149cd52962a4ab108d90c314da12a35446618b9523193cf777f7ddb8ee23189bf85ccce6bd7a794eb3794d979b2d6666c3d8440d680b1e1f5ada2da41b25353360bbabe7eddaa695aa150a8d7eb73b3b3966d77b6c91d414002778cec1931732b8a2204d7743d6b9a19736da18f6485c0f39666676727275752c8082159d33c72f7dd437bc71a67031302a60994aeb9ab84907c3ebf67cf9e64c730bf6bf6d69d9898f8fce73fffd5af7c657c7cbcc1af11c171a05c06df6ffbd0ba0c81c0622857a16a4118b6d0a44b362562318411b55d52b714cb22b53aa9d4d8e22229578dbaa5d62c52b3a8ebfab65db72d44a49426819c568d6aeb6c5f6338e791eff3e919e3eaa47a639a56eb2ddf7db2210a05d38491a18eb5c24e1e325d074d5b634b25fd07f7ecd91373eebaae6ddb1dac8d40409fb163c3c363858271d3e8462138e794d2c2e0c0724f14c9ad20627561617672d2aa56577ea81bc6e0d8e8d17beece64b30d169249cb4845015d5f2f339aa6158bc5fdfbf7cfcecd2d2d2db94d5213db03214455d5c3870f3ff2c8237ff8877ff8e10f7da8714d4c1441b50ad56abf1b314990bf6ec1520582b04d7703118420318730227e405c4f73bcace3e8d5ba52a9d04a95d46afe6239a85414c7d3fc4009421e04611030c6ba417276a03161e8cfcc16ce5dd41696a8ef37dbb6abe5e81a14726d6a53d60cc68052d0b435b61421445194e1e1e163c78ee986313f3f3f3737d7c9610ab17f64cfbe52a9b4ca5d16470c059a858259d8057677fb618ccd5dbb3e3b792d5eb53ec8958afb8f1d1bdad7c4ad94688cef4326039ab666f593b46f191a1a1a1a1a19298cea00002000494441549a999d9d9d9dede0d632baaeefdbb7eff1c71fffea57bffaa1071f5cdf02000000116a35a856e166c6739f82086104750b16db28306b062004084185a05c9038268c113f20aeabd98e5977b295aa3ebf48ab95b05c766ab5c07134812a55802a84aecd7d6d1bdb8fc7687e50ba3ca92f9549d4d118a0a280dee95efa710c950a28cafa1a9da4a2edf8f1e35ffed29738e7a74f9f4ee2ab9d1aa93e32a29606567f3c04e7ae652d4ccf0cefdbbbab4bbd5a8453ab59954a78ab8f2863e686c7f76d94f32d040401d46a6018b0ae3d3ea53493c93cf4d043535353d54ae5f9175ee8d423313434f4c77ffcc77ff6a77f7afcf8f14c26d3f8a024e8e879ed1d5af71173a85930bf08ac6bf6294f3ec89cabcb359b00e083e79a94ea94a2a2a8c62439b09f1f3ec8f70c2b8a028420629bcd9aedd8319c7352ae685726d5c9eb1d161800c81850cc43c78bd539074240551b8e84529acbe5b2d96c1004d76fdc88a2a8fd738aaaaa274f9efcdfffe4ffb8fbd851749c78d5a4898882f33d13139aa6132add65ab409cb93ab9383db35a638c4c66647cdff8e1c3b79764cec130d677c904004288aeeb030303b97c3e8aa2858585f62f3ef6eeddfbd9cf7ef6fffaaffff5ce3befcc66b38da71e21a05a855a0dba601fcf4e8208351b2a35f0ba3e22259072a1c65c658c0621713d5aabd16a0d6af57ab52a28a59adaced5e47634265858842b93fab529e2389dd7f39c09a5423bf68cb92d49056f26b33ec70c0028a5a6698e8f8f27793baeebb6cd114f291d191979f8e187fff44ffee4bf7cf6b3fb262608a23d378f3753dd50081442cf18b942416bd2cfaadf40c4388e176f4c4d5f9db4ab55b12a016c686c6cfcf0a1d2d0d0ed9d0fc93253559b1537e472b99191917de3e3438383e54ac5f3bcf6e41feaba7ee2c4892f7ee10b8f7ff9cb1ffad08732994c03815949cd4f42fdfd1c894104d7834a151c6fd7dd0712c7c4f5886561cd12d5aa663b8aeb46ae57771caa2a44515a5d82bd1d8d892e5d56ae5ed3eb56573439c8e760b0d4a676cb1b93784b9b2714e9ba3e3a3a7af7dd770f0d0d0541b0b8b8d80699310ce3ce3bef7ce49147bef4c77ffcb9471ed9bb6f5fb6505054cd9d9b0feaf595645c446451581a1ece9aa68cca00008f63a756bbf2ced9dae222bbb579ccbec307f71e3aa835dce57e3d710c842c0766d641292d140a13e3e3c78e1d5314a552a9d4ebf596ca8ca228f97cfe939ffce41ffcc11f7cf18b5ffcf0873fdcd482610c6c1b1617c17176ddc49a3242c06205acddd944e766ca000d43dd0f34cb522c3baed7bc4a25cb6255d789be3659295db6168f41441e4566cd521d8f74c36347c8724d6c3780085104950a148b90cb352cc1cbe572a6697efef39fd7741d119f7df6d9644e6985932449933d7af4e81ffdd11f3dfef8e3fb27268ac522a51454353f36b6e7eebbace96971335343706e952bb5a5a55cb168161a057efb0ac4d0f717a7a6aa0b0b5110ac7e77f2a55271682893cb6df652710c8e03d5ea72f07f5de6a1a669838383f97cfe2fffe22f105155d5a4d94cea0ed59555ce5d77ddf57fffb7ff76efbdf70e0d0d996b0a485710027c1faa55b06d2930104460d910469d77db6c1b2120694f19c718b1ac453542d4c50a86211ed8cff3b95855554d6b850f6d6b760c0a51999a32aedd30acce345c5a0ba550cc43a9d02db51db8bce70d1846b316434916c0be7dfbf6eddd1b73beb8b81886618aa5338490249f4dd7f58f7ce4237ffee77ffed8638fdd71fcb8699acbcb554288aaa886b170f66cec072b1f1b4404846c3e9f5fdfa8aacf1042d42b952b6f9ff51d67f5444f0899387264cfc44476f31a0349c26b04493b90467ed4e4fd2a168b070f1e9c9898d075bd5eafbbae9bd653915c5f55d563478f3efae8a3dff8c6374e7ef083232323cdfafc2faf96aa55a854da5d4fdd85440cca55b07ac79823885408950b1a45a46e11cbf61d77d175b28502a1347537c6d63486002837a68cb905a54bb218751d4a79c86fe503df6a122f76e25d5997b7ba422693191e1e3e7ec71d1ff9f0878fdf7187aeeb8ee3a4e23acbe572478e1cf9c4273ef1f8e38f7fed6b5f7bf8a187262626b45b1d35845245d799e7fbe5caeae07f1c455114114acc7cbe7f73cc106b8b4b5397af2ccdccbe17862144d5f5f12347f61f3ff6ffb7f75ebb8d6c69bee7b76c58063d655369b6abdad573faa007981a9cb99a8b01faaaeffa71faadce330c3037733038d555d5bd4d5aa51c5d307cc43273b128a5d229e54549eb874442a92483c16070fdd7e75b9dcec57a279b9d475581949f27b89f80106ab55a9b9b9b7ff8e9a7fff59ffe697d6d0d00b22c2bae56f6c839dfd9d9f93ffedb7ffb977ff9977ffdd77ffde77ffee77ff8d39f4ccfd62f3f41a965b9e57cfed887c4680d7503f3051c4d1f6a8b36d408280a9ca46c1e3b935951969a31e2f06bdc65a28be5e60b41feefff07bd7a835724b9220c606d00fdee5d9fc767500a41009d0e74bbc0f917d714a59410424af9f6eddbbffef5af7ff9cb5ffee33ffff3ddbb778787877b7b7b711c9f7f1b6bcafad6d7d79f3f7ffee38f3ffef0fdf7cf5fbcf8eec58b8d8d0dd77531c69fdf314a88c59bb7fff9dffffbf83ffeb339be071042cc75bba3e193efbedf78b6f30865460a313d38d87bf5faf0dd6eb6589cfc9ebb6e7f6df4fc4f3fb70703c62ff50d440838876e173a1d08c32f6e3eb4d64a2929655555bffefaebdffffef7df7efbedddeeeefedede9bb76ff7f6f666b3d937bfb026c6d3e97406fdfee6d6d68b172fbefffefbe7cf9e3d7df66c637d3d8a22fab562db93207f1c439ada213150d7304f603c852cbfc75eb26fa101002153e1974721d9586ffabd2cf0a3d1f05aeab22f168f41007891a2d5917446572518f309c60b6fa21d83c117fd661863e3ac78fefcf9c6c6c63ffdd33fbd7dfbf6f7972f7777775fbe7cf9ead5abdddddda3a3a3388e3f77cd1bef87e779bd5e6f6b6bcba4ab3dd9defee90f7ff8f1c71f47c3a1ebba9cf3afae266625eab4079b1bc5fefefcf0c8fc526bdd94e5fcf00823dcea76c2f6fd1e8e74518c8b6cf7b7df8fdeef95a76c4a84901f869b2f5e748643cad825bf75270e2821400888a2cfef0af3b1124218633ffffcf38b172fd2349d4c266fdebcf9edb7dfdebc7d7b787838994c4c6a40922465592aa530c69452d77503df8fdaedc160b0b5b939180cd6d7d79f3e7dfadd77dfadafaf73cecdfd705612911118d3baffae4aaa578abc80780179f1b02f8569c36e66db7893068a4a1c1eca280229617dedf3291517e5021aa3b5d6a67ab959198df92c88ba4298ceff4a81eb829900f19553658c31c67cdf1f0e873ffffc735dd7711cbf7cf9f2fffd1fffe36f7ffbdbebd7af178b455dd727660d02a0947abedfeff77ffce1873ffff9cf7ffce31f7bbd9ee3389eef7bae7b86b42c510aaa8ac4f1a0d7cb46a36291d45565644c6b5d97e5ece8e870779710e2b51ecb7419a5545d147b2f5f8df7f68b2c3bddfe92394e34e80fb6362f2f30062333273ea856eb6b7785e942e4384eabd51a0e87cf9f3ffff39fff5c55559ee7874747bffef2cbeb376fdebf7f1fc771d3348410dff73b9dce703078f2e4c9f7df7fbfb9b9c939678cb9aeebba2efb524adba727260424094c26b6ebe512a5202b207f4c49db5a632921cbfca2e08b9408a938539dae62f42a83f52e62c7682d9b4637cd4aa42c1bccc48595c5147befef43b70b51f4c511002718bbc4f33c00180e87dbdbdbfff88fff9865599ee7a64bee49ff44c6581886ed28723d2f088276bb1d04c197db4c7d8e890d14054ca7309f87aebbbeb323eafafdcb974208d304566b5d17c5db5f7e619c0fc9e663c866d65a37753d3d3cdc7ffda648d3d30283106af7fba3ad2de78b4524177f251002b20cf6f6402988a2afb9520dc6d8e59cb75a2d739e4f9f3efdd3cf3f17655995e5322311218231638c71eeb9aee779ce39f3aae1b8a9ab10b058c06462b3c83e50d5901750dfc364e52ba214568a4b096f771123f5936d31e83b5708d05e406394525551382b750b520a2b3e53c144509b06d214a208baddf38cb433059b2779a54dd3344d7392e26c7c298cb10b5b18e664cc98a9b284bac68474067d000d5abffbfde549885b2995cee3977ffd6b9ea61b3b3b9de1e0c26ffc5e5197e5787fffe55ffe3d4fd34fc260ad6e677de7497f7ded3a73ed8c3f607f1f8a6299e9fe4d5303004ed937d713813476551c439240514075173db85696790ce54db6555e71b486bac66f769d692cfbddc5e67ae7874b4e8ebf88c64825ea55ca1037bd5bc8ca6fb18d356392cdca123c0f7c7f99dc7c3e28a594d293908c59ec2eb6e4997330ea92e7a77b9253cedbfdbed650e6c5ec54bda19272319d29a964d368ad3b83fe83b4669452e97c3ededb3f7cf76e3e1e9faee7c78474fafd8de7cf065b9bceb5372b32d6a4111bdf07df8730fcbc75f74d61d2a9f37cb9e7284b1b80f9805490e510278fd188f984a22465c59344a719e28e5e5fbb4447950bd660ca55dae6100c7485e331a739f1909425380e8421b45a1004703e9fc66544e58493915959068bc53283f6e39a0fe6389dc160fbfbefebaa8aa7d30fc5ff4a65717ca0150070cff57cff81a50028a51693e9fe9b3787bbbbc96c26c50781a194869dcef6f7df0fb736bc30bc9182216346340de439b82e9425b45ae079e7b4692e8952cb8494a28034853c0771a9318e0f15ada1a9613c85a2b4b541a035d2da292b369ec0dfff433b5cf57b17bd3f2fa0310801fe5205d9dd60324157e77cce8352a014480965b9b46cdaede5f86e74dd9db74ffcec65098b05c43154157c362ad88010620e5fdbd99e8fc7555595a70a0f9552f922d97ff3d66fb5869b1b5e183e9831334aca22cf775fbe3c7cfb365b2c4e0b0c42c80bc3f5674fd79fed386794925c1df331d535080145016509ed36842160bccc67b9ae4b6d5e484aa86bc832383a82ba0629ed32fa29a6aa7fbeb057e604a435a92ad8dd53bd9e205877bb179afa7c8187628c29e708ad8cdde0f27be028fb1ca33449b2fcb68721f83e70be749d5d516ccc5202005242554192401c43517c73063b4288bbeee68b67a2690edebe3ddd40452955a4e9abbffead29cbd193ed56a74bd8fd9619adb5d6ba48d3f72f5fefbd7c557c1c834108399ed75d1b6dbd7871b302731a7357cce790e71f5c67a71daa97b8314e6e0680e5ce26cb204920cb60a59cde2b452320cb1f6ac5e5e5511aea06fdf6aa02d09878ddcef93de717b16330619ebb2a4e7904e079ab1ef03f836516780359b6eccbeb79cb99cd5f6a6cf56d8cd55255cbed705d2fff34cdf9776451bffffc671a76a2dddf5f2e26d30f322365b658bcfdf5b7c56c3ada7eb2fe74e7fae313b74853d7f3f1e4e0cd9b83b7ef3e1798a8d71d3d79b2beb3e3df7edeb6104b53c3b438735d709ce52d6166049cf37c8cc96242805505650955054d03422ccd17cbd7a86b48ee7232e92a8392c4fbf5f7ba69ca1fbff306e7cd03ba90c620ca18b81c52b202b72902cf5dd102cc7362caaacd8ec9c44b8c3543c8b2e38871a361bcf4999cec64cdfed4344633ee0e2941880f8b88f1bd98a5f322db554a69abd7650e67dc79fbcb2f8be9ec64f8a3522a4f92a6aacaa22cf27cedc993a8d326371a39b86eb4d64a88c9c1e1ecf0703e1e2f66b322f9a81d19a174b4b539dcdeeead8dc2a87d37854166af60ccd0a200c63ebd25cccdf0b927cddc0fc61e324738b92b8cae5cfc7e78742805550dc56a34ca5a41a464498adeee360e6fa2889c5dd27bcc05ebfc31d18e0b84a03bd718138f5911a3ea2a98efbc5914ca722924842cd3b24ffcf29f2f2827d19d93d5c4ac32277f2eceb27d4018aeed3c4108debf7a1d1f8dabe3de74a688241e4feaa2a8f27cb0bede190dbdf07e14699adad2f1defedeab57f3f1b8ca0b29e56981a19c7706fd273ffcd0190d1dd7bde33775faae38ee64ba6cf861ee87d3313c843edd7698c09b5e963b5dfa7e78740801556d1d65678094a2498af60eab1fbe47e1b9e4e3e2be26ffd371c2770042801110fc1034e6844fbce7a653ef692ffc698d39593ee0fa17118cb1ebfb1bcf9e61420921d38383aaf8203352882c49eb972f17d3d966510cb736bd305ce5c9665a6bd1347559c693e9abbffd6d319d3575ad3fcea4a28cb57bbd27df7fd75b5fe3d7526b795d7cfec99ee80a7ce996f8e2532ce7a4112b344779554142902c73e673e53ae7e93473418d41207d97320277db1213c14313984f382d217781490158df79c238278c1dbc7e239ae664d7af95aacb6ade8c9baaca92c5c6ced3ce7080094118af944d6366488ba6594ca793fd83f1fbbdf9782c3fdea5228c092151bfb7f9e2d9fad3a7cc71564860bec85ddf1b0f99465823e63ca03c277fff45b6db708eee4a17ac8f41680f741fe08e875899eacbd55e0a1e00cc717aeb6bcce17e10bcf9e597aa284f6fff4d224053d7c974de1ef47ba3517bd0f78260456a68b45255594df6f7c7bbef93f9bcc8d2aa283f151884a25e6fedc9567f7dbdd5e970d7bdabb3b5ac0442ac5033c655a66e60772fd93f701875be36e6ee980bda311893c100debe07482f7f7e57c7442cacc8dc3c8cf376bfcf1cc7f1bce9e1613c9e14692a4fb59ca98aa2a9aa2c4de2c934885aad4ea7ddefb57a3dc6f99dd8345aeb3c49b224c91749328f17d3493a8f9baa524a7d326dccf1bcfee6c6686bbb3b1a784170a1947fcbc3c4c4382ddf446ba86b3e9e90411fae596300a2d19007014ce7779a5a8680122b31b7004288501a4691e33861b733eb1c8ddfbf9f1c1c7ce805a0b594b2ccb2ba281793c92c08a25e37eaf55a9d4eabdb717dffd6d66ed338793e1ecfc6936c1ee7c922cf7251d7eae3d83e00208cc3767bb8b9b1feec69d4eb997930abee22b3dc06d75d0afd704100fe7ca1ebfa9b4edb0be69521e4040169859a3354dc9dc620008cad1d733b98d1cddcf37a8c05adc8f13c296516c7cda9a9365a69a9841442344d91a6e3bdfda8dbed6fac7707032f0c28e78452d320e01a9772534a29851075239abaaeaa643e7fffdbefe92211752da55426cfeae3f7e2fa9e1784c3edad8da74f834e9b1062d5c5b2e4614779af1b9224c2b40d3df31b74e13d264248862df07d728759e44b5f99e5f6400851c608a56b4fb699c3777fff3d1e8febaa52529dee23a9945275ddd4755355c96c7614b5a26eb7d5ef05ad961304dc7108c6803102c0187f68c4f6ad55dec8c9f227a51568504a48d9545599658be92c8de36cb128d2b4cc73293f9516f3128412eeb8eb3b4f865b5bed7ecff1bc15091d595605c680b3652eb8e56cb4863483aad252a2337d1597f163cc7d873bbc73d973bb0e10606ccd98db0721e406fe686b336c47d962313f1a4ff6f7e7e389facc712a852884a8cb328963bef79e524e18737dcf0b03c7f51dcf753dcff13de638943242c919fd23cc506a51554d5d376555956599e7799a16595e97a512a2ae2a51d7a269e457fcb798e0a0d5eaadaf8fb6b7a276c70d037a8e090b964787e74214425ed832cc7321254e335d94d03a2b09ec321a43077d32ecebe91c9577f449585fd9dd8110629c47bd9edf6a85ed767bd08f27d3783c4ee3b82a8ad39d2501404a298bb236df588428639c73c239638c714618a78c624208c198508c09260881111badcc747ba5a4944a08298414528aa6691a23364d5dcbe31ed2fa4b1b4f84b1eb7bad6e37ea76c34e3b6c77a25e9752ba2afd902cab06a5d00a4129982d20cb57a09bc94a83b4464982f35c5dbbc678ad16d9d8d0f3057afdf6b2a7774510106bc7dc1d082100ca58d86e7b41d0eef516fd7eba88d3d93c9e4e93d9fca315ff43d04637752d9a06e5f9898b0c1dd712124230c6886074fcb96aadb4d24a29a91428a541833607d35a6badf41775e5a3d304000da0414959e5b9a89b7436238c624231c184504a29e58c3046293511a3ebbf56967b0402703874db4029005a0e3eb09c419a41969ffd90cb7ca908a5d0efe9ad4dbdfb1e7deefbbe0596768ce52e31b900086384312624ecb4d3a88d09a98af274dbe68ff81057f994e6383673fac100a0e1f2f58626b55a344d3c9998446a8c31e58c504a18a38c71c7713d8f390e731cee70c61d4cb0a924357f634c10c1841062dea975af3d781002c6a0138154a024647674db9954356abe31c9edb21bb7c057831eeab6d134be1b8b7275460c3c268c46181796564a6b905234555564595355555e6800cff79bba868feb51ce7568b8fef275938370fa37462a0c18634c08c2c73f52ca1d87724639679c338733c64d6d90e3798eeb204c105e3e1c9dfc6d85e78161528a3ad1b2b76c65e7207c152484fe56d5ea653506e326f017a361374ef1dd688cfd62df015288322fb2c5228de32a2faab2a88ab2a94a2984524a4b25a51042e88b0acc2da295faea992144304618238209c2c64a2304634c08258432ee70e638ae1ff861e88681ebb98ee7d13baa36b5dc2c8c42bf0304c3640ef9ddf6ce5a61c4b7bbef5cde018d3d8f3e7baa5fbffbe6fcabebc7f4c4b401995b416b2dea7a3e9e2ca6d33c4beba2accab22e4a51d74dd348214e279599a8c98d9fd20d7df65a4bd3c4ba810696fb989317329dcd08a58c73e638cce19431ca5810b5dafd417bd0776c2b9a870442e038d0ed0026703806530862f984cf4ad03ee70a1ac398dbefa3410f9a06aafadb4fb0dc1f4ccd7c5dd5755956655924c97c3c5ecce675b16c89bf0cac7c35bc72ad7c2629b7b4b9380908997f49a994322d9c3f242c20e4f9debc3b69f77b5e1050ceb9eb3a9ecb1de71eb4d7b49c0dc6e070e8b4404a389a407deb9be9d507e36baef3ff08841067f5fa9a1327e8f63506216bc65c271a9492755535552d9aa6a9ca6c9114595664599ea6659635556d1c62777da277ca715adbe9df65421479313d3ce0dce1bee70781df6a7961e8053e658c32ce1c4e19a7cc26addd434c0a40af0d750d716265e61310a1e85b85cc57bbef31a93637e9de015d24b71df9b73bc4ebc0949f28a994145551c693c962363305f34d554b2995945f6cca72abacf6476dd20a445d57798193242684108209a18c7a6118b6dbad6e376cb7fd304026ae4388c917b8eb13b79c0f8cc171603800ad619e2ce7bf590c8cc2b7364f57d3188478b78336d7759aa2c9ec4a87b2dc3e5a97599ecce78bd92c9dcdd238ae4d61a3105288950ddaaf2ca6799a14e22497334fd2f9d198714e39e38e1bb45aed413feaf78228e29cdb7dd2bd0121f05d18f4016398c6f0ad6cddc783f25ced7d230c79458d01c268b536624763369d5b79bf2f68a59aba3e78fb6e7a70902d92b2c8eba2a8cbcaeacaf5229a46344d5514c67059cc66f3c9d8f17c2f08a26e67b8bded050126d6a0b90f2004be071801a570300669eb660000c07535fbc628cc6bf011a36e476f6de8458a8ec6b777dded077c719452555e14595a6459162f8e76df27f15cd48d4935b602737368adb594559ed76589d08c30363b0af2348b7a5d2f0c5ddf733ccff4a5beeb33b57c1d82c1730121686a3075818ffe1ba37d177cefecc75c83c610ce61634337029a06c58b5b1af2a36f2347f661a0a4124d5d154591e5c96c96cce759bcc892a42ecbcf67ab586e0ea3340020a514755d66791045411405512b8822afd5723d97b92eb562b3b2984cb35e0f1a0969f6d8876662ac7d5fbbced98fba8e5c1784206ac9ed6d5c0bfc3fff826e21f5426bd01aacc89cc9c96c95aa28d2c5627e74343d382cf3dccc5691376cec9f3422fbb443cc270fb8021fabe3a9ca9c8fdfd74db40fb82a5a2b29cb3c6faa6a319b1142186751afd7190ea37ecf0f43ca39a5d434b0b9eb73b57c0cc61078301a80064853108fb56f2642c039040138b7a0310080b18ac26667cb7df3064de7b7d1486ed5568d15436b2d9a66babf7ff8ee7d3c9d56792eeabaaeaadb493e36d33331a5a6d3e57254cc29514108217ca5f4f3656d8e52605a34c3b24ba6f9e5870a1ea5e4b2edcd2ade3046ec1b80328722cba787478c7337f0a35e6fb8b5d5e9f7b9635303560cd369a61580568001668b47ba1669ad035f33f6cdd691d796b38f2885a8b5dfeff6b2dcbd058df97a4390c78ed67555c593e9c1bb778bc9248d1755517c3edfe5ba30adfedd30743d97bbaee3fbaee732e6c0716f49588ac9c77db2115cb9bee94385a4d66af9efe3f215ad01c0c8cf527c946973d30851374234a2698ce836556dba41dfdc253a272641a000c8168b741ec7e3496f6d34dcdaec0c87c4ce525b35308630004040288ca78f516610d26100fc1b017fb8468d01004c293cddd17102557db3a68c06d08fbb18f08b689d6759329b2da6b3f9783c3b38acabea1a232e1863ca18e59cbb0e731c4a29618c31ce5dc70d7cc77199eb70c7e59e4b4f37c9bfadd8c2d93e313387460a219bc6888d3473689a46348d6c1a211a25a414424aa5a4e9bbd698d135424859d7f2b66257528822cbaa3c2fb2345b24ddf12488a2b0d3767ddf4e1f58210881300084a06960913cc25def946007a36f78caae596308696facc37426eb86cce6375995a941291b8e3128a5445d574559e5f97c32991e1c26b3595914b269aeb2262284cc6095651f62c61967cc711cd7757cdff13ce670c6977f10c6c7dd884d5fe25574ef9cee7f733c86469d6a24ada4d11b612c9ea6a9ab1329aaabbaa92b25e4527ea4345a65ca54af5d7bb45212205f24555ecc8f8ec24ebb3b1c46bdae17848ee732c7b16273f718a799efc2a00b52415e3cae9966085287a35bd6184088394ef9640b6ae14a85168b9bbae85a83528f3ce66f9646537e91cce7f3f1647e34ce168bba2c2f57418910c284604230c18410cab81bf89e1f78ad2088a2a0d5629ce3e52431b29cb072dcdffe26dee0b573761ffe4f9ab01907dbc90fc6b869eaaaa9eaaa28aaa228b3bc2a8bba28ebaa124d2395320dcdd4f5857f961d049aa6ccf3f9d1d86f8551b7d71ef6a35ecf0f02cab94d0ab8631000a510b54069389a4056dc5256ed9d8390c6385c1bf120f8e663af7f37c4bb5df547a76e05fcdfff86e63796ca2c1fb71da3b592324b92c9fec178f7fd623e6bcaca248c5dee784660cc4c62bfd50aa256d0ee504629a5981033231223f480e3cfdf9c04736cef68a5e4b2018f924aaaa6ae8a34cfd3a4ccb2224dd37851e6b9b8be527093be617a71a6f3f87077d7f1dcfefafaface9356afc7bf95d563b95910024aa1d306a501a69064777d42b702c6e0f9e1a08fbc6f14c7c04d680ca614b542b1b15e2c16ed244337a1310803210f78bdfb2669bc3878fb76bcb75f646991a475555dfa500821ee799dc160b4b5e547a1e37acce1cc71981d8bf23166ee2726f0c9b74629d5ead44ddd88a66eeaba29ab3c49e7d369329d648be41abbf228a5eaaaaaabaacc172837a70000200049444154b2aa2816d35967d0ef6f6cf4d64694b16b7909cb25a1043a2d00004090a4777c32b70025bad7258eabcfb108df885717618c82009e6cabc309994ca0bed6f63e948ac02f7b1d9f3cc625b02ecbc57476b4bb7bf0ee5d3a8f2fe79631568b17067ed8f2c2c06fb5a25eaf3b185046d1719ef17df180dd39186323c91a02e36aababaa331aa4719cc589e9aa50e5455d964d5d5f970fad48b3ea78585c3a9f778683206a33c76e0bee0ec6a01d0200280579f1b033cd142159147242ceb346dc54e49070e60efaea87e718341c4dd035a599694254af5b6d8cd26edb2bcbc7e2fd04104d53e5459165e9229eee1fcc0e8ff234bd68ba2dc6987baee37adc711cdf0b3bed56a71b442dc7f729a5b697c9a53183644eae9d4b08779ca8db6deaa6c8d23c49f2242df3a2cc3313bf69eabaa9ebab846db4d652ca3c4debaa4ae7f1623a8b7abda01d7961e08521b366cded636a12a310b482230d65f56057278414a555bfcb08be4b8d410821c751cf9f89ba215aa3d9fcaa73cc1002c7519db678faa4d9ded075adebfac17e8aa79042345595c6f1f4e070b27f90258bba2c4523f4f9debb315908259431c7f5a241bfddeb85edc80b43cad832d06237bfd78a2941259452ce1dcf8dba5d29a592ca7c8ec97c9e2549be48aaa2104d2d1a71e9cc34ad545355b269ca3c3fdcdd0d5a617734ea6f6eb4da1dc61961cc7eb2b70a42e070e8b6412a98cea1281fa63543086a857c6b0b9d6f2b83aa2bb8f2cf834a33b2fb9efcf60aefbe3fcf60ce2f831050aa9e3e6d9e3d516b43ed3a4d51b4debcc1f5039fbfa9955acc667bafdf8cdfbfcfe24563a2fae7be860821ca981fb5dafd7e6730e80cfa8eeb51ce08a598106bb5dc325a2921c4b2ff7fd324b3d9ecf0c8640336d53534bdc68430cebd20e88d46bd8db5ce60e085a19599db466b10020e26309b4351def5d9dc00514b3cdf91fffbff76ce05e4c6b3ec51e0eb275b8a52041abd7b7f398dd18ea377b6d54f3fe85e07390e4608fbfe32ecff20770a26c05b96876fde1deeeece279332cbe405fd8d08a1208a369e3feb8e865e10389ee7789e5d71ee1084b129270200adb5170451afb7beb353a4c9f470bcffead51503364acaaa289aaaaa8a62361eb77a9db5ed27eb4f77ec877eab98d199fd0e68054a42f5d086cda4942c5c6770ee1deacd6b0c42e0797a634d4849f31ccde30b7791735d3d1aca1fbfd7831e3e9eec8410429c435d3fc8baa7aa2c17d3d9746fff70773799cf45d39cd33306009810c775bd30f4c3b03b1a0e3637fd5668ac166bb8ac0e0821ee388cf3b0dd164dbfd5e97a81bf984eb32429b3fc2a668d52aaccf3aa288a34a9f3b2a9aaeeda28084342e9634ec5bc6d5c07ba6d0080690c75fd70b6c2844018a2c1e0fccfb8956a618494e3e88d3594e7f8688226139464e7d506cfd5a3917cf654ad0dd1a92f09c2587b1e14057a401a639253cb2c8bc793c9fec1f4e0a0cc3329cfe5603465f95e1084ed288cda413b320d48b8e360dbed6a2539517d8c311df4dd3058cc66d93cce16499e26799a9559262e65d9982ad2aa28a707075551a4f122ea76fca8e585a1ebfbd6acb90dcc4c33b35e4de7700bdde86f018474b7cdb636c241ff024fbae978cc095a29545638cde0d52bf4fa2d8993b366c9210418d78ca2f535f4e2997cb28d3e99e8a9359acfc9e121ce1e42d193e90753a4593c9bcdf60f66e3a33c49cfb3be98f032658cbbae178683f5f5eedad00f434219a1c4065dee1127a39a6523aab298ec1f4e0ff6b345625a765e4e6c00217ceca08b7addfec6466f6dcd0b035bfc744b2805650d876388170f40663467f21ffea87efc5eb7dbe75f586e4f6396afa7541d2fd0bb5df7d7dff1d104f457caf50951aeb7b739f2bf7f11aeafe92f163357157df70ec7f10d9ff28da3b5aef27cbcb7fffef797cb8afda6394f137e23309de1a0b7b6d6190cc2769bbb8ee9f8720ba76db929b4565a37555597659ea48bd96c767434dd3fa8abeafc2ed34f418852ea786eabd35d7ff674b8b1ee06c13dea03748fd11aaa0af60f619e5c73a5e0ad2337d6d47ffd2ffac9d637fbf99fe6b63beb698c493b0246a5efa3ffef2f309d7db174467036fd6ec77db6c3fbfd2f0b0c0070ae09018cef7b067399e7ef7ffb7df7e5cb741e37e7ce94c3847841b0fddd8beeda288822c7f3d839fa6c5bee010861841ccf3371b556afdb5f5f8f3737dffdf26b3c9d5e34f563c971439aaa288b2c3b78f776e3e9d3c1c686778e7e53962b8110380e0c7a2014cce27b6dcacc7b1d27f4f9052de03be8de8a318620509ba4aeebf4f51b2fc9fca2f8904b8e50ed3ac5c61af9fe85d7e99cd524c384fd2985fb99c1ac94aa8b72319b4e0f8e0edfbd8dc71375befb8f321644516738e8f407fd8d7537f0a90de73e481022947a94baaee7b742cad8fce8288d17e9625124c9e5920244d32c66b36cb168caaa4cb3fec67abbdfb73ed59b0521f03ce877000016e96d8c70bc7630d69c91b535f0fd8b3ef58e3a849b82caa73bc2e56291892c95f3459565a03571b8ea74d5934dbfd723df6a4aa639d78ca17ba7315a576599cce3f9d1d1fce8289e4c8b2cfba6730c61cc1dc70b02d3e9bd3b1a865144185fd95efa96abb39c554d8943bcd193eda8d7cd168bc56c1e4f267992946976897467ad94506a7e34aeab2a4fd26c3d09a2c80f03eebad6cb7a53100261080803c6305f9c158a5e491421e560c07b3d7cf11eacb71d8f398d69284ba484baa9d3343e3a02a5dd2874db1dd68ef0393c3f623221e3b173dfc2fe55514cf6f7f7dfbc1defed89aa16e2db45fb94f3c074151b0d3bc3811fb62867763ce2a3422fc7794ad1344596cd0e0e674747c96c5e645973a9ec584c30639cfb7e6738e88d86dde1286cb709b537d5cda001a484a280bd2348d30b9770dc2108c95618ffe33ff8dfbdc0eebdd29813cc800e51d700603ac99f733f75f0fa359f4ed7eec98ee064dafcfb972f777f7f393d386cce71f14d3398deda68e7c71fbaa311e39c3266f79b8f1c25a5697a164f26ef7efd7dfcfebd690071b906a99473ee38eb4f77767efc31ecb46d29d50d2225a419ec1e4096df175346532247c3fafffa3fa9eb5ec227bf12d3f44efa3b5df489c47108e7b00232791e9aa649a6d3a3ddf747ef7793597c1e810100bfd51a6e6d8c9eecf4d746dc75bffd04cb230013621a3770d7753dbfd3efcf279364362bd2f43c1989a7d15a3755d554d5deabd74d55ad3fdde9adad31c7b1c9cd378299d03c1ac06406690af21ee42b159c179d76eb1ca362bec84a68cca509db6d5ad7d0342b9e5a268548e7f1e4e060bcb7b7984ecb3c97675bca08398ed3ea76a35e2fecb43b837ed06edbb431cbe730ce3b8381e379ddd1285b2c92d9743e9926d3a9bc789fcd22cb0edfed96593ed93f6875bb9d7e3fec74acebecfa2104a216600082e1e6a6385e179e8736d6e1e9934b1f60257c6597466b8d27137670b09aa68cd65a4995cee7c97c3e3b3c9c1e1ea5f3b994f2ece80b77dda01d75fafddeda5abbdf775c9770866d2983e56b6830c3399568f2349d8f27b3a3a322498b3c2bf3425c2423e6b84b370ddb26af6414b45b41ab655b385f33a66f6692c178068b647565c675e4d6a678f15c6e6fd0cb4e5cbddf760c424860dc2074e17cba5b4136cd623e7ffffbcbc9de7e9ea6a269ce9af88210c6d80b82ce7030dcdcec8e465e1010f6c0271c5bae010418618c31504239f7c2d660633d99c7f3f1787e348ea7d32acfcf79a4935e0371d3e449323b3aec0c87fdf5b5ce70689bd05c276642732b0004d03450ace828ac2a8ae0d90e6c6fd02b3851eeb71d0300d3bdbd6277f7f98addfd26b6bf984e7ffb9fff3ededfaf8be26c2fb989487961f8ec8f3ff5d7d6bc568bda9da3e5b218a91075134f677baf5fedfef6bb92f21223d1302194312ff05ffce94fc3ed2ddbb7fb9a31d6cc640e47632857af6f26c67b3f7de7fde98ffe453a607ecefdb6630080ba2e0f02288abb3e918f68ea667678b8f7ead5e1ee6e5d55dfbc7b1cdfebafad6f3c7bda5f5fb3650a962b62e606993f8ee704add6ecf0309e4c8a2cbf50371a25652d6553d7affef6f73ccbd69f6cb7fb7d6465e6ba30d64cb70d5ac1740ef92acd342344b7c2e0e90e69b5ae78a47b6fc73455a59324383c442b3016d324614f0f0ea60787b3a3a3c5745664d919f70d42c8f1bca8dfebad8dfa6b6b51afc71cc7c65d2cd786d652a932cfb3c5228b178be9747e74144f675aeb0b2d6784103f6ab5fbbd56b7dbe90fda833e775d7ba35e0f5a4359c12285790c8b7415644663ac023fffe97bfa871f49105cd1577fef35466badcb124fa77c3a0521eef01352529579363d383c78fb6676382ef35c29f5b56d23c2d8f5fda8d76bf7baedc120ea75bd20b02d3d2c3781b90f4523f264313f1acf8e8ef2342bd2b42e0a71eebe2618634229739dee60d05b5beb8c46ad76c42e1b07b67c84d650371027309ede7ddd0c21b2d3163b5bd5772f583b22e71ba87c06f75e63004049a9f2dcdddd456589eec8945152668be4e8fdeebbdf7e374391cf704a208c83281a6e6eac3f7ddaea7628638452ebe9b6dc285a6b3342a22e8a783a8b2793d9e1d162366daa8b259e51c6bc20e8adaf8fb6373b83a1e3db20cd75a035d435c409ec1ddeed14803a6a89e73bfa0f3f91a88531be7ac2d1bd8fc7000026045c57b92eaeeb3bd118294491657baf5fbffde5d73c49ce481e33b9a1dcf3369f3fdbfefe3bdf4c27b4586e1e84102184781e771c370c7beb6b51efe0ddafbf4e0f0e8ca1739e8c00ad7553d74288b22892d96cfde9cee68be78eeb616273ebaf0642c039442d282a98c5d0dc91cc609c76da626dd4ee5c6042ccd93c90050e11b2402800b87dd35d2b75b4bbbbf7eacde4603f4fd2b3cc178498e3f4d646c3adcdc1c6667891393f16cb75818ea796916deafaeee1bbeeecf02899cfcf3fe0592b5597e57c3caeca228b179b2f9eb70703eed81ae1ab81107006c32e28b59c6976fbb42377675baeaf5de3d2f44034061082560b952528756b917fa5549165876fdf1dbc7d1b8f2755519cf115e5ae13f5fba3adad76bf17b6db8ee75981b1dc2ddc75baa391e379bdb5b5345ec493f1fc689c2d16e77cba14225b24a26ecaa2e86f6c0cd6d7a25ed7a6445e098cc17561d80346619ec0b90b9baee7a51da77cfe146faed3cbb68df9220f211e63104da3debd6371ecdc8ac628a5d2383e78f3f6fdef2fb3c54234cd17050621c43d2f6cb7a35eb7371af5d7d7b9eb2c8bf6adc658ee1a53c8a5946aea3a9dc7d3c3c3f9d1519ea6459a9d73bab329ed0adaedee70d01e0c5a9d4eabd3b6e991574229282b982f603a83bcbc8d5724447a6ebdbda9fef013e977f195e3fca779381a0300f1dbb7ce6c16ddca08a03c49debf7af5f63f7f49e3c5d702300821c775474f9e0cb736a37ecff303ca99fdee595610adb514b2aeca6cb188c7e3d978128f27f962714eef19268452ca3daf3b1c6e3cdde9ac8dbc8b0fb3b27c4069284b98c67038bef1613318eb30943bdbd9f7cf78af4718bbdeedef43f19501000069b550554192dc74b84c2b357ebfb7ffea753a8fbf56c08f10723dafbbb6f6e24f3ffb51cb668e59561984106594d0c071dda8db1d6c6ebe7ff9eafd6fbf5765799ea90127d59a55519459b623e5e8c9363df7900ecba76004ae03dd08b202b2ec4665463b8edade54ffe54f4ee05f4b22d9273c288df1c21057952e0ad4dc6cb8ac2acbc9fe413c999ed121c60b82d193ed9d1f7e68753bf69b66b9179c4cd9609c134ac3289a1e1c4c0e0e8b3495e7700f983101b3c3430dbac8b2e1e666d4efd9add525c1185c07d6fa70a020cb6f6aa61921d5da403d7d42a3d60d7d4e0f4a6308a5156325a5ed9bd418ad751ac7459a8a2fbd0a422888a2ee68d41d0ddbfd7e34e85b81b1dc3b302141abc5380f3b9dfee6c6fcf0687a7898cee6e7a9d91442ccc793baace2f1241af4d6b6b78328a2d7eae27f2c600ca10f3084790c717afddde50929b737e48b1768d0bfe6239fe241690c0080eb42a7a308c14501673439be1a4d597dfe6533a9c9ed7e7fb8b5d95b1b0551c41cc78e43b6dc53cc1834e63851afdbea745add6e3c9ea48b384f92322fceea200e209a269dcf8b345d4c27659af737d73bfdbe1f86b6d7d9c540080881280482016198c7709182d9b3c058735e8dfae2bb17786344fdeb4c24fb8487a631cc750163c5183e38d052de44781d01308753ce10465a2d9da4082137f07ba3d1e6f3e7ddb511771cdb18c672df31659b4048abdbf5c2b0b7364a66f3d9f868b2b79fc6b138a380436ba5b5aa6b294455fe9e258b7c63b3bfbe16f5ba8452fbbdb800260135f00100b482a3e935046630d6beaf36d6c58b1d321a61ef321394cf0ff9b77ffbb79b3bfaed8310428468c6549e2321d04d04ca102294e68ba42e4b8430658c71eefafe707bebc98f3ff4d7d74de364fb45b23c1830c69452e6387e2bec0c0608e3a66e9aba0680b37301cc9481aa2892f93c4f12bfd5a28c223b70efa220048c022690e5a0245c6555c35879aedad9d2fff57f41fd1e719d9b362e1f54eef20794cadfbf0fe298ddccbbd35a678b453a9b17790e1ab8eb70cff582c0f57deb77b63c78ca3c9f1e1c1eedee4e0f0ece48adfc08841863edc1e0e94f3f0c36375d9bd97c099a06660b3838bcd2b019d7cd9f6c363ffee06d6fde4e89dec3d418ad759d65de6442168b1bca31d35acba6114280064209a17677667934685d57559ea4d96291cce6e3fdbd643aabcfb192104adb837ea7dfef0c879dd1b0d56edfc2c93e1c9402216091c16c0e4906172d04c418a256f964abd9d9c6c30173dd9b39cb4f79981a03005a291dc77432a1697a43dd65965e020d80c0aa8be551611a044829abb29c1d1ece0f8fe2e92c4f1665969fed3dc38470c709da5177341a6c6c748603ceb9cd05382f5a835490a4309d439c9c536634a58defe5add0dfde6a36d771a78d39bfb525eba1c5fc4f40182bdf5765a9ab0add8c8e2e3f242b2e96c787097c624208a58eebb6bbbd783635c36992d9ec8c7400256555144d5de7499ac6f156fdbcbfbeeefabedda59d0b8480126885a0354809f37334976354f77bcddaa8e875ddad4deab970bb1e9707ab310080398730d455859ae6ce47645a2c0f128c31e69c743b5e187447a3ee78fcfa6f7f8f2753d1345feb416e1201ca2c6baaaaa92badf460638339dcc632cf0b25d00a402948f3afb6004008306e10c2dd8e7af19c3cdf8938c79cdf7e9bc4879657761a849042480210296fbaf2df6279cc9806018c733f0cbd30c408eab232896767a094aa8b228de322cb08a541ab651bc59e178cc1d4de95d59737d0940acf9bf63bea8f3fe1a7dbb8d52294dec9e57db0f118833651b2344d5ebf8e94e2f60eb6586e98a6aeb3385e4c67c96c361b4f1693c9d9628331767cafddef0f3736d69eee786168dbcf9c0ba5a0aa214921cba16eb4d208638550c64813047cd0773a9dcc61b4d7679e7b8711af07ae31062d44727010c531af6beb34b3586e14930e209aa6ccf3c56c76f8e6dd647f3f4fd3339e624638fbad70ede9d3ad17cf5b9d8e0dcf9c0b139529aa0663e1badc7181e014631978bcd3e19eaf112042eed63a7cc8f1981310a5c168045a8bd98c6a7d87b3b22d96078f4907601853c6bc30745c8f3036d9dfaf8abca9be3c93c68c704ee6b114bf33c628a57eab75fb677eff400828851695ad96180c88e701808390c61853ba22d9ae8f4263008030560701a92a9ca658292b3316cb8d729278d61d8d286361279a1e1cc4e3695d55a2a94f9a309d46499925c9deabd7dc71b77f08acc7ec9c48c6200868149908cdaa5db5c7a23100405bad4629a57560e631582c969b8732daeef7fca835dadecee2f8ddafbf4ff6f7cabcf8e283b552f164323f3a5a7bb2eddc64a3c687448a1030e6ad6afbdd47a4319852164592d23a08681ce3aab24a63b1dc0298108710ee389eef73c71d6c6d2ea693d9d1383e1a7fee3a9342d4555995a5d5986f831030463a1dbdc2bd791e91c60000660c85a1741cc4181a8f9195198be5b6400811c63ac341d0697706fda8db3b08fcf1ee9ef82ceb4c2975f6ec00cb092a8a58a7a36fab31cc25785c1a030088108c906cb7655932ad49f595ec728bc572dd98200dc79832e67abe17060850329d9545219bc6d8340821d33ee0ae4f76e5c1583326db6de47968551d65f00835060010c608e3328a34808310aa6b7493e3b22d16cb69cc581aec7b7dbe8e309eee1fcc8e8eb2786106cb52ce8228e2ae73d7a7b9ea688c65186acf831516187824f5315f444aa9eb1ae7394f539c2420843568be81c9843c2dc608596db65c05294453d7659e67711c8fa780a0d5eb760783208a6ca3ccb34048384e3a1c3addee8adb7c8f57630040290542e0a6a9e3d8cb7392e7176e97fd18404823049c03c61a6384b10640a6cc4829500a49a96f681c9ce571a094124d53e53900e29ecb38b789cb679303e4beef3d7f4e6fb183f2e5586901bc6930c6c0b9a61411227d1fe218a7e90d3569be7f60ac1903c7d19c2bc68052c05823643c8dcad4182985004008d5345808dc34603a905abdb15c048c31e3cb9e9808a1155f345702cf439d0ebb8b1e9717e5516b8c01614c1d0738d7843418cb387601d0e3739d698c8190bc690400e39cfb3eb82e789e765d6dbae92104665c0e422729a708402b652c425d55a82c559695795e5755c8b9430848f9d8aea4e5125869393f2580f27db7db5d7d8101ab3106841020a482a006a8001c84c462819b8620f4d5d6d9f71d843442526ba9352284508a1d473b4e5e14715db73a9da8db258c012180f127b7b2fee4674290d6c0b9725d1d04b5efc7e371aa14f67dc639aa2a59d7a2691821586b647bf9582c5781b19210edba3ee7777d2ae7c26acc2930a6be8f1d47022c30769bc66f1a5414ba69e0618c2243486b6d04150801c789eb3ad71a7b5ed4edbabe0f84f8523a5a134a3163e7df25218496624308a3b4edbaa1100ea5122159d7f1741a4f2623d78d105ad624690d0881528f376be0e48d7f92497172cd1fe765b19c8946480781d3e9e830bc2f66dfa38ef99f415d96442922842acb7c326969cd84b8af19010801c6c098666c52968a31bfd5723d0f182ba414008852ee383734214a29d5545599e73e631c400bd1946516c72dce5da550592eafeaa35a52cdea4088517dc0f8b4ef71f98349a9b0669fe51881d09cd2d6ce0e0a0258ed5cb2d3dc9b13bd6598e30080d61a791e2144692d85803c274501f742954dec8431edbae0389a314d083086eb1a510a9e2739c71873add90dbbc231c68eeb32ce11421a21ad140a02e2389a52a9146a1a10029525caf3871903a35411a209014235c69a9063f7236853d6600c9a53e60b3afe617935a4445aa346405363a5a069d0c97f591e0f1883e3907e5ffb3eba3f0203d68e390fda7cc9b586b2444922160b55551c630a004add7d371ab33c99a80921695d2b00e638dc75c1f394e781eb6a4a8d3b4b6a0d08e1db1de8fd295a4ba5304226368394426589b24c665953964d5551845c4a29c0fd088661ac31068434c6455d0bad35428c324429650c31a61903c634c10a134d293a76429e7e63271fc7e9fe5de657c8dc63754d4403428010a8aeebaa565230008e1092f2ee6f42cb8d8290604cb4dbb0b181ef95c080b563ce83e9d360e20d92d2825291a66012f89b46d5b5a86b8a31c5f88373e30656468d90d109847123652d2521c474ddc0942a8ccd7296655905e087a16eb528e727417b73422b51108c10395599ac018052e5bab5ef678b459e240e42d475b1524808298412420841316626b9c05cdb5bdbc89bf0d5f19f462c1da6d85c7c4234268a10c49842282bcbacae15215e1038aec738278c1a9fd8c91ffd99baa38ff5e6047df2b7d6c8718452a0b5564a364d91a65a343e0005d075a3ab52d63541889928d7ea0bb3e5fc202409697c5f4611bf6f0203d68eb9285a6b25a51282628cb55642e449329f4cfa9c878c2113b331d336b5591c34987c5f0000c0c79ef74f9619f350005027bbd793fc608410002244630c9402219a906951ec2f165e10b4a2c86bb51ccf43c68ec1b8164201604a29a5f7252a6850524a299594486b93842685a88b224b9274b1e83a4ecf75977b76219094a094d21a7d7c91976fd8bcf37324142c53b1d5729ec9c96537991108214d88c65833a611064aa7699a09a108f15b2d27081cc7c5a754bc514a2a090819053aa7bd78910f496bad11801402b4c680088012a22ef2c9c1419bd21ea1a82c74d3609b3bf020d008214a8b564bb6db2c8a56b92fd9d7b01a7325b4524288aa285c4228c64829e33d134d5357555d967555d54551d7b512c2779c27c3210080f1bc9d06e3bcaee32c9ba729a19432c61c87324619639c3bae4b39c7946a584e4e2d9a26af6bca39e39c50ca6e265c7fe768a5a4944288ba2c1d425c4ab5940821905249d954555d96a269aab26cea5ad435d2bae538dd568b61fcc945fec80785b1d65a9b54088400e3699a8ee773ca18e3cbcbce1d87791ee31c616c1ea911d208d58da8a5048c2963843142c8672d4f2ebca65f48633e7fbcd65a344d55941c6317a1a6c893f1b8cb399712370d34cd45cfc7b22a10a23c4f743a2a08c071ee9d97cc702f4f7a754027f5c95a9ff8a3b4d65a08dc34d494250a419b4648e930a6da6df3804f7697086324042b0aaf2c31c6c60a592e619482e3684a3542fa7801e3aecbb436abdbfd32562e04c298624c28e5ae0b5aab93225000ad14921255151182350d168209a195229c6bdf17e6a2288510d2f28357cd781ae1d8ee5966dc610c7ec0fd8032c6184384604a35639a314928c6589fd20dea68f2c14c5a892b8f10628c999b5021a4392398284a8452a4aa5092e23cb3d6ccfd8310edfb72308030445fd8cadc1bac1d73232cbd374a991f945200801122847c6d59525a2badcd2301216c7c35709cf5b51acbd99df0b5d5516b6dd45a1fff033460d3ede6f801671f131d8b96524a2a858e43261f2efbb1cd709115fab6ed984f1fa1b5528a18cf6123509ee9f93c4f520f818bf1fd48a3b010a25cb769b7f168a4efadba18ac1d73232c97a963e7e9691fead7bedf0880ac484cfe9ef005e9d5cbbfce58443f6d520000001863fcc567ddc3d5181da754e8657f20dc50162b050851847459aaba661823d36bceb252200408555a13cf93ad561d86ce3d1718b0768c65f5b9c03aaf4ffebaf0d1befc7b7de6ff5eec15becaf5da319fa3a414754d1102218b64518dc743c76142e8a641a6ef83b56c56000da010c29eb727a5371cfa9d8ea6f401f49fb6768cc5f2c0c184389e07005a29ce28f63c45685e57f562a193a44708086165e68e41a80448398fd6d70342a8e320ce1f86a16935c662792c208cb9e33053042a1cc4388429e7588f000005b949444154610380f31c17053239f796db0721e5fb1004ccf3208abc87157cb5be32cbaaf3e07d657001f7d7657c655f7b8a520a94c2807055a234954982aaca01b013e76e098434c639000b02dce9a830d48cddc70a98b3b1768cc5f248c1266f1b40614f512638d7694ab5d6752dca9228b5ec1a00b690f3ba21a4d11a28d5ae9b13e2763a3c0cd17d2b9a3e27d68eb1ac3ad68ef9e4e0d765c77c745cadb5525a4802a0a5584c26b4283a8490b23413b5adcc5c03a6991021da71328484eb7abd9ea214538a1f9cf97282d518cbaa6335e69383df84c67cf41a4a555585a572106029719ae23846756d65e68a688cc1f3e470088e5303288c99e3dcdfe2ca73627d6516cbdda32fa51c3704c2d8715dd3a9536aad29158cd5718ceada074052226bd69c13d3c496b144294929f37d278a74bbad11220851383592eee16235c662b17cca87c00042caf324a58a52a82a89316a9a3249a9562e425a88658f3ecb09086942722124c69873eebac4f394d68a10e979d2f74dfbda87af2dc7588db1582c678210668c451128a53006a50ac6b810446b2c04344d5396446b6a06023db61c01d37f08e34629a135a694728e5cb76a9a0a21e2ba288ac0719ce3a91c0f2f6dec9bd8788c65d5790cf11838afafec36e231df3c981402694d118052a2aea70707bed66d4ab1196c21e5a398d479dcb45b53aa398f9ba64488785eabd3a19c0b000560fa733f26a3e50b588db1ac3a56633e39f89d6bcce97f28a5eaaaa25a718c91527559f2a2a059864c42da430563e5383a0cb5e729ce11a58dd612001142397f000d60ae11ab319655e73168cc4ae5955de260a643b5524a29459b46e7b9c8f332cdca3c1bf83ed71a29755f3bd698e6dc8c012149d3644238beefb75ac4f3c07581736526d199b66f8fdb64f922361e63b158ae01136f20186b423463ca7595ebcacc159e87b54652212984106596d555c509891ce783576d15b407638d9019388b289d260910e2b82ee31c538a39d794aaba964268df57618839ffb4f5b715982f6135c662b15c2b08214a1921c471bc769b98216f5a4b294555658ce569ea131ab4422404564a358d96520921a4944268a518211ee7c7338134983104c650b8901a1d9b17cbd974a604122105901505009899b3c4b437c6182855840063c0580a60e6dd81e731c7d11803428e524c6b8c3126048e870f59cec6faca2cabce83f795dd746fffcb3de542073be70e5ec92504214e88d10c656693174596a65551d46519b9ee46a783b4d6526263e82885b4d61f771cf8e8354ff9a98eff1b01c627a3b28dba688c81f31ae0f7b76f09635e10b8beef0581e37908a1131d028caba64108614210c636be7215acc658561dab319f1cfcfe6accd790526aa5a410524a290427c4e51cb4460027b68bf9d95836e87486b4112123245a2fe5c48c21c7184e866a03189941182b80244d312184524c08658c3cbe94e25bc36a8c65d5b11af3c9c11f9ec69c469bb1699f1dfdc3fc6cad1100327a8310688d103a99ab8d303e1115f47577963602662328378f8dc7582c0000c8fad65783af55937cf0809d1908f9e22cedf3bf8ae5dab17e468bc572bfb19b8355c66a8cc562b1586e0aab31168bc562b929acc6582c96ab61431b96af6335c662f93aabb77aaedc19ddfa09addc15b09c89cd2bb3582c97e576d77bab2ef7116bc7582c676217b62f82acc058ce85d5188be55bd8e5ed13ac7fcc726eacc6582c9695c60accbdc66a8cc562b908b7bde45b89b9df588db158be85b6eb9cc57249acc6582c9695c58afbbdc7e62e5b2c67629b61dd0d565d1e08d68eb158ee138f43f2acc03c1cacc6582c5fe7d48a6e97bddbc25ee90785d5188bc562b1dc1456632c966be471b8b22c96736335c6623917e7500f2b3016cba7588db158ae052b3016cb17b0b9cb16cb15b1ea62b17c156bc7582cdfc6ca88c57239acc6582c57c1aa8fc5721656632c963be61664ca2aa1e5aeb01a63b1dc17ac5258ee1f56632c96bbe75beaa1adc058ee2956632c1680955ec257f8d42c966ff1ff03d49538562c11036b0000000049454e44ae426082".decode("hex"),"DEPLOYMENT_ID_":"1701058347710427137","GENERATED_":null,"ID_":"1701058348821917698","NAME_":"信息服务接入表.bpmn_64fa805addca7e2d490debe8.png","REV_":"1","RN":"100"}
      - generate:
          count: 1
          mapping: |
            root = {"BYTES_":"aced0005737200136a6176612e7574696c2e41727261794c6973747881d21d99c7619d03000149000473697a6578700000000177040000000174000c32303233303830343030303478".decode("hex"),"DEPLOYMENT_ID_":null,"GENERATED_":null,"ID_":"1701078318708568066","NAME_":"var-Activity_1e3bcfyAssigneeList","REV_":"1","RN":"101"}
    batching:
      count: 1
      period: "100ms"

@JuchangGit
Copy link
Author

output:
  sql_insert:
    driver: oracle
    dsn: oracle://BPM_TEST:[email protected]:1521/ORCLPDB1
    table: ACT_GE_BYTEARRAY_TEST4
    columns: [ RN,ID_, REV_, NAME_, DEPLOYMENT_ID_, BYTES_, GENERATED_ ]
    args_mapping: root = [ this.RN, this.ID_, this.REV_, this.NAME_, this.DEPLOYMENT_ID_, this.BYTES_.bytes(), this.GENERATED_ ]
    max_in_flight: 1
    init_statement: TRUNCATE TABLE ACT_GE_BYTEARRAY_TEST4
    batching:
      count: 2
      period: "800ms"

报错信息:
image

@JuchangGit
Copy link
Author

输出的插入批次改为一条运行正常

output:
  sql_insert:
    driver: oracle
    dsn: oracle://BPM_TEST:[email protected]:1521/ORCLPDB1
    table: ACT_GE_BYTEARRAY_TEST4
    columns: [ RN,ID_, REV_, NAME_, DEPLOYMENT_ID_, BYTES_, GENERATED_ ]
    args_mapping: root = [ this.RN, this.ID_, this.REV_, this.NAME_, this.DEPLOYMENT_ID_, this.BYTES_.bytes(), this.GENERATED_ ]
    max_in_flight: 1
    init_statement: TRUNCATE TABLE ACT_GE_BYTEARRAY_TEST4
    batching:
#      count: 2
      count: 1
      period: "800ms"

BLOB放在最后运行正常

output:
  sql_insert:
    driver: oracle
    dsn: oracle://BPM_TEST:[email protected]:1521/ORCLPDB1
    table: ACT_GE_BYTEARRAY_TEST4
#    columns: [ RN,ID_, REV_, NAME_, DEPLOYMENT_ID_, BYTES_, GENERATED_ ]
#    args_mapping: root = [ this.RN, this.ID_, this.REV_, this.NAME_, this.DEPLOYMENT_ID_, this.BYTES_.bytes(), this.GENERATED_ ]
    columns: [ RN,ID_, REV_, NAME_, DEPLOYMENT_ID_, GENERATED_, BYTES_ ]
    args_mapping: root = [ this.RN, this.ID_, this.REV_, this.NAME_, this.DEPLOYMENT_ID_, this.GENERATED_, this.BYTES_.bytes() ]
    max_in_flight: 1
    init_statement: TRUNCATE TABLE ACT_GE_BYTEARRAY_TEST4
    batching:
#      count: 2
      count: 2
      period: "800ms"

@mihaitodor
Copy link
Collaborator

Hey @JuchangGit 👋 I tried to reproduce this issue and I get a slightly different error, which I assume is because I'm running the gvenzl/oracle-free:slim-faststart Docker container instead of the same Oracle version you're running. The error I'm getting is:

Failed to send message to sql_insert: ORA-01461: The value at bind position 7 exceeded the maximum VARCHAR2 length

Ultimately, this is due to passing around large byte arrays just like in #2574 and the underlying sijms/go-ora driver has some difficulties with that. While the maintainer has made some improvements in sijms/go-ora#557, I guess this is a new issue, so I opened sijms/go-ora#575 to see if they can figure it out.

Until then, here is a somewhat ugly workaround which seems to work:

output:
  sql_raw:
    driver: oracle
    dsn: oracle://system:testpass@localhost:1521/FREEPDB1
    query: |
      INSERT INTO ACT_GE_BYTEARRAY_TEST4(RN, ID_, REV_, NAME_, DEPLOYMENT_ID_, BYTES_, GENERATED_) VALUES ${! range(1, json().length() + 1).map_each(r -> "(" + range(1 + ((r - 1) * 7), 8 + ((r - 1) * 7)).map_each(p -> ":%d".format(p)).join(", ") + ")").join(", ") }
    unsafe_dynamic_query: true
    args_mapping: root = json().flatten()
    max_in_flight: 1
  processors:
    - mapping: |
        root = [ this.RN, this.ID_, this.REV_, this.NAME_, this.DEPLOYMENT_ID_, this.BYTES_.bytes(), this.GENERATED_ ]
    - archive:
        format: json_array

@JuchangGit
Copy link
Author

JuchangGit commented Jul 22, 2024

感谢这么快就能找到解决方案,但是如果是长度导致的那么 #2710 (comment) 这两种配置也应该运行失败才对

@mihaitodor
Copy link
Collaborator

Give it a shot. I think it’s a combination of issues, because sql_insert starts a transaction under the hood while the approach I suggested above doesn’t and I wasn’t able to get it to fail with the tests I ran. I guess if your batch is large enough, it will hit some SQL query length limit or it will complain about having too many placeholders. Dunno what the limits are for Oracle DBs.

@JuchangGit
Copy link
Author

我刚才测试了 #2710 (comment) 方式,79416条数据全部同步成功。你的方式确实解决了问题,非常棒

@mihaitodor mihaitodor added bug waiting for upstream Blocked on changes needed in an upstream dependency sql Issues relating to the sql components labels Jul 22, 2024
@mihaitodor
Copy link
Collaborator

mihaitodor commented Sep 15, 2024

Seems to be fixed upstream in github.com/sijms/go-ora/[email protected]. We should pick up that new version in the next release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug sql Issues relating to the sql components waiting for upstream Blocked on changes needed in an upstream dependency
Projects
None yet
Development

No branches or pull requests

2 participants