From e2e0d5eea357a27d2d16a4aabe58c426927a9c97 Mon Sep 17 00:00:00 2001 From: Dominik Harz Date: Wed, 26 May 2021 12:53:15 +0200 Subject: [PATCH 1/4] chore: update client and parachain tags --- docker-compose.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7c3f16511..c9d65116b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.8" services: polkabtc: - image: "registry.gitlab.com/interlay/btc-parachain:master-3585aaed-1621264843" + image: "registry.gitlab.com/interlay/btc-parachain:0-7-2" command: - btc-parachain - --rpc-external @@ -58,7 +58,7 @@ services: - "3002:3002" staked-relayer: # only start staked relayer after mining to prevent long catch-up - image: "registry.gitlab.com/interlay/polkabtc-clients/staked-relayer:acfcc599" + image: "registry.gitlab.com/interlay/polkabtc-clients/staked-relayer:0-7-2" command: - /bin/sh - -c @@ -73,7 +73,7 @@ services: BITCOIN_RPC_PASS: rpcpassword RUST_LOG: info oracle: - image: "registry.gitlab.com/interlay/polkabtc-clients/oracle:acfcc599" + image: "registry.gitlab.com/interlay/polkabtc-clients/oracle:0-7-2" command: - /bin/sh - -c @@ -84,7 +84,7 @@ services: environment: RUST_LOG: info faucet: - image: "registry.gitlab.com/interlay/polkabtc-clients/faucet:acfcc599" + image: "registry.gitlab.com/interlay/polkabtc-clients/faucet:0-7-2" command: - /bin/sh - -c @@ -98,7 +98,7 @@ services: ports: - "3036:3036" vault_1: - image: "registry.gitlab.com/interlay/polkabtc-clients/vault:acfcc599" + image: "registry.gitlab.com/interlay/polkabtc-clients/vault:0-7-2" command: - /bin/sh - -c @@ -112,7 +112,7 @@ services: environment: <<: *client-env vault_2: - image: "registry.gitlab.com/interlay/polkabtc-clients/vault:master" + image: "registry.gitlab.com/interlay/polkabtc-clients/vault:0-7-2" command: - /bin/sh - -c @@ -126,7 +126,7 @@ services: environment: <<: *client-env vault_3: - image: "registry.gitlab.com/interlay/polkabtc-clients/vault:acfcc599" + image: "registry.gitlab.com/interlay/polkabtc-clients/vault:0-7-2" command: - /bin/sh - -c @@ -140,7 +140,7 @@ services: environment: <<: *client-env vault_to_liquidate: - image: "registry.gitlab.com/interlay/polkabtc-clients/vault:acfcc599" + image: "registry.gitlab.com/interlay/polkabtc-clients/vault:0-7-2" command: - /bin/sh - -c From e81d85b5dc7b3a27ab90e04d72a4a9b92107c543 Mon Sep 17 00:00:00 2001 From: Daniel Savu Date: Wed, 26 May 2021 12:51:37 +0100 Subject: [PATCH 2/4] chore(tests): Upgrade clients to 0-7-2 --- docker-compose.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index c9d65116b..d161371a5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -66,7 +66,7 @@ services: echo '{"alice_stash": "0x3c881bc4d45926680c64a7f9315eeda3dd287f8d598f3653d7c107799c5422b3"}' > keyfile.json echo "Sleeping..." sleep 10 - staked-relayer --keyfile="keyfile.json" --keyname=alice_stash --polka-btc-url 'ws://polkabtc:9944' --auto-register-with-stake 100 + staked-relayer --keyfile="keyfile.json" --keyname=alice_stash --btc-parachain-url 'ws://polkabtc:9944' --auto-fund-with-faucet-url '[::0]:3036' environment: &client-env BITCOIN_RPC_URL: http://bitcoind:18443 BITCOIN_RPC_USER: rpcuser @@ -80,7 +80,7 @@ services: - | echo "Sleeping..." sleep 5 - oracle --keyring=charlie --polka-btc-url 'ws://polkabtc:9944' + oracle --keyring=charlie --btc-parachain-url 'ws://polkabtc:9944' environment: RUST_LOG: info faucet: @@ -92,7 +92,7 @@ services: echo '{"bob_stash": "0x1a7d114100653850c65edecda8a9b2b4dd65d900edef8e70b1a6ecdcda967056"}' > keyfile.json echo "Sleeping..." sleep 5 - faucet --keyfile="keyfile.json" --keyname=bob_stash --polka-btc-url 'ws://polkabtc:9944' --user-allowance 1 --vault-allowance 500 --http-addr '[::0]:3036' + faucet --keyfile="keyfile.json" --keyname=bob_stash --btc-parachain-url 'ws://polkabtc:9944' --user-allowance 1 --vault-allowance 500 --http-addr '[::0]:3036' environment: RUST_LOG: info ports: @@ -108,7 +108,7 @@ services: # sleep for 30s to wait for bitcoin to create the Charlie wallet # and also to ensure that the issue period and redeem period are set sleep 30 - vault --keyfile="keyfile.json" --keyname=charlie_stash --auto-register-with-collateral 1000000000000000000 --polka-btc-url 'ws://polkabtc:9944' + vault --keyfile="keyfile.json" --keyname=charlie_stash --auto-register-with-collateral 1000000000000000000 --btc-parachain-url 'ws://polkabtc:9944' environment: <<: *client-env vault_2: @@ -122,7 +122,7 @@ services: # sleep for 30s to wait for bitcoin to create the Dave wallet # and also to ensure that the issue period and redeem period are set sleep 30 - vault --keyfile="keyfile.json" --keyname=dave_stash --auto-register-with-collateral 1000000000000000000 --no-issue-execution --polka-btc-url 'ws://polkabtc:9944' + vault --keyfile="keyfile.json" --keyname=dave_stash --auto-register-with-collateral 1000000000000000000 --no-issue-execution --btc-parachain-url 'ws://polkabtc:9944' environment: <<: *client-env vault_3: @@ -136,7 +136,7 @@ services: # sleep for 30s to wait for bitcoin to create the Eve wallet # and also to ensure that the issue period and redeem period are set sleep 30 - vault --keyfile="keyfile.json" --keyname=eve_stash --auto-register-with-collateral 1000000000000 --no-issue-execution --polka-btc-url 'ws://polkabtc:9944' + vault --keyfile="keyfile.json" --keyname=eve_stash --auto-register-with-collateral 1000000000000 --no-issue-execution --btc-parachain-url 'ws://polkabtc:9944' environment: <<: *client-env vault_to_liquidate: @@ -150,6 +150,6 @@ services: # sleep for 30s to wait for bitcoin to create the Ferdie wallet # and also to ensure that the issue period and redeem period are set sleep 30 - vault --keyfile="keyfile.json" --keyname=ferdie_stash --auto-register-with-collateral 1000000000000 --polka-btc-url 'ws://polkabtc:9944' + vault --keyfile="keyfile.json" --keyname=ferdie_stash --auto-register-with-collateral 1000000000000 --btc-parachain-url 'ws://polkabtc:9944' environment: <<: *client-env From 73f14692c4216ca9975354926d32d0d71c8e8d05 Mon Sep 17 00:00:00 2001 From: Daniel Savu Date: Wed, 26 May 2021 13:46:47 +0100 Subject: [PATCH 3/4] chore: Parachain v0.7.2 --- docker-compose.yml | 2 +- package.json | 4 +- src/json/parachain.json | 2 +- src/parachain/collateral.ts | 10 +-- src/parachain/constants.ts | 4 +- src/parachain/issue.ts | 2 +- src/parachain/redeem.ts | 2 +- src/parachain/replace.ts | 8 +- src/parachain/staked-relayer.ts | 81 ++++--------------- src/parachain/treasury.ts | 10 +-- src/parachain/vaults.ts | 32 ++++++-- .../clients/staging/faucet.test.ts | 4 +- .../external/staging/electrs.test.ts | 2 +- .../parachain/staging/issue.test.ts | 2 +- .../parachain/staging/staked-relayer.test.ts | 31 ------- test/mock/parachain/replace.ts | 2 +- test/mock/parachain/staked-relayer.ts | 13 +-- test/mock/parachain/vaults.ts | 3 + test/unit/mock/polkabtc-api.test.ts | 24 ------ 19 files changed, 74 insertions(+), 164 deletions(-) delete mode 100644 test/unit/mock/polkabtc-api.test.ts diff --git a/docker-compose.yml b/docker-compose.yml index d161371a5..980d0c276 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.8" services: polkabtc: - image: "registry.gitlab.com/interlay/btc-parachain:0-7-2" + image: "registry.gitlab.com/interlay/btc-parachain:0-7-2-a06ada7d-1622023912" command: - btc-parachain - --rpc-external diff --git a/package.json b/package.json index 90dada10f..4145476e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@interlay/polkabtc", - "version": "0.15.3", + "version": "0.15.4", "description": "JavaScript library to interact with PolkaBTC", "main": "build/index.js", "typings": "build/index.d.ts", @@ -39,7 +39,7 @@ "engineStrict": true, "dependencies": { "@interlay/esplora-btc-api": "0.4.0", - "@interlay/polkabtc-types": "0.7.0", + "@interlay/polkabtc-types": "0.7.2", "@polkadot/api": "4.8.1", "@polkadot/typegen": "4.8.1", "@types/big.js": "4.0.5", diff --git a/src/json/parachain.json b/src/json/parachain.json index f460d2ced..b97c99617 100644 --- a/src/json/parachain.json +++ b/src/json/parachain.json @@ -1 +1 @@ -{"jsonrpc":"2.0","result":"0x6d6574610c681853797374656d011853797374656d401c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e004101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010038436f6e73756d6564576569676874600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010010626f6f6c0400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010010626f6f6c0400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e146c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e28682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e7901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2c202d2031206576656e742e7d012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e902057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e75012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e4472656d61726b5f776974685f6576656e74041872656d61726b1c5665633c75383e18a8204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002c2023203c7765696768743eb8202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e2c202d2031206576656e742e302023203c2f7765696768743e01184045787472696e7369635375636365737304304469737061746368496e666f04b820416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f049420416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e744964047c2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046c20416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b656408244163636f756e744964104861736804d4204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d1830426c6f636b57656967687473506c696d6974733a3a426c6f636b57656967687473850100f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684c6c696d6974733a3a426c6f636b4c656e6774683000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e7438543a3a426c6f636b4e756d62657210fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768743c52756e74696d65446257656967687440000000000000000000000000000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3852756e74696d6556657273696f6e8503346274632d70617261636861696e346274632d70617261636861696e0100000009000000010000003cdf6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a04000000d2bc9897eed08f1502000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a8010000000a92ff04f497ffdf010000002791a8cdf8be93010100000016da96d36c6d5bb701000000caf39b979a6880bd0100000069e2e1aa421f4fb00100000091d2aba1dfca2e06010000002be5cb02b0a56e7301000000010000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978087538042a14a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e3c5820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743e3501202d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f2831296029a101202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e20606f6e5f66696e616c697a656029d8202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420b80b00000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0110107375646f041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e547375646f5f756e636865636b65645f776569676874081063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1c5f776569676874185765696768742839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e310120546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b4205375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292ed0202d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e010c14537564696404384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d284b65794368616e67656404244163636f756e74496404010120546865205c5b7375646f65725c5d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e6504384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e74021c5574696c69747900010c146261746368041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e48802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e34f02053656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e2501205468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e0108404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173902077656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e0000036052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e010000000004485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4001000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e00051c4261636b696e67011c4261636b696e671034546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964705665633c42616c616e63654c6f636b3c543a3a42616c616e63653e3e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04484578697374656e7469616c4465706f73697428543a3a42616c616e6365400100000000000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d6578697374061c49737375696e67011c49737375696e671034546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964705665633c42616c616e63654c6f636b3c543a3a42616c616e63653e3e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04484578697374656e7469616c4465706f73697428543a3a42616c616e6365400100000000000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d65786973740728436f6c6c61746572616c0128436f6c6c61746572616c042c546f74616c4c6f636b656401003c42616c616e63654f663c542c20493e400000000000000000000000000000000010f8204e6f7465207468617420616e206163636f756e742773206672656520616e642072657365727665642062616c616e636573206172652068616e646c656474207468726f756768207468652042616c616e636573206d6f64756c652e005420546f74616c206c6f636b65642062616c616e636501000118104d696e7408244163636f756e7449641c42616c616e636500104c6f636b08244163636f756e7449641c42616c616e63650018556e6c6f636b08244163636f756e7449641c42616c616e636500104275726e08244163636f756e7449641c42616c616e6365001c52656c6561736508244163636f756e7449641c42616c616e63650014536c6173680c244163636f756e744964244163636f756e7449641c42616c616e6365000c104e616d651c5665633c75383e2420506f6c6b61646f7404c02054686520757365722d667269656e646c79206e616d65206f6620746865206d616e616765642063757272656e63792e1853796d626f6c1c5665633c75383e100c444f5404d420546865206964656e746966696572206f66207468652063757272656e6379202d20652e672e207469636b65722073796d626f6c2e20446563696d616c73087538040a04cc20546865206e756d626572206f6620646563696d616c73207573656420746f20726570726573656e74206f6e6520756e69742e105c496e73756666696369656e744672656542616c616e63650498204163636f756e742068617320696e73756666696369656e7420667265652062616c616e63656c496e73756666696369656e74526573657276656442616c616e636504a8204163636f756e742068617320696e73756666696369656e742072657365727665642062616c616e63654841726974686d657469634f766572666c6f7704502041726974686d65746963206f766572666c6f774c41726974686d65746963556e646572666c6f7704542041726974686d6574696320756e646572666c6f770820547265617375727901205472656173757279042c546f74616c4c6f636b656401003c42616c616e63654f663c542c20493e400000000000000000000000000000000010f8204e6f7465207468617420616e206163636f756e742773206672656520616e642072657365727665642062616c616e636573206172652068616e646c656474207468726f756768207468652042616c616e636573206d6f64756c652e005420546f74616c206c6f636b65642062616c616e636501000118104d696e7408244163636f756e7449641c42616c616e636500104c6f636b08244163636f756e7449641c42616c616e63650018556e6c6f636b08244163636f756e7449641c42616c616e636500104275726e08244163636f756e7449641c42616c616e6365001c52656c6561736508244163636f756e7449641c42616c616e63650014536c6173680c244163636f756e744964244163636f756e7449641c42616c616e6365000c104e616d651c5665633c75383e2420506f6c6b6142544304c02054686520757365722d667269656e646c79206e616d65206f6620746865206d616e616765642063757272656e63792e1853796d626f6c1c5665633c75383e2420506f6c6b6142544304d420546865206964656e746966696572206f66207468652063757272656e6379202d20652e672e207469636b65722073796d626f6c2e20446563696d616c73087538040804cc20546865206e756d626572206f6620646563696d616c73207573656420746f20726570726573656e74206f6e6520756e69742e105c496e73756666696369656e744672656542616c616e63650498204163636f756e742068617320696e73756666696369656e7420667265652062616c616e63656c496e73756666696369656e74526573657276656442616c616e636504a8204163636f756e742068617320696e73756666696369656e742072657365727665642062616c616e63654841726974686d657469634f766572666c6f7704502041726974686d65746963206f766572666c6f774c41726974686d65746963556e646572666c6f7704542041726974686d6574696320756e646572666c6f77092042544352656c6179012042544352656c61793430426c6f636b4865616465727301010218483235364c65b452696368426c6f636b4865616465723c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00e1020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004702053746f726520426974636f696e20626c6f636b206865616465727318436861696e730001020c7533320c7533320004000c4d01205072696f72697479207175657565206f6620426c6f636b436861696e20656c656d656e74732c206f72646572656420627920746865206d6178696d756d20686569676874202864657363656e64696e67292e5d012054686520666972737420696e64657820696e746f2074686973206d617070696e672028302920697320636f6e7369646572656420746f20626520746865206c6f6e6765737420636861696e2e205468652076616c75652d01206f662074686520656e7472792069732074686520696e64657820696e746f2060436861696e73496e6465786020746f207265747269657665207468652060426c6f636b436861696e602e2c436861696e73496e6465780001020c75333228426c6f636b436861696e000400084d0120417578696c69617279206d617070696e67206f6620636861696e732069647320746f2060426c6f636b436861696e6020656e74726965732e2054686520666972737420696e64657820696e746f2074686973e0206d617070696e672028302920697320636f6e7369646572656420746f2062652074686520426974636f696e206d61696e20636861696e2e30436861696e734861736865730102020c7533320c75333218483235364c65028000000000000000000000000000000000000000000000000000000000000000000401012053746f7265732061206d617070696e672066726f6d2028636861696e5f696e6465782c20626c6f636b5f6865696768742920746f20626c6f636b20686173682442657374426c6f636b010018483235364c6580000000000000000000000000000000000000000000000000000000000000000004842053746f7265207468652063757272656e7420626c6f636b636861696e207469703c42657374426c6f636b48656967687401000c7533321000000000048c2053746f72652074686520686569676874206f6620746865206265737420626c6f636b405374617274426c6f636b48656967687401000c753332100000000004a82042544320686569676874207768656e207468652072656c61792077617320696e697469616c697a656430436861696e436f756e74657201000c753332100000000004f020496e6372656d656e742d6f6e6c7920636f756e746572207573656420746f20747261636b206e657720426c6f636b436861696e20656e747269657368537461626c65426974636f696e436f6e6669726d6174696f6e7301000c753332100000000004f020476c6f62616c20736563757269747920706172616d65746572206b20666f7220737461626c6520426974636f696e207472616e73616374696f6e7370537461626c6550617261636861696e436f6e6669726d6174696f6e73010038543a3a426c6f636b4e756d626572100000000004f820476c6f62616c20736563757269747920706172616d65746572206b20666f7220737461626c652050617261636861696e207472616e73616374696f6e735844697361626c65446966666963756c7479436865636b010010626f6f6c040004d4205768657468657220746865206d6f64756c652073686f756c6420706572666f726d20646966666963756c747920636865636b732e5444697361626c65496e636c7573696f6e436865636b010010626f6f6c040004d0205768657468657220746865206d6f64756c652073686f756c6420706572666f726d20696e636c7573696f6e20636865636b732e5044697361626c654f7052657475726e436865636b010010626f6f6c040004d0205768657468657220746865206d6f64756c652073686f756c6420706572666f726d204f505f52455455524e20636865636b732e01147c7665726966795f616e645f76616c69646174655f7472616e73616374696f6e18407261775f6d65726b6c655f70726f6f661c5665633c75383e34636f6e6669726d6174696f6e732c4f7074696f6e3c7533323e187261775f74781c5665633c75383e2c6d696e696d756d5f6274630c69363454726563697069656e745f6274635f616464726573732842746341646472657373306f705f72657475726e5f6964304f7074696f6e3c483235363e30b5012056657269666965732074686520696e636c7573696f6e206f66206074785f69646020696e746f207468652072656c61792c20616e642076616c6964617465732074686520676976656e2072617720426974636f696e207472616e73616374696f6e2c206163636f7264696e67f90120746f2074686520737570706f72746564207472616e73616374696f6e20666f726d61742028736565203c68747470733a2f2f696e7465726c61792e6769746c61622e696f2f706f6c6b616274632d737065632f62746372656c61792d737065632f696e74726f2f61636365707465642d666f726d61742e68746d6c3e290030202320417267756d656e7473004d01202a20607261775f6d65726b6c655f70726f6f6660202d2054686520726177206d65726b6c652070726f6f662061732072657475726e656420627920626974636f696e206067657474786f757470726f6f6660ad01202a2060636f6e6669726d6174696f6e7360202d20546865206e756d626572206f6620636f6e6669726d6174696f6e73206e656564656420746f20616363657074207468652070726f6f662e20496620606e6f6e65602c207468652076616c75652073746f72656420696edc20202074686520537461626c65426974636f696e436f6e6669726d6174696f6e732073746f72616765206974656d20697320757365642e94202a20607261775f747860202d2072617720426974636f696e207472616e73616374696f6e2501202a20606d696e696d756d5f62746360202d206d696e696d756d20616d6f756e74206f662042544320287361746f73686973292073656e7420746f2074686520726563697069656e749d01202a2060726563697069656e745f6274635f6164647265737360202d203230206279746520426974636f696e2061646472657373206f6620726563697069656e74206f66207468652042544320696e207468652031737420202f207061796d656e74205554584f5501202a20606f705f72657475726e5f696460202d20333220627974652068617368206964656e74696669657220657870656374656420696e204f505f52455455524e20287265706c61792070726f74656374696f6e29707665726966795f7472616e73616374696f6e5f696e636c7573696f6e0c1474785f696418483235364c65407261775f6d65726b6c655f70726f6f661c5665633c75383e34636f6e6669726d6174696f6e732c4f7074696f6e3c7533323e50882056657269666965732074686520696e636c7573696f6e206f66206074785f6964600030202320417267756d656e747300d4202a206074785f696460202d205468652068617368206f6620746865207472616e73616374696f6e20746f20636865636b20666f724d01202a20607261775f6d65726b6c655f70726f6f6660202d2054686520726177206d65726b6c652070726f6f662061732072657475726e656420627920626974636f696e206067657474786f757470726f6f6660ad01202a2060636f6e6669726d6174696f6e7360202d20546865206e756d626572206f6620636f6e6669726d6174696f6e73206e656564656420746f20616363657074207468652070726f6f662e20496620606e6f6e65602c207468652076616c75652073746f72656420696ee42020207468652060537461626c65426974636f696e436f6e6669726d6174696f6e73602073746f72616765206974656d20697320757365642e002c2023203c7765696768743eb4204b65793a204320286c656e206f6620636861696e73292c205020286c656e206f6620706f736974696f6e732944202d2053746f726167652052656164733a090120092d204f6e652073746f72616765207265616420746f20636865636b20696620696e636c7573696f6e20636865636b2069732064697361626c65642e204f283129e020092d204f6e652073746f72616765207265616420746f207265747269657665206265737420626c6f636b206865696768742e204f283129110120092d204f6e652073746f72616765207265616420746f20636865636b206966207472616e73616374696f6e20697320696e2061637469766520666f726b2e204f283129cc20092d204f6e652073746f72616765207265616420746f20726574726965766520626c6f636b206865616465722e204f283129090120092d204f6e652073746f72616765207265616420746f20636865636b20746861742070617261636861696e206973206e6f742073687574646f776e2e204f283129010120092d204f6e652073746f72616765207265616420746f20636865636b20737461626c6520626974636f696e20636f6e6669726d6174696f6e732e204f283129090120092d204f6e652073746f72616765207265616420746f20636865636b20737461626c652070617261636861696e20636f6e6669726d6174696f6e732e204f283129302023203c2f7765696768743e5076616c69646174655f7472616e73616374696f6e10187261775f74781c5665633c75383e2c6d696e696d756d5f6274630c69363454726563697069656e745f6274635f616464726573732842746341646472657373306f705f72657475726e5f6964304f7074696f6e3c483235363e2849012056616c696461746573206120676976656e2072617720426974636f696e207472616e73616374696f6e2c206163636f7264696e6720746f2074686520737570706f72746564207472616e73616374696f6e850120666f726d61742028736565203c68747470733a2f2f696e7465726c61792e6769746c61622e696f2f706f6c6b616274632d737065632f62746372656c61792d737065632f696e74726f2f61636365707465642d666f726d61742e68746d6c3e297901205468697320444f4553204e4f5420636865636b20696620746865207472616e73616374696f6e20697320696e636c7564656420696e206120626c6f636b2c206e6f7220646f65732069742067756172616e7465652074686174207468652501207472616e73616374696f6e2069732066756c6c792076616c6964206163636f7264696e6720746f2074686520636f6e73656e73757320286e656564732066756c6c206e6f6465292e0030202320417267756d656e747394202a20607261775f747860202d2072617720426974636f696e207472616e73616374696f6e2501202a20606d696e696d756d5f62746360202d206d696e696d756d20616d6f756e74206f662042544320287361746f73686973292073656e7420746f2074686520726563697069656e746101202a2060726563697069656e745f6274635f6164647265737360202d20657870656374656420426974636f696e2061646472657373206f6620726563697069656e742028703273682c207032706b682c20703277706b68295501202a20606f705f72657475726e5f696460202d20333220627974652068617368206964656e74696669657220657870656374656420696e204f505f52455455524e20287265706c61792070726f74656374696f6e2948696e736572745f626c6f636b5f6572726f720828626c6f636b5f6861736818483235364c65146572726f72244572726f72436f646524a020496e7365727420616e206572726f72206174207468652073706563696669656420626c6f636b2e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29bc202a2060626c6f636b5f6861736860202d207468652068617368206f662074686520626974636f696e20626c6f636b94202a20606572726f7260202d20746865206572726f7220636f646520746f20696e7365727400442023205765696768743a20604f283129604872656d6f76655f626c6f636b5f6572726f720828626c6f636b5f6861736818483235364c65146572726f72244572726f72436f646524a82052656d6f766520616e206572726f722066726f6d207468652073706563696669656420626c6f636b2e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29bc202a2060626c6f636b5f6861736860202d207468652068617368206f662074686520626974636f696e20626c6f636b94202a20606572726f7260202d20746865206572726f7220636f646520746f2072656d6f766500442023205765696768743a20604f28312960011c2c496e697469616c697a65640c0c75333218483235364c65244163636f756e74496404b020626c6f636b5f6865696768742c20626c6f636b5f6865616465725f686173682c2072656c617965725f69645053746f72654d61696e436861696e4865616465720c0c75333218483235364c65244163636f756e74496404c0206e657720636861696e206865696768742c20626c6f636b5f6865616465725f686173682c2072656c617965725f69643c53746f7265466f726b486561646572100c7533320c75333218483235364c65244163636f756e74496404d420636861696e5f69642c20666f726b206865696768742c20626c6f636b5f6865616465725f686173682c2072656c617965725f696428436861696e52656f72670c18483235364c650c7533320c75333204a0206e65775f636861696e5f7469702c20636861696e206865696768742c20666f726b5f646570746850466f726b41686561644f664d61696e436861696e0c0c7533320c7533320c75333204a0206d61696e20636861696e206865696768742c20666f726b206865696768742c20666f726b20696438466c6167426c6f636b4572726f720c18483235364c650c753332244572726f72436f6465047020626c6f636b5f686173682c20636861696e5f69642c206572726f723c436c656172426c6f636b4572726f720c18483235364c650c753332244572726f72436f6465047020626c6f636b5f686173682c20636861696e5f69642c206572726f7200c048416c7265616479496e697469616c697a6564045020416c726561647920696e697469616c697a6564484d697373696e67426c6f636b4865696768740484204d697373696e672074686520626c6f636b20617420746869732068656967687444496e76616c696448656164657253697a65046820496e76616c696420626c6f636b206865616465722073697a65384475706c6963617465426c6f636b045420426c6f636b20616c72656164792073746f726564344f75746461746564426c6f636b049420426c6f636b20616c72656164792073746f72656420616e64206973206e6f7420686561642450726576426c6f636b04782050726576696f757320626c6f636b2068617368206e6f7420666f756e6438496e76616c6964436861696e4944044420496e76616c696420636861696e2049441c4c6f774469666604cc20506f57206861736820646f6573206e6f74206d65657420646966666963756c747920746172676574206f6620686561646572404469666654617267657448656164657204d820496e636f727265637420646966666963756c7479207461726765742073706563696669656420696e20626c6f636b20686561646572344d616c666f726d6564547869640484204d616c666f726d6564207472616e73616374696f6e206964656e74696669657250426974636f696e436f6e6669726d6174696f6e73040d01205472616e73616374696f6e20686173206c65737320636f6e6669726d6174696f6e73206f6620426974636f696e20626c6f636b73207468616e2072657175697265645850617261636861696e436f6e6669726d6174696f6e73041501205472616e73616374696f6e20686173206c65737320636f6e6669726d6174696f6e73206f662050617261636861696e20626c6f636b73207468616e2072657175697265642c4f6e676f696e67466f726b04542043757272656e7420666f726b206f6e676f696e67504d616c666f726d65644d65726b6c6550726f6f660468204d65726b6c652070726f6f66206973206d616c666f726d656448496e76616c69644d65726b6c6550726f6f66045420496e76616c6964206d65726b6c652070726f6f66184e6f4461746104690120466561747572652064697361626c65642e20526561736f6e3a2061206d61696e20636861696e20626c6f636b20776974682061206c6f7765722068656967687420697320666c61676765642077697468204e4f5f444154412e1c496e76616c696404110120466561747572652064697361626c65642e20526561736f6e3a2061206d61696e20636861696e20626c6f636b20697320666c616767656420617320494e56414c49442e2053687574646f776e0470204254432050617261636861696e20686173207368757420646f776e2c496e76616c69645478696404ac205472616e73616374696f6e206861736820646f6573206e6f74206d6174636820676976656e207478696444496e73756666696369656e7456616c756504a02056616c7565206f66207061796d656e742062656c6f772072657175657374656420616d6f756e74504d616c666f726d65645472616e73616374696f6e0484205472616e73616374696f6e2068617320696e636f727265637420666f726d617438496e76616c69645061796d656e74049020496e636f727265637420726563697069656e7420426974636f696e20616464726573734c496e76616c69644f7574707574466f726d6174049020496e636f7272656374207472616e73616374696f6e206f757470757420666f726d61743c496e76616c69644f7052657475726e04a020496e636f7272656374206964656e74696669657220696e204f505f52455455524e206669656c6440496e76616c6964547856657273696f6e047020496e76616c6964207472616e73616374696f6e2076657273696f6e40556e6b6e6f776e4572726f72636f64650490204572726f7220636f6465206e6f74206170706c696361626c6520746f20626c6f636b7338466f726b49644e6f74466f756e64049c20426c6f636b636861696e207769746820726571756573746564204944206e6f7420666f756e6434426c6f636b4e6f74466f756e64049820426c6f636b20686561646572206e6f7420666f756e6420666f7220676976656e20686173683c416c72656164795265706f727465640470204572726f7220636f646520616c7265616479207265706f727465644c556e617574686f72697a656452656c61796572047020556e617574686f72697a6564207374616b65642072656c6179657250436861696e436f756e7465724f766572666c6f770468204f766572666c6f77206f6620636861696e20636f756e7465724c426c6f636b4865696768744f766572666c6f770464204f766572666c6f77206f6620626c6f636b206865696768743c436861696e73556e646572666c6f7704a020556e646572666c6f77206f662073746f72656420626c6f636b636861696e7320636f756e74657224456e644f6646696c65048020456e644f6646696c652072656163686564207768696c652070617273696e673c4d616c666f726d6564486561646572048020466f726d6174206f66207468652068656164657220697320696e76616c6964584d616c666f726d65645769746e6573734f757470757404ec20466f726d6174206f662074686520424950313431207769746e657373207472616e73616374696f6e206f757470757420697320696e76616c6964504d616c666f726d65645032504b484f7574707574004c4d616c666f726d6564503253484f7574707574005c4d616c666f726d65644f7052657475726e4f757470757404d820466f726d6174206f6620746865204f505f52455455524e207472616e73616374696f6e206f757470757420697320696e76616c69645c556e737570706f727465644f7574707574466f726d61740058556e737570706f72746564496e707574466f726d6174002c4e6f44617461456d70747904bc20546865726520617265206e6f204e4f5f4441544120626c6f636b7320696e207468697320426c6f636b436861696e38496e76616c6964427463486173680484205573657220737570706c69656420616e20696e76616c6964206164647265737334496e76616c69645363726970740480205573657220737570706c69656420616e20696e76616c69642073637269707444496e76616c69644274634164647265737304882053706563696669656420696e76616c696420426974636f696e20616464726573734841726974686d657469634f766572666c6f7704502041726974686d65746963206f766572666c6f774c41726974686d65746963556e646572666c6f7704542041726974686d6574696320756e646572666c6f775052656c617965724e6f74417574686f72697a656404682052656c61796572206973206e6f7420726567697374657265640a20536563757269747901205365637572697479103c50617261636861696e537461747573010028537461747573436f6465040004f820496e74656765722f456e756d20646566696e696e67207468652063757272656e74207374617465206f6620746865204254432d50617261636861696e2e184572726f727301004c42547265655365743c4572726f72436f64653e040004250120536574206f66204572726f72436f6465732c20696e6469636174696e672074686520726561736f6e20666f7220616e20224572726f72222050617261636861696e5374617475732e144e6f6e636501001055323536800000000000000000000000000000000000000000000000000000000000000000085d0120496e746567657220696e6372656d656e742d6f6e6c7920636f756e7465722c207573656420746f2070726576656e7420636f6c6c6973696f6e73207768656e2067656e65726174696e67206964656e74696669657273350120666f7220652e672e2069737375652c2072656465656d206f72207265706c6163652072657175657374732028666f72204f505f52455455524e206669656c6420696e20426974636f696e292e40416374697665426c6f636b436f756e74010038543a3a426c6f636b4e756d6265721000000000148901204c696b65206672616d655f73797374656d3a3a626c6f636b5f6e756d6265722c206275742074686973206f6e65206f6e6c7920696e6372656d656e7473206966207468652070617261636861696e207374617475732069732052554e4e494e472e89012054686973207661726961626c65206973207573656420746f206b65657020747261636b206f66206475726174696f6e732c2073756368206173207468652069737375652f72656465656d2f7265706c616365206578706972792e2049662074686581012070617261636861696e206973206e6f742052554e4e494e472c206e6f207061796d656e742070726f6f66732063616e206265207375626d69747465642c20616e6420697420776f756c646e2774206265206661697220746f2070756e69736881012074686520757365722f7661756c742e204279207573696e672074686973207661726961626c6520776520656e737572652074686174207468657920686176652073756666696369656e742074696d6520746f207375626d69742074686569721c2070726f6f662e010c507365745f70617261636861696e5f737461747573042c7374617475735f636f646528537461747573436f6465207c20536574207468652070617261636861696e2073746174757320636f64652e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29a4202a20607374617475735f636f646560202d207468652073746174757320636f646520746f2073657400442023205765696768743a20604f2831296058696e736572745f70617261636861696e5f6572726f7204286572726f725f636f6465244572726f72436f6465207820496e736572742061206e65772070617261636861696e206572726f722e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29a8202a20606572726f725f636f646560202d20746865206572726f7220636f646520746f20696e7365727400442023205765696768743a20604f283129605872656d6f76655f70617261636861696e5f6572726f7204286572726f725f636f6465244572726f72436f646520682052656d6f766520612070617261636861696e206572726f722e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29a8202a20606572726f725f636f646560202d20746865206572726f7220636f646520746f2072656d6f766500442023205765696768743a20604f283129600104445265636f76657246726f6d4572726f72730828537461747573436f6465385665633c4572726f72436f64653e000024384e6f4461746142544352656c6179003c496e76616c696442544352656c6179004c50617261636861696e4e6f7452756e6e696e67004450617261636861696e53687574646f776e008050617261636861696e4e6f7452756e6e696e674f724c69717569646174696f6e006c50617261636861696e4f7261636c654f66666c696e654572726f72006450617261636861696e4c69717569646174696f6e4572726f720040496e76616c69644572726f72436f6465004841726974686d657469634f766572666c6f77000b385374616b656452656c6179657273011c5374616b696e6708185374616b657301010230543a3a4163636f756e744964284261636b696e673c543e004000000000000000000000000000000000003054686566745265706f72747301010218483235364c655842547265655365743c543a3a4163636f756e7449643e000400081901204d617070696e67206f6620426974636f696e207472616e73616374696f6e206964656e746966696572732028534841323536206861736865732920746f206163636f756e74a0206964656e74696669657273206f66205661756c74732061636375736564206f662074686566742e011828696e697469616c697a6508407261775f626c6f636b5f68656164657238526177426c6f636b48656164657230626c6f636b5f6865696768740c7533325c0d01204f6e652074696d652066756e6374696f6e20746f20696e697469616c697a6520746865204254432d52656c617920776974682074686520666972737420626c6f636b0030202320417267756d656e747300ec202a2060626c6f636b5f6865616465725f627974657360202d20383020627974652072617720426974636f696e20626c6f636b206865616465722e4101202a2060626c6f636b5f68656967687460202d207374617274696e6720426974636f696e20626c6f636b20686569676874206f6620746865207375626d697474656420626c6f636b206865616465722e002c2023203c7765696768743e44202d2053746f726167652052656164733a090120092d204f6e652073746f72616765207265616420746f20636865636b20746861742070617261636861696e206973206e6f742073687574646f776e2e204f283129210120092d204f6e652073746f72616765207265616420746f20636865636b2069662072656c6179657220617574686f72697a6174696f6e2069732064697361626c65642e204f283129f020092d204f6e652073746f72616765207265616420746f20636865636b2069662072656c6179657220697320617574686f72697a65642e204f28312948202d2053746f72616765205772697465733ac820202020202d204f6e652073746f7261676520777269746520746f2073746f726520626c6f636b20686173682e204f283129d020202020202d204f6e652073746f7261676520777269746520746f2073746f726520626c6f636b206865616465722e204f283129d020092d204f6e652073746f7261676520777269746520746f20696e697469616c697a65206d61696e20636861696e2e204f283129dc20202020202d204f6e652073746f7261676520777269746520746f2073746f7265206265737420626c6f636b20686173682e204f283129e420202020202d204f6e652073746f7261676520777269746520746f2073746f7265206265737420626c6f636b206865696768742e204f28312928202d204576656e74733a8420092d204f6e65206576656e7420666f7220696e697469616c697a6174696f6e2e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e5c72656769737465725f7374616b65645f72656c6179657204147374616b654c436f6d706163743c4261636b696e673c543e3e18ad01205265676973746572732061206e6577205374616b65642052656c617965722c206c6f636b696e67207468652070726f766964656420636f6c6c61746572616c2c207768696368206d7573742065786365656420605354414b45445f52454c415945525f5354414b45602e0030202320417267756d656e747300fc202a20606f726967696e603a20546865206163636f756e74206f6620746865205374616b65642052656c6179657220746f2062652072656769737465726564d0202a20607374616b65603a20746f2d62652d6c6f636b656420636f6c6c61746572616c2f7374616b6520696e204261636b696e6764646572656769737465725f7374616b65645f72656c617965720014f82044657265676973746572732061205374616b65642052656c617965722c2072656c656173696e6720746865206173736f636961746564207374616b652e0030202320417267756d656e7473000501202a20606f726967696e603a20546865206163636f756e74206f6620746865205374616b65642052656c6179657220746f206265206465726567697374657265644873746f72655f626c6f636b5f68656164657204407261775f626c6f636b5f68656164657238526177426c6f636b48656164657280842053746f72657320612073696e676c65206e657720626c6f636b206865616465720030202320417267756d656e747300e4202a20607261775f626c6f636b5f68656164657260202d20383020627974652072617720426974636f696e20626c6f636b206865616465722e002c2023203c7765696768743eb4204b65793a204320286c656e206f6620636861696e73292c205020286c656e206f6620706f736974696f6e732944202d2053746f726167652052656164733a090120092d204f6e652073746f72616765207265616420746f20636865636b20746861742070617261636861696e206973206e6f742073687574646f776e2e204f283129210120092d204f6e652073746f72616765207265616420746f20636865636b2069662072656c6179657220617574686f72697a6174696f6e2069732064697361626c65642e204f283129f020092d204f6e652073746f72616765207265616420746f20636865636b2069662072656c6179657220697320617574686f72697a65642e204f283129f420092d204f6e652073746f72616765207265616420746f20636865636b20696620626c6f636b206865616465722069732073746f7265642e204f283129e020092d204f6e652073746f72616765207265616420746f20726574726965766520706172656e7420626c6f636b20686173682e204f2831290d0120092d204f6e652073746f72616765207265616420746f20636865636b20696620646966666963756c747920636865636b2069732064697361626c65642e204f283129d420092d204f6e652073746f72616765207265616420746f207265747269657665206c6173742072652d7461726765742e204f283129c420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c20436861696e732e204f28432948202d2053746f72616765205772697465733ac820202020202d204f6e652073746f7261676520777269746520746f2073746f726520626c6f636b20686173682e204f283129d020202020202d204f6e652073746f7261676520777269746520746f2073746f726520626c6f636b206865616465722e204f283129c420092d204f6e652073746f72616765206d757461746520746f20657874656e64206d61696e20636861696e2e204f283129dc20202020202d204f6e652073746f7261676520777269746520746f2073746f7265206265737420626c6f636b20686173682e204f283129e420202020202d204f6e652073746f7261676520777269746520746f2073746f7265206265737420626c6f636b206865696768742e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a7820092d204f28502920736f727420746f2072656f726720636861696e732e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a7820092d20557064617465732072656c6179657220736c612073636f72652e28202d204576656e74733acc20092d204f6e65206576656e7420666f7220626c6f636b2073746f7265642028666f726b206f7220657874656e73696f6e292e006c20546f74616c20436f6d706c65786974793a204f2843202b205029302023203c2f7765696768743e50736c6173685f7374616b65645f72656c6179657204447374616b65645f72656c617965725f696430543a3a4163636f756e74496418450120536c617368657320746865207374616b652f636f6c6c61746572616c206f662061205374616b65642052656c6179657220616e642072656d6f766573207468656d2066726f6d20746865206c6973742e0030202320417267756d656e747300dc202a20606f726967696e603a20546865204163636f756e744964206f662074686520476f7665726e616e6365204d656368616e69736d2e2101202a20607374616b65645f72656c617965725f6964603a20546865206163636f756e74206f6620746865205374616b65642052656c6179657220746f20626520736c61736865642e487265706f72745f7661756c745f74686566740c207661756c745f696430543a3a4163636f756e744964306d65726b6c655f70726f6f661c5665633c75383e187261775f74781c5665633c75383e2825012041205374616b65642052656c61796572207265706f727473206d69736265686176696f722062792061205661756c742c2070726f766964696e6720612066726175642070726f6f664d0120286d616c6963696f757320426974636f696e207472616e73616374696f6e20616e642074686520636f72726573706f6e64696e67207472616e73616374696f6e20696e636c7573696f6e2070726f6f66292e0030202320417267756d656e74730074202a20606f726967696e603a20416e79207369676e656420757365722ec4202a20607661756c745f6964603a20546865206163636f756e74206f6620746865207661756c7420746f20636865636b2e9c202a206074785f6964603a205468652068617368206f6620746865207472616e73616374696f6eb4202a20606d65726b6c655f70726f6f66603a205468652070726f6f66206f6620747820696e636c7573696f6e2ea4202a20607261775f7478603a205468652072617720426974636f696e207472616e73616374696f6e2e01105452656769737465725374616b656452656c6179657208244163636f756e7449641c4261636b696e67005c446572656769737465725374616b656452656c6179657204244163636f756e7449640048536c6173685374616b656452656c6179657204244163636f756e74496400285661756c74546865667408244163636f756e74496418483235364c6500004044416c7265616479526567697374657265640494205374616b65642072656c6179657220697320616c7265616479207265676973746572656444496e73756666696369656e745374616b65047c20496e73756666696369656e7420636f6c6c61746572616c207374616b6564344e6f74526567697374657265640478205061727469636970616e74206973206e6f742072656769737465726564505661756c74416c72656164795265706f72746564045c205661756c7420616c7265616479207265706f72746564585661756c74416c72656164794c6971756964617465640464205661756c7420616c7265616479206c697175696461746564645661756c744e6f496e707574546f5472616e73616374696f6e04ac205661756c74204254432061646472657373206e6f7420696e207472616e73616374696f6e20696e7075745856616c696452656465656d5472616e73616374696f6e04642056616c69642072656465656d207472616e73616374696f6e5c56616c69645265706c6163655472616e73616374696f6e04682056616c6964207265706c616365207472616e73616374696f6e5856616c6964526566756e645472616e73616374696f6e04642056616c696420726566756e64207472616e73616374696f6e5456616c69644d657267655472616e73616374696f6e04602056616c6964206d65726765207472616e73616374696f6e34426c6f636b4e6f74466f756e64048020426c6f636b206e6f7420696e636c75646564206279207468652072656c617950426c6f636b416c72656164795265706f72746564045c20426c6f636b20616c7265616479207265706f72746564444578706563746564426c6f636b4861736804b42043616e6e6f74207265706f7274207661756c7420746865667420776974686f757420626c6f636b20686173684c556e6578706563746564426c6f636b4861736804b020537461747573207570646174652073686f756c64206e6f7420636f6e7461696e20626c6f636b206861736848496e76616c69645472616e73616374696f6e0470204661696c656420746f207061727365207472616e73616374696f6e3c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c75650c345661756c74526567697374727901345661756c7452656769737472792c584d696e696d756d436f6c6c61746572616c5661756c740100284261636b696e673c543e400000000000000000000000000000000008fc20546865206d696e696d756d20636f6c6c61746572616c2028652e672e20444f542f4b534d292061205661756c74206e6565647320746f2070726f766964659420746f20706172746963697061746520696e207468652069737375652070726f636573732e3c50756e6973686d656e7444656c6179010038543a3a426c6f636b4e756d626572100000000008e42049662061205661756c74206661696c7320746f2065786563757465206120636f72726563742072656465656d206f72207265706c6163652c25012069742069732074656d706f726172696c792062616e6e65642066726f6d20667572746865722069737375652c2072656465656d206f72207265706c6163652072657175657374732e64536563757265436f6c6c61746572616c5468726573686f6c64010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000c05012044657465726d696e657320746865206f7665722d636f6c6c61746572616c697a6174696f6e207261746520666f7220636f6c6c61746572616c206c6f636b6564f4206279205661756c74732c206e656365737361727920666f722069737375696e6720746f6b656e732e204d75737420746f206265207374726963746c79e02067726561746572207468616e2031303030303020616e64204c69717569646174696f6e436f6c6c61746572616c5468726573686f6c642e585072656d69756d52656465656d5468726573686f6c64010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000010dc2044657465726d696e657320746865207261746520666f722074686520636f6c6c61746572616c2072617465206f66205661756c74732cd420617420776869636820757365727320726563656976652061207072656d69756d2c20616c6c6f63617465642066726f6d20746865f8205661756c74277320636f6c6c61746572616c2c207768656e20706572666f726d696e6720612072656465656d20776974682074686973205661756c742e3101204d75737420746f206265207374726963746c792067726561746572207468616e2031303030303020616e64204c69717569646174696f6e436f6c6c61746572616c5468726573686f6c642e784c69717569646174696f6e436f6c6c61746572616c5468726573686f6c64010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000c15012044657465726d696e657320746865206c6f77657220626f756e6420666f722074686520636f6c6c61746572616c207261746520696e2069737375656420746f6b656e732e1501204d757374206265207374726963746c792067726561746572207468616e203130303030302e2049662061205661756c74e280997320636f6c6c61746572616c207261746519012064726f70732062656c6f7720746869732c206175746f6d61746963206c69717569646174696f6e2028666f726365642052656465656d29206973207472696767657265642e644c69717569646174696f6e5661756c744163636f756e744964010030543a3a4163636f756e744964800000000000000000000000000000000000000000000000000000000000000000102901204163636f756e74206964656e746966696572206f6620616e206172746966696369616c205661756c74206d61696e7461696e656420627920746865205661756c745265676973747279fc20746f2068616e646c65206973737565642062616c616e63657320616e6420636f6c6c61746572616c206f66206c697175696461746564205661756c74732e150120546861742069732c207768656e2061205661756c74206973206c6971756964617465642c206974732062616c616e63657320617265207472616e7366657272656420746f2101204c69717569646174696f6e5661756c7420616e6420636c61696d7320617265206c617465722068616e646c65642076696120746865204c69717569646174696f6e5661756c742e404c69717569646174696f6e5661756c7401005c53797374656d5661756c743c49737375696e673c543e3ec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000185661756c747301010230543a3a4163636f756e74496441015661756c743c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c2049737375696e673c543e2c204261636b696e673c543e2c0a5369676e65644669786564506f696e743c543e3e00950300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000042501204d617070696e67206f66205661756c74732c207573696e67207468652072657370656374697665205661756c74206163636f756e74206964656e746966696572206173206b65792e445265736572766564416464726573736573010102284274634164647265737330543a3a4163636f756e7449640080000000000000000000000000000000000000000000000000000000000000000004f0204d617070696e67206f66207265736572766564204254432061646472657373657320746f207468652072656769737465726564206163636f756e747c546f74616c557365725661756c744261636b696e67436f6c6c61746572616c0100284261636b696e673c543e400000000000000000000000000000000004890120546f74616c20636f6c6c61746572616c207573656420666f72206261636b696e6720746f6b656e732069737375656420627920616374697665207661756c74732c206578636c7564696e6720746865206c69717569646174696f6e207661756c743853746f7261676556657273696f6e01001c56657273696f6e040004a8204275696c642073746f72616765206174205631202872657175697265732064656661756c742030292e011c3872656769737465725f7661756c740828636f6c6c61746572616c4c436f6d706163743c4261636b696e673c543e3e287075626c69635f6b6579304274635075626c69634b657930d820496e697469617465732074686520726567697374726174696f6e2070726f63656475726520666f722061206e6577205661756c742ef020546865205661756c742070726f76696465732069747320425443206164647265737320616e64206c6f636b7320757020636f6c6c61746572616c2cb020776869636820697320746f206265207573656420746f207468652069737375696e672070726f636573732e0030202320417267756d656e7473c8202a2060636f6c6c61746572616c60202d2074686520616d6f756e74206f6620636f6c6c61746572616c20746f206c6f636bf4202a20607075626c69635f6b657960202d2074686520425443207075626c6963206b6579206f6620746865207661756c7420746f20726567697374657200242023204572726f72736501202a2060496e73756666696369656e745661756c74436f6c6c61746572616c416d6f756e7460202d2069662074686520636f6c6c61746572616c2069732062656c6f7720746865206d696e696d756d207468726573686f6c645501202a20605661756c74416c72656164795265676973746572656460202d2069662061207661756c7420697320616c7265616479207265676973746572656420666f7220746865206f726967696e206163636f756e744901202a2060496e73756666696369656e74436f6c6c61746572616c417661696c61626c6560202d20696620746865207661756c7420646f6573206e6f74206f776e20656e6f75676820636f6c6c61746572616c686c6f636b5f6164646974696f6e616c5f636f6c6c61746572616c0418616d6f756e744c436f6d706163743c4261636b696e673c543e3e24fc204c6f636b73206164646974696f6e616c20636f6c6c61746572616c206173206120736563757269747920616761696e737420737465616c696e67207468656020426974636f696e206c6f636b656420776974682069742e0030202320417267756d656e7473d0202a2060616d6f756e7460202d2074686520616d6f756e74206f6620657874726120636f6c6c61746572616c20746f206c6f636b00242023204572726f7273f8202a20605661756c744e6f74466f756e6460202d206966206e6f207661756c742065786973747320666f7220746865206f726967696e206163636f756e744901202a2060496e73756666696369656e74436f6c6c61746572616c417661696c61626c6560202d20696620746865207661756c7420646f6573206e6f74206f776e20656e6f75676820636f6c6c61746572616c4c77697468647261775f636f6c6c61746572616c0418616d6f756e744c436f6d706163743c4261636b696e673c543e3e38fc205769746864726177732060616d6f756e7460206f662074686520636f6c6c61746572616c2066726f6d2074686520616d6f756e74206c6f636b6564206279b820746865207661756c7420636f72726573706f6e64696e6720746f20746865206f726967696e206163636f756e74c82054686520636f6c6c61746572616c206c656674206166746572207769746864726177616c206d757374206265206d6f72651101202866726565206f72207573656420696e206261636b696e672069737375656420746f6b656e7329207468616e204d696e696d756d436f6c6c61746572616c5661756c74190120616e642061626f76652074686520536563757265436f6c6c61746572616c5468726573686f6c642e20436f6c6c61746572616c20746861742069732063757272656e746c790101206265696e67207573656420746f206261636b2069737375656420746f6b656e732072656d61696e73206c6f636b656420756e74696c20746865205661756c743d01206973207573656420666f7220612072656465656d2072657175657374202866756c6c2072656c656173652063616e2074616b65206d756c7469706c652072656465656d207265717565737473292e0030202320417267756d656e7473c8202a2060616d6f756e7460202d2074686520616d6f756e74206f6620636f6c6c61746572616c20746f20776974686472617700242023204572726f7273f8202a20605661756c744e6f74466f756e6460202d206966206e6f207661756c742065786973747320666f7220746865206f726967696e206163636f756e744901202a2060496e73756666696369656e74436f6c6c61746572616c417661696c61626c6560202d20696620746865207661756c7420646f6573206e6f74206f776e20656e6f75676820636f6c6c61746572616c447570646174655f7075626c69635f6b657904287075626c69635f6b6579304274635075626c69634b657910bc205265676973746572732061206e657720426974636f696e206164647265737320666f7220746865207661756c742e0030202320417267756d656e7473ec202a20607075626c69635f6b657960202d2074686520425443207075626c6963206b6579206f6620746865207661756c7420746f207570646174654072656769737465725f61646472657373042c6274635f61646472657373284274634164647265737300446163636570745f6e65775f69737375657304446163636570745f6e65775f69737375657310626f6f6c20e020436f6e666967757265732077686574686572206f72206e6f7420746865207661756c742061636365707473206e6577206973737565732e0030202320417267756d656e747300e0202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e2028692e652e20746865207661756c74292501202a20606163636570745f6e65775f69737375657360202d207472756520696e64696361746573207468617420746865207661756c742061636365707473206e65772069737375657300442023205765696768743a20604f28312960807265706f72745f756e646572636f6c6c61746572616c697a65645f7661756c7404207661756c745f696430543a3a4163636f756e74496400014c3452656769737465725661756c7408244163636f756e7449641c4261636b696e6700604c6f636b4164646974696f6e616c436f6c6c61746572616c10244163636f756e7449641c4261636b696e671c4261636b696e671c4261636b696e6704f0207661756c745f69642c206e657720636f6c6c61746572616c2c20746f74616c20636f6c6c61746572616c2c206672656520636f6c6c61746572616c485769746864726177436f6c6c61746572616c0c244163636f756e7449641c4261636b696e671c4261636b696e6704c4207661756c745f69642c2077697468647261776e20636f6c6c61746572616c2c20746f74616c20636f6c6c61746572616c3c5570646174655075626c69634b657908244163636f756e744964304274635075626c69634b65790464207661756c745f69642c206e6577207075626c6963206b65793c52656769737465724164647265737308244163636f756e74496428427463416464726573730458207661756c745f69642c206e6577206164647265737360496e637265617365546f4265497373756564546f6b656e7308244163636f756e7449641c49737375696e6704a4207661756c745f69642c206164646974696f6e616c20746f2d62652d69737375656420746f6b656e73604465637265617365546f4265497373756564546f6b656e7308244163636f756e7449641c49737375696e6704a8207661756c745f69642c20646563726561736520696e20746f2d62652d69737375656420746f6b656e732c4973737565546f6b656e7308244163636f756e7449641c49737375696e6704b4207661756c745f69642c206164646974696f6e616c206e756d626572206f662069737375656420746f6b656e7368496e637265617365546f426552656465656d6564546f6b656e7308244163636f756e7449641c49737375696e6704ac207661756c745f69642c206164646974696f6e616c20746f2d62652d72656465656d656420746f6b656e73684465637265617365546f426552656465656d6564546f6b656e7308244163636f756e7449641c49737375696e6704b0207661756c745f69642c20646563726561736520696e20746f2d62652d72656465656d656420746f6b656e7368496e637265617365546f42655265706c61636564546f6b656e7308244163636f756e7449641c49737375696e6704ac207661756c745f69642c206164646974696f6e616c20746f2d62652d7265706c6163656420746f6b656e73384465637265617365546f6b656e730c244163636f756e744964244163636f756e7449641c49737375696e67041d01207661756c745f69642c20757365725f69642c20616d6f756e74206f6620746f6b656e73207265647563656420696e20697373756564202620746f2d62652d72656465656d65643052656465656d546f6b656e7308244163636f756e7449641c49737375696e6704a8207661756c745f69642c20616d6f756e74206f66206e65776c792072656465656d656420746f6b656e734c52656465656d546f6b656e735072656d69756d10244163636f756e7449641c49737375696e671c4261636b696e67244163636f756e744964044901207661756c745f69642c20616d6f756e74206f66206e65776c792072656465656d656420746f6b656e732c20616d6f756e74206f66206261636b696e67207472616e736665727265642c20757365725f69646c52656465656d546f6b656e734c6971756964617465645661756c740c244163636f756e7449641c49737375696e671c4261636b696e6704f8207661756c745f69642c20616d6f756e74206f66206e65776c792072656465656d656420746f6b656e732c20736c617368656420636f6c6c61746572616c5c52656465656d546f6b656e734c69717569646174696f6e0c244163636f756e7449641c49737375696e671c4261636b696e6704e8207661756c745f69642c20616d6f756e74206f66206275726e656420746f6b656e732c207472616e7366657272656420636f6c6c61746572616c345265706c616365546f6b656e7310244163636f756e744964244163636f756e7449641c49737375696e671c4261636b696e67046901206f6c645f7661756c745f69642c206e65775f7661756c745f69642c207472616e7366657272656420746f6b656e732c206164646974696f6e616c20636f6c6c61746572616c206c6f636b6564206279206e65775f7661756c74384c69717569646174655661756c7420244163636f756e7449641c49737375696e671c49737375696e671c49737375696e671c49737375696e671c4261636b696e672c5661756c745374617475731c4261636b696e67081501207661756c745f69642c206973737565645f746f6b656e732c20746f5f62655f6973737565645f746f6b656e732c20746f5f62655f72656465656d65645f746f6b656e732c190120746f5f62655f7265706c616365645f746f6b656e732c206261636b696e675f636f6c6c61746572616c2c207374617475732c207265706c6163655f636f6c6c61746572616c2042616e5661756c7408244163636f756e74496438543a3a426c6f636b4e756d626572045c207661756c745f69642c2062616e6e65645f756e74696c04204d6f64756c654964204d6f64756c654964206d6f642f7672656704050120546865207661756c74206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e4858496e73756666696369656e74436f6c6c61746572616c004c457863656564696e675661756c744c696d69740449012054686520616d6f756e74206f6620746f6b656e7320746f2062652069737375656420697320686967686572207468616e20746865206973737561626c6520616d6f756e7420627920746865207661756c746c496e73756666696369656e74546f6b656e73436f6d6d6974746564002c5661756c7442616e6e65640084496e73756666696369656e745661756c74436f6c6c61746572616c416d6f756e740409012052657475726e65642069662074686520636f6c6c61746572616c20616d6f756e7420746f2072656769737465722061207661756c742077617320746f6f206c6f77585661756c74416c7265616479526567697374657265640415012052657475726e65642069662061207661756c7420747269657320746f207265676973746572207768696c6520616c7265616479206265696e672072656769737465726564345661756c744e6f74466f756e64005852657365727665644465706f7369744164647265737304c02054686520426974636f696e20416464726573732068617320616c7265616479206265656e2072656769737465726564384e6f546f6b656e7349737375656404d820436f6c6c61746572616c697a6174696f6e20697320696e66696e697465206966206e6f20746f6b656e7320617265206973737565647c4e6f5661756c745769746853756666696369656e74436f6c6c61746572616c006c4e6f5661756c745769746853756666696369656e74546f6b656e7300944e6f5661756c74556e6465725468655072656d69756d52656465656d5468726573686f6c64004841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f77003c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c756540496e76616c69645365637265744b65790040496e76616c69645075626c69634b657900845661756c744e6f7442656c6f774c69717569646174696f6e5468726573686f6c64000d4845786368616e6765526174654f7261636c65014845786368616e6765526174654f7261636c65183045786368616e676552617465010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000004802043757272656e7420706c616e636b20706572207361746f7368692072617465504c61737445786368616e67655261746554696d65010024543a3a4d6f6d656e742000000000000000000460204c6173742065786368616e676520726174652074696d653c5361746f736869506572427974657301004042746354784665657350657242797465300000000000000000000000000431012054686520657374696d6174656420696e636c7573696f6e2074696d6520666f72206120426974636f696e207472616e73616374696f6e20696e207361746f73686973207065722062797465204d617844656c6179010024543a3a4d6f6d656e7420000000000000000004f8204d6178696d756d2064656c617920286d696c6c697365636f6e64732920666f72207468652065786368616e6765207261746520746f206265207573656444417574686f72697a65644f7261636c657301010230543a3a4163636f756e7449641c5665633c75383e000400003853746f7261676556657273696f6e01001c56657273696f6e040004a8204275696c642073746f72616765206174205631202872657175697265732064656661756c742030292e0110447365745f65786368616e67655f72617465044c6261636b696e675f7065725f69737375696e6754556e7369676e65644669786564506f696e743c543e20602053657473207468652065786368616e676520726174652e0030202320417267756d656e747300b901202a20606261636b696e675f7065725f69737375696e6760202d2065786368616e67652072617465206578707265737365642061732074686520616d6f756e74206f66206261636b696e6720636f6c6c61746572616c207065722077686f6c652069737375656420746f6b656e2ec501204e6f746520746861742074686973206973205f6e6f745f207468652073616d6520756e697420746861742069732073746f72656420696e207468652045786368616e6765526174652073746f72616765206974656d207768696368206973206d756c7469706c69656420627920746865350120636f6e76657273696f6e20666163746f72202d20692e652e20706c616e636b5f7065725f7361746f736869203d20646f745f7065725f627463202a202831302a2a3130202f2031302a2a382998205468652073746f72656420756e697420697320706c616e636b5f7065725f7361746f736869607365745f6274635f74785f666565735f7065725f627974650c10666173740c7533321068616c660c75333210686f75720c75333218510120536574732074686520657374696d61746564207472616e73616374696f6e20696e636c7573696f6e2066656573206261736564206f6e2074686520657374696d6174656420696e636c7573696f6e2074696d650030202320417267756d656e74736101202a20606661737460202d2054686520657374696d61746564205361746f736869732070657220627974657320746f2067657420696e636c7564656420696e20746865206e65787420626c6f636b20287e3130206d696e297901202a206068616c6660202d2054686520657374696d61746564205361746f736869732070657220627974657320746f2067657420696e636c7564656420696e20746865206e657874203320626c6f636b7320287e68616c6620686f7572296501202a2060686f757260202d2054686520657374696d61746564205361746f736869732070657220627974657320746f2067657420696e636c7564656420696e20746865206e657874203620626c6f636b7320287e686f75722960696e736572745f617574686f72697a65645f6f7261636c6508286163636f756e745f696430543a3a4163636f756e744964106e616d651c5665633c75383e142101204164647320616e20617574686f72697a6564206f7261636c65206163636f756e7420286f6e6c792065786563757461626c652062792074686520526f6f74206163636f756e74290030202320417267756d656e7473b8202a20606163636f756e745f696460202d20746865206163636f756e74204964206f6620746865206f7261636c65b4202a20606e616d6560202d2061206465736372697074697665206e616d6520666f7220746865206f7261636c656072656d6f76655f617574686f72697a65645f6f7261636c6504286163636f756e745f696430543a3a4163636f756e744964102d012052656d6f76657320616e20617574686f72697a6564206f7261636c65206163636f756e7420286f6e6c792065786563757461626c652062792074686520526f6f74206163636f756e74290030202320417267756d656e7473b8202a20606163636f756e745f696460202d20746865206163636f756e74204964206f6620746865206f7261636c6501083c53657445786368616e67655261746508244163636f756e74496448556e7369676e65644669786564506f696e7404a0204576656e7420656d6974746564207768656e2065786368616e67652072617465206973207365744c5365744274635478466565735065724279746510244163636f756e7449640c7533320c7533320c75333204ac204576656e7420656d6974746564207768656e20746865206274632074782066656573206172652073657400144c496e76616c69644f7261636c65536f757263650490204e6f7420617574686f72697a656420746f207365742065786368616e676520726174654c4d697373696e6745786368616e67655261746504ac2045786368616e67652072617465206e6f7420737065636966696564206f722068617320657870697265643c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c75654841726974686d657469634f766572666c6f7704a8204d617468656d61746963616c206f7065726174696f6e2063617573656420616e206f766572666c6f774c41726974686d65746963556e646572666c6f7704ac204d617468656d61746963616c206f7065726174696f6e2063617573656420616e20756e646572666c6f770e144973737565011449737375650c344973737565526571756573747301010210483235360d014973737565526571756573743c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c2049737375696e673c543e2c204261636b696e673c543e0a3e00cd0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000829012055736572732063726561746520697373756520726571756573747320746f20697373756520746f6b656e732e2054686973206d617070696e672070726f766964657320616363657373e82066726f6d206120756e6971756520686173682060497373756549646020746f20616e206049737375655265717565737460207374727563742e2c4973737565506572696f64010038543a3a426c6f636b4e756d62657210000000000c3101205468652074696d6520646966666572656e636520696e206e756d626572206f6620626c6f636b73206265747765656e20616e20697373756520726571756573742069732063726561746564310120616e6420726571756972656420636f6d706c6574696f6e2074696d65206279206120757365722e2054686520697373756520706572696f642068617320616e207570706572206c696d6974a420746f2070726576656e74206772696566696e67206f66207661756c7420636f6c6c61746572616c2e3853746f7261676556657273696f6e01001c56657273696f6e040004a8204275696c642073746f72616765206174205631202872657175697265732064656661756c742030292e011034726571756573745f69737375650c18616d6f756e744c436f6d706163743c49737375696e673c543e3e207661756c745f696430543a3a4163636f756e7449644c6772696566696e675f636f6c6c61746572616c4c436f6d706163743c4261636b696e673c543e3e247c2052657175657374207468652069737375616e6365206f6620746f6b656e730030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e5501202a2060616d6f756e7460202d20616d6f756e74206f66204254432074686520757365722077616e747320746f20636f6e7665727420746f2069737375656420746f6b656e732e204e6f7465207468617420746865310120616d6f756e74206f662069737375656420746f6b656e732072656365697665642077696c6c206265206c6573732c206265636175736520612066656520697320737562747261637465642e84202a20607661756c7460202d2061646472657373206f6620746865207661756c74bc202a20606772696566696e675f636f6c6c61746572616c60202d20616d6f756e74206f6620636f6c6c61746572616c34657865637574655f69737375650c2069737375655f69641048323536306d65726b6c655f70726f6f661c5665633c75383e187261775f74781c5665633c75383e24802046696e616c697a65207468652069737375616e6365206f6620746f6b656e730030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e2101202a206069737375655f696460202d206964656e746966696572206f662069737375652072657175657374206173206f75747075742066726f6d20726571756573745f6973737565d0202a206074785f626c6f636b5f68656967687460202d20626c6f636b206e756d626572206f66206261636b696e6720636861696e74202a20606d65726b6c655f70726f6f6660202d207261772062797465735c202a20607261775f747860202d207261772062797465733063616e63656c5f6973737565042069737375655f6964104832353618a42043616e63656c207468652069737375616e6365206f6620746f6b656e7320696620657870697265640030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e2101202a206069737375655f696460202d206964656e746966696572206f662069737375652072657175657374206173206f75747075742066726f6d20726571756573745f6973737565407365745f69737375655f706572696f640418706572696f6438543a3a426c6f636b4e756d62657220c820536574207468652064656661756c7420697373756520706572696f6420666f7220747820766572696669636174696f6e2e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29b4202a2060706572696f6460202d2064656661756c7420706572696f6420666f72206e657720726571756573747300442023205765696768743a20604f28312960011030526571756573744973737565201048323536244163636f756e7449641c49737375696e671c49737375696e671c4261636b696e67244163636f756e7449642842746341646472657373304274635075626c69634b657900444973737565416d6f756e744368616e67651010483235361c49737375696e671c49737375696e671c4261636b696e670030457865637574654973737565101048323536244163636f756e7449641c49737375696e67244163636f756e744964002c43616e63656c49737375650c1048323536244163636f756e7449641c4261636b696e6700003058496e73756666696369656e74436f6c6c61746572616c003c497373756549644e6f74466f756e64004c436f6d6d6974506572696f6445787069726564003854696d654e6f744578706972656400384973737565436f6d706c657465640038497373756543616e63656c6c656400685661756c744e6f74416363657074696e674e6577497373756573007c57616974696e67466f7252656c61796572496e697469616c697a6174696f6e003c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c75654c41726974686d65746963556e646572666c6f77004841726974686d657469634f766572666c6f77003c496e76616c69644578656375746f72000f1852656465656d011852656465656d143052656465656d506572696f64010038543a3a426c6f636b4e756d626572100000000008d501205468652074696d6520646966666572656e636520696e206e756d626572206f6620626c6f636b73206265747765656e20612072656465656d2072657175657374206973206372656174656420616e6420726571756972656420636f6d706c6574696f6e2074696d652062792061207661756c742e4502205468652072656465656d20706572696f642068617320616e207570706572206c696d697420746f20656e7375726520746865207573657220676574732074686569722042544320696e2074696d6520616e6420746f20706f74656e7469616c6c792070756e6973682061207661756c7420666f7220696e6163746976697479206f7220737465616c696e67204254432e3852656465656d52657175657374730101021048323536110152656465656d526571756573743c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c2049737375696e673c543e2c204261636b696e673c543e0a3e008902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080d01205573657273206372656174652072656465656d20726571756573747320746f20726563656976652042544320696e2072657475726e20666f722049737375696e672e35012054686973206d617070696e672070726f7669646573206163636573732066726f6d206120756e6971756520686173682072656465656d496420746f20612052656465656d207374727563742e4852656465656d4274634475737456616c756501002849737375696e673c543e4000000000000000000000000000000000085d0120546865206d696e696d756d20616d6f756e74206f6620627463207468617420697320616363657074656420666f722072656465656d2072657175657374733b20616e79206c6f7765722076616c75657320776f756c64b8207269736b2074686520626974636f696e20636c69656e7420746f2072656a65637420746865207061796d656e745452656465656d5472616e73616374696f6e53697a6501000c753332100000000004e8207468652065787065637465642073697a6520696e206279746573206f66207468652072656465656d20626974636f696e207472616e736665723853746f7261676556657273696f6e01001c56657273696f6e040004a8204275696c642073746f72616765206174205631202872657175697265732064656661756c742030292e011838726571756573745f72656465656d0c38616d6f756e745f69737375696e674c436f6d706163743c49737375696e673c543e3e2c6274635f616464726573732842746341646472657373207661756c745f696430543a3a4163636f756e74496424710120496e697469616c697a65732061207265717565737420746f206275726e2069737375656420746f6b656e7320616761696e73742061205661756c7420776974682073756666696369656e7420746f6b656e732e2049742077696c6cc820616c736f20656e737572652074686174207468652050617261636861696e207374617475732069732052554e4e494e472e0030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e94202a2060616d6f756e7460202d20616d6f756e74206f662069737375656420746f6b656e73b4202a20606274635f6164647265737360202d20746865206164647265737320746f20726563656976652042544390202a20607661756c745f696460202d2061646472657373206f6620746865207661756c74486c69717569646174696f6e5f72656465656d0438616d6f756e745f69737375696e674c436f6d706163743c49737375696e673c543e3e207901205768656e2061205661756c74206973206c6971756964617465642c2069747320636f6c6c61746572616c20697320736c617368656420757020746f2031353025206f6620746865206c697175696461746564204254432076616c75652e890120546f2072652d65737461626c6973682074686520706879736963616c20313a31207065672c207468652062726964676520616c6c6f777320757365727320746f206275726e2069737375656420746f6b656e7320696e2072657475726e20666f727820636f6c6c61746572616c2061742061207072656d69756d20726174652e0030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6ed4202a2060616d6f756e745f69737375696e6760202d20616d6f756e74206f662069737375656420746f6b656e7320746f206275726e38657865637574655f72656465656d0c2472656465656d5f69641048323536306d65726b6c655f70726f6f661c5665633c75383e187261775f74781c5665633c75383e3069012041205661756c742063616c6c7320746869732066756e6374696f6e20616674657220726563656976696e6720616e205265717565737452656465656d206576656e742077697468207468656972207075626c6963206b65792e7d01204265666f72652063616c6c696e67207468652066756e6374696f6e2c20746865205661756c74207472616e73666572732074686520737065636966696320616d6f756e74206f662042544320746f20746865204254432061646472657373650120676976656e20696e20746865206f726967696e616c2072656465656d20726571756573742e20546865205661756c7420636f6d706c65746573207468652072656465656d207769746820746869732066756e6374696f6e2e0030202320417267756d656e747300c8202a20606f726967696e60202d20616e796f6e6520657865637574696e6720746869732072656465656d20726571756573742d01202a206072656465656d5f696460202d206964656e746966696572206f662072656465656d2072657175657374206173206f75747075742066726f6d20726571756573745f72656465656d74202a206074785f696460202d207472616e73616374696f6e2068617368d0202a206074785f626c6f636b5f68656967687460202d20626c6f636b206e756d626572206f66206261636b696e6720636861696e74202a20606d65726b6c655f70726f6f6660202d207261772062797465735c202a20607261775f747860202d207261772062797465733463616e63656c5f72656465656d082472656465656d5f69641048323536247265696d627572736510626f6f6c2c4d0120496620612072656465656d2072657175657374206973206e6f7420636f6d706c65746564206f6e2074696d652c207468652072656465656d20726571756573742063616e2062652063616e63656c6c65642e4d01205468652075736572207468617420696e697469616c6c7920726571756573746564207468652072656465656d2070726f636573732063616c6c7320746869732066756e6374696f6e20746f206f627461696e690120746865205661756c74e280997320636f6c6c61746572616c20617320636f6d70656e736174696f6e20666f72206e6f7420726566756e64696e672074686520425443206261636b20746f20746865697220616464726573732e0030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e2d01202a206072656465656d5f696460202d206964656e746966696572206f662072656465656d2072657175657374206173206f75747075742066726f6d20726571756573745f72656465656d3501202a20607265696d627572736560202d2073706563696679696e672069662074686520757365722077697368657320746f206265207265696d62757273656420696e20636f6c6c61746572616cf420616e6420736c61736820746865205661756c742c206f722077697368657320746f206b6565702074686520746f6b656e732028616e642072657472796c2052656465656d207769746820616e6f74686572205661756c7429447365745f72656465656d5f706572696f640418706572696f6438543a3a426c6f636b4e756d62657220cc20536574207468652064656661756c742072656465656d20706572696f6420666f7220747820766572696669636174696f6e2e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29b4202a2060706572696f6460202d2064656661756c7420706572696f6420666f72206e657720726571756573747300442023205765696768743a20604f28312960846d696e745f746f6b656e735f666f725f7265696d6275727365645f72656465656d042472656465656d5f696410483235362c2501204d696e7420746f6b656e7320666f7220612072656465656d2074686174207761732063616e63656c6c65642077697468207265696d62757273653d747275652e20546869732069732901206f6e6c7920706f737369626c65206966206174207468652074696d65206f66207468652063616e63656c5f72656465656d2c20746865207661756c7420646964206e6f7420686176652d012073756666696369656e7420636f6c6c61746572616c206166746572206265696e6720736c617368656420746f206261636b2074686520746f6b656e73207468617420746865207573657238207573656420746f20686f6c642e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f292d01202a206072656465656d5f696460202d206964656e746966696572206f662072656465656d2072657175657374206173206f75747075742066726f6d20726571756573745f72656465656d00442023205765696768743a20604f283129600110345265717565737452656465656d201048323536244163636f756e7449641c49737375696e671c49737375696e671c4261636b696e67244163636f756e74496428427463416464726573731c49737375696e6700444c69717569646174696f6e52656465656d08244163636f756e7449641c49737375696e6700344578656375746552656465656d141048323536244163636f756e7449641c49737375696e671c49737375696e67244163636f756e744964003043616e63656c52656465656d141048323536244163636f756e744964244163636f756e7449641c4261636b696e6710626f6f6c00003060416d6f756e74457863656564735573657242616c616e63650064416d6f756e74457863656564735661756c7442616c616e6365004c436f6d6d6974506572696f64457870697265640040556e617574686f72697a656455736572003854696d654e6f7445787069726564003c52656465656d43616e63656c6c6564003c52656465656d436f6d706c65746564004052656465656d49644e6f74466f756e64003c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c75654841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f770054416d6f756e7442656c6f7744757374416d6f756e7400101c5265706c616365011c5265706c616365103c5265706c6163655265717565737473010102104832353615015265706c616365526571756573743c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c2049737375696e673c543e2c204261636b696e673c540a3e3e004902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008f8205661756c747320637265617465207265706c61636520726571756573747320746f207472616e73666572206c6f636b656420636f6c6c61746572616c2e1d012054686973206d617070696e672070726f7669646573206163636573732066726f6d206120756e69717565206861736820746f206120605265706c61636552657175657374602e345265706c616365506572696f64010038543a3a426c6f636b4e756d62657210000000000c4901205468652074696d6520646966666572656e636520696e206e756d626572206f6620626c6f636b73206265747765656e207768656e2061207265706c616365207265717565737420697320637265617465643d0120616e6420726571756972656420636f6d706c6574696f6e2074696d652062792061207661756c742e20546865207265706c61636520706572696f642068617320616e207570706572206c696d6974a420746f2070726576656e74206772696566696e67206f66207661756c7420636f6c6c61746572616c2e4c5265706c6163654274634475737456616c756501002849737375696e673c543e400000000000000000000000000000000008610120546865206d696e696d756d20616d6f756e74206f6620627463207468617420697320616363657074656420666f72207265706c6163652072657175657374733b20616e79206c6f7765722076616c75657320776f756c64b8207269736b2074686520626974636f696e20636c69656e7420746f2072656a65637420746865207061796d656e743853746f7261676556657273696f6e01001c56657273696f6e040004a8204275696c642073746f72616765206174205631202872657175697265732064656661756c742030292e01183c726571756573745f7265706c6163650818616d6f756e744c436f6d706163743c49737375696e673c543e3e4c6772696566696e675f636f6c6c61746572616c4c436f6d706163743c4261636b696e673c543e3e1cc4205265717565737420746865207265706c6163656d656e74206f662061206e6577207661756c74206f776e6572736869700030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e94202a2060616d6f756e7460202d20616d6f756e74206f662069737375656420746f6b656e73bc202a20606772696566696e675f636f6c6c61746572616c60202d20616d6f756e74206f6620636f6c6c61746572616c4077697468647261775f7265706c6163650418616d6f756e744c436f6d706163743c49737375696e673c543e3e14a020576974686472617720612072657175657374206f66207661756c74207265706c6163656d656e740030202320417267756d656e747300d8202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e3a20746865206f6c64207661756c74386163636570745f7265706c61636510246f6c645f7661756c7430543a3a4163636f756e74496428616d6f756e745f6274634c436f6d706163743c49737375696e673c543e3e28636f6c6c61746572616c4c436f6d706163743c4261636b696e673c543e3e2c6274635f6164647265737328427463416464726573732090204163636570742072657175657374206f66207661756c74207265706c6163656d656e740030202320417267756d656e747300f4202a20606f726967696e60202d2074686520696e69746961746f72206f6620746865207472616e73616374696f6e3a20746865206e6577207661756c743d01202a20606f6c645f7661756c7460202d206964206f6620746865206f6c64207661756c742074686174207765206172652028706f737369626c79207061727469616c6c7929207265706c6163696e67c0202a2060636f6c6c61746572616c60202d2074686520636f6c6c61746572616c20666f72207265706c6163656d656e742101202a20606274635f6164647265737360202d2074686520616464726573732074686174206f6c642d7661756c742073686f756c64207472616e73666572207468652062746320746f3c657865637574655f7265706c6163650c287265706c6163655f69641048323536306d65726b6c655f70726f6f661c5665633c75383e187261775f74781c5665633c75383e24682045786563757465207661756c74207265706c6163656d656e740030202320417267756d656e747300d8202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e3a20746865206e6577207661756c74cc202a20607265706c6163655f696460202d20746865204944206f6620746865207265706c6163656d656e7420726571756573741101202a206074785f626c6f636b5f68656967687460202d2074686520626c6f636b656420686569676874206f6620746865206261636b696e67207472616e73616374696f6ec0202a20276d65726b6c655f70726f6f6627202d20746865206d65726b6c6520726f6f74206f662074686520626c6f636ba4202a20607261775f747860202d20746865207472616e73616374696f6e20696420696e2062797465733863616e63656c5f7265706c61636504287265706c6163655f6964104832353618642043616e63656c207661756c74207265706c6163656d656e740030202320417267756d656e747300d8202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e3a20746865206e6577207661756c74cc202a20607265706c6163655f696460202d20746865204944206f6620746865207265706c6163656d656e742072657175657374487365745f7265706c6163655f706572696f640418706572696f6438543a3a426c6f636b4e756d62657220d020536574207468652064656661756c74207265706c61636520706572696f6420666f7220747820766572696669636174696f6e2e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29b4202a2060706572696f6460202d2064656661756c7420706572696f6420666f72206e657720726571756573747300442023205765696768743a20604f28312960011438526571756573745265706c6163650c244163636f756e7449641c49737375696e671c4261636b696e67003c57697468647261775265706c6163650c244163636f756e7449641c49737375696e671c4261636b696e6700344163636570745265706c616365181048323536244163636f756e744964244163636f756e7449641c49737375696e671c4261636b696e6728427463416464726573730038457865637574655265706c6163650c1048323536244163636f756e744964244163636f756e744964003443616e63656c5265706c616365101048323536244163636f756e744964244163636f756e7449641c4261636b696e6700004454416d6f756e7442656c6f7744757374416d6f756e7400344e6f5265706c6163656d656e740058496e73756666696369656e74436f6c6c61746572616c00404e6f50656e64696e67526571756573740044556e617574686f72697a65645661756c7400545265706c61636553656c664e6f74416c6c6f776564005443616e63656c4163636570746564526571756573740078436f6c6c61746572616c42656c6f775365637572655468726573686f6c6400645661756c7449734e6f6d696e6174696f6e4f70657261746f7200505265706c616365506572696f6445787069726564005c5265706c616365506572696f644e6f744578706972656400405265706c616365436f6d706c6574656400405265706c61636543616e63656c6c656400445265706c61636549644e6f74466f756e64003c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c75654c41726974686d65746963556e646572666c6f77004841726974686d657469634f766572666c6f7700110c466565010c46656558204973737565466565010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000008202023204973737565c8204665652073686172652074686174207573657273206e65656420746f2070617920746f20697373756520746f6b656e732e5c49737375654772696566696e67436f6c6c61746572616c010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000825012044656661756c74206772696566696e6720636f6c6c61746572616c2028652e672e20444f542f4b534d2920617320612070657263656e74616765206f6620746865206c6f636b6564e820636f6c6c61746572616c206f662061205661756c74206120757365722068617320746f206c6f636b20746f20697373756520746f6b656e732e2452656465656d466565010054556e7369676e65644669786564506f696e743c543e4000000000000000000000000000000000082420232052656465656dcc204665652073686172652074686174207573657273206e65656420746f2070617920746f2072656465656d20746f6b656e732e24526566756e64466565010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000824202320526566756e64f0204665652073686172652074686174207573657273206e65656420746f2070617920746f20726566756e64206f7665727061696420746f6b656e732e405072656d69756d52656465656d466565010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000c442023205661756c742052656769737472790d01204966207573657273206578656375746520612072656465656d20776974682061205661756c7420666c616767656420666f72207072656d69756d2072656465656d2cf020746865792063616e206561726e206120636f6c6c61746572616c207072656d69756d2c20736c61736865642066726f6d20746865205661756c742e3450756e6973686d656e74466565010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000c39012046656520746861742061205661756c742068617320746f20706179206966206974206661696c7320746f20657865637574652072656465656d206f72207265706c61636520726571756573747315012028666f722072656465656d2c206f6e20746f70206f662074686520736c61736865642076616c7565206f66207468652072657175657374292e20546865206665652069732d01207061696420696e20636f6c6c61746572616c206261736564206f6e2074686520746f6b656e20616d6f756e74206174207468652063757272656e742065786368616e676520726174652e645265706c6163654772696566696e67436f6c6c61746572616c010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000010282023205265706c61636569012044656661756c74206772696566696e6720636f6c6c61746572616c2028652e672e20444f542f4b534d2920617320612070657263656e74616765206f662074686520746f2d62652d6c6f636b656420636f6c6c61746572616c5d01206f6620746865206e6577205661756c742e205468697320636f6c6c61746572616c2077696c6c20626520736c617368656420616e6420616c6c6f636174656420746f20746865207265706c6163696e67205661756c74ec2069662074686520746f2d62652d7265706c61636564205661756c7420646f6573206e6f74207472616e7366657220425443206f6e2074696d652e40466565506f6f6c4163636f756e744964010030543a3a4163636f756e744964800000000000000000000000000000000000000000000000000000000000000000046c204163636f756e744964206f66207468652066656520706f6f6c2e4c4d61696e7461696e65724163636f756e744964010030543a3a4163636f756e744964800000000000000000000000000000000000000000000000000000000000000000049c204163636f756e744964206f66207468652070617261636861696e206d61696e7461696e65722e2c45706f6368506572696f64010038543a3a426c6f636b4e756d62657210000000000494204e756d626572206f6620626c6f636b7320666f7220726577617264206163637275616c2e4c45706f63685265776172647349737375696e6701002849737375696e673c543e400000000000000000000000000000000004d820546f74616c207265776172647320696e2069737375656420746f6b656e7320666f72207468652063757272656e742065706f63682e4c45706f6368526577617264734261636b696e670100284261636b696e673c543e400000000000000000000000000000000004cc20546f74616c207265776172647320696e20636f6c6c61746572616c20666f72207468652063757272656e742065706f63682e4c546f74616c5265776172647349737375696e6701010230543a3a4163636f756e7449642849737375696e673c543e00400000000000000000000000000000000004d020546f74616c207265776172647320696e2069737375656420746f6b656e73206c6f636b656420666f72206163636f756e74732e4c546f74616c526577617264734261636b696e6701010230543a3a4163636f756e744964284261636b696e673c543e00400000000000000000000000000000000004c420546f74616c207265776172647320696e20636f6c6c61746572616c206c6f636b656420666f72206163636f756e74732e305661756c7452657761726473010054556e7369676e65644669786564506f696e743c543e4000000000000000000000000000000000088820232050617261636861696e2046656520506f6f6c20446973747269627574696f6ea02050657263656e74616765206f66206665657320616c6c6f636174656420746f205661756c74732e485661756c7452657761726473497373756564010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000004b4205661756c74206973737565642049737375696e67202f20746f74616c206973737565642049737375696e672e485661756c74526577617264734c6f636b6564010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000004b4205661756c74206c6f636b6564204261636b696e67202f20746f74616c206c6f636b6564204261636b696e672e3852656c6179657252657761726473010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000004c42050657263656e74616765206f66206665657320616c6c6f636174656420746f205374616b65642052656c61796572732e444d61696e7461696e657252657761726473010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000004b82050657263656e74616765206f66206665657320616c6c6f636174656420666f7220646576656c6f706d656e742e3c436f6c6c61746f7252657761726473010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000000444e6f6d696e6174696f6e52657761726473010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000445012050657263656e74616765206f6620666565732067656e657261746564206279206e6f6d696e6174656420636f6c6c61746572616c207468617420697320676976656e20746f206e6f6d696e61746f72733853746f7261676556657273696f6e01001c56657273696f6e040004a8204275696c642073746f72616765206174205631202872657175697265732064656661756c742030292e01084077697468647261775f69737375696e670418616d6f756e744c436f6d706163743c49737375696e673c543e3e18e420416c6c6f777320746f6b656e20726577617264207769746864726177616c2069662062616c616e63652069732073756666696369656e742e0030202320417267756d656e74730074202a20606f726967696e60202d207369676e696e67206163636f756e747c202a2060616d6f756e7460202d20616d6f756e74206f662049737375696e674077697468647261775f6261636b696e670418616d6f756e744c436f6d706163743c4261636b696e673c543e3e18f820416c6c6f777320636f6c6c61746572616c20726577617264207769746864726177616c2069662062616c616e63652069732073756666696369656e742e0030202320417267756d656e74730074202a20606f726967696e60202d207369676e696e67206163636f756e7488202a2060616d6f756e7460202d20616d6f756e74206f6620636f6c6c61746572616c01083c576974686472617749737375696e6708244163636f756e7449641c49737375696e67003c57697468647261774261636b696e6708244163636f756e7449641c4261636b696e670004204d6f64756c654964204d6f64756c654964206d6f642f6665657304fc2054686520666565206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e143c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c75654841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f770044496e73756666696369656e7446756e64730044496e76616c69645265776172644469737400120c536c61010c536c613c205661756c74536c6101010230543a3a4163636f756e7449644c5369676e65644669786564506f696e743c543e00400000000000000000000000000000000004f0204d617070696e672066726f6d206163636f756e7473206f66207661756c74732f72656c617965727320746f20746865697220736c612073636f72652852656c61796572536c6101010230543a3a4163636f756e7449644c5369676e65644669786564506f696e743c543e004000000000000000000000000000000000003052656c617965725374616b6501010230543a3a4163636f756e7449644c5369676e65644669786564506f696e743c543e004000000000000000000000000000000000003c546f74616c4973737565436f756e7401000c753332100000000000384c69666574696d654973737565640100107531323840000000000000000000000000000000000044546f74616c52656c6179657253636f726501004c5369676e65644669786564506f696e743c543e400000000000000000000000000000000000385661756c74546172676574536c6101004c5369676e65644669786564506f696e743c543e4000000000000000000000000000000000004052656c61796572546172676574536c6101004c5369676e65644669786564506f696e743c543e400000000000000000000000000000000000485661756c7452656465656d4661696c75726501004c5369676e65644669786564506f696e743c543e400000000000000000000000000000000000785661756c74457865637574656449737375654d6178536c614368616e676501004c5369676e65644669786564506f696e743c543e400000000000000000000000000000000000605661756c745375626d6974746564497373756550726f6f6601004c5369676e65644669786564506f696e743c543e400000000000000000000000000000000000345661756c74526566756e64656401004c5369676e65644669786564506f696e743c543e4000000000000000000000000000000000005852656c61796572426c6f636b5375626d697373696f6e01004c5369676e65644669786564506f696e743c543e4000000000000000000000000000000000007c52656c617965724475706c6963617465426c6f636b5375626d697373696f6e01004c5369676e65644669786564506f696e743c543e4000000000000000000000000000000000006452656c61796572436f727265637454686566745265706f727401004c5369676e65644669786564506f696e743c543e40000000000000000000000000000000000001043c7365745f72656c617965725f736c6108146576656e743052656c617965724576656e741476616c75654c5369676e65644669786564506f696e743c543e24bc205365742074686520736c612064656c746120666f722074686520676976656e2072656c61796572206576656e742e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f2990202a20606576656e7460202d2072656c61796572206576656e7420746f2075706461746558202a206076616c756560202d20736c612064656c746100442023205765696768743a20604f283129600108385570646174655661756c74534c410c244163636f756e744964405369676e65644669786564506f696e74405369676e65644669786564506f696e74004055706461746552656c61796572534c410c244163636f756e744964405369676e65644669786564506f696e74405369676e65644669786564506f696e740000183c547279496e746f496e744572726f72004841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f770060496e76616c6964546f74616c52656c6179657253636f72650050496e76616c6964536c6173686564416d6f756e740050496e76616c696452656c61796572526577617264001318526566756e640118526566756e640848526566756e644274634475737456616c756501002849737375696e673c543e400000000000000000000000000000000008390120546865206d696e696d756d20616d6f756e74206f6620627463207468617420697320616363657074656420666f7220726566756e6420726571756573747320284e4f54453a20746f6f206c6f7705012076616c75657320636f756c6420726573756c7420696e2074686520626974636f696e20636c69656e742072656a656374696e6720746865207061796d656e742938526566756e64526571756573747301010210483235369c526566756e64526571756573743c543a3a4163636f756e7449642c2049737375696e673c543e3e009902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000435012054686973206d617070696e672070726f7669646573206163636573732066726f6d206120756e69717565206861736820726566756e64496420746f206120526566756e64207374727563742e010438657865637574655f726566756e640c24726566756e645f69641048323536306d65726b6c655f70726f6f661c5665633c75383e187261775f74781c5665633c75383e0001083452657175657374526566756e641c1048323536244163636f756e7449641c49737375696e67244163636f756e744964284274634164647265737310483235361c49737375696e6704250120726566756e645f69642c206973737565722c20616d6f756e745f776974686f75745f6665652c207661756c742c206274635f616464726573732c2069737375655f69642c206665653445786563757465526566756e64101048323536244163636f756e744964244163636f756e7449641c49737375696e67048420726566756e645f69642c206973737565722c207661756c742c20616d6f756e7400184c41726974686d65746963556e646572666c6f77005c4e6f526566756e64466f756e64466f72497373756549640040526566756e6449644e6f74466f756e64003c526566756e64436f6d706c65746564003c547279496e746f496e744572726f720044556e617574686f72697a65645661756c740014284e6f6d696e6174696f6e01284e6f6d696e6174696f6e18444e6f6d696e6174696f6e456e61626c6564010010626f6f6c0400082c2023232053746f72616765c020466c616720696e6469636174696e6720776865746865722074686973206665617475726520697320656e61626c6564484d61784e6f6d696e6174696f6e526174696f010054556e7369676e65644669786564506f696e743c543e4000000000000000000000000000000000082901205570706572206c696d69742c2065787072657373656420617320612072617465206f7574206f662061205661756c74277320636f6c6c61746572616c2c20746861742063616e20626560206e6f6d696e6174656420617320636f6c6c61746572616c604d61784e6f6d696e61746f72735065724f70657261746f7201000c75313608000004e0204d6178696d756d206e756d626572206f66206e6f6d696e61746f727320612073696e676c65206f70657261746f722063616e20686176655c4f70657261746f72556e626f6e64696e67506572696f64010038543a3a426c6f636b4e756d6265721000000000084d01204261736520756e626f6e64696e6720706572696f6420627920776869636820636f6c6c61746572616c207769746864726177616c2072657175657374732066726f6d205661756c74204f70657261746f727330206172652064656c61796564604e6f6d696e61746f72556e626f6e64696e67506572696f64010038543a3a426c6f636b4e756d6265721000000000085101204261736520756e626f6e64696e6720706572696f6420627920776869636820636f6c6c61746572616c207769746864726177616c2072657175657374732066726f6d205661756c74204e6f6d696e61746f727330206172652064656c61796564244f70657261746f727301010230543a3a4163636f756e744964c84f70657261746f723c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c204261636b696e673c543e3e000901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045c204d6170206f66205661756c74204f70657261746f72730118587365745f6e6f6d696e6174696f6e5f656e61626c6564041c656e61626c656410626f6f6c00506f70745f696e5f746f5f6e6f6d696e6174696f6e0004d0204265636f6d6520616e204f70657261746f7220696e20746865205661756c74204e6f6d696e6174696f6e2070726f746f636f6c546f70745f6f75745f6f665f6e6f6d696e6174696f6e0004010120446572656769737465722066726f6d206265696e67204f70657261746f7220696e20746865205661756c74204e6f6d696e6174696f6e2070726f746f636f6c706465706f7369745f6e6f6d696e617465645f636f6c6c61746572616c082c6f70657261746f725f696430543a3a4163636f756e74496418616d6f756e74284261636b696e673c543e0074726571756573745f636f6c6c61746572616c5f7769746864726177616c082c6f70657261746f725f696430543a3a4163636f756e74496418616d6f756e74284261636b696e673c543e0074657865637574655f636f6c6c61746572616c5f7769746864726177616c042c6f70657261746f725f696430543a3a4163636f756e74496400012c3c4e6f6d696e6174696f6e4f7074496e04244163636f756e74496400404e6f6d696e6174696f6e4f70744f757404244163636f756e744964006c496e6372656173654e6f6d696e61746564436f6c6c61746572616c0c244163636f756e744964244163636f756e7449641c4261636b696e67006c57697468647261774e6f6d696e61746564436f6c6c61746572616c0c244163636f756e744964244163636f756e7449641c4261636b696e67008c526571756573744f70657261746f72436f6c6c61746572616c5769746864726177616c101048323536244163636f756e7449642c426c6f636b4e756d6265721c4261636b696e67008c457865637574654f70657261746f72436f6c6c61746572616c5769746864726177616c08244163636f756e7449641c4261636b696e67008843616e63656c4f70657261746f72436f6c6c61746572616c5769746864726177616c0c1048323536244163636f756e7449641c4261636b696e670090526571756573744e6f6d696e61746f72436f6c6c61746572616c5769746864726177616c141048323536244163636f756e744964244163636f756e7449642c426c6f636b4e756d6265721c4261636b696e670090457865637574654e6f6d696e61746f72436f6c6c61746572616c5769746864726177616c0c244163636f756e744964244163636f756e7449641c4261636b696e67008c43616e63656c4e6f6d696e61746f72436f6c6c61746572616c5769746864726177616c101048323536244163636f756e744964244163636f756e7449641c4261636b696e67003c536c617368436f6c6c61746572616c0c244163636f756e7449641c4261636b696e672c5661756c7453746174757300005444496e73756666696369656e7446756e64730484204163636f756e742068617320696e73756666696369656e742062616c616e63654841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f7700545769746864726177616c4e6f74556e626f6e64656400684e6f6d696e61746f724c69717569646174696f6e4661696c656400444e6f6d696e61746f724e6f74466f756e640070546f6f4c6974746c654e6f6d696e61746564436f6c6c61746572616c007c5661756c74416c72656164794f70746564496e546f4e6f6d696e6174696f6e006c5661756c744e6f744f70746564496e546f4e6f6d696e6174696f6e00945661756c744e6f745175616c6966696564546f4f70744f75744f664e6f6d696e6174696f6e003c547279496e746f496e744572726f7200244e6f74415661756c74005c5769746864726177526571756573744e6f74466f756e6400645769746864726177526571756573744e6f744d6174757265640058496e73756666696369656e74436f6c6c61746572616c00504661696c6564546f4164644e6f6d696e61746f72005c5661756c744e6f6d696e6174696f6e44697361626c656400844465706f73697456696f6c617465734d61784e6f6d696e6174696f6e526174696f004c4e6f4d617475726564436f6c6c61746572616c00704f70657261746f72486173546f6f4d616e794e6f6d696e61746f727300584861734e6f6d696e61746564436f6c6c61746572616c00153c50617261636861696e53797374656d013c50617261636861696e53797374656d306450656e64696e6756616c69646174696f6e46756e6374696f6e0000802852656c6179436861696e426c6f636b4e756d6265722c205665633c75383e290400003856616c69646174696f6e4461746100005c50657273697374656456616c69646174696f6e44617461040004d020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e5044696453657456616c69646174696f6e436f6465010010626f6f6c040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f2c4c6173745570677261646501006072656c61795f636861696e3a3a426c6f636b4e756d6265721000000000042d0120546865206c6173742072656c617920706172656e7420626c6f636b206e756d626572206174207768696368207765207369676e616c6c65642074686520636f646520757067726164652e5852656c6576616e744d6573736167696e6753746174650000584d6573736167696e675374617465536e617073686f7404001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e0000644162726964676564486f7374436f6e66696775726174696f6e0400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100444d6573736167655175657565436861696e80000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301008c42547265654d61703c5061726149642c204d6573736167655175657565436861696e3e040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e5450656e64696e675570776172644d657373616765730100485665633c5570776172644d6573736167653e040000504f7574626f756e6448726d704d6573736167657301010518506172614964305665633c5665633c75383e3e00040004f820457373656e7469616c6c7920604f7574626f756e6448726d704d65737361676560732067726f757065642062792074686520726563697069656e74732e504e6f6e456d70747948726d704368616e6e656c7301002c5665633c5061726149643e0400085d012048524d50206368616e6e656c7320776974682074686520676976656e20726563697069656e747320617265206177616974696e6720746f2062652070726f6365737365642e20496620612060506172614964602069733d012070726573656e7420696e207468697320766563746f72207468656e20604f7574626f756e6448726d704d657373616765736020666f722069742073686f756c64206265206e6f7420656d7074792e84416e6e6f756e63656448726d704d6573736167657350657243616e64696461746501000c753332100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e0118407363686564756c655f75706772616465044c76616c69646174696f6e5f66756e6374696f6e1c5665633c75383e007c7363686564756c655f757067726164655f776974686f75745f636865636b73044c76616c69646174696f6e5f66756e6374696f6e1c5665633c75383e10fc205363686564756c6520612076616c69646174696f6e2066756e6374696f6e207570677261646520776974686f7574206675727468657220636865636b732e0079012053616d65206173205b604d6f64756c653a3a7363686564756c655f75706772616465605d2c2062757420776974686f757420636865636b696e67207468617420746865206e6577206076616c69646174696f6e5f66756e6374696f6e60710120697320636f72726563742e2054686973206d616b6573206974206d6f726520666c657869626c652c2062757420616c736f206f70656e732074686520646f6f7220746f20656173696c7920627269636b2074686520636861696e2e4c7365745f76616c69646174696f6e5f646174610410646174615450617261636861696e496e686572656e7444617461248420536574207468652063757272656e742076616c69646174696f6e20646174612e00450120546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e8c207068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d420546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e746000250120417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e882069662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d657373616765041c6d657373616765345570776172644d65737361676500447375646f5f73656e645f686d705f78636d0c24726563697069656e74185061726149640c78636d3056657273696f6e656458636d0c716f7338536572766963655175616c69747900487375646f5f73656e645f686d705f626c6f620c24726563697069656e741850617261496410626c6f621c5665633c75383e0c716f7338536572766963655175616c6974790001086056616c69646174696f6e46756e6374696f6e53746f726564045452656c6179436861696e426c6f636b4e756d626572006456616c69646174696f6e46756e6374696f6e4170706c696564045452656c6179436861696e426c6f636b4e756d626572000000163450617261636861696e496e666f014050617261636861696e55706772616465042c50617261636861696e496401001850617261496410640000000000000000173c50617261636861696e546f6b656e73013c50617261636861696e546f6b656e73000108747472616e736665725f6261636b696e675f746f5f70617261636861696e101c706172615f69641850617261496424726563697069656e7430543a3a4163636f756e7449641c6e6574776f726b244e6574776f726b496418616d6f756e744c436f6d706163743c4261636b696e673c543e3e0488205472616e7366657220636f6c6c61746572616c20746f2070617261636861696e2e747472616e736665725f69737375696e675f746f5f70617261636861696e101c706172615f69641850617261496424726563697069656e7430543a3a4163636f756e7449641c6e6574776f726b244e6574776f726b496418616d6f756e744c436f6d706163743c49737375696e673c543e3e0494205472616e736665722069737375656420746f6b656e7320746f2070617261636861696e2e01083c5472616e736665724261636b696e6714244163636f756e74496418506172614964244163636f756e744964244e6574776f726b49641c4261636b696e670894205472616e7366657272656420636f6c6c61746572616c20746f2070617261636861696e2eb8205b6f726967696e2c20706172615f69642c20726563697069656e742c206e6574776f726b2c20616d6f756e745d3c5472616e7366657249737375696e6714244163636f756e74496418506172614964244163636f756e744964244e6574776f726b49641c49737375696e6708a0205472616e736665727265642069737375656420746f6b656e7320746f2070617261636861696e2eb8205b6f726967696e2c20706172615f69642c20726563697069656e742c206e6574776f726b2c20616d6f756e745d000c2c4261644c6f636174696f6e004858636d457865637574696f6e4661696c6564003c547279496e746f496e744572726f7200182858636d48616e646c657200010c2073656e645f78636d081064657374344d756c74694c6f636174696f6e1c6d6573736167650c58636d003c73656e645f7570776172645f78636d041c6d6573736167653056657273696f6e656458636d003473656e645f68726d705f78636d0c24726563697069656e74185061726149641c6d6573736167653056657273696f6e656458636d0c716f7338536572766963655175616c6974790001181c53756363657373041048617368046820536f6d652058434d20776173206578656375746564206f6b2e104661696c0810486173682058636d4572726f72044420536f6d652058434d206661696c65642e2842616456657273696f6e0410486173680458204261642058434d2076657273696f6e20757365642e24426164466f726d61740410486173680454204261642058434d20666f726d617420757365642e445570776172644d65737361676553656e7404104861736804bc20416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e3c48726d704d65737361676553656e7404104861736804c420416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e000019041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74","id":"1"} +{"jsonrpc":"2.0","result":"0x6d6574610c701853797374656d011853797374656d401c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e004101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010038436f6e73756d6564576569676874600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010010626f6f6c0400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010010626f6f6c0400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e146c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e28682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e7901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2c202d2031206576656e742e7d012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e902057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e75012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e4472656d61726b5f776974685f6576656e74041872656d61726b1c5665633c75383e18a8204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002c2023203c7765696768743eb8202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e2c202d2031206576656e742e302023203c2f7765696768743e01184045787472696e7369635375636365737304304469737061746368496e666f04b820416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f049420416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e744964047c2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046c20416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b656408244163636f756e744964104861736804d4204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d1830426c6f636b57656967687473506c696d6974733a3a426c6f636b57656967687473850100f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684c6c696d6974733a3a426c6f636b4c656e6774683000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e7438543a3a426c6f636b4e756d62657210fa000000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768743c52756e74696d65446257656967687440000000000000000000000000000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3852756e74696d6556657273696f6ee503346274632d70617261636861696e346274632d70617261636861696e01000000090000000100000044df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1502000000f78b278be53f454c02000000ab3c0572291feb8b01000000ed99c5acb25eedf502000000dd718d5cc53262d401000000bc9d89904f5b923f0100000037c8bb1350a9a2a8010000000a92ff04f497ffdf010000002791a8cdf8be93010100000016da96d36c6d5bb701000000caf39b979a6880bd0100000069e2e1aa421f4fb00100000091d2aba1dfca2e06010000002be5cb02b0a56e7301000000010000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978087538042a14a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e3c5820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743e3501202d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f2831296029a101202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e20606f6e5f66696e616c697a656029d8202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420b80b00000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0001105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0110107375646f041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e547375646f5f756e636865636b65645f776569676874081063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1c5f776569676874185765696768742839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e310120546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b4205375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292ed0202d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e010c14537564696404384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d284b65794368616e67656404244163636f756e74496404010120546865205c5b7375646f65725c5d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e6504384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e74021c5574696c69747900010c146261746368041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e48802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e34f02053656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e2501205468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e0108404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173902077656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e0000036052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e010000000004485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4001000000000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e000528436f6c6c61746572616c0128436f6c6c61746572616c1034546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964705665633c42616c616e63654c6f636b3c543a3a42616c616e63653e3e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04484578697374656e7469616c4465706f73697428543a3a42616c616e6365400100000000000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e1c3856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d6578697374061c57726170706564011c577261707065641034546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964705665633c42616c616e63654c6f636b3c543a3a42616c616e63653e3e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04484578697374656e7469616c4465706f73697428543a3a42616c616e6365400100000000000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e1c3856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d65786973740748436f6c6c61746572616c43757272656e63790148436f6c6c61746572616c43757272656e6379042c546f74616c4c6f636b656401003c42616c616e63654f663c542c20493e400000000000000000000000000000000010f8204e6f7465207468617420616e206163636f756e742773206672656520616e642072657365727665642062616c616e636573206172652068616e646c656474207468726f756768207468652042616c616e636573206d6f64756c652e005420546f74616c206c6f636b65642062616c616e636501000118104d696e7408244163636f756e7449641c42616c616e636500104c6f636b08244163636f756e7449641c42616c616e63650018556e6c6f636b08244163636f756e7449641c42616c616e636500104275726e08244163636f756e7449641c42616c616e6365001c52656c6561736508244163636f756e7449641c42616c616e63650014536c6173680c244163636f756e744964244163636f756e7449641c42616c616e6365000c104e616d651c5665633c75383e2420506f6c6b61646f7404c02054686520757365722d667269656e646c79206e616d65206f6620746865206d616e616765642063757272656e63792e1853796d626f6c1c5665633c75383e100c444f5404d420546865206964656e746966696572206f66207468652063757272656e6379202d20652e672e207469636b65722073796d626f6c2e20446563696d616c73087538040a04cc20546865206e756d626572206f6620646563696d616c73207573656420746f20726570726573656e74206f6e6520756e69742e105c496e73756666696369656e744672656542616c616e63650498204163636f756e742068617320696e73756666696369656e7420667265652062616c616e63656c496e73756666696369656e74526573657276656442616c616e636504a8204163636f756e742068617320696e73756666696369656e742072657365727665642062616c616e63654841726974686d657469634f766572666c6f7704502041726974686d65746963206f766572666c6f774c41726974686d65746963556e646572666c6f7704542041726974686d6574696320756e646572666c6f77083c5772617070656443757272656e6379013c5772617070656443757272656e6379042c546f74616c4c6f636b656401003c42616c616e63654f663c542c20493e400000000000000000000000000000000010f8204e6f7465207468617420616e206163636f756e742773206672656520616e642072657365727665642062616c616e636573206172652068616e646c656474207468726f756768207468652042616c616e636573206d6f64756c652e005420546f74616c206c6f636b65642062616c616e636501000118104d696e7408244163636f756e7449641c42616c616e636500104c6f636b08244163636f756e7449641c42616c616e63650018556e6c6f636b08244163636f756e7449641c42616c616e636500104275726e08244163636f756e7449641c42616c616e6365001c52656c6561736508244163636f756e7449641c42616c616e63650014536c6173680c244163636f756e744964244163636f756e7449641c42616c616e6365000c104e616d651c5665633c75383e2420506f6c6b6142544304c02054686520757365722d667269656e646c79206e616d65206f6620746865206d616e616765642063757272656e63792e1853796d626f6c1c5665633c75383e2420506f6c6b6142544304d420546865206964656e746966696572206f66207468652063757272656e6379202d20652e672e207469636b65722073796d626f6c2e20446563696d616c73087538040804cc20546865206e756d626572206f6620646563696d616c73207573656420746f20726570726573656e74206f6e6520756e69742e105c496e73756666696369656e744672656542616c616e63650498204163636f756e742068617320696e73756666696369656e7420667265652062616c616e63656c496e73756666696369656e74526573657276656442616c616e636504a8204163636f756e742068617320696e73756666696369656e742072657365727665642062616c616e63654841726974686d657469634f766572666c6f7704502041726974686d65746963206f766572666c6f774c41726974686d65746963556e646572666c6f7704542041726974686d6574696320756e646572666c6f770958436f6c6c61746572616c5661756c74526577617264730158436f6c6c61746572616c5661756c74526577617264731428546f74616c5374616b650100585369676e65644669786564506f696e743c542c20493e400000000000000000000000000000000004bc2054686520746f74616c207374616b65206465706f736974656420746f20746869732072657761726420706f6f6c2e30546f74616c526577617264730100585369676e65644669786564506f696e743c542c20493e400000000000000000000000000000000008f42054686520746f74616c20756e636c61696d6564207265776172647320646973747269627574656420746f20746869732072657761726420706f6f6c2ee4204e4f54453a20746869732069732063757272656e746c79206f6e6c79207573656420666f7220696e746567726174696f6e2074657374732e38526577617264506572546f6b656e0100585369676e65644669786564506f696e743c542c20493e400000000000000000000000000000000004dc205573656420746f20636f6d7075746520746865207265776172647320666f722061207061727469636970616e742773207374616b652e145374616b6501010230543a3a4163636f756e744964585369676e65644669786564506f696e743c542c20493e00400000000000000000000000000000000004c020546865207374616b65206f662061207061727469636970616e7420696e20746869732072657761726420706f6f6c2e2c52657761726454616c6c7901010230543a3a4163636f756e744964585369676e65644669786564506f696e743c542c20493e00400000000000000000000000000000000004b4204163636f756e747320666f722070726576696f7573206368616e67657320696e207374616b652073697a652e0100010c304465706f7369745374616b6508244163636f756e744964405369676e65644669786564506f696e74003457697468647261775374616b6508244163636f756e744964405369676e65644669786564506f696e740038576974686472617752657761726408244163636f756e744964405369676e65644669786564506f696e740000104841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f77003c547279496e746f496e744572726f720044496e73756666696369656e7446756e6473000a4c577261707065645661756c7452657761726473014c577261707065645661756c74526577617264731428546f74616c5374616b650100585369676e65644669786564506f696e743c542c20493e400000000000000000000000000000000004bc2054686520746f74616c207374616b65206465706f736974656420746f20746869732072657761726420706f6f6c2e30546f74616c526577617264730100585369676e65644669786564506f696e743c542c20493e400000000000000000000000000000000008f42054686520746f74616c20756e636c61696d6564207265776172647320646973747269627574656420746f20746869732072657761726420706f6f6c2ee4204e4f54453a20746869732069732063757272656e746c79206f6e6c79207573656420666f7220696e746567726174696f6e2074657374732e38526577617264506572546f6b656e0100585369676e65644669786564506f696e743c542c20493e400000000000000000000000000000000004dc205573656420746f20636f6d7075746520746865207265776172647320666f722061207061727469636970616e742773207374616b652e145374616b6501010230543a3a4163636f756e744964585369676e65644669786564506f696e743c542c20493e00400000000000000000000000000000000004c020546865207374616b65206f662061207061727469636970616e7420696e20746869732072657761726420706f6f6c2e2c52657761726454616c6c7901010230543a3a4163636f756e744964585369676e65644669786564506f696e743c542c20493e00400000000000000000000000000000000004b4204163636f756e747320666f722070726576696f7573206368616e67657320696e207374616b652073697a652e0100010c304465706f7369745374616b6508244163636f756e744964405369676e65644669786564506f696e74003457697468647261775374616b6508244163636f756e744964405369676e65644669786564506f696e740038576974686472617752657761726408244163636f756e744964405369676e65644669786564506f696e740000104841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f77003c547279496e746f496e744572726f720044496e73756666696369656e7446756e6473000b60436f6c6c61746572616c52656c61796572526577617264730160436f6c6c61746572616c52656c61796572526577617264731428546f74616c5374616b650100585369676e65644669786564506f696e743c542c20493e400000000000000000000000000000000004bc2054686520746f74616c207374616b65206465706f736974656420746f20746869732072657761726420706f6f6c2e30546f74616c526577617264730100585369676e65644669786564506f696e743c542c20493e400000000000000000000000000000000008f42054686520746f74616c20756e636c61696d6564207265776172647320646973747269627574656420746f20746869732072657761726420706f6f6c2ee4204e4f54453a20746869732069732063757272656e746c79206f6e6c79207573656420666f7220696e746567726174696f6e2074657374732e38526577617264506572546f6b656e0100585369676e65644669786564506f696e743c542c20493e400000000000000000000000000000000004dc205573656420746f20636f6d7075746520746865207265776172647320666f722061207061727469636970616e742773207374616b652e145374616b6501010230543a3a4163636f756e744964585369676e65644669786564506f696e743c542c20493e00400000000000000000000000000000000004c020546865207374616b65206f662061207061727469636970616e7420696e20746869732072657761726420706f6f6c2e2c52657761726454616c6c7901010230543a3a4163636f756e744964585369676e65644669786564506f696e743c542c20493e00400000000000000000000000000000000004b4204163636f756e747320666f722070726576696f7573206368616e67657320696e207374616b652073697a652e0100010c304465706f7369745374616b6508244163636f756e744964405369676e65644669786564506f696e74003457697468647261775374616b6508244163636f756e744964405369676e65644669786564506f696e740038576974686472617752657761726408244163636f756e744964405369676e65644669786564506f696e740000104841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f77003c547279496e746f496e744572726f720044496e73756666696369656e7446756e6473000c545772617070656452656c617965725265776172647301545772617070656452656c61796572526577617264731428546f74616c5374616b650100585369676e65644669786564506f696e743c542c20493e400000000000000000000000000000000004bc2054686520746f74616c207374616b65206465706f736974656420746f20746869732072657761726420706f6f6c2e30546f74616c526577617264730100585369676e65644669786564506f696e743c542c20493e400000000000000000000000000000000008f42054686520746f74616c20756e636c61696d6564207265776172647320646973747269627574656420746f20746869732072657761726420706f6f6c2ee4204e4f54453a20746869732069732063757272656e746c79206f6e6c79207573656420666f7220696e746567726174696f6e2074657374732e38526577617264506572546f6b656e0100585369676e65644669786564506f696e743c542c20493e400000000000000000000000000000000004dc205573656420746f20636f6d7075746520746865207265776172647320666f722061207061727469636970616e742773207374616b652e145374616b6501010230543a3a4163636f756e744964585369676e65644669786564506f696e743c542c20493e00400000000000000000000000000000000004c020546865207374616b65206f662061207061727469636970616e7420696e20746869732072657761726420706f6f6c2e2c52657761726454616c6c7901010230543a3a4163636f756e744964585369676e65644669786564506f696e743c542c20493e00400000000000000000000000000000000004b4204163636f756e747320666f722070726576696f7573206368616e67657320696e207374616b652073697a652e0100010c304465706f7369745374616b6508244163636f756e744964405369676e65644669786564506f696e74003457697468647261775374616b6508244163636f756e744964405369676e65644669786564506f696e740038576974686472617752657761726408244163636f756e744964405369676e65644669786564506f696e740000104841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f77003c547279496e746f496e744572726f720044496e73756666696369656e7446756e6473000d2042544352656c6179012042544352656c61793430426c6f636b4865616465727301010218483235364c65b452696368426c6f636b4865616465723c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00e1020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004702053746f726520426974636f696e20626c6f636b206865616465727318436861696e730001020c7533320c7533320004000c4d01205072696f72697479207175657565206f6620426c6f636b436861696e20656c656d656e74732c206f72646572656420627920746865206d6178696d756d20686569676874202864657363656e64696e67292e5d012054686520666972737420696e64657820696e746f2074686973206d617070696e672028302920697320636f6e7369646572656420746f20626520746865206c6f6e6765737420636861696e2e205468652076616c75652d01206f662074686520656e7472792069732074686520696e64657820696e746f2060436861696e73496e6465786020746f207265747269657665207468652060426c6f636b436861696e602e2c436861696e73496e6465780001020c75333228426c6f636b436861696e000400084d0120417578696c69617279206d617070696e67206f6620636861696e732069647320746f2060426c6f636b436861696e6020656e74726965732e2054686520666972737420696e64657820696e746f2074686973e0206d617070696e672028302920697320636f6e7369646572656420746f2062652074686520426974636f696e206d61696e20636861696e2e30436861696e734861736865730102020c7533320c75333218483235364c65028000000000000000000000000000000000000000000000000000000000000000000401012053746f7265732061206d617070696e672066726f6d2028636861696e5f696e6465782c20626c6f636b5f6865696768742920746f20626c6f636b20686173682442657374426c6f636b010018483235364c6580000000000000000000000000000000000000000000000000000000000000000004842053746f7265207468652063757272656e7420626c6f636b636861696e207469703c42657374426c6f636b48656967687401000c7533321000000000048c2053746f72652074686520686569676874206f6620746865206265737420626c6f636b405374617274426c6f636b48656967687401000c753332100000000004a82042544320686569676874207768656e207468652072656c61792077617320696e697469616c697a656430436861696e436f756e74657201000c753332100000000004f020496e6372656d656e742d6f6e6c7920636f756e746572207573656420746f20747261636b206e657720426c6f636b436861696e20656e747269657368537461626c65426974636f696e436f6e6669726d6174696f6e7301000c753332100000000004f020476c6f62616c20736563757269747920706172616d65746572206b20666f7220737461626c6520426974636f696e207472616e73616374696f6e7370537461626c6550617261636861696e436f6e6669726d6174696f6e73010038543a3a426c6f636b4e756d626572100000000004f820476c6f62616c20736563757269747920706172616d65746572206b20666f7220737461626c652050617261636861696e207472616e73616374696f6e735844697361626c65446966666963756c7479436865636b010010626f6f6c040004d4205768657468657220746865206d6f64756c652073686f756c6420706572666f726d20646966666963756c747920636865636b732e5444697361626c65496e636c7573696f6e436865636b010010626f6f6c040004d0205768657468657220746865206d6f64756c652073686f756c6420706572666f726d20696e636c7573696f6e20636865636b732e5044697361626c654f7052657475726e436865636b010010626f6f6c040004d0205768657468657220746865206d6f64756c652073686f756c6420706572666f726d204f505f52455455524e20636865636b732e01147c7665726966795f616e645f76616c69646174655f7472616e73616374696f6e18407261775f6d65726b6c655f70726f6f661c5665633c75383e34636f6e6669726d6174696f6e732c4f7074696f6e3c7533323e187261775f74781c5665633c75383e2c6d696e696d756d5f6274630c69363454726563697069656e745f6274635f616464726573732842746341646472657373306f705f72657475726e5f6964304f7074696f6e3c483235363e30b5012056657269666965732074686520696e636c7573696f6e206f66206074785f69646020696e746f207468652072656c61792c20616e642076616c6964617465732074686520676976656e2072617720426974636f696e207472616e73616374696f6e2c206163636f7264696e67f90120746f2074686520737570706f72746564207472616e73616374696f6e20666f726d61742028736565203c68747470733a2f2f696e7465726c61792e6769746c61622e696f2f706f6c6b616274632d737065632f62746372656c61792d737065632f696e74726f2f61636365707465642d666f726d61742e68746d6c3e290030202320417267756d656e7473004d01202a20607261775f6d65726b6c655f70726f6f6660202d2054686520726177206d65726b6c652070726f6f662061732072657475726e656420627920626974636f696e206067657474786f757470726f6f6660ad01202a2060636f6e6669726d6174696f6e7360202d20546865206e756d626572206f6620636f6e6669726d6174696f6e73206e656564656420746f20616363657074207468652070726f6f662e20496620606e6f6e65602c207468652076616c75652073746f72656420696edc20202074686520537461626c65426974636f696e436f6e6669726d6174696f6e732073746f72616765206974656d20697320757365642e94202a20607261775f747860202d2072617720426974636f696e207472616e73616374696f6e2501202a20606d696e696d756d5f62746360202d206d696e696d756d20616d6f756e74206f662042544320287361746f73686973292073656e7420746f2074686520726563697069656e749d01202a2060726563697069656e745f6274635f6164647265737360202d203230206279746520426974636f696e2061646472657373206f6620726563697069656e74206f66207468652042544320696e207468652031737420202f207061796d656e74205554584f5501202a20606f705f72657475726e5f696460202d20333220627974652068617368206964656e74696669657220657870656374656420696e204f505f52455455524e20287265706c61792070726f74656374696f6e29707665726966795f7472616e73616374696f6e5f696e636c7573696f6e0c1474785f696418483235364c65407261775f6d65726b6c655f70726f6f661c5665633c75383e34636f6e6669726d6174696f6e732c4f7074696f6e3c7533323e50882056657269666965732074686520696e636c7573696f6e206f66206074785f6964600030202320417267756d656e747300d4202a206074785f696460202d205468652068617368206f6620746865207472616e73616374696f6e20746f20636865636b20666f724d01202a20607261775f6d65726b6c655f70726f6f6660202d2054686520726177206d65726b6c652070726f6f662061732072657475726e656420627920626974636f696e206067657474786f757470726f6f6660ad01202a2060636f6e6669726d6174696f6e7360202d20546865206e756d626572206f6620636f6e6669726d6174696f6e73206e656564656420746f20616363657074207468652070726f6f662e20496620606e6f6e65602c207468652076616c75652073746f72656420696ee42020207468652060537461626c65426974636f696e436f6e6669726d6174696f6e73602073746f72616765206974656d20697320757365642e002c2023203c7765696768743eb4204b65793a204320286c656e206f6620636861696e73292c205020286c656e206f6620706f736974696f6e732944202d2053746f726167652052656164733a090120092d204f6e652073746f72616765207265616420746f20636865636b20696620696e636c7573696f6e20636865636b2069732064697361626c65642e204f283129e020092d204f6e652073746f72616765207265616420746f207265747269657665206265737420626c6f636b206865696768742e204f283129110120092d204f6e652073746f72616765207265616420746f20636865636b206966207472616e73616374696f6e20697320696e2061637469766520666f726b2e204f283129cc20092d204f6e652073746f72616765207265616420746f20726574726965766520626c6f636b206865616465722e204f283129090120092d204f6e652073746f72616765207265616420746f20636865636b20746861742070617261636861696e206973206e6f742073687574646f776e2e204f283129010120092d204f6e652073746f72616765207265616420746f20636865636b20737461626c6520626974636f696e20636f6e6669726d6174696f6e732e204f283129090120092d204f6e652073746f72616765207265616420746f20636865636b20737461626c652070617261636861696e20636f6e6669726d6174696f6e732e204f283129302023203c2f7765696768743e5076616c69646174655f7472616e73616374696f6e10187261775f74781c5665633c75383e2c6d696e696d756d5f6274630c69363454726563697069656e745f6274635f616464726573732842746341646472657373306f705f72657475726e5f6964304f7074696f6e3c483235363e2849012056616c696461746573206120676976656e2072617720426974636f696e207472616e73616374696f6e2c206163636f7264696e6720746f2074686520737570706f72746564207472616e73616374696f6e850120666f726d61742028736565203c68747470733a2f2f696e7465726c61792e6769746c61622e696f2f706f6c6b616274632d737065632f62746372656c61792d737065632f696e74726f2f61636365707465642d666f726d61742e68746d6c3e297901205468697320444f4553204e4f5420636865636b20696620746865207472616e73616374696f6e20697320696e636c7564656420696e206120626c6f636b2c206e6f7220646f65732069742067756172616e7465652074686174207468652501207472616e73616374696f6e2069732066756c6c792076616c6964206163636f7264696e6720746f2074686520636f6e73656e73757320286e656564732066756c6c206e6f6465292e0030202320417267756d656e747394202a20607261775f747860202d2072617720426974636f696e207472616e73616374696f6e2501202a20606d696e696d756d5f62746360202d206d696e696d756d20616d6f756e74206f662042544320287361746f73686973292073656e7420746f2074686520726563697069656e746101202a2060726563697069656e745f6274635f6164647265737360202d20657870656374656420426974636f696e2061646472657373206f6620726563697069656e742028703273682c207032706b682c20703277706b68295501202a20606f705f72657475726e5f696460202d20333220627974652068617368206964656e74696669657220657870656374656420696e204f505f52455455524e20287265706c61792070726f74656374696f6e2948696e736572745f626c6f636b5f6572726f720828626c6f636b5f6861736818483235364c65146572726f72244572726f72436f646524a020496e7365727420616e206572726f72206174207468652073706563696669656420626c6f636b2e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29bc202a2060626c6f636b5f6861736860202d207468652068617368206f662074686520626974636f696e20626c6f636b94202a20606572726f7260202d20746865206572726f7220636f646520746f20696e7365727400442023205765696768743a20604f283129604872656d6f76655f626c6f636b5f6572726f720828626c6f636b5f6861736818483235364c65146572726f72244572726f72436f646524a82052656d6f766520616e206572726f722066726f6d207468652073706563696669656420626c6f636b2e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29bc202a2060626c6f636b5f6861736860202d207468652068617368206f662074686520626974636f696e20626c6f636b94202a20606572726f7260202d20746865206572726f7220636f646520746f2072656d6f766500442023205765696768743a20604f28312960011c2c496e697469616c697a65640c0c75333218483235364c65244163636f756e74496404b020626c6f636b5f6865696768742c20626c6f636b5f6865616465725f686173682c2072656c617965725f69645053746f72654d61696e436861696e4865616465720c0c75333218483235364c65244163636f756e74496404c0206e657720636861696e206865696768742c20626c6f636b5f6865616465725f686173682c2072656c617965725f69643c53746f7265466f726b486561646572100c7533320c75333218483235364c65244163636f756e74496404d420636861696e5f69642c20666f726b206865696768742c20626c6f636b5f6865616465725f686173682c2072656c617965725f696428436861696e52656f72670c18483235364c650c7533320c75333204a0206e65775f636861696e5f7469702c20636861696e206865696768742c20666f726b5f646570746850466f726b41686561644f664d61696e436861696e0c0c7533320c7533320c75333204a0206d61696e20636861696e206865696768742c20666f726b206865696768742c20666f726b20696438466c6167426c6f636b4572726f720c18483235364c650c753332244572726f72436f6465047020626c6f636b5f686173682c20636861696e5f69642c206572726f723c436c656172426c6f636b4572726f720c18483235364c650c753332244572726f72436f6465047020626c6f636b5f686173682c20636861696e5f69642c206572726f7200c048416c7265616479496e697469616c697a6564045020416c726561647920696e697469616c697a6564484d697373696e67426c6f636b4865696768740484204d697373696e672074686520626c6f636b20617420746869732068656967687444496e76616c696448656164657253697a65046820496e76616c696420626c6f636b206865616465722073697a65384475706c6963617465426c6f636b045420426c6f636b20616c72656164792073746f726564344f75746461746564426c6f636b049420426c6f636b20616c72656164792073746f72656420616e64206973206e6f7420686561642450726576426c6f636b04782050726576696f757320626c6f636b2068617368206e6f7420666f756e6438496e76616c6964436861696e4944044420496e76616c696420636861696e2049441c4c6f774469666604cc20506f57206861736820646f6573206e6f74206d65657420646966666963756c747920746172676574206f6620686561646572404469666654617267657448656164657204d820496e636f727265637420646966666963756c7479207461726765742073706563696669656420696e20626c6f636b20686561646572344d616c666f726d6564547869640484204d616c666f726d6564207472616e73616374696f6e206964656e74696669657250426974636f696e436f6e6669726d6174696f6e73040d01205472616e73616374696f6e20686173206c65737320636f6e6669726d6174696f6e73206f6620426974636f696e20626c6f636b73207468616e2072657175697265645850617261636861696e436f6e6669726d6174696f6e73041501205472616e73616374696f6e20686173206c65737320636f6e6669726d6174696f6e73206f662050617261636861696e20626c6f636b73207468616e2072657175697265642c4f6e676f696e67466f726b04542043757272656e7420666f726b206f6e676f696e67504d616c666f726d65644d65726b6c6550726f6f660468204d65726b6c652070726f6f66206973206d616c666f726d656448496e76616c69644d65726b6c6550726f6f66045420496e76616c6964206d65726b6c652070726f6f66184e6f4461746104690120466561747572652064697361626c65642e20526561736f6e3a2061206d61696e20636861696e20626c6f636b20776974682061206c6f7765722068656967687420697320666c61676765642077697468204e4f5f444154412e1c496e76616c696404110120466561747572652064697361626c65642e20526561736f6e3a2061206d61696e20636861696e20626c6f636b20697320666c616767656420617320494e56414c49442e2053687574646f776e0470204254432050617261636861696e20686173207368757420646f776e2c496e76616c69645478696404ac205472616e73616374696f6e206861736820646f6573206e6f74206d6174636820676976656e207478696444496e73756666696369656e7456616c756504a02056616c7565206f66207061796d656e742062656c6f772072657175657374656420616d6f756e74504d616c666f726d65645472616e73616374696f6e0484205472616e73616374696f6e2068617320696e636f727265637420666f726d617438496e76616c69645061796d656e74049020496e636f727265637420726563697069656e7420426974636f696e20616464726573734c496e76616c69644f7574707574466f726d6174049020496e636f7272656374207472616e73616374696f6e206f757470757420666f726d61743c496e76616c69644f7052657475726e04a020496e636f7272656374206964656e74696669657220696e204f505f52455455524e206669656c6440496e76616c6964547856657273696f6e047020496e76616c6964207472616e73616374696f6e2076657273696f6e40556e6b6e6f776e4572726f72636f64650490204572726f7220636f6465206e6f74206170706c696361626c6520746f20626c6f636b7338466f726b49644e6f74466f756e64049c20426c6f636b636861696e207769746820726571756573746564204944206e6f7420666f756e6434426c6f636b4e6f74466f756e64049820426c6f636b20686561646572206e6f7420666f756e6420666f7220676976656e20686173683c416c72656164795265706f727465640470204572726f7220636f646520616c7265616479207265706f727465644c556e617574686f72697a656452656c61796572047020556e617574686f72697a6564207374616b65642072656c6179657250436861696e436f756e7465724f766572666c6f770468204f766572666c6f77206f6620636861696e20636f756e7465724c426c6f636b4865696768744f766572666c6f770464204f766572666c6f77206f6620626c6f636b206865696768743c436861696e73556e646572666c6f7704a020556e646572666c6f77206f662073746f72656420626c6f636b636861696e7320636f756e74657224456e644f6646696c65048020456e644f6646696c652072656163686564207768696c652070617273696e673c4d616c666f726d6564486561646572048020466f726d6174206f66207468652068656164657220697320696e76616c6964584d616c666f726d65645769746e6573734f757470757404ec20466f726d6174206f662074686520424950313431207769746e657373207472616e73616374696f6e206f757470757420697320696e76616c6964504d616c666f726d65645032504b484f7574707574004c4d616c666f726d6564503253484f7574707574005c4d616c666f726d65644f7052657475726e4f757470757404d820466f726d6174206f6620746865204f505f52455455524e207472616e73616374696f6e206f757470757420697320696e76616c69645c556e737570706f727465644f7574707574466f726d61740058556e737570706f72746564496e707574466f726d6174002c4e6f44617461456d70747904bc20546865726520617265206e6f204e4f5f4441544120626c6f636b7320696e207468697320426c6f636b436861696e38496e76616c6964427463486173680484205573657220737570706c69656420616e20696e76616c6964206164647265737334496e76616c69645363726970740480205573657220737570706c69656420616e20696e76616c69642073637269707444496e76616c69644274634164647265737304882053706563696669656420696e76616c696420426974636f696e20616464726573734841726974686d657469634f766572666c6f7704502041726974686d65746963206f766572666c6f774c41726974686d65746963556e646572666c6f7704542041726974686d6574696320756e646572666c6f775052656c617965724e6f74417574686f72697a656404682052656c61796572206973206e6f7420726567697374657265640e20536563757269747901205365637572697479103c50617261636861696e537461747573010028537461747573436f6465040004f820496e74656765722f456e756d20646566696e696e67207468652063757272656e74207374617465206f6620746865204254432d50617261636861696e2e184572726f727301004c42547265655365743c4572726f72436f64653e040004250120536574206f66204572726f72436f6465732c20696e6469636174696e672074686520726561736f6e20666f7220616e20224572726f72222050617261636861696e5374617475732e144e6f6e636501001055323536800000000000000000000000000000000000000000000000000000000000000000085d0120496e746567657220696e6372656d656e742d6f6e6c7920636f756e7465722c207573656420746f2070726576656e7420636f6c6c6973696f6e73207768656e2067656e65726174696e67206964656e74696669657273350120666f7220652e672e2069737375652c2072656465656d206f72207265706c6163652072657175657374732028666f72204f505f52455455524e206669656c6420696e20426974636f696e292e40416374697665426c6f636b436f756e74010038543a3a426c6f636b4e756d6265721000000000148901204c696b65206672616d655f73797374656d3a3a626c6f636b5f6e756d6265722c206275742074686973206f6e65206f6e6c7920696e6372656d656e7473206966207468652070617261636861696e207374617475732069732052554e4e494e472e89012054686973207661726961626c65206973207573656420746f206b65657020747261636b206f66206475726174696f6e732c2073756368206173207468652069737375652f72656465656d2f7265706c616365206578706972792e2049662074686581012070617261636861696e206973206e6f742052554e4e494e472c206e6f207061796d656e742070726f6f66732063616e206265207375626d69747465642c20616e6420697420776f756c646e2774206265206661697220746f2070756e69736881012074686520757365722f7661756c742e204279207573696e672074686973207661726961626c6520776520656e737572652074686174207468657920686176652073756666696369656e742074696d6520746f207375626d69742074686569721c2070726f6f662e010c507365745f70617261636861696e5f737461747573042c7374617475735f636f646528537461747573436f6465207c20536574207468652070617261636861696e2073746174757320636f64652e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29a4202a20607374617475735f636f646560202d207468652073746174757320636f646520746f2073657400442023205765696768743a20604f2831296058696e736572745f70617261636861696e5f6572726f7204286572726f725f636f6465244572726f72436f6465207820496e736572742061206e65772070617261636861696e206572726f722e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29a8202a20606572726f725f636f646560202d20746865206572726f7220636f646520746f20696e7365727400442023205765696768743a20604f283129605872656d6f76655f70617261636861696e5f6572726f7204286572726f725f636f6465244572726f72436f646520682052656d6f766520612070617261636861696e206572726f722e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29a8202a20606572726f725f636f646560202d20746865206572726f7220636f646520746f2072656d6f766500442023205765696768743a20604f283129600104445265636f76657246726f6d4572726f72730828537461747573436f6465385665633c4572726f72436f64653e000024384e6f4461746142544352656c6179003c496e76616c696442544352656c6179004c50617261636861696e4e6f7452756e6e696e67004450617261636861696e53687574646f776e008050617261636861696e4e6f7452756e6e696e674f724c69717569646174696f6e006c50617261636861696e4f7261636c654f66666c696e654572726f72006450617261636861696e4c69717569646174696f6e4572726f720040496e76616c69644572726f72436f6465004841726974686d657469634f766572666c6f77000f385374616b656452656c6179657273011c5374616b696e67043054686566745265706f72747301010218483235364c655842547265655365743c543a3a4163636f756e7449643e000400081901204d617070696e67206f6620426974636f696e207472616e73616374696f6e206964656e746966696572732028534841323536206861736865732920746f206163636f756e74a0206964656e74696669657273206f66205661756c74732061636375736564206f662074686566742e010c28696e697469616c697a6508407261775f626c6f636b5f68656164657238526177426c6f636b48656164657230626c6f636b5f6865696768740c7533325c0d01204f6e652074696d652066756e6374696f6e20746f20696e697469616c697a6520746865204254432d52656c617920776974682074686520666972737420626c6f636b0030202320417267756d656e747300ec202a2060626c6f636b5f6865616465725f627974657360202d20383020627974652072617720426974636f696e20626c6f636b206865616465722e4101202a2060626c6f636b5f68656967687460202d207374617274696e6720426974636f696e20626c6f636b20686569676874206f6620746865207375626d697474656420626c6f636b206865616465722e002c2023203c7765696768743e44202d2053746f726167652052656164733a090120092d204f6e652073746f72616765207265616420746f20636865636b20746861742070617261636861696e206973206e6f742073687574646f776e2e204f283129210120092d204f6e652073746f72616765207265616420746f20636865636b2069662072656c6179657220617574686f72697a6174696f6e2069732064697361626c65642e204f283129f020092d204f6e652073746f72616765207265616420746f20636865636b2069662072656c6179657220697320617574686f72697a65642e204f28312948202d2053746f72616765205772697465733ac820202020202d204f6e652073746f7261676520777269746520746f2073746f726520626c6f636b20686173682e204f283129d020202020202d204f6e652073746f7261676520777269746520746f2073746f726520626c6f636b206865616465722e204f283129d020092d204f6e652073746f7261676520777269746520746f20696e697469616c697a65206d61696e20636861696e2e204f283129dc20202020202d204f6e652073746f7261676520777269746520746f2073746f7265206265737420626c6f636b20686173682e204f283129e420202020202d204f6e652073746f7261676520777269746520746f2073746f7265206265737420626c6f636b206865696768742e204f28312928202d204576656e74733a8420092d204f6e65206576656e7420666f7220696e697469616c697a6174696f6e2e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e4873746f72655f626c6f636b5f68656164657204407261775f626c6f636b5f68656164657238526177426c6f636b48656164657280842053746f72657320612073696e676c65206e657720626c6f636b206865616465720030202320417267756d656e747300e4202a20607261775f626c6f636b5f68656164657260202d20383020627974652072617720426974636f696e20626c6f636b206865616465722e002c2023203c7765696768743eb4204b65793a204320286c656e206f6620636861696e73292c205020286c656e206f6620706f736974696f6e732944202d2053746f726167652052656164733a090120092d204f6e652073746f72616765207265616420746f20636865636b20746861742070617261636861696e206973206e6f742073687574646f776e2e204f283129210120092d204f6e652073746f72616765207265616420746f20636865636b2069662072656c6179657220617574686f72697a6174696f6e2069732064697361626c65642e204f283129f020092d204f6e652073746f72616765207265616420746f20636865636b2069662072656c6179657220697320617574686f72697a65642e204f283129f420092d204f6e652073746f72616765207265616420746f20636865636b20696620626c6f636b206865616465722069732073746f7265642e204f283129e020092d204f6e652073746f72616765207265616420746f20726574726965766520706172656e7420626c6f636b20686173682e204f2831290d0120092d204f6e652073746f72616765207265616420746f20636865636b20696620646966666963756c747920636865636b2069732064697361626c65642e204f283129d420092d204f6e652073746f72616765207265616420746f207265747269657665206c6173742072652d7461726765742e204f283129c420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c20436861696e732e204f28432948202d2053746f72616765205772697465733ac820202020202d204f6e652073746f7261676520777269746520746f2073746f726520626c6f636b20686173682e204f283129d020202020202d204f6e652073746f7261676520777269746520746f2073746f726520626c6f636b206865616465722e204f283129c420092d204f6e652073746f72616765206d757461746520746f20657874656e64206d61696e20636861696e2e204f283129dc20202020202d204f6e652073746f7261676520777269746520746f2073746f7265206265737420626c6f636b20686173682e204f283129e420202020202d204f6e652073746f7261676520777269746520746f2073746f7265206265737420626c6f636b206865696768742e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a7820092d204f28502920736f727420746f2072656f726720636861696e732e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a7820092d20557064617465732072656c6179657220736c612073636f72652e28202d204576656e74733acc20092d204f6e65206576656e7420666f7220626c6f636b2073746f7265642028666f726b206f7220657874656e73696f6e292e006c20546f74616c20436f6d706c65786974793a204f2843202b205029302023203c2f7765696768743e487265706f72745f7661756c745f74686566740c207661756c745f696430543a3a4163636f756e744964306d65726b6c655f70726f6f661c5665633c75383e187261775f74781c5665633c75383e2825012041205374616b65642052656c61796572207265706f727473206d69736265686176696f722062792061205661756c742c2070726f766964696e6720612066726175642070726f6f664d0120286d616c6963696f757320426974636f696e207472616e73616374696f6e20616e642074686520636f72726573706f6e64696e67207472616e73616374696f6e20696e636c7573696f6e2070726f6f66292e0030202320417267756d656e74730074202a20606f726967696e603a20416e79207369676e656420757365722ec4202a20607661756c745f6964603a20546865206163636f756e74206f6620746865207661756c7420746f20636865636b2e9c202a206074785f6964603a205468652068617368206f6620746865207472616e73616374696f6eb4202a20606d65726b6c655f70726f6f66603a205468652070726f6f66206f6620747820696e636c7573696f6e2ea4202a20607261775f7478603a205468652072617720426974636f696e207472616e73616374696f6e2e0104285661756c74546865667408244163636f756e74496418483235364c65000020505661756c74416c72656164795265706f72746564045c205661756c7420616c7265616479207265706f72746564645661756c744e6f496e707574546f5472616e73616374696f6e04ac205661756c74204254432061646472657373206e6f7420696e207472616e73616374696f6e20696e7075745856616c696452656465656d5472616e73616374696f6e04642056616c69642072656465656d207472616e73616374696f6e5c56616c69645265706c6163655472616e73616374696f6e04682056616c6964207265706c616365207472616e73616374696f6e5856616c6964526566756e645472616e73616374696f6e04642056616c696420726566756e64207472616e73616374696f6e5456616c69644d657267655472616e73616374696f6e04602056616c6964206d65726765207472616e73616374696f6e48496e76616c69645472616e73616374696f6e0470204661696c656420746f207061727365207472616e73616374696f6e3c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c756510345661756c74526567697374727901345661756c7452656769737472792c584d696e696d756d436f6c6c61746572616c5661756c74010034436f6c6c61746572616c3c543e400000000000000000000000000000000004310120546865206d696e696d756d20636f6c6c61746572616c2028652e672e20444f542f4b534d292061205661756c74206e6565647320746f2070726f7669646520746f2072656769737465722e3c50756e6973686d656e7444656c6179010038543a3a426c6f636b4e756d62657210000000000c49012049662061205661756c74206661696c7320746f2065786563757465206120636f72726563742072656465656d206f72207265706c6163652c2069742069732074656d706f726172696c792062616e6e65644d012066726f6d20667572746865722069737375652c2072656465656d206f72207265706c6163652072657175657374732e20546869732076616c756520636f6e6669677572657320746865206475726174696f6e90206f6620746869732062616e2028696e206e756d626572206f6620626c6f636b7329202e64536563757265436f6c6c61746572616c5468726573686f6c64010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000869012044657465726d696e657320746865206f7665722d636f6c6c61746572616c697a6174696f6e207261746520666f7220636f6c6c61746572616c206c6f636b6564206279205661756c74732c206e656365737361727920666f726901207772617070656420746f6b656e732e2054686973207468726573686f6c642073686f756c642062652067726561746572207468616e20746865204c69717569646174696f6e436f6c6c61746572616c5468726573686f6c642e585072656d69756d52656465656d5468726573686f6c64010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000c65012044657465726d696e657320746865207261746520666f722074686520636f6c6c61746572616c2072617465206f66205661756c74732c20617420776869636820757365727320726563656976652061207072656d69756d2c590120616c6c6f63617465642066726f6d20746865205661756c74277320636f6c6c61746572616c2c207768656e20706572666f726d696e6720612072656465656d20776974682074686973205661756c742e20546869731501207468726573686f6c642073686f756c642062652067726561746572207468616e20746865204c69717569646174696f6e436f6c6c61746572616c5468726573686f6c642e784c69717569646174696f6e436f6c6c61746572616c5468726573686f6c64010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000851012044657465726d696e657320746865206c6f77657220626f756e6420666f722074686520636f6c6c61746572616c207261746520696e2069737375656420746f6b656e732e2049662061205661756c74e2809973590120636f6c6c61746572616c20726174652064726f70732062656c6f7720746869732c206175746f6d61746963206c69717569646174696f6e2028666f726365642052656465656d29206973207472696767657265642e644c69717569646174696f6e5661756c744163636f756e744964010030543a3a4163636f756e7449648000000000000000000000000000000000000000000000000000000000000000000c9101204163636f756e74206964656e746966696572206f6620616e206172746966696369616c205661756c74206d61696e7461696e656420627920746865205661756c74526567697374727920746f2068616e646c65206973737565642062616c616e6365736d0120616e6420636f6c6c61746572616c206f66206c697175696461746564205661756c74732e20546861742069732c207768656e2061205661756c74206973206c6971756964617465642c206974732062616c616e636573206172655d01207472616e7366657272656420746f204c69717569646174696f6e5661756c7420616e6420636c61696d7320617265206c617465722068616e646c65642076696120746865204c69717569646174696f6e5661756c742e404c69717569646174696f6e5661756c7401005c53797374656d5661756c743c577261707065643c543e3ec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000185661756c747301010230543a3a4163636f756e7449644d015661756c743c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20577261707065643c543e2c20436f6c6c61746572616c3c543e2c0a5369676e65644669786564506f696e743c543e3e00950300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000042501204d617070696e67206f66205661756c74732c207573696e67207468652072657370656374697665205661756c74206163636f756e74206964656e746966696572206173206b65792e445265736572766564416464726573736573010102284274634164647265737330543a3a4163636f756e7449640080000000000000000000000000000000000000000000000000000000000000000004f0204d617070696e67206f66207265736572766564204254432061646472657373657320746f207468652072656769737465726564206163636f756e7488546f74616c557365725661756c74436f6c6c61746572616c436f6c6c61746572616c010034436f6c6c61746572616c3c543e400000000000000000000000000000000004950120546f74616c20636f6c6c61746572616c207573656420666f7220636f6c6c61746572616c20746f6b656e732069737375656420627920616374697665207661756c74732c206578636c7564696e6720746865206c69717569646174696f6e207661756c743853746f7261676556657273696f6e01001c56657273696f6e040004a8204275696c642073746f72616765206174205631202872657175697265732064656661756c742030292e011c3872656769737465725f7661756c740828636f6c6c61746572616c58436f6d706163743c436f6c6c61746572616c3c543e3e287075626c69635f6b6579304274635075626c69634b657930d820496e697469617465732074686520726567697374726174696f6e2070726f63656475726520666f722061206e6577205661756c742ef020546865205661756c742070726f76696465732069747320425443206164647265737320616e64206c6f636b7320757020636f6c6c61746572616c2cb020776869636820697320746f206265207573656420696e207468652069737375696e672070726f636573732e0030202320417267756d656e7473c8202a2060636f6c6c61746572616c60202d2074686520616d6f756e74206f6620636f6c6c61746572616c20746f206c6f636bf4202a20607075626c69635f6b657960202d2074686520425443207075626c6963206b6579206f6620746865207661756c7420746f20726567697374657200242023204572726f72736501202a2060496e73756666696369656e745661756c74436f6c6c61746572616c416d6f756e7460202d2069662074686520636f6c6c61746572616c2069732062656c6f7720746865206d696e696d756d207468726573686f6c645501202a20605661756c74416c72656164795265676973746572656460202d2069662061207661756c7420697320616c7265616479207265676973746572656420666f7220746865206f726967696e206163636f756e744901202a2060496e73756666696369656e74436f6c6c61746572616c417661696c61626c6560202d20696620746865207661756c7420646f6573206e6f74206f776e20656e6f75676820636f6c6c61746572616c486465706f7369745f636f6c6c61746572616c0418616d6f756e7458436f6d706163743c436f6c6c61746572616c3c543e3e14d8204465706f73697420636f6c6c61746572616c206173206120736563757269747920616761696e737420737465616c696e67207468658020426974636f696e206c6f636b65642077697468207468652063616c6c65722e0030202320417267756d656e7473d0202a2060616d6f756e7460202d2074686520616d6f756e74206f6620657874726120636f6c6c61746572616c20746f206c6f636b4c77697468647261775f636f6c6c61746572616c0418616d6f756e7458436f6d706163743c436f6c6c61746572616c3c543e3e38fc205769746864726177732060616d6f756e7460206f662074686520636f6c6c61746572616c2066726f6d2074686520616d6f756e74206c6f636b6564206279b820746865207661756c7420636f72726573706f6e64696e6720746f20746865206f726967696e206163636f756e74c82054686520636f6c6c61746572616c206c656674206166746572207769746864726177616c206d757374206265206d6f72651d01202866726565206f72207573656420696e20636f6c6c61746572616c2069737375656420746f6b656e7329207468616e204d696e696d756d436f6c6c61746572616c5661756c74190120616e642061626f76652074686520536563757265436f6c6c61746572616c5468726573686f6c642e20436f6c6c61746572616c20746861742069732063757272656e746c790101206265696e67207573656420746f206261636b2069737375656420746f6b656e732072656d61696e73206c6f636b656420756e74696c20746865205661756c743d01206973207573656420666f7220612072656465656d2072657175657374202866756c6c2072656c656173652063616e2074616b65206d756c7469706c652072656465656d207265717565737473292e0030202320417267756d656e7473c8202a2060616d6f756e7460202d2074686520616d6f756e74206f6620636f6c6c61746572616c20746f20776974686472617700242023204572726f7273f8202a20605661756c744e6f74466f756e6460202d206966206e6f207661756c742065786973747320666f7220746865206f726967696e206163636f756e744901202a2060496e73756666696369656e74436f6c6c61746572616c417661696c61626c6560202d20696620746865207661756c7420646f6573206e6f74206f776e20656e6f75676820636f6c6c61746572616c447570646174655f7075626c69635f6b657904287075626c69635f6b6579304274635075626c69634b657910bc205265676973746572732061206e657720426974636f696e206164647265737320666f7220746865207661756c742e0030202320417267756d656e7473ec202a20607075626c69635f6b657960202d2074686520425443207075626c6963206b6579206f6620746865207661756c7420746f207570646174654072656769737465725f61646472657373042c6274635f61646472657373284274634164647265737300446163636570745f6e65775f69737375657304446163636570745f6e65775f69737375657310626f6f6c20e020436f6e666967757265732077686574686572206f72206e6f7420746865207661756c742061636365707473206e6577206973737565732e0030202320417267756d656e747300e0202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e2028692e652e20746865207661756c74292501202a20606163636570745f6e65775f69737375657360202d207472756520696e64696361746573207468617420746865207661756c742061636365707473206e65772069737375657300442023205765696768743a20604f28312960807265706f72745f756e646572636f6c6c61746572616c697a65645f7661756c7404207661756c745f696430543a3a4163636f756e74496400014c3452656769737465725661756c7408244163636f756e74496428436f6c6c61746572616c00444465706f736974436f6c6c61746572616c10244163636f756e74496428436f6c6c61746572616c28436f6c6c61746572616c28436f6c6c61746572616c04f0207661756c745f69642c206e657720636f6c6c61746572616c2c20746f74616c20636f6c6c61746572616c2c206672656520636f6c6c61746572616c485769746864726177436f6c6c61746572616c0c244163636f756e74496428436f6c6c61746572616c28436f6c6c61746572616c04c4207661756c745f69642c2077697468647261776e20636f6c6c61746572616c2c20746f74616c20636f6c6c61746572616c3c5570646174655075626c69634b657908244163636f756e744964304274635075626c69634b65790464207661756c745f69642c206e6577207075626c6963206b65793c52656769737465724164647265737308244163636f756e74496428427463416464726573730458207661756c745f69642c206e6577206164647265737360496e637265617365546f4265497373756564546f6b656e7308244163636f756e7449641c5772617070656404a4207661756c745f69642c206164646974696f6e616c20746f2d62652d69737375656420746f6b656e73604465637265617365546f4265497373756564546f6b656e7308244163636f756e7449641c5772617070656404a8207661756c745f69642c20646563726561736520696e20746f2d62652d69737375656420746f6b656e732c4973737565546f6b656e7308244163636f756e7449641c5772617070656404b4207661756c745f69642c206164646974696f6e616c206e756d626572206f662069737375656420746f6b656e7368496e637265617365546f426552656465656d6564546f6b656e7308244163636f756e7449641c5772617070656404ac207661756c745f69642c206164646974696f6e616c20746f2d62652d72656465656d656420746f6b656e73684465637265617365546f426552656465656d6564546f6b656e7308244163636f756e7449641c5772617070656404b0207661756c745f69642c20646563726561736520696e20746f2d62652d72656465656d656420746f6b656e7368496e637265617365546f42655265706c61636564546f6b656e7308244163636f756e7449641c5772617070656404ac207661756c745f69642c206164646974696f6e616c20746f2d62652d7265706c6163656420746f6b656e73384465637265617365546f6b656e730c244163636f756e744964244163636f756e7449641c57726170706564041d01207661756c745f69642c20757365725f69642c20616d6f756e74206f6620746f6b656e73207265647563656420696e20697373756564202620746f2d62652d72656465656d65643052656465656d546f6b656e7308244163636f756e7449641c5772617070656404a8207661756c745f69642c20616d6f756e74206f66206e65776c792072656465656d656420746f6b656e734c52656465656d546f6b656e735072656d69756d10244163636f756e7449641c5772617070656428436f6c6c61746572616c244163636f756e744964045501207661756c745f69642c20616d6f756e74206f66206e65776c792072656465656d656420746f6b656e732c20616d6f756e74206f6620636f6c6c61746572616c207472616e736665727265642c20757365725f69646c52656465656d546f6b656e734c6971756964617465645661756c740c244163636f756e7449641c5772617070656428436f6c6c61746572616c04f8207661756c745f69642c20616d6f756e74206f66206e65776c792072656465656d656420746f6b656e732c20736c617368656420636f6c6c61746572616c5c52656465656d546f6b656e734c69717569646174696f6e0c244163636f756e7449641c5772617070656428436f6c6c61746572616c04e8207661756c745f69642c20616d6f756e74206f66206275726e656420746f6b656e732c207472616e7366657272656420636f6c6c61746572616c345265706c616365546f6b656e7310244163636f756e744964244163636f756e7449641c5772617070656428436f6c6c61746572616c046901206f6c645f7661756c745f69642c206e65775f7661756c745f69642c207472616e7366657272656420746f6b656e732c206164646974696f6e616c20636f6c6c61746572616c206c6f636b6564206279206e65775f7661756c74384c69717569646174655661756c7420244163636f756e7449641c577261707065641c577261707065641c577261707065641c5772617070656428436f6c6c61746572616c2c5661756c7453746174757328436f6c6c61746572616c081501207661756c745f69642c206973737565645f746f6b656e732c20746f5f62655f6973737565645f746f6b656e732c20746f5f62655f72656465656d65645f746f6b656e732c190120746f5f62655f7265706c616365645f746f6b656e732c206261636b696e675f636f6c6c61746572616c2c207374617475732c207265706c6163655f636f6c6c61746572616c2042616e5661756c7408244163636f756e7449642c426c6f636b4e756d626572045c207661756c745f69642c2062616e6e65645f756e74696c042050616c6c657449642050616c6c65744964206d6f642f7672656704050120546865207661756c74206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e4458496e73756666696369656e74436f6c6c61746572616c0498204e6f7420656e6f756768206672656520636f6c6c61746572616c20617661696c61626c652e4c457863656564696e675661756c744c696d69740449012054686520616d6f756e74206f6620746f6b656e7320746f2062652069737375656420697320686967686572207468616e20746865206973737561626c6520616d6f756e7420627920746865207661756c746c496e73756666696369656e74546f6b656e73436f6d6d6974746564042d01205468652072657175657374656420616d6f756e74206f6620746f6b656e7320657863656564732074686520616d6f756e7420617661696c61626c6520746f2074686973207661756c742e2c5661756c7442616e6e6564049020416374696f6e206e6f7420616c6c6f776564206f6e2062616e6e6564207661756c742e84496e73756666696369656e745661756c74436f6c6c61746572616c416d6f756e74046101205468652070726f766964656420636f6c6c61746572616c2077617320696e73756666696369656e74202d206974206d7573742062652061626f76652060604d696e696d756d436f6c6c61746572616c5661756c7460602e585661756c74416c7265616479526567697374657265640415012052657475726e65642069662061207661756c7420747269657320746f207265676973746572207768696c6520616c7265616479206265696e672072656769737465726564345661756c744e6f74466f756e6404902054686520737065636966696564207661756c7420646f6573206e6f742065786973742e5852657365727665644465706f7369744164647265737304c02054686520426974636f696e20416464726573732068617320616c7265616479206265656e2072656769737465726564845661756c744e6f7442656c6f774c69717569646174696f6e5468726573686f6c6404010120417474656d7074656420746f206c69717569646174652061207661756c742074686174206973206e6f7420756e646572636f6c6c61746572616c697a65642e40496e76616c69645075626c69634b6579040901204465706f736974206164647265737320636f756c64206e6f742062652067656e65726174656420776974682074686520676976656e207075626c6963206b65792e384e6f546f6b656e7349737375656404d820436f6c6c61746572616c697a6174696f6e20697320696e66696e697465206966206e6f20746f6b656e7320617265206973737565647c4e6f5661756c745769746853756666696369656e74436f6c6c61746572616c006c4e6f5661756c745769746853756666696369656e74546f6b656e7300944e6f5661756c74556e6465725468655072656d69756d52656465656d5468726573686f6c64004841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f77003c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c7565114845786368616e6765526174654f7261636c65014845786368616e6765526174654f7261636c65183045786368616e676552617465010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000004c02043757272656e742065786368616e676520726174652028692e652e20506c616e636b20706572205361746f73686929504c61737445786368616e67655261746554696d65010024543a3a4d6f6d656e742000000000000000000460204c6173742065786368616e676520726174652074696d653c5361746f736869506572427974657301004042746354784665657350657242797465300000000000000000000000000431012054686520657374696d6174656420696e636c7573696f6e2074696d6520666f72206120426974636f696e207472616e73616374696f6e20696e205361746f73686973207065722062797465204d617844656c6179010024543a3a4d6f6d656e7420000000000000000004f8204d6178696d756d2064656c617920286d696c6c697365636f6e64732920666f72207468652065786368616e6765207261746520746f206265207573656444417574686f72697a65644f7261636c657301010230543a3a4163636f756e7449641c5665633c75383e000400003853746f7261676556657273696f6e01001c56657273696f6e040004a8204275696c642073746f72616765206174205631202872657175697265732064656661756c742030292e0110447365745f65786368616e67655f726174650458636f6c6c61746572616c5f7065725f7772617070656454556e7369676e65644669786564506f696e743c543e24602053657473207468652065786368616e676520726174652e0030202320417267756d656e747300a901202a2060636f6c6c61746572616c5f7065725f7772617070656460202d2065786368616e67652072617465206578707265737365642061732074686520616d6f756e74206f66206261636b696e6720636f6c6c61746572616c207065722077686f6c652069737375656424202020746f6b656e2eb501204e6f746520746861742074686973206973205f6e6f745f207468652073616d6520756e697420746861742069732073746f72656420696e207468652045786368616e6765526174652073746f72616765206974656d207768696368206973206d756c7469706c69656420627945012074686520636f6e76657273696f6e20666163746f72202d20692e652e20706c616e636b5f7065725f7361746f736869203d20646f745f7065725f627463202a202831302a2a3130202f2031302a2a382998205468652073746f72656420756e697420697320706c616e636b5f7065725f7361746f736869607365745f6274635f74785f666565735f7065725f627974650c10666173740c7533321068616c660c75333210686f75720c75333218510120536574732074686520657374696d61746564207472616e73616374696f6e20696e636c7573696f6e2066656573206261736564206f6e2074686520657374696d6174656420696e636c7573696f6e2074696d650030202320417267756d656e74736101202a20606661737460202d2054686520657374696d61746564205361746f736869732070657220627974657320746f2067657420696e636c7564656420696e20746865206e65787420626c6f636b20287e3130206d696e297901202a206068616c6660202d2054686520657374696d61746564205361746f736869732070657220627974657320746f2067657420696e636c7564656420696e20746865206e657874203320626c6f636b7320287e68616c6620686f7572296501202a2060686f757260202d2054686520657374696d61746564205361746f736869732070657220627974657320746f2067657420696e636c7564656420696e20746865206e657874203620626c6f636b7320287e686f75722960696e736572745f617574686f72697a65645f6f7261636c6508286163636f756e745f696430543a3a4163636f756e744964106e616d651c5665633c75383e142101204164647320616e20617574686f72697a6564206f7261636c65206163636f756e7420286f6e6c792065786563757461626c652062792074686520526f6f74206163636f756e74290030202320417267756d656e7473b8202a20606163636f756e745f696460202d20746865206163636f756e74204964206f6620746865206f7261636c65b4202a20606e616d6560202d2061206465736372697074697665206e616d6520666f7220746865206f7261636c656072656d6f76655f617574686f72697a65645f6f7261636c6504286163636f756e745f696430543a3a4163636f756e744964102d012052656d6f76657320616e20617574686f72697a6564206f7261636c65206163636f756e7420286f6e6c792065786563757461626c652062792074686520526f6f74206163636f756e74290030202320417267756d656e7473b8202a20606163636f756e745f696460202d20746865206163636f756e74204964206f6620746865206f7261636c6501083c53657445786368616e67655261746508244163636f756e74496448556e7369676e65644669786564506f696e7404a0204576656e7420656d6974746564207768656e2065786368616e67652072617465206973207365744c5365744274635478466565735065724279746510244163636f756e7449640c7533320c7533320c75333204ac204576656e7420656d6974746564207768656e20746865206274632074782066656573206172652073657400144c496e76616c69644f7261636c65536f757263650490204e6f7420617574686f72697a656420746f207365742065786368616e676520726174654c4d697373696e6745786368616e67655261746504ac2045786368616e67652072617465206e6f7420737065636966696564206f722068617320657870697265643c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c75654841726974686d657469634f766572666c6f7704a8204d617468656d61746963616c206f7065726174696f6e2063617573656420616e206f766572666c6f774c41726974686d65746963556e646572666c6f7704ac204d617468656d61746963616c206f7065726174696f6e2063617573656420616e20756e646572666c6f7712144973737565011449737375650c3449737375655265717565737473010102104832353619014973737565526571756573743c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20577261707065643c543e2c20436f6c6c61746572616c3c540a3e3e00cd0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000829012055736572732063726561746520697373756520726571756573747320746f20697373756520746f6b656e732e2054686973206d617070696e672070726f766964657320616363657373e82066726f6d206120756e6971756520686173682060497373756549646020746f20616e206049737375655265717565737460207374727563742e2c4973737565506572696f64010038543a3a426c6f636b4e756d62657210000000000c3101205468652074696d6520646966666572656e636520696e206e756d626572206f6620626c6f636b73206265747765656e20616e20697373756520726571756573742069732063726561746564310120616e6420726571756972656420636f6d706c6574696f6e2074696d65206279206120757365722e2054686520697373756520706572696f642068617320616e207570706572206c696d6974a420746f2070726576656e74206772696566696e67206f66207661756c7420636f6c6c61746572616c2e3853746f7261676556657273696f6e01001c56657273696f6e040004a8204275696c642073746f72616765206174205631202872657175697265732064656661756c742030292e011034726571756573745f69737375650c18616d6f756e744c436f6d706163743c577261707065643c543e3e207661756c745f696430543a3a4163636f756e7449644c6772696566696e675f636f6c6c61746572616c58436f6d706163743c436f6c6c61746572616c3c543e3e247c2052657175657374207468652069737375616e6365206f6620746f6b656e730030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e5501202a2060616d6f756e7460202d20616d6f756e74206f66204254432074686520757365722077616e747320746f20636f6e7665727420746f2069737375656420746f6b656e732e204e6f7465207468617420746865310120616d6f756e74206f662069737375656420746f6b656e732072656365697665642077696c6c206265206c6573732c206265636175736520612066656520697320737562747261637465642e84202a20607661756c7460202d2061646472657373206f6620746865207661756c74bc202a20606772696566696e675f636f6c6c61746572616c60202d20616d6f756e74206f6620636f6c6c61746572616c34657865637574655f69737375650c2069737375655f69641048323536306d65726b6c655f70726f6f661c5665633c75383e187261775f74781c5665633c75383e24802046696e616c697a65207468652069737375616e6365206f6620746f6b656e730030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e2101202a206069737375655f696460202d206964656e746966696572206f662069737375652072657175657374206173206f75747075742066726f6d20726571756573745f6973737565dc202a206074785f626c6f636b5f68656967687460202d20626c6f636b206e756d626572206f6620636f6c6c61746572616c20636861696e74202a20606d65726b6c655f70726f6f6660202d207261772062797465735c202a20607261775f747860202d207261772062797465733063616e63656c5f6973737565042069737375655f6964104832353618a42043616e63656c207468652069737375616e6365206f6620746f6b656e7320696620657870697265640030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e2101202a206069737375655f696460202d206964656e746966696572206f662069737375652072657175657374206173206f75747075742066726f6d20726571756573745f6973737565407365745f69737375655f706572696f640418706572696f6438543a3a426c6f636b4e756d62657220c820536574207468652064656661756c7420697373756520706572696f6420666f7220747820766572696669636174696f6e2e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29b4202a2060706572696f6460202d2064656661756c7420706572696f6420666f72206e657720726571756573747300442023205765696768743a20604f28312960011030526571756573744973737565201048323536244163636f756e7449641c577261707065641c5772617070656428436f6c6c61746572616c244163636f756e7449642842746341646472657373304274635075626c69634b657900444973737565416d6f756e744368616e67651010483235361c577261707065641c5772617070656428436f6c6c61746572616c0030457865637574654973737565101048323536244163636f756e7449641c57726170706564244163636f756e744964002c43616e63656c49737375650c1048323536244163636f756e74496428436f6c6c61746572616c00003058496e73756666696369656e74436f6c6c61746572616c003c497373756549644e6f74466f756e64004c436f6d6d6974506572696f6445787069726564003854696d654e6f744578706972656400384973737565436f6d706c657465640038497373756543616e63656c6c656400685661756c744e6f74416363657074696e674e6577497373756573007c57616974696e67466f7252656c61796572496e697469616c697a6174696f6e003c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c75654c41726974686d65746963556e646572666c6f77004841726974686d657469634f766572666c6f77003c496e76616c69644578656375746f7200131852656465656d011852656465656d143052656465656d506572696f64010038543a3a426c6f636b4e756d626572100000000008d501205468652074696d6520646966666572656e636520696e206e756d626572206f6620626c6f636b73206265747765656e20612072656465656d2072657175657374206973206372656174656420616e6420726571756972656420636f6d706c6574696f6e2074696d652062792061207661756c742e4502205468652072656465656d20706572696f642068617320616e207570706572206c696d697420746f20656e7375726520746865207573657220676574732074686569722042544320696e2074696d6520616e6420746f20706f74656e7469616c6c792070756e6973682061207661756c7420666f7220696e6163746976697479206f7220737465616c696e67204254432e3852656465656d526571756573747301010210483235361d0152656465656d526571756573743c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20577261707065643c543e2c20436f6c6c61746572616c3c0a543e3e008902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000086901205573657273206372656174652072656465656d20726571756573747320746f20726563656976652042544320696e2072657475726e20666f722074686569722070726576696f75736c792069737375656420746f6b656e732e35012054686973206d617070696e672070726f7669646573206163636573732066726f6d206120756e6971756520686173682072656465656d496420746f20612052656465656d207374727563742e4852656465656d4274634475737456616c7565010028577261707065643c543e4000000000000000000000000000000000085d0120546865206d696e696d756d20616d6f756e74206f6620627463207468617420697320616363657074656420666f722072656465656d2072657175657374733b20616e79206c6f7765722076616c75657320776f756c64b8207269736b2074686520626974636f696e20636c69656e7420746f2072656a65637420746865207061796d656e745452656465656d5472616e73616374696f6e53697a6501000c753332100000000004e8207468652065787065637465642073697a6520696e206279746573206f66207468652072656465656d20626974636f696e207472616e736665723853746f7261676556657273696f6e01001c56657273696f6e040004a8204275696c642073746f72616765206174205631202872657175697265732064656661756c742030292e011838726571756573745f72656465656d0c38616d6f756e745f777261707065644c436f6d706163743c577261707065643c543e3e2c6274635f616464726573732842746341646472657373207661756c745f696430543a3a4163636f756e74496424710120496e697469616c697a65732061207265717565737420746f206275726e2069737375656420746f6b656e7320616761696e73742061205661756c7420776974682073756666696369656e7420746f6b656e732e2049742077696c6cc820616c736f20656e737572652074686174207468652050617261636861696e207374617475732069732052554e4e494e472e0030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e94202a2060616d6f756e7460202d20616d6f756e74206f662069737375656420746f6b656e73b4202a20606274635f6164647265737360202d20746865206164647265737320746f20726563656976652042544390202a20607661756c745f696460202d2061646472657373206f6620746865207661756c74486c69717569646174696f6e5f72656465656d0438616d6f756e745f777261707065644c436f6d706163743c577261707065643c543e3e207901205768656e2061205661756c74206973206c6971756964617465642c2069747320636f6c6c61746572616c20697320736c617368656420757020746f2031353025206f6620746865206c697175696461746564204254432076616c75652e890120546f2072652d65737461626c6973682074686520706879736963616c20313a31207065672c207468652062726964676520616c6c6f777320757365727320746f206275726e2069737375656420746f6b656e7320696e2072657475726e20666f727820636f6c6c61746572616c2061742061207072656d69756d20726174652e0030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6ed4202a2060616d6f756e745f7772617070656460202d20616d6f756e74206f662069737375656420746f6b656e7320746f206275726e38657865637574655f72656465656d0c2472656465656d5f69641048323536306d65726b6c655f70726f6f661c5665633c75383e187261775f74781c5665633c75383e3069012041205661756c742063616c6c7320746869732066756e6374696f6e20616674657220726563656976696e6720616e205265717565737452656465656d206576656e742077697468207468656972207075626c6963206b65792e7d01204265666f72652063616c6c696e67207468652066756e6374696f6e2c20746865205661756c74207472616e73666572732074686520737065636966696320616d6f756e74206f662042544320746f20746865204254432061646472657373650120676976656e20696e20746865206f726967696e616c2072656465656d20726571756573742e20546865205661756c7420636f6d706c65746573207468652072656465656d207769746820746869732066756e6374696f6e2e0030202320417267756d656e747300c8202a20606f726967696e60202d20616e796f6e6520657865637574696e6720746869732072656465656d20726571756573742d01202a206072656465656d5f696460202d206964656e746966696572206f662072656465656d2072657175657374206173206f75747075742066726f6d20726571756573745f72656465656d74202a206074785f696460202d207472616e73616374696f6e2068617368dc202a206074785f626c6f636b5f68656967687460202d20626c6f636b206e756d626572206f6620636f6c6c61746572616c20636861696e74202a20606d65726b6c655f70726f6f6660202d207261772062797465735c202a20607261775f747860202d207261772062797465733463616e63656c5f72656465656d082472656465656d5f69641048323536247265696d627572736510626f6f6c2c4d0120496620612072656465656d2072657175657374206973206e6f7420636f6d706c65746564206f6e2074696d652c207468652072656465656d20726571756573742063616e2062652063616e63656c6c65642e4d01205468652075736572207468617420696e697469616c6c7920726571756573746564207468652072656465656d2070726f636573732063616c6c7320746869732066756e6374696f6e20746f206f627461696e690120746865205661756c74e280997320636f6c6c61746572616c20617320636f6d70656e736174696f6e20666f72206e6f7420726566756e64696e672074686520425443206261636b20746f20746865697220616464726573732e0030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e2d01202a206072656465656d5f696460202d206964656e746966696572206f662072656465656d2072657175657374206173206f75747075742066726f6d20726571756573745f72656465656d3501202a20607265696d627572736560202d2073706563696679696e672069662074686520757365722077697368657320746f206265207265696d62757273656420696e20636f6c6c61746572616cf420616e6420736c61736820746865205661756c742c206f722077697368657320746f206b6565702074686520746f6b656e732028616e642072657472796c2052656465656d207769746820616e6f74686572205661756c7429447365745f72656465656d5f706572696f640418706572696f6438543a3a426c6f636b4e756d62657220cc20536574207468652064656661756c742072656465656d20706572696f6420666f7220747820766572696669636174696f6e2e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29b4202a2060706572696f6460202d2064656661756c7420706572696f6420666f72206e657720726571756573747300442023205765696768743a20604f28312960846d696e745f746f6b656e735f666f725f7265696d6275727365645f72656465656d042472656465656d5f696410483235362c2501204d696e7420746f6b656e7320666f7220612072656465656d2074686174207761732063616e63656c6c65642077697468207265696d62757273653d747275652e20546869732069732901206f6e6c7920706f737369626c65206966206174207468652074696d65206f66207468652063616e63656c5f72656465656d2c20746865207661756c7420646964206e6f7420686176652d012073756666696369656e7420636f6c6c61746572616c206166746572206265696e6720736c617368656420746f206261636b2074686520746f6b656e73207468617420746865207573657238207573656420746f20686f6c642e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f292d01202a206072656465656d5f696460202d206964656e746966696572206f662072656465656d2072657175657374206173206f75747075742066726f6d20726571756573745f72656465656d00442023205765696768743a20604f283129600114345265717565737452656465656d201048323536244163636f756e7449641c577261707065641c5772617070656428436f6c6c61746572616c244163636f756e74496428427463416464726573731c5772617070656400444c69717569646174696f6e52656465656d08244163636f756e7449641c5772617070656400344578656375746552656465656d141048323536244163636f756e7449641c577261707065641c57726170706564244163636f756e744964003043616e63656c52656465656d141048323536244163636f756e744964244163636f756e74496428436f6c6c61746572616c4c52656465656d5265717565737453746174757300744d696e74546f6b656e73466f725265696d62757273656452656465656d0c244163636f756e74496410483235361c5772617070656400003060416d6f756e74457863656564735573657242616c616e63650064416d6f756e74457863656564735661756c7442616c616e6365004c436f6d6d6974506572696f64457870697265640040556e617574686f72697a656455736572003854696d654e6f7445787069726564003c52656465656d43616e63656c6c6564003c52656465656d436f6d706c65746564004052656465656d49644e6f74466f756e64003c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c75654841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f770054416d6f756e7442656c6f7744757374416d6f756e7400141c5265706c616365011c5265706c616365103c5265706c6163655265717565737473010102104832353621015265706c616365526571756573743c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20577261707065643c543e2c20436f6c6c61746572616c3c0a543e3e004902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008f8205661756c747320637265617465207265706c61636520726571756573747320746f207472616e73666572206c6f636b656420636f6c6c61746572616c2e1d012054686973206d617070696e672070726f7669646573206163636573732066726f6d206120756e69717565206861736820746f206120605265706c61636552657175657374602e345265706c616365506572696f64010038543a3a426c6f636b4e756d62657210000000000c4901205468652074696d6520646966666572656e636520696e206e756d626572206f6620626c6f636b73206265747765656e207768656e2061207265706c616365207265717565737420697320637265617465643d0120616e6420726571756972656420636f6d706c6574696f6e2074696d652062792061207661756c742e20546865207265706c61636520706572696f642068617320616e207570706572206c696d6974a420746f2070726576656e74206772696566696e67206f66207661756c7420636f6c6c61746572616c2e4c5265706c6163654274634475737456616c7565010028577261707065643c543e400000000000000000000000000000000008610120546865206d696e696d756d20616d6f756e74206f6620627463207468617420697320616363657074656420666f72207265706c6163652072657175657374733b20616e79206c6f7765722076616c75657320776f756c64b8207269736b2074686520626974636f696e20636c69656e7420746f2072656a65637420746865207061796d656e743853746f7261676556657273696f6e01001c56657273696f6e040004a8204275696c642073746f72616765206174205631202872657175697265732064656661756c742030292e01183c726571756573745f7265706c6163650818616d6f756e744c436f6d706163743c577261707065643c543e3e4c6772696566696e675f636f6c6c61746572616c58436f6d706163743c436f6c6c61746572616c3c543e3e1cc4205265717565737420746865207265706c6163656d656e74206f662061206e6577207661756c74206f776e6572736869700030202320417267756d656e7473009c202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e94202a2060616d6f756e7460202d20616d6f756e74206f662069737375656420746f6b656e73bc202a20606772696566696e675f636f6c6c61746572616c60202d20616d6f756e74206f6620636f6c6c61746572616c4077697468647261775f7265706c6163650418616d6f756e744c436f6d706163743c577261707065643c543e3e14a020576974686472617720612072657175657374206f66207661756c74207265706c6163656d656e740030202320417267756d656e747300d8202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e3a20746865206f6c64207661756c74386163636570745f7265706c61636510246f6c645f7661756c7430543a3a4163636f756e74496428616d6f756e745f6274634c436f6d706163743c577261707065643c543e3e28636f6c6c61746572616c58436f6d706163743c436f6c6c61746572616c3c543e3e2c6274635f6164647265737328427463416464726573732090204163636570742072657175657374206f66207661756c74207265706c6163656d656e740030202320417267756d656e747300f4202a20606f726967696e60202d2074686520696e69746961746f72206f6620746865207472616e73616374696f6e3a20746865206e6577207661756c743d01202a20606f6c645f7661756c7460202d206964206f6620746865206f6c64207661756c742074686174207765206172652028706f737369626c79207061727469616c6c7929207265706c6163696e67c0202a2060636f6c6c61746572616c60202d2074686520636f6c6c61746572616c20666f72207265706c6163656d656e742101202a20606274635f6164647265737360202d2074686520616464726573732074686174206f6c642d7661756c742073686f756c64207472616e73666572207468652062746320746f3c657865637574655f7265706c6163650c287265706c6163655f69641048323536306d65726b6c655f70726f6f661c5665633c75383e187261775f74781c5665633c75383e20682045786563757465207661756c74207265706c6163656d656e740030202320417267756d656e747300d8202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e3a20746865206e6577207661756c74cc202a20607265706c6163655f696460202d20746865204944206f6620746865207265706c6163656d656e742072657175657374c0202a20276d65726b6c655f70726f6f6627202d20746865206d65726b6c6520726f6f74206f662074686520626c6f636ba4202a20607261775f747860202d20746865207472616e73616374696f6e20696420696e2062797465733863616e63656c5f7265706c61636504287265706c6163655f6964104832353618642043616e63656c207661756c74207265706c6163656d656e740030202320417267756d656e747300d8202a20606f726967696e60202d2073656e646572206f6620746865207472616e73616374696f6e3a20746865206e6577207661756c74cc202a20607265706c6163655f696460202d20746865204944206f6620746865207265706c6163656d656e742072657175657374487365745f7265706c6163655f706572696f640418706572696f6438543a3a426c6f636b4e756d62657220d020536574207468652064656661756c74207265706c61636520706572696f6420666f7220747820766572696669636174696f6e2e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f29b4202a2060706572696f6460202d2064656661756c7420706572696f6420666f72206e657720726571756573747300442023205765696768743a20604f28312960011438526571756573745265706c6163650c244163636f756e7449641c5772617070656428436f6c6c61746572616c003c57697468647261775265706c6163650c244163636f756e7449641c5772617070656428436f6c6c61746572616c00344163636570745265706c616365181048323536244163636f756e744964244163636f756e7449641c5772617070656428436f6c6c61746572616c28427463416464726573730038457865637574655265706c6163650c1048323536244163636f756e744964244163636f756e744964003443616e63656c5265706c616365101048323536244163636f756e744964244163636f756e74496428436f6c6c61746572616c00004454416d6f756e7442656c6f7744757374416d6f756e7400344e6f5265706c6163656d656e740058496e73756666696369656e74436f6c6c61746572616c00404e6f50656e64696e67526571756573740044556e617574686f72697a65645661756c7400545265706c61636553656c664e6f74416c6c6f776564005443616e63656c4163636570746564526571756573740078436f6c6c61746572616c42656c6f775365637572655468726573686f6c6400645661756c7449734e6f6d696e6174696f6e4f70657261746f7200505265706c616365506572696f6445787069726564005c5265706c616365506572696f644e6f744578706972656400405265706c616365436f6d706c6574656400405265706c61636543616e63656c6c656400445265706c61636549644e6f74466f756e64003c547279496e746f496e744572726f72046020556e61626c6520746f20636f6e766572742076616c75654c41726974686d65746963556e646572666c6f77004841726974686d657469634f766572666c6f7700150c466565010c46656538204973737565466565010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000008202023204973737565c8204665652073686172652074686174207573657273206e65656420746f2070617920746f20697373756520746f6b656e732e5c49737375654772696566696e67436f6c6c61746572616c010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000825012044656661756c74206772696566696e6720636f6c6c61746572616c2028652e672e20444f542f4b534d2920617320612070657263656e74616765206f6620746865206c6f636b6564e820636f6c6c61746572616c206f662061205661756c74206120757365722068617320746f206c6f636b20746f20697373756520746f6b656e732e2452656465656d466565010054556e7369676e65644669786564506f696e743c543e4000000000000000000000000000000000082420232052656465656dcc204665652073686172652074686174207573657273206e65656420746f2070617920746f2072656465656d20746f6b656e732e24526566756e64466565010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000824202320526566756e64f0204665652073686172652074686174207573657273206e65656420746f2070617920746f20726566756e64206f7665727061696420746f6b656e732e405072656d69756d52656465656d466565010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000c442023205661756c742052656769737472790d01204966207573657273206578656375746520612072656465656d20776974682061205661756c7420666c616767656420666f72207072656d69756d2072656465656d2cf020746865792063616e206561726e206120636f6c6c61746572616c207072656d69756d2c20736c61736865642066726f6d20746865205661756c742e3450756e6973686d656e74466565010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000c39012046656520746861742061205661756c742068617320746f20706179206966206974206661696c7320746f20657865637574652072656465656d206f72207265706c61636520726571756573747315012028666f722072656465656d2c206f6e20746f70206f662074686520736c61736865642076616c7565206f66207468652072657175657374292e20546865206665652069732d01207061696420696e20636f6c6c61746572616c206261736564206f6e2074686520746f6b656e20616d6f756e74206174207468652063757272656e742065786368616e676520726174652e645265706c6163654772696566696e67436f6c6c61746572616c010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000010282023205265706c61636569012044656661756c74206772696566696e6720636f6c6c61746572616c2028652e672e20444f542f4b534d2920617320612070657263656e74616765206f662074686520746f2d62652d6c6f636b656420636f6c6c61746572616c5d01206f6620746865206e6577205661756c742e205468697320636f6c6c61746572616c2077696c6c20626520736c617368656420616e6420616c6c6f636174656420746f20746865207265706c6163696e67205661756c74ec2069662074686520746f2d62652d7265706c61636564205661756c7420646f6573206e6f74207472616e7366657220425443206f6e2074696d652e40466565506f6f6c4163636f756e744964010030543a3a4163636f756e744964800000000000000000000000000000000000000000000000000000000000000000046c204163636f756e744964206f66207468652066656520706f6f6c2e4c4d61696e7461696e65724163636f756e744964010030543a3a4163636f756e744964800000000000000000000000000000000000000000000000000000000000000000049c204163636f756e744964206f66207468652070617261636861696e206d61696e7461696e65722e305661756c7452657761726473010054556e7369676e65644669786564506f696e743c543e4000000000000000000000000000000000088820232050617261636861696e2046656520506f6f6c20446973747269627574696f6ea02050657263656e74616765206f66206665657320616c6c6f636174656420746f205661756c74732e3852656c6179657252657761726473010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000004c42050657263656e74616765206f66206665657320616c6c6f636174656420746f205374616b65642052656c61796572732e444d61696e7461696e657252657761726473010054556e7369676e65644669786564506f696e743c543e400000000000000000000000000000000004b82050657263656e74616765206f66206665657320616c6c6f636174656420666f7220646576656c6f706d656e742e444e6f6d696e6174696f6e52657761726473010054556e7369676e65644669786564506f696e743c543e40000000000000000000000000000000000445012050657263656e74616765206f6620666565732067656e657261746564206279206e6f6d696e6174656420636f6c6c61746572616c207468617420697320676976656e20746f206e6f6d696e61746f72733853746f7261676556657273696f6e01001c56657273696f6e040004a8204275696c642073746f72616765206174205631202872657175697265732064656661756c742030292e01108477697468647261775f7661756c745f636f6c6c61746572616c5f7265776172647300149c20576974686472617720616c6c207661756c7420636f6c6c61746572616c20726577617264732e0030202320417267756d656e74730074202a20606f726967696e60202d207369676e696e67206163636f756e747877697468647261775f7661756c745f777261707065645f7265776172647300149020576974686472617720616c6c207661756c74207772617070656420726577617264732e0030202320417267756d656e74730074202a20606f726967696e60202d207369676e696e67206163636f756e748c77697468647261775f72656c617965725f636f6c6c61746572616c5f726577617264730014a420576974686472617720616c6c2072656c6179657220636f6c6c61746572616c20726577617264732e0030202320417267756d656e74730074202a20606f726967696e60202d207369676e696e67206163636f756e748077697468647261775f72656c617965725f777261707065645f7265776172647300149820576974686472617720616c6c2072656c61796572207772617070656420726577617264732e0030202320417267756d656e74730074202a20606f726967696e60202d207369676e696e67206163636f756e7401083c57697468647261775772617070656408244163636f756e7449641c5772617070656400485769746864726177436f6c6c61746572616c08244163636f756e74496428436f6c6c61746572616c00042050616c6c657449642050616c6c65744964206d6f642f6665657304fc2054686520666565206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e104841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f770044496e76616c696452657761726444697374003c547279496e746f496e744572726f7200160c536c61010c536c6148205661756c74536c6101010230543a3a4163636f756e7449644c5369676e65644669786564506f696e743c543e00400000000000000000000000000000000004f0204d617070696e672066726f6d206163636f756e7473206f66207661756c74732f72656c617965727320746f20746865697220736c612073636f72652852656c61796572536c6101010230543a3a4163636f756e7449644c5369676e65644669786564506f696e743c543e004000000000000000000000000000000000003c546f74616c4973737565436f756e7401000c753332100000000000384c69666574696d654973737565640100107531323840000000000000000000000000000000000038417665726167654465706f73697401004c5369676e65644669786564506f696e743c543e4000000000000000000000000000000000004c417665726167654465706f736974436f756e7401004c5369676e65644669786564506f696e743c543e4000000000000000000000000000000000003c41766572616765576974686472617701004c5369676e65644669786564506f696e743c543e40000000000000000000000000000000000050417665726167655769746864726177436f756e7401004c5369676e65644669786564506f696e743c543e400000000000000000000000000000000000385661756c74546172676574536c6101004c5369676e65644669786564506f696e743c543e4000000000000000000000000000000000004052656c61796572546172676574536c6101004c5369676e65644669786564506f696e743c543e400000000000000000000000000000000000485661756c7452656465656d4661696c75726501004c5369676e65644669786564506f696e743c543e400000000000000000000000000000000000745661756c744578656375746549737375654d6178536c614368616e676501004c5369676e65644669786564506f696e743c543e400000000000000000000000000000000000605661756c744465706f7369744d6178536c614368616e676501004c5369676e65644669786564506f696e743c543e400000000000000000000000000000000000645661756c7457697468647261774d6178536c614368616e676501004c5369676e65644669786564506f696e743c543e400000000000000000000000000000000000545661756c745375626d6974497373756550726f6f6601004c5369676e65644669786564506f696e743c543e4000000000000000000000000000000000002c5661756c74526566756e6401004c5369676e65644669786564506f696e743c543e4000000000000000000000000000000000004452656c6179657253746f7265426c6f636b01004c5369676e65644669786564506f696e743c543e4000000000000000000000000000000000004852656c6179657254686566745265706f727401004c5369676e65644669786564506f696e743c543e40000000000000000000000000000000000001043c7365745f72656c617965725f736c6108146576656e743052656c617965724576656e741476616c75654c5369676e65644669786564506f696e743c543e24bc205365742074686520736c612064656c746120666f722074686520676976656e2072656c61796572206576656e742e0030202320417267756d656e747300fc202a20606f726967696e60202d20746865206469737061746368206f726967696e206f6620746869732063616c6c20286d757374206265205f526f6f745f2990202a20606576656e7460202d2072656c61796572206576656e7420746f2075706461746558202a206076616c756560202d20736c612064656c746100442023205765696768743a20604f283129600108385570646174655661756c74534c410c244163636f756e744964405369676e65644669786564506f696e74405369676e65644669786564506f696e74004055706461746552656c61796572534c410c244163636f756e744964405369676e65644669786564506f696e74405369676e65644669786564506f696e740000103c547279496e746f496e744572726f72004841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f770050496e76616c6964536c6173686564416d6f756e74001718526566756e640118526566756e640848526566756e644274634475737456616c7565010028577261707065643c543e400000000000000000000000000000000008390120546865206d696e696d756d20616d6f756e74206f6620627463207468617420697320616363657074656420666f7220726566756e6420726571756573747320284e4f54453a20746f6f206c6f7705012076616c75657320636f756c6420726573756c7420696e2074686520626974636f696e20636c69656e742072656a656374696e6720746865207061796d656e742938526566756e64526571756573747301010210483235369c526566756e64526571756573743c543a3a4163636f756e7449642c20577261707065643c543e3e009902000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000435012054686973206d617070696e672070726f7669646573206163636573732066726f6d206120756e69717565206861736820726566756e64496420746f206120526566756e64207374727563742e010438657865637574655f726566756e640c24726566756e645f69641048323536306d65726b6c655f70726f6f661c5665633c75383e187261775f74781c5665633c75383e0001083452657175657374526566756e641c1048323536244163636f756e7449641c57726170706564244163636f756e744964284274634164647265737310483235361c5772617070656404250120726566756e645f69642c206973737565722c20616d6f756e745f776974686f75745f6665652c207661756c742c206274635f616464726573732c2069737375655f69642c206665653445786563757465526566756e64101048323536244163636f756e744964244163636f756e7449641c57726170706564048420726566756e645f69642c206973737565722c207661756c742c20616d6f756e7400184c41726974686d65746963556e646572666c6f77005c4e6f526566756e64466f756e64466f72497373756549640040526566756e6449644e6f74466f756e64003c526566756e64436f6d706c65746564003c547279496e746f496e744572726f720044556e617574686f72697a65645661756c740018284e6f6d696e6174696f6e01284e6f6d696e6174696f6e14444e6f6d696e6174696f6e456e61626c6564010010626f6f6c0400082c2023232053746f72616765c020466c616720696e6469636174696e6720776865746865722074686973206665617475726520697320656e61626c65645c4f70657261746f72556e626f6e64696e67506572696f64010038543a3a426c6f636b4e756d6265721000000000084d01204261736520756e626f6e64696e6720706572696f6420627920776869636820636f6c6c61746572616c207769746864726177616c2072657175657374732066726f6d205661756c74204f70657261746f727330206172652064656c61796564604e6f6d696e61746f72556e626f6e64696e67506572696f64010038543a3a426c6f636b4e756d6265721000000000085101204261736520756e626f6e64696e6720706572696f6420627920776869636820636f6c6c61746572616c207769746864726177616c2072657175657374732066726f6d205661756c74204e6f6d696e61746f727330206172652064656c61796564244f70657261746f727301010230543a3a4163636f756e744964d44f70657261746f723c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20436f6c6c61746572616c3c543e3e00c400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045c204d6170206f66205661756c74204f70657261746f7273284e6f6d696e61746f72730101027028543a3a4163636f756e7449642c20543a3a4163636f756e744964292d014e6f6d696e61746f723c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265722c20436f6c6c61746572616c3c543e2c0a5369676e65644669786564506f696e743c543e3e00c50100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000448204d6170206f66204e6f6d696e61746f7273011c587365745f6e6f6d696e6174696f6e5f656e61626c6564041c656e61626c656410626f6f6c00506f70745f696e5f746f5f6e6f6d696e6174696f6e0004d0204265636f6d6520616e204f70657261746f7220696e20746865205661756c74204e6f6d696e6174696f6e2070726f746f636f6c546f70745f6f75745f6f665f6e6f6d696e6174696f6e0004010120446572656769737465722066726f6d206265696e67204f70657261746f7220696e20746865205661756c74204e6f6d696e6174696f6e2070726f746f636f6c706465706f7369745f6e6f6d696e617465645f636f6c6c61746572616c082c6f70657261746f725f696430543a3a4163636f756e74496418616d6f756e7434436f6c6c61746572616c3c543e0074726571756573745f636f6c6c61746572616c5f7769746864726177616c08305f6f70657261746f725f696430543a3a4163636f756e7449641c5f616d6f756e7434436f6c6c61746572616c3c543e0074657865637574655f636f6c6c61746572616c5f7769746864726177616c042c6f70657261746f725f696430543a3a4163636f756e744964007063616e63656c5f636f6c6c61746572616c5f7769746864726177616c082c6f70657261746f725f696430543a3a4163636f756e74496428726571756573745f6964104832353600012c3c4e6f6d696e6174696f6e4f7074496e04244163636f756e74496400404e6f6d696e6174696f6e4f70744f757404244163636f756e744964006c496e6372656173654e6f6d696e61746564436f6c6c61746572616c0c244163636f756e744964244163636f756e74496428436f6c6c61746572616c006c57697468647261774e6f6d696e61746564436f6c6c61746572616c0c244163636f756e744964244163636f756e74496428436f6c6c61746572616c008c526571756573744f70657261746f72436f6c6c61746572616c5769746864726177616c101048323536244163636f756e7449642c426c6f636b4e756d62657228436f6c6c61746572616c008c457865637574654f70657261746f72436f6c6c61746572616c5769746864726177616c08244163636f756e74496428436f6c6c61746572616c008843616e63656c4f70657261746f72436f6c6c61746572616c5769746864726177616c081048323536244163636f756e7449640090526571756573744e6f6d696e61746f72436f6c6c61746572616c5769746864726177616c141048323536244163636f756e744964244163636f756e7449642c426c6f636b4e756d62657228436f6c6c61746572616c0090457865637574654e6f6d696e61746f72436f6c6c61746572616c5769746864726177616c0c244163636f756e744964244163636f756e74496428436f6c6c61746572616c008c43616e63656c4e6f6d696e61746f72436f6c6c61746572616c5769746864726177616c0c1048323536244163636f756e744964244163636f756e744964003c536c617368436f6c6c61746572616c0c244163636f756e74496428436f6c6c61746572616c2c5661756c7453746174757300005844496e73756666696369656e7446756e64730484204163636f756e742068617320696e73756666696369656e742062616c616e63654841726974686d657469634f766572666c6f77004c41726974686d65746963556e646572666c6f7700545769746864726177616c4e6f74556e626f6e64656400684e6f6d696e61746f724c69717569646174696f6e4661696c656400444e6f6d696e61746f724e6f74466f756e640070546f6f4c6974746c654e6f6d696e61746564436f6c6c61746572616c007c5661756c74416c72656164794f70746564496e546f4e6f6d696e6174696f6e006c5661756c744e6f744f70746564496e546f4e6f6d696e6174696f6e00945661756c744e6f745175616c6966696564546f4f70744f75744f664e6f6d696e6174696f6e00345661756c744e6f74466f756e64003c547279496e746f496e744572726f7200244e6f74415661756c7400645769746864726177616c526571756573744e6f74466f756e64006c5769746864726177616c526571756573744e6f744d6174757265640058496e73756666696369656e74436f6c6c61746572616c00504661696c6564546f4164644e6f6d696e61746f72005c5661756c744e6f6d696e6174696f6e44697361626c656400844465706f73697456696f6c617465734d61784e6f6d696e6174696f6e526174696f004c4e6f4d617475726564436f6c6c61746572616c00704f70657261746f72486173546f6f4d616e794e6f6d696e61746f727300584861734e6f6d696e61746564436f6c6c61746572616c0019104175726100000000001a1c4772616e647061013c4772616e64706146696e616c6974791814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d8204e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e1b041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74","id":"1"} diff --git a/src/parachain/collateral.ts b/src/parachain/collateral.ts index cf5265b46..c4c506c7a 100644 --- a/src/parachain/collateral.ts +++ b/src/parachain/collateral.ts @@ -55,20 +55,20 @@ export class DefaultCollateralAPI extends DefaultTransactionAPI implements Colla async balanceLocked(id: AccountId): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const account = await this.api.query.backing.account.at(head, id); + const account = await this.api.query.collateral.account.at(head, id); return new Big(planckToDOT(account.reserved.toString())); } async balance(id: AccountId): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const account = await this.api.query.backing.account.at(head, id); + const account = await this.api.query.collateral.account.at(head, id); return new Big(planckToDOT(account.free.toString())); } async subscribeToBalance(account: string, callback: (account: string, balance: Big) => void): Promise<() => void> { try { const accountId = this.api.createType("AccountId", account); - const unsubscribe = await this.api.query.backing.account(accountId, (balance) => { + const unsubscribe = await this.api.query.collateral.account(accountId, (balance) => { callback(account, new Big(planckToDOT(balance.free.toString()))); }); return unsubscribe; @@ -83,7 +83,7 @@ export class DefaultCollateralAPI extends DefaultTransactionAPI implements Colla async transfer(address: string, amount: Big): Promise { const amountSmallDenomination = this.api.createType("Balance", dotToPlanck(amount.toString())); - const transferTx = this.api.tx.backing.transfer(address, amountSmallDenomination); - await this.sendLogged(transferTx, this.api.events.backing.Transfer); + const transferTx = this.api.tx.collateral.transfer(address, amountSmallDenomination); + await this.sendLogged(transferTx, this.api.events.collateral.Transfer); } } diff --git a/src/parachain/constants.ts b/src/parachain/constants.ts index 482044368..1b35b57bf 100644 --- a/src/parachain/constants.ts +++ b/src/parachain/constants.ts @@ -46,11 +46,11 @@ export class DefaultConstantsAPI implements ConstantsAPI { constructor(private api: ApiPromise) {} getDotExistentialDeposit(): Balance { - return this.api.consts.backing.existentialDeposit; + return this.api.consts.collateral.existentialDeposit; } getPolkaBtcExistentialDeposit(): Balance { - return this.api.consts.issuing.existentialDeposit; + return this.api.consts.wrapped.existentialDeposit; } getSystemBlockHashCount(): BlockNumber { diff --git a/src/parachain/issue.ts b/src/parachain/issue.ts index e05001a06..e2d8d1c92 100644 --- a/src/parachain/issue.ts +++ b/src/parachain/issue.ts @@ -146,7 +146,7 @@ export class DefaultIssueAPI extends DefaultTransactionAPI implements IssueAPI if (!vaultId) { vaultId = await this.vaultsAPI.selectRandomVaultIssue(amount); } - const amountSat = this.api.createType("Issuing", btcToSat(amount.toString())); + const amountSat = this.api.createType("Wrapped", btcToSat(amount.toString())); const griefingCollateral = await this.getGriefingCollateral(amount); const requestIssueTx = this.api.tx.issue.requestIssue(amountSat, vaultId, dotToPlanck(griefingCollateral.toString()) as string); const result = await this.sendLogged(requestIssueTx, this.api.events.issue.RequestIssue); diff --git a/src/parachain/redeem.ts b/src/parachain/redeem.ts index 21b2594bf..faea2bae0 100644 --- a/src/parachain/redeem.ts +++ b/src/parachain/redeem.ts @@ -195,7 +195,7 @@ export class DefaultRedeemAPI extends DefaultTransactionAPI implements RedeemAPI if (!vaultId) { vaultId = await this.vaultsAPI.selectRandomVaultIssue(amount); } - const amountSat = this.api.createType("Issuing", btcToSat(amount.toString())); + const amountSat = this.api.createType("Wrapped", btcToSat(amount.toString())); const btcAddress = this.api.createType("BtcAddress", decodeBtcAddress(btcAddressEnc, this.btcNetwork)); const requestRedeemTx = this.api.tx.redeem.requestRedeem(amountSat, btcAddress, vaultId); const result = await this.sendLogged(requestRedeemTx, this.api.events.redeem.RequestRedeem); diff --git a/src/parachain/replace.ts b/src/parachain/replace.ts index 2872b5539..6b97d6ba5 100644 --- a/src/parachain/replace.ts +++ b/src/parachain/replace.ts @@ -119,7 +119,7 @@ export class DefaultReplaceAPI extends DefaultTransactionAPI implements ReplaceA } async request(amount: Big): Promise { - const amountSat = this.api.createType("Issuing", btcToSat(amount.toString())); + const amountSat = this.api.createType("Wrapped", btcToSat(amount.toString())); const griefingCollateral = await this.getGriefingCollateral(amount); const requestTx = this.api.tx.replace.requestReplace(amountSat, btcToSat(griefingCollateral.toString())); const result = await this.sendLogged(requestTx, this.api.events.replace.RequestReplace); @@ -131,15 +131,15 @@ export class DefaultReplaceAPI extends DefaultTransactionAPI implements ReplaceA } async withdraw(amount: Big): Promise { - const amountSat = this.api.createType("Issuing", btcToSat(amount.toString())); + const amountSat = this.api.createType("Wrapped", btcToSat(amount.toString())); const requestTx = this.api.tx.replace.withdrawReplace(amountSat); await this.sendLogged(requestTx, this.api.events.replace.WithdrawReplace); } async accept(oldVault: AccountId, amount: Big, collateral: Big, btcAddress: string): Promise { const parsedBtcAddress = this.api.createType("BtcAddress", btcAddress); - const amountSat = this.api.createType("Issuing", btcToSat(amount.toString())); - const collateralPlanck = this.api.createType("Backing", dotToPlanck(collateral.toString())); + const amountSat = this.api.createType("Wrapped", btcToSat(amount.toString())); + const collateralPlanck = this.api.createType("Collateral", dotToPlanck(collateral.toString())); const requestTx = this.api.tx.replace.acceptReplace(oldVault, amountSat, collateralPlanck, parsedBtcAddress); await this.sendLogged(requestTx, this.api.events.replace.AcceptReplace); } diff --git a/src/parachain/staked-relayer.ts b/src/parachain/staked-relayer.ts index 7a4ea3360..8b115ba10 100644 --- a/src/parachain/staked-relayer.ts +++ b/src/parachain/staked-relayer.ts @@ -1,4 +1,4 @@ -import { StakedRelayer, StatusCode } from "../interfaces/default"; +import { StatusCode } from "../interfaces/default"; import { u64, u128 } from "@polkadot/types/primitive"; import { AccountId, BlockNumber, Moment } from "@polkadot/types/interfaces/runtime"; import { ApiPromise } from "@polkadot/api"; @@ -9,7 +9,7 @@ import { Network } from "bitcoinjs-lib"; import { AddressOrPair } from "@polkadot/api/types"; import { VaultsAPI, DefaultVaultsAPI } from "./vaults"; -import { pagedIterator, decodeFixedPointType, satToBTC, planckToDOT, storageKeyToFirstInner } from "../utils"; +import { decodeFixedPointType, satToBTC, planckToDOT, storageKeyToFirstInner } from "../utils"; import { DefaultTransactionAPI, TransactionAPI } from "./transaction"; import { CollateralAPI, DefaultCollateralAPI } from "./collateral"; import { DefaultFeeAPI, FeeAPI } from "./fee"; @@ -24,25 +24,7 @@ export interface StakedRelayerAPI extends TransactionAPI { /** * @returns An array containing tuples of type [stakedRelayerId, backingCollateral] */ - list(): Promise<[AccountId, Big][]>; - /** - * @returns A mapping from the staked relayer AccountId to the backing collateral - */ - map(): Promise>; - /** - * @param perPage Number of staked relayers to iterate through at a time - * @returns An AsyncGenerator to be used as an iterator - */ - getPagedIterator(perPage: number): AsyncGenerator; - /** - * @param stakedRelayerId The ID of the relayer for which to fetch the staked Backing token amount - * @returns The staked Backing token amount, denoted in Planck - */ - getStakedCollateral(stakedRelayerId: AccountId): Promise; - /** - * @returns The total staked Backing token amount, denoted in Planck - */ - getTotalStakedCollateral(): Promise; + list(): Promise; /** * @returns A mapping from vault IDs to their collateralization */ @@ -62,12 +44,12 @@ export interface StakedRelayerAPI extends TransactionAPI { getWrappingFees(stakedRelayerId: AccountId): Promise; /** * @param stakedRelayerId The ID of a staked relayer - * @returns Total rewards in Backing tokens for the given staked relayer + * @returns Total rewards in Collateral tokens for the given staked relayer */ getCollateralFees(stakedRelayerId: AccountId): Promise; /** - * Get the total APY for a staked relayer based on the income in Issuing and Backing tokens - * divided by the locked Backing tokens. + * Get the total APY for a staked relayer based on the income in Wrapped and Collateral tokens + * divided by the locked Collateral tokens. * * @note this does not account for interest compounding * @@ -141,45 +123,16 @@ export class DefaultStakedRelayerAPI extends DefaultTransactionAPI implements St await this.sendLogged(tx, this.api.events.stakedRelayers.VaultTheft); } - async list(): Promise<[AccountId, Big][]> { + async list(): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const stakedRelayersMap = await this.api.query.stakedRelayers.stakes.entriesAt(head); - return stakedRelayersMap.map( - (v) => [storageKeyToFirstInner(v[0]), new Big(planckToDOT(v[1].toString()))] - ); - } - - async map(): Promise> { - const list = await this.list(); - const stakedRelayersMap = new Map(); - list.forEach((stakedRelayer) => - stakedRelayersMap.set(stakedRelayer[0], new Big(planckToDOT(stakedRelayer[1].toString()))) - ); - return stakedRelayersMap; - } - - getPagedIterator(perPage: number): AsyncGenerator { - return pagedIterator(this.api.query.issue.issueRequests, perPage); - } - - async getStakedCollateral(stakedRelayerId: AccountId): Promise { - const head = await this.api.rpc.chain.getFinalizedHead(); - const stake = await this.api.query.stakedRelayers.stakes.at(head, stakedRelayerId); - return new Big(planckToDOT(stake.toString())); - } - - private async getStakedCollateralAmounts(): Promise { - const list = await this.list(); - return list.map(([_, stake]) => stake); - } - - async getTotalStakedCollateral(): Promise { - const stakedCollateralAmounts: Big[] = await this.getStakedCollateralAmounts(); - if (stakedCollateralAmounts.length) { - const sumReducer = (accumulator: Big, currentValue: Big) => accumulator.add(currentValue); - return stakedCollateralAmounts.reduce(sumReducer); - } - return new Big(0); + const stakedRelayersMap = await this.api.query.wrappedRelayerRewards.stake.entriesAt(head); + return stakedRelayersMap + .filter( + (v) => (new Big(v[1].toString()) > new Big(0)) + ) + .map( + (v) => storageKeyToFirstInner(v[0]) + ); } async getMonitoredVaultsCollateralizationRate(): Promise> { @@ -217,13 +170,13 @@ export class DefaultStakedRelayerAPI extends DefaultTransactionAPI implements St async getWrappingFees(stakedRelayerId: AccountId): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const fees = await this.api.query.fee.totalRewardsIssuing.at(head, stakedRelayerId); + const fees = await this.api.query.wrappedRelayerRewards.totalRewards.at(head, stakedRelayerId); return new Big(satToBTC(fees.toString())); } async getCollateralFees(stakedRelayerId: AccountId): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const fees = await this.api.query.fee.totalRewardsBacking.at(head, stakedRelayerId); + const fees = await this.api.query.collateralRelayerRewards.totalRewards.at(head, stakedRelayerId); return new Big(planckToDOT(fees.toString())); } diff --git a/src/parachain/treasury.ts b/src/parachain/treasury.ts index 21216d7a6..997b9068f 100644 --- a/src/parachain/treasury.ts +++ b/src/parachain/treasury.ts @@ -43,19 +43,19 @@ export class DefaultTreasuryAPI extends DefaultTransactionAPI implements Treasur async total(): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const totalBN = this.api.query.issuing.totalIssuance.at(head); + const totalBN = this.api.query.wrapped.totalIssuance.at(head); return new Big(satToBTC(totalBN.toString())); } async balance(id: AccountId): Promise { - const account = await this.api.query.issuing.account(id); + const account = await this.api.query.wrapped.account(id); return new Big(satToBTC(account.free.toString())); } async subscribeToBalance(account: string, callback: (account: string, balance: Big) => void): Promise<() => void> { try { const accountId = this.api.createType("AccountId", account); - const unsubscribe = await this.api.query.issuing.account(accountId, (balance) => { + const unsubscribe = await this.api.query.wrapped.account(accountId, (balance) => { callback(account, new Big(satToBTC(balance.free.toString()))); }); return unsubscribe; @@ -70,7 +70,7 @@ export class DefaultTreasuryAPI extends DefaultTransactionAPI implements Treasur async transfer(destination: string, amount: Big): Promise { const amountSmallDenomination = this.api.createType("Balance", btcToSat(amount.toString())); - const transferTransaction = this.api.tx.issuing.transfer(destination, amountSmallDenomination); - await this.sendLogged(transferTransaction, this.api.events.issuing.Transfer); + const transferTransaction = this.api.tx.wrapped.transfer(destination, amountSmallDenomination); + await this.sendLogged(transferTransaction, this.api.events.wrapped.Transfer); } } diff --git a/src/parachain/vaults.ts b/src/parachain/vaults.ts index 8e35ce037..e19ec44bc 100644 --- a/src/parachain/vaults.ts +++ b/src/parachain/vaults.ts @@ -146,6 +146,14 @@ export interface VaultsAPI extends TransactionAPI { * above the threshold limit */ getRequiredCollateralForVault(vaultId: AccountId): Promise; + /** + * Get the minimum amount of collateral required for the given amount of btc + * with the current threshold and exchange rate + * + * @param amount Amount to issue, denominated in BTC + * @returns The required collateral for issuing, denominated in DOT + */ + getRequiredCollateralForWrapped(amount: Big): Promise; /** * @param vaultId The vault account ID * @returns The amount of PolkaBTC issued by the given vault @@ -289,13 +297,13 @@ export class DefaultVaultsAPI extends DefaultTransactionAPI implements VaultsAPI } async withdrawCollateral(amount: Big): Promise { - const amountAsPlanck = this.api.createType("Backing", dotToPlanck(amount.toString()) as string); + const amountAsPlanck = this.api.createType("Collateral", dotToPlanck(amount.toString()) as string); const tx = this.api.tx.vaultRegistry.withdrawCollateral(amountAsPlanck); await this.sendLogged(tx, this.api.events.vaultRegistry.WithdrawCollateral); } async lockAdditionalCollateral(amount: Big): Promise { - const amountAsPlanck = this.api.createType("Backing", dotToPlanck(amount.toString()) as string); + const amountAsPlanck = this.api.createType("Collateral", dotToPlanck(amount.toString()) as string); const tx = this.api.tx.vaultRegistry.lockAdditionalCollateral(amountAsPlanck); await this.sendLogged(tx, this.api.events.vaultRegistry.LockAdditionalCollateral); } @@ -391,7 +399,7 @@ export class DefaultVaultsAPI extends DefaultTransactionAPI implements VaultsAPI let collateralization = undefined; try { if (newCollateral) { - const newCollateralPlanck = this.api.createType("Backing", dotToPlanck(newCollateral.toString()) as string); + const newCollateralPlanck = this.api.createType("Collateral", dotToPlanck(newCollateral.toString()) as string); collateralization = await this.api.rpc.vaultRegistry.getCollateralizationFromVaultAndCollateral( vaultId, this.wrapCurrency(newCollateralPlanck), @@ -433,6 +441,16 @@ export class DefaultVaultsAPI extends DefaultTransactionAPI implements VaultsAPI } } + async getRequiredCollateralForWrapped(amount: Big): Promise { + try { + const amountSat = this.api.createType("BalanceWrapper", btcToSat(amount.toString())); + const dotWrapper: BalanceWrapper = await this.api.rpc.vaultRegistry.getRequiredCollateralForWrapped(amountSat); + return new Big(planckToDOT(this.unwrapCurrency(dotWrapper).toString())); + } catch (e) { + return Promise.reject((e as Error).message); + } + } + async getIssuedAmount(vaultId: AccountId): Promise { const vault: VaultExt = await this.get(vaultId); return new Big(vault.issued_tokens.toString()); @@ -474,7 +492,7 @@ export class DefaultVaultsAPI extends DefaultTransactionAPI implements VaultsAPI async selectRandomVaultIssue(amount: Big): Promise { try { - const amountSat = this.api.createType("Issuing", btcToSat(amount.toString())); + const amountSat = this.api.createType("Wrapped", btcToSat(amount.toString())); // eslint-disable-next-line max-len const firstVaultWithSufficientCollateral = await this.api.rpc.vaultRegistry.getFirstVaultWithSufficientCollateral( this.wrapCurrency(amountSat) @@ -486,7 +504,7 @@ export class DefaultVaultsAPI extends DefaultTransactionAPI implements VaultsAPI } async selectRandomVaultRedeem(amount: Big): Promise { - const amountSat = this.api.createType("Issuing", btcToSat(amount.toString())); + const amountSat = this.api.createType("Wrapped", btcToSat(amount.toString())); try { const firstVaultWithSufficientTokens = await this.api.rpc.vaultRegistry.getFirstVaultWithSufficientTokens( this.wrapCurrency(amountSat) @@ -557,13 +575,13 @@ export class DefaultVaultsAPI extends DefaultTransactionAPI implements VaultsAPI async getFeesWrapped(vaultId: AccountId): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const feesSatoshi = (await this.api.query.fee.totalRewardsIssuing.at(head, vaultId)).toString(); + const feesSatoshi = (await this.api.query.wrappedVaultRewards.totalRewards.at(head, vaultId)).toString(); return new Big(satToBTC(feesSatoshi)); } async getFeesCollateral(vaultId: AccountId): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const feesPlanck = (await this.api.query.fee.totalRewardsBacking.at(head, vaultId)).toString(); + const feesPlanck = (await this.api.query.collateralVaultRewards.totalRewards.at(head, vaultId)).toString(); return new Big(planckToDOT(feesPlanck)); } diff --git a/test/integration/clients/staging/faucet.test.ts b/test/integration/clients/staging/faucet.test.ts index 98e908c1e..a204ef806 100644 --- a/test/integration/clients/staging/faucet.test.ts +++ b/test/integration/clients/staging/faucet.test.ts @@ -31,9 +31,9 @@ describe("Faucet", function () { it("should get funds from faucet", async () => { const helenAccountId = api.createType("AccountId", helen.address); const expectedAllowance = 10000000000; - const balanceBeforeFunding = (await api.query.backing.account(helenAccountId)) as AccountData; + const balanceBeforeFunding = (await api.query.collateral.account(helenAccountId)) as AccountData; await faucet.fundAccount(helenAccountId); - const balanceAfterFunding = (await api.query.backing.account(helenAccountId)) as AccountData; + const balanceAfterFunding = (await api.query.collateral.account(helenAccountId)) as AccountData; const balanceBeforeFundingBig = new Big(balanceBeforeFunding.free.toString()); const balanceAfterFundingBig = new Big(balanceAfterFunding.free.toString()); assert.isTrue(balanceBeforeFundingBig.add(new Big(expectedAllowance)).eq(balanceAfterFundingBig)); diff --git a/test/integration/external/staging/electrs.test.ts b/test/integration/external/staging/electrs.test.ts index d867fe64f..b99ee545b 100644 --- a/test/integration/external/staging/electrs.test.ts +++ b/test/integration/external/staging/electrs.test.ts @@ -7,7 +7,7 @@ import { createPolkadotAPI } from "../../../../src/factory"; import { defaultParachainEndpoint } from "../../../config"; import { BitcoinCoreClient } from "../../../../src/utils/bitcoin-core-client"; -describe("ElectrsAPI testnet", function () { +describe.skip("ElectrsAPI testnet", function () { this.timeout(10000); // API can be slightly slow const txid = "0af83672b9f80f2ad53218a8f67899ea07d7da4f07a16ba2c954030895a91d9a"; diff --git a/test/integration/parachain/staging/issue.test.ts b/test/integration/parachain/staging/issue.test.ts index edf45e8a1..7fc6b8d46 100644 --- a/test/integration/parachain/staging/issue.test.ts +++ b/test/integration/parachain/staging/issue.test.ts @@ -3,7 +3,7 @@ import { KeyringPair } from "@polkadot/keyring/types"; import { ElectrsAPI, DefaultElectrsAPI } from "../../../../src/external/electrs"; import { DefaultIssueAPI, IssueAPI } from "../../../../src/parachain/issue"; import { createPolkadotAPI } from "../../../../src/factory"; -import { Issuing } from "../../../../src/interfaces/default"; +import { Wrapped } from "../../../../src/interfaces/default"; import { btcToSat, dotToPlanck } from "../../../../src/utils"; import { assert, expect } from "../../../chai"; import { defaultParachainEndpoint } from "../../../config"; diff --git a/test/integration/parachain/staging/staked-relayer.test.ts b/test/integration/parachain/staging/staked-relayer.test.ts index f3c6f4f46..b1e69dd16 100644 --- a/test/integration/parachain/staging/staked-relayer.test.ts +++ b/test/integration/parachain/staging/staked-relayer.test.ts @@ -41,27 +41,6 @@ describe("stakedRelayerAPI", () => { }); describe("request", () => { - it("should compute totalStakedDOTAmount with nonzero sum", async () => { - const mockStakedDOTAmounts: DOT[] = [1, 2, 3].map((x) => numberToDOT(x)); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - sinon.stub(stakedRelayerAPI, "getStakedCollateralAmounts").returns(Promise.resolve(mockStakedDOTAmounts)); - const totalStakedDOTAmount = await stakedRelayerAPI.getTotalStakedCollateral(); - assert.equal(totalStakedDOTAmount.toString(), "6"); - }); - - it("should compute totalStakedDOTAmount with zero sum", async () => { - const mockStakedDOTAmounts: DOT[] = []; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - sinon.stub(stakedRelayerAPI, "getStakedCollateralAmounts").returns(Promise.resolve(mockStakedDOTAmounts)); - const totalStakedDOTAmount = await stakedRelayerAPI.getTotalStakedCollateral(); - assert.equal(totalStakedDOTAmount.toString(), "0"); - }); - - it("should listIncludingIds", async () => { - const relayersMap = await stakedRelayerAPI.map(); - assert.isDefined(relayersMap); - }); - it("should getMonitoredVaultsCollateralizationRate", async () => { const monitoredVaultsCollateralizationRate = await stakedRelayerAPI.getMonitoredVaultsCollateralizationRate(); assert.isDefined(monitoredVaultsCollateralizationRate); @@ -76,16 +55,6 @@ describe("stakedRelayerAPI", () => { const currentStateOfBTCParachain = await stakedRelayerAPI.getCurrentStateOfBTCParachain(); assert.isDefined(currentStateOfBTCParachain); }); - - it("should page listed requests", async () => { - const listingsPerPage = 2; - const requestsIterator = stakedRelayerAPI.getPagedIterator(listingsPerPage); - let curr = await requestsIterator.next(); - while (!curr.done) { - assert.isTrue(curr.value.length <= listingsPerPage); - curr = await requestsIterator.next(); - } - }); }); describe("sla", () => { diff --git a/test/mock/parachain/replace.ts b/test/mock/parachain/replace.ts index 4331ba29e..1609bf41d 100644 --- a/test/mock/parachain/replace.ts +++ b/test/mock/parachain/replace.ts @@ -1,6 +1,6 @@ import { ReplaceAPI } from "../../../src/parachain"; import { BlockNumber } from "@polkadot/types/interfaces"; -import { PolkaBTC, DOT, Backing, Issuing } from "../../../src/interfaces/default"; +import { PolkaBTC, DOT, Collateral, Wrapped } from "../../../src/interfaces/default"; import BN from "bn.js"; import { ReplaceRequestExt } from "../../../src/parachain/replace"; import { AccountId } from "@polkadot/types/interfaces"; diff --git a/test/mock/parachain/staked-relayer.ts b/test/mock/parachain/staked-relayer.ts index 8dfca1b17..62c71bbe0 100644 --- a/test/mock/parachain/staked-relayer.ts +++ b/test/mock/parachain/staked-relayer.ts @@ -1,4 +1,4 @@ -import { Backing, DOT, ErrorCode, StakedRelayer, StatusCode } from "../../../src/interfaces/default"; +import { Collateral, DOT, ErrorCode, StakedRelayer, StatusCode } from "../../../src/interfaces/default"; import { u32, u64, u128, Bytes } from "@polkadot/types/primitive"; import { AccountId, BlockNumber, Moment } from "@polkadot/types/interfaces/runtime"; import BN from "bn.js"; @@ -10,16 +10,7 @@ import { AddressOrPair } from "@polkadot/api/types"; import { MockTransactionAPI } from "../transaction"; export class MockStakedRelayerAPI extends MockTransactionAPI implements StakedRelayerAPI { - list(): Promise<[AccountId, Big][]> { - throw new Error("Method not implemented."); - } - map(): Promise> { - throw new Error("Method not implemented."); - } - getStakedCollateral(stakedRelayerId: AccountId): Promise { - throw new Error("Method not implemented."); - } - getTotalStakedCollateral(): Promise { + list(): Promise { throw new Error("Method not implemented."); } getWrappingFees(stakedRelayerId: AccountId): Promise { diff --git a/test/mock/parachain/vaults.ts b/test/mock/parachain/vaults.ts index ecef01f16..ce9a68d42 100644 --- a/test/mock/parachain/vaults.ts +++ b/test/mock/parachain/vaults.ts @@ -8,6 +8,9 @@ import Big from "big.js"; import { MockTransactionAPI } from "../transaction"; export class MockVaultsAPI extends MockTransactionAPI implements VaultsAPI { + getRequiredCollateralForWrapped(amount: Big): Promise { + throw new Error("Method not implemented."); + } list(): Promise { throw new Error("Method not implemented."); } diff --git a/test/unit/mock/polkabtc-api.test.ts b/test/unit/mock/polkabtc-api.test.ts deleted file mode 100644 index 3cda73fc2..000000000 --- a/test/unit/mock/polkabtc-api.test.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { createPolkabtcAPI } from "../../mock/factory"; -import { PolkaBTCAPI } from "../../../src/polkabtc-api"; -import { assert } from "../../chai"; - -describe.skip("PolkaBTCAPIMock", () => { - let polkaBTC: PolkaBTCAPI; - - before(async () => { - polkaBTC = await createPolkabtcAPI(); - }); - - after(() => { - return polkaBTC.api.disconnect(); - }); - - it("should retrieve mock data from unparameterized methods", async () => { - const issueRequests = await polkaBTC.issue.list(); - assert.equal(issueRequests.length, 2); - const totalStakedDOTAmount = await polkaBTC.stakedRelayer.getTotalStakedCollateral(); - // toNumber() trims BigNumber to an integer - assert.equal(totalStakedDOTAmount.toString(), "16"); - }); - -}); From 414944f601b2c34222b556a8c61c975d5d6e3a61 Mon Sep 17 00:00:00 2001 From: Daniel Savu Date: Wed, 26 May 2021 14:57:52 +0100 Subject: [PATCH 4/4] feat: Compute fees using chain storage --- src/parachain/collateral.ts | 2 +- src/parachain/staked-relayer.ts | 13 ++++++++---- src/parachain/vaults.ts | 21 +++++++++++++------ src/utils/currency.ts | 4 ++++ .../parachain/staging/staked-relayer.test.ts | 8 ------- 5 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/parachain/collateral.ts b/src/parachain/collateral.ts index c4c506c7a..7339a0f20 100644 --- a/src/parachain/collateral.ts +++ b/src/parachain/collateral.ts @@ -49,7 +49,7 @@ export class DefaultCollateralAPI extends DefaultTransactionAPI implements Colla async totalLocked(): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const totalLockedBN = await this.api.query.collateral.totalLocked.at(head); + const totalLockedBN = await this.api.query.collateralCurrency.totalLocked.at(head); return new Big(planckToDOT(totalLockedBN.toString())); } diff --git a/src/parachain/staked-relayer.ts b/src/parachain/staked-relayer.ts index 8b115ba10..43a7bac32 100644 --- a/src/parachain/staked-relayer.ts +++ b/src/parachain/staked-relayer.ts @@ -13,7 +13,7 @@ import { decodeFixedPointType, satToBTC, planckToDOT, storageKeyToFirstInner } f import { DefaultTransactionAPI, TransactionAPI } from "./transaction"; import { CollateralAPI, DefaultCollateralAPI } from "./collateral"; import { DefaultFeeAPI, FeeAPI } from "./fee"; -import { ElectrsAPI, getTxProof } from ".."; +import { computeReward, ElectrsAPI, getTxProof } from ".."; /** * @category PolkaBTC Bridge @@ -137,7 +137,6 @@ export class DefaultStakedRelayerAPI extends DefaultTransactionAPI implements St async getMonitoredVaultsCollateralizationRate(): Promise> { const vaults = await this.vaultsAPI.list(); - const collateralizationRates = await Promise.all( vaults.filter(vault => vault.status.isActive).map>(async (vault) => [ vault.id, @@ -170,13 +169,19 @@ export class DefaultStakedRelayerAPI extends DefaultTransactionAPI implements St async getWrappingFees(stakedRelayerId: AccountId): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const fees = await this.api.query.wrappedRelayerRewards.totalRewards.at(head, stakedRelayerId); + const stake = decodeFixedPointType(await this.api.query.wrappedRelayerRewards.stake.at(head, stakedRelayerId)); + const rewardPerToken = decodeFixedPointType(await this.api.query.wrappedRelayerRewards.rewardPerToken.at(head)); + const rewardTally = decodeFixedPointType(await this.api.query.wrappedRelayerRewards.rewardTally.at(head, stakedRelayerId)); + const fees = computeReward(new Big(stake), new Big(rewardPerToken), new Big(rewardTally)); return new Big(satToBTC(fees.toString())); } async getCollateralFees(stakedRelayerId: AccountId): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const fees = await this.api.query.collateralRelayerRewards.totalRewards.at(head, stakedRelayerId); + const stake = decodeFixedPointType(await this.api.query.collateralRelayerRewards.stake.at(head, stakedRelayerId)); + const rewardPerToken = decodeFixedPointType(await this.api.query.collateralRelayerRewards.rewardPerToken.at(head)); + const rewardTally = decodeFixedPointType(await this.api.query.collateralRelayerRewards.rewardTally.at(head, stakedRelayerId)); + const fees = computeReward(new Big(stake), new Big(rewardPerToken), new Big(rewardTally)); return new Big(planckToDOT(fees.toString())); } diff --git a/src/parachain/vaults.ts b/src/parachain/vaults.ts index e19ec44bc..3fc09323b 100644 --- a/src/parachain/vaults.ts +++ b/src/parachain/vaults.ts @@ -23,6 +23,7 @@ import { satToBTC, dotToPlanck, btcToSat, + computeReward, } from "../utils"; import { CollateralAPI, DefaultCollateralAPI } from "./collateral"; import { DefaultOracleAPI, OracleAPI } from "./oracle"; @@ -74,7 +75,7 @@ export function encodeVault(vault: Vault, network: Network): VaultExt { */ export interface VaultsAPI extends TransactionAPI { /** - * @returns An array containing the vaults + * @returns An array containing the vaults with non-zero backing collateral */ list(): Promise; /** @@ -311,7 +312,9 @@ export class DefaultVaultsAPI extends DefaultTransactionAPI implements VaultsAPI async list(): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); const vaultsMap = await this.api.query.vaultRegistry.vaults.entriesAt(head); - return vaultsMap.map((v) => encodeVault(v[1], this.btcNetwork)); + return vaultsMap + .map((v) => encodeVault(v[1], this.btcNetwork)) + .filter(v => new Big(v.backing_collateral.toString()) > new Big(0)); } // TODO: Finish or remove this function @@ -575,14 +578,20 @@ export class DefaultVaultsAPI extends DefaultTransactionAPI implements VaultsAPI async getFeesWrapped(vaultId: AccountId): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const feesSatoshi = (await this.api.query.wrappedVaultRewards.totalRewards.at(head, vaultId)).toString(); - return new Big(satToBTC(feesSatoshi)); + const stake = decodeFixedPointType(await this.api.query.wrappedVaultRewards.stake.at(head, vaultId)); + const rewardPerToken = decodeFixedPointType(await this.api.query.wrappedVaultRewards.rewardPerToken.at(head)); + const rewardTally = decodeFixedPointType(await this.api.query.wrappedVaultRewards.rewardTally.at(head, vaultId)); + const fees = computeReward(new Big(stake), new Big(rewardPerToken), new Big(rewardTally)); + return new Big(satToBTC(fees.toString())); } async getFeesCollateral(vaultId: AccountId): Promise { const head = await this.api.rpc.chain.getFinalizedHead(); - const feesPlanck = (await this.api.query.collateralVaultRewards.totalRewards.at(head, vaultId)).toString(); - return new Big(planckToDOT(feesPlanck)); + const stake = decodeFixedPointType(await this.api.query.collateralVaultRewards.stake.at(head, vaultId)); + const rewardPerToken = decodeFixedPointType(await this.api.query.collateralVaultRewards.rewardPerToken.at(head)); + const rewardTally = decodeFixedPointType(await this.api.query.collateralVaultRewards.rewardTally.at(head, vaultId)); + const fees = computeReward(new Big(stake), new Big(rewardPerToken), new Big(rewardTally)); + return new Big(planckToDOT(fees.toString())); } async getAPY(vaultId: AccountId): Promise { diff --git a/src/utils/currency.ts b/src/utils/currency.ts index cecf56f07..f275c4f4d 100644 --- a/src/utils/currency.ts +++ b/src/utils/currency.ts @@ -65,3 +65,7 @@ export function dotToPlanck(dot: string): string | undefined { // reject any values that are less than 1 planck return undefined; } + +export function computeReward(stake: Big, rewardPerToken: Big, rewardTally: Big): Big { + return stake.mul(rewardPerToken).sub(rewardTally); +} \ No newline at end of file diff --git a/test/integration/parachain/staging/staked-relayer.test.ts b/test/integration/parachain/staging/staked-relayer.test.ts index b1e69dd16..d1a1548a6 100644 --- a/test/integration/parachain/staging/staked-relayer.test.ts +++ b/test/integration/parachain/staging/staked-relayer.test.ts @@ -1,10 +1,6 @@ import { ApiPromise, Keyring } from "@polkadot/api"; -import { AccountId } from "@polkadot/types/interfaces/runtime"; -import BN from "bn.js"; -import sinon from "sinon"; import { DefaultStakedRelayerAPI, StakedRelayerAPI } from "../../../../src/parachain/staked-relayer"; import { createPolkadotAPI } from "../../../../src/factory"; -import { StakedRelayer, DOT } from "../../../../src/interfaces/default"; import { assert } from "../../../chai"; import { defaultParachainEndpoint } from "../../../config"; import * as bitcoinjs from "bitcoinjs-lib"; @@ -14,10 +10,6 @@ import { TypeRegistry } from "@polkadot/types"; import { DefaultElectrsAPI, ElectrsAPI } from "../../../../src"; describe("stakedRelayerAPI", () => { - function numberToDOT(x: number): DOT { - return new BN(x) as DOT; - } - let api: ApiPromise; let stakedRelayerAPI: StakedRelayerAPI; let keyring: Keyring;