diff --git a/.gitignore b/.gitignore index 8aee9905..46c110b1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ node_modules/ publish/ rust/target +rust/bench/target +tools/metadata-cddl-checker/target .vscode/ .idea rust/.idea diff --git a/package-lock.json b/package-lock.json index 81e960e7..29c6c4e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cardano-serialization-lib", - "version": "15.0.1", + "version": "15.0.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cardano-serialization-lib", - "version": "15.0.1", + "version": "15.0.2", "hasInstallScript": true, "license": "MIT", "devDependencies": { diff --git a/package.json b/package.json index a7c7e383..7abefb9d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cardano-serialization-lib", - "version": "15.0.2-beta.1", + "version": "15.0.2", "description": "(De)serialization functions for the Cardano blockchain along with related utility functions", "scripts": { "publish-all:prod": "node scripts/build-helper.js publish-all --env prod", diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 7e318f8a..b85a9460 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cardano-serialization-lib" -version = "15.0.2-beta.1" +version = "15.0.2" edition = "2018" authors = ["EMURGO"] license = "MIT" diff --git a/rust/json-gen/Cargo.lock b/rust/json-gen/Cargo.lock index 327a8437..79729a5b 100644 --- a/rust/json-gen/Cargo.lock +++ b/rust/json-gen/Cargo.lock @@ -49,7 +49,7 @@ checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" [[package]] name = "cardano-serialization-lib" -version = "15.0.2-beta.1" +version = "15.0.2" dependencies = [ "bech32", "cbor_event", diff --git a/rust/src/serialization/block/fixed_block.rs b/rust/src/serialization/block/fixed_block.rs index b8fd7f3f..3ae39e81 100644 --- a/rust/src/serialization/block/fixed_block.rs +++ b/rust/src/serialization/block/fixed_block.rs @@ -3,16 +3,54 @@ use crate::*; impl Deserialize for FixedBlock { fn deserialize(raw: &mut Deserializer) -> Result { - let (( - header, - transaction_bodies, - transaction_witness_sets, - auxiliary_data_set, - invalid_transactions, - ), orig_bytes) = deserilized_with_orig_bytes(raw, |raw| -> Result<_, DeserializeError> { - deserialize_block(raw) - }).map_err(|e| e.annotate("Block"))?; - let block_hash = BlockHash(blake2b256(orig_bytes.as_ref())); + let len = raw.array()?; + let mut read_len = CBORReadLen::new(len); + read_len.read_elems(4)?; + let (header, header_bytes) = + deserilized_with_orig_bytes(raw, |raw| -> Result<_, DeserializeError> { + Ok(Header::deserialize(raw)?) + }) + .map_err(|e| e.annotate("header"))?; + let transaction_bodies = + (|| -> Result<_, DeserializeError> { Ok(FixedTransactionBodies::deserialize(raw)?) })() + .map_err(|e| e.annotate("fixed_transaction_bodies"))?; + let transaction_witness_sets = + (|| -> Result<_, DeserializeError> { Ok(TransactionWitnessSets::deserialize(raw)?) })() + .map_err(|e| e.annotate("transaction_witness_sets"))?; + let auxiliary_data_set = + (|| -> Result<_, DeserializeError> { Ok(AuxiliaryDataSet::deserialize(raw)?) })() + .map_err(|e| e.annotate("auxiliary_data_set"))?; + let invalid_present = match len { + Len::Indefinite => raw.cbor_type()? == CBORType::Array, + Len::Len(4) => false, + _ => true, + }; + let invalid_transactions = (|| -> Result<_, DeserializeError> { + let mut arr = Vec::new(); + if invalid_present { + read_len.read_elems(1)?; + let len = raw.array()?; + while match len { + Len::Len(n) => arr.len() < n as usize, + Len::Indefinite => true, + } { + if is_break_tag(raw, "invalid_transactions")? { + break; + } + arr.push(TransactionIndex::deserialize(raw)?); + } + } + Ok(arr) + })() + .map_err(|e| e.annotate("invalid_transactions"))?; + match len { + Len::Len(_) => (), + Len::Indefinite => match raw.special()? { + CBORSpecial::Break => (), + _ => return Err(DeserializeFailure::EndingBreakMissing.into()), + }, + } + let block_hash = BlockHash(blake2b256(header_bytes.as_ref())); Ok(FixedBlock { header, transaction_bodies, @@ -23,61 +61,3 @@ impl Deserialize for FixedBlock { }) } } - -fn deserialize_block( - raw: &mut Deserializer, -) -> Result<(Header, FixedTransactionBodies, TransactionWitnessSets, AuxiliaryDataSet, TransactionIndexes), DeserializeError> { - let len = raw.array()?; - let mut read_len = CBORReadLen::new(len); - read_len.read_elems(4)?; - let header = (|| -> Result<_, DeserializeError> { Ok(Header::deserialize(raw)?) })() - .map_err(|e| e.annotate("header"))?; - let transaction_bodies = (|| -> Result<_, DeserializeError> { - Ok(FixedTransactionBodies::deserialize(raw)?) - })() - .map_err(|e| e.annotate("fixed_transaction_bodies"))?; - let transaction_witness_sets = (|| -> Result<_, DeserializeError> { - Ok(TransactionWitnessSets::deserialize(raw)?) - })() - .map_err(|e| e.annotate("transaction_witness_sets"))?; - let auxiliary_data_set = - (|| -> Result<_, DeserializeError> { Ok(AuxiliaryDataSet::deserialize(raw)?) })() - .map_err(|e| e.annotate("auxiliary_data_set"))?; - let invalid_present = match len { - Len::Indefinite => raw.cbor_type()? == CBORType::Array, - Len::Len(4) => false, - _ => true, - }; - let invalid_transactions = (|| -> Result<_, DeserializeError> { - let mut arr = Vec::new(); - if invalid_present { - read_len.read_elems(1)?; - let len = raw.array()?; - while match len { - Len::Len(n) => arr.len() < n as usize, - Len::Indefinite => true, - } { - if is_break_tag(raw, "Block.invalid_transactions")? { - break; - } - arr.push(TransactionIndex::deserialize(raw)?); - } - } - Ok(arr) - })() - .map_err(|e| e.annotate("invalid_transactions"))?; - match len { - Len::Len(_) => (), - Len::Indefinite => match raw.special()? { - CBORSpecial::Break => (), - _ => return Err(DeserializeFailure::EndingBreakMissing.into()), - }, - } - Ok(( - header, - transaction_bodies, - transaction_witness_sets, - auxiliary_data_set, - invalid_transactions, - )) -} diff --git a/rust/src/tests/protocol_types/fixed_block.rs b/rust/src/tests/protocol_types/fixed_block.rs new file mode 100644 index 00000000..bc8f5f4c --- /dev/null +++ b/rust/src/tests/protocol_types/fixed_block.rs @@ -0,0 +1,24 @@ +use crate::*; + +#[test] +fn fixed_block_hash_test() { + let block_hex = "820585828f1a006acfc01a03534048582020b1f15edb440ac7c03373186d0822d35c2c398c574bc48bbe90af4e557090da582015beaa7d202e24aaddc91167f94513112d5cc13f5965c3bd8ab231992222a0eb5820a0c3afcb211e7302c815109836f30bc0e89004422abe48dd72bd9c7ba309bfd882584077b8da5bfdf4efa7b03f5bc0956c060d7375831d4db4950ab020a61858cd50d14496e3e264deb7693609df7271a6efdb0747fcfc394945d32b7e74ba3a18626d58505f245fce994b9dc053ac688794f147bda6365434450a38042ab08fd47dd406d8c03d7c6730da265caf44dccca06bffaf60957a1b7c5623ea3af042fb6657bd92a8d306f79f7b8bc5f830f2cc2a876f078258400001d8dad1042a72638f1b35450b1b4c7df02406e30988b0bf934f59730c538261e3d8ce55e456c08a4f4bcd30a634ce0475926f652076f498bfa60c987d9bb85850d003f40eb1c495dcb8fd4c4d6d0b0d8a15c4fa6e07fc4e69492de80e6872368489e763510ade3f9ae95b07259c945e6014bbd97afbd7a5fcd5b1ea902c9083991eb0e57bfd0016a86e1b41c8f40c030119c0af5820c46d28e98aa4c17f1c43de04fb239e69802e2c37994c8dcff223ee1a3a84d2565820911c066248f3f1011df1cc03e7cd97b848a53a02babe955bc96c8537e5a9da32081901a9584016f07cdcf2f36f75b77454fc0653cc0e1a6295bdf95d9a60a4fcbca8adf951a3433bf43b1ad336a140033b31cf31be2a2f3ce3f173158bfa20651550158f550606005901c0d165453b2d051455bd16961ad8d261d0e72427dc3a5ce5e6b6ab1a50c061c5ed827c579a1ec07d1bda3c428b806d7ab246222f64e53bfd5ea6bd1754fb5f860b3e98c8db3ad78052e42becbf261bea17576778b38e19fd5a1b141073a47b4c01a7fefab5f7fcac17c2db1e2dea8a19c78d410e3a83bc8e063ae33cff6737819920199c28838ce3c56f805c4d2fac23337b99ea7bf6591f0914b12899b5928dfbbf1d49bd2fd3a208eefcd1a4c2cf992b5c2bbce836d06343a711007135195ef50e7258668c79fb851d0575ce53e3ec8e79a7ea17228255d0d4146fe05e1da01c4e0cc5fedf5ce09df2ad39d1f94c69c2684bfdbbec0b9e71b2d7dc2987210dd3fc1d43c6c2e7c9ccb119f7eb287a902465f0cae27c51423069fc83aa041264e824b6ba6b27aa91779d876377646848546f50998d91a1b2dcd221bb5e8c17dff3ba5bdb12fa38f0a4804f375db7845613d8c36437c767a7c2d4d8b44647013cdad8341acfa42010d164c81381482cb64ac2fa807e63748d31a4ab7b17f9421f980189dd84685cc2be77859ba1325833c2d666cdfc2f6bce121d34f21db4fea1034b6c441971da7d322a5281f4f3bfa6ab52fe9ad102cbb619d41408a9ca21046495a9008782582002ef33daf9e37b845bc1c82948e3f922c107d3e1c8ebe173b80ac7d25a72dc6d008258202869a9a18993059c15d9b6d4ec1e4f8242c3e9eabc61febdf74472734301d1f400825820a56a0daa9c25a3348c5b5e775a62764c6c903c9858565b120638f5a9b4766cb600825820bc8e0b29f284fb879c8990f0e1f275260f7c0c17475b93fb0f5a8707ad275eef01825820d858d4e086da45b3e1befd5f6a122bb85e025c4a21585cf3fbfe586ae3cfba5b00825820e7b2df42dadfe1537a4bc9756ff74d101ce2c6d59ea3a37c36aedec8a9d1537406825820f75f3c17d898bb34e7a9281f95b425ecfcc3a85d3b7c4756ab61e2dca81a641f000d818258205fbe3f3451edf659c5c42918d1a546e864b96fc44ed4f820558d3ee990f7728d00018882581d612ebacbaf16275a0184357de07c81d4a895f29343c235974f3b4c1d7d1a0085787c82581d612ebacbaf16275a0184357de07c81d4a895f29343c235974f3b4c1d7d821a00161934a1581c2f2e0404310c106e2a260e8eb5a7e43f00cff42c667489d30e179816a14d3136343939393232313539323701825839014085bf7ec608239db142099bb89c221eda702d3aeaf44356017ed996d72d1c781b5a4cfe4aaa274455ef6e680007ce06b990178cb2ebbc09821a0024b619a1581ce0baa1f0887a766daf5196f92c88728e356e71255c5ad00866607484a1582071c5f20bf2a8b1f70ffd90f119f057960416b6616b9f975203fb86128f2e11c41a00079c5882583901ef4593b557e1d0ec15a4a53c8224427a2378c78ae58a632b4e0bb45317676b6a36859b3ef3f1f069fd424f2f2f0d0429b6bda3da0c2d1028821a001e8480a1581ce0baa1f0887a766daf5196f92c88728e356e71255c5ad00866607484a1582071c5f20bf2a8b1f70ffd90f119f057960416b6616b9f975203fb86128f2e11c41a0005168b825839013f97c9b5758ada323696b9fee45a6a98033a4bea9339a0a7cea8a60f99551c803f2c0a473bff152ad39ae4dc18894be7b1fef296a5007232821a001e8480a2581cb34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757aa145634e45544101581ce0baa1f0887a766daf5196f92c88728e356e71255c5ad00866607484a1582071c5f20bf2a8b1f70ffd90f119f057960416b6616b9f975203fb86128f2e11c419bc8682583901c7b903384f76c40512a0b94a9b3ee72ff77ee966bcc69f789de7b852a7ab7f4dc36a56ac80766b0dfdd32f76796da3606576c1785d15e89e821a001e8480a2581cb34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757aa145634e45544101581ce0baa1f0887a766daf5196f92c88728e356e71255c5ad00866607484a1582071c5f20bf2a8b1f70ffd90f119f057960416b6616b9f975203fb86128f2e11c41a000728e3825839017ee5fde27c99908259ae989ece4710242aab9b2bbd967684d5de834e38e0c3d10f97a8b75494e6cdbf12980fd7f7045682efd2ceb33a1a3a821a001e8480a2581cb34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757aa145634e45544101581ce0baa1f0887a766daf5196f92c88728e356e71255c5ad00866607484a1582071c5f20bf2a8b1f70ffd90f119f057960416b6616b9f975203fb86128f2e11c41a000105d78358391157c8e718c201fba10a9da1748d675b54281d3b1b983c5d1687fc731752563c5410bff6a0d43ccebb7c37e1f69f5eb260552521adff33b9c2821b0000012368d74eb7a3581c3f6092645942a54a75186b25e0975b79e1f50895ad958b42015eb6d2a1474d494e5357415001581c5178cc70a14405d3248e415d1a120c61d2aa74b4cee716d475b1495ea1582071c5f20bf2a8b1f70ffd90f119f057960416b6616b9f975203fb86128f2e11c401581cb34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757aa145634e4554411a005f29c158204796a20ac95f64e36abc2ae2934378c7809fcc72921665df36a48db73df6f6cf021a00131e04031a035340dd0e81581c2ebacbaf16275a0184357de07c81d4a895f29343c235974f3b4c1d7d09a1581ce0baa1f0887a766daf5196f92c88728e356e71255c5ad00866607484a1582071c5f20bf2a8b1f70ffd90f119f057960416b6616b9f975203fb86128f2e11c41a00159e230b58203da6b46706bd9b5fe0e6ffae67641f0c095c897995301ef621157f2ea8aa83390758204dbd133c407579277c49715e63119dc3581d5d7324c6af36e31b97588762dd46a400818258200339b014cea9eaa9f2dc8535999504a566766a98f73b664155e55ae4cbd2446a020182825839011012aed78d89b73eeb2ea6157b0de434a539e85ad309195ec5cefe70ffdf59d1ef00f1086f935a801f76c490731511d5becd3942000e3e1f1a05f5e10082583901bd92c47080042d673e78d4832e01c0fe28e10cb88e52c7632900b4822311ffe3a3381a6ea2650ab9abe823801625769fa6094ae2bfb191121a6af6476b021a0002917d031a035392e2a50081825820e6bed6a8b21d503a60c1b7a03c5268b11db85b1462d56c6c8f59d4e440a60c0401018283581d714a59ebd93ea53d1bbf7f82232c7b012700a0cf4bb78d879dabb1a20a821a001d6324a1581cdf44bef5a988e0b135145c505d734130f545dc959e764ac14c9ce983a1581a576f726c646f6643617264616e6f50617263656c30303035383601582075e7e6157f01163fc02fef2c074b4d2886c54a2c842ada95ed384011aa4d5e02825839010286fdf1048c402f74733a070f66848b84307ce90f3d983ffdb3d6a91b698ff0d67bec07bbcff60c84fef53cc2298917e352b7f72184254a821a0b0bcf0aa1581cdf44bef5a988e0b135145c505d734130f545dc959e764ac14c9ce983a2581a576f726c646f6643617264616e6f50617263656c30303530373001581a576f726c646f6643617264616e6f50617263656c30303530383301021a000337a7031a035345eb075820cfbf2ede1b33d61209c0477ee43819eb38f8769757ac52ad7857008d8e54f781a50082825820f4320a0bba8b6928063344cad3042608cebf539d5ef51b131cb6b198497b81a601825820b76f25bc05ffb3fe5b8b299cc8e7cee6e1e5690eb0743b43aa593bdb8f9e08f200018283581d714a59ebd93ea53d1bbf7f82232c7b012700a0cf4bb78d879dabb1a20a821a001c41caa1581c94da605878403d07c144fe96cd50fe20c16186dd8d171c78ed6a8768a150436c6179436861726c6f74746537373001582025cbbc43cc0931d8b55d1dca1447a85613af73aa47903253fccc8e0ce6075963825839014d5c9f850c160e02c47dba8843981db2c6b5a32defa9fa9221b9bdeabecbeea19ee9ce3c31425c30770427635cb9fbf391d577c35f6ca97f821a014cfa1bb81e581c1774343241680e4daef7cbfe3536fc857ce23fb66cd0b66320b2e3dda1454249534f4e1a00989680581c1a71dc14baa0b4fcfb34464adc6656d0e562571e2ac1bc990c9ce5f6a144574f4c461b00000002964619c6581c1bf64bc834b8fb82a9896933182a444d8e3f5e9339881ac3a255c992b81e4a536572756d5830383736014a536572756d5830383738014a536572756d5830383933014a536572756d5830383934014a536572756d5830383935014a536572756d5830383936014a536572756d5830383937014a536572756d5830383938014a536572756d5830393030014a536572756d5830393430014a536572756d5830393431014a536572756d5830393432014a536572756d5830393433014a536572756d5830393434014a536572756d5830393436014a536572756d5830393437014a536572756d5830393438014a536572756d5831303031014a536572756d5831303032014a536572756d5831343638014a536572756d5831343730014a536572756d5833313635014a536572756d5833323437014a536572756d5833323438014a536572756d5833323439014a536572756d5833323530014a536572756d5833323531014a536572756d5833323532014a536572756d5833323533014a536572756d583332353401581c2afb448ef716bfbed1dcb676102194c3009bee5399e93b90def9db6aa1454249534f4e1a00989680581c2b8822f7799f325e278991a244e7715591945b1c2a3589cc76035ca9a147736372617463681a02faf080581c2d7444cf9e317a12e3eb72bf424fd2a0c8fbafedf10e20bfdb4ad8aba1464348454444411a000186a0581c4247d5091db82330100904963ab8d0850976c80d3f1b927e052e07bda146546f6b68756e02581c5029eeccd52fef299509d509a8318fd7930c3dffcce1f9f39ff11ef9a1434647431832581c544571c086d0e5c5022aca9717dd0f438e21190abb48f37b3ae129f0a14447524f5702581c641f0571d02b45b868ac1c479fc8118c5be6744ec3d2c5e13bd888b6a1465a4f4d4249451907d0581c682fe60c9918842b3323c43b5144bc3d52a23bd2fb81345560d73f63a1444e45574d1a0045cd11581c6937a762fa1bec850073da46def7f57e5a5942e74162d5b618118c6aa152416461417065436c7562564950506173733001581c7136e7f40b368b3f3d9656f97b2c5ae01d0545882bc3cd86f8a80159a44a57656564426f78323531014a57656564426f78333230014a57656564426f78333235014a57656564426f7833343101581c8d0ae3c5b13b47907b16511a540d47436d12dcc96453c0f59089b451a14542524f4f4d1a050768c7581c94da605878403d07c144fe96cd50fe20c16186dd8d171c78ed6a8768a351436c6179436861726c6f747465323638390151436c6179436861726c6f747465333037340151436c6179436861726c6f7474653535353301581c9c54bb728df9847b0358c84c942500646326a1b581a2b8c43689d220a14c5374726970706572436f696e0a581c9cc83ea54377108dd022f18095040e8d5808a3061c4fe54f3fd64a7aa14f48616c6c6f7765656e41706538373801581ca0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235a145484f534b591a001e8480581caf2e27f580f7f08e93190a81f72462f153026d06450924726645891ba144445249501a77359400581cafc910d7a306d20c12903979d4935ae4307241d03245743548e76783a14541534849421a77359400581cb24a29b9c16d349df16d9b5553b119e399e46ae19d6150c1a843ef61a1466469646974731a05f5e100581cb788fbee71a32d2efc5ee7d151f3917d99160f78fb1e41a1bbf80d8fa1494c454146544f4b454e1b00000009a5d4aba5581cb7c783f6304eddbdf8f0dece4715d63cb9f453be89d97c8fba155d57a144524553491864581ccfee97ff8359f07a0a395a72b424bc6e030503390d864b86d4e0ecf8a1464b41495a454e04581cd030b626219d81673bd32932d2245e0c71ae5193281f971022b23a78a148436172646f67656f190348581cd3558649b7874a1a596378515f9b80da63e73f324439ea113d34c9bba144424541471864581cd894897411707efa755a76deb66d26dfd50593f2e70863e1661e98a0a14a7370616365636f696e7306581cde421e04b847b42b7722f0b898cb7f13dc29ab1d4d9ddecf5675ca0ca14e50616e646142616e64613131393601581cea2d23f1fa631b414252824c153f2d6ba833506477a929770a4dd9c2a1464d414442554c1903e8581cf0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9aa448757365722e61646101496265796f6e646e66740149696d6d757461626c65014d6164612e6d657461766572736501021a00047277031a035345d10758205fa8184b10d1d144d0b88af1aa7bd1fac6fc74a181389446f51cf5ff88b45014a40082825820d54e88822544f19ca3b4a5ace23b1d1732a9c9c6ae9662cc45b43e1e1ee06ac701825820d54e88822544f19ca3b4a5ace23b1d1732a9c9c6ae9662cc45b43e1e1ee06ac702018382583901a524102eb0482e9ae9a1464388c4647abfe41ec8b656019838c17d5680c6f05c445c1f5a3b45fabdc5ce374b535b6d4efd1e5eb440ca572f1a0393870082583901fc2651cf461f8d3ff04a6fb0a30b62bccfa141a1027100c199131f71caeecf7f7125d136baf86caee6d6ab81c947e19ee89e324a4fe4f4c1821a0067a6faa6581c2d01b3496fd22b1a61e6227c27250225b1186e5ebae7360b1fc5392ca35054617665726e53717561643033373436015054617665726e53717561643034363339015054617665726e5371756164303936333901581c5a2cdc6e3aa9612fe4676672f443e7efd39c309d45e7919a4bf27750b35819426f7373506c616e657444697374726963744f6e6538323831015819426f7373506c616e657444697374726963745369783436343201581a426f7373506c616e65744469737472696374546872656536383001581b426f7373506c616e65744469737472696374466f7572313233383901581b426f7373506c616e65744469737472696374466f7572313233393001581b426f7373506c616e65744469737472696374466f7572313233393101581b426f7373506c616e65744469737472696374466f7572313233393201581b426f7373506c616e65744469737472696374466f7572313233393301581b426f7373506c616e65744469737472696374466f7572313233393701581b426f7373506c616e65744469737472696374466f7572313233393801581b426f7373506c616e65744469737472696374466f7572313233393901581b426f7373506c616e65744469737472696374466f7572313234303001581b426f7373506c616e65744469737472696374466f7572313234303101581b426f7373506c616e65744469737472696374466f7572313234303201581b426f7373506c616e65744469737472696374466f7572313234303301581b426f7373506c616e65744469737472696374466f7572313234303401581b426f7373506c616e65744469737472696374466f7572313430363701581b426f7373506c616e65744469737472696374466f7572313430363801581b426f7373506c616e6574446973747269637454687265653431343301581c76ebe108d0d58ba2ffe6024cf25cf5f6a890f4c61d77ee7911362b14a64b41444150756e6b31343833014b41444150756e6b32313430014b41444150756e6b34363933014b41444150756e6b36353631014b41444150756e6b36383439014b41444150756e6b3730373001581c86f2bf5e9fbfe6d9a3cd2bfc8e4a9890093db5792ea7425a294356c6a1444c415a591930d4581ca23836ef3b4d0ad3ed1c28bd30e754e208ae7ea0a23e809354d67e0da2443733313301443738333701581cf97bb2ae7b056a17a63847fbe5032148353d30c980f5467f51f19637a54e41444150756e6b7a4d5650323335014e41444150756e6b7a4d5650383539014e41444150756e6b7a4d5650383936014e41444150756e6b7a4d5650393234014f41444150756e6b7a4d5650343739320182583901fc2651cf461f8d3ff04a6fb0a30b62bccfa141a1027100c199131f71caeecf7f7125d136baf86caee6d6ab81c947e19ee89e324a4fe4f4c11a0a610873021a00034c51031a035392f8a8008282582090f04da5a0a53fe4985592bbc4880d8cbf17028b95e1483252fdeaf116d9421000825820e0ce44a3f2c7cdc21b9044ce6d1920684a64fa127315b891bc99855d5f77246f01018282583901c2799f74c18260a0f0b6a6fb0f21d6fc130b299a3098bfd6b0cd960c324bf7b94780a868a168890373507124e65f5395f773b6e114c36ff7821a001d6324a1581cdf44bef5a988e0b135145c505d734130f545dc959e764ac14c9ce983a1581a576f726c646f6643617264616e6f50617263656c3030363139310182583901c2799f74c18260a0f0b6a6fb0f21d6fc130b299a3098bfd6b0cd960c324bf7b94780a868a168890373507124e65f5395f773b6e114c36ff71a0e5086ec021a0013343d031a0353452a075820d36a2619a672494604e11bb447cbcf5231e9f2ba25c2169177edc941bd50ad6c0b582081080395d9b1387c1fe9833edb673b8416ceb18e67b361b56cea2bfe7546d8f70d8182582008ff46e00df665783d5df495c9ce2bd9802506a53c3c555470ce60edc1722019000e81581cc2799f74c18260a0f0b6a6fb0f21d6fc130b299a3098bfd6b0cd960ca80085825820ebf3058ba686f289cf4cbab93dcd71a4ce830f7832e2d53fdc426d6e38e337df008258202517c80124acd7e97c524304c0865c07df7e851ba397d0f1569f46d968aa325900825820ebf783151187470f7bf0909dd81880dc96fabccbd10472bb6f6295d2d21e774c00825820b054f7347d5b14db5c6fca73e71f66221239d58cf89bbe0c3a5cb731defabf2e03825820b054f7347d5b14db5c6fca73e71f66221239d58cf89bbe0c3a5cb731defabf2e0401858258390170e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a721e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005f1a00147260825839018e3b7438544fa866c5bf58eb9d21a0d33b89cc2c0bd274338bcdabdaf596b9f4f99683ab3e27d9fda690d6f62fb66d23f355b406c041a5041a00663be08258390179ff76e27a591da0c5c08e5636040ff41853b25dd2014d9b6f6519ad820501efd6f2ebeb2baac99e649ac0b64edb65754f1f277a0530ecfc1a0383a88082583901910b1d63a257fd66bbcf3c9600686d1ab6bef0ce521ec0b0b0d29c104a3ca43478d4d732bae223141149525755b1d96f8ecf00ada8447015821a001cd277a1581cf01e07a8038849f9c517e2862b72c2d7a25f632a62b67786ff925794a1524b6e667479437265617475726573303133310182583901910b1d63a257fd66bbcf3c9600686d1ab6bef0ce521ec0b0b0d29c104a3ca43478d4d732bae223141149525755b1d96f8ecf00ada8447015821a090ff687a3581caa19d5f5ae9b6c93c8e278851194553ddd4789d77f86d3ad2f7480d8a15443617264616e6f43726f6373436c75623839343201581ceaa972045049185981aca9f4aaad38bc307776c593e4a849d3802a87a24d536d6f6f746859657469313336014e536d6f6f7468596574693637383201581cf01e07a8038849f9c517e2862b72c2d7a25f632a62b67786ff925794a1524b6e6674794372656174757265733034303401021a001388fd031a035344f6075820d36a2619a672494604e11bb447cbcf5231e9f2ba25c2169177edc941bd50ad6c0b582009a888f96a9caac9c93dba795e7d506c2aa3def86ff47c425c6516a00b24ff530d81825820aca473e03d8369d06d5c40ba3f3b10d85e2633083a460cfab44ab6951aaa6216000e81581c910b1d63a257fd66bbcf3c9600686d1ab6bef0ce521ec0b0b0d29c10a40082825820ea33cd918be4a62b73c1d309345c550876af67a7a42a451f1b30a704386572e502825820e67029732fb54488478e8bcf7f8624165066da25192cee0b5982afcd85b8960101018283581d710ca50950adbb06c5c5f6833924a66ac873e43202588b6d338602d78d821a003d0900a1581c29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6a1434d494e1a773594005820ef4aee5aae5138a9494fc39e5e1fb2b36bac85dfd87b9e4c4de47b34871f3af282583901bcd51420b6444282d02ab4f80dff6075d5f0faa4c7bec8e82ae73a49c258e020c06ff0e833da5a3b32520191c535c41d01250f06be6e053b821a0c141c5aa2581c29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6a1434d494e1ab2d05e00581cf0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9aa14d706c6163656f6674617374657301021a0002dbe90b58204e6b508a113717ffb9e733028e43e285af9b06d6ce8aa16f4a0133c0568a480aa500818258209cec59ae14b571ccab9e2df960d9e29e379349f77d5049ddffd578d55d6253a200018283581d714a59ebd93ea53d1bbf7f82232c7b012700a0cf4bb78d879dabb1a20a821a001d6324a1581cdf44bef5a988e0b135145c505d734130f545dc959e764ac14c9ce983a1581a576f726c646f6643617264616e6f50617263656c3030363533360158200d4f244033e03fa952839cfa2650049fdc623bda910a4d0aa9f8f4a4cc0f664682583901b58055aa3dec25a5b4f7816201b9c41674e71f7af9a1a509a9af23ea870e70b394d0dc9fd7d62dd05e8fd18bcb96654b52215d6639e02776821a00c811e5a1581cdf44bef5a988e0b135145c505d734130f545dc959e764ac14c9ce983a3581a576f726c646f6643617264616e6f50617263656c30303333363401581a576f726c646f6643617264616e6f50617263656c30303634373101581a576f726c646f6643617264616e6f50617263656c30303637303201021a00033d47031a03534573075820b8e5b7f20456ea177c9902c5b244d5ec8a03335cfe745fcce1900e75105dcb6ca4008282582080407ebd17300aec92ffa72d793b3f4d64b3cd957ae27618c634378451025d7c0182582080407ebd17300aec92ffa72d793b3f4d64b3cd957ae27618c634378451025d7c02018382583901156bc9d04184f1c9c39167c08b23beedd5f7273538e82b489a08924b80c6f05c445c1f5a3b45fabdc5ce374b535b6d4efd1e5eb440ca572f1a00989680825839018be0e2dd5c623656ce5c623f5da19bb2507488221d86b2d3e4c7af1b4d1c91b73f4afd6381d9fc1f9120b783471e8c305bf75a5e052a03a5821a008e0fbcb81e581c1cda8886f4cbab2217346187a923b3be670e42ef5778a0ad7d25358ca14f4d7574616e74546f6164303130383701581c22d843e9e8b39d105c645944cc848abee2673d64e60f1f022791ec85a156457175696e6550696f6e656572536b696e313137343501581c23a000a839f04bb71b59b4ae74bf8cf5ed21ee0be520690e665ae4b4a15818457175696e6550696f6e6565724a6f636b6579313137343501581c247e182a8e95bb556ebfde2f8a783a1c52b0c11fd5222affd8969918a14e4d657461706c616e65733131383301581c30ed3d95db1d6bb2c12fc5228a2986eab4553f192a12a4607780e15ba157457175696e6550696f6e656572486f727365313137343501581c3f75c1332868430e28e156f6309836de8df19b620ab604c166741836a4505468654d616e6472696c6c7a3233343701505468654d616e6472696c6c7a3731353001505468654d616e6472696c6c7a3735353501505468654d616e6472696c6c7a3834373401581c5a2cdc6e3aa9612fe4676672f443e7efd39c309d45e7919a4bf27750a1581c426f7373506c616e657444697374726963745468726565313231343601581c6531354d2f96f3b6d8436c563a550edbf2ad810cf2109a1b5897d609a1475347533632383001581c6f3a7634e62c5daae02bcb6b5be34d30e72cf469a13ed2a2458c2154a250546564647954726f6f706572343235340150546564647954726f6f7065723439333801581c6f87aa2ea552ecd24732d62831916ece54c52348417398085358cbeda15453746f6e65416765486f6f6c6967616e3037373001581c74428b1442547159a05c9bb3d7ff77ea6a6b0f55fddc8ec56cb6ca80a150526f6775655072696d6174653339323101581c750b077ee1c771cd0ac953ae87044f2c2f50357d4881506bac25f367a24339363601443733393701581c8021c0ab3285cc3cfff2b7e61e96ece565fb37279b67666741587b54a14f47686f7374636861696e303736313401581c83c0ab67afc9148bd1571b7a14de1df03cd5624f5992d3b8ec84d6fba24d4164614e696e6a617a31343134014d4164614e696e6a617a3334383601581c83cb87b69639e20d7c99755fcfc310fb47882c3591778a3c869ea34ca14a417473756b6f3337333801581c92fb96bdc653155c497fa635db6e30d9930253e85eaf95c47b561b94a1506164617361636573706f73746572363301581c96580bbc4fe27ac0d127db3f8a0dc698c58d303d8cae870f5771f336a1515a6f6d626965436861696e73303433303701581ca23836ef3b4d0ad3ed1c28bd30e754e208ae7ea0a23e809354d67e0da24339363601443537333001581ca706fc87764cde4ac018c38bf61630c1065932db49e6f495be3b29f8a1581a436f636f4c6f636f477265656e50616c6d53314e46543132363001581cad6290066292cfeef7376cd575e5d8367833ab3d8b2ac53d26ae4ecca14a5a6f6d6269743138313001581cc16777d742784b7acd3940e0356596d313e141200fe8e48c8df16ba7a15442697446696e734861776b66696e52617265373601581cc281975562f394761771f13f599881517fa8455946e7e30454de22daa14e474f41545472696265303133303701581cc364930bd612f42e14d156e1c5410511e77f64cab8f2367a9df544d1a155426f7373436174526f636b6574436c75623339353701581cc56d4cceb8a8550534968e1bf165137ca41e908d2d780cc1402079bda24f4368696c6c65644b6f6e6732303338014f4368696c6c65644b6f6e673333383601581ccea514eda3ce871c316fdb1f0931baa678d2fa5d373a109dbbcc905ea14b4e6562756c61536572756d01581cd4162cfa26718e8a4357226ffbfc3df6a210b2a4d5727ecbfd1e8eaca14a4655444255443237303501581cdac355946b4317530d9ec0cb142c63a4b624610786c2a32137d78e25a24f6164617065456c646f6e477265656e0150616461706545736d6f6e64576869746501581ceaa972045049185981aca9f4aaad38bc307776c593e4a849d3802a87a14e536d6f6f7468596574693236343801581ceba255af1c4234ea258d3d0ef1ae3bc715432de4b3e6ba481214a4caa14c4a415248656164733237363701581cf7f5a12b681be1a2c02054414a726fefadd47e24b0343cd287c0283da158187a69676f7242656e6a616d696e7347726f7570303234303201825839018be0e2dd5c623656ce5c623f5da19bb2507488221d86b2d3e4c7af1b4d1c91b73f4afd6381d9fc1f9120b783471e8c305bf75a5e052a03a51a011aaf4e021a0003b605031a03539267a60081825820011efd6bdc6e1ae3dd73642075580bd56a369bb80be67a41543f9dedf0a0f073010d80018282583901fdc15689e1c99ec452b9d3763e4aa2472d54bf02018aef710156c16380c6f05c445c1f5a3b45fabdc5ce374b535b6d4efd1e5eb440ca572f1a0fcb94408258390183faea0380aa1ae11c4227431e6b8ddff716f6af5f96e44996e23f89b162f56c795c1af5f780fcc560fe92a4153b0c92206913f264b03d541a52cf668c021a0002943d031a035359860e80a80085825820e2a4b2540ff60b4ea1be7bdf3c5fc9f7e7f0c67c9d5b7f01dc0ccaf34b1dd18d008258207efca30cd19b61fdb02d9d325f07f70c6435a8dcdc33a226ba797f6788a38aa5028258205a8b8c2621850c5367ec7cc1db4491ee8dd7bc4177b148d648974fbf7d179357028258206e58adff7c8ca07fba14400f75726f82ae20024a08d98e529909a1a38796193100825820cc67f253fb48b43c55e1018baf8d8426c6cb246d568dd95e0e804369d08a0f4d0101858258390170e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a721e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005f1a004c4b408258390195da45da57f332e1e03e388aca5b04140d3e06324b13b7095db205cbf265285025db4c99b71d24cd7de0f9c8802495c11191eb4212ed2aa31a007270e0825839011bdc0586c6e194445a5aa231d042bc910d49f910c0ad3b5c28bef830929b4206d18512ba28437c9f5c8ee1e9bf1fbfb5c525c0a98b674b931a0e27f66082583901578075c0c8970c9b4e0f800c8e904cd4b2e00ed2dfae324d3d0c8c63f1d43320a3a32f5a47f893567f4b523a3f3635526359a4ad90c48924821a001c41caa1581c58b9f55e6ea9828dea7a8d9f49420171c6360f99b5e6e86de5fdb644a14d4170654e6174696f6e393634360182583901578075c0c8970c9b4e0f800c8e904cd4b2e00ed2dfae324d3d0c8c63f1d43320a3a32f5a47f893567f4b523a3f3635526359a4ad90c48924821a13131e70ac581c1bf64bc834b8fb82a9896933182a444d8e3f5e9339881ac3a255c992a44a536572756d5830383831014a536572756d5831323435014a536572756d5831363834014a536572756d583336393101581c4c68c9f9580b7c68b215073c68294e920856c15392df361b83628880a24d42696f6d7574616e7432363235014d42696f6d7574616e743439353401581c55daa23e0e243bb4dda613c9d06a78da955f26160b13320999f912e2b822554164615265616c6d4c617a7949736c616e6437373301554164615265616c6d4c617a7949736c616e6437373401554164615265616c6d4c617a7949736c616e6437373501554164615265616c6d4c617a7949736c616e6437373601554164615265616c6d4c617a7949736c616e6437373701554164615265616c6d4c617a7949736c616e6437373801564164615265616c6d4c617a7949736c616e643132363901564164615265616c6d4c617a7949736c616e643330333701564164615265616c6d4c617a7949736c616e643333333701564164615265616c6d4c617a7949736c616e643333353801564164615265616c6d4c617a7949736c616e643333363601564164615265616c6d4c617a7949736c616e643333363801564164615265616c6d4c617a7949736c616e643333373001564164615265616c6d4c617a7949736c616e643335353101564164615265616c6d4c617a7949736c616e643335353201564164615265616c6d4c617a7949736c616e643335353301564164615265616c6d4c617a7949736c616e643335373201564164615265616c6d4c617a7949736c616e643335383101564164615265616c6d4c617a7949736c616e643336303301564164615265616c6d4c617a7949736c616e643336303901564164615265616c6d4c617a7949736c616e643336313501564164615265616c6d4c617a7949736c616e643936353101574164615265616c6d4c617a7949736c616e64313335383701574164615265616c6d4c617a7949736c616e64313630393301574164615265616c6d4c617a7949736c616e64313634303101574164615265616c6d4c617a7949736c616e64313739363901574164615265616c6d4c617a7949736c616e64313739373001574164615265616c6d4c617a7949736c616e64313739373101574164615265616c6d4c617a7949736c616e64313739373601574164615265616c6d4c617a7949736c616e64313739373701574164615265616c6d4c617a7949736c616e64313739373801574164615265616c6d4c617a7949736c616e64313739383501574164615265616c6d4c617a7949736c616e64313739383601574164615265616c6d4c617a7949736c616e64313739383701581c58b9f55e6ea9828dea7a8d9f49420171c6360f99b5e6e86de5fdb644a14d4170654e6174696f6e3636363901581c86f2bf5e9fbfe6d9a3cd2bfc8e4a9890093db5792ea7425a294356c6a1444c415a591a0001cfde581c9e7b9873fc65bc20ada9739b85d15057603577c1777c7325bba9ae9cae4d4c617a794c6c616d6130303433014d4c617a794c6c616d6130303833014d4c617a794c6c616d6130383836014d4c617a794c6c616d6131313034014d4c617a794c6c616d6131313234014d4c617a794c6c616d6131343739014d4c617a794c6c616d6131343830014d4c617a794c6c616d6131373931014d4c617a794c6c616d6132323235014d4c617a794c6c616d6132333336014d4c617a794c6c616d6132373039014d4c617a794c6c616d6133383233014d4c617a794c6c616d6134303335014d4c617a794c6c616d613434393701581cb5240b3ae40bca2cc56b0fdfd7553724ccd18c56a98937d6b6f76265a1514164615265616c6d506c6f74313131363901581cc4bfa78ebb256a2e869d5b3c0d5d24754f5875e5273b37a4e369bda6a2423631014334353001581cd517f38dd2c5acc3347c8e933e2c0185fafe3ba838f8830000a3c95fa24f4d7574616e7443726f633030303631014f4d7574616e7443726f63303034313201581cdac355946b4317530d9ec0cb142c63a4b624610786c2a32137d78e25a153616461706547617370617243617374696c6c6f01581cea12daa6839715fc56d53d704f9327a1f8620d6eae322c1f4008ec92a2443130323101443131323201581ceaa972045049185981aca9f4aaad38bc307776c593e4a849d3802a87a14e536d6f6f7468596574693136393901021a0014978d031a03534573075820d36a2619a672494604e11bb447cbcf5231e9f2ba25c2169177edc941bd50ad6c0b58204b1826f5c202456197c5f1585ce1c753fcacf73b26e6824912264ea6827f55060d8182582000384b725f5958285f362a6b69417ea74a83bfcfbbeea98e32ad2ed883aa3abd000e81581c578075c0c8970c9b4e0f800c8e904cd4b2e00ed2dfae324d3d0c8c63a40081825820544c760630b3d3103e5552031c50aa9f0dc9702fd9e229fd28e7511fde9f651e0401838258390143fe93d522a1058a5c400b59c8ca467ba46ab082d084ef4feacd317e16caf124dba2a2bbf894ff906e88429c1d34d2f826dc769403a3ae58821a00159282a1581c49b4109aa40548dd55dd106ce58003c9601da016992cc276ed880cd0a15818526164696f61637469766543726f6373436c7562333133300182583901eea649631dd77e3ca22a96b768041c692f17e2271a4911b79d1278b2df785ed0be764a922a2ad05c7f07106f1c8899f10c88844b988315f5821a001833fca2581c884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903aea1455041564941190258581cf7c777fdd4531cf1c477551360e45b9684073c05c2fa61334f8f9adda14d5665726974726565546f6b656e0582583901eea649631dd77e3ca22a96b768041c692f17e2271a4911b79d1278b2df785ed0be764a922a2ad05c7f07106f1c8899f10c88844b988315f51a05cad681021a0002b619031a035392f8a4008182582063b99947762545bf76ca5a5209245fd59f84cdd5aa65d22ced56394a04f5b95c01018283581d710ca50950adbb06c5c5f6833924a66ac873e43202588b6d338602d78d821a3dc2bc64a1581c8fef2d34078659493ce161a6c7fba4b56afefa8535296a5743f69587a144414144411a1f31658b582064eb573644d75d7114dcef07e4b0ceb96c0f4b39d83f689e8f950813e78f498c8258390109c89faadf5e3d2a9a7dc6d8b3db21d131db71cb567270c801472279e431bf30adb82350945a98739ff61b8d234855782dc3cfb17a9344e9821a3f6f7dc7a4581c0ece814aa1cc2c98981c7690083dbcb51c5bb1279ae408873d8c8762a1582043636966717439655053716166636259733973683054486263637457636e333001581c804f5544c1962a40546827cab750a88404dc7108c0f588b72964754fa144565946491a00015c3e581cb34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757aa145634e455441192959581ce0baa1f0887a766daf5196f92c88728e356e71255c5ad00866607484a258202389d40886678db816de5ff85d81c12aaec51b11dcb0187aed73a815838cc5a71a28d057ef5820403f36cd3f483b807ae78a4b958928036a0381ab55d4a9d46d4adc5de0b74f961a308da490021a0002eb090b58204bc1b34a8dfd48408206aaa81d678fd4da7d99d8f215b276d2257665d9321dcea40081825820b80b598e9a8fc75272ae7bfd93e28a71841b5977ea1e68c731adc401e9aa322901018282581d61bb5370358b0709d8f740efaadacea6f52e8f9766394307066b0b3cad1a047868c0825839019b973be42a798cf75d4ece5582b449981c5b2333bf487dd77d28d0b556118ef94669f1d8c881efd9d60893898805af564589a92775bc532c1a09b97330021a00028cad031a035375a9a700818258209fb5b95d51e029ab4e02a03d3a152414c3a9e336852b7f123d81f61f45eea8e2010d800181825839015e62d30869dcc4702eee7a8a784fff1a0100cfbf09a665c2be19c07d1884e36b3b5ba7bf3315719979e6a783a0bdd96e586dfdc9554a21881a003723a3021a0002a725031a03535980048183028200581c1884e36b3b5ba7bf3315719979e6a783a0bdd96e586dfdc9554a2188581c40efc97d08315ff9be5898f24af5b8b120669b43027662c3499dd7850e80a40081825820d2039e714e04d247dc533fa77b396345980a6d7c46d1a4f8cd9f99a88bd2909a01018282583901d91e76e63a7ffb72c6f9449026075b07f8df65b0d17e37e1ef94e1e105ea86c6a2b0f6ad201b11dcabc022bd853db689f939eb13e38eced31a0c18022082581d61d91ef01b73f3010bb173945cf5417257c00c002715a13052015ab54f1a2998145f021a00029cd5031a03534b62a800838258207fcfa74079a45f096867829a1ce29120b19c5ee1b507e17359eaa011e4f3586900825820a5dea06fbf0035b754ca9d92e02763ee6cbe34f74da56f7badf2f7f7cad00abc02825820a5dea06fbf0035b754ca9d92e02763ee6cbe34f74da56f7badf2f7f7cad00abc0101858258390170e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a721e78aae7c90cc36d624f7b3bb6d86b52696dc84e490f343eba89005f1a002625a0825839017db1b08810afe40d326c07e47ce6eea5a3122b853a4d5bfcf4d5af8531b0522ffdac037284c710198ea2b1d5165d46a60d7d55f711db3a091a00393870825839018a21d586f2064cc4c9b6fda42c57d16ff9f73dc3229313d8094c6251d13f7867b2dd7c01f606f29c177d3c37c8387824195cf29affa9814c1a0713fb3082583901bde2dc96af28d26b621954637f3ccab35fb5911577db98a8d5a04210eb54cdcdcdd44bb8c7055a80acc4a42bad3d6d453d22ec2b3f03c3ea821a001c41caa1581cf4873b426a498350c579690bd1f4a369d5d7b521c778acf322f77334a14a445241504530303939380182583901bde2dc96af28d26b621954637f3ccab35fb5911577db98a8d5a04210eb54cdcdcdd44bb8c7055a80acc4a42bad3d6d453d22ec2b3f03c3ea821a03965d0ca6581c08606a8373e62b0dd72ffbf84696b44adec82e192518743fa7a0971da64a41444148454144343039014a41444148454144353030014a41444148454144383539014b4144414845414431313231014b4144414845414431333835014b414441484541443134333901581c2b62bb0d57c3577d624cb976f58352c38d967a30436a6acad44f23f2a1474445313431363601581cb2d25f829ebb7f4c97b5e847923a1115b23ebf78000722c229c9c9f7a2474452303139363101474452303230333101581cb92f6473f18d4b78733d022fd89f3cacc1484fab6eddfd3c5d4b9494a2474450303632303901474450303632313101581ccf60c43feae693db3c56938f9cbf089033a002d48b571d03a004a73ca54b486f6c7948454144303836014b486f6c7948454144343738014c486f6c794845414431303439014d43726565707948454144303137014d4372656570794845414431323601581cf4873b426a498350c579690bd1f4a369d5d7b521c778acf322f77334a94a44524150453030313737014a44524150453030333936014a44524150453031323233014a44524150453031353635014a44524150453031353831014a44524150453031383832014a44524150453032313832014a44524150453032363735014a4452415045303333373601021a0013b41d031a0353452a075820d36a2619a672494604e11bb447cbcf5231e9f2ba25c2169177edc941bd50ad6c0b5820a390cb9b1ca5559f8ccb4fce8e932b30190609bd089ca6736009e286fbbe525c0d81825820a5dea06fbf0035b754ca9d92e02763ee6cbe34f74da56f7badf2f7f7cad00abc000e81581cbde2dc96af28d26b621954637f3ccab35fb5911577db98a8d5a04210a4008582582069ac9d9b9c9bf256b2b7a8df44a020e7e7fc51f42417a538cb379467d93cef6d03825820623b2335deb865c66de2b6cdbdd2c41068d36f9d050ac429af95dbca65d7d4a60082582065f1d15a105a4d640275c98fe6402aba3a2fa008cfc1d2dc01d422b9f36d421301825820952cbe35fb72c65eb9d678224f464bcb8809e78c9945d76f76a40b59b150183702825820da8229931c2948b634534a1a5b28f4038b9859c559bc293b8e79ac4f9ef433d101018382581d61bb5370358b0709d8f740efaadacea6f52e8f9766394307066b0b3cad1a11e1a300825839016fb66b1e8f5e381da5e2aff449e9a8ab4c5ead524ded8bd66ec6e12eb3d3211ab3cad95e2da949efbc7a441ab71741eff8951ae25ae84a1e821a0036319ea6581c3f75c1332868430e28e156f6309836de8df19b620ab604c166741836a5505468654d616e6472696c6c7a3634303401505468654d616e6472696c6c7a3634393601505468654d616e6472696c6c7a3834393601505468654d616e6472696c6c7a3835343001505468654d616e6472696c6c7a3836383701581cc412aa3c70a343c11bd62f6b5b0f15cc08269dda96436a251114113da24e526574726f416c69656e31323138014e526574726f416c69656e3137313101581cce50ff8176d0e2617a97617c5c4a96237efc57c779d4586518b080d5a256526574726f536f756e644e46542053312023323238370156526574726f536f756e644e465420533120233332373001581cd4162cfa26718e8a4357226ffbfc3df6a210b2a4d5727ecbfd1e8eaca14a4655444255443631343201581ceaa972045049185981aca9f4aaad38bc307776c593e4a849d3802a87a34e536d6f6f74685965746933323334014e536d6f6f74685965746936303239014e536d6f6f7468596574693634373901581cf01e07a8038849f9c517e2862b72c2d7a25f632a62b67786ff925794a1524b6e6674794372656174757265733530383501825839016fb66b1e8f5e381da5e2aff449e9a8ab4c5ead524ded8bd66ec6e12eb3d3211ab3cad95e2da949efbc7a441ab71741eff8951ae25ae84a1e1a0e5c4295021a0002fbe1031a0353921ea40094825820d71ca31e04c5817553ad6962013f7a99abedfd96ff8b986bdaba4f08f6bdce6a0182582055f2a8107998409b049d6dd888e2e0341bb63d7dc8a3f4f6c4ecc947df85af8e00825820663c87ee523ba3f159e11d3786413860ec9dfc6a6e0c2d16d66f709e1c9057bf00825820c757a365adc455bae537ce0436c8efab64781b5287640ab1fb5fba668b3d868000825820aa35f26f40ff71b33590981493698d8a661617304835ac921fb7fda044c0a8140082582087914131d9642b754b6663d66927bc392576578a54da824caf57ec0397ed158900825820992f53d9540cbb7e90ef4503b3829f1c10532f8d3f663c71f040b52b75b714b900825820628c4398451c9a4bd6610a1f0d679804b96829c98c0fe574a36c321a714a072f008258207189fecf2038a9d0b2f87af88a268661a4c75bed800fe3ce00e1d48132758dfc008258201aed4e0cd04e015256e1e6ac0c26f9340dcee1484c006934078186063dcaf05100825820f7a8a260784c83a1f21a1f354a99aaabc4956db7a028cbc53eb8e47b793163a3008258201dd3a0bce2d329f2b23bf0da615ea31f74a0d550c23b5bad20cf6bfa5b37f89e0082582078f58d371ae144bab01bc0cc0f745261ca24ea270f0a97e3a39fdb28a9d0c5e8028258209e733b127cc3649d21c4422d86b472167bc1363b86eb5baedd00007e302e4343028258206bdd45c6d64abe921d12cc7e5b851445f695048be5d12caedee6813e028c97690282582051cf57dc5f9518eeb3df1f24f851147a71895c4d6247ff7026cf4c3a856ee5c102825820810aaae80eefa2f76a7fc6dcadd09855a54fd49a3290c8e55b0f8c145986b8190282582076e0cdc0b4ea13a325062443f50423250adc2b9a9077fa030a2ac63f6b39f125028258202c02e0cdbdadada0994131aa1bd105597dc1fb388f287ac8a8ff0ac5e511bcf0028258202b01df84c0f9301423f1cfcd6ed3c5d09cff6e79fdcf2a2fc1e187c671a51c4302018282584c82d818584283581c1036048031a251226ae64e8207aa2086749f4a6252a434b81df994f7a101581e581c7d2bfc52548626c1f7d33374974ec1ab435e642f9968b2d7687b30f4001a401e90c01a883255408258390152e780849fa5e1b3ebee54e45000273b1b8437f425a9d4f2d0912f939c6dfdc1d1763c588eb21f43f2de74a4cca69ab575dc6c6d1924acdb1a202ea3e7021a00030a51031a0353921ea40081825820ab27f4ae713e5c0c17a2edeb983e69fbc6ba47480d3077020992925f65a4611200018282581d6124d274bfd913b241a8cca20c6977775718fddb8f3763f1d365c854451a001e8480825839018764212f3eeed57692a6419c0c4400226a3a86908369c6c0cfae81e93471ee5d3ef2f5d2a97298909ead1ff8ba3de58aa1c448fe464df2b31a39f2f3dd021a00028cad031a0353598b95a40081825820d2beea31ad3bbc59b0d50a84a9395e9f55dca859ac7a78da7b0c1ea946fdd36358408dabde262f253480ba0be1ebcbb83a6ddd411a4eb97451cfae1b20172de61ecea3ceb87c2f4087bd016c19aeab5eed932adf9715c1e0024885e61c84fc58c803038359014f59014c01000032323232323232322223232325333009300e30070021323233533300b3370e9000180480109118011bae30100031225001232533300d3300e22533301300114a02a66601e66ebcc04800400c5288980118070009bac3010300c300c300c300c300c300c300c007149858dd48008b18060009baa300c300b3754601860166ea80184ccccc0288894ccc04000440084c8c94ccc038cd4ccc038c04cc030008488c008dd718098018912800919b8f0014891c57c8e718c201fba10a9da1748d675b54281d3b1b983c5d1687fc73170014a0266008444a00226600a446004602600a601a00626600a008601a006601e0026ea8c03cc038dd5180798071baa300f300b300e3754601e00244a0026eb0c03000c92616300a001375400660106ea8c024c020dd5000aab9d5744ae688c8c0088cc0080080048c0088cc00800800555cf2ba15573e6e1d200201591c67591c6401000032323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232222323232533533355333573460c60042646424446600200a0086eb4d5d09aba25002375a6ae85400454ccd5cd1831001099091118010021bad357426aae7800c54ccd5cd1830801099190911198018028021bad357426ae894008c0c4d5d0a80082d1119191a826111111a80391191111aa99a9823006108008b1119191a9a9a80102f82c911919191919191aa99a982d89119982f91299a9981f28069a80103289980200100088008008020b03b1111919191919191919191919827a99a8040a99aa80e8999ab9a308e0133034307307b3307c0690090690660020023304f33355307307b3057055305453353502822335002066206921001163501122222220753304f35350112220890122350012322533355333500a2153335004215333500c2130054984c011261533350052130054984c0112603904915333500b2130044984c00d261533350042130044984c00d26038153335003204a037049153335003215333500b2130044984c00d261533350042130044984c00d2603804815333500a2130034984c009261533350032130034984c009260371533500106807c07c068253335002215333500a2153335004213330360380020011616160481533350092153335003213330350370020011616160470483304f3304b012330670090243304f3304e3305e01302248008cc13ccc138cc17802408920023304f3304e3305e306c01100e3370200203866660fc4444a66a0062a66a00426a00244444660b0660ae00a660ce024050660b0660ae008660ce02404e660b0660ae006014660b0660ae004660ce02402e660ae002608601811802442a66a0082c442a66a00e2c442a66a0102c44266601800600264646464646464646a6660ec00c01004a444444a66a660e0660a2004900019828800a40002c266666a00646aa0184444446a03c444446a0384446a09e4444464646464646464646464a66a6610e02660d600403c6610e02a66a660da0140062a66a661060201c0e026610e026610c026612c020220e066e00cdc080500180c19843009984b008088230010998438099843009984b0080883800c198438099843009984b00808823001198430099b8100a003330960101100e153353306d008350040a60115335330830100f07013308701330860133096010110703370066e04020d401029804060cc21804cc258040441180084cc21c04cc21804cc258040441c0060cc21c04cc21804cc25804044118008cc21804cdc08041a802053009984b008088078998438099843009984b0080882300119843009984b0080883800c19843809983f80900e1983f00800d8991919199998568080180119b803370003000a00266e0005c0054cd40104c0a8cdc1001801080b299a8018999981400a80c80c00b8a400066e0005c010cdc000b9a802053008b18138051a80103d9a800852009aa99aa999ab9a33712002900004b808992999ab9a33712002900004c008992999ab9a33712002900004c808984d0099985b00801801000a999ab9a3371200800c2008200c6a00415002420022c168026a00215602a666ae68cdc48008018a999ab9a337100020062661460200466e0ccdc1001008008899851808010020998518099b833370400802202000866e0ccdc1000807008299a9983d803834099b813308e010230073370002202026611c0204600e66e0ccdc1000806006a99a9983c802033099b813308c010210043370001e01c26611802042008446aa01a4444446a03e444446a03a4446a0a044444646464646464646464a66a6610e02660d600403a6610e026610e026610c026612c0202008c0046610c026612c020200e002e6610e02660fe022036660fc01e0342646464646666615c0200600466e00cdc000c00300099b8001700153350051302b33704006004202ca66a0082666605202a03203002e290001a801057009a80085880a99a9998340418080700f0998548099b800160070151330a9010163370002a00e2c604e01266e0ccdc100080919b810020013330220030013370666e04c090cdc019b820020023370466e08cdc119b824802120ca0f483403c01000cc2f00400ccdc1240089065079a80283c985d008009a80185080a99a9983e000834899b813308f010240013370002202026611e020480026a00213c026aa66a6660be0f400a02a266615e0200a01a018266615e0200801801a4446a006446661680200a008006446aa01a4444446a03e444446a03a4446a0a04444464646464a66a6610402660cc0020306610402a66a660fc0320d626610202661220201603266e000040484cc20804cc20404cc2440402c064004cc20404cc2440402c1ac048cc20804cc1e8030058cc1e402805454cd4ccc18c1f80240644ccccc29404cdc000880119b8101000100f00e00d1333330a5013370202200266e0004000803c03803458ccc07cd400c28404d400c1dc0054cd4cc1f00041a44cdc0998478081200099b8001101013308f010240013500109e0135533533305f07a00501513330af0100500d00c13330af0100400c00d22235003223330b4010050040032235500d2222223501f222223501d2223505022222323232323232533533084013306c00100433084015335330800101b06d133084013308301330930100d01b337000340286610602661260201a00a66e0401000454cd4cc200040141b44cc21004cc20c04cc24c0403406c068cc20c04cc24c04034014cdc019b81004001014133084013308301330930100d01b01a33084013308301330930100d005337020080026610602661260201a0da0286610802660f801c030660f601802e2a66a6660ca1000201603626666614e0266e0004c004cdc080900d0088080078999998538099b8101301a3370002400202202001e2ca66aa666ae68cdc400c8008984c0099b803370666e08cdc100100ca41a01e66e08cdc080080ca41941e900104b80908008b1a80203c1a80185080a99a9983e000834899b813308f010240013370002202026611e020480026a00213c026aa66a6660be0f400a02a266615e0200a01a018266615e0200801801a4446a006446661680200a008006446aa01a4444446a03e444446a03a4446a0a04444464646464a66a66104026610402660cc006032660cc0040306610402a66a660fc0120d6266104026610202661220201601266e0000c048cc20404cc2440402c02000854cd4cc1f80201ac4cc20804cc20404cc2440402c020cdc00010091984080998488080580480189984100998408099848808058048019984100998408099848808058040011984080998488080583580919841009983d00600b1983c80500a8991919199998540080100199b803370202400e00266e000440054cd40104c094cdc10010018808299a801899998118078098090088a400066e04048010cdc08080010b181100219b833370400401c01a66e0ccdc1000807006198468081101e9111919b833370400200666e00cdc1002241a01e00266e0800520ca0f22225333573466e2401120001480004c94ccd5cd19b890010051480004c94ccd5cd19b89001480005200010013370666e08008cdc080080299b80337040029005002980299b820030022325333573466e20009200009701153335734613802004290000a999ab9a309d0100214800854ccd5cd184f008010a400426600200466e00cdc18012400890011848009112999ab9a3371000200426600600266e0ccdc019b8300400100148010400894cd40048224041d04ccc1c400400c0808c94ccd5cd184c809aab9d001132323232323232323232323232321233333300100a009008005003002375a6ae84d5d10011bad357420026ae880214ccd5cd18538080109919091111198020038031bad357426ae894008ccc1ddd73ae35742a0022a666ae68c298040084c8c8488888cc00401c018dd69aba135744a0046eb4d5d0a8008a999ab9a30a5010021321222223005006375a6ae84d55cf0030a999ab9a30a4010021323212222233002007006375a6ae84d5d1280119983bbae75c6ae85400454ccd5cd18518080109919091111198018038031bad357426ae894008ccc1ddd73ae35742a0021380226aae78014d55ce80219839bae3574200a60de6ae84014c1b8d5d08029baa357420026ae88004d5d10009aba200135573c002124026ea8004d40041f0d401020004c1a0488ccc1b0894cd4cc14cccc0d0190d40081f0d406c1f0ccc0d012cd4d40081e01c80b04cc0100080044004004048c1a0488ccc1b0894cd4cc14cccc0d012cd40081c8d40381c8ccc0d012cd40081c80b04cc0100080044004004044ccccc1c8cc17804c07ccc17804c078070cc17804c03806cd4008881bc54cd401800854cd5406c4ccd5cd18458099819183883c9983d03380383383200119982f82a8038070a99a8020a99aa80c8010999ab9a308b0133030306f07733078065005065062002304e33307922322325333573466e1c010dc680388010a999ab9a30890100415333573466e1d205a500313370290001980299b800044800800800400454ccd5cd19b885002481805854ccd5cd19b8950023370090302402426600866e0000d20023370066e08005201433702a00490300b099b8e004001480012000133357346110026605c60da0ea660ec0c60060c60c0a66a6660b409a0346a6a66a60e40e80120400da0d00f42c666ae68cdc49982b000803240000bc0c26a0020cca66a60bc2446660c444a66a66082a0206a0040d0266008004002200200200e2c0f2660c602a6a0080cc60bc00460b60026a0280ce660aa0020246a6a0080c20b826a6a0020bc0b0a66a609001c420022c2a66a6605c0040360b426605c002036602c00e6064010464646a096444446464646464646606a6606400a0046606a660626609a00a0166609a0040166606a66074a66a66608e0740106a6a66a60be0c260a200801c0b40aa0ce2c00e6606aa66a6605c01a0020ba2660686040002900019819182900202799982381e8010019a800829a99a982589119982791299a998189a9a9a80382d82a82f9a9a80102a82f899802001000880080098290018b0331a80402d1a9a80082a828299a981f803108008b180a80318188039119191a82611111299a9a803910141099191919191919191919191981e1981a8099998278228018029981e1981c0049982a0010089981e1981e1981d998259a80082e0040039981e1981a1a80082d9a806032998199a8008191a8060309981e1981c99aa983183411a800911983080119aa983303591a8009119832001199a8009b8048001c0119b8000148000004cc0f4028d402088cc1b8cc180008cc1b8cc180004020160160008cc0f0cc1054cd4ccc138104038d4d4cd4c1981a0c1600140541841701b858034cc0e4c164014158cd4c19419c00c04cd40041694cd4c148488ccc158894cd4cc0d4d4d4030188170d40081704cc010008004400400400c581b4c158004d4034180ccd408016cd4d408017c16c004cc11000c004cc158020d4004164cc12c004020d4d400415c1494cd4c10401c8400458110c05801cc0c8020448004584d55cf0011aab9d001375400446a0020ae444a66a6600600400206c094246666666600203c44a666ae68cdc38010008020a999ab9a3371200400202c02a44666ae68cdc400100081d81c003802801912999ab9a337120040022002200444a666ae68cdc4801000880108008881e11199ab9a3371000400206a070446666aa0046607e44666a00c0900020046a0080844466e0000520020014800088ccd5cd19b890020010330363303b22230033002001200122333573466e240080040d00c4cc0e522010048810033038330387009000381235001220382325333573460a06aae740044c8c8c8c8cc0f14ccd5cd182a1aab9d00313232323232323232323232323232323232323232323212333333333300100d00c00b00a0090080070050030023022357426ae88008cc078cc0f1d710009aba10013574400466038eb8d5d08009aba200b5333573460c86aae740244c8c8c8cc13d4ccd5cd18339aab9d002132330503301c75a6ae84004c06cd5d09aba200135573c0040c0a666ae68c19cd55ce800899198281980e3ad3574200260366ae84d5d10009aab9e00106037546ae84d5d10011baa357420026aae78024174cc064cc0dc0d1d69aba100a330180193574201466602ceb8014d5d080519980abae004357420146602a0046ae84028cc0508c94ccd5cd18301aab9d0011323304930193574200260086ae84d5d10009aab9e00105937540026ae840288c94ccd5cd182f9aab9d0011323233305830313574200466602ceb8014d5d08009981a3ae357426ae88004d5d10009aab9e001058375400266022eb9d69baa357420026ae88004d5d10009aba2001357440026ae88004d5d10009aab9e00304d5333573460ae00226424444600800a60166ae84d55cf0010a999ab9a30560011321222230020053025357426aae7800854ccd5cd182a80089909111180080298061aba135573c0042a666ae68c1500044c848888c00c014dd71aba135573c00409a6aae74004dd51aba1357440046ea8d5d08009aab9e0010493754002464a666ae68c1400040f454ccd5cd18278008148241aab9d3754002446464a666ae68c14800402c54ccd5cd18288008980d18021aba135573c0042a666ae68c140004028124d55ce8009baa00122322300237560026084446666aae7c00480c08c8cc11ccc0e4c018d55ce80098029aab9e0013004357440066ae840081048c88c008dd60009820111999aab9f001202e23304430043574200460066ae880080fc8c8c8c94ccd5cd182980108911101b0a999ab9a30520021104a15333573460a20042646424444444660020120106eb4d5d09aba25002375c6ae85400454ccd5cd18280010991909111111198010048041bae357426ae894008dd71aba15001153335734609e00426464244444446600c0120106eb8d5d09aba25002301e35742a0022a666ae68c1380084c848888888c01c020c078d5d09aab9e003153335734609a00426424444444600a010603c6ae84d55cf00182309aab9e00235573a0026ea80048c94ccd5cd18251aab9d001132330333004357420026eb4d5d09aba200135573c0020866ea80048c94ccd5cd18249aab9d0011375c6ae84d55cf0008211baa0011102c11001222001225335002215335002213301200200102015335001202003322350022235003223333008004003002001223500222222350062222253353300f00a005153353300f00900415333573466e1c02000c54ccd5cd19b87007002153350062153350022135002223500222350052235002225335333301700600500200115335007215335004213302400200103215335003203204503102815335001202803b027027027027222232335005233500425333573466e3c00800400c08480908cd4010809094ccd5cd19b8f0020010030211533500321533500221335002233500223300900200122202722233500420272225333573466e1c01800c54ccd5cd19b8700500213301100400102602601f15335001201f03222335002233500223300e00200120202335002202023300e00200122350022235003225333573466e3c0100084cc03c00c00407888ccd54c0a40c4c03400c8d400488ccd54c0b00d0c0400188d400488ccd40048cc02d200000100a23300b00148000004cc018008004cc09000807088ccd5cd19b8700200101d01a2253350021001016223355302802d2350012233026002333500123355302c031235001223302a002300c0010012233300800b00200123355302c031235001223302a002300b00100133300300600200122233355302702d0313355302802d2350012233026002300800133355302702d2235002225335333553029031300d00b235001223300a002005006100313303500400301b0013355302802d23500122330260023303322533500113009003221350022253353300c002008112223300200a0041300600300400221222300100421222300300422333573466e3c00800405c050cc070004044894cd400808c40048cc06c88ccd400c090008004d40040788c94ccd5cd18199aab9d0011323232323333302033300b75ceb8d5d0802199805bae75c6ae8400cdd69aba1002375a6ae84004cc0288c94ccd5cd181c9aab9d00113233022300a357420026601aeb8d5d09aba200135573c0020646ea8004d5d09aba2001357440026ae88004d5d10009aab9e00102c3754002464a666ae68c0c8d55ce8008991980d98029aba100133006004357426ae88004d55cf0008159baa001232325333573460660022646464646424466600200c0080066eb4d5d09aba2002375a6ae84004d5d10011bad357420026aae7800854ccd5cd18190008980698021aba135573c0040566aae74004dd5000919192999ab9a30320011321223001003375c6ae84d55cf0010a999ab9a30310011300c375c6ae84d55cf0010151aab9d0013754002446464a666ae68c0c40044c030c010d5d09aab9e00215333573460640020160546aae74004dd5000911192999ab9a303035573a00226466032600a6ae84004c010d5d09aba200135573c0020526ea800488d400488c8cc09488cd400520002235002225333573466e3c0080244c01c0044c01800c014c09088cd400520002235002225333573466e3c00801c40044c01800c8d400488d40088888888888cccd402c8054805480548ccd54c0880a80508d4004894cd4cc0480080104c05800c05402c894ccd5cd19b8f3500201a3500101a1333573466e1cd4008058d400405802c02001488c07c894cd4004018884d4008894cd4cc02000801c4c02c0044c01800c888d40088894cd400484d401488888888894cd54cd4ccd54c0880a80508d4004894ccd5cd19b8f00200e130160030150022130143500102401221301200116161003212230020033300c225335002210031001001100e223301922533500102122135002225333573466e3c00801c54cd4c024488ccc03488d4008894ccd5cd181880089980300200188018008018129109a80111299a80189980b0058011101589803001801119a80080c001080791180b11299a800880191099803001180200091a800911111111100511a8009100e11a80091111111110049110019110011999980124411c5178cc70a14405d3248e415d1a120c61d2aa74b4cee716d475b1495e0048811ce0baa1f0887a766daf5196f92c88728e356e71255c5ad0086660748400330014891c3f6092645942a54a75186b25e0975b79e1f50895ad958b42015eb6d2004881074d494e535741500048811c2f2e0404310c106e2a260e8eb5a7e43f00cff42c667489d30e179816004881054f574e455200221233001003002222221233333001006005004003002300b22112225335001135003006221333500500c300400233355300700f0050040012200130092211222533500110022213300500233355300700d005004001300822112253350010052213300f30040023355300600b00400111001220023005221225333573466e20005200013005490103505436001533500213005491035054370022153335734602c0062004266a600c01000266e0400d2002253357380022c240026004444a66a00220044426a004446600e66601000400c00200660024444a66a00220044426a00444a666ae68c0500044ccc02001c01800c4ccc02001ccc028ccc02c01c00800401800c8c8c00400488cc00cc00800800488488cc00401000c88848ccc00401000c008854cd400458884d4008894cd400c400803054cd5ce2481035054310016221533500110020071533573892100162222222200722222220043704904d0f910b1b8748000dc3a40046e1d2004370e90031b8748020dc3a40146e1d200c159032d59032a010000323232323232323232323232323232323232223232323232323253353300c5335300a12233300d223232533553355333573460400022602a6eb8d5d09aab9e002153335734604200202803c4224400402826600c00800620066aae74004dd51a8011110008008030b110a99a8008a99a9998078072451c5178cc70a14405d3248e415d1a120c61d2aa74b4cee716d475b1495e0033301275c0066a00444400442a66a601a244666020446a00444a666ae68c0900044cc01801000c400c00400c580685806d4cd4ccc034030cccd54ccd5cd19b87480180084c848888c010014d5d09aab9e00315333573466e1d2004002132122223002005357426aae7800c54ccd5cd180d8010990911118008029aba135573c0062a666ae68c0680084c848888c00c014d5d09aab9e0030182675c4c4c666020eb8004d54014888888888801c854cd4004580605844800458cc03dd73ad35573a0026ea8d400c88004c038dd61aa80091111111110048992999ab9a301635573a00226464646464646464646464646464646464646424666666666600202602201e01a01601200e00a0060046ae84d5d10011aba1001357440046ae84004d5d10011aba1001357440046ae84004d5d10011aba1001357440046ae84004d5d10011aba1001357440046ae84004d5d10011aba100135573c0020286ea8d4004880094ccd5cd180a1aab9d0011323300c357420026ae84d5d10009aab9e0010123754002466a00201a01644601844a66a00220064426600c004600800244666ae68cdc780100080509100091180511299a8008029109a80111299a9980400100389805000898030018891000909118010019119118011bab00130072233335573e0024012464660186600e600c6aae74004c014d55cf00098021aba20033574200400e4424660020060046006446666aae7c00480148c8cc0214ccd5cd18061aab9d0011323232323212333001005003002357426ae88008d5d08009aba2002357420026aae78004028c010d5d10019baa357420040062400224400446460020024466006600400400244244660020080064426a00444a66a006200400c2a66ae7124010350543100162216370e90001b874800810487d8799fd8799fd8799f581cc7b903384f76c40512a0b94a9b3ee72ff77ee966bcc69f789de7b852ffd8799fd8799fd8799f581ca7ab7f4dc36a56ac80766b0dfdd32f76796da3606576c1785d15e89effffffffd8799fd8799f581cc7b903384f76c40512a0b94a9b3ee72ff77ee966bcc69f789de7b852ffd8799fd8799fd8799f581ca7ab7f4dc36a56ac80766b0dfdd32f76796da3606576c1785d15e89effffffffd87a80d87b9f01ff1a001e84801a001e8480ffd8799fd8799fd8799f581c4085bf7ec608239db142099bb89c221eda702d3aeaf44356017ed996ffd8799fd8799fd8799f581cd72d1c781b5a4cfe4aaa274455ef6e680007ce06b990178cb2ebbc09ffffffffd8799fd8799f581c4085bf7ec608239db142099bb89c221eda702d3aeaf44356017ed996ffd8799fd8799fd8799f581cd72d1c781b5a4cfe4aaa274455ef6e680007ce06b990178cb2ebbc09ffffffffd87a80d87b9f01ff1a001e84801a001e8480ffd8799fd8799fd8799f581c7ee5fde27c99908259ae989ece4710242aab9b2bbd967684d5de834effd8799fd8799fd8799f581c38e0c3d10f97a8b75494e6cdbf12980fd7f7045682efd2ceb33a1a3affffffffd8799fd8799f581c7ee5fde27c99908259ae989ece4710242aab9b2bbd967684d5de834effd8799fd8799fd8799f581c38e0c3d10f97a8b75494e6cdbf12980fd7f7045682efd2ceb33a1a3affffffffd87a80d87b9f01ff1a001e84801a001e8480ffd8799fd8799fd8799f581c3f97c9b5758ada323696b9fee45a6a98033a4bea9339a0a7cea8a60fffd8799fd8799fd8799f581c99551c803f2c0a473bff152ad39ae4dc18894be7b1fef296a5007232ffffffffd8799fd8799f581c3f97c9b5758ada323696b9fee45a6a98033a4bea9339a0a7cea8a60fffd8799fd8799fd8799f581c99551c803f2c0a473bff152ad39ae4dc18894be7b1fef296a5007232ffffffffd87a80d87b9f01ff1a001e84801a001e8480ffd8799fd8799f4040ffd8799f581cb34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757a45634e455441ff1aa628990800d87a80ffd8799fd8799fd8799f581cef4593b557e1d0ec15a4a53c8224427a2378c78ae58a632b4e0bb453ffd8799fd8799fd8799f581c17676b6a36859b3ef3f1f069fd424f2f2f0d0429b6bda3da0c2d1028ffffffffd8799fd8799f581cef4593b557e1d0ec15a4a53c8224427a2378c78ae58a632b4e0bb453ffd8799fd8799fd8799f581c17676b6a36859b3ef3f1f069fd424f2f2f0d0429b6bda3da0c2d1028ffffffffd87a80d87d9fd8799f581cb34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757a45634e455441ff1a00050e0bff1a001e84801a001e8480ffd8799fd8799f4040ffd8799f581cb34b3ea80060ace9427bda98690a73d33840e27aaa8d6edb7f0c757a45634e455441ff1aa612fae500d87a80ff0587840000d87980821a0001403d1a02b29626840001d87980821a0001403d1a02b29626840002d87980821a0001403d1a02b29626840004d87980821a0001403d1a02b29626840005d8799fd8799fd8799f581c2ebacbaf16275a0184357de07c81d4a895f29343c235974f3b4c1d7dffd87a80ff03ff821a005a9c441a888bbfa5840006d87980821a0001403d1a02b29626840100d87980821a0005e9021a095494b6a100818258203d4f0d2a16a0d79c55cf63e448205b2c6fa0272392daccb7776b857e3c20d6265840c97050c1c63e657020ecf76e453b78bae1d5380bd10c391141bc6a2d474c5888a78b7edb697f091ba5905b7ec8e331105bf5d9ae05b1cf174f63a24d7bab770ca10081825820cd745f064786bb94db7f7cb081a699bf25a62f6d8b92a3e691dd9d75c6fe5ad55840234d3f717e02101f56eb38945ab1e615515c8f599a4fddd85559a9b7ea9c4b9bc8cef389334501aef0768d7270ccf977330b70a22464b551b4804a492a835708a1008182582055e73b87ec5e21679b50665307f4b21e1090e8a82169a4314cba7052200132ad5840a56293fe92215f6db8a8c50eff635931ad9eb2d17ea6e80da1d7ee783c24af59464fbd0b1f2620d81746e81e8df29476945b32ce2db7721f013e7478123a0b07a10081825820c337babb04ec554987f2e87fbcac50d74d599a73b2036fca955eb5cbdb43462d5840a9bfee1501539f63ffee4f69a43aaf8653cfc65812fc14524753daa42b7febdecc21150bc55a9548a342bc69d05159d36a5774dad3c8031251046ab6264ef905a40081825820448ecce37cacbf613a1de96b1d461ace81b19861cc661cc6be0109a2e547a633584002292170f828c4b395d25c487fb65ad48bde97d1c7b6e814a9e3aecd17657762a8c734e2f58e2310ac7eee1653aa2e26fd919fef8e8c7dda484edf7698b8590003815912585912550100003323322333222332233223232333222323332223233333333222222223233322232333322223232332232333222323332223232332233223232333332222233223322332233223322332222323232323232232232325335303833300d3333573466e1cd55cea805a400046666664444446666660ba00c00a0080060040026eb8d5d0a8059bad35742a0146eb8d5d0a8049bae35742a0106eb8d5d0a8039bad357426ae89401c8d4138d4c13ccd5ce2490350543100050499263333573466e1d40112002205423333573466e1d40152000205623504f353050335738921035054310005149926498cccd5cd19b8735573aa004900011980819191919191919191919191999ab9a3370e6aae75402920002333333333301e33502c232323333573466e1cd55cea80124000466048607e6ae854008c0c4d5d09aba2500223505e35305f3357389201035054310006049926135573ca00226ea8004d5d0a80519a8160169aba150093335503375ca0646ae854020ccd540cdd728191aba1500733502c04835742a00c66a05866aa0b20a2eb4d5d0a8029919191999ab9a3370e6aae754009200023350263232323333573466e1cd55cea80124000466a05c66a08eeb4d5d0a80118261aba135744a00446a0c46a60c666ae712401035054310006449926135573ca00226ea8004d5d0a8011919191999ab9a3370e6aae7540092000233502c33504775a6ae854008c130d5d09aba250022350623530633357389201035054310006449926135573ca00226ea8004d5d09aba2500223505e35305f3357389201035054310006049926135573ca00226ea8004d5d0a80219a8163ae35742a00666a05866aa0b2eb88004d5d0a801181f1aba135744a00446a0b46a60b666ae71241035054310005c49926135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135573ca00226ea8004d5d0a8011919191999ab9a3370ea00290031181198201aba135573ca00646666ae68cdc3a801240084604460946ae84d55cf280211999ab9a3370ea006900111811181a9aba135573ca00a46666ae68cdc3a802240004604a6eb8d5d09aab9e50062350553530563357389201035054310005749926499264984d55cea80089baa001357426ae8940088d4138d4c13ccd5ce249035054310005049926104f13504d35304e3357389201035054350004f4984d55cf280089baa001135573a6ea80044d5d1280089aba25001135744a00226ae8940044d55cf280089baa0012212330010030022001222222222212333333333300100b00a00900800700600500400300220012212330010030022001122123300100300212001122123300100300212001122123300100300212001212222300400521222230030052122223002005212222300100520011232230023758002640026aa072446666aae7c004940388cd4034c010d5d080118019aba200203323232323333573466e1cd55cea801a4000466600e6464646666ae68cdc39aab9d5002480008cc034c0c4d5d0a80119a8098169aba135744a00446a06c6a606e66ae71241035054310003849926135573ca00226ea8004d5d0a801999aa805bae500a35742a00466a01eeb8d5d09aba25002235032353033335738921035054310003449926135744a00226aae7940044dd50009110919980080200180110009109198008018011000899aa800bae75a224464460046eac004c8004d540cc88c8cccd55cf80112804919a80419aa81898031aab9d5002300535573ca00460086ae8800c0b84d5d08008891001091091198008020018900089119191999ab9a3370ea002900011a80418029aba135573ca00646666ae68cdc3a801240044a01046a0526a605466ae712401035054310002b499264984d55cea80089baa001121223002003112200112001232323333573466e1cd55cea8012400046600c600e6ae854008dd69aba135744a00446a0466a604866ae71241035054310002549926135573ca00226ea80048848cc00400c00880048c8cccd5cd19b8735573aa002900011bae357426aae7940088d407cd4c080cd5ce24810350543100021499261375400224464646666ae68cdc3a800a40084a00e46666ae68cdc3a8012400446a014600c6ae84d55cf280211999ab9a3370ea00690001280511a8111a981199ab9c490103505431000244992649926135573aa00226ea8004484888c00c0104488800844888004480048c8cccd5cd19b8750014800880188cccd5cd19b8750024800080188d4068d4c06ccd5ce249035054310001c499264984d55ce9baa0011220021220012001232323232323333573466e1d4005200c200b23333573466e1d4009200a200d23333573466e1d400d200823300b375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c46601a6eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc048c050d5d0a8049bae357426ae8940248cccd5cd19b875006480088c050c054d5d09aab9e500b23333573466e1d401d2000230133016357426aae7940308d407cd4c080cd5ce2481035054310002149926499264992649926135573aa00826aae79400c4d55cf280109aab9e500113754002424444444600e01044244444446600c012010424444444600a010244444440082444444400644244444446600401201044244444446600201201040024646464646666ae68cdc3a800a400446660106eb4d5d0a8021bad35742a0066eb4d5d09aba2500323333573466e1d400920002300a300b357426aae7940188d4040d4c044cd5ce2490350543100012499264984d55cea80189aba25001135573ca00226ea80048488c00800c888488ccc00401401000c80048c8c8cccd5cd19b875001480088c018dd71aba135573ca00646666ae68cdc3a80124000460106eb8d5d09aab9e500423500a35300b3357389201035054310000c499264984d55cea80089baa001212230020032122300100320011122232323333573466e1cd55cea80124000466aa016600c6ae854008c014d5d09aba25002235007353008335738921035054310000949926135573ca00226ea8004498480048004448848cc00400c008448004488008488004800488888848cccccc00401c01801401000c0088004448c8c00400488cc00cc008008004cc8ccc888c8cc88c8cc88c8c8c8c8c8c8c8c8c8c8cc88ccc888ccc888ccc888cccccccc88888888cc88ccccc88888cccc8888cc88cc88cc88ccc888cc88cc88ccc888cc88cc88cc88cc88c8c8c8cc88c8c8c8c8cccc8888c8cc88c8c8c888c8c8c8c8c888c94cd4c13c00c54cd4c1914cd4c190ccd5cd19b8733301c33355301012001500c50283300b533535026353020500122222222220031350604988854cd4d40a00044008884d41912650013530520092222220043530520092222220034800819819441984cd5ce2481154e4654206e6f742073656e7420746f206275796572000651533530645335306433054301d33301c33355301012001500c50283300b35305200922222200650014881004881003305833058301d500850045006106613357389210f53656c6c6572206e6f742070616964000651533530645335306433054301d33301c332233355301212001500e502a3300d001002500100a489004881005004106613357389210c466565206e6f742070616964000651533530645335306453353064333573466e24d4c1480248888880052000065066133054301d33301c33355301012001500c50283300b353052009222222002500148900488100500610661066133573892113526f79616c6974696573206e6f74207061696400065153353064333573466e24c8cc8004c8004ccd54c05c48004c8cd407088ccd407000c004008d4064004cd406c888c00cc008004800488cdc0000a40040029000199aa98080900091299a9833299a9a8179a98131a981200111000911000908348833899a8148010008800a8141a98101a980f001110011111111111005240040cc0ca20cc266ae7124011a4d6f7265207468616e206f6e652073637269707420696e70757400065106510651065106515335306433223530220022222222222533535039333553022120013350262253353503b002210031001503a253353071333573466e3c0300041cc1c84d40f0004540ec00c841cc41c54004d4c14802488888801841984cd5ce2481204e6f2072696768747320746f20706572666f726d207468697320616374696f6e00065135301d001220021533530603305150565001150011505613305233057480a120d00f3018500315335305e3304f5055500115001150551330503305535304b002222222001483403cc05940044d4c12800488888801488d4c05c0048888888888ccd54c0444800488d4c09c008888d4c0c400c88cd4c15000894cd4c1b4ccd5cd19b8f01400106f06e13350300050071007200750290091223355300b120012353550200012233550230023355300e12001235355023001223355026002333535500d0012330564800000488cc15c0080048cc15800520000013355300b12001235355020001223355023002333535500a00123355300f120012353550240012233550270023550110010012233355500801600200123355300f1200123535502400122335502700235500f00100133355500301100200111122233355300612001501d3355300b1200123535502000122335502300235500d001333553006120012235355021002225335305e33355301012001323350152233353500b0032200200200135350090012200133500922533530600021062100105f235355024001223300a00200500610031335021004003501e0013355300b120012353550200012232335502400330010053200135506022533535021001135500d0032213535502600222533530633300c002008133550120070011300600300212212330010030021200132001355057221122253353501b00110022213300500233355300712001005004001112122230030041122122233002005004112122230010041120013200135505222112253353501500115017221335018300400233553006120010040013200135505122112225335350150011350060032213335009005300400233355300712001005004001123535003001220011235350020012200212212330010030021200122333573466e3c008004134130888c8c8c004014c8004d5413c88cd4d4040005200022353550150022253353052333573466e3c00802415014c4c01c0044c01800cc8004d5413888cd4d403c005200022353550140022253353051333573466e3c00801c14c14840044c01800c8cd411800520022212330010030022001222222222212333333333300100b00a00900800700600500400300220012212330010030022001222123330010040030022001112200212212233001004003120011122123300100300211200122123300100300220011212230020031122001120011221233001003002120011221233001003002120011221233001003002120011212223003004112220021122200112001212222300400521222230030052122223002005212222300100520012212330010030022001212222222300700822122222223300600900821222222230050081222222200412222222003221222222233002009008221222222233001009008200121223002003222122333001005004003200121223002003212230010032001122002122001200122222212333333001007006005004003002200122353500f002223535011003223253353017333573466e1c01400c06406054cd4c05cccd5cd19b870040020190181019150011500115335301633330080040030020011017101822353500e0022235350100032233330070040030020012222333573466e24cdc100200099b8200200301401322353500c00222353500e003223300c3370400800466e0800c00488d4d402c00888d4d403400c88cc02ccdc099b820040013370400400666e0800c00488cdc00010008998012410112f49001099800a410112f49001111980199b820025335300a333573466e1c005200000c00b14800054cd4c028ccd5cd19b890014800002c03052002133702900024004a66a6014666ae68cdc4000a4000018016266e052000001100122325335300a333573466e1c009200000c00b135006353004335738920103505433000054984cd4020cdc2001a80099b84002500113300853353009333573466e20009200000b00a13370290000010801299a9804999ab9a337100029000005805099b8148000004400448004800449848848cc00400c00848004c8004d540108894cd4c010ccd5cd19b870014800001801440084cc00c004cdc2801000891001091000900088919180080091198019801001000a451c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a7200010481d866820086581cc2799f74c18260a0f0b6a6fb0f21d6fc130b299a3098bfd6b0cd960c1a054e0840581cdf44bef5a988e0b135145c505d734130f545dc959e764ac14c9ce983581a576f726c646f6643617264616e6f50617263656c303036313931581c68b82dc4fb2d515501728de5bfcb1fd0a47eb3dd628d3340e10afa28c241000581840000d866820180821a009896801ad09dc300a4008182582010c4269883227e2c68a6d395fd19b902544fe46b683c4286217f2224da89e7315840e4feae60fa94483a67ac78acf2de5568efdfea5f20d41d4e7b9dc54bc9550e9773f9696ecb3cb105455f5a875c611f7126830827a5a8ef043892fea065c63a0f03815912585912550100003323322333222332233223232333222323332223233333333222222223233322232333322223232332232333222323332223232332233223232333332222233223322332233223322332222323232323232232232325335303833300d3333573466e1cd55cea805a400046666664444446666660ba00c00a0080060040026eb8d5d0a8059bad35742a0146eb8d5d0a8049bae35742a0106eb8d5d0a8039bad357426ae89401c8d4138d4c13ccd5ce2490350543100050499263333573466e1d40112002205423333573466e1d40152000205623504f353050335738921035054310005149926498cccd5cd19b8735573aa004900011980819191919191919191919191999ab9a3370e6aae75402920002333333333301e33502c232323333573466e1cd55cea80124000466048607e6ae854008c0c4d5d09aba2500223505e35305f3357389201035054310006049926135573ca00226ea8004d5d0a80519a8160169aba150093335503375ca0646ae854020ccd540cdd728191aba1500733502c04835742a00c66a05866aa0b20a2eb4d5d0a8029919191999ab9a3370e6aae754009200023350263232323333573466e1cd55cea80124000466a05c66a08eeb4d5d0a80118261aba135744a00446a0c46a60c666ae712401035054310006449926135573ca00226ea8004d5d0a8011919191999ab9a3370e6aae7540092000233502c33504775a6ae854008c130d5d09aba250022350623530633357389201035054310006449926135573ca00226ea8004d5d09aba2500223505e35305f3357389201035054310006049926135573ca00226ea8004d5d0a80219a8163ae35742a00666a05866aa0b2eb88004d5d0a801181f1aba135744a00446a0b46a60b666ae71241035054310005c49926135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135573ca00226ea8004d5d0a8011919191999ab9a3370ea00290031181198201aba135573ca00646666ae68cdc3a801240084604460946ae84d55cf280211999ab9a3370ea006900111811181a9aba135573ca00a46666ae68cdc3a802240004604a6eb8d5d09aab9e50062350553530563357389201035054310005749926499264984d55cea80089baa001357426ae8940088d4138d4c13ccd5ce249035054310005049926104f13504d35304e3357389201035054350004f4984d55cf280089baa001135573a6ea80044d5d1280089aba25001135744a00226ae8940044d55cf280089baa0012212330010030022001222222222212333333333300100b00a00900800700600500400300220012212330010030022001122123300100300212001122123300100300212001122123300100300212001212222300400521222230030052122223002005212222300100520011232230023758002640026aa072446666aae7c004940388cd4034c010d5d080118019aba200203323232323333573466e1cd55cea801a4000466600e6464646666ae68cdc39aab9d5002480008cc034c0c4d5d0a80119a8098169aba135744a00446a06c6a606e66ae71241035054310003849926135573ca00226ea8004d5d0a801999aa805bae500a35742a00466a01eeb8d5d09aba25002235032353033335738921035054310003449926135744a00226aae7940044dd50009110919980080200180110009109198008018011000899aa800bae75a224464460046eac004c8004d540cc88c8cccd55cf80112804919a80419aa81898031aab9d5002300535573ca00460086ae8800c0b84d5d08008891001091091198008020018900089119191999ab9a3370ea002900011a80418029aba135573ca00646666ae68cdc3a801240044a01046a0526a605466ae712401035054310002b499264984d55cea80089baa001121223002003112200112001232323333573466e1cd55cea8012400046600c600e6ae854008dd69aba135744a00446a0466a604866ae71241035054310002549926135573ca00226ea80048848cc00400c00880048c8cccd5cd19b8735573aa002900011bae357426aae7940088d407cd4c080cd5ce24810350543100021499261375400224464646666ae68cdc3a800a40084a00e46666ae68cdc3a8012400446a014600c6ae84d55cf280211999ab9a3370ea00690001280511a8111a981199ab9c490103505431000244992649926135573aa00226ea8004484888c00c0104488800844888004480048c8cccd5cd19b8750014800880188cccd5cd19b8750024800080188d4068d4c06ccd5ce249035054310001c499264984d55ce9baa0011220021220012001232323232323333573466e1d4005200c200b23333573466e1d4009200a200d23333573466e1d400d200823300b375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c46601a6eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc048c050d5d0a8049bae357426ae8940248cccd5cd19b875006480088c050c054d5d09aab9e500b23333573466e1d401d2000230133016357426aae7940308d407cd4c080cd5ce2481035054310002149926499264992649926135573aa00826aae79400c4d55cf280109aab9e500113754002424444444600e01044244444446600c012010424444444600a010244444440082444444400644244444446600401201044244444446600201201040024646464646666ae68cdc3a800a400446660106eb4d5d0a8021bad35742a0066eb4d5d09aba2500323333573466e1d400920002300a300b357426aae7940188d4040d4c044cd5ce2490350543100012499264984d55cea80189aba25001135573ca00226ea80048488c00800c888488ccc00401401000c80048c8c8cccd5cd19b875001480088c018dd71aba135573ca00646666ae68cdc3a80124000460106eb8d5d09aab9e500423500a35300b3357389201035054310000c499264984d55cea80089baa001212230020032122300100320011122232323333573466e1cd55cea80124000466aa016600c6ae854008c014d5d09aba25002235007353008335738921035054310000949926135573ca00226ea8004498480048004448848cc00400c008448004488008488004800488888848cccccc00401c01801401000c0088004448c8c00400488cc00cc008008004cc8ccc888c8cc88c8cc88c8c8c8c8c8c8c8c8c8c8cc88ccc888ccc888ccc888cccccccc88888888cc88ccccc88888cccc8888cc88cc88cc88ccc888cc88cc88ccc888cc88cc88cc88cc88c8c8c8cc88c8c8c8c8cccc8888c8cc88c8c8c888c8c8c8c8c888c94cd4c13c00c54cd4c1914cd4c190ccd5cd19b8733301c33355301012001500c50283300b533535026353020500122222222220031350604988854cd4d40a00044008884d41912650013530520092222220043530520092222220034800819819441984cd5ce2481154e4654206e6f742073656e7420746f206275796572000651533530645335306433054301d33301c33355301012001500c50283300b35305200922222200650014881004881003305833058301d500850045006106613357389210f53656c6c6572206e6f742070616964000651533530645335306433054301d33301c332233355301212001500e502a3300d001002500100a489004881005004106613357389210c466565206e6f742070616964000651533530645335306453353064333573466e24d4c1480248888880052000065066133054301d33301c33355301012001500c50283300b353052009222222002500148900488100500610661066133573892113526f79616c6974696573206e6f74207061696400065153353064333573466e24c8cc8004c8004ccd54c05c48004c8cd407088ccd407000c004008d4064004cd406c888c00cc008004800488cdc0000a40040029000199aa98080900091299a9833299a9a8179a98131a981200111000911000908348833899a8148010008800a8141a98101a980f001110011111111111005240040cc0ca20cc266ae7124011a4d6f7265207468616e206f6e652073637269707420696e70757400065106510651065106515335306433223530220022222222222533535039333553022120013350262253353503b002210031001503a253353071333573466e3c0300041cc1c84d40f0004540ec00c841cc41c54004d4c14802488888801841984cd5ce2481204e6f2072696768747320746f20706572666f726d207468697320616374696f6e00065135301d001220021533530603305150565001150011505613305233057480a120d00f3018500315335305e3304f5055500115001150551330503305535304b002222222001483403cc05940044d4c12800488888801488d4c05c0048888888888ccd54c0444800488d4c09c008888d4c0c400c88cd4c15000894cd4c1b4ccd5cd19b8f01400106f06e13350300050071007200750290091223355300b120012353550200012233550230023355300e12001235355023001223355026002333535500d0012330564800000488cc15c0080048cc15800520000013355300b12001235355020001223355023002333535500a00123355300f120012353550240012233550270023550110010012233355500801600200123355300f1200123535502400122335502700235500f00100133355500301100200111122233355300612001501d3355300b1200123535502000122335502300235500d001333553006120012235355021002225335305e33355301012001323350152233353500b0032200200200135350090012200133500922533530600021062100105f235355024001223300a00200500610031335021004003501e0013355300b120012353550200012232335502400330010053200135506022533535021001135500d0032213535502600222533530633300c002008133550120070011300600300212212330010030021200132001355057221122253353501b00110022213300500233355300712001005004001112122230030041122122233002005004112122230010041120013200135505222112253353501500115017221335018300400233553006120010040013200135505122112225335350150011350060032213335009005300400233355300712001005004001123535003001220011235350020012200212212330010030021200122333573466e3c008004134130888c8c8c004014c8004d5413c88cd4d4040005200022353550150022253353052333573466e3c00802415014c4c01c0044c01800cc8004d5413888cd4d403c005200022353550140022253353051333573466e3c00801c14c14840044c01800c8cd411800520022212330010030022001222222222212333333333300100b00a00900800700600500400300220012212330010030022001222123330010040030022001112200212212233001004003120011122123300100300211200122123300100300220011212230020031122001120011221233001003002120011221233001003002120011221233001003002120011212223003004112220021122200112001212222300400521222230030052122223002005212222300100520012212330010030022001212222222300700822122222223300600900821222222230050081222222200412222222003221222222233002009008221222222233001009008200121223002003222122333001005004003200121223002003212230010032001122002122001200122222212333333001007006005004003002200122353500f002223535011003223253353017333573466e1c01400c06406054cd4c05cccd5cd19b870040020190181019150011500115335301633330080040030020011017101822353500e0022235350100032233330070040030020012222333573466e24cdc100200099b8200200301401322353500c00222353500e003223300c3370400800466e0800c00488d4d402c00888d4d403400c88cc02ccdc099b820040013370400400666e0800c00488cdc00010008998012410112f49001099800a410112f49001111980199b820025335300a333573466e1c005200000c00b14800054cd4c028ccd5cd19b890014800002c03052002133702900024004a66a6014666ae68cdc4000a4000018016266e052000001100122325335300a333573466e1c009200000c00b135006353004335738920103505433000054984cd4020cdc2001a80099b84002500113300853353009333573466e20009200000b00a13370290000010801299a9804999ab9a337100029000005805099b8148000004400448004800449848848cc00400c00848004c8004d540108894cd4c010ccd5cd19b870014800001801440084cc00c004cdc2801000891001091000900088919180080091198019801001000a451c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a7200010481d866820086581c79ff76e27a591da0c5c08e5636040ff41853b25dd2014d9b6f6519ad1a03fe56c0581cf01e07a8038849f9c517e2862b72c2d7a25f632a62b67786ff925794524b6e66747943726561747572657330313331581c8e3b7438544fa866c5bf58eb9d21a0d33b89cc2c0bd274338bcdabda18640581840003d866820080821a009896801ad09dc300a20081825820a24d1dd8937cce59570d664778b135f7811f9fa0d1ead2dd6b7f2e4bed2f94db58402092ee244ee926fd063df1c2a663d877f20bfacf894844aa9b542ee982517a619ca41ecb00f787cc601b12aab1a18cb01465db79bad79aba5b439e4ecd65b609049fd8799fd8799fd8799f581cbcd51420b6444282d02ab4f80dff6075d5f0faa4c7bec8e82ae73a49ffd8799fd8799fd8799f581cc258e020c06ff0e833da5a3b32520191c535c41d01250f06be6e053bffffffffd8799fd8799f581cbcd51420b6444282d02ab4f80dff6075d5f0faa4c7bec8e82ae73a49ffd8799fd8799fd8799f581cc258e020c06ff0e833da5a3b32520191c535c41d01250f06be6e053bffffffffd87a80d8799fd8799f581c29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c6444d494e74ff1b000000012e3ba241ff1a001e84801a001e8480ffffa10081825820434b13d1eaaa61a1fa07d45fa90a20d99fbeaed656f80509d53617131b8e2556584073c82a1af47d82180267d8f6d080cd0a27b599902128197707f0977e8683216a5465fb9c2dd3277be279b4ed70d53cc5878318752703706a6cfbdc8aa34aa004a10081825820be81293f14ebbffa4745c64abbf6ee7dae8a4d40bc419024f9d2a49adb4306055840707a34800b74853506535e1d59365b4fde4209f34747e5576a6771de8e9da9e1f87478b3c31fc1ce3249869c703d7cc685b9898caeea87ddf6dc39c12c4c760ea10081825820ff625baeaa339d72eee92d4af0f256cbadaae0b8018f334639ff937ed8c3b84458404a07631f17d9d8b3e3fd0a2aaf7e9f4a484a9cdf9652ff66a51a6368cb57d905ba560554c9bcc91223bffb5a8d18ec1da9830a864c9db299aef1754de76a4c07a400818258202c1695fa40605b0f38a90578f95c669cb6f667be0715d3f96440481d8a4914555840160842911c0ebc518e81e452cd10d91bb42fd00beecd99016f5dff63f5a5fb86945e3a74d48949e86c855d03075ea2eb9138dc7e3d9f51115220343405dd390b03815912585912550100003323322333222332233223232333222323332223233333333222222223233322232333322223232332232333222323332223232332233223232333332222233223322332233223322332222323232323232232232325335303833300d3333573466e1cd55cea805a400046666664444446666660ba00c00a0080060040026eb8d5d0a8059bad35742a0146eb8d5d0a8049bae35742a0106eb8d5d0a8039bad357426ae89401c8d4138d4c13ccd5ce2490350543100050499263333573466e1d40112002205423333573466e1d40152000205623504f353050335738921035054310005149926498cccd5cd19b8735573aa004900011980819191919191919191919191999ab9a3370e6aae75402920002333333333301e33502c232323333573466e1cd55cea80124000466048607e6ae854008c0c4d5d09aba2500223505e35305f3357389201035054310006049926135573ca00226ea8004d5d0a80519a8160169aba150093335503375ca0646ae854020ccd540cdd728191aba1500733502c04835742a00c66a05866aa0b20a2eb4d5d0a8029919191999ab9a3370e6aae754009200023350263232323333573466e1cd55cea80124000466a05c66a08eeb4d5d0a80118261aba135744a00446a0c46a60c666ae712401035054310006449926135573ca00226ea8004d5d0a8011919191999ab9a3370e6aae7540092000233502c33504775a6ae854008c130d5d09aba250022350623530633357389201035054310006449926135573ca00226ea8004d5d09aba2500223505e35305f3357389201035054310006049926135573ca00226ea8004d5d0a80219a8163ae35742a00666a05866aa0b2eb88004d5d0a801181f1aba135744a00446a0b46a60b666ae71241035054310005c49926135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135573ca00226ea8004d5d0a8011919191999ab9a3370ea00290031181198201aba135573ca00646666ae68cdc3a801240084604460946ae84d55cf280211999ab9a3370ea006900111811181a9aba135573ca00a46666ae68cdc3a802240004604a6eb8d5d09aab9e50062350553530563357389201035054310005749926499264984d55cea80089baa001357426ae8940088d4138d4c13ccd5ce249035054310005049926104f13504d35304e3357389201035054350004f4984d55cf280089baa001135573a6ea80044d5d1280089aba25001135744a00226ae8940044d55cf280089baa0012212330010030022001222222222212333333333300100b00a00900800700600500400300220012212330010030022001122123300100300212001122123300100300212001122123300100300212001212222300400521222230030052122223002005212222300100520011232230023758002640026aa072446666aae7c004940388cd4034c010d5d080118019aba200203323232323333573466e1cd55cea801a4000466600e6464646666ae68cdc39aab9d5002480008cc034c0c4d5d0a80119a8098169aba135744a00446a06c6a606e66ae71241035054310003849926135573ca00226ea8004d5d0a801999aa805bae500a35742a00466a01eeb8d5d09aba25002235032353033335738921035054310003449926135744a00226aae7940044dd50009110919980080200180110009109198008018011000899aa800bae75a224464460046eac004c8004d540cc88c8cccd55cf80112804919a80419aa81898031aab9d5002300535573ca00460086ae8800c0b84d5d08008891001091091198008020018900089119191999ab9a3370ea002900011a80418029aba135573ca00646666ae68cdc3a801240044a01046a0526a605466ae712401035054310002b499264984d55cea80089baa001121223002003112200112001232323333573466e1cd55cea8012400046600c600e6ae854008dd69aba135744a00446a0466a604866ae71241035054310002549926135573ca00226ea80048848cc00400c00880048c8cccd5cd19b8735573aa002900011bae357426aae7940088d407cd4c080cd5ce24810350543100021499261375400224464646666ae68cdc3a800a40084a00e46666ae68cdc3a8012400446a014600c6ae84d55cf280211999ab9a3370ea00690001280511a8111a981199ab9c490103505431000244992649926135573aa00226ea8004484888c00c0104488800844888004480048c8cccd5cd19b8750014800880188cccd5cd19b8750024800080188d4068d4c06ccd5ce249035054310001c499264984d55ce9baa0011220021220012001232323232323333573466e1d4005200c200b23333573466e1d4009200a200d23333573466e1d400d200823300b375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c46601a6eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc048c050d5d0a8049bae357426ae8940248cccd5cd19b875006480088c050c054d5d09aab9e500b23333573466e1d401d2000230133016357426aae7940308d407cd4c080cd5ce2481035054310002149926499264992649926135573aa00826aae79400c4d55cf280109aab9e500113754002424444444600e01044244444446600c012010424444444600a010244444440082444444400644244444446600401201044244444446600201201040024646464646666ae68cdc3a800a400446660106eb4d5d0a8021bad35742a0066eb4d5d09aba2500323333573466e1d400920002300a300b357426aae7940188d4040d4c044cd5ce2490350543100012499264984d55cea80189aba25001135573ca00226ea80048488c00800c888488ccc00401401000c80048c8c8cccd5cd19b875001480088c018dd71aba135573ca00646666ae68cdc3a80124000460106eb8d5d09aab9e500423500a35300b3357389201035054310000c499264984d55cea80089baa001212230020032122300100320011122232323333573466e1cd55cea80124000466aa016600c6ae854008c014d5d09aba25002235007353008335738921035054310000949926135573ca00226ea8004498480048004448848cc00400c008448004488008488004800488888848cccccc00401c01801401000c0088004448c8c00400488cc00cc008008004cc8ccc888c8cc88c8cc88c8c8c8c8c8c8c8c8c8c8cc88ccc888ccc888ccc888cccccccc88888888cc88ccccc88888cccc8888cc88cc88cc88ccc888cc88cc88ccc888cc88cc88cc88cc88c8c8c8cc88c8c8c8c8cccc8888c8cc88c8c8c888c8c8c8c8c888c94cd4c13c00c54cd4c1914cd4c190ccd5cd19b8733301c33355301012001500c50283300b533535026353020500122222222220031350604988854cd4d40a00044008884d41912650013530520092222220043530520092222220034800819819441984cd5ce2481154e4654206e6f742073656e7420746f206275796572000651533530645335306433054301d33301c33355301012001500c50283300b35305200922222200650014881004881003305833058301d500850045006106613357389210f53656c6c6572206e6f742070616964000651533530645335306433054301d33301c332233355301212001500e502a3300d001002500100a489004881005004106613357389210c466565206e6f742070616964000651533530645335306453353064333573466e24d4c1480248888880052000065066133054301d33301c33355301012001500c50283300b353052009222222002500148900488100500610661066133573892113526f79616c6974696573206e6f74207061696400065153353064333573466e24c8cc8004c8004ccd54c05c48004c8cd407088ccd407000c004008d4064004cd406c888c00cc008004800488cdc0000a40040029000199aa98080900091299a9833299a9a8179a98131a981200111000911000908348833899a8148010008800a8141a98101a980f001110011111111111005240040cc0ca20cc266ae7124011a4d6f7265207468616e206f6e652073637269707420696e70757400065106510651065106515335306433223530220022222222222533535039333553022120013350262253353503b002210031001503a253353071333573466e3c0300041cc1c84d40f0004540ec00c841cc41c54004d4c14802488888801841984cd5ce2481204e6f2072696768747320746f20706572666f726d207468697320616374696f6e00065135301d001220021533530603305150565001150011505613305233057480a120d00f3018500315335305e3304f5055500115001150551330503305535304b002222222001483403cc05940044d4c12800488888801488d4c05c0048888888888ccd54c0444800488d4c09c008888d4c0c400c88cd4c15000894cd4c1b4ccd5cd19b8f01400106f06e13350300050071007200750290091223355300b120012353550200012233550230023355300e12001235355023001223355026002333535500d0012330564800000488cc15c0080048cc15800520000013355300b12001235355020001223355023002333535500a00123355300f120012353550240012233550270023550110010012233355500801600200123355300f1200123535502400122335502700235500f00100133355500301100200111122233355300612001501d3355300b1200123535502000122335502300235500d001333553006120012235355021002225335305e33355301012001323350152233353500b0032200200200135350090012200133500922533530600021062100105f235355024001223300a00200500610031335021004003501e0013355300b120012353550200012232335502400330010053200135506022533535021001135500d0032213535502600222533530633300c002008133550120070011300600300212212330010030021200132001355057221122253353501b00110022213300500233355300712001005004001112122230030041122122233002005004112122230010041120013200135505222112253353501500115017221335018300400233553006120010040013200135505122112225335350150011350060032213335009005300400233355300712001005004001123535003001220011235350020012200212212330010030021200122333573466e3c008004134130888c8c8c004014c8004d5413c88cd4d4040005200022353550150022253353052333573466e3c00802415014c4c01c0044c01800cc8004d5413888cd4d403c005200022353550140022253353051333573466e3c00801c14c14840044c01800c8cd411800520022212330010030022001222222222212333333333300100b00a00900800700600500400300220012212330010030022001222123330010040030022001112200212212233001004003120011122123300100300211200122123300100300220011212230020031122001120011221233001003002120011221233001003002120011221233001003002120011212223003004112220021122200112001212222300400521222230030052122223002005212222300100520012212330010030022001212222222300700822122222223300600900821222222230050081222222200412222222003221222222233002009008221222222233001009008200121223002003222122333001005004003200121223002003212230010032001122002122001200122222212333333001007006005004003002200122353500f002223535011003223253353017333573466e1c01400c06406054cd4c05cccd5cd19b870040020190181019150011500115335301633330080040030020011017101822353500e0022235350100032233330070040030020012222333573466e24cdc100200099b8200200301401322353500c00222353500e003223300c3370400800466e0800c00488d4d402c00888d4d403400c88cc02ccdc099b820040013370400400666e0800c00488cdc00010008998012410112f49001099800a410112f49001111980199b820025335300a333573466e1c005200000c00b14800054cd4c028ccd5cd19b890014800002c03052002133702900024004a66a6014666ae68cdc4000a4000018016266e052000001100122325335300a333573466e1c009200000c00b135006353004335738920103505433000054984cd4020cdc2001a80099b84002500113300853353009333573466e20009200000b00a13370290000010801299a9804999ab9a337100029000005805099b8148000004400448004800449848848cc00400c00848004c8004d540108894cd4c010ccd5cd19b870014800001801440084cc00c004cdc2801000891001091000900088919180080091198019801001000a451c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a7200010481d866820086581c1bdc0586c6e194445a5aa231d042bc910d49f910c0ad3b5c28bef8301a0ee6b280581c58b9f55e6ea9828dea7a8d9f49420171c6360f99b5e6e86de5fdb6444d4170654e6174696f6e39363436581c95da45da57f332e1e03e388aca5b04140d3e06324b13b7095db205cb181e0581840004d866820080821a009896801ad09dc300a1008182582062338472398216f486acf6df6ff43802f8583c0fb7fe3af372b17acf2eba1f255840c594fcce09d6f1472d25ecd9d2ea9551765e3499ab1297f9e1c837bcffcab1a84b45541e570648b1bd5fa950b4fd6617e3902d71bf2a1b33fa1c81f8a952d20fa20081825820fec63e3b7d605c9b2758add4265ad9c12d82c26540f7a8c4168550f732775b24584021db28bf0735fd449fc6ef53b99b1e5e57d72c3f2d3255810ca26473e2b3cbd4517e851ea560d3cb014b2efdf308691847f290ea5a5fc1b2589c76e7ab4a7f0e049fd8799fd8799fd8799f581c09c89faadf5e3d2a9a7dc6d8b3db21d131db71cb567270c801472279ffd8799fd8799fd8799f581ce431bf30adb82350945a98739ff61b8d234855782dc3cfb17a9344e9ffffffffd8799fd8799f581c09c89faadf5e3d2a9a7dc6d8b3db21d131db71cb567270c801472279ffd8799fd8799fd8799f581ce431bf30adb82350945a98739ff61b8d234855782dc3cfb17a9344e9ffffffffd87a80d87b9f01ff1a001e84801a001e8480ffffa100818258205169355c041f33061a7224ab098a98ed92ab9fce161907bfc0d61dda5c53443258406fd92635c06ae8832151279956091efdc1c6a50dae467e1f239669658675e3a705cb1a347522f6b7016d63ee39432529cc799e3c3e72aecd3da9c28f04111806a100828258208519e53a6446b37e752c6ef69fb632c3f0926cbdad71b3c637c1fb6f13d1e0695840f40659f6fc73311872504c0d09bd316df2cd8461b84d77d67d8b90007ffa13c95382771b58cdb47277cdac6b8d3c85c4954e4f064fd1a5b4b92d7badcf9c1907825820330ebf3129c0ba92a48b05620eb85f32737dff76cea6bed75390287e84c5b6b658400af9b5b3ef14f44f0fcad053db81e8206ff6bd9f3301decb80d8da87e6e7b8e442c9c9873ca826417abbb76f08e51e857c47535f6ad7ca7e01ba463a247ad80ea100818258206c0180db688a9e477b10a7792e3c4efd749cddbe0e05068b6cb586dee54056975840a7a97f7be0aa7d001830bf12c80a1083d9d25052ea4a4d08ac760f562837306181ec388e1c3b4c624ede42e3a59380d5b82f57c1f32a734c3ccec252b138e906a40081825820249cac0792cf5b043e30349ae9c07c50139116070539bb4cc76f29eb0596b25b5840269cc6461c3129150ca646721cd99e5228a5ab88e88dc7eb659c095daa3c06d329fcb8cb7b889f1e2938105ba7156d64f3d7ecb8cd14c103c508a58182d0410503815912585912550100003323322333222332233223232333222323332223233333333222222223233322232333322223232332232333222323332223232332233223232333332222233223322332233223322332222323232323232232232325335303833300d3333573466e1cd55cea805a400046666664444446666660ba00c00a0080060040026eb8d5d0a8059bad35742a0146eb8d5d0a8049bae35742a0106eb8d5d0a8039bad357426ae89401c8d4138d4c13ccd5ce2490350543100050499263333573466e1d40112002205423333573466e1d40152000205623504f353050335738921035054310005149926498cccd5cd19b8735573aa004900011980819191919191919191919191999ab9a3370e6aae75402920002333333333301e33502c232323333573466e1cd55cea80124000466048607e6ae854008c0c4d5d09aba2500223505e35305f3357389201035054310006049926135573ca00226ea8004d5d0a80519a8160169aba150093335503375ca0646ae854020ccd540cdd728191aba1500733502c04835742a00c66a05866aa0b20a2eb4d5d0a8029919191999ab9a3370e6aae754009200023350263232323333573466e1cd55cea80124000466a05c66a08eeb4d5d0a80118261aba135744a00446a0c46a60c666ae712401035054310006449926135573ca00226ea8004d5d0a8011919191999ab9a3370e6aae7540092000233502c33504775a6ae854008c130d5d09aba250022350623530633357389201035054310006449926135573ca00226ea8004d5d09aba2500223505e35305f3357389201035054310006049926135573ca00226ea8004d5d0a80219a8163ae35742a00666a05866aa0b2eb88004d5d0a801181f1aba135744a00446a0b46a60b666ae71241035054310005c49926135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135573ca00226ea8004d5d0a8011919191999ab9a3370ea00290031181198201aba135573ca00646666ae68cdc3a801240084604460946ae84d55cf280211999ab9a3370ea006900111811181a9aba135573ca00a46666ae68cdc3a802240004604a6eb8d5d09aab9e50062350553530563357389201035054310005749926499264984d55cea80089baa001357426ae8940088d4138d4c13ccd5ce249035054310005049926104f13504d35304e3357389201035054350004f4984d55cf280089baa001135573a6ea80044d5d1280089aba25001135744a00226ae8940044d55cf280089baa0012212330010030022001222222222212333333333300100b00a00900800700600500400300220012212330010030022001122123300100300212001122123300100300212001122123300100300212001212222300400521222230030052122223002005212222300100520011232230023758002640026aa072446666aae7c004940388cd4034c010d5d080118019aba200203323232323333573466e1cd55cea801a4000466600e6464646666ae68cdc39aab9d5002480008cc034c0c4d5d0a80119a8098169aba135744a00446a06c6a606e66ae71241035054310003849926135573ca00226ea8004d5d0a801999aa805bae500a35742a00466a01eeb8d5d09aba25002235032353033335738921035054310003449926135744a00226aae7940044dd50009110919980080200180110009109198008018011000899aa800bae75a224464460046eac004c8004d540cc88c8cccd55cf80112804919a80419aa81898031aab9d5002300535573ca00460086ae8800c0b84d5d08008891001091091198008020018900089119191999ab9a3370ea002900011a80418029aba135573ca00646666ae68cdc3a801240044a01046a0526a605466ae712401035054310002b499264984d55cea80089baa001121223002003112200112001232323333573466e1cd55cea8012400046600c600e6ae854008dd69aba135744a00446a0466a604866ae71241035054310002549926135573ca00226ea80048848cc00400c00880048c8cccd5cd19b8735573aa002900011bae357426aae7940088d407cd4c080cd5ce24810350543100021499261375400224464646666ae68cdc3a800a40084a00e46666ae68cdc3a8012400446a014600c6ae84d55cf280211999ab9a3370ea00690001280511a8111a981199ab9c490103505431000244992649926135573aa00226ea8004484888c00c0104488800844888004480048c8cccd5cd19b8750014800880188cccd5cd19b8750024800080188d4068d4c06ccd5ce249035054310001c499264984d55ce9baa0011220021220012001232323232323333573466e1d4005200c200b23333573466e1d4009200a200d23333573466e1d400d200823300b375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c46601a6eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc048c050d5d0a8049bae357426ae8940248cccd5cd19b875006480088c050c054d5d09aab9e500b23333573466e1d401d2000230133016357426aae7940308d407cd4c080cd5ce2481035054310002149926499264992649926135573aa00826aae79400c4d55cf280109aab9e500113754002424444444600e01044244444446600c012010424444444600a010244444440082444444400644244444446600401201044244444446600201201040024646464646666ae68cdc3a800a400446660106eb4d5d0a8021bad35742a0066eb4d5d09aba2500323333573466e1d400920002300a300b357426aae7940188d4040d4c044cd5ce2490350543100012499264984d55cea80189aba25001135573ca00226ea80048488c00800c888488ccc00401401000c80048c8c8cccd5cd19b875001480088c018dd71aba135573ca00646666ae68cdc3a80124000460106eb8d5d09aab9e500423500a35300b3357389201035054310000c499264984d55cea80089baa001212230020032122300100320011122232323333573466e1cd55cea80124000466aa016600c6ae854008c014d5d09aba25002235007353008335738921035054310000949926135573ca00226ea8004498480048004448848cc00400c008448004488008488004800488888848cccccc00401c01801401000c0088004448c8c00400488cc00cc008008004cc8ccc888c8cc88c8cc88c8c8c8c8c8c8c8c8c8c8cc88ccc888ccc888ccc888cccccccc88888888cc88ccccc88888cccc8888cc88cc88cc88ccc888cc88cc88ccc888cc88cc88cc88cc88c8c8c8cc88c8c8c8c8cccc8888c8cc88c8c8c888c8c8c8c8c888c94cd4c13c00c54cd4c1914cd4c190ccd5cd19b8733301c33355301012001500c50283300b533535026353020500122222222220031350604988854cd4d40a00044008884d41912650013530520092222220043530520092222220034800819819441984cd5ce2481154e4654206e6f742073656e7420746f206275796572000651533530645335306433054301d33301c33355301012001500c50283300b35305200922222200650014881004881003305833058301d500850045006106613357389210f53656c6c6572206e6f742070616964000651533530645335306433054301d33301c332233355301212001500e502a3300d001002500100a489004881005004106613357389210c466565206e6f742070616964000651533530645335306453353064333573466e24d4c1480248888880052000065066133054301d33301c33355301012001500c50283300b353052009222222002500148900488100500610661066133573892113526f79616c6974696573206e6f74207061696400065153353064333573466e24c8cc8004c8004ccd54c05c48004c8cd407088ccd407000c004008d4064004cd406c888c00cc008004800488cdc0000a40040029000199aa98080900091299a9833299a9a8179a98131a981200111000911000908348833899a8148010008800a8141a98101a980f001110011111111111005240040cc0ca20cc266ae7124011a4d6f7265207468616e206f6e652073637269707420696e70757400065106510651065106515335306433223530220022222222222533535039333553022120013350262253353503b002210031001503a253353071333573466e3c0300041cc1c84d40f0004540ec00c841cc41c54004d4c14802488888801841984cd5ce2481204e6f2072696768747320746f20706572666f726d207468697320616374696f6e00065135301d001220021533530603305150565001150011505613305233057480a120d00f3018500315335305e3304f5055500115001150551330503305535304b002222222001483403cc05940044d4c12800488888801488d4c05c0048888888888ccd54c0444800488d4c09c008888d4c0c400c88cd4c15000894cd4c1b4ccd5cd19b8f01400106f06e13350300050071007200750290091223355300b120012353550200012233550230023355300e12001235355023001223355026002333535500d0012330564800000488cc15c0080048cc15800520000013355300b12001235355020001223355023002333535500a00123355300f120012353550240012233550270023550110010012233355500801600200123355300f1200123535502400122335502700235500f00100133355500301100200111122233355300612001501d3355300b1200123535502000122335502300235500d001333553006120012235355021002225335305e33355301012001323350152233353500b0032200200200135350090012200133500922533530600021062100105f235355024001223300a00200500610031335021004003501e0013355300b120012353550200012232335502400330010053200135506022533535021001135500d0032213535502600222533530633300c002008133550120070011300600300212212330010030021200132001355057221122253353501b00110022213300500233355300712001005004001112122230030041122122233002005004112122230010041120013200135505222112253353501500115017221335018300400233553006120010040013200135505122112225335350150011350060032213335009005300400233355300712001005004001123535003001220011235350020012200212212330010030021200122333573466e3c008004134130888c8c8c004014c8004d5413c88cd4d4040005200022353550150022253353052333573466e3c00802415014c4c01c0044c01800cc8004d5413888cd4d403c005200022353550140022253353051333573466e3c00801c14c14840044c01800c8cd411800520022212330010030022001222222222212333333333300100b00a00900800700600500400300220012212330010030022001222123330010040030022001112200212212233001004003120011122123300100300211200122123300100300220011212230020031122001120011221233001003002120011221233001003002120011221233001003002120011212223003004112220021122200112001212222300400521222230030052122223002005212222300100520012212330010030022001212222222300700822122222223300600900821222222230050081222222200412222222003221222222233002009008221222222233001009008200121223002003222122333001005004003200121223002003212230010032001122002122001200122222212333333001007006005004003002200122353500f002223535011003223253353017333573466e1c01400c06406054cd4c05cccd5cd19b870040020190181019150011500115335301633330080040030020011017101822353500e0022235350100032233330070040030020012222333573466e24cdc100200099b8200200301401322353500c00222353500e003223300c3370400800466e0800c00488d4d402c00888d4d403400c88cc02ccdc099b820040013370400400666e0800c00488cdc00010008998012410112f49001099800a410112f49001111980199b820025335300a333573466e1c005200000c00b14800054cd4c028ccd5cd19b890014800002c03052002133702900024004a66a6014666ae68cdc4000a4000018016266e052000001100122325335300a333573466e1c009200000c00b135006353004335738920103505433000054984cd4020cdc2001a80099b84002500113300853353009333573466e20009200000b00a13370290000010801299a9804999ab9a337100029000005805099b8148000004400448004800449848848cc00400c00848004c8004d540108894cd4c010ccd5cd19b870014800001801440084cc00c004cdc2801000891001091000900088919180080091198019801001000a451c70e60f3b5ea7153e0acc7a803e4401d44b8ed1bae1c7baaad1a62a7200010481d866820086581c8a21d586f2064cc4c9b6fda42c57d16ff9f73dc3229313d8094c62511a07735940581cf4873b426a498350c579690bd1f4a369d5d7b521c778acf322f773344a44524150453030393938581c7db1b08810afe40d326c07e47ce6eea5a3122b853a4d5bfcf4d5af85181e0581840000d866820080821a009896801ad09dc300a100818258209a51e7caa66bdf2945a90b5bb7795241f5e26839a19437df6b36c5e750f1829158407830ec0ded787c82e05bb9216cb2a4b60798ba2d04043e0a9c36e36fc9631d4b62a4a8004f2354c88351f558e606aa9dfa251a4a2f6aa1e53f2192560d38570ca10081825820f36ea0f578b89c6fa3a26ab3f279521d5bda5c181718fa76bebf049ead1a953c5840266c484d5803e021da5f2c3f7f09e9c357924d3358958209839119bd47de0b881396eaf69fcbe5e43e953cef5c610e888b07122f753212ea49d29f72aa174b0fa100818258205f6121009f7e2ab34f7f6af9fc73780ad214dfd37ebf78b25019c19e5f8ad0985840a689e776a078f2908c616127b2f7a5545bdda657cfbdd2254552d28eba09a86cf40408cd2179cdc925c53474704dd75bbbb9a8b72f8fd3d27e538ce03d962b03a800d90103a100a11902a2a1636d7367826f4c616d696e61722052656c6179657278403962313435663738363236626661353766366264656435376537613434653531663461373863376563393734333630636238396461393530396232326564623602a8007838303238366664663130343863343032663734373333613037306636363834386238343330376365393066336439383366666462336436613901683930303030303030027838303831323535363133383033396663376639346631613531336261663034623938356634623563376562366438626239363236353261326203623530067840616464723171797067646c3033716a787971746d357776617177726d78736a3963677672756179386e6d78706c6c6b65616432676d6478386c70346e6d6173720778276d686e6c6b706a7a3061616675636735636a396c7232326d6c776776797934397135767338613808784061646472317179797079347470387170656c336c65667564397a776130716a756374613934636c346b6d7a616576666a6a35326177307a64673370796e74746e0978277063786c6d717437663878663073646c73727a61343639756e6b64727966637373616165336e3503a800783834643563396638353063313630653032633437646261383834333938316462326336623561333264656661396661393232316239626465610169353535303030303030027838316431633138366435626332326562353630333563333765333730663064636332633330306538653566306661343661366266646461393903623330067840616464723171397834653875397073747175716b79306b616773737563726b657664646472396868366e37356a7978756d6d3634376530683272386866656337077827727a736a7578706d7367666d72746a756c6875753336346d7578686d7634396c7336796c667738087840616464723171797733637872647430707a6164747178687068756463307068787a63767177336530736c667232643037613478647138686a35616d3735346a680978277375737861726a35356e37376439616e3933377473386a38346e6a356b33666d7164647774737305a006a008a8007838623538303535616133646563323561356234663738313632303162396334313637346537316637616639613161353039613961663233656101693135303030303030300278383038313235353631333830333966633766393466316135313362616630346239383566346235633765623664386262393632363532613262036235300678406164647231717836637134643238686b7a746664353737716b79716465637374386665636c30747536726667663478686a3836353870656374383978736d6a300778276130343364367030676c35767465777478326a366a7939776b7677307179616d7133677a63397408784061646472317179797079347470387170656c336c65667564397a776130716a756374613934636c346b6d7a616576666a6a35326177307a64673370796e74746e0978277063786c6d717437663878663073646c73727a61343639756e6b64727966637373616165336e350ba011a080"; + let fixed_block = FixedVersionedBlock::from_hex(block_hex).unwrap(); + let hash = fixed_block.block().block_hash().to_hex(); + let expected_hash = "0f6b0a59809fac077c9b3ece924b6777468d7edcc8b1ba03d89d70a15ccce6df"; + let block = VersionedBlock::from_hex(block_hex).unwrap(); + assert_eq!(expected_hash, hash); + assert_eq!(fixed_block.block().transaction_bodies().len(), block.block().transaction_bodies().len()); + assert_eq!(fixed_block.block().transaction_witness_sets(), block.block().transaction_witness_sets()); + assert_eq!(fixed_block.block().auxiliary_data_set(), block.block().auxiliary_data_set()); + assert_eq!(fixed_block.block().invalid_transactions(), block.block().invalid_transactions()); + assert_eq!(fixed_block.block().header(), block.block().header()); + let fixed_transaction_bodies = fixed_block.block().transaction_bodies(); + let transaction_bodies = block.block().transaction_bodies(); + let bodies_count = fixed_transaction_bodies.len(); + for i in 0..bodies_count { + let fixed_tx_body = fixed_transaction_bodies.get(i); + let tx_body = transaction_bodies.get(i); + assert_eq!(fixed_tx_body.transaction_body(), tx_body); + } +} \ No newline at end of file diff --git a/rust/src/tests/protocol_types/mod.rs b/rust/src/tests/protocol_types/mod.rs index a1f44ad9..866645d6 100644 --- a/rust/src/tests/protocol_types/mod.rs +++ b/rust/src/tests/protocol_types/mod.rs @@ -2,3 +2,4 @@ mod certificates; mod fixed_tx; mod governance; mod protocol_param_update; +mod fixed_block;