@gearbox-protocol/sdk 0.0.7 → 0.0.10

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.
Files changed (47) hide show
  1. package/lib/core/oracles.d.ts +41 -5
  2. package/lib/core/oracles.js +10 -0
  3. package/lib/core/priceFeeds.d.ts +3 -0
  4. package/lib/core/priceFeeds.js +391 -0
  5. package/lib/core/token.d.ts +3 -0
  6. package/lib/core/token.js +8 -3
  7. package/lib/index.d.ts +1 -0
  8. package/lib/index.js +1 -0
  9. package/package.json +1 -1
  10. package/src/core/oracles.ts +50 -5
  11. package/src/core/priceFeeds.ts +422 -0
  12. package/src/core/token.ts +9 -4
  13. package/src/index.ts +1 -0
  14. package/lib/core/event.d.ts +0 -42
  15. package/lib/core/event.js +0 -2
  16. package/lib/types/AbstractAccountMiner.d.ts +0 -143
  17. package/lib/types/AccountMinerAuction.d.ts +0 -391
  18. package/lib/types/AccountMinerMock.d.ts +0 -241
  19. package/lib/types/AccountMinerNonReceivableTest.d.ts +0 -127
  20. package/lib/types/AccountMinerOwnFunds.d.ts +0 -218
  21. package/lib/types/AdaptersDeployer.d.ts +0 -262
  22. package/lib/types/CoreDeployer.d.ts +0 -394
  23. package/lib/types/Deployer.d.ts +0 -224
  24. package/lib/types/GenesisDeployer.d.ts +0 -282
  25. package/lib/types/ICreditAccountData.d.ts +0 -347
  26. package/lib/types/PoolDeployer.d.ts +0 -282
  27. package/lib/types/Proxy.d.ts +0 -78
  28. package/lib/types/VestingDeployer.d.ts +0 -247
  29. package/lib/types/factories/AbstractAccountMiner__factory.d.ts +0 -30
  30. package/lib/types/factories/AbstractAccountMiner__factory.js +0 -61
  31. package/lib/types/factories/AccountMinerAuction__factory.js +0 -304
  32. package/lib/types/factories/AccountMinerMock__factory.js +0 -196
  33. package/lib/types/factories/AccountMinerNonReceivableTest__factory.js +0 -84
  34. package/lib/types/factories/AccountMinerOwnFunds__factory.js +0 -181
  35. package/lib/types/factories/AdaptersDeployer__factory.d.ts +0 -85
  36. package/lib/types/factories/AdaptersDeployer__factory.js +0 -202
  37. package/lib/types/factories/CoreDeployer__factory.js +0 -331
  38. package/lib/types/factories/Deployer__factory.js +0 -248
  39. package/lib/types/factories/GenesisDeployer__factory.d.ts +0 -108
  40. package/lib/types/factories/GenesisDeployer__factory.js +0 -231
  41. package/lib/types/factories/ICreditAccountData__factory.d.ts +0 -35
  42. package/lib/types/factories/ICreditAccountData__factory.js +0 -216
  43. package/lib/types/factories/PoolDeployer__factory.d.ts +0 -113
  44. package/lib/types/factories/PoolDeployer__factory.js +0 -257
  45. package/lib/types/factories/Proxy__factory.d.ts +0 -13
  46. package/lib/types/factories/Proxy__factory.js +0 -30
  47. package/lib/types/factories/VestingDeployer__factory.js +0 -216
