@bitgo-beta/sdk-coin-vet 1.0.1-beta.607 → 1.0.1-beta.609

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FORWARDER_FACTORY_ADDRESS = exports.feePayer = exports.nftRecipients2 = exports.nftRecipients = exports.recipients = exports.invalidRecipients = exports.blockIds = exports.completeSignedSerializedHex3 = exports.senderSignedSerializedHex3 = exports.completeSignedSerializedHex2 = exports.completeSignedSerializedHex = exports.senderSignedSerializedTxHex2 = exports.senderSignedSerializedTxHex = exports.feePayerSig3 = exports.senderSig3 = exports.feePayerSig2 = exports.senderSig2 = exports.feePayerSig = exports.senderSig = exports.addresses = exports.TRANSFER_CLAUSE = exports.INVALID_TRANSACTION = exports.FLUSH_TOKEN_SIGNABLE_PAYLOAD = exports.FLUSH_TOKEN_DATA = exports.FLUSH_TOKEN_TRANSACTION = exports.FORWARDER_ADDRESS_NEW = exports.FORWARDER_ADDRESS = exports.ADDRESS_INITIALIZATION_SIGNABLE_PAYLOAD = exports.ADDRESS_INITIALIZATION_DATA = exports.ADDRESS_INITIALIZATION_TRANSACTION = exports.UNSIGNED_TRANSACTION_4 = exports.UNSIGNED_TRANSACTION_3 = exports.UNSIGNED_TRANSACTION_2 = exports.UNSIGNED_TRANSACTION = exports.VALID_NFT_SIGNABLE_PAYLOAD = exports.VALID_TOKEN_SIGNABLE_PAYLOAD = exports.STAKING_CONTRACT_ADDRESS = exports.STAKING_AUTORENEW = exports.STAKING_LEVEL_ID = exports.CLAIM_REWARDS_TRANSACTION = exports.BURN_NFT_TRANSACTION = exports.EXIT_DELEGATION_TRANSACTION = exports.VALIDATOR_REGISTRATION_TRANSACTION = exports.DELEGATION_TRANSACTION = exports.STAKE_CLAUSE_TRANSACTION = exports.STAKING_TRANSACTION = exports.SPONSORED_NFT_TRANSACTION = exports.SPONSORED_TOKEN_TRANSACTION = exports.SPONSORED_TRANSACTION = exports.AMOUNT = void 0;
4
- exports.VALIDATOR_REGISTRATION_STAKING_PERIOD = exports.VALIDATOR_REGISTRATION_STAKER_CONTRACT = exports.SIGNED_DELEGATE_RAW_EXPECTED_STAKING_CONTRACT = exports.SIGNED_DELEGATE_RAW_EXPECTED_VALIDATOR = exports.SIGNED_DELEGATE_RAW_EXPECTED_TOKEN_ID = exports.SIGNED_DELEGATE_RAW_HEX = exports.VALIDATOR_REGISTRATION_VALIDATOR = exports.DELEGATE_VALIDATOR = exports.STAKING_PERIOD = exports.DELEGATE_TOKEN_ID = exports.VALIDATOR_REGISTRATION_CLAUSE_DATA = exports.DELEGATE_CLAUSE_DATA = exports.VALID_NFT_CONTRACT_DATA = exports.SERIALIZED_SIGNED_FLUSH_TOKEN_TX = exports.SERIALIZED_SIGNED_ADDRESS_INIT_TX = exports.SALT = exports.NFT_CONTRACT_ADDRESS = exports.TOKEN_ADDRESS = exports.FEE_ADDRESS = exports.BASE_ADDRESS = exports.CREATE_FORWARDER_METHOD = exports.FORWARDER_IMPLEMENTATION_ADDRESS = void 0;
3
+ exports.feePayer = exports.nftRecipients2 = exports.nftRecipients = exports.recipients = exports.invalidRecipients = exports.blockIds = exports.completeSignedSerializedHex3 = exports.senderSignedSerializedHex3 = exports.completeSignedSerializedHex2 = exports.completeSignedSerializedHex = exports.senderSignedSerializedTxHex2 = exports.senderSignedSerializedTxHex = exports.feePayerSig3 = exports.senderSig3 = exports.feePayerSig2 = exports.senderSig2 = exports.feePayerSig = exports.senderSig = exports.addresses = exports.TRANSFER_CLAUSE = exports.INVALID_TRANSACTION = exports.FLUSH_TOKEN_SIGNABLE_PAYLOAD = exports.FLUSH_TOKEN_DATA = exports.FLUSH_TOKEN_TRANSACTION = exports.FORWARDER_ADDRESS_NEW = exports.FORWARDER_ADDRESS = exports.ADDRESS_INITIALIZATION_SIGNABLE_PAYLOAD = exports.ADDRESS_INITIALIZATION_DATA = exports.ADDRESS_INITIALIZATION_TRANSACTION = exports.UNSIGNED_TRANSACTION_4 = exports.UNSIGNED_TRANSACTION_3 = exports.UNSIGNED_TRANSACTION_2 = exports.UNSIGNED_TRANSACTION = exports.VALID_NFT_SIGNABLE_PAYLOAD = exports.VALID_TOKEN_SIGNABLE_PAYLOAD = exports.BUILT_IN_STAKER_CONTRACT_ADDRESS = exports.STAKING_CONTRACT_ADDRESS = exports.STAKING_AUTORENEW = exports.STAKING_LEVEL_ID = exports.CLAIM_REWARDS_TRANSACTION = exports.BURN_NFT_TRANSACTION = exports.EXIT_DELEGATION_TRANSACTION = exports.VALIDATOR_REGISTRATION_TRANSACTION = exports.DELEGATION_TRANSACTION = exports.STAKE_CLAUSE_TRANSACTION = exports.STAKING_TRANSACTION = exports.SPONSORED_NFT_TRANSACTION = exports.SPONSORED_TOKEN_TRANSACTION = exports.SPONSORED_TRANSACTION = exports.AMOUNT = void 0;
4
+ exports.VALIDATOR_REGISTRATION_STAKING_PERIOD = exports.VALIDATOR_REGISTRATION_STAKER_CONTRACT = exports.SIGNED_DELEGATE_RAW_EXPECTED_STAKING_CONTRACT = exports.SIGNED_DELEGATE_RAW_EXPECTED_VALIDATOR = exports.SIGNED_DELEGATE_RAW_EXPECTED_TOKEN_ID = exports.SIGNED_DELEGATE_RAW_HEX = exports.VALIDATOR_REGISTRATION_AMOUNT = exports.VALIDATOR_REGISTRATION_VALIDATOR = exports.DELEGATE_VALIDATOR = exports.STAKING_PERIOD = exports.DELEGATE_TOKEN_ID = exports.VALIDATOR_REGISTRATION_CLAUSE_DATA = exports.DELEGATE_CLAUSE_DATA = exports.VALID_NFT_CONTRACT_DATA = exports.SERIALIZED_SIGNED_FLUSH_TOKEN_TX = exports.SERIALIZED_SIGNED_ADDRESS_INIT_TX = exports.SALT = exports.NFT_CONTRACT_ADDRESS = exports.TOKEN_ADDRESS = exports.FEE_ADDRESS = exports.BASE_ADDRESS = exports.CREATE_FORWARDER_METHOD = exports.FORWARDER_IMPLEMENTATION_ADDRESS = exports.FORWARDER_FACTORY_ADDRESS = void 0;
5
5
  exports.AMOUNT = 100000000000000000; // 0.1 VET in base units
6
6
  exports.SPONSORED_TRANSACTION = '0xf8bc2788014e9cad44bade0940e0df94e59f1cea4e0fef511e3d0f4eec44adf19c4cbeec88016345785d8a0000808180825208808302d6b5c101b882ee76129c1259eb0c8a2b3b3e5f2b089cd11068da1c0db32a9e22228db83dd4be5c721858bc813514141fbd5cf641d0972ce47ceb9be61133fa2ebf0ea37c1f290011fdce201f56d639d827035a5ed8bcef42a42f6eb562bc76a6d95c7736cf8cf340122d1e2fb034668dc491d47b7d3bb10724ba2338a6e79df87bce9617fdce9c00';
7
7
  exports.SPONSORED_TOKEN_TRANSACTION = '0xf8fb278801543ac0a0b3aaf940f85ef85c940000000000000000000000000000456e6572677980b844a9059cbb000000000000000000000000e59f1cea4e0fef511e3d0f4eec44adf19c4cbeec000000000000000000000000000000000000000000000000016345785d8a0000818082c93e808307e669c101b8825dc39997717119cec9e65bfc927d1ad6ef31956e4747f95cea49f76f9e66164a737a155a6694f86287bcec043a83c7f9a3169fd3bb57ce617ab3fd4c59da437701277f6455fc041e672082bff003e75520c3167ad61edd98fba7e0ed87eb5323fc47feb3f51bfe2faa31c2174a2f7bb548e9727d7628f15137b4007a26651413fd00';
@@ -9,13 +9,14 @@ exports.SPONSORED_NFT_TRANSACTION = '0xf9011a2788014ead140e77bbc140f87ef87c941ec
9
9
  exports.STAKING_TRANSACTION = '0xf901032788015d55fcf2457e7c40f866f864941856c533ac2d94340aaa8544d35a5c1d4a21dee7880de0b6b3a7640000b844d8da3bbf0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000181808265848083094c53c101b882efcb9ea88e908d1a142db96c1b44dd056ea194f1ad45670c100a8c52348cc7b20387741260ebe7fe9b7594f96693c88662fa60edba5992332728222b0bdd8a30008535368bd901319eb4513d16bebc428dc8454d32a19eeb76372849a6134ebbba79f1eeceea1f6546574b945c05489222cb451f5b0e2901b0c687b750e833aeb800';
10
10
  exports.STAKE_CLAUSE_TRANSACTION = '0xf8ec27880166542f43c17eeb820190f847f845941e02b2953adefec225cf0ec49805b1146a4429c18a021e19e0c9bab2400000a4604f21770000000000000000000000000000000000000000000000000000000000000008818083052ac78088f536788f0c121df3c101b882ac29a0bc2bc003c9dceab58a07a59b66125928a9c4c753f7b71808da86a462b33a35b641aa375dec3312be8dcdf123949ed5344db2f5955cbab7941eeb9e857500529c6566d7f332cbcf5970a697ffe047fa3cbacf02dbbdbe0f21a17bab1b6b173e22ed64241aaac65db1f37e21600e66e9243ccd4d442cb350d3c5dec8537cfa01';
11
11
  exports.DELEGATION_TRANSACTION = '0xf9010327880166f0952a071e2a820190f85ef85c941e02b2953adefec225cf0ec49805b1146a4429c180b84408bbb8240000000000000000000000000000000000000000000000000000000000003d4500000000000000000000000000000021cbe0de65ea10f7658effeea70727154a81808303b46c8088f341b4c6b5ff5294c101b8829f5d674b8b043e95907b544b16a2c399bc04c7ebfcb9fa49956e050c59bbd5a510c57c6c135a3f03b12fe388409216809124a06d3c4ce797b5d97c5cd899d73d01dc4b66e63aade59b67639e44caedd5783a8e4d4f3c224f911acc5f43c387b54d22b2332172363a48e186d3bd52abec67d84e3d9e8c9696b241d29810a4e14e5801';
12
- exports.VALIDATOR_REGISTRATION_TRANSACTION = '0xf8fb2788016754d8d0e8099340f85ef85c9400000000000000000000000000005374616b657280b844c3c4b13800000000000000000000000059b67d37be55997c96ea6f1890f08f825a41203c000000000000000000000000000000000000000000000000000000000000ec40818082b4ae808301bc4ec101b882ad3cef39b277cdb926f50ac04cbf11a68cf4a30b13311605978d57d92e92ee171a8bb734676cad0f7cdcdd935cf78b71b02e2193390ab752b032a6219131bf230119acb7f53ca1cf868a05f5c7b841e7052c8d779f876e6a6a6e5aa3daf0cd82dc6842d5fa276d4abc950b686e3d685261cae290dd20a13223a832e1b88be9ff0500';
12
+ exports.VALIDATOR_REGISTRATION_TRANSACTION = '0xf90106278801690812847d899f40f869f8679400000000000000000000000000005374616b65728b14adf4b7320334b9000000b844c3c4b13800000000000000000000000059b67d37be55997c96ea6f1890f08f825a41203c000000000000000000000000000000000000000000000000000000000000ec408180826b84808303576bc101b8825600996530a8204d10944b52b933e1ce57744793eaaa93922d6b6cfbf53759ce6bd8c55bdafd06ef8c30b9549747008c5d4caad226d712710825d88271164acf00b6519806de49deacbf8079c8fd8698216289946988ea6c1bf86cf73740e1a8b620c75392c2d8cb5b9e608301303435d7174e70f627e37cd59d94644e35468cca01';
13
13
  exports.EXIT_DELEGATION_TRANSACTION = '0xf8db278801640bf461bc7e1840f83df83b941e02b2953adefec225cf0ec49805b1146a4429c180a469e79b7d0000000000000000000000000000000000000000000000000000000000003d2d81808303525f808305f65ac101b8820cb393317793011b0a205973c77761f5c5c8652c21fe0115f527d2e2f2c1b5fc72a048107b263764312e9323f2ace9f30ce0beed873d7ef7f5432943330d2d5000a4a5f6439503f235ac6a5e17b47ac26c9e0c9e3be9dbd4cec3266fea324eb9bf5f806cedca59ff4144deb0ca18c41d9d6d600a86bf3d4e7b930bcec9b04c2e7301';
14
14
  exports.BURN_NFT_TRANSACTION = '0xf8db278801640bfe6c1ee3e640f83df83b941e02b2953adefec225cf0ec49805b1146a4429c180a42e17de780000000000000000000000000000000000000000000000000000000000003d2d81808305548c808304fe38c101b882044933b92e0fc5517d58205b46211a5ad2403103c8c217ce9682ebe2457e374f655fc6be307c7dfd59f0f4eda2aab7e3a1ac9219923086cde52e6405c34de2d801d692df740f95dd4ac6dbae7eb6e91a712a1e456e1a80e3a2f501ea1e6ed12c4308e65a8a98b0142190812d4484f54121bbc95b6048ae09de5946304affbfba1400';
15
15
  exports.CLAIM_REWARDS_TRANSACTION = '0xf8db278801641640d3222ab440f83df83b941e02b2953adefec225cf0ec49805b1146a4429c180a40962ef790000000000000000000000000000000000000000000000000000000000003d2e818083024d5e80830ed95ec101b882bfa94a4f13af900edaae0bf3000f3b2aa35b3f5f6404d61f84921ef5184d0b0175bf4ab3567c80c6479b58bf028dcca9c8ecc76525633fa4efa490486e85ee950120cbcd1b63200604f1369eb5f1394db45cc40302e790ff704893ca7f4861c3062b8c4771a2a583a9e0c7eed2bbd5fddfe7800101b94dec9fb855b7534104735b01';
16
16
  exports.STAKING_LEVEL_ID = 8;
17
17
  exports.STAKING_AUTORENEW = true;
18
18
  exports.STAKING_CONTRACT_ADDRESS = '0x1e02b2953adefec225cf0ec49805b1146a4429c1';
19
+ exports.BUILT_IN_STAKER_CONTRACT_ADDRESS = '0x00000000000000000000000000005374616b6572';
19
20
  exports.VALID_TOKEN_SIGNABLE_PAYLOAD = 'f8762788014ead140e77bbc140f85ef85c940000000000000000000000000000456e6572677980b844a9059cbb000000000000000000000000e59f1cea4e0fef511e3d0f4eec44adf19c4cbeec000000000000000000000000000000000000000000000000016345785d8a000081808252088082faf8c101';
20
21
  exports.VALID_NFT_SIGNABLE_PAYLOAD = 'f8962788014ead140e77bbc140f87ef87c941ec1d168574603ec35b9d229843b7c2b44bcb77080b86423b872dd000000000000000000000000c0716f386a0a78361962d1f64ce2256a2c871bb50000000000000000000000007ca00e3bc8a836026c2917c6c7c6d049e52099dd000000000000000000000000000000000000000000000000000000000001872381808252088082faf8c101';
21
22
  exports.UNSIGNED_TRANSACTION = '0xf4278801536ce9e9fb063840dddc94c52584d1c56e7bddcb6f65d50ff00f71e0ef897a85e8d4a510008081808252088083061c70c0';
@@ -132,10 +133,11 @@ exports.DELEGATE_TOKEN_ID = '15685';
132
133
  exports.STAKING_PERIOD = 259200;
133
134
  exports.DELEGATE_VALIDATOR = '0xae99cb89767a09d53e589a40cb4016974aba4b94';
134
135
  exports.VALIDATOR_REGISTRATION_VALIDATOR = '0x59b67d37be55997c96ea6f1890f08f825a41203c';
136
+ exports.VALIDATOR_REGISTRATION_AMOUNT = '25000000000000000000000000';
135
137
  exports.SIGNED_DELEGATE_RAW_HEX = '0xf8fa278801671187de8af70440f85ef85c941e02b2953adefec225cf0ec49805b1146a4429c180b84408bbb8240000000000000000000000000000000000000000000000000000000000003d2d00000000000000000000000000563ec3cafbbe7e60b04b3190e6eca66579706d818082cb5680820190c101b882313e783169eae670b1210e65f59b7c30cfd6c140c377257413fef378f70549f738a22a172ccc4ac7854ebc9952845fa90f7a676e5e9d9e277724ef3968e32e8a00f05ddf913b2b8fb884dbd5d5133217666ec4a68d077dce1537d270f25caf440e0f11232ecc4a5859ab49b2442cc0b0c0c1488302556e6323eec0498f1a42e17301';
136
138
  exports.SIGNED_DELEGATE_RAW_EXPECTED_TOKEN_ID = '15661';
137
139
  exports.SIGNED_DELEGATE_RAW_EXPECTED_VALIDATOR = '0x00563ec3cafbbe7e60b04b3190e6eca66579706d';
138
140
  exports.SIGNED_DELEGATE_RAW_EXPECTED_STAKING_CONTRACT = '0x1e02b2953adefec225cf0ec49805b1146a4429c1';
139
141
  exports.VALIDATOR_REGISTRATION_STAKER_CONTRACT = '0x00000000000000000000000000005374616b6572';
