diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index b3aeef456d..f2aac14cba 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -412,11 +412,12 @@ jobs: pkill substrate-node working-directory: testing/wasm-lightclient-tests - - name: Run subxt-signer WASM tests - run: | - wasm-pack test --headless --firefox - wasm-pack test --headless --chrome - working-directory: signer/wasm-tests + # TODO: WASM tests for the subxt-signer is currently broken https://github.com/paritytech/subxt/issues/1861. + #- name: Run subxt-signer WASM tests + # run: | + # wasm-pack test --headless --firefox + # wasm-pack test --headless --chrome + # working-directory: signer/wasm-tests - if: "failure()" uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index 4d8cc5ff7f..ecf01a20e8 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -46,10 +46,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x047ed4bbf5acdaf1efa4164d59596a0706617d149fdef7b9f83ff1b2b9ea516e7afe42610101b3c32f110000000013cd2f110000000004730613df3cacf0a8d17863aeb24424caa241f3f5d03bc5b34f179af0f12d41d9494c61010113cd2f110000000073d62f1100000000080628f518f2cbb5dea0d1863f3ffffc4970fb494ad8cfd9c53337cc7791bfafc6975561010173d62f1100000000d3df2f1100000000000f5668366ac35d91ce18158540786162219c8be9653337a3aaea6f4ae1f9b782975561010173d62f1100000000d3df2f11000000000000100628f518f2cbb5dea0d1863f3ffffc4970fb494ad8cfd9c53337cc7791bfafc69755610101dd2500000000000073d62f11000000006009000000000000d10732904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000ea24dfbcaffa4d280e19babda83a8f879453f9c5f71901bec59de014878a6e050100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046371ae57e3d4c98d3bfe936029d184fcba10db1d2e6dfb5e722e6c3b08d9b0f0100000000000000cad93fbaf78ceb031a3677b27a9e579688602099c97258c746b080422c34bc4d010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000f8c623ecfb4af1c19ded044923b34660c436466a9a5bc33db15f0a73200e10160100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000906ec0a56171d27f65c29683a31c71a87a4e32b273596a0a704ff07ba344d0660100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000beb7d66b53d3c34bb4a6b49df52a8e77b1929d1f43a6a3191c1cce6b8b9df72e01000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b010000000000000058cc4e48b26665ec1d6c2a128f0f5b70434ab4a771743429058b963257e6563d01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b3796349100100000000000000aac3d3db30527a4489be679bae33f16e0ece5a6078dd0309109572213e08a81901000000000000008679d78aa6d1f7ceeb9066f45fe66d0096dd1b41f7463e379e0735a11a99f01101000000000000001c0856b04c28ed8bdee95096f95646efc095737d4482b475053245db424e022901000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000036ebe7faf129b9ecd3a8bf421eae5584d30c5ac5393d540dc04b414db2dc8a4c01000000000000004a2f2312a5f7eb7709f4c55f54c6a2aff8ddda937bc153e57aa7b8f4b32e72610100000000000000e2b359b93abf559cd326ef07a6a46784b945518e1f1a4c04ebe42390f2574c590100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e01000000000000008084d934bf7a7ad960de3b325ad5109d10eef00e90d6ab776240b7bbeb6a6a7e0100000000000000c66476c56a07a8e1a9e57bec84efe2817bddb252ddae336d0e64ae2905397e0d010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4be6f891156ecfd5f9ff661f780884578ac18dcc999b7f574510196c5243c2201000000000000009e4aaa177dbcf990475d3d6ea36e9d0e9d7a2e5328eccc2391e3a9adbdf5295f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000007422fc1db85ec78f23e3ac6e22bc1582d4fb955acd7a4ad35f6f81ce8471b2590100000000000000c08c91ecf8879f5042960c3d61c0e74f125463ca2726e6655fb922af5cdcb85101000000000000003a7e03cc1411df20c3f0e1463d604fb34280b9cd701b9c68d77dbfc534b208180100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000ec8ee214c34aca7625567c4529a63370cbdb456bea2b888ac9738ccd17682e2201000000000000007883a3f09e524202160a0a818ebaecb8be2749abf2f0bc9f1e670c4f52ea6c4a0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000d699341d0606cf3ae54ef081718cedb138a029d7e107ea8324ec5cfc2f3a1c3901000000000000002c3a1d094c488ad9d608625ec41a4d7b85594503f287ecdb30332f4291bfaf7c01000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d64010000000000000030ff7c7cdf5dd960f6eb4a7d79a638542aea5a7b0ec75d63f47906f9e999537201000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000a04f38e06ff594681b8d9781bc00fa3e9be2f74080ca7d1c7a74908e1b6ec1280100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b9810010000000000000064d54109c3f4d89a9e36206a4c42e4ca0f74699c9e5f9df386fc154e6d51f43a010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000105cbcb7a4b41f84ba757be55d3291d005fe16971f519c9ca51acb5c8de4b64b010000000000000022be2f3730ae90e20d6e0f1f76fceedd68c124fd811c18482937756127ce86260100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000caee0fc44a5b53740fc2431cfddec0ec2c878137ecf7a26f35560651653e700e010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000ecce43c0be3c9134a0d62a0b6463edfdbfce1b2b1bf5bac37fbd1cca48e67e7f01000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000c6cfae23e776800744036a6881d20a0476c1852cea187fbf9db79c936c51db0d0100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f01000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b181450100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e01000000000000006a2524121efd4ac63c3bd00c6de3b84e23ad19fc60f886737e660d8fc6496a57010000000000000040aacd312f15eb011e69b5dbd8fe8b59637e06259954e6e3d8f940e4dfbe20710100000000000000a8096ceeb8110f1d5baa5bd893dd54382739aeb7b54581fe1a99939c08c09049010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b60701000000000000005e6d779219b00ae1d5e6320faff3b6eb963d3acf7705672ff56d2cb46ac44e5b0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f0100000000000000b07e958ae811c416d6f39529587b65efd34d4f14de60c00be261b5d9566c4256010000000000000032636c64cae326ea37dfa4ddad688feb9829ada7a7d580a91ce03a50a673d01c01000000000000008ed4f8bcfe10a2b165f622c5e21d84b57b1a8ed06cd2f2554dbdffacf58808470100000000000000246615914ed30f855044df3bd63491ca8af4af5614e2a19d5c9fcf8950d13d2a01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000a60674657835d889b7eb3ec20e76fb2b44d0df723a45456da49eebddeabe4d040100000000000000ce2a61b07092820e6e9e15f0ec9e00aa76b1aef024cfa99a76169ff80a952367010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000001e7b9381ff03ccb2f27fa0142dd09c4c0b6672a4cb3a099cbfee1842ef55410001000000000000006e2b112768cfaf7d202d5d321bcb702c292e450d162b844f8ee903e18c45415301000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000e487051ee8f32b1f8d0af5e897b49730512303471416e689ccfd0bc3f726f447010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda3001000000000000007ae9be3d7ab975804c1aa74caf9329c2b8b5eabd1a799337f5a102232efb04780100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000008f7733913a9205cb77186c9cbeb35994be18d4dd7a755fab8cd333c068c44e01000000000000008e2eaf4ac96e0c79da47d2b76956b3578b39ee4979826d5344254fc37d508c04010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000004463c0fc0dfe54d69269fcacdbfc1aa15d2f25ee4c35fd39bf249020ae697c6d0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000804b093ff2d1b39b5aacc853c80a1b652621a4935e8c8ee53c63605c1afaa9290100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000deaaa8be8e765299a815cbcf6b6b64ae30c3bc2b8da01dc97eff2c8018bf954501000000000000007203b3dc19c8ff42aa0c90d10328d49e6aae97e4d93d91f33e584fd16073f27f01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd94219375801000000000000000e1b958cae4235db85f6494d1d9af4d435450f10e39485735d7ebe0b6454933b010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000003873ac08836bf81aa2077f9e50a55b47e02697ad9fa6704c7044fca0c93b8243010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000070d533161a0a0298664c57c77871692d2f70c8319239cea6250765fa1bb81c310100000000000000a6afb91b338c8d924b5b2219536e815a3688eb3b145ab136dbf6eaa5708d992e01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000005dfc92b1bb401cfd26a2f3b34d784624e525806af0a0f0376af2db8ccf91720100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000c282c0fdd6d42469ad85bb9815f18c71dc04b3340d1c96f33328389a325b6a360100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000784b97e0ab7724051138f53108deef6fc47154e007d4d1fe36c9975c0abf87120100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000344589372873125fd660e2ff3ad9bf67230f9306acccaea070aed322a8ede2640100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e01000000000000002eab7eb696d4c3dcef6c5f74cd704eed76fb51790875d8ddbbda133ae7a42f7601000000000000001af87fef9cb675db46cc26d46ef3458e22a4b5b759ae8478aa489ba7ebec674c01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000042e7c894dd88fb2b0c7dc7a56b44269e0ee606c73d5a297cb459dbfc7649a170100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a010000000000000054a4e00f3df9f09e23118cce02f804d36c4968894a621305a0e8150a2910dc6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000076a94e6d409364d8f5fbffc118973a13821210583abfc8ad688565da8550c200010000000000000024001694a6c028f4ffd94ef747d7834e6d29c794363d527aced13a87b07700570100000000000000d632182c133a20838afa52678dd1b9b5055571c637f1ed1a1746490f3fa02a03010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e70901000000000000003271f7e7c7adb2462cb34fac3cb910495763e1c661222ddbbf3aa7cb70a3a40601000000000000002c69ecb0f2339ed156f4ec04dd37eca60a78c2ef9225e87c132e2ce1fc9a573001000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000002a8e4336c0fa5db2307feb0bcaae257f0265ade08adeaadfabb50b9838d9663201000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c0100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000a4cd8b073d6c005d5925ec6b8aa2b2e3f8c0aacdf82165f36f56345f6f33f6600100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de48575320100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b01000000000000007a48b0322f745ab3d669c757477111165ec3bd4f2d32ef4ecd1c5024214fbc320100000000000000e0c4304540bfaf4e2ebd05b751ec785969deb61cb8ef26a90c6d18eed5d7195a0100000000000000620708ccbc822d0be9a49eb46e73955d4cdd8735a5f2cfed44bb656a71501a7501000000000000009c3cf78a64efb54ea98242575dce25ecac86c57f19e6a26cef67792ed4fe5e490100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000425dab5a4c28aefafdfce605ac8c4eb7e83d1eafdf8964f4c7086b20f1e0ca080100000000000000c80a16a172ea19de337c120de8ba72df1b81efb23ff74e0ee7cbf36e666ede1f0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c44010000000000000056916604af8d4470b2ce0475043824cd9ba9b6f42215a408d1b8e2adf33d00580100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000480defe8739c9518d5507480bb9c68ec408a60b944824521f1184b74bc47f2170100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000004a0667c9d42cc0bf99d30300929bf4622f12cec7dfcacb077d092d71e739926001000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b159040100000000000000e074fee77ec1d84c2c2c02e258de68c7c4ae907f09224b362ae11d52a2a9bd51010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b2401000000000000007e5a932dfd5ef4d3cbb9bb59ded1cdb5da5fa6ee276cc2acf84ae0aefcabe12d010000000000000056da6e5ada211131376b8d0571118b69fe57fae1393d23572b484f39485790480100000000000000f2117450619d24661f6652dfc06c13f3859e654c4d14a4ed28ffd4325a75997101000000000000007012639e84e32c5cfd60362b4d8c7382fae32e6e3a70485742351efe2f2e876c0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000742f5991a21e102707bc1df8a9565fbfbbf705884fdabd13ec223783f96d3f620100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000903494164bf02f34dd446783b12875b6533328f4e17fd3a24bbd67b4c142cd430100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b0670100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f87d357ddc2312bd02754f012fe4114502502deacf3e8138bb197b6a2e8dc946010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000e4947905b57f3ad54e47523b00a529c3f7524cf13ae76fe3a8928ed5276bf05e010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a2520100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd412854320100000000000000ee5a96cb89aa5c8f6824d3806a83a6cefa9cf01842abde63b7bb04561553c45b0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c121010000000000000032dc47873d3d298c15ac984bf66ef0610883d7bbd2fac924d1b37db68da1090701000000000000006cc7929dd456080aa9d29c03db15e194d7a8ccb8f878f40f517f3aa4001f642c0100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000cac818b01090940ea08c65890e25b2ed3ba9f237fe2a2a3d17b394e74170760c010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b010000000000000064f5e76588ce018884d1f05c63e0998fa63014cf76b60166c36f2313b8a6394201000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd04010000000000000042c33844bdf4b42d1aee4d083ab1f6267984ee1326a7cc73e2cbd6472f0bee170100000000000000a4945508cf103aabe69457d9ea2b46425d9d26e57f89e6b1f799ec18219ad255010000000000000034a1786e781db0be2101a627026bb6b235284b63649cc567d9a2613ade13d16301000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000d05c87ef31a1a024e2242edc6bbbd1c392c579029b9f6b104157250597082e5101000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000385d6ae328e957b24389a12f9f952a20e224e5f9048b1bc6b9a8748edb2aa32f010000000000000078294f515c659b94bfce9674db37a3cf2f32d89ce1758ca53d1860037cf1d42a010000000000000032f6d7c068e7b684c061c290891681b3791c250d9983383bd40bc884fc9314060100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000babd6c9cb58a2635db60d13014684aee881af96c78af8c8b9b31073069167e4401000000000000004affcd1cee355fa9ef6e75b45f67e93237e5425eb0735dcadd0391328f44e917010000000000000050bd41404e3e9c1c73f1cd079966b4897795bc34118d46b261d58bf3cd4e197801000000000000005440e71292507c1b33554e8d95fd85ca3de6499e1b7c838236051dab5fa3f37c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000ae44ab56beb3cb760004d61723c94454bf803ddb649e4d2aee24b4983fd91d5101000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000001e7b8aa5fe2aaae1d5e3c8b1e38818114e83d9bdcc95629ed834aab37e2b897501000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000c885913686cbadbcae070742549b5695298d4f24d9efd101f9ffe2466a42995d0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000000eb1769332c7154bf3509f1892f992f58ab94e0705a1d2be18dffdedd10a3b210100000000000000a0c28669f01d5b4decdab2abfd9d14b989c1d4b32323f264b24a788de0b9d2430100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000c27c242ce1607355f3e06a2b28aa40ff1848856f3b45dde480dd1621c9b5165701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a060100000000000000847f948b67d6f455e2f2923f366dfe3c0a3925b451210a46cd36fafb8cd8290601000000000000000a2309a52190564577602c900c42b5de7605f5b9084525af757c8b3bec77267801000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000826e004adf3199d68639f616c05228939310b318ccec968892e5feba083a55780100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc340100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000010381a1fde26d95804978d4ccaa1d6e634efe2ac922f7dae4da3cf3a64568a4e01000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c7550100000000000000fe488c36177c8a249fac2df56e6fd24bd9e0821ab2330fa9deb0d7b6ec0c0f0401000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e01000000000000000c6cc2bc932adace83516fe99076d532e6197ae08d66610988288044c6bdbf3601000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe42010000000000000014db67200553d8a3f3543ab37a12e21b3a96c2b6583d66d59e399afc3236084101000000000000009664e4e01c42d9a22435a39dfb1daa6cf043abbd01c1b081c28ee271988b415b0100000000000000381a3708c945f1d295122322f3b3b7e161a4f2556d6f8d8ebfe052377ed37b700100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c460100000000000000042cc9a90ee7801f29bde1f77ebc42e68fc8432df113d23b82201d1a10e33d0a01000000000000001e63ed13cb9b8d544a73307d348a241d87d3d1063715d686572e705b37b7483e0100000000000000f8b6f6a5dc53fb46ac77e802b719f037236dabeab361d78baabcee785d9fbd070100000000000000bc633ce058ec703568a94b656988f1b4036cd9f74aabe8a7b47e733883368654010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000003acd553f0ec1402989966b408bf5ea9a4d5cea17bfd5f7d3237f0702627a3c2301000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b5001000000000000004cb3593968c0254cadc7f1a2270f9a89e0909e12a6eb5ceb7f723ab6ee9b7275010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000026cfb82d0ddabc480cadc34971a8650ff0658562a5ffbec0d04d045c6546ff1f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000006eb14b9e500f2de3a6b6f8c0e647166fa10d2c25f80973b1b5d3c040fe4b5d2001000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f07601000000000000000cf1165193d58e95c490a7f41cdde8105f9dd633147a7fe48fe9f6a6a905176d010000000000000012aae151c78cf0dfb818ae8c9ce549074d7d159235e1a775d44676cd1374d76a010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000a0899677a7d42219ed8116f3776d28c204e2a84fcbc23fa42632d2622422701c01000000000000000e21a03fbe9885a475c4875f3f912c8703945e99cd2a85f75258fda7b6022b7c01000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000d6766583a3ec8c71c784c183e85d06d6655c49c539c25e27d7590b88b01d71040100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000060f61684be94ec0178eb24d9f32e0de63d05b4f7ae00fd0fecba90ac54d082a010000000000000026538b2b883a97c4e4ca0c01a9e136d42832e07156bf9df23bee062df009230501000000000000004238af3c99ee0067953ce92d9b79d89205918431cbb0fdab22183e1dd7ab95560100000000000000b0d9dc44559810ad536b1c9792b5624cb087972bf5fe3ee484f9214497d6f8380100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a85401000000000000009e633dc6f4569a87ef6a315d9391543f7efacaf666a7d186eb715b1e0c65ad1001000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e0100000000000000b6688ce42ea01b1822699182c562585a27081ce6bb0438761436f4045a42f24a01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000007e4e053087c2a301c9174aa1665a1996af0aca87f3a3a44fddda2509eef9e60c010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000a07fe18d0151b0bbb2a2f9604122716fa2ae881babe7e6d84a22cfabdcd1267a0100000000000000a6d081ebe46bc75c286a6021ba7dae80f71868ca4377dceed8633264dec1757601000000000000005a9973a287fcc694b86f67d1546a0a9398f6c4d06de13fc022ee52197cc022400100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009875dea5d493af94567673bfcaf096919a921cbb806f55b7488bb0a554fed66c01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000643589f0627aa555aefb01d2f0a366eacc252af9437ec2a892935da2a1052c170100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b01000000000000001810712fbe92f2394892a99e3a825490baf1efaf7a3dd1c9bd0e58da0d671133010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000006aa6ad6068f2de9c70806108a4040f9d319336a2d9d2ae7f719d05ee777379490100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd270100000000000000cce3551554bda5691462265ad7205e116abb061fe4930c2174b573360b4e9442010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c8716010000000000000086088c15ab94ed86455e4473c198b99730e99585b88d6fa465ce429d268ea27d01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000809dc13a93316ffb2f1cfecfbce374272a81639b11fdb1836f04d3bac622f24c0100000000000000946218824426fca91a00f856a5a92173c04649a2500adeece86fa30d4c08b47301000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c01000000000000000e809b8014f6a5c69760fca981734e0c8c41ff6d5a7d53d261790a843cfe560c010000000000000092439f4dab2f4b2e8d1bd040505ee33fb2c1dd56f3946826cc27288422313b3a0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd98431769260100000000000000e89fd72f9d49f2e6ca8aea7087e546dd153bdcfe46d5a64e389cc24101ffb91101000000000000000a249c7da6eb514d0c65731f4f4e04f662070e9e184c9be3ba11c29adf87d538010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000072bb32222caca7113141263e12a4193da7f29806dc93cdd11fa9653464344e320100000000000000cc1a3319843dc5343de5c9ff7d66f362c645b1de013148fe3b757d51997a0d3f010000000000000000140d4493060751979098f686733955e6e71d01bbaa8a3e6cb297400c5c624f0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e0100000000000000020ded3e18e0159566d7bb10809d33f0d3d97941074957a1422e26ba98632a3d010000000000000044be9c0d73b3bcb4b612e5945077e2d3f48778a95b664180ebc63a389234354d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ac9d564e02038dc64b8edc8125dd29281c3e77efe48bdea6f0eb5b2ffc7ff76e0100000000000000d461866e25c98bf187b844b145628d87392441deadff7ee739639cb457edca540100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000604bee8ca450ed86d7797d3b0c44cfb388ee0b1599c6d9b904ab1c477f9397780100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c996000100000000000000841c2f0987fc8801b7ce2ff50450d60cf19ae3f39295d3026a6d45ada6fafd6601000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd8160100000000000000deafec3833f9925dbc5d185762c864d1294215c8eeb3f63da6f4cd5fa78eee3b01000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d610100000000000000a61667ea6442054b56111477f57ecf39b6e90480bfadf54c3e6cb5ac3a3e275801000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d38764301000000000000006029513013f081e5d5d74173847405747513aa814038c25500522e6fe2aaf37901000000000000008efe7111a4144eb85aa7a95bdc5d0a04761805a21aac42a696473cf9b559dc3f0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000005a3788f9347ad802a56974dfb4ed19b22fa91c20e5c8dcffaf4208f25471432601000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000002ee95f4c696a2ed4020e1efccab52a937a700f41e5c62c977fbdb3621f42ac3a0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e0100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec298170100000000000000082a961d1e8f1e62d7830fa4f5cbceabce8fb3a0276f2ecffa5e1e55f047396e01000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d3110100000000000000e0d61db94d9d80ab04157bc7a76de3b1add4e0a63687281deea4b9268af3934a010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a2730100000000000000b85b1b7b8ed510a5bc1d0979fdc04ec7b73d84c7d1d767dafb6faccc8dfd402c01000000000000007e8ebb46c80883225df2fc91fe7ede9933dcf073f3d74ea3db0525585984e74c0100000000000000068245d8a483bdbd4e9d88b49e17a651ec168f25e6851fc52c2e36a516031d5e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f01000000000000006e1e949131ef1ee4c528be720359645fc608856b84224f8e5e4adfed94dc983101000000000000007617f9c34780fe008d18ccd349047f855345db0cb9360a57a63179534afd714f0100000000000000bc3cdcf9f41b5f3f073a7f6a29931a6be12fbcdfc1dfe7145c4e0a527e9e243c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000ca6b6c3de9e352e9a87f6aa76c436f567ea4053035de3f2c60f9df005ccd14790100000000000000d6850249c78745c7678cd3b5238128908377e7ffc9eba2e41ca416c41e0270480100000000000000f2861581593678b86f3186aa9a1ba7c49b5a58aadbf079053446bcc899a969640100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000007cffa67942272b1974dd65c87828e1535799e008d9e81b2818f5e308ed4f390100000000000000cc840ae0117378161b86a52baa6decb97ccfc1101325256f178ba8f67761671d010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d010000000000000096b9efe3e08609cd61aa98f3202618d928074308d9f189d97f7c1e52d2afca1101000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000070082ee6c641c70be7c75b6adca7f01d5ce1253388dd21813ca07d0f384ff27d01000000000000000400000000000000020f5668366ac35d91ce18158540786162219c8be9653337a3aaea6f4ae1f9b7829755610101dd2500000000000073d62f11000000006009000000000000d10732904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000ea24dfbcaffa4d280e19babda83a8f879453f9c5f71901bec59de014878a6e050100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046371ae57e3d4c98d3bfe936029d184fcba10db1d2e6dfb5e722e6c3b08d9b0f0100000000000000cad93fbaf78ceb031a3677b27a9e579688602099c97258c746b080422c34bc4d010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000f8c623ecfb4af1c19ded044923b34660c436466a9a5bc33db15f0a73200e10160100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000906ec0a56171d27f65c29683a31c71a87a4e32b273596a0a704ff07ba344d0660100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000beb7d66b53d3c34bb4a6b49df52a8e77b1929d1f43a6a3191c1cce6b8b9df72e01000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b010000000000000058cc4e48b26665ec1d6c2a128f0f5b70434ab4a771743429058b963257e6563d01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b3796349100100000000000000aac3d3db30527a4489be679bae33f16e0ece5a6078dd0309109572213e08a81901000000000000008679d78aa6d1f7ceeb9066f45fe66d0096dd1b41f7463e379e0735a11a99f01101000000000000001c0856b04c28ed8bdee95096f95646efc095737d4482b475053245db424e022901000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000036ebe7faf129b9ecd3a8bf421eae5584d30c5ac5393d540dc04b414db2dc8a4c01000000000000004a2f2312a5f7eb7709f4c55f54c6a2aff8ddda937bc153e57aa7b8f4b32e72610100000000000000e2b359b93abf559cd326ef07a6a46784b945518e1f1a4c04ebe42390f2574c590100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e01000000000000008084d934bf7a7ad960de3b325ad5109d10eef00e90d6ab776240b7bbeb6a6a7e0100000000000000c66476c56a07a8e1a9e57bec84efe2817bddb252ddae336d0e64ae2905397e0d010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4be6f891156ecfd5f9ff661f780884578ac18dcc999b7f574510196c5243c2201000000000000009e4aaa177dbcf990475d3d6ea36e9d0e9d7a2e5328eccc2391e3a9adbdf5295f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000007422fc1db85ec78f23e3ac6e22bc1582d4fb955acd7a4ad35f6f81ce8471b2590100000000000000c08c91ecf8879f5042960c3d61c0e74f125463ca2726e6655fb922af5cdcb85101000000000000003a7e03cc1411df20c3f0e1463d604fb34280b9cd701b9c68d77dbfc534b208180100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000ec8ee214c34aca7625567c4529a63370cbdb456bea2b888ac9738ccd17682e2201000000000000007883a3f09e524202160a0a818ebaecb8be2749abf2f0bc9f1e670c4f52ea6c4a0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000d699341d0606cf3ae54ef081718cedb138a029d7e107ea8324ec5cfc2f3a1c3901000000000000002c3a1d094c488ad9d608625ec41a4d7b85594503f287ecdb30332f4291bfaf7c01000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d64010000000000000030ff7c7cdf5dd960f6eb4a7d79a638542aea5a7b0ec75d63f47906f9e999537201000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000a04f38e06ff594681b8d9781bc00fa3e9be2f74080ca7d1c7a74908e1b6ec1280100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b9810010000000000000064d54109c3f4d89a9e36206a4c42e4ca0f74699c9e5f9df386fc154e6d51f43a010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000105cbcb7a4b41f84ba757be55d3291d005fe16971f519c9ca51acb5c8de4b64b010000000000000022be2f3730ae90e20d6e0f1f76fceedd68c124fd811c18482937756127ce86260100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000caee0fc44a5b53740fc2431cfddec0ec2c878137ecf7a26f35560651653e700e010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000ecce43c0be3c9134a0d62a0b6463edfdbfce1b2b1bf5bac37fbd1cca48e67e7f01000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000c6cfae23e776800744036a6881d20a0476c1852cea187fbf9db79c936c51db0d0100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f01000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b181450100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e01000000000000006a2524121efd4ac63c3bd00c6de3b84e23ad19fc60f886737e660d8fc6496a57010000000000000040aacd312f15eb011e69b5dbd8fe8b59637e06259954e6e3d8f940e4dfbe20710100000000000000a8096ceeb8110f1d5baa5bd893dd54382739aeb7b54581fe1a99939c08c09049010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b60701000000000000005e6d779219b00ae1d5e6320faff3b6eb963d3acf7705672ff56d2cb46ac44e5b0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f0100000000000000b07e958ae811c416d6f39529587b65efd34d4f14de60c00be261b5d9566c4256010000000000000032636c64cae326ea37dfa4ddad688feb9829ada7a7d580a91ce03a50a673d01c01000000000000008ed4f8bcfe10a2b165f622c5e21d84b57b1a8ed06cd2f2554dbdffacf58808470100000000000000246615914ed30f855044df3bd63491ca8af4af5614e2a19d5c9fcf8950d13d2a01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000a60674657835d889b7eb3ec20e76fb2b44d0df723a45456da49eebddeabe4d040100000000000000ce2a61b07092820e6e9e15f0ec9e00aa76b1aef024cfa99a76169ff80a952367010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000001e7b9381ff03ccb2f27fa0142dd09c4c0b6672a4cb3a099cbfee1842ef55410001000000000000006e2b112768cfaf7d202d5d321bcb702c292e450d162b844f8ee903e18c45415301000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000e487051ee8f32b1f8d0af5e897b49730512303471416e689ccfd0bc3f726f447010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda3001000000000000007ae9be3d7ab975804c1aa74caf9329c2b8b5eabd1a799337f5a102232efb04780100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000008f7733913a9205cb77186c9cbeb35994be18d4dd7a755fab8cd333c068c44e01000000000000008e2eaf4ac96e0c79da47d2b76956b3578b39ee4979826d5344254fc37d508c04010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000004463c0fc0dfe54d69269fcacdbfc1aa15d2f25ee4c35fd39bf249020ae697c6d0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000804b093ff2d1b39b5aacc853c80a1b652621a4935e8c8ee53c63605c1afaa9290100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000deaaa8be8e765299a815cbcf6b6b64ae30c3bc2b8da01dc97eff2c8018bf954501000000000000007203b3dc19c8ff42aa0c90d10328d49e6aae97e4d93d91f33e584fd16073f27f01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd94219375801000000000000000e1b958cae4235db85f6494d1d9af4d435450f10e39485735d7ebe0b6454933b010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000003873ac08836bf81aa2077f9e50a55b47e02697ad9fa6704c7044fca0c93b8243010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000070d533161a0a0298664c57c77871692d2f70c8319239cea6250765fa1bb81c310100000000000000a6afb91b338c8d924b5b2219536e815a3688eb3b145ab136dbf6eaa5708d992e01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000005dfc92b1bb401cfd26a2f3b34d784624e525806af0a0f0376af2db8ccf91720100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000c282c0fdd6d42469ad85bb9815f18c71dc04b3340d1c96f33328389a325b6a360100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000784b97e0ab7724051138f53108deef6fc47154e007d4d1fe36c9975c0abf87120100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000344589372873125fd660e2ff3ad9bf67230f9306acccaea070aed322a8ede2640100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e01000000000000002eab7eb696d4c3dcef6c5f74cd704eed76fb51790875d8ddbbda133ae7a42f7601000000000000001af87fef9cb675db46cc26d46ef3458e22a4b5b759ae8478aa489ba7ebec674c01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000042e7c894dd88fb2b0c7dc7a56b44269e0ee606c73d5a297cb459dbfc7649a170100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a010000000000000054a4e00f3df9f09e23118cce02f804d36c4968894a621305a0e8150a2910dc6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000076a94e6d409364d8f5fbffc118973a13821210583abfc8ad688565da8550c200010000000000000024001694a6c028f4ffd94ef747d7834e6d29c794363d527aced13a87b07700570100000000000000d632182c133a20838afa52678dd1b9b5055571c637f1ed1a1746490f3fa02a03010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e70901000000000000003271f7e7c7adb2462cb34fac3cb910495763e1c661222ddbbf3aa7cb70a3a40601000000000000002c69ecb0f2339ed156f4ec04dd37eca60a78c2ef9225e87c132e2ce1fc9a573001000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000002a8e4336c0fa5db2307feb0bcaae257f0265ade08adeaadfabb50b9838d9663201000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c0100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000a4cd8b073d6c005d5925ec6b8aa2b2e3f8c0aacdf82165f36f56345f6f33f6600100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de48575320100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b01000000000000007a48b0322f745ab3d669c757477111165ec3bd4f2d32ef4ecd1c5024214fbc320100000000000000e0c4304540bfaf4e2ebd05b751ec785969deb61cb8ef26a90c6d18eed5d7195a0100000000000000620708ccbc822d0be9a49eb46e73955d4cdd8735a5f2cfed44bb656a71501a7501000000000000009c3cf78a64efb54ea98242575dce25ecac86c57f19e6a26cef67792ed4fe5e490100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000425dab5a4c28aefafdfce605ac8c4eb7e83d1eafdf8964f4c7086b20f1e0ca080100000000000000c80a16a172ea19de337c120de8ba72df1b81efb23ff74e0ee7cbf36e666ede1f0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c44010000000000000056916604af8d4470b2ce0475043824cd9ba9b6f42215a408d1b8e2adf33d00580100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000480defe8739c9518d5507480bb9c68ec408a60b944824521f1184b74bc47f2170100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000004a0667c9d42cc0bf99d30300929bf4622f12cec7dfcacb077d092d71e739926001000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b159040100000000000000e074fee77ec1d84c2c2c02e258de68c7c4ae907f09224b362ae11d52a2a9bd51010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b2401000000000000007e5a932dfd5ef4d3cbb9bb59ded1cdb5da5fa6ee276cc2acf84ae0aefcabe12d010000000000000056da6e5ada211131376b8d0571118b69fe57fae1393d23572b484f39485790480100000000000000f2117450619d24661f6652dfc06c13f3859e654c4d14a4ed28ffd4325a75997101000000000000007012639e84e32c5cfd60362b4d8c7382fae32e6e3a70485742351efe2f2e876c0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000742f5991a21e102707bc1df8a9565fbfbbf705884fdabd13ec223783f96d3f620100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000903494164bf02f34dd446783b12875b6533328f4e17fd3a24bbd67b4c142cd430100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b0670100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f87d357ddc2312bd02754f012fe4114502502deacf3e8138bb197b6a2e8dc946010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000e4947905b57f3ad54e47523b00a529c3f7524cf13ae76fe3a8928ed5276bf05e010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a2520100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd412854320100000000000000ee5a96cb89aa5c8f6824d3806a83a6cefa9cf01842abde63b7bb04561553c45b0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c121010000000000000032dc47873d3d298c15ac984bf66ef0610883d7bbd2fac924d1b37db68da1090701000000000000006cc7929dd456080aa9d29c03db15e194d7a8ccb8f878f40f517f3aa4001f642c0100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000cac818b01090940ea08c65890e25b2ed3ba9f237fe2a2a3d17b394e74170760c010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b010000000000000064f5e76588ce018884d1f05c63e0998fa63014cf76b60166c36f2313b8a6394201000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd04010000000000000042c33844bdf4b42d1aee4d083ab1f6267984ee1326a7cc73e2cbd6472f0bee170100000000000000a4945508cf103aabe69457d9ea2b46425d9d26e57f89e6b1f799ec18219ad255010000000000000034a1786e781db0be2101a627026bb6b235284b63649cc567d9a2613ade13d16301000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000d05c87ef31a1a024e2242edc6bbbd1c392c579029b9f6b104157250597082e5101000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000385d6ae328e957b24389a12f9f952a20e224e5f9048b1bc6b9a8748edb2aa32f010000000000000078294f515c659b94bfce9674db37a3cf2f32d89ce1758ca53d1860037cf1d42a010000000000000032f6d7c068e7b684c061c290891681b3791c250d9983383bd40bc884fc9314060100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000babd6c9cb58a2635db60d13014684aee881af96c78af8c8b9b31073069167e4401000000000000004affcd1cee355fa9ef6e75b45f67e93237e5425eb0735dcadd0391328f44e917010000000000000050bd41404e3e9c1c73f1cd079966b4897795bc34118d46b261d58bf3cd4e197801000000000000005440e71292507c1b33554e8d95fd85ca3de6499e1b7c838236051dab5fa3f37c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000ae44ab56beb3cb760004d61723c94454bf803ddb649e4d2aee24b4983fd91d5101000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000001e7b8aa5fe2aaae1d5e3c8b1e38818114e83d9bdcc95629ed834aab37e2b897501000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000c885913686cbadbcae070742549b5695298d4f24d9efd101f9ffe2466a42995d0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000000eb1769332c7154bf3509f1892f992f58ab94e0705a1d2be18dffdedd10a3b210100000000000000a0c28669f01d5b4decdab2abfd9d14b989c1d4b32323f264b24a788de0b9d2430100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000c27c242ce1607355f3e06a2b28aa40ff1848856f3b45dde480dd1621c9b5165701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a060100000000000000847f948b67d6f455e2f2923f366dfe3c0a3925b451210a46cd36fafb8cd8290601000000000000000a2309a52190564577602c900c42b5de7605f5b9084525af757c8b3bec77267801000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000826e004adf3199d68639f616c05228939310b318ccec968892e5feba083a55780100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc340100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000010381a1fde26d95804978d4ccaa1d6e634efe2ac922f7dae4da3cf3a64568a4e01000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c7550100000000000000fe488c36177c8a249fac2df56e6fd24bd9e0821ab2330fa9deb0d7b6ec0c0f0401000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e01000000000000000c6cc2bc932adace83516fe99076d532e6197ae08d66610988288044c6bdbf3601000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe42010000000000000014db67200553d8a3f3543ab37a12e21b3a96c2b6583d66d59e399afc3236084101000000000000009664e4e01c42d9a22435a39dfb1daa6cf043abbd01c1b081c28ee271988b415b0100000000000000381a3708c945f1d295122322f3b3b7e161a4f2556d6f8d8ebfe052377ed37b700100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c460100000000000000042cc9a90ee7801f29bde1f77ebc42e68fc8432df113d23b82201d1a10e33d0a01000000000000001e63ed13cb9b8d544a73307d348a241d87d3d1063715d686572e705b37b7483e0100000000000000f8b6f6a5dc53fb46ac77e802b719f037236dabeab361d78baabcee785d9fbd070100000000000000bc633ce058ec703568a94b656988f1b4036cd9f74aabe8a7b47e733883368654010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000003acd553f0ec1402989966b408bf5ea9a4d5cea17bfd5f7d3237f0702627a3c2301000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b5001000000000000004cb3593968c0254cadc7f1a2270f9a89e0909e12a6eb5ceb7f723ab6ee9b7275010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000026cfb82d0ddabc480cadc34971a8650ff0658562a5ffbec0d04d045c6546ff1f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000006eb14b9e500f2de3a6b6f8c0e647166fa10d2c25f80973b1b5d3c040fe4b5d2001000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f07601000000000000000cf1165193d58e95c490a7f41cdde8105f9dd633147a7fe48fe9f6a6a905176d010000000000000012aae151c78cf0dfb818ae8c9ce549074d7d159235e1a775d44676cd1374d76a010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000a0899677a7d42219ed8116f3776d28c204e2a84fcbc23fa42632d2622422701c01000000000000000e21a03fbe9885a475c4875f3f912c8703945e99cd2a85f75258fda7b6022b7c01000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000d6766583a3ec8c71c784c183e85d06d6655c49c539c25e27d7590b88b01d71040100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000060f61684be94ec0178eb24d9f32e0de63d05b4f7ae00fd0fecba90ac54d082a010000000000000026538b2b883a97c4e4ca0c01a9e136d42832e07156bf9df23bee062df009230501000000000000004238af3c99ee0067953ce92d9b79d89205918431cbb0fdab22183e1dd7ab95560100000000000000b0d9dc44559810ad536b1c9792b5624cb087972bf5fe3ee484f9214497d6f8380100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a85401000000000000009e633dc6f4569a87ef6a315d9391543f7efacaf666a7d186eb715b1e0c65ad1001000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e0100000000000000b6688ce42ea01b1822699182c562585a27081ce6bb0438761436f4045a42f24a01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000007e4e053087c2a301c9174aa1665a1996af0aca87f3a3a44fddda2509eef9e60c010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000a07fe18d0151b0bbb2a2f9604122716fa2ae881babe7e6d84a22cfabdcd1267a0100000000000000a6d081ebe46bc75c286a6021ba7dae80f71868ca4377dceed8633264dec1757601000000000000005a9973a287fcc694b86f67d1546a0a9398f6c4d06de13fc022ee52197cc022400100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009875dea5d493af94567673bfcaf096919a921cbb806f55b7488bb0a554fed66c01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000643589f0627aa555aefb01d2f0a366eacc252af9437ec2a892935da2a1052c170100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b01000000000000001810712fbe92f2394892a99e3a825490baf1efaf7a3dd1c9bd0e58da0d671133010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000006aa6ad6068f2de9c70806108a4040f9d319336a2d9d2ae7f719d05ee777379490100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd270100000000000000cce3551554bda5691462265ad7205e116abb061fe4930c2174b573360b4e9442010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c8716010000000000000086088c15ab94ed86455e4473c198b99730e99585b88d6fa465ce429d268ea27d01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000809dc13a93316ffb2f1cfecfbce374272a81639b11fdb1836f04d3bac622f24c0100000000000000946218824426fca91a00f856a5a92173c04649a2500adeece86fa30d4c08b47301000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c01000000000000000e809b8014f6a5c69760fca981734e0c8c41ff6d5a7d53d261790a843cfe560c010000000000000092439f4dab2f4b2e8d1bd040505ee33fb2c1dd56f3946826cc27288422313b3a0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd98431769260100000000000000e89fd72f9d49f2e6ca8aea7087e546dd153bdcfe46d5a64e389cc24101ffb91101000000000000000a249c7da6eb514d0c65731f4f4e04f662070e9e184c9be3ba11c29adf87d538010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000072bb32222caca7113141263e12a4193da7f29806dc93cdd11fa9653464344e320100000000000000cc1a3319843dc5343de5c9ff7d66f362c645b1de013148fe3b757d51997a0d3f010000000000000000140d4493060751979098f686733955e6e71d01bbaa8a3e6cb297400c5c624f0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e0100000000000000020ded3e18e0159566d7bb10809d33f0d3d97941074957a1422e26ba98632a3d010000000000000044be9c0d73b3bcb4b612e5945077e2d3f48778a95b664180ebc63a389234354d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ac9d564e02038dc64b8edc8125dd29281c3e77efe48bdea6f0eb5b2ffc7ff76e0100000000000000d461866e25c98bf187b844b145628d87392441deadff7ee739639cb457edca540100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000604bee8ca450ed86d7797d3b0c44cfb388ee0b1599c6d9b904ab1c477f9397780100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c996000100000000000000841c2f0987fc8801b7ce2ff50450d60cf19ae3f39295d3026a6d45ada6fafd6601000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd8160100000000000000deafec3833f9925dbc5d185762c864d1294215c8eeb3f63da6f4cd5fa78eee3b01000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d610100000000000000a61667ea6442054b56111477f57ecf39b6e90480bfadf54c3e6cb5ac3a3e275801000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d38764301000000000000006029513013f081e5d5d74173847405747513aa814038c25500522e6fe2aaf37901000000000000008efe7111a4144eb85aa7a95bdc5d0a04761805a21aac42a696473cf9b559dc3f0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000005a3788f9347ad802a56974dfb4ed19b22fa91c20e5c8dcffaf4208f25471432601000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000002ee95f4c696a2ed4020e1efccab52a937a700f41e5c62c977fbdb3621f42ac3a0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e0100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec298170100000000000000082a961d1e8f1e62d7830fa4f5cbceabce8fb3a0276f2ecffa5e1e55f047396e01000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d3110100000000000000e0d61db94d9d80ab04157bc7a76de3b1add4e0a63687281deea4b9268af3934a010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a2730100000000000000b85b1b7b8ed510a5bc1d0979fdc04ec7b73d84c7d1d767dafb6faccc8dfd402c01000000000000007e8ebb46c80883225df2fc91fe7ede9933dcf073f3d74ea3db0525585984e74c0100000000000000068245d8a483bdbd4e9d88b49e17a651ec168f25e6851fc52c2e36a516031d5e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f01000000000000006e1e949131ef1ee4c528be720359645fc608856b84224f8e5e4adfed94dc983101000000000000007617f9c34780fe008d18ccd349047f855345db0cb9360a57a63179534afd714f0100000000000000bc3cdcf9f41b5f3f073a7f6a29931a6be12fbcdfc1dfe7145c4e0a527e9e243c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000ca6b6c3de9e352e9a87f6aa76c436f567ea4053035de3f2c60f9df005ccd14790100000000000000d6850249c78745c7678cd3b5238128908377e7ffc9eba2e41ca416c41e0270480100000000000000f2861581593678b86f3186aa9a1ba7c49b5a58aadbf079053446bcc899a969640100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000007cffa67942272b1974dd65c87828e1535799e008d9e81b2818f5e308ed4f390100000000000000cc840ae0117378161b86a52baa6decb97ccfc1101325256f178ba8f67761671d010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d010000000000000096b9efe3e08609cd61aa98f3202618d928074308d9f189d97f7c1e52d2afca1101000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000070082ee6c641c70be7c75b6adca7f01d5ce1253388dd21813ca07d0f384ff27d0100000000000000040000000000000002730613df3cacf0a8d17863aeb24424caa241f3f5d03bc5b34f179af0f12d41d9494c610101dc2500000000000013cd2f11000000006009000000000000d10732904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000c075c0769ebd82c046c67e77dede63f1178190b75336f6d9ee6533f1056f93020100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046371ae57e3d4c98d3bfe936029d184fcba10db1d2e6dfb5e722e6c3b08d9b0f0100000000000000cad93fbaf78ceb031a3677b27a9e579688602099c97258c746b080422c34bc4d010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000f8c623ecfb4af1c19ded044923b34660c436466a9a5bc33db15f0a73200e10160100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000906ec0a56171d27f65c29683a31c71a87a4e32b273596a0a704ff07ba344d0660100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000beb7d66b53d3c34bb4a6b49df52a8e77b1929d1f43a6a3191c1cce6b8b9df72e01000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b010000000000000058cc4e48b26665ec1d6c2a128f0f5b70434ab4a771743429058b963257e6563d01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b3796349100100000000000000aac3d3db30527a4489be679bae33f16e0ece5a6078dd0309109572213e08a81901000000000000008679d78aa6d1f7ceeb9066f45fe66d0096dd1b41f7463e379e0735a11a99f01101000000000000001c0856b04c28ed8bdee95096f95646efc095737d4482b475053245db424e022901000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000036ebe7faf129b9ecd3a8bf421eae5584d30c5ac5393d540dc04b414db2dc8a4c01000000000000004a2f2312a5f7eb7709f4c55f54c6a2aff8ddda937bc153e57aa7b8f4b32e72610100000000000000e2b359b93abf559cd326ef07a6a46784b945518e1f1a4c04ebe42390f2574c590100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e01000000000000008084d934bf7a7ad960de3b325ad5109d10eef00e90d6ab776240b7bbeb6a6a7e0100000000000000c66476c56a07a8e1a9e57bec84efe2817bddb252ddae336d0e64ae2905397e0d010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4be6f891156ecfd5f9ff661f780884578ac18dcc999b7f574510196c5243c2201000000000000009e4aaa177dbcf990475d3d6ea36e9d0e9d7a2e5328eccc2391e3a9adbdf5295f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000007422fc1db85ec78f23e3ac6e22bc1582d4fb955acd7a4ad35f6f81ce8471b2590100000000000000c08c91ecf8879f5042960c3d61c0e74f125463ca2726e6655fb922af5cdcb85101000000000000003a7e03cc1411df20c3f0e1463d604fb34280b9cd701b9c68d77dbfc534b208180100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000ec8ee214c34aca7625567c4529a63370cbdb456bea2b888ac9738ccd17682e2201000000000000007883a3f09e524202160a0a818ebaecb8be2749abf2f0bc9f1e670c4f52ea6c4a0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000d699341d0606cf3ae54ef081718cedb138a029d7e107ea8324ec5cfc2f3a1c3901000000000000002c3a1d094c488ad9d608625ec41a4d7b85594503f287ecdb30332f4291bfaf7c01000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d64010000000000000030ff7c7cdf5dd960f6eb4a7d79a638542aea5a7b0ec75d63f47906f9e999537201000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000a04f38e06ff594681b8d9781bc00fa3e9be2f74080ca7d1c7a74908e1b6ec1280100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b9810010000000000000064d54109c3f4d89a9e36206a4c42e4ca0f74699c9e5f9df386fc154e6d51f43a010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000105cbcb7a4b41f84ba757be55d3291d005fe16971f519c9ca51acb5c8de4b64b010000000000000022be2f3730ae90e20d6e0f1f76fceedd68c124fd811c18482937756127ce86260100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000caee0fc44a5b53740fc2431cfddec0ec2c878137ecf7a26f35560651653e700e010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000ecce43c0be3c9134a0d62a0b6463edfdbfce1b2b1bf5bac37fbd1cca48e67e7f01000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000c6cfae23e776800744036a6881d20a0476c1852cea187fbf9db79c936c51db0d0100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f01000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b181450100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e01000000000000006a2524121efd4ac63c3bd00c6de3b84e23ad19fc60f886737e660d8fc6496a57010000000000000040aacd312f15eb011e69b5dbd8fe8b59637e06259954e6e3d8f940e4dfbe20710100000000000000a8096ceeb8110f1d5baa5bd893dd54382739aeb7b54581fe1a99939c08c09049010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b60701000000000000005e6d779219b00ae1d5e6320faff3b6eb963d3acf7705672ff56d2cb46ac44e5b0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f0100000000000000b07e958ae811c416d6f39529587b65efd34d4f14de60c00be261b5d9566c4256010000000000000032636c64cae326ea37dfa4ddad688feb9829ada7a7d580a91ce03a50a673d01c01000000000000008ed4f8bcfe10a2b165f622c5e21d84b57b1a8ed06cd2f2554dbdffacf58808470100000000000000246615914ed30f855044df3bd63491ca8af4af5614e2a19d5c9fcf8950d13d2a01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000a60674657835d889b7eb3ec20e76fb2b44d0df723a45456da49eebddeabe4d040100000000000000ce2a61b07092820e6e9e15f0ec9e00aa76b1aef024cfa99a76169ff80a952367010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000001e7b9381ff03ccb2f27fa0142dd09c4c0b6672a4cb3a099cbfee1842ef55410001000000000000006e2b112768cfaf7d202d5d321bcb702c292e450d162b844f8ee903e18c45415301000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000e487051ee8f32b1f8d0af5e897b49730512303471416e689ccfd0bc3f726f447010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda3001000000000000007ae9be3d7ab975804c1aa74caf9329c2b8b5eabd1a799337f5a102232efb04780100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000008f7733913a9205cb77186c9cbeb35994be18d4dd7a755fab8cd333c068c44e01000000000000008e2eaf4ac96e0c79da47d2b76956b3578b39ee4979826d5344254fc37d508c04010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000004463c0fc0dfe54d69269fcacdbfc1aa15d2f25ee4c35fd39bf249020ae697c6d0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000804b093ff2d1b39b5aacc853c80a1b652621a4935e8c8ee53c63605c1afaa9290100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000deaaa8be8e765299a815cbcf6b6b64ae30c3bc2b8da01dc97eff2c8018bf954501000000000000007203b3dc19c8ff42aa0c90d10328d49e6aae97e4d93d91f33e584fd16073f27f01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd94219375801000000000000000e1b958cae4235db85f6494d1d9af4d435450f10e39485735d7ebe0b6454933b010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000003873ac08836bf81aa2077f9e50a55b47e02697ad9fa6704c7044fca0c93b8243010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000070d533161a0a0298664c57c77871692d2f70c8319239cea6250765fa1bb81c310100000000000000a6afb91b338c8d924b5b2219536e815a3688eb3b145ab136dbf6eaa5708d992e01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000005dfc92b1bb401cfd26a2f3b34d784624e525806af0a0f0376af2db8ccf91720100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000c282c0fdd6d42469ad85bb9815f18c71dc04b3340d1c96f33328389a325b6a360100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000784b97e0ab7724051138f53108deef6fc47154e007d4d1fe36c9975c0abf87120100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000344589372873125fd660e2ff3ad9bf67230f9306acccaea070aed322a8ede2640100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e01000000000000002eab7eb696d4c3dcef6c5f74cd704eed76fb51790875d8ddbbda133ae7a42f7601000000000000001af87fef9cb675db46cc26d46ef3458e22a4b5b759ae8478aa489ba7ebec674c01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000042e7c894dd88fb2b0c7dc7a56b44269e0ee606c73d5a297cb459dbfc7649a170100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a010000000000000054a4e00f3df9f09e23118cce02f804d36c4968894a621305a0e8150a2910dc6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000076a94e6d409364d8f5fbffc118973a13821210583abfc8ad688565da8550c200010000000000000024001694a6c028f4ffd94ef747d7834e6d29c794363d527aced13a87b07700570100000000000000d632182c133a20838afa52678dd1b9b5055571c637f1ed1a1746490f3fa02a03010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e70901000000000000003271f7e7c7adb2462cb34fac3cb910495763e1c661222ddbbf3aa7cb70a3a40601000000000000002c69ecb0f2339ed156f4ec04dd37eca60a78c2ef9225e87c132e2ce1fc9a573001000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000002a8e4336c0fa5db2307feb0bcaae257f0265ade08adeaadfabb50b9838d9663201000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c0100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000a4cd8b073d6c005d5925ec6b8aa2b2e3f8c0aacdf82165f36f56345f6f33f6600100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de48575320100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b01000000000000007a48b0322f745ab3d669c757477111165ec3bd4f2d32ef4ecd1c5024214fbc320100000000000000e0c4304540bfaf4e2ebd05b751ec785969deb61cb8ef26a90c6d18eed5d7195a0100000000000000620708ccbc822d0be9a49eb46e73955d4cdd8735a5f2cfed44bb656a71501a7501000000000000009c3cf78a64efb54ea98242575dce25ecac86c57f19e6a26cef67792ed4fe5e490100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000425dab5a4c28aefafdfce605ac8c4eb7e83d1eafdf8964f4c7086b20f1e0ca080100000000000000c80a16a172ea19de337c120de8ba72df1b81efb23ff74e0ee7cbf36e666ede1f0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c44010000000000000056916604af8d4470b2ce0475043824cd9ba9b6f42215a408d1b8e2adf33d00580100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000480defe8739c9518d5507480bb9c68ec408a60b944824521f1184b74bc47f2170100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000004a0667c9d42cc0bf99d30300929bf4622f12cec7dfcacb077d092d71e739926001000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b159040100000000000000e074fee77ec1d84c2c2c02e258de68c7c4ae907f09224b362ae11d52a2a9bd51010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b2401000000000000007e5a932dfd5ef4d3cbb9bb59ded1cdb5da5fa6ee276cc2acf84ae0aefcabe12d010000000000000056da6e5ada211131376b8d0571118b69fe57fae1393d23572b484f39485790480100000000000000f2117450619d24661f6652dfc06c13f3859e654c4d14a4ed28ffd4325a75997101000000000000007012639e84e32c5cfd60362b4d8c7382fae32e6e3a70485742351efe2f2e876c0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000742f5991a21e102707bc1df8a9565fbfbbf705884fdabd13ec223783f96d3f620100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000903494164bf02f34dd446783b12875b6533328f4e17fd3a24bbd67b4c142cd430100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b0670100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f87d357ddc2312bd02754f012fe4114502502deacf3e8138bb197b6a2e8dc946010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000e4947905b57f3ad54e47523b00a529c3f7524cf13ae76fe3a8928ed5276bf05e010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a2520100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd412854320100000000000000ee5a96cb89aa5c8f6824d3806a83a6cefa9cf01842abde63b7bb04561553c45b0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c121010000000000000032dc47873d3d298c15ac984bf66ef0610883d7bbd2fac924d1b37db68da1090701000000000000006cc7929dd456080aa9d29c03db15e194d7a8ccb8f878f40f517f3aa4001f642c0100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000cac818b01090940ea08c65890e25b2ed3ba9f237fe2a2a3d17b394e74170760c010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b010000000000000064f5e76588ce018884d1f05c63e0998fa63014cf76b60166c36f2313b8a6394201000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd04010000000000000042c33844bdf4b42d1aee4d083ab1f6267984ee1326a7cc73e2cbd6472f0bee170100000000000000a4945508cf103aabe69457d9ea2b46425d9d26e57f89e6b1f799ec18219ad255010000000000000034a1786e781db0be2101a627026bb6b235284b63649cc567d9a2613ade13d16301000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000d05c87ef31a1a024e2242edc6bbbd1c392c579029b9f6b104157250597082e5101000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000385d6ae328e957b24389a12f9f952a20e224e5f9048b1bc6b9a8748edb2aa32f010000000000000078294f515c659b94bfce9674db37a3cf2f32d89ce1758ca53d1860037cf1d42a010000000000000032f6d7c068e7b684c061c290891681b3791c250d9983383bd40bc884fc9314060100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000babd6c9cb58a2635db60d13014684aee881af96c78af8c8b9b31073069167e4401000000000000004affcd1cee355fa9ef6e75b45f67e93237e5425eb0735dcadd0391328f44e917010000000000000050bd41404e3e9c1c73f1cd079966b4897795bc34118d46b261d58bf3cd4e197801000000000000005440e71292507c1b33554e8d95fd85ca3de6499e1b7c838236051dab5fa3f37c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000ae44ab56beb3cb760004d61723c94454bf803ddb649e4d2aee24b4983fd91d5101000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000001e7b8aa5fe2aaae1d5e3c8b1e38818114e83d9bdcc95629ed834aab37e2b897501000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000c885913686cbadbcae070742549b5695298d4f24d9efd101f9ffe2466a42995d0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000000eb1769332c7154bf3509f1892f992f58ab94e0705a1d2be18dffdedd10a3b210100000000000000a0c28669f01d5b4decdab2abfd9d14b989c1d4b32323f264b24a788de0b9d2430100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000c27c242ce1607355f3e06a2b28aa40ff1848856f3b45dde480dd1621c9b5165701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a060100000000000000847f948b67d6f455e2f2923f366dfe3c0a3925b451210a46cd36fafb8cd8290601000000000000000a2309a52190564577602c900c42b5de7605f5b9084525af757c8b3bec77267801000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000826e004adf3199d68639f616c05228939310b318ccec968892e5feba083a55780100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc340100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000010381a1fde26d95804978d4ccaa1d6e634efe2ac922f7dae4da3cf3a64568a4e01000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c7550100000000000000fe488c36177c8a249fac2df56e6fd24bd9e0821ab2330fa9deb0d7b6ec0c0f0401000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e01000000000000000c6cc2bc932adace83516fe99076d532e6197ae08d66610988288044c6bdbf3601000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe42010000000000000014db67200553d8a3f3543ab37a12e21b3a96c2b6583d66d59e399afc3236084101000000000000009664e4e01c42d9a22435a39dfb1daa6cf043abbd01c1b081c28ee271988b415b0100000000000000381a3708c945f1d295122322f3b3b7e161a4f2556d6f8d8ebfe052377ed37b700100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c460100000000000000042cc9a90ee7801f29bde1f77ebc42e68fc8432df113d23b82201d1a10e33d0a01000000000000001e63ed13cb9b8d544a73307d348a241d87d3d1063715d686572e705b37b7483e0100000000000000f8b6f6a5dc53fb46ac77e802b719f037236dabeab361d78baabcee785d9fbd070100000000000000bc633ce058ec703568a94b656988f1b4036cd9f74aabe8a7b47e733883368654010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000003acd553f0ec1402989966b408bf5ea9a4d5cea17bfd5f7d3237f0702627a3c2301000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b5001000000000000004cb3593968c0254cadc7f1a2270f9a89e0909e12a6eb5ceb7f723ab6ee9b7275010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000026cfb82d0ddabc480cadc34971a8650ff0658562a5ffbec0d04d045c6546ff1f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000006eb14b9e500f2de3a6b6f8c0e647166fa10d2c25f80973b1b5d3c040fe4b5d2001000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f07601000000000000000cf1165193d58e95c490a7f41cdde8105f9dd633147a7fe48fe9f6a6a905176d010000000000000012aae151c78cf0dfb818ae8c9ce549074d7d159235e1a775d44676cd1374d76a010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000a0899677a7d42219ed8116f3776d28c204e2a84fcbc23fa42632d2622422701c01000000000000000e21a03fbe9885a475c4875f3f912c8703945e99cd2a85f75258fda7b6022b7c01000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000d6766583a3ec8c71c784c183e85d06d6655c49c539c25e27d7590b88b01d71040100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000060f61684be94ec0178eb24d9f32e0de63d05b4f7ae00fd0fecba90ac54d082a010000000000000026538b2b883a97c4e4ca0c01a9e136d42832e07156bf9df23bee062df009230501000000000000004238af3c99ee0067953ce92d9b79d89205918431cbb0fdab22183e1dd7ab95560100000000000000b0d9dc44559810ad536b1c9792b5624cb087972bf5fe3ee484f9214497d6f8380100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a85401000000000000009e633dc6f4569a87ef6a315d9391543f7efacaf666a7d186eb715b1e0c65ad1001000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e0100000000000000b6688ce42ea01b1822699182c562585a27081ce6bb0438761436f4045a42f24a01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000007e4e053087c2a301c9174aa1665a1996af0aca87f3a3a44fddda2509eef9e60c010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000a07fe18d0151b0bbb2a2f9604122716fa2ae881babe7e6d84a22cfabdcd1267a0100000000000000a6d081ebe46bc75c286a6021ba7dae80f71868ca4377dceed8633264dec1757601000000000000005a9973a287fcc694b86f67d1546a0a9398f6c4d06de13fc022ee52197cc022400100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009875dea5d493af94567673bfcaf096919a921cbb806f55b7488bb0a554fed66c01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000643589f0627aa555aefb01d2f0a366eacc252af9437ec2a892935da2a1052c170100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b01000000000000001810712fbe92f2394892a99e3a825490baf1efaf7a3dd1c9bd0e58da0d671133010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000006aa6ad6068f2de9c70806108a4040f9d319336a2d9d2ae7f719d05ee777379490100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd270100000000000000cce3551554bda5691462265ad7205e116abb061fe4930c2174b573360b4e9442010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c8716010000000000000086088c15ab94ed86455e4473c198b99730e99585b88d6fa465ce429d268ea27d01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000809dc13a93316ffb2f1cfecfbce374272a81639b11fdb1836f04d3bac622f24c0100000000000000946218824426fca91a00f856a5a92173c04649a2500adeece86fa30d4c08b47301000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c01000000000000000e809b8014f6a5c69760fca981734e0c8c41ff6d5a7d53d261790a843cfe560c010000000000000092439f4dab2f4b2e8d1bd040505ee33fb2c1dd56f3946826cc27288422313b3a0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd98431769260100000000000000e89fd72f9d49f2e6ca8aea7087e546dd153bdcfe46d5a64e389cc24101ffb91101000000000000000a249c7da6eb514d0c65731f4f4e04f662070e9e184c9be3ba11c29adf87d538010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000072bb32222caca7113141263e12a4193da7f29806dc93cdd11fa9653464344e320100000000000000cc1a3319843dc5343de5c9ff7d66f362c645b1de013148fe3b757d51997a0d3f010000000000000000140d4493060751979098f686733955e6e71d01bbaa8a3e6cb297400c5c624f0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e0100000000000000020ded3e18e0159566d7bb10809d33f0d3d97941074957a1422e26ba98632a3d010000000000000044be9c0d73b3bcb4b612e5945077e2d3f48778a95b664180ebc63a389234354d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ac9d564e02038dc64b8edc8125dd29281c3e77efe48bdea6f0eb5b2ffc7ff76e0100000000000000d461866e25c98bf187b844b145628d87392441deadff7ee739639cb457edca540100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000604bee8ca450ed86d7797d3b0c44cfb388ee0b1599c6d9b904ab1c477f9397780100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c996000100000000000000841c2f0987fc8801b7ce2ff50450d60cf19ae3f39295d3026a6d45ada6fafd6601000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd8160100000000000000deafec3833f9925dbc5d185762c864d1294215c8eeb3f63da6f4cd5fa78eee3b01000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d610100000000000000a61667ea6442054b56111477f57ecf39b6e90480bfadf54c3e6cb5ac3a3e275801000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d38764301000000000000006029513013f081e5d5d74173847405747513aa814038c25500522e6fe2aaf37901000000000000008efe7111a4144eb85aa7a95bdc5d0a04761805a21aac42a696473cf9b559dc3f0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000005a3788f9347ad802a56974dfb4ed19b22fa91c20e5c8dcffaf4208f25471432601000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000002ee95f4c696a2ed4020e1efccab52a937a700f41e5c62c977fbdb3621f42ac3a0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e0100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec298170100000000000000082a961d1e8f1e62d7830fa4f5cbceabce8fb3a0276f2ecffa5e1e55f047396e01000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d3110100000000000000e0d61db94d9d80ab04157bc7a76de3b1add4e0a63687281deea4b9268af3934a010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a2730100000000000000b85b1b7b8ed510a5bc1d0979fdc04ec7b73d84c7d1d767dafb6faccc8dfd402c01000000000000007e8ebb46c80883225df2fc91fe7ede9933dcf073f3d74ea3db0525585984e74c0100000000000000068245d8a483bdbd4e9d88b49e17a651ec168f25e6851fc52c2e36a516031d5e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f01000000000000006e1e949131ef1ee4c528be720359645fc608856b84224f8e5e4adfed94dc983101000000000000007617f9c34780fe008d18ccd349047f855345db0cb9360a57a63179534afd714f0100000000000000bc3cdcf9f41b5f3f073a7f6a29931a6be12fbcdfc1dfe7145c4e0a527e9e243c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000ca6b6c3de9e352e9a87f6aa76c436f567ea4053035de3f2c60f9df005ccd14790100000000000000d6850249c78745c7678cd3b5238128908377e7ffc9eba2e41ca416c41e0270480100000000000000f2861581593678b86f3186aa9a1ba7c49b5a58aadbf079053446bcc899a969640100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000007cffa67942272b1974dd65c87828e1535799e008d9e81b2818f5e308ed4f390100000000000000cc840ae0117378161b86a52baa6decb97ccfc1101325256f178ba8f67761671d010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d010000000000000096b9efe3e08609cd61aa98f3202618d928074308d9f189d97f7c1e52d2afca1101000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000204387bee21f5fd3643a86220c515c20efa4aed234b17e80902ceefc21fd87d601000000000000000400000000000000027ed4bbf5acdaf1efa4164d59596a0706617d149fdef7b9f83ff1b2b9ea516e7afe42610101db25000000000000b3c32f11000000006009000000000000d10732904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000c075c0769ebd82c046c67e77dede63f1178190b75336f6d9ee6533f1056f93020100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046371ae57e3d4c98d3bfe936029d184fcba10db1d2e6dfb5e722e6c3b08d9b0f0100000000000000cad93fbaf78ceb031a3677b27a9e579688602099c97258c746b080422c34bc4d010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000f8c623ecfb4af1c19ded044923b34660c436466a9a5bc33db15f0a73200e10160100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000906ec0a56171d27f65c29683a31c71a87a4e32b273596a0a704ff07ba344d0660100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000beb7d66b53d3c34bb4a6b49df52a8e77b1929d1f43a6a3191c1cce6b8b9df72e01000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b010000000000000058cc4e48b26665ec1d6c2a128f0f5b70434ab4a771743429058b963257e6563d01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b3796349100100000000000000aac3d3db30527a4489be679bae33f16e0ece5a6078dd0309109572213e08a81901000000000000008679d78aa6d1f7ceeb9066f45fe66d0096dd1b41f7463e379e0735a11a99f01101000000000000001c0856b04c28ed8bdee95096f95646efc095737d4482b475053245db424e022901000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000036ebe7faf129b9ecd3a8bf421eae5584d30c5ac5393d540dc04b414db2dc8a4c01000000000000004a2f2312a5f7eb7709f4c55f54c6a2aff8ddda937bc153e57aa7b8f4b32e72610100000000000000e2b359b93abf559cd326ef07a6a46784b945518e1f1a4c04ebe42390f2574c590100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e01000000000000008084d934bf7a7ad960de3b325ad5109d10eef00e90d6ab776240b7bbeb6a6a7e0100000000000000c66476c56a07a8e1a9e57bec84efe2817bddb252ddae336d0e64ae2905397e0d010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4be6f891156ecfd5f9ff661f780884578ac18dcc999b7f574510196c5243c2201000000000000009e4aaa177dbcf990475d3d6ea36e9d0e9d7a2e5328eccc2391e3a9adbdf5295f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000007422fc1db85ec78f23e3ac6e22bc1582d4fb955acd7a4ad35f6f81ce8471b2590100000000000000c08c91ecf8879f5042960c3d61c0e74f125463ca2726e6655fb922af5cdcb85101000000000000003a7e03cc1411df20c3f0e1463d604fb34280b9cd701b9c68d77dbfc534b208180100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000ec8ee214c34aca7625567c4529a63370cbdb456bea2b888ac9738ccd17682e2201000000000000007883a3f09e524202160a0a818ebaecb8be2749abf2f0bc9f1e670c4f52ea6c4a0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000d699341d0606cf3ae54ef081718cedb138a029d7e107ea8324ec5cfc2f3a1c3901000000000000002c3a1d094c488ad9d608625ec41a4d7b85594503f287ecdb30332f4291bfaf7c01000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d64010000000000000030ff7c7cdf5dd960f6eb4a7d79a638542aea5a7b0ec75d63f47906f9e999537201000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000a04f38e06ff594681b8d9781bc00fa3e9be2f74080ca7d1c7a74908e1b6ec1280100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b9810010000000000000064d54109c3f4d89a9e36206a4c42e4ca0f74699c9e5f9df386fc154e6d51f43a010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000105cbcb7a4b41f84ba757be55d3291d005fe16971f519c9ca51acb5c8de4b64b010000000000000022be2f3730ae90e20d6e0f1f76fceedd68c124fd811c18482937756127ce86260100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000caee0fc44a5b53740fc2431cfddec0ec2c878137ecf7a26f35560651653e700e010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000ecce43c0be3c9134a0d62a0b6463edfdbfce1b2b1bf5bac37fbd1cca48e67e7f01000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000c6cfae23e776800744036a6881d20a0476c1852cea187fbf9db79c936c51db0d0100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f01000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b181450100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e01000000000000006a2524121efd4ac63c3bd00c6de3b84e23ad19fc60f886737e660d8fc6496a57010000000000000040aacd312f15eb011e69b5dbd8fe8b59637e06259954e6e3d8f940e4dfbe20710100000000000000a8096ceeb8110f1d5baa5bd893dd54382739aeb7b54581fe1a99939c08c09049010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b60701000000000000005e6d779219b00ae1d5e6320faff3b6eb963d3acf7705672ff56d2cb46ac44e5b0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f0100000000000000b07e958ae811c416d6f39529587b65efd34d4f14de60c00be261b5d9566c4256010000000000000032636c64cae326ea37dfa4ddad688feb9829ada7a7d580a91ce03a50a673d01c01000000000000008ed4f8bcfe10a2b165f622c5e21d84b57b1a8ed06cd2f2554dbdffacf58808470100000000000000246615914ed30f855044df3bd63491ca8af4af5614e2a19d5c9fcf8950d13d2a01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000a60674657835d889b7eb3ec20e76fb2b44d0df723a45456da49eebddeabe4d040100000000000000ce2a61b07092820e6e9e15f0ec9e00aa76b1aef024cfa99a76169ff80a952367010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000001e7b9381ff03ccb2f27fa0142dd09c4c0b6672a4cb3a099cbfee1842ef55410001000000000000006e2b112768cfaf7d202d5d321bcb702c292e450d162b844f8ee903e18c45415301000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000e487051ee8f32b1f8d0af5e897b49730512303471416e689ccfd0bc3f726f447010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda3001000000000000007ae9be3d7ab975804c1aa74caf9329c2b8b5eabd1a799337f5a102232efb04780100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000008f7733913a9205cb77186c9cbeb35994be18d4dd7a755fab8cd333c068c44e01000000000000008e2eaf4ac96e0c79da47d2b76956b3578b39ee4979826d5344254fc37d508c04010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000004463c0fc0dfe54d69269fcacdbfc1aa15d2f25ee4c35fd39bf249020ae697c6d0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000804b093ff2d1b39b5aacc853c80a1b652621a4935e8c8ee53c63605c1afaa9290100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000deaaa8be8e765299a815cbcf6b6b64ae30c3bc2b8da01dc97eff2c8018bf954501000000000000007203b3dc19c8ff42aa0c90d10328d49e6aae97e4d93d91f33e584fd16073f27f01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd94219375801000000000000000e1b958cae4235db85f6494d1d9af4d435450f10e39485735d7ebe0b6454933b010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000003873ac08836bf81aa2077f9e50a55b47e02697ad9fa6704c7044fca0c93b8243010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000070d533161a0a0298664c57c77871692d2f70c8319239cea6250765fa1bb81c310100000000000000a6afb91b338c8d924b5b2219536e815a3688eb3b145ab136dbf6eaa5708d992e01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000005dfc92b1bb401cfd26a2f3b34d784624e525806af0a0f0376af2db8ccf91720100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000c282c0fdd6d42469ad85bb9815f18c71dc04b3340d1c96f33328389a325b6a360100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000784b97e0ab7724051138f53108deef6fc47154e007d4d1fe36c9975c0abf87120100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000344589372873125fd660e2ff3ad9bf67230f9306acccaea070aed322a8ede2640100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e01000000000000002eab7eb696d4c3dcef6c5f74cd704eed76fb51790875d8ddbbda133ae7a42f7601000000000000001af87fef9cb675db46cc26d46ef3458e22a4b5b759ae8478aa489ba7ebec674c01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000042e7c894dd88fb2b0c7dc7a56b44269e0ee606c73d5a297cb459dbfc7649a170100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a010000000000000054a4e00f3df9f09e23118cce02f804d36c4968894a621305a0e8150a2910dc6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000076a94e6d409364d8f5fbffc118973a13821210583abfc8ad688565da8550c200010000000000000024001694a6c028f4ffd94ef747d7834e6d29c794363d527aced13a87b07700570100000000000000d632182c133a20838afa52678dd1b9b5055571c637f1ed1a1746490f3fa02a03010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e70901000000000000003271f7e7c7adb2462cb34fac3cb910495763e1c661222ddbbf3aa7cb70a3a40601000000000000002c69ecb0f2339ed156f4ec04dd37eca60a78c2ef9225e87c132e2ce1fc9a573001000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000002a8e4336c0fa5db2307feb0bcaae257f0265ade08adeaadfabb50b9838d9663201000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c0100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000a4cd8b073d6c005d5925ec6b8aa2b2e3f8c0aacdf82165f36f56345f6f33f6600100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de48575320100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b01000000000000007a48b0322f745ab3d669c757477111165ec3bd4f2d32ef4ecd1c5024214fbc320100000000000000e0c4304540bfaf4e2ebd05b751ec785969deb61cb8ef26a90c6d18eed5d7195a0100000000000000620708ccbc822d0be9a49eb46e73955d4cdd8735a5f2cfed44bb656a71501a7501000000000000009c3cf78a64efb54ea98242575dce25ecac86c57f19e6a26cef67792ed4fe5e490100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000425dab5a4c28aefafdfce605ac8c4eb7e83d1eafdf8964f4c7086b20f1e0ca080100000000000000c80a16a172ea19de337c120de8ba72df1b81efb23ff74e0ee7cbf36e666ede1f0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c44010000000000000056916604af8d4470b2ce0475043824cd9ba9b6f42215a408d1b8e2adf33d00580100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000480defe8739c9518d5507480bb9c68ec408a60b944824521f1184b74bc47f2170100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000004a0667c9d42cc0bf99d30300929bf4622f12cec7dfcacb077d092d71e739926001000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b159040100000000000000e074fee77ec1d84c2c2c02e258de68c7c4ae907f09224b362ae11d52a2a9bd51010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b2401000000000000007e5a932dfd5ef4d3cbb9bb59ded1cdb5da5fa6ee276cc2acf84ae0aefcabe12d010000000000000056da6e5ada211131376b8d0571118b69fe57fae1393d23572b484f39485790480100000000000000f2117450619d24661f6652dfc06c13f3859e654c4d14a4ed28ffd4325a75997101000000000000007012639e84e32c5cfd60362b4d8c7382fae32e6e3a70485742351efe2f2e876c0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000742f5991a21e102707bc1df8a9565fbfbbf705884fdabd13ec223783f96d3f620100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000903494164bf02f34dd446783b12875b6533328f4e17fd3a24bbd67b4c142cd430100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b0670100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f87d357ddc2312bd02754f012fe4114502502deacf3e8138bb197b6a2e8dc946010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000e4947905b57f3ad54e47523b00a529c3f7524cf13ae76fe3a8928ed5276bf05e010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a2520100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd412854320100000000000000ee5a96cb89aa5c8f6824d3806a83a6cefa9cf01842abde63b7bb04561553c45b0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c121010000000000000032dc47873d3d298c15ac984bf66ef0610883d7bbd2fac924d1b37db68da1090701000000000000006cc7929dd456080aa9d29c03db15e194d7a8ccb8f878f40f517f3aa4001f642c0100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000cac818b01090940ea08c65890e25b2ed3ba9f237fe2a2a3d17b394e74170760c010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b010000000000000064f5e76588ce018884d1f05c63e0998fa63014cf76b60166c36f2313b8a6394201000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd04010000000000000042c33844bdf4b42d1aee4d083ab1f6267984ee1326a7cc73e2cbd6472f0bee170100000000000000a4945508cf103aabe69457d9ea2b46425d9d26e57f89e6b1f799ec18219ad255010000000000000034a1786e781db0be2101a627026bb6b235284b63649cc567d9a2613ade13d16301000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000d05c87ef31a1a024e2242edc6bbbd1c392c579029b9f6b104157250597082e5101000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000385d6ae328e957b24389a12f9f952a20e224e5f9048b1bc6b9a8748edb2aa32f010000000000000078294f515c659b94bfce9674db37a3cf2f32d89ce1758ca53d1860037cf1d42a010000000000000032f6d7c068e7b684c061c290891681b3791c250d9983383bd40bc884fc9314060100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000babd6c9cb58a2635db60d13014684aee881af96c78af8c8b9b31073069167e4401000000000000004affcd1cee355fa9ef6e75b45f67e93237e5425eb0735dcadd0391328f44e917010000000000000050bd41404e3e9c1c73f1cd079966b4897795bc34118d46b261d58bf3cd4e197801000000000000005440e71292507c1b33554e8d95fd85ca3de6499e1b7c838236051dab5fa3f37c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000ae44ab56beb3cb760004d61723c94454bf803ddb649e4d2aee24b4983fd91d5101000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000001e7b8aa5fe2aaae1d5e3c8b1e38818114e83d9bdcc95629ed834aab37e2b897501000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000c885913686cbadbcae070742549b5695298d4f24d9efd101f9ffe2466a42995d0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000000eb1769332c7154bf3509f1892f992f58ab94e0705a1d2be18dffdedd10a3b210100000000000000a0c28669f01d5b4decdab2abfd9d14b989c1d4b32323f264b24a788de0b9d2430100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000c27c242ce1607355f3e06a2b28aa40ff1848856f3b45dde480dd1621c9b5165701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a060100000000000000847f948b67d6f455e2f2923f366dfe3c0a3925b451210a46cd36fafb8cd8290601000000000000000a2309a52190564577602c900c42b5de7605f5b9084525af757c8b3bec77267801000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000826e004adf3199d68639f616c05228939310b318ccec968892e5feba083a55780100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc340100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000010381a1fde26d95804978d4ccaa1d6e634efe2ac922f7dae4da3cf3a64568a4e01000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c7550100000000000000fe488c36177c8a249fac2df56e6fd24bd9e0821ab2330fa9deb0d7b6ec0c0f0401000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e01000000000000000c6cc2bc932adace83516fe99076d532e6197ae08d66610988288044c6bdbf3601000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe42010000000000000014db67200553d8a3f3543ab37a12e21b3a96c2b6583d66d59e399afc3236084101000000000000009664e4e01c42d9a22435a39dfb1daa6cf043abbd01c1b081c28ee271988b415b0100000000000000381a3708c945f1d295122322f3b3b7e161a4f2556d6f8d8ebfe052377ed37b700100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c460100000000000000042cc9a90ee7801f29bde1f77ebc42e68fc8432df113d23b82201d1a10e33d0a01000000000000001e63ed13cb9b8d544a73307d348a241d87d3d1063715d686572e705b37b7483e0100000000000000f8b6f6a5dc53fb46ac77e802b719f037236dabeab361d78baabcee785d9fbd070100000000000000bc633ce058ec703568a94b656988f1b4036cd9f74aabe8a7b47e733883368654010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000003acd553f0ec1402989966b408bf5ea9a4d5cea17bfd5f7d3237f0702627a3c2301000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b5001000000000000004cb3593968c0254cadc7f1a2270f9a89e0909e12a6eb5ceb7f723ab6ee9b7275010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000026cfb82d0ddabc480cadc34971a8650ff0658562a5ffbec0d04d045c6546ff1f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000006eb14b9e500f2de3a6b6f8c0e647166fa10d2c25f80973b1b5d3c040fe4b5d2001000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f07601000000000000000cf1165193d58e95c490a7f41cdde8105f9dd633147a7fe48fe9f6a6a905176d010000000000000012aae151c78cf0dfb818ae8c9ce549074d7d159235e1a775d44676cd1374d76a010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000a0899677a7d42219ed8116f3776d28c204e2a84fcbc23fa42632d2622422701c01000000000000000e21a03fbe9885a475c4875f3f912c8703945e99cd2a85f75258fda7b6022b7c01000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000d6766583a3ec8c71c784c183e85d06d6655c49c539c25e27d7590b88b01d71040100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000060f61684be94ec0178eb24d9f32e0de63d05b4f7ae00fd0fecba90ac54d082a010000000000000026538b2b883a97c4e4ca0c01a9e136d42832e07156bf9df23bee062df009230501000000000000004238af3c99ee0067953ce92d9b79d89205918431cbb0fdab22183e1dd7ab95560100000000000000b0d9dc44559810ad536b1c9792b5624cb087972bf5fe3ee484f9214497d6f8380100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a85401000000000000009e633dc6f4569a87ef6a315d9391543f7efacaf666a7d186eb715b1e0c65ad1001000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e0100000000000000b6688ce42ea01b1822699182c562585a27081ce6bb0438761436f4045a42f24a01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000007e4e053087c2a301c9174aa1665a1996af0aca87f3a3a44fddda2509eef9e60c010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000a07fe18d0151b0bbb2a2f9604122716fa2ae881babe7e6d84a22cfabdcd1267a0100000000000000a6d081ebe46bc75c286a6021ba7dae80f71868ca4377dceed8633264dec1757601000000000000005a9973a287fcc694b86f67d1546a0a9398f6c4d06de13fc022ee52197cc022400100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009875dea5d493af94567673bfcaf096919a921cbb806f55b7488bb0a554fed66c01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000643589f0627aa555aefb01d2f0a366eacc252af9437ec2a892935da2a1052c170100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b01000000000000001810712fbe92f2394892a99e3a825490baf1efaf7a3dd1c9bd0e58da0d671133010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000006aa6ad6068f2de9c70806108a4040f9d319336a2d9d2ae7f719d05ee777379490100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd270100000000000000cce3551554bda5691462265ad7205e116abb061fe4930c2174b573360b4e9442010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c8716010000000000000086088c15ab94ed86455e4473c198b99730e99585b88d6fa465ce429d268ea27d01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000809dc13a93316ffb2f1cfecfbce374272a81639b11fdb1836f04d3bac622f24c0100000000000000946218824426fca91a00f856a5a92173c04649a2500adeece86fa30d4c08b47301000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c01000000000000000e809b8014f6a5c69760fca981734e0c8c41ff6d5a7d53d261790a843cfe560c010000000000000092439f4dab2f4b2e8d1bd040505ee33fb2c1dd56f3946826cc27288422313b3a0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd98431769260100000000000000e89fd72f9d49f2e6ca8aea7087e546dd153bdcfe46d5a64e389cc24101ffb91101000000000000000a249c7da6eb514d0c65731f4f4e04f662070e9e184c9be3ba11c29adf87d538010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000072bb32222caca7113141263e12a4193da7f29806dc93cdd11fa9653464344e320100000000000000cc1a3319843dc5343de5c9ff7d66f362c645b1de013148fe3b757d51997a0d3f010000000000000000140d4493060751979098f686733955e6e71d01bbaa8a3e6cb297400c5c624f0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e0100000000000000020ded3e18e0159566d7bb10809d33f0d3d97941074957a1422e26ba98632a3d010000000000000044be9c0d73b3bcb4b612e5945077e2d3f48778a95b664180ebc63a389234354d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ac9d564e02038dc64b8edc8125dd29281c3e77efe48bdea6f0eb5b2ffc7ff76e0100000000000000d461866e25c98bf187b844b145628d87392441deadff7ee739639cb457edca540100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000604bee8ca450ed86d7797d3b0c44cfb388ee0b1599c6d9b904ab1c477f9397780100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c996000100000000000000841c2f0987fc8801b7ce2ff50450d60cf19ae3f39295d3026a6d45ada6fafd6601000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd8160100000000000000deafec3833f9925dbc5d185762c864d1294215c8eeb3f63da6f4cd5fa78eee3b01000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d610100000000000000a61667ea6442054b56111477f57ecf39b6e90480bfadf54c3e6cb5ac3a3e275801000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d38764301000000000000006029513013f081e5d5d74173847405747513aa814038c25500522e6fe2aaf37901000000000000008efe7111a4144eb85aa7a95bdc5d0a04761805a21aac42a696473cf9b559dc3f0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000005a3788f9347ad802a56974dfb4ed19b22fa91c20e5c8dcffaf4208f25471432601000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000002ee95f4c696a2ed4020e1efccab52a937a700f41e5c62c977fbdb3621f42ac3a0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e0100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec298170100000000000000082a961d1e8f1e62d7830fa4f5cbceabce8fb3a0276f2ecffa5e1e55f047396e01000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d3110100000000000000e0d61db94d9d80ab04157bc7a76de3b1add4e0a63687281deea4b9268af3934a010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a2730100000000000000b85b1b7b8ed510a5bc1d0979fdc04ec7b73d84c7d1d767dafb6faccc8dfd402c01000000000000007e8ebb46c80883225df2fc91fe7ede9933dcf073f3d74ea3db0525585984e74c0100000000000000068245d8a483bdbd4e9d88b49e17a651ec168f25e6851fc52c2e36a516031d5e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f01000000000000006e1e949131ef1ee4c528be720359645fc608856b84224f8e5e4adfed94dc983101000000000000007617f9c34780fe008d18ccd349047f855345db0cb9360a57a63179534afd714f0100000000000000bc3cdcf9f41b5f3f073a7f6a29931a6be12fbcdfc1dfe7145c4e0a527e9e243c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000ca6b6c3de9e352e9a87f6aa76c436f567ea4053035de3f2c60f9df005ccd14790100000000000000d6850249c78745c7678cd3b5238128908377e7ffc9eba2e41ca416c41e0270480100000000000000f2861581593678b86f3186aa9a1ba7c49b5a58aadbf079053446bcc899a969640100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000007cffa67942272b1974dd65c87828e1535799e008d9e81b2818f5e308ed4f390100000000000000cc840ae0117378161b86a52baa6decb97ccfc1101325256f178ba8f67761671d010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d010000000000000096b9efe3e08609cd61aa98f3202618d928074308d9f189d97f7c1e52d2afca1101000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000387432bb90cb18fa7576c4e538e328b988bf70c89bc2df3dfb71bb083b8fc6830100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5781714, - "finalizedBlockHeader": "0xf88ae29f4f7bdb4f127cff2e0a09c02b85fb78fdb2d971ad74f52da7efcca8559a5e85050af69f7d5cb0b6df621f4546f7d885efcd2a5b32cfa38f6396ecb1a5af4cffc273d2133de1e94d36aa8695b23ae7aa0e905ce71004355f3517793669e36d06650c0642414245b501035c01000023cf2f110000000022b4b5d8e97803e70ed6854e69df1ecd31f732aa4e894bb321690730455718076fc4e4b7066bcc83d470bc404e8152f5ab993889f9d3cddf802fbbc329b81b0a1699bd4dec08957d4cf67130fadb7471d70b01aa1864a4b31445a734f3307b0904424545468403e562d413d81c4cc3b024f8bff4780882d830a4f073cd2a759d0c5d2289f925f605424142450101e8a086b63bb356536fdce2c97051eed974abcf0e0fbe4e5b2c1b40eb0de4da62bf476698a96bc7baa62565a1b6f284ba7ff847bcee015b2f1d3946588f713384", - "grandpaAuthoritySet": "0xd1076f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000bc124fc3c94cdf2e5cd5d38bed37d7795c3dbfc5037622882f291ea30dbbac07010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e010000000000000096793996c3e47019d510fbb02c20906b8f8bec7863ff15ea0b2706e38795638601000000000000001dc815662baebd9bc39388798c1f6c8d0c9a5668ac1c83b82b6b4d8351b13bb30100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec80100000000000000b1c91fbb1f574b1ab4e69685a0b5bbf1368c488e9b5e93766b05141be765456901000000000000009183345e8c0418e8bc2e3d01fb5ce97d56e34696ee097e299473ecb2cb58d45b01000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af001000000000000007f4c80530943a75943dddbd81a7138a25a1ba2139161742a8fb304581153facf0100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000c0da791308c651451fd0cddaee3f6777f60391b13bfeba0c70d49ec17eb06d71010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000116768c765c7ce5a5e895a5342d1f56f1a118901d8d36fe584bab325506f3b2801000000000000001ff6c4d8b7ee9f99bab0aa9fbe88ef94bd3a0f1f08532a329403cd0dca571cf10100000000000000bd26ab1d5334c20a4a6840be7bab84b98aec00f0d49eeac5b2c93f4db06dcb850100000000000000534d99c697470016ed6dc4e0368a604f9e674697b13ab0f401e5e235352cbd15010000000000000096e29ceeb81d40d3b437e8f2669ac1c54349d6a4e55ac01b879d15cc0dc7dd680100000000000000205db2f34961f7c260a0be694a134a77814c7d156ef9d6b710aad3e945d5d6930100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000000da43295fbf5dcf103b33c2b967f6da37fa712dc7877dbce3d8407407999dd730100000000000000027f8b0cdf660f41fa896e521d2d5d30553722f07dc9ca87b99ceb1250776b380100000000000000052bdca8904138a0da82979f82ddaa644eae6f67027272e65675f2b6dbafe9e5010000000000000049c0902ee37b569482da5474a15458b5dee16102fbc09b45878bb05f4a717acf01000000000000001b4b5f4e0667c084b318210779b013a36f4e2a99a1fc2dce5adb7c921278332b010000000000000046f5d223f0e9a276f753221c84c5db7c7f7004e99c8e39a24454695abd64a6dd01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda010000000000000097d57a25c49a171f87773fd18925fa2d8716f2c4c812949d73efdd5b8b39b21401000000000000008300dfbd0638b52780c76e850e830815c4f047c7af8f1f83dec52ef43036d55b0100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000c8579421534e4e52ba78c6ed533bf75fabfef7148b439a7585754a7cb0b892220100000000000000f7ca8ee474724b1be33094b4577237206eb96d6744d5d11220af11e6bd1bbe52010000000000000077393a72f687439c90b4be64c0fa968361433ef2266dba82f53a5648d4099312010000000000000052a59d0bfed47022fc79a5f56d67e9f833d45a57843c986755a3c809092d16c10100000000000000240d17ce9f72548cba1b3037286301052b00e0a7862f56b8a7f689634f6970d7010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf01000000000000001867d3f303bf57fc1a6c96cdf766fe6f435838909bd27fedcf0f6a3bf9796c2c010000000000000099d43ce4be9f4195d25afb9093ea5965441f2f090a080dd0f9409a1829ebb0b00100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec0010000000000000086a99711a3409e28ad551760a47444bd2d638554a955d8600f1ab90feb49c68d01000000000000003ea5ffcdc27a1f5857e0c7897692d1876127dbd30639744f4fe55532c8b60c0001000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d0100000000000000c976b5120a10ecd7086ceb7231f2ad40f8f5bacd63a12e8e0ad47d896200895301000000000000007977808620ade75f3efeb26b0926229e0817c6163399f1d48f39ece8159c9ec201000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b0100000000000000e92140d189e95d90545b85ea6a8fb068d6e17fac2cc08af0c7e9ffc3e1d3710e0100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a70100000000000000ae6e6876b6e4b821c67fd7dac6df59772f540dd76c7012c4fb9ef9d13ec863ec01000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000d7ed3a12a109f13881749d68c6d4e2ce547faa18a814c5d131fbc9294224b018010000000000000085d30ad9407c1a1f860cdf1ceffddc7ac044fc059257559a564bdfd9da4116bb0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000004526d72bf5fecb53ee73daf4cda8cd36894d7426a8d8b3ccd3af974ed414216601000000000000005f1a6f53d3bc80af21811c76e22269c1d3dddf9b86c8b8d2faa3a1f92d830f810100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008bdbdbeb92302e77649c730eed64efac417dde56810bb59588f31081c2dcef43010000000000000059e1632ee9e89f2f3e9639752821767c15fe25db7fa0c5f475d732c59a0a64500100000000000000f4f88283787e1486aeb0b00026e96e1ff523b0d85b89cbcdb0ecfbf5694065e301000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000ae430a07b430336639439e1fc36725721d120480349022c93a51dc53831039a60100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f0100000000000000214ce2bd2912889eca3c69f45a3677989d66e20c3b26a52bbd378a4a71f5aa05010000000000000062849cae8655a29c4a4c53ae3a5ddaf8d6cc53ccfe093ee97ca2f94ea85b570a01000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf20100000000000000496db58682384b87786aa7ee065fda7c786c8a5401f1969539a4f48a90d164e501000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf0100000000000000485c974e2014071f307dff2aa198079b074bb081e5eb9989c0cb1372aa9a6a8901000000000000005cc74027b6551fff50ee1bf43be444e2403dae9e3e5e2e7823f5d094c7347c9e01000000000000007e4da3ebfa844b02e7f9a10b42ab672eaaedc5c6b96f2ecf2ceaa6e5b4762923010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000f638a64a8e447bd0f978e6641341a067ac937682f5f6c59b8167a058cb24b33f010000000000000099f574f1c57e766376a6976ceb3f44ea0420be7426d5c55b016a91e34091a0980100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000064c7a738ede0248eb341912c3247aaf279d4f4fbdce36f092f9bfd0ab13e093010000000000000094040fd277c75d7227bf8d55973060bde3809b3b7d6ec79602f19cdf68e775cc010000000000000006c549d7fc8a87673e5a74f96222eba17f3adbb85c850cd8431783649eda67aa01000000000000000854ec578fe9572be4a886f4c9297f27b8bb0b305c2ddf8d93d4088ae01cb3e30100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b580100000000000000e34762510f32c8675a557bdf04a4cfaca8ad560d7a3ca2d921c32a72fe4ea3410100000000000000d87bd6e9498e12daf09b568abd18195113b2bd8a7d7ec68a77158a9407e87f4f010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b0100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000030129e0d90b7476d6833ab8d5c6bc45c5d9bca192f269f4dd08942ce991533f01000000000000006c1bb85b3afb53cd634ff9fa8935ccf59256bf44d1c5ec9c9ea70e259fdf775d01000000000000002ff3e4c0ea1f1af0a6ee4a8fc30a57e51c83a4a4ef8794fc5988dea435416d070100000000000000c488ef26295140d0ffa6b0df1cff9f8d8a1dc96d86fd199a389bcb2f37a87f340100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000043c2d4b1849d6436815e9b259d167aa914c69f400724ed0fc4a9bb53bea455e5010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000b62697a57081d9142164bbaed5fab0c2aa4cca9d5040a15ae95e862dd20ebc4401000000000000008f36f8befe9f8dce1cc71da7a1ac8a2feac75a99989b77bedd83f082f6f584370100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000c27817140b1ab423096650608830db849d51c5e3189c0b8d15697c7974899db50100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd380100000000000000604ac1feb76a5f2e7100ea7c8546c1b40bd6c59fd96ef9d58c2e93d7afc8aa20010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000a9f24f0208a21e8cda4e450c72074f20d76a927bb80fa4418e480e0b59575c6b0100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f9401000000000000004a68c3ada00a5c4248e74840b836cdb87eec6adbf99dabbb90a8ded6e04de6c60100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b0100000000000000b155dea273e6fce0ec35ff5b5e6c5742620cc28dae553ceb2423f7cc88e563c40100000000000000700f01e62a9c97bb86cb5bbb57ac20c74af3695fcef14ebea1f133d3a9253cc701000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000be52038041281820347d91aab6c15fe26ab8ebc24487e4e7403a8d559bd6ff840100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae0101000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd0100000000000000fb3a06e07b02896157fdc7230199503899221cd21bacdd79d2469adb1cc39ece010000000000000086cddc46c9a3a42c3821183d597e76872f1d4904b84a92e8160ab4e0fb4d39a801000000000000005566b715a9b242296b7580227095f267f07c33d5a6e9a878010bb6971bf1ff1e010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde61728001000000000000001c1e6a3988c38f5dba7b319792a2630faccde50f9948909fb60ce41550b0ada701000000000000002b986e6426850582cac73136dea0c43671ff94e72cd4801cb9017e058bfc6c5501000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000002626d4e6ea5ea56e0d4d6c00064778956aef2ff2e560080f27f180c97d41bf300100000000000000bb634911f0ef84718fe06e395c08721b651e6670e8de1212958788bc273a57ce01000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000e00e041baa455db9c38d07cf42c7148eebd348c3df36ab0efd4e70536c05382d0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f0100000000000000f42c2e2a4157d51d22d5997dea1342f65e1882e207fd0e64e8e5d44330857eef01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c010000000000000082cec143b6bf32e79bb90a7d200cec8c40d6120d0d8b2a7a907cabe22dbcb7d00100000000000000cec26505b5a875ae4ad065fe00e2bbeffca5ad37990c9a2595d80136c0e0cff201000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f5901501000000000000006faa2a994a276a5d8d029db32b4c05375412db8844ec0a1ecbbcce729f308e9c010000000000000042e08b5f002d7e8306ade4b0c17a2ee1f9e79d5af5878e0674ee5a1a6e80199a0100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000013035b054a6a20e95af1fb5cb61d2cbb1f3df0e8199fcf06887993b8e0e9f270010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a010000000000000069077a1f487cd675ed54ac2da7c87cce2a920366b08003675f0c5b1fbe6a511201000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000ecc7b49598787520ef6336abaf798adbadd6406bb889d8bcefacbbc1a887a3fa0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000007f6fe3b417c26965a21ccf584140ae4705672bf1a20f5164e1e39af1378cbd090100000000000000854930041eff11f5c791356aeb214b9670cc17006afdb3cb20399eb4762e25d40100000000000000be81cfe2336c42d8abc7a2aaa6cf5a2f1cae3e399390923c275132e0c43f245b01000000000000002b7b893e884f4d9c99a3a154b78cfa4b461422860537fa77d064dbd0de4e0a8a010000000000000068e90ce2ac6f008d2571707d4efe418bb0c842320a34851480ff64c969a5eae601000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000437514fdd2338418a82b6f388df43bef0924f4288febdc261a5c5c746fc0092a01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000293ec1101d6cc9df89a04ede0ac8ced7418803cc1d52a36ca8e45cca734388f901000000000000005e494b501131612faa39501edc6d668d7d52861bacefe42e79982b61f8eea0f90100000000000000fb2961b63fcc863a92a07f5b94fe735742c3c159300656cda7d82eefa8b3b98801000000000000009c3b0fbdb941ee8977e04745736b2ce8c149a63c2ec758b3ad7934ca190123c90100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000008c933a69beec72cf0211a7b24024b345f52eabba758b3e791e8b6efa0f255e72010000000000000096f4b03a5499d57072177a2e10f9f96a8e1987cec2e5ceca6fe69228534f04bc0100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000e95d6bb63522b966f4a358a7e37ec3f22e6f2126607096442cf719f8627673480100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd5010000000000000098237d7b68db1bb6e79c5174523a8806a88fe0fe427b40199b984216800517d30100000000000000d2ec5312609b0a955652cc5a031f9df32dc6db062dc8cafd5ae60badc946b2b90100000000000000a717e6564944b5d85787a33a53ccece07dcd37ce2f375b4e356c328858ac475b0100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb5933094010000000000000061914b4dba0a1e42e692016cb74943266b257339008ffed4644231a2b48df21a0100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d5801000000000000000252096f36d3fa5ebf0cc8d2503c89b04dedb1fe5eadfc21fcf358f8bea4f4fb0100000000000000679be02f7b0dad4f2bfeb2c28f3eb21cdbf17e17e2dbc67805e24a33626c48770100000000000000a272db41595d659e0a5ef3be28a4e79cb2be47b528519b358891dfca76d3ab820100000000000000e7829902259630b53e10c971c39c203e6f8b354c023ec73274c315ddd77dd3c5010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c811a24a21f2c3fcefec7c9323ac8a76a6ff40875e47750d97c8d0d4fe0d36e30100000000000000c06eed03d05ef5aa3e01f08c96cdd2698711a83b3875141a3cea5583f29a4cf00100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb010000000000000090c47bdd7fcfa4f8ad90f21b09e45cc97ed7c8313f3d6e09e055c2b2d3fd277c010000000000000086169032d8805e303ab45e60323c220c83c3f19e41e6321a0bdb3b139e16c48f01000000000000003db5f801c2e208df9a9b55c5f2d459ee2c3dc9fb94e208695f2ee4025f4bed4f01000000000000003ab5af195d3e54bba57e395b1b69920bbee9a5169aa1ee8ed0ab97422528e949010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d0100000000000000faa7af0f76a660a8c8c89fabf7290f2938798fcf0d522902d5d8b1d3a177e05d0100000000000000a63ecf0e809a864fcc5e2a49d6ef628c1182977f1f99c34297eaae1d111cf11f01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f270100000000000000d47aad3c2467f1134c131c0a3ed26f87110dc4e4e69463b1003868c5cd62667a010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f01000000000000008460ec4ea6711f426d009971ea07cb797307e539535aa339f33482bf53b5776e0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae010000000000000063d2abee781d47f4cbebbc4570f1f4cdbc3cd966f49a0ae931cf4606de3667c7010000000000000074d7396cfb7b36c95e8cd492088d64845a0fc437ec3c6312a548aeed6cee89f0010000000000000042bcedc810f3402093a06ec193197a1af0bac2b53a5d919407c46e650156e4540100000000000000d940b0b509605d2b1ec83a73fb7f70ae462cd75484bb05c3d2af154f9ca7863d01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c841c4c59f243261bf2ad9b004ab1509b37ed63126c7f2c4d4533c22945e68e70100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed010000000000000044715c3a912a898d9719750da1ab8dee74bad9256cc4f3922b53d2ee964acd200100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee249701000000000000007dbbf5eb5eac3597e8b1929d3b376f178b32a218a99b271c4255dd453576e5f70100000000000000e05521afa0e7c1526a49e1ca6ec5c5386673607cf6e53d223611850f51d37fcb0100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb0100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd010000000000000003dd543dddd6ad00137ddf94a218bfa19d2f08b4365d696765dc25deef76598b0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e0100000000000000b419ed452b00fbaf2baba8d2e7a03f2309acd34d158a6f2faf86722ba8cfd36001000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b497272924010000000000000027ae2aae696c8f72d0551491d02352456641045321b5ff3b478efce87410556d01000000000000004bf6037c3820cb7468601051701164948b7f7cbbe1ac8cad97e809c76170dddf0100000000000000fe30d30ace5295db295a2e6592e7990ddeaa9f1a07abded61bcce0b6392626080100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc55301000000000000008fddedb3a1d94e852bb621d3ae5658cd1bdf2eff6d56ea8cef85e86512f4ae3f01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000ffc2fc861e9ea596352c1c3c7c0486eb5cf53554304547114a07f4b30a38ae980100000000000000faf22cf4b053a1a03afeea03d07a83a4693d0ce0838d68721de18d2e93f91e970100000000000000ff5d4070a8a7798cd22dbc7a7e2a909b697e738683e701aeff696af26ebff0720100000000000000eb012d6e9566a435063828e600eb9547e36860f266bd810e2a3513cc0de59b250100000000000000a32665b03a0ec6a90eed56522c31dd5b5a274e84e71f911718019d67b82ffeec010000000000000043f0c689c19f75362242c2412fb65e09598d58b8b005f5044dfba06d463e6f8c01000000000000000a4a6b57678e7e76465ee7c85cf9909d9a793905eac1571caf97754731c6e48f0100000000000000efb2050b4af1539f3d01100a9241f83df452dd165079d6f3cebc7a24c0f23c5901000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000fbd06da169daa41936401cd54d06ecb61cf722e3e1d34a9ac048d0c800014d5f0100000000000000dc5289899ba3e91edf93781843f9abbc99b3ae0beb940c385edf706acdf0d2540100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000773c76ac5f7a866d9d74ed5343a60d3f66111cfc8637b0cd81889554d0cd01710100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000fbc4082d5354073f2093a66caa10393af3f3e68c16527e3c2ce5feb7b14e0c490100000000000000dc781a2ffc8078b51e83dbfad41462eaf4eb67a05b232b166dce3be738073c0c010000000000000039c5aa961939c573194630916cf77cc00b14bb269af2e6676d81d36be609aaad0100000000000000d3446b94b38255ea7a70f84e52f0f167cb5ebd82a3c0f31498bbf2b24ae3a9650100000000000000c8533061c63174fe99dbaca39728999bc10c224f55cfcfc9106f36918bd1bc1f010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000c99a2f3e8188ae4473190d2d19e1aa5757ccf503fd1eaaa1a9b621718db6f8850100000000000000b1cbae16db013e1e1527f71c3ca6d7bd706e0905e12d70eca255ee51ecb486070100000000000000924a4c8eaf9cda0c487123d61fa23b1f925e6d258b401afe0fb35d49088293d6010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000141843e01ca126ae9437788b5ac332e4f8d825e24a79d148da107a6a018db78d010000000000000016e99197045b0f0ea52fde79de5ddee1632cca65b2e2a6557890cd30f960a08001000000000000009266c842dc93071f0c618c22bc7a47b8ce98baafec61b8b5ca22e2123908202901000000000000007ff375d95a9d3ce2761197d5f01279c86365a7d79240170a7cdc0e7bc0643fcf0100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c201000000000000009b441bc4e5e4674cde59464cfcedd490af143f22ed8bf85395c919af9da608a50100000000000000532bc96e942be9de9214f40c9d221fb9235856f6a781a8be0161acf804b4dbe40100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000f8293cea6216f67e675ab858a77f5fbc4f36edf81202ed498d18854d87a72ee70100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a01000000000000002dd9a73d6ca904a6dbcd597b5f90e412616cf506cb3f3543405393b6721cf4490100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000001df7a4526aefb5459b9794bc7305a93c502aa5533e6a2656787d79073ba8fa390100000000000000bb7045a8da399663f16cc865bc2406716150aa804da56ddbabaad386064acdad0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad5101000000000000002d24688a25b8e5fe28e3f3fe4c283810b85d79119a7a802637d1e413bf49d93c010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a468101000000000000000d8e0ceb31d11634ff50f20c90d57239a9307602e221baa190c784b144a7eb980100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000015b49bdd8cb8b9110a45bd1985746655b330829e1dbe7580ade2fab6531799d3010000000000000094c6aec4f3b8aa959e5e7fb46db292cf604055645bc904c9791f7bc51e57241a0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000858f1d3ed15548e80aabb268a901491071471c60d323ac0e1c1db4ac1b92799101000000000000009d90d7dde42d13fe6f30cba1a8b2406b676f859959e3434e91cc05b1071c7b7d01000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab401000000000000002c2a52f3631d6021cb13e5dcce1bb100c8f025dd0ce4ef715dec9e09ef1268270100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000002246d9cae89005f399a6a68cd771ad53b52c5d557c17716b873fd42260e4f7b0100000000000000f1df6c16f82f1eb89306bcbbee13ecc7f150e6ac8e3a2e968faced83b2ba220d0100000000000000e00ba032fb8db5440a1fdf743f87fe529ac2cc66fb8207b9b2df2d813b5f5db1010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007ed4494aa3635b511a8c2baf38e6837429b47d8686dfdcd6aaa1e5e2ff91db6501000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c60100000000000000a8abb971b10439867351b3b23ad968edebee7dc255f0414cd20c60507909861a010000000000000037cf0e2296974765b587766e6f36c0b98f69c1698d0af2f8c3490841509ccedb0100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a86601000000000000004190cb0b8da167787ba76ffd647a174ed34953b8c189753a421060ba353c3d8e010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f22548214662b5637a61fcc51e28fff086f1c33e75b4ca5f1d806be6ef40f82b01000000000000003ee731da725307266b32393e3d353b49dcf27f3b55220edbe210af3094f1b2940100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e20100000000000000e37f3d6f5309a93a02cbba241df8fe6951f706e7d9c14bd97482e9e3cfe9a29801000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000084d59a298bbe9054acc68506c802a7363c1ef0cc568575991e749ab264bccd1010000000000000007e11db40409c32a4261679bc520ee8ce4af31944d19b1faf2158299e905e7280100000000000000edcb49c54783d276bf63f9d99bc74b76b30c95840c637174df7a7521a1b8c1b301000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000ef2a9de26bf87b283f28033bff0b5b40f36120e7eb83288d4b3553af44cbaca4010000000000000005c80b2ef3c20d81e5019d37ee5210d7fc491cf38e66d81ef6b635d54b1564390100000000000000cc72facbb31b49a959b8282b4911f4add24f8983b8d6fad7722cb26fe386b4660100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000d9cc924ae241639ecf32213a2de90ee7642218ff5ae67f338989a6ef5f5a39a80100000000000000fd511b296963bc98ee75be2e1c0d2d8fb7e4d7cd39c6fed96e1824c4f189312f0100000000000000b0f92a6bf11a029ed8c72697894b86d9fb4d16cded7274e9046946c607fc2ad20100000000000000357e7bea9428a23430b237779656cf06bcc9fe500d28d34dd3822d9797a0b0f401000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d41410100000000000000a51a49fa663cbea3b953fee99f911391d75d638349a2681e30759820c6f3c60b010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf010000000000000049db9652c265135c10af93c19c3dbc35c72c1aa32b64a2614559de921be7c2a301000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000826fea075408d2c9331974dad61f4fedb0a7a306711c696997bc63b4b0e73e4c0100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf027010000000000000072f284dea2d25cdd32cd0d0c65d53f6e4a3e6652d331485925274561f9ee84cd0100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000e667580f09ad0e739c75d3e3c57152a8b748a2ca493124ed1c70c57af632f9e40100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf0100000000000000098d04016e2dd96c42255af60da797f50b61b0720f122d70c1c9a26e86b5061c010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f363590928400100000000000000c7009be830fe78c42f12f0753923131d16300bac230650001636b6a546cf0aa3010000000000000015189553f5c0decca9615a3beb9472d72dcb396d9e6645eefae503d916922d4201000000000000005905f3a3f439ad4d6e033de80a125e1e7796bb439bd66c40b202ee41878cc35e01000000000000004f7d68f733bb0699f0a1d85f331e073ebec15f6663c17179753f7f38abf3331701000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000ef84e45f4eac4fab5087750324ff846605ef3292278d4bbb86b0d3e4380a63a601000000000000006a5dcdf2c3598c00d31a010dece5bf744f203856712531b07a31babcf06d09e30100000000000000193dfdde1c1e8f0d91530a15b8eab00e255cc2dd6b19e689868120922f79a5bb01000000000000000081007306a6511d6ff1d060d86d4226db05fe4a989fc17d1c9d5a8c01028bb20100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000dc7dd4a44e826713227ec95280afc6de7023a99d4eacf69b2b4f9998fefee5bb01000000000000009050aab3d1deb0f610b3814843ec7623a7c33e399cca6b21cb56e578fad2675c01000000000000008a8f8f282dc3b0a3c10bf6a9065b3693b0d09352d51998cff2e2a281dc8a9aea010000000000000005d8d6df257d4d2bd0d052de5e34531deb8cc3a51d05835f3009a19668d72c1e01000000000000005c0ce76a2fbef3a0df89ae8c2bedac4e288c3679c33701980624c9ffcca9103b010000000000000042cb152fd12e5ce977d029108706efdf20a97246b02628320010c7b1eb482dbd0100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d0100000000000000f8e50e8b63b242e30e5bd266584b6fc690817455d2eac1e04d146dfc1dd3614d010000000000000094d296df9ca6256129cfb8d81566c02c3693e86b34634bf36714a56a393369980100000000000000761ce3eef4bd0d15601aef70728f54ca72a9859e90841c3d02d50602016718780100000000000000c3e139305f90217b77c92a8c8879c7704862b1609d2179d472dbce7457a1301e010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000b254966470ce7d8f603efbbf53a66a19ca235134bc0f4980de8133941dabe247010000000000000033068e4106a25ebc442c7f0e6961a890c35bed3ea6aed04315351abc73f217f101000000000000008cd1d1bd7f30c41e9cdfed22057ae859aa48bc5fc43568da05cd3de40581ab530100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000062aca2798b15062d38b79faa681032eae9f6d465451fa864dcc1ac58eead451701000000000000008510e46ac2ec2305c93ed29dff9d0ff30c098fd61e55cd2d891130301eeb3a6c010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc1890100000000000000a29c2c891e620ccb15c1f8459b93476359e7678defc7176e74a7467b8d46a13401000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000d207ebfe07d6c8bfd5badd7a25373ef5a9ddac08da3e542e5a9d36439259e8370100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b6301000000000000004d5bff97dbb9611b6ce30d0053ce0251e784d2e87156d951aea0f94ef588a3d5010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000b79f919442f4ca5ac9195fd09a1239b1a80bd225f8372f1b36a24a8c55de61f20100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f601000000000000000508e81a6bc4971d3a3d986a1eb4cd13e7ceea563a46b70e1a0d47a212be51c8010000000000000027dfab9dbc403f53966a751eebbd5752c3ad1c8d6a2abdab952d70ebb059ddbf0100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea45670100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e701000000000000004d772fa77ce73a70af294a88f933c69737a2fa1754fbc6cafeaa022bdf993bf1010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000a0a6e658dde71078f3c318f17156ab31f9b26a420c71587403b7bcb7a32d5aab0100000000000000be7d712c12ceac823e847da641bcf8a87d7a32327c1ce623232c7c97a5389c5b0100000000000000cffc9fb5e5403c75c8a4e3a270affdeced91b6db5ef38cc3058c36b79cf77b6501000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b1901000000000000002d12330b8029ef13e02675c6df0e10c6fdbc10e974803730866e603305ff4471010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e36389010000000000000093c48b75581fb7e9490637a807b79811f8e1c6222878ba9e7c32be8e0255e52d0100000000000000739571b412bc39a7e64c7cb0be6306df344ccd6b8dcfc1e23668cff89191539d01000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000d792430e6188b156d423119d7279cee78fb301da567c4951e48d29b735cba4bd0100000000000000199c45d7a26e5e5bea75cfea32503ad44b53086db481728eac9a7e7465c870740100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000f9596b41435b16c7dba7e9281aea3ec21ec934f3a645735405c78a4fa6a75c6601000000000000008373f04ddb4f6c7343ab7da82240d4d33d4b9443f3157069d950671626a616350100000000000000ad9fe11973ffaa47d69271ed14df5797011e28bdbf3316abfb551b211e67bd9d010000000000000099db3968f4b18d8976ae0071a375c5aa49c415a8d988cc18af8dcace497b9625010000000000000040717496b8eb32791c7227ce81edaa17f7ed59d33850b81432085b3a06f2a3530100000000000000c4b79a0370170c59bffd686732dc48820c66a734b629e886fbb4d62a537a2285010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000dfbc91b9b64fa882c4bef8bed6638094ed7f23cc2087ef9a1511fe3a727ad7ad010000000000000054bfa11922b74f3ce2877960cfd0e4906ca2b4d559ce8a2d86f650d40e23bb3b01000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e0010000000000000098925cb65fb04700ece59433467757b84ea6f49627d0b0c57ef6c9c193107af90100000000000000e6489beb573734e417fa040e59af4e44789001fad63f5df871818cc70714e6d001000000000000005ee516fa4c351fb4adcb522658cf7531eac3b2b3365a647cd8d7c7681e146458010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000ce83633176ffce5a8f4baa938996b8c58168a32fac0b112aaa32096770af816401000000000000007104becc86b2517ee166201faadeec93e4150bbde0fed50e99f68f427f5af87801000000000000001c75903a1322a4100085e96d389b7ef1f2ed20d4db433f0fcbba51bbf2bdbf520100000000000000dd38154bc6c5bb16c81a06f3c11fd6e9114b7856afd3456982ee630dc7fa772e0100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000004d960a5b5cfc68f32236a14f5e094ec24c9bd0f73df19086c27cff9a78fd5dbb01000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c4501000000000000003c718ab91d9b10efbe954734920955972fcb714627739f8cd97280ea67aa5a020100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000b14d7eb2d5f956e23a7407b7cc5ba971171d0ac45169351ccc6f836c9ae796730100000000000000546e44e42280120f4062a17d14ff7ab73aa3c77bc8979c5fe3c5d4b9381885bc01000000000000005f8b4eb3fd95ad72379a971f3358b26fa1a0bd6ceb63138a6f626ef6a014107c0100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c70100000000000000fdb6ae85ec3ae50541230a9294ca4efcbbb3ae21063cc161cc6ab05a03f273da01000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd880100000000000000c9936bdf746ac3e7214bea7c0eed0d5eefe9b23dcdf6841a58192a729a0f732401000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000e38a7e0b1d2bad01565b8536e0851dd4daabdcf5a4ab415eee0357082d95d3550100000000000000068f911f5ffd2e94be67762e2eb02e792b79ac8983720f40615e27ad203e03c50100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000aa7c33f99de85adfe5ab929090294916df6bdd9a1cc75f632058509f4e1a9bb40100000000000000617addbf393ae731ee0e7dc2c2f7544dff2cf17bc32614d6ca9bfa8ca3a04a7601000000000000009d56cbbe3020b94ea8cb122df6527ceecc8cade4632e81f23b485e773d27b58c0100000000000000a986ea6527c84c8a68a11d0cd2980ef14d636af7d4575b1ea482d7142e1a93da0100000000000000db8e840e99078eaf04cb3f1a4d7973607f3e54060b8d100a966f370daf9adc8f0100000000000000232b04be856e808b2616319b11eec858097a8afee5c18f0af0e1c33f1c6973ad01000000000000001c7f2d9bd18be698e965e046d582013b73031a21e8b7d188391c05cf2707ec6f0100000000000000daffd43670286cbddbf38953e6e33ba093f8c719e9fbf0a4aa76ff3ee97df30701000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe9010000000000000045240caa435f1c29f47245750c44f654dc96ef689c6abc98db189a4134e941db0100000000000000a32eb40a03a7f6070b6846abd22ccc91ab124779c27752e0744928a8230ffeb50100000000000000b48574503e3b787008ed9b1fc9eb4b0275fadecfdb352f166973da58d1a43b650100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c900665280100000000000000806ce924955d90b8ecccc1dea46bde529c5f4dcf1cd63d559bcee8812431b3d80100000000000000960f1d9f4c9288fcba7388e401ba813fef90268e2dd60b338012389b2241ca3b0100000000000000662c682eb99cf0516be481d1c3201c37888a0aa4f12d165ef239016ae96bdce901000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b01000000000000007721a15e548a6313461c4fed9f39112ad43b09e9873279f8cd28702ead9a87620100000000000000c2b23d1562573ecf2f619459f1072a7b835dab5a122bb7474313fe7cafde772601000000000000002e67b1ee2cd70ab302b783acf6494de67d8dc29578f10c20745f809d094ff2740100000000000000e4c473b0f002fb85e5f5123b448c8402b44d7f1dd380e991fd895f9bcbe4cc87010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e55180100000000000000dd080000000000000001a657610100752300000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b014108000000000000f1044c014208000000000000863c4c01430800000000000074744c014408000000000000d17d4c0145080000000000007fac4c01460800000000000022bf4c01470800000000000078e44c01480800000000000028f74c0149080000000000008c1c4d014a0800000000000087544d014b08000000000000da5d4d014c080000000000008b704d014d08000000000000878c4d014e08000000000000309f4d014f0800000000000063c44d0150080000000000006ffc4d01510800000000000070344e015208000000000000476c4e01530800000000000097754e01540800000000000025a44e015508000000000000cfb64e0156080000000000001ddc4e01570800000000000070e54e0158080000000000001d144f015908000000000000284c4f015a0800000000000043844f015b080000000000005ebc4f015c080000000000006ff44f015d08000000000000a32c50015e08000000000000dc6450015f08000000000000f19c5001600800000000000005d550016108000000000000f70c51016208000000000000014551016308000000000000a35751016408000000000000d87c51016508000000000000a7b451016608000000000000c8ec51016708000000000000ef24520168080000000000003f4a52016908000000000000d15c52016a08000000000000c39452016b0800000000000029ba52016c08000000000000d7cc52016d0800000000000035f252016e08000000000000e80453016f080000000000009e3353017008000000000000f03c530171080000000000005c62530172080000000000000c755301730800000000000014ad5301740800000000000018e553017508000000000000bdf753017608000000000000081d540177080000000000002155540178080000000000007a5e54017908000000000000288d54017a080000000000003fc554017b08000000000000f7f354017c080000000000004ffd54017d08000000000000463555017e08000000000000356d55017f0800000000000035a55501800800000000000088ae5501810800000000000032dd5501820800000000000089e655018308000000000000e6ef5501840800000000000045f955018508000000000000a50256018608000000000000611556018708000000000000c01e56018808000000000000de3a56018908000000000000954d56018a08000000000000f55656018b08000000000000c98556018c08000000000000edbd56018d08000000000000aad056018e080000000000001ff656018f080000000000007aff560190080000000000004d2e57019108000000000000876657019208000000000000c19e57019308000000000000fdd657019408000000000000ade957019508000000000000160f580196080000000000004447580197080000000000009e5058019808000000000000e37e580199080000000000008ca358019a08000000000000dbb558019b0800000000000008bf58019c080000000000009ded58019d08000000000000d82559019e08000000000000115e59019f08000000000000d78c5901a00800000000000035965901a1080000000000006dce5901a208000000000000a6065a01a308000000000000df3e5a01a4080000000000003d485a01a50800000000000016775a01a6080000000000004daf5a01a7080000000000000ac25a01a80800000000000083e75a01a908000000000000bb1f5b01aa0800000000000072325b01ab08000000000000cf3b5b01ac08000000000000ca575b01ad0800000000000013615b01ae08000000000000ba735b01af08000000000000b98f5b01b008000000000000e9c75b01b108000000000000a1da5b01b2080000000000005aed5b01b3080000000000000a005c01b40800000000000066095c01b5080000000000000e385c01b6080000000000006b415c01b70800000000000035705c01b808000000000000528c5c01b90800000000000069a85c01ba080000000000007ee05c01bb08000000000000a2185d01bc08000000000000bf505d01bd080000000000001b5a5d01be08000000000000dc885d01bf08000000000000fcc05d01c00800000000000016f95d01c1080000000000002d315e01c20800000000000052695e01c3080000000000007aa15e01c408000000000000d5aa5e01c5080000000000008bd95e01c608000000000000e7e25e01c708000000000000bf115f01c808000000000000de2d5f01c908000000000000f8495f01ca080000000000004d535f01cb0800000000000013825f01cc08000000000000c2945f01cd08000000000000b8b05f01ce0800000000000008ba5f01cf0800000000000058c35f01d008000000000000b6cc5f01d10800000000000034f25f01d208000000000000642a6001d308000000000000c4336001d4080000000000009d626001d5080000000000005b756001d60800000000000070916001d708000000000000ce9a6001d80800000000000002d36001d908000000000000390b6101da080000000000001f276101db08000000000000fe426101dc08000000000000494c6101" + "babeEpochChanges": "0x0446041776992c14f3609a24257a4d8c195ba792ab0fa4abdc892dbd1e22247e7a345464010133d732110000000093e0321100000000040c1537f118ce3a3233af61198337ec041a85dc284fc63945b5de9c1c59a1e5e9845d64010193e0321100000000f3e932110000000004d06811786eb29a6d8ce62d4b8021a6834aa9d9f5b96bcc24e4b7c286f6faa569d766640101f3e932110000000053f332110000000000000c0c1537f118ce3a3233af61198337ec041a85dc284fc63945b5de9c1c59a1e5e9845d640101302600000000000093e03211000000006009000000000000cd0732904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000ea24dfbcaffa4d280e19babda83a8f879453f9c5f71901bec59de014878a6e050100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000056471f7f5a936d621b95618e47258a382076b7c44d8c7d5fc69a87255a8eff080100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f010000000000000046371ae57e3d4c98d3bfe936029d184fcba10db1d2e6dfb5e722e6c3b08d9b0f0100000000000000cad93fbaf78ceb031a3677b27a9e579688602099c97258c746b080422c34bc4d010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000f8c623ecfb4af1c19ded044923b34660c436466a9a5bc33db15f0a73200e10160100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000906ec0a56171d27f65c29683a31c71a87a4e32b273596a0a704ff07ba344d0660100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000beb7d66b53d3c34bb4a6b49df52a8e77b1929d1f43a6a3191c1cce6b8b9df72e0100000000000000c0ff0ad7de8b9403d14459655c0ec4107f119e74406be3161faf15b5ddf1395001000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b0100000000000000ae26c00acff780da2bbaf6e48362ba269753fa107a0b36af86d522736faf3e07010000000000000058cc4e48b26665ec1d6c2a128f0f5b70434ab4a771743429058b963257e6563d01000000000000007a671254a088683867f217886e057e15f53da13e2ae54ad0abbb065f4585bc0e0100000000000000228dfe58ff0326d8c8e0c51476692d0610424b01244c52c561f02dd133e83e0a01000000000000008679d78aa6d1f7ceeb9066f45fe66d0096dd1b41f7463e379e0735a11a99f0110100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000036ebe7faf129b9ecd3a8bf421eae5584d30c5ac5393d540dc04b414db2dc8a4c01000000000000004a2f2312a5f7eb7709f4c55f54c6a2aff8ddda937bc153e57aa7b8f4b32e72610100000000000000e2b359b93abf559cd326ef07a6a46784b945518e1f1a4c04ebe42390f2574c5901000000000000001c25244f41a7fce087c666e0af7dc734b7db2452e1685edb73b2aa2490a8ee5001000000000000008084d934bf7a7ad960de3b325ad5109d10eef00e90d6ab776240b7bbeb6a6a7e0100000000000000c66476c56a07a8e1a9e57bec84efe2817bddb252ddae336d0e64ae2905397e0d010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000012c9559511672dbbb77405eb107ad6ba1f72d459c3c8ef33a6b24b7f9bbf6f5e010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4be6f891156ecfd5f9ff661f780884578ac18dcc999b7f574510196c5243c2201000000000000009e4aaa177dbcf990475d3d6ea36e9d0e9d7a2e5328eccc2391e3a9adbdf5295f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000016e3f8f5ce2e2b22b816bed27dc767115513198ec47d2795ba9edcccdde2d158010000000000000060c4c70ba2f1c3b306cec5a6f146b0eeba1c25d6709c3cb55d087b44bbbc946d01000000000000001e1c3912b5cb14932599f0e4497460888578ff45d5f1a596f751780c940acd1501000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee4900401000000000000007422fc1db85ec78f23e3ac6e22bc1582d4fb955acd7a4ad35f6f81ce8471b2590100000000000000c08c91ecf8879f5042960c3d61c0e74f125463ca2726e6655fb922af5cdcb85101000000000000003a7e03cc1411df20c3f0e1463d604fb34280b9cd701b9c68d77dbfc534b208180100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000ec8ee214c34aca7625567c4529a63370cbdb456bea2b888ac9738ccd17682e2201000000000000007883a3f09e524202160a0a818ebaecb8be2749abf2f0bc9f1e670c4f52ea6c4a01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000d699341d0606cf3ae54ef081718cedb138a029d7e107ea8324ec5cfc2f3a1c3901000000000000002c3a1d094c488ad9d608625ec41a4d7b85594503f287ecdb30332f4291bfaf7c01000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c010000000000000080ce639d1064246a2e41ee3528fe677513c89aa165fde5559a9da0dcdab2206201000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d64010000000000000030ff7c7cdf5dd960f6eb4a7d79a638542aea5a7b0ec75d63f47906f9e999537201000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b98100100000000000000d8632901dcd20c3415349407ec167034633de91f3aa55f64c8bb35882c1b0c19010000000000000064d54109c3f4d89a9e36206a4c42e4ca0f74699c9e5f9df386fc154e6d51f43a010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d0100000000000000e2b60ca56ef300d729ca5b4d5366df9fb9c992ac254c5c477599f795746d730201000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000009a0b42e88688d547c31a1bb811fdd062908e88a115e1aae39f7bdcd95b927d530100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000ecce43c0be3c9134a0d62a0b6463edfdbfce1b2b1bf5bac37fbd1cca48e67e7f01000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000c6cfae23e776800744036a6881d20a0476c1852cea187fbf9db79c936c51db0d0100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f01000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b181450100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000040aacd312f15eb011e69b5dbd8fe8b59637e06259954e6e3d8f940e4dfbe2071010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b60701000000000000005e6d779219b00ae1d5e6320faff3b6eb963d3acf7705672ff56d2cb46ac44e5b0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f0100000000000000b07e958ae811c416d6f39529587b65efd34d4f14de60c00be261b5d9566c4256010000000000000032636c64cae326ea37dfa4ddad688feb9829ada7a7d580a91ce03a50a673d01c0100000000000000246615914ed30f855044df3bd63491ca8af4af5614e2a19d5c9fcf8950d13d2a01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000001e7b9381ff03ccb2f27fa0142dd09c4c0b6672a4cb3a099cbfee1842ef55410001000000000000006e2b112768cfaf7d202d5d321bcb702c292e450d162b844f8ee903e18c45415301000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000aa7e2ba0ac23106e76a0efad2d34747769f669773802cc4de44aacd6bd3e3b780100000000000000f80643f72c8dc15503957f39e6d9ac6ef062c43c516a1693e87d2a3d26e9db440100000000000000e487051ee8f32b1f8d0af5e897b49730512303471416e689ccfd0bc3f726f447010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda3001000000000000007ae9be3d7ab975804c1aa74caf9329c2b8b5eabd1a799337f5a102232efb04780100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000008e2eaf4ac96e0c79da47d2b76956b3578b39ee4979826d5344254fc37d508c04010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b01000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b6401000000000000002a01b311e75c72271b3638f584b85169e1118dc5f850862add04c9a20e33b131010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d8500100000000000000583ecb6dde18a2984d5af56152b337cc90422fd6e937b5e06c1c6caf50be212a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc83186910301000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000e1b958cae4235db85f6494d1d9af4d435450f10e39485735d7ebe0b6454933b010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000003873ac08836bf81aa2077f9e50a55b47e02697ad9fa6704c7044fca0c93b8243010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa74010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000c6c503377e12c6da1290270f166971767edbc15abafaa5503376e56f02a99e0101000000000000009e02cba73dcf1d6eec957735bb3363e66c2633173f821d0edd97e9fc3fa1242c0100000000000000ae46c529ba59b0317f6aa431f79802e087355cc32d78258809da6a9b04b8f2600100000000000000a6afb91b338c8d924b5b2219536e815a3688eb3b145ab136dbf6eaa5708d992e01000000000000002cf9dbc1e451ba3ead20d5d826533b9315699b3ba0784bd812e15ac9ad31f85d01000000000000008e5f0b817e1f12b66afdb60a3406ced3d491000cf12866ada159cdcaa3bf010c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000c282c0fdd6d42469ad85bb9815f18c71dc04b3340d1c96f33328389a325b6a360100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000784b97e0ab7724051138f53108deef6fc47154e007d4d1fe36c9975c0abf87120100000000000000f4a56a8dcd84f47bfaefefe6baf25b985b7c41383670fd4a4f69b2c66c33800d0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000042e7c894dd88fb2b0c7dc7a56b44269e0ee606c73d5a297cb459dbfc7649a170100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a010000000000000054a4e00f3df9f09e23118cce02f804d36c4968894a621305a0e8150a2910dc6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000269e8d252b8a4e91c2ebdb7f4b07bfa9201b88bd436e6c4044e70364c746614e010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000fca3b0bf7a3b4ee818a50f86de0be2f976621c6f5a3e768448732252e099cc1e010000000000000024001694a6c028f4ffd94ef747d7834e6d29c794363d527aced13a87b0770057010000000000000018820322d29e40465465fc5f0b488431e710db471615f780451342f5690e20350100000000000000d632182c133a20838afa52678dd1b9b5055571c637f1ed1a1746490f3fa02a03010000000000000084d777d943e0507c27e43f6e6ab2ad2683ac9b37ae47cb5f063b636902672f38010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa55701000000000000003271f7e7c7adb2462cb34fac3cb910495763e1c661222ddbbf3aa7cb70a3a40601000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de48575320100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b01000000000000007a48b0322f745ab3d669c757477111165ec3bd4f2d32ef4ecd1c5024214fbc320100000000000000e0c4304540bfaf4e2ebd05b751ec785969deb61cb8ef26a90c6d18eed5d7195a0100000000000000be81ef32949a7e41f46fb76649406ea4668d1a2876e442ddfc681d04fad5ea7e0100000000000000149484c2ba46010c32fc04d587c50e3892710c7188ee952323a494b2ff12186e0100000000000000620708ccbc822d0be9a49eb46e73955d4cdd8735a5f2cfed44bb656a71501a7501000000000000009c3cf78a64efb54ea98242575dce25ecac86c57f19e6a26cef67792ed4fe5e490100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000425dab5a4c28aefafdfce605ac8c4eb7e83d1eafdf8964f4c7086b20f1e0ca080100000000000000847f4b6d72993380e0e76fe2d885e429796335dc10f470005e9a268880c6fa1b0100000000000000c80a16a172ea19de337c120de8ba72df1b81efb23ff74e0ee7cbf36e666ede1f0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c44010000000000000056916604af8d4470b2ce0475043824cd9ba9b6f42215a408d1b8e2adf33d00580100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f25844320100000000000000a8bbf134d2c82050f455ad50876ce102de5e63600d2226ae2d6cf3f52ad6eb24010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000480defe8739c9518d5507480bb9c68ec408a60b944824521f1184b74bc47f2170100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000864f740e1ada63a6dda98997c8677d3915b6621b7c083b32d1482817ad3719590100000000000000087b213d68d9f79b2481f6fff4f09d0e4514f18bdfb64db3b192e62df4b8b15201000000000000003ae7d174f16f034ff7816b8d9ef1b4b2b15ac5a16eefe819253b03d958babc1101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b159040100000000000000e074fee77ec1d84c2c2c02e258de68c7c4ae907f09224b362ae11d52a2a9bd51010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b2401000000000000007e5a932dfd5ef4d3cbb9bb59ded1cdb5da5fa6ee276cc2acf84ae0aefcabe12d010000000000000056da6e5ada211131376b8d0571118b69fe57fae1393d23572b484f394857904801000000000000007012639e84e32c5cfd60362b4d8c7382fae32e6e3a70485742351efe2f2e876c0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000742f5991a21e102707bc1df8a9565fbfbbf705884fdabd13ec223783f96d3f620100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000903494164bf02f34dd446783b12875b6533328f4e17fd3a24bbd67b4c142cd430100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd754590100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d6901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000014e5caa5709b3d5a8e50aaaa9ceba368e2d66f964e598f861938f093dadac32b0100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a252010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd412854320100000000000000ee5a96cb89aa5c8f6824d3806a83a6cefa9cf01842abde63b7bb04561553c45b0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000c4f8e32f62768764f9fb32e8278223ab4adcb1079cdfec1fdeb7fe9bc043826e010000000000000032dc47873d3d298c15ac984bf66ef0610883d7bbd2fac924d1b37db68da1090701000000000000006cc7929dd456080aa9d29c03db15e194d7a8ccb8f878f40f517f3aa4001f642c010000000000000034051c4808e8bc9fbbf089cf5081ccd41f3b5b4c68e94995cda0ef81f20027160100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000cac818b01090940ea08c65890e25b2ed3ba9f237fe2a2a3d17b394e74170760c010000000000000074e859fd23da9f3b5c0b554492134ec981deca6fc0d8e4fc6e33ca517a0ce26a010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000382b8f985fea8cf2f2f59db8b2152cd72b1f05f1ac28e7cfe70613699d060a0e01000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000a4945508cf103aabe69457d9ea2b46425d9d26e57f89e6b1f799ec18219ad2550100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000d05c87ef31a1a024e2242edc6bbbd1c392c579029b9f6b104157250597082e5101000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000385d6ae328e957b24389a12f9f952a20e224e5f9048b1bc6b9a8748edb2aa32f010000000000000078294f515c659b94bfce9674db37a3cf2f32d89ce1758ca53d1860037cf1d42a0100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a0259010000000000000032f6d7c068e7b684c061c290891681b3791c250d9983383bd40bc884fc9314060100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000babd6c9cb58a2635db60d13014684aee881af96c78af8c8b9b31073069167e4401000000000000005440e71292507c1b33554e8d95fd85ca3de6499e1b7c838236051dab5fa3f37c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f0100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000c20fd613476824c3893eced88eec1cacc491a796df8e0b7669ed6880ab0cbc460100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000ae44ab56beb3cb760004d61723c94454bf803ddb649e4d2aee24b4983fd91d5101000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c01000000000000001e8984bd112502c5956817aa0726d51cb31076bdbb8465bd730500ff8bac93070100000000000000ec25078562fb511f0945c3af78d77c8e02f570c647957c0932475aac3ce72f6a0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000028393ee5fcd06734e381651c82cb89b08bdcd64d1aecb4727fef82ae5c44b4501000000000000001e7b8aa5fe2aaae1d5e3c8b1e38818114e83d9bdcc95629ed834aab37e2b897501000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000c885913686cbadbcae070742549b5695298d4f24d9efd101f9ffe2466a42995d0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000000eb1769332c7154bf3509f1892f992f58ab94e0705a1d2be18dffdedd10a3b210100000000000000a0c28669f01d5b4decdab2abfd9d14b989c1d4b32323f264b24a788de0b9d2430100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e76301000000000000002425e806f3e7378d8974b7cf541d0e4cc4773dd59cdc705e006bcdc83610b20c0100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf5400100000000000000847f948b67d6f455e2f2923f366dfe3c0a3925b451210a46cd36fafb8cd8290601000000000000000a2309a52190564577602c900c42b5de7605f5b9084525af757c8b3bec77267801000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba295973010000000000000082806bf6db9df06d719fb5a367d5f2086cd0fc5327f4b450a8f2c03d40cbd8440100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000010381a1fde26d95804978d4ccaa1d6e634efe2ac922f7dae4da3cf3a64568a4e01000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000008868524e56bed527bb3039e7d01a84af44e8e62ed00b1f44098c47789e4b201001000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e01000000000000000c6cc2bc932adace83516fe99076d532e6197ae08d66610988288044c6bdbf36010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a83701000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000008e67bbfe6269ba4ea2b216e7cc21a54ab882859d65a691ff2eec486f66a9035f0100000000000000603fef5a531a03b8e83a8b66f583edf78706b93a11eff454f5a56093a6434a3a01000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe42010000000000000014db67200553d8a3f3543ab37a12e21b3a96c2b6583d66d59e399afc3236084101000000000000009664e4e01c42d9a22435a39dfb1daa6cf043abbd01c1b081c28ee271988b415b0100000000000000381a3708c945f1d295122322f3b3b7e161a4f2556d6f8d8ebfe052377ed37b700100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c460100000000000000042cc9a90ee7801f29bde1f77ebc42e68fc8432df113d23b82201d1a10e33d0a01000000000000001e63ed13cb9b8d544a73307d348a241d87d3d1063715d686572e705b37b7483e0100000000000000bc633ce058ec703568a94b656988f1b4036cd9f74aabe8a7b47e733883368654010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000002488a8bee91b989dff6adff396074f3300e7938a962ea3728943f37a23a7763e01000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb20140100000000000000c28c2dbe1a9bc290af0d795ef11c1d1b694b91ae685e891e599596aaafbab73b010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b5001000000000000004cb3593968c0254cadc7f1a2270f9a89e0909e12a6eb5ceb7f723ab6ee9b7275010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000086878a1db805209e73ed72140b8b3f4a4554644c5c85c451c501eb5c139ebf2001000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f0760100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f86130100000000000000fe41dd46b718d84c24aa03362cdd14b500dae15a8c7e28c61156c8c73ed37575010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000a0899677a7d42219ed8116f3776d28c204e2a84fcbc23fa42632d2622422701c01000000000000000e21a03fbe9885a475c4875f3f912c8703945e99cd2a85f75258fda7b6022b7c01000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000060f61684be94ec0178eb24d9f32e0de63d05b4f7ae00fd0fecba90ac54d082a010000000000000026538b2b883a97c4e4ca0c01a9e136d42832e07156bf9df23bee062df009230501000000000000004238af3c99ee0067953ce92d9b79d89205918431cbb0fdab22183e1dd7ab95560100000000000000b0d9dc44559810ad536b1c9792b5624cb087972bf5fe3ee484f9214497d6f8380100000000000000fcd89693d424986ec38533d73737824258658dc40fe6f039d6007bb60991610701000000000000006662fb9cec0c42e04f2831dbff4d4fce4d7817e293a4278beefbf793d54ca60901000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e0100000000000000b6688ce42ea01b1822699182c562585a27081ce6bb0438761436f4045a42f24a01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000007e4e053087c2a301c9174aa1665a1996af0aca87f3a3a44fddda2509eef9e60c010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000d00d2a5b40588ad87345f53138b854c7ce513f29c7f72dc5f2b7de6662e092150100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000a07fe18d0151b0bbb2a2f9604122716fa2ae881babe7e6d84a22cfabdcd1267a0100000000000000a6d081ebe46bc75c286a6021ba7dae80f71868ca4377dceed8633264dec1757601000000000000005a9973a287fcc694b86f67d1546a0a9398f6c4d06de13fc022ee52197cc022400100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009875dea5d493af94567673bfcaf096919a921cbb806f55b7488bb0a554fed66c01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000643589f0627aa555aefb01d2f0a366eacc252af9437ec2a892935da2a1052c170100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b01000000000000001810712fbe92f2394892a99e3a825490baf1efaf7a3dd1c9bd0e58da0d671133010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000006aa6ad6068f2de9c70806108a4040f9d319336a2d9d2ae7f719d05ee777379490100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd270100000000000000cce3551554bda5691462265ad7205e116abb061fe4930c2174b573360b4e9442010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f120100000000000000e007b4f50dc6d38478ea94ee8197ee6325e8c6b5c39b1eb28652a5ed2052656b01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000d219976f2d71e4c2a29c310682b58cb4349cb02117b5ce66b1f9061a2f827f2501000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c8716010000000000000086088c15ab94ed86455e4473c198b99730e99585b88d6fa465ce429d268ea27d01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000946218824426fca91a00f856a5a92173c04649a2500adeece86fa30d4c08b473010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c01000000000000000e809b8014f6a5c69760fca981734e0c8c41ff6d5a7d53d261790a843cfe560c010000000000000092439f4dab2f4b2e8d1bd040505ee33fb2c1dd56f3946826cc27288422313b3a0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000094b4d71ff20170266393c4cb481cbc68d0f04264e067f456dfcbae3ae0af5739010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000072bb32222caca7113141263e12a4193da7f29806dc93cdd11fa9653464344e32010000000000000000140d4493060751979098f686733955e6e71d01bbaa8a3e6cb297400c5c624f0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e0100000000000000020ded3e18e0159566d7bb10809d33f0d3d97941074957a1422e26ba98632a3d010000000000000044be9c0d73b3bcb4b612e5945077e2d3f48778a95b664180ebc63a389234354d0100000000000000428992924b7c66ae24e3c55a9d85fcd8343ab1bf0089a8e5038313d1f3fcf9700100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000a45c9bc40f46d50f1dd4f7b5d11d9eef1f5816b15e8a35c87a5fb16d1893414d0100000000000000d461866e25c98bf187b844b145628d87392441deadff7ee739639cb457edca540100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c4031401000000000000009452d0cd850a8a3fce455d099302e7d641242037956cb39f679f343e2af960140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c996000100000000000000841c2f0987fc8801b7ce2ff50450d60cf19ae3f39295d3026a6d45ada6fafd6601000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd8160100000000000000deafec3833f9925dbc5d185762c864d1294215c8eeb3f63da6f4cd5fa78eee3b0100000000000000aa3acb57099ce4ad430146aa2038d7429195a7ed35ad50e983d745b2a664362f01000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000006029513013f081e5d5d74173847405747513aa814038c25500522e6fe2aaf3790100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000005a3788f9347ad802a56974dfb4ed19b22fa91c20e5c8dcffaf4208f25471432601000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000004c0b37ebd9e67b237a2b3a9545c269bc382735bc3907baf9ee468bae0d8feb2e01000000000000002ee95f4c696a2ed4020e1efccab52a937a700f41e5c62c977fbdb3621f42ac3a0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000000ca2e72555afd4c7356ccba76a2f1bae9032ec5f3067c2442354dbdc22f39c4801000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000006ac27e3d6423f2d9488d1bf42dd6f2d3eec911c471b51d69cef6371ff242a375010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e610100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e058420100000000000000082a961d1e8f1e62d7830fa4f5cbceabce8fb3a0276f2ecffa5e1e55f047396e0100000000000000502eb616eeba75c7a2b59519d75bc5b87104f03ed4fd8b43eff48661e9d6c81f0100000000000000e0d61db94d9d80ab04157bc7a76de3b1add4e0a63687281deea4b9268af3934a010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a27301000000000000007e8ebb46c80883225df2fc91fe7ede9933dcf073f3d74ea3db0525585984e74c0100000000000000068245d8a483bdbd4e9d88b49e17a651ec168f25e6851fc52c2e36a516031d5e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f01000000000000007617f9c34780fe008d18ccd349047f855345db0cb9360a57a63179534afd714f0100000000000000bc3cdcf9f41b5f3f073a7f6a29931a6be12fbcdfc1dfe7145c4e0a527e9e243c0100000000000000fe48a8afb06afec4206732c62a599c7ec000ac904ef844c961eab7c44b326b5d0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000036f70c891387999ce70477e53ead6e04fdc79ed8b006a1ea975d2f834d2244270100000000000000f2861581593678b86f3186aa9a1ba7c49b5a58aadbf079053446bcc899a969640100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000007cffa67942272b1974dd65c87828e1535799e008d9e81b2818f5e308ed4f390100000000000000cc840ae0117378161b86a52baa6decb97ccfc1101325256f178ba8f67761671d010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d010000000000000096b9efe3e08609cd61aa98f3202618d928074308d9f189d97f7c1e52d2afca1101000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000071d49c08d5ae0db4839c9bca28d56cca8618d65b8c9807a445ec840d84bd30e5010000000000000004000000000000000246041776992c14f3609a24257a4d8c195ba792ab0fa4abdc892dbd1e22247e7a34546401012f2600000000000033d73211000000006009000000000000cd0732904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000ea24dfbcaffa4d280e19babda83a8f879453f9c5f71901bec59de014878a6e050100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000056471f7f5a936d621b95618e47258a382076b7c44d8c7d5fc69a87255a8eff080100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f010000000000000046371ae57e3d4c98d3bfe936029d184fcba10db1d2e6dfb5e722e6c3b08d9b0f0100000000000000cad93fbaf78ceb031a3677b27a9e579688602099c97258c746b080422c34bc4d010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000f8c623ecfb4af1c19ded044923b34660c436466a9a5bc33db15f0a73200e10160100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000906ec0a56171d27f65c29683a31c71a87a4e32b273596a0a704ff07ba344d0660100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000beb7d66b53d3c34bb4a6b49df52a8e77b1929d1f43a6a3191c1cce6b8b9df72e0100000000000000c0ff0ad7de8b9403d14459655c0ec4107f119e74406be3161faf15b5ddf1395001000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b0100000000000000ae26c00acff780da2bbaf6e48362ba269753fa107a0b36af86d522736faf3e07010000000000000058cc4e48b26665ec1d6c2a128f0f5b70434ab4a771743429058b963257e6563d01000000000000007a671254a088683867f217886e057e15f53da13e2ae54ad0abbb065f4585bc0e0100000000000000228dfe58ff0326d8c8e0c51476692d0610424b01244c52c561f02dd133e83e0a01000000000000008679d78aa6d1f7ceeb9066f45fe66d0096dd1b41f7463e379e0735a11a99f0110100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000036ebe7faf129b9ecd3a8bf421eae5584d30c5ac5393d540dc04b414db2dc8a4c01000000000000004a2f2312a5f7eb7709f4c55f54c6a2aff8ddda937bc153e57aa7b8f4b32e72610100000000000000e2b359b93abf559cd326ef07a6a46784b945518e1f1a4c04ebe42390f2574c5901000000000000001c25244f41a7fce087c666e0af7dc734b7db2452e1685edb73b2aa2490a8ee5001000000000000008084d934bf7a7ad960de3b325ad5109d10eef00e90d6ab776240b7bbeb6a6a7e0100000000000000c66476c56a07a8e1a9e57bec84efe2817bddb252ddae336d0e64ae2905397e0d010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000012c9559511672dbbb77405eb107ad6ba1f72d459c3c8ef33a6b24b7f9bbf6f5e010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4be6f891156ecfd5f9ff661f780884578ac18dcc999b7f574510196c5243c2201000000000000009e4aaa177dbcf990475d3d6ea36e9d0e9d7a2e5328eccc2391e3a9adbdf5295f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000016e3f8f5ce2e2b22b816bed27dc767115513198ec47d2795ba9edcccdde2d158010000000000000060c4c70ba2f1c3b306cec5a6f146b0eeba1c25d6709c3cb55d087b44bbbc946d01000000000000001e1c3912b5cb14932599f0e4497460888578ff45d5f1a596f751780c940acd1501000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee4900401000000000000007422fc1db85ec78f23e3ac6e22bc1582d4fb955acd7a4ad35f6f81ce8471b2590100000000000000c08c91ecf8879f5042960c3d61c0e74f125463ca2726e6655fb922af5cdcb85101000000000000003a7e03cc1411df20c3f0e1463d604fb34280b9cd701b9c68d77dbfc534b208180100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000ec8ee214c34aca7625567c4529a63370cbdb456bea2b888ac9738ccd17682e2201000000000000007883a3f09e524202160a0a818ebaecb8be2749abf2f0bc9f1e670c4f52ea6c4a01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000d699341d0606cf3ae54ef081718cedb138a029d7e107ea8324ec5cfc2f3a1c3901000000000000002c3a1d094c488ad9d608625ec41a4d7b85594503f287ecdb30332f4291bfaf7c01000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c010000000000000080ce639d1064246a2e41ee3528fe677513c89aa165fde5559a9da0dcdab2206201000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d64010000000000000030ff7c7cdf5dd960f6eb4a7d79a638542aea5a7b0ec75d63f47906f9e999537201000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b98100100000000000000d8632901dcd20c3415349407ec167034633de91f3aa55f64c8bb35882c1b0c19010000000000000064d54109c3f4d89a9e36206a4c42e4ca0f74699c9e5f9df386fc154e6d51f43a010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d0100000000000000e2b60ca56ef300d729ca5b4d5366df9fb9c992ac254c5c477599f795746d730201000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000009a0b42e88688d547c31a1bb811fdd062908e88a115e1aae39f7bdcd95b927d530100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000ecce43c0be3c9134a0d62a0b6463edfdbfce1b2b1bf5bac37fbd1cca48e67e7f01000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000c6cfae23e776800744036a6881d20a0476c1852cea187fbf9db79c936c51db0d0100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f01000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b181450100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000040aacd312f15eb011e69b5dbd8fe8b59637e06259954e6e3d8f940e4dfbe2071010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b60701000000000000005e6d779219b00ae1d5e6320faff3b6eb963d3acf7705672ff56d2cb46ac44e5b0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f0100000000000000b07e958ae811c416d6f39529587b65efd34d4f14de60c00be261b5d9566c4256010000000000000032636c64cae326ea37dfa4ddad688feb9829ada7a7d580a91ce03a50a673d01c0100000000000000246615914ed30f855044df3bd63491ca8af4af5614e2a19d5c9fcf8950d13d2a01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000001e7b9381ff03ccb2f27fa0142dd09c4c0b6672a4cb3a099cbfee1842ef55410001000000000000006e2b112768cfaf7d202d5d321bcb702c292e450d162b844f8ee903e18c45415301000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000aa7e2ba0ac23106e76a0efad2d34747769f669773802cc4de44aacd6bd3e3b780100000000000000f80643f72c8dc15503957f39e6d9ac6ef062c43c516a1693e87d2a3d26e9db440100000000000000e487051ee8f32b1f8d0af5e897b49730512303471416e689ccfd0bc3f726f447010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda3001000000000000007ae9be3d7ab975804c1aa74caf9329c2b8b5eabd1a799337f5a102232efb04780100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000008e2eaf4ac96e0c79da47d2b76956b3578b39ee4979826d5344254fc37d508c04010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b01000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b6401000000000000002a01b311e75c72271b3638f584b85169e1118dc5f850862add04c9a20e33b131010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d8500100000000000000583ecb6dde18a2984d5af56152b337cc90422fd6e937b5e06c1c6caf50be212a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc83186910301000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000e1b958cae4235db85f6494d1d9af4d435450f10e39485735d7ebe0b6454933b010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000003873ac08836bf81aa2077f9e50a55b47e02697ad9fa6704c7044fca0c93b8243010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa74010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000c6c503377e12c6da1290270f166971767edbc15abafaa5503376e56f02a99e0101000000000000009e02cba73dcf1d6eec957735bb3363e66c2633173f821d0edd97e9fc3fa1242c0100000000000000ae46c529ba59b0317f6aa431f79802e087355cc32d78258809da6a9b04b8f2600100000000000000a6afb91b338c8d924b5b2219536e815a3688eb3b145ab136dbf6eaa5708d992e01000000000000002cf9dbc1e451ba3ead20d5d826533b9315699b3ba0784bd812e15ac9ad31f85d01000000000000008e5f0b817e1f12b66afdb60a3406ced3d491000cf12866ada159cdcaa3bf010c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000c282c0fdd6d42469ad85bb9815f18c71dc04b3340d1c96f33328389a325b6a360100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000784b97e0ab7724051138f53108deef6fc47154e007d4d1fe36c9975c0abf87120100000000000000f4a56a8dcd84f47bfaefefe6baf25b985b7c41383670fd4a4f69b2c66c33800d0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000042e7c894dd88fb2b0c7dc7a56b44269e0ee606c73d5a297cb459dbfc7649a170100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a010000000000000054a4e00f3df9f09e23118cce02f804d36c4968894a621305a0e8150a2910dc6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000269e8d252b8a4e91c2ebdb7f4b07bfa9201b88bd436e6c4044e70364c746614e010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000fca3b0bf7a3b4ee818a50f86de0be2f976621c6f5a3e768448732252e099cc1e010000000000000024001694a6c028f4ffd94ef747d7834e6d29c794363d527aced13a87b0770057010000000000000018820322d29e40465465fc5f0b488431e710db471615f780451342f5690e20350100000000000000d632182c133a20838afa52678dd1b9b5055571c637f1ed1a1746490f3fa02a03010000000000000084d777d943e0507c27e43f6e6ab2ad2683ac9b37ae47cb5f063b636902672f38010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa55701000000000000003271f7e7c7adb2462cb34fac3cb910495763e1c661222ddbbf3aa7cb70a3a40601000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de48575320100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b01000000000000007a48b0322f745ab3d669c757477111165ec3bd4f2d32ef4ecd1c5024214fbc320100000000000000e0c4304540bfaf4e2ebd05b751ec785969deb61cb8ef26a90c6d18eed5d7195a0100000000000000be81ef32949a7e41f46fb76649406ea4668d1a2876e442ddfc681d04fad5ea7e0100000000000000149484c2ba46010c32fc04d587c50e3892710c7188ee952323a494b2ff12186e0100000000000000620708ccbc822d0be9a49eb46e73955d4cdd8735a5f2cfed44bb656a71501a7501000000000000009c3cf78a64efb54ea98242575dce25ecac86c57f19e6a26cef67792ed4fe5e490100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000425dab5a4c28aefafdfce605ac8c4eb7e83d1eafdf8964f4c7086b20f1e0ca080100000000000000847f4b6d72993380e0e76fe2d885e429796335dc10f470005e9a268880c6fa1b0100000000000000c80a16a172ea19de337c120de8ba72df1b81efb23ff74e0ee7cbf36e666ede1f0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c44010000000000000056916604af8d4470b2ce0475043824cd9ba9b6f42215a408d1b8e2adf33d00580100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f25844320100000000000000a8bbf134d2c82050f455ad50876ce102de5e63600d2226ae2d6cf3f52ad6eb24010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000480defe8739c9518d5507480bb9c68ec408a60b944824521f1184b74bc47f2170100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000864f740e1ada63a6dda98997c8677d3915b6621b7c083b32d1482817ad3719590100000000000000087b213d68d9f79b2481f6fff4f09d0e4514f18bdfb64db3b192e62df4b8b15201000000000000003ae7d174f16f034ff7816b8d9ef1b4b2b15ac5a16eefe819253b03d958babc1101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b159040100000000000000e074fee77ec1d84c2c2c02e258de68c7c4ae907f09224b362ae11d52a2a9bd51010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b2401000000000000007e5a932dfd5ef4d3cbb9bb59ded1cdb5da5fa6ee276cc2acf84ae0aefcabe12d010000000000000056da6e5ada211131376b8d0571118b69fe57fae1393d23572b484f394857904801000000000000007012639e84e32c5cfd60362b4d8c7382fae32e6e3a70485742351efe2f2e876c0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000742f5991a21e102707bc1df8a9565fbfbbf705884fdabd13ec223783f96d3f620100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000903494164bf02f34dd446783b12875b6533328f4e17fd3a24bbd67b4c142cd430100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd754590100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d6901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000014e5caa5709b3d5a8e50aaaa9ceba368e2d66f964e598f861938f093dadac32b0100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a252010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd412854320100000000000000ee5a96cb89aa5c8f6824d3806a83a6cefa9cf01842abde63b7bb04561553c45b0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000c4f8e32f62768764f9fb32e8278223ab4adcb1079cdfec1fdeb7fe9bc043826e010000000000000032dc47873d3d298c15ac984bf66ef0610883d7bbd2fac924d1b37db68da1090701000000000000006cc7929dd456080aa9d29c03db15e194d7a8ccb8f878f40f517f3aa4001f642c010000000000000034051c4808e8bc9fbbf089cf5081ccd41f3b5b4c68e94995cda0ef81f20027160100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000cac818b01090940ea08c65890e25b2ed3ba9f237fe2a2a3d17b394e74170760c010000000000000074e859fd23da9f3b5c0b554492134ec981deca6fc0d8e4fc6e33ca517a0ce26a010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000382b8f985fea8cf2f2f59db8b2152cd72b1f05f1ac28e7cfe70613699d060a0e01000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000a4945508cf103aabe69457d9ea2b46425d9d26e57f89e6b1f799ec18219ad2550100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000d05c87ef31a1a024e2242edc6bbbd1c392c579029b9f6b104157250597082e5101000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000385d6ae328e957b24389a12f9f952a20e224e5f9048b1bc6b9a8748edb2aa32f010000000000000078294f515c659b94bfce9674db37a3cf2f32d89ce1758ca53d1860037cf1d42a0100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a0259010000000000000032f6d7c068e7b684c061c290891681b3791c250d9983383bd40bc884fc9314060100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000babd6c9cb58a2635db60d13014684aee881af96c78af8c8b9b31073069167e4401000000000000005440e71292507c1b33554e8d95fd85ca3de6499e1b7c838236051dab5fa3f37c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f0100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000c20fd613476824c3893eced88eec1cacc491a796df8e0b7669ed6880ab0cbc460100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000ae44ab56beb3cb760004d61723c94454bf803ddb649e4d2aee24b4983fd91d5101000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c01000000000000001e8984bd112502c5956817aa0726d51cb31076bdbb8465bd730500ff8bac93070100000000000000ec25078562fb511f0945c3af78d77c8e02f570c647957c0932475aac3ce72f6a0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000028393ee5fcd06734e381651c82cb89b08bdcd64d1aecb4727fef82ae5c44b4501000000000000001e7b8aa5fe2aaae1d5e3c8b1e38818114e83d9bdcc95629ed834aab37e2b897501000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000c885913686cbadbcae070742549b5695298d4f24d9efd101f9ffe2466a42995d0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000000eb1769332c7154bf3509f1892f992f58ab94e0705a1d2be18dffdedd10a3b210100000000000000a0c28669f01d5b4decdab2abfd9d14b989c1d4b32323f264b24a788de0b9d2430100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e76301000000000000002425e806f3e7378d8974b7cf541d0e4cc4773dd59cdc705e006bcdc83610b20c0100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf5400100000000000000847f948b67d6f455e2f2923f366dfe3c0a3925b451210a46cd36fafb8cd8290601000000000000000a2309a52190564577602c900c42b5de7605f5b9084525af757c8b3bec77267801000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba295973010000000000000082806bf6db9df06d719fb5a367d5f2086cd0fc5327f4b450a8f2c03d40cbd8440100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000010381a1fde26d95804978d4ccaa1d6e634efe2ac922f7dae4da3cf3a64568a4e01000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000008868524e56bed527bb3039e7d01a84af44e8e62ed00b1f44098c47789e4b201001000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e01000000000000000c6cc2bc932adace83516fe99076d532e6197ae08d66610988288044c6bdbf36010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a83701000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000008e67bbfe6269ba4ea2b216e7cc21a54ab882859d65a691ff2eec486f66a9035f0100000000000000603fef5a531a03b8e83a8b66f583edf78706b93a11eff454f5a56093a6434a3a01000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe42010000000000000014db67200553d8a3f3543ab37a12e21b3a96c2b6583d66d59e399afc3236084101000000000000009664e4e01c42d9a22435a39dfb1daa6cf043abbd01c1b081c28ee271988b415b0100000000000000381a3708c945f1d295122322f3b3b7e161a4f2556d6f8d8ebfe052377ed37b700100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c460100000000000000042cc9a90ee7801f29bde1f77ebc42e68fc8432df113d23b82201d1a10e33d0a01000000000000001e63ed13cb9b8d544a73307d348a241d87d3d1063715d686572e705b37b7483e0100000000000000bc633ce058ec703568a94b656988f1b4036cd9f74aabe8a7b47e733883368654010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000002488a8bee91b989dff6adff396074f3300e7938a962ea3728943f37a23a7763e01000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb20140100000000000000c28c2dbe1a9bc290af0d795ef11c1d1b694b91ae685e891e599596aaafbab73b010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b5001000000000000004cb3593968c0254cadc7f1a2270f9a89e0909e12a6eb5ceb7f723ab6ee9b7275010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000086878a1db805209e73ed72140b8b3f4a4554644c5c85c451c501eb5c139ebf2001000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f0760100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f86130100000000000000fe41dd46b718d84c24aa03362cdd14b500dae15a8c7e28c61156c8c73ed37575010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000a0899677a7d42219ed8116f3776d28c204e2a84fcbc23fa42632d2622422701c01000000000000000e21a03fbe9885a475c4875f3f912c8703945e99cd2a85f75258fda7b6022b7c01000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000060f61684be94ec0178eb24d9f32e0de63d05b4f7ae00fd0fecba90ac54d082a010000000000000026538b2b883a97c4e4ca0c01a9e136d42832e07156bf9df23bee062df009230501000000000000004238af3c99ee0067953ce92d9b79d89205918431cbb0fdab22183e1dd7ab95560100000000000000b0d9dc44559810ad536b1c9792b5624cb087972bf5fe3ee484f9214497d6f8380100000000000000fcd89693d424986ec38533d73737824258658dc40fe6f039d6007bb60991610701000000000000006662fb9cec0c42e04f2831dbff4d4fce4d7817e293a4278beefbf793d54ca60901000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e0100000000000000b6688ce42ea01b1822699182c562585a27081ce6bb0438761436f4045a42f24a01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000007e4e053087c2a301c9174aa1665a1996af0aca87f3a3a44fddda2509eef9e60c010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000d00d2a5b40588ad87345f53138b854c7ce513f29c7f72dc5f2b7de6662e092150100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000a07fe18d0151b0bbb2a2f9604122716fa2ae881babe7e6d84a22cfabdcd1267a0100000000000000a6d081ebe46bc75c286a6021ba7dae80f71868ca4377dceed8633264dec1757601000000000000005a9973a287fcc694b86f67d1546a0a9398f6c4d06de13fc022ee52197cc022400100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009875dea5d493af94567673bfcaf096919a921cbb806f55b7488bb0a554fed66c01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000643589f0627aa555aefb01d2f0a366eacc252af9437ec2a892935da2a1052c170100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b01000000000000001810712fbe92f2394892a99e3a825490baf1efaf7a3dd1c9bd0e58da0d671133010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000006aa6ad6068f2de9c70806108a4040f9d319336a2d9d2ae7f719d05ee777379490100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd270100000000000000cce3551554bda5691462265ad7205e116abb061fe4930c2174b573360b4e9442010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f120100000000000000e007b4f50dc6d38478ea94ee8197ee6325e8c6b5c39b1eb28652a5ed2052656b01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000d219976f2d71e4c2a29c310682b58cb4349cb02117b5ce66b1f9061a2f827f2501000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c8716010000000000000086088c15ab94ed86455e4473c198b99730e99585b88d6fa465ce429d268ea27d01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000946218824426fca91a00f856a5a92173c04649a2500adeece86fa30d4c08b473010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c01000000000000000e809b8014f6a5c69760fca981734e0c8c41ff6d5a7d53d261790a843cfe560c010000000000000092439f4dab2f4b2e8d1bd040505ee33fb2c1dd56f3946826cc27288422313b3a0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000094b4d71ff20170266393c4cb481cbc68d0f04264e067f456dfcbae3ae0af5739010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000072bb32222caca7113141263e12a4193da7f29806dc93cdd11fa9653464344e32010000000000000000140d4493060751979098f686733955e6e71d01bbaa8a3e6cb297400c5c624f0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e0100000000000000020ded3e18e0159566d7bb10809d33f0d3d97941074957a1422e26ba98632a3d010000000000000044be9c0d73b3bcb4b612e5945077e2d3f48778a95b664180ebc63a389234354d0100000000000000428992924b7c66ae24e3c55a9d85fcd8343ab1bf0089a8e5038313d1f3fcf9700100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000a45c9bc40f46d50f1dd4f7b5d11d9eef1f5816b15e8a35c87a5fb16d1893414d0100000000000000d461866e25c98bf187b844b145628d87392441deadff7ee739639cb457edca540100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c4031401000000000000009452d0cd850a8a3fce455d099302e7d641242037956cb39f679f343e2af960140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c996000100000000000000841c2f0987fc8801b7ce2ff50450d60cf19ae3f39295d3026a6d45ada6fafd6601000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd8160100000000000000deafec3833f9925dbc5d185762c864d1294215c8eeb3f63da6f4cd5fa78eee3b0100000000000000aa3acb57099ce4ad430146aa2038d7429195a7ed35ad50e983d745b2a664362f01000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000006029513013f081e5d5d74173847405747513aa814038c25500522e6fe2aaf3790100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000005a3788f9347ad802a56974dfb4ed19b22fa91c20e5c8dcffaf4208f25471432601000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000004c0b37ebd9e67b237a2b3a9545c269bc382735bc3907baf9ee468bae0d8feb2e01000000000000002ee95f4c696a2ed4020e1efccab52a937a700f41e5c62c977fbdb3621f42ac3a0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000000ca2e72555afd4c7356ccba76a2f1bae9032ec5f3067c2442354dbdc22f39c4801000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000006ac27e3d6423f2d9488d1bf42dd6f2d3eec911c471b51d69cef6371ff242a375010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e610100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e058420100000000000000082a961d1e8f1e62d7830fa4f5cbceabce8fb3a0276f2ecffa5e1e55f047396e0100000000000000502eb616eeba75c7a2b59519d75bc5b87104f03ed4fd8b43eff48661e9d6c81f0100000000000000e0d61db94d9d80ab04157bc7a76de3b1add4e0a63687281deea4b9268af3934a010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a27301000000000000007e8ebb46c80883225df2fc91fe7ede9933dcf073f3d74ea3db0525585984e74c0100000000000000068245d8a483bdbd4e9d88b49e17a651ec168f25e6851fc52c2e36a516031d5e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f01000000000000007617f9c34780fe008d18ccd349047f855345db0cb9360a57a63179534afd714f0100000000000000bc3cdcf9f41b5f3f073a7f6a29931a6be12fbcdfc1dfe7145c4e0a527e9e243c0100000000000000fe48a8afb06afec4206732c62a599c7ec000ac904ef844c961eab7c44b326b5d0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000036f70c891387999ce70477e53ead6e04fdc79ed8b006a1ea975d2f834d2244270100000000000000f2861581593678b86f3186aa9a1ba7c49b5a58aadbf079053446bcc899a969640100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000007cffa67942272b1974dd65c87828e1535799e008d9e81b2818f5e308ed4f390100000000000000cc840ae0117378161b86a52baa6decb97ccfc1101325256f178ba8f67761671d010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d010000000000000096b9efe3e08609cd61aa98f3202618d928074308d9f189d97f7c1e52d2afca1101000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000004d17b2a6decc01f07be9d8e4d4c055728ee211da1cb19f17f88987b5a8f77d7c0100000000000000040000000000000002d06811786eb29a6d8ce62d4b8021a6834aa9d9f5b96bcc24e4b7c286f6faa569d7666401013126000000000000f3e93211000000006009000000000000cd0732904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000ea24dfbcaffa4d280e19babda83a8f879453f9c5f71901bec59de014878a6e050100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000056471f7f5a936d621b95618e47258a382076b7c44d8c7d5fc69a87255a8eff080100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f010000000000000046371ae57e3d4c98d3bfe936029d184fcba10db1d2e6dfb5e722e6c3b08d9b0f0100000000000000cad93fbaf78ceb031a3677b27a9e579688602099c97258c746b080422c34bc4d010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000f8c623ecfb4af1c19ded044923b34660c436466a9a5bc33db15f0a73200e10160100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000906ec0a56171d27f65c29683a31c71a87a4e32b273596a0a704ff07ba344d0660100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000beb7d66b53d3c34bb4a6b49df52a8e77b1929d1f43a6a3191c1cce6b8b9df72e0100000000000000c0ff0ad7de8b9403d14459655c0ec4107f119e74406be3161faf15b5ddf1395001000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b0100000000000000ae26c00acff780da2bbaf6e48362ba269753fa107a0b36af86d522736faf3e07010000000000000058cc4e48b26665ec1d6c2a128f0f5b70434ab4a771743429058b963257e6563d01000000000000007a671254a088683867f217886e057e15f53da13e2ae54ad0abbb065f4585bc0e0100000000000000228dfe58ff0326d8c8e0c51476692d0610424b01244c52c561f02dd133e83e0a01000000000000008679d78aa6d1f7ceeb9066f45fe66d0096dd1b41f7463e379e0735a11a99f0110100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000036ebe7faf129b9ecd3a8bf421eae5584d30c5ac5393d540dc04b414db2dc8a4c01000000000000004a2f2312a5f7eb7709f4c55f54c6a2aff8ddda937bc153e57aa7b8f4b32e72610100000000000000e2b359b93abf559cd326ef07a6a46784b945518e1f1a4c04ebe42390f2574c5901000000000000001c25244f41a7fce087c666e0af7dc734b7db2452e1685edb73b2aa2490a8ee5001000000000000008084d934bf7a7ad960de3b325ad5109d10eef00e90d6ab776240b7bbeb6a6a7e0100000000000000c66476c56a07a8e1a9e57bec84efe2817bddb252ddae336d0e64ae2905397e0d010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000012c9559511672dbbb77405eb107ad6ba1f72d459c3c8ef33a6b24b7f9bbf6f5e010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4be6f891156ecfd5f9ff661f780884578ac18dcc999b7f574510196c5243c2201000000000000009e4aaa177dbcf990475d3d6ea36e9d0e9d7a2e5328eccc2391e3a9adbdf5295f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000016e3f8f5ce2e2b22b816bed27dc767115513198ec47d2795ba9edcccdde2d158010000000000000060c4c70ba2f1c3b306cec5a6f146b0eeba1c25d6709c3cb55d087b44bbbc946d01000000000000001e1c3912b5cb14932599f0e4497460888578ff45d5f1a596f751780c940acd1501000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee4900401000000000000007422fc1db85ec78f23e3ac6e22bc1582d4fb955acd7a4ad35f6f81ce8471b2590100000000000000c08c91ecf8879f5042960c3d61c0e74f125463ca2726e6655fb922af5cdcb85101000000000000003a7e03cc1411df20c3f0e1463d604fb34280b9cd701b9c68d77dbfc534b208180100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000ec8ee214c34aca7625567c4529a63370cbdb456bea2b888ac9738ccd17682e2201000000000000007883a3f09e524202160a0a818ebaecb8be2749abf2f0bc9f1e670c4f52ea6c4a01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000d699341d0606cf3ae54ef081718cedb138a029d7e107ea8324ec5cfc2f3a1c3901000000000000002c3a1d094c488ad9d608625ec41a4d7b85594503f287ecdb30332f4291bfaf7c01000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c010000000000000080ce639d1064246a2e41ee3528fe677513c89aa165fde5559a9da0dcdab2206201000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d64010000000000000030ff7c7cdf5dd960f6eb4a7d79a638542aea5a7b0ec75d63f47906f9e999537201000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b98100100000000000000d8632901dcd20c3415349407ec167034633de91f3aa55f64c8bb35882c1b0c19010000000000000064d54109c3f4d89a9e36206a4c42e4ca0f74699c9e5f9df386fc154e6d51f43a010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d0100000000000000e2b60ca56ef300d729ca5b4d5366df9fb9c992ac254c5c477599f795746d730201000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000009a0b42e88688d547c31a1bb811fdd062908e88a115e1aae39f7bdcd95b927d530100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000ecce43c0be3c9134a0d62a0b6463edfdbfce1b2b1bf5bac37fbd1cca48e67e7f01000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000c6cfae23e776800744036a6881d20a0476c1852cea187fbf9db79c936c51db0d0100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f01000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b181450100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000040aacd312f15eb011e69b5dbd8fe8b59637e06259954e6e3d8f940e4dfbe2071010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b60701000000000000005e6d779219b00ae1d5e6320faff3b6eb963d3acf7705672ff56d2cb46ac44e5b0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f0100000000000000b07e958ae811c416d6f39529587b65efd34d4f14de60c00be261b5d9566c4256010000000000000032636c64cae326ea37dfa4ddad688feb9829ada7a7d580a91ce03a50a673d01c0100000000000000246615914ed30f855044df3bd63491ca8af4af5614e2a19d5c9fcf8950d13d2a01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000001e7b9381ff03ccb2f27fa0142dd09c4c0b6672a4cb3a099cbfee1842ef55410001000000000000006e2b112768cfaf7d202d5d321bcb702c292e450d162b844f8ee903e18c45415301000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000aa7e2ba0ac23106e76a0efad2d34747769f669773802cc4de44aacd6bd3e3b780100000000000000f80643f72c8dc15503957f39e6d9ac6ef062c43c516a1693e87d2a3d26e9db440100000000000000e487051ee8f32b1f8d0af5e897b49730512303471416e689ccfd0bc3f726f447010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda3001000000000000007ae9be3d7ab975804c1aa74caf9329c2b8b5eabd1a799337f5a102232efb04780100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000008e2eaf4ac96e0c79da47d2b76956b3578b39ee4979826d5344254fc37d508c04010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b01000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b6401000000000000002a01b311e75c72271b3638f584b85169e1118dc5f850862add04c9a20e33b131010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d8500100000000000000583ecb6dde18a2984d5af56152b337cc90422fd6e937b5e06c1c6caf50be212a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc83186910301000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000e1b958cae4235db85f6494d1d9af4d435450f10e39485735d7ebe0b6454933b010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000003873ac08836bf81aa2077f9e50a55b47e02697ad9fa6704c7044fca0c93b8243010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa74010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000c6c503377e12c6da1290270f166971767edbc15abafaa5503376e56f02a99e0101000000000000009e02cba73dcf1d6eec957735bb3363e66c2633173f821d0edd97e9fc3fa1242c0100000000000000ae46c529ba59b0317f6aa431f79802e087355cc32d78258809da6a9b04b8f2600100000000000000a6afb91b338c8d924b5b2219536e815a3688eb3b145ab136dbf6eaa5708d992e01000000000000002cf9dbc1e451ba3ead20d5d826533b9315699b3ba0784bd812e15ac9ad31f85d01000000000000008e5f0b817e1f12b66afdb60a3406ced3d491000cf12866ada159cdcaa3bf010c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000c282c0fdd6d42469ad85bb9815f18c71dc04b3340d1c96f33328389a325b6a360100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000784b97e0ab7724051138f53108deef6fc47154e007d4d1fe36c9975c0abf87120100000000000000f4a56a8dcd84f47bfaefefe6baf25b985b7c41383670fd4a4f69b2c66c33800d0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000042e7c894dd88fb2b0c7dc7a56b44269e0ee606c73d5a297cb459dbfc7649a170100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a010000000000000054a4e00f3df9f09e23118cce02f804d36c4968894a621305a0e8150a2910dc6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000269e8d252b8a4e91c2ebdb7f4b07bfa9201b88bd436e6c4044e70364c746614e010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000fca3b0bf7a3b4ee818a50f86de0be2f976621c6f5a3e768448732252e099cc1e010000000000000024001694a6c028f4ffd94ef747d7834e6d29c794363d527aced13a87b0770057010000000000000018820322d29e40465465fc5f0b488431e710db471615f780451342f5690e20350100000000000000d632182c133a20838afa52678dd1b9b5055571c637f1ed1a1746490f3fa02a03010000000000000084d777d943e0507c27e43f6e6ab2ad2683ac9b37ae47cb5f063b636902672f38010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa55701000000000000003271f7e7c7adb2462cb34fac3cb910495763e1c661222ddbbf3aa7cb70a3a40601000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de48575320100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b01000000000000007a48b0322f745ab3d669c757477111165ec3bd4f2d32ef4ecd1c5024214fbc320100000000000000e0c4304540bfaf4e2ebd05b751ec785969deb61cb8ef26a90c6d18eed5d7195a0100000000000000be81ef32949a7e41f46fb76649406ea4668d1a2876e442ddfc681d04fad5ea7e0100000000000000149484c2ba46010c32fc04d587c50e3892710c7188ee952323a494b2ff12186e0100000000000000620708ccbc822d0be9a49eb46e73955d4cdd8735a5f2cfed44bb656a71501a7501000000000000009c3cf78a64efb54ea98242575dce25ecac86c57f19e6a26cef67792ed4fe5e490100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000425dab5a4c28aefafdfce605ac8c4eb7e83d1eafdf8964f4c7086b20f1e0ca080100000000000000847f4b6d72993380e0e76fe2d885e429796335dc10f470005e9a268880c6fa1b0100000000000000c80a16a172ea19de337c120de8ba72df1b81efb23ff74e0ee7cbf36e666ede1f0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c44010000000000000056916604af8d4470b2ce0475043824cd9ba9b6f42215a408d1b8e2adf33d00580100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f25844320100000000000000a8bbf134d2c82050f455ad50876ce102de5e63600d2226ae2d6cf3f52ad6eb24010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000480defe8739c9518d5507480bb9c68ec408a60b944824521f1184b74bc47f2170100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000864f740e1ada63a6dda98997c8677d3915b6621b7c083b32d1482817ad3719590100000000000000087b213d68d9f79b2481f6fff4f09d0e4514f18bdfb64db3b192e62df4b8b15201000000000000003ae7d174f16f034ff7816b8d9ef1b4b2b15ac5a16eefe819253b03d958babc1101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b159040100000000000000e074fee77ec1d84c2c2c02e258de68c7c4ae907f09224b362ae11d52a2a9bd51010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b2401000000000000007e5a932dfd5ef4d3cbb9bb59ded1cdb5da5fa6ee276cc2acf84ae0aefcabe12d010000000000000056da6e5ada211131376b8d0571118b69fe57fae1393d23572b484f394857904801000000000000007012639e84e32c5cfd60362b4d8c7382fae32e6e3a70485742351efe2f2e876c0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000742f5991a21e102707bc1df8a9565fbfbbf705884fdabd13ec223783f96d3f620100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000903494164bf02f34dd446783b12875b6533328f4e17fd3a24bbd67b4c142cd430100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd754590100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d6901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000014e5caa5709b3d5a8e50aaaa9ceba368e2d66f964e598f861938f093dadac32b0100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a252010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd412854320100000000000000ee5a96cb89aa5c8f6824d3806a83a6cefa9cf01842abde63b7bb04561553c45b0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000c4f8e32f62768764f9fb32e8278223ab4adcb1079cdfec1fdeb7fe9bc043826e010000000000000032dc47873d3d298c15ac984bf66ef0610883d7bbd2fac924d1b37db68da1090701000000000000006cc7929dd456080aa9d29c03db15e194d7a8ccb8f878f40f517f3aa4001f642c010000000000000034051c4808e8bc9fbbf089cf5081ccd41f3b5b4c68e94995cda0ef81f20027160100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000cac818b01090940ea08c65890e25b2ed3ba9f237fe2a2a3d17b394e74170760c010000000000000074e859fd23da9f3b5c0b554492134ec981deca6fc0d8e4fc6e33ca517a0ce26a010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000382b8f985fea8cf2f2f59db8b2152cd72b1f05f1ac28e7cfe70613699d060a0e01000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000a4945508cf103aabe69457d9ea2b46425d9d26e57f89e6b1f799ec18219ad2550100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000d05c87ef31a1a024e2242edc6bbbd1c392c579029b9f6b104157250597082e5101000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000385d6ae328e957b24389a12f9f952a20e224e5f9048b1bc6b9a8748edb2aa32f010000000000000078294f515c659b94bfce9674db37a3cf2f32d89ce1758ca53d1860037cf1d42a0100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a0259010000000000000032f6d7c068e7b684c061c290891681b3791c250d9983383bd40bc884fc9314060100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000babd6c9cb58a2635db60d13014684aee881af96c78af8c8b9b31073069167e4401000000000000005440e71292507c1b33554e8d95fd85ca3de6499e1b7c838236051dab5fa3f37c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f0100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000c20fd613476824c3893eced88eec1cacc491a796df8e0b7669ed6880ab0cbc460100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000ae44ab56beb3cb760004d61723c94454bf803ddb649e4d2aee24b4983fd91d5101000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c01000000000000001e8984bd112502c5956817aa0726d51cb31076bdbb8465bd730500ff8bac93070100000000000000ec25078562fb511f0945c3af78d77c8e02f570c647957c0932475aac3ce72f6a0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000028393ee5fcd06734e381651c82cb89b08bdcd64d1aecb4727fef82ae5c44b4501000000000000001e7b8aa5fe2aaae1d5e3c8b1e38818114e83d9bdcc95629ed834aab37e2b897501000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000c885913686cbadbcae070742549b5695298d4f24d9efd101f9ffe2466a42995d0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000000eb1769332c7154bf3509f1892f992f58ab94e0705a1d2be18dffdedd10a3b210100000000000000a0c28669f01d5b4decdab2abfd9d14b989c1d4b32323f264b24a788de0b9d2430100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e76301000000000000002425e806f3e7378d8974b7cf541d0e4cc4773dd59cdc705e006bcdc83610b20c0100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf5400100000000000000847f948b67d6f455e2f2923f366dfe3c0a3925b451210a46cd36fafb8cd8290601000000000000000a2309a52190564577602c900c42b5de7605f5b9084525af757c8b3bec77267801000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba295973010000000000000082806bf6db9df06d719fb5a367d5f2086cd0fc5327f4b450a8f2c03d40cbd8440100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c49142010000000000000010381a1fde26d95804978d4ccaa1d6e634efe2ac922f7dae4da3cf3a64568a4e01000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000008868524e56bed527bb3039e7d01a84af44e8e62ed00b1f44098c47789e4b201001000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e01000000000000000c6cc2bc932adace83516fe99076d532e6197ae08d66610988288044c6bdbf36010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a83701000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000008e67bbfe6269ba4ea2b216e7cc21a54ab882859d65a691ff2eec486f66a9035f0100000000000000603fef5a531a03b8e83a8b66f583edf78706b93a11eff454f5a56093a6434a3a01000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe42010000000000000014db67200553d8a3f3543ab37a12e21b3a96c2b6583d66d59e399afc3236084101000000000000009664e4e01c42d9a22435a39dfb1daa6cf043abbd01c1b081c28ee271988b415b0100000000000000381a3708c945f1d295122322f3b3b7e161a4f2556d6f8d8ebfe052377ed37b700100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c460100000000000000042cc9a90ee7801f29bde1f77ebc42e68fc8432df113d23b82201d1a10e33d0a01000000000000001e63ed13cb9b8d544a73307d348a241d87d3d1063715d686572e705b37b7483e0100000000000000bc633ce058ec703568a94b656988f1b4036cd9f74aabe8a7b47e733883368654010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000002488a8bee91b989dff6adff396074f3300e7938a962ea3728943f37a23a7763e01000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb20140100000000000000c28c2dbe1a9bc290af0d795ef11c1d1b694b91ae685e891e599596aaafbab73b010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b5001000000000000004cb3593968c0254cadc7f1a2270f9a89e0909e12a6eb5ceb7f723ab6ee9b7275010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000086878a1db805209e73ed72140b8b3f4a4554644c5c85c451c501eb5c139ebf2001000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f0760100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f86130100000000000000fe41dd46b718d84c24aa03362cdd14b500dae15a8c7e28c61156c8c73ed37575010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000a0899677a7d42219ed8116f3776d28c204e2a84fcbc23fa42632d2622422701c01000000000000000e21a03fbe9885a475c4875f3f912c8703945e99cd2a85f75258fda7b6022b7c01000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000060f61684be94ec0178eb24d9f32e0de63d05b4f7ae00fd0fecba90ac54d082a010000000000000026538b2b883a97c4e4ca0c01a9e136d42832e07156bf9df23bee062df009230501000000000000004238af3c99ee0067953ce92d9b79d89205918431cbb0fdab22183e1dd7ab95560100000000000000b0d9dc44559810ad536b1c9792b5624cb087972bf5fe3ee484f9214497d6f8380100000000000000fcd89693d424986ec38533d73737824258658dc40fe6f039d6007bb60991610701000000000000006662fb9cec0c42e04f2831dbff4d4fce4d7817e293a4278beefbf793d54ca60901000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e0100000000000000b6688ce42ea01b1822699182c562585a27081ce6bb0438761436f4045a42f24a01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000007e4e053087c2a301c9174aa1665a1996af0aca87f3a3a44fddda2509eef9e60c010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000d00d2a5b40588ad87345f53138b854c7ce513f29c7f72dc5f2b7de6662e092150100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000a07fe18d0151b0bbb2a2f9604122716fa2ae881babe7e6d84a22cfabdcd1267a0100000000000000a6d081ebe46bc75c286a6021ba7dae80f71868ca4377dceed8633264dec1757601000000000000005a9973a287fcc694b86f67d1546a0a9398f6c4d06de13fc022ee52197cc022400100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009875dea5d493af94567673bfcaf096919a921cbb806f55b7488bb0a554fed66c01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000643589f0627aa555aefb01d2f0a366eacc252af9437ec2a892935da2a1052c170100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b01000000000000001810712fbe92f2394892a99e3a825490baf1efaf7a3dd1c9bd0e58da0d671133010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000006aa6ad6068f2de9c70806108a4040f9d319336a2d9d2ae7f719d05ee777379490100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd270100000000000000cce3551554bda5691462265ad7205e116abb061fe4930c2174b573360b4e9442010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f120100000000000000e007b4f50dc6d38478ea94ee8197ee6325e8c6b5c39b1eb28652a5ed2052656b01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000d219976f2d71e4c2a29c310682b58cb4349cb02117b5ce66b1f9061a2f827f2501000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c8716010000000000000086088c15ab94ed86455e4473c198b99730e99585b88d6fa465ce429d268ea27d01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000946218824426fca91a00f856a5a92173c04649a2500adeece86fa30d4c08b473010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c01000000000000000e809b8014f6a5c69760fca981734e0c8c41ff6d5a7d53d261790a843cfe560c010000000000000092439f4dab2f4b2e8d1bd040505ee33fb2c1dd56f3946826cc27288422313b3a0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000094b4d71ff20170266393c4cb481cbc68d0f04264e067f456dfcbae3ae0af5739010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000072bb32222caca7113141263e12a4193da7f29806dc93cdd11fa9653464344e32010000000000000000140d4493060751979098f686733955e6e71d01bbaa8a3e6cb297400c5c624f0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e0100000000000000020ded3e18e0159566d7bb10809d33f0d3d97941074957a1422e26ba98632a3d010000000000000044be9c0d73b3bcb4b612e5945077e2d3f48778a95b664180ebc63a389234354d0100000000000000428992924b7c66ae24e3c55a9d85fcd8343ab1bf0089a8e5038313d1f3fcf9700100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000a45c9bc40f46d50f1dd4f7b5d11d9eef1f5816b15e8a35c87a5fb16d1893414d0100000000000000d461866e25c98bf187b844b145628d87392441deadff7ee739639cb457edca540100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c4031401000000000000009452d0cd850a8a3fce455d099302e7d641242037956cb39f679f343e2af960140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c996000100000000000000841c2f0987fc8801b7ce2ff50450d60cf19ae3f39295d3026a6d45ada6fafd6601000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd8160100000000000000deafec3833f9925dbc5d185762c864d1294215c8eeb3f63da6f4cd5fa78eee3b0100000000000000aa3acb57099ce4ad430146aa2038d7429195a7ed35ad50e983d745b2a664362f01000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000006029513013f081e5d5d74173847405747513aa814038c25500522e6fe2aaf3790100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000005a3788f9347ad802a56974dfb4ed19b22fa91c20e5c8dcffaf4208f25471432601000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c28674601000000000000004c0b37ebd9e67b237a2b3a9545c269bc382735bc3907baf9ee468bae0d8feb2e01000000000000002ee95f4c696a2ed4020e1efccab52a937a700f41e5c62c977fbdb3621f42ac3a0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000000ca2e72555afd4c7356ccba76a2f1bae9032ec5f3067c2442354dbdc22f39c4801000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000006ac27e3d6423f2d9488d1bf42dd6f2d3eec911c471b51d69cef6371ff242a375010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e610100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e058420100000000000000082a961d1e8f1e62d7830fa4f5cbceabce8fb3a0276f2ecffa5e1e55f047396e0100000000000000502eb616eeba75c7a2b59519d75bc5b87104f03ed4fd8b43eff48661e9d6c81f0100000000000000e0d61db94d9d80ab04157bc7a76de3b1add4e0a63687281deea4b9268af3934a010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a27301000000000000007e8ebb46c80883225df2fc91fe7ede9933dcf073f3d74ea3db0525585984e74c0100000000000000068245d8a483bdbd4e9d88b49e17a651ec168f25e6851fc52c2e36a516031d5e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f01000000000000007617f9c34780fe008d18ccd349047f855345db0cb9360a57a63179534afd714f0100000000000000bc3cdcf9f41b5f3f073a7f6a29931a6be12fbcdfc1dfe7145c4e0a527e9e243c0100000000000000fe48a8afb06afec4206732c62a599c7ec000ac904ef844c961eab7c44b326b5d0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000036f70c891387999ce70477e53ead6e04fdc79ed8b006a1ea975d2f834d2244270100000000000000f2861581593678b86f3186aa9a1ba7c49b5a58aadbf079053446bcc899a969640100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000007cffa67942272b1974dd65c87828e1535799e008d9e81b2818f5e308ed4f390100000000000000cc840ae0117378161b86a52baa6decb97ccfc1101325256f178ba8f67761671d010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d010000000000000096b9efe3e08609cd61aa98f3202618d928074308d9f189d97f7c1e52d2afca1101000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000fc20d01c55b3b9f3c65c48cfd7c17023ac42abfb570305c90ed3ead3e17230230100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5831779, + "finalizedBlockHeader": "0xf26d893d7437a0e14d84f41b110c6eb7ea8d643d40bbf16f51bc7fdb2aee674d7aa391058d13e99c67424f89e616357b548e9ef3c717bbd5fbef75cf81e9488e65c8e937756ca2b72aebfd19fb09b8fba9159938420488c290762654fb5c6e48cf092f150c0642414245b50101e80000009be2321100000000d2f4c3363a24aacf25454fb668f9c966a732707d9d6da8b662266ce92945ed00594464dc3b04ae5c61e439d1b196693636051d5104df033038cea4b7aabc5008a3286ffd8f0df0f7feb621590b613977d678b039383ab37b4e2036dd2e23ca0e04424545468403eb980caa412b4d7de652871d1a08b50942efb438e4ff8260f0164a29ab90ffd5054241424501015ca09709cb0eb1fb9065fd7b9dd27a52bdc1ea111fd484361e544a14c18e515565505eb5f5c3c5f894f12d02f9cc81b19b5c6fe15245a1526e10758bbaab558c", + "grandpaAuthoritySet": "0xcd076f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000cce6cc528e3e2a6d64d6a8134b56b6ad4173d5980ea550d6c8cda94b812f9c08010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef301000000000000001bae9b223279cf7f43805d7158bc4a31a981be184f969784091af289f854a0a80100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e010000000000000096ba2b1e94ac833ccba36c714518d6c14166f3726a0470c0c7b2bde962bf9d5501000000000000001c28c9994bc2a6434679ebd9e2d29f49d2dc1b0a9989eb144d3ab500875b1d07010000000000000096793996c3e47019d510fbb02c20906b8f8bec7863ff15ea0b2706e38795638601000000000000001dc815662baebd9bc39388798c1f6c8d0c9a5668ac1c83b82b6b4d8351b13bb30100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec80100000000000000b1c91fbb1f574b1ab4e69685a0b5bbf1368c488e9b5e93766b05141be765456901000000000000009183345e8c0418e8bc2e3d01fb5ce97d56e34696ee097e299473ecb2cb58d45b010000000000000005f2a5fa89d67c11407b3cde00fb2b4482a40459800e16fa108f209456dcba4401000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af001000000000000007f4c80530943a75943dddbd81a7138a25a1ba2139161742a8fb304581153facf0100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000c0da791308c651451fd0cddaee3f6777f60391b13bfeba0c70d49ec17eb06d710100000000000000882dd3fb6cfe65709167894025b8477c721ba8acfc1c8521a6a59b30c9be0b8b010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000e910e45c162a4e9ae379bfcca70ac2165ce37f72652ef16898e86fd54f85ec110100000000000000116768c765c7ce5a5e895a5342d1f56f1a118901d8d36fe584bab325506f3b280100000000000000e60e6a5106a689203ede3e6c9ea38c29b0e8709dc964cd6ead52b0270ed2e2ae01000000000000001ff6c4d8b7ee9f99bab0aa9fbe88ef94bd3a0f1f08532a329403cd0dca571cf10100000000000000ee2f4fddbcaddb272a381555ab3a0fea7fc1c0c00e22e95240f6c7dbe163be6d01000000000000008faf00d72dc043219783f02ecfb9ec870c07b608f4e18b9a9121bb4ddb1c15ee010000000000000096e29ceeb81d40d3b437e8f2669ac1c54349d6a4e55ac01b879d15cc0dc7dd680100000000000000bc08c197f7281aebdbd1dad6c2b02a6831ee8b5320745f9be57eb2a1f1b0fa9f0100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000000da43295fbf5dcf103b33c2b967f6da37fa712dc7877dbce3d8407407999dd730100000000000000027f8b0cdf660f41fa896e521d2d5d30553722f07dc9ca87b99ceb1250776b380100000000000000052bdca8904138a0da82979f82ddaa644eae6f67027272e65675f2b6dbafe9e5010000000000000092b2529a3c5f429fe42c3986af6efe6ed775286f9763a44e93d84e3648271c2701000000000000001b4b5f4e0667c084b318210779b013a36f4e2a99a1fc2dce5adb7c921278332b010000000000000046f5d223f0e9a276f753221c84c5db7c7f7004e99c8e39a24454695abd64a6dd01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000005633315d2dd80e4a4ae8d822c91ee4fe3f4ac6be78631435706d140c21149f7201000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda010000000000000097d57a25c49a171f87773fd18925fa2d8716f2c4c812949d73efdd5b8b39b21401000000000000008300dfbd0638b52780c76e850e830815c4f047c7af8f1f83dec52ef43036d55b0100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000764be126771bd51265d69b733c6ef30419f94451e32792117d25636b63a837740100000000000000dc9228cde0f6f2d064c1fbe8d3260d6c91fe732ee1fe8a87208a4c63816eb2e301000000000000001c11cca2e74282e2d9386951774f8f0e5916c398955736205f69fd66caf4e99b0100000000000000c8579421534e4e52ba78c6ed533bf75fabfef7148b439a7585754a7cb0b89222010000000000000077393a72f687439c90b4be64c0fa968361433ef2266dba82f53a5648d4099312010000000000000052a59d0bfed47022fc79a5f56d67e9f833d45a57843c986755a3c809092d16c10100000000000000240d17ce9f72548cba1b3037286301052b00e0a7862f56b8a7f689634f6970d7010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf01000000000000001867d3f303bf57fc1a6c96cdf766fe6f435838909bd27fedcf0f6a3bf9796c2c010000000000000099d43ce4be9f4195d25afb9093ea5965441f2f090a080dd0f9409a1829ebb0b00100000000000000799363fc98b936b54755c8532ae88418a28c3ba30666e6e68dd57dd0ad80c00d0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec0010000000000000086a99711a3409e28ad551760a47444bd2d638554a955d8600f1ab90feb49c68d01000000000000003ea5ffcdc27a1f5857e0c7897692d1876127dbd30639744f4fe55532c8b60c0001000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b601000000000000005f7af88494927fff4331a55db3c4a89083415305b3913c3b419df3b62f02ad11010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d0100000000000000c976b5120a10ecd7086ceb7231f2ad40f8f5bacd63a12e8e0ad47d896200895301000000000000007977808620ade75f3efeb26b0926229e0817c6163399f1d48f39ece8159c9ec201000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b0100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a701000000000000009bd622bc0948361df27b3e501ae0006d46637cfebb4fa6075288903a4b29fe4c0100000000000000ae6e6876b6e4b821c67fd7dac6df59772f540dd76c7012c4fb9ef9d13ec863ec01000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000001a29efe6c120445dd714915875399d25ecc85451993fcecc445618e016d05e7e01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000005422ef5a5a3404d99ee46fdd20d8b897c5ca0c051bc6541d40364e6d65273dcd01000000000000000074497472b01dc3a0c379b9622ca2579b14b0ae540e10ad655afdbf8bb1d2490100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd5010000000000000059e1632ee9e89f2f3e9639752821767c15fe25db7fa0c5f475d732c59a0a64500100000000000000f4f88283787e1486aeb0b00026e96e1ff523b0d85b89cbcdb0ecfbf5694065e301000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000ae430a07b430336639439e1fc36725721d120480349022c93a51dc53831039a60100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f0100000000000000214ce2bd2912889eca3c69f45a3677989d66e20c3b26a52bbd378a4a71f5aa05010000000000000062849cae8655a29c4a4c53ae3a5ddaf8d6cc53ccfe093ee97ca2f94ea85b570a01000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf20100000000000000496db58682384b87786aa7ee065fda7c786c8a5401f1969539a4f48a90d164e501000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf01000000000000005cc74027b6551fff50ee1bf43be444e2403dae9e3e5e2e7823f5d094c7347c9e010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000f638a64a8e447bd0f978e6641341a067ac937682f5f6c59b8167a058cb24b33f010000000000000099f574f1c57e766376a6976ceb3f44ea0420be7426d5c55b016a91e34091a0980100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000064c7a738ede0248eb341912c3247aaf279d4f4fbdce36f092f9bfd0ab13e093010000000000000094040fd277c75d7227bf8d55973060bde3809b3b7d6ec79602f19cdf68e775cc01000000000000000854ec578fe9572be4a886f4c9297f27b8bb0b305c2ddf8d93d4088ae01cb3e30100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b0100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000030129e0d90b7476d6833ab8d5c6bc45c5d9bca192f269f4dd08942ce991533f01000000000000006c1bb85b3afb53cd634ff9fa8935ccf59256bf44d1c5ec9c9ea70e259fdf775d01000000000000002ff3e4c0ea1f1af0a6ee4a8fc30a57e51c83a4a4ef8794fc5988dea435416d070100000000000000e0fc24bd5365279a1f16e02846535936fef8ba8a1d0be2ffa544b7f1773874df0100000000000000b61eecf2019c2a6f3af7c6120decdd3352233c39d002070758be081221a8a3ad0100000000000000c488ef26295140d0ffa6b0df1cff9f8d8a1dc96d86fd199a389bcb2f37a87f340100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000043c2d4b1849d6436815e9b259d167aa914c69f400724ed0fc4a9bb53bea455e5010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e01000000000000008f36f8befe9f8dce1cc71da7a1ac8a2feac75a99989b77bedd83f082f6f584370100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd380100000000000000604ac1feb76a5f2e7100ea7c8546c1b40bd6c59fd96ef9d58c2e93d7afc8aa20010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000a9f24f0208a21e8cda4e450c72074f20d76a927bb80fa4418e480e0b59575c6b0100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf12701000000000000004a68c3ada00a5c4248e74840b836cdb87eec6adbf99dabbb90a8ded6e04de6c60100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec0100000000000000911840a1fb8a437f74125e66cbaca2734c2f487cdd3581ff34688e33d010c322010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b0100000000000000700f01e62a9c97bb86cb5bbb57ac20c74af3695fcef14ebea1f133d3a9253cc701000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae0101000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd0100000000000000fb3a06e07b02896157fdc7230199503899221cd21bacdd79d2469adb1cc39ece010000000000000086cddc46c9a3a42c3821183d597e76872f1d4904b84a92e8160ab4e0fb4d39a801000000000000005566b715a9b242296b7580227095f267f07c33d5a6e9a878010bb6971bf1ff1e0100000000000000b9937be3842b54d71cdc96f6739d0a7071b89934bf9644ea362f6ecb477b46c3010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde61728001000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b0100000000000000bb634911f0ef84718fe06e395c08721b651e6670e8de1212958788bc273a57ce01000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000e00e041baa455db9c38d07cf42c7148eebd348c3df36ab0efd4e70536c05382d0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f0100000000000000f42c2e2a4157d51d22d5997dea1342f65e1882e207fd0e64e8e5d44330857eef01000000000000000a78114972d0d627bf3e6a0d42be67a6a9b0383b38b19c0a4b8d94680314b7e801000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000004b60439134648acf06fc93fb9b12c1620f13622f79f679823ff2245a63fdd862010000000000000048e913aac841999a5ee57d045f46324522c4572fa11c47a3b7a476e443081f110100000000000000e10262e728a0faafc2edb7bf41a4a1416136fcf03fa8362b89c44e29363edb0b0100000000000000cec26505b5a875ae4ad065fe00e2bbeffca5ad37990c9a2595d80136c0e0cff20100000000000000c898dac07a659dcf7a5d8cd593ce9b463a3a7452678f9a6b4f6ae3785823e5cf0100000000000000f301324859c6a110e51ef386369ddd36f3ba4c8a2e873523588f9fa7929edb000100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000013035b054a6a20e95af1fb5cb61d2cbb1f3df0e8199fcf06887993b8e0e9f270010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a010000000000000069077a1f487cd675ed54ac2da7c87cce2a920366b08003675f0c5b1fbe6a5112010000000000000014d510a250cc67513a7b9dfb1793da5736717609dc2c8369136da3343280f1bb0100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000007f6fe3b417c26965a21ccf584140ae4705672bf1a20f5164e1e39af1378cbd0901000000000000002b7b893e884f4d9c99a3a154b78cfa4b461422860537fa77d064dbd0de4e0a8a010000000000000068e90ce2ac6f008d2571707d4efe418bb0c842320a34851480ff64c969a5eae601000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000437514fdd2338418a82b6f388df43bef0924f4288febdc261a5c5c746fc0092a01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b801000000000000006e2897ed93a9e9d54be62772edc02fa77ef6c654026a2b86672bd6a37fd202090100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000caed8581d88dd8e296c0905402fa273777ac1a025a8b6a23eac85a0e15acb6b60100000000000000fb2961b63fcc863a92a07f5b94fe735742c3c159300656cda7d82eefa8b3b98801000000000000000c83976a1a4c0a466aff0538c5e8e855a661aa770f8a5e5c4270ef95b2971c7201000000000000009c3b0fbdb941ee8977e04745736b2ce8c149a63c2ec758b3ad7934ca190123c90100000000000000dfa95a3c8b7a217c1cf1d9ef878a26ea611691ad1e765bac7b1313654505a89e0100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e33401000000000000008c933a69beec72cf0211a7b24024b345f52eabba758b3e791e8b6efa0f255e720100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd50100000000000000fd3d1c4982441db21060e8834c5ccb6331e81fbfa01756770dfe297d5038ac950100000000000000487da9661496aad61869534fe7397d6b1aa1786f4d587137005c0e7b4dc4c1cb010000000000000098237d7b68db1bb6e79c5174523a8806a88fe0fe427b40199b984216800517d30100000000000000a717e6564944b5d85787a33a53ccece07dcd37ce2f375b4e356c328858ac475b0100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb5933094010000000000000061914b4dba0a1e42e692016cb74943266b257339008ffed4644231a2b48df21a0100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d5801000000000000000252096f36d3fa5ebf0cc8d2503c89b04dedb1fe5eadfc21fcf358f8bea4f4fb0100000000000000679be02f7b0dad4f2bfeb2c28f3eb21cdbf17e17e2dbc67805e24a33626c48770100000000000000a2f4a1f4f948672643ccc4a8bcd5777e41cfad157055c2411c755edc71360f1f01000000000000003bded69e6736764c65d5c20bc98c6e8856f86fdc2549d105cd05f6c3f85227ee0100000000000000a272db41595d659e0a5ef3be28a4e79cb2be47b528519b358891dfca76d3ab820100000000000000e7829902259630b53e10c971c39c203e6f8b354c023ec73274c315ddd77dd3c5010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c811a24a21f2c3fcefec7c9323ac8a76a6ff40875e47750d97c8d0d4fe0d36e3010000000000000049bcccec5b11f8810bcc3fa902ac3b8746da0ef0fcbe5fcf87e24c7aab800e070100000000000000c06eed03d05ef5aa3e01f08c96cdd2698711a83b3875141a3cea5583f29a4cf00100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb010000000000000090c47bdd7fcfa4f8ad90f21b09e45cc97ed7c8313f3d6e09e055c2b2d3fd277c010000000000000086169032d8805e303ab45e60323c220c83c3f19e41e6321a0bdb3b139e16c48f01000000000000003db5f801c2e208df9a9b55c5f2d459ee2c3dc9fb94e208695f2ee4025f4bed4f01000000000000003ab5af195d3e54bba57e395b1b69920bbee9a5169aa1ee8ed0ab97422528e9490100000000000000c52e690f51696020b180cf0a5c4de40429794b618e471c63a52da80713e133f2010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d0100000000000000faa7af0f76a660a8c8c89fabf7290f2938798fcf0d522902d5d8b1d3a177e05d0100000000000000a63ecf0e809a864fcc5e2a49d6ef628c1182977f1f99c34297eaae1d111cf11f01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f270100000000000000d2094596ac15044466f54ff78602dcf2ea417ecbaee1c27e4f72f81054669f4301000000000000007aaf0dc7f2078ce612a6e0e4bbd718544d4600d5ab22adeced647b5c7c35a9090100000000000000c3231f27de597d2702bb08b4f2d0d234aa934ecb291895229fbccffc88ab581d010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f01000000000000008460ec4ea6711f426d009971ea07cb797307e539535aa339f33482bf53b5776e0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae010000000000000063d2abee781d47f4cbebbc4570f1f4cdbc3cd966f49a0ae931cf4606de3667c7010000000000000074d7396cfb7b36c95e8cd492088d64845a0fc437ec3c6312a548aeed6cee89f00100000000000000d940b0b509605d2b1ec83a73fb7f70ae462cd75484bb05c3d2af154f9ca7863d01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c841c4c59f243261bf2ad9b004ab1509b37ed63126c7f2c4d4533c22945e68e70100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee249701000000000000007dbbf5eb5eac3597e8b1929d3b376f178b32a218a99b271c4255dd453576e5f70100000000000000e05521afa0e7c1526a49e1ca6ec5c5386673607cf6e53d223611850f51d37fcb0100000000000000b9f54ca6fa0be84b1c7b42a426f37cb4218cc7840b9e1aea647e215739cf19540100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb010000000000000058bdef593ebc7a4c286c531b2a0233b7892048076ef8db6effd209862e004d3c010000000000000003dd543dddd6ad00137ddf94a218bfa19d2f08b4365d696765dc25deef76598b0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b49727292401000000000000004bf6037c3820cb7468601051701164948b7f7cbbe1ac8cad97e809c76170dddf0100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc55301000000000000008fddedb3a1d94e852bb621d3ae5658cd1bdf2eff6d56ea8cef85e86512f4ae3f01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d01000000000000008b0e01554a56d0065b3f6ec00895ed419557ae0c490f701c89dc8f25bdc3b96b0100000000000000eb012d6e9566a435063828e600eb9547e36860f266bd810e2a3513cc0de59b250100000000000000a32665b03a0ec6a90eed56522c31dd5b5a274e84e71f911718019d67b82ffeec010000000000000073d4718d5e7b8055029b922935b63919d1fdd30c85e8a7f2cc4467cfdc8ab96c010000000000000043f0c689c19f75362242c2412fb65e09598d58b8b005f5044dfba06d463e6f8c01000000000000000a4a6b57678e7e76465ee7c85cf9909d9a793905eac1571caf97754731c6e48f0100000000000000f81c4aec1ea33feff19e586bcaccfde776d18ca82c9bdb4181f077aa5f1937400100000000000000efb2050b4af1539f3d01100a9241f83df452dd165079d6f3cebc7a24c0f23c5901000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000fbd06da169daa41936401cd54d06ecb61cf722e3e1d34a9ac048d0c800014d5f0100000000000000dc5289899ba3e91edf93781843f9abbc99b3ae0beb940c385edf706acdf0d25401000000000000009776c65a230501bd569249d292ef01c6b3c9c83710badd049dfd1b4b7a182aec0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000dc781a2ffc8078b51e83dbfad41462eaf4eb67a05b232b166dce3be738073c0c01000000000000008ad2a4c25ba87cadf77dccde3a56ac8387fb01a6e84d2dac43927f163e7ca0bf0100000000000000d3446b94b38255ea7a70f84e52f0f167cb5ebd82a3c0f31498bbf2b24ae3a9650100000000000000c8533061c63174fe99dbaca39728999bc10c224f55cfcfc9106f36918bd1bc1f010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000c99a2f3e8188ae4473190d2d19e1aa5757ccf503fd1eaaa1a9b621718db6f8850100000000000000b1cbae16db013e1e1527f71c3ca6d7bd706e0905e12d70eca255ee51ecb486070100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae0100000000000000924a4c8eaf9cda0c487123d61fa23b1f925e6d258b401afe0fb35d49088293d6010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000141843e01ca126ae9437788b5ac332e4f8d825e24a79d148da107a6a018db78d01000000000000007ff375d95a9d3ce2761197d5f01279c86365a7d79240170a7cdc0e7bc0643fcf0100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c201000000000000009b441bc4e5e4674cde59464cfcedd490af143f22ed8bf85395c919af9da608a501000000000000001de97cc443740a0e0e0fdf166ef4515c387fec450fc4d4e141cebb41e1b7f8e90100000000000000cebda928172b7536bec564d32938af6810a6b99aac8acb4a88c1581f8ef1839e0100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe6626860100000000000000e09d677a7d9eaa0c82aeaab90dee017ff8b9fdf058c6896d173ab29f4ed24d8001000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000f8293cea6216f67e675ab858a77f5fbc4f36edf81202ed498d18854d87a72ee70100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a01000000000000002dd9a73d6ca904a6dbcd597b5f90e412616cf506cb3f3543405393b6721cf4490100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000001df7a4526aefb5459b9794bc7305a93c502aa5533e6a2656787d79073ba8fa3901000000000000006ea7932365c6c1a18338534d4e216f7a98eb1e41ac243503aafbc76d237ce49001000000000000006117f03dcb0fd42fae72895c31c7accb6c44923fc0cd7e6b2404eee863ff616d0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad510100000000000000224c188fd64e966bc352e651c8a0eec01f8d3f7a83faa2309841d5ba7a4cbb0601000000000000002d24688a25b8e5fe28e3f3fe4c283810b85d79119a7a802637d1e413bf49d93c010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a468101000000000000000d8e0ceb31d11634ff50f20c90d57239a9307602e221baa190c784b144a7eb980100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000015b49bdd8cb8b9110a45bd1985746655b330829e1dbe7580ade2fab6531799d3010000000000000094c6aec4f3b8aa959e5e7fb46db292cf604055645bc904c9791f7bc51e57241a0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000858f1d3ed15548e80aabb268a901491071471c60d323ac0e1c1db4ac1b92799101000000000000009d90d7dde42d13fe6f30cba1a8b2406b676f859959e3434e91cc05b1071c7b7d0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000008e4c3674dd4ed8a06e9f34797952e1e8a31026baa26b440b23103f658053ac2401000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee6330100000000000000f1df6c16f82f1eb89306bcbbee13ecc7f150e6ac8e3a2e968faced83b2ba220d0100000000000000e00ba032fb8db5440a1fdf743f87fe529ac2cc66fb8207b9b2df2d813b5f5db1010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c6010000000000000037cf0e2296974765b587766e6f36c0b98f69c1698d0af2f8c3490841509ccedb01000000000000002883621fbe5898708e92cce814c4bda9a0e10cde4e7d0221a7132621335815040100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a86601000000000000004190cb0b8da167787ba76ffd647a174ed34953b8c189753a421060ba353c3d8e010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f22548214662b5637a61fcc51e28fff086f1c33e75b4ca5f1d806be6ef40f82b01000000000000003ee731da725307266b32393e3d353b49dcf27f3b55220edbe210af3094f1b2940100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e20100000000000000e8e5e317b488d886a5ab7367a16882fa66e6ba917f27a11c14bf9347202631f601000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000084d59a298bbe9054acc68506c802a7363c1ef0cc568575991e749ab264bccd10100000000000000e793c0578be40676ea7aafc611a54c214f6694253ade9652a3f1364823042d6e010000000000000007e11db40409c32a4261679bc520ee8ce4af31944d19b1faf2158299e905e7280100000000000000663c8fe80bae69d087a20412e2bfa3b8c786174d39ef38ff0d53f8b42ba593840100000000000000880891df65393d0546f23fe37b28e51783bf50ad5f33572c3b9973af5ac47aad0100000000000000edcb49c54783d276bf63f9d99bc74b76b30c95840c637174df7a7521a1b8c1b301000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000ef2a9de26bf87b283f28033bff0b5b40f36120e7eb83288d4b3553af44cbaca4010000000000000005c80b2ef3c20d81e5019d37ee5210d7fc491cf38e66d81ef6b635d54b1564390100000000000000cc72facbb31b49a959b8282b4911f4add24f8983b8d6fad7722cb26fe386b4660100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000d9cc924ae241639ecf32213a2de90ee7642218ff5ae67f338989a6ef5f5a39a80100000000000000fd511b296963bc98ee75be2e1c0d2d8fb7e4d7cd39c6fed96e1824c4f189312f0100000000000000357e7bea9428a23430b237779656cf06bcc9fe500d28d34dd3822d9797a0b0f401000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d41410100000000000000a51a49fa663cbea3b953fee99f911391d75d638349a2681e30759820c6f3c60b0100000000000000f7a16243e7d2a3949120910c14e84d58de999fdaa7ebbe5aa00492cc25326d19010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000826fea075408d2c9331974dad61f4fedb0a7a306711c696997bc63b4b0e73e4c0100000000000000cdce828c6b62da7b39b46a6cf22aa1f2254781d9ed8f693f97d640f45239f68201000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf027010000000000000072f284dea2d25cdd32cd0d0c65d53f6e4a3e6652d331485925274561f9ee84cd0100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f3635909284001000000000000000c51a2fafec5e84c2eff03073ad84843158abb5d1e326dd1a3b1aaa70f00f71f0100000000000000c7009be830fe78c42f12f0753923131d16300bac230650001636b6a546cf0aa30100000000000000425d9edc1cc5cf795f0caee680a379215cb77d71c69bfe41296df63cb2ac3443010000000000000040d9e57b1acbe49e8e43213ec1b8b9d51f7d32ad1fe1b10dd5f47c5735e2bb0501000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000ef84e45f4eac4fab5087750324ff846605ef3292278d4bbb86b0d3e4380a63a601000000000000006a5dcdf2c3598c00d31a010dece5bf744f203856712531b07a31babcf06d09e301000000000000004201a9d54fc376fb7fad6e22bff58bba820f9f6a8318d812eb6578412293a9790100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000dc7dd4a44e826713227ec95280afc6de7023a99d4eacf69b2b4f9998fefee5bb01000000000000009050aab3d1deb0f610b3814843ec7623a7c33e399cca6b21cb56e578fad2675c01000000000000008a8f8f282dc3b0a3c10bf6a9065b3693b0d09352d51998cff2e2a281dc8a9aea010000000000000005d8d6df257d4d2bd0d052de5e34531deb8cc3a51d05835f3009a19668d72c1e0100000000000000fb8a10453f2b844a3c9f520b0e6b0c05b844ee725c4cd2badcdd582b0bba06790100000000000000ebc4e23990db82747d6c538f4dffb022465ec121835a064add742603a4d69ffa0100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b3850100000000000000f8e50e8b63b242e30e5bd266584b6fc690817455d2eac1e04d146dfc1dd3614d010000000000000094d296df9ca6256129cfb8d81566c02c3693e86b34634bf36714a56a393369980100000000000000761ce3eef4bd0d15601aef70728f54ca72a9859e90841c3d02d50602016718780100000000000000c3e139305f90217b77c92a8c8879c7704862b1609d2179d472dbce7457a1301e010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb0100000000000000b04763d321fbfbf0b7c0ee6bb824158c09a120e7bac2d04fd26783d1768ff4af01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000b254966470ce7d8f603efbbf53a66a19ca235134bc0f4980de8133941dabe247010000000000000033068e4106a25ebc442c7f0e6961a890c35bed3ea6aed04315351abc73f217f101000000000000008cd1d1bd7f30c41e9cdfed22057ae859aa48bc5fc43568da05cd3de40581ab530100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000004655b8a8e7f4e3532b7aa5e461d25ca6d5af49e0557da59654d15fe1d1eda4c010000000000000062aca2798b15062d38b79faa681032eae9f6d465451fa864dcc1ac58eead451701000000000000008510e46ac2ec2305c93ed29dff9d0ff30c098fd61e55cd2d891130301eeb3a6c010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc1890100000000000000a29c2c891e620ccb15c1f8459b93476359e7678defc7176e74a7467b8d46a13401000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000d207ebfe07d6c8bfd5badd7a25373ef5a9ddac08da3e542e5a9d36439259e83701000000000000001773a9984bd619d4469608aeeb38a98e688474cf0870a45ced8d297ba56275be0100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b6301000000000000004d5bff97dbb9611b6ce30d0053ce0251e784d2e87156d951aea0f94ef588a3d5010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000b79f919442f4ca5ac9195fd09a1239b1a80bd225f8372f1b36a24a8c55de61f20100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f601000000000000000508e81a6bc4971d3a3d986a1eb4cd13e7ceea563a46b70e1a0d47a212be51c8010000000000000027dfab9dbc403f53966a751eebbd5752c3ad1c8d6a2abdab952d70ebb059ddbf0100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000063aba535d488b9395537fda7ec3d9cc0822fa53933a6b4fe8c7ac2d5ec3452b80100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c80100000000000000885cecb37103f6f9b637c04d527c96e638869430315fffc153d628df1270cca1010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e701000000000000004d772fa77ce73a70af294a88f933c69737a2fa1754fbc6cafeaa022bdf993bf1010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000be7d712c12ceac823e847da641bcf8a87d7a32327c1ce623232c7c97a5389c5b01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e36389010000000000000093c48b75581fb7e9490637a807b79811f8e1c6222878ba9e7c32be8e0255e52d0100000000000000739571b412bc39a7e64c7cb0be6306df344ccd6b8dcfc1e23668cff89191539d01000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb01000000000000003751874277b67454eb785c4a26a55daa976f0bddb46c328bbda78e74b85cbb080100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000f9596b41435b16c7dba7e9281aea3ec21ec934f3a645735405c78a4fa6a75c660100000000000000ad9fe11973ffaa47d69271ed14df5797011e28bdbf3316abfb551b211e67bd9d010000000000000099db3968f4b18d8976ae0071a375c5aa49c415a8d988cc18af8dcace497b9625010000000000000040717496b8eb32791c7227ce81edaa17f7ed59d33850b81432085b3a06f2a3530100000000000000c4b79a0370170c59bffd686732dc48820c66a734b629e886fbb4d62a537a228501000000000000004ecbba9ff17b4f8b903e466f260d3be24d782f44ea36905d686739f1209c95940100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000a7dcf50fb724298ea61a8dbf24c81f866ed48708e1c2f914472f195aaf1313d1010000000000000054bfa11922b74f3ce2877960cfd0e4906ca2b4d559ce8a2d86f650d40e23bb3b01000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e00100000000000000a00c14557fb624516cee4e5e848bb70013775cfe0e1e88b760ba6942e15d91770100000000000000e6489beb573734e417fa040e59af4e44789001fad63f5df871818cc70714e6d001000000000000005ee516fa4c351fb4adcb522658cf7531eac3b2b3365a647cd8d7c7681e146458010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000ce83633176ffce5a8f4baa938996b8c58168a32fac0b112aaa32096770af816401000000000000007104becc86b2517ee166201faadeec93e4150bbde0fed50e99f68f427f5af87801000000000000001c75903a1322a4100085e96d389b7ef1f2ed20d4db433f0fcbba51bbf2bdbf5201000000000000000d74dcd0b6a882174e19043f0865b9acab27918fa5d24221a3401bb4c61bd5840100000000000000dd38154bc6c5bb16c81a06f3c11fd6e9114b7856afd3456982ee630dc7fa772e0100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000004d960a5b5cfc68f32236a14f5e094ec24c9bd0f73df19086c27cff9a78fd5dbb01000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000546e44e42280120f4062a17d14ff7ab73aa3c77bc8979c5fe3c5d4b9381885bc0100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c70100000000000000fdb6ae85ec3ae50541230a9294ca4efcbbb3ae21063cc161cc6ab05a03f273da01000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd880100000000000000ac2fbfa72c143162a81c57a10fbb8a14e5f65fa1b893eec3f93beff03d298b5a0100000000000000c9936bdf746ac3e7214bea7c0eed0d5eefe9b23dcdf6841a58192a729a0f732401000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000b2e57d4c6f8e6b12ac5a392750eb93c1f30ce4820d8982c90420d83420a2a9bf0100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000d156efd80e52b00a319c582d934a833ee3340fb216da48a614edce8bcc18010e01000000000000001a6cdb9906d5861bf1101aa5a8816a25be63b460843c13065760d0e9bd5a2f600100000000000000280084dd48c4c3ebf743e3a8448e2815fcf183dfd0121c19453278da053c20a301000000000000000ea1cd7154cd4d50d009d8db3d6d40897d9170ff97e6493c8d0dd2ca745823070100000000000000617addbf393ae731ee0e7dc2c2f7544dff2cf17bc32614d6ca9bfa8ca3a04a760100000000000000bb92a261303a8a035d4072f335d2ec4acb0189af8f668f860506aa69bb19d1d90100000000000000a986ea6527c84c8a68a11d0cd2980ef14d636af7d4575b1ea482d7142e1a93da0100000000000000db8e840e99078eaf04cb3f1a4d7973607f3e54060b8d100a966f370daf9adc8f01000000000000001c7f2d9bd18be698e965e046d582013b73031a21e8b7d188391c05cf2707ec6f0100000000000000daffd43670286cbddbf38953e6e33ba093f8c719e9fbf0a4aa76ff3ee97df30701000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000a32eb40a03a7f6070b6846abd22ccc91ab124779c27752e0744928a8230ffeb50100000000000000b48574503e3b787008ed9b1fc9eb4b0275fadecfdb352f166973da58d1a43b6501000000000000007d52bfdaa12a3af4707178d1d94e668fc092ba0055f2111c4bcf5bffa08729ef0100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c900665280100000000000000083eb170caa5f4b48f692526badc3b97fb88dd76df11691d4e8377e5928526440100000000000000662c682eb99cf0516be481d1c3201c37888a0aa4f12d165ef239016ae96bdce901000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b01000000000000007721a15e548a6313461c4fed9f39112ad43b09e9873279f8cd28702ead9a87620100000000000000c2b23d1562573ecf2f619459f1072a7b835dab5a122bb7474313fe7cafde772601000000000000002e67b1ee2cd70ab302b783acf6494de67d8dc29578f10c20745f809d094ff2740100000000000000e4c473b0f002fb85e5f5123b448c8402b44d7f1dd380e991fd895f9bcbe4cc87010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e55180100000000000000f9080000000000000001de68640100e52300000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b014108000000000000f1044c014208000000000000863c4c01430800000000000074744c014408000000000000d17d4c0145080000000000007fac4c01460800000000000022bf4c01470800000000000078e44c01480800000000000028f74c0149080000000000008c1c4d014a0800000000000087544d014b08000000000000da5d4d014c080000000000008b704d014d08000000000000878c4d014e08000000000000309f4d014f0800000000000063c44d0150080000000000006ffc4d01510800000000000070344e015208000000000000476c4e01530800000000000097754e01540800000000000025a44e015508000000000000cfb64e0156080000000000001ddc4e01570800000000000070e54e0158080000000000001d144f015908000000000000284c4f015a0800000000000043844f015b080000000000005ebc4f015c080000000000006ff44f015d08000000000000a32c50015e08000000000000dc6450015f08000000000000f19c5001600800000000000005d550016108000000000000f70c51016208000000000000014551016308000000000000a35751016408000000000000d87c51016508000000000000a7b451016608000000000000c8ec51016708000000000000ef24520168080000000000003f4a52016908000000000000d15c52016a08000000000000c39452016b0800000000000029ba52016c08000000000000d7cc52016d0800000000000035f252016e08000000000000e80453016f080000000000009e3353017008000000000000f03c530171080000000000005c62530172080000000000000c755301730800000000000014ad5301740800000000000018e553017508000000000000bdf753017608000000000000081d540177080000000000002155540178080000000000007a5e54017908000000000000288d54017a080000000000003fc554017b08000000000000f7f354017c080000000000004ffd54017d08000000000000463555017e08000000000000356d55017f0800000000000035a55501800800000000000088ae5501810800000000000032dd5501820800000000000089e655018308000000000000e6ef5501840800000000000045f955018508000000000000a50256018608000000000000611556018708000000000000c01e56018808000000000000de3a56018908000000000000954d56018a08000000000000f55656018b08000000000000c98556018c08000000000000edbd56018d08000000000000aad056018e080000000000001ff656018f080000000000007aff560190080000000000004d2e57019108000000000000876657019208000000000000c19e57019308000000000000fdd657019408000000000000ade957019508000000000000160f580196080000000000004447580197080000000000009e5058019808000000000000e37e580199080000000000008ca358019a08000000000000dbb558019b0800000000000008bf58019c080000000000009ded58019d08000000000000d82559019e08000000000000115e59019f08000000000000d78c5901a00800000000000035965901a1080000000000006dce5901a208000000000000a6065a01a308000000000000df3e5a01a4080000000000003d485a01a50800000000000016775a01a6080000000000004daf5a01a7080000000000000ac25a01a80800000000000083e75a01a908000000000000bb1f5b01aa0800000000000072325b01ab08000000000000cf3b5b01ac08000000000000ca575b01ad0800000000000013615b01ae08000000000000ba735b01af08000000000000b98f5b01b008000000000000e9c75b01b108000000000000a1da5b01b2080000000000005aed5b01b3080000000000000a005c01b40800000000000066095c01b5080000000000000e385c01b6080000000000006b415c01b70800000000000035705c01b808000000000000528c5c01b90800000000000069a85c01ba080000000000007ee05c01bb08000000000000a2185d01bc08000000000000bf505d01bd080000000000001b5a5d01be08000000000000dc885d01bf08000000000000fcc05d01c00800000000000016f95d01c1080000000000002d315e01c20800000000000052695e01c3080000000000007aa15e01c408000000000000d5aa5e01c5080000000000008bd95e01c608000000000000e7e25e01c708000000000000bf115f01c808000000000000de2d5f01c908000000000000f8495f01ca080000000000004d535f01cb0800000000000013825f01cc08000000000000c2945f01cd08000000000000b8b05f01ce0800000000000008ba5f01cf0800000000000058c35f01d008000000000000b6cc5f01d10800000000000034f25f01d208000000000000642a6001d308000000000000c4336001d4080000000000009d626001d5080000000000005b756001d60800000000000070916001d708000000000000ce9a6001d80800000000000002d36001d908000000000000390b6101da080000000000001f276101db08000000000000fe426101dc08000000000000494c6101dd08000000000000ec5e6101de08000000000000e77a6101df08000000000000dfb26101e00800000000000086c56101e108000000000000dace6101e208000000000000c4ea6101e30800000000000069fd6101e408000000000000bb226201e508000000000000f35a6201e6080000000000001e936201e708000000000000719c6201e808000000000000c3a56201e908000000000000d1c16201ea080000000000002ecb6201eb08000000000000a7f06201ec080000000000005d036301ed08000000000000953b6301ee08000000000000504e6301ef08000000000000c9736301f008000000000000eeab6301f108000000000000a2be6301f20800000000000050d16301f308000000000000a3da6301f408000000000000fce36301f50800000000000051ed6301f608000000000000bd126401f7080000000000001a1c6401f80800000000000034546401" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index 215721500f..1945aacc8c 100644 Binary files a/artifacts/polkadot_metadata_full.scale and b/artifacts/polkadot_metadata_full.scale differ diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index 687304fa8b..9d5c63b546 100644 Binary files a/artifacts/polkadot_metadata_small.scale and b/artifacts/polkadot_metadata_small.scale differ diff --git a/artifacts/polkadot_metadata_tiny.scale b/artifacts/polkadot_metadata_tiny.scale index 614eb7cd18..2376a3a6a1 100644 Binary files a/artifacts/polkadot_metadata_tiny.scale and b/artifacts/polkadot_metadata_tiny.scale differ diff --git a/cli/src/commands/explore/mod.rs b/cli/src/commands/explore/mod.rs index 904c2f11e1..3054093fee 100644 --- a/cli/src/commands/explore/mod.rs +++ b/cli/src/commands/explore/mod.rs @@ -338,6 +338,7 @@ pub mod tests { SessionKeys TaggedTransactionQueue TransactionPaymentApi + TrustedQueryApi XcmPaymentApi "}; assert_eq!(output, expected_output); diff --git a/subxt/examples/setup_config_assethub.rs b/subxt/examples/setup_config_assethub.rs index 99750898ef..c7ed6e09d3 100644 --- a/subxt/examples/setup_config_assethub.rs +++ b/subxt/examples/setup_config_assethub.rs @@ -7,13 +7,14 @@ use subxt_signer::sr25519::dev; #[subxt::subxt( runtime_metadata_path = "../artifacts/polkadot_metadata_full.scale", derive_for_type( - path = "xcm::v2::multilocation::MultiLocation", + path = "staging_xcm::v3::multilocation::MultiLocation", derive = "Clone", recursive ) )] pub mod runtime {} -use runtime::runtime_types::xcm::v2::multilocation::{Junctions, MultiLocation}; +use runtime::runtime_types::staging_xcm::v3::multilocation::MultiLocation; +use runtime::runtime_types::xcm::v3::junctions::Junctions; // We don't need to construct this at runtime, so an empty enum is appropriate. pub enum AssetHubConfig {} diff --git a/testing/integration-tests/src/full_client/codegen/polkadot.rs b/testing/integration-tests/src/full_client/codegen/polkadot.rs index 3613607df9..6a1d7e8029 100644 --- a/testing/integration-tests/src/full_client/codegen/polkadot.rs +++ b/testing/integration-tests/src/full_client/codegen/polkadot.rs @@ -6,7 +6,7 @@ pub mod api { mod root_mod { pub use super::*; } - pub static PALLETS: [&str; 67usize] = [ + pub static PALLETS: [&str; 68usize] = [ "System", "Babe", "Timestamp", @@ -63,6 +63,7 @@ pub mod api { "Auctions", "Crowdloan", "Coretime", + "MultiBlockMigrations", "XcmPallet", "Beefy", "Mmr", @@ -75,7 +76,7 @@ pub mod api { "RootTesting", "Sudo", ]; - pub static RUNTIME_APIS: [&str; 19usize] = [ + pub static RUNTIME_APIS: [&str; 20usize] = [ "Core", "XcmPaymentApi", "DryRunApi", @@ -95,6 +96,7 @@ pub mod api { "TransactionPaymentApi", "BeefyMmrApi", "GenesisBuilder", + "TrustedQueryApi", ]; #[doc = r" The error type that is returned when there is a runtime issue."] pub type DispatchError = runtime_types::sp_runtime::DispatchError; @@ -185,6 +187,9 @@ pub mod api { pub fn genesis_builder(&self) -> genesis_builder::GenesisBuilder { genesis_builder::GenesisBuilder } + pub fn trusted_query_api(&self) -> trusted_query_api::TrustedQueryApi { + trusted_query_api::TrustedQueryApi + } } pub mod core { use super::root_mod; @@ -204,9 +209,9 @@ pub mod api { "version", types::Version {}, [ - 108u8, 141u8, 93u8, 59u8, 142u8, 218u8, 175u8, 19u8, 76u8, 95u8, 57u8, - 3u8, 2u8, 112u8, 60u8, 88u8, 80u8, 155u8, 205u8, 7u8, 7u8, 110u8, - 202u8, 12u8, 58u8, 248u8, 93u8, 26u8, 41u8, 21u8, 249u8, 85u8, + 79u8, 22u8, 137u8, 4u8, 40u8, 64u8, 30u8, 180u8, 49u8, 222u8, 114u8, + 125u8, 44u8, 25u8, 33u8, 152u8, 98u8, 42u8, 72u8, 178u8, 240u8, 103u8, + 34u8, 187u8, 81u8, 161u8, 183u8, 6u8, 120u8, 2u8, 146u8, 0u8, ], ) } @@ -362,10 +367,9 @@ pub mod api { "query_acceptable_payment_assets", types::QueryAcceptablePaymentAssets { xcm_version }, [ - 232u8, 67u8, 173u8, 246u8, 152u8, 193u8, 90u8, 68u8, 49u8, 200u8, - 118u8, 68u8, 139u8, 225u8, 161u8, 38u8, 177u8, 158u8, 83u8, 135u8, - 180u8, 97u8, 4u8, 94u8, 0u8, 232u8, 114u8, 119u8, 77u8, 5u8, 8u8, - 236u8, + 29u8, 81u8, 159u8, 80u8, 29u8, 95u8, 91u8, 180u8, 135u8, 23u8, 106u8, + 224u8, 21u8, 102u8, 89u8, 89u8, 23u8, 72u8, 125u8, 136u8, 144u8, 136u8, + 96u8, 224u8, 207u8, 197u8, 111u8, 238u8, 3u8, 46u8, 162u8, 78u8, ], ) } @@ -386,10 +390,9 @@ pub mod api { "query_xcm_weight", types::QueryXcmWeight { message }, [ - 58u8, 118u8, 149u8, 47u8, 144u8, 85u8, 10u8, 89u8, 29u8, 123u8, 249u8, - 209u8, 165u8, 160u8, 43u8, 246u8, 12u8, 106u8, 89u8, 20u8, 219u8, - 133u8, 189u8, 58u8, 14u8, 136u8, 189u8, 142u8, 123u8, 145u8, 77u8, - 68u8, + 81u8, 58u8, 136u8, 135u8, 175u8, 218u8, 87u8, 199u8, 41u8, 217u8, + 192u8, 54u8, 218u8, 73u8, 15u8, 209u8, 118u8, 209u8, 6u8, 110u8, 59u8, + 130u8, 139u8, 231u8, 90u8, 29u8, 192u8, 77u8, 52u8, 202u8, 93u8, 112u8, ], ) } @@ -412,9 +415,9 @@ pub mod api { "query_weight_to_asset_fee", types::QueryWeightToAssetFee { weight, asset }, [ - 86u8, 75u8, 169u8, 75u8, 0u8, 231u8, 241u8, 122u8, 197u8, 232u8, 188u8, - 66u8, 247u8, 240u8, 170u8, 39u8, 199u8, 82u8, 104u8, 16u8, 28u8, 40u8, - 214u8, 232u8, 177u8, 212u8, 117u8, 16u8, 181u8, 240u8, 33u8, 126u8, + 170u8, 180u8, 252u8, 70u8, 130u8, 183u8, 254u8, 104u8, 112u8, 235u8, + 227u8, 117u8, 29u8, 40u8, 30u8, 158u8, 149u8, 222u8, 126u8, 30u8, 2u8, + 107u8, 177u8, 35u8, 13u8, 203u8, 148u8, 83u8, 83u8, 74u8, 242u8, 210u8, ], ) } @@ -442,10 +445,9 @@ pub mod api { message, }, [ - 248u8, 169u8, 153u8, 16u8, 58u8, 94u8, 83u8, 239u8, 80u8, 12u8, 183u8, - 141u8, 169u8, 8u8, 137u8, 178u8, 241u8, 228u8, 241u8, 66u8, 89u8, - 202u8, 78u8, 125u8, 240u8, 248u8, 109u8, 41u8, 189u8, 119u8, 20u8, - 149u8, + 161u8, 88u8, 204u8, 26u8, 40u8, 84u8, 46u8, 110u8, 26u8, 77u8, 96u8, + 69u8, 45u8, 136u8, 78u8, 127u8, 178u8, 156u8, 2u8, 94u8, 198u8, 137u8, + 224u8, 96u8, 127u8, 127u8, 102u8, 63u8, 213u8, 96u8, 6u8, 251u8, ], ) } @@ -604,9 +606,10 @@ pub mod api { "dry_run_call", types::DryRunCall { origin, call }, [ - 98u8, 74u8, 157u8, 191u8, 38u8, 149u8, 9u8, 50u8, 218u8, 70u8, 242u8, - 153u8, 28u8, 222u8, 163u8, 67u8, 167u8, 160u8, 186u8, 177u8, 199u8, - 62u8, 129u8, 129u8, 126u8, 41u8, 196u8, 117u8, 37u8, 171u8, 45u8, 87u8, + 32u8, 238u8, 30u8, 203u8, 195u8, 225u8, 47u8, 162u8, 23u8, 218u8, + 193u8, 98u8, 116u8, 142u8, 71u8, 129u8, 146u8, 50u8, 14u8, 185u8, + 158u8, 124u8, 62u8, 195u8, 105u8, 44u8, 217u8, 126u8, 120u8, 216u8, + 199u8, 105u8, ], ) } @@ -627,10 +630,9 @@ pub mod api { xcm, }, [ - 107u8, 101u8, 102u8, 220u8, 15u8, 174u8, 134u8, 89u8, 94u8, 23u8, 7u8, - 200u8, 163u8, 227u8, 213u8, 129u8, 107u8, 194u8, 71u8, 122u8, 70u8, - 163u8, 120u8, 26u8, 143u8, 134u8, 96u8, 151u8, 96u8, 144u8, 202u8, - 196u8, + 108u8, 103u8, 217u8, 5u8, 113u8, 181u8, 200u8, 47u8, 35u8, 18u8, 13u8, + 216u8, 183u8, 159u8, 126u8, 109u8, 132u8, 171u8, 189u8, 89u8, 35u8, + 226u8, 40u8, 15u8, 248u8, 85u8, 177u8, 40u8, 138u8, 152u8, 15u8, 161u8, ], ) } @@ -724,10 +726,10 @@ pub mod api { "convert_location", types::ConvertLocation { location }, [ - 177u8, 18u8, 51u8, 215u8, 92u8, 244u8, 76u8, 112u8, 17u8, 169u8, 178u8, - 211u8, 218u8, 62u8, 162u8, 208u8, 204u8, 179u8, 209u8, 196u8, 53u8, - 73u8, 63u8, 14u8, 120u8, 142u8, 185u8, 141u8, 140u8, 111u8, 124u8, - 254u8, + 179u8, 162u8, 1u8, 26u8, 111u8, 211u8, 90u8, 95u8, 137u8, 123u8, 87u8, + 117u8, 40u8, 105u8, 246u8, 228u8, 103u8, 128u8, 236u8, 197u8, 187u8, + 234u8, 126u8, 122u8, 89u8, 135u8, 132u8, 148u8, 136u8, 31u8, 129u8, + 230u8, ], ) } @@ -1756,7 +1758,7 @@ pub mod api { #[doc = " Returns the state of parachain backing for a given para."] pub fn para_backing_state( &self, - _0: types::para_backing_state::Param0, + runtime_api_generated_name_0__ : types :: para_backing_state :: RuntimeApiGeneratedName0, ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< types::ParaBackingState, types::para_backing_state::output::Output, @@ -1764,11 +1766,13 @@ pub mod api { ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( "ParachainHost", "para_backing_state", - types::ParaBackingState { _0 }, + types::ParaBackingState { + runtime_api_generated_name_0__, + }, [ - 30u8, 84u8, 21u8, 19u8, 226u8, 215u8, 177u8, 219u8, 202u8, 91u8, 211u8, - 137u8, 118u8, 241u8, 118u8, 136u8, 160u8, 104u8, 133u8, 213u8, 137u8, - 241u8, 34u8, 132u8, 125u8, 160u8, 75u8, 211u8, 3u8, 173u8, 221u8, 65u8, + 118u8, 78u8, 30u8, 85u8, 237u8, 217u8, 251u8, 179u8, 159u8, 134u8, + 30u8, 119u8, 6u8, 51u8, 69u8, 45u8, 182u8, 151u8, 179u8, 145u8, 140u8, + 42u8, 38u8, 226u8, 136u8, 99u8, 68u8, 178u8, 52u8, 61u8, 241u8, 107u8, ], ) } @@ -2566,7 +2570,8 @@ pub mod api { pub struct MinimumBackingVotes {} pub mod para_backing_state { use super::runtime_types; - pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; + pub type RuntimeApiGeneratedName0 = + runtime_types::polkadot_parachain_primitives::primitives::Id; pub mod output { use super::runtime_types; pub type Output = :: core :: option :: Option < runtime_types :: polkadot_primitives :: vstaging :: async_backing :: BackingState < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > > ; @@ -2588,7 +2593,8 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct ParaBackingState { - pub _0: para_backing_state::Param0, + pub runtime_api_generated_name_0__: + para_backing_state::RuntimeApiGeneratedName0, } pub mod async_backing_params { use super::runtime_types; @@ -4518,15 +4524,16 @@ pub mod api { pub mod genesis_builder { use super::root_mod; use super::runtime_types; - #[doc = " API to interact with RuntimeGenesisConfig for the runtime"] + #[doc = " API to interact with `RuntimeGenesisConfig` for the runtime"] pub struct GenesisBuilder; impl GenesisBuilder { #[doc = " Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the"] #[doc = " storage."] #[doc = ""] - #[doc = " In the case of a FRAME-based runtime, this function deserializes the full `RuntimeGenesisConfig` from the given JSON blob and"] - #[doc = " puts it into the storage. If the provided JSON blob is incorrect or incomplete or the"] - #[doc = " deserialization fails, an error is returned."] + #[doc = " In the case of a FRAME-based runtime, this function deserializes the full"] + #[doc = " `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the"] + #[doc = " provided JSON blob is incorrect or incomplete or the deserialization fails, an error"] + #[doc = " is returned."] #[doc = ""] #[doc = " Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no"] #[doc = " defaults will be used."] @@ -4551,7 +4558,7 @@ pub mod api { #[doc = " Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by"] #[doc = " `id`."] #[doc = ""] - #[doc = " If `id` is `None` the function returns JSON blob representation of the default"] + #[doc = " If `id` is `None` the function should return JSON blob representation of the default"] #[doc = " `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default"] #[doc = " `RuntimeGenesisConfig`."] #[doc = ""] @@ -4692,6 +4699,126 @@ pub mod api { pub struct PresetNames {} } } + pub mod trusted_query_api { + use super::root_mod; + use super::runtime_types; + pub struct TrustedQueryApi; + impl TrustedQueryApi { + #[doc = " Returns if the location is a trusted reserve for the asset."] + #[doc = ""] + #[doc = " # Arguments"] + #[doc = " * `asset`: `VersionedAsset`."] + #[doc = " * `location`: `VersionedLocation`."] + pub fn is_trusted_reserve( + &self, + asset: types::is_trusted_reserve::Asset, + location: types::is_trusted_reserve::Location, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::IsTrustedReserve, + types::is_trusted_reserve::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "TrustedQueryApi", + "is_trusted_reserve", + types::IsTrustedReserve { asset, location }, + [ + 45u8, 87u8, 28u8, 66u8, 50u8, 121u8, 129u8, 188u8, 160u8, 192u8, 14u8, + 205u8, 141u8, 223u8, 5u8, 125u8, 82u8, 180u8, 231u8, 162u8, 134u8, + 98u8, 62u8, 104u8, 243u8, 184u8, 47u8, 49u8, 139u8, 206u8, 2u8, 86u8, + ], + ) + } + #[doc = " Returns if the asset can be teleported to the location."] + #[doc = ""] + #[doc = " # Arguments"] + #[doc = " * `asset`: `VersionedAsset`."] + #[doc = " * `location`: `VersionedLocation`."] + pub fn is_trusted_teleporter( + &self, + asset: types::is_trusted_teleporter::Asset, + location: types::is_trusted_teleporter::Location, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::IsTrustedTeleporter, + types::is_trusted_teleporter::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "TrustedQueryApi", + "is_trusted_teleporter", + types::IsTrustedTeleporter { asset, location }, + [ + 1u8, 161u8, 124u8, 10u8, 170u8, 140u8, 226u8, 50u8, 114u8, 90u8, 61u8, + 123u8, 58u8, 135u8, 75u8, 38u8, 140u8, 55u8, 177u8, 33u8, 38u8, 89u8, + 147u8, 54u8, 44u8, 56u8, 234u8, 193u8, 234u8, 206u8, 139u8, 84u8, + ], + ) + } + } + pub mod types { + use super::runtime_types; + pub mod is_trusted_reserve { + use super::runtime_types; + pub type Asset = runtime_types::xcm::VersionedAsset; + pub type Location = runtime_types::xcm::VersionedLocation; + pub mod output { + use super::runtime_types; + pub type Output = ::core::result::Result< + ::core::primitive::bool, + runtime_types::xcm_runtime_apis::trusted_query::Error, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct IsTrustedReserve { + pub asset: is_trusted_reserve::Asset, + pub location: is_trusted_reserve::Location, + } + pub mod is_trusted_teleporter { + use super::runtime_types; + pub type Asset = runtime_types::xcm::VersionedAsset; + pub type Location = runtime_types::xcm::VersionedLocation; + pub mod output { + use super::runtime_types; + pub type Output = ::core::result::Result< + ::core::primitive::bool, + runtime_types::xcm_runtime_apis::trusted_query::Error, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct IsTrustedTeleporter { + pub asset: is_trusted_teleporter::Asset, + pub location: is_trusted_teleporter::Location, + } + } + } } pub fn custom() -> CustomValuesApi { CustomValuesApi @@ -4800,6 +4927,9 @@ pub mod api { pub fn coretime(&self) -> coretime::constants::ConstantsApi { coretime::constants::ConstantsApi } + pub fn multi_block_migrations(&self) -> multi_block_migrations::constants::ConstantsApi { + multi_block_migrations::constants::ConstantsApi + } pub fn beefy(&self) -> beefy::constants::ConstantsApi { beefy::constants::ConstantsApi } @@ -4972,6 +5102,9 @@ pub mod api { pub fn crowdloan(&self) -> crowdloan::storage::StorageApi { crowdloan::storage::StorageApi } + pub fn multi_block_migrations(&self) -> multi_block_migrations::storage::StorageApi { + multi_block_migrations::storage::StorageApi + } pub fn xcm_pallet(&self) -> xcm_pallet::storage::StorageApi { xcm_pallet::storage::StorageApi } @@ -5136,6 +5269,9 @@ pub mod api { pub fn coretime(&self) -> coretime::calls::TransactionApi { coretime::calls::TransactionApi } + pub fn multi_block_migrations(&self) -> multi_block_migrations::calls::TransactionApi { + multi_block_migrations::calls::TransactionApi + } pub fn xcm_pallet(&self) -> xcm_pallet::calls::TransactionApi { xcm_pallet::calls::TransactionApi } @@ -5173,9 +5309,9 @@ pub mod api { .hash(); runtime_metadata_hash == [ - 111u8, 207u8, 238u8, 81u8, 154u8, 136u8, 66u8, 31u8, 240u8, 85u8, 233u8, 121u8, - 56u8, 61u8, 106u8, 230u8, 66u8, 85u8, 119u8, 202u8, 201u8, 196u8, 6u8, 175u8, - 201u8, 87u8, 152u8, 252u8, 119u8, 240u8, 180u8, 188u8, + 120u8, 17u8, 64u8, 78u8, 152u8, 135u8, 154u8, 1u8, 71u8, 108u8, 142u8, 8u8, 192u8, + 188u8, 229u8, 253u8, 93u8, 232u8, 207u8, 174u8, 125u8, 105u8, 206u8, 95u8, 248u8, + 159u8, 254u8, 193u8, 121u8, 49u8, 88u8, 247u8, ] } pub mod system { @@ -6334,10 +6470,10 @@ pub mod api { "Events", (), [ - 241u8, 83u8, 247u8, 155u8, 247u8, 244u8, 233u8, 163u8, 44u8, 207u8, - 250u8, 233u8, 47u8, 126u8, 2u8, 74u8, 108u8, 254u8, 131u8, 218u8, - 241u8, 0u8, 151u8, 143u8, 4u8, 166u8, 108u8, 174u8, 145u8, 121u8, - 218u8, 47u8, + 132u8, 2u8, 4u8, 73u8, 77u8, 41u8, 162u8, 239u8, 94u8, 153u8, 54u8, + 65u8, 163u8, 203u8, 193u8, 107u8, 195u8, 115u8, 112u8, 106u8, 58u8, + 196u8, 123u8, 54u8, 73u8, 11u8, 161u8, 188u8, 163u8, 63u8, 187u8, + 221u8, ], ) } @@ -6443,9 +6579,10 @@ pub mod api { "LastRuntimeUpgrade", (), [ - 137u8, 29u8, 175u8, 75u8, 197u8, 208u8, 91u8, 207u8, 156u8, 87u8, - 148u8, 68u8, 91u8, 140u8, 22u8, 233u8, 1u8, 229u8, 56u8, 34u8, 40u8, - 194u8, 253u8, 30u8, 163u8, 39u8, 54u8, 209u8, 13u8, 27u8, 139u8, 184u8, + 197u8, 212u8, 249u8, 209u8, 79u8, 34u8, 55u8, 203u8, 31u8, 42u8, 199u8, + 242u8, 188u8, 74u8, 234u8, 250u8, 245u8, 44u8, 139u8, 162u8, 45u8, + 150u8, 230u8, 249u8, 135u8, 100u8, 158u8, 167u8, 118u8, 219u8, 28u8, + 98u8, ], ) } @@ -6617,10 +6754,9 @@ pub mod api { "System", "Version", [ - 227u8, 242u8, 234u8, 213u8, 176u8, 189u8, 120u8, 162u8, 80u8, 43u8, - 180u8, 19u8, 125u8, 95u8, 237u8, 169u8, 247u8, 1u8, 123u8, 188u8, 1u8, - 38u8, 213u8, 195u8, 116u8, 219u8, 142u8, 217u8, 67u8, 237u8, 228u8, - 60u8, + 214u8, 43u8, 96u8, 193u8, 96u8, 213u8, 63u8, 124u8, 22u8, 111u8, 41u8, + 78u8, 146u8, 77u8, 34u8, 163u8, 117u8, 100u8, 6u8, 216u8, 238u8, 54u8, + 80u8, 185u8, 219u8, 11u8, 192u8, 200u8, 129u8, 88u8, 161u8, 250u8, ], ) } @@ -12014,10 +12150,10 @@ pub mod api { valid_from, }, [ - 127u8, 68u8, 115u8, 140u8, 122u8, 90u8, 253u8, 105u8, 230u8, 137u8, - 104u8, 130u8, 221u8, 123u8, 49u8, 126u8, 247u8, 80u8, 12u8, 4u8, 223u8, - 218u8, 187u8, 192u8, 61u8, 221u8, 46u8, 211u8, 71u8, 196u8, 55u8, - 237u8, + 137u8, 73u8, 150u8, 96u8, 128u8, 170u8, 125u8, 117u8, 152u8, 83u8, + 169u8, 159u8, 126u8, 173u8, 62u8, 236u8, 156u8, 244u8, 70u8, 123u8, + 18u8, 104u8, 120u8, 8u8, 39u8, 51u8, 98u8, 241u8, 132u8, 145u8, 69u8, + 250u8, ], ) } @@ -12474,9 +12610,16 @@ pub mod api { >; pub type Param0 = ::core::primitive::u32; } + pub mod last_spend_period { + use super::runtime_types; + pub type LastSpendPeriod = ::core::primitive::u32; + } } pub struct StorageApi; impl StorageApi { + #[doc = " DEPRECATED: associated with `spend_local` call and will be removed in May 2025."] + #[doc = " Refer to for migration to `spend`."] + #[doc = ""] #[doc = " Number of proposals that have been made."] pub fn proposal_count( &self, @@ -12498,6 +12641,9 @@ pub mod api { ], ) } + #[doc = " DEPRECATED: associated with `spend_local` call and will be removed in May 2025."] + #[doc = " Refer to for migration to `spend`."] + #[doc = ""] #[doc = " Proposals that have been made."] pub fn proposals_iter( &self, @@ -12520,6 +12666,9 @@ pub mod api { ], ) } + #[doc = " DEPRECATED: associated with `spend_local` call and will be removed in May 2025."] + #[doc = " Refer to for migration to `spend`."] + #[doc = ""] #[doc = " Proposals that have been made."] pub fn proposals( &self, @@ -12569,6 +12718,9 @@ pub mod api { ], ) } + #[doc = " DEPRECATED: associated with `spend_local` call and will be removed in May 2025."] + #[doc = " Refer to for migration to `spend`."] + #[doc = ""] #[doc = " Proposal indices that have been approved but not yet awarded."] pub fn approvals( &self, @@ -12627,10 +12779,9 @@ pub mod api { "Spends", (), [ - 207u8, 104u8, 63u8, 103u8, 177u8, 66u8, 236u8, 100u8, 122u8, 213u8, - 125u8, 153u8, 180u8, 219u8, 124u8, 22u8, 88u8, 161u8, 188u8, 197u8, - 70u8, 46u8, 72u8, 170u8, 146u8, 4u8, 127u8, 160u8, 204u8, 2u8, 89u8, - 95u8, + 19u8, 242u8, 70u8, 81u8, 218u8, 158u8, 21u8, 93u8, 185u8, 202u8, 241u8, + 52u8, 246u8, 236u8, 186u8, 250u8, 247u8, 166u8, 123u8, 45u8, 201u8, + 101u8, 254u8, 12u8, 77u8, 229u8, 167u8, 3u8, 75u8, 112u8, 112u8, 55u8, ], ) } @@ -12654,10 +12805,31 @@ pub mod api { _0.borrow(), ), [ - 207u8, 104u8, 63u8, 103u8, 177u8, 66u8, 236u8, 100u8, 122u8, 213u8, - 125u8, 153u8, 180u8, 219u8, 124u8, 22u8, 88u8, 161u8, 188u8, 197u8, - 70u8, 46u8, 72u8, 170u8, 146u8, 4u8, 127u8, 160u8, 204u8, 2u8, 89u8, - 95u8, + 19u8, 242u8, 70u8, 81u8, 218u8, 158u8, 21u8, 93u8, 185u8, 202u8, 241u8, + 52u8, 246u8, 236u8, 186u8, 250u8, 247u8, 166u8, 123u8, 45u8, 201u8, + 101u8, 254u8, 12u8, 77u8, 229u8, 167u8, 3u8, 75u8, 112u8, 112u8, 55u8, + ], + ) + } + #[doc = " The blocknumber for the last triggered spend period."] + pub fn last_spend_period( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::last_spend_period::LastSpendPeriod, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Treasury", + "LastSpendPeriod", + (), + [ + 6u8, 200u8, 107u8, 132u8, 60u8, 31u8, 24u8, 196u8, 108u8, 227u8, 5u8, + 63u8, 249u8, 139u8, 82u8, 140u8, 169u8, 242u8, 118u8, 93u8, 83u8, + 155u8, 120u8, 175u8, 224u8, 227u8, 39u8, 39u8, 255u8, 247u8, 79u8, + 30u8, ], ) } @@ -12716,6 +12888,9 @@ pub mod api { ], ) } + #[doc = " DEPRECATED: associated with `spend_local` call and will be removed in May 2025."] + #[doc = " Refer to for migration to `spend`."] + #[doc = ""] #[doc = " The maximum number of approvals that can wait in the spending queue."] #[doc = ""] #[doc = " NOTE: This parameter is also used within the Bounties Pallet extension if enabled."] @@ -13945,9 +14120,10 @@ pub mod api { enactment_moment, }, [ - 252u8, 72u8, 60u8, 208u8, 214u8, 81u8, 179u8, 80u8, 7u8, 215u8, 54u8, - 7u8, 214u8, 49u8, 72u8, 70u8, 213u8, 143u8, 217u8, 190u8, 47u8, 3u8, - 191u8, 110u8, 67u8, 139u8, 137u8, 215u8, 14u8, 225u8, 124u8, 117u8, + 240u8, 246u8, 175u8, 228u8, 236u8, 11u8, 187u8, 209u8, 85u8, 254u8, + 80u8, 208u8, 195u8, 64u8, 3u8, 178u8, 226u8, 170u8, 70u8, 255u8, 211u8, + 25u8, 216u8, 101u8, 69u8, 179u8, 143u8, 246u8, 21u8, 220u8, 122u8, + 68u8, ], ) } @@ -14651,10 +14827,9 @@ pub mod api { "ReferendumInfoFor", (), [ - 244u8, 215u8, 156u8, 181u8, 105u8, 12u8, 138u8, 249u8, 173u8, 158u8, - 171u8, 67u8, 107u8, 228u8, 45u8, 180u8, 252u8, 244u8, 186u8, 78u8, - 226u8, 223u8, 168u8, 137u8, 6u8, 232u8, 169u8, 108u8, 104u8, 211u8, - 1u8, 157u8, + 170u8, 216u8, 142u8, 102u8, 17u8, 64u8, 197u8, 161u8, 63u8, 34u8, + 197u8, 233u8, 122u8, 201u8, 55u8, 81u8, 182u8, 72u8, 87u8, 43u8, 108u8, + 22u8, 228u8, 212u8, 56u8, 163u8, 60u8, 165u8, 5u8, 64u8, 19u8, 171u8, ], ) } @@ -14678,10 +14853,9 @@ pub mod api { _0.borrow(), ), [ - 244u8, 215u8, 156u8, 181u8, 105u8, 12u8, 138u8, 249u8, 173u8, 158u8, - 171u8, 67u8, 107u8, 228u8, 45u8, 180u8, 252u8, 244u8, 186u8, 78u8, - 226u8, 223u8, 168u8, 137u8, 6u8, 232u8, 169u8, 108u8, 104u8, 211u8, - 1u8, 157u8, + 170u8, 216u8, 142u8, 102u8, 17u8, 64u8, 197u8, 161u8, 63u8, 34u8, + 197u8, 233u8, 122u8, 201u8, 55u8, 81u8, 182u8, 72u8, 87u8, 43u8, 108u8, + 22u8, 228u8, 212u8, 56u8, 163u8, 60u8, 165u8, 5u8, 64u8, 19u8, 171u8, ], ) } @@ -16336,9 +16510,10 @@ pub mod api { enactment_moment, }, [ - 252u8, 72u8, 60u8, 208u8, 214u8, 81u8, 179u8, 80u8, 7u8, 215u8, 54u8, - 7u8, 214u8, 49u8, 72u8, 70u8, 213u8, 143u8, 217u8, 190u8, 47u8, 3u8, - 191u8, 110u8, 67u8, 139u8, 137u8, 215u8, 14u8, 225u8, 124u8, 117u8, + 240u8, 246u8, 175u8, 228u8, 236u8, 11u8, 187u8, 209u8, 85u8, 254u8, + 80u8, 208u8, 195u8, 64u8, 3u8, 178u8, 226u8, 170u8, 70u8, 255u8, 211u8, + 25u8, 216u8, 101u8, 69u8, 179u8, 143u8, 246u8, 21u8, 220u8, 122u8, + 68u8, ], ) } @@ -17034,10 +17209,9 @@ pub mod api { "ReferendumInfoFor", (), [ - 64u8, 146u8, 31u8, 207u8, 209u8, 86u8, 44u8, 53u8, 78u8, 240u8, 222u8, - 131u8, 225u8, 83u8, 114u8, 205u8, 225u8, 20u8, 128u8, 183u8, 19u8, - 204u8, 67u8, 31u8, 154u8, 115u8, 183u8, 218u8, 34u8, 134u8, 222u8, - 32u8, + 14u8, 184u8, 128u8, 52u8, 54u8, 16u8, 88u8, 34u8, 204u8, 106u8, 143u8, + 166u8, 185u8, 231u8, 111u8, 55u8, 72u8, 162u8, 58u8, 238u8, 10u8, 98u8, + 16u8, 1u8, 177u8, 253u8, 205u8, 82u8, 183u8, 135u8, 14u8, 253u8, ], ) } @@ -17061,10 +17235,9 @@ pub mod api { _0.borrow(), ), [ - 64u8, 146u8, 31u8, 207u8, 209u8, 86u8, 44u8, 53u8, 78u8, 240u8, 222u8, - 131u8, 225u8, 83u8, 114u8, 205u8, 225u8, 20u8, 128u8, 183u8, 19u8, - 204u8, 67u8, 31u8, 154u8, 115u8, 183u8, 218u8, 34u8, 134u8, 222u8, - 32u8, + 14u8, 184u8, 128u8, 52u8, 54u8, 16u8, 88u8, 34u8, 204u8, 106u8, 143u8, + 166u8, 185u8, 231u8, 111u8, 55u8, 72u8, 162u8, 58u8, 238u8, 10u8, 98u8, + 16u8, 1u8, 177u8, 253u8, 205u8, 82u8, 183u8, 135u8, 14u8, 253u8, ], ) } @@ -17535,9 +17708,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 4u8, 117u8, 242u8, 164u8, 193u8, 238u8, 20u8, 110u8, 119u8, 140u8, 3u8, - 65u8, 4u8, 52u8, 202u8, 73u8, 177u8, 47u8, 16u8, 150u8, 116u8, 122u8, - 2u8, 49u8, 92u8, 103u8, 151u8, 64u8, 179u8, 223u8, 197u8, 2u8, + 76u8, 99u8, 79u8, 10u8, 140u8, 95u8, 137u8, 225u8, 104u8, 90u8, 195u8, + 140u8, 143u8, 14u8, 175u8, 77u8, 42u8, 193u8, 253u8, 65u8, 19u8, 8u8, + 70u8, 169u8, 76u8, 231u8, 10u8, 112u8, 179u8, 50u8, 176u8, 67u8, ], ) } @@ -18732,9 +18905,9 @@ pub mod api { "batch", types::Batch { calls }, [ - 182u8, 91u8, 84u8, 165u8, 125u8, 198u8, 242u8, 251u8, 57u8, 147u8, - 70u8, 167u8, 237u8, 37u8, 229u8, 38u8, 193u8, 18u8, 61u8, 243u8, 61u8, - 114u8, 16u8, 203u8, 23u8, 237u8, 73u8, 193u8, 152u8, 98u8, 61u8, 92u8, + 216u8, 244u8, 218u8, 45u8, 136u8, 107u8, 105u8, 108u8, 237u8, 180u8, + 157u8, 113u8, 15u8, 189u8, 14u8, 62u8, 195u8, 129u8, 48u8, 126u8, 87u8, + 226u8, 29u8, 54u8, 252u8, 6u8, 237u8, 179u8, 136u8, 104u8, 227u8, 28u8, ], ) } @@ -18765,10 +18938,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 89u8, 44u8, 224u8, 216u8, 101u8, 33u8, 232u8, 99u8, 233u8, 195u8, 66u8, - 144u8, 84u8, 112u8, 93u8, 101u8, 199u8, 115u8, 42u8, 150u8, 86u8, - 136u8, 36u8, 238u8, 215u8, 247u8, 152u8, 228u8, 217u8, 17u8, 177u8, - 243u8, + 232u8, 71u8, 34u8, 4u8, 253u8, 151u8, 197u8, 200u8, 97u8, 187u8, 75u8, + 23u8, 46u8, 205u8, 213u8, 206u8, 159u8, 192u8, 154u8, 116u8, 135u8, + 80u8, 58u8, 79u8, 219u8, 135u8, 244u8, 143u8, 76u8, 136u8, 245u8, + 132u8, ], ) } @@ -18795,10 +18968,10 @@ pub mod api { "batch_all", types::BatchAll { calls }, [ - 150u8, 241u8, 187u8, 20u8, 140u8, 197u8, 30u8, 239u8, 41u8, 233u8, - 116u8, 14u8, 241u8, 75u8, 73u8, 52u8, 243u8, 8u8, 165u8, 47u8, 111u8, - 79u8, 16u8, 121u8, 208u8, 174u8, 215u8, 23u8, 249u8, 208u8, 89u8, - 245u8, + 90u8, 97u8, 153u8, 209u8, 161u8, 122u8, 26u8, 128u8, 115u8, 58u8, + 252u8, 20u8, 183u8, 152u8, 157u8, 36u8, 71u8, 18u8, 41u8, 34u8, 173u8, + 66u8, 176u8, 239u8, 207u8, 109u8, 216u8, 5u8, 124u8, 191u8, 222u8, + 246u8, ], ) } @@ -18822,9 +18995,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 34u8, 79u8, 101u8, 11u8, 74u8, 76u8, 110u8, 143u8, 67u8, 38u8, 141u8, - 91u8, 69u8, 104u8, 32u8, 174u8, 14u8, 159u8, 94u8, 155u8, 214u8, 77u8, - 220u8, 192u8, 3u8, 180u8, 90u8, 168u8, 161u8, 156u8, 78u8, 106u8, + 80u8, 105u8, 179u8, 133u8, 114u8, 56u8, 11u8, 82u8, 78u8, 211u8, 61u8, + 146u8, 156u8, 243u8, 125u8, 96u8, 199u8, 123u8, 230u8, 47u8, 172u8, + 16u8, 209u8, 145u8, 224u8, 171u8, 8u8, 118u8, 208u8, 237u8, 89u8, + 217u8, ], ) } @@ -18851,10 +19025,9 @@ pub mod api { "force_batch", types::ForceBatch { calls }, [ - 45u8, 96u8, 234u8, 51u8, 178u8, 234u8, 225u8, 144u8, 79u8, 109u8, - 147u8, 14u8, 165u8, 220u8, 158u8, 225u8, 253u8, 71u8, 126u8, 122u8, - 0u8, 220u8, 153u8, 181u8, 8u8, 193u8, 34u8, 156u8, 141u8, 90u8, 125u8, - 150u8, + 23u8, 50u8, 17u8, 83u8, 113u8, 2u8, 10u8, 112u8, 10u8, 93u8, 196u8, + 52u8, 12u8, 203u8, 211u8, 98u8, 14u8, 7u8, 149u8, 244u8, 189u8, 76u8, + 149u8, 95u8, 16u8, 122u8, 174u8, 111u8, 155u8, 213u8, 138u8, 14u8, ], ) } @@ -18878,9 +19051,10 @@ pub mod api { weight, }, [ - 252u8, 204u8, 151u8, 233u8, 57u8, 239u8, 6u8, 186u8, 29u8, 87u8, 85u8, - 3u8, 211u8, 214u8, 133u8, 85u8, 98u8, 61u8, 178u8, 225u8, 131u8, 147u8, - 152u8, 52u8, 190u8, 149u8, 45u8, 243u8, 247u8, 143u8, 132u8, 27u8, + 117u8, 151u8, 231u8, 219u8, 239u8, 247u8, 253u8, 208u8, 21u8, 68u8, + 184u8, 26u8, 103u8, 33u8, 130u8, 156u8, 203u8, 206u8, 245u8, 207u8, + 186u8, 134u8, 32u8, 160u8, 24u8, 216u8, 18u8, 207u8, 102u8, 2u8, 10u8, + 24u8, ], ) } @@ -19633,8 +19807,9 @@ pub mod api { )] #[doc = "Add an `AccountId` with permission to grant usernames with a given `suffix` appended."] #[doc = ""] - #[doc = "The authority can grant up to `allocation` usernames. To top up their allocation, they"] - #[doc = "should just issue (or request via governance) a new `add_username_authority` call."] + #[doc = "The authority can grant up to `allocation` usernames. To top up the allocation or"] + #[doc = "change the account used to grant usernames, this call can be used with the updated"] + #[doc = "parameters to overwrite the existing configuration."] pub struct AddUsernameAuthority { pub authority: add_username_authority::Authority, pub suffix: add_username_authority::Suffix, @@ -19671,10 +19846,13 @@ pub mod api { )] #[doc = "Remove `authority` from the username authorities."] pub struct RemoveUsernameAuthority { + pub suffix: remove_username_authority::Suffix, pub authority: remove_username_authority::Authority, } pub mod remove_username_authority { use super::runtime_types; + pub type Suffix = + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>; pub type Authority = ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, (), @@ -19701,7 +19879,11 @@ pub mod api { )] #[doc = "Set the username for `who`. Must be called by a username authority."] #[doc = ""] - #[doc = "The authority must have an `allocation`. Users can either pre-sign their usernames or"] + #[doc = "If `use_allocation` is set, the authority must have a username allocation available to"] + #[doc = "spend. Otherwise, the authority will need to put up a deposit for registering the"] + #[doc = "username."] + #[doc = ""] + #[doc = "Users can either pre-sign their usernames or"] #[doc = "accept them later."] #[doc = ""] #[doc = "Usernames must:"] @@ -19712,6 +19894,7 @@ pub mod api { pub who: set_username_for::Who, pub username: set_username_for::Username, pub signature: set_username_for::Signature, + pub use_allocation: set_username_for::UseAllocation, } pub mod set_username_for { use super::runtime_types; @@ -19723,6 +19906,7 @@ pub mod api { ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>; pub type Signature = ::core::option::Option; + pub type UseAllocation = ::core::primitive::bool; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetUsernameFor { const PALLET: &'static str = "Identity"; @@ -19833,20 +20017,81 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "Remove a username that corresponds to an account with no identity. Exists when a user"] - #[doc = "gets a username but then calls `clear_identity`."] - pub struct RemoveDanglingUsername { - pub username: remove_dangling_username::Username, + #[doc = "Start the process of removing a username by placing it in the unbinding usernames map."] + #[doc = "Once the grace period has passed, the username can be deleted by calling"] + #[doc = "[remove_username](crate::Call::remove_username)."] + pub struct UnbindUsername { + pub username: unbind_username::Username, } - pub mod remove_dangling_username { + pub mod unbind_username { use super::runtime_types; pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveDanglingUsername { + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for UnbindUsername { const PALLET: &'static str = "Identity"; - const CALL: &'static str = "remove_dangling_username"; + const CALL: &'static str = "unbind_username"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Permanently delete a username which has been unbinding for longer than the grace period."] + #[doc = "Caller is refunded the fee if the username expired and the removal was successful."] + pub struct RemoveUsername { + pub username: remove_username::Username, + } + pub mod remove_username { + use super::runtime_types; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveUsername { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "remove_username"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Call with [ForceOrigin](crate::Config::ForceOrigin) privileges which deletes a username"] + #[doc = "and slashes any deposit associated with it."] + pub struct KillUsername { + pub username: kill_username::Username, + } + pub mod kill_username { + use super::runtime_types; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for KillUsername { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "kill_username"; } } pub struct TransactionApi; @@ -20254,8 +20499,9 @@ pub mod api { } #[doc = "Add an `AccountId` with permission to grant usernames with a given `suffix` appended."] #[doc = ""] - #[doc = "The authority can grant up to `allocation` usernames. To top up their allocation, they"] - #[doc = "should just issue (or request via governance) a new `add_username_authority` call."] + #[doc = "The authority can grant up to `allocation` usernames. To top up the allocation or"] + #[doc = "change the account used to grant usernames, this call can be used with the updated"] + #[doc = "parameters to overwrite the existing configuration."] pub fn add_username_authority( &self, authority: types::add_username_authority::Authority, @@ -20282,6 +20528,7 @@ pub mod api { #[doc = "Remove `authority` from the username authorities."] pub fn remove_username_authority( &self, + suffix: types::remove_username_authority::Suffix, authority: types::remove_username_authority::Authority, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< types::RemoveUsernameAuthority, @@ -20289,17 +20536,21 @@ pub mod api { ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( "Identity", "remove_username_authority", - types::RemoveUsernameAuthority { authority }, + types::RemoveUsernameAuthority { suffix, authority }, [ - 4u8, 182u8, 89u8, 1u8, 183u8, 15u8, 215u8, 48u8, 165u8, 97u8, 252u8, - 54u8, 223u8, 18u8, 211u8, 227u8, 226u8, 230u8, 185u8, 71u8, 202u8, - 95u8, 191u8, 6u8, 118u8, 144u8, 92u8, 98u8, 64u8, 243u8, 2u8, 137u8, + 97u8, 5u8, 0u8, 114u8, 226u8, 202u8, 96u8, 101u8, 141u8, 79u8, 242u8, + 232u8, 203u8, 98u8, 24u8, 18u8, 133u8, 168u8, 153u8, 14u8, 50u8, 17u8, + 92u8, 9u8, 157u8, 251u8, 214u8, 214u8, 146u8, 140u8, 28u8, 6u8, ], ) } #[doc = "Set the username for `who`. Must be called by a username authority."] #[doc = ""] - #[doc = "The authority must have an `allocation`. Users can either pre-sign their usernames or"] + #[doc = "If `use_allocation` is set, the authority must have a username allocation available to"] + #[doc = "spend. Otherwise, the authority will need to put up a deposit for registering the"] + #[doc = "username."] + #[doc = ""] + #[doc = "Users can either pre-sign their usernames or"] #[doc = "accept them later."] #[doc = ""] #[doc = "Usernames must:"] @@ -20311,6 +20562,7 @@ pub mod api { who: types::set_username_for::Who, username: types::set_username_for::Username, signature: types::set_username_for::Signature, + use_allocation: types::set_username_for::UseAllocation, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload { ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( @@ -20320,11 +20572,13 @@ pub mod api { who, username, signature, + use_allocation, }, [ - 208u8, 124u8, 47u8, 129u8, 27u8, 182u8, 185u8, 76u8, 173u8, 187u8, - 193u8, 4u8, 252u8, 195u8, 204u8, 101u8, 233u8, 33u8, 62u8, 6u8, 50u8, - 20u8, 224u8, 26u8, 125u8, 192u8, 220u8, 56u8, 255u8, 249u8, 85u8, 50u8, + 16u8, 81u8, 74u8, 12u8, 146u8, 54u8, 107u8, 75u8, 37u8, 22u8, 226u8, + 228u8, 113u8, 167u8, 188u8, 17u8, 243u8, 163u8, 25u8, 236u8, 132u8, + 216u8, 217u8, 73u8, 174u8, 59u8, 41u8, 206u8, 106u8, 172u8, 128u8, + 27u8, ], ) } @@ -20383,22 +20637,59 @@ pub mod api { ], ) } - #[doc = "Remove a username that corresponds to an account with no identity. Exists when a user"] - #[doc = "gets a username but then calls `clear_identity`."] - pub fn remove_dangling_username( + #[doc = "Start the process of removing a username by placing it in the unbinding usernames map."] + #[doc = "Once the grace period has passed, the username can be deleted by calling"] + #[doc = "[remove_username](crate::Call::remove_username)."] + pub fn unbind_username( &self, - username: types::remove_dangling_username::Username, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< - types::RemoveDanglingUsername, - > { + username: types::unbind_username::Username, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( "Identity", - "remove_dangling_username", - types::RemoveDanglingUsername { username }, + "unbind_username", + types::UnbindUsername { username }, [ - 220u8, 67u8, 52u8, 223u8, 169u8, 81u8, 202u8, 74u8, 199u8, 169u8, 89u8, - 60u8, 57u8, 153u8, 240u8, 105u8, 188u8, 222u8, 250u8, 247u8, 91u8, - 137u8, 37u8, 212u8, 10u8, 51u8, 9u8, 202u8, 165u8, 155u8, 222u8, 29u8, + 231u8, 59u8, 154u8, 107u8, 195u8, 183u8, 146u8, 12u8, 232u8, 249u8, + 119u8, 51u8, 99u8, 223u8, 197u8, 231u8, 249u8, 66u8, 189u8, 148u8, + 207u8, 163u8, 192u8, 150u8, 151u8, 111u8, 86u8, 170u8, 123u8, 194u8, + 141u8, 251u8, + ], + ) + } + #[doc = "Permanently delete a username which has been unbinding for longer than the grace period."] + #[doc = "Caller is refunded the fee if the username expired and the removal was successful."] + pub fn remove_username( + &self, + username: types::remove_username::Username, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Identity", + "remove_username", + types::RemoveUsername { username }, + [ + 68u8, 30u8, 96u8, 37u8, 56u8, 235u8, 48u8, 61u8, 77u8, 235u8, 6u8, 4u8, + 123u8, 85u8, 176u8, 90u8, 255u8, 196u8, 178u8, 190u8, 230u8, 228u8, + 70u8, 141u8, 156u8, 156u8, 34u8, 7u8, 177u8, 204u8, 152u8, 145u8, + ], + ) + } + #[doc = "Call with [ForceOrigin](crate::Config::ForceOrigin) privileges which deletes a username"] + #[doc = "and slashes any deposit associated with it."] + pub fn kill_username( + &self, + username: types::kill_username::Username, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Identity", + "kill_username", + types::KillUsername { username }, + [ + 147u8, 229u8, 92u8, 195u8, 22u8, 114u8, 25u8, 16u8, 125u8, 80u8, 226u8, + 188u8, 47u8, 199u8, 13u8, 245u8, 60u8, 93u8, 84u8, 97u8, 82u8, 238u8, + 248u8, 44u8, 171u8, 132u8, 66u8, 0u8, 151u8, 108u8, 96u8, 25u8, ], ) } @@ -20617,6 +20908,58 @@ pub mod api { #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "An account's sub-identities were set (in bulk)."] + pub struct SubIdentitiesSet { + pub main: sub_identities_set::Main, + pub number_of_subs: sub_identities_set::NumberOfSubs, + pub new_deposit: sub_identities_set::NewDeposit, + } + pub mod sub_identities_set { + use super::runtime_types; + pub type Main = ::subxt::ext::subxt_core::utils::AccountId32; + pub type NumberOfSubs = ::core::primitive::u32; + pub type NewDeposit = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for SubIdentitiesSet { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "SubIdentitiesSet"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A given sub-account's associated name was changed by its super-identity."] + pub struct SubIdentityRenamed { + pub sub: sub_identity_renamed::Sub, + pub main: sub_identity_renamed::Main, + } + pub mod sub_identity_renamed { + use super::runtime_types; + pub type Sub = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Main = ::subxt::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for SubIdentityRenamed { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "SubIdentityRenamed"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A sub-identity was removed from an identity and the deposit freed."] pub struct SubIdentityRemoved { pub sub: sub_identity_removed::Sub, @@ -20841,6 +21184,81 @@ pub mod api { const PALLET: &'static str = "Identity"; const EVENT: &'static str = "DanglingUsernameRemoved"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A username has been unbound."] + pub struct UsernameUnbound { + pub username: username_unbound::Username, + } + pub mod username_unbound { + use super::runtime_types; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for UsernameUnbound { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "UsernameUnbound"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A username has been removed."] + pub struct UsernameRemoved { + pub username: username_removed::Username, + } + pub mod username_removed { + use super::runtime_types; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for UsernameRemoved { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "UsernameRemoved"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A username has been killed."] + pub struct UsernameKilled { + pub username: username_killed::Username, + } + pub mod username_killed { + use super::runtime_types; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for UsernameKilled { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "UsernameKilled"; + } } pub mod storage { use super::runtime_types; @@ -20848,17 +21266,18 @@ pub mod api { use super::runtime_types; pub mod identity_of { use super::runtime_types; - pub type IdentityOf = ( - runtime_types::pallet_identity::types::Registration< - ::core::primitive::u128, - runtime_types::pallet_identity::legacy::IdentityInfo, - >, - ::core::option::Option< - runtime_types::bounded_collections::bounded_vec::BoundedVec< - ::core::primitive::u8, - >, - >, - ); + pub type IdentityOf = runtime_types::pallet_identity::types::Registration< + ::core::primitive::u128, + runtime_types::pallet_identity::legacy::IdentityInfo, + >; + pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; + } + pub mod username_of { + use super::runtime_types; + pub type UsernameOf = + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; } pub mod super_of { @@ -20892,19 +21311,23 @@ pub mod api { >, >; } - pub mod username_authorities { + pub mod authority_of { use super::runtime_types; - pub type UsernameAuthorities = + pub type AuthorityOf = runtime_types::pallet_identity::types::AuthorityProperties< - runtime_types::bounded_collections::bounded_vec::BoundedVec< - ::core::primitive::u8, - >, + ::subxt::ext::subxt_core::utils::AccountId32, >; - pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; } - pub mod account_of_username { + pub mod username_info_of { use super::runtime_types; - pub type AccountOfUsername = ::subxt::ext::subxt_core::utils::AccountId32; + pub type UsernameInfoOf = + runtime_types::pallet_identity::types::UsernameInformation< + ::subxt::ext::subxt_core::utils::AccountId32, + ::core::primitive::u128, + >; pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; @@ -20914,11 +21337,19 @@ pub mod api { pub type PendingUsernames = ( ::subxt::ext::subxt_core::utils::AccountId32, ::core::primitive::u32, + runtime_types::pallet_identity::types::Provider<::core::primitive::u128>, ); pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; } + pub mod unbinding_usernames { + use super::runtime_types; + pub type UnbindingUsernames = ::core::primitive::u32; + pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } } pub struct StorageApi; impl StorageApi { @@ -20940,9 +21371,9 @@ pub mod api { "IdentityOf", (), [ - 0u8, 73u8, 213u8, 52u8, 49u8, 235u8, 238u8, 43u8, 119u8, 12u8, 35u8, - 162u8, 230u8, 24u8, 246u8, 200u8, 44u8, 254u8, 13u8, 84u8, 10u8, 27u8, - 159u8, 6u8, 176u8, 125u8, 24u8, 212u8, 250u8, 154u8, 181u8, 12u8, + 112u8, 2u8, 209u8, 123u8, 138u8, 171u8, 80u8, 243u8, 226u8, 88u8, 81u8, + 49u8, 59u8, 172u8, 88u8, 180u8, 255u8, 119u8, 57u8, 16u8, 169u8, 149u8, + 77u8, 239u8, 73u8, 182u8, 28u8, 112u8, 150u8, 110u8, 65u8, 139u8, ], ) } @@ -20969,9 +21400,56 @@ pub mod api { _0.borrow(), ), [ - 0u8, 73u8, 213u8, 52u8, 49u8, 235u8, 238u8, 43u8, 119u8, 12u8, 35u8, - 162u8, 230u8, 24u8, 246u8, 200u8, 44u8, 254u8, 13u8, 84u8, 10u8, 27u8, - 159u8, 6u8, 176u8, 125u8, 24u8, 212u8, 250u8, 154u8, 181u8, 12u8, + 112u8, 2u8, 209u8, 123u8, 138u8, 171u8, 80u8, 243u8, 226u8, 88u8, 81u8, + 49u8, 59u8, 172u8, 88u8, 180u8, 255u8, 119u8, 57u8, 16u8, 169u8, 149u8, + 77u8, 239u8, 73u8, 182u8, 28u8, 112u8, 150u8, 110u8, 65u8, 139u8, + ], + ) + } + #[doc = " Identifies the primary username of an account."] + pub fn username_of_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::username_of::UsernameOf, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "UsernameOf", + (), + [ + 244u8, 21u8, 1u8, 155u8, 204u8, 65u8, 229u8, 41u8, 67u8, 9u8, 51u8, + 153u8, 6u8, 234u8, 151u8, 41u8, 221u8, 68u8, 144u8, 43u8, 197u8, 133u8, + 35u8, 252u8, 159u8, 128u8, 208u8, 1u8, 129u8, 102u8, 134u8, 142u8, + ], + ) + } + #[doc = " Identifies the primary username of an account."] + pub fn username_of( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::username_of::Param0, + >, + types::username_of::UsernameOf, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "UsernameOf", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 244u8, 21u8, 1u8, 155u8, 204u8, 65u8, 229u8, 41u8, 67u8, 9u8, 51u8, + 153u8, 6u8, 234u8, 151u8, 41u8, 221u8, 68u8, 144u8, 43u8, 197u8, 133u8, + 35u8, 252u8, 159u8, 128u8, 208u8, 1u8, 129u8, 102u8, 134u8, 142u8, ], ) } @@ -21107,113 +21585,113 @@ pub mod api { ) } #[doc = " A map of the accounts who are authorized to grant usernames."] - pub fn username_authorities_iter( + pub fn authority_of_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< (), - types::username_authorities::UsernameAuthorities, + types::authority_of::AuthorityOf, (), (), ::subxt::ext::subxt_core::utils::Yes, > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( "Identity", - "UsernameAuthorities", + "AuthorityOf", (), [ - 89u8, 102u8, 60u8, 184u8, 127u8, 244u8, 3u8, 61u8, 209u8, 78u8, 178u8, - 44u8, 159u8, 27u8, 7u8, 0u8, 22u8, 116u8, 42u8, 240u8, 130u8, 93u8, - 214u8, 182u8, 79u8, 222u8, 19u8, 20u8, 34u8, 198u8, 164u8, 146u8, + 29u8, 200u8, 4u8, 178u8, 88u8, 232u8, 90u8, 28u8, 236u8, 206u8, 135u8, + 39u8, 154u8, 91u8, 160u8, 212u8, 30u8, 45u8, 126u8, 198u8, 219u8, 50u8, + 37u8, 83u8, 87u8, 44u8, 179u8, 131u8, 152u8, 1u8, 25u8, 141u8, ], ) } #[doc = " A map of the accounts who are authorized to grant usernames."] - pub fn username_authorities( + pub fn authority_of( &self, - _0: impl ::core::borrow::Borrow, + _0: impl ::core::borrow::Borrow, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::username_authorities::Param0, + types::authority_of::Param0, >, - types::username_authorities::UsernameAuthorities, + types::authority_of::AuthorityOf, ::subxt::ext::subxt_core::utils::Yes, (), (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( "Identity", - "UsernameAuthorities", + "AuthorityOf", ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( _0.borrow(), ), [ - 89u8, 102u8, 60u8, 184u8, 127u8, 244u8, 3u8, 61u8, 209u8, 78u8, 178u8, - 44u8, 159u8, 27u8, 7u8, 0u8, 22u8, 116u8, 42u8, 240u8, 130u8, 93u8, - 214u8, 182u8, 79u8, 222u8, 19u8, 20u8, 34u8, 198u8, 164u8, 146u8, + 29u8, 200u8, 4u8, 178u8, 88u8, 232u8, 90u8, 28u8, 236u8, 206u8, 135u8, + 39u8, 154u8, 91u8, 160u8, 212u8, 30u8, 45u8, 126u8, 198u8, 219u8, 50u8, + 37u8, 83u8, 87u8, 44u8, 179u8, 131u8, 152u8, 1u8, 25u8, 141u8, ], ) } - #[doc = " Reverse lookup from `username` to the `AccountId` that has registered it. The value should"] - #[doc = " be a key in the `IdentityOf` map, but it may not if the user has cleared their identity."] + #[doc = " Reverse lookup from `username` to the `AccountId` that has registered it and the provider of"] + #[doc = " the username. The `owner` value should be a key in the `UsernameOf` map, but it may not if"] + #[doc = " the user has cleared their username or it has been removed."] #[doc = ""] - #[doc = " Multiple usernames may map to the same `AccountId`, but `IdentityOf` will only map to one"] + #[doc = " Multiple usernames may map to the same `AccountId`, but `UsernameOf` will only map to one"] #[doc = " primary username."] - pub fn account_of_username_iter( + pub fn username_info_of_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< (), - types::account_of_username::AccountOfUsername, + types::username_info_of::UsernameInfoOf, (), (), ::subxt::ext::subxt_core::utils::Yes, > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( "Identity", - "AccountOfUsername", + "UsernameInfoOf", (), [ - 131u8, 96u8, 207u8, 217u8, 223u8, 54u8, 51u8, 156u8, 8u8, 238u8, 134u8, - 57u8, 42u8, 110u8, 180u8, 107u8, 30u8, 109u8, 162u8, 110u8, 178u8, - 127u8, 151u8, 163u8, 89u8, 127u8, 181u8, 213u8, 74u8, 129u8, 207u8, - 15u8, + 178u8, 18u8, 32u8, 252u8, 199u8, 40u8, 12u8, 69u8, 228u8, 214u8, 161u8, + 210u8, 236u8, 179u8, 63u8, 40u8, 49u8, 16u8, 238u8, 30u8, 78u8, 111u8, + 14u8, 141u8, 181u8, 3u8, 40u8, 78u8, 83u8, 174u8, 80u8, 20u8, ], ) } - #[doc = " Reverse lookup from `username` to the `AccountId` that has registered it. The value should"] - #[doc = " be a key in the `IdentityOf` map, but it may not if the user has cleared their identity."] + #[doc = " Reverse lookup from `username` to the `AccountId` that has registered it and the provider of"] + #[doc = " the username. The `owner` value should be a key in the `UsernameOf` map, but it may not if"] + #[doc = " the user has cleared their username or it has been removed."] #[doc = ""] - #[doc = " Multiple usernames may map to the same `AccountId`, but `IdentityOf` will only map to one"] + #[doc = " Multiple usernames may map to the same `AccountId`, but `UsernameOf` will only map to one"] #[doc = " primary username."] - pub fn account_of_username( + pub fn username_info_of( &self, - _0: impl ::core::borrow::Borrow, + _0: impl ::core::borrow::Borrow, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::account_of_username::Param0, + types::username_info_of::Param0, >, - types::account_of_username::AccountOfUsername, + types::username_info_of::UsernameInfoOf, ::subxt::ext::subxt_core::utils::Yes, (), (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( "Identity", - "AccountOfUsername", + "UsernameInfoOf", ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( _0.borrow(), ), [ - 131u8, 96u8, 207u8, 217u8, 223u8, 54u8, 51u8, 156u8, 8u8, 238u8, 134u8, - 57u8, 42u8, 110u8, 180u8, 107u8, 30u8, 109u8, 162u8, 110u8, 178u8, - 127u8, 151u8, 163u8, 89u8, 127u8, 181u8, 213u8, 74u8, 129u8, 207u8, - 15u8, + 178u8, 18u8, 32u8, 252u8, 199u8, 40u8, 12u8, 69u8, 228u8, 214u8, 161u8, + 210u8, 236u8, 179u8, 63u8, 40u8, 49u8, 16u8, 238u8, 30u8, 78u8, 111u8, + 14u8, 141u8, 181u8, 3u8, 40u8, 78u8, 83u8, 174u8, 80u8, 20u8, ], ) } #[doc = " Usernames that an authority has granted, but that the account controller has not confirmed"] #[doc = " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature"] #[doc = " because they are a pure proxy, multisig, etc. In order to confirm it, they should call"] - #[doc = " [`Call::accept_username`]."] + #[doc = " [accept_username](`Call::accept_username`)."] #[doc = ""] #[doc = " First tuple item is the account and second is the acceptance deadline."] pub fn pending_usernames_iter( @@ -21230,17 +21708,17 @@ pub mod api { "PendingUsernames", (), [ - 237u8, 213u8, 92u8, 249u8, 11u8, 169u8, 104u8, 7u8, 201u8, 133u8, - 164u8, 64u8, 191u8, 172u8, 169u8, 229u8, 206u8, 105u8, 190u8, 113u8, - 21u8, 13u8, 70u8, 74u8, 140u8, 125u8, 123u8, 48u8, 183u8, 181u8, 170u8, - 147u8, + 18u8, 46u8, 0u8, 180u8, 231u8, 237u8, 159u8, 69u8, 216u8, 142u8, 172u8, + 114u8, 193u8, 49u8, 239u8, 71u8, 119u8, 189u8, 155u8, 56u8, 19u8, + 225u8, 70u8, 123u8, 140u8, 32u8, 69u8, 22u8, 115u8, 240u8, 192u8, + 210u8, ], ) } #[doc = " Usernames that an authority has granted, but that the account controller has not confirmed"] #[doc = " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature"] #[doc = " because they are a pure proxy, multisig, etc. In order to confirm it, they should call"] - #[doc = " [`Call::accept_username`]."] + #[doc = " [accept_username](`Call::accept_username`)."] #[doc = ""] #[doc = " First tuple item is the account and second is the acceptance deadline."] pub fn pending_usernames( @@ -21262,10 +21740,63 @@ pub mod api { _0.borrow(), ), [ - 237u8, 213u8, 92u8, 249u8, 11u8, 169u8, 104u8, 7u8, 201u8, 133u8, - 164u8, 64u8, 191u8, 172u8, 169u8, 229u8, 206u8, 105u8, 190u8, 113u8, - 21u8, 13u8, 70u8, 74u8, 140u8, 125u8, 123u8, 48u8, 183u8, 181u8, 170u8, - 147u8, + 18u8, 46u8, 0u8, 180u8, 231u8, 237u8, 159u8, 69u8, 216u8, 142u8, 172u8, + 114u8, 193u8, 49u8, 239u8, 71u8, 119u8, 189u8, 155u8, 56u8, 19u8, + 225u8, 70u8, 123u8, 140u8, 32u8, 69u8, 22u8, 115u8, 240u8, 192u8, + 210u8, + ], + ) + } + #[doc = " Usernames for which the authority that granted them has started the removal process by"] + #[doc = " unbinding them. Each unbinding username maps to its grace period expiry, which is the first"] + #[doc = " block in which the username could be deleted through a"] + #[doc = " [remove_username](`Call::remove_username`) call."] + pub fn unbinding_usernames_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::unbinding_usernames::UnbindingUsernames, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "UnbindingUsernames", + (), + [ + 145u8, 43u8, 133u8, 230u8, 34u8, 51u8, 136u8, 184u8, 144u8, 51u8, 72u8, + 134u8, 216u8, 235u8, 201u8, 241u8, 6u8, 34u8, 41u8, 111u8, 150u8, + 137u8, 244u8, 79u8, 97u8, 249u8, 30u8, 98u8, 178u8, 103u8, 9u8, 78u8, + ], + ) + } + #[doc = " Usernames for which the authority that granted them has started the removal process by"] + #[doc = " unbinding them. Each unbinding username maps to its grace period expiry, which is the first"] + #[doc = " block in which the username could be deleted through a"] + #[doc = " [remove_username](`Call::remove_username`) call."] + pub fn unbinding_usernames( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::unbinding_usernames::Param0, + >, + types::unbinding_usernames::UnbindingUsernames, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "UnbindingUsernames", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 145u8, 43u8, 133u8, 230u8, 34u8, 51u8, 136u8, 184u8, 144u8, 51u8, 72u8, + 134u8, 216u8, 235u8, 201u8, 241u8, 6u8, 34u8, 41u8, 111u8, 150u8, + 137u8, 244u8, 79u8, 97u8, 249u8, 30u8, 98u8, 178u8, 103u8, 9u8, 78u8, ], ) } @@ -21307,6 +21838,23 @@ pub mod api { ], ) } + #[doc = " The amount held on deposit per registered username. This value should change only in"] + #[doc = " runtime upgrades with proper migration of existing deposits."] + pub fn username_deposit( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u128, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Identity", + "UsernameDeposit", + [ + 84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8, + 27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8, + 136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8, + ], + ) + } #[doc = " The amount held on deposit for a registered subaccount. This should account for the fact"] #[doc = " that one storage item's value will increase by the size of an account ID, and there will"] #[doc = " be another trie item whose value is the size of an account ID plus 32 bytes."] @@ -21377,6 +21925,24 @@ pub mod api { ], ) } + #[doc = " The number of blocks that must pass to enable the permanent deletion of a username by"] + #[doc = " its respective authority."] + pub fn username_grace_period( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Identity", + "UsernameGracePeriod", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, + ], + ) + } #[doc = " The maximum length of a suffix."] pub fn max_suffix_length( &self, @@ -24409,9 +24975,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 101u8, 215u8, 92u8, 230u8, 248u8, 151u8, 142u8, 97u8, 37u8, 7u8, 19u8, - 7u8, 245u8, 187u8, 134u8, 116u8, 58u8, 127u8, 69u8, 179u8, 93u8, 188u8, - 107u8, 108u8, 114u8, 142u8, 215u8, 109u8, 0u8, 179u8, 60u8, 4u8, + 71u8, 11u8, 125u8, 68u8, 13u8, 107u8, 49u8, 221u8, 162u8, 73u8, 60u8, + 88u8, 69u8, 135u8, 188u8, 167u8, 133u8, 21u8, 123u8, 36u8, 178u8, + 127u8, 201u8, 124u8, 32u8, 66u8, 133u8, 180u8, 123u8, 40u8, 219u8, + 18u8, ], ) } @@ -26133,9 +26700,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 2u8, 187u8, 156u8, 127u8, 77u8, 79u8, 156u8, 43u8, 165u8, 39u8, 220u8, - 16u8, 19u8, 108u8, 31u8, 6u8, 15u8, 154u8, 190u8, 126u8, 152u8, 91u8, - 187u8, 143u8, 28u8, 240u8, 243u8, 215u8, 83u8, 236u8, 45u8, 197u8, + 154u8, 63u8, 26u8, 173u8, 37u8, 190u8, 153u8, 250u8, 28u8, 158u8, 6u8, + 30u8, 205u8, 140u8, 110u8, 42u8, 17u8, 59u8, 231u8, 94u8, 242u8, 132u8, + 53u8, 123u8, 182u8, 19u8, 122u8, 190u8, 41u8, 64u8, 232u8, 180u8, ], ) } @@ -26179,9 +26746,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 62u8, 211u8, 116u8, 28u8, 29u8, 66u8, 246u8, 196u8, 21u8, 149u8, 132u8, - 9u8, 99u8, 126u8, 47u8, 195u8, 44u8, 182u8, 22u8, 146u8, 81u8, 119u8, - 26u8, 166u8, 224u8, 185u8, 7u8, 234u8, 224u8, 11u8, 89u8, 62u8, + 198u8, 124u8, 254u8, 59u8, 164u8, 73u8, 137u8, 210u8, 249u8, 189u8, + 9u8, 224u8, 43u8, 98u8, 55u8, 128u8, 9u8, 119u8, 208u8, 56u8, 77u8, + 112u8, 26u8, 105u8, 192u8, 140u8, 71u8, 7u8, 123u8, 44u8, 39u8, 20u8, ], ) } @@ -26221,10 +26788,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 244u8, 201u8, 32u8, 227u8, 144u8, 180u8, 49u8, 204u8, 224u8, 28u8, - 234u8, 218u8, 145u8, 132u8, 139u8, 156u8, 151u8, 113u8, 173u8, 179u8, - 86u8, 222u8, 179u8, 212u8, 117u8, 132u8, 153u8, 216u8, 59u8, 25u8, - 67u8, 8u8, + 109u8, 114u8, 127u8, 218u8, 206u8, 173u8, 106u8, 247u8, 166u8, 187u8, + 220u8, 218u8, 17u8, 254u8, 216u8, 198u8, 215u8, 92u8, 210u8, 144u8, + 82u8, 112u8, 50u8, 41u8, 29u8, 20u8, 160u8, 47u8, 123u8, 146u8, 252u8, + 28u8, ], ) } @@ -26249,9 +26816,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 116u8, 210u8, 59u8, 27u8, 51u8, 46u8, 127u8, 95u8, 92u8, 228u8, 127u8, - 4u8, 186u8, 112u8, 76u8, 188u8, 108u8, 221u8, 222u8, 232u8, 45u8, - 190u8, 131u8, 92u8, 61u8, 240u8, 35u8, 169u8, 118u8, 11u8, 7u8, 111u8, + 188u8, 98u8, 64u8, 186u8, 93u8, 84u8, 243u8, 63u8, 196u8, 251u8, 179u8, + 63u8, 42u8, 158u8, 163u8, 206u8, 183u8, 65u8, 102u8, 164u8, 54u8, 69u8, + 140u8, 179u8, 46u8, 222u8, 4u8, 19u8, 226u8, 83u8, 189u8, 106u8, ], ) } @@ -26675,9 +27242,9 @@ pub mod api { "Agenda", (), [ - 10u8, 123u8, 252u8, 106u8, 154u8, 9u8, 245u8, 203u8, 188u8, 254u8, - 20u8, 41u8, 6u8, 226u8, 78u8, 188u8, 0u8, 173u8, 143u8, 44u8, 117u8, - 249u8, 180u8, 13u8, 236u8, 224u8, 170u8, 202u8, 24u8, 3u8, 163u8, 37u8, + 60u8, 149u8, 189u8, 155u8, 240u8, 61u8, 144u8, 14u8, 101u8, 3u8, 182u8, + 153u8, 149u8, 255u8, 160u8, 163u8, 21u8, 60u8, 207u8, 254u8, 111u8, + 91u8, 201u8, 77u8, 71u8, 159u8, 162u8, 245u8, 198u8, 8u8, 212u8, 223u8, ], ) } @@ -26701,9 +27268,9 @@ pub mod api { _0.borrow(), ), [ - 10u8, 123u8, 252u8, 106u8, 154u8, 9u8, 245u8, 203u8, 188u8, 254u8, - 20u8, 41u8, 6u8, 226u8, 78u8, 188u8, 0u8, 173u8, 143u8, 44u8, 117u8, - 249u8, 180u8, 13u8, 236u8, 224u8, 170u8, 202u8, 24u8, 3u8, 163u8, 37u8, + 60u8, 149u8, 189u8, 155u8, 240u8, 61u8, 144u8, 14u8, 101u8, 3u8, 182u8, + 153u8, 149u8, 255u8, 160u8, 163u8, 21u8, 60u8, 207u8, 254u8, 111u8, + 91u8, 201u8, 77u8, 71u8, 159u8, 162u8, 245u8, 198u8, 8u8, 212u8, 223u8, ], ) } @@ -27367,9 +27934,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 195u8, 211u8, 108u8, 136u8, 187u8, 144u8, 127u8, 95u8, 159u8, 86u8, - 107u8, 15u8, 222u8, 95u8, 156u8, 185u8, 36u8, 34u8, 108u8, 51u8, 34u8, - 99u8, 149u8, 73u8, 80u8, 212u8, 122u8, 134u8, 161u8, 55u8, 33u8, 242u8, + 144u8, 96u8, 82u8, 205u8, 48u8, 227u8, 4u8, 179u8, 64u8, 254u8, 29u8, + 8u8, 38u8, 47u8, 103u8, 119u8, 229u8, 90u8, 51u8, 240u8, 228u8, 160u8, + 66u8, 153u8, 91u8, 226u8, 151u8, 68u8, 184u8, 141u8, 78u8, 49u8, ], ) } @@ -27657,10 +28224,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 199u8, 73u8, 204u8, 76u8, 46u8, 23u8, 190u8, 62u8, 229u8, 20u8, 116u8, - 195u8, 19u8, 80u8, 204u8, 184u8, 166u8, 77u8, 245u8, 204u8, 190u8, - 211u8, 122u8, 252u8, 119u8, 190u8, 72u8, 162u8, 58u8, 123u8, 186u8, - 182u8, + 81u8, 49u8, 184u8, 142u8, 54u8, 15u8, 235u8, 32u8, 61u8, 228u8, 62u8, + 198u8, 203u8, 3u8, 21u8, 194u8, 149u8, 46u8, 123u8, 172u8, 2u8, 234u8, + 248u8, 94u8, 245u8, 141u8, 65u8, 150u8, 104u8, 157u8, 245u8, 223u8, ], ) } @@ -28349,10 +28915,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 31u8, 146u8, 94u8, 42u8, 198u8, 72u8, 52u8, 104u8, 24u8, 69u8, 179u8, - 187u8, 234u8, 194u8, 42u8, 138u8, 200u8, 235u8, 66u8, 137u8, 78u8, - 155u8, 207u8, 94u8, 76u8, 158u8, 53u8, 107u8, 149u8, 238u8, 238u8, - 61u8, + 157u8, 12u8, 71u8, 228u8, 195u8, 31u8, 70u8, 58u8, 19u8, 135u8, 58u8, + 87u8, 183u8, 223u8, 245u8, 77u8, 169u8, 118u8, 124u8, 66u8, 178u8, + 248u8, 177u8, 118u8, 148u8, 190u8, 211u8, 188u8, 70u8, 100u8, 70u8, + 125u8, ], ) } @@ -28415,10 +28981,10 @@ pub mod api { max_weight, }, [ - 240u8, 179u8, 75u8, 163u8, 38u8, 147u8, 147u8, 142u8, 252u8, 73u8, - 195u8, 6u8, 15u8, 69u8, 42u8, 133u8, 96u8, 206u8, 13u8, 33u8, 8u8, - 143u8, 155u8, 85u8, 169u8, 43u8, 132u8, 118u8, 127u8, 135u8, 67u8, - 90u8, + 159u8, 110u8, 68u8, 83u8, 250u8, 9u8, 206u8, 19u8, 252u8, 16u8, 15u8, + 118u8, 163u8, 247u8, 110u8, 180u8, 33u8, 48u8, 96u8, 66u8, 149u8, + 118u8, 148u8, 203u8, 38u8, 244u8, 28u8, 114u8, 219u8, 145u8, 185u8, + 227u8, ], ) } @@ -29512,9 +30078,10 @@ pub mod api { rate, }, [ - 163u8, 173u8, 223u8, 197u8, 42u8, 251u8, 151u8, 159u8, 252u8, 132u8, - 225u8, 224u8, 207u8, 127u8, 38u8, 0u8, 101u8, 46u8, 29u8, 65u8, 2u8, - 241u8, 3u8, 79u8, 218u8, 10u8, 159u8, 122u8, 48u8, 7u8, 225u8, 103u8, + 244u8, 178u8, 124u8, 61u8, 129u8, 157u8, 214u8, 70u8, 142u8, 241u8, + 192u8, 255u8, 216u8, 27u8, 94u8, 163u8, 109u8, 23u8, 253u8, 8u8, 246u8, + 198u8, 177u8, 201u8, 188u8, 87u8, 54u8, 108u8, 191u8, 127u8, 41u8, + 24u8, ], ) } @@ -29538,9 +30105,9 @@ pub mod api { rate, }, [ - 21u8, 51u8, 198u8, 111u8, 185u8, 155u8, 215u8, 34u8, 5u8, 135u8, 138u8, - 77u8, 76u8, 158u8, 63u8, 240u8, 117u8, 39u8, 83u8, 146u8, 70u8, 136u8, - 61u8, 159u8, 30u8, 66u8, 85u8, 41u8, 122u8, 174u8, 25u8, 49u8, + 79u8, 68u8, 19u8, 151u8, 93u8, 46u8, 250u8, 172u8, 210u8, 237u8, 148u8, + 66u8, 87u8, 22u8, 54u8, 216u8, 209u8, 215u8, 196u8, 40u8, 229u8, 238u8, + 161u8, 44u8, 24u8, 249u8, 196u8, 116u8, 83u8, 51u8, 152u8, 157u8, ], ) } @@ -29562,10 +30129,9 @@ pub mod api { ), }, [ - 205u8, 34u8, 63u8, 131u8, 204u8, 76u8, 186u8, 233u8, 160u8, 45u8, - 231u8, 159u8, 186u8, 60u8, 97u8, 218u8, 174u8, 144u8, 106u8, 58u8, - 69u8, 23u8, 244u8, 129u8, 19u8, 250u8, 16u8, 99u8, 165u8, 165u8, 101u8, - 18u8, + 18u8, 24u8, 14u8, 156u8, 145u8, 109u8, 6u8, 129u8, 94u8, 178u8, 146u8, + 142u8, 192u8, 189u8, 96u8, 154u8, 248u8, 99u8, 202u8, 186u8, 219u8, + 130u8, 44u8, 4u8, 224u8, 56u8, 135u8, 148u8, 109u8, 7u8, 240u8, 241u8, ], ) } @@ -29682,10 +30248,9 @@ pub mod api { "ConversionRateToNative", (), [ - 230u8, 127u8, 110u8, 126u8, 79u8, 168u8, 134u8, 97u8, 195u8, 105u8, - 16u8, 57u8, 197u8, 104u8, 87u8, 144u8, 83u8, 188u8, 85u8, 253u8, 230u8, - 194u8, 183u8, 235u8, 152u8, 222u8, 40u8, 20u8, 135u8, 98u8, 140u8, - 108u8, + 102u8, 116u8, 47u8, 128u8, 65u8, 18u8, 208u8, 127u8, 21u8, 115u8, 49u8, + 131u8, 2u8, 198u8, 162u8, 114u8, 158u8, 246u8, 235u8, 161u8, 117u8, + 39u8, 199u8, 156u8, 7u8, 165u8, 9u8, 89u8, 202u8, 59u8, 170u8, 221u8, ], ) } @@ -29711,10 +30276,9 @@ pub mod api { _0.borrow(), ), [ - 230u8, 127u8, 110u8, 126u8, 79u8, 168u8, 134u8, 97u8, 195u8, 105u8, - 16u8, 57u8, 197u8, 104u8, 87u8, 144u8, 83u8, 188u8, 85u8, 253u8, 230u8, - 194u8, 183u8, 235u8, 152u8, 222u8, 40u8, 20u8, 135u8, 98u8, 140u8, - 108u8, + 102u8, 116u8, 47u8, 128u8, 65u8, 18u8, 208u8, 127u8, 21u8, 115u8, 49u8, + 131u8, 2u8, 198u8, 162u8, 114u8, 158u8, 246u8, 235u8, 161u8, 117u8, + 39u8, 199u8, 156u8, 7u8, 165u8, 9u8, 89u8, 202u8, 59u8, 170u8, 221u8, ], ) } @@ -30081,6 +30645,52 @@ pub mod api { const PALLET: &'static str = "Bounties"; const CALL: &'static str = "extend_bounty_expiry"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Approve bountry and propose a curator simultaneously."] + #[doc = "This call is a shortcut to calling `approve_bounty` and `propose_curator` separately."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to approve."] + #[doc = "- `curator`: The curator account whom will manage this bounty."] + #[doc = "- `fee`: The curator fee."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + pub struct ApproveBountyWithCurator { + #[codec(compact)] + pub bounty_id: approve_bounty_with_curator::BountyId, + pub curator: approve_bounty_with_curator::Curator, + #[codec(compact)] + pub fee: approve_bounty_with_curator::Fee, + } + pub mod approve_bounty_with_curator { + use super::runtime_types; + pub type BountyId = ::core::primitive::u32; + pub type Curator = ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + pub type Fee = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ApproveBountyWithCurator { + const PALLET: &'static str = "Bounties"; + const CALL: &'static str = "approve_bounty_with_curator"; + } } pub struct TransactionApi; impl TransactionApi { @@ -30330,6 +30940,41 @@ pub mod api { ], ) } + #[doc = "Approve bountry and propose a curator simultaneously."] + #[doc = "This call is a shortcut to calling `approve_bounty` and `propose_curator` separately."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to approve."] + #[doc = "- `curator`: The curator account whom will manage this bounty."] + #[doc = "- `fee`: The curator fee."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + pub fn approve_bounty_with_curator( + &self, + bounty_id: types::approve_bounty_with_curator::BountyId, + curator: types::approve_bounty_with_curator::Curator, + fee: types::approve_bounty_with_curator::Fee, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ApproveBountyWithCurator, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Bounties", + "approve_bounty_with_curator", + types::ApproveBountyWithCurator { + bounty_id, + curator, + fee, + }, + [ + 179u8, 96u8, 44u8, 148u8, 94u8, 210u8, 45u8, 243u8, 157u8, 192u8, + 104u8, 213u8, 54u8, 81u8, 57u8, 172u8, 85u8, 128u8, 124u8, 66u8, 220u8, + 241u8, 156u8, 49u8, 134u8, 125u8, 32u8, 121u8, 12u8, 54u8, 129u8, + 155u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -30674,10 +31319,10 @@ pub mod api { "Bounties", (), [ - 183u8, 96u8, 172u8, 86u8, 167u8, 129u8, 51u8, 179u8, 238u8, 155u8, - 196u8, 77u8, 158u8, 102u8, 188u8, 19u8, 79u8, 178u8, 145u8, 189u8, - 44u8, 117u8, 47u8, 97u8, 30u8, 149u8, 239u8, 212u8, 167u8, 127u8, - 108u8, 55u8, + 69u8, 96u8, 25u8, 88u8, 96u8, 159u8, 96u8, 120u8, 90u8, 165u8, 177u8, + 60u8, 61u8, 180u8, 13u8, 252u8, 154u8, 255u8, 249u8, 42u8, 179u8, + 124u8, 182u8, 46u8, 84u8, 210u8, 145u8, 21u8, 197u8, 230u8, 242u8, + 203u8, ], ) } @@ -30701,10 +31346,10 @@ pub mod api { _0.borrow(), ), [ - 183u8, 96u8, 172u8, 86u8, 167u8, 129u8, 51u8, 179u8, 238u8, 155u8, - 196u8, 77u8, 158u8, 102u8, 188u8, 19u8, 79u8, 178u8, 145u8, 189u8, - 44u8, 117u8, 47u8, 97u8, 30u8, 149u8, 239u8, 212u8, 167u8, 127u8, - 108u8, 55u8, + 69u8, 96u8, 25u8, 88u8, 96u8, 159u8, 96u8, 120u8, 90u8, 165u8, 177u8, + 60u8, 61u8, 180u8, 13u8, 252u8, 154u8, 255u8, 249u8, 42u8, 179u8, + 124u8, 182u8, 46u8, 84u8, 210u8, 145u8, 21u8, 197u8, 230u8, 242u8, + 203u8, ], ) } @@ -31742,6 +32387,11 @@ pub mod api { pub type ParentChildBounties = ::core::primitive::u32; pub type Param0 = ::core::primitive::u32; } + pub mod parent_total_child_bounties { + use super::runtime_types; + pub type ParentTotalChildBounties = ::core::primitive::u32; + pub type Param0 = ::core::primitive::u32; + } pub mod child_bounties { use super::runtime_types; pub type ChildBounties = runtime_types::pallet_child_bounties::ChildBounty< @@ -31752,13 +32402,20 @@ pub mod api { pub type Param0 = ::core::primitive::u32; pub type Param1 = ::core::primitive::u32; } - pub mod child_bounty_descriptions { + pub mod child_bounty_descriptions_v1 { use super::runtime_types; - pub type ChildBountyDescriptions = + pub type ChildBountyDescriptionsV1 = runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; pub type Param0 = ::core::primitive::u32; + pub type Param1 = ::core::primitive::u32; + } + pub mod v0_to_v1_child_bounty_ids { + use super::runtime_types; + pub type V0ToV1ChildBountyIds = + (::core::primitive::u32, ::core::primitive::u32); + pub type Param0 = ::core::primitive::u32; } pub mod children_curator_fees { use super::runtime_types; @@ -31768,7 +32425,8 @@ pub mod api { } pub struct StorageApi; impl StorageApi { - #[doc = " Number of total child bounties."] + #[doc = " DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts"] + #[doc = " for each parent bounty. Number of total child bounties. Will be removed in May 2025."] pub fn child_bounty_count( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< @@ -31789,7 +32447,7 @@ pub mod api { ], ) } - #[doc = " Number of child bounties per parent bounty."] + #[doc = " Number of active child bounties per parent bounty."] #[doc = " Map of parent bounty index to number of child bounties."] pub fn parent_child_bounties_iter( &self, @@ -31811,7 +32469,7 @@ pub mod api { ], ) } - #[doc = " Number of child bounties per parent bounty."] + #[doc = " Number of active child bounties per parent bounty."] #[doc = " Map of parent bounty index to number of child bounties."] pub fn parent_child_bounties( &self, @@ -31838,6 +32496,53 @@ pub mod api { ], ) } + #[doc = " Number of total child bounties per parent bounty, including completed bounties."] + pub fn parent_total_child_bounties_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::parent_total_child_bounties::ParentTotalChildBounties, + (), + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "ChildBounties", + "ParentTotalChildBounties", + (), + [ + 219u8, 151u8, 60u8, 233u8, 115u8, 32u8, 180u8, 227u8, 121u8, 103u8, + 197u8, 124u8, 86u8, 35u8, 140u8, 73u8, 158u8, 86u8, 240u8, 96u8, 49u8, + 220u8, 3u8, 238u8, 20u8, 118u8, 200u8, 113u8, 117u8, 179u8, 89u8, 9u8, + ], + ) + } + #[doc = " Number of total child bounties per parent bounty, including completed bounties."] + pub fn parent_total_child_bounties( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::parent_total_child_bounties::Param0, + >, + types::parent_total_child_bounties::ParentTotalChildBounties, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "ChildBounties", + "ParentTotalChildBounties", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 219u8, 151u8, 60u8, 233u8, 115u8, 32u8, 180u8, 227u8, 121u8, 103u8, + 197u8, 124u8, 86u8, 35u8, 140u8, 73u8, 158u8, 86u8, 240u8, 96u8, 49u8, + 220u8, 3u8, 238u8, 20u8, 118u8, 200u8, 113u8, 117u8, 179u8, 89u8, 9u8, + ], + ) + } #[doc = " Child bounties that have been added."] pub fn child_bounties_iter( &self, @@ -31925,50 +32630,150 @@ pub mod api { ], ) } - #[doc = " The description of each child-bounty."] - pub fn child_bounty_descriptions_iter( + #[doc = " The description of each child-bounty. Indexed by `(parent_id, child_id)`."] + #[doc = ""] + #[doc = " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version."] + pub fn child_bounty_descriptions_v1_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< (), - types::child_bounty_descriptions::ChildBountyDescriptions, + types::child_bounty_descriptions_v1::ChildBountyDescriptionsV1, (), (), ::subxt::ext::subxt_core::utils::Yes, > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( "ChildBounties", - "ChildBountyDescriptions", + "ChildBountyDescriptionsV1", (), [ - 192u8, 0u8, 220u8, 156u8, 109u8, 65u8, 113u8, 102u8, 119u8, 0u8, 109u8, - 141u8, 211u8, 128u8, 237u8, 61u8, 28u8, 56u8, 206u8, 93u8, 183u8, 74u8, - 192u8, 220u8, 76u8, 175u8, 85u8, 105u8, 179u8, 11u8, 164u8, 100u8, + 143u8, 206u8, 114u8, 60u8, 75u8, 87u8, 46u8, 170u8, 249u8, 59u8, 12u8, + 6u8, 34u8, 16u8, 232u8, 251u8, 73u8, 132u8, 229u8, 77u8, 177u8, 57u8, + 59u8, 202u8, 231u8, 60u8, 178u8, 31u8, 38u8, 2u8, 253u8, 255u8, ], ) } - #[doc = " The description of each child-bounty."] - pub fn child_bounty_descriptions( + #[doc = " The description of each child-bounty. Indexed by `(parent_id, child_id)`."] + #[doc = ""] + #[doc = " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version."] + pub fn child_bounty_descriptions_v1_iter1( &self, - _0: impl ::core::borrow::Borrow, + _0: impl ::core::borrow::Borrow, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::child_bounty_descriptions::Param0, + types::child_bounty_descriptions_v1::Param0, >, - types::child_bounty_descriptions::ChildBountyDescriptions, + types::child_bounty_descriptions_v1::ChildBountyDescriptionsV1, + (), + (), ::subxt::ext::subxt_core::utils::Yes, - (), - (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( "ChildBounties", - "ChildBountyDescriptions", + "ChildBountyDescriptionsV1", ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( _0.borrow(), ), [ - 192u8, 0u8, 220u8, 156u8, 109u8, 65u8, 113u8, 102u8, 119u8, 0u8, 109u8, - 141u8, 211u8, 128u8, 237u8, 61u8, 28u8, 56u8, 206u8, 93u8, 183u8, 74u8, - 192u8, 220u8, 76u8, 175u8, 85u8, 105u8, 179u8, 11u8, 164u8, 100u8, + 143u8, 206u8, 114u8, 60u8, 75u8, 87u8, 46u8, 170u8, 249u8, 59u8, 12u8, + 6u8, 34u8, 16u8, 232u8, 251u8, 73u8, 132u8, 229u8, 77u8, 177u8, 57u8, + 59u8, 202u8, 231u8, 60u8, 178u8, 31u8, 38u8, 2u8, 253u8, 255u8, + ], + ) + } + #[doc = " The description of each child-bounty. Indexed by `(parent_id, child_id)`."] + #[doc = ""] + #[doc = " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version."] + pub fn child_bounty_descriptions_v1( + &self, + _0: impl ::core::borrow::Borrow, + _1: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ( + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::child_bounty_descriptions_v1::Param0, + >, + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::child_bounty_descriptions_v1::Param1, + >, + ), + types::child_bounty_descriptions_v1::ChildBountyDescriptionsV1, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "ChildBounties", + "ChildBountyDescriptionsV1", + ( + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _1.borrow(), + ), + ), + [ + 143u8, 206u8, 114u8, 60u8, 75u8, 87u8, 46u8, 170u8, 249u8, 59u8, 12u8, + 6u8, 34u8, 16u8, 232u8, 251u8, 73u8, 132u8, 229u8, 77u8, 177u8, 57u8, + 59u8, 202u8, 231u8, 60u8, 178u8, 31u8, 38u8, 2u8, 253u8, 255u8, + ], + ) + } + #[doc = " The mapping of the child bounty ids from storage version `V0` to the new `V1` version."] + #[doc = ""] + #[doc = " The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids"] + #[doc = " based on the child bounty count per parent bounty [`ParentTotalChildBounties`]."] + #[doc = " The item intended solely for client convenience and not used in the pallet's core logic."] + pub fn v0_to_v1_child_bounty_ids_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::v0_to_v1_child_bounty_ids::V0ToV1ChildBountyIds, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "ChildBounties", + "V0ToV1ChildBountyIds", + (), + [ + 254u8, 251u8, 192u8, 11u8, 206u8, 216u8, 21u8, 48u8, 209u8, 242u8, + 189u8, 46u8, 185u8, 122u8, 225u8, 237u8, 169u8, 99u8, 55u8, 245u8, + 122u8, 27u8, 29u8, 235u8, 105u8, 99u8, 98u8, 208u8, 227u8, 227u8, + 127u8, 206u8, + ], + ) + } + #[doc = " The mapping of the child bounty ids from storage version `V0` to the new `V1` version."] + #[doc = ""] + #[doc = " The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids"] + #[doc = " based on the child bounty count per parent bounty [`ParentTotalChildBounties`]."] + #[doc = " The item intended solely for client convenience and not used in the pallet's core logic."] + pub fn v0_to_v1_child_bounty_ids( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::v0_to_v1_child_bounty_ids::Param0, + >, + types::v0_to_v1_child_bounty_ids::V0ToV1ChildBountyIds, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "ChildBounties", + "V0ToV1ChildBountyIds", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 254u8, 251u8, 192u8, 11u8, 206u8, 216u8, 21u8, 48u8, 209u8, 242u8, + 189u8, 46u8, 185u8, 122u8, 225u8, 237u8, 169u8, 99u8, 55u8, 245u8, + 122u8, 27u8, 29u8, 235u8, 105u8, 99u8, 98u8, 208u8, 227u8, 227u8, + 127u8, 206u8, ], ) } @@ -46657,16 +47462,603 @@ pub mod api { pub fn broker_pot_location( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - runtime_types::staging_xcm::v4::junctions::Junctions, + runtime_types::staging_xcm::v5::junctions::Junctions, > { ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( "Coretime", "BrokerPotLocation", [ - 213u8, 204u8, 114u8, 183u8, 18u8, 16u8, 228u8, 20u8, 143u8, 180u8, - 234u8, 177u8, 117u8, 235u8, 149u8, 133u8, 92u8, 210u8, 84u8, 215u8, - 196u8, 230u8, 248u8, 192u8, 214u8, 175u8, 12u8, 161u8, 135u8, 75u8, - 128u8, 68u8, + 241u8, 114u8, 225u8, 116u8, 227u8, 77u8, 161u8, 134u8, 134u8, 121u8, + 72u8, 16u8, 209u8, 208u8, 114u8, 110u8, 163u8, 156u8, 92u8, 109u8, + 134u8, 194u8, 160u8, 228u8, 126u8, 244u8, 254u8, 171u8, 162u8, 58u8, + 216u8, 63u8, + ], + ) + } + } + } + } + pub mod multi_block_migrations { + use super::root_mod; + use super::runtime_types; + #[doc = "The `Error` enum of this pallet."] + pub type Error = runtime_types::pallet_migrations::pallet::Error; + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub type Call = runtime_types::pallet_migrations::pallet::Call; + pub mod calls { + use super::root_mod; + use super::runtime_types; + type DispatchError = runtime_types::sp_runtime::DispatchError; + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Allows root to set a cursor to forcefully start, stop or forward the migration process."] + #[doc = ""] + #[doc = "Should normally not be needed and is only in place as emergency measure. Note that"] + #[doc = "restarting the migration process in this manner will not call the"] + #[doc = "[`MigrationStatusHandler::started`] hook or emit an `UpgradeStarted` event."] + pub struct ForceSetCursor { + pub cursor: force_set_cursor::Cursor, + } + pub mod force_set_cursor { + use super::runtime_types; + pub type Cursor = ::core::option::Option< + runtime_types::pallet_migrations::MigrationCursor< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + ::core::primitive::u32, + >, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSetCursor { + const PALLET: &'static str = "MultiBlockMigrations"; + const CALL: &'static str = "force_set_cursor"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Allows root to set an active cursor to forcefully start/forward the migration process."] + #[doc = ""] + #[doc = "This is an edge-case version of [`Self::force_set_cursor`] that allows to set the"] + #[doc = "`started_at` value to the next block number. Otherwise this would not be possible, since"] + #[doc = "`force_set_cursor` takes an absolute block number. Setting `started_at` to `None`"] + #[doc = "indicates that the current block number plus one should be used."] + pub struct ForceSetActiveCursor { + pub index: force_set_active_cursor::Index, + pub inner_cursor: force_set_active_cursor::InnerCursor, + pub started_at: force_set_active_cursor::StartedAt, + } + pub mod force_set_active_cursor { + use super::runtime_types; + pub type Index = ::core::primitive::u32; + pub type InnerCursor = ::core::option::Option< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + >; + pub type StartedAt = ::core::option::Option<::core::primitive::u32>; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceSetActiveCursor { + const PALLET: &'static str = "MultiBlockMigrations"; + const CALL: &'static str = "force_set_active_cursor"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Forces the onboarding of the migrations."] + #[doc = ""] + #[doc = "This process happens automatically on a runtime upgrade. It is in place as an emergency"] + #[doc = "measurement. The cursor needs to be `None` for this to succeed."] + pub struct ForceOnboardMbms; + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceOnboardMbms { + const PALLET: &'static str = "MultiBlockMigrations"; + const CALL: &'static str = "force_onboard_mbms"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Clears the `Historic` set."] + #[doc = ""] + #[doc = "`map_cursor` must be set to the last value that was returned by the"] + #[doc = "`HistoricCleared` event. The first time `None` can be used. `limit` must be chosen in a"] + #[doc = "way that will result in a sensible weight."] + pub struct ClearHistoric { + pub selector: clear_historic::Selector, + } + pub mod clear_historic { + use super::runtime_types; + pub type Selector = runtime_types::pallet_migrations::HistoricCleanupSelector< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClearHistoric { + const PALLET: &'static str = "MultiBlockMigrations"; + const CALL: &'static str = "clear_historic"; + } + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "Allows root to set a cursor to forcefully start, stop or forward the migration process."] + #[doc = ""] + #[doc = "Should normally not be needed and is only in place as emergency measure. Note that"] + #[doc = "restarting the migration process in this manner will not call the"] + #[doc = "[`MigrationStatusHandler::started`] hook or emit an `UpgradeStarted` event."] + pub fn force_set_cursor( + &self, + cursor: types::force_set_cursor::Cursor, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "MultiBlockMigrations", + "force_set_cursor", + types::ForceSetCursor { cursor }, + [ + 19u8, 44u8, 153u8, 100u8, 215u8, 46u8, 69u8, 184u8, 161u8, 215u8, 80u8, + 229u8, 65u8, 166u8, 63u8, 102u8, 97u8, 214u8, 112u8, 219u8, 227u8, + 213u8, 16u8, 50u8, 246u8, 54u8, 69u8, 172u8, 105u8, 216u8, 197u8, + 184u8, + ], + ) + } + #[doc = "Allows root to set an active cursor to forcefully start/forward the migration process."] + #[doc = ""] + #[doc = "This is an edge-case version of [`Self::force_set_cursor`] that allows to set the"] + #[doc = "`started_at` value to the next block number. Otherwise this would not be possible, since"] + #[doc = "`force_set_cursor` takes an absolute block number. Setting `started_at` to `None`"] + #[doc = "indicates that the current block number plus one should be used."] + pub fn force_set_active_cursor( + &self, + index: types::force_set_active_cursor::Index, + inner_cursor: types::force_set_active_cursor::InnerCursor, + started_at: types::force_set_active_cursor::StartedAt, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "MultiBlockMigrations", + "force_set_active_cursor", + types::ForceSetActiveCursor { + index, + inner_cursor, + started_at, + }, + [ + 171u8, 245u8, 214u8, 230u8, 7u8, 61u8, 186u8, 60u8, 43u8, 235u8, 110u8, + 188u8, 30u8, 215u8, 48u8, 194u8, 249u8, 215u8, 224u8, 229u8, 89u8, + 179u8, 189u8, 70u8, 62u8, 162u8, 245u8, 199u8, 3u8, 234u8, 154u8, 9u8, + ], + ) + } + #[doc = "Forces the onboarding of the migrations."] + #[doc = ""] + #[doc = "This process happens automatically on a runtime upgrade. It is in place as an emergency"] + #[doc = "measurement. The cursor needs to be `None` for this to succeed."] + pub fn force_onboard_mbms( + &self, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "MultiBlockMigrations", + "force_onboard_mbms", + types::ForceOnboardMbms {}, + [ + 201u8, 148u8, 226u8, 128u8, 88u8, 120u8, 31u8, 159u8, 78u8, 5u8, 148u8, + 189u8, 71u8, 195u8, 136u8, 24u8, 131u8, 107u8, 56u8, 17u8, 26u8, 25u8, + 189u8, 102u8, 220u8, 148u8, 44u8, 92u8, 79u8, 232u8, 236u8, 86u8, + ], + ) + } + #[doc = "Clears the `Historic` set."] + #[doc = ""] + #[doc = "`map_cursor` must be set to the last value that was returned by the"] + #[doc = "`HistoricCleared` event. The first time `None` can be used. `limit` must be chosen in a"] + #[doc = "way that will result in a sensible weight."] + pub fn clear_historic( + &self, + selector: types::clear_historic::Selector, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "MultiBlockMigrations", + "clear_historic", + types::ClearHistoric { selector }, + [ + 160u8, 68u8, 166u8, 164u8, 115u8, 190u8, 214u8, 167u8, 171u8, 238u8, + 176u8, 191u8, 30u8, 228u8, 237u8, 125u8, 183u8, 147u8, 186u8, 246u8, + 59u8, 186u8, 40u8, 193u8, 13u8, 252u8, 99u8, 199u8, 207u8, 149u8, 20u8, + 95u8, + ], + ) + } + } + } + #[doc = "The `Event` enum of this pallet"] + pub type Event = runtime_types::pallet_migrations::pallet::Event; + pub mod events { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A Runtime upgrade started."] + #[doc = ""] + #[doc = "Its end is indicated by `UpgradeCompleted` or `UpgradeFailed`."] + pub struct UpgradeStarted { + pub migrations: upgrade_started::Migrations, + } + pub mod upgrade_started { + use super::runtime_types; + pub type Migrations = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for UpgradeStarted { + const PALLET: &'static str = "MultiBlockMigrations"; + const EVENT: &'static str = "UpgradeStarted"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The current runtime upgrade completed."] + #[doc = ""] + #[doc = "This implies that all of its migrations completed successfully as well."] + pub struct UpgradeCompleted; + impl ::subxt::ext::subxt_core::events::StaticEvent for UpgradeCompleted { + const PALLET: &'static str = "MultiBlockMigrations"; + const EVENT: &'static str = "UpgradeCompleted"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Runtime upgrade failed."] + #[doc = ""] + #[doc = "This is very bad and will require governance intervention."] + pub struct UpgradeFailed; + impl ::subxt::ext::subxt_core::events::StaticEvent for UpgradeFailed { + const PALLET: &'static str = "MultiBlockMigrations"; + const EVENT: &'static str = "UpgradeFailed"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A migration was skipped since it was already executed in the past."] + pub struct MigrationSkipped { + pub index: migration_skipped::Index, + } + pub mod migration_skipped { + use super::runtime_types; + pub type Index = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for MigrationSkipped { + const PALLET: &'static str = "MultiBlockMigrations"; + const EVENT: &'static str = "MigrationSkipped"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A migration progressed."] + pub struct MigrationAdvanced { + pub index: migration_advanced::Index, + pub took: migration_advanced::Took, + } + pub mod migration_advanced { + use super::runtime_types; + pub type Index = ::core::primitive::u32; + pub type Took = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for MigrationAdvanced { + const PALLET: &'static str = "MultiBlockMigrations"; + const EVENT: &'static str = "MigrationAdvanced"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A Migration completed."] + pub struct MigrationCompleted { + pub index: migration_completed::Index, + pub took: migration_completed::Took, + } + pub mod migration_completed { + use super::runtime_types; + pub type Index = ::core::primitive::u32; + pub type Took = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for MigrationCompleted { + const PALLET: &'static str = "MultiBlockMigrations"; + const EVENT: &'static str = "MigrationCompleted"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A Migration failed."] + #[doc = ""] + #[doc = "This implies that the whole upgrade failed and governance intervention is required."] + pub struct MigrationFailed { + pub index: migration_failed::Index, + pub took: migration_failed::Took, + } + pub mod migration_failed { + use super::runtime_types; + pub type Index = ::core::primitive::u32; + pub type Took = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for MigrationFailed { + const PALLET: &'static str = "MultiBlockMigrations"; + const EVENT: &'static str = "MigrationFailed"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The set of historical migrations has been cleared."] + pub struct HistoricCleared { + pub next_cursor: historic_cleared::NextCursor, + } + pub mod historic_cleared { + use super::runtime_types; + pub type NextCursor = ::core::option::Option< + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + >; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for HistoricCleared { + const PALLET: &'static str = "MultiBlockMigrations"; + const EVENT: &'static str = "HistoricCleared"; + } + } + pub mod storage { + use super::runtime_types; + pub mod types { + use super::runtime_types; + pub mod cursor { + use super::runtime_types; + pub type Cursor = runtime_types::pallet_migrations::MigrationCursor< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + ::core::primitive::u32, + >; + } + pub mod historic { + use super::runtime_types; + pub type Historic = (); + pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; + } + } + pub struct StorageApi; + impl StorageApi { + #[doc = " The currently active migration to run and its cursor."] + #[doc = ""] + #[doc = " `None` indicates that no migration is running."] + pub fn cursor( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::cursor::Cursor, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "MultiBlockMigrations", + "Cursor", + (), + [ + 158u8, 123u8, 0u8, 37u8, 29u8, 141u8, 51u8, 91u8, 165u8, 167u8, 35u8, + 72u8, 219u8, 39u8, 135u8, 23u8, 215u8, 63u8, 127u8, 57u8, 55u8, 169u8, + 178u8, 177u8, 77u8, 209u8, 230u8, 152u8, 136u8, 145u8, 58u8, 33u8, + ], + ) + } + #[doc = " Set of all successfully executed migrations."] + #[doc = ""] + #[doc = " This is used as blacklist, to not re-execute migrations that have not been removed from the"] + #[doc = " codebase yet. Governance can regularly clear this out via `clear_historic`."] + pub fn historic_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::historic::Historic, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "MultiBlockMigrations", + "Historic", + (), + [ + 142u8, 100u8, 97u8, 146u8, 174u8, 131u8, 203u8, 224u8, 127u8, 74u8, + 118u8, 165u8, 237u8, 128u8, 89u8, 198u8, 80u8, 250u8, 231u8, 29u8, 1u8, + 128u8, 201u8, 51u8, 150u8, 168u8, 3u8, 17u8, 35u8, 175u8, 153u8, 141u8, + ], + ) + } + #[doc = " Set of all successfully executed migrations."] + #[doc = ""] + #[doc = " This is used as blacklist, to not re-execute migrations that have not been removed from the"] + #[doc = " codebase yet. Governance can regularly clear this out via `clear_historic`."] + pub fn historic( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::historic::Param0, + >, + types::historic::Historic, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "MultiBlockMigrations", + "Historic", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 142u8, 100u8, 97u8, 146u8, 174u8, 131u8, 203u8, 224u8, 127u8, 74u8, + 118u8, 165u8, 237u8, 128u8, 89u8, 198u8, 80u8, 250u8, 231u8, 29u8, 1u8, + 128u8, 201u8, 51u8, 150u8, 168u8, 3u8, 17u8, 35u8, 175u8, 153u8, 141u8, + ], + ) + } + } + } + pub mod constants { + use super::runtime_types; + pub struct ConstantsApi; + impl ConstantsApi { + #[doc = " The maximal length of an encoded cursor."] + #[doc = ""] + #[doc = " A good default needs to selected such that no migration will ever have a cursor with MEL"] + #[doc = " above this limit. This is statically checked in `integrity_test`."] + pub fn cursor_max_len( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "MultiBlockMigrations", + "CursorMaxLen", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, + ], + ) + } + #[doc = " The maximal length of an encoded identifier."] + #[doc = ""] + #[doc = " A good default needs to selected such that no migration will ever have an identifier"] + #[doc = " with MEL above this limit. This is statically checked in `integrity_test`."] + pub fn identifier_max_len( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "MultiBlockMigrations", + "IdentifierMaxLen", + [ + 98u8, 252u8, 116u8, 72u8, 26u8, 180u8, 225u8, 83u8, 200u8, 157u8, + 125u8, 151u8, 53u8, 76u8, 168u8, 26u8, 10u8, 9u8, 98u8, 68u8, 9u8, + 178u8, 197u8, 113u8, 31u8, 79u8, 200u8, 90u8, 203u8, 100u8, 41u8, + 145u8, ], ) } @@ -46897,7 +48289,7 @@ pub mod api { } pub mod force_xcm_version { use super::runtime_types; - pub type Location = runtime_types::staging_xcm::v4::location::Location; + pub type Location = runtime_types::staging_xcm::v5::location::Location; pub type Version = ::core::primitive::u32; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceXcmVersion { @@ -47379,10 +48771,9 @@ pub mod api { message: ::subxt::ext::subxt_core::alloc::boxed::Box::new(message), }, [ - 47u8, 63u8, 128u8, 176u8, 10u8, 137u8, 124u8, 238u8, 155u8, 37u8, - 193u8, 160u8, 83u8, 240u8, 21u8, 179u8, 169u8, 131u8, 27u8, 104u8, - 195u8, 208u8, 123u8, 14u8, 221u8, 12u8, 45u8, 81u8, 148u8, 76u8, 17u8, - 100u8, + 98u8, 54u8, 34u8, 10u8, 69u8, 196u8, 7u8, 80u8, 144u8, 60u8, 90u8, + 16u8, 42u8, 178u8, 190u8, 204u8, 110u8, 43u8, 56u8, 77u8, 213u8, 226u8, + 229u8, 68u8, 236u8, 217u8, 56u8, 70u8, 211u8, 211u8, 222u8, 175u8, ], ) } @@ -47424,9 +48815,9 @@ pub mod api { fee_asset_item, }, [ - 124u8, 191u8, 118u8, 61u8, 45u8, 225u8, 97u8, 83u8, 198u8, 20u8, 139u8, - 117u8, 241u8, 1u8, 19u8, 54u8, 79u8, 181u8, 131u8, 112u8, 11u8, 118u8, - 147u8, 12u8, 89u8, 156u8, 123u8, 123u8, 195u8, 45u8, 50u8, 107u8, + 31u8, 60u8, 0u8, 220u8, 157u8, 38u8, 28u8, 140u8, 79u8, 243u8, 182u8, + 229u8, 158u8, 45u8, 213u8, 132u8, 149u8, 196u8, 212u8, 239u8, 23u8, + 19u8, 69u8, 27u8, 250u8, 110u8, 193u8, 60u8, 227u8, 252u8, 174u8, 35u8, ], ) } @@ -47481,10 +48872,10 @@ pub mod api { fee_asset_item, }, [ - 97u8, 102u8, 230u8, 44u8, 135u8, 197u8, 43u8, 53u8, 182u8, 125u8, - 140u8, 141u8, 229u8, 73u8, 29u8, 55u8, 159u8, 104u8, 197u8, 20u8, - 124u8, 234u8, 250u8, 94u8, 133u8, 253u8, 189u8, 6u8, 216u8, 162u8, - 218u8, 89u8, + 76u8, 122u8, 201u8, 193u8, 160u8, 210u8, 58u8, 150u8, 236u8, 130u8, + 225u8, 28u8, 35u8, 9u8, 206u8, 235u8, 14u8, 101u8, 193u8, 118u8, 145u8, + 230u8, 112u8, 65u8, 172u8, 251u8, 62u8, 64u8, 130u8, 223u8, 153u8, + 139u8, ], ) } @@ -47510,10 +48901,10 @@ pub mod api { max_weight, }, [ - 71u8, 109u8, 92u8, 110u8, 198u8, 150u8, 140u8, 125u8, 248u8, 236u8, - 177u8, 156u8, 198u8, 223u8, 51u8, 15u8, 52u8, 240u8, 20u8, 200u8, 68u8, - 145u8, 36u8, 156u8, 159u8, 153u8, 125u8, 48u8, 181u8, 61u8, 53u8, - 208u8, + 166u8, 77u8, 154u8, 210u8, 192u8, 199u8, 48u8, 98u8, 124u8, 211u8, + 192u8, 61u8, 128u8, 210u8, 156u8, 197u8, 27u8, 207u8, 190u8, 178u8, + 197u8, 206u8, 4u8, 53u8, 205u8, 226u8, 228u8, 91u8, 106u8, 215u8, + 230u8, 134u8, ], ) } @@ -47537,9 +48928,9 @@ pub mod api { version, }, [ - 69u8, 151u8, 198u8, 154u8, 69u8, 181u8, 41u8, 111u8, 145u8, 230u8, - 103u8, 42u8, 237u8, 91u8, 235u8, 6u8, 156u8, 65u8, 187u8, 48u8, 171u8, - 200u8, 49u8, 4u8, 9u8, 210u8, 229u8, 152u8, 187u8, 88u8, 80u8, 246u8, + 136u8, 43u8, 72u8, 5u8, 164u8, 97u8, 177u8, 61u8, 8u8, 112u8, 148u8, + 43u8, 0u8, 23u8, 134u8, 21u8, 173u8, 181u8, 207u8, 249u8, 98u8, 122u8, + 74u8, 131u8, 172u8, 12u8, 146u8, 124u8, 220u8, 97u8, 126u8, 253u8, ], ) } @@ -47583,9 +48974,9 @@ pub mod api { location: ::subxt::ext::subxt_core::alloc::boxed::Box::new(location), }, [ - 203u8, 171u8, 70u8, 130u8, 46u8, 63u8, 76u8, 50u8, 105u8, 23u8, 249u8, - 190u8, 115u8, 74u8, 70u8, 125u8, 132u8, 112u8, 138u8, 60u8, 33u8, 35u8, - 45u8, 29u8, 95u8, 103u8, 187u8, 182u8, 188u8, 196u8, 248u8, 152u8, + 51u8, 103u8, 204u8, 180u8, 35u8, 50u8, 212u8, 76u8, 243u8, 161u8, 5u8, + 180u8, 61u8, 194u8, 181u8, 13u8, 209u8, 18u8, 182u8, 26u8, 138u8, + 139u8, 205u8, 98u8, 62u8, 185u8, 194u8, 240u8, 5u8, 60u8, 245u8, 91u8, ], ) } @@ -47608,9 +48999,10 @@ pub mod api { location: ::subxt::ext::subxt_core::alloc::boxed::Box::new(location), }, [ - 6u8, 113u8, 168u8, 215u8, 233u8, 202u8, 249u8, 134u8, 131u8, 8u8, - 142u8, 203u8, 142u8, 95u8, 216u8, 70u8, 38u8, 99u8, 166u8, 97u8, 218u8, - 132u8, 247u8, 14u8, 42u8, 99u8, 4u8, 115u8, 200u8, 180u8, 213u8, 50u8, + 80u8, 153u8, 123u8, 155u8, 105u8, 164u8, 139u8, 252u8, 89u8, 174u8, + 54u8, 14u8, 99u8, 172u8, 85u8, 239u8, 45u8, 141u8, 84u8, 69u8, 47u8, + 18u8, 173u8, 201u8, 137u8, 186u8, 217u8, 105u8, 105u8, 20u8, 6u8, + 198u8, ], ) } @@ -47667,10 +49059,9 @@ pub mod api { weight_limit, }, [ - 198u8, 66u8, 204u8, 162u8, 222u8, 246u8, 141u8, 165u8, 241u8, 62u8, - 43u8, 236u8, 56u8, 200u8, 54u8, 47u8, 174u8, 83u8, 167u8, 220u8, 174u8, - 111u8, 123u8, 202u8, 248u8, 232u8, 166u8, 80u8, 152u8, 223u8, 86u8, - 141u8, + 72u8, 168u8, 103u8, 54u8, 253u8, 3u8, 152u8, 167u8, 60u8, 214u8, 24u8, + 47u8, 179u8, 36u8, 251u8, 15u8, 213u8, 191u8, 95u8, 128u8, 93u8, 42u8, + 205u8, 37u8, 214u8, 170u8, 241u8, 71u8, 176u8, 11u8, 43u8, 74u8, ], ) } @@ -47715,9 +49106,9 @@ pub mod api { weight_limit, }, [ - 70u8, 61u8, 32u8, 43u8, 101u8, 104u8, 251u8, 60u8, 212u8, 124u8, 113u8, - 243u8, 241u8, 183u8, 5u8, 231u8, 209u8, 231u8, 136u8, 3u8, 145u8, - 242u8, 179u8, 171u8, 185u8, 185u8, 7u8, 34u8, 5u8, 203u8, 21u8, 210u8, + 56u8, 190u8, 251u8, 133u8, 34u8, 100u8, 32u8, 57u8, 114u8, 73u8, 153u8, + 74u8, 178u8, 228u8, 239u8, 87u8, 242u8, 202u8, 56u8, 66u8, 22u8, 216u8, + 113u8, 25u8, 233u8, 238u8, 164u8, 76u8, 144u8, 204u8, 219u8, 91u8, ], ) } @@ -47796,10 +49187,9 @@ pub mod api { weight_limit, }, [ - 44u8, 155u8, 182u8, 37u8, 123u8, 148u8, 150u8, 191u8, 117u8, 32u8, - 16u8, 238u8, 121u8, 188u8, 217u8, 110u8, 10u8, 236u8, 174u8, 91u8, - 100u8, 201u8, 109u8, 109u8, 60u8, 177u8, 233u8, 66u8, 181u8, 191u8, - 105u8, 37u8, + 204u8, 118u8, 44u8, 144u8, 51u8, 77u8, 235u8, 235u8, 86u8, 166u8, 92u8, + 106u8, 197u8, 151u8, 154u8, 136u8, 137u8, 206u8, 111u8, 118u8, 94u8, + 22u8, 7u8, 21u8, 13u8, 169u8, 214u8, 87u8, 84u8, 140u8, 6u8, 54u8, ], ) } @@ -47825,10 +49215,10 @@ pub mod api { ), }, [ - 155u8, 23u8, 166u8, 172u8, 251u8, 171u8, 136u8, 240u8, 253u8, 51u8, - 164u8, 43u8, 141u8, 23u8, 189u8, 177u8, 33u8, 32u8, 212u8, 56u8, 174u8, - 165u8, 129u8, 7u8, 49u8, 217u8, 213u8, 214u8, 250u8, 91u8, 200u8, - 195u8, + 7u8, 158u8, 80u8, 180u8, 145u8, 151u8, 34u8, 132u8, 236u8, 243u8, 77u8, + 177u8, 66u8, 172u8, 57u8, 182u8, 226u8, 110u8, 246u8, 159u8, 61u8, + 31u8, 167u8, 210u8, 226u8, 215u8, 103u8, 234u8, 16u8, 95u8, 92u8, + 248u8, ], ) } @@ -47913,9 +49303,10 @@ pub mod api { weight_limit, }, [ - 128u8, 51u8, 64u8, 139u8, 106u8, 225u8, 14u8, 247u8, 44u8, 109u8, 11u8, - 15u8, 7u8, 235u8, 7u8, 195u8, 177u8, 94u8, 9u8, 107u8, 110u8, 174u8, - 154u8, 157u8, 20u8, 232u8, 38u8, 207u8, 228u8, 151u8, 10u8, 226u8, + 179u8, 111u8, 241u8, 139u8, 151u8, 252u8, 163u8, 177u8, 138u8, 254u8, + 91u8, 241u8, 28u8, 50u8, 69u8, 191u8, 167u8, 158u8, 172u8, 157u8, + 175u8, 180u8, 144u8, 158u8, 161u8, 145u8, 229u8, 76u8, 252u8, 122u8, + 239u8, 126u8, ], ) } @@ -47942,7 +49333,7 @@ pub mod api { } pub mod attempted { use super::runtime_types; - pub type Outcome = runtime_types::staging_xcm::v4::traits::Outcome; + pub type Outcome = runtime_types::staging_xcm::v5::traits::Outcome; } impl ::subxt::ext::subxt_core::events::StaticEvent for Attempted { const PALLET: &'static str = "XcmPallet"; @@ -47968,9 +49359,9 @@ pub mod api { } pub mod sent { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v4::location::Location; - pub type Destination = runtime_types::staging_xcm::v4::location::Location; - pub type Message = runtime_types::staging_xcm::v4::Xcm; + pub type Origin = runtime_types::staging_xcm::v5::location::Location; + pub type Destination = runtime_types::staging_xcm::v5::location::Location; + pub type Message = runtime_types::staging_xcm::v5::Xcm; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::ext::subxt_core::events::StaticEvent for Sent { @@ -47997,7 +49388,7 @@ pub mod api { } pub mod unexpected_response { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Origin = runtime_types::staging_xcm::v5::location::Location; pub type QueryId = ::core::primitive::u64; } impl ::subxt::ext::subxt_core::events::StaticEvent for UnexpectedResponse { @@ -48024,7 +49415,7 @@ pub mod api { pub mod response_ready { use super::runtime_types; pub type QueryId = ::core::primitive::u64; - pub type Response = runtime_types::staging_xcm::v4::Response; + pub type Response = runtime_types::staging_xcm::v5::Response; } impl ::subxt::ext::subxt_core::events::StaticEvent for ResponseReady { const PALLET: &'static str = "XcmPallet"; @@ -48169,10 +49560,10 @@ pub mod api { } pub mod invalid_responder { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Origin = runtime_types::staging_xcm::v5::location::Location; pub type QueryId = ::core::primitive::u64; pub type ExpectedLocation = - ::core::option::Option; + ::core::option::Option; } impl ::subxt::ext::subxt_core::events::StaticEvent for InvalidResponder { const PALLET: &'static str = "XcmPallet"; @@ -48202,7 +49593,7 @@ pub mod api { } pub mod invalid_responder_version { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Origin = runtime_types::staging_xcm::v5::location::Location; pub type QueryId = ::core::primitive::u64; } impl ::subxt::ext::subxt_core::events::StaticEvent for InvalidResponderVersion { @@ -48252,7 +49643,7 @@ pub mod api { pub mod assets_trapped { use super::runtime_types; pub type Hash = ::subxt::ext::subxt_core::utils::H256; - pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Origin = runtime_types::staging_xcm::v5::location::Location; pub type Assets = runtime_types::xcm::VersionedAssets; } impl ::subxt::ext::subxt_core::events::StaticEvent for AssetsTrapped { @@ -48281,9 +49672,9 @@ pub mod api { } pub mod version_change_notified { use super::runtime_types; - pub type Destination = runtime_types::staging_xcm::v4::location::Location; + pub type Destination = runtime_types::staging_xcm::v5::location::Location; pub type Result = ::core::primitive::u32; - pub type Cost = runtime_types::staging_xcm::v4::asset::Assets; + pub type Cost = runtime_types::staging_xcm::v5::asset::Assets; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::ext::subxt_core::events::StaticEvent for VersionChangeNotified { @@ -48309,7 +49700,7 @@ pub mod api { } pub mod supported_version_changed { use super::runtime_types; - pub type Location = runtime_types::staging_xcm::v4::location::Location; + pub type Location = runtime_types::staging_xcm::v5::location::Location; pub type Version = ::core::primitive::u32; } impl ::subxt::ext::subxt_core::events::StaticEvent for SupportedVersionChanged { @@ -48336,9 +49727,9 @@ pub mod api { } pub mod notify_target_send_fail { use super::runtime_types; - pub type Location = runtime_types::staging_xcm::v4::location::Location; + pub type Location = runtime_types::staging_xcm::v5::location::Location; pub type QueryId = ::core::primitive::u64; - pub type Error = runtime_types::xcm::v3::traits::Error; + pub type Error = runtime_types::xcm::v5::traits::Error; } impl ::subxt::ext::subxt_core::events::StaticEvent for NotifyTargetSendFail { const PALLET: &'static str = "XcmPallet"; @@ -48394,7 +49785,7 @@ pub mod api { } pub mod invalid_querier_version { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Origin = runtime_types::staging_xcm::v5::location::Location; pub type QueryId = ::core::primitive::u64; } impl ::subxt::ext::subxt_core::events::StaticEvent for InvalidQuerierVersion { @@ -48423,11 +49814,11 @@ pub mod api { } pub mod invalid_querier { use super::runtime_types; - pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Origin = runtime_types::staging_xcm::v5::location::Location; pub type QueryId = ::core::primitive::u64; - pub type ExpectedQuerier = runtime_types::staging_xcm::v4::location::Location; + pub type ExpectedQuerier = runtime_types::staging_xcm::v5::location::Location; pub type MaybeActualQuerier = - ::core::option::Option; + ::core::option::Option; } impl ::subxt::ext::subxt_core::events::StaticEvent for InvalidQuerier { const PALLET: &'static str = "XcmPallet"; @@ -48453,8 +49844,8 @@ pub mod api { } pub mod version_notify_started { use super::runtime_types; - pub type Destination = runtime_types::staging_xcm::v4::location::Location; - pub type Cost = runtime_types::staging_xcm::v4::asset::Assets; + pub type Destination = runtime_types::staging_xcm::v5::location::Location; + pub type Cost = runtime_types::staging_xcm::v5::asset::Assets; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::ext::subxt_core::events::StaticEvent for VersionNotifyStarted { @@ -48480,8 +49871,8 @@ pub mod api { } pub mod version_notify_requested { use super::runtime_types; - pub type Destination = runtime_types::staging_xcm::v4::location::Location; - pub type Cost = runtime_types::staging_xcm::v4::asset::Assets; + pub type Destination = runtime_types::staging_xcm::v5::location::Location; + pub type Cost = runtime_types::staging_xcm::v5::asset::Assets; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::ext::subxt_core::events::StaticEvent for VersionNotifyRequested { @@ -48508,8 +49899,8 @@ pub mod api { } pub mod version_notify_unrequested { use super::runtime_types; - pub type Destination = runtime_types::staging_xcm::v4::location::Location; - pub type Cost = runtime_types::staging_xcm::v4::asset::Assets; + pub type Destination = runtime_types::staging_xcm::v5::location::Location; + pub type Cost = runtime_types::staging_xcm::v5::asset::Assets; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::ext::subxt_core::events::StaticEvent for VersionNotifyUnrequested { @@ -48534,8 +49925,8 @@ pub mod api { } pub mod fees_paid { use super::runtime_types; - pub type Paying = runtime_types::staging_xcm::v4::location::Location; - pub type Fees = runtime_types::staging_xcm::v4::asset::Assets; + pub type Paying = runtime_types::staging_xcm::v5::location::Location; + pub type Fees = runtime_types::staging_xcm::v5::asset::Assets; } impl ::subxt::ext::subxt_core::events::StaticEvent for FeesPaid { const PALLET: &'static str = "XcmPallet"; @@ -48561,7 +49952,7 @@ pub mod api { pub mod assets_claimed { use super::runtime_types; pub type Hash = ::subxt::ext::subxt_core::utils::H256; - pub type Origin = runtime_types::staging_xcm::v4::location::Location; + pub type Origin = runtime_types::staging_xcm::v5::location::Location; pub type Assets = runtime_types::xcm::VersionedAssets; } impl ::subxt::ext::subxt_core::events::StaticEvent for AssetsClaimed { @@ -48677,7 +50068,7 @@ pub mod api { } pub mod recorded_xcm { use super::runtime_types; - pub type RecordedXcm = runtime_types::staging_xcm::v4::Xcm; + pub type RecordedXcm = runtime_types::staging_xcm::v5::Xcm; } } pub struct StorageApi; @@ -48719,10 +50110,10 @@ pub mod api { "Queries", (), [ - 246u8, 75u8, 240u8, 129u8, 106u8, 114u8, 99u8, 154u8, 176u8, 188u8, - 146u8, 125u8, 244u8, 103u8, 187u8, 171u8, 60u8, 119u8, 4u8, 90u8, 58u8, - 180u8, 48u8, 165u8, 145u8, 125u8, 227u8, 233u8, 11u8, 142u8, 122u8, - 3u8, + 134u8, 206u8, 252u8, 211u8, 156u8, 173u8, 214u8, 205u8, 17u8, 177u8, + 139u8, 121u8, 43u8, 29u8, 30u8, 233u8, 210u8, 222u8, 172u8, 171u8, + 13u8, 223u8, 153u8, 88u8, 43u8, 44u8, 183u8, 253u8, 252u8, 251u8, + 184u8, 249u8, ], ) } @@ -48746,10 +50137,10 @@ pub mod api { _0.borrow(), ), [ - 246u8, 75u8, 240u8, 129u8, 106u8, 114u8, 99u8, 154u8, 176u8, 188u8, - 146u8, 125u8, 244u8, 103u8, 187u8, 171u8, 60u8, 119u8, 4u8, 90u8, 58u8, - 180u8, 48u8, 165u8, 145u8, 125u8, 227u8, 233u8, 11u8, 142u8, 122u8, - 3u8, + 134u8, 206u8, 252u8, 211u8, 156u8, 173u8, 214u8, 205u8, 17u8, 177u8, + 139u8, 121u8, 43u8, 29u8, 30u8, 233u8, 210u8, 222u8, 172u8, 171u8, + 13u8, 223u8, 153u8, 88u8, 43u8, 44u8, 183u8, 253u8, 252u8, 251u8, + 184u8, 249u8, ], ) } @@ -48844,10 +50235,10 @@ pub mod api { "SupportedVersion", (), [ - 144u8, 218u8, 177u8, 254u8, 210u8, 8u8, 84u8, 149u8, 163u8, 162u8, - 238u8, 37u8, 157u8, 28u8, 140u8, 121u8, 201u8, 173u8, 204u8, 92u8, - 133u8, 45u8, 156u8, 38u8, 61u8, 51u8, 153u8, 161u8, 147u8, 146u8, - 202u8, 24u8, + 156u8, 153u8, 195u8, 67u8, 72u8, 227u8, 183u8, 107u8, 71u8, 221u8, + 125u8, 172u8, 34u8, 22u8, 56u8, 182u8, 219u8, 223u8, 183u8, 137u8, + 243u8, 231u8, 153u8, 254u8, 144u8, 104u8, 48u8, 189u8, 232u8, 104u8, + 180u8, 65u8, ], ) } @@ -48871,10 +50262,10 @@ pub mod api { _0.borrow(), ), [ - 144u8, 218u8, 177u8, 254u8, 210u8, 8u8, 84u8, 149u8, 163u8, 162u8, - 238u8, 37u8, 157u8, 28u8, 140u8, 121u8, 201u8, 173u8, 204u8, 92u8, - 133u8, 45u8, 156u8, 38u8, 61u8, 51u8, 153u8, 161u8, 147u8, 146u8, - 202u8, 24u8, + 156u8, 153u8, 195u8, 67u8, 72u8, 227u8, 183u8, 107u8, 71u8, 221u8, + 125u8, 172u8, 34u8, 22u8, 56u8, 182u8, 219u8, 223u8, 183u8, 137u8, + 243u8, 231u8, 153u8, 254u8, 144u8, 104u8, 48u8, 189u8, 232u8, 104u8, + 180u8, 65u8, ], ) } @@ -48909,10 +50300,10 @@ pub mod api { ), ), [ - 144u8, 218u8, 177u8, 254u8, 210u8, 8u8, 84u8, 149u8, 163u8, 162u8, - 238u8, 37u8, 157u8, 28u8, 140u8, 121u8, 201u8, 173u8, 204u8, 92u8, - 133u8, 45u8, 156u8, 38u8, 61u8, 51u8, 153u8, 161u8, 147u8, 146u8, - 202u8, 24u8, + 156u8, 153u8, 195u8, 67u8, 72u8, 227u8, 183u8, 107u8, 71u8, 221u8, + 125u8, 172u8, 34u8, 22u8, 56u8, 182u8, 219u8, 223u8, 183u8, 137u8, + 243u8, 231u8, 153u8, 254u8, 144u8, 104u8, 48u8, 189u8, 232u8, 104u8, + 180u8, 65u8, ], ) } @@ -48931,10 +50322,9 @@ pub mod api { "VersionNotifiers", (), [ - 175u8, 206u8, 29u8, 14u8, 111u8, 123u8, 211u8, 109u8, 159u8, 131u8, - 80u8, 149u8, 216u8, 196u8, 181u8, 105u8, 117u8, 138u8, 80u8, 69u8, - 237u8, 116u8, 195u8, 66u8, 209u8, 102u8, 42u8, 126u8, 222u8, 176u8, - 201u8, 49u8, + 216u8, 78u8, 44u8, 71u8, 246u8, 59u8, 163u8, 153u8, 68u8, 31u8, 197u8, + 114u8, 33u8, 203u8, 20u8, 60u8, 61u8, 177u8, 94u8, 13u8, 213u8, 203u8, + 150u8, 145u8, 134u8, 249u8, 53u8, 21u8, 122u8, 208u8, 66u8, 67u8, ], ) } @@ -48958,10 +50348,9 @@ pub mod api { _0.borrow(), ), [ - 175u8, 206u8, 29u8, 14u8, 111u8, 123u8, 211u8, 109u8, 159u8, 131u8, - 80u8, 149u8, 216u8, 196u8, 181u8, 105u8, 117u8, 138u8, 80u8, 69u8, - 237u8, 116u8, 195u8, 66u8, 209u8, 102u8, 42u8, 126u8, 222u8, 176u8, - 201u8, 49u8, + 216u8, 78u8, 44u8, 71u8, 246u8, 59u8, 163u8, 153u8, 68u8, 31u8, 197u8, + 114u8, 33u8, 203u8, 20u8, 60u8, 61u8, 177u8, 94u8, 13u8, 213u8, 203u8, + 150u8, 145u8, 134u8, 249u8, 53u8, 21u8, 122u8, 208u8, 66u8, 67u8, ], ) } @@ -48996,10 +50385,9 @@ pub mod api { ), ), [ - 175u8, 206u8, 29u8, 14u8, 111u8, 123u8, 211u8, 109u8, 159u8, 131u8, - 80u8, 149u8, 216u8, 196u8, 181u8, 105u8, 117u8, 138u8, 80u8, 69u8, - 237u8, 116u8, 195u8, 66u8, 209u8, 102u8, 42u8, 126u8, 222u8, 176u8, - 201u8, 49u8, + 216u8, 78u8, 44u8, 71u8, 246u8, 59u8, 163u8, 153u8, 68u8, 31u8, 197u8, + 114u8, 33u8, 203u8, 20u8, 60u8, 61u8, 177u8, 94u8, 13u8, 213u8, 203u8, + 150u8, 145u8, 134u8, 249u8, 53u8, 21u8, 122u8, 208u8, 66u8, 67u8, ], ) } @@ -49019,9 +50407,9 @@ pub mod api { "VersionNotifyTargets", (), [ - 113u8, 77u8, 150u8, 42u8, 82u8, 49u8, 195u8, 120u8, 96u8, 80u8, 152u8, - 67u8, 27u8, 142u8, 10u8, 74u8, 66u8, 134u8, 35u8, 202u8, 77u8, 187u8, - 174u8, 22u8, 207u8, 199u8, 57u8, 85u8, 53u8, 208u8, 146u8, 81u8, + 166u8, 29u8, 245u8, 121u8, 177u8, 119u8, 188u8, 0u8, 32u8, 188u8, 9u8, + 180u8, 60u8, 28u8, 161u8, 5u8, 189u8, 78u8, 238u8, 14u8, 148u8, 5u8, + 151u8, 153u8, 62u8, 163u8, 144u8, 82u8, 91u8, 227u8, 210u8, 205u8, ], ) } @@ -49046,9 +50434,9 @@ pub mod api { _0.borrow(), ), [ - 113u8, 77u8, 150u8, 42u8, 82u8, 49u8, 195u8, 120u8, 96u8, 80u8, 152u8, - 67u8, 27u8, 142u8, 10u8, 74u8, 66u8, 134u8, 35u8, 202u8, 77u8, 187u8, - 174u8, 22u8, 207u8, 199u8, 57u8, 85u8, 53u8, 208u8, 146u8, 81u8, + 166u8, 29u8, 245u8, 121u8, 177u8, 119u8, 188u8, 0u8, 32u8, 188u8, 9u8, + 180u8, 60u8, 28u8, 161u8, 5u8, 189u8, 78u8, 238u8, 14u8, 148u8, 5u8, + 151u8, 153u8, 62u8, 163u8, 144u8, 82u8, 91u8, 227u8, 210u8, 205u8, ], ) } @@ -49084,9 +50472,9 @@ pub mod api { ), ), [ - 113u8, 77u8, 150u8, 42u8, 82u8, 49u8, 195u8, 120u8, 96u8, 80u8, 152u8, - 67u8, 27u8, 142u8, 10u8, 74u8, 66u8, 134u8, 35u8, 202u8, 77u8, 187u8, - 174u8, 22u8, 207u8, 199u8, 57u8, 85u8, 53u8, 208u8, 146u8, 81u8, + 166u8, 29u8, 245u8, 121u8, 177u8, 119u8, 188u8, 0u8, 32u8, 188u8, 9u8, + 180u8, 60u8, 28u8, 161u8, 5u8, 189u8, 78u8, 238u8, 14u8, 148u8, 5u8, + 151u8, 153u8, 62u8, 163u8, 144u8, 82u8, 91u8, 227u8, 210u8, 205u8, ], ) } @@ -49107,10 +50495,10 @@ pub mod api { "VersionDiscoveryQueue", (), [ - 95u8, 74u8, 97u8, 94u8, 40u8, 140u8, 175u8, 176u8, 224u8, 222u8, 83u8, - 199u8, 170u8, 102u8, 3u8, 77u8, 127u8, 208u8, 155u8, 122u8, 176u8, - 51u8, 15u8, 253u8, 231u8, 245u8, 91u8, 192u8, 60u8, 144u8, 101u8, - 168u8, + 206u8, 152u8, 58u8, 105u8, 70u8, 142u8, 210u8, 246u8, 107u8, 8u8, + 190u8, 195u8, 255u8, 27u8, 199u8, 241u8, 221u8, 238u8, 61u8, 92u8, + 245u8, 162u8, 151u8, 234u8, 151u8, 6u8, 216u8, 115u8, 214u8, 138u8, + 8u8, 27u8, ], ) } @@ -49150,10 +50538,10 @@ pub mod api { "RemoteLockedFungibles", (), [ - 247u8, 124u8, 77u8, 42u8, 208u8, 183u8, 99u8, 196u8, 50u8, 113u8, - 250u8, 221u8, 222u8, 170u8, 10u8, 60u8, 143u8, 172u8, 149u8, 198u8, - 125u8, 154u8, 196u8, 196u8, 145u8, 209u8, 68u8, 28u8, 241u8, 241u8, - 201u8, 150u8, + 166u8, 178u8, 87u8, 32u8, 245u8, 121u8, 41u8, 67u8, 60u8, 239u8, 43u8, + 155u8, 114u8, 241u8, 54u8, 176u8, 63u8, 204u8, 197u8, 250u8, 60u8, + 185u8, 88u8, 124u8, 242u8, 145u8, 45u8, 16u8, 248u8, 181u8, 236u8, + 11u8, ], ) } @@ -49177,10 +50565,10 @@ pub mod api { _0.borrow(), ), [ - 247u8, 124u8, 77u8, 42u8, 208u8, 183u8, 99u8, 196u8, 50u8, 113u8, - 250u8, 221u8, 222u8, 170u8, 10u8, 60u8, 143u8, 172u8, 149u8, 198u8, - 125u8, 154u8, 196u8, 196u8, 145u8, 209u8, 68u8, 28u8, 241u8, 241u8, - 201u8, 150u8, + 166u8, 178u8, 87u8, 32u8, 245u8, 121u8, 41u8, 67u8, 60u8, 239u8, 43u8, + 155u8, 114u8, 241u8, 54u8, 176u8, 63u8, 204u8, 197u8, 250u8, 60u8, + 185u8, 88u8, 124u8, 242u8, 145u8, 45u8, 16u8, 248u8, 181u8, 236u8, + 11u8, ], ) } @@ -49215,10 +50603,10 @@ pub mod api { ), ), [ - 247u8, 124u8, 77u8, 42u8, 208u8, 183u8, 99u8, 196u8, 50u8, 113u8, - 250u8, 221u8, 222u8, 170u8, 10u8, 60u8, 143u8, 172u8, 149u8, 198u8, - 125u8, 154u8, 196u8, 196u8, 145u8, 209u8, 68u8, 28u8, 241u8, 241u8, - 201u8, 150u8, + 166u8, 178u8, 87u8, 32u8, 245u8, 121u8, 41u8, 67u8, 60u8, 239u8, 43u8, + 155u8, 114u8, 241u8, 54u8, 176u8, 63u8, 204u8, 197u8, 250u8, 60u8, + 185u8, 88u8, 124u8, 242u8, 145u8, 45u8, 16u8, 248u8, 181u8, 236u8, + 11u8, ], ) } @@ -49260,10 +50648,10 @@ pub mod api { ), ), [ - 247u8, 124u8, 77u8, 42u8, 208u8, 183u8, 99u8, 196u8, 50u8, 113u8, - 250u8, 221u8, 222u8, 170u8, 10u8, 60u8, 143u8, 172u8, 149u8, 198u8, - 125u8, 154u8, 196u8, 196u8, 145u8, 209u8, 68u8, 28u8, 241u8, 241u8, - 201u8, 150u8, + 166u8, 178u8, 87u8, 32u8, 245u8, 121u8, 41u8, 67u8, 60u8, 239u8, 43u8, + 155u8, 114u8, 241u8, 54u8, 176u8, 63u8, 204u8, 197u8, 250u8, 60u8, + 185u8, 88u8, 124u8, 242u8, 145u8, 45u8, 16u8, 248u8, 181u8, 236u8, + 11u8, ], ) } @@ -49282,9 +50670,9 @@ pub mod api { "LockedFungibles", (), [ - 254u8, 234u8, 1u8, 27u8, 27u8, 32u8, 217u8, 24u8, 47u8, 30u8, 62u8, - 80u8, 86u8, 125u8, 120u8, 24u8, 143u8, 229u8, 161u8, 153u8, 240u8, - 246u8, 80u8, 15u8, 49u8, 189u8, 20u8, 204u8, 239u8, 198u8, 97u8, 174u8, + 112u8, 157u8, 87u8, 224u8, 37u8, 77u8, 11u8, 17u8, 173u8, 230u8, 168u8, + 230u8, 33u8, 8u8, 209u8, 110u8, 182u8, 34u8, 118u8, 28u8, 15u8, 14u8, + 185u8, 50u8, 16u8, 52u8, 90u8, 125u8, 46u8, 20u8, 120u8, 136u8, ], ) } @@ -49308,9 +50696,9 @@ pub mod api { _0.borrow(), ), [ - 254u8, 234u8, 1u8, 27u8, 27u8, 32u8, 217u8, 24u8, 47u8, 30u8, 62u8, - 80u8, 86u8, 125u8, 120u8, 24u8, 143u8, 229u8, 161u8, 153u8, 240u8, - 246u8, 80u8, 15u8, 49u8, 189u8, 20u8, 204u8, 239u8, 198u8, 97u8, 174u8, + 112u8, 157u8, 87u8, 224u8, 37u8, 77u8, 11u8, 17u8, 173u8, 230u8, 168u8, + 230u8, 33u8, 8u8, 209u8, 110u8, 182u8, 34u8, 118u8, 28u8, 15u8, 14u8, + 185u8, 50u8, 16u8, 52u8, 90u8, 125u8, 46u8, 20u8, 120u8, 136u8, ], ) } @@ -49382,9 +50770,9 @@ pub mod api { "RecordedXcm", (), [ - 20u8, 231u8, 100u8, 77u8, 9u8, 170u8, 144u8, 49u8, 131u8, 233u8, 184u8, - 123u8, 186u8, 56u8, 115u8, 3u8, 79u8, 234u8, 71u8, 93u8, 87u8, 172u8, - 2u8, 3u8, 144u8, 151u8, 135u8, 149u8, 106u8, 96u8, 125u8, 12u8, + 232u8, 106u8, 1u8, 18u8, 111u8, 251u8, 132u8, 110u8, 17u8, 191u8, + 201u8, 213u8, 241u8, 90u8, 64u8, 11u8, 16u8, 71u8, 116u8, 122u8, 177u8, + 214u8, 154u8, 150u8, 43u8, 57u8, 4u8, 225u8, 38u8, 64u8, 152u8, 4u8, ], ) } @@ -50788,9 +52176,9 @@ pub mod api { xcm: ::subxt::ext::subxt_core::alloc::boxed::Box::new(xcm), }, [ - 35u8, 59u8, 126u8, 248u8, 211u8, 246u8, 239u8, 67u8, 252u8, 100u8, - 231u8, 46u8, 197u8, 83u8, 150u8, 54u8, 215u8, 188u8, 76u8, 193u8, 60u8, - 38u8, 251u8, 162u8, 19u8, 15u8, 214u8, 51u8, 24u8, 2u8, 9u8, 116u8, + 69u8, 60u8, 23u8, 19u8, 136u8, 57u8, 245u8, 18u8, 43u8, 41u8, 35u8, + 136u8, 7u8, 186u8, 254u8, 47u8, 26u8, 166u8, 29u8, 113u8, 233u8, 159u8, + 193u8, 204u8, 146u8, 98u8, 50u8, 169u8, 240u8, 62u8, 247u8, 240u8, ], ) } @@ -52648,9 +54036,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 105u8, 167u8, 53u8, 102u8, 86u8, 46u8, 134u8, 230u8, 60u8, 3u8, 89u8, - 234u8, 198u8, 138u8, 12u8, 170u8, 222u8, 167u8, 217u8, 186u8, 233u8, - 112u8, 229u8, 133u8, 8u8, 91u8, 226u8, 150u8, 220u8, 71u8, 125u8, 80u8, + 236u8, 235u8, 246u8, 40u8, 206u8, 83u8, 97u8, 4u8, 127u8, 221u8, 76u8, + 203u8, 203u8, 60u8, 25u8, 158u8, 87u8, 103u8, 138u8, 158u8, 79u8, + 236u8, 72u8, 184u8, 67u8, 244u8, 95u8, 240u8, 9u8, 255u8, 219u8, 217u8, ], ) } @@ -52673,10 +54061,10 @@ pub mod api { weight, }, [ - 45u8, 194u8, 207u8, 87u8, 233u8, 20u8, 220u8, 60u8, 203u8, 102u8, - 113u8, 11u8, 160u8, 56u8, 173u8, 31u8, 119u8, 230u8, 181u8, 136u8, - 30u8, 183u8, 14u8, 56u8, 121u8, 17u8, 6u8, 234u8, 222u8, 34u8, 210u8, - 35u8, + 58u8, 136u8, 230u8, 171u8, 215u8, 216u8, 35u8, 186u8, 219u8, 177u8, + 227u8, 137u8, 190u8, 98u8, 162u8, 235u8, 166u8, 188u8, 214u8, 185u8, + 0u8, 132u8, 54u8, 90u8, 13u8, 191u8, 176u8, 176u8, 12u8, 183u8, 235u8, + 120u8, ], ) } @@ -52716,10 +54104,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 55u8, 113u8, 135u8, 136u8, 254u8, 189u8, 67u8, 128u8, 27u8, 159u8, - 211u8, 119u8, 140u8, 60u8, 192u8, 26u8, 5u8, 166u8, 5u8, 81u8, 56u8, - 159u8, 231u8, 186u8, 63u8, 137u8, 178u8, 144u8, 148u8, 188u8, 130u8, - 213u8, + 4u8, 80u8, 252u8, 234u8, 130u8, 124u8, 178u8, 0u8, 124u8, 137u8, 207u8, + 59u8, 55u8, 25u8, 235u8, 156u8, 35u8, 252u8, 245u8, 255u8, 162u8, + 221u8, 146u8, 174u8, 101u8, 15u8, 169u8, 252u8, 195u8, 146u8, 1u8, + 228u8, ], ) } @@ -54844,6 +56232,28 @@ pub mod api { bounty_id: ::core::primitive::u32, remark: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, + #[codec(index = 9)] + #[doc = "Approve bountry and propose a curator simultaneously."] + #[doc = "This call is a shortcut to calling `approve_bounty` and `propose_curator` separately."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to approve."] + #[doc = "- `curator`: The curator account whom will manage this bounty."] + #[doc = "- `fee`: The curator fee."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] + approve_bounty_with_curator { + #[codec(compact)] + bounty_id: ::core::primitive::u32, + curator: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + #[codec(compact)] + fee: ::core::primitive::u128, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -55012,6 +56422,8 @@ pub mod api { beneficiary: _0, unlock_at: _1, }, + #[codec(index = 6)] + ApprovedWithCurator { curator: _0 }, } } pub mod pallet_broker { @@ -56339,8 +57751,9 @@ pub mod api { #[codec(index = 15)] #[doc = "Add an `AccountId` with permission to grant usernames with a given `suffix` appended."] #[doc = ""] - #[doc = "The authority can grant up to `allocation` usernames. To top up their allocation, they"] - #[doc = "should just issue (or request via governance) a new `add_username_authority` call."] + #[doc = "The authority can grant up to `allocation` usernames. To top up the allocation or"] + #[doc = "change the account used to grant usernames, this call can be used with the updated"] + #[doc = "parameters to overwrite the existing configuration."] add_username_authority { authority: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -56352,6 +57765,7 @@ pub mod api { #[codec(index = 16)] #[doc = "Remove `authority` from the username authorities."] remove_username_authority { + suffix: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, authority: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, (), @@ -56360,7 +57774,11 @@ pub mod api { #[codec(index = 17)] #[doc = "Set the username for `who`. Must be called by a username authority."] #[doc = ""] - #[doc = "The authority must have an `allocation`. Users can either pre-sign their usernames or"] + #[doc = "If `use_allocation` is set, the authority must have a username allocation available to"] + #[doc = "spend. Otherwise, the authority will need to put up a deposit for registering the"] + #[doc = "username."] + #[doc = ""] + #[doc = "Users can either pre-sign their usernames or"] #[doc = "accept them later."] #[doc = ""] #[doc = "Usernames must:"] @@ -56375,6 +57793,7 @@ pub mod api { username: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, signature: ::core::option::Option, + use_allocation: ::core::primitive::bool, }, #[codec(index = 18)] #[doc = "Accept a given username that an `authority` granted. The call must include the full"] @@ -56401,9 +57820,26 @@ pub mod api { >, }, #[codec(index = 21)] - #[doc = "Remove a username that corresponds to an account with no identity. Exists when a user"] - #[doc = "gets a username but then calls `clear_identity`."] - remove_dangling_username { + #[doc = "Start the process of removing a username by placing it in the unbinding usernames map."] + #[doc = "Once the grace period has passed, the username can be deleted by calling"] + #[doc = "[remove_username](crate::Call::remove_username)."] + unbind_username { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 22)] + #[doc = "Permanently delete a username which has been unbinding for longer than the grace period."] + #[doc = "Caller is refunded the fee if the username expired and the removal was successful."] + remove_username { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 23)] + #[doc = "Call with [ForceOrigin](crate::Config::ForceOrigin) privileges which deletes a username"] + #[doc = "and slashes any deposit associated with it."] + kill_username { username: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, @@ -56504,6 +57940,19 @@ pub mod api { #[codec(index = 25)] #[doc = "The username cannot be forcefully removed because it can still be accepted."] NotExpired, + #[codec(index = 26)] + #[doc = "The username cannot be removed because it's still in the grace period."] + TooEarly, + #[codec(index = 27)] + #[doc = "The username cannot be removed because it is not unbinding."] + NotUnbinding, + #[codec(index = 28)] + #[doc = "The username cannot be unbound because it is already unbinding."] + AlreadyUnbinding, + #[codec(index = 29)] + #[doc = "The action cannot be performed because of insufficient privileges (e.g. authority"] + #[doc = "trying to unbind a username provided by the system)."] + InsufficientPrivileges, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -56570,13 +58019,26 @@ pub mod api { deposit: ::core::primitive::u128, }, #[codec(index = 8)] + #[doc = "An account's sub-identities were set (in bulk)."] + SubIdentitiesSet { + main: ::subxt::ext::subxt_core::utils::AccountId32, + number_of_subs: ::core::primitive::u32, + new_deposit: ::core::primitive::u128, + }, + #[codec(index = 9)] + #[doc = "A given sub-account's associated name was changed by its super-identity."] + SubIdentityRenamed { + sub: ::subxt::ext::subxt_core::utils::AccountId32, + main: ::subxt::ext::subxt_core::utils::AccountId32, + }, + #[codec(index = 10)] #[doc = "A sub-identity was removed from an identity and the deposit freed."] SubIdentityRemoved { sub: ::subxt::ext::subxt_core::utils::AccountId32, main: ::subxt::ext::subxt_core::utils::AccountId32, deposit: ::core::primitive::u128, }, - #[codec(index = 9)] + #[codec(index = 11)] #[doc = "A sub-identity was cleared, and the given deposit repatriated from the"] #[doc = "main identity account to the sub-identity account."] SubIdentityRevoked { @@ -56584,17 +58046,17 @@ pub mod api { main: ::subxt::ext::subxt_core::utils::AccountId32, deposit: ::core::primitive::u128, }, - #[codec(index = 10)] + #[codec(index = 12)] #[doc = "A username authority was added."] AuthorityAdded { authority: ::subxt::ext::subxt_core::utils::AccountId32, }, - #[codec(index = 11)] + #[codec(index = 13)] #[doc = "A username authority was removed."] AuthorityRemoved { authority: ::subxt::ext::subxt_core::utils::AccountId32, }, - #[codec(index = 12)] + #[codec(index = 14)] #[doc = "A username was set for `who`."] UsernameSet { who: ::subxt::ext::subxt_core::utils::AccountId32, @@ -56602,7 +58064,7 @@ pub mod api { ::core::primitive::u8, >, }, - #[codec(index = 13)] + #[codec(index = 15)] #[doc = "A username was queued, but `who` must accept it prior to `expiration`."] UsernameQueued { who: ::subxt::ext::subxt_core::utils::AccountId32, @@ -56611,12 +58073,12 @@ pub mod api { >, expiration: ::core::primitive::u32, }, - #[codec(index = 14)] + #[codec(index = 16)] #[doc = "A queued username passed its expiration without being claimed and was removed."] PreapprovalExpired { whose: ::subxt::ext::subxt_core::utils::AccountId32, }, - #[codec(index = 15)] + #[codec(index = 17)] #[doc = "A username was set as a primary and can be looked up from `who`."] PrimaryUsernameSet { who: ::subxt::ext::subxt_core::utils::AccountId32, @@ -56624,7 +58086,7 @@ pub mod api { ::core::primitive::u8, >, }, - #[codec(index = 16)] + #[codec(index = 18)] #[doc = "A dangling username (as in, a username corresponding to an account that has removed its"] #[doc = "identity) has been removed."] DanglingUsernameRemoved { @@ -56633,6 +58095,27 @@ pub mod api { ::core::primitive::u8, >, }, + #[codec(index = 19)] + #[doc = "A username has been unbound."] + UsernameUnbound { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 20)] + #[doc = "A username has been removed."] + UsernameRemoved { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, + #[codec(index = 21)] + #[doc = "A username has been killed."] + UsernameKilled { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + }, } } pub mod types { @@ -56653,7 +58136,7 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct AuthorityProperties<_0> { - pub suffix: _0, + pub account_id: _0, pub allocation: ::core::primitive::u32, } #[derive( @@ -56795,6 +58278,29 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] + pub enum Provider<_0> { + #[codec(index = 0)] + Allocation, + #[codec(index = 1)] + AuthorityDeposit(_0), + #[codec(index = 2)] + System, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] pub struct RegistrarInfo<_0, _1, _2> { pub account: _1, pub fee: _0, @@ -56823,6 +58329,25 @@ pub mod api { pub deposit: _0, pub info: _2, } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct UsernameInformation<_0, _1> { + pub owner: _0, + pub provider: runtime_types::pallet_identity::types::Provider<_1>, + } } } pub mod pallet_indices { @@ -57148,6 +58673,220 @@ pub mod api { >, } } + pub mod pallet_migrations { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Allows root to set a cursor to forcefully start, stop or forward the migration process."] + #[doc = ""] + #[doc = "Should normally not be needed and is only in place as emergency measure. Note that"] + #[doc = "restarting the migration process in this manner will not call the"] + #[doc = "[`MigrationStatusHandler::started`] hook or emit an `UpgradeStarted` event."] + force_set_cursor { + cursor: ::core::option::Option< + runtime_types::pallet_migrations::MigrationCursor< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + ::core::primitive::u32, + >, + >, + }, + #[codec(index = 1)] + #[doc = "Allows root to set an active cursor to forcefully start/forward the migration process."] + #[doc = ""] + #[doc = "This is an edge-case version of [`Self::force_set_cursor`] that allows to set the"] + #[doc = "`started_at` value to the next block number. Otherwise this would not be possible, since"] + #[doc = "`force_set_cursor` takes an absolute block number. Setting `started_at` to `None`"] + #[doc = "indicates that the current block number plus one should be used."] + force_set_active_cursor { + index: ::core::primitive::u32, + inner_cursor: ::core::option::Option< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + >, + started_at: ::core::option::Option<::core::primitive::u32>, + }, + #[codec(index = 2)] + #[doc = "Forces the onboarding of the migrations."] + #[doc = ""] + #[doc = "This process happens automatically on a runtime upgrade. It is in place as an emergency"] + #[doc = "measurement. The cursor needs to be `None` for this to succeed."] + force_onboard_mbms, + #[codec(index = 3)] + #[doc = "Clears the `Historic` set."] + #[doc = ""] + #[doc = "`map_cursor` must be set to the last value that was returned by the"] + #[doc = "`HistoricCleared` event. The first time `None` can be used. `limit` must be chosen in a"] + #[doc = "way that will result in a sensible weight."] + clear_historic { + selector: runtime_types::pallet_migrations::HistoricCleanupSelector< + runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + >, + }, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "The `Error` enum of this pallet."] + pub enum Error { + #[codec(index = 0)] + #[doc = "The operation cannot complete since some MBMs are ongoing."] + Ongoing, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "The `Event` enum of this pallet"] + pub enum Event { + #[codec(index = 0)] + #[doc = "A Runtime upgrade started."] + #[doc = ""] + #[doc = "Its end is indicated by `UpgradeCompleted` or `UpgradeFailed`."] + UpgradeStarted { migrations: ::core::primitive::u32 }, + #[codec(index = 1)] + #[doc = "The current runtime upgrade completed."] + #[doc = ""] + #[doc = "This implies that all of its migrations completed successfully as well."] + UpgradeCompleted, + #[codec(index = 2)] + #[doc = "Runtime upgrade failed."] + #[doc = ""] + #[doc = "This is very bad and will require governance intervention."] + UpgradeFailed, + #[codec(index = 3)] + #[doc = "A migration was skipped since it was already executed in the past."] + MigrationSkipped { index: ::core::primitive::u32 }, + #[codec(index = 4)] + #[doc = "A migration progressed."] + MigrationAdvanced { + index: ::core::primitive::u32, + took: ::core::primitive::u32, + }, + #[codec(index = 5)] + #[doc = "A Migration completed."] + MigrationCompleted { + index: ::core::primitive::u32, + took: ::core::primitive::u32, + }, + #[codec(index = 6)] + #[doc = "A Migration failed."] + #[doc = ""] + #[doc = "This implies that the whole upgrade failed and governance intervention is required."] + MigrationFailed { + index: ::core::primitive::u32, + took: ::core::primitive::u32, + }, + #[codec(index = 7)] + #[doc = "The set of historical migrations has been cleared."] + HistoricCleared { + next_cursor: ::core::option::Option< + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + >, + }, + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub struct ActiveCursor<_0, _1> { + pub index: ::core::primitive::u32, + pub inner_cursor: ::core::option::Option<_0>, + pub started_at: _1, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum HistoricCleanupSelector<_0> { + #[codec(index = 0)] + Specific(::subxt::ext::subxt_core::alloc::vec::Vec<_0>), + #[codec(index = 1)] + Wildcard { + limit: ::core::option::Option<::core::primitive::u32>, + previous_cursor: ::core::option::Option< + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + >, + }, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum MigrationCursor<_0, _1> { + #[codec(index = 0)] + Active(runtime_types::pallet_migrations::ActiveCursor<_0, _1>), + #[codec(index = 1)] + Stuck, + } + } pub mod pallet_multisig { use super::runtime_types; pub mod pallet { @@ -62314,7 +64053,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] send { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , } , # [codec (index = 1)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Execute an XCM message from a local, signed, origin."] # [doc = ""] # [doc = "An event is deposited indicating whether `msg` could be executed completely or only"] # [doc = "partially."] # [doc = ""] # [doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] # [doc = "the maximum amount of weight that the message could take to be executed, then no"] # [doc = "execution attempt will be made."] execute { message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , max_weight : runtime_types :: sp_weights :: weight_v2 :: Weight , } , # [codec (index = 4)] # [doc = "Extoll that a particular destination can be communicated with through a particular"] # [doc = "version of XCM."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The destination that is being described."] # [doc = "- `xcm_version`: The latest version of XCM that `location` supports."] force_xcm_version { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm :: v4 :: location :: Location > , version : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] # [doc = "version a destination can accept is unknown)."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] force_default_xcm_version { maybe_xcm_version : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 6)] # [doc = "Ask a location to notify us regarding their XCM version and any changes to it."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we should subscribe for XCM version notifications."] force_subscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 7)] # [doc = "Require that a particular destination should no longer notify us regarding any XCM"] # [doc = "version changes."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we are currently subscribed for XCM version"] # [doc = " notifications which we no longer desire."] force_unsubscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 8)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 9)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 10)] # [doc = "Set or unset the global suspension state of the XCM executor."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `suspended`: `true` to suspend, `false` to resume."] force_suspension { suspended : :: core :: primitive :: bool , } , # [codec (index = 11)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve, or through teleports."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] # [doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] # [doc = "operation will fail and the sent assets may be at risk."] # [doc = ""] # [doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] # [doc = "to `dest`, no limitations imposed on `fees`."] # [doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] # [doc = " forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] # [doc = " `beneficiary`."] # [doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] # [doc = " to withdraw the reserve assets from this chain's sovereign account and deposit them"] # [doc = " to `beneficiary`."] # [doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] # [doc = " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] # [doc = " and deposit reserve-based assets to `beneficiary`."] # [doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] # [doc = " assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] # [doc = " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] # [doc = " from relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 12)] # [doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] # [doc = ""] # [doc = "- `origin`: Anyone can call this extrinsic."] # [doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] # [doc = "was the latest when they were trapped."] # [doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] claim_assets { assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 13)] # [doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] # [doc = "types for assets and fees."] # [doc = ""] # [doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] # [doc = "provide the `assets_transfer_type` to be used for `assets`:"] # [doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] # [doc = " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] # [doc = " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] # [doc = " the remote `reserve` is Asset Hub."] # [doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] # [doc = " mint/teleport assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] # [doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] # [doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] # [doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] # [doc = "specified through `fees_transfer_type`."] # [doc = ""] # [doc = "The caller needs to specify what should happen to the transferred assets once they reach"] # [doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] # [doc = "contains the instructions to execute on `dest` as a final step."] # [doc = " This is usually as simple as:"] # [doc = " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] # [doc = " but could be something more exotic like sending the `assets` even further."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] # [doc = " parachain across a bridge to another ecosystem destination."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] # [doc = "- `remote_fees_id`: One of the included `assets` to be used to pay fees."] # [doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] # [doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] # [doc = " transfer, which also determines what happens to the assets on the destination chain."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets_using_type_and_then { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , assets_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , remote_fees_id : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssetId > , fees_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , custom_xcm_on_dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , } + # [codec (index = 0)] send { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , } , # [codec (index = 1)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Execute an XCM message from a local, signed, origin."] # [doc = ""] # [doc = "An event is deposited indicating whether `msg` could be executed completely or only"] # [doc = "partially."] # [doc = ""] # [doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] # [doc = "the maximum amount of weight that the message could take to be executed, then no"] # [doc = "execution attempt will be made."] execute { message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , max_weight : runtime_types :: sp_weights :: weight_v2 :: Weight , } , # [codec (index = 4)] # [doc = "Extoll that a particular destination can be communicated with through a particular"] # [doc = "version of XCM."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The destination that is being described."] # [doc = "- `xcm_version`: The latest version of XCM that `location` supports."] force_xcm_version { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm :: v5 :: location :: Location > , version : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] # [doc = "version a destination can accept is unknown)."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] force_default_xcm_version { maybe_xcm_version : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 6)] # [doc = "Ask a location to notify us regarding their XCM version and any changes to it."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we should subscribe for XCM version notifications."] force_subscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 7)] # [doc = "Require that a particular destination should no longer notify us regarding any XCM"] # [doc = "version changes."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we are currently subscribed for XCM version"] # [doc = " notifications which we no longer desire."] force_unsubscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 8)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 9)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 10)] # [doc = "Set or unset the global suspension state of the XCM executor."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `suspended`: `true` to suspend, `false` to resume."] force_suspension { suspended : :: core :: primitive :: bool , } , # [codec (index = 11)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve, or through teleports."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] # [doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] # [doc = "operation will fail and the sent assets may be at risk."] # [doc = ""] # [doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] # [doc = "to `dest`, no limitations imposed on `fees`."] # [doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] # [doc = " forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] # [doc = " `beneficiary`."] # [doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] # [doc = " to withdraw the reserve assets from this chain's sovereign account and deposit them"] # [doc = " to `beneficiary`."] # [doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] # [doc = " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] # [doc = " and deposit reserve-based assets to `beneficiary`."] # [doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] # [doc = " assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] # [doc = " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] # [doc = " from relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 12)] # [doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] # [doc = ""] # [doc = "- `origin`: Anyone can call this extrinsic."] # [doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] # [doc = "was the latest when they were trapped."] # [doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] claim_assets { assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 13)] # [doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] # [doc = "types for assets and fees."] # [doc = ""] # [doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] # [doc = "provide the `assets_transfer_type` to be used for `assets`:"] # [doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] # [doc = " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] # [doc = " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] # [doc = " the remote `reserve` is Asset Hub."] # [doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] # [doc = " mint/teleport assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] # [doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] # [doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] # [doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] # [doc = "specified through `fees_transfer_type`."] # [doc = ""] # [doc = "The caller needs to specify what should happen to the transferred assets once they reach"] # [doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] # [doc = "contains the instructions to execute on `dest` as a final step."] # [doc = " This is usually as simple as:"] # [doc = " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] # [doc = " but could be something more exotic like sending the `assets` even further."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] # [doc = " parachain across a bridge to another ecosystem destination."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] # [doc = "- `remote_fees_id`: One of the included `assets` to be used to pay fees."] # [doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] # [doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] # [doc = " transfer, which also determines what happens to the assets on the destination chain."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets_using_type_and_then { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , assets_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , remote_fees_id : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssetId > , fees_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , custom_xcm_on_dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -62428,14 +64167,14 @@ pub mod api { #[codec(index = 0)] #[doc = "Execution of an XCM message was attempted."] Attempted { - outcome: runtime_types::staging_xcm::v4::traits::Outcome, + outcome: runtime_types::staging_xcm::v5::traits::Outcome, }, #[codec(index = 1)] #[doc = "A XCM message was sent."] Sent { - origin: runtime_types::staging_xcm::v4::location::Location, - destination: runtime_types::staging_xcm::v4::location::Location, - message: runtime_types::staging_xcm::v4::Xcm, + origin: runtime_types::staging_xcm::v5::location::Location, + destination: runtime_types::staging_xcm::v5::location::Location, + message: runtime_types::staging_xcm::v5::Xcm, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 2)] @@ -62443,7 +64182,7 @@ pub mod api { #[doc = "matching query was never registered, it may be because it is a duplicate response, or"] #[doc = "because the query timed out."] UnexpectedResponse { - origin: runtime_types::staging_xcm::v4::location::Location, + origin: runtime_types::staging_xcm::v5::location::Location, query_id: ::core::primitive::u64, }, #[codec(index = 3)] @@ -62451,7 +64190,7 @@ pub mod api { #[doc = "no registered notification call."] ResponseReady { query_id: ::core::primitive::u64, - response: runtime_types::staging_xcm::v4::Response, + response: runtime_types::staging_xcm::v5::Response, }, #[codec(index = 4)] #[doc = "Query response has been received and query is removed. The registered notification has"] @@ -62494,10 +64233,10 @@ pub mod api { #[doc = "not match that expected. The query remains registered for a later, valid, response to"] #[doc = "be received and acted upon."] InvalidResponder { - origin: runtime_types::staging_xcm::v4::location::Location, + origin: runtime_types::staging_xcm::v5::location::Location, query_id: ::core::primitive::u64, expected_location: ::core::option::Option< - runtime_types::staging_xcm::v4::location::Location, + runtime_types::staging_xcm::v5::location::Location, >, }, #[codec(index = 9)] @@ -62509,7 +64248,7 @@ pub mod api { #[doc = "valid response will be dropped. Manual governance intervention is probably going to be"] #[doc = "needed."] InvalidResponderVersion { - origin: runtime_types::staging_xcm::v4::location::Location, + origin: runtime_types::staging_xcm::v5::location::Location, query_id: ::core::primitive::u64, }, #[codec(index = 10)] @@ -62519,7 +64258,7 @@ pub mod api { #[doc = "Some assets have been placed in an asset trap."] AssetsTrapped { hash: ::subxt::ext::subxt_core::utils::H256, - origin: runtime_types::staging_xcm::v4::location::Location, + origin: runtime_types::staging_xcm::v5::location::Location, assets: runtime_types::xcm::VersionedAssets, }, #[codec(index = 12)] @@ -62527,25 +64266,25 @@ pub mod api { #[doc = ""] #[doc = "The cost of sending it (borne by the chain) is included."] VersionChangeNotified { - destination: runtime_types::staging_xcm::v4::location::Location, + destination: runtime_types::staging_xcm::v5::location::Location, result: ::core::primitive::u32, - cost: runtime_types::staging_xcm::v4::asset::Assets, + cost: runtime_types::staging_xcm::v5::asset::Assets, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 13)] #[doc = "The supported version of a location has been changed. This might be through an"] #[doc = "automatic notification or a manual intervention."] SupportedVersionChanged { - location: runtime_types::staging_xcm::v4::location::Location, + location: runtime_types::staging_xcm::v5::location::Location, version: ::core::primitive::u32, }, #[codec(index = 14)] #[doc = "A given location which had a version change subscription was dropped owing to an error"] #[doc = "sending the notification to it."] NotifyTargetSendFail { - location: runtime_types::staging_xcm::v4::location::Location, + location: runtime_types::staging_xcm::v5::location::Location, query_id: ::core::primitive::u64, - error: runtime_types::xcm::v3::traits::Error, + error: runtime_types::xcm::v5::traits::Error, }, #[codec(index = 15)] #[doc = "A given location which had a version change subscription was dropped owing to an error"] @@ -62563,7 +64302,7 @@ pub mod api { #[doc = "valid response will be dropped. Manual governance intervention is probably going to be"] #[doc = "needed."] InvalidQuerierVersion { - origin: runtime_types::staging_xcm::v4::location::Location, + origin: runtime_types::staging_xcm::v5::location::Location, query_id: ::core::primitive::u64, }, #[codec(index = 17)] @@ -62571,47 +64310,47 @@ pub mod api { #[doc = "not match the expected. The query remains registered for a later, valid, response to"] #[doc = "be received and acted upon."] InvalidQuerier { - origin: runtime_types::staging_xcm::v4::location::Location, + origin: runtime_types::staging_xcm::v5::location::Location, query_id: ::core::primitive::u64, - expected_querier: runtime_types::staging_xcm::v4::location::Location, + expected_querier: runtime_types::staging_xcm::v5::location::Location, maybe_actual_querier: ::core::option::Option< - runtime_types::staging_xcm::v4::location::Location, + runtime_types::staging_xcm::v5::location::Location, >, }, #[codec(index = 18)] #[doc = "A remote has requested XCM version change notification from us and we have honored it."] #[doc = "A version information message is sent to them and its cost is included."] VersionNotifyStarted { - destination: runtime_types::staging_xcm::v4::location::Location, - cost: runtime_types::staging_xcm::v4::asset::Assets, + destination: runtime_types::staging_xcm::v5::location::Location, + cost: runtime_types::staging_xcm::v5::asset::Assets, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 19)] #[doc = "We have requested that a remote chain send us XCM version change notifications."] VersionNotifyRequested { - destination: runtime_types::staging_xcm::v4::location::Location, - cost: runtime_types::staging_xcm::v4::asset::Assets, + destination: runtime_types::staging_xcm::v5::location::Location, + cost: runtime_types::staging_xcm::v5::asset::Assets, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 20)] #[doc = "We have requested that a remote chain stops sending us XCM version change"] #[doc = "notifications."] VersionNotifyUnrequested { - destination: runtime_types::staging_xcm::v4::location::Location, - cost: runtime_types::staging_xcm::v4::asset::Assets, + destination: runtime_types::staging_xcm::v5::location::Location, + cost: runtime_types::staging_xcm::v5::asset::Assets, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 21)] #[doc = "Fees were paid from a location for an operation (often for using `SendXcm`)."] FeesPaid { - paying: runtime_types::staging_xcm::v4::location::Location, - fees: runtime_types::staging_xcm::v4::asset::Assets, + paying: runtime_types::staging_xcm::v5::location::Location, + fees: runtime_types::staging_xcm::v5::asset::Assets, }, #[codec(index = 22)] #[doc = "Some assets have been claimed from an asset trap"] AssetsClaimed { hash: ::subxt::ext::subxt_core::utils::H256, - origin: runtime_types::staging_xcm::v4::location::Location, + origin: runtime_types::staging_xcm::v5::location::Location, assets: runtime_types::xcm::VersionedAssets, }, #[codec(index = 23)] @@ -62635,9 +64374,9 @@ pub mod api { )] pub enum Origin { #[codec(index = 0)] - Xcm(runtime_types::staging_xcm::v4::location::Location), + Xcm(runtime_types::staging_xcm::v5::location::Location), #[codec(index = 1)] - Response(runtime_types::staging_xcm::v4::location::Location), + Response(runtime_types::staging_xcm::v5::location::Location), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -65123,6 +66862,11 @@ pub mod api { location: runtime_types::staging_xcm::v4::location::Location, asset_id: runtime_types::staging_xcm::v4::asset::AssetId, }, + #[codec(index = 5)] + V5 { + location: runtime_types::staging_xcm::v5::location::Location, + asset_id: runtime_types::staging_xcm::v5::asset::AssetId, + }, } } pub mod paras_registrar { @@ -65526,21 +67270,9 @@ pub mod api { #[codec(index = 0)] AssignmentsEmpty, #[codec(index = 1)] - #[doc = "Assignments together exceeded 57600."] - OverScheduled, - #[codec(index = 2)] - #[doc = "Assignments together less than 57600"] - UnderScheduled, - #[codec(index = 3)] #[doc = "assign_core is only allowed to append new assignments at the end of already existing"] - #[doc = "ones."] + #[doc = "ones or update the last entry."] DisallowedInsert, - #[codec(index = 4)] - #[doc = "Tried to insert a schedule for the same core and block number as an existing schedule"] - DuplicateInsert, - #[codec(index = 5)] - #[doc = "Tried to add an unsorted set of assignments"] - AssignmentsNotSorted, } } #[derive( @@ -67701,6 +69433,8 @@ pub mod api { Crowdloan(runtime_types::polkadot_runtime_common::crowdloan::pallet::Call), #[codec(index = 74)] Coretime(runtime_types::polkadot_runtime_parachains::coretime::pallet::Call), + #[codec(index = 98)] + MultiBlockMigrations(runtime_types::pallet_migrations::pallet::Call), #[codec(index = 99)] XcmPallet(runtime_types::pallet_xcm::pallet::Call), #[codec(index = 240)] @@ -67830,6 +69564,8 @@ pub mod api { Crowdloan(runtime_types::polkadot_runtime_common::crowdloan::pallet::Error), #[codec(index = 74)] Coretime(runtime_types::polkadot_runtime_parachains::coretime::pallet::Error), + #[codec(index = 98)] + MultiBlockMigrations(runtime_types::pallet_migrations::pallet::Error), #[codec(index = 99)] XcmPallet(runtime_types::pallet_xcm::pallet::Error), #[codec(index = 240)] @@ -67941,6 +69677,8 @@ pub mod api { Crowdloan(runtime_types::polkadot_runtime_common::crowdloan::pallet::Event), #[codec(index = 74)] Coretime(runtime_types::polkadot_runtime_parachains::coretime::pallet::Event), + #[codec(index = 98)] + MultiBlockMigrations(runtime_types::pallet_migrations::pallet::Event), #[codec(index = 99)] XcmPallet(runtime_types::pallet_xcm::pallet::Event), #[codec(index = 248)] @@ -70443,39 +72181,6 @@ pub mod api { pub interior: runtime_types::staging_xcm::v4::junctions::Junctions, } } - pub mod traits { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum Outcome { - #[codec(index = 0)] - Complete { - used: runtime_types::sp_weights::weight_v2::Weight, - }, - #[codec(index = 1)] - Incomplete { - used: runtime_types::sp_weights::weight_v2::Weight, - error: runtime_types::xcm::v3::traits::Error, - }, - #[codec(index = 2)] - Error { - error: runtime_types::xcm::v3::traits::Error, - }, - } - } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -70812,6 +72517,763 @@ pub mod api { >, ); } + pub mod v5 { + use super::runtime_types; + pub mod asset { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Asset { + pub id: runtime_types::staging_xcm::v5::asset::AssetId, + pub fun: runtime_types::staging_xcm::v5::asset::Fungibility, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum AssetFilter { + #[codec(index = 0)] + Definite(runtime_types::staging_xcm::v5::asset::Assets), + #[codec(index = 1)] + Wild(runtime_types::staging_xcm::v5::asset::WildAsset), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct AssetId(pub runtime_types::staging_xcm::v5::location::Location); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum AssetInstance { + #[codec(index = 0)] + Undefined, + #[codec(index = 1)] + Index(#[codec(compact)] ::core::primitive::u128), + #[codec(index = 2)] + Array4([::core::primitive::u8; 4usize]), + #[codec(index = 3)] + Array8([::core::primitive::u8; 8usize]), + #[codec(index = 4)] + Array16([::core::primitive::u8; 16usize]), + #[codec(index = 5)] + Array32([::core::primitive::u8; 32usize]), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum AssetTransferFilter { + #[codec(index = 0)] + Teleport(runtime_types::staging_xcm::v5::asset::AssetFilter), + #[codec(index = 1)] + ReserveDeposit(runtime_types::staging_xcm::v5::asset::AssetFilter), + #[codec(index = 2)] + ReserveWithdraw(runtime_types::staging_xcm::v5::asset::AssetFilter), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Assets( + pub ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::staging_xcm::v5::asset::Asset, + >, + ); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Fungibility { + #[codec(index = 0)] + Fungible(#[codec(compact)] ::core::primitive::u128), + #[codec(index = 1)] + NonFungible(runtime_types::staging_xcm::v5::asset::AssetInstance), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum WildAsset { + #[codec(index = 0)] + All, + #[codec(index = 1)] + AllOf { + id: runtime_types::staging_xcm::v5::asset::AssetId, + fun: runtime_types::staging_xcm::v5::asset::WildFungibility, + }, + #[codec(index = 2)] + AllCounted(#[codec(compact)] ::core::primitive::u32), + #[codec(index = 3)] + AllOfCounted { + id: runtime_types::staging_xcm::v5::asset::AssetId, + fun: runtime_types::staging_xcm::v5::asset::WildFungibility, + #[codec(compact)] + count: ::core::primitive::u32, + }, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum WildFungibility { + #[codec(index = 0)] + Fungible, + #[codec(index = 1)] + NonFungible, + } + } + pub mod junction { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Junction { + #[codec(index = 0)] + Parachain(#[codec(compact)] ::core::primitive::u32), + #[codec(index = 1)] + AccountId32 { + network: ::core::option::Option< + runtime_types::staging_xcm::v5::junction::NetworkId, + >, + id: [::core::primitive::u8; 32usize], + }, + #[codec(index = 2)] + AccountIndex64 { + network: ::core::option::Option< + runtime_types::staging_xcm::v5::junction::NetworkId, + >, + #[codec(compact)] + index: ::core::primitive::u64, + }, + #[codec(index = 3)] + AccountKey20 { + network: ::core::option::Option< + runtime_types::staging_xcm::v5::junction::NetworkId, + >, + key: [::core::primitive::u8; 20usize], + }, + #[codec(index = 4)] + PalletInstance(::core::primitive::u8), + #[codec(index = 5)] + GeneralIndex(#[codec(compact)] ::core::primitive::u128), + #[codec(index = 6)] + GeneralKey { + length: ::core::primitive::u8, + data: [::core::primitive::u8; 32usize], + }, + #[codec(index = 7)] + OnlyChild, + #[codec(index = 8)] + Plurality { + id: runtime_types::xcm::v3::junction::BodyId, + part: runtime_types::xcm::v3::junction::BodyPart, + }, + #[codec(index = 9)] + GlobalConsensus(runtime_types::staging_xcm::v5::junction::NetworkId), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum NetworkId { + #[codec(index = 0)] + ByGenesis([::core::primitive::u8; 32usize]), + #[codec(index = 1)] + ByFork { + block_number: ::core::primitive::u64, + block_hash: [::core::primitive::u8; 32usize], + }, + #[codec(index = 2)] + Polkadot, + #[codec(index = 3)] + Kusama, + #[codec(index = 4)] + Ethereum { + #[codec(compact)] + chain_id: ::core::primitive::u64, + }, + #[codec(index = 5)] + BitcoinCore, + #[codec(index = 6)] + BitcoinCash, + #[codec(index = 7)] + PolkadotBulletin, + } + } + pub mod junctions { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Junctions { + #[codec(index = 0)] + Here, + #[codec(index = 1)] + X1([runtime_types::staging_xcm::v5::junction::Junction; 1usize]), + #[codec(index = 2)] + X2([runtime_types::staging_xcm::v5::junction::Junction; 2usize]), + #[codec(index = 3)] + X3([runtime_types::staging_xcm::v5::junction::Junction; 3usize]), + #[codec(index = 4)] + X4([runtime_types::staging_xcm::v5::junction::Junction; 4usize]), + #[codec(index = 5)] + X5([runtime_types::staging_xcm::v5::junction::Junction; 5usize]), + #[codec(index = 6)] + X6([runtime_types::staging_xcm::v5::junction::Junction; 6usize]), + #[codec(index = 7)] + X7([runtime_types::staging_xcm::v5::junction::Junction; 7usize]), + #[codec(index = 8)] + X8([runtime_types::staging_xcm::v5::junction::Junction; 8usize]), + } + } + pub mod location { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Location { + pub parents: ::core::primitive::u8, + pub interior: runtime_types::staging_xcm::v5::junctions::Junctions, + } + } + pub mod traits { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Outcome { + #[codec(index = 0)] + Complete { + used: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 1)] + Incomplete { + used: runtime_types::sp_weights::weight_v2::Weight, + error: runtime_types::xcm::v5::traits::Error, + }, + #[codec(index = 2)] + Error { + error: runtime_types::xcm::v5::traits::Error, + }, + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Instruction { + #[codec(index = 0)] + WithdrawAsset(runtime_types::staging_xcm::v5::asset::Assets), + #[codec(index = 1)] + ReserveAssetDeposited(runtime_types::staging_xcm::v5::asset::Assets), + #[codec(index = 2)] + ReceiveTeleportedAsset(runtime_types::staging_xcm::v5::asset::Assets), + #[codec(index = 3)] + QueryResponse { + #[codec(compact)] + query_id: ::core::primitive::u64, + response: runtime_types::staging_xcm::v5::Response, + max_weight: runtime_types::sp_weights::weight_v2::Weight, + querier: ::core::option::Option< + runtime_types::staging_xcm::v5::location::Location, + >, + }, + #[codec(index = 4)] + TransferAsset { + assets: runtime_types::staging_xcm::v5::asset::Assets, + beneficiary: runtime_types::staging_xcm::v5::location::Location, + }, + #[codec(index = 5)] + TransferReserveAsset { + assets: runtime_types::staging_xcm::v5::asset::Assets, + dest: runtime_types::staging_xcm::v5::location::Location, + xcm: runtime_types::staging_xcm::v5::Xcm, + }, + #[codec(index = 6)] + Transact { + origin_kind: runtime_types::xcm::v3::OriginKind, + call: runtime_types::xcm::double_encoded::DoubleEncoded, + }, + #[codec(index = 7)] + HrmpNewChannelOpenRequest { + #[codec(compact)] + sender: ::core::primitive::u32, + #[codec(compact)] + max_message_size: ::core::primitive::u32, + #[codec(compact)] + max_capacity: ::core::primitive::u32, + }, + #[codec(index = 8)] + HrmpChannelAccepted { + #[codec(compact)] + recipient: ::core::primitive::u32, + }, + #[codec(index = 9)] + HrmpChannelClosing { + #[codec(compact)] + initiator: ::core::primitive::u32, + #[codec(compact)] + sender: ::core::primitive::u32, + #[codec(compact)] + recipient: ::core::primitive::u32, + }, + #[codec(index = 10)] + ClearOrigin, + #[codec(index = 11)] + DescendOrigin(runtime_types::staging_xcm::v5::junctions::Junctions), + #[codec(index = 12)] + ReportError(runtime_types::staging_xcm::v5::QueryResponseInfo), + #[codec(index = 13)] + DepositAsset { + assets: runtime_types::staging_xcm::v5::asset::AssetFilter, + beneficiary: runtime_types::staging_xcm::v5::location::Location, + }, + #[codec(index = 14)] + DepositReserveAsset { + assets: runtime_types::staging_xcm::v5::asset::AssetFilter, + dest: runtime_types::staging_xcm::v5::location::Location, + xcm: runtime_types::staging_xcm::v5::Xcm, + }, + #[codec(index = 15)] + ExchangeAsset { + give: runtime_types::staging_xcm::v5::asset::AssetFilter, + want: runtime_types::staging_xcm::v5::asset::Assets, + maximal: ::core::primitive::bool, + }, + #[codec(index = 16)] + InitiateReserveWithdraw { + assets: runtime_types::staging_xcm::v5::asset::AssetFilter, + reserve: runtime_types::staging_xcm::v5::location::Location, + xcm: runtime_types::staging_xcm::v5::Xcm, + }, + #[codec(index = 17)] + InitiateTeleport { + assets: runtime_types::staging_xcm::v5::asset::AssetFilter, + dest: runtime_types::staging_xcm::v5::location::Location, + xcm: runtime_types::staging_xcm::v5::Xcm, + }, + #[codec(index = 18)] + ReportHolding { + response_info: runtime_types::staging_xcm::v5::QueryResponseInfo, + assets: runtime_types::staging_xcm::v5::asset::AssetFilter, + }, + #[codec(index = 19)] + BuyExecution { + fees: runtime_types::staging_xcm::v5::asset::Asset, + weight_limit: runtime_types::xcm::v3::WeightLimit, + }, + #[codec(index = 20)] + RefundSurplus, + #[codec(index = 21)] + SetErrorHandler(runtime_types::staging_xcm::v5::Xcm), + #[codec(index = 22)] + SetAppendix(runtime_types::staging_xcm::v5::Xcm), + #[codec(index = 23)] + ClearError, + #[codec(index = 24)] + SetAssetClaimer { + location: runtime_types::staging_xcm::v5::location::Location, + }, + #[codec(index = 25)] + ClaimAsset { + assets: runtime_types::staging_xcm::v5::asset::Assets, + ticket: runtime_types::staging_xcm::v5::location::Location, + }, + #[codec(index = 26)] + Trap(#[codec(compact)] ::core::primitive::u64), + #[codec(index = 27)] + SubscribeVersion { + #[codec(compact)] + query_id: ::core::primitive::u64, + max_response_weight: runtime_types::sp_weights::weight_v2::Weight, + }, + #[codec(index = 28)] + UnsubscribeVersion, + #[codec(index = 29)] + BurnAsset(runtime_types::staging_xcm::v5::asset::Assets), + #[codec(index = 30)] + ExpectAsset(runtime_types::staging_xcm::v5::asset::Assets), + #[codec(index = 31)] + ExpectOrigin( + ::core::option::Option, + ), + #[codec(index = 32)] + ExpectError( + ::core::option::Option<( + ::core::primitive::u32, + runtime_types::xcm::v5::traits::Error, + )>, + ), + #[codec(index = 33)] + ExpectTransactStatus(runtime_types::xcm::v3::MaybeErrorCode), + #[codec(index = 34)] + QueryPallet { + module_name: + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + response_info: runtime_types::staging_xcm::v5::QueryResponseInfo, + }, + #[codec(index = 35)] + ExpectPallet { + #[codec(compact)] + index: ::core::primitive::u32, + name: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + module_name: + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + #[codec(compact)] + crate_major: ::core::primitive::u32, + #[codec(compact)] + min_crate_minor: ::core::primitive::u32, + }, + #[codec(index = 36)] + ReportTransactStatus(runtime_types::staging_xcm::v5::QueryResponseInfo), + #[codec(index = 37)] + ClearTransactStatus, + #[codec(index = 38)] + UniversalOrigin(runtime_types::staging_xcm::v5::junction::Junction), + #[codec(index = 39)] + ExportMessage { + network: runtime_types::staging_xcm::v5::junction::NetworkId, + destination: runtime_types::staging_xcm::v5::junctions::Junctions, + xcm: runtime_types::staging_xcm::v5::Xcm, + }, + #[codec(index = 40)] + LockAsset { + asset: runtime_types::staging_xcm::v5::asset::Asset, + unlocker: runtime_types::staging_xcm::v5::location::Location, + }, + #[codec(index = 41)] + UnlockAsset { + asset: runtime_types::staging_xcm::v5::asset::Asset, + target: runtime_types::staging_xcm::v5::location::Location, + }, + #[codec(index = 42)] + NoteUnlockable { + asset: runtime_types::staging_xcm::v5::asset::Asset, + owner: runtime_types::staging_xcm::v5::location::Location, + }, + #[codec(index = 43)] + RequestUnlock { + asset: runtime_types::staging_xcm::v5::asset::Asset, + locker: runtime_types::staging_xcm::v5::location::Location, + }, + #[codec(index = 44)] + SetFeesMode { + jit_withdraw: ::core::primitive::bool, + }, + #[codec(index = 45)] + SetTopic([::core::primitive::u8; 32usize]), + #[codec(index = 46)] + ClearTopic, + #[codec(index = 47)] + AliasOrigin(runtime_types::staging_xcm::v5::location::Location), + #[codec(index = 48)] + UnpaidExecution { + weight_limit: runtime_types::xcm::v3::WeightLimit, + check_origin: ::core::option::Option< + runtime_types::staging_xcm::v5::location::Location, + >, + }, + #[codec(index = 49)] + PayFees { + asset: runtime_types::staging_xcm::v5::asset::Asset, + }, + #[codec(index = 50)] + InitiateTransfer { + destination: runtime_types::staging_xcm::v5::location::Location, + remote_fees: ::core::option::Option< + runtime_types::staging_xcm::v5::asset::AssetTransferFilter, + >, + preserve_origin: ::core::primitive::bool, + assets: ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::staging_xcm::v5::asset::AssetTransferFilter, + >, + remote_xcm: runtime_types::staging_xcm::v5::Xcm, + }, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct PalletInfo { + #[codec(compact)] + pub index: ::core::primitive::u32, + pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >, + #[codec(compact)] + pub major: ::core::primitive::u32, + #[codec(compact)] + pub minor: ::core::primitive::u32, + #[codec(compact)] + pub patch: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueryResponseInfo { + pub destination: runtime_types::staging_xcm::v5::location::Location, + #[codec(compact)] + pub query_id: ::core::primitive::u64, + pub max_weight: runtime_types::sp_weights::weight_v2::Weight, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Response { + #[codec(index = 0)] + Null, + #[codec(index = 1)] + Assets(runtime_types::staging_xcm::v5::asset::Assets), + #[codec(index = 2)] + ExecutionResult( + ::core::option::Option<( + ::core::primitive::u32, + runtime_types::xcm::v5::traits::Error, + )>, + ), + #[codec(index = 3)] + Version(::core::primitive::u32), + #[codec(index = 4)] + PalletsInfo( + runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::staging_xcm::v5::PalletInfo, + >, + ), + #[codec(index = 5)] + DispatchResult(runtime_types::xcm::v3::MaybeErrorCode), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Xcm( + pub ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::staging_xcm::v5::Instruction, + >, + ); + } } pub mod staging_xcm_executor { use super::runtime_types; @@ -70870,781 +73332,6 @@ pub mod api { pub encoded: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, } } - pub mod v2 { - use super::runtime_types; - pub mod junction { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum Junction { - #[codec(index = 0)] - Parachain(#[codec(compact)] ::core::primitive::u32), - #[codec(index = 1)] - AccountId32 { - network: runtime_types::xcm::v2::NetworkId, - id: [::core::primitive::u8; 32usize], - }, - #[codec(index = 2)] - AccountIndex64 { - network: runtime_types::xcm::v2::NetworkId, - #[codec(compact)] - index: ::core::primitive::u64, - }, - #[codec(index = 3)] - AccountKey20 { - network: runtime_types::xcm::v2::NetworkId, - key: [::core::primitive::u8; 20usize], - }, - #[codec(index = 4)] - PalletInstance(::core::primitive::u8), - #[codec(index = 5)] - GeneralIndex(#[codec(compact)] ::core::primitive::u128), - #[codec(index = 6)] - GeneralKey( - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< - ::core::primitive::u8, - >, - ), - #[codec(index = 7)] - OnlyChild, - #[codec(index = 8)] - Plurality { - id: runtime_types::xcm::v2::BodyId, - part: runtime_types::xcm::v2::BodyPart, - }, - } - } - pub mod multiasset { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum AssetId { - #[codec(index = 0)] - Concrete(runtime_types::xcm::v2::multilocation::MultiLocation), - #[codec(index = 1)] - Abstract(::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>), - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum AssetInstance { - #[codec(index = 0)] - Undefined, - #[codec(index = 1)] - Index(#[codec(compact)] ::core::primitive::u128), - #[codec(index = 2)] - Array4([::core::primitive::u8; 4usize]), - #[codec(index = 3)] - Array8([::core::primitive::u8; 8usize]), - #[codec(index = 4)] - Array16([::core::primitive::u8; 16usize]), - #[codec(index = 5)] - Array32([::core::primitive::u8; 32usize]), - #[codec(index = 6)] - Blob(::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>), - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum Fungibility { - #[codec(index = 0)] - Fungible(#[codec(compact)] ::core::primitive::u128), - #[codec(index = 1)] - NonFungible(runtime_types::xcm::v2::multiasset::AssetInstance), - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct MultiAsset { - pub id: runtime_types::xcm::v2::multiasset::AssetId, - pub fun: runtime_types::xcm::v2::multiasset::Fungibility, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum MultiAssetFilter { - #[codec(index = 0)] - Definite(runtime_types::xcm::v2::multiasset::MultiAssets), - #[codec(index = 1)] - Wild(runtime_types::xcm::v2::multiasset::WildMultiAsset), - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct MultiAssets( - pub ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::xcm::v2::multiasset::MultiAsset, - >, - ); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum WildFungibility { - #[codec(index = 0)] - Fungible, - #[codec(index = 1)] - NonFungible, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum WildMultiAsset { - #[codec(index = 0)] - All, - #[codec(index = 1)] - AllOf { - id: runtime_types::xcm::v2::multiasset::AssetId, - fun: runtime_types::xcm::v2::multiasset::WildFungibility, - }, - } - } - pub mod multilocation { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum Junctions { - #[codec(index = 0)] - Here, - #[codec(index = 1)] - X1(runtime_types::xcm::v2::junction::Junction), - #[codec(index = 2)] - X2( - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - ), - #[codec(index = 3)] - X3( - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - ), - #[codec(index = 4)] - X4( - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - ), - #[codec(index = 5)] - X5( - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - ), - #[codec(index = 6)] - X6( - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - ), - #[codec(index = 7)] - X7( - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - ), - #[codec(index = 8)] - X8( - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - runtime_types::xcm::v2::junction::Junction, - ), - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct MultiLocation { - pub parents: ::core::primitive::u8, - pub interior: runtime_types::xcm::v2::multilocation::Junctions, - } - } - pub mod traits { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum Error { - #[codec(index = 0)] - Overflow, - #[codec(index = 1)] - Unimplemented, - #[codec(index = 2)] - UntrustedReserveLocation, - #[codec(index = 3)] - UntrustedTeleportLocation, - #[codec(index = 4)] - MultiLocationFull, - #[codec(index = 5)] - MultiLocationNotInvertible, - #[codec(index = 6)] - BadOrigin, - #[codec(index = 7)] - InvalidLocation, - #[codec(index = 8)] - AssetNotFound, - #[codec(index = 9)] - FailedToTransactAsset, - #[codec(index = 10)] - NotWithdrawable, - #[codec(index = 11)] - LocationCannotHold, - #[codec(index = 12)] - ExceedsMaxMessageSize, - #[codec(index = 13)] - DestinationUnsupported, - #[codec(index = 14)] - Transport, - #[codec(index = 15)] - Unroutable, - #[codec(index = 16)] - UnknownClaim, - #[codec(index = 17)] - FailedToDecode, - #[codec(index = 18)] - MaxWeightInvalid, - #[codec(index = 19)] - NotHoldingFees, - #[codec(index = 20)] - TooExpensive, - #[codec(index = 21)] - Trap(::core::primitive::u64), - #[codec(index = 22)] - UnhandledXcmVersion, - #[codec(index = 23)] - WeightLimitReached(::core::primitive::u64), - #[codec(index = 24)] - Barrier, - #[codec(index = 25)] - WeightNotComputable, - } - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum BodyId { - #[codec(index = 0)] - Unit, - #[codec(index = 1)] - Named( - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< - ::core::primitive::u8, - >, - ), - #[codec(index = 2)] - Index(#[codec(compact)] ::core::primitive::u32), - #[codec(index = 3)] - Executive, - #[codec(index = 4)] - Technical, - #[codec(index = 5)] - Legislative, - #[codec(index = 6)] - Judicial, - #[codec(index = 7)] - Defense, - #[codec(index = 8)] - Administration, - #[codec(index = 9)] - Treasury, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum BodyPart { - #[codec(index = 0)] - Voice, - #[codec(index = 1)] - Members { - #[codec(compact)] - count: ::core::primitive::u32, - }, - #[codec(index = 2)] - Fraction { - #[codec(compact)] - nom: ::core::primitive::u32, - #[codec(compact)] - denom: ::core::primitive::u32, - }, - #[codec(index = 3)] - AtLeastProportion { - #[codec(compact)] - nom: ::core::primitive::u32, - #[codec(compact)] - denom: ::core::primitive::u32, - }, - #[codec(index = 4)] - MoreThanProportion { - #[codec(compact)] - nom: ::core::primitive::u32, - #[codec(compact)] - denom: ::core::primitive::u32, - }, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum Instruction { - #[codec(index = 0)] - WithdrawAsset(runtime_types::xcm::v2::multiasset::MultiAssets), - #[codec(index = 1)] - ReserveAssetDeposited(runtime_types::xcm::v2::multiasset::MultiAssets), - #[codec(index = 2)] - ReceiveTeleportedAsset(runtime_types::xcm::v2::multiasset::MultiAssets), - #[codec(index = 3)] - QueryResponse { - #[codec(compact)] - query_id: ::core::primitive::u64, - response: runtime_types::xcm::v2::Response, - #[codec(compact)] - max_weight: ::core::primitive::u64, - }, - #[codec(index = 4)] - TransferAsset { - assets: runtime_types::xcm::v2::multiasset::MultiAssets, - beneficiary: runtime_types::xcm::v2::multilocation::MultiLocation, - }, - #[codec(index = 5)] - TransferReserveAsset { - assets: runtime_types::xcm::v2::multiasset::MultiAssets, - dest: runtime_types::xcm::v2::multilocation::MultiLocation, - xcm: runtime_types::xcm::v2::Xcm, - }, - #[codec(index = 6)] - Transact { - origin_type: runtime_types::xcm::v2::OriginKind, - #[codec(compact)] - require_weight_at_most: ::core::primitive::u64, - call: runtime_types::xcm::double_encoded::DoubleEncoded, - }, - #[codec(index = 7)] - HrmpNewChannelOpenRequest { - #[codec(compact)] - sender: ::core::primitive::u32, - #[codec(compact)] - max_message_size: ::core::primitive::u32, - #[codec(compact)] - max_capacity: ::core::primitive::u32, - }, - #[codec(index = 8)] - HrmpChannelAccepted { - #[codec(compact)] - recipient: ::core::primitive::u32, - }, - #[codec(index = 9)] - HrmpChannelClosing { - #[codec(compact)] - initiator: ::core::primitive::u32, - #[codec(compact)] - sender: ::core::primitive::u32, - #[codec(compact)] - recipient: ::core::primitive::u32, - }, - #[codec(index = 10)] - ClearOrigin, - #[codec(index = 11)] - DescendOrigin(runtime_types::xcm::v2::multilocation::Junctions), - #[codec(index = 12)] - ReportError { - #[codec(compact)] - query_id: ::core::primitive::u64, - dest: runtime_types::xcm::v2::multilocation::MultiLocation, - #[codec(compact)] - max_response_weight: ::core::primitive::u64, - }, - #[codec(index = 13)] - DepositAsset { - assets: runtime_types::xcm::v2::multiasset::MultiAssetFilter, - #[codec(compact)] - max_assets: ::core::primitive::u32, - beneficiary: runtime_types::xcm::v2::multilocation::MultiLocation, - }, - #[codec(index = 14)] - DepositReserveAsset { - assets: runtime_types::xcm::v2::multiasset::MultiAssetFilter, - #[codec(compact)] - max_assets: ::core::primitive::u32, - dest: runtime_types::xcm::v2::multilocation::MultiLocation, - xcm: runtime_types::xcm::v2::Xcm, - }, - #[codec(index = 15)] - ExchangeAsset { - give: runtime_types::xcm::v2::multiasset::MultiAssetFilter, - receive: runtime_types::xcm::v2::multiasset::MultiAssets, - }, - #[codec(index = 16)] - InitiateReserveWithdraw { - assets: runtime_types::xcm::v2::multiasset::MultiAssetFilter, - reserve: runtime_types::xcm::v2::multilocation::MultiLocation, - xcm: runtime_types::xcm::v2::Xcm, - }, - #[codec(index = 17)] - InitiateTeleport { - assets: runtime_types::xcm::v2::multiasset::MultiAssetFilter, - dest: runtime_types::xcm::v2::multilocation::MultiLocation, - xcm: runtime_types::xcm::v2::Xcm, - }, - #[codec(index = 18)] - QueryHolding { - #[codec(compact)] - query_id: ::core::primitive::u64, - dest: runtime_types::xcm::v2::multilocation::MultiLocation, - assets: runtime_types::xcm::v2::multiasset::MultiAssetFilter, - #[codec(compact)] - max_response_weight: ::core::primitive::u64, - }, - #[codec(index = 19)] - BuyExecution { - fees: runtime_types::xcm::v2::multiasset::MultiAsset, - weight_limit: runtime_types::xcm::v2::WeightLimit, - }, - #[codec(index = 20)] - RefundSurplus, - #[codec(index = 21)] - SetErrorHandler(runtime_types::xcm::v2::Xcm), - #[codec(index = 22)] - SetAppendix(runtime_types::xcm::v2::Xcm), - #[codec(index = 23)] - ClearError, - #[codec(index = 24)] - ClaimAsset { - assets: runtime_types::xcm::v2::multiasset::MultiAssets, - ticket: runtime_types::xcm::v2::multilocation::MultiLocation, - }, - #[codec(index = 25)] - Trap(#[codec(compact)] ::core::primitive::u64), - #[codec(index = 26)] - SubscribeVersion { - #[codec(compact)] - query_id: ::core::primitive::u64, - #[codec(compact)] - max_response_weight: ::core::primitive::u64, - }, - #[codec(index = 27)] - UnsubscribeVersion, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum NetworkId { - #[codec(index = 0)] - Any, - #[codec(index = 1)] - Named( - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< - ::core::primitive::u8, - >, - ), - #[codec(index = 2)] - Polkadot, - #[codec(index = 3)] - Kusama, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum OriginKind { - #[codec(index = 0)] - Native, - #[codec(index = 1)] - SovereignAccount, - #[codec(index = 2)] - Superuser, - #[codec(index = 3)] - Xcm, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum Response { - #[codec(index = 0)] - Null, - #[codec(index = 1)] - Assets(runtime_types::xcm::v2::multiasset::MultiAssets), - #[codec(index = 2)] - ExecutionResult( - ::core::option::Option<( - ::core::primitive::u32, - runtime_types::xcm::v2::traits::Error, - )>, - ), - #[codec(index = 3)] - Version(::core::primitive::u32), - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum WeightLimit { - #[codec(index = 0)] - Unlimited, - #[codec(index = 1)] - Limited(#[codec(compact)] ::core::primitive::u64), - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Xcm( - pub ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::xcm::v2::Instruction, - >, - ); - } pub mod v3 { use super::runtime_types; pub mod junction { @@ -72616,6 +74303,130 @@ pub mod api { >, ); } + pub mod v5 { + use super::runtime_types; + pub mod traits { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Error { + #[codec(index = 0)] + Overflow, + #[codec(index = 1)] + Unimplemented, + #[codec(index = 2)] + UntrustedReserveLocation, + #[codec(index = 3)] + UntrustedTeleportLocation, + #[codec(index = 4)] + LocationFull, + #[codec(index = 5)] + LocationNotInvertible, + #[codec(index = 6)] + BadOrigin, + #[codec(index = 7)] + InvalidLocation, + #[codec(index = 8)] + AssetNotFound, + #[codec(index = 9)] + FailedToTransactAsset, + #[codec(index = 10)] + NotWithdrawable, + #[codec(index = 11)] + LocationCannotHold, + #[codec(index = 12)] + ExceedsMaxMessageSize, + #[codec(index = 13)] + DestinationUnsupported, + #[codec(index = 14)] + Transport, + #[codec(index = 15)] + Unroutable, + #[codec(index = 16)] + UnknownClaim, + #[codec(index = 17)] + FailedToDecode, + #[codec(index = 18)] + MaxWeightInvalid, + #[codec(index = 19)] + NotHoldingFees, + #[codec(index = 20)] + TooExpensive, + #[codec(index = 21)] + Trap(::core::primitive::u64), + #[codec(index = 22)] + ExpectationFalse, + #[codec(index = 23)] + PalletNotFound, + #[codec(index = 24)] + NameMismatch, + #[codec(index = 25)] + VersionIncompatible, + #[codec(index = 26)] + HoldingWouldOverflow, + #[codec(index = 27)] + ExportError, + #[codec(index = 28)] + ReanchorFailed, + #[codec(index = 29)] + NoDeal, + #[codec(index = 30)] + FeesNotMet, + #[codec(index = 31)] + LockError, + #[codec(index = 32)] + NoPermission, + #[codec(index = 33)] + Unanchored, + #[codec(index = 34)] + NotDepositable, + #[codec(index = 35)] + TooManyAssets, + #[codec(index = 36)] + UnhandledXcmVersion, + #[codec(index = 37)] + WeightLimitReached(runtime_types::sp_weights::weight_v2::Weight), + #[codec(index = 38)] + Barrier, + #[codec(index = 39)] + WeightNotComputable, + #[codec(index = 40)] + ExceedsStackLimit, + } + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum VersionedAsset { + #[codec(index = 3)] + V3(runtime_types::xcm::v3::multiasset::MultiAsset), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::asset::Asset), + #[codec(index = 5)] + V5(runtime_types::staging_xcm::v5::asset::Asset), + } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -72632,6 +74443,8 @@ pub mod api { V3(runtime_types::xcm::v3::multiasset::AssetId), #[codec(index = 4)] V4(runtime_types::staging_xcm::v4::asset::AssetId), + #[codec(index = 5)] + V5(runtime_types::staging_xcm::v5::asset::AssetId), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -72645,12 +74458,12 @@ pub mod api { #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum VersionedAssets { - #[codec(index = 1)] - V2(runtime_types::xcm::v2::multiasset::MultiAssets), #[codec(index = 3)] V3(runtime_types::xcm::v3::multiasset::MultiAssets), #[codec(index = 4)] V4(runtime_types::staging_xcm::v4::asset::Assets), + #[codec(index = 5)] + V5(runtime_types::staging_xcm::v5::asset::Assets), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -72664,12 +74477,12 @@ pub mod api { #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum VersionedLocation { - #[codec(index = 1)] - V2(runtime_types::xcm::v2::multilocation::MultiLocation), #[codec(index = 3)] V3(runtime_types::staging_xcm::v3::multilocation::MultiLocation), #[codec(index = 4)] V4(runtime_types::staging_xcm::v4::location::Location), + #[codec(index = 5)] + V5(runtime_types::staging_xcm::v5::location::Location), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -72683,12 +74496,12 @@ pub mod api { #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum VersionedResponse { - #[codec(index = 2)] - V2(runtime_types::xcm::v2::Response), #[codec(index = 3)] V3(runtime_types::xcm::v3::Response), #[codec(index = 4)] V4(runtime_types::staging_xcm::v4::Response), + #[codec(index = 5)] + V5(runtime_types::staging_xcm::v5::Response), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -72702,12 +74515,12 @@ pub mod api { #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum VersionedXcm { - #[codec(index = 2)] - V2(runtime_types::xcm::v2::Xcm), #[codec(index = 3)] V3(runtime_types::xcm::v3::Xcm), #[codec(index = 4)] V4(runtime_types::staging_xcm::v4::Xcm), + #[codec(index = 5)] + V5(runtime_types::staging_xcm::v5::Xcm), } } pub mod xcm_runtime_apis { @@ -72804,7 +74617,7 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct XcmDryRunEffects<_0> { - pub execution_result: runtime_types::staging_xcm::v4::traits::Outcome, + pub execution_result: runtime_types::staging_xcm::v5::traits::Outcome, pub emitted_events: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>, pub forwarded_xcms: ::subxt::ext::subxt_core::alloc::vec::Vec<( runtime_types::xcm::VersionedLocation, @@ -72844,6 +74657,30 @@ pub mod api { Unroutable, } } + pub mod trusted_query { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Error { + #[codec(index = 0)] + VersionedAssetConversionFailed, + #[codec(index = 1)] + VersionedLocationConversionFailed, + } + } } } } diff --git a/testing/ui-tests/src/incorrect/substitute_at_wrong_path.stderr b/testing/ui-tests/src/incorrect/substitute_at_wrong_path.stderr index b5dc118d52..4fe985ea32 100644 --- a/testing/ui-tests/src/incorrect/substitute_at_wrong_path.stderr +++ b/testing/ui-tests/src/incorrect/substitute_at_wrong_path.stderr @@ -41,6 +41,7 @@ error: Type `Event` does not exist at path `sp_runtime::multiaddress::Event` polkadot_runtime_common::auctions::pallet::Event polkadot_runtime_common::crowdloan::pallet::Event polkadot_runtime_parachains::coretime::pallet::Event + pallet_migrations::pallet::Event pallet_xcm::pallet::Event polkadot_runtime_common::identity_migrator::pallet::Event polkadot_runtime_common::assigned_slots::pallet::Event diff --git a/testing/wasm-lightclient-tests/Cargo.lock b/testing/wasm-lightclient-tests/Cargo.lock index c0dc34a585..65d9825b88 100644 --- a/testing/wasm-lightclient-tests/Cargo.lock +++ b/testing/wasm-lightclient-tests/Cargo.lock @@ -106,12 +106,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - [[package]] name = "autocfg" version = "1.3.0" @@ -166,12 +160,6 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - [[package]] name = "bitvec" version = "1.0.1" @@ -274,12 +262,6 @@ dependencies = [ "shlex", ] -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - [[package]] name = "cfg-if" version = "1.0.0" @@ -307,16 +289,6 @@ dependencies = [ "inout", ] -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - [[package]] name = "concurrent-queue" version = "2.5.0" @@ -354,22 +326,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - [[package]] name = "cpufeatures" version = "0.2.13" @@ -866,25 +822,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "h2" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "hashbrown" version = "0.14.5" @@ -902,12 +839,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hex" version = "0.4.3" @@ -955,93 +886,12 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" -dependencies = [ - "bytes", - "futures-util", - "http", - "http-body", - "pin-project-lite", -] - [[package]] name = "httparse" version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" -[[package]] -name = "hyper" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" -dependencies = [ - "futures-util", - "http", - "hyper", - "hyper-util", - "log", - "rustls", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "pin-project-lite", - "socket2", - "tokio", - "tower", - "tower-service", - "tracing", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -1127,26 +977,6 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" -[[package]] -name = "jni" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" -dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror", - "walkdir", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - [[package]] name = "js-sys" version = "0.3.70" @@ -1164,7 +994,6 @@ checksum = "c5c71d8c1a731cc4227c2f698d377e7848ca12c8a48866fc5e6951c43a4db843" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", - "jsonrpsee-http-client", "jsonrpsee-types", "jsonrpsee-wasm-client", ] @@ -1175,23 +1004,12 @@ version = "0.24.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "548125b159ba1314104f5bb5f38519e03a41862786aa3925cf349aae9cdd546e" dependencies = [ - "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", - "http", "jsonrpsee-core", - "pin-project", - "rustls", - "rustls-pki-types", - "rustls-platform-verifier", - "soketto", "thiserror", - "tokio", - "tokio-rustls", - "tokio-util", "tracing", - "url", ] [[package]] @@ -1201,12 +1019,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2882f6f8acb9fdaec7cefc4fd607119a9bd709831df7d7672a1d3b644628280" dependencies = [ "async-trait", - "bytes", "futures-timer", "futures-util", - "http", - "http-body", - "http-body-util", "jsonrpsee-types", "pin-project", "rustc-hash", @@ -1214,36 +1028,10 @@ dependencies = [ "serde_json", "thiserror", "tokio", - "tokio-stream", "tracing", "wasm-bindgen-futures", ] -[[package]] -name = "jsonrpsee-http-client" -version = "0.24.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3638bc4617f96675973253b3a45006933bde93c2fd8a6170b33c777cc389e5b" -dependencies = [ - "async-trait", - "base64 0.22.1", - "http-body", - "hyper", - "hyper-rustls", - "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", - "rustls", - "rustls-platform-verifier", - "serde", - "serde_json", - "thiserror", - "tokio", - "tower", - "tracing", - "url", -] - [[package]] name = "jsonrpsee-types" version = "0.24.7" @@ -1410,18 +1198,6 @@ dependencies = [ "adler", ] -[[package]] -name = "mio" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" -dependencies = [ - "hermit-abi", - "libc", - "wasi", - "windows-sys 0.52.0", -] - [[package]] name = "multi-stash" version = "0.2.0" @@ -1515,12 +1291,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - [[package]] name = "parity-scale-codec" version = "3.6.12" @@ -1727,21 +1497,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", -] - [[package]] name = "rustc-demangle" version = "0.1.24" @@ -1769,88 +1524,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rustls" -version = "0.23.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" -dependencies = [ - "log", - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "rustls-pki-types", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" -dependencies = [ - "base64 0.22.1", - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" - -[[package]] -name = "rustls-platform-verifier" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93bda3f493b9abe5b93b3e7e3ecde0df292f2bd28c0296b90586ee0055ff5123" -dependencies = [ - "core-foundation", - "core-foundation-sys", - "jni", - "log", - "once_cell", - "rustls", - "rustls-native-certs", - "rustls-platform-verifier-android", - "rustls-webpki", - "security-framework", - "security-framework-sys", - "webpki-roots", - "winapi", -] - -[[package]] -name = "rustls-platform-verifier-android" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" - -[[package]] -name = "rustls-webpki" -version = "0.102.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - [[package]] name = "ruzstd" version = "0.6.0" @@ -2012,15 +1685,6 @@ dependencies = [ "yap", ] -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "schnorrkel" version = "0.11.4" @@ -2046,30 +1710,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "num-bigint", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "semver" version = "1.0.23" @@ -2303,16 +1943,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "socket2" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "soketto" version = "0.8.0" @@ -2416,11 +2046,8 @@ dependencies = [ name = "subxt-codegen" version = "0.38.0" dependencies = [ - "frame-metadata", "getrandom", "heck", - "hex", - "jsonrpsee", "parity-scale-codec", "proc-macro2", "quote", @@ -2429,7 +2056,6 @@ dependencies = [ "subxt-metadata", "syn 2.0.85", "thiserror", - "tokio", ] [[package]] @@ -2494,6 +2120,7 @@ dependencies = [ "quote", "scale-typegen", "subxt-codegen", + "subxt-utils-fetchmetadata", "syn 2.0.85", ] @@ -2509,6 +2136,15 @@ dependencies = [ "scale-info", ] +[[package]] +name = "subxt-utils-fetchmetadata" +version = "0.38.0" +dependencies = [ + "hex", + "parity-scale-codec", + "thiserror", +] + [[package]] name = "syn" version = "1.0.109" @@ -2598,13 +2234,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" dependencies = [ "backtrace", - "bytes", - "libc", - "mio", "pin-project-lite", - "socket2", "tokio-macros", - "windows-sys 0.52.0", ] [[package]] @@ -2618,17 +2249,6 @@ dependencies = [ "syn 2.0.85", ] -[[package]] -name = "tokio-rustls" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" -dependencies = [ - "rustls", - "rustls-pki-types", - "tokio", -] - [[package]] name = "tokio-stream" version = "0.1.16" @@ -2640,20 +2260,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-util" -version = "0.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" -dependencies = [ - "bytes", - "futures-core", - "futures-io", - "futures-sink", - "pin-project-lite", - "tokio", -] - [[package]] name = "toml_datetime" version = "0.6.8" @@ -2671,41 +2277,12 @@ dependencies = [ "winnow", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - [[package]] name = "tracing" version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -2753,12 +2330,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - [[package]] name = "twox-hash" version = "1.6.3" @@ -2825,12 +2396,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - [[package]] name = "url" version = "2.5.2" @@ -2858,15 +2423,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3048,53 +2604,13 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-roots" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - [[package]] name = "winapi-util" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", + "windows-sys", ] [[package]] diff --git a/testing/wasm-rpc-tests/Cargo.lock b/testing/wasm-rpc-tests/Cargo.lock index 9af12a064e..53227e1ffb 100644 --- a/testing/wasm-rpc-tests/Cargo.lock +++ b/testing/wasm-rpc-tests/Cargo.lock @@ -106,12 +106,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - [[package]] name = "autocfg" version = "1.3.0" @@ -166,12 +160,6 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - [[package]] name = "bitvec" version = "1.0.1" @@ -274,12 +262,6 @@ dependencies = [ "shlex", ] -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - [[package]] name = "cfg-if" version = "1.0.0" @@ -307,16 +289,6 @@ dependencies = [ "inout", ] -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - [[package]] name = "concurrent-queue" version = "2.5.0" @@ -354,22 +326,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - [[package]] name = "cpufeatures" version = "0.2.13" @@ -866,25 +822,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "h2" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "hashbrown" version = "0.14.5" @@ -902,12 +839,6 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - [[package]] name = "hex" version = "0.4.3" @@ -955,93 +886,12 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http", -] - -[[package]] -name = "http-body-util" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" -dependencies = [ - "bytes", - "futures-util", - "http", - "http-body", - "pin-project-lite", -] - [[package]] name = "httparse" version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" -[[package]] -name = "hyper" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" -dependencies = [ - "futures-util", - "http", - "hyper", - "hyper-util", - "log", - "rustls", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "pin-project-lite", - "socket2", - "tokio", - "tower", - "tower-service", - "tracing", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -1127,26 +977,6 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" -[[package]] -name = "jni" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" -dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror", - "walkdir", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - [[package]] name = "js-sys" version = "0.3.70" @@ -1164,7 +994,6 @@ checksum = "126b48a5acc3c52fbd5381a77898cb60e145123179588a29e7ac48f9c06e401b" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", - "jsonrpsee-http-client", "jsonrpsee-types", "jsonrpsee-wasm-client", ] @@ -1175,23 +1004,12 @@ version = "0.24.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf679a8e0e083c77997f7c4bb4ca826577105906027ae462aac70ff348d02c6a" dependencies = [ - "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", - "http", "jsonrpsee-core", - "pin-project", - "rustls", - "rustls-pki-types", - "rustls-platform-verifier", - "soketto", "thiserror", - "tokio", - "tokio-rustls", - "tokio-util", "tracing", - "url", ] [[package]] @@ -1201,12 +1019,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0e503369a76e195b65af35058add0e6900b794a4e9a9316900ddd3a87a80477" dependencies = [ "async-trait", - "bytes", "futures-timer", "futures-util", - "http", - "http-body", - "http-body-util", "jsonrpsee-types", "pin-project", "rustc-hash", @@ -1214,36 +1028,10 @@ dependencies = [ "serde_json", "thiserror", "tokio", - "tokio-stream", "tracing", "wasm-bindgen-futures", ] -[[package]] -name = "jsonrpsee-http-client" -version = "0.24.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c0caba4a6a8efbafeec9baa986aa22a75a96c29d3e4b0091b0098d6470efb5" -dependencies = [ - "async-trait", - "base64 0.22.1", - "http-body", - "hyper", - "hyper-rustls", - "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", - "rustls", - "rustls-platform-verifier", - "serde", - "serde_json", - "thiserror", - "tokio", - "tower", - "tracing", - "url", -] - [[package]] name = "jsonrpsee-types" version = "0.24.5" @@ -1410,18 +1198,6 @@ dependencies = [ "adler", ] -[[package]] -name = "mio" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" -dependencies = [ - "hermit-abi", - "libc", - "wasi", - "windows-sys 0.52.0", -] - [[package]] name = "multi-stash" version = "0.2.0" @@ -1515,12 +1291,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - [[package]] name = "parity-scale-codec" version = "3.6.12" @@ -1727,21 +1497,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", -] - [[package]] name = "rustc-demangle" version = "0.1.24" @@ -1769,88 +1524,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rustls" -version = "0.23.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" -dependencies = [ - "log", - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "rustls-pki-types", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" -dependencies = [ - "base64 0.22.1", - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" - -[[package]] -name = "rustls-platform-verifier" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93bda3f493b9abe5b93b3e7e3ecde0df292f2bd28c0296b90586ee0055ff5123" -dependencies = [ - "core-foundation", - "core-foundation-sys", - "jni", - "log", - "once_cell", - "rustls", - "rustls-native-certs", - "rustls-platform-verifier-android", - "rustls-webpki", - "security-framework", - "security-framework-sys", - "webpki-roots", - "winapi", -] - -[[package]] -name = "rustls-platform-verifier-android" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" - -[[package]] -name = "rustls-webpki" -version = "0.102.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - [[package]] name = "ruzstd" version = "0.6.0" @@ -2012,15 +1685,6 @@ dependencies = [ "yap", ] -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "schnorrkel" version = "0.11.4" @@ -2046,30 +1710,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "num-bigint", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "semver" version = "1.0.23" @@ -2303,16 +1943,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "socket2" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "soketto" version = "0.8.0" @@ -2416,11 +2046,8 @@ dependencies = [ name = "subxt-codegen" version = "0.38.0" dependencies = [ - "frame-metadata", "getrandom", "heck", - "hex", - "jsonrpsee", "parity-scale-codec", "proc-macro2", "quote", @@ -2429,7 +2056,6 @@ dependencies = [ "subxt-metadata", "syn 2.0.79", "thiserror", - "tokio", ] [[package]] @@ -2494,6 +2120,7 @@ dependencies = [ "quote", "scale-typegen", "subxt-codegen", + "subxt-utils-fetchmetadata", "syn 2.0.79", ] @@ -2509,6 +2136,15 @@ dependencies = [ "scale-info", ] +[[package]] +name = "subxt-utils-fetchmetadata" +version = "0.38.0" +dependencies = [ + "hex", + "parity-scale-codec", + "thiserror", +] + [[package]] name = "syn" version = "1.0.109" @@ -2598,13 +2234,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", - "bytes", - "libc", - "mio", "pin-project-lite", - "socket2", "tokio-macros", - "windows-sys 0.52.0", ] [[package]] @@ -2618,17 +2249,6 @@ dependencies = [ "syn 2.0.79", ] -[[package]] -name = "tokio-rustls" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" -dependencies = [ - "rustls", - "rustls-pki-types", - "tokio", -] - [[package]] name = "tokio-stream" version = "0.1.16" @@ -2640,20 +2260,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-util" -version = "0.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" -dependencies = [ - "bytes", - "futures-core", - "futures-io", - "futures-sink", - "pin-project-lite", - "tokio", -] - [[package]] name = "toml_datetime" version = "0.6.8" @@ -2671,41 +2277,12 @@ dependencies = [ "winnow", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - [[package]] name = "tracing" version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -2753,12 +2330,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - [[package]] name = "twox-hash" version = "1.6.3" @@ -2825,12 +2396,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - [[package]] name = "url" version = "2.5.2" @@ -2858,15 +2423,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -3048,53 +2604,13 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-roots" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - [[package]] name = "winapi-util" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", + "windows-sys", ] [[package]]