@@ -1,181 +0,0 @@
1
- "use strict";
2
- /* Autogenerated file. Do not edit manually. */
3
- /* tslint:disable */
4
- /* eslint-disable */
5
- var __extends = (this && this.__extends) || (function () {
6
- var extendStatics = function (d, b) {
7
- extendStatics = Object.setPrototypeOf ||
8
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
9
- function (d, b) { for (var p in b)
10
- if (Object.prototype.hasOwnProperty.call(b, p))
11
- d[p] = b[p]; };
12
- return extendStatics(d, b);
13
- };
14
- return function (d, b) {
15
- if (typeof b !== "function" && b !== null)
16
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
17
- extendStatics(d, b);
18
- function __() { this.constructor = d; }
19
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
20
- };
21
- })();
22
- Object.defineProperty(exports, "__esModule", { value: true });
23
- exports.AccountMinerOwnFunds__factory = void 0;
24
- var ethers_1 = require("ethers");
25
- var _abi = [
26
- {
27
- inputs: [
28
- {
29
- internalType: "address",
30
- name: "addressProvider",
31
- type: "address",
32
- },
33
- ],
34
- stateMutability: "nonpayable",
35
- type: "constructor",
36
- },
37
- {
38
- anonymous: false,
39
- inputs: [
40
- {
41
- indexed: true,
42
- internalType: "address",
43
- name: "sponsor",
44
- type: "address",
45
- },
46
- {
47
- indexed: false,
48
- internalType: "uint256",
49
- name: "amount",
50
- type: "uint256",
51
- },
52
- ],
53
- name: "BalanceAdded",
54
- type: "event",
55
- },
56
- {
57
- anonymous: false,
58
- inputs: [
59
- {
60
- indexed: false,
61
- internalType: "address",
62
- name: "account",
63
- type: "address",
64
- },
65
- ],
66
- name: "Paused",
67
- type: "event",
68
- },
69
- {
70
- anonymous: false,
71
- inputs: [
72
- {
73
- indexed: false,
74
- internalType: "address",
75
- name: "account",
76
- type: "address",
77
- },
78
- ],
79
- name: "Unpaused",
80
- type: "event",
81
- },
82
- {
83
- inputs: [],
84
- name: "accountFactory",
85
- outputs: [
86
- {
87
- internalType: "address",
88
- name: "",
89
- type: "address",
90
- },
91
- ],
92
- stateMutability: "view",
93
- type: "function",
94
- },
95
- {
96
- inputs: [],
97
- name: "kind",
98
- outputs: [
99
- {
100
- internalType: "bytes32",
101
- name: "",
102
- type: "bytes32",
103
- },
104
- ],
105
- stateMutability: "view",
106
- type: "function",
107
- },
108
- {
109
- inputs: [
110
- {
111
- internalType: "address payable",
112
- name: "trader",
113
- type: "address",
114
- },
115
- ],
116
- name: "mineAccount",
117
- outputs: [],
118
- stateMutability: "nonpayable",
119
- type: "function",
120
- },
121
- {
122
- inputs: [],
123
- name: "pause",
124
- outputs: [],
125
- stateMutability: "nonpayable",
126
- type: "function",
127
- },
128
- {
129
- inputs: [],
130
- name: "paused",
131
- outputs: [
132
- {
133
- internalType: "bool",
134
- name: "",
135
- type: "bool",
136
- },
137
- ],
138
- stateMutability: "view",
139
- type: "function",
140
- },
141
- {
142
- inputs: [],
143
- name: "unpause",
144
- outputs: [],
145
- stateMutability: "nonpayable",
146
- type: "function",
147
- },
148
- {
149
- stateMutability: "payable",
150
- type: "receive",
151
- },
152
- ];
153
- var _bytecode = "0x60a060405234801561001057600080fd5b50604051610e01380380610e018339818101604052602081101561003357600080fd5b810190808051906020019092919050505080818073ffffffffffffffffffffffffffffffffffffffff16639068a8686040518163ffffffff1660e01b815260040160206040518083038186803b15801561008c57600080fd5b505afa1580156100a0573d6000803e3d6000fd5b505050506040513d60208110156100b657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250505060008060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff1663087376956040518163ffffffff1660e01b815260040160206040518083038186803b15801561015e57600080fd5b505afa158015610172573d6000803e3d6000fd5b505050506040513d602081101561018857600080fd5b8101908080519060200190929190505050600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600180819055505060805160601c610bfd610204600039806104b552806106845250610bfd6000f3fe6080604052600436106100595760003560e01c806304baa00b146101b65780633f4ba83a146101e15780635c975abb146101f8578063687cd9c1146102255780638456cb59146102665780639849e42f1461027d576101b1565b366101b1576100666102ce565b156100d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60026001541415610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055503373ffffffffffffffffffffffffffffffffffffffff167fe96dd7a15a3974e8e7d5eb80de2cb6fd69907a1ee089170cd976cfffaedfa8ac346040518082815260200191505060405180910390a260018081905550005b600080fd5b3480156101c257600080fd5b506101cb6102e4565b6040518082815260200191505060405180910390f35b3480156101ed57600080fd5b506101f6610308565b005b34801561020457600080fd5b5061020d6102ce565b60405180821515815260200191505060405180910390f35b34801561023157600080fd5b5061023a6104b3565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027257600080fd5b5061027b6104d7565b005b34801561028957600080fd5b506102cc600480360360208110156102a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610682565b005b60008060009054906101000a900460ff16905090565b7f6f776e000000000000000000000000000000000000000000000000000000000081565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d4eb5db0336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561039157600080fd5b505afa1580156103a5573d6000803e3d6000fd5b505050506040513d60208110156103bb57600080fd5b81019080805190602001909291905050506040518060400160405280600281526020017f4c31000000000000000000000000000000000000000000000000000000000000815250906104a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561046d578082015181840152602081019050610452565b50505050905090810190601f16801561049a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506104b1610842565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633a41ec64336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561056057600080fd5b505afa158015610574573d6000803e3d6000fd5b505050506040513d602081101561058a57600080fd5b81019080805190602001909291905050506040518060400160405280600281526020017f4c3100000000000000000000000000000000000000000000000000000000000081525090610677576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561063c578082015181840152602081019050610621565b50505050905090810190601f1680156106695780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5061068061092c565b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146040518060400160405280600281526020017f4633000000000000000000000000000000000000000000000000000000000000815250906107ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610772578082015181840152602081019050610757565b50505050905090810190601f16801561079f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060026001541415610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260018190555061083881610a17565b6001808190555050565b61084a6102ce565b6108bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b60008060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6108ff610a4b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6109346102ce565b156109a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b60016000806101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586109ea610a4b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b610a4867016345785d8a00008273ffffffffffffffffffffffffffffffffffffffff16610a5390919063ffffffff16565b50565b600033905090565b80471015610ac9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a20696e73756666696369656e742062616c616e636500000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405180600001905060006040518083038185875af1925050503d8060008114610b29576040519150601f19603f3d011682016040523d82523d6000602084013e610b2e565b606091505b5050905080610b88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180610b8e603a913960400191505060405180910390fd5b50505056fe416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564a264697066735822122030ba8878beb7b3449ee9ee614318b3e22d17aed9bbb88676b94c44997965491b64736f6c63430007060033";
154
- var AccountMinerOwnFunds__factory = /** @class */ (function (_super) {
155
- __extends(AccountMinerOwnFunds__factory, _super);
156
- function AccountMinerOwnFunds__factory(signer) {
157
- return _super.call(this, _abi, _bytecode, signer) || this;
158
- }
159
- AccountMinerOwnFunds__factory.prototype.deploy = function (addressProvider, overrides) {
160
- return _super.prototype.deploy.call(this, addressProvider, overrides || {});
161
- };
162
- AccountMinerOwnFunds__factory.prototype.getDeployTransaction = function (addressProvider, overrides) {
163
- return _super.prototype.getDeployTransaction.call(this, addressProvider, overrides || {});
164
- };
165
- AccountMinerOwnFunds__factory.prototype.attach = function (address) {
166
- return _super.prototype.attach.call(this, address);
167
- };
168
- AccountMinerOwnFunds__factory.prototype.connect = function (signer) {
169
- return _super.prototype.connect.call(this, signer);
170
- };
171
- AccountMinerOwnFunds__factory.createInterface = function () {
172
- return new ethers_1.utils.Interface(_abi);
173
- };
174
- AccountMinerOwnFunds__factory.connect = function (address, signerOrProvider) {
175
- return new ethers_1.Contract(address, _abi, signerOrProvider);
176
- };
177
- AccountMinerOwnFunds__factory.bytecode = _bytecode;
178
- AccountMinerOwnFunds__factory.abi = _abi;
179
- return AccountMinerOwnFunds__factory;
180
- }(ethers_1.ContractFactory));
181
- exports.AccountMinerOwnFunds__factory = AccountMinerOwnFunds__factory;
@@ -1,85 +0,0 @@
1
- import { Signer, BigNumberish, ContractFactory, Overrides } from "ethers";
2
- import { Provider, TransactionRequest } from "@ethersproject/providers";
3
- import type { AdaptersDeployer, AdaptersDeployerInterface } from "../AdaptersDeployer";
4
- export declare class AdaptersDeployer__factory extends ContractFactory {
5
- constructor(signer?: Signer);
6
- deploy(opts: {
7
- addressProvider: string;
8
- creditManager: string;
9
- adapters: {
10
- targetContract: string;
11
- adapterType: BigNumberish;
12
- }[];
13
- }, overrides?: Overrides & {
14
- from?: string | Promise<string>;
15
- }): Promise<AdaptersDeployer>;
16
- getDeployTransaction(opts: {
17
- addressProvider: string;
18
- creditManager: string;
19
- adapters: {
20
- targetContract: string;
21
- adapterType: BigNumberish;
22
- }[];
23
- }, overrides?: Overrides & {
24
- from?: string | Promise<string>;
25
- }): TransactionRequest;
26
- attach(address: string): AdaptersDeployer;
27
- connect(signer: Signer): AdaptersDeployer__factory;
28
- static readonly bytecode = "0x60806040523480156200001157600080fd5b506040516200cb603803806200cb60833981810160405281019062000037919062000787565b6000620000496200055f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508060000151600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806020015173ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200017757600080fd5b505afa1580156200018c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b291906200075b565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600080600090505b82604001515181101562000556576001836040015182815181106200021b57fe5b602002602001015160200151141562000291578260200151836040015182815181106200024457fe5b6020026020010151600001516040516200025e9062000567565b6200026b929190620007dd565b604051809103906000f08015801562000288573d6000803e3d6000fd5b5091506200042a565b600283604001518281518110620002a457fe5b60200260200101516020015114156200031a57826020015183604001518281518110620002cd57fe5b602002602001015160000151604051620002e79062000575565b620002f4929190620007dd565b604051809103906000f08015801562000311573d6000803e3d6000fd5b50915062000429565b6003836040015182815181106200032d57fe5b6020026020010151602001511415620003a3578260200151836040015182815181106200035657fe5b602002602001015160000151604051620003709062000583565b6200037d929190620007dd565b604051809103906000f0801580156200039a573d6000803e3d6000fd5b50915062000428565b600483604001518281518110620003b657fe5b60200260200101516020015114156200042757826020015183604001518281518110620003df57fe5b602002602001015160000151604051620003f99062000591565b62000406929190620007dd565b604051809103906000f08015801562000423573d6000803e3d6000fd5b5091505b5b5b5b600060405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001856040015184815181106200046457fe5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168152509050600381908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050508080600101915050620001fa565b5050506200090f565b600033905090565b61410d806200147b83390190565b613218806200558883390190565b61154d80620087a083390190565b612e738062009ced83390190565b6000620005b6620005b0846200083e565b6200080a565b90508083825260208201905082856040860282011115620005d657600080fd5b60005b858110156200060a5781620005ef88826200066f565b845260208401935060408301925050600181019050620005d9565b5050509392505050565b6000815190506200062581620008c1565b92915050565b600082601f8301126200063d57600080fd5b81516200064f8482602086016200059f565b91505092915050565b6000815190506200066981620008db565b92915050565b6000604082840312156200068257600080fd5b6200068e60406200080a565b90506000620006a08482850162000614565b6000830152506020620006b68482850162000744565b60208301525092915050565b600060608284031215620006d557600080fd5b620006e160606200080a565b90506000620006f38482850162000614565b6000830152506020620007098482850162000614565b602083015250604082015167ffffffffffffffff8111156200072a57600080fd5b62000738848285016200062b565b60408301525092915050565b6000815190506200075581620008f5565b92915050565b6000602082840312156200076e57600080fd5b60006200077e8482850162000658565b91505092915050565b6000602082840312156200079a57600080fd5b600082015167ffffffffffffffff811115620007b557600080fd5b620007c384828501620006c2565b91505092915050565b620007d7816200086d565b82525050565b6000604082019050620007f46000830185620007cc565b620008036020830184620007cc565b9392505050565b6000604051905081810181811067ffffffffffffffff82111715620008345762000833620008bf565b5b8060405250919050565b600067ffffffffffffffff8211156200085c576200085b620008bf565b5b602082029050602081019050919050565b60006200087a8262000895565b9050919050565b60006200088e826200086d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565bfe5b620008cc816200086d565b8114620008d857600080fd5b50565b620008e68162000881565b8114620008f257600080fd5b50565b6200090081620008b5565b81146200090c57600080fd5b50565b610b5c806200091f6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638da5cb5b1161005b5780638da5cb5b146100db578063bf0de1cf146100f9578063f2fde38b14610103578063f93f515b1461011f5761007d565b80632954018c146100825780634ef501ac146100a0578063715018a6146100d1575b600080fd5b61008a61013d565b60405161009791906109e2565b60405180910390f35b6100ba60048036038101906100b5919061091e565b610163565b6040516100c89291906109b9565b60405180910390f35b6100d96101d7565b005b6100e3610344565b6040516100f09190610983565b60405180910390f35b61010161036d565b005b61011d600480360381019061011891906108cc565b61066d565b005b61012761085f565b60405161013491906109fd565b60405180910390f35b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061017357600080fd5b90600052602060002090600202016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082565b6101df610885565b73ffffffffffffffffffffffffffffffffffffffff166101fd610344565b73ffffffffffffffffffffffffffffffffffffffff1614610286576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610375610885565b73ffffffffffffffffffffffffffffffffffffffff16610393610344565b73ffffffffffffffffffffffffffffffffffffffff161461041c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663087376956040518163ffffffff1660e01b815260040160206040518083038186803b15801561048657600080fd5b505afa15801561049a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104be91906108f5565b905060005b6003805490508110156105e857600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637bccacee6003838154811061051b57fe5b906000526020600020906002020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003848154811061055a57fe5b906000526020600020906002020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016105a99291906109b9565b600060405180830381600087803b1580156105c357600080fd5b505af11580156105d7573d6000803e3d6000fd5b5050505080806001019150506104c3565b508073ffffffffffffffffffffffffffffffffffffffff1663f2fde38b336040518263ffffffff1660e01b8152600401610622919061099e565b600060405180830381600087803b15801561063c57600080fd5b505af1158015610650573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16ff5b610675610885565b73ffffffffffffffffffffffffffffffffffffffff16610693610344565b73ffffffffffffffffffffffffffffffffffffffff161461071c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610b016026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008135905061089c81610ad2565b92915050565b6000815190506108b181610ad2565b92915050565b6000813590506108c681610ae9565b92915050565b6000602082840312156108de57600080fd5b60006108ec8482850161088d565b91505092915050565b60006020828403121561090757600080fd5b6000610915848285016108a2565b91505092915050565b60006020828403121561093057600080fd5b600061093e848285016108b7565b91505092915050565b61095081610a54565b82525050565b61095f81610a18565b82525050565b61096e81610a66565b82525050565b61097d81610a8a565b82525050565b60006020820190506109986000830184610956565b92915050565b60006020820190506109b36000830184610947565b92915050565b60006040820190506109ce6000830185610956565b6109db6020830184610956565b9392505050565b60006020820190506109f76000830184610965565b92915050565b6000602082019050610a126000830184610974565b92915050565b6000610a2382610a2a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610a5f82610aae565b9050919050565b6000610a7182610a78565b9050919050565b6000610a8382610a2a565b9050919050565b6000610a9582610a9c565b9050919050565b6000610aa782610a2a565b9050919050565b6000610ab982610ac0565b9050919050565b6000610acb82610a2a565b9050919050565b610adb81610a18565b8114610ae657600080fd5b50565b610af281610a4a565b8114610afd57600080fd5b5056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a26469706673582212202efeb34fc46421cb196845f0f5c3ced9c1f5ca7e0c952205c3ae88342c561ae364736f6c6343000706003360806040523480156200001157600080fd5b506040516200410d3803806200410d833981810160405260408110156200003757600080fd5b8101908080519060200190929190805190602001909291905050506001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015620000c55750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6040518060400160405280600281526020017f5a3000000000000000000000000000000000000000000000000000000000000081525090620001a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001695780820151818401526020810190506200014c565b50505050905090810190601f168015620001975780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200025057600080fd5b505afa15801562000265573d6000803e3d6000fd5b505050506040513d60208110156200027c57600080fd5b8101908080519060200190929190505050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050613ded80620003206000396000f3fe60806040526004361061019c5760003560e01c8063ad5c4648116100ec578063d06ca61f1161008a578063f305d71911610064578063f305d719146112cc578063f887ea401461137a578063f93f515b146113bb578063fb3bdb41146113fc5761019c565b8063d06ca61f1461101f578063ded9382a14611104578063e8e33700146111e65761019c565b8063b6f9de95116100c6578063b6f9de9514610e1c578063baa2abde14610ec9578063c12c21c014610f9d578063c45a015514610fde5761019c565b8063ad5c464814610ccb578063ad615dec14610d0c578063af2979eb14610d6f5761019c565b80634a25d94a11610159578063791ac94711610133578063791ac947146109895780637ff36ab514610a4d57806385f8c25914610b4f5780638803dbee14610bb25761019c565b80634a25d94a146106d15780635b0d5984146107ea5780635c11d795146108c55761019c565b806302751cec146101a1578063054d50d41461025557806318cbafe5146102b85780631f00ca74146103d15780632195995c146104b657806338ed1739146105b8575b600080fd5b3480156101ad57600080fd5b50610238600480360360c08110156101c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114fe565b604051808381526020018281526020019250505060405180910390f35b34801561026157600080fd5b506102a26004803603606081101561027857600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506115d8565b6040518082815260200191505060405180910390f35b3480156102c457600080fd5b5061037a600480360360a08110156102db57600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561030c57600080fd5b82018360208201111561031e57600080fd5b8035906020019184602083028401116401000000008311171561034057600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116a1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103bd5780820151818401526020810190506103a2565b505050509050019250505060405180910390f35b3480156103dd57600080fd5b5061045f600480360360408110156103f457600080fd5b81019080803590602001909291908035906020019064010000000081111561041b57600080fd5b82018360208201111561042d57600080fd5b8035906020019184602083028401116401000000008311171561044f57600080fd5b909192939192939050505061177a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104a2578082015181840152602081019050610487565b505050509050019250505060405180910390f35b3480156104c257600080fd5b5061059b60048036036101608110156104da57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050611904565b604051808381526020018281526020019250505060405180910390f35b3480156105c457600080fd5b5061067a600480360360a08110156105db57600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561060c57600080fd5b82018360208201111561061e57600080fd5b8035906020019184602083028401116401000000008311171561064057600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119de565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106bd5780820151818401526020810190506106a2565b505050509050019250505060405180910390f35b3480156106dd57600080fd5b50610793600480360360a08110156106f457600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561072557600080fd5b82018360208201111561073757600080fd5b8035906020019184602083028401116401000000008311171561075957600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612401565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107d65780820151818401526020810190506107bb565b505050509050019250505060405180910390f35b3480156107f657600080fd5b506108af600480360361014081101561080e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506124da565b6040518082815260200191505060405180910390f35b3480156108d157600080fd5b50610987600480360360a08110156108e857600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561091957600080fd5b82018360208201111561092b57600080fd5b8035906020019184602083028401116401000000008311171561094d57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506125b3565b005b34801561099557600080fd5b50610a4b600480360360a08110156109ac57600080fd5b810190808035906020019092919080359060200190929190803590602001906401000000008111156109dd57600080fd5b8201836020820111156109ef57600080fd5b80359060200191846020830284011164010000000083111715610a1157600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061268a565b005b610af860048036036080811015610a6357600080fd5b810190808035906020019092919080359060200190640100000000811115610a8a57600080fd5b820183602082011115610a9c57600080fd5b80359060200191846020830284011164010000000083111715610abe57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612761565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610b3b578082015181840152602081019050610b20565b505050509050019250505060405180910390f35b348015610b5b57600080fd5b50610b9c60048036036060811015610b7257600080fd5b8101908080359060200190929190803590602001909291908035906020019092919050505061283a565b6040518082815260200191505060405180910390f35b348015610bbe57600080fd5b50610c74600480360360a0811015610bd557600080fd5b81019080803590602001909291908035906020019092919080359060200190640100000000811115610c0657600080fd5b820183602082011115610c1857600080fd5b80359060200191846020830284011164010000000083111715610c3a57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612903565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610cb7578082015181840152602081019050610c9c565b505050509050019250505060405180910390f35b348015610cd757600080fd5b50610ce0613326565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d1857600080fd5b50610d5960048036036060811015610d2f57600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506133d0565b6040518082815260200191505060405180910390f35b348015610d7b57600080fd5b50610e06600480360360c0811015610d9257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613499565b6040518082815260200191505060405180910390f35b610ec760048036036080811015610e3257600080fd5b810190808035906020019092919080359060200190640100000000811115610e5957600080fd5b820183602082011115610e6b57600080fd5b80359060200191846020830284011164010000000083111715610e8d57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613572565b005b348015610ed557600080fd5b50610f80600480360360e0811015610eec57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613649565b604051808381526020018281526020019250505060405180910390f35b348015610fa957600080fd5b50610fb2613723565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610fea57600080fd5b50610ff3613749565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561102b57600080fd5b506110ad6004803603604081101561104257600080fd5b81019080803590602001909291908035906020019064010000000081111561106957600080fd5b82018360208201111561107b57600080fd5b8035906020019184602083028401116401000000008311171561109d57600080fd5b90919293919293905050506137f3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156110f05780820151818401526020810190506110d5565b505050509050019250505060405180910390f35b34801561111057600080fd5b506111c9600480360361014081101561112857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190803560ff169060200190929190803590602001909291908035906020019092919050505061397d565b604051808381526020018281526020019250505060405180910390f35b3480156111f257600080fd5b506112a8600480360361010081101561120a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613a57565b60405180848152602001838152602001828152602001935050505060405180910390f35b611356600480360360c08110156112e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613b33565b60405180848152602001838152602001828152602001935050505060405180910390f35b34801561138657600080fd5b5061138f613c0f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156113c757600080fd5b506113d0613c35565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6114a76004803603608081101561141257600080fd5b81019080803590602001909291908035906020019064010000000081111561143957600080fd5b82018360208201111561144b57600080fd5b8035906020019184602083028401116401000000008311171561146d57600080fd5b9091929391929390803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613c5b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156114ea5780820151818401526020810190506114cf565b505050509050019250505060405180910390f35b6000806040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561159d578082015181840152602081019050611582565b50505050905090810190601f1680156115ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663054d50d48585856040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561165d57600080fd5b505afa158015611671573d6000803e3d6000fd5b505050506040513d602081101561168757600080fd5b810190808051906020019092919050505090509392505050565b60606040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561173f578082015181840152602081019050611724565b50505050905090810190601f16801561176c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631f00ca748585856040518463ffffffff1660e01b815260040180848152602001806020018281038252848482818152602001925060200280828437600081840152601f19601f82011690508083019250505094505050505060006040518083038186803b15801561182657600080fd5b505afa15801561183a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561186457600080fd5b810190808051604051939291908464010000000082111561188457600080fd5b8382019150602082018581111561189a57600080fd5b82518660208202830111640100000000821117156118b757600080fd5b8083526020830192505050908051906020019060200280838360005b838110156118ee5780820151818401526020810190506118d3565b5050505090500160405250505090509392505050565b6000806040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156119a3578082015181840152602081019050611988565b50505050905090810190601f1680156119d05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b606060026000541415611a59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611aec57600080fd5b505afa158015611b00573d6000803e3d6000fd5b505050506040513d6020811015611b1657600080fd5b81019080805190602001909291905050509050600086866000818110611b3857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1690506000878760018a8a905003818110611b6b57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff169050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b158015611c7357600080fd5b505af1158015611c87573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611cf457600080fd5b505afa158015611d08573d6000803e3d6000fd5b505050506040513d6020811015611d1e57600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611d9a57600080fd5b505afa158015611dae573d6000803e3d6000fd5b505050506040513d6020811015611dc457600080fd5b8101908080519060200190929190505050905060006338ed173960e01b8d8d8d8d8a8d60405160240180878152602001868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611fa0578082015181840152602081019050611f85565b50505050905090810190601f168015611fcd5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611fee57600080fd5b505af1158015612002573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561202c57600080fd5b810190808051604051939291908464010000000082111561204c57600080fd5b8382019150602082018581111561206257600080fd5b825186600182028301116401000000008211171561207f57600080fd5b8083526020830192505050908051906020019080838360005b838110156120b3578082015181840152602081019050612098565b50505050905090810190601f1680156120e05780820380516001836020036101000a031916815260200191505b5060405250505080602001905160208110156120fb57600080fd5b810190808051604051939291908464010000000082111561211b57600080fd5b8382019150602082018581111561213157600080fd5b825186602082028301116401000000008211171561214e57600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561218557808201518184015260208101905061216a565b505050509050016040525050509650600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d8787876122898a73ffffffffffffffffffffffffffffffffffffffff166370a082318d6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561223f57600080fd5b505afa158015612253573d6000803e3d6000fd5b505050506040513d602081101561226957600080fd5b810190808051906020019092919050505089613d3490919063ffffffff16565b61233d888b73ffffffffffffffffffffffffffffffffffffffff166370a082318f6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122f457600080fd5b505afa158015612308573d6000803e3d6000fd5b505050506040513d602081101561231e57600080fd5b8101908080519060200190929190505050613d3490919063ffffffff16565b6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b1580156123d157600080fd5b505af11580156123e5573d6000803e3d6000fd5b5050505050505050505060016000819055509695505050505050565b60606040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561249f578082015181840152602081019050612484565b50505050905090810190601f1680156124cc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60006040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561257857808201518184015260208101905061255d565b50505050905090810190601f1680156125a55780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561264f578082015181840152602081019050612634565b50505050905090810190601f16801561267c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561272657808201518184015260208101905061270b565b50505050905090810190601f1680156127535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60606040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127ff5780820151818401526020810190506127e4565b50505050905090810190601f16801561282c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166385f8c2598585856040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156128bf57600080fd5b505afa1580156128d3573d6000803e3d6000fd5b505050506040513d60208110156128e957600080fd5b810190808051906020019092919050505090509392505050565b60606002600054141561297e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612a1157600080fd5b505afa158015612a25573d6000803e3d6000fd5b505050506040513d6020811015612a3b57600080fd5b81019080805190602001909291905050509050600086866000818110612a5d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1690506000878760018a8a905003818110612a9057fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff169050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b158015612b9857600080fd5b505af1158015612bac573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612c1957600080fd5b505afa158015612c2d573d6000803e3d6000fd5b505050506040513d6020811015612c4357600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612cbf57600080fd5b505afa158015612cd3573d6000803e3d6000fd5b505050506040513d6020811015612ce957600080fd5b810190808051906020019092919050505090506000638803dbee60e01b8d8d8d8d8a8d60405160240180878152602001868152602001806020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281038252868682818152602001925060200280828437600081840152601f19601f820116905080830192505050975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612ec5578082015181840152602081019050612eaa565b50505050905090810190601f168015612ef25780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015612f1357600080fd5b505af1158015612f27573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015612f5157600080fd5b8101908080516040519392919084640100000000821115612f7157600080fd5b83820191506020820185811115612f8757600080fd5b8251866001820283011164010000000082111715612fa457600080fd5b8083526020830192505050908051906020019080838360005b83811015612fd8578082015181840152602081019050612fbd565b50505050905090810190601f1680156130055780820380516001836020036101000a031916815260200191505b50604052505050806020019051602081101561302057600080fd5b810190808051604051939291908464010000000082111561304057600080fd5b8382019150602082018581111561305657600080fd5b825186602082028301116401000000008211171561307357600080fd5b8083526020830192505050908051906020019060200280838360005b838110156130aa57808201518184015260208101905061308f565b505050509050016040525050509650600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d8787876131ae8a73ffffffffffffffffffffffffffffffffffffffff166370a082318d6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561316457600080fd5b505afa158015613178573d6000803e3d6000fd5b505050506040513d602081101561318e57600080fd5b810190808051906020019092919050505089613d3490919063ffffffff16565b613262888b73ffffffffffffffffffffffffffffffffffffffff166370a082318f6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561321957600080fd5b505afa15801561322d573d6000803e3d6000fd5b505050506040513d602081101561324357600080fd5b8101908080519060200190929190505050613d3490919063ffffffff16565b6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b1580156132f657600080fd5b505af115801561330a573d6000803e3d6000fd5b5050505050505050505060016000819055509695505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561339057600080fd5b505afa1580156133a4573d6000803e3d6000fd5b505050506040513d60208110156133ba57600080fd5b8101908080519060200190929190505050905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad615dec8585856040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561345557600080fd5b505afa158015613469573d6000803e3d6000fd5b505050506040513d602081101561347f57600080fd5b810190808051906020019092919050505090509392505050565b60006040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561353757808201518184015260208101905061351c565b50505050905090810190601f1680156135645780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561360e5780820151818401526020810190506135f3565b50505050905090810190601f16801561363b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000806040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156136e85780820151818401526020810190506136cd565b50505050905090810190601f1680156137155780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156137b357600080fd5b505afa1580156137c7573d6000803e3d6000fd5b505050506040513d60208110156137dd57600080fd5b8101908080519060200190929190505050905090565b6060600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f8585856040518463ffffffff1660e01b815260040180848152602001806020018281038252848482818152602001925060200280828437600081840152601f19601f82011690508083019250505094505050505060006040518083038186803b15801561389f57600080fd5b505afa1580156138b3573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156138dd57600080fd5b81019080805160405193929190846401000000008211156138fd57600080fd5b8382019150602082018581111561391357600080fd5b825186602082028301116401000000008211171561393057600080fd5b8083526020830192505050908051906020019060200280838360005b8381101561396757808201518184015260208101905061394c565b5050505090500160405250505090509392505050565b6000806040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a1c578082015181840152602081019050613a01565b50505050905090810190601f168015613a495780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60008060006040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613af8578082015181840152602081019050613add565b50505050905090810190601f168015613b255780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60008060006040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613bd4578082015181840152602081019050613bb9565b50505050905090810190601f168015613c015780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613cf9578082015181840152602081019050613cde565b50505050905090810190601f168015613d265780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600082821115613dac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b81830390509291505056fea2646970667358221220b0a5a9b94eed6592ca879b5aa5090bfab002e74a6553c8ebfb0f1bff6d5d6c1764736f6c6343000706003360806040523480156200001157600080fd5b5060405162003218380380620032188339818101604052810190620000379190620002c1565b6001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015620000aa5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6040518060400160405280600281526020017f5a300000000000000000000000000000000000000000000000000000000000008152509062000124576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200011b91906200036f565b60405180910390fd5b5081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b158015620001cf57600080fd5b505afa158015620001e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020a919062000302565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000472565b600081519050620002a4816200043e565b92915050565b600081519050620002bb8162000458565b92915050565b60008060408385031215620002d557600080fd5b6000620002e58582860162000293565b9250506020620002f88582860162000293565b9150509250929050565b6000602082840312156200031557600080fd5b60006200032584828501620002aa565b91505092915050565b60006200033b8262000393565b6200034781856200039e565b935062000359818560208601620003f7565b62000364816200042d565b840191505092915050565b600060208201905081810360008301526200038b81846200032e565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000620003bc82620003d7565b9050919050565b6000620003d082620003af565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b8381101562000417578082015181840152602081019050620003fa565b8381111562000427576000848401525b50505050565b6000601f19601f8301169050919050565b6200044981620003af565b81146200045557600080fd5b50565b6200046381620003c3565b81146200046f57600080fd5b50565b612d9680620004826000396000f3fe6080604052600436106100705760003560e01c8063db3e21981161004e578063db3e219814610100578063f28c049814610130578063f887ea4014610160578063f93f515b1461018b57610070565b8063414bf38914610075578063c04b8d59146100a5578063c12c21c0146100d5575b600080fd5b61008f600480360381019061008a91906124d5565b6101b6565b60405161009c9190612ac0565b60405180910390f35b6100bf60048036038101906100ba9190612494565b61088a565b6040516100cc9190612ac0565b60405180910390f35b3480156100e157600080fd5b506100ea610f75565b6040516100f79190612a29565b60405180910390f35b61011a6004803603810190610115919061256a565b610f9b565b6040516101279190612ac0565b60405180910390f35b61014a60048036038101906101459190612529565b61166f565b6040516101579190612ac0565b60405180910390f35b34801561016c57600080fd5b50610175611d5a565b6040516101829190612910565b60405180910390f35b34801561019757600080fd5b506101a0611d80565b6040516101ad9190612a0e565b60405180910390f35b600060026000541415610231576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401610296919061292b565b60206040518083038186803b1580156102ae57600080fd5b505afa1580156102c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e6919061242a565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab82600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686600001602081019061035d9190612401565b6040518463ffffffff1660e01b815260040161037b93929190612984565b600060405180830381600087803b15801561039557600080fd5b505af11580156103a9573d6000803e3d6000fd5b505050506000838036038101906103c091906124ff565b905081816060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600063414bf38960e01b826040516024016104159190612a66565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000826000015173ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016104b39190612910565b60206040518083038186803b1580156104cb57600080fd5b505afa1580156104df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050391906125be565b90506000836020015173ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b81526004016105449190612910565b60206040518083038186803b15801561055c57600080fd5b505afa158015610570573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059491906125be565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b815260040161061793929190612946565b600060405180830381600087803b15801561063157600080fd5b505af1158015610645573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061066e9190612453565b80602001905181019061068191906125be565b9550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d868960000160208101906106d59190612401565b8a60200160208101906106e89190612401565b610787896000015173ffffffffffffffffffffffffffffffffffffffff166370a082318c6040518263ffffffff1660e01b81526004016107289190612910565b60206040518083038186803b15801561074057600080fd5b505afa158015610754573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077891906125be565b88611da690919063ffffffff16565b610826878b6020015173ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b81526004016107c89190612910565b60206040518083038186803b1580156107e057600080fd5b505afa1580156107f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081891906125be565b611da690919063ffffffff16565b6040518663ffffffff1660e01b81526004016108469594939291906129bb565b600060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b5050505050505050506001600081905550919050565b600060026000541415610905576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b815260040161096a919061292b565b60206040518083038186803b15801561098257600080fd5b505afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba919061242a565b9050600080610a1a8580600001906109d29190612adb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611e29565b91509150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401610a9f93929190612984565b600060405180830381600087803b158015610ab957600080fd5b505af1158015610acd573d6000803e3d6000fd5b50505050600085610add90612c65565b905083816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401610b529190612910565b60206040518083038186803b158015610b6a57600080fd5b505afa158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba291906125be565b905060008373ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b8152600401610bdf9190612910565b60206040518083038186803b158015610bf757600080fd5b505afa158015610c0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2f91906125be565b9050600063c04b8d5960e01b84604051602401610c4c9190612a44565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401610d2c93929190612946565b600060405180830381600087803b158015610d4657600080fd5b505af1158015610d5a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610d839190612453565b806020019051810190610d9691906125be565b975050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d878787610e758a73ffffffffffffffffffffffffffffffffffffffff166370a082318d6040518263ffffffff1660e01b8152600401610e169190612910565b60206040518083038186803b158015610e2e57600080fd5b505afa158015610e42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6691906125be565b88611da690919063ffffffff16565b610f10878b73ffffffffffffffffffffffffffffffffffffffff166370a082318f6040518263ffffffff1660e01b8152600401610eb29190612910565b60206040518083038186803b158015610eca57600080fd5b505afa158015610ede573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0291906125be565b611da690919063ffffffff16565b6040518663ffffffff1660e01b8152600401610f309594939291906129bb565b600060405180830381600087803b158015610f4a57600080fd5b505af1158015610f5e573d6000803e3d6000fd5b505050505050505050506001600081905550919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060026000541415611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b815260040161107b919061292b565b60206040518083038186803b15801561109357600080fd5b505afa1580156110a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cb919061242a565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab82600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168660000160208101906111429190612401565b6040518463ffffffff1660e01b815260040161116093929190612984565b600060405180830381600087803b15801561117a57600080fd5b505af115801561118e573d6000803e3d6000fd5b505050506000838036038101906111a59190612594565b905081816060019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600063db3e219860e01b826040516024016111fa9190612aa4565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000826000015173ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b81526004016112989190612910565b60206040518083038186803b1580156112b057600080fd5b505afa1580156112c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e891906125be565b90506000836020015173ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b81526004016113299190612910565b60206040518083038186803b15801561134157600080fd5b505afa158015611355573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137991906125be565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518463ffffffff1660e01b81526004016113fc93929190612946565b600060405180830381600087803b15801561141657600080fd5b505af115801561142a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906114539190612453565b80602001905181019061146691906125be565b9550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d868960000160208101906114ba9190612401565b8a60200160208101906114cd9190612401565b61156c896000015173ffffffffffffffffffffffffffffffffffffffff166370a082318c6040518263ffffffff1660e01b815260040161150d9190612910565b60206040518083038186803b15801561152557600080fd5b505afa158015611539573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155d91906125be565b88611da690919063ffffffff16565b61160b878b6020015173ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b81526004016115ad9190612910565b60206040518083038186803b1580156115c557600080fd5b505afa1580156115d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fd91906125be565b611da690919063ffffffff16565b6040518663ffffffff1660e01b815260040161162b9594939291906129bb565b600060405180830381600087803b15801561164557600080fd5b505af1158015611659573d6000803e3d6000fd5b5050505050505050506001600081905550919050565b6000600260005414156116ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b815260040161174f919061292b565b60206040518083038186803b15801561176757600080fd5b505afa15801561177b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179f919061242a565b90506000806117ff8580600001906117b79190612adb565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611e29565b91509150600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab84600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161188493929190612984565b600060405180830381600087803b15801561189e57600080fd5b505af11580156118b2573d6000803e3d6000fd5b505050506000856118c290612c78565b905083816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008273ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b81526004016119379190612910565b60206040518083038186803b15801561194f57600080fd5b505afa158015611963573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198791906125be565b905060008473ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b81526004016119c49190612910565b60206040518083038186803b1580156119dc57600080fd5b505afa1580156119f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1491906125be565b9050600063f28c049860e01b84604051602401611a319190612a82565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401611b1193929190612946565b600060405180830381600087803b158015611b2b57600080fd5b505af1158015611b3f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b689190612453565b806020019051810190611b7b91906125be565b975050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d878688611c5a8973ffffffffffffffffffffffffffffffffffffffff166370a082318d6040518263ffffffff1660e01b8152600401611bfb9190612910565b60206040518083038186803b158015611c1357600080fd5b505afa158015611c27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4b91906125be565b88611da690919063ffffffff16565b611cf5878c73ffffffffffffffffffffffffffffffffffffffff166370a082318f6040518263ffffffff1660e01b8152600401611c979190612910565b60206040518083038186803b158015611caf57600080fd5b505afa158015611cc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce791906125be565b611da690919063ffffffff16565b6040518663ffffffff1660e01b8152600401611d159594939291906129bb565b600060405180830381600087803b158015611d2f57600080fd5b505af1158015611d43573d6000803e3d6000fd5b505050505050505050506001600081905550919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600082821115611e1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b600080611e40600084611e6090919063ffffffff16565b9150611e59601484510384611e6090919063ffffffff16565b9050915091565b600081601483011015611edb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f746f416464726573735f6f766572666c6f77000000000000000000000000000081525060200191505060405180910390fd5b6014820183511015611f55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f746f416464726573735f6f75744f66426f756e6473000000000000000000000081525060200191505060405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b6000611f8c611f8784612b63565b612b32565b905082815260208101848484011115611fa457600080fd5b611faf848285612caf565b509392505050565b6000611fca611fc584612b63565b612b32565b905082815260208101848484011115611fe257600080fd5b611fed848285612cbe565b509392505050565b60008135905061200481612d04565b92915050565b60008151905061201981612d04565b92915050565b600082601f83011261203057600080fd5b8135612040848260208601611f79565b91505092915050565b600082601f83011261205a57600080fd5b815161206a848260208601611fb7565b91505092915050565b600060a0828403121561208557600080fd5b81905092915050565b600060a082840312156120a057600080fd5b6120aa60a0612b32565b9050600082013567ffffffffffffffff8111156120c657600080fd5b6120d28482850161201f565b60008301525060206120e684828501611ff5565b60208301525060406120fa848285016123d7565b604083015250606061210e848285016123d7565b6060830152506080612122848285016123d7565b60808301525092915050565b6000610100828403121561214157600080fd5b81905092915050565b6000610100828403121561215d57600080fd5b612168610100612b32565b9050600061217884828501611ff5565b600083015250602061218c84828501611ff5565b60208301525060406121a0848285016123c2565b60408301525060606121b484828501611ff5565b60608301525060806121c8848285016123d7565b60808301525060a06121dc848285016123d7565b60a08301525060c06121f0848285016123d7565b60c08301525060e0612204848285016123ad565b60e08301525092915050565b600060a0828403121561222257600080fd5b81905092915050565b600060a0828403121561223d57600080fd5b61224760a0612b32565b9050600082013567ffffffffffffffff81111561226357600080fd5b61226f8482850161201f565b600083015250602061228384828501611ff5565b6020830152506040612297848285016123d7565b60408301525060606122ab848285016123d7565b60608301525060806122bf848285016123d7565b60808301525092915050565b600061010082840312156122de57600080fd5b81905092915050565b600061010082840312156122fa57600080fd5b612305610100612b32565b9050600061231584828501611ff5565b600083015250602061232984828501611ff5565b602083015250604061233d848285016123c2565b604083015250606061235184828501611ff5565b6060830152506080612365848285016123d7565b60808301525060a0612379848285016123d7565b60a08301525060c061238d848285016123d7565b60c08301525060e06123a1848285016123ad565b60e08301525092915050565b6000813590506123bc81612d1b565b92915050565b6000813590506123d181612d32565b92915050565b6000813590506123e681612d49565b92915050565b6000815190506123fb81612d49565b92915050565b60006020828403121561241357600080fd5b600061242184828501611ff5565b91505092915050565b60006020828403121561243c57600080fd5b600061244a8482850161200a565b91505092915050565b60006020828403121561246557600080fd5b600082015167ffffffffffffffff81111561247f57600080fd5b61248b84828501612049565b91505092915050565b6000602082840312156124a657600080fd5b600082013567ffffffffffffffff8111156124c057600080fd5b6124cc84828501612073565b91505092915050565b600061010082840312156124e857600080fd5b60006124f68482850161212e565b91505092915050565b6000610100828403121561251257600080fd5b60006125208482850161214a565b91505092915050565b60006020828403121561253b57600080fd5b600082013567ffffffffffffffff81111561255557600080fd5b61256184828501612210565b91505092915050565b6000610100828403121561257d57600080fd5b600061258b848285016122cb565b91505092915050565b600061010082840312156125a757600080fd5b60006125b5848285016122e7565b91505092915050565b6000602082840312156125d057600080fd5b60006125de848285016123ec565b91505092915050565b6125f081612c0b565b82525050565b6125ff81612bc0565b82525050565b61260e81612bc0565b82525050565b600061261f82612b93565b6126298185612b9e565b9350612639818560208601612cbe565b61264281612cf3565b840191505092915050565b600061265882612b93565b6126628185612baf565b9350612672818560208601612cbe565b61267b81612cf3565b840191505092915050565b61268f81612c1d565b82525050565b61269e81612c41565b82525050565b600060a08301600083015184820360008601526126c18282612614565b91505060208301516126d660208601826125f6565b5060408301516126e960408601826128f2565b5060608301516126fc60608601826128f2565b50608083015161270f60808601826128f2565b508091505092915050565b6101008201600082015161273160008501826125f6565b50602082015161274460208501826125f6565b50604082015161275760408501826128e3565b50606082015161276a60608501826125f6565b50608082015161277d60808501826128f2565b5060a082015161279060a08501826128f2565b5060c08201516127a360c08501826128f2565b5060e08201516127b660e08501826128d4565b50505050565b600060a08301600083015184820360008601526127d98282612614565b91505060208301516127ee60208601826125f6565b50604083015161280160408601826128f2565b50606083015161281460608601826128f2565b50608083015161282760808601826128f2565b508091505092915050565b6101008201600082015161284960008501826125f6565b50602082015161285c60208501826125f6565b50604082015161286f60408501826128e3565b50606082015161288260608501826125f6565b50608082015161289560808501826128f2565b5060a08201516128a860a08501826128f2565b5060c08201516128bb60c08501826128f2565b5060e08201516128ce60e08501826128d4565b50505050565b6128dd81612bd2565b82525050565b6128ec81612bf2565b82525050565b6128fb81612c01565b82525050565b61290a81612c01565b82525050565b60006020820190506129256000830184612605565b92915050565b600060208201905061294060008301846125e7565b92915050565b600060608201905061295b60008301866125e7565b6129686020830185612605565b818103604083015261297a818461264d565b9050949350505050565b60006060820190506129996000830186612605565b6129a66020830185612605565b6129b36040830184612605565b949350505050565b600060a0820190506129d06000830188612605565b6129dd6020830187612605565b6129ea6040830186612605565b6129f76060830185612901565b612a046080830184612901565b9695505050505050565b6000602082019050612a236000830184612686565b92915050565b6000602082019050612a3e6000830184612695565b92915050565b60006020820190508181036000830152612a5e81846126a4565b905092915050565b600061010082019050612a7c600083018461271a565b92915050565b60006020820190508181036000830152612a9c81846127bc565b905092915050565b600061010082019050612aba6000830184612832565b92915050565b6000602082019050612ad56000830184612901565b92915050565b60008083356001602003843603038112612af457600080fd5b80840192508235915067ffffffffffffffff821115612b1257600080fd5b602083019250600182023603831315612b2a57600080fd5b509250929050565b6000604051905081810181811067ffffffffffffffff82111715612b5957612b58612cf1565b5b8060405250919050565b600067ffffffffffffffff821115612b7e57612b7d612cf1565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612bcb82612bd2565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b6000612c1682612c8b565b9050919050565b6000612c2882612c2f565b9050919050565b6000612c3a82612bd2565b9050919050565b6000612c4c82612c53565b9050919050565b6000612c5e82612bd2565b9050919050565b6000612c71368361208e565b9050919050565b6000612c84368361222b565b9050919050565b6000612c9682612c9d565b9050919050565b6000612ca882612bd2565b9050919050565b82818337600083830152505050565b60005b83811015612cdc578082015181840152602081019050612cc1565b83811115612ceb576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b612d0d81612bc0565b8114612d1857600080fd5b50565b612d2481612bd2565b8114612d2f57600080fd5b50565b612d3b81612bf2565b8114612d4657600080fd5b50565b612d5281612c01565b8114612d5d57600080fd5b5056fea26469706673582212201331f27785dd73f2782ec2fd082e229ad76abcf8fb5f3507232d599a1abb58de64736f6c63430007060033608060405234801561001057600080fd5b5060405161154d38038061154d8339818101604052604081101561003357600080fd5b8101908080519060200190929190805190602001909291905050506001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156100c05750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6040518060400160405280600281526020017f5a300000000000000000000000000000000000000000000000000000000000008152509061019c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610161578082015181840152602081019050610146565b50505050905090810190601f16801561018e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561024657600080fd5b505afa15801561025a573d6000803e3d6000fd5b505050506040513d602081101561027057600080fd5b8101908080519060200190929190505050600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505061123a806103136000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063a6417ed611610066578063a6417ed6146101d6578063bb7b8b8014610228578063c12c21c014610246578063c66106571461027a578063f93f515b146102d257610093565b806307211ef714610098578063218751b2146100f45780633df02124146101285780635e0d443f1461017a575b600080fd5b6100de600480360360608110156100ae57600080fd5b810190808035600f0b90602001909291908035600f0b906020019092919080359060200190929190505050610306565b6040518082815260200191505060405180910390f35b6100fc6103d5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101786004803603608081101561013e57600080fd5b810190808035600f0b90602001909291908035600f0b906020019092919080359060200190929190803590602001909291905050506103fb565b005b6101c06004803603606081101561019057600080fd5b810190808035600f0b90602001909291908035600f0b906020019092919080359060200190929190505050610e2e565b6040518082815260200191505060405180910390f35b610226600480360360808110156101ec57600080fd5b810190808035600f0b90602001909291908035600f0b90602001909291908035906020019092919080359060200190929190505050610efd565b005b610230610fd4565b6040518082815260200191505060405180910390f35b61024e61107e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102a66004803603602081101561029057600080fd5b81019080803590602001909291905050506110a4565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102da61115b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166307211ef78585856040518463ffffffff1660e01b81526004018084600f0b815260200183600f0b8152602001828152602001935050505060206040518083038186803b15801561039157600080fd5b505afa1580156103a5573d6000803e3d6000fd5b505050506040513d60208110156103bb57600080fd5b810190808051906020019092919050505090509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026000541415610474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561050757600080fd5b505afa15801561051b573d6000803e3d6000fd5b505050506040513d602081101561053157600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c661065787600f0b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156105bc57600080fd5b505afa1580156105d0573d6000803e3d6000fd5b505050506040513d60208110156105e657600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c661065787600f0b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561067157600080fd5b505afa158015610685573d6000803e3d6000fd5b505050506040513d602081101561069b57600080fd5b81019080805190602001909291905050509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab84600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b15801561079757600080fd5b505af11580156107ab573d6000803e3d6000fd5b5050505060008273ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561081857600080fd5b505afa15801561082c573d6000803e3d6000fd5b505050506040513d602081101561084257600080fd5b8101908080519060200190929190505050905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156108be57600080fd5b505afa1580156108d2573d6000803e3d6000fd5b505050506040513d60208110156108e857600080fd5b810190808051906020019092919050505090506000633df0212460e01b8a8a8a8a6040516024018085600f0b815260200184600f0b8152602001838152602001828152602001945050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610a7d578082015181840152602081019050610a62565b50505050905090810190601f168015610aaa5780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610acb57600080fd5b505af1158015610adf573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015610b0957600080fd5b8101908080516040519392919084640100000000821115610b2957600080fd5b83820191506020820185811115610b3f57600080fd5b8251866001820283011164010000000082111715610b5c57600080fd5b8083526020830192505050908051906020019080838360005b83811015610b90578082015181840152602081019050610b75565b50505050905090810190601f168015610bbd5780820380516001836020036101000a031916815260200191505b5060405250505050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d878787610cba8a73ffffffffffffffffffffffffffffffffffffffff166370a082318d6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610c7057600080fd5b505afa158015610c84573d6000803e3d6000fd5b505050506040513d6020811015610c9a57600080fd5b81019080805190602001909291905050508961118190919063ffffffff16565b610d6e888b73ffffffffffffffffffffffffffffffffffffffff166370a082318f6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610d2557600080fd5b505afa158015610d39573d6000803e3d6000fd5b505050506040513d6020811015610d4f57600080fd5b810190808051906020019092919050505061118190919063ffffffff16565b6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015610e0257600080fd5b505af1158015610e16573d6000803e3d6000fd5b50505050505050505050600160008190555050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635e0d443f8585856040518463ffffffff1660e01b81526004018084600f0b815260200183600f0b8152602001828152602001935050505060206040518083038186803b158015610eb957600080fd5b505afa158015610ecd573d6000803e3d6000fd5b505050506040513d6020811015610ee357600080fd5b810190808051906020019092919050505090509392505050565b6040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f99578082015181840152602081019050610f7e565b50505050905090810190601f168015610fc65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bb7b8b806040518163ffffffff1660e01b815260040160206040518083038186803b15801561103e57600080fd5b505afa158015611052573d6000803e3d6000fd5b505050506040513d602081101561106857600080fd5b8101908080519060200190929190505050905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c6610657836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561111957600080fd5b505afa15801561112d573d6000803e3d6000fd5b505050506040513d602081101561114357600080fd5b81019080805190602001909291905050509050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000828211156111f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b81830390509291505056fea264697066735822122071bc08baf57681aa614b909b3549546ea85452ed68c948ccd31c9da5245316a064736f6c6343000706003360806040523480156200001157600080fd5b5060405162002e7338038062002e73833981810160405260408110156200003757600080fd5b8101908080519060200190929190805190602001909291905050506001600081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015620000c55750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6040518060400160405280600281526020017f5a3000000000000000000000000000000000000000000000000000000000000081525090620001a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620001695780820151818401526020810190506200014c565b50505050905090810190601f168015620001975780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f93f515b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200025057600080fd5b505afa15801562000265573d6000803e3d6000fd5b505050506040513d60208110156200027c57600080fd5b8101908080519060200190929190505050600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037757600080fd5b505afa1580156200038c573d6000803e3d6000fd5b505050506040513d6020811015620003a357600080fd5b8101908080519060200190929190505050600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637dd0ba82600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060006040518083038186803b158015620004a057600080fd5b505afa158015620004b5573d6000803e3d6000fd5b5050505050506129a880620004cb6000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c806370a08231116100b8578063c12c21c01161007c578063c12c21c0146105dc578063d0e30db014610610578063dd62ed3e1461062e578063e63697c8146106a6578063f93f515b14610712578063fc0c546a1461074657610136565b806370a082311461043d57806395d89b411461049557806399530b0614610518578063a9059cbb14610536578063b6b55f251461059a57610136565b80632e1a7d4d116100ff5780632e1a7d4d14610326578063313ce5671461036857806333303f8e146103895780633ccfd60b146103bd5780636e553f65146103db57610136565b8062f714ce1461013b57806306fdde031461019d578063095ea7b31461022057806318160ddd1461028457806323b872dd146102a2575b600080fd5b6101876004803603604081101561015157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061077a565b6040518082815260200191505060405180910390f35b6101a561088b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101e55780820151818401526020810190506101ca565b50505050905090810190601f1680156102125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026c6004803603604081101561023657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109f3565b60405180821515815260200191505060405180910390f35b61028c6109ff565b6040518082815260200191505060405180910390f35b61030e600480360360608110156102b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aa9565b60405180821515815260200191505060405180910390f35b6103526004803603602081101561033c57600080fd5b8101908080359060200190929190505050610b82565b6040518082815260200191505060405180910390f35b610370610c92565b604051808260ff16815260200191505060405180910390f35b610391610d3c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103c5610d62565b6040518082815260200191505060405180910390f35b610427600480360360408110156103f157600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e65565b6040518082815260200191505060405180910390f35b61047f6004803603602081101561045357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f76565b6040518082815260200191505060405180910390f35b61049d611043565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104dd5780820151818401526020810190506104c2565b50505050905090810190601f16801561050a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105206111ab565b6040518082815260200191505060405180910390f35b6105826004803603604081101561054c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611255565b60405180821515815260200191505060405180910390f35b6105c6600480360360208110156105b057600080fd5b810190808035906020019092919050505061132e565b6040518082815260200191505060405180910390f35b6105e461143e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610618611464565b6040518082815260200191505060405180910390f35b6106906004803603604081101561064457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611567565b6040518082815260200191505060405180910390f35b6106fc600480360360608110156106bc57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611653565b6040518082815260200191505060405180910390f35b61071a611854565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61074e61187a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600260005414156107f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260008190555061087b632e1a7d4d60e01b8460405160240180828152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118a0565b9050600160008190555092915050565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156108f557600080fd5b505afa158015610909573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561093357600080fd5b810190808051604051939291908464010000000082111561095357600080fd5b8382019150602082018581111561096957600080fd5b825186600182028301116401000000008211171561098657600080fd5b8083526020830192505050908051906020019080838360005b838110156109ba57808201518184015260208101905061099f565b50505050905090810190601f1680156109e75780820380516001836020036101000a031916815260200191505b50604052505050905090565b60006001905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a6957600080fd5b505afa158015610a7d573d6000803e3d6000fd5b505050506040513d6020811015610a9357600080fd5b8101908080519060200190929190505050905090565b60006040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b47578082015181840152602081019050610b2c565b50505050905090810190601f168015610b745780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600060026000541415610bfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550610c83632e1a7d4d60e01b8360405160240180828152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118a0565b90506001600081905550919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015610cfc57600080fd5b505afa158015610d10573d6000803e3d6000fd5b505050506040513d6020811015610d2657600080fd5b8101908080519060200190929190505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060026000541415610ddd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550610e58633ccfd60b60e01b604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118a0565b9050600160008190555090565b600060026000541415610ee0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b6002600081905550610f6663b6b55f2560e01b8460405160240180828152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612036565b9050600160008190555092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561100157600080fd5b505afa158015611015573d6000803e3d6000fd5b505050506040513d602081101561102b57600080fd5b81019080805190602001909291905050509050919050565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156110ad57600080fd5b505afa1580156110c1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060208110156110eb57600080fd5b810190808051604051939291908464010000000082111561110b57600080fd5b8382019150602082018581111561112157600080fd5b825186600182028301116401000000008211171561113e57600080fd5b8083526020830192505050908051906020019080838360005b83811015611172578082015181840152602081019050611157565b50505050905090810190601f16801561119f5780820380516001836020036101000a031916815260200191505b50604052505050905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166399530b066040518163ffffffff1660e01b815260040160206040518083038186803b15801561121557600080fd5b505afa158015611229573d6000803e3d6000fd5b505050506040513d602081101561123f57600080fd5b8101908080519060200190929190505050905090565b60006040518060400160405280600281526020017f4e490000000000000000000000000000000000000000000000000000000000008152506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112f35780820151818401526020810190506112d8565b50505050905090810190601f1680156113205780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000600260005414156113a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260008190555061142f63b6b55f2560e01b8360405160240180828152602001915050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612036565b90506001600081905550919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260005414156114df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b600260008190555061155a63d0e30db060e01b604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612036565b9050600160008190555090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561161057600080fd5b505afa158015611624573d6000803e3d6000fd5b505050506040513d602081101561163a57600080fd5b8101908080519060200190929190505050905092915050565b6000600260005414156116ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026000819055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561176157600080fd5b505afa158015611775573d6000803e3d6000fd5b505050506040513d602081101561178b57600080fd5b8101908080519060200190929190505050905061184263e63697c860e01b868386604051602401808481526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506118a0565b91505060016000819055509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561192c57600080fd5b505afa158015611940573d6000803e3d6000fd5b505050506040513d602081101561195657600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119f457600080fd5b505afa158015611a08573d6000803e3d6000fd5b505050506040513d6020811015611a1e57600080fd5b810190808051906020019092919050505090506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611abc57600080fd5b505afa158015611ad0573d6000803e3d6000fd5b505050506040513d6020811015611ae657600080fd5b81019080805190602001909291905050509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611be3578082015181840152602081019050611bc8565b50505050905090810190601f168015611c105780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015611c3157600080fd5b505af1158015611c45573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015611c6f57600080fd5b8101908080516040519392919084640100000000821115611c8f57600080fd5b83820191506020820185811115611ca557600080fd5b8251866001820283011164010000000082111715611cc257600080fd5b8083526020830192505050908051906020019080838360005b83811015611cf6578082015181840152602081019050611cdb565b50505050905090810190601f168015611d235780820380516001836020036101000a031916815260200191505b506040525050508060200190516020811015611d3e57600080fd5b81019080805190602001909291905050509350600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d84600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611eac600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611e6257600080fd5b505afa158015611e76573d6000803e3d6000fd5b505050506040513d6020811015611e8c57600080fd5b8101908080519060200190929190505050886128ef90919063ffffffff16565b611f8287600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318c6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f3957600080fd5b505afa158015611f4d573d6000803e3d6000fd5b505050506040513d6020811015611f6357600080fd5b81019080805190602001909291905050506128ef90919063ffffffff16565b6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b15801561201657600080fd5b505af115801561202a573d6000803e3d6000fd5b50505050505050919050565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e958b704336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156120c257600080fd5b505afa1580156120d6573d6000803e3d6000fd5b505050506040513d60208110156120ec57600080fd5b81019080805190602001909291905050509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663579122ab82600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b15801561220a57600080fd5b505af115801561221e573d6000803e3d6000fd5b505050506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156122ad57600080fd5b505afa1580156122c1573d6000803e3d6000fd5b505050506040513d60208110156122d757600080fd5b810190808051906020019092919050505090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561237557600080fd5b505afa158015612389573d6000803e3d6000fd5b505050506040513d602081101561239f57600080fd5b81019080805190602001909291905050509050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636ce4074a33600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561249c578082015181840152602081019050612481565b50505050905090810190601f1680156124c95780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b1580156124ea57600080fd5b505af11580156124fe573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561252857600080fd5b810190808051604051939291908464010000000082111561254857600080fd5b8382019150602082018581111561255e57600080fd5b825186600182028301116401000000008211171561257b57600080fd5b8083526020830192505050908051906020019080838360005b838110156125af578082015181840152602081019050612594565b50505050905090810190601f1680156125dc5780820380516001836020036101000a031916815260200191505b5060405250505080602001905160208110156125f757600080fd5b81019080805190602001909291905050509350600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e1c8ef0d84600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612765600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561271b57600080fd5b505afa15801561272f573d6000803e3d6000fd5b505050506040513d602081101561274557600080fd5b8101908080519060200190929190505050886128ef90919063ffffffff16565b61283b87600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a082318c6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156127f257600080fd5b505afa158015612806573d6000803e3d6000fd5b505050506040513d602081101561281c57600080fd5b81019080805190602001909291905050506128ef90919063ffffffff16565b6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b1580156128cf57600080fd5b505af11580156128e3573d6000803e3d6000fd5b50505050505050919050565b600082821115612967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b81830390509291505056fea2646970667358221220bebd6957f06952216abaa7825a99d5a318adb449bd92feec9df9e1956cd3094464736f6c63430007060033";
29
- static readonly abi: ({
30
- inputs: {
31
- components: ({
32
- internalType: string;
33
- name: string;
34
- type: string;
35
- components?: undefined;
36
- } | {
37
- components: {
38
- internalType: string;
39
- name: string;
40
- type: string;
41
- }[];
42
- internalType: string;
43
- name: string;
44
- type: string;
45
- })[];
46
- internalType: string;
47
- name: string;
48
- type: string;
49
- }[];
50
- stateMutability: string;
51
- type: string;
52
- anonymous?: undefined;
53
- name?: undefined;
54
- outputs?: undefined;
55
- } | {
56
- anonymous: boolean;
57
- inputs: {
58
- indexed: boolean;
59
- internalType: string;
60
- name: string;
61
- type: string;
62
- }[];
63
- name: string;
64
- type: string;
65
- stateMutability?: undefined;
66
- outputs?: undefined;
67
- } | {
68
- inputs: {
69
- internalType: string;
70
- name: string;
71
- type: string;
72
- }[];
73
- name: string;
74
- outputs: {
75
- internalType: string;
76
- name: string;
77
- type: string;
78
- }[];
79
- stateMutability: string;
80
- type: string;
81
- anonymous?: undefined;
82
- })[];
83
- static createInterface(): AdaptersDeployerInterface;
84
- static connect(address: string, signerOrProvider: Signer | Provider): AdaptersDeployer;
85
- }