140
142
  exports.VALIDATOR_REGISTRATION_STAKING_PERIOD = 60480;
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9yZXNvdXJjZXMvdmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFYSxRQUFBLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLHdCQUF3QjtBQUVyRCxRQUFBLHFCQUFxQixHQUNoQyxnWUFBZ1ksQ0FBQztBQUV0WCxRQUFBLDJCQUEyQixHQUN0Qyw4ZkFBOGYsQ0FBQztBQUVwZixRQUFBLHlCQUF5QixHQUNwQyw4akJBQThqQixDQUFDO0FBRXBqQixRQUFBLG1CQUFtQixHQUM5QixnaEJBQWdoQixDQUFDO0FBRXRnQixRQUFBLHdCQUF3QixHQUNuQyxnZUFBZ2UsQ0FBQztBQUV0ZCxRQUFBLHNCQUFzQixHQUNqQyxnaEJBQWdoQixDQUFDO0FBRXRnQixRQUFBLGtDQUFrQyxHQUM3Qyw4ZkFBOGYsQ0FBQztBQUVwZixRQUFBLDJCQUEyQixHQUN0Qyw4YkFBOGIsQ0FBQztBQUVwYixRQUFBLG9CQUFvQixHQUMvQiw4YkFBOGIsQ0FBQztBQUVwYixRQUFBLHlCQUF5QixHQUNwQyw4YkFBOGIsQ0FBQztBQUVwYixRQUFBLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUNyQixRQUFBLGlCQUFpQixHQUFHLElBQUksQ0FBQztBQUN6QixRQUFBLHdCQUF3QixHQUFHLDRDQUE0QyxDQUFDO0FBRXhFLFFBQUEsNEJBQTRCLEdBQ3ZDLGtQQUFrUCxDQUFDO0FBRXhPLFFBQUEsMEJBQTBCLEdBQ3JDLGtUQUFrVCxDQUFDO0FBRXhTLFFBQUEsb0JBQW9CLEdBQy9CLDhHQUE4RyxDQUFDO0FBRXBHLFFBQUEsc0JBQXNCLEdBQ2pDLG9IQUFvSCxDQUFDO0FBRTFHLFFBQUEsc0JBQXNCLEdBQ2pDLG9QQUFvUCxDQUFDO0FBRXZQLDBCQUEwQjtBQUNiLFFBQUEsc0JBQXNCLEdBQ2pDLG9UQUFvVCxDQUFDO0FBRTFTLFFBQUEsa0NBQWtDLEdBQzdDLGtUQUFrVCxDQUFDO0FBRXhT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QUEscUNBQXFDLEdBQUcsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVjaXBpZW50IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5leHBvcnQgY29uc3QgQU1PVU5UID0gMTAwMDAwMDAwMDAwMDAwMDAwOyAvLyAwLjEgVkVUIGluIGJhc2UgdW5pdHNcblxuZXhwb3J0IGNvbnN0IFNQT05TT1JFRF9UUkFOU0FDVElPTiA9XG4gICcweGY4YmMyNzg4MDE0ZTljYWQ0NGJhZGUwOTQwZTBkZjk0ZTU5ZjFjZWE0ZTBmZWY1MTFlM2QwZjRlZWM0NGFkZjE5YzRjYmVlYzg4MDE2MzQ1Nzg1ZDhhMDAwMDgwODE4MDgyNTIwODgwODMwMmQ2YjVjMTAxYjg4MmVlNzYxMjljMTI1OWViMGM4YTJiM2IzZTVmMmIwODljZDExMDY4ZGExYzBkYjMyYTllMjIyMjhkYjgzZGQ0YmU1YzcyMTg1OGJjODEzNTE0MTQxZmJkNWNmNjQxZDA5NzJjZTQ3Y2ViOWJlNjExMzNmYTJlYmYwZWEzN2MxZjI5MDAxMWZkY2UyMDFmNTZkNjM5ZDgyNzAzNWE1ZWQ4YmNlZjQyYTQyZjZlYjU2MmJjNzZhNmQ5NWM3NzM2Y2Y4Y2YzNDAxMjJkMWUyZmIwMzQ2NjhkYzQ5MWQ0N2I3ZDNiYjEwNzI0YmEyMzM4YTZlNzlkZjg3YmNlOTYxN2ZkY2U5YzAwJztcblxuZXhwb3J0IGNvbnN0IFNQT05TT1JFRF9UT0tFTl9UUkFOU0FDVElPTiA9XG4gICcweGY4ZmIyNzg4MDE1NDNhYzBhMGIzYWFmOTQwZjg1ZWY4NWM5NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTZlNjU3MjY3Nzk4MGI4NDRhOTA1OWNiYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGU1OWYxY2VhNGUwZmVmNTExZTNkMGY0ZWVjNDRhZGYxOWM0Y2JlZWMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTYzNDU3ODVkOGEwMDAwODE4MDgyYzkzZTgwODMwN2U2NjljMTAxYjg4MjVkYzM5OTk3NzE3MTE5Y2VjOWU2NWJmYzkyN2QxYWQ2ZWYzMTk1NmU0NzQ3Zjk1Y2VhNDlmNzZmOWU2NjE2NGE3MzdhMTU1YTY2OTRmODYyODdiY2VjMDQzYTgzYzdmOWEzMTY5ZmQzYmI1N2NlNjE3YWIzZmQ0YzU5ZGE0Mzc3MDEyNzdmNjQ1NWZjMDQxZTY3MjA4MmJmZjAwM2U3NTUyMGMzMTY3YWQ2MWVkZDk4ZmJhN2UwZWQ4N2ViNTMyM2ZjNDdmZWIzZjUxYmZlMmZhYTMxYzIxNzRhMmY3YmI1NDhlOTcyN2Q3NjI4ZjE1MTM3YjQwMDdhMjY2NTE0MTNmZDAwJztcblxuZXhwb3J0IGNvbnN0IFNQT05TT1JFRF9ORlRfVFJBTlNBQ1RJT04gPVxuICAnMHhmOTAxMWEyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZjg3ZWY4N2M5NDFlYzFkMTY4NTc0NjAzZWMzNWI5ZDIyOTg0M2I3YzJiNDRiY2I3NzA4MGI4NjQyM2I4NzJkZDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGMwNzE2ZjM4NmEwYTc4MzYxOTYyZDFmNjRjZTIyNTZhMmM4NzFiYjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3Y2EwMGUzYmM4YTgzNjAyNmMyOTE3YzZjN2M2ZDA0OWU1MjA5OWRkMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxODcyMzgxODA4MjUyMDg4MDgyZmFmOGMxMDFiODgyMjEyZDIxMmVmZmVhMDM3NzNmNDIyOGNkMDQ5ZWZlNDJjM2VmZTU0ZjE4Mzc4ZGVmNTJmMGFkMzQ5NjM3MjQ4ZDY3ZDBlZWM2ZmQ5YmM3ZGRjNWFiNGQ5OGYyMmM0ZmM4ZGU0ODVlMjQwM2Y5MGE2OGIyNjEzZTIxNDI0NWMwYTQwMTc1OGM5ZDAwYWRhNDBlYmMzNjg5MGJiZjhjZjFjODQwNzBlMDk1MGRjYmI2Y2FkOTRhNGM5YTRjMGZmZTE2Yzc0ODZjNWI2NzQyMDdjNGQ5MTZmN2VkN2NiNTAxYzczZGFhYWZjNDljZmU3Njg1Y2YxZTBmODA1NGE3ZmE0NjAzMDAnO1xuXG5leHBvcnQgY29uc3QgU1RBS0lOR19UUkFOU0FDVElPTiA9XG4gICcweGY5MDEwMzI3ODgwMTVkNTVmY2YyNDU3ZTdjNDBmODY2Zjg2NDk0MTg1NmM1MzNhYzJkOTQzNDBhYWE4NTQ0ZDM1YTVjMWQ0YTIxZGVlNzg4MGRlMGI2YjNhNzY0MDAwMGI4NDRkOGRhM2JiZjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxODE4MDgyNjU4NDgwODMwOTRjNTNjMTAxYjg4MmVmY2I5ZWE4OGU5MDhkMWExNDJkYjk2YzFiNDRkZDA1NmVhMTk0ZjFhZDQ1NjcwYzEwMGE4YzUyMzQ4Y2M3YjIwMzg3NzQxMjYwZWJlN2ZlOWI3NTk0Zjk2NjkzYzg4NjYyZmE2MGVkYmE1OTkyMzMyNzI4MjIyYjBiZGQ4YTMwMDA4NTM1MzY4YmQ5MDEzMTllYjQ1MTNkMTZiZWJjNDI4ZGM4NDU0ZDMyYTE5ZWViNzYzNzI4NDlhNjEzNGViYmJhNzlmMWVlY2VlYTFmNjU0NjU3NGI5NDVjMDU0ODkyMjJjYjQ1MWY1YjBlMjkwMWIwYzY4N2I3NTBlODMzYWViODAwJztcblxuZXhwb3J0IGNvbnN0IFNUQUtFX0NMQVVTRV9UUkFOU0FDVElPTiA9XG4gICcweGY4ZWMyNzg4MDE2NjU0MmY0M2MxN2VlYjgyMDE5MGY4NDdmODQ1OTQxZTAyYjI5NTNhZGVmZWMyMjVjZjBlYzQ5ODA1YjExNDZhNDQyOWMxOGEwMjFlMTllMGM5YmFiMjQwMDAwMGE0NjA0ZjIxNzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4ODE4MDgzMDUyYWM3ODA4OGY1MzY3ODhmMGMxMjFkZjNjMTAxYjg4MmFjMjlhMGJjMmJjMDAzYzlkY2VhYjU4YTA3YTU5YjY2MTI1OTI4YTljNGM3NTNmN2I3MTgwOGRhODZhNDYyYjMzYTM1YjY0MWFhMzc1ZGVjMzMxMmJlOGRjZGYxMjM5NDllZDUzNDRkYjJmNTk1NWNiYWI3OTQxZWViOWU4NTc1MDA1MjljNjU2NmQ3ZjMzMmNiY2Y1OTcwYTY5N2ZmZTA0N2ZhM2NiYWNmMDJkYmJkYmUwZjIxYTE3YmFiMWI2YjE3M2UyMmVkNjQyNDFhYWFjNjVkYjFmMzdlMjE2MDBlNjZlOTI0M2NjZDRkNDQyY2IzNTBkM2M1ZGVjODUzN2NmYTAxJztcblxuZXhwb3J0IGNvbnN0IERFTEVHQVRJT05fVFJBTlNBQ1RJT04gPVxuICAnMHhmOTAxMDMyNzg4MDE2NmYwOTUyYTA3MWUyYTgyMDE5MGY4NWVmODVjOTQxZTAyYjI5NTNhZGVmZWMyMjVjZjBlYzQ5ODA1YjExNDZhNDQyOWMxODBiODQ0MDhiYmI4MjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzZDQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjFjYmUwZGU2NWVhMTBmNzY1OGVmZmVlYTcwNzI3MTU0YTgxODA4MzAzYjQ2YzgwODhmMzQxYjRjNmI1ZmY1Mjk0YzEwMWI4ODI5ZjVkNjc0YjhiMDQzZTk1OTA3YjU0NGIxNmEyYzM5OWJjMDRjN2ViZmNiOWZhNDk5NTZlMDUwYzU5YmJkNWE1MTBjNTdjNmMxMzVhM2YwM2IxMmZlMzg4NDA5MjE2ODA5MTI0YTA2ZDNjNGNlNzk3YjVkOTdjNWNkODk5ZDczZDAxZGM0YjY2ZTYzYWFkZTU5YjY3NjM5ZTQ0Y2FlZGQ1NzgzYThlNGQ0ZjNjMjI0ZjkxMWFjYzVmNDNjMzg3YjU0ZDIyYjIzMzIxNzIzNjNhNDhlMTg2ZDNiZDUyYWJlYzY3ZDg0ZTNkOWU4Yzk2OTZiMjQxZDI5ODEwYTRlMTRlNTgwMSc7XG5cbmV4cG9ydCBjb25zdCBWQUxJREFUT1JfUkVHSVNUUkFUSU9OX1RSQU5TQUNUSU9OID1cbiAgJzB4ZjhmYjI3ODgwMTY3NTRkOGQwZTgwOTkzNDBmODVlZjg1Yzk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzNzQ2MTZiNjU3MjgwYjg0NGMzYzRiMTM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTliNjdkMzdiZTU1OTk3Yzk2ZWE2ZjE4OTBmMDhmODI1YTQxMjAzYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGVjNDA4MTgwODJiNGFlODA4MzAxYmM0ZWMxMDFiODgyYWQzY2VmMzliMjc3Y2RiOTI2ZjUwYWMwNGNiZjExYTY4Y2Y0YTMwYjEzMzExNjA1OTc4ZDU3ZDkyZTkyZWUxNzFhOGJiNzM0Njc2Y2FkMGY3Y2RjZGQ5MzVjZjc4YjcxYjAyZTIxOTMzOTBhYjc1MmIwMzJhNjIxOTEzMWJmMjMwMTE5YWNiN2Y1M2NhMWNmODY4YTA1ZjVjN2I4NDFlNzA1MmM4ZDc3OWY4NzZlNmE2YTZlNWFhM2RhZjBjZDgyZGM2ODQyZDVmYTI3NmQ0YWJjOTUwYjY4NmUzZDY4NTI2MWNhZTI5MGRkMjBhMTMyMjNhODMyZTFiODhiZTlmZjA1MDAnO1xuXG5leHBvcnQgY29uc3QgRVhJVF9ERUxFR0FUSU9OX1RSQU5TQUNUSU9OID1cbiAgJzB4ZjhkYjI3ODgwMTY0MGJmNDYxYmM3ZTE4NDBmODNkZjgzYjk0MWUwMmIyOTUzYWRlZmVjMjI1Y2YwZWM0OTgwNWIxMTQ2YTQ0MjljMTgwYTQ2OWU3OWI3ZDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNkMmQ4MTgwODMwMzUyNWY4MDgzMDVmNjVhYzEwMWI4ODIwY2IzOTMzMTc3OTMwMTFiMGEyMDU5NzNjNzc3NjFmNWM1Yzg2NTJjMjFmZTAxMTVmNTI3ZDJlMmYyYzFiNWZjNzJhMDQ4MTA3YjI2Mzc2NDMxMmU5MzIzZjJhY2U5ZjMwY2UwYmVlZDg3M2Q3ZWY3ZjU0MzI5NDMzMzBkMmQ1MDAwYTRhNWY2NDM5NTAzZjIzNWFjNmE1ZTE3YjQ3YWMyNmM5ZTBjOWUzYmU5ZGJkNGNlYzMyNjZmZWEzMjRlYjliZjVmODA2Y2VkY2E1OWZmNDE0NGRlYjBjYTE4YzQxZDlkNmQ2MDBhODZiZjNkNGU3YjkzMGJjZWM5YjA0YzJlNzMwMSc7XG5cbmV4cG9ydCBjb25zdCBCVVJOX05GVF9UUkFOU0FDVElPTiA9XG4gICcweGY4ZGIyNzg4MDE2NDBiZmU2YzFlZTNlNjQwZjgzZGY4M2I5NDFlMDJiMjk1M2FkZWZlYzIyNWNmMGVjNDk4MDViMTE0NmE0NDI5YzE4MGE0MmUxN2RlNzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzZDJkODE4MDgzMDU1NDhjODA4MzA0ZmUzOGMxMDFiODgyMDQ0OTMzYjkyZTBmYzU1MTdkNTgyMDViNDYyMTFhNWFkMjQwMzEwM2M4YzIxN2NlOTY4MmViZTI0NTdlMzc0ZjY1NWZjNmJlMzA3YzdkZmQ1OWYwZjRlZGEyYWFiN2UzYTFhYzkyMTk5MjMwODZjZGU1MmU2NDA1YzM0ZGUyZDgwMWQ2OTJkZjc0MGY5NWRkNGFjNmRiYWU3ZWI2ZTkxYTcxMmExZTQ1NmUxYTgwZTNhMmY1MDFlYTFlNmVkMTJjNDMwOGU2NWE4YTk4YjAxNDIxOTA4MTJkNDQ4NGY1NDEyMWJiYzk1YjYwNDhhZTA5ZGU1OTQ2MzA0YWZmYmZiYTE0MDAnO1xuXG5leHBvcnQgY29uc3QgQ0xBSU1fUkVXQVJEU19UUkFOU0FDVElPTiA9XG4gICcweGY4ZGIyNzg4MDE2NDE2NDBkMzIyMmFiNDQwZjgzZGY4M2I5NDFlMDJiMjk1M2FkZWZlYzIyNWNmMGVjNDk4MDViMTE0NmE0NDI5YzE4MGE0MDk2MmVmNzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzZDJlODE4MDgzMDI0ZDVlODA4MzBlZDk1ZWMxMDFiODgyYmZhOTRhNGYxM2FmOTAwZWRhYWUwYmYzMDAwZjNiMmFhMzViM2Y1ZjY0MDRkNjFmODQ5MjFlZjUxODRkMGIwMTc1YmY0YWIzNTY3YzgwYzY0NzliNThiZjAyOGRjY2E5YzhlY2M3NjUyNTYzM2ZhNGVmYTQ5MDQ4NmU4NWVlOTUwMTIwY2JjZDFiNjMyMDA2MDRmMTM2OWViNWYxMzk0ZGI0NWNjNDAzMDJlNzkwZmY3MDQ4OTNjYTdmNDg2MWMzMDYyYjhjNDc3MWEyYTU4M2E5ZTBjN2VlZDJiYmQ1ZmRkZmU3ODAwMTAxYjk0ZGVjOWZiODU1Yjc1MzQxMDQ3MzViMDEnO1xuXG5leHBvcnQgY29uc3QgU1RBS0lOR19MRVZFTF9JRCA9IDg7XG5leHBvcnQgY29uc3QgU1RBS0lOR19BVVRPUkVORVcgPSB0cnVlO1xuZXhwb3J0IGNvbnN0IFNUQUtJTkdfQ09OVFJBQ1RfQUREUkVTUyA9ICcweDFlMDJiMjk1M2FkZWZlYzIyNWNmMGVjNDk4MDViMTE0NmE0NDI5YzEnO1xuXG5leHBvcnQgY29uc3QgVkFMSURfVE9LRU5fU0lHTkFCTEVfUEFZTE9BRCA9XG4gICdmODc2Mjc4ODAxNGVhZDE0MGU3N2JiYzE0MGY4NWVmODVjOTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU2ZTY1NzI2Nzc5ODBiODQ0YTkwNTljYmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlNTlmMWNlYTRlMGZlZjUxMWUzZDBmNGVlYzQ0YWRmMTljNGNiZWVjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2MzQ1Nzg1ZDhhMDAwMDgxODA4MjUyMDg4MDgyZmFmOGMxMDEnO1xuXG5leHBvcnQgY29uc3QgVkFMSURfTkZUX1NJR05BQkxFX1BBWUxPQUQgPVxuICAnZjg5NjI3ODgwMTRlYWQxNDBlNzdiYmMxNDBmODdlZjg3Yzk0MWVjMWQxNjg1NzQ2MDNlYzM1YjlkMjI5ODQzYjdjMmI0NGJjYjc3MDgwYjg2NDIzYjg3MmRkMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYzA3MTZmMzg2YTBhNzgzNjE5NjJkMWY2NGNlMjI1NmEyYzg3MWJiNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdjYTAwZTNiYzhhODM2MDI2YzI5MTdjNmM3YzZkMDQ5ZTUyMDk5ZGQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4NzIzODE4MDgyNTIwODgwODJmYWY4YzEwMSc7XG5cbmV4cG9ydCBjb25zdCBVTlNJR05FRF9UUkFOU0FDVElPTiA9XG4gICcweGY0Mjc4ODAxNTM2Y2U5ZTlmYjA2Mzg0MGRkZGM5NGM1MjU4NGQxYzU2ZTdiZGRjYjZmNjVkNTBmZjAwZjcxZTBlZjg5N2E4NWU4ZDRhNTEwMDA4MDgxODA4MjUyMDg4MDgzMDYxYzcwYzAnO1xuXG5leHBvcnQgY29uc3QgVU5TSUdORURfVFJBTlNBQ1RJT05fMiA9XG4gICcweGY3Mjc4ODAxNGVhZDE0MGU3N2JiYzE0MGUwZGY5NGU1OWYxY2VhNGUwZmVmNTExZTNkMGY0ZWVjNDRhZGYxOWM0Y2JlZWM4ODAxNjM0NTc4NWQ4YTAwMDA4MDgxODA4MjUyMDg4MDgyZmFmOGMxMDEnO1xuXG5leHBvcnQgY29uc3QgVU5TSUdORURfVFJBTlNBQ1RJT05fMyA9XG4gICcweGY4NzYyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZjg1ZWY4NWM5NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTZlNjU3MjY3Nzk4MGI4NDRhOTA1OWNiYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGU1OWYxY2VhNGUwZmVmNTExZTNkMGY0ZWVjNDRhZGYxOWM0Y2JlZWMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTYzNDU3ODVkOGEwMDAwODE4MDgyNTIwODgwODJmYWY4YzEwMSc7XG5cbi8vdW5zaWduZWQgbmZ0IHRyYW5zYWN0aW9uXG5leHBvcnQgY29uc3QgVU5TSUdORURfVFJBTlNBQ1RJT05fNCA9XG4gICcweGY4OTYyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZjg3ZWY4N2M5NDFlYzFkMTY4NTc0NjAzZWMzNWI5ZDIyOTg0M2I3YzJiNDRiY2I3NzA4MGI4NjQyM2I4NzJkZDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdjYTAwZTNiYzhhODM2MDI2YzI5MTdjNmM3YzZkMDQ5ZTUyMDk5ZGQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlNTlmMWNlYTRlMGZlZjUxMWUzZDBmNGVlYzQ0YWRmMTljNGNiZWVjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxODcyMzgxODA4MjUyMDg4MDgyZmFmOGMxMDEnO1xuXG5leHBvcnQgY29uc3QgQUREUkVTU19JTklUSUFMSVpBVElPTl9UUkFOU0FDVElPTiA9XG4gICcweGY4OTUyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZjg3ZWY4N2M5NDY1MzQzZTE4YzM3NmQyZmM4YzNjZjEwY2QxNDZkNjNlMmUwZGM5ZWY4MGI4NjQxM2IyZjc1YzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1YjAwYjVjODA3ZDU2OTYxOTdiNDhkNGFmZmE0MGJiODc2ZGYyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3Yzg3YjlmZmM2ZmQ2YzE2N2MwZTRmYTk0MTg3MjBmM2Q2NTkzNThlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTgxODA4MjUyMDg4MDgyZmFmOGMwJztcblxuZXhwb3J0IGNvbnN0IEFERFJFU1NfSU5JVElBTElaQVRJT05fREFUQSA9XG4gICcweDEzYjJmNzVjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTViMDBiNWM4MDdkNTY5NjE5N2I0OGQ0YWZmYTQwYmI4NzZkZjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdjODdiOWZmYzZmZDZjMTY3YzBlNGZhOTQxODcyMGYzZDY1OTM1OGUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxJztcblxuZXhwb3J0IGNvbnN0IEFERFJFU1NfSU5JVElBTElaQVRJT05fU0lHTkFCTEVfUEFZTE9BRCA9XG4gICdmODk1Mjc4ODAxNGVhZDE0MGU3N2JiYzE0MGY4N2VmODdjOTQ2NTM0M2UxOGMzNzZkMmZjOGMzY2YxMGNkMTQ2ZDYzZTJlMGRjOWVmODBiODY0MTNiMmY3NWMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NWIwMGI1YzgwN2Q1Njk2MTk3YjQ4ZDRhZmZhNDBiYjg3NmRmMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2M4N2I5ZmZjNmZkNmMxNjdjMGU0ZmE5NDE4NzIwZjNkNjU5MzU4ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4MTgwODI1MjA4ODA4MmZhZjhjMCc7XG5cbmV4cG9ydCBjb25zdCBGT1JXQVJERVJfQUREUkVTUyA9ICcweDA0M2ZkZTJmYTBlY2U3N2MyNDYxYTk1NzFmM2IxYjFjNmZhY2ExMjAnO1xuXG5leHBvcnQgY29uc3QgRk9SV0FSREVSX0FERFJFU1NfTkVXID0gJzB4NjA0YTQyODk4Mzg4MDgwZDU2YmM4NWY4MTU5NjVkMWY2NGJlYjFhNic7XG5cbmV4cG9ydCBjb25zdCBGTFVTSF9UT0tFTl9UUkFOU0FDVElPTiA9XG4gICcweGY4NTQyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZjgzZGY4M2I5NDA0M2ZkZTJmYTBlY2U3N2MyNDYxYTk1NzFmM2IxYjFjNmZhY2ExMjA4MGE0M2VmMTMzNjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU2ZTY1NzI2Nzc5ODE4MDgyNTIwODgwODJmYWY4YzAnO1xuXG5leHBvcnQgY29uc3QgRkxVU0hfVE9LRU5fREFUQSA9ICcweDNlZjEzMzY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NmU2NTcyNjc3OSc7XG5cbmV4cG9ydCBjb25zdCBGTFVTSF9UT0tFTl9TSUdOQUJMRV9QQVlMT0FEID1cbiAgJ2Y4NTQyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZjgzZGY4M2I5NDA0M2ZkZTJmYTBlY2U3N2MyNDYxYTk1NzFmM2IxYjFjNmZhY2ExMjA4MGE0M2VmMTMzNjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU2ZTY1NzI2Nzc5ODE4MDgyNTIwODgwODJmYWY4YzAnO1xuXG5leHBvcnQgY29uc3QgSU5WQUxJRF9UUkFOU0FDVElPTiA9XG4gICcweGY4YmMyNzg4MDE0ZWEwNjBiNWI1OTk3ZTQwZTBkZjk0ZTVmNGVlYzQ0YWRmMTljNGNiZWVjODgwMTYzNDU3ODVkOGEwMDAwODA4MTgwODI1MjA4ODA4MzBiZjg0ZmMxMDFiODgyNDE4ZTIxMmE0MGIyOWRhNjg1YTczMTI4MjllOGQxZDM3MDhiNjU0ZjRkZGI0Mzg4YTdhODBmNWFmM2U1NDIzYjQ1NTQ1MTkwMWQ5YjgzN2ZlMTg1MDFlNmVhNWVjN2QzZDI3MTFmMDAwNzNkNTUzYWFiZTQwZTAyNjBlYzhhNmYwMGRhNTU3ZDBhMWFmNjZiODJiNDU3MzI0YmM2ZmM4NmM3ZjAzNjJlNzZjMTViNjQ0MzJlNjZiNmZhNjJmY2EzOGM3ZDIwOGE2MDRkMWE3ZWM1MzU2Yzk1ZmVjN2JjNmYzMzJkMTY3MThhOTFhNTNlMGU5OWUzYTgxYWUzMjA1YWI0MDAnO1xuXG5leHBvcnQgY29uc3QgVFJBTlNGRVJfQ0xBVVNFID0gW1xuICB7XG4gICAgdG86ICcweGU1OWYxY2VhNGUwZmVmNTExZTNkMGY0ZWVjNDRhZGYxOWM0Y2JlZWMnLFxuICAgIHZhbHVlOiAxMDAwMDAwMDAwMDAwLFxuICAgIGRhdGE6ICcweCcsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgYWRkcmVzc2VzID0ge1xuICB2YWxpZEFkZHJlc3NlczogW1xuICAgICcweDdjYTAwZTNiYzhhODM2MDI2YzI5MTdjNmM3YzZkMDQ5ZTUyMDk5ZGQnLFxuICAgICcweGU1OUYxY2VhNGUwRkVmNTExZTNkMGY0RUVjNDRBRGYxOUM0Y2JlRUMnLFxuICAgICcweDdjODdiOWZmYzZmZDZjMTY3YzBlNGZhOTQxODcyMGYzZDY1OTM1OGUnLFxuICAgICcweGMwNzE2ZjM4NmEwYTc4MzYxOTYyZDFmNjRjZTIyNTZhMmM4NzFiYjUnLFxuICBdLFxuICBpbnZhbGlkQWRkcmVzc2VzOiBbXG4gICAgJ3JhbmRvbVN0cmluZycsXG4gICAgJzB4YzQxNzNhODA0NDA2YTM2NWU2OWRmYjI5N2RkZmdzZGN2ZicsXG4gICAgJzVuZTdwaEE0OEpydnBuMzlBdHVwQjhaa0NDQXk4Z0xUZnBHaWhaUHVEcWVuJyxcbiAgXSxcbn07XG5cbmV4cG9ydCBjb25zdCBzZW5kZXJTaWcgPVxuICAnMDYyMDgwY2M3N2RiOWQ1Y2U1ZGI4NGYxY2ZiNTdjOTkwNmM5YmZkY2U3OGU0ZDUzNzU3YmJkM2Q1MzZjNzMxZTFlNWU0MDZhNGU3ODNhNGY2MzQ0NmFhMjhkMjFkYzI3Nzk2YWFlOTBmYWM3OTE1MWMzZDBiM2JhNjhjZGUzNjgwMSc7XG5cbmV4cG9ydCBjb25zdCBmZWVQYXllclNpZyA9XG4gICc0N2FlNzllMjNlZmZkMjMzMjA2MTgwZWNlM2FiM2Q2ZDQ5NjMxMGMwM2M1NWJkMDU2NmE1NGJiN2Q0MjA5NWM5N2E5MGNhOWZmNGNmYjk0ZWM1NzlhN2VjN2Y3OWRlNDgxNGRmYzgxNmQwYTEzMDE4OWMwN2I3NDY5NDU0ODJmYjAwJztcblxuZXhwb3J0IGNvbnN0IHNlbmRlclNpZzIgPVxuICAnOWQwNWU5MGEwMGM1MzhhZmQ2ODY1MmY2M2E0ZTIxNDgxZDFkMDgyZmRiZDRhMzAwYjA0YjU2MWRjNzYxODVhZDI5MmJiNDhkNzA4NDZiZDBmYjhiNTI2NzgyYjlkMmY5NDBkYmNlZTNiYzU1NGJmYjdiNTNlMzYyYmJjYjM5ZDcwMSc7XG5cbmV4cG9ydCBjb25zdCBmZWVQYXllclNpZzIgPVxuICAnNDVkOGFlYzRkMmVkNWY3NGI3ODg2OTVjZWI3NmQxOGRkMzU5NzUwM2JjMDQ2NmQ2Njc0OTNiMmFmZjJjMmIwOTVkMzUyNzg4YTM0NWIyZTNiNDllOWFkMTliYzI4YjBiZGVlNDVkMGNjZTk4Njk2MmU2MWIwZmViZTYwYTI1OTMwMSc7XG5cbmV4cG9ydCBjb25zdCBzZW5kZXJTaWczID1cbiAgJzIxMmQyMTJlZmZlYTAzNzczZjQyMjhjZDA0OWVmZTQyYzNlZmU1NGYxODM3OGRlZjUyZjBhZDM0OTYzNzI0OGQ2N2QwZWVjNmZkOWJjN2RkYzVhYjRkOThmMjJjNGZjOGRlNDg1ZTI0MDNmOTBhNjhiMjYxM2UyMTQyNDVjMGE0MDEnO1xuXG5leHBvcnQgY29uc3QgZmVlUGF5ZXJTaWczID1cbiAgJzc1OGM5ZDAwYWRhNDBlYmMzNjg5MGJiZjhjZjFjODQwNzBlMDk1MGRjYmI2Y2FkOTRhNGM5YTRjMGZmZTE2Yzc0ODZjNWI2NzQyMDdjNGQ5MTZmN2VkN2NiNTAxYzczZGFhYWZjNDljZmU3Njg1Y2YxZTBmODA1NGE3ZmE0NjAzMDAnO1xuXG5leHBvcnQgY29uc3Qgc2VuZGVyU2lnbmVkU2VyaWFsaXplZFR4SGV4ID1cbiAgJzB4ZjcyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZTBkZjk0ZTU5ZjFjZWE0ZTBmZWY1MTFlM2QwZjRlZWM0NGFkZjE5YzRjYmVlYzg4MDE2MzQ1Nzg1ZDhhMDAwMDgwODE4MDgyNTIwODgwODJmYWY4YzEwMSc7XG5cbmV4cG9ydCBjb25zdCBzZW5kZXJTaWduZWRTZXJpYWxpemVkVHhIZXgyID1cbiAgJzB4Zjg3NjI3ODgwMTRlYWQxNDBlNzdiYmMxNDBmODVlZjg1Yzk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NmU2NTcyNjc3OTgwYjg0NGE5MDU5Y2JiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZTU5ZjFjZWE0ZTBmZWY1MTFlM2QwZjRlZWM0NGFkZjE5YzRjYmVlYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNjM0NTc4NWQ4YTAwMDA4MTgwODI1MjA4ODA4MmZhZjhjMTAxJztcblxuZXhwb3J0IGNvbnN0IGNvbXBsZXRlU2lnbmVkU2VyaWFsaXplZEhleCA9XG4gICcweGY4YmIyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZTBkZjk0ZTU5ZjFjZWE0ZTBmZWY1MTFlM2QwZjRlZWM0NGFkZjE5YzRjYmVlYzg4MDE2MzQ1Nzg1ZDhhMDAwMDgwODE4MDgyNTIwODgwODJmYWY4YzEwMWI4ODIwNjIwODBjYzc3ZGI5ZDVjZTVkYjg0ZjFjZmI1N2M5OTA2YzliZmRjZTc4ZTRkNTM3NTdiYmQzZDUzNmM3MzFlMWU1ZTQwNmE0ZTc4M2E0ZjYzNDQ2YWEyOGQyMWRjMjc3OTZhYWU5MGZhYzc5MTUxYzNkMGIzYmE2OGNkZTM2ODAxNDdhZTc5ZTIzZWZmZDIzMzIwNjE4MGVjZTNhYjNkNmQ0OTYzMTBjMDNjNTViZDA1NjZhNTRiYjdkNDIwOTVjOTdhOTBjYTlmZjRjZmI5NGVjNTc5YTdlYzdmNzlkZTQ4MTRkZmM4MTZkMGExMzAxODljMDdiNzQ2OTQ1NDgyZmIwMCc7XG5cbmV4cG9ydCBjb25zdCBjb21wbGV0ZVNpZ25lZFNlcmlhbGl6ZWRIZXgyID1cbiAgJzB4ZjhmYTI3ODgwMTRlYWQxNDBlNzdiYmMxNDBmODVlZjg1Yzk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NmU2NTcyNjc3OTgwYjg0NGE5MDU5Y2JiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZTU5ZjFjZWE0ZTBmZWY1MTFlM2QwZjRlZWM0NGFkZjE5YzRjYmVlYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNjM0NTc4NWQ4YTAwMDA4MTgwODI1MjA4ODA4MmZhZjhjMTAxYjg4MjlkMDVlOTBhMDBjNTM4YWZkNjg2NTJmNjNhNGUyMTQ4MWQxZDA4MmZkYmQ0YTMwMGIwNGI1NjFkYzc2MTg1YWQyOTJiYjQ4ZDcwODQ2YmQwZmI4YjUyNjc4MmI5ZDJmOTQwZGJjZWUzYmM1NTRiZmI3YjUzZTM2MmJiY2IzOWQ3MDE0NWQ4YWVjNGQyZWQ1Zjc0Yjc4ODY5NWNlYjc2ZDE4ZGQzNTk3NTAzYmMwNDY2ZDY2NzQ5M2IyYWZmMmMyYjA5NWQzNTI3ODhhMzQ1YjJlM2I0OWU5YWQxOWJjMjhiMGJkZWU0NWQwY2NlOTg2OTYyZTYxYjBmZWJlNjBhMjU5MzAxJztcblxuZXhwb3J0IGNvbnN0IHNlbmRlclNpZ25lZFNlcmlhbGl6ZWRIZXgzID1cbiAgJzB4Zjg5NjI3ODgwMTRlYWQxNDBlNzdiYmMxNDBmODdlZjg3Yzk0MWVjMWQxNjg1NzQ2MDNlYzM1YjlkMjI5ODQzYjdjMmI0NGJjYjc3MDgwYjg2NDIzYjg3MmRkMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYzA3MTZmMzg2YTBhNzgzNjE5NjJkMWY2NGNlMjI1NmEyYzg3MWJiNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdjYTAwZTNiYzhhODM2MDI2YzI5MTdjNmM3YzZkMDQ5ZTUyMDk5ZGQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4NzIzODE4MDgyNTIwODgwODJmYWY4YzEwMSc7XG5cbmV4cG9ydCBjb25zdCBjb21wbGV0ZVNpZ25lZFNlcmlhbGl6ZWRIZXgzID1cbiAgJzB4ZjkwMTFhMjc4ODAxNGVhZDE0MGU3N2JiYzE0MGY4N2VmODdjOTQxZWMxZDE2ODU3NDYwM2VjMzViOWQyMjk4NDNiN2MyYjQ0YmNiNzcwODBiODY0MjNiODcyZGQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBjMDcxNmYzODZhMGE3ODM2MTk2MmQxZjY0Y2UyMjU2YTJjODcxYmI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2NhMDBlM2JjOGE4MzYwMjZjMjkxN2M2YzdjNmQwNDllNTIwOTlkZDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTg3MjM4MTgwODI1MjA4ODA4MmZhZjhjMTAxYjg4MjIxMmQyMTJlZmZlYTAzNzczZjQyMjhjZDA0OWVmZTQyYzNlZmU1NGYxODM3OGRlZjUyZjBhZDM0OTYzNzI0OGQ2N2QwZWVjNmZkOWJjN2RkYzVhYjRkOThmMjJjNGZjOGRlNDg1ZTI0MDNmOTBhNjhiMjYxM2UyMTQyNDVjMGE0MDE3NThjOWQwMGFkYTQwZWJjMzY4OTBiYmY4Y2YxYzg0MDcwZTA5NTBkY2JiNmNhZDk0YTRjOWE0YzBmZmUxNmM3NDg2YzViNjc0MjA3YzRkOTE2ZjdlZDdjYjUwMWM3M2RhYWFmYzQ5Y2ZlNzY4NWNmMWUwZjgwNTRhN2ZhNDYwMzAwJztcblxuZXhwb3J0IGNvbnN0IGJsb2NrSWRzOiB7IHZhbGlkQmxvY2tJZHM6IHN0cmluZ1tdOyBpbnZhbGlkQmxvY2tJZHM6IHN0cmluZ1tdIH0gPSB7XG4gIHZhbGlkQmxvY2tJZHM6IFtcbiAgICAnMHgwMTRmMTJlZDk0YzRiNDc3MGY3ZjlhNzNlMmFhNDFhOWRmYmFjMDJhNDlmMzZlYzA1YWNmZGJhOGM3MjQ0ZmYwJyxcbiAgICAnMHgwMTRmMTMwZDAwYTJmZTA2ZDQ3MWEzNWU3ZjJjZDE4ZDI1YmRlZmU1MzcwYzA3YTJhZDY4YzBhZTM4NTJhZDg2JyxcbiAgXSxcbiAgaW52YWxpZEJsb2NrSWRzOiBbXG4gICAgJ3JhbmRvbVN0cmluZycsXG4gICAgJzB4YzQxNzNhODA0NDA2YTM2NWU2OWRmYjI5N2RkZmdzZGN2ZicsXG4gICAgJzVuZTdwaEE0OEpydnBuMzlBdHVwQjhaa0NDQXk4Z0xUZnBHaWhaUHVEcWVuJyxcbiAgXSxcbn07XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkUmVjaXBpZW50czogUmVjaXBpZW50W10gPSBbXG4gIHtcbiAgICBhZGRyZXNzOiBhZGRyZXNzZXMuaW52YWxpZEFkZHJlc3Nlc1swXSxcbiAgICBhbW91bnQ6IEFNT1VOVC50b1N0cmluZygpLFxuICB9LFxuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLFxuICAgIGFtb3VudDogJy05MTkxOTEnLFxuICB9LFxuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLFxuICAgIGFtb3VudDogJ2ludmFsaWRBbW91bnQnLFxuICB9LFxuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLFxuICAgIGFtb3VudDogQU1PVU5ULnRvU3RyaW5nKCksXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgcmVjaXBpZW50czogUmVjaXBpZW50W10gPSBbXG4gIHtcbiAgICBhZGRyZXNzOiBhZGRyZXNzZXMudmFsaWRBZGRyZXNzZXNbMV0udG9Mb3dlckNhc2UoKSxcbiAgICBhbW91bnQ6IEFNT1VOVC50b1N0cmluZygpLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IG5mdFJlY2lwaWVudHM6IFJlY2lwaWVudFtdID0gW1xuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzFdLnRvTG93ZXJDYXNlKCksXG4gICAgYW1vdW50OiAnMScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgbmZ0UmVjaXBpZW50czI6IFJlY2lwaWVudFtdID0gW1xuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLnRvTG93ZXJDYXNlKCksXG4gICAgYW1vdW50OiAnMScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgZmVlUGF5ZXIgPSB7XG4gIGFkZHJlc3M6ICcweGRjOWZlZjBiODRhMGNjZjNmMWJkNGI4NGU0MTc0M2UzZTA1MWEwODMnLFxufTtcblxuLy8gVXNlIHRoZSBoYXJkY29kZWQgdmFsdWVzIGZyb20gdGhlIFZldFRlc3RuZXQgY2xhc3MgaW4gbmV0d29ya3MudHNcbmV4cG9ydCBjb25zdCBGT1JXQVJERVJfRkFDVE9SWV9BRERSRVNTID0gJzB4NjUzNDNlMThjMzc2ZDJmYzhjM2NmMTBjZDE0NmQ2M2UyZTBkYzllZic7XG5cbmV4cG9ydCBjb25zdCBGT1JXQVJERVJfSU1QTEVNRU5UQVRJT05fQUREUkVTUyA9ICcweDYyZGUzNGM4N2Y4NDdkMzg1YWYwN2Y2YzI1ZGJkOTdiMWZmZmVmYzAnO1xuXG5leHBvcnQgY29uc3QgQ1JFQVRFX0ZPUldBUkRFUl9NRVRIT0QgPSAnMHgxM2IyZjc1Yyc7XG5cbmV4cG9ydCBjb25zdCBCQVNFX0FERFJFU1MgPSAnMHg1NWIwMGI1YzgwN2Q1Njk2MTk3YjQ4ZDRhZmZhNDBiYjg3NmRmMjQwJztcblxuZXhwb3J0IGNvbnN0IEZFRV9BRERSRVNTID0gJzB4N2M4N2I5ZmZjNmZkNmMxNjdjMGU0ZmE5NDE4NzIwZjNkNjU5MzU4ZSc7XG5cbmV4cG9ydCBjb25zdCBUT0tFTl9BRERSRVNTID0gJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NmU2NTcyNjc3OSc7XG5cbmV4cG9ydCBjb25zdCBORlRfQ09OVFJBQ1RfQUREUkVTUyA9ICcweDg4N2Q5MTAyZjAwMDNmMTcyNGQ4ZmQ1ZDRmZTk1YTExNTcyZmNkNzcnO1xuXG5leHBvcnQgY29uc3QgU0FMVCA9ICcweDEnO1xuXG5leHBvcnQgY29uc3QgU0VSSUFMSVpFRF9TSUdORURfQUREUkVTU19JTklUX1RYID1cbiAgJzB4ZjhkOTI3ODgwMTUyYzkwNjUzMTc4NGJkNDBmODdlZjg3Yzk0NjUzNDNlMThjMzc2ZDJmYzhjM2NmMTBjZDE0NmQ2M2UyZTBkYzllZjgwYjg2NDEzYjJmNzVjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTViMDBiNWM4MDdkNTY5NjE5N2I0OGQ0YWZmYTQwYmI4NzZkZjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdjODdiOWZmYzZmZDZjMTY3YzBlNGZhOTQxODcyMGYzZDY1OTM1OGUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0ODE4MDgzMDI0OWYwODA4MmZhZjhjMGI4NDE5NjU3NzA0NmVjYmJhNjQwZDhmNTkxNGE3YjRjYjk5ZjlhYjQ3OTM1OWJjZGE1MzY4Y2M5YWZkZmI1NTk5NGEwNDY5YWYwNzFjZGViNGNhYzkyY2FhZjBiZTdmZWRmNDkyZDIyMTVmODNiYWEwMGQ0YWJhYzMxY2Y0OGVlZGRkOTAwJztcblxuZXhwb3J0IGNvbnN0IFNFUklBTElaRURfU0lHTkVEX0ZMVVNIX1RPS0VOX1RYID1cbiAgJzB4Zjg5ODI3ODgwMTUyY2Y0NTU1MzZlYmM3NDBmODNkZjgzYjk0NjA0YTQyODk4Mzg4MDgwZDU2YmM4NWY4MTU5NjVkMWY2NGJlYjFhNjgwYTQzZWYxMzM2NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTZlNjU3MjY3Nzk4MTgwODMwMjQ5ZjA4MDgyZmFmOWMwYjg0MWI1MjI1YTBkNWM2M2ZkNGNlZWUyZmVmZTk0NzU5ZDIwZTM3YzI5ZWJjZDE1ZmMwM2ViNjk5ZDRhZjViYjIxMGMyNTg1ODNmOWU4ZTI2ZTg3Mjc1MWUyNTVjMmYwZmU5ZDQ0ZDUyY2U2NWI2Yjc2MDQwNDc2ZTI4NTA3NGE0YjU5MDEnO1xuXG5leHBvcnQgY29uc3QgVkFMSURfTkZUX0NPTlRSQUNUX0RBVEEgPVxuICAnMHgyM2I4NzJkZDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdjYTAwZTNiYzhhODM2MDI2YzI5MTdjNmM3YzZkMDQ5ZTUyMDk5ZGQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlNTlmMWNlYTRlMGZlZjUxMWUzZDBmNGVlYzQ0YWRmMTljNGNiZWVjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRkMic7XG5cbmV4cG9ydCBjb25zdCBERUxFR0FURV9DTEFVU0VfREFUQSA9XG4gICcweDA4YmJiODI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM2Q0NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGFlOTljYjg5NzY3YTA5ZDUzZTU4OWE0MGNiNDAxNjk3NGFiYTRiOTQnO1xuZXhwb3J0IGNvbnN0IFZBTElEQVRPUl9SRUdJU1RSQVRJT05fQ0xBVVNFX0RBVEEgPVxuICAnMHhjM2M0YjEzODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU5YjY3ZDM3YmU1NTk5N2M5NmVhNmYxODkwZjA4ZjgyNWE0MTIwM2MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNmNDgwJztcbmV4cG9ydCBjb25zdCBERUxFR0FURV9UT0tFTl9JRCA9ICcxNTY4NSc7XG5leHBvcnQgY29uc3QgU1RBS0lOR19QRVJJT0QgPSAyNTkyMDA7XG5leHBvcnQgY29uc3QgREVMRUdBVEVfVkFMSURBVE9SID0gJzB4YWU5OWNiODk3NjdhMDlkNTNlNTg5YTQwY2I0MDE2OTc0YWJhNGI5NCc7XG5leHBvcnQgY29uc3QgVkFMSURBVE9SX1JFR0lTVFJBVElPTl9WQUxJREFUT1IgPSAnMHg1OWI2N2QzN2JlNTU5OTdjOTZlYTZmMTg5MGYwOGY4MjVhNDEyMDNjJztcblxuZXhwb3J0IGNvbnN0IFNJR05FRF9ERUxFR0FURV9SQVdfSEVYID1cbiAgJzB4ZjhmYTI3ODgwMTY3MTE4N2RlOGFmNzA0NDBmODVlZjg1Yzk0MWUwMmIyOTUzYWRlZmVjMjI1Y2YwZWM0OTgwNWIxMTQ2YTQ0MjljMTgwYjg0NDA4YmJiODI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM2QyZDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTYzZWMzY2FmYmJlN2U2MGIwNGIzMTkwZTZlY2E2NjU3OTcwNmQ4MTgwODJjYjU2ODA4MjAxOTBjMTAxYjg4MjMxM2U3ODMxNjllYWU2NzBiMTIxMGU2NWY1OWI3YzMwY2ZkNmMxNDBjMzc3MjU3NDEzZmVmMzc4ZjcwNTQ5ZjczOGEyMmExNzJjY2M0YWM3ODU0ZWJjOTk1Mjg0NWZhOTBmN2E2NzZlNWU5ZDllMjc3NzI0ZWYzOTY4ZTMyZThhMDBmMDVkZGY5MTNiMmI4ZmI4ODRkYmQ1ZDUxMzMyMTc2NjZlYzRhNjhkMDc3ZGNlMTUzN2QyNzBmMjVjYWY0NDBlMGYxMTIzMmVjYzRhNTg1OWFiNDliMjQ0MmNjMGIwYzBjMTQ4ODMwMjU1NmU2MzIzZWVjMDQ5OGYxYTQyZTE3MzAxJztcbmV4cG9ydCBjb25zdCBTSUdORURfREVMRUdBVEVfUkFXX0VYUEVDVEVEX1RPS0VOX0lEID0gJzE1NjYxJztcbmV4cG9ydCBjb25zdCBTSUdORURfREVMRUdBVEVfUkFXX0VYUEVDVEVEX1ZBTElEQVRPUiA9ICcweDAwNTYzZWMzY2FmYmJlN2U2MGIwNGIzMTkwZTZlY2E2NjU3OTcwNmQnO1xuZXhwb3J0IGNvbnN0IFNJR05FRF9ERUxFR0FURV9SQVdfRVhQRUNURURfU1RBS0lOR19DT05UUkFDVCA9ICcweDFlMDJiMjk1M2FkZWZlYzIyNWNmMGVjNDk4MDViMTE0NmE0NDI5YzEnO1xuZXhwb3J0IGNvbnN0IFZBTElEQVRPUl9SRUdJU1RSQVRJT05fU1RBS0VSX0NPTlRSQUNUID0gJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzNzQ2MTZiNjU3Mic7XG5leHBvcnQgY29uc3QgVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLSU5HX1BFUklPRCA9IDYwNDgwO1xuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9yZXNvdXJjZXMvdmV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFYSxRQUFBLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLHdCQUF3QjtBQUVyRCxRQUFBLHFCQUFxQixHQUNoQyxnWUFBZ1ksQ0FBQztBQUV0WCxRQUFBLDJCQUEyQixHQUN0Qyw4ZkFBOGYsQ0FBQztBQUVwZixRQUFBLHlCQUF5QixHQUNwQyw4akJBQThqQixDQUFDO0FBRXBqQixRQUFBLG1CQUFtQixHQUM5QixnaEJBQWdoQixDQUFDO0FBRXRnQixRQUFBLHdCQUF3QixHQUNuQyxnZUFBZ2UsQ0FBQztBQUV0ZCxRQUFBLHNCQUFzQixHQUNqQyxnaEJBQWdoQixDQUFDO0FBRXRnQixRQUFBLGtDQUFrQyxHQUM3QyxzaEJBQXNoQixDQUFDO0FBRTVnQixRQUFBLDJCQUEyQixHQUN0Qyw4YkFBOGIsQ0FBQztBQUVwYixRQUFBLG9CQUFvQixHQUMvQiw4YkFBOGIsQ0FBQztBQUVwYixRQUFBLHlCQUF5QixHQUNwQyw4YkFBOGIsQ0FBQztBQUVwYixRQUFBLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUNyQixRQUFBLGlCQUFpQixHQUFHLElBQUksQ0FBQztBQUN6QixRQUFBLHdCQUF3QixHQUFHLDRDQUE0QyxDQUFDO0FBQ3hFLFFBQUEsZ0NBQWdDLEdBQUcsNENBQTRDLENBQUM7QUFFaEYsUUFBQSw0QkFBNEIsR0FDdkMsa1BBQWtQLENBQUM7QUFFeE8sUUFBQSwwQkFBMEIsR0FDckMsa1RBQWtULENBQUM7QUFFeFMsUUFBQSxvQkFBb0IsR0FDL0IsOEdBQThHLENBQUM7QUFFcEcsUUFBQSxzQkFBc0IsR0FDakMsb0hBQW9ILENBQUM7QUFFMUcsUUFBQSxzQkFBc0IsR0FDakMsb1BBQW9QLENBQUM7QUFFdlAsMEJBQTBCO0FBQ2IsUUFBQSxzQkFBc0IsR0FDakMsb1RBQW9ULENBQUM7QUFF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LFFBQUEsNkNBQTZDLEdBQUcsNENBQTRDLENBQUM7QUFDN0YsUUFBQSxzQ0FBc0MsR0FBRyw0Q0FBNEMsQ0FBQztBQUN0RixRQUFBLHFDQUFxQyxHQUFHLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlY2lwaWVudCB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZXhwb3J0IGNvbnN0IEFNT1VOVCA9IDEwMDAwMDAwMDAwMDAwMDAwMDsgLy8gMC4xIFZFVCBpbiBiYXNlIHVuaXRzXG5cbmV4cG9ydCBjb25zdCBTUE9OU09SRURfVFJBTlNBQ1RJT04gPVxuICAnMHhmOGJjMjc4ODAxNGU5Y2FkNDRiYWRlMDk0MGUwZGY5NGU1OWYxY2VhNGUwZmVmNTExZTNkMGY0ZWVjNDRhZGYxOWM0Y2JlZWM4ODAxNjM0NTc4NWQ4YTAwMDA4MDgxODA4MjUyMDg4MDgzMDJkNmI1YzEwMWI4ODJlZTc2MTI5YzEyNTllYjBjOGEyYjNiM2U1ZjJiMDg5Y2QxMTA2OGRhMWMwZGIzMmE5ZTIyMjI4ZGI4M2RkNGJlNWM3MjE4NThiYzgxMzUxNDE0MWZiZDVjZjY0MWQwOTcyY2U0N2NlYjliZTYxMTMzZmEyZWJmMGVhMzdjMWYyOTAwMTFmZGNlMjAxZjU2ZDYzOWQ4MjcwMzVhNWVkOGJjZWY0MmE0MmY2ZWI1NjJiYzc2YTZkOTVjNzczNmNmOGNmMzQwMTIyZDFlMmZiMDM0NjY4ZGM0OTFkNDdiN2QzYmIxMDcyNGJhMjMzOGE2ZTc5ZGY4N2JjZTk2MTdmZGNlOWMwMCc7XG5cbmV4cG9ydCBjb25zdCBTUE9OU09SRURfVE9LRU5fVFJBTlNBQ1RJT04gPVxuICAnMHhmOGZiMjc4ODAxNTQzYWMwYTBiM2FhZjk0MGY4NWVmODVjOTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU2ZTY1NzI2Nzc5ODBiODQ0YTkwNTljYmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlNTlmMWNlYTRlMGZlZjUxMWUzZDBmNGVlYzQ0YWRmMTljNGNiZWVjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2MzQ1Nzg1ZDhhMDAwMDgxODA4MmM5M2U4MDgzMDdlNjY5YzEwMWI4ODI1ZGMzOTk5NzcxNzExOWNlYzllNjViZmM5MjdkMWFkNmVmMzE5NTZlNDc0N2Y5NWNlYTQ5Zjc2ZjllNjYxNjRhNzM3YTE1NWE2Njk0Zjg2Mjg3YmNlYzA0M2E4M2M3ZjlhMzE2OWZkM2JiNTdjZTYxN2FiM2ZkNGM1OWRhNDM3NzAxMjc3ZjY0NTVmYzA0MWU2NzIwODJiZmYwMDNlNzU1MjBjMzE2N2FkNjFlZGQ5OGZiYTdlMGVkODdlYjUzMjNmYzQ3ZmViM2Y1MWJmZTJmYWEzMWMyMTc0YTJmN2JiNTQ4ZTk3MjdkNzYyOGYxNTEzN2I0MDA3YTI2NjUxNDEzZmQwMCc7XG5cbmV4cG9ydCBjb25zdCBTUE9OU09SRURfTkZUX1RSQU5TQUNUSU9OID1cbiAgJzB4ZjkwMTFhMjc4ODAxNGVhZDE0MGU3N2JiYzE0MGY4N2VmODdjOTQxZWMxZDE2ODU3NDYwM2VjMzViOWQyMjk4NDNiN2MyYjQ0YmNiNzcwODBiODY0MjNiODcyZGQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBjMDcxNmYzODZhMGE3ODM2MTk2MmQxZjY0Y2UyMjU2YTJjODcxYmI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2NhMDBlM2JjOGE4MzYwMjZjMjkxN2M2YzdjNmQwNDllNTIwOTlkZDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTg3MjM4MTgwODI1MjA4ODA4MmZhZjhjMTAxYjg4MjIxMmQyMTJlZmZlYTAzNzczZjQyMjhjZDA0OWVmZTQyYzNlZmU1NGYxODM3OGRlZjUyZjBhZDM0OTYzNzI0OGQ2N2QwZWVjNmZkOWJjN2RkYzVhYjRkOThmMjJjNGZjOGRlNDg1ZTI0MDNmOTBhNjhiMjYxM2UyMTQyNDVjMGE0MDE3NThjOWQwMGFkYTQwZWJjMzY4OTBiYmY4Y2YxYzg0MDcwZTA5NTBkY2JiNmNhZDk0YTRjOWE0YzBmZmUxNmM3NDg2YzViNjc0MjA3YzRkOTE2ZjdlZDdjYjUwMWM3M2RhYWFmYzQ5Y2ZlNzY4NWNmMWUwZjgwNTRhN2ZhNDYwMzAwJztcblxuZXhwb3J0IGNvbnN0IFNUQUtJTkdfVFJBTlNBQ1RJT04gPVxuICAnMHhmOTAxMDMyNzg4MDE1ZDU1ZmNmMjQ1N2U3YzQwZjg2NmY4NjQ5NDE4NTZjNTMzYWMyZDk0MzQwYWFhODU0NGQzNWE1YzFkNGEyMWRlZTc4ODBkZTBiNmIzYTc2NDAwMDBiODQ0ZDhkYTNiYmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTgxODA4MjY1ODQ4MDgzMDk0YzUzYzEwMWI4ODJlZmNiOWVhODhlOTA4ZDFhMTQyZGI5NmMxYjQ0ZGQwNTZlYTE5NGYxYWQ0NTY3MGMxMDBhOGM1MjM0OGNjN2IyMDM4Nzc0MTI2MGViZTdmZTliNzU5NGY5NjY5M2M4ODY2MmZhNjBlZGJhNTk5MjMzMjcyODIyMmIwYmRkOGEzMDAwODUzNTM2OGJkOTAxMzE5ZWI0NTEzZDE2YmViYzQyOGRjODQ1NGQzMmExOWVlYjc2MzcyODQ5YTYxMzRlYmJiYTc5ZjFlZWNlZWExZjY1NDY1NzRiOTQ1YzA1NDg5MjIyY2I0NTFmNWIwZTI5MDFiMGM2ODdiNzUwZTgzM2FlYjgwMCc7XG5cbmV4cG9ydCBjb25zdCBTVEFLRV9DTEFVU0VfVFJBTlNBQ1RJT04gPVxuICAnMHhmOGVjMjc4ODAxNjY1NDJmNDNjMTdlZWI4MjAxOTBmODQ3Zjg0NTk0MWUwMmIyOTUzYWRlZmVjMjI1Y2YwZWM0OTgwNWIxMTQ2YTQ0MjljMThhMDIxZTE5ZTBjOWJhYjI0MDAwMDBhNDYwNGYyMTc3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODgxODA4MzA1MmFjNzgwODhmNTM2Nzg4ZjBjMTIxZGYzYzEwMWI4ODJhYzI5YTBiYzJiYzAwM2M5ZGNlYWI1OGEwN2E1OWI2NjEyNTkyOGE5YzRjNzUzZjdiNzE4MDhkYTg2YTQ2MmIzM2EzNWI2NDFhYTM3NWRlYzMzMTJiZThkY2RmMTIzOTQ5ZWQ1MzQ0ZGIyZjU5NTVjYmFiNzk0MWVlYjllODU3NTAwNTI5YzY1NjZkN2YzMzJjYmNmNTk3MGE2OTdmZmUwNDdmYTNjYmFjZjAyZGJiZGJlMGYyMWExN2JhYjFiNmIxNzNlMjJlZDY0MjQxYWFhYzY1ZGIxZjM3ZTIxNjAwZTY2ZTkyNDNjY2Q0ZDQ0MmNiMzUwZDNjNWRlYzg1MzdjZmEwMSc7XG5cbmV4cG9ydCBjb25zdCBERUxFR0FUSU9OX1RSQU5TQUNUSU9OID1cbiAgJzB4ZjkwMTAzMjc4ODAxNjZmMDk1MmEwNzFlMmE4MjAxOTBmODVlZjg1Yzk0MWUwMmIyOTUzYWRlZmVjMjI1Y2YwZWM0OTgwNWIxMTQ2YTQ0MjljMTgwYjg0NDA4YmJiODI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM2Q0NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxY2JlMGRlNjVlYTEwZjc2NThlZmZlZWE3MDcyNzE1NGE4MTgwODMwM2I0NmM4MDg4ZjM0MWI0YzZiNWZmNTI5NGMxMDFiODgyOWY1ZDY3NGI4YjA0M2U5NTkwN2I1NDRiMTZhMmMzOTliYzA0YzdlYmZjYjlmYTQ5OTU2ZTA1MGM1OWJiZDVhNTEwYzU3YzZjMTM1YTNmMDNiMTJmZTM4ODQwOTIxNjgwOTEyNGEwNmQzYzRjZTc5N2I1ZDk3YzVjZDg5OWQ3M2QwMWRjNGI2NmU2M2FhZGU1OWI2NzYzOWU0NGNhZWRkNTc4M2E4ZTRkNGYzYzIyNGY5MTFhY2M1ZjQzYzM4N2I1NGQyMmIyMzMyMTcyMzYzYTQ4ZTE4NmQzYmQ1MmFiZWM2N2Q4NGUzZDllOGM5Njk2YjI0MWQyOTgxMGE0ZTE0ZTU4MDEnO1xuXG5leHBvcnQgY29uc3QgVkFMSURBVE9SX1JFR0lTVFJBVElPTl9UUkFOU0FDVElPTiA9XG4gICcweGY5MDEwNjI3ODgwMTY5MDgxMjg0N2Q4OTlmNDBmODY5Zjg2Nzk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzNzQ2MTZiNjU3MjhiMTRhZGY0YjczMjAzMzRiOTAwMDAwMGI4NDRjM2M0YjEzODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU5YjY3ZDM3YmU1NTk5N2M5NmVhNmYxODkwZjA4ZjgyNWE0MTIwM2MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlYzQwODE4MDgyNmI4NDgwODMwMzU3NmJjMTAxYjg4MjU2MDA5OTY1MzBhODIwNGQxMDk0NGI1MmI5MzNlMWNlNTc3NDQ3OTNlYWFhOTM5MjJkNmI2Y2ZiZjUzNzU5Y2U2YmQ4YzU1YmRhZmQwNmVmOGMzMGI5NTQ5NzQ3MDA4YzVkNGNhYWQyMjZkNzEyNzEwODI1ZDg4MjcxMTY0YWNmMDBiNjUxOTgwNmRlNDlkZWFjYmY4MDc5YzhmZDg2OTgyMTYyODk5NDY5ODhlYTZjMWJmODZjZjczNzQwZTFhOGI2MjBjNzUzOTJjMmQ4Y2I1YjllNjA4MzAxMzAzNDM1ZDcxNzRlNzBmNjI3ZTM3Y2Q1OWQ5NDY0NGUzNTQ2OGNjYTAxJztcblxuZXhwb3J0IGNvbnN0IEVYSVRfREVMRUdBVElPTl9UUkFOU0FDVElPTiA9XG4gICcweGY4ZGIyNzg4MDE2NDBiZjQ2MWJjN2UxODQwZjgzZGY4M2I5NDFlMDJiMjk1M2FkZWZlYzIyNWNmMGVjNDk4MDViMTE0NmE0NDI5YzE4MGE0NjllNzliN2QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzZDJkODE4MDgzMDM1MjVmODA4MzA1ZjY1YWMxMDFiODgyMGNiMzkzMzE3NzkzMDExYjBhMjA1OTczYzc3NzYxZjVjNWM4NjUyYzIxZmUwMTE1ZjUyN2QyZTJmMmMxYjVmYzcyYTA0ODEwN2IyNjM3NjQzMTJlOTMyM2YyYWNlOWYzMGNlMGJlZWQ4NzNkN2VmN2Y1NDMyOTQzMzMwZDJkNTAwMGE0YTVmNjQzOTUwM2YyMzVhYzZhNWUxN2I0N2FjMjZjOWUwYzllM2JlOWRiZDRjZWMzMjY2ZmVhMzI0ZWI5YmY1ZjgwNmNlZGNhNTlmZjQxNDRkZWIwY2ExOGM0MWQ5ZDZkNjAwYTg2YmYzZDRlN2I5MzBiY2VjOWIwNGMyZTczMDEnO1xuXG5leHBvcnQgY29uc3QgQlVSTl9ORlRfVFJBTlNBQ1RJT04gPVxuICAnMHhmOGRiMjc4ODAxNjQwYmZlNmMxZWUzZTY0MGY4M2RmODNiOTQxZTAyYjI5NTNhZGVmZWMyMjVjZjBlYzQ5ODA1YjExNDZhNDQyOWMxODBhNDJlMTdkZTc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM2QyZDgxODA4MzA1NTQ4YzgwODMwNGZlMzhjMTAxYjg4MjA0NDkzM2I5MmUwZmM1NTE3ZDU4MjA1YjQ2MjExYTVhZDI0MDMxMDNjOGMyMTdjZTk2ODJlYmUyNDU3ZTM3NGY2NTVmYzZiZTMwN2M3ZGZkNTlmMGY0ZWRhMmFhYjdlM2ExYWM5MjE5OTIzMDg2Y2RlNTJlNjQwNWMzNGRlMmQ4MDFkNjkyZGY3NDBmOTVkZDRhYzZkYmFlN2ViNmU5MWE3MTJhMWU0NTZlMWE4MGUzYTJmNTAxZWExZTZlZDEyYzQzMDhlNjVhOGE5OGIwMTQyMTkwODEyZDQ0ODRmNTQxMjFiYmM5NWI2MDQ4YWUwOWRlNTk0NjMwNGFmZmJmYmExNDAwJztcblxuZXhwb3J0IGNvbnN0IENMQUlNX1JFV0FSRFNfVFJBTlNBQ1RJT04gPVxuICAnMHhmOGRiMjc4ODAxNjQxNjQwZDMyMjJhYjQ0MGY4M2RmODNiOTQxZTAyYjI5NTNhZGVmZWMyMjVjZjBlYzQ5ODA1YjExNDZhNDQyOWMxODBhNDA5NjJlZjc5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM2QyZTgxODA4MzAyNGQ1ZTgwODMwZWQ5NWVjMTAxYjg4MmJmYTk0YTRmMTNhZjkwMGVkYWFlMGJmMzAwMGYzYjJhYTM1YjNmNWY2NDA0ZDYxZjg0OTIxZWY1MTg0ZDBiMDE3NWJmNGFiMzU2N2M4MGM2NDc5YjU4YmYwMjhkY2NhOWM4ZWNjNzY1MjU2MzNmYTRlZmE0OTA0ODZlODVlZTk1MDEyMGNiY2QxYjYzMjAwNjA0ZjEzNjllYjVmMTM5NGRiNDVjYzQwMzAyZTc5MGZmNzA0ODkzY2E3ZjQ4NjFjMzA2MmI4YzQ3NzFhMmE1ODNhOWUwYzdlZWQyYmJkNWZkZGZlNzgwMDEwMWI5NGRlYzlmYjg1NWI3NTM0MTA0NzM1YjAxJztcblxuZXhwb3J0IGNvbnN0IFNUQUtJTkdfTEVWRUxfSUQgPSA4O1xuZXhwb3J0IGNvbnN0IFNUQUtJTkdfQVVUT1JFTkVXID0gdHJ1ZTtcbmV4cG9ydCBjb25zdCBTVEFLSU5HX0NPTlRSQUNUX0FERFJFU1MgPSAnMHgxZTAyYjI5NTNhZGVmZWMyMjVjZjBlYzQ5ODA1YjExNDZhNDQyOWMxJztcbmV4cG9ydCBjb25zdCBCVUlMVF9JTl9TVEFLRVJfQ09OVFJBQ1RfQUREUkVTUyA9ICcweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Mzc0NjE2YjY1NzInO1xuXG5leHBvcnQgY29uc3QgVkFMSURfVE9LRU5fU0lHTkFCTEVfUEFZTE9BRCA9XG4gICdmODc2Mjc4ODAxNGVhZDE0MGU3N2JiYzE0MGY4NWVmODVjOTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU2ZTY1NzI2Nzc5ODBiODQ0YTkwNTljYmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlNTlmMWNlYTRlMGZlZjUxMWUzZDBmNGVlYzQ0YWRmMTljNGNiZWVjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2MzQ1Nzg1ZDhhMDAwMDgxODA4MjUyMDg4MDgyZmFmOGMxMDEnO1xuXG5leHBvcnQgY29uc3QgVkFMSURfTkZUX1NJR05BQkxFX1BBWUxPQUQgPVxuICAnZjg5NjI3ODgwMTRlYWQxNDBlNzdiYmMxNDBmODdlZjg3Yzk0MWVjMWQxNjg1NzQ2MDNlYzM1YjlkMjI5ODQzYjdjMmI0NGJjYjc3MDgwYjg2NDIzYjg3MmRkMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYzA3MTZmMzg2YTBhNzgzNjE5NjJkMWY2NGNlMjI1NmEyYzg3MWJiNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdjYTAwZTNiYzhhODM2MDI2YzI5MTdjNmM3YzZkMDQ5ZTUyMDk5ZGQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4NzIzODE4MDgyNTIwODgwODJmYWY4YzEwMSc7XG5cbmV4cG9ydCBjb25zdCBVTlNJR05FRF9UUkFOU0FDVElPTiA9XG4gICcweGY0Mjc4ODAxNTM2Y2U5ZTlmYjA2Mzg0MGRkZGM5NGM1MjU4NGQxYzU2ZTdiZGRjYjZmNjVkNTBmZjAwZjcxZTBlZjg5N2E4NWU4ZDRhNTEwMDA4MDgxODA4MjUyMDg4MDgzMDYxYzcwYzAnO1xuXG5leHBvcnQgY29uc3QgVU5TSUdORURfVFJBTlNBQ1RJT05fMiA9XG4gICcweGY3Mjc4ODAxNGVhZDE0MGU3N2JiYzE0MGUwZGY5NGU1OWYxY2VhNGUwZmVmNTExZTNkMGY0ZWVjNDRhZGYxOWM0Y2JlZWM4ODAxNjM0NTc4NWQ4YTAwMDA4MDgxODA4MjUyMDg4MDgyZmFmOGMxMDEnO1xuXG5leHBvcnQgY29uc3QgVU5TSUdORURfVFJBTlNBQ1RJT05fMyA9XG4gICcweGY4NzYyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZjg1ZWY4NWM5NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTZlNjU3MjY3Nzk4MGI4NDRhOTA1OWNiYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGU1OWYxY2VhNGUwZmVmNTExZTNkMGY0ZWVjNDRhZGYxOWM0Y2JlZWMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTYzNDU3ODVkOGEwMDAwODE4MDgyNTIwODgwODJmYWY4YzEwMSc7XG5cbi8vdW5zaWduZWQgbmZ0IHRyYW5zYWN0aW9uXG5leHBvcnQgY29uc3QgVU5TSUdORURfVFJBTlNBQ1RJT05fNCA9XG4gICcweGY4OTYyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZjg3ZWY4N2M5NDFlYzFkMTY4NTc0NjAzZWMzNWI5ZDIyOTg0M2I3YzJiNDRiY2I3NzA4MGI4NjQyM2I4NzJkZDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdjYTAwZTNiYzhhODM2MDI2YzI5MTdjNmM3YzZkMDQ5ZTUyMDk5ZGQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlNTlmMWNlYTRlMGZlZjUxMWUzZDBmNGVlYzQ0YWRmMTljNGNiZWVjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxODcyMzgxODA4MjUyMDg4MDgyZmFmOGMxMDEnO1xuXG5leHBvcnQgY29uc3QgQUREUkVTU19JTklUSUFMSVpBVElPTl9UUkFOU0FDVElPTiA9XG4gICcweGY4OTUyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZjg3ZWY4N2M5NDY1MzQzZTE4YzM3NmQyZmM4YzNjZjEwY2QxNDZkNjNlMmUwZGM5ZWY4MGI4NjQxM2IyZjc1YzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1YjAwYjVjODA3ZDU2OTYxOTdiNDhkNGFmZmE0MGJiODc2ZGYyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3Yzg3YjlmZmM2ZmQ2YzE2N2MwZTRmYTk0MTg3MjBmM2Q2NTkzNThlMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTgxODA4MjUyMDg4MDgyZmFmOGMwJztcblxuZXhwb3J0IGNvbnN0IEFERFJFU1NfSU5JVElBTElaQVRJT05fREFUQSA9XG4gICcweDEzYjJmNzVjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTViMDBiNWM4MDdkNTY5NjE5N2I0OGQ0YWZmYTQwYmI4NzZkZjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdjODdiOWZmYzZmZDZjMTY3YzBlNGZhOTQxODcyMGYzZDY1OTM1OGUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxJztcblxuZXhwb3J0IGNvbnN0IEFERFJFU1NfSU5JVElBTElaQVRJT05fU0lHTkFCTEVfUEFZTE9BRCA9XG4gICdmODk1Mjc4ODAxNGVhZDE0MGU3N2JiYzE0MGY4N2VmODdjOTQ2NTM0M2UxOGMzNzZkMmZjOGMzY2YxMGNkMTQ2ZDYzZTJlMGRjOWVmODBiODY0MTNiMmY3NWMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NWIwMGI1YzgwN2Q1Njk2MTk3YjQ4ZDRhZmZhNDBiYjg3NmRmMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2M4N2I5ZmZjNmZkNmMxNjdjMGU0ZmE5NDE4NzIwZjNkNjU5MzU4ZTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4MTgwODI1MjA4ODA4MmZhZjhjMCc7XG5cbmV4cG9ydCBjb25zdCBGT1JXQVJERVJfQUREUkVTUyA9ICcweDA0M2ZkZTJmYTBlY2U3N2MyNDYxYTk1NzFmM2IxYjFjNmZhY2ExMjAnO1xuXG5leHBvcnQgY29uc3QgRk9SV0FSREVSX0FERFJFU1NfTkVXID0gJzB4NjA0YTQyODk4Mzg4MDgwZDU2YmM4NWY4MTU5NjVkMWY2NGJlYjFhNic7XG5cbmV4cG9ydCBjb25zdCBGTFVTSF9UT0tFTl9UUkFOU0FDVElPTiA9XG4gICcweGY4NTQyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZjgzZGY4M2I5NDA0M2ZkZTJmYTBlY2U3N2MyNDYxYTk1NzFmM2IxYjFjNmZhY2ExMjA4MGE0M2VmMTMzNjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU2ZTY1NzI2Nzc5ODE4MDgyNTIwODgwODJmYWY4YzAnO1xuXG5leHBvcnQgY29uc3QgRkxVU0hfVE9LRU5fREFUQSA9ICcweDNlZjEzMzY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NmU2NTcyNjc3OSc7XG5cbmV4cG9ydCBjb25zdCBGTFVTSF9UT0tFTl9TSUdOQUJMRV9QQVlMT0FEID1cbiAgJ2Y4NTQyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZjgzZGY4M2I5NDA0M2ZkZTJmYTBlY2U3N2MyNDYxYTk1NzFmM2IxYjFjNmZhY2ExMjA4MGE0M2VmMTMzNjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU2ZTY1NzI2Nzc5ODE4MDgyNTIwODgwODJmYWY4YzAnO1xuXG5leHBvcnQgY29uc3QgSU5WQUxJRF9UUkFOU0FDVElPTiA9XG4gICcweGY4YmMyNzg4MDE0ZWEwNjBiNWI1OTk3ZTQwZTBkZjk0ZTVmNGVlYzQ0YWRmMTljNGNiZWVjODgwMTYzNDU3ODVkOGEwMDAwODA4MTgwODI1MjA4ODA4MzBiZjg0ZmMxMDFiODgyNDE4ZTIxMmE0MGIyOWRhNjg1YTczMTI4MjllOGQxZDM3MDhiNjU0ZjRkZGI0Mzg4YTdhODBmNWFmM2U1NDIzYjQ1NTQ1MTkwMWQ5YjgzN2ZlMTg1MDFlNmVhNWVjN2QzZDI3MTFmMDAwNzNkNTUzYWFiZTQwZTAyNjBlYzhhNmYwMGRhNTU3ZDBhMWFmNjZiODJiNDU3MzI0YmM2ZmM4NmM3ZjAzNjJlNzZjMTViNjQ0MzJlNjZiNmZhNjJmY2EzOGM3ZDIwOGE2MDRkMWE3ZWM1MzU2Yzk1ZmVjN2JjNmYzMzJkMTY3MThhOTFhNTNlMGU5OWUzYTgxYWUzMjA1YWI0MDAnO1xuXG5leHBvcnQgY29uc3QgVFJBTlNGRVJfQ0xBVVNFID0gW1xuICB7XG4gICAgdG86ICcweGU1OWYxY2VhNGUwZmVmNTExZTNkMGY0ZWVjNDRhZGYxOWM0Y2JlZWMnLFxuICAgIHZhbHVlOiAxMDAwMDAwMDAwMDAwLFxuICAgIGRhdGE6ICcweCcsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgYWRkcmVzc2VzID0ge1xuICB2YWxpZEFkZHJlc3NlczogW1xuICAgICcweDdjYTAwZTNiYzhhODM2MDI2YzI5MTdjNmM3YzZkMDQ5ZTUyMDk5ZGQnLFxuICAgICcweGU1OUYxY2VhNGUwRkVmNTExZTNkMGY0RUVjNDRBRGYxOUM0Y2JlRUMnLFxuICAgICcweDdjODdiOWZmYzZmZDZjMTY3YzBlNGZhOTQxODcyMGYzZDY1OTM1OGUnLFxuICAgICcweGMwNzE2ZjM4NmEwYTc4MzYxOTYyZDFmNjRjZTIyNTZhMmM4NzFiYjUnLFxuICBdLFxuICBpbnZhbGlkQWRkcmVzc2VzOiBbXG4gICAgJ3JhbmRvbVN0cmluZycsXG4gICAgJzB4YzQxNzNhODA0NDA2YTM2NWU2OWRmYjI5N2RkZmdzZGN2ZicsXG4gICAgJzVuZTdwaEE0OEpydnBuMzlBdHVwQjhaa0NDQXk4Z0xUZnBHaWhaUHVEcWVuJyxcbiAgXSxcbn07XG5cbmV4cG9ydCBjb25zdCBzZW5kZXJTaWcgPVxuICAnMDYyMDgwY2M3N2RiOWQ1Y2U1ZGI4NGYxY2ZiNTdjOTkwNmM5YmZkY2U3OGU0ZDUzNzU3YmJkM2Q1MzZjNzMxZTFlNWU0MDZhNGU3ODNhNGY2MzQ0NmFhMjhkMjFkYzI3Nzk2YWFlOTBmYWM3OTE1MWMzZDBiM2JhNjhjZGUzNjgwMSc7XG5cbmV4cG9ydCBjb25zdCBmZWVQYXllclNpZyA9XG4gICc0N2FlNzllMjNlZmZkMjMzMjA2MTgwZWNlM2FiM2Q2ZDQ5NjMxMGMwM2M1NWJkMDU2NmE1NGJiN2Q0MjA5NWM5N2E5MGNhOWZmNGNmYjk0ZWM1NzlhN2VjN2Y3OWRlNDgxNGRmYzgxNmQwYTEzMDE4OWMwN2I3NDY5NDU0ODJmYjAwJztcblxuZXhwb3J0IGNvbnN0IHNlbmRlclNpZzIgPVxuICAnOWQwNWU5MGEwMGM1MzhhZmQ2ODY1MmY2M2E0ZTIxNDgxZDFkMDgyZmRiZDRhMzAwYjA0YjU2MWRjNzYxODVhZDI5MmJiNDhkNzA4NDZiZDBmYjhiNTI2NzgyYjlkMmY5NDBkYmNlZTNiYzU1NGJmYjdiNTNlMzYyYmJjYjM5ZDcwMSc7XG5cbmV4cG9ydCBjb25zdCBmZWVQYXllclNpZzIgPVxuICAnNDVkOGFlYzRkMmVkNWY3NGI3ODg2OTVjZWI3NmQxOGRkMzU5NzUwM2JjMDQ2NmQ2Njc0OTNiMmFmZjJjMmIwOTVkMzUyNzg4YTM0NWIyZTNiNDllOWFkMTliYzI4YjBiZGVlNDVkMGNjZTk4Njk2MmU2MWIwZmViZTYwYTI1OTMwMSc7XG5cbmV4cG9ydCBjb25zdCBzZW5kZXJTaWczID1cbiAgJzIxMmQyMTJlZmZlYTAzNzczZjQyMjhjZDA0OWVmZTQyYzNlZmU1NGYxODM3OGRlZjUyZjBhZDM0OTYzNzI0OGQ2N2QwZWVjNmZkOWJjN2RkYzVhYjRkOThmMjJjNGZjOGRlNDg1ZTI0MDNmOTBhNjhiMjYxM2UyMTQyNDVjMGE0MDEnO1xuXG5leHBvcnQgY29uc3QgZmVlUGF5ZXJTaWczID1cbiAgJzc1OGM5ZDAwYWRhNDBlYmMzNjg5MGJiZjhjZjFjODQwNzBlMDk1MGRjYmI2Y2FkOTRhNGM5YTRjMGZmZTE2Yzc0ODZjNWI2NzQyMDdjNGQ5MTZmN2VkN2NiNTAxYzczZGFhYWZjNDljZmU3Njg1Y2YxZTBmODA1NGE3ZmE0NjAzMDAnO1xuXG5leHBvcnQgY29uc3Qgc2VuZGVyU2lnbmVkU2VyaWFsaXplZFR4SGV4ID1cbiAgJzB4ZjcyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZTBkZjk0ZTU5ZjFjZWE0ZTBmZWY1MTFlM2QwZjRlZWM0NGFkZjE5YzRjYmVlYzg4MDE2MzQ1Nzg1ZDhhMDAwMDgwODE4MDgyNTIwODgwODJmYWY4YzEwMSc7XG5cbmV4cG9ydCBjb25zdCBzZW5kZXJTaWduZWRTZXJpYWxpemVkVHhIZXgyID1cbiAgJzB4Zjg3NjI3ODgwMTRlYWQxNDBlNzdiYmMxNDBmODVlZjg1Yzk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NmU2NTcyNjc3OTgwYjg0NGE5MDU5Y2JiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZTU5ZjFjZWE0ZTBmZWY1MTFlM2QwZjRlZWM0NGFkZjE5YzRjYmVlYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNjM0NTc4NWQ4YTAwMDA4MTgwODI1MjA4ODA4MmZhZjhjMTAxJztcblxuZXhwb3J0IGNvbnN0IGNvbXBsZXRlU2lnbmVkU2VyaWFsaXplZEhleCA9XG4gICcweGY4YmIyNzg4MDE0ZWFkMTQwZTc3YmJjMTQwZTBkZjk0ZTU5ZjFjZWE0ZTBmZWY1MTFlM2QwZjRlZWM0NGFkZjE5YzRjYmVlYzg4MDE2MzQ1Nzg1ZDhhMDAwMDgwODE4MDgyNTIwODgwODJmYWY4YzEwMWI4ODIwNjIwODBjYzc3ZGI5ZDVjZTVkYjg0ZjFjZmI1N2M5OTA2YzliZmRjZTc4ZTRkNTM3NTdiYmQzZDUzNmM3MzFlMWU1ZTQwNmE0ZTc4M2E0ZjYzNDQ2YWEyOGQyMWRjMjc3OTZhYWU5MGZhYzc5MTUxYzNkMGIzYmE2OGNkZTM2ODAxNDdhZTc5ZTIzZWZmZDIzMzIwNjE4MGVjZTNhYjNkNmQ0OTYzMTBjMDNjNTViZDA1NjZhNTRiYjdkNDIwOTVjOTdhOTBjYTlmZjRjZmI5NGVjNTc5YTdlYzdmNzlkZTQ4MTRkZmM4MTZkMGExMzAxODljMDdiNzQ2OTQ1NDgyZmIwMCc7XG5cbmV4cG9ydCBjb25zdCBjb21wbGV0ZVNpZ25lZFNlcmlhbGl6ZWRIZXgyID1cbiAgJzB4ZjhmYTI3ODgwMTRlYWQxNDBlNzdiYmMxNDBmODVlZjg1Yzk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NmU2NTcyNjc3OTgwYjg0NGE5MDU5Y2JiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZTU5ZjFjZWE0ZTBmZWY1MTFlM2QwZjRlZWM0NGFkZjE5YzRjYmVlYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNjM0NTc4NWQ4YTAwMDA4MTgwODI1MjA4ODA4MmZhZjhjMTAxYjg4MjlkMDVlOTBhMDBjNTM4YWZkNjg2NTJmNjNhNGUyMTQ4MWQxZDA4MmZkYmQ0YTMwMGIwNGI1NjFkYzc2MTg1YWQyOTJiYjQ4ZDcwODQ2YmQwZmI4YjUyNjc4MmI5ZDJmOTQwZGJjZWUzYmM1NTRiZmI3YjUzZTM2MmJiY2IzOWQ3MDE0NWQ4YWVjNGQyZWQ1Zjc0Yjc4ODY5NWNlYjc2ZDE4ZGQzNTk3NTAzYmMwNDY2ZDY2NzQ5M2IyYWZmMmMyYjA5NWQzNTI3ODhhMzQ1YjJlM2I0OWU5YWQxOWJjMjhiMGJkZWU0NWQwY2NlOTg2OTYyZTYxYjBmZWJlNjBhMjU5MzAxJztcblxuZXhwb3J0IGNvbnN0IHNlbmRlclNpZ25lZFNlcmlhbGl6ZWRIZXgzID1cbiAgJzB4Zjg5NjI3ODgwMTRlYWQxNDBlNzdiYmMxNDBmODdlZjg3Yzk0MWVjMWQxNjg1NzQ2MDNlYzM1YjlkMjI5ODQzYjdjMmI0NGJjYjc3MDgwYjg2NDIzYjg3MmRkMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYzA3MTZmMzg2YTBhNzgzNjE5NjJkMWY2NGNlMjI1NmEyYzg3MWJiNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdjYTAwZTNiYzhhODM2MDI2YzI5MTdjNmM3YzZkMDQ5ZTUyMDk5ZGQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4NzIzODE4MDgyNTIwODgwODJmYWY4YzEwMSc7XG5cbmV4cG9ydCBjb25zdCBjb21wbGV0ZVNpZ25lZFNlcmlhbGl6ZWRIZXgzID1cbiAgJzB4ZjkwMTFhMjc4ODAxNGVhZDE0MGU3N2JiYzE0MGY4N2VmODdjOTQxZWMxZDE2ODU3NDYwM2VjMzViOWQyMjk4NDNiN2MyYjQ0YmNiNzcwODBiODY0MjNiODcyZGQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBjMDcxNmYzODZhMGE3ODM2MTk2MmQxZjY0Y2UyMjU2YTJjODcxYmI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2NhMDBlM2JjOGE4MzYwMjZjMjkxN2M2YzdjNmQwNDllNTIwOTlkZDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTg3MjM4MTgwODI1MjA4ODA4MmZhZjhjMTAxYjg4MjIxMmQyMTJlZmZlYTAzNzczZjQyMjhjZDA0OWVmZTQyYzNlZmU1NGYxODM3OGRlZjUyZjBhZDM0OTYzNzI0OGQ2N2QwZWVjNmZkOWJjN2RkYzVhYjRkOThmMjJjNGZjOGRlNDg1ZTI0MDNmOTBhNjhiMjYxM2UyMTQyNDVjMGE0MDE3NThjOWQwMGFkYTQwZWJjMzY4OTBiYmY4Y2YxYzg0MDcwZTA5NTBkY2JiNmNhZDk0YTRjOWE0YzBmZmUxNmM3NDg2YzViNjc0MjA3YzRkOTE2ZjdlZDdjYjUwMWM3M2RhYWFmYzQ5Y2ZlNzY4NWNmMWUwZjgwNTRhN2ZhNDYwMzAwJztcblxuZXhwb3J0IGNvbnN0IGJsb2NrSWRzOiB7IHZhbGlkQmxvY2tJZHM6IHN0cmluZ1tdOyBpbnZhbGlkQmxvY2tJZHM6IHN0cmluZ1tdIH0gPSB7XG4gIHZhbGlkQmxvY2tJZHM6IFtcbiAgICAnMHgwMTRmMTJlZDk0YzRiNDc3MGY3ZjlhNzNlMmFhNDFhOWRmYmFjMDJhNDlmMzZlYzA1YWNmZGJhOGM3MjQ0ZmYwJyxcbiAgICAnMHgwMTRmMTMwZDAwYTJmZTA2ZDQ3MWEzNWU3ZjJjZDE4ZDI1YmRlZmU1MzcwYzA3YTJhZDY4YzBhZTM4NTJhZDg2JyxcbiAgXSxcbiAgaW52YWxpZEJsb2NrSWRzOiBbXG4gICAgJ3JhbmRvbVN0cmluZycsXG4gICAgJzB4YzQxNzNhODA0NDA2YTM2NWU2OWRmYjI5N2RkZmdzZGN2ZicsXG4gICAgJzVuZTdwaEE0OEpydnBuMzlBdHVwQjhaa0NDQXk4Z0xUZnBHaWhaUHVEcWVuJyxcbiAgXSxcbn07XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkUmVjaXBpZW50czogUmVjaXBpZW50W10gPSBbXG4gIHtcbiAgICBhZGRyZXNzOiBhZGRyZXNzZXMuaW52YWxpZEFkZHJlc3Nlc1swXSxcbiAgICBhbW91bnQ6IEFNT1VOVC50b1N0cmluZygpLFxuICB9LFxuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLFxuICAgIGFtb3VudDogJy05MTkxOTEnLFxuICB9LFxuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLFxuICAgIGFtb3VudDogJ2ludmFsaWRBbW91bnQnLFxuICB9LFxuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLFxuICAgIGFtb3VudDogQU1PVU5ULnRvU3RyaW5nKCksXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgcmVjaXBpZW50czogUmVjaXBpZW50W10gPSBbXG4gIHtcbiAgICBhZGRyZXNzOiBhZGRyZXNzZXMudmFsaWRBZGRyZXNzZXNbMV0udG9Mb3dlckNhc2UoKSxcbiAgICBhbW91bnQ6IEFNT1VOVC50b1N0cmluZygpLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IG5mdFJlY2lwaWVudHM6IFJlY2lwaWVudFtdID0gW1xuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzFdLnRvTG93ZXJDYXNlKCksXG4gICAgYW1vdW50OiAnMScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgbmZ0UmVjaXBpZW50czI6IFJlY2lwaWVudFtdID0gW1xuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLnRvTG93ZXJDYXNlKCksXG4gICAgYW1vdW50OiAnMScsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgZmVlUGF5ZXIgPSB7XG4gIGFkZHJlc3M6ICcweGRjOWZlZjBiODRhMGNjZjNmMWJkNGI4NGU0MTc0M2UzZTA1MWEwODMnLFxufTtcblxuLy8gVXNlIHRoZSBoYXJkY29kZWQgdmFsdWVzIGZyb20gdGhlIFZldFRlc3RuZXQgY2xhc3MgaW4gbmV0d29ya3MudHNcbmV4cG9ydCBjb25zdCBGT1JXQVJERVJfRkFDVE9SWV9BRERSRVNTID0gJzB4NjUzNDNlMThjMzc2ZDJmYzhjM2NmMTBjZDE0NmQ2M2UyZTBkYzllZic7XG5cbmV4cG9ydCBjb25zdCBGT1JXQVJERVJfSU1QTEVNRU5UQVRJT05fQUREUkVTUyA9ICcweDYyZGUzNGM4N2Y4NDdkMzg1YWYwN2Y2YzI1ZGJkOTdiMWZmZmVmYzAnO1xuXG5leHBvcnQgY29uc3QgQ1JFQVRFX0ZPUldBUkRFUl9NRVRIT0QgPSAnMHgxM2IyZjc1Yyc7XG5cbmV4cG9ydCBjb25zdCBCQVNFX0FERFJFU1MgPSAnMHg1NWIwMGI1YzgwN2Q1Njk2MTk3YjQ4ZDRhZmZhNDBiYjg3NmRmMjQwJztcblxuZXhwb3J0IGNvbnN0IEZFRV9BRERSRVNTID0gJzB4N2M4N2I5ZmZjNmZkNmMxNjdjMGU0ZmE5NDE4NzIwZjNkNjU5MzU4ZSc7XG5cbmV4cG9ydCBjb25zdCBUT0tFTl9BRERSRVNTID0gJzB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NmU2NTcyNjc3OSc7XG5cbmV4cG9ydCBjb25zdCBORlRfQ09OVFJBQ1RfQUREUkVTUyA9ICcweDg4N2Q5MTAyZjAwMDNmMTcyNGQ4ZmQ1ZDRmZTk1YTExNTcyZmNkNzcnO1xuXG5leHBvcnQgY29uc3QgU0FMVCA9ICcweDEnO1xuXG5leHBvcnQgY29uc3QgU0VSSUFMSVpFRF9TSUdORURfQUREUkVTU19JTklUX1RYID1cbiAgJzB4ZjhkOTI3ODgwMTUyYzkwNjUzMTc4NGJkNDBmODdlZjg3Yzk0NjUzNDNlMThjMzc2ZDJmYzhjM2NmMTBjZDE0NmQ2M2UyZTBkYzllZjgwYjg2NDEzYjJmNzVjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTViMDBiNWM4MDdkNTY5NjE5N2I0OGQ0YWZmYTQwYmI4NzZkZjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdjODdiOWZmYzZmZDZjMTY3YzBlNGZhOTQxODcyMGYzZDY1OTM1OGUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0ODE4MDgzMDI0OWYwODA4MmZhZjhjMGI4NDE5NjU3NzA0NmVjYmJhNjQwZDhmNTkxNGE3YjRjYjk5ZjlhYjQ3OTM1OWJjZGE1MzY4Y2M5YWZkZmI1NTk5NGEwNDY5YWYwNzFjZGViNGNhYzkyY2FhZjBiZTdmZWRmNDkyZDIyMTVmODNiYWEwMGQ0YWJhYzMxY2Y0OGVlZGRkOTAwJztcblxuZXhwb3J0IGNvbnN0IFNFUklBTElaRURfU0lHTkVEX0ZMVVNIX1RPS0VOX1RYID1cbiAgJzB4Zjg5ODI3ODgwMTUyY2Y0NTU1MzZlYmM3NDBmODNkZjgzYjk0NjA0YTQyODk4Mzg4MDgwZDU2YmM4NWY4MTU5NjVkMWY2NGJlYjFhNjgwYTQzZWYxMzM2NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTZlNjU3MjY3Nzk4MTgwODMwMjQ5ZjA4MDgyZmFmOWMwYjg0MWI1MjI1YTBkNWM2M2ZkNGNlZWUyZmVmZTk0NzU5ZDIwZTM3YzI5ZWJjZDE1ZmMwM2ViNjk5ZDRhZjViYjIxMGMyNTg1ODNmOWU4ZTI2ZTg3Mjc1MWUyNTVjMmYwZmU5ZDQ0ZDUyY2U2NWI2Yjc2MDQwNDc2ZTI4NTA3NGE0YjU5MDEnO1xuXG5leHBvcnQgY29uc3QgVkFMSURfTkZUX0NPTlRSQUNUX0RBVEEgPVxuICAnMHgyM2I4NzJkZDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdjYTAwZTNiYzhhODM2MDI2YzI5MTdjNmM3YzZkMDQ5ZTUyMDk5ZGQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlNTlmMWNlYTRlMGZlZjUxMWUzZDBmNGVlYzQ0YWRmMTljNGNiZWVjMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRkMic7XG5cbmV4cG9ydCBjb25zdCBERUxFR0FURV9DTEFVU0VfREFUQSA9XG4gICcweDA4YmJiODI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM2Q0NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGFlOTljYjg5NzY3YTA5ZDUzZTU4OWE0MGNiNDAxNjk3NGFiYTRiOTQnO1xuZXhwb3J0IGNvbnN0IFZBTElEQVRPUl9SRUdJU1RSQVRJT05fQ0xBVVNFX0RBVEEgPVxuICAnMHhjM2M0YjEzODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU5YjY3ZDM3YmU1NTk5N2M5NmVhNmYxODkwZjA4ZjgyNWE0MTIwM2MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNmNDgwJztcbmV4cG9ydCBjb25zdCBERUxFR0FURV9UT0tFTl9JRCA9ICcxNTY4NSc7XG5leHBvcnQgY29uc3QgU1RBS0lOR19QRVJJT0QgPSAyNTkyMDA7XG5leHBvcnQgY29uc3QgREVMRUdBVEVfVkFMSURBVE9SID0gJzB4YWU5OWNiODk3NjdhMDlkNTNlNTg5YTQwY2I0MDE2OTc0YWJhNGI5NCc7XG5leHBvcnQgY29uc3QgVkFMSURBVE9SX1JFR0lTVFJBVElPTl9WQUxJREFUT1IgPSAnMHg1OWI2N2QzN2JlNTU5OTdjOTZlYTZmMTg5MGYwOGY4MjVhNDEyMDNjJztcbmV4cG9ydCBjb25zdCBWQUxJREFUT1JfUkVHSVNUUkFUSU9OX0FNT1VOVCA9ICcyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG5cbmV4cG9ydCBjb25zdCBTSUdORURfREVMRUdBVEVfUkFXX0hFWCA9XG4gICcweGY4ZmEyNzg4MDE2NzExODdkZThhZjcwNDQwZjg1ZWY4NWM5NDFlMDJiMjk1M2FkZWZlYzIyNWNmMGVjNDk4MDViMTE0NmE0NDI5YzE4MGI4NDQwOGJiYjgyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNkMmQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU2M2VjM2NhZmJiZTdlNjBiMDRiMzE5MGU2ZWNhNjY1Nzk3MDZkODE4MDgyY2I1NjgwODIwMTkwYzEwMWI4ODIzMTNlNzgzMTY5ZWFlNjcwYjEyMTBlNjVmNTliN2MzMGNmZDZjMTQwYzM3NzI1NzQxM2ZlZjM3OGY3MDU0OWY3MzhhMjJhMTcyY2NjNGFjNzg1NGViYzk5NTI4NDVmYTkwZjdhNjc2ZTVlOWQ5ZTI3NzcyNGVmMzk2OGUzMmU4YTAwZjA1ZGRmOTEzYjJiOGZiODg0ZGJkNWQ1MTMzMjE3NjY2ZWM0YTY4ZDA3N2RjZTE1MzdkMjcwZjI1Y2FmNDQwZTBmMTEyMzJlY2M0YTU4NTlhYjQ5YjI0NDJjYzBiMGMwYzE0ODgzMDI1NTZlNjMyM2VlYzA0OThmMWE0MmUxNzMwMSc7XG5leHBvcnQgY29uc3QgU0lHTkVEX0RFTEVHQVRFX1JBV19FWFBFQ1RFRF9UT0tFTl9JRCA9ICcxNTY2MSc7XG5leHBvcnQgY29uc3QgU0lHTkVEX0RFTEVHQVRFX1JBV19FWFBFQ1RFRF9WQUxJREFUT1IgPSAnMHgwMDU2M2VjM2NhZmJiZTdlNjBiMDRiMzE5MGU2ZWNhNjY1Nzk3MDZkJztcbmV4cG9ydCBjb25zdCBTSUdORURfREVMRUdBVEVfUkFXX0VYUEVDVEVEX1NUQUtJTkdfQ09OVFJBQ1QgPSAnMHgxZTAyYjI5NTNhZGVmZWMyMjVjZjBlYzQ5ODA1YjExNDZhNDQyOWMxJztcbmV4cG9ydCBjb25zdCBWQUxJREFUT1JfUkVHSVNUUkFUSU9OX1NUQUtFUl9DT05UUkFDVCA9ICcweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Mzc0NjE2YjY1NzInO1xuZXhwb3J0IGNvbnN0IFZBTElEQVRPUl9SRUdJU1RSQVRJT05fU1RBS0lOR19QRVJJT0QgPSA2MDQ4MDtcbiJdfQ==
@@ -48,6 +48,9 @@ describe('VET Validator Registration Transaction', function () {
48
48
  const factory = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tvet'));
49
49
  const stakingPeriod = 60480;
50
50
  const validatorAddress = '0x9a7aFCACc88c106f3bbD6B213CD0821D9224d945';
51
+ const amountToStake = '25000000000000000000000000'; // 25000000 VET
52
+ const amountLessThanMinStake = '24000000000000000000000000'; // 24000000 VET
53
+ const amountGreaterThanMaxStake = '650000000000000000000000000'; // 650000000 VET
51
54
  // Helper function to create a basic transaction builder with common properties
52
55
  const createBasicTxBuilder = () => {
53
56
  const txBuilder = factory.getValidatorRegistrationBuilder();
@@ -64,6 +67,7 @@ describe('VET Validator Registration Transaction', function () {
64
67
  const txBuilder = factory.getValidatorRegistrationBuilder();
65
68
  txBuilder.stakingContractAddress(constants_1.VALIDATOR_REGISTRATION_STAKER_CONTRACT_ADDRESS_TESTNET);
66
69
  txBuilder.stakingPeriod(stakingPeriod);
70
+ txBuilder.amountToStake(amountToStake);
67
71
  txBuilder.sender('0x9378c12BD7502A11F770a5C1F223c959B2805dA9');
68
72
  txBuilder.chainTag(0x27); // Testnet chain tag
69
73
  txBuilder.blockRef('0x0000000000000000');
@@ -80,10 +84,13 @@ describe('VET Validator Registration Transaction', function () {
80
84
  validatorRegistrationTransaction.stakingContractAddress.should.equal(constants_1.VALIDATOR_REGISTRATION_STAKER_CONTRACT_ADDRESS_TESTNET);
81
85
  validatorRegistrationTransaction.stakingPeriod.should.equal(stakingPeriod);
82
86
  validatorRegistrationTransaction.validator.should.equal(validatorAddress);
87
+ validatorRegistrationTransaction.amountToStake.should.equal(amountToStake);
83
88
  // Verify clauses
84
89
  validatorRegistrationTransaction.clauses.length.should.equal(1);
85
90
  should_1.default.exist(validatorRegistrationTransaction.clauses[0].to);
91
+ should_1.default.exist(validatorRegistrationTransaction.clauses[0].value);
86
92
  validatorRegistrationTransaction.clauses[0].to?.should.equal(constants_1.VALIDATOR_REGISTRATION_STAKER_CONTRACT_ADDRESS_TESTNET);
93
+ validatorRegistrationTransaction.clauses[0].value?.should.equal(amountToStake);
87
94
  // Verify transaction data is correctly encoded using ethereumABI
88
95
  should_1.default.exist(validatorRegistrationTransaction.clauses[0].data);
89
96
  const txData = validatorRegistrationTransaction.clauses[0].data;
@@ -105,20 +112,46 @@ describe('VET Validator Registration Transaction', function () {
105
112
  const txBuilder = createBasicTxBuilder();
106
113
  txBuilder.stakingPeriod(stakingPeriod);
107
114
  txBuilder.validator(validatorAddress);
115
+ txBuilder.amountToStake(amountToStake);
108
116
  await txBuilder.build().should.be.rejectedWith('Staking contract address is required');
109
117
  });
110
118
  it('should throw error when stakingPeriod is missing', async function () {
111
119
  const txBuilder = createBasicTxBuilder();
112
120
  txBuilder.stakingContractAddress(constants_1.VALIDATOR_REGISTRATION_STAKER_CONTRACT_ADDRESS_TESTNET);
113
121
  txBuilder.validator(validatorAddress);
122
+ txBuilder.amountToStake(amountToStake);
114
123
  await txBuilder.build().should.be.rejectedWith('Staking period is required');
115
124
  });
116
125
  it('should throw error when validator address is missing', async function () {
117
126
  const txBuilder = createBasicTxBuilder();
118
127
  txBuilder.stakingContractAddress(constants_1.VALIDATOR_REGISTRATION_STAKER_CONTRACT_ADDRESS_TESTNET);
119
128
  txBuilder.stakingPeriod(stakingPeriod);
129
+ txBuilder.amountToStake(amountToStake);
120
130
  await txBuilder.build().should.be.rejectedWith('Validator address is required');
121
131
  });
132
+ it('should throw error when amount is missing', async function () {
133
+ const txBuilder = createBasicTxBuilder();
134
+ txBuilder.stakingContractAddress(constants_1.VALIDATOR_REGISTRATION_STAKER_CONTRACT_ADDRESS_TESTNET);
135
+ txBuilder.stakingPeriod(stakingPeriod);
136
+ txBuilder.validator(validatorAddress);
137
+ await txBuilder.build().should.be.rejectedWith('Staking amount is required');
138
+ });
139
+ it('should throw error when amount is less than minimum stake', async function () {
140
+ const txBuilder = createBasicTxBuilder();
141
+ txBuilder.stakingContractAddress(constants_1.VALIDATOR_REGISTRATION_STAKER_CONTRACT_ADDRESS_TESTNET);
142
+ txBuilder.stakingPeriod(stakingPeriod);
143
+ txBuilder.validator(validatorAddress);
144
+ txBuilder.amountToStake(amountLessThanMinStake);
145
+ await txBuilder.build().should.be.rejectedWith('Staking amount must be between 25M and 600M VET');
146
+ });
147
+ it('should throw error when amount is greater than maximum stake', async function () {
148
+ const txBuilder = createBasicTxBuilder();
149
+ txBuilder.stakingContractAddress(constants_1.VALIDATOR_REGISTRATION_STAKER_CONTRACT_ADDRESS_TESTNET);
150
+ txBuilder.stakingPeriod(stakingPeriod);
151
+ txBuilder.validator(validatorAddress);
152
+ txBuilder.amountToStake(amountGreaterThanMaxStake);
153
+ await txBuilder.build().should.be.rejectedWith('Staking amount must be between 25M and 600M VET');
154
+ });
122
155
  it('should throw error when stakingContractAddress is invalid', async function () {
123
156
  const txBuilder = createBasicTxBuilder();
124
157
  // Invalid address (wrong format)
@@ -130,6 +163,7 @@ describe('VET Validator Registration Transaction', function () {
130
163
  const txBuilder = factory.getValidatorRegistrationBuilder();
131
164
  txBuilder.stakingContractAddress(constants_1.VALIDATOR_REGISTRATION_STAKER_CONTRACT_ADDRESS_TESTNET);
132
165
  txBuilder.stakingPeriod(stakingPeriod);
166
+ txBuilder.amountToStake(amountToStake);
133
167
  txBuilder.chainTag(0x27);
134
168
  txBuilder.blockRef('0x0000000000000000');
135
169
  txBuilder.expiration(64);
@@ -154,6 +188,7 @@ describe('VET Validator Registration Transaction', function () {
154
188
  txBuilder.stakingPeriod(stakingPeriod);
155
189
  // Not setting chainTag
156
190
  txBuilder.blockRef('0x0000000000000000');
191
+ txBuilder.amountToStake(amountToStake);
157
192
  txBuilder.expiration(64);
158
193
  txBuilder.gas(100000);
159
194
  txBuilder.gasPriceCoef(0);
@@ -182,6 +217,7 @@ describe('VET Validator Registration Transaction', function () {
182
217
  tx.stakingContractAddress.should.equal(testData.VALIDATOR_REGISTRATION_STAKER_CONTRACT);
183
218
  tx.stakingPeriod.should.equal(testData.VALIDATOR_REGISTRATION_STAKING_PERIOD);
184
219
  tx.validator.should.equal(testData.VALIDATOR_REGISTRATION_VALIDATOR);
220
+ tx.amountToStake.should.equal(testData.VALIDATOR_REGISTRATION_AMOUNT);
185
221
  tx.validator.should.startWith('0x');
186
222
  tx.validator.should.equal(tx.validator.toLowerCase());
187
223
  should_1.default.exist(tx.inputs);
@@ -192,4 +228,4 @@ describe('VET Validator Registration Transaction', function () {
192
228
  });
193
229
  });
194
230
  });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yUmVnaXN0cmF0aW9uVHhuQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdHJhbnNhY3Rpb25CdWlsZGVyL3ZhbGlkYXRvclJlZ2lzdHJhdGlvblR4bkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBNEM7QUFDNUMsdUNBQXlHO0FBQ3pHLG9EQUE0QjtBQUM1Qix1REFHaUM7QUFDakMsb0VBQXlDO0FBQ3pDLDJEQUE2QztBQUM3QyxxREFBcUM7QUFDckMsZ0VBQXdDO0FBRXhDLFFBQVEsQ0FBQyx3Q0FBd0MsRUFBRTtJQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqRSxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxnQkFBZ0IsR0FBRyw0Q0FBNEMsQ0FBQztJQUV0RSwrRUFBK0U7SUFDL0UsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7UUFDaEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLCtCQUErQixFQUFFLENBQUM7UUFDNUQsU0FBUyxDQUFDLE1BQU0sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQy9ELFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7UUFDOUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QixTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekIsT0FBTyxT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Q0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgVHJhbnNhY3Rpb24sIFZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjL2xpYic7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQge1xuICBBRERfVkFMSURBVElPTl9NRVRIT0RfSUQsXG4gIFZBTElEQVRPUl9SRUdJU1RSQVRJT05fU1RBS0VSX0NPTlRSQUNUX0FERFJFU1NfVEVTVE5FVCxcbn0gZnJvbSAnLi4vLi4vc3JjL2xpYi9jb25zdGFudHMnO1xuaW1wb3J0IEV0aGVyZXVtQWJpIGZyb20gJ2V0aGVyZXVtanMtYWJpJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL3Jlc291cmNlcy92ZXQnO1xuaW1wb3J0IHsgQk4gfSBmcm9tICdldGhlcmV1bWpzLXV0aWwnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uLy4uL3NyYy9saWIvdXRpbHMnO1xuXG5kZXNjcmliZSgnVkVUIFZhbGlkYXRvciBSZWdpc3RyYXRpb24gVHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3R2ZXQnKSk7XG4gIGNvbnN0IHN0YWtpbmdQZXJpb2QgPSA2MDQ4MDtcbiAgY29uc3QgdmFsaWRhdG9yQWRkcmVzcyA9ICcweDlhN2FGQ0FDYzg4YzEwNmYzYmJENkIyMTNDRDA4MjFEOTIyNGQ5NDUnO1xuXG4gIC8vIEhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYSBiYXNpYyB0cmFuc2FjdGlvbiBidWlsZGVyIHdpdGggY29tbW9uIHByb3BlcnRpZXNcbiAgY29uc3QgY3JlYXRlQmFzaWNUeEJ1aWxkZXIgPSAoKSA9PiB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRWYWxpZGF0b3JSZWdpc3RyYXRpb25CdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyLnNlbmRlcignMHg5Mzc4YzEyQkQ3NTAyQTExRjc3MGE1QzFGMjIzYzk1OUIyODA1ZEE5Jyk7XG4gICAgdHhCdWlsZGVyLmNoYWluVGFnKDB4MjcpOyAvLyBUZXN0bmV0IGNoYWluIHRhZ1xuICAgIHR4QnVpbGRlci5ibG9ja1JlZignMHgwMDAwMDAwMDAwMDAwMDAwJyk7XG4gICAgdHhCdWlsZGVyLmV4cGlyYXRpb24oNjQpO1xuICAgIHR4QnVpbGRlci5nYXMoMTAwMDAwKTtcbiAgICB0eEJ1aWxkZXIuZ2FzUHJpY2VDb2VmKDApO1xuICAgIHR4QnVpbGRlci5ub25jZSgnMTIzNDUnKTtcbiAgICByZXR1cm4gdHhCdWlsZGVyO1xuICB9O1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgYSB2YWxpZGF0b3IgcmVnaXN0cmF0aW9uIHRyYW5zYWN0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0VmFsaWRhdG9yUmVnaXN0cmF0aW9uQnVpbGRlcigpO1xuICAgIHR4QnVpbGRlci5zdGFraW5nQ29udHJhY3RBZGRyZXNzKFZBTElEQVRPUl9SRUdJU1RSQVRJT05fU1RBS0VSX0NPTlRSQUNUX0FERFJFU1NfVEVTVE5FVCk7XG4gICAgdHhCdWlsZGVyLnN0YWtpbmdQZXJpb2Qoc3Rha2luZ1BlcmlvZCk7XG4gICAgdHhCdWlsZGVyLnNlbmRlcignMHg5Mzc4YzEyQkQ3NTAyQTExRjc3MGE1QzFGMjIzYzk1OUIyODA1ZEE5Jyk7XG4gICAgdHhCdWlsZGVyLmNoYWluVGFnKDB4MjcpOyAvLyBUZXN0bmV0IGNoYWluIHRhZ1xuICAgIHR4QnVpbGRlci5ibG9ja1JlZignMHgwMDAwMDAwMDAwMDAwMDAwJyk7XG4gICAgdHhCdWlsZGVyLmV4cGlyYXRpb24oNjQpO1xuICAgIHR4QnVpbGRlci5nYXMoMTAwMDAwKTtcbiAgICB0eEJ1aWxkZXIuZ2FzUHJpY2VDb2VmKDApO1xuICAgIHR4QnVpbGRlci5ub25jZSgnMTIzNDUnKTtcbiAgICB0eEJ1aWxkZXIudmFsaWRhdG9yKHZhbGlkYXRvckFkZHJlc3MpO1xuXG4gICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICBzaG91bGQuZXhpc3QodHgpO1xuICAgIHR4LnNob3VsZC5iZS5pbnN0YW5jZW9mKFRyYW5zYWN0aW9uKTtcbiAgICB0eC5zaG91bGQuYmUuaW5zdGFuY2VvZihWYWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbik7XG5cbiAgICBjb25zdCB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbiA9IHR4IGFzIFZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uO1xuICAgIHZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uLnN0YWtpbmdDb250cmFjdEFkZHJlc3Muc2hvdWxkLmVxdWFsKFxuICAgICAgVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLRVJfQ09OVFJBQ1RfQUREUkVTU19URVNUTkVUXG4gICAgKTtcbiAgICB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5zdGFraW5nUGVyaW9kLnNob3VsZC5lcXVhbChzdGFraW5nUGVyaW9kKTtcbiAgICB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi52YWxpZGF0b3Iuc2hvdWxkLmVxdWFsKHZhbGlkYXRvckFkZHJlc3MpO1xuXG4gICAgLy8gVmVyaWZ5IGNsYXVzZXNcbiAgICB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5jbGF1c2VzLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgc2hvdWxkLmV4aXN0KHZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uLmNsYXVzZXNbMF0udG8pO1xuICAgIHZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uLmNsYXVzZXNbMF0udG8/LnNob3VsZC5lcXVhbChcbiAgICAgIFZBTElEQVRPUl9SRUdJU1RSQVRJT05fU1RBS0VSX0NPTlRSQUNUX0FERFJFU1NfVEVTVE5FVFxuICAgICk7XG5cbiAgICAvLyBWZXJpZnkgdHJhbnNhY3Rpb24gZGF0YSBpcyBjb3JyZWN0bHkgZW5jb2RlZCB1c2luZyBldGhlcmV1bUFCSVxuICAgIHNob3VsZC5leGlzdCh2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5jbGF1c2VzWzBdLmRhdGEpO1xuICAgIGNvbnN0IHR4RGF0YSA9IHZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uLmNsYXVzZXNbMF0uZGF0YTtcbiAgICB0eERhdGEuc2hvdWxkLnN0YXJ0V2l0aChBRERfVkFMSURBVElPTl9NRVRIT0RfSUQpO1xuXG4gICAgLy8gVmVyaWZ5IHRoZSBlbmNvZGVkIGRhdGEgbWF0Y2hlcyB3aGF0IHdlIGV4cGVjdCBmcm9tIGV0aGVyZXVtQUJJXG4gICAgY29uc3QgbWV0aG9kTmFtZSA9ICdhZGRWYWxpZGF0aW9uJztcbiAgICBjb25zdCB0eXBlcyA9IFsnYWRkcmVzcycsICd1aW50MzInXTtcbiAgICBjb25zdCBwYXJhbXMgPSBbdmFsaWRhdG9yQWRkcmVzcywgbmV3IEJOKHN0YWtpbmdQZXJpb2QpXTtcblxuICAgIGNvbnN0IG1ldGhvZCA9IEV0aGVyZXVtQWJpLm1ldGhvZElEKG1ldGhvZE5hbWUsIHR5cGVzKTtcbiAgICBjb25zdCBhcmdzID0gRXRoZXJldW1BYmkucmF3RW5jb2RlKHR5cGVzLCBwYXJhbXMpO1xuICAgIGNvbnN0IGV4cGVjdGVkRGF0YSA9ICcweCcgKyBCdWZmZXIuY29uY2F0KFttZXRob2QsIGFyZ3NdKS50b1N0cmluZygnaGV4Jyk7XG5cbiAgICB0eERhdGEuc2hvdWxkLmVxdWFsKGV4cGVjdGVkRGF0YSk7XG5cbiAgICAvLyBWZXJpZnkgcmVjaXBpZW50c1xuICAgIHZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uLnJlY2lwaWVudHMubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5yZWNpcGllbnRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKFxuICAgICAgVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLRVJfQ09OVFJBQ1RfQUREUkVTU19URVNUTkVUXG4gICAgKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0ZhaWx1cmUgc2NlbmFyaW9zJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgdGhyb3cgZXJyb3Igd2hlbiBzdGFraW5nQ29udHJhY3RBZGRyZXNzIGlzIG1pc3NpbmcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBjcmVhdGVCYXNpY1R4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLnN0YWtpbmdQZXJpb2Qoc3Rha2luZ1BlcmlvZCk7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdG9yKHZhbGlkYXRvckFkZHJlc3MpO1xuXG4gICAgICBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdTdGFraW5nIGNvbnRyYWN0IGFkZHJlc3MgaXMgcmVxdWlyZWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgZXJyb3Igd2hlbiBzdGFraW5nUGVyaW9kIGlzIG1pc3NpbmcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBjcmVhdGVCYXNpY1R4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLnN0YWtpbmdDb250cmFjdEFkZHJlc3MoVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLRVJfQ09OVFJBQ1RfQUREUkVTU19URVNUTkVUKTtcbiAgICAgIHR4QnVpbGRlci52YWxpZGF0b3IodmFsaWRhdG9yQWRkcmVzcyk7XG5cbiAgICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ1N0YWtpbmcgcGVyaW9kIGlzIHJlcXVpcmVkJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gdmFsaWRhdG9yIGFkZHJlc3MgaXMgbWlzc2luZycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGNyZWF0ZUJhc2ljVHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIuc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyhWQUxJREFUT1JfUkVHSVNUUkFUSU9OX1NUQUtFUl9DT05UUkFDVF9BRERSRVNTX1RFU1RORVQpO1xuICAgICAgdHhCdWlsZGVyLnN0YWtpbmdQZXJpb2Qoc3Rha2luZ1BlcmlvZCk7XG5cbiAgICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ1ZhbGlkYXRvciBhZGRyZXNzIGlzIHJlcXVpcmVkJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyBpcyBpbnZhbGlkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gY3JlYXRlQmFzaWNUeEJ1aWxkZXIoKTtcblxuICAgICAgLy8gSW52YWxpZCBhZGRyZXNzICh3cm9uZyBmb3JtYXQpXG4gICAgICBzaG91bGQoKCkgPT4ge1xuICAgICAgICB0eEJ1aWxkZXIuc3Rha2luZ0NvbnRyYWN0QWRkcmVzcygnaW52YWxpZC1hZGRyZXNzJyk7XG4gICAgICB9KS50aHJvdygvSW52YWxpZCBhZGRyZXNzLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIHRyYW5zYWN0aW9uIHdpdGggdW5kZWZpbmVkIHNlbmRlciBidXQgaW5jbHVkZSBpdCBpbiBpbnB1dHMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldFZhbGlkYXRvclJlZ2lzdHJhdGlvbkJ1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlci5zdGFraW5nQ29udHJhY3RBZGRyZXNzKFZBTElEQVRPUl9SRUdJU1RSQVRJT05fU1RBS0VSX0NPTlRSQUNUX0FERFJFU1NfVEVTVE5FVCk7XG4gICAgICB0eEJ1aWxkZXIuc3Rha2luZ1BlcmlvZChzdGFraW5nUGVyaW9kKTtcbiAgICAgIHR4QnVpbGRlci5jaGFpblRhZygweDI3KTtcbiAgICAgIHR4QnVpbGRlci5ibG9ja1JlZignMHgwMDAwMDAwMDAwMDAwMDAwJyk7XG4gICAgICB0eEJ1aWxkZXIuZXhwaXJhdGlvbig2NCk7XG4gICAgICB0eEJ1aWxkZXIuZ2FzKDEwMDAwMCk7XG4gICAgICB0eEJ1aWxkZXIuZ2FzUHJpY2VDb2VmKDApO1xuICAgICAgdHhCdWlsZGVyLm5vbmNlKCcxMjM0NScpO1xuICAgICAgdHhCdWlsZGVyLnZhbGlkYXRvcih2YWxpZGF0b3JBZGRyZXNzKTtcbiAgICAgIC8vIE5vdCBzZXR0aW5nIHNlbmRlclxuXG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgdHguc2hvdWxkLmJlLmluc3RhbmNlb2YoVmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24pO1xuXG4gICAgICBjb25zdCB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbiA9IHR4IGFzIFZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uO1xuICAgICAgLy8gVmVyaWZ5IHRoZSB0cmFuc2FjdGlvbiBoYXMgaW5wdXRzIGJ1dCB3aXRoIHVuZGVmaW5lZCBhZGRyZXNzXG4gICAgICB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5pbnB1dHMubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QodmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24uaW5wdXRzWzBdLmFkZHJlc3MpO1xuXG4gICAgICAvLyBWZXJpZnkgdGhlIHRyYW5zYWN0aW9uIGhhcyB0aGUgY29ycmVjdCBvdXRwdXRcbiAgICAgIHZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uLm91dHB1dHMubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICAgIHZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uLm91dHB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoXG4gICAgICAgIFZBTElEQVRPUl9SRUdJU1RSQVRJT05fU1RBS0VSX0NPTlRSQUNUX0FERFJFU1NfVEVTVE5FVFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdXNlIG5ldHdvcmsgZGVmYXVsdCBjaGFpblRhZyB3aGVuIG5vdCBleHBsaWNpdGx5IHNldCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0VmFsaWRhdG9yUmVnaXN0cmF0aW9uQnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLnN0YWtpbmdDb250cmFjdEFkZHJlc3MoVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLRVJfQ09OVFJBQ1RfQUREUkVTU19URVNUTkVUKTtcbiAgICAgIHR4QnVpbGRlci5zdGFraW5nUGVyaW9kKHN0YWtpbmdQZXJpb2QpO1xuICAgICAgLy8gTm90IHNldHRpbmcgY2hhaW5UYWdcbiAgICAgIHR4QnVpbGRlci5ibG9ja1JlZignMHgwMDAwMDAwMDAwMDAwMDAwJyk7XG4gICAgICB0eEJ1aWxkZXIuZXhwaXJhdGlvbig2NCk7XG4gICAgICB0eEJ1aWxkZXIuZ2FzKDEwMDAwMCk7XG4gICAgICB0eEJ1aWxkZXIuZ2FzUHJpY2VDb2VmKDApO1xuICAgICAgdHhCdWlsZGVyLm5vbmNlKCcxMjM0NScpO1xuICAgICAgdHhCdWlsZGVyLnNlbmRlcignMHg5Mzc4YzEyQkQ3NTAyQTExRjc3MGE1QzFGMjIzYzk1OUIyODA1ZEE5Jyk7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdG9yKHZhbGlkYXRvckFkZHJlc3MpO1xuXG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgdHguc2hvdWxkLmJlLmluc3RhbmNlb2YoVmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24pO1xuXG4gICAgICBjb25zdCB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbiA9IHR4IGFzIFZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uO1xuICAgICAgLy8gVmVyaWZ5IHRoZSBjaGFpblRhZyBpcyBzZXQgdG8gdGhlIHRlc3RuZXQgZGVmYXVsdCAoMzkpXG4gICAgICB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5jaGFpblRhZy5zaG91bGQuZXF1YWwoMzkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZGVjb2RlQWRkVmFsaWRhdGlvbkRhdGEnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBjb3JyZWN0bHkgZGVjb2RlIHZhbGlkYXRvciByZWdpc3RyYXRpb24gdHJhbnNhY3Rpb24gZGF0YSB3aXRoIHByb3BlciBhZGRyZXNzIGZvcm1hdHRpbmcnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBkZWNvZGVkRGF0YSA9IHV0aWxzLmRlY29kZUFkZFZhbGlkYXRpb25EYXRhKHRlc3REYXRhLlZBTElEQVRPUl9SRUdJU1RSQVRJT05fQ0xBVVNFX0RBVEEpO1xuXG4gICAgICBkZWNvZGVkRGF0YS5wZXJpb2Quc2hvdWxkLmVxdWFsKHRlc3REYXRhLlNUQUtJTkdfUEVSSU9EKTtcbiAgICAgIGRlY29kZWREYXRhLnZhbGlkYXRvci5zaG91bGQuZXF1YWwodGVzdERhdGEuVkFMSURBVE9SX1JFR0lTVFJBVElPTl9WQUxJREFUT1IpO1xuICAgICAgZGVjb2RlZERhdGEudmFsaWRhdG9yLnNob3VsZC5zdGFydFdpdGgoJzB4Jyk7XG4gICAgICBkZWNvZGVkRGF0YS52YWxpZGF0b3Iuc2hvdWxkLmVxdWFsKGRlY29kZWREYXRhLnZhbGlkYXRvci50b0xvd2VyQ2FzZSgpKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY29ycmVjdGx5IGRlc2VyaWFsaXplIHJlYWwgc2lnbmVkIHZhbGlkYXRvciByZWdpc3RyYXRpb24gdHJhbnNhY3Rpb24gZnJvbSByYXcgaGV4JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5mcm9tKHRlc3REYXRhLlZBTElEQVRPUl9SRUdJU1RSQVRJT05fVFJBTlNBQ1RJT04pO1xuICAgICAgY29uc3QgdHggPSB0eEJ1aWxkZXIudHJhbnNhY3Rpb24gYXMgVmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb247XG4gICAgICB0eC5zaG91bGQuYmUuaW5zdGFuY2VvZihWYWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbik7XG4gICAgICB0eC5zdGFraW5nQ29udHJhY3RBZGRyZXNzLnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5WQUxJREFUT1JfUkVHSVNUUkFUSU9OX1NUQUtFUl9DT05UUkFDVCk7XG4gICAgICB0eC5zdGFraW5nUGVyaW9kLnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5WQUxJREFUT1JfUkVHSVNUUkFUSU9OX1NUQUtJTkdfUEVSSU9EKTtcbiAgICAgIHR4LnZhbGlkYXRvci5zaG91bGQuZXF1YWwodGVzdERhdGEuVkFMSURBVE9SX1JFR0lTVFJBVElPTl9WQUxJREFUT1IpO1xuICAgICAgdHgudmFsaWRhdG9yLnNob3VsZC5zdGFydFdpdGgoJzB4Jyk7XG4gICAgICB0eC52YWxpZGF0b3Iuc2hvdWxkLmVxdWFsKHR4LnZhbGlkYXRvci50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIHNob3VsZC5leGlzdCh0eC5pbnB1dHMpO1xuICAgICAgdHguaW5wdXRzLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG5cbiAgICAgIGNvbnN0IGRlY29kZWREYXRhID0gdXRpbHMuZGVjb2RlQWRkVmFsaWRhdGlvbkRhdGEodHguY2xhdXNlc1swXS5kYXRhKTtcbiAgICAgIGRlY29kZWREYXRhLnBlcmlvZC5zaG91bGQuZXF1YWwodGVzdERhdGEuVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLSU5HX1BFUklPRCk7XG4gICAgICBkZWNvZGVkRGF0YS52YWxpZGF0b3Iuc2hvdWxkLmVxdWFsKHRlc3REYXRhLlZBTElEQVRPUl9SRUdJU1RSQVRJT05fVkFMSURBVE9SKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yUmVnaXN0cmF0aW9uVHhuQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdHJhbnNhY3Rpb25CdWlsZGVyL3ZhbGlkYXRvclJlZ2lzdHJhdGlvblR4bkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBNEM7QUFDNUMsdUNBQXlHO0FBQ3pHLG9EQUE0QjtBQUM1Qix1REFHaUM7QUFDakMsb0VBQXlDO0FBQ3pDLDJEQUE2QztBQUM3QyxxREFBcUM7QUFDckMsZ0VBQXdDO0FBRXhDLFFBQVEsQ0FBQyx3Q0FBd0MsRUFBRTtJQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLCtCQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqRSxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDNUIsTUFBTSxnQkFBZ0IsR0FBRyw0Q0FBNEMsQ0FBQztJQUN0RSxNQUFNLGFBQWEsR0FBRyw0QkFBNEIsQ0FBQyxDQUFDLGVBQWU7SUFDbkUsTUFBTSxzQkFBc0IsR0FBRyw0QkFBNEIsQ0FBQyxDQUFDLGVBQWU7SUFDNUUsTUFBTSx5QkFBeUIsR0FBRyw2QkFBNkIsQ0FBQyxDQUFDLGdCQUFnQjtJQUVqRiwrRUFBK0U7SUFDL0UsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7UUFDaEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLCtCQUErQixFQUFFLENBQUM7UUFDNUQsU0FBUyxDQUFDLE1BQU0sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQy9ELFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7UUFDOUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7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Q0FBQztZQUN4RixFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7WUFDOUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ3JFLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUN0RSxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN0RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDeEIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVqQyxNQUFNLFdBQVcsR0FBRyxlQUFLLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7WUFDaEYsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBUcmFuc2FjdGlvbiwgVmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi9zcmMvbGliJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7XG4gIEFERF9WQUxJREFUSU9OX01FVEhPRF9JRCxcbiAgVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLRVJfQ09OVFJBQ1RfQUREUkVTU19URVNUTkVULFxufSBmcm9tICcuLi8uLi9zcmMvbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgRXRoZXJldW1BYmkgZnJvbSAnZXRoZXJldW1qcy1hYmknO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vcmVzb3VyY2VzL3ZldCc7XG5pbXBvcnQgeyBCTiB9IGZyb20gJ2V0aGVyZXVtanMtdXRpbCc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vLi4vc3JjL2xpYi91dGlscyc7XG5cbmRlc2NyaWJlKCdWRVQgVmFsaWRhdG9yIFJlZ2lzdHJhdGlvbiBUcmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndHZldCcpKTtcbiAgY29uc3Qgc3Rha2luZ1BlcmlvZCA9IDYwNDgwO1xuICBjb25zdCB2YWxpZGF0b3JBZGRyZXNzID0gJzB4OWE3YUZDQUNjODhjMTA2ZjNiYkQ2QjIxM0NEMDgyMUQ5MjI0ZDk0NSc7XG4gIGNvbnN0IGFtb3VudFRvU3Rha2UgPSAnMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnOyAvLyAyNTAwMDAwMCBWRVRcbiAgY29uc3QgYW1vdW50TGVzc1RoYW5NaW5TdGFrZSA9ICcyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7IC8vIDI0MDAwMDAwIFZFVFxuICBjb25zdCBhbW91bnRHcmVhdGVyVGhhbk1heFN0YWtlID0gJzY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7IC8vIDY1MDAwMDAwMCBWRVRcblxuICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIGEgYmFzaWMgdHJhbnNhY3Rpb24gYnVpbGRlciB3aXRoIGNvbW1vbiBwcm9wZXJ0aWVzXG4gIGNvbnN0IGNyZWF0ZUJhc2ljVHhCdWlsZGVyID0gKCkgPT4ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0VmFsaWRhdG9yUmVnaXN0cmF0aW9uQnVpbGRlcigpO1xuICAgIHR4QnVpbGRlci5zZW5kZXIoJzB4OTM3OGMxMkJENzUwMkExMUY3NzBhNUMxRjIyM2M5NTlCMjgwNWRBOScpO1xuICAgIHR4QnVpbGRlci5jaGFpblRhZygweDI3KTsgLy8gVGVzdG5ldCBjaGFpbiB0YWdcbiAgICB0eEJ1aWxkZXIuYmxvY2tSZWYoJzB4MDAwMDAwMDAwMDAwMDAwMCcpO1xuICAgIHR4QnVpbGRlci5leHBpcmF0aW9uKDY0KTtcbiAgICB0eEJ1aWxkZXIuZ2FzKDEwMDAwMCk7XG4gICAgdHhCdWlsZGVyLmdhc1ByaWNlQ29lZigwKTtcbiAgICB0eEJ1aWxkZXIubm9uY2UoJzEyMzQ1Jyk7XG4gICAgcmV0dXJuIHR4QnVpbGRlcjtcbiAgfTtcblxuICBpdCgnc2hvdWxkIGJ1aWxkIGEgdmFsaWRhdG9yIHJlZ2lzdHJhdGlvbiB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldFZhbGlkYXRvclJlZ2lzdHJhdGlvbkJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyhWQUxJREFUT1JfUkVHSVNUUkFUSU9OX1NUQUtFUl9DT05UUkFDVF9BRERSRVNTX1RFU1RORVQpO1xuICAgIHR4QnVpbGRlci5zdGFraW5nUGVyaW9kKHN0YWtpbmdQZXJpb2QpO1xuICAgIHR4QnVpbGRlci5hbW91bnRUb1N0YWtlKGFtb3VudFRvU3Rha2UpO1xuICAgIHR4QnVpbGRlci5zZW5kZXIoJzB4OTM3OGMxMkJENzUwMkExMUY3NzBhNUMxRjIyM2M5NTlCMjgwNWRBOScpO1xuICAgIHR4QnVpbGRlci5jaGFpblRhZygweDI3KTsgLy8gVGVzdG5ldCBjaGFpbiB0YWdcbiAgICB0eEJ1aWxkZXIuYmxvY2tSZWYoJzB4MDAwMDAwMDAwMDAwMDAwMCcpO1xuICAgIHR4QnVpbGRlci5leHBpcmF0aW9uKDY0KTtcbiAgICB0eEJ1aWxkZXIuZ2FzKDEwMDAwMCk7XG4gICAgdHhCdWlsZGVyLmdhc1ByaWNlQ29lZigwKTtcbiAgICB0eEJ1aWxkZXIubm9uY2UoJzEyMzQ1Jyk7XG4gICAgdHhCdWlsZGVyLnZhbGlkYXRvcih2YWxpZGF0b3JBZGRyZXNzKTtcblxuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgc2hvdWxkLmV4aXN0KHR4KTtcbiAgICB0eC5zaG91bGQuYmUuaW5zdGFuY2VvZihUcmFuc2FjdGlvbik7XG4gICAgdHguc2hvdWxkLmJlLmluc3RhbmNlb2YoVmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24pO1xuXG4gICAgY29uc3QgdmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24gPSB0eCBhcyBWYWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbjtcbiAgICB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5zdGFraW5nQ29udHJhY3RBZGRyZXNzLnNob3VsZC5lcXVhbChcbiAgICAgIFZBTElEQVRPUl9SRUdJU1RSQVRJT05fU1RBS0VSX0NPTlRSQUNUX0FERFJFU1NfVEVTVE5FVFxuICAgICk7XG4gICAgdmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24uc3Rha2luZ1BlcmlvZC5zaG91bGQuZXF1YWwoc3Rha2luZ1BlcmlvZCk7XG4gICAgdmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24udmFsaWRhdG9yLnNob3VsZC5lcXVhbCh2YWxpZGF0b3JBZGRyZXNzKTtcbiAgICB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5hbW91bnRUb1N0YWtlLnNob3VsZC5lcXVhbChhbW91bnRUb1N0YWtlKTtcblxuICAgIC8vIFZlcmlmeSBjbGF1c2VzXG4gICAgdmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24uY2xhdXNlcy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgIHNob3VsZC5leGlzdCh2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5jbGF1c2VzWzBdLnRvKTtcbiAgICBzaG91bGQuZXhpc3QodmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24uY2xhdXNlc1swXS52YWx1ZSk7XG4gICAgdmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24uY2xhdXNlc1swXS50bz8uc2hvdWxkLmVxdWFsKFxuICAgICAgVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLRVJfQ09OVFJBQ1RfQUREUkVTU19URVNUTkVUXG4gICAgKTtcbiAgICB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5jbGF1c2VzWzBdLnZhbHVlPy5zaG91bGQuZXF1YWwoYW1vdW50VG9TdGFrZSk7XG5cbiAgICAvLyBWZXJpZnkgdHJhbnNhY3Rpb24gZGF0YSBpcyBjb3JyZWN0bHkgZW5jb2RlZCB1c2luZyBldGhlcmV1bUFCSVxuICAgIHNob3VsZC5leGlzdCh2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5jbGF1c2VzWzBdLmRhdGEpO1xuICAgIGNvbnN0IHR4RGF0YSA9IHZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uLmNsYXVzZXNbMF0uZGF0YTtcbiAgICB0eERhdGEuc2hvdWxkLnN0YXJ0V2l0aChBRERfVkFMSURBVElPTl9NRVRIT0RfSUQpO1xuXG4gICAgLy8gVmVyaWZ5IHRoZSBlbmNvZGVkIGRhdGEgbWF0Y2hlcyB3aGF0IHdlIGV4cGVjdCBmcm9tIGV0aGVyZXVtQUJJXG4gICAgY29uc3QgbWV0aG9kTmFtZSA9ICdhZGRWYWxpZGF0aW9uJztcbiAgICBjb25zdCB0eXBlcyA9IFsnYWRkcmVzcycsICd1aW50MzInXTtcbiAgICBjb25zdCBwYXJhbXMgPSBbdmFsaWRhdG9yQWRkcmVzcywgbmV3IEJOKHN0YWtpbmdQZXJpb2QpXTtcblxuICAgIGNvbnN0IG1ldGhvZCA9IEV0aGVyZXVtQWJpLm1ldGhvZElEKG1ldGhvZE5hbWUsIHR5cGVzKTtcbiAgICBjb25zdCBhcmdzID0gRXRoZXJldW1BYmkucmF3RW5jb2RlKHR5cGVzLCBwYXJhbXMpO1xuICAgIGNvbnN0IGV4cGVjdGVkRGF0YSA9ICcweCcgKyBCdWZmZXIuY29uY2F0KFttZXRob2QsIGFyZ3NdKS50b1N0cmluZygnaGV4Jyk7XG5cbiAgICB0eERhdGEuc2hvdWxkLmVxdWFsKGV4cGVjdGVkRGF0YSk7XG5cbiAgICAvLyBWZXJpZnkgcmVjaXBpZW50c1xuICAgIHZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uLnJlY2lwaWVudHMubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICB2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5yZWNpcGllbnRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKFxuICAgICAgVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLRVJfQ09OVFJBQ1RfQUREUkVTU19URVNUTkVUXG4gICAgKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0ZhaWx1cmUgc2NlbmFyaW9zJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgdGhyb3cgZXJyb3Igd2hlbiBzdGFraW5nQ29udHJhY3RBZGRyZXNzIGlzIG1pc3NpbmcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBjcmVhdGVCYXNpY1R4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLnN0YWtpbmdQZXJpb2Qoc3Rha2luZ1BlcmlvZCk7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdG9yKHZhbGlkYXRvckFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLmFtb3VudFRvU3Rha2UoYW1vdW50VG9TdGFrZSk7XG5cbiAgICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ1N0YWtpbmcgY29udHJhY3QgYWRkcmVzcyBpcyByZXF1aXJlZCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciB3aGVuIHN0YWtpbmdQZXJpb2QgaXMgbWlzc2luZycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGNyZWF0ZUJhc2ljVHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIuc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyhWQUxJREFUT1JfUkVHSVNUUkFUSU9OX1NUQUtFUl9DT05UUkFDVF9BRERSRVNTX1RFU1RORVQpO1xuICAgICAgdHhCdWlsZGVyLnZhbGlkYXRvcih2YWxpZGF0b3JBZGRyZXNzKTtcbiAgICAgIHR4QnVpbGRlci5hbW91bnRUb1N0YWtlKGFtb3VudFRvU3Rha2UpO1xuXG4gICAgICBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdTdGFraW5nIHBlcmlvZCBpcyByZXF1aXJlZCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciB3aGVuIHZhbGlkYXRvciBhZGRyZXNzIGlzIG1pc3NpbmcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBjcmVhdGVCYXNpY1R4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLnN0YWtpbmdDb250cmFjdEFkZHJlc3MoVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLRVJfQ09OVFJBQ1RfQUREUkVTU19URVNUTkVUKTtcbiAgICAgIHR4QnVpbGRlci5zdGFraW5nUGVyaW9kKHN0YWtpbmdQZXJpb2QpO1xuICAgICAgdHhCdWlsZGVyLmFtb3VudFRvU3Rha2UoYW1vdW50VG9TdGFrZSk7XG5cbiAgICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ1ZhbGlkYXRvciBhZGRyZXNzIGlzIHJlcXVpcmVkJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gYW1vdW50IGlzIG1pc3NpbmcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBjcmVhdGVCYXNpY1R4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLnN0YWtpbmdDb250cmFjdEFkZHJlc3MoVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLRVJfQ09OVFJBQ1RfQUREUkVTU19URVNUTkVUKTtcbiAgICAgIHR4QnVpbGRlci5zdGFraW5nUGVyaW9kKHN0YWtpbmdQZXJpb2QpO1xuICAgICAgdHhCdWlsZGVyLnZhbGlkYXRvcih2YWxpZGF0b3JBZGRyZXNzKTtcblxuICAgICAgYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgnU3Rha2luZyBhbW91bnQgaXMgcmVxdWlyZWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgZXJyb3Igd2hlbiBhbW91bnQgaXMgbGVzcyB0aGFuIG1pbmltdW0gc3Rha2UnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBjcmVhdGVCYXNpY1R4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLnN0YWtpbmdDb250cmFjdEFkZHJlc3MoVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLRVJfQ09OVFJBQ1RfQUREUkVTU19URVNUTkVUKTtcbiAgICAgIHR4QnVpbGRlci5zdGFraW5nUGVyaW9kKHN0YWtpbmdQZXJpb2QpO1xuICAgICAgdHhCdWlsZGVyLnZhbGlkYXRvcih2YWxpZGF0b3JBZGRyZXNzKTtcbiAgICAgIHR4QnVpbGRlci5hbW91bnRUb1N0YWtlKGFtb3VudExlc3NUaGFuTWluU3Rha2UpO1xuXG4gICAgICBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdTdGFraW5nIGFtb3VudCBtdXN0IGJlIGJldHdlZW4gMjVNIGFuZCA2MDBNIFZFVCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciB3aGVuIGFtb3VudCBpcyBncmVhdGVyIHRoYW4gbWF4aW11bSBzdGFrZScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGNyZWF0ZUJhc2ljVHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIuc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyhWQUxJREFUT1JfUkVHSVNUUkFUSU9OX1NUQUtFUl9DT05UUkFDVF9BRERSRVNTX1RFU1RORVQpO1xuICAgICAgdHhCdWlsZGVyLnN0YWtpbmdQZXJpb2Qoc3Rha2luZ1BlcmlvZCk7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdG9yKHZhbGlkYXRvckFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLmFtb3VudFRvU3Rha2UoYW1vdW50R3JlYXRlclRoYW5NYXhTdGFrZSk7XG5cbiAgICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ1N0YWtpbmcgYW1vdW50IG11c3QgYmUgYmV0d2VlbiAyNU0gYW5kIDYwME0gVkVUJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIHdoZW4gc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyBpcyBpbnZhbGlkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gY3JlYXRlQmFzaWNUeEJ1aWxkZXIoKTtcblxuICAgICAgLy8gSW52YWxpZCBhZGRyZXNzICh3cm9uZyBmb3JtYXQpXG4gICAgICBzaG91bGQoKCkgPT4ge1xuICAgICAgICB0eEJ1aWxkZXIuc3Rha2luZ0NvbnRyYWN0QWRkcmVzcygnaW52YWxpZC1hZGRyZXNzJyk7XG4gICAgICB9KS50aHJvdygvSW52YWxpZCBhZGRyZXNzLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIHRyYW5zYWN0aW9uIHdpdGggdW5kZWZpbmVkIHNlbmRlciBidXQgaW5jbHVkZSBpdCBpbiBpbnB1dHMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldFZhbGlkYXRvclJlZ2lzdHJhdGlvbkJ1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlci5zdGFraW5nQ29udHJhY3RBZGRyZXNzKFZBTElEQVRPUl9SRUdJU1RSQVRJT05fU1RBS0VSX0NPTlRSQUNUX0FERFJFU1NfVEVTVE5FVCk7XG4gICAgICB0eEJ1aWxkZXIuc3Rha2luZ1BlcmlvZChzdGFraW5nUGVyaW9kKTtcbiAgICAgIHR4QnVpbGRlci5hbW91bnRUb1N0YWtlKGFtb3VudFRvU3Rha2UpO1xuICAgICAgdHhCdWlsZGVyLmNoYWluVGFnKDB4MjcpO1xuICAgICAgdHhCdWlsZGVyLmJsb2NrUmVmKCcweDAwMDAwMDAwMDAwMDAwMDAnKTtcbiAgICAgIHR4QnVpbGRlci5leHBpcmF0aW9uKDY0KTtcbiAgICAgIHR4QnVpbGRlci5nYXMoMTAwMDAwKTtcbiAgICAgIHR4QnVpbGRlci5nYXNQcmljZUNvZWYoMCk7XG4gICAgICB0eEJ1aWxkZXIubm9uY2UoJzEyMzQ1Jyk7XG4gICAgICB0eEJ1aWxkZXIudmFsaWRhdG9yKHZhbGlkYXRvckFkZHJlc3MpO1xuICAgICAgLy8gTm90IHNldHRpbmcgc2VuZGVyXG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICB0eC5zaG91bGQuYmUuaW5zdGFuY2VvZihWYWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbik7XG5cbiAgICAgIGNvbnN0IHZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uID0gdHggYXMgVmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb247XG4gICAgICAvLyBWZXJpZnkgdGhlIHRyYW5zYWN0aW9uIGhhcyBpbnB1dHMgYnV0IHdpdGggdW5kZWZpbmVkIGFkZHJlc3NcbiAgICAgIHZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uLmlucHV0cy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgc2hvdWxkLm5vdC5leGlzdCh2YWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbi5pbnB1dHNbMF0uYWRkcmVzcyk7XG5cbiAgICAgIC8vIFZlcmlmeSB0aGUgdHJhbnNhY3Rpb24gaGFzIHRoZSBjb3JyZWN0IG91dHB1dFxuICAgICAgdmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24ub3V0cHV0cy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgICAgdmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24ub3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbChcbiAgICAgICAgVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLRVJfQ09OVFJBQ1RfQUREUkVTU19URVNUTkVUXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB1c2UgbmV0d29yayBkZWZhdWx0IGNoYWluVGFnIHdoZW4gbm90IGV4cGxpY2l0bHkgc2V0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRWYWxpZGF0b3JSZWdpc3RyYXRpb25CdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIuc3Rha2luZ0NvbnRyYWN0QWRkcmVzcyhWQUxJREFUT1JfUkVHSVNUUkFUSU9OX1NUQUtFUl9DT05UUkFDVF9BRERSRVNTX1RFU1RORVQpO1xuICAgICAgdHhCdWlsZGVyLnN0YWtpbmdQZXJpb2Qoc3Rha2luZ1BlcmlvZCk7XG4gICAgICAvLyBOb3Qgc2V0dGluZyBjaGFpblRhZ1xuICAgICAgdHhCdWlsZGVyLmJsb2NrUmVmKCcweDAwMDAwMDAwMDAwMDAwMDAnKTtcbiAgICAgIHR4QnVpbGRlci5hbW91bnRUb1N0YWtlKGFtb3VudFRvU3Rha2UpO1xuICAgICAgdHhCdWlsZGVyLmV4cGlyYXRpb24oNjQpO1xuICAgICAgdHhCdWlsZGVyLmdhcygxMDAwMDApO1xuICAgICAgdHhCdWlsZGVyLmdhc1ByaWNlQ29lZigwKTtcbiAgICAgIHR4QnVpbGRlci5ub25jZSgnMTIzNDUnKTtcbiAgICAgIHR4QnVpbGRlci5zZW5kZXIoJzB4OTM3OGMxMkJENzUwMkExMUY3NzBhNUMxRjIyM2M5NTlCMjgwNWRBOScpO1xuICAgICAgdHhCdWlsZGVyLnZhbGlkYXRvcih2YWxpZGF0b3JBZGRyZXNzKTtcblxuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIHR4LnNob3VsZC5iZS5pbnN0YW5jZW9mKFZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uKTtcblxuICAgICAgY29uc3QgdmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24gPSB0eCBhcyBWYWxpZGF0b3JSZWdpc3RyYXRpb25UcmFuc2FjdGlvbjtcbiAgICAgIC8vIFZlcmlmeSB0aGUgY2hhaW5UYWcgaXMgc2V0IHRvIHRoZSB0ZXN0bmV0IGRlZmF1bHQgKDM5KVxuICAgICAgdmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24uY2hhaW5UYWcuc2hvdWxkLmVxdWFsKDM5KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2RlY29kZUFkZFZhbGlkYXRpb25EYXRhJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgY29ycmVjdGx5IGRlY29kZSB2YWxpZGF0b3IgcmVnaXN0cmF0aW9uIHRyYW5zYWN0aW9uIGRhdGEgd2l0aCBwcm9wZXIgYWRkcmVzcyBmb3JtYXR0aW5nJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZGVjb2RlZERhdGEgPSB1dGlscy5kZWNvZGVBZGRWYWxpZGF0aW9uRGF0YSh0ZXN0RGF0YS5WQUxJREFUT1JfUkVHSVNUUkFUSU9OX0NMQVVTRV9EQVRBKTtcblxuICAgICAgZGVjb2RlZERhdGEucGVyaW9kLnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5TVEFLSU5HX1BFUklPRCk7XG4gICAgICBkZWNvZGVkRGF0YS52YWxpZGF0b3Iuc2hvdWxkLmVxdWFsKHRlc3REYXRhLlZBTElEQVRPUl9SRUdJU1RSQVRJT05fVkFMSURBVE9SKTtcbiAgICAgIGRlY29kZWREYXRhLnZhbGlkYXRvci5zaG91bGQuc3RhcnRXaXRoKCcweCcpO1xuICAgICAgZGVjb2RlZERhdGEudmFsaWRhdG9yLnNob3VsZC5lcXVhbChkZWNvZGVkRGF0YS52YWxpZGF0b3IudG9Mb3dlckNhc2UoKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGNvcnJlY3RseSBkZXNlcmlhbGl6ZSByZWFsIHNpZ25lZCB2YWxpZGF0b3IgcmVnaXN0cmF0aW9uIHRyYW5zYWN0aW9uIGZyb20gcmF3IGhleCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZnJvbSh0ZXN0RGF0YS5WQUxJREFUT1JfUkVHSVNUUkFUSU9OX1RSQU5TQUNUSU9OKTtcbiAgICAgIGNvbnN0IHR4ID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uIGFzIFZhbGlkYXRvclJlZ2lzdHJhdGlvblRyYW5zYWN0aW9uO1xuICAgICAgdHguc2hvdWxkLmJlLmluc3RhbmNlb2YoVmFsaWRhdG9yUmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24pO1xuICAgICAgdHguc3Rha2luZ0NvbnRyYWN0QWRkcmVzcy5zaG91bGQuZXF1YWwodGVzdERhdGEuVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLRVJfQ09OVFJBQ1QpO1xuICAgICAgdHguc3Rha2luZ1BlcmlvZC5zaG91bGQuZXF1YWwodGVzdERhdGEuVkFMSURBVE9SX1JFR0lTVFJBVElPTl9TVEFLSU5HX1BFUklPRCk7XG4gICAgICB0eC52YWxpZGF0b3Iuc2hvdWxkLmVxdWFsKHRlc3REYXRhLlZBTElEQVRPUl9SRUdJU1RSQVRJT05fVkFMSURBVE9SKTtcbiAgICAgIHR4LmFtb3VudFRvU3Rha2Uuc2hvdWxkLmVxdWFsKHRlc3REYXRhLlZBTElEQVRPUl9SRUdJU1RSQVRJT05fQU1PVU5UKTtcbiAgICAgIHR4LnZhbGlkYXRvci5zaG91bGQuc3RhcnRXaXRoKCcweCcpO1xuICAgICAgdHgudmFsaWRhdG9yLnNob3VsZC5lcXVhbCh0eC52YWxpZGF0b3IudG9Mb3dlckNhc2UoKSk7XG4gICAgICBzaG91bGQuZXhpc3QodHguaW5wdXRzKTtcbiAgICAgIHR4LmlucHV0cy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuXG4gICAgICBjb25zdCBkZWNvZGVkRGF0YSA9IHV0aWxzLmRlY29kZUFkZFZhbGlkYXRpb25EYXRhKHR4LmNsYXVzZXNbMF0uZGF0YSk7XG4gICAgICBkZWNvZGVkRGF0YS5wZXJpb2Quc2hvdWxkLmVxdWFsKHRlc3REYXRhLlZBTElEQVRPUl9SRUdJU1RSQVRJT05fU1RBS0lOR19QRVJJT0QpO1xuICAgICAgZGVjb2RlZERhdGEudmFsaWRhdG9yLnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5WQUxJREFUT1JfUkVHSVNUUkFUSU9OX1ZBTElEQVRPUik7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=