Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@uniswap/v3-periphery

Package Overview
Dependencies
Maintainers
8
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uniswap/v3-periphery - npm Package Compare versions

Comparing version 1.0.0-beta.12 to 1.0.0-beta.13

19

artifacts/contracts/interfaces/INonfungibleTokenPositionDescriptor.sol/INonfungibleTokenPositionDescriptor.json

@@ -7,4 +7,23 @@ {

{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "int256",
"name": "priority",
"type": "int256"
}
],
"name": "UpdateTokenRatioPriority",
"type": "event"
},
{
"inputs": [
{
"internalType": "contract INonfungiblePositionManager",

@@ -11,0 +30,0 @@ "name": "positionManager",

@@ -33,2 +33,41 @@ {

{
"internalType": "address",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "address",
"name": "tokenOut",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"name": "quoteExactInputSingle",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",

@@ -54,2 +93,41 @@ "name": "path",

"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "address",
"name": "tokenOut",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"name": "quoteExactOutputSingle",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
}

@@ -56,0 +134,0 @@ ],

@@ -57,2 +57,63 @@ {

{
"internalType": "address",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "address",
"name": "tokenOut",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMinimum",
"type": "uint256"
},
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"internalType": "struct ISwapRouter.ExactInputSingleParams",
"name": "params",
"type": "tuple"
}
],
"name": "exactInputSingle",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "bytes",

@@ -102,2 +163,63 @@ "name": "path",

{
"components": [
{
"internalType": "address",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "address",
"name": "tokenOut",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMaximum",
"type": "uint256"
},
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"internalType": "struct ISwapRouter.ExactOutputSingleParams",
"name": "params",
"type": "tuple"
}
],
"name": "exactOutputSingle",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "int256",

@@ -104,0 +226,0 @@ "name": "amount0Delta",

24

artifacts/contracts/interfaces/IV3Migrator.sol/IV3Migrator.json

@@ -45,6 +45,16 @@ {

"internalType": "uint256",
"name": "liquidityV2",
"name": "liquidityToMigrate",
"type": "uint256"
},
{
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"internalType": "uint24",

@@ -66,11 +76,6 @@ "name": "fee",

"internalType": "uint256",
"name": "amount0Max",
"name": "liquidityV3Min",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Max",
"type": "uint256"
},
{
"internalType": "address",

@@ -84,2 +89,7 @@ "name": "recipient",

"type": "uint256"
},
{
"internalType": "bool",
"name": "refundAsETH",
"type": "bool"
}

@@ -86,0 +96,0 @@ ],

@@ -75,2 +75,41 @@ {

{
"internalType": "address",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "address",
"name": "tokenOut",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"name": "quoteExactInputSingle",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",

@@ -100,2 +139,41 @@ "name": "path",

{
"internalType": "address",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "address",
"name": "tokenOut",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"name": "quoteExactOutputSingle",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "int256",

@@ -122,6 +200,6 @@ "name": "amount0Delta",

],
"bytecode": "0x60c060405234801561001057600080fd5b50604051610eee380380610eee83398101604081905261002f91610069565b6001600160601b0319606092831b8116608052911b1660a05261009b565b80516001600160a01b038116811461006457600080fd5b919050565b6000806040838503121561007b578182fd5b6100848361004d565b91506100926020840161004d565b90509250929050565b60805160601c60a05160601c610e206100ce6000398061012b52508061014f52806101c5528061074c5250610e206000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063c45a015511610050578063c45a0155146100aa578063cdca1753146100b2578063fa461e33146100c557610067565b80632f80bb1d1461006c5780634aa4a4fc14610095575b600080fd5b61007f61007a366004610c3b565b6100da565b60405161008c9190610e0a565b60405180910390f35b61009d610129565b60405161008c9190610d07565b61009d61014d565b61007f6100c0366004610c3b565b610171565b6100d86100d3366004610ca1565b6101ac565b005b60005b60006100e884610289565b90506100fc836100f786610290565b61029f565b925080156101145761010d84610457565b935061011d565b82915050610123565b506100dd565b92915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005b600061017f84610289565b90506101938361018e86610290565b61048c565b92508015610114576101a484610457565b935050610174565b60008060006101ba8461050e565b9250925092506101ec7f000000000000000000000000000000000000000000000000000000000000000084848461053f565b506000806000808913610232578573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610888a600003610267565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161089896000035b925092509250821561027e57604051818152602081fd5b604051828152602081fd5b51602b1090565b6060610123826000602b61055e565b6000806000806102ae8561050e565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808416908316106102dc838584610745565b73ffffffffffffffffffffffffffffffffffffffff1663128acb0830836103028b610783565b600003856103245773fffd8963efd1fc6a506488495d951d5263988d2561032b565b6401000276a45b8b6040518663ffffffff1660e01b815260040161034c959493929190610d28565b6040805180830381600087803b15801561036557600080fd5b505af19250505080156103b3575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526103b091810190610c7e565b60015b61044b573d8080156103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b50805160201461042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042290610dd3565b60405180910390fd5b8080602001905181019061043f9190610cef565b95505050505050610123565b50505050505092915050565b80516060906101239083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90161055e565b60008060008061049b8561050e565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808316908416106104c9848484610745565b73ffffffffffffffffffffffffffffffffffffffff1663128acb0830836104ef8b610783565b856103245773fffd8963efd1fc6a506488495d951d5263988d2561032b565b6000808061051c84826107b5565b92506105298460146108b5565b90506105368460176107b5565b91509193909250565b6000610555856105508686866109a5565b610a22565b95945050505050565b60608182601f0110156105d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b82828401101561064357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b818301845110156106b557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b6060821580156106d4576040519150600082526020820160405261073c565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561070d5780518352602092830192016106f5565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b600061077b7f00000000000000000000000000000000000000000000000000000000000000006107768686866109a5565b610a52565b949350505050565b60007f800000000000000000000000000000000000000000000000000000000000000082106107b157600080fd5b5090565b60008182601401101561082957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b816014018351101561089c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b60008182600301101561092957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b816003018351101561099c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b6109ad610b88565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156109e5579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000610a2e8383610a52565b90503373ffffffffffffffffffffffffffffffffffffffff82161461012357600080fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610a9457600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b604080516060810182526000808252602082018190529181019190915290565b600082601f830112610bb8578081fd5b813567ffffffffffffffff80821115610bcd57fe5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168201018181108382111715610c0957fe5b604052828152848301602001861015610c20578384fd5b82602086016020830137918201602001929092529392505050565b60008060408385031215610c4d578182fd5b823567ffffffffffffffff811115610c63578283fd5b610c6f85828601610ba8565b95602094909401359450505050565b60008060408385031215610c90578182fd5b505080516020909101519092909150565b600080600060608486031215610cb5578081fd5b8335925060208401359150604084013567ffffffffffffffff811115610cd9578182fd5b610ce586828701610ba8565b9150509250925092565b600060208284031215610d00578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352602087151581850152866040850152818616606085015260a06080850152845191508160a0850152825b82811015610d8a5785810182015185820160c001528101610d6e565b82811115610d9b578360c084870101525b5050601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160c0019695505050505050565b60208082526010908201527f556e6578706563746564206572726f7200000000000000000000000000000000604082015260600190565b9081526020019056fea164736f6c6343000706000a",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100675760003560e01c8063c45a015511610050578063c45a0155146100aa578063cdca1753146100b2578063fa461e33146100c557610067565b80632f80bb1d1461006c5780634aa4a4fc14610095575b600080fd5b61007f61007a366004610c3b565b6100da565b60405161008c9190610e0a565b60405180910390f35b61009d610129565b60405161008c9190610d07565b61009d61014d565b61007f6100c0366004610c3b565b610171565b6100d86100d3366004610ca1565b6101ac565b005b60005b60006100e884610289565b90506100fc836100f786610290565b61029f565b925080156101145761010d84610457565b935061011d565b82915050610123565b506100dd565b92915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005b600061017f84610289565b90506101938361018e86610290565b61048c565b92508015610114576101a484610457565b935050610174565b60008060006101ba8461050e565b9250925092506101ec7f000000000000000000000000000000000000000000000000000000000000000084848461053f565b506000806000808913610232578573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610888a600003610267565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161089896000035b925092509250821561027e57604051818152602081fd5b604051828152602081fd5b51602b1090565b6060610123826000602b61055e565b6000806000806102ae8561050e565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808416908316106102dc838584610745565b73ffffffffffffffffffffffffffffffffffffffff1663128acb0830836103028b610783565b600003856103245773fffd8963efd1fc6a506488495d951d5263988d2561032b565b6401000276a45b8b6040518663ffffffff1660e01b815260040161034c959493929190610d28565b6040805180830381600087803b15801561036557600080fd5b505af19250505080156103b3575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526103b091810190610c7e565b60015b61044b573d8080156103e1576040519150601f19603f3d011682016040523d82523d6000602084013e6103e6565b606091505b50805160201461042b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161042290610dd3565b60405180910390fd5b8080602001905181019061043f9190610cef565b95505050505050610123565b50505050505092915050565b80516060906101239083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90161055e565b60008060008061049b8561050e565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808316908416106104c9848484610745565b73ffffffffffffffffffffffffffffffffffffffff1663128acb0830836104ef8b610783565b856103245773fffd8963efd1fc6a506488495d951d5263988d2561032b565b6000808061051c84826107b5565b92506105298460146108b5565b90506105368460176107b5565b91509193909250565b6000610555856105508686866109a5565b610a22565b95945050505050565b60608182601f0110156105d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b82828401101561064357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b818301845110156106b557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b6060821580156106d4576040519150600082526020820160405261073c565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561070d5780518352602092830192016106f5565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b600061077b7f00000000000000000000000000000000000000000000000000000000000000006107768686866109a5565b610a52565b949350505050565b60007f800000000000000000000000000000000000000000000000000000000000000082106107b157600080fd5b5090565b60008182601401101561082957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b816014018351101561089c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b60008182600301101561092957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b816003018351101561099c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b6109ad610b88565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156109e5579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000610a2e8383610a52565b90503373ffffffffffffffffffffffffffffffffffffffff82161461012357600080fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610a9457600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b604080516060810182526000808252602082018190529181019190915290565b600082601f830112610bb8578081fd5b813567ffffffffffffffff80821115610bcd57fe5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501168201018181108382111715610c0957fe5b604052828152848301602001861015610c20578384fd5b82602086016020830137918201602001929092529392505050565b60008060408385031215610c4d578182fd5b823567ffffffffffffffff811115610c63578283fd5b610c6f85828601610ba8565b95602094909401359450505050565b60008060408385031215610c90578182fd5b505080516020909101519092909150565b600080600060608486031215610cb5578081fd5b8335925060208401359150604084013567ffffffffffffffff811115610cd9578182fd5b610ce586828701610ba8565b9150509250925092565b600060208284031215610d00578081fd5b5051919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352602087151581850152866040850152818616606085015260a06080850152845191508160a0850152825b82811015610d8a5785810182015185820160c001528101610d6e565b82811115610d9b578360c084870101525b5050601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160c0019695505050505050565b60208082526010908201527f556e6578706563746564206572726f7200000000000000000000000000000000604082015260600190565b9081526020019056fea164736f6c6343000706000a",
"bytecode": "0x60c060405234801561001057600080fd5b506040516111cb3803806111cb83398101604081905261002f91610069565b6001600160601b0319606092831b8116608052911b1660a05261009b565b80516001600160a01b038116811461006457600080fd5b919050565b6000806040838503121561007b578182fd5b6100848361004d565b91506100926020840161004d565b90509250929050565b60805160601c60a05160601c6110fd6100ce6000398061031f525080610343528061048252806105bb52506110fd6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063c45a01551161005b578063c45a0155146100d3578063cdca1753146100db578063f7729d43146100ee578063fa461e33146101015761007d565b80632f80bb1d1461008257806330d07f21146100ab5780634aa4a4fc146100be575b600080fd5b610095610090366004610d84565b610116565b6040516100a2919061102e565b60405180910390f35b6100956100b9366004610d16565b6101cc565b6100c661031d565b6040516100a29190610f6a565b6100c6610341565b6100956100e9366004610d84565b610365565b6100956100fc366004610d16565b610404565b61011461010f366004610dea565b610469565b005b60005b600061012484610546565b905060008060006101348761054e565b925092509250610199828483898773ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161061018e5773fffd8963efd1fc6a506488495d951d5263988d256100b9565b6401000276a46101cc565b955083156101b1576101aa8761057f565b96506101bd565b859450505050506101c6565b50505050610119565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff808616908716106101f58787876105b4565b73ffffffffffffffffffffffffffffffffffffffff1663128acb08308361021b886105f2565b600003878b8b8e60405160200161023493929190610f04565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401610263959493929190610f8b565b6040805180830381600087803b15801561027c57600080fd5b505af19250505080156102ca575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526102c791810190610dc7565b60015b610310573d8080156102f8576040519150601f19603f3d011682016040523d82523d6000602084013e6102fd565b606091505b5061030781610624565b92505050610314565b5050505b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005b600061037384610546565b905060008060006103838761054e565b9250925092506103e8838383898673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16106103dd5773fffd8963efd1fc6a506488495d951d5263988d256100fc565b6401000276a4610404565b955083156101b1576103f98761057f565b965050505050610368565b600073ffffffffffffffffffffffffffffffffffffffff8086169087161061042d8787876105b4565b73ffffffffffffffffffffffffffffffffffffffff1663128acb083083610453886105f2565b878c8b8d60405160200161023493929190610f04565b60008060006104778461054e565b9250925092506104a97f00000000000000000000000000000000000000000000000000000000000000008484846106d5565b5060008060008089136104ef578573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610888a600003610524565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161089896000035b925092509250821561053b57604051818152602081fd5b604051828152602081fd5b516042111590565b6000808061055c84826106eb565b92506105698460146107eb565b90506105768460176106eb565b91509193909250565b80516060906101c69083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9016108db565b60006105ea7f00000000000000000000000000000000000000000000000000000000000000006105e5868686610ac2565b610b3f565b949350505050565b60007f8000000000000000000000000000000000000000000000000000000000000000821061062057600080fd5b5090565b600081516020146106c157604482511015610674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066b90610ff7565b60405180910390fd5b6004820191508180602001905181019061068e9190610e38565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066b9190610fdd565b818060200190518101906101c69190610ea2565b6000610314856106e6868686610ac2565b610c75565b60008182601401101561075f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b81601401835110156107d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b60008182600301101561085f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b81600301835110156108d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b60608182601f01101561094f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b8282840110156109c057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b81830184511015610a3257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b606082158015610a515760405191506000825260208201604052610ab9565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610a8a578051835260209283019201610a72565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b610aca610ca5565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115610b02579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610b8157600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b6000610c818383610b3f565b90503373ffffffffffffffffffffffffffffffffffffffff8216146101c657600080fd5b604080516060810182526000808252602082018190529181019190915290565b600082601f830112610cd5578081fd5b8135610ce8610ce38261105b565b611037565b818152846020838601011115610cfc578283fd5b816020850160208301379081016020019190915292915050565b600080600080600060a08688031215610d2d578081fd5b8535610d38816110cb565b94506020860135610d48816110cb565b9350604086013562ffffff81168114610d5f578182fd5b9250606086013591506080860135610d76816110cb565b809150509295509295909350565b60008060408385031215610d96578182fd5b823567ffffffffffffffff811115610dac578283fd5b610db885828601610cc5565b95602094909401359450505050565b60008060408385031215610dd9578182fd5b505080516020909101519092909150565b600080600060608486031215610dfe578283fd5b8335925060208401359150604084013567ffffffffffffffff811115610e22578182fd5b610e2e86828701610cc5565b9150509250925092565b600060208284031215610e49578081fd5b815167ffffffffffffffff811115610e5f578182fd5b8201601f81018413610e6f578182fd5b8051610e7d610ce38261105b565b818152856020838501011115610e91578384fd5b61031482602083016020860161109b565b600060208284031215610eb3578081fd5b5051919050565b60008151808452610ed281602086016020860161109b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a06080830152610fd260a0830184610eba565b979650505050505050565b600060208252610ff06020830184610eba565b9392505050565b60208082526010908201527f556e6578706563746564206572726f7200000000000000000000000000000000604082015260600190565b90815260200190565b60405181810167ffffffffffffffff8111828210171561105357fe5b604052919050565b600067ffffffffffffffff82111561106f57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b838110156110b657818101518382015260200161109e565b838111156110c5576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146110ed57600080fd5b5056fea164736f6c6343000706000a",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063c45a01551161005b578063c45a0155146100d3578063cdca1753146100db578063f7729d43146100ee578063fa461e33146101015761007d565b80632f80bb1d1461008257806330d07f21146100ab5780634aa4a4fc146100be575b600080fd5b610095610090366004610d84565b610116565b6040516100a2919061102e565b60405180910390f35b6100956100b9366004610d16565b6101cc565b6100c661031d565b6040516100a29190610f6a565b6100c6610341565b6100956100e9366004610d84565b610365565b6100956100fc366004610d16565b610404565b61011461010f366004610dea565b610469565b005b60005b600061012484610546565b905060008060006101348761054e565b925092509250610199828483898773ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161061018e5773fffd8963efd1fc6a506488495d951d5263988d256100b9565b6401000276a46101cc565b955083156101b1576101aa8761057f565b96506101bd565b859450505050506101c6565b50505050610119565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff808616908716106101f58787876105b4565b73ffffffffffffffffffffffffffffffffffffffff1663128acb08308361021b886105f2565b600003878b8b8e60405160200161023493929190610f04565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401610263959493929190610f8b565b6040805180830381600087803b15801561027c57600080fd5b505af19250505080156102ca575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526102c791810190610dc7565b60015b610310573d8080156102f8576040519150601f19603f3d011682016040523d82523d6000602084013e6102fd565b606091505b5061030781610624565b92505050610314565b5050505b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60005b600061037384610546565b905060008060006103838761054e565b9250925092506103e8838383898673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16106103dd5773fffd8963efd1fc6a506488495d951d5263988d256100fc565b6401000276a4610404565b955083156101b1576103f98761057f565b965050505050610368565b600073ffffffffffffffffffffffffffffffffffffffff8086169087161061042d8787876105b4565b73ffffffffffffffffffffffffffffffffffffffff1663128acb083083610453886105f2565b878c8b8d60405160200161023493929190610f04565b60008060006104778461054e565b9250925092506104a97f00000000000000000000000000000000000000000000000000000000000000008484846106d5565b5060008060008089136104ef578573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610888a600003610524565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161089896000035b925092509250821561053b57604051818152602081fd5b604051828152602081fd5b516042111590565b6000808061055c84826106eb565b92506105698460146107eb565b90506105768460176106eb565b91509193909250565b80516060906101c69083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9016108db565b60006105ea7f00000000000000000000000000000000000000000000000000000000000000006105e5868686610ac2565b610b3f565b949350505050565b60007f8000000000000000000000000000000000000000000000000000000000000000821061062057600080fd5b5090565b600081516020146106c157604482511015610674576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066b90610ff7565b60405180910390fd5b6004820191508180602001905181019061068e9190610e38565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066b9190610fdd565b818060200190518101906101c69190610ea2565b6000610314856106e6868686610ac2565b610c75565b60008182601401101561075f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b81601401835110156107d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b60008182600301101561085f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b81600301835110156108d257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b60608182601f01101561094f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b8282840110156109c057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b81830184511015610a3257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b606082158015610a515760405191506000825260208201604052610ab9565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610a8a578051835260209283019201610a72565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b610aca610ca5565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115610b02579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610b8157600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b6000610c818383610b3f565b90503373ffffffffffffffffffffffffffffffffffffffff8216146101c657600080fd5b604080516060810182526000808252602082018190529181019190915290565b600082601f830112610cd5578081fd5b8135610ce8610ce38261105b565b611037565b818152846020838601011115610cfc578283fd5b816020850160208301379081016020019190915292915050565b600080600080600060a08688031215610d2d578081fd5b8535610d38816110cb565b94506020860135610d48816110cb565b9350604086013562ffffff81168114610d5f578182fd5b9250606086013591506080860135610d76816110cb565b809150509295509295909350565b60008060408385031215610d96578182fd5b823567ffffffffffffffff811115610dac578283fd5b610db885828601610cc5565b95602094909401359450505050565b60008060408385031215610dd9578182fd5b505080516020909101519092909150565b600080600060608486031215610dfe578283fd5b8335925060208401359150604084013567ffffffffffffffff811115610e22578182fd5b610e2e86828701610cc5565b9150509250925092565b600060208284031215610e49578081fd5b815167ffffffffffffffff811115610e5f578182fd5b8201601f81018413610e6f578182fd5b8051610e7d610ce38261105b565b818152856020838501011115610e91578384fd5b61031482602083016020860161109b565b600060208284031215610eb3578081fd5b5051919050565b60008151808452610ed281602086016020860161109b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a06080830152610fd260a0830184610eba565b979650505050505050565b600060208252610ff06020830184610eba565b9392505050565b60208082526010908201527f556e6578706563746564206572726f7200000000000000000000000000000000604082015260600190565b90815260200190565b60405181810167ffffffffffffffff8111828210171561105357fe5b604052919050565b600067ffffffffffffffff82111561106f57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b838110156110b657818101518382015260200161109e565b838111156110c5576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146110ed57600080fd5b5056fea164736f6c6343000706000a",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -7,4 +7,91 @@ {

{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "int256",
"name": "priority",
"type": "int256"
}
],
"name": "UpdateTokenRatioPriority",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"internalType": "address",
"name": "token1",
"type": "address"
}
],
"name": "flipRatio",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "int256",
"name": "priority",
"type": "int256"
}
],
"internalType": "struct NonfungibleTokenPositionDescriptor.TokenRatioOrderPriority[]",
"name": "tokens",
"type": "tuple[]"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "tokenRatioPriority",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract INonfungiblePositionManager",

@@ -32,6 +119,6 @@ "name": "positionManager",

],
"bytecode": "0x608060405234801561001057600080fd5b506126df806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e9dc637514610030575b600080fd5b6100696004803603604081101561004657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356100de565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100a357818101518382015260200161008b565b50505050905090810190601f1680156100d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60606000806000806000808873ffffffffffffffffffffffffffffffffffffffff166399fbab88896040518263ffffffff1660e01b8152600401808281526020019150506101806040518083038186803b15801561013b57600080fd5b505afa15801561014f573d6000803e3d6000fd5b505050506040513d61018081101561016657600080fd5b506040808201516060830151608084015160a085015160c086015160e09096015185517fc45a01550000000000000000000000000000000000000000000000000000000081529551949c50929a50909850965092945091925060009161026d9173ffffffffffffffffffffffffffffffffffffffff8d169163c45a015591600480820192602092909190829003018186803b15801561020457600080fd5b505afa158015610218573d6000803e3d6000fd5b505050506040513d602081101561022e57600080fd5b50516040805160608101825273ffffffffffffffffffffffffffffffffffffffff808c1682528a16602082015262ffffff8916918101919091526104d2565b90506104c26040518061018001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020016102bf8a610608565b81526020016102cd89610608565b81526020018973ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561031857600080fd5b505afa15801561032c573d6000803e3d6000fd5b505050506040513d602081101561034257600080fd5b505160ff168152604080517f313ce567000000000000000000000000000000000000000000000000000000008152905160209283019273ffffffffffffffffffffffffffffffffffffffff8c169263313ce5679260048083019392829003018186803b1580156103b157600080fd5b505afa1580156103c5573d6000803e3d6000fd5b505050506040513d60208110156103db57600080fd5b810190808051906020019092919050505060ff1681526020018660020b81526020018560020b81526020018373ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561044c57600080fd5b505afa158015610460573d6000803e3d6000fd5b505050506040513d602081101561047657600080fd5b505160020b815262ffffff881660208201526fffffffffffffffffffffffffffffffff8516604082015273ffffffffffffffffffffffffffffffffffffffff841660609091015261065b565b9750505050505050505b92915050565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161061051457600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b60606000610636837f95d89b4100000000000000000000000000000000000000000000000000000000610c82565b90508051600014156106535761064b83610ee4565b915050610656565b90505b919050565b6060600061066d836101200151610ef1565b836040015184606001516106948660c0015187610100015188608001518960a00151611152565b6106b18760e0015188610100015189608001518a60a00151611152565b60405160200180807f556e6973776170205633202d2000000000000000000000000000000000000000815250600d0186805190602001908083835b6020831061070b5780518252601f1990920191602091820191016106ec565b51815160209384036101000a60001901801990921691161790527f202d200000000000000000000000000000000000000000000000000000000000919093019081528751600390910192880191508083835b6020831061077c5780518252601f19909201916020918201910161075d565b6001836020036101000a038019825116818451168082178552505050505050905001807f2f0000000000000000000000000000000000000000000000000000000000000081525060010184805190602001908083835b602083106107f15780518252601f1990920191602091820191016107d2565b51815160209384036101000a60001901801990921691161790527f202d200000000000000000000000000000000000000000000000000000000000919093019081528551600390910192860191508083835b602083106108625780518252601f199092019160209182019101610843565b51815160209384036101000a60001901801990921691161790527f3c3e000000000000000000000000000000000000000000000000000000000000919093019081528451600290910192850191508083835b602083106108d35780518252601f1990920191602091820191016108b4565b6001836020036101000a038019825116818451168082178552505050505050905001955050505050506040516020818303038152906040529050600061091d846101400151611243565b61092b856101600151611352565b6109388660200151611352565b865161094390611352565b6040516020018060596126358239605901807f5c6e6c69717569646974793a2000000000000000000000000000000000000000815250600d0185805190602001908083835b602083106109a75780518252601f199092019160209182019101610988565b51815160209384036101000a60001901801990921691161790527f5c6e706f6f6c416464726573733a200000000000000000000000000000000000919093019081528651600f90910192870191508083835b60208310610a185780518252601f1990920191602091820191016109f9565b51815160209384036101000a60001901801990921691161790527f5c6e746f6b656e30416464726573733a20000000000000000000000000000000919093019081528551601190910192860191508083835b60208310610a895780518252601f199092019160209182019101610a6a565b51815160209384036101000a60001901801990921691161790527f5c6e746f6b656e31416464726573733a20000000000000000000000000000000919093019081528451601190910192850191508083835b60208310610afa5780518252601f199092019160209182019101610adb565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050818160405160200180807f646174613a6170706c69636174696f6e2f6a736f6e2c7b226e616d65223a2200815250601f0183805190602001908083835b60208310610b8f5780518252601f199092019160209182019101610b70565b51815160209384036101000a60001901801990921691161790527f222c20226465736372697074696f6e223a220000000000000000000000000000919093019081528451601290910192850191508083835b60208310610c005780518252601f199092019160209182019101610be1565b5181516020939093036101000a60001901801990911692169190911790527f227d000000000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe201815260029092019052979650505050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000851617815291518151606093600093849373ffffffffffffffffffffffffffffffffffffffff891693919290918291908083835b60208310610d285780518252601f199092019160209182019101610d09565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610d88576040519150601f19603f3d011682016040523d82523d6000602084013e610d8d565b606091505b5091509150811580610d9e57508051155b15610dbc5760405180602001604052806000815250925050506104cc565b805160201415610df4576000818060200190516020811015610ddd57600080fd5b50519050610dea81611375565b93505050506104cc565b604081511115610ecc57808060200190516020811015610e1357600080fd5b8101908080516040519392919084640100000000821115610e3357600080fd5b908301906020820185811115610e4857600080fd5b8251640100000000811182820188101715610e6257600080fd5b82525081516020918201929091019080838360005b83811015610e8f578181015183820152602001610e77565b50505050905090810190601f168015610ebc5780820380516001836020036101000a031916815260200191505b50604052505050925050506104cc565b50506040805160208101909152600081529392505050565b60606106538260066114dc565b606062ffffff8216610f37575060408051808201909152600281527f30250000000000000000000000000000000000000000000000000000000000006020820152610656565b816000805b62ffffff831615610f875760ff811615610f5857600101610f71565b600a62ffffff84160662ffffff16600014610f71576001015b600190910190600a62ffffff8416049250610f3c565b610f8f6125f0565b6000600584106110845760006004610faa8660ff8716611696565b1015610fb7576001610fba565b60005b60ff9081169150610fce9085166001611696565b610fd9866005611696565b1061100557611000610fef60ff86166001611696565b610ffa876005611696565b90611696565b611008565b60005b60ff85166080850181905290925061102790600190610ffa908561170d565b60ff90811660a0850152608084015161104e91839161104891166001611696565b9061170d565b60ff90811660408501526110769082906110489061106f908816600161170d565b859061170d565b60ff166020840152506110f4565b61108f600585611696565b6002608084018190529091506110ad90600190610ffa90849061170d565b60ff90811660a08401526110cf906110c8908516600261170d565b829061170d565b60ff16602083018190526110e4906002611696565b60ff166040830152600160c08301525b6111136111048560ff8616611696565b62ffffff891690600a0a611788565b8252600160e08301526004841161112b576000611136565b611136846004611696565b60ff16606083015261114782611809565b979650505050505050565b606083600281900b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276188161118257fe5b050260020b8560020b14156111cb575060408051808201909152600381527f4d494e0000000000000000000000000000000000000000000000000000000000602082015261123b565b83600281900b620d89e8816111dc57fe5b050260020b8560020b1415611225575060408051808201909152600381527f4d41580000000000000000000000000000000000000000000000000000000000602082015261123b565b61123861123186611b19565b8484611e8e565b90505b949350505050565b606081611284575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610656565b8160005b811561129c57600101600a82049150611288565b60008167ffffffffffffffff811180156112b557600080fd5b506040519080825280601f01601f1916602001820160405280156112e0576020820181803683370190505b50859350905060001982015b831561134957600a840660300160f81b8282806001900393508151811061130f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506112ec565b50949350505050565b606061065373ffffffffffffffffffffffffffffffffffffffff83166014612076565b604080516020808252818301909252606091600091906020820181803683370190505090506000805b602081101561142f5760008582602081106113b557fe5b1a60f81b90507fff0000000000000000000000000000000000000000000000000000000000000081161561142657808484815181106113f057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001909201915b5060010161139e565b5060008167ffffffffffffffff8111801561144957600080fd5b506040519080825280601f01601f191660200182016040528015611474576020820181803683370190505b50905060005b828110156113495783818151811061148e57fe5b602001015160f81c60f81b8282815181106114a557fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060010161147a565b6060600282061580156114ef5750600082115b80156114fc575060288211155b61156757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f41646472657373537472696e675574696c3a20494e56414c49445f4c454e0000604482015290519081900360640190fd5b60008267ffffffffffffffff8111801561158057600080fd5b506040519080825280601f01601f1916602001820160405280156115ab576020820181803683370190505b50905073ffffffffffffffffffffffffffffffffffffffff841660005b6002850481101561168c57600860138290030282901c600f600482901c1660f0821682036115f58261227c565b86856002028151811061160457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061163c8161227c565b86856002026001018151811061164e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050600190920191506115c89050565b5090949350505050565b60008282111561170757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008282018381101561178157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008082116117f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161180157fe5b049392505050565b60606000826020015160ff1667ffffffffffffffff8111801561182b57600080fd5b506040519080825280601f01601f191660200182016040528015611856576020820181803683370190505b5090508260e00151156118c4577f25000000000000000000000000000000000000000000000000000000000000008160018351038151811061189457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b8260c0015115611989577f3000000000000000000000000000000000000000000000000000000000000000816000815181106118fc57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f2e000000000000000000000000000000000000000000000000000000000000008160018151811061195957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b608083015160ff165b60a08401516119a59060ff16600161170d565b8110156119f457603060f81b8282815181106119bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611992565b505b825115610653576000836060015160ff16118015611a215750826060015160ff16836040015160ff16145b15611a985760408301805160ff6000198201811690925282517f2e0000000000000000000000000000000000000000000000000000000000000092849216908110611a6857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b8251611aaa90603090600a900661170d565b60f81b818460400180518091906001900360ff1660ff1681525060ff1681518110611ad157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8360000181815181611b1057fe5b049052506119f6565b60008060008360020b12611b30578260020b611b38565b8260020b6000035b9050620d89e8811115611bac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600060018216611bcd57700100000000000000000000000000000000611bdf565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611c13576ffff97272373d413259a46990580e213a0260801c5b6004821615611c32576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611c51576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611c70576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611c8f576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611cae576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611ccd576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611ced576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611d0d576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611d2d576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611d4d576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611d6d576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611d8d576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611dad576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611dcd576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611dee576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611e0e576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611e2d576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611e4a576b048a170391f7dc42444e8fa20260801c5b60008460020b1315611e65578060001981611e6157fe5b0490505b640100000000810615611e79576001611e7c565b60005b60ff16602082901c0192505050919050565b60606000611e9d8585856122a4565b90506000611eb58283680100000000000000006123ae565b90506c0100000000000000000000000082108015611f0357611efc8272047bf19673df52e37f2410011d1000000000007001000000000000000000000000000000006123ae565b9150611f25565b611f2282620186a07001000000000000000000000000000000006123ae565b91505b8160005b8115611f3d57600101600a82049150611f29565b60001901600080611f4e868461245d565b915091508015611f5f576001909201915b611f676125f0565b8515611fd457611f86611f7e602b60ff8716611696565b60079061170d565b60ff908116602083015260026080830152611fac9060019061104890602b908816611696565b60ff90811660a08301526020820151611fc791166001611696565b60ff16604082015261204b565b60098460ff161061201d57611fed60ff85166004611696565b60ff166020820181905260056080830152612009906001611696565b60ff1660a08201526004604082015261204b565b60066020820152600560408201819052612042906001906110489060ff881690611696565b60ff1660608201525b82815285151560c0820152600060e082015261206681611809565b9c9b505050505050505050505050565b606060008260020260020167ffffffffffffffff8111801561209757600080fd5b506040519080825280601f01601f1916602001820160405280156120c2576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106120f357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061215057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600160028402015b600181111561220e577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106121bf57fe5b1a60f81b8282815181106121cf57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9360001901612187565b50831561178157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015290519081900360640190fd5b6000600a8260ff16101561229757506030810160f81b610656565b506037810160f81b610656565b6000806122bf6122ba60ff8681169086166124e7565b612566565b90506000811180156122d2575060128111155b1561238c578260ff168460ff16111561231a576123136122f3826002611788565b73ffffffffffffffffffffffffffffffffffffffff871690600a0a61257d565b915061234b565b612348612328826002611788565b73ffffffffffffffffffffffffffffffffffffffff871690600a0a611788565b91505b600281066001141561238757612384827003298b075b4b6a5240945790619b37fd4a7001000000000000000000000000000000006123ae565b91505b6123a6565b8473ffffffffffffffffffffffffffffffffffffffff1691505b509392505050565b60008080600019858709868602925082811090839003039050806123e457600084116123d957600080fd5b508290049050611781565b8084116123f057600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600080600060058460ff1611156124a3576124a08560ff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb870116600a0a611788565b94505b60006004600a87061190506124b986600a611788565b955080156124c8578560010195505b85620186a014156124de57600a86049550600191505b50939492505050565b60008183038183128015906124fc5750838113155b80612511575060008312801561251157508381135b611781576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806126af6024913960400191505060405180910390fd5b6000808212156125795781600003610653565b5090565b60008261258c575060006104cc565b8282028284828161259957fe5b0414611781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061268e6021913960400191505060405180910390fd5b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101919091529056fe526570726573656e74732061206c697175696469747920706f736974696f6e20696e206120556e697377617020563320706f6f6c2e2052656465656d61626c6520666f72206f776564207265736572766520746f6b656e732e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f77a164736f6c6343000706000a",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063e9dc637514610030575b600080fd5b6100696004803603604081101561004657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356100de565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100a357818101518382015260200161008b565b50505050905090810190601f1680156100d05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60606000806000806000808873ffffffffffffffffffffffffffffffffffffffff166399fbab88896040518263ffffffff1660e01b8152600401808281526020019150506101806040518083038186803b15801561013b57600080fd5b505afa15801561014f573d6000803e3d6000fd5b505050506040513d61018081101561016657600080fd5b506040808201516060830151608084015160a085015160c086015160e09096015185517fc45a01550000000000000000000000000000000000000000000000000000000081529551949c50929a50909850965092945091925060009161026d9173ffffffffffffffffffffffffffffffffffffffff8d169163c45a015591600480820192602092909190829003018186803b15801561020457600080fd5b505afa158015610218573d6000803e3d6000fd5b505050506040513d602081101561022e57600080fd5b50516040805160608101825273ffffffffffffffffffffffffffffffffffffffff808c1682528a16602082015262ffffff8916918101919091526104d2565b90506104c26040518061018001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020016102bf8a610608565b81526020016102cd89610608565b81526020018973ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561031857600080fd5b505afa15801561032c573d6000803e3d6000fd5b505050506040513d602081101561034257600080fd5b505160ff168152604080517f313ce567000000000000000000000000000000000000000000000000000000008152905160209283019273ffffffffffffffffffffffffffffffffffffffff8c169263313ce5679260048083019392829003018186803b1580156103b157600080fd5b505afa1580156103c5573d6000803e3d6000fd5b505050506040513d60208110156103db57600080fd5b810190808051906020019092919050505060ff1681526020018660020b81526020018560020b81526020018373ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561044c57600080fd5b505afa158015610460573d6000803e3d6000fd5b505050506040513d602081101561047657600080fd5b505160020b815262ffffff881660208201526fffffffffffffffffffffffffffffffff8516604082015273ffffffffffffffffffffffffffffffffffffffff841660609091015261065b565b9750505050505050505b92915050565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161061051457600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b60606000610636837f95d89b4100000000000000000000000000000000000000000000000000000000610c82565b90508051600014156106535761064b83610ee4565b915050610656565b90505b919050565b6060600061066d836101200151610ef1565b836040015184606001516106948660c0015187610100015188608001518960a00151611152565b6106b18760e0015188610100015189608001518a60a00151611152565b60405160200180807f556e6973776170205633202d2000000000000000000000000000000000000000815250600d0186805190602001908083835b6020831061070b5780518252601f1990920191602091820191016106ec565b51815160209384036101000a60001901801990921691161790527f202d200000000000000000000000000000000000000000000000000000000000919093019081528751600390910192880191508083835b6020831061077c5780518252601f19909201916020918201910161075d565b6001836020036101000a038019825116818451168082178552505050505050905001807f2f0000000000000000000000000000000000000000000000000000000000000081525060010184805190602001908083835b602083106107f15780518252601f1990920191602091820191016107d2565b51815160209384036101000a60001901801990921691161790527f202d200000000000000000000000000000000000000000000000000000000000919093019081528551600390910192860191508083835b602083106108625780518252601f199092019160209182019101610843565b51815160209384036101000a60001901801990921691161790527f3c3e000000000000000000000000000000000000000000000000000000000000919093019081528451600290910192850191508083835b602083106108d35780518252601f1990920191602091820191016108b4565b6001836020036101000a038019825116818451168082178552505050505050905001955050505050506040516020818303038152906040529050600061091d846101400151611243565b61092b856101600151611352565b6109388660200151611352565b865161094390611352565b6040516020018060596126358239605901807f5c6e6c69717569646974793a2000000000000000000000000000000000000000815250600d0185805190602001908083835b602083106109a75780518252601f199092019160209182019101610988565b51815160209384036101000a60001901801990921691161790527f5c6e706f6f6c416464726573733a200000000000000000000000000000000000919093019081528651600f90910192870191508083835b60208310610a185780518252601f1990920191602091820191016109f9565b51815160209384036101000a60001901801990921691161790527f5c6e746f6b656e30416464726573733a20000000000000000000000000000000919093019081528551601190910192860191508083835b60208310610a895780518252601f199092019160209182019101610a6a565b51815160209384036101000a60001901801990921691161790527f5c6e746f6b656e31416464726573733a20000000000000000000000000000000919093019081528451601190910192850191508083835b60208310610afa5780518252601f199092019160209182019101610adb565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050818160405160200180807f646174613a6170706c69636174696f6e2f6a736f6e2c7b226e616d65223a2200815250601f0183805190602001908083835b60208310610b8f5780518252601f199092019160209182019101610b70565b51815160209384036101000a60001901801990921691161790527f222c20226465736372697074696f6e223a220000000000000000000000000000919093019081528451601290910192850191508083835b60208310610c005780518252601f199092019160209182019101610be1565b5181516020939093036101000a60001901801990911692169190911790527f227d000000000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe201815260029092019052979650505050505050565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000851617815291518151606093600093849373ffffffffffffffffffffffffffffffffffffffff891693919290918291908083835b60208310610d285780518252601f199092019160209182019101610d09565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610d88576040519150601f19603f3d011682016040523d82523d6000602084013e610d8d565b606091505b5091509150811580610d9e57508051155b15610dbc5760405180602001604052806000815250925050506104cc565b805160201415610df4576000818060200190516020811015610ddd57600080fd5b50519050610dea81611375565b93505050506104cc565b604081511115610ecc57808060200190516020811015610e1357600080fd5b8101908080516040519392919084640100000000821115610e3357600080fd5b908301906020820185811115610e4857600080fd5b8251640100000000811182820188101715610e6257600080fd5b82525081516020918201929091019080838360005b83811015610e8f578181015183820152602001610e77565b50505050905090810190601f168015610ebc5780820380516001836020036101000a031916815260200191505b50604052505050925050506104cc565b50506040805160208101909152600081529392505050565b60606106538260066114dc565b606062ffffff8216610f37575060408051808201909152600281527f30250000000000000000000000000000000000000000000000000000000000006020820152610656565b816000805b62ffffff831615610f875760ff811615610f5857600101610f71565b600a62ffffff84160662ffffff16600014610f71576001015b600190910190600a62ffffff8416049250610f3c565b610f8f6125f0565b6000600584106110845760006004610faa8660ff8716611696565b1015610fb7576001610fba565b60005b60ff9081169150610fce9085166001611696565b610fd9866005611696565b1061100557611000610fef60ff86166001611696565b610ffa876005611696565b90611696565b611008565b60005b60ff85166080850181905290925061102790600190610ffa908561170d565b60ff90811660a0850152608084015161104e91839161104891166001611696565b9061170d565b60ff90811660408501526110769082906110489061106f908816600161170d565b859061170d565b60ff166020840152506110f4565b61108f600585611696565b6002608084018190529091506110ad90600190610ffa90849061170d565b60ff90811660a08401526110cf906110c8908516600261170d565b829061170d565b60ff16602083018190526110e4906002611696565b60ff166040830152600160c08301525b6111136111048560ff8616611696565b62ffffff891690600a0a611788565b8252600160e08301526004841161112b576000611136565b611136846004611696565b60ff16606083015261114782611809565b979650505050505050565b606083600281900b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276188161118257fe5b050260020b8560020b14156111cb575060408051808201909152600381527f4d494e0000000000000000000000000000000000000000000000000000000000602082015261123b565b83600281900b620d89e8816111dc57fe5b050260020b8560020b1415611225575060408051808201909152600381527f4d41580000000000000000000000000000000000000000000000000000000000602082015261123b565b61123861123186611b19565b8484611e8e565b90505b949350505050565b606081611284575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610656565b8160005b811561129c57600101600a82049150611288565b60008167ffffffffffffffff811180156112b557600080fd5b506040519080825280601f01601f1916602001820160405280156112e0576020820181803683370190505b50859350905060001982015b831561134957600a840660300160f81b8282806001900393508151811061130f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506112ec565b50949350505050565b606061065373ffffffffffffffffffffffffffffffffffffffff83166014612076565b604080516020808252818301909252606091600091906020820181803683370190505090506000805b602081101561142f5760008582602081106113b557fe5b1a60f81b90507fff0000000000000000000000000000000000000000000000000000000000000081161561142657808484815181106113f057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001909201915b5060010161139e565b5060008167ffffffffffffffff8111801561144957600080fd5b506040519080825280601f01601f191660200182016040528015611474576020820181803683370190505b50905060005b828110156113495783818151811061148e57fe5b602001015160f81c60f81b8282815181106114a557fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060010161147a565b6060600282061580156114ef5750600082115b80156114fc575060288211155b61156757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f41646472657373537472696e675574696c3a20494e56414c49445f4c454e0000604482015290519081900360640190fd5b60008267ffffffffffffffff8111801561158057600080fd5b506040519080825280601f01601f1916602001820160405280156115ab576020820181803683370190505b50905073ffffffffffffffffffffffffffffffffffffffff841660005b6002850481101561168c57600860138290030282901c600f600482901c1660f0821682036115f58261227c565b86856002028151811061160457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061163c8161227c565b86856002026001018151811061164e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050600190920191506115c89050565b5090949350505050565b60008282111561170757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008282018381101561178157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60008082116117f857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161180157fe5b049392505050565b60606000826020015160ff1667ffffffffffffffff8111801561182b57600080fd5b506040519080825280601f01601f191660200182016040528015611856576020820181803683370190505b5090508260e00151156118c4577f25000000000000000000000000000000000000000000000000000000000000008160018351038151811061189457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b8260c0015115611989577f3000000000000000000000000000000000000000000000000000000000000000816000815181106118fc57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f2e000000000000000000000000000000000000000000000000000000000000008160018151811061195957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b608083015160ff165b60a08401516119a59060ff16600161170d565b8110156119f457603060f81b8282815181106119bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611992565b505b825115610653576000836060015160ff16118015611a215750826060015160ff16836040015160ff16145b15611a985760408301805160ff6000198201811690925282517f2e0000000000000000000000000000000000000000000000000000000000000092849216908110611a6857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b8251611aaa90603090600a900661170d565b60f81b818460400180518091906001900360ff1660ff1681525060ff1681518110611ad157fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8360000181815181611b1057fe5b049052506119f6565b60008060008360020b12611b30578260020b611b38565b8260020b6000035b9050620d89e8811115611bac57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600060018216611bcd57700100000000000000000000000000000000611bdf565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611c13576ffff97272373d413259a46990580e213a0260801c5b6004821615611c32576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611c51576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611c70576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611c8f576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611cae576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611ccd576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611ced576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611d0d576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611d2d576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611d4d576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611d6d576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611d8d576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611dad576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611dcd576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611dee576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611e0e576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611e2d576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611e4a576b048a170391f7dc42444e8fa20260801c5b60008460020b1315611e65578060001981611e6157fe5b0490505b640100000000810615611e79576001611e7c565b60005b60ff16602082901c0192505050919050565b60606000611e9d8585856122a4565b90506000611eb58283680100000000000000006123ae565b90506c0100000000000000000000000082108015611f0357611efc8272047bf19673df52e37f2410011d1000000000007001000000000000000000000000000000006123ae565b9150611f25565b611f2282620186a07001000000000000000000000000000000006123ae565b91505b8160005b8115611f3d57600101600a82049150611f29565b60001901600080611f4e868461245d565b915091508015611f5f576001909201915b611f676125f0565b8515611fd457611f86611f7e602b60ff8716611696565b60079061170d565b60ff908116602083015260026080830152611fac9060019061104890602b908816611696565b60ff90811660a08301526020820151611fc791166001611696565b60ff16604082015261204b565b60098460ff161061201d57611fed60ff85166004611696565b60ff166020820181905260056080830152612009906001611696565b60ff1660a08201526004604082015261204b565b60066020820152600560408201819052612042906001906110489060ff881690611696565b60ff1660608201525b82815285151560c0820152600060e082015261206681611809565b9c9b505050505050505050505050565b606060008260020260020167ffffffffffffffff8111801561209757600080fd5b506040519080825280601f01601f1916602001820160405280156120c2576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106120f357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061215057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600160028402015b600181111561220e577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106121bf57fe5b1a60f81b8282815181106121cf57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9360001901612187565b50831561178157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015290519081900360640190fd5b6000600a8260ff16101561229757506030810160f81b610656565b506037810160f81b610656565b6000806122bf6122ba60ff8681169086166124e7565b612566565b90506000811180156122d2575060128111155b1561238c578260ff168460ff16111561231a576123136122f3826002611788565b73ffffffffffffffffffffffffffffffffffffffff871690600a0a61257d565b915061234b565b612348612328826002611788565b73ffffffffffffffffffffffffffffffffffffffff871690600a0a611788565b91505b600281066001141561238757612384827003298b075b4b6a5240945790619b37fd4a7001000000000000000000000000000000006123ae565b91505b6123a6565b8473ffffffffffffffffffffffffffffffffffffffff1691505b509392505050565b60008080600019858709868602925082811090839003039050806123e457600084116123d957600080fd5b508290049050611781565b8084116123f057600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600080600060058460ff1611156124a3576124a08560ff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb870116600a0a611788565b94505b60006004600a87061190506124b986600a611788565b955080156124c8578560010195505b85620186a014156124de57600a86049550600191505b50939492505050565b60008183038183128015906124fc5750838113155b80612511575060008312801561251157508381135b611781576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806126af6024913960400191505060405180910390fd5b6000808212156125795781600003610653565b5090565b60008261258c575060006104cc565b8282028284828161259957fe5b0414611781576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061268e6021913960400191505060405180910390fd5b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101919091529056fe526570726573656e74732061206c697175696469747920706f736974696f6e20696e206120556e697377617020563320706f6f6c2e2052656465656d61626c6520666f72206f776564207265736572766520746f6b656e732e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f77a164736f6c6343000706000a",
"bytecode": "0x608060405234801561001057600080fd5b50612cd3806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80635253573a146100515780637d4a868914610066578063dee91a2c1461008f578063e9dc6375146100af575b600080fd5b61006461005f366004612993565b6100cf565b005b610079610074366004612923565b610213565b6040516100869190612b79565b60405180910390f35b6100a261009d36600461295b565b610225565b6040516100869190612b6e565b6100c26100bd366004612a03565b61025d565b6040516100869190612b82565b600054610100900460ff16806100e857506100e8610642565b806100f6575060005460ff16155b61014b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612c54602e913960400191505060405180910390fd5b600054610100900460ff161580156101b157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60005b828110156101de576101d68484838181106101cb57fe5b905060400201610653565b6001016101b4565b50801561020e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b505050565b60016020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff808216600090815260016020526040808220549285168252902054135b92915050565b60606000806000806000808873ffffffffffffffffffffffffffffffffffffffff166399fbab88896040518263ffffffff1660e01b81526004016102a19190612b79565b6101806040518083038186803b1580156102ba57600080fd5b505afa1580156102ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f29190612a69565b50505050975097509750975097509750505060006103d88a73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561034f57600080fd5b505afa158015610363573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610387919061293f565b60405180606001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018862ffffff168152506106e1565b9050610634604051806101a001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815260200161042a8a610817565b815260200161043889610817565b81526020018973ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561048357600080fd5b505afa158015610497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bb9190612a48565b60ff1681526020018873ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561050957600080fd5b505afa15801561051d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105419190612a48565b60ff1681526020016105538a8a610225565b151581526020018660020b81526020018560020b81526020018373ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105b257600080fd5b505afa1580156105c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ea9190612a2e565b60020b81526020018762ffffff168152602001846fffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681525061086a565b9a9950505050505050505050565b600061064d30610ec4565b15905090565b6020810180359060019060009061066a9085612923565b73ffffffffffffffffffffffffffffffffffffffff168152602080820192909252604001600020919091557f5fd68dea96a9ad4e6dc9cfad3617d7eb84c2070e6352848fb091a254f4629e92906106c390830183612923565b82602001356040516106d6929190612b48565b60405180910390a150565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161061072357600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b60606000610845837f95d89b4100000000000000000000000000000000000000000000000000000000610eca565b90508051600014156108625761085a8361112c565b915050610865565b90505b919050565b6060600061087c836101400151611139565b8360c0015161088f578360600151610895565b83604001515b8460c001516108a85784604001516108ae565b84606001515b6108d08660e0015187610120015188608001518960a001518a60c0015161139a565b6108f387610100015188610120015189608001518a60a001518b60c0015161139a565b60405160200180807f556e6973776170205633202d2000000000000000000000000000000000000000815250600d0186805190602001908083835b6020831061094d5780518252601f19909201916020918201910161092e565b51815160209384036101000a60001901801990921691161790527f202d200000000000000000000000000000000000000000000000000000000000919093019081528751600390910192880191508083835b602083106109be5780518252601f19909201916020918201910161099f565b6001836020036101000a038019825116818451168082178552505050505050905001807f2f0000000000000000000000000000000000000000000000000000000000000081525060010184805190602001908083835b60208310610a335780518252601f199092019160209182019101610a14565b51815160209384036101000a60001901801990921691161790527f202d200000000000000000000000000000000000000000000000000000000000919093019081528551600390910192860191508083835b60208310610aa45780518252601f199092019160209182019101610a85565b51815160209384036101000a60001901801990921691161790527f3c3e000000000000000000000000000000000000000000000000000000000000919093019081528451600290910192850191508083835b60208310610b155780518252601f199092019160209182019101610af6565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405160208183030381529060405290506000610b5f8461016001516114e2565b610b6d8561018001516115f1565b610b7a86602001516115f1565b8651610b85906115f1565b604051602001806059612bfb8239605901807f5c6e6c69717569646974793a2000000000000000000000000000000000000000815250600d0185805190602001908083835b60208310610be95780518252601f199092019160209182019101610bca565b51815160209384036101000a60001901801990921691161790527f5c6e706f6f6c416464726573733a200000000000000000000000000000000000919093019081528651600f90910192870191508083835b60208310610c5a5780518252601f199092019160209182019101610c3b565b51815160209384036101000a60001901801990921691161790527f5c6e746f6b656e30416464726573733a20000000000000000000000000000000919093019081528551601190910192860191508083835b60208310610ccb5780518252601f199092019160209182019101610cac565b51815160209384036101000a60001901801990921691161790527f5c6e746f6b656e31416464726573733a20000000000000000000000000000000919093019081528451601190910192850191508083835b60208310610d3c5780518252601f199092019160209182019101610d1d565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050818160405160200180807f646174613a6170706c69636174696f6e2f6a736f6e2c7b226e616d65223a2200815250601f0183805190602001908083835b60208310610dd15780518252601f199092019160209182019101610db2565b51815160209384036101000a60001901801990921691161790527f222c20226465736372697074696f6e223a220000000000000000000000000000919093019081528451601290910192850191508083835b60208310610e425780518252601f199092019160209182019101610e23565b5181516020939093036101000a60001901801990911692169190911790527f227d000000000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe201815260029092019052979650505050505050565b3b151590565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000851617815291518151606093600093849373ffffffffffffffffffffffffffffffffffffffff891693919290918291908083835b60208310610f705780518252601f199092019160209182019101610f51565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610fd0576040519150601f19603f3d011682016040523d82523d6000602084013e610fd5565b606091505b5091509150811580610fe657508051155b15611004576040518060200160405280600081525092505050610257565b80516020141561103c57600081806020019051602081101561102557600080fd5b5051905061103281611614565b9350505050610257565b6040815111156111145780806020019051602081101561105b57600080fd5b810190808051604051939291908464010000000082111561107b57600080fd5b90830190602082018581111561109057600080fd5b82516401000000008111828201881017156110aa57600080fd5b82525081516020918201929091019080838360005b838110156110d75781810151838201526020016110bf565b50505050905090810190601f1680156111045780820380516001836020036101000a031916815260200191505b5060405250505092505050610257565b50506040805160208101909152600081529392505050565b606061086282600661177b565b606062ffffff821661117f575060408051808201909152600281527f30250000000000000000000000000000000000000000000000000000000000006020820152610865565b816000805b62ffffff8316156111cf5760ff8116156111a0576001016111b9565b600a62ffffff84160662ffffff166000146111b9576001015b600190910190600a62ffffff8416049250611184565b6111d761288f565b6000600584106112cc57600060046111f28660ff8716611935565b10156111ff576001611202565b60005b60ff90811691506112169085166001611935565b611221866005611935565b1061124d5761124861123760ff86166001611935565b611242876005611935565b90611935565b611250565b60005b60ff85166080850181905290925061126f9060019061124290856119ac565b60ff90811660a0850152608084015161129691839161129091166001611935565b906119ac565b60ff90811660408501526112be908290611290906112b790881660016119ac565b85906119ac565b60ff1660208401525061133c565b6112d7600585611935565b6002608084018190529091506112f5906001906112429084906119ac565b60ff90811660a08401526113179061131090851660026119ac565b82906119ac565b60ff166020830181905261132c906002611935565b60ff166040830152600160c08301525b61135b61134c8560ff8616611935565b62ffffff891690600a0a611a27565b8252600160e08301526004841161137357600061137e565b61137e846004611935565b60ff16606083015261138f82611aa8565b979650505050505050565b606084600281900b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618816113ca57fe5b050260020b8660020b1415611413575060408051808201909152600381527f4d494e000000000000000000000000000000000000000000000000000000000060208201526114d9565b84600281900b620d89e88161142457fe5b050260020b8660020b141561146d575060408051808201909152600381527f4d4158000000000000000000000000000000000000000000000000000000000060208201526114d9565b600061147887611db8565b905082156114ce576114b9780100000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8316611a27565b90506114c681858761212d565b9150506114d9565b6114c681868661212d565b95945050505050565b606081611523575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610865565b8160005b811561153b57600101600a82049150611527565b60008167ffffffffffffffff8111801561155457600080fd5b506040519080825280601f01601f19166020018201604052801561157f576020820181803683370190505b50859350905060001982015b83156115e857600a840660300160f81b828280600190039350815181106115ae57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8404935061158b565b50949350505050565b606061086273ffffffffffffffffffffffffffffffffffffffff83166014612315565b604080516020808252818301909252606091600091906020820181803683370190505090506000805b60208110156116ce57600085826020811061165457fe5b1a60f81b90507fff000000000000000000000000000000000000000000000000000000000000008116156116c5578084848151811061168f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001909201915b5060010161163d565b5060008167ffffffffffffffff811180156116e857600080fd5b506040519080825280601f01601f191660200182016040528015611713576020820181803683370190505b50905060005b828110156115e85783818151811061172d57fe5b602001015160f81c60f81b82828151811061174457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611719565b60606002820615801561178e5750600082115b801561179b575060288211155b61180657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f41646472657373537472696e675574696c3a20494e56414c49445f4c454e0000604482015290519081900360640190fd5b60008267ffffffffffffffff8111801561181f57600080fd5b506040519080825280601f01601f19166020018201604052801561184a576020820181803683370190505b50905073ffffffffffffffffffffffffffffffffffffffff841660005b6002850481101561192b57600860138290030282901c600f600482901c1660f0821682036118948261251b565b8685600202815181106118a357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506118db8161251b565b8685600202600101815181106118ed57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050600190920191506118679050565b5090949350505050565b6000828211156119a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015611a2057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000808211611a9757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381611aa057fe5b049392505050565b60606000826020015160ff1667ffffffffffffffff81118015611aca57600080fd5b506040519080825280601f01601f191660200182016040528015611af5576020820181803683370190505b5090508260e0015115611b63577f250000000000000000000000000000000000000000000000000000000000000081600183510381518110611b3357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b8260c0015115611c28577f300000000000000000000000000000000000000000000000000000000000000081600081518110611b9b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f2e0000000000000000000000000000000000000000000000000000000000000081600181518110611bf857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b608083015160ff165b60a0840151611c449060ff1660016119ac565b811015611c9357603060f81b828281518110611c5c57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611c31565b505b825115610862576000836060015160ff16118015611cc05750826060015160ff16836040015160ff16145b15611d375760408301805160ff6000198201811690925282517f2e0000000000000000000000000000000000000000000000000000000000000092849216908110611d0757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b8251611d4990603090600a90066119ac565b60f81b818460400180518091906001900360ff1660ff1681525060ff1681518110611d7057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8360000181815181611daf57fe5b04905250611c95565b60008060008360020b12611dcf578260020b611dd7565b8260020b6000035b9050620d89e8811115611e4b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600060018216611e6c57700100000000000000000000000000000000611e7e565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611eb2576ffff97272373d413259a46990580e213a0260801c5b6004821615611ed1576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611ef0576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611f0f576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611f2e576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611f4d576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611f6c576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611f8c576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611fac576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611fcc576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611fec576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561200c576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561202c576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561204c576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561206c576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561208d576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156120ad576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156120cc576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156120e9576b048a170391f7dc42444e8fa20260801c5b60008460020b131561210457806000198161210057fe5b0490505b64010000000081061561211857600161211b565b60005b60ff16602082901c0192505050919050565b6060600061213c858585612543565b9050600061215482836801000000000000000061264d565b90506c01000000000000000000000000821080156121a25761219b8272047bf19673df52e37f2410011d10000000000070010000000000000000000000000000000061264d565b91506121c4565b6121c182620186a070010000000000000000000000000000000061264d565b91505b8160005b81156121dc57600101600a820491506121c8565b600019016000806121ed86846126fc565b9150915080156121fe576001909201915b61220661288f565b85156122735761222561221d602b60ff8716611935565b6007906119ac565b60ff90811660208301526002608083015261224b9060019061129090602b908816611935565b60ff90811660a0830152602082015161226691166001611935565b60ff1660408201526122ea565b60098460ff16106122bc5761228c60ff85166004611935565b60ff1660208201819052600560808301526122a8906001611935565b60ff1660a0820152600460408201526122ea565b600660208201526005604082018190526122e1906001906112909060ff881690611935565b60ff1660608201525b82815285151560c0820152600060e082015261230581611aa8565b9c9b505050505050505050505050565b606060008260020260020167ffffffffffffffff8111801561233657600080fd5b506040519080825280601f01601f191660200182016040528015612361576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061239257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106123ef57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600160028402015b60018111156124ad577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061245e57fe5b1a60f81b82828151811061246e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9360001901612426565b508315611a2057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015290519081900360640190fd5b6000600a8260ff16101561253657506030810160f81b610865565b506037810160f81b610865565b60008061255e61255960ff868116908616612786565b612805565b9050600081118015612571575060128111155b1561262b578260ff168460ff1611156125b9576125b2612592826002611a27565b73ffffffffffffffffffffffffffffffffffffffff871690600a0a61281c565b91506125ea565b6125e76125c7826002611a27565b73ffffffffffffffffffffffffffffffffffffffff871690600a0a611a27565b91505b600281066001141561262657612623827003298b075b4b6a5240945790619b37fd4a70010000000000000000000000000000000061264d565b91505b612645565b8473ffffffffffffffffffffffffffffffffffffffff1691505b509392505050565b6000808060001985870986860292508281109083900303905080612683576000841161267857600080fd5b508290049050611a20565b80841161268f57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600080600060058460ff1611156127425761273f8560ff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb870116600a0a611a27565b94505b60006004600a870611905061275886600a611a27565b95508015612767578560010195505b85620186a0141561277d57600a86049550600191505b50939492505050565b600081830381831280159061279b5750838113155b806127b057506000831280156127b057508381135b611a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ca36024913960400191505060405180910390fd5b6000808212156128185781600003610862565b5090565b60008261282b57506000610257565b8282028284828161283857fe5b0414611a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612c826021913960400191505060405180910390fd5b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b805161086581612bd5565b8051600281900b811461086557600080fd5b80516fffffffffffffffffffffffffffffffff8116811461086557600080fd5b805162ffffff8116811461086557600080fd5b600060208284031215612934578081fd5b8135611a2081612bd5565b600060208284031215612950578081fd5b8151611a2081612bd5565b6000806040838503121561296d578081fd5b823561297881612bd5565b9150602083013561298881612bd5565b809150509250929050565b600080602083850312156129a5578182fd5b823567ffffffffffffffff808211156129bc578384fd5b818501915085601f8301126129cf578384fd5b8135818111156129dd578485fd5b8660206040830285010111156129f1578485fd5b60209290920196919550909350505050565b60008060408385031215612a15578182fd5b8235612a2081612bd5565b946020939093013593505050565b600060208284031215612a3f578081fd5b611a20826128de565b600060208284031215612a59578081fd5b815160ff81168114611a20578182fd5b6000806000806000806000806000806000806101808d8f031215612a8b578788fd5b8c516bffffffffffffffffffffffff81168114612aa6578889fd5b9b50612ab460208e016128d3565b9a50612ac260408e016128d3565b9950612ad060608e016128d3565b9850612ade60808e01612910565b9750612aec60a08e016128de565b9650612afa60c08e016128de565b9550612b0860e08e016128f0565b94506101008d015193506101208d01519250612b276101408e016128f0565b9150612b366101608e016128f0565b90509295989b509295989b509295989b565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b901515815260200190565b90815260200190565b6000602080835283518082850152825b81811015612bae57858101830151858201604001528201612b92565b81811115612bbf5783604083870101525b50601f01601f1916929092016040019392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114612bf757600080fd5b5056fe526570726573656e74732061206c697175696469747920706f736974696f6e20696e206120556e697377617020563320706f6f6c2e2052656465656d61626c6520666f72206f776564207265736572766520746f6b656e732e496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f77a164736f6c6343000706000a",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80635253573a146100515780637d4a868914610066578063dee91a2c1461008f578063e9dc6375146100af575b600080fd5b61006461005f366004612993565b6100cf565b005b610079610074366004612923565b610213565b6040516100869190612b79565b60405180910390f35b6100a261009d36600461295b565b610225565b6040516100869190612b6e565b6100c26100bd366004612a03565b61025d565b6040516100869190612b82565b600054610100900460ff16806100e857506100e8610642565b806100f6575060005460ff16155b61014b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180612c54602e913960400191505060405180910390fd5b600054610100900460ff161580156101b157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b60005b828110156101de576101d68484838181106101cb57fe5b905060400201610653565b6001016101b4565b50801561020e57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b505050565b60016020526000908152604090205481565b73ffffffffffffffffffffffffffffffffffffffff808216600090815260016020526040808220549285168252902054135b92915050565b60606000806000806000808873ffffffffffffffffffffffffffffffffffffffff166399fbab88896040518263ffffffff1660e01b81526004016102a19190612b79565b6101806040518083038186803b1580156102ba57600080fd5b505afa1580156102ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f29190612a69565b50505050975097509750975097509750505060006103d88a73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561034f57600080fd5b505afa158015610363573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610387919061293f565b60405180606001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018862ffffff168152506106e1565b9050610634604051806101a001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815260200161042a8a610817565b815260200161043889610817565b81526020018973ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561048357600080fd5b505afa158015610497573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bb9190612a48565b60ff1681526020018873ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561050957600080fd5b505afa15801561051d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105419190612a48565b60ff1681526020016105538a8a610225565b151581526020018660020b81526020018560020b81526020018373ffffffffffffffffffffffffffffffffffffffff1663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105b257600080fd5b505afa1580156105c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ea9190612a2e565b60020b81526020018762ffffff168152602001846fffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681525061086a565b9a9950505050505050505050565b600061064d30610ec4565b15905090565b6020810180359060019060009061066a9085612923565b73ffffffffffffffffffffffffffffffffffffffff168152602080820192909252604001600020919091557f5fd68dea96a9ad4e6dc9cfad3617d7eb84c2070e6352848fb091a254f4629e92906106c390830183612923565b82602001356040516106d6929190612b48565b60405180910390a150565b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161061072357600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b60606000610845837f95d89b4100000000000000000000000000000000000000000000000000000000610eca565b90508051600014156108625761085a8361112c565b915050610865565b90505b919050565b6060600061087c836101400151611139565b8360c0015161088f578360600151610895565b83604001515b8460c001516108a85784604001516108ae565b84606001515b6108d08660e0015187610120015188608001518960a001518a60c0015161139a565b6108f387610100015188610120015189608001518a60a001518b60c0015161139a565b60405160200180807f556e6973776170205633202d2000000000000000000000000000000000000000815250600d0186805190602001908083835b6020831061094d5780518252601f19909201916020918201910161092e565b51815160209384036101000a60001901801990921691161790527f202d200000000000000000000000000000000000000000000000000000000000919093019081528751600390910192880191508083835b602083106109be5780518252601f19909201916020918201910161099f565b6001836020036101000a038019825116818451168082178552505050505050905001807f2f0000000000000000000000000000000000000000000000000000000000000081525060010184805190602001908083835b60208310610a335780518252601f199092019160209182019101610a14565b51815160209384036101000a60001901801990921691161790527f202d200000000000000000000000000000000000000000000000000000000000919093019081528551600390910192860191508083835b60208310610aa45780518252601f199092019160209182019101610a85565b51815160209384036101000a60001901801990921691161790527f3c3e000000000000000000000000000000000000000000000000000000000000919093019081528451600290910192850191508083835b60208310610b155780518252601f199092019160209182019101610af6565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405160208183030381529060405290506000610b5f8461016001516114e2565b610b6d8561018001516115f1565b610b7a86602001516115f1565b8651610b85906115f1565b604051602001806059612bfb8239605901807f5c6e6c69717569646974793a2000000000000000000000000000000000000000815250600d0185805190602001908083835b60208310610be95780518252601f199092019160209182019101610bca565b51815160209384036101000a60001901801990921691161790527f5c6e706f6f6c416464726573733a200000000000000000000000000000000000919093019081528651600f90910192870191508083835b60208310610c5a5780518252601f199092019160209182019101610c3b565b51815160209384036101000a60001901801990921691161790527f5c6e746f6b656e30416464726573733a20000000000000000000000000000000919093019081528551601190910192860191508083835b60208310610ccb5780518252601f199092019160209182019101610cac565b51815160209384036101000a60001901801990921691161790527f5c6e746f6b656e31416464726573733a20000000000000000000000000000000919093019081528451601190910192850191508083835b60208310610d3c5780518252601f199092019160209182019101610d1d565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050818160405160200180807f646174613a6170706c69636174696f6e2f6a736f6e2c7b226e616d65223a2200815250601f0183805190602001908083835b60208310610dd15780518252601f199092019160209182019101610db2565b51815160209384036101000a60001901801990921691161790527f222c20226465736372697074696f6e223a220000000000000000000000000000919093019081528451601290910192850191508083835b60208310610e425780518252601f199092019160209182019101610e23565b5181516020939093036101000a60001901801990911692169190911790527f227d000000000000000000000000000000000000000000000000000000000000920191825250604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe201815260029092019052979650505050505050565b3b151590565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000851617815291518151606093600093849373ffffffffffffffffffffffffffffffffffffffff891693919290918291908083835b60208310610f705780518252601f199092019160209182019101610f51565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610fd0576040519150601f19603f3d011682016040523d82523d6000602084013e610fd5565b606091505b5091509150811580610fe657508051155b15611004576040518060200160405280600081525092505050610257565b80516020141561103c57600081806020019051602081101561102557600080fd5b5051905061103281611614565b9350505050610257565b6040815111156111145780806020019051602081101561105b57600080fd5b810190808051604051939291908464010000000082111561107b57600080fd5b90830190602082018581111561109057600080fd5b82516401000000008111828201881017156110aa57600080fd5b82525081516020918201929091019080838360005b838110156110d75781810151838201526020016110bf565b50505050905090810190601f1680156111045780820380516001836020036101000a031916815260200191505b5060405250505092505050610257565b50506040805160208101909152600081529392505050565b606061086282600661177b565b606062ffffff821661117f575060408051808201909152600281527f30250000000000000000000000000000000000000000000000000000000000006020820152610865565b816000805b62ffffff8316156111cf5760ff8116156111a0576001016111b9565b600a62ffffff84160662ffffff166000146111b9576001015b600190910190600a62ffffff8416049250611184565b6111d761288f565b6000600584106112cc57600060046111f28660ff8716611935565b10156111ff576001611202565b60005b60ff90811691506112169085166001611935565b611221866005611935565b1061124d5761124861123760ff86166001611935565b611242876005611935565b90611935565b611250565b60005b60ff85166080850181905290925061126f9060019061124290856119ac565b60ff90811660a0850152608084015161129691839161129091166001611935565b906119ac565b60ff90811660408501526112be908290611290906112b790881660016119ac565b85906119ac565b60ff1660208401525061133c565b6112d7600585611935565b6002608084018190529091506112f5906001906112429084906119ac565b60ff90811660a08401526113179061131090851660026119ac565b82906119ac565b60ff166020830181905261132c906002611935565b60ff166040830152600160c08301525b61135b61134c8560ff8616611935565b62ffffff891690600a0a611a27565b8252600160e08301526004841161137357600061137e565b61137e846004611935565b60ff16606083015261138f82611aa8565b979650505050505050565b606084600281900b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff27618816113ca57fe5b050260020b8660020b1415611413575060408051808201909152600381527f4d494e000000000000000000000000000000000000000000000000000000000060208201526114d9565b84600281900b620d89e88161142457fe5b050260020b8660020b141561146d575060408051808201909152600381527f4d4158000000000000000000000000000000000000000000000000000000000060208201526114d9565b600061147887611db8565b905082156114ce576114b9780100000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff8316611a27565b90506114c681858761212d565b9150506114d9565b6114c681868661212d565b95945050505050565b606081611523575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610865565b8160005b811561153b57600101600a82049150611527565b60008167ffffffffffffffff8111801561155457600080fd5b506040519080825280601f01601f19166020018201604052801561157f576020820181803683370190505b50859350905060001982015b83156115e857600a840660300160f81b828280600190039350815181106115ae57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8404935061158b565b50949350505050565b606061086273ffffffffffffffffffffffffffffffffffffffff83166014612315565b604080516020808252818301909252606091600091906020820181803683370190505090506000805b60208110156116ce57600085826020811061165457fe5b1a60f81b90507fff000000000000000000000000000000000000000000000000000000000000008116156116c5578084848151811061168f57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001909201915b5060010161163d565b5060008167ffffffffffffffff811180156116e857600080fd5b506040519080825280601f01601f191660200182016040528015611713576020820181803683370190505b50905060005b828110156115e85783818151811061172d57fe5b602001015160f81c60f81b82828151811061174457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611719565b60606002820615801561178e5750600082115b801561179b575060288211155b61180657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f41646472657373537472696e675574696c3a20494e56414c49445f4c454e0000604482015290519081900360640190fd5b60008267ffffffffffffffff8111801561181f57600080fd5b506040519080825280601f01601f19166020018201604052801561184a576020820181803683370190505b50905073ffffffffffffffffffffffffffffffffffffffff841660005b6002850481101561192b57600860138290030282901c600f600482901c1660f0821682036118948261251b565b8685600202815181106118a357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506118db8161251b565b8685600202600101815181106118ed57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050600190920191506118679050565b5090949350505050565b6000828211156119a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015611a2057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000808211611a9757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381611aa057fe5b049392505050565b60606000826020015160ff1667ffffffffffffffff81118015611aca57600080fd5b506040519080825280601f01601f191660200182016040528015611af5576020820181803683370190505b5090508260e0015115611b63577f250000000000000000000000000000000000000000000000000000000000000081600183510381518110611b3357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b8260c0015115611c28577f300000000000000000000000000000000000000000000000000000000000000081600081518110611b9b57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f2e0000000000000000000000000000000000000000000000000000000000000081600181518110611bf857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b608083015160ff165b60a0840151611c449060ff1660016119ac565b811015611c9357603060f81b828281518110611c5c57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101611c31565b505b825115610862576000836060015160ff16118015611cc05750826060015160ff16836040015160ff16145b15611d375760408301805160ff6000198201811690925282517f2e0000000000000000000000000000000000000000000000000000000000000092849216908110611d0757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505b8251611d4990603090600a90066119ac565b60f81b818460400180518091906001900360ff1660ff1681525060ff1681518110611d7057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8360000181815181611daf57fe5b04905250611c95565b60008060008360020b12611dcf578260020b611dd7565b8260020b6000035b9050620d89e8811115611e4b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b600060018216611e6c57700100000000000000000000000000000000611e7e565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611eb2576ffff97272373d413259a46990580e213a0260801c5b6004821615611ed1576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611ef0576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611f0f576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611f2e576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611f4d576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611f6c576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611f8c576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611fac576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611fcc576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611fec576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561200c576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561202c576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561204c576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561206c576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561208d576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156120ad576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156120cc576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156120e9576b048a170391f7dc42444e8fa20260801c5b60008460020b131561210457806000198161210057fe5b0490505b64010000000081061561211857600161211b565b60005b60ff16602082901c0192505050919050565b6060600061213c858585612543565b9050600061215482836801000000000000000061264d565b90506c01000000000000000000000000821080156121a25761219b8272047bf19673df52e37f2410011d10000000000070010000000000000000000000000000000061264d565b91506121c4565b6121c182620186a070010000000000000000000000000000000061264d565b91505b8160005b81156121dc57600101600a820491506121c8565b600019016000806121ed86846126fc565b9150915080156121fe576001909201915b61220661288f565b85156122735761222561221d602b60ff8716611935565b6007906119ac565b60ff90811660208301526002608083015261224b9060019061129090602b908816611935565b60ff90811660a0830152602082015161226691166001611935565b60ff1660408201526122ea565b60098460ff16106122bc5761228c60ff85166004611935565b60ff1660208201819052600560808301526122a8906001611935565b60ff1660a0820152600460408201526122ea565b600660208201526005604082018190526122e1906001906112909060ff881690611935565b60ff1660608201525b82815285151560c0820152600060e082015261230581611aa8565b9c9b505050505050505050505050565b606060008260020260020167ffffffffffffffff8111801561233657600080fd5b506040519080825280601f01601f191660200182016040528015612361576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061239257fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106123ef57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600160028402015b60018111156124ad577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061245e57fe5b1a60f81b82828151811061246e57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9360001901612426565b508315611a2057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015290519081900360640190fd5b6000600a8260ff16101561253657506030810160f81b610865565b506037810160f81b610865565b60008061255e61255960ff868116908616612786565b612805565b9050600081118015612571575060128111155b1561262b578260ff168460ff1611156125b9576125b2612592826002611a27565b73ffffffffffffffffffffffffffffffffffffffff871690600a0a61281c565b91506125ea565b6125e76125c7826002611a27565b73ffffffffffffffffffffffffffffffffffffffff871690600a0a611a27565b91505b600281066001141561262657612623827003298b075b4b6a5240945790619b37fd4a70010000000000000000000000000000000061264d565b91505b612645565b8473ffffffffffffffffffffffffffffffffffffffff1691505b509392505050565b6000808060001985870986860292508281109083900303905080612683576000841161267857600080fd5b508290049050611a20565b80841161268f57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600080600060058460ff1611156127425761273f8560ff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb870116600a0a611a27565b94505b60006004600a870611905061275886600a611a27565b95508015612767578560010195505b85620186a0141561277d57600a86049550600191505b50939492505050565b600081830381831280159061279b5750838113155b806127b057506000831280156127b057508381135b611a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ca36024913960400191505060405180910390fd5b6000808212156128185781600003610862565b5090565b60008261282b57506000610257565b8282028284828161283857fe5b0414611a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612c826021913960400191505060405180910390fd5b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b805161086581612bd5565b8051600281900b811461086557600080fd5b80516fffffffffffffffffffffffffffffffff8116811461086557600080fd5b805162ffffff8116811461086557600080fd5b600060208284031215612934578081fd5b8135611a2081612bd5565b600060208284031215612950578081fd5b8151611a2081612bd5565b6000806040838503121561296d578081fd5b823561297881612bd5565b9150602083013561298881612bd5565b809150509250929050565b600080602083850312156129a5578182fd5b823567ffffffffffffffff808211156129bc578384fd5b818501915085601f8301126129cf578384fd5b8135818111156129dd578485fd5b8660206040830285010111156129f1578485fd5b60209290920196919550909350505050565b60008060408385031215612a15578182fd5b8235612a2081612bd5565b946020939093013593505050565b600060208284031215612a3f578081fd5b611a20826128de565b600060208284031215612a59578081fd5b815160ff81168114611a20578182fd5b6000806000806000806000806000806000806101808d8f031215612a8b578788fd5b8c516bffffffffffffffffffffffff81168114612aa6578889fd5b9b50612ab460208e016128d3565b9a50612ac260408e016128d3565b9950612ad060608e016128d3565b9850612ade60808e01612910565b9750612aec60a08e016128de565b9650612afa60c08e016128de565b9550612b0860e08e016128f0565b94506101008d015193506101208d01519250612b276101408e016128f0565b9150612b366101608e016128f0565b90509295989b509295989b509295989b565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b901515815260200190565b90815260200190565b6000602080835283518082850152825b81811015612bae57858101830151858201604001528201612b92565b81811115612bbf5783604083870101525b50601f01601f1916929092016040019392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114612bf757600080fd5b5056fe526570726573656e74732061206c697175696469747920706f736974696f6e20696e206120556e697377617020563320706f6f6c2e2052656465656d61626c6520666f72206f776564207265736572766520746f6b656e732e496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f77a164736f6c6343000706000a",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -86,2 +86,63 @@ {

{
"internalType": "address",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "address",
"name": "tokenOut",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMinimum",
"type": "uint256"
},
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"internalType": "struct ISwapRouter.ExactInputSingleParams",
"name": "params",
"type": "tuple"
}
],
"name": "exactInputSingle",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "bytes",

@@ -129,2 +190,63 @@ "name": "path",

{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "address",
"name": "tokenOut",
"type": "address"
},
{
"internalType": "uint24",
"name": "fee",
"type": "uint24"
},
{
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"internalType": "uint256",
"name": "deadline",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountInMaximum",
"type": "uint256"
},
{
"internalType": "uint160",
"name": "sqrtPriceLimitX96",
"type": "uint160"
}
],
"internalType": "struct ISwapRouter.ExactOutputSingleParams",
"name": "params",
"type": "tuple"
}
],
"name": "exactOutputSingle",
"outputs": [
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],

@@ -382,6 +504,6 @@ "name": "factory",

],
"bytecode": "0x60c06040526000196000553480156200001757600080fd5b506040516200268c3803806200268c8339810160408190526200003a9162000076565b6001600160601b0319606092831b8116608052911b1660a052620000ad565b80516001600160a01b03811681146200007157600080fd5b919050565b6000806040838503121562000089578182fd5b620000948362000059565b9150620000a46020840162000059565b90509250929050565b60805160601c60a05160601c61258e620000fe6000398060e852806103645280610494528061052e52806114265280611489528061150a5250806109885280610ce752806117f3525061258e6000f3fe6080604052600436106100cb5760003560e01c8063c2e3140a11610074578063f28c04981161004e578063f28c04981461025a578063f3995c671461026d578063fa461e331461028057610176565b8063c2e3140a1461021f578063c45a015514610232578063df2ab5bb1461024757610176565b8063a4a78f0c116100a5578063a4a78f0c146101cc578063ac9650d8146101df578063c04b8d59146101ff57610176565b80634659a4941461017b57806349404b7c1461018e5780634aa4a4fc146101a157610176565b36610176573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461017457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b610174610189366004611efd565b6102a0565b61017461019c36600461223f565b610360565b3480156101ad57600080fd5b506101b661052c565b6040516101c391906122c4565b60405180910390f35b6101746101da366004611efd565b610550565b6101f26101ed366004611f5b565b61062d565b6040516101c39190612337565b61021261020d3660046120d2565b610790565b6040516101c3919061247e565b61017461022d366004611efd565b6108d1565b34801561023e57600080fd5b506101b6610986565b610174610255366004611ec2565b6109aa565b61021261026836600461217d565b610acd565b61017461027b366004611efd565b610c22565b34801561028c57600080fd5b5061017461029b366004611fed565b610cba565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b15801561034057600080fd5b505af1158015610354573d6000803e3d6000fd5b50505050505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156103e957600080fd5b505afa1580156103fd573d6000803e3d6000fd5b505050506040513d602081101561041357600080fd5b50519050821561048c578281101561048c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b8015610527577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561050557600080fd5b505af1158015610519573d6000803e3d6000fd5b505050506105278282610de1565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b1580156105e557600080fd5b505afa1580156105f9573d6000803e3d6000fd5b505050506040513d602081101561060f57600080fd5b50511015610625576106258686868686866102a0565b505050505050565b60608167ffffffffffffffff8111801561064657600080fd5b5060405190808252806020026020018201604052801561067a57816020015b60608152602001906001900390816106655790505b50905060005b82811015610789576000803086868581811061069857fe5b90506020028101906106aa9190612487565b6040516106b89291906122b4565b600060405180830381855af49150503d80600081146106f3576040519150601f19603f3d011682016040523d82523d6000602084013e6106f8565b606091505b5091509150816107675760448151101561071157600080fd5b6004810190508080602001905181019061072b9190612068565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e91906123b5565b60405180910390fd5b8084848151811061077457fe5b60209081029190910101525050600101610680565b5092915050565b60008160400151806107a0610f2f565b111561080d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b600061081c8460000151610f33565b905061085d846060015182610835578560200151610837565b305b604051806040016040528061084f8960000151610f3e565b815233602090910152610f53565b6060850152801561087a57835161087390611096565b8452610887565b836060015192505061088d565b5061080d565b82608001518210156108cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e906123ff565b50919050565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b15801561094657600080fd5b505afa15801561095a573d6000803e3d6000fd5b505050506040513d602081101561097057600080fd5b5051101561062557610625868686868686610c22565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a1357600080fd5b505afa158015610a27573d6000803e3d6000fd5b505050506040513d6020811015610a3d57600080fd5b505190508215610ab65782811015610ab657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b8015610ac757610ac78483836110cb565b50505050565b6000816040013580610add610f2f565b1115610b4a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b610bba6060840135610b626040860160208701611ea1565b6040805180820190915280610b778880612487565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250336020909101526112a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909155915060808301358211156108cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e906123c8565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b15801561034057600080fd5b6000610cc8828401846121b5565b90506000806000610cdc84600001516113d2565b925092509250610d0e7f0000000000000000000000000000000000000000000000000000000000000000848484611403565b5060008060008a13610d4f578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161089610d80565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16108a5b915091508115610d9f57610d9a8587602001513384611422565b610354565b8551610daa90610f33565b15610dc7578551610dba90611096565b8652610d9a8133886112a7565b806000819055508394506103548587602001513384611422565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310610e5857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610e1b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610eba576040519150601f19603f3d011682016040523d82523d6000602084013e610ebf565b606091505b505090508061052757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b4290565b8051602b105b919050565b6060610f4d826000602b611605565b92915050565b600080600080610f6685600001516113d2565b9194509250905073ffffffffffffffffffffffffffffffffffffffff80831690841610600080610f978686866117ec565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088a85610fbd8e61182a565b87610fdc5773fffd8963efd1fc6a506488495d951d5263988d25610fe3565b6401000276a45b8d604051602001610ff49190612436565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016110239594939291906122e5565b6040805180830381600087803b15801561103c57600080fd5b505af1158015611050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110749190611fca565b91509150826110835781611085565b805b6000039a9950505050505050505050565b8051606090610f4d9083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901611605565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106111a057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611163565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611202576040519150601f19603f3d011682016040523d82523d6000602084013e611207565b606091505b5091509150818015611235575080511580611235575080806020019051602081101561123257600080fd5b50515b6112a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050565b60008060006112b984600001516113d2565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808416908316106112e78385846117ec565b73ffffffffffffffffffffffffffffffffffffffff1663128acb08878361130d8b61182a565b6000038561132f5773fffd8963efd1fc6a506488495d951d5263988d25611336565b6401000276a45b8a6040516020016113479190612436565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016113769594939291906122e5565b6040805180830381600087803b15801561138f57600080fd5b505af11580156113a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c79190611fca565b505050505050505050565b600080806113e0848261185c565b92506113ed84601461195c565b90506113fa84601761185c565b91509193909250565b600061141985611414868686611a4c565b611ac9565b95945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156114825750814791508110155b156115cb577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156114ef57600080fd5b505af1158015611503573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561159957600080fd5b505af11580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b506112a09050565b73ffffffffffffffffffffffffffffffffffffffff84163014156115f9576115f48584846110cb565b6112a0565b6112a085858585611af9565b60608182601f01101561167957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b8282840110156116ea57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b8183018451101561175c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b60608215801561177b57604051915060008252602082016040526117e3565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156117b457805183526020928301920161179c565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b60006118227f000000000000000000000000000000000000000000000000000000000000000061181d868686611a4c565b611cd6565b949350505050565b60007f8000000000000000000000000000000000000000000000000000000000000000821061185857600080fd5b5090565b6000818260140110156118d057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b816014018351101561194357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b6000818260030110156119d057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b8160030183511015611a4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b611a54611e0c565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611a8c579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000611ad58383611cd6565b90503373ffffffffffffffffffffffffffffffffffffffff821614610f4d57600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b60208310611bd657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611b99565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611c38576040519150601f19603f3d011682016040523d82523d6000602084013e611c3d565b606091505b5091509150818015611c6b575080511580611c6b5750808060200190516020811015611c6857600080fd5b50515b61062557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610611d1857600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b604080516060810182526000808252602082018190529181019190915290565b803573ffffffffffffffffffffffffffffffffffffffff81168114610f3957600080fd5b600082601f830112611e60578081fd5b8135611e73611e6e82612515565b6124f1565b818152846020838601011115611e87578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215611eb2578081fd5b611ebb82611e2c565b9392505050565b600080600060608486031215611ed6578182fd5b611edf84611e2c565b925060208401359150611ef460408501611e2c565b90509250925092565b60008060008060008060c08789031215611f15578182fd5b611f1e87611e2c565b95506020870135945060408701359350606087013560ff81168114611f41578283fd5b9598949750929560808101359460a0909101359350915050565b60008060208385031215611f6d578182fd5b823567ffffffffffffffff80821115611f84578384fd5b818501915085601f830112611f97578384fd5b813581811115611fa5578485fd5b8660208083028501011115611fb8578485fd5b60209290920196919550909350505050565b60008060408385031215611fdc578182fd5b505080516020909101519092909150565b60008060008060608587031215612002578384fd5b8435935060208501359250604085013567ffffffffffffffff80821115612027578384fd5b818701915087601f83011261203a578384fd5b813581811115612048578485fd5b886020828501011115612059578485fd5b95989497505060200194505050565b600060208284031215612079578081fd5b815167ffffffffffffffff81111561208f578182fd5b8201601f8101841361209f578182fd5b80516120ad611e6e82612515565b8181528560208385010111156120c1578384fd5b611419826020830160208601612555565b6000602082840312156120e3578081fd5b813567ffffffffffffffff808211156120fa578283fd5b9083019060a0828603121561210d578283fd5b60405160a08101818110838211171561212257fe5b604052823582811115612133578485fd5b61213f87828601611e50565b82525061214e60208401611e2c565b602082015260408301356040820152606083013560608201526080830135608082015280935050505092915050565b60006020828403121561218e578081fd5b813567ffffffffffffffff8111156121a4578182fd5b820160a08185031215611ebb578182fd5b6000602082840312156121c6578081fd5b813567ffffffffffffffff808211156121dd578283fd5b90830190604082860312156121f0578283fd5b60405160408101818110838211171561220557fe5b604052823582811115612216578485fd5b61222287828601611e50565b82525061223160208401611e2c565b602082015295945050505050565b60008060408385031215612251578182fd5b8235915061226160208401611e2c565b90509250929050565b60008151808452612282816020860160208601612555565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000828483379101908152919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a0608083015261232c60a083018461226a565b979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156123a8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261239685835161226a565b9450928501929085019060010161235c565b5092979650505050505050565b600060208252611ebb602083018461226a565b60208082526012908201527f546f6f206d756368207265717565737465640000000000000000000000000000604082015260600190565b60208082526013908201527f546f6f206c6974746c6520726563656976656400000000000000000000000000604082015260600190565b600060208252825160406020840152612452606084018261226a565b905073ffffffffffffffffffffffffffffffffffffffff60208501511660408401528091505092915050565b90815260200190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126124bb578283fd5b83018035915067ffffffffffffffff8211156124d5578283fd5b6020019150368190038213156124ea57600080fd5b9250929050565b60405181810167ffffffffffffffff8111828210171561250d57fe5b604052919050565b600067ffffffffffffffff82111561252957fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015612570578181015183820152602001612558565b83811115610ac7575050600091015256fea164736f6c6343000706000a",
"deployedBytecode": "0x6080604052600436106100cb5760003560e01c8063c2e3140a11610074578063f28c04981161004e578063f28c04981461025a578063f3995c671461026d578063fa461e331461028057610176565b8063c2e3140a1461021f578063c45a015514610232578063df2ab5bb1461024757610176565b8063a4a78f0c116100a5578063a4a78f0c146101cc578063ac9650d8146101df578063c04b8d59146101ff57610176565b80634659a4941461017b57806349404b7c1461018e5780634aa4a4fc146101a157610176565b36610176573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461017457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b610174610189366004611efd565b6102a0565b61017461019c36600461223f565b610360565b3480156101ad57600080fd5b506101b661052c565b6040516101c391906122c4565b60405180910390f35b6101746101da366004611efd565b610550565b6101f26101ed366004611f5b565b61062d565b6040516101c39190612337565b61021261020d3660046120d2565b610790565b6040516101c3919061247e565b61017461022d366004611efd565b6108d1565b34801561023e57600080fd5b506101b6610986565b610174610255366004611ec2565b6109aa565b61021261026836600461217d565b610acd565b61017461027b366004611efd565b610c22565b34801561028c57600080fd5b5061017461029b366004611fed565b610cba565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b15801561034057600080fd5b505af1158015610354573d6000803e3d6000fd5b50505050505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156103e957600080fd5b505afa1580156103fd573d6000803e3d6000fd5b505050506040513d602081101561041357600080fd5b50519050821561048c578281101561048c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b8015610527577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561050557600080fd5b505af1158015610519573d6000803e3d6000fd5b505050506105278282610de1565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b1580156105e557600080fd5b505afa1580156105f9573d6000803e3d6000fd5b505050506040513d602081101561060f57600080fd5b50511015610625576106258686868686866102a0565b505050505050565b60608167ffffffffffffffff8111801561064657600080fd5b5060405190808252806020026020018201604052801561067a57816020015b60608152602001906001900390816106655790505b50905060005b82811015610789576000803086868581811061069857fe5b90506020028101906106aa9190612487565b6040516106b89291906122b4565b600060405180830381855af49150503d80600081146106f3576040519150601f19603f3d011682016040523d82523d6000602084013e6106f8565b606091505b5091509150816107675760448151101561071157600080fd5b6004810190508080602001905181019061072b9190612068565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e91906123b5565b60405180910390fd5b8084848151811061077457fe5b60209081029190910101525050600101610680565b5092915050565b60008160400151806107a0610f2f565b111561080d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b600061081c8460000151610f33565b905061085d846060015182610835578560200151610837565b305b604051806040016040528061084f8960000151610f3e565b815233602090910152610f53565b6060850152801561087a57835161087390611096565b8452610887565b836060015192505061088d565b5061080d565b82608001518210156108cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e906123ff565b50919050565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b15801561094657600080fd5b505afa15801561095a573d6000803e3d6000fd5b505050506040513d602081101561097057600080fd5b5051101561062557610625868686868686610c22565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610a1357600080fd5b505afa158015610a27573d6000803e3d6000fd5b505050506040513d6020811015610a3d57600080fd5b505190508215610ab65782811015610ab657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b8015610ac757610ac78483836110cb565b50505050565b6000816040013580610add610f2f565b1115610b4a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b610bba6060840135610b626040860160208701611ea1565b6040805180820190915280610b778880612487565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250336020909101526112a7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909155915060808301358211156108cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e906123c8565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b15801561034057600080fd5b6000610cc8828401846121b5565b90506000806000610cdc84600001516113d2565b925092509250610d0e7f0000000000000000000000000000000000000000000000000000000000000000848484611403565b5060008060008a13610d4f578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161089610d80565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16108a5b915091508115610d9f57610d9a8587602001513384611422565b610354565b8551610daa90610f33565b15610dc7578551610dba90611096565b8652610d9a8133886112a7565b806000819055508394506103548587602001513384611422565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b60208310610e5857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610e1b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610eba576040519150601f19603f3d011682016040523d82523d6000602084013e610ebf565b606091505b505090508061052757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b4290565b8051602b105b919050565b6060610f4d826000602b611605565b92915050565b600080600080610f6685600001516113d2565b9194509250905073ffffffffffffffffffffffffffffffffffffffff80831690841610600080610f978686866117ec565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088a85610fbd8e61182a565b87610fdc5773fffd8963efd1fc6a506488495d951d5263988d25610fe3565b6401000276a45b8d604051602001610ff49190612436565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016110239594939291906122e5565b6040805180830381600087803b15801561103c57600080fd5b505af1158015611050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110749190611fca565b91509150826110835781611085565b805b6000039a9950505050505050505050565b8051606090610f4d9083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901611605565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106111a057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611163565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611202576040519150601f19603f3d011682016040523d82523d6000602084013e611207565b606091505b5091509150818015611235575080511580611235575080806020019051602081101561123257600080fd5b50515b6112a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050565b60008060006112b984600001516113d2565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808416908316106112e78385846117ec565b73ffffffffffffffffffffffffffffffffffffffff1663128acb08878361130d8b61182a565b6000038561132f5773fffd8963efd1fc6a506488495d951d5263988d25611336565b6401000276a45b8a6040516020016113479190612436565b6040516020818303038152906040526040518663ffffffff1660e01b81526004016113769594939291906122e5565b6040805180830381600087803b15801561138f57600080fd5b505af11580156113a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c79190611fca565b505050505050505050565b600080806113e0848261185c565b92506113ed84601461195c565b90506113fa84601761185c565b91509193909250565b600061141985611414868686611a4c565b611ac9565b95945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156114825750814791508110155b156115cb577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156114ef57600080fd5b505af1158015611503573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561159957600080fd5b505af11580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b506112a09050565b73ffffffffffffffffffffffffffffffffffffffff84163014156115f9576115f48584846110cb565b6112a0565b6112a085858585611af9565b60608182601f01101561167957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b8282840110156116ea57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b8183018451101561175c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b60608215801561177b57604051915060008252602082016040526117e3565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156117b457805183526020928301920161179c565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b60006118227f000000000000000000000000000000000000000000000000000000000000000061181d868686611a4c565b611cd6565b949350505050565b60007f8000000000000000000000000000000000000000000000000000000000000000821061185857600080fd5b5090565b6000818260140110156118d057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b816014018351101561194357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b6000818260030110156119d057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b8160030183511015611a4357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b611a54611e0c565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611a8c579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000611ad58383611cd6565b90503373ffffffffffffffffffffffffffffffffffffffff821614610f4d57600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b60208310611bd657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611b99565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611c38576040519150601f19603f3d011682016040523d82523d6000602084013e611c3d565b606091505b5091509150818015611c6b575080511580611c6b5750808060200190516020811015611c6857600080fd5b50515b61062557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610611d1857600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b604080516060810182526000808252602082018190529181019190915290565b803573ffffffffffffffffffffffffffffffffffffffff81168114610f3957600080fd5b600082601f830112611e60578081fd5b8135611e73611e6e82612515565b6124f1565b818152846020838601011115611e87578283fd5b816020850160208301379081016020019190915292915050565b600060208284031215611eb2578081fd5b611ebb82611e2c565b9392505050565b600080600060608486031215611ed6578182fd5b611edf84611e2c565b925060208401359150611ef460408501611e2c565b90509250925092565b60008060008060008060c08789031215611f15578182fd5b611f1e87611e2c565b95506020870135945060408701359350606087013560ff81168114611f41578283fd5b9598949750929560808101359460a0909101359350915050565b60008060208385031215611f6d578182fd5b823567ffffffffffffffff80821115611f84578384fd5b818501915085601f830112611f97578384fd5b813581811115611fa5578485fd5b8660208083028501011115611fb8578485fd5b60209290920196919550909350505050565b60008060408385031215611fdc578182fd5b505080516020909101519092909150565b60008060008060608587031215612002578384fd5b8435935060208501359250604085013567ffffffffffffffff80821115612027578384fd5b818701915087601f83011261203a578384fd5b813581811115612048578485fd5b886020828501011115612059578485fd5b95989497505060200194505050565b600060208284031215612079578081fd5b815167ffffffffffffffff81111561208f578182fd5b8201601f8101841361209f578182fd5b80516120ad611e6e82612515565b8181528560208385010111156120c1578384fd5b611419826020830160208601612555565b6000602082840312156120e3578081fd5b813567ffffffffffffffff808211156120fa578283fd5b9083019060a0828603121561210d578283fd5b60405160a08101818110838211171561212257fe5b604052823582811115612133578485fd5b61213f87828601611e50565b82525061214e60208401611e2c565b602082015260408301356040820152606083013560608201526080830135608082015280935050505092915050565b60006020828403121561218e578081fd5b813567ffffffffffffffff8111156121a4578182fd5b820160a08185031215611ebb578182fd5b6000602082840312156121c6578081fd5b813567ffffffffffffffff808211156121dd578283fd5b90830190604082860312156121f0578283fd5b60405160408101818110838211171561220557fe5b604052823582811115612216578485fd5b61222287828601611e50565b82525061223160208401611e2c565b602082015295945050505050565b60008060408385031215612251578182fd5b8235915061226160208401611e2c565b90509250929050565b60008151808452612282816020860160208601612555565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000828483379101908152919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a0608083015261232c60a083018461226a565b979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b828110156123a8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261239685835161226a565b9450928501929085019060010161235c565b5092979650505050505050565b600060208252611ebb602083018461226a565b60208082526012908201527f546f6f206d756368207265717565737465640000000000000000000000000000604082015260600190565b60208082526013908201527f546f6f206c6974746c6520726563656976656400000000000000000000000000604082015260600190565b600060208252825160406020840152612452606084018261226a565b905073ffffffffffffffffffffffffffffffffffffffff60208501511660408401528091505092915050565b90815260200190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126124bb578283fd5b83018035915067ffffffffffffffff8211156124d5578283fd5b6020019150368190038213156124ea57600080fd5b9250929050565b60405181810167ffffffffffffffff8111828210171561250d57fe5b604052919050565b600067ffffffffffffffff82111561252957fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015612570578181015183820152602001612558565b83811115610ac7575050600091015256fea164736f6c6343000706000a",
"bytecode": "0x60c06040526000196000553480156200001757600080fd5b5060405162002b5138038062002b518339810160408190526200003a9162000076565b6001600160601b0319606092831b8116608052911b1660a052620000ad565b80516001600160a01b03811681146200007157600080fd5b919050565b6000806040838503121562000089578182fd5b620000948362000059565b9150620000a46020840162000059565b90509250929050565b60805160601c60a05160601c612a53620000fe6000398060fe5280610512528061064252806106dc5280611814528061187752806118f8525080610b29528061107d52806119fa5250612a536000f3fe6080604052600436106100e15760003560e01c8063c2e3140a1161007f578063df2ab5bb11610059578063df2ab5bb14610283578063f28c049814610296578063f3995c67146102a9578063fa461e33146102bc5761018c565b8063c2e3140a14610248578063c45a01551461025b578063db3e2198146102705761018c565b80634aa4a4fc116100bb5780634aa4a4fc146101e0578063a4a78f0c14610202578063ac9650d814610215578063c04b8d59146102355761018c565b8063414bf389146101915780634659a494146101ba57806349404b7c146101cd5761018c565b3661018c573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461018a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b6101a461019f36600461256e565b6102dc565b6040516101b1919061291e565b60405180910390f35b61018a6101c83660046122ec565b61044e565b61018a6101db366004612675565b61050e565b3480156101ec57600080fd5b506101f56106da565b6040516101b19190612764565b61018a6102103660046122ec565b6106fe565b61022861022336600461234c565b6107db565b6040516101b191906127d7565b6101a46102433660046124c3565b610935565b61018a6102563660046122ec565b610a72565b34801561026757600080fd5b506101f5610b27565b6101a461027e36600461256e565b610b4b565b61018a6102913660046122ab565b610d3b565b6101a46102a436600461258a565b610e5e565b61018a6102b73660046122ec565b610fb8565b3480156102c857600080fd5b5061018a6102d73660046123de565b611050565b60008160800135806102ec611180565b111561035957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b6103ff60a08401356103716080860160608701612288565b610382610100870160e08801612288565b604080518082019091528061039a60208a018a612288565b6103aa60608b0160408c01612652565b6103ba60408c0160208d01612288565b6040516020016103cc939291906126ee565b60405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff16815250611184565b91508260c00135821015610448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043f9061289f565b60405180910390fd5b50919050565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b50505050505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561059757600080fd5b505afa1580156105ab573d6000803e3d6000fd5b505050506040513d60208110156105c157600080fd5b50519050821561063a578281101561063a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b80156106d5577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156106b357600080fd5b505af11580156106c7573d6000803e3d6000fd5b505050506106d582826112ea565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b15801561079357600080fd5b505afa1580156107a7573d6000803e3d6000fd5b505050506040513d60208110156107bd57600080fd5b505110156107d3576107d386868686868661044e565b505050505050565b60608167ffffffffffffffff811180156107f457600080fd5b5060405190808252806020026020018201604052801561082857816020015b60608152602001906001900390816108135790505b50905060005b8281101561092e576000803086868581811061084657fe5b90506020028101906108589190612927565b604051610866929190612754565b600060405180830381855af49150503d80600081146108a1576040519150601f19603f3d011682016040523d82523d6000602084013e6108a6565b606091505b50915091508161090c576044815110156108bf57600080fd5b600481019050808060200190518101906108d99190612459565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043f9190612855565b8084848151811061091957fe5b6020908102919091010152505060010161082e565b5092915050565b6000816040015180610945611180565b11156109b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b60006109c18460000151611438565b9050610a048460600151826109da5785602001516109dc565b305b600060405180604001604052806109f68a60000151611444565b815233602090910152611184565b60608501528015610a21578351610a1a90611459565b8452610a2e565b8360600151925050610a34565b506109b2565b8260800151821015610448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043f9061289f565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610ae757600080fd5b505afa158015610afb573d6000803e3d6000fd5b505050506040513d6020811015610b1157600080fd5b505110156107d3576107d3868686868686610fb8565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000816080013580610b5b611180565b1115610bc857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b600080610c7460a0860135610be36080880160608901612288565b610bf4610100890160e08a01612288565b60405180604001604052808a6020016020810190610c129190612288565b610c2260608d0160408e01612652565b610c2f60208e018e612288565b604051602001610c41939291906126ee565b60405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff1681525061148e565b9092509050610c896040860160208701612288565b73ffffffffffffffffffffffffffffffffffffffff16610cac6020870187612288565b73ffffffffffffffffffffffffffffffffffffffff1610610ccd5780610ccf565b815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600055935060c0850135841115610d33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043f90612868565b505050919050565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610da457600080fd5b505afa158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b505190508215610e475782811015610e4757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b8015610e5857610e588483836115e4565b50505050565b6000816040013580610e6e611180565b1115610edb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b610f4e6060840135610ef36040860160208701612288565b6040805180820190915260009080610f0b8980612927565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252503360209091015261148e565b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90915591506080830135821115610448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043f90612868565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b1580156104ee57600080fd5b600061105e828401846125c2565b9050600080600061107284600001516117c0565b9250925092506110a47f00000000000000000000000000000000000000000000000000000000000000008484846117f1565b5060008060008a136110e5578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161089611116565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16108a5b915091508115611135576111308587602001513384611810565b610502565b855161114090611438565b1561116657855161115090611459565b865261115f813360008961148e565b5050610502565b806000819055508394506105028587602001513384611810565b4290565b60008060008061119785600001516117c0565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808316908416106000806111c88686866119f3565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b856111ee8f611a31565b73ffffffffffffffffffffffffffffffffffffffff8e1615611210578d611236565b8761122f5773fffd8963efd1fc6a506488495d951d5263988d25611236565b6401000276a45b8d60405160200161124791906128d6565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611276959493929190612785565b6040805180830381600087803b15801561128f57600080fd5b505af11580156112a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c791906123bb565b91509150826112d657816112d8565b805b6000039b9a5050505050505050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b6020831061136157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611324565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146113c3576040519150601f19603f3d011682016040523d82523d6000602084013e6113c8565b606091505b50509050806106d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b8051604211155b919050565b6060611453826000602b611a63565b92915050565b80516060906114539083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901611a63565b60008060008060006114a386600001516117c0565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808416908316106114d18385846119f3565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088a836114f78e611a31565b60000373ffffffffffffffffffffffffffffffffffffffff8d161561151c578c611542565b8561153b5773fffd8963efd1fc6a506488495d951d5263988d25611542565b6401000276a45b8c60405160200161155391906128d6565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611582959493929190612785565b6040805180830381600087803b15801561159b57600080fd5b505af11580156115af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d391906123bb565b955095505050505094509492505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106116b957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161167c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461171b576040519150601f19603f3d011682016040523d82523d6000602084013e611720565b606091505b509150915081801561174e57508051158061174e575080806020019051602081101561174b57600080fd5b50515b6117b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050565b600080806117ce8482611c4a565b92506117db846014611d4a565b90506117e8846017611c4a565b91509193909250565b600061180785611802868686611e3a565b611eb7565b95945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156118705750814791508110155b156119b9577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156118dd57600080fd5b505af11580156118f1573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561198757600080fd5b505af115801561199b573d6000803e3d6000fd5b505050506040513d60208110156119b157600080fd5b506117b99050565b73ffffffffffffffffffffffffffffffffffffffff84163014156119e7576119e28584846115e4565b6117b9565b6117b985858585611ee7565b6000611a297f0000000000000000000000000000000000000000000000000000000000000000611a24868686611e3a565b6120c4565b949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008210611a5f57600080fd5b5090565b60608182601f011015611ad757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b828284011015611b4857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b81830184511015611bba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b606082158015611bd95760405191506000825260208201604052611c41565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611c12578051835260209283019201611bfa565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b600081826014011015611cbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b8160140183511015611d3157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b600081826003011015611dbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b8160030183511015611e3157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b611e426121fa565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611e7a579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000611ec383836120c4565b90503373ffffffffffffffffffffffffffffffffffffffff82161461145357600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b60208310611fc457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611f87565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612026576040519150601f19603f3d011682016040523d82523d6000602084013e61202b565b606091505b5091509150818015612059575080511580612059575080806020019051602081101561205657600080fd5b50515b6107d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161061210657600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b604080516060810182526000808252602082018190529181019190915290565b803561143f81612a21565b600082601f830112612235578081fd5b8135612248612243826129b5565b612991565b81815284602083860101111561225c578283fd5b816020850160208301379081016020019190915292915050565b60006101008284031215610448578081fd5b600060208284031215612299578081fd5b81356122a481612a21565b9392505050565b6000806000606084860312156122bf578182fd5b83356122ca81612a21565b92506020840135915060408401356122e181612a21565b809150509250925092565b60008060008060008060c08789031215612304578182fd5b863561230f81612a21565b95506020870135945060408701359350606087013560ff81168114612332578283fd5b9598949750929560808101359460a0909101359350915050565b6000806020838503121561235e578182fd5b823567ffffffffffffffff80821115612375578384fd5b818501915085601f830112612388578384fd5b813581811115612396578485fd5b86602080830285010111156123a9578485fd5b60209290920196919550909350505050565b600080604083850312156123cd578182fd5b505080516020909101519092909150565b600080600080606085870312156123f3578384fd5b8435935060208501359250604085013567ffffffffffffffff80821115612418578384fd5b818701915087601f83011261242b578384fd5b813581811115612439578485fd5b88602082850101111561244a578485fd5b95989497505060200194505050565b60006020828403121561246a578081fd5b815167ffffffffffffffff811115612480578182fd5b8201601f81018413612490578182fd5b805161249e612243826129b5565b8181528560208385010111156124b2578384fd5b6118078260208301602086016129f5565b6000602082840312156124d4578081fd5b813567ffffffffffffffff808211156124eb578283fd5b9083019060a082860312156124fe578283fd5b60405160a08101818110838211171561251357fe5b604052823582811115612524578485fd5b61253087828601612225565b82525061253f6020840161221a565b602082015260408301356040820152606083013560608201526080830135608082015280935050505092915050565b60006101008284031215612580578081fd5b6122a48383612276565b60006020828403121561259b578081fd5b813567ffffffffffffffff8111156125b1578182fd5b820160a081850312156122a4578182fd5b6000602082840312156125d3578081fd5b813567ffffffffffffffff808211156125ea578283fd5b90830190604082860312156125fd578283fd5b60405160408101818110838211171561261257fe5b604052823582811115612623578485fd5b61262f87828601612225565b8252506020830135925061264283612a21565b6020810192909252509392505050565b600060208284031215612663578081fd5b813562ffffff811681146122a4578182fd5b60008060408385031215612687578182fd5b82359150602083013561269981612a21565b809150509250929050565b600081518084526126bc8160208601602086016129f5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b6000828483379101908152919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a060808301526127cc60a08301846126a4565b979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015612848577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526128368583516126a4565b945092850192908501906001016127fc565b5092979650505050505050565b6000602082526122a460208301846126a4565b60208082526012908201527f546f6f206d756368207265717565737465640000000000000000000000000000604082015260600190565b60208082526013908201527f546f6f206c6974746c6520726563656976656400000000000000000000000000604082015260600190565b6000602082528251604060208401526128f260608401826126a4565b905073ffffffffffffffffffffffffffffffffffffffff60208501511660408401528091505092915050565b90815260200190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261295b578283fd5b83018035915067ffffffffffffffff821115612975578283fd5b60200191503681900382131561298a57600080fd5b9250929050565b60405181810167ffffffffffffffff811182821017156129ad57fe5b604052919050565b600067ffffffffffffffff8211156129c957fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015612a105781810151838201526020016129f8565b83811115610e585750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114612a4357600080fd5b5056fea164736f6c6343000706000a",
"deployedBytecode": "0x6080604052600436106100e15760003560e01c8063c2e3140a1161007f578063df2ab5bb11610059578063df2ab5bb14610283578063f28c049814610296578063f3995c67146102a9578063fa461e33146102bc5761018c565b8063c2e3140a14610248578063c45a01551461025b578063db3e2198146102705761018c565b80634aa4a4fc116100bb5780634aa4a4fc146101e0578063a4a78f0c14610202578063ac9650d814610215578063c04b8d59146102355761018c565b8063414bf389146101915780634659a494146101ba57806349404b7c146101cd5761018c565b3661018c573373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461018a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f4e6f742057455448390000000000000000000000000000000000000000000000604482015290519081900360640190fd5b005b600080fd5b6101a461019f36600461256e565b6102dc565b6040516101b1919061291e565b60405180910390f35b61018a6101c83660046122ec565b61044e565b61018a6101db366004612675565b61050e565b3480156101ec57600080fd5b506101f56106da565b6040516101b19190612764565b61018a6102103660046122ec565b6106fe565b61022861022336600461234c565b6107db565b6040516101b191906127d7565b6101a46102433660046124c3565b610935565b61018a6102563660046122ec565b610a72565b34801561026757600080fd5b506101f5610b27565b6101a461027e36600461256e565b610b4b565b61018a6102913660046122ab565b610d3b565b6101a46102a436600461258a565b610e5e565b61018a6102b73660046122ec565b610fb8565b3480156102c857600080fd5b5061018a6102d73660046123de565b611050565b60008160800135806102ec611180565b111561035957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b6103ff60a08401356103716080860160608701612288565b610382610100870160e08801612288565b604080518082019091528061039a60208a018a612288565b6103aa60608b0160408c01612652565b6103ba60408c0160208d01612288565b6040516020016103cc939291906126ee565b60405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff16815250611184565b91508260c00135821015610448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043f9061289f565b60405180910390fd5b50919050565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b1580156104ee57600080fd5b505af1158015610502573d6000803e3d6000fd5b50505050505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561059757600080fd5b505afa1580156105ab573d6000803e3d6000fd5b505050506040513d60208110156105c157600080fd5b50519050821561063a578281101561063a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e742057455448390000000000000000000000000000604482015290519081900360640190fd5b80156106d5577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156106b357600080fd5b505af11580156106c7573d6000803e3d6000fd5b505050506106d582826112ea565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b15801561079357600080fd5b505afa1580156107a7573d6000803e3d6000fd5b505050506040513d60208110156107bd57600080fd5b505110156107d3576107d386868686868661044e565b505050505050565b60608167ffffffffffffffff811180156107f457600080fd5b5060405190808252806020026020018201604052801561082857816020015b60608152602001906001900390816108135790505b50905060005b8281101561092e576000803086868581811061084657fe5b90506020028101906108589190612927565b604051610866929190612754565b600060405180830381855af49150503d80600081146108a1576040519150601f19603f3d011682016040523d82523d6000602084013e6108a6565b606091505b50915091508161090c576044815110156108bf57600080fd5b600481019050808060200190518101906108d99190612459565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043f9190612855565b8084848151811061091957fe5b6020908102919091010152505060010161082e565b5092915050565b6000816040015180610945611180565b11156109b257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b60006109c18460000151611438565b9050610a048460600151826109da5785602001516109dc565b305b600060405180604001604052806109f68a60000151611444565b815233602090910152611184565b60608501528015610a21578351610a1a90611459565b8452610a2e565b8360600151925050610a34565b506109b2565b8260800151821015610448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043f9061289f565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610ae757600080fd5b505afa158015610afb573d6000803e3d6000fd5b505050506040513d6020811015610b1157600080fd5b505110156107d3576107d3868686868686610fb8565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000816080013580610b5b611180565b1115610bc857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b600080610c7460a0860135610be36080880160608901612288565b610bf4610100890160e08a01612288565b60405180604001604052808a6020016020810190610c129190612288565b610c2260608d0160408e01612652565b610c2f60208e018e612288565b604051602001610c41939291906126ee565b60405160208183030381529060405281526020013373ffffffffffffffffffffffffffffffffffffffff1681525061148e565b9092509050610c896040860160208701612288565b73ffffffffffffffffffffffffffffffffffffffff16610cac6020870187612288565b73ffffffffffffffffffffffffffffffffffffffff1610610ccd5780610ccf565b815b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600055935060c0850135841115610d33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043f90612868565b505050919050565b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610da457600080fd5b505afa158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b505190508215610e475782811015610e4757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f496e73756666696369656e7420746f6b656e0000000000000000000000000000604482015290519081900360640190fd5b8015610e5857610e588483836115e4565b50505050565b6000816040013580610e6e611180565b1115610edb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e20746f6f206f6c6400000000000000000000000000604482015290519081900360640190fd5b610f4e6060840135610ef36040860160208701612288565b6040805180820190915260009080610f0b8980612927565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050908252503360209091015261148e565b5050600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90915591506080830135821115610448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161043f90612868565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b1580156104ee57600080fd5b600061105e828401846125c2565b9050600080600061107284600001516117c0565b9250925092506110a47f00000000000000000000000000000000000000000000000000000000000000008484846117f1565b5060008060008a136110e5578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161089611116565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16108a5b915091508115611135576111308587602001513384611810565b610502565b855161114090611438565b1561116657855161115090611459565b865261115f813360008961148e565b5050610502565b806000819055508394506105028587602001513384611810565b4290565b60008060008061119785600001516117c0565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808316908416106000806111c88686866119f3565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088b856111ee8f611a31565b73ffffffffffffffffffffffffffffffffffffffff8e1615611210578d611236565b8761122f5773fffd8963efd1fc6a506488495d951d5263988d25611236565b6401000276a45b8d60405160200161124791906128d6565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611276959493929190612785565b6040805180830381600087803b15801561128f57600080fd5b505af11580156112a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c791906123bb565b91509150826112d657816112d8565b805b6000039b9a5050505050505050505050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b6020831061136157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611324565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146113c3576040519150601f19603f3d011682016040523d82523d6000602084013e6113c8565b606091505b50509050806106d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b8051604211155b919050565b6060611453826000602b611a63565b92915050565b80516060906114539083906017907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe901611a63565b60008060008060006114a386600001516117c0565b9194509250905073ffffffffffffffffffffffffffffffffffffffff808416908316106114d18385846119f3565b73ffffffffffffffffffffffffffffffffffffffff1663128acb088a836114f78e611a31565b60000373ffffffffffffffffffffffffffffffffffffffff8d161561151c578c611542565b8561153b5773fffd8963efd1fc6a506488495d951d5263988d25611542565b6401000276a45b8c60405160200161155391906128d6565b6040516020818303038152906040526040518663ffffffff1660e01b8152600401611582959493929190612785565b6040805180830381600087803b15801561159b57600080fd5b505af11580156115af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d391906123bb565b955095505050505094509492505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106116b957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161167c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461171b576040519150601f19603f3d011682016040523d82523d6000602084013e611720565b606091505b509150915081801561174e57508051158061174e575080806020019051602081101561174b57600080fd5b50515b6117b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b5050505050565b600080806117ce8482611c4a565b92506117db846014611d4a565b90506117e8846017611c4a565b91509193909250565b600061180785611802868686611e3a565b611eb7565b95945050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156118705750814791508110155b156119b9577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b1580156118dd57600080fd5b505af11580156118f1573d6000803e3d6000fd5b50505050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561198757600080fd5b505af115801561199b573d6000803e3d6000fd5b505050506040513d60208110156119b157600080fd5b506117b99050565b73ffffffffffffffffffffffffffffffffffffffff84163014156119e7576119e28584846115e4565b6117b9565b6117b985858585611ee7565b6000611a297f0000000000000000000000000000000000000000000000000000000000000000611a24868686611e3a565b6120c4565b949350505050565b60007f80000000000000000000000000000000000000000000000000000000000000008210611a5f57600080fd5b5090565b60608182601f011015611ad757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b828284011015611b4857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f736c6963655f6f766572666c6f77000000000000000000000000000000000000604482015290519081900360640190fd5b81830184511015611bba57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f736c6963655f6f75744f66426f756e6473000000000000000000000000000000604482015290519081900360640190fd5b606082158015611bd95760405191506000825260208201604052611c41565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611c12578051835260209283019201611bfa565b5050858452601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016604052505b50949350505050565b600081826014011015611cbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f746f416464726573735f6f766572666c6f770000000000000000000000000000604482015290519081900360640190fd5b8160140183511015611d3157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f416464726573735f6f75744f66426f756e64730000000000000000000000604482015290519081900360640190fd5b5001602001516c01000000000000000000000000900490565b600081826003011015611dbe57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f746f55696e7432345f6f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b8160030183511015611e3157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000604482015290519081900360640190fd5b50016003015190565b611e426121fa565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611e7a579192915b506040805160608101825273ffffffffffffffffffffffffffffffffffffffff948516815292909316602083015262ffffff169181019190915290565b6000611ec383836120c4565b90503373ffffffffffffffffffffffffffffffffffffffff82161461145357600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000178152925182516000948594938a169392918291908083835b60208310611fc457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611f87565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612026576040519150601f19603f3d011682016040523d82523d6000602084013e61202b565b606091505b5091509150818015612059575080511580612059575080806020019051602081101561205657600080fd5b50515b6107d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354460000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161061210657600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b604080516060810182526000808252602082018190529181019190915290565b803561143f81612a21565b600082601f830112612235578081fd5b8135612248612243826129b5565b612991565b81815284602083860101111561225c578283fd5b816020850160208301379081016020019190915292915050565b60006101008284031215610448578081fd5b600060208284031215612299578081fd5b81356122a481612a21565b9392505050565b6000806000606084860312156122bf578182fd5b83356122ca81612a21565b92506020840135915060408401356122e181612a21565b809150509250925092565b60008060008060008060c08789031215612304578182fd5b863561230f81612a21565b95506020870135945060408701359350606087013560ff81168114612332578283fd5b9598949750929560808101359460a0909101359350915050565b6000806020838503121561235e578182fd5b823567ffffffffffffffff80821115612375578384fd5b818501915085601f830112612388578384fd5b813581811115612396578485fd5b86602080830285010111156123a9578485fd5b60209290920196919550909350505050565b600080604083850312156123cd578182fd5b505080516020909101519092909150565b600080600080606085870312156123f3578384fd5b8435935060208501359250604085013567ffffffffffffffff80821115612418578384fd5b818701915087601f83011261242b578384fd5b813581811115612439578485fd5b88602082850101111561244a578485fd5b95989497505060200194505050565b60006020828403121561246a578081fd5b815167ffffffffffffffff811115612480578182fd5b8201601f81018413612490578182fd5b805161249e612243826129b5565b8181528560208385010111156124b2578384fd5b6118078260208301602086016129f5565b6000602082840312156124d4578081fd5b813567ffffffffffffffff808211156124eb578283fd5b9083019060a082860312156124fe578283fd5b60405160a08101818110838211171561251357fe5b604052823582811115612524578485fd5b61253087828601612225565b82525061253f6020840161221a565b602082015260408301356040820152606083013560608201526080830135608082015280935050505092915050565b60006101008284031215612580578081fd5b6122a48383612276565b60006020828403121561259b578081fd5b813567ffffffffffffffff8111156125b1578182fd5b820160a081850312156122a4578182fd5b6000602082840312156125d3578081fd5b813567ffffffffffffffff808211156125ea578283fd5b90830190604082860312156125fd578283fd5b60405160408101818110838211171561261257fe5b604052823582811115612623578485fd5b61262f87828601612225565b8252506020830135925061264283612a21565b6020810192909252509392505050565b600060208284031215612663578081fd5b813562ffffff811681146122a4578182fd5b60008060408385031215612687578182fd5b82359150602083013561269981612a21565b809150509250929050565b600081518084526126bc8160208601602086016129f5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b606093841b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000908116825260e89390931b7fffffff0000000000000000000000000000000000000000000000000000000000166014820152921b166017820152602b0190565b6000828483379101908152919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b600073ffffffffffffffffffffffffffffffffffffffff8088168352861515602084015285604084015280851660608401525060a060808301526127cc60a08301846126a4565b979650505050505050565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015612848577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08886030184526128368583516126a4565b945092850192908501906001016127fc565b5092979650505050505050565b6000602082526122a460208301846126a4565b60208082526012908201527f546f6f206d756368207265717565737465640000000000000000000000000000604082015260600190565b60208082526013908201527f546f6f206c6974746c6520726563656976656400000000000000000000000000604082015260600190565b6000602082528251604060208401526128f260608401826126a4565b905073ffffffffffffffffffffffffffffffffffffffff60208501511660408401528091505092915050565b90815260200190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261295b578283fd5b83018035915067ffffffffffffffff821115612975578283fd5b60200191503681900382131561298a57600080fd5b9250929050565b60405181810167ffffffffffffffff811182821017156129ad57fe5b604052919050565b600067ffffffffffffffff8211156129c957fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015612a105781810151838201526020016129f8565b83811115610e585750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114612a4357600080fd5b5056fea164736f6c6343000706000a",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -15,2 +15,7 @@ {

"internalType": "address",
"name": "_WETH9",
"type": "address"
},
{
"internalType": "address",
"name": "_nonfungiblePositionManager",

@@ -24,2 +29,15 @@ "type": "address"

{
"inputs": [],
"name": "WETH9",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [

@@ -76,6 +94,16 @@ {

"internalType": "uint256",
"name": "liquidityV2",
"name": "liquidityToMigrate",
"type": "uint256"
},
{
"internalType": "address",
"name": "token0",
"type": "address"
},
{
"internalType": "address",
"name": "token1",
"type": "address"
},
{
"internalType": "uint24",

@@ -97,11 +125,6 @@ "name": "fee",

"internalType": "uint256",
"name": "amount0Max",
"name": "liquidityV3Min",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount1Max",
"type": "uint256"
},
{
"internalType": "address",

@@ -115,2 +138,7 @@ "name": "recipient",

"type": "uint256"
},
{
"internalType": "bool",
"name": "refundAsETH",
"type": "bool"
}

@@ -311,8 +339,12 @@ ],

"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x60c06040523480156200001157600080fd5b506040516200220a3803806200220a833981016040819052620000349162000070565b6001600160601b0319606092831b8116608052911b1660a052620000a7565b80516001600160a01b03811681146200006b57600080fd5b919050565b6000806040838503121562000083578182fd5b6200008e8362000053565b91506200009e6020840162000053565b90509250929050565b60805160601c60a05160601c612116620000f4600039806101c652806106155280610640528061066a5280610870528061094e5280610ccf5250806104c75280610da852506121166000f3fe6080604052600436106100965760003560e01c8063ac9650d811610069578063c2e3140a1161004e578063c2e3140a1461014e578063c45a015514610161578063f3995c671461017657610096565b8063ac9650d814610103578063b44a27221461012c57610096565b806313ead5621461009b5780633aeffbe0146100bd5780634659a494146100dd578063a4a78f0c146100f0575b600080fd5b3480156100a757600080fd5b506100bb6100b6366004611a85565b610189565b005b3480156100c957600080fd5b506100bb6100d8366004611c93565b61025a565b6100bb6100eb366004611ade565b6109d9565b6100bb6100fe366004611ade565b610a8d565b610116610111366004611b39565b610b6a565b6040516101239190611ef0565b60405180910390f35b34801561013857600080fd5b50610141610ccd565b6040516101239190611e3b565b6100bb61015c366004611ade565b610cf1565b34801561016d57600080fd5b50610141610da6565b6100bb610184366004611ade565b610dca565b6040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906313ead56290610201908790879087908790600401611e8d565b602060405180830381600087803b15801561021b57600080fd5b505af115801561022f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102539190611a69565b5050505050565b6102676020820182611a4d565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd336102906020850185611a4d565b84602001356040518463ffffffff1660e01b81526004016102b393929190611e5c565b602060405180830381600087803b1580156102cd57600080fd5b505af11580156102e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103059190611ba8565b506000806103166020840184611a4d565b73ffffffffffffffffffffffffffffffffffffffff166389afcb44306040518263ffffffff1660e01b815260040161034e9190611e3b565b6040805180830381600087803b15801561036757600080fd5b505af115801561037b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039f9190611d51565b909250905060006103b36020850185611a4d565b73ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156103f857600080fd5b505afa15801561040c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104309190611a69565b905060006104416020860186611a4d565b73ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561048657600080fd5b505afa15801561049a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104be9190611a69565b905060006105487f000000000000000000000000000000000000000000000000000000000000000060405180606001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200189604001602081019061053c9190611d37565b62ffffff169052610e62565b905060008173ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561059257600080fd5b505afa1580156105a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ca9190611cab565b5050505050509050600061060d826105f38a60600160208101906105ee9190611bc2565b610f98565b6106066105ee60a08d0160808e01611bc2565b8a8a61132b565b905061063a857f000000000000000000000000000000000000000000000000000000000000000089611450565b610665847f000000000000000000000000000000000000000000000000000000000000000088611450565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633a3a6dc86040518061014001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018d60400160208101906106fb9190611d37565b62ffffff1681526020018d60600160208101906107189190611bc2565b60020b81526020018d60800160208101906107339190611bc2565b60020b8152602001866fffffffffffffffffffffffffffffffff1681526020018d60a0013581526020018d60c0013581526020018d60e001602081019061077a9190611a4d565b73ffffffffffffffffffffffffffffffffffffffff1681526020018d61010001358152506040518263ffffffff1660e01b81526004016107ba9190611f81565b606060405180830381600087803b1580156107d457600080fd5b505af11580156107e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080c9190611d74565b9250925050888210156108ef576108268733848c03611625565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88169063095ea7b39061089b907f000000000000000000000000000000000000000000000000000000000000000090600090600401611eca565b602060405180830381600087803b1580156108b557600080fd5b505af11580156108c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ed9190611ba8565b505b878110156109cd576109048633838b03611625565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063095ea7b390610979907f000000000000000000000000000000000000000000000000000000000000000090600090600401611eca565b602060405180830381600087803b15801561099357600080fd5b505af11580156109a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611ba8565b505b50505050505050505050565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b158015610a7957600080fd5b505af11580156109cd573d6000803e3d6000fd5b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610b2257600080fd5b505afa158015610b36573d6000803e3d6000fd5b505050506040513d6020811015610b4c57600080fd5b50511015610b6257610b628686868686866109d9565b505050505050565b60608167ffffffffffffffff81118015610b8357600080fd5b50604051908082528060200260200182016040528015610bb757816020015b6060815260200190600190039081610ba25790505b50905060005b82811015610cc65760008030868685818110610bd557fe5b9050602002810190610be7919061202c565b604051610bf5929190611e2b565b600060405180830381855af49150503d8060008114610c30576040519150601f19603f3d011682016040523d82523d6000602084013e610c35565b606091505b509150915081610ca457604481511015610c4e57600080fd5b60048101905080806020019051810190610c689190611bde565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b9190611f6e565b60405180910390fd5b80848481518110610cb157fe5b60209081029190910101525050600101610bbd565b5092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610d6657600080fd5b505afa158015610d7a573d6000803e3d6000fd5b505050506040513d6020811015610d9057600080fd5b50511015610b6257610b62868686868686610dca565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b158015610a7957600080fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610ea457600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b60008060008360020b12610faf578260020b610fb7565b8260020b6000035b9050620d89e881111561102b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006001821661104c5770010000000000000000000000000000000061105e565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611092576ffff97272373d413259a46990580e213a0260801c5b60048216156110b1576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156110d0576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156110ef576fffcb9843d60f6159c9db58835c9266440260801c5b602082161561110e576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561112d576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561114c576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561116c576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561118c576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156111ac576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156111cc576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156111ec576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561120c576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561122c576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561124c576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561126d576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561128d576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156112ac576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156112c9576b048a170391f7dc42444e8fa20260801c5b60008460020b131561130257807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff816112fe57fe5b0490505b640100000000810615611316576001611319565b60005b60ff16602082901c0192505050919050565b60008373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161115611365579293925b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1610156113ab576113a48585856117fa565b9050611447565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1610156114395760006113ec8786866117fa565b905060006113fb8789866118b2565b9050806fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161061142e5780611430565b815b92505050611447565b6114448585846118b2565b90505b95945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b6020831061152557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016114e8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611587576040519150601f19603f3d011682016040523d82523d6000602084013e61158c565b606091505b50915091508180156115ba5750805115806115ba57508080602001905160208110156115b757600080fd5b50515b61025357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5341000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106116fa57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016116bd565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461175c576040519150601f19603f3d011682016040523d82523d6000602084013e611761565b606091505b509150915081801561178f57508051158061178f575080806020019051602081101561178c57600080fd5b50515b61025357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611834579192915b600061187a8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000611927565b90506118a76118a2848388880373ffffffffffffffffffffffffffffffffffffffff16611927565b6119f4565b9150505b9392505050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156118ec579192915b61191f6118a2836c0100000000000000000000000087870373ffffffffffffffffffffffffffffffffffffffff16611927565b949350505050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8587098686029250828110908390030390508061197b576000841161197057600080fd5b5082900490506118ab565b80841161198757600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b806fffffffffffffffffffffffffffffffff81168114611a1357600080fd5b919050565b80518015158114611a1357600080fd5b805161ffff81168114611a1357600080fd5b803562ffffff81168114611a1357600080fd5b600060208284031215611a5e578081fd5b81356118ab816120c6565b600060208284031215611a7a578081fd5b81516118ab816120c6565b60008060008060808587031215611a9a578283fd5b8435611aa5816120c6565b93506020850135611ab5816120c6565b9250611ac360408601611a3a565b91506060850135611ad3816120c6565b939692955090935050565b60008060008060008060c08789031215611af6578182fd5b8635611b01816120c6565b955060208701359450604087013593506060870135611b1f816120fa565b9598949750929560808101359460a0909101359350915050565b60008060208385031215611b4b578182fd5b823567ffffffffffffffff80821115611b62578384fd5b818501915085601f830112611b75578384fd5b813581811115611b83578485fd5b8660208083028501011115611b96578485fd5b60209290920196919550909350505050565b600060208284031215611bb9578081fd5b6118ab82611a18565b600060208284031215611bd3578081fd5b81356118ab816120eb565b600060208284031215611bef578081fd5b815167ffffffffffffffff80821115611c06578283fd5b818401915084601f830112611c19578283fd5b815181811115611c2557fe5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401168201018181108482111715611c6157fe5b604052818152838201602001871015611c78578485fd5b611c89826020830160208701612096565b9695505050505050565b60006101208284031215611ca5578081fd5b50919050565b600080600080600080600060e0888a031215611cc5578485fd5b8751611cd0816120c6565b6020890151909750611ce1816120eb565b9550611cef60408901611a28565b9450611cfd60608901611a28565b9350611d0b60808901611a28565b925060a0880151611d1b816120fa565b9150611d2960c08901611a18565b905092959891949750929550565b600060208284031215611d48578081fd5b6118ab82611a3a565b60008060408385031215611d63578182fd5b505080516020909101519092909150565b600080600060608486031215611d88578081fd5b8351925060208401519150604084015190509250925092565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452611dd3816020860160208601612096565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60020b9052565b6fffffffffffffffffffffffffffffffff169052565b62ffffff169052565b6000828483379101908152919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015262ffffff919091166040830152909116606082015260800190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611f61577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452611f4f858351611dbb565b94509285019290850190600101611f15565b5092979650505050505050565b6000602082526118ab6020830184611dbb565b600061014082019050611f95828451611da1565b6020830151611fa76020840182611da1565b506040830151611fba6040840182611e22565b506060830151611fcd6060840182611e05565b506080830151611fe06080840182611e05565b5060a0830151611ff360a0840182611e0c565b5060c083015160c083015260e083015160e08301526101008084015161201b82850182611da1565b505061012092830151919092015290565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612060578283fd5b83018035915067ffffffffffffffff82111561207a578283fd5b60200191503681900382131561208f57600080fd5b9250929050565b60005b838110156120b1578181015183820152602001612099565b838111156120c0576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146120e857600080fd5b50565b8060020b81146120e857600080fd5b60ff811681146120e857600080fdfea164736f6c6343000706000a",
"deployedBytecode": "0x6080604052600436106100965760003560e01c8063ac9650d811610069578063c2e3140a1161004e578063c2e3140a1461014e578063c45a015514610161578063f3995c671461017657610096565b8063ac9650d814610103578063b44a27221461012c57610096565b806313ead5621461009b5780633aeffbe0146100bd5780634659a494146100dd578063a4a78f0c146100f0575b600080fd5b3480156100a757600080fd5b506100bb6100b6366004611a85565b610189565b005b3480156100c957600080fd5b506100bb6100d8366004611c93565b61025a565b6100bb6100eb366004611ade565b6109d9565b6100bb6100fe366004611ade565b610a8d565b610116610111366004611b39565b610b6a565b6040516101239190611ef0565b60405180910390f35b34801561013857600080fd5b50610141610ccd565b6040516101239190611e3b565b6100bb61015c366004611ade565b610cf1565b34801561016d57600080fd5b50610141610da6565b6100bb610184366004611ade565b610dca565b6040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906313ead56290610201908790879087908790600401611e8d565b602060405180830381600087803b15801561021b57600080fd5b505af115801561022f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102539190611a69565b5050505050565b6102676020820182611a4d565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd336102906020850185611a4d565b84602001356040518463ffffffff1660e01b81526004016102b393929190611e5c565b602060405180830381600087803b1580156102cd57600080fd5b505af11580156102e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103059190611ba8565b506000806103166020840184611a4d565b73ffffffffffffffffffffffffffffffffffffffff166389afcb44306040518263ffffffff1660e01b815260040161034e9190611e3b565b6040805180830381600087803b15801561036757600080fd5b505af115801561037b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039f9190611d51565b909250905060006103b36020850185611a4d565b73ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156103f857600080fd5b505afa15801561040c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104309190611a69565b905060006104416020860186611a4d565b73ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561048657600080fd5b505afa15801561049a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104be9190611a69565b905060006105487f000000000000000000000000000000000000000000000000000000000000000060405180606001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200189604001602081019061053c9190611d37565b62ffffff169052610e62565b905060008173ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561059257600080fd5b505afa1580156105a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ca9190611cab565b5050505050509050600061060d826105f38a60600160208101906105ee9190611bc2565b610f98565b6106066105ee60a08d0160808e01611bc2565b8a8a61132b565b905061063a857f000000000000000000000000000000000000000000000000000000000000000089611450565b610665847f000000000000000000000000000000000000000000000000000000000000000088611450565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633a3a6dc86040518061014001604052808a73ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018d60400160208101906106fb9190611d37565b62ffffff1681526020018d60600160208101906107189190611bc2565b60020b81526020018d60800160208101906107339190611bc2565b60020b8152602001866fffffffffffffffffffffffffffffffff1681526020018d60a0013581526020018d60c0013581526020018d60e001602081019061077a9190611a4d565b73ffffffffffffffffffffffffffffffffffffffff1681526020018d61010001358152506040518263ffffffff1660e01b81526004016107ba9190611f81565b606060405180830381600087803b1580156107d457600080fd5b505af11580156107e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080c9190611d74565b9250925050888210156108ef576108268733848c03611625565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88169063095ea7b39061089b907f000000000000000000000000000000000000000000000000000000000000000090600090600401611eca565b602060405180830381600087803b1580156108b557600080fd5b505af11580156108c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ed9190611ba8565b505b878110156109cd576109048633838b03611625565b6040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87169063095ea7b390610979907f000000000000000000000000000000000000000000000000000000000000000090600090600401611eca565b602060405180830381600087803b15801561099357600080fd5b505af11580156109a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cb9190611ba8565b505b50505050505050505050565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b158015610a7957600080fd5b505af11580156109cd573d6000803e3d6000fd5b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610b2257600080fd5b505afa158015610b36573d6000803e3d6000fd5b505050506040513d6020811015610b4c57600080fd5b50511015610b6257610b628686868686866109d9565b505050505050565b60608167ffffffffffffffff81118015610b8357600080fd5b50604051908082528060200260200182016040528015610bb757816020015b6060815260200190600190039081610ba25790505b50905060005b82811015610cc65760008030868685818110610bd557fe5b9050602002810190610be7919061202c565b604051610bf5929190611e2b565b600060405180830381855af49150503d8060008114610c30576040519150601f19603f3d011682016040523d82523d6000602084013e610c35565b606091505b509150915081610ca457604481511015610c4e57600080fd5b60048101905080806020019051810190610c689190611bde565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b9190611f6e565b60405180910390fd5b80848481518110610cb157fe5b60209081029190910101525050600101610bbd565b5092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610d6657600080fd5b505afa158015610d7a573d6000803e3d6000fd5b505050506040513d6020811015610d9057600080fd5b50511015610b6257610b62868686868686610dca565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b158015610a7957600080fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff1610610ea457600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b60008060008360020b12610faf578260020b610fb7565b8260020b6000035b9050620d89e881111561102b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006001821661104c5770010000000000000000000000000000000061105e565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611092576ffff97272373d413259a46990580e213a0260801c5b60048216156110b1576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156110d0576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156110ef576fffcb9843d60f6159c9db58835c9266440260801c5b602082161561110e576fff973b41fa98c081472e6896dfb254c00260801c5b604082161561112d576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561114c576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561116c576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561118c576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156111ac576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156111cc576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156111ec576fd097f3bdfd2022b8845ad8f792aa58250260801c5b61200082161561120c576fa9f746462d870fdf8a65dc1f90e061e50260801c5b61400082161561122c576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561124c576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561126d576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561128d576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156112ac576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156112c9576b048a170391f7dc42444e8fa20260801c5b60008460020b131561130257807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff816112fe57fe5b0490505b640100000000810615611316576001611319565b60005b60ff16602082901c0192505050919050565b60008373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161115611365579293925b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1610156113ab576113a48585856117fa565b9050611447565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1610156114395760006113ec8786866117fa565b905060006113fb8789866118b2565b9050806fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161061142e5780611430565b815b92505050611447565b6114448585846118b2565b90505b95945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b6020831061152557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016114e8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611587576040519150601f19603f3d011682016040523d82523d6000602084013e61158c565b606091505b50915091508180156115ba5750805115806115ba57508080602001905160208110156115b757600080fd5b50515b61025357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5341000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106116fa57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016116bd565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d806000811461175c576040519150601f19603f3d011682016040523d82523d6000602084013e611761565b606091505b509150915081801561178f57508051158061178f575080806020019051602081101561178c57600080fd5b50515b61025357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611834579192915b600061187a8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000611927565b90506118a76118a2848388880373ffffffffffffffffffffffffffffffffffffffff16611927565b6119f4565b9150505b9392505050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1611156118ec579192915b61191f6118a2836c0100000000000000000000000087870373ffffffffffffffffffffffffffffffffffffffff16611927565b949350505050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8587098686029250828110908390030390508061197b576000841161197057600080fd5b5082900490506118ab565b80841161198757600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b806fffffffffffffffffffffffffffffffff81168114611a1357600080fd5b919050565b80518015158114611a1357600080fd5b805161ffff81168114611a1357600080fd5b803562ffffff81168114611a1357600080fd5b600060208284031215611a5e578081fd5b81356118ab816120c6565b600060208284031215611a7a578081fd5b81516118ab816120c6565b60008060008060808587031215611a9a578283fd5b8435611aa5816120c6565b93506020850135611ab5816120c6565b9250611ac360408601611a3a565b91506060850135611ad3816120c6565b939692955090935050565b60008060008060008060c08789031215611af6578182fd5b8635611b01816120c6565b955060208701359450604087013593506060870135611b1f816120fa565b9598949750929560808101359460a0909101359350915050565b60008060208385031215611b4b578182fd5b823567ffffffffffffffff80821115611b62578384fd5b818501915085601f830112611b75578384fd5b813581811115611b83578485fd5b8660208083028501011115611b96578485fd5b60209290920196919550909350505050565b600060208284031215611bb9578081fd5b6118ab82611a18565b600060208284031215611bd3578081fd5b81356118ab816120eb565b600060208284031215611bef578081fd5b815167ffffffffffffffff80821115611c06578283fd5b818401915084601f830112611c19578283fd5b815181811115611c2557fe5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401168201018181108482111715611c6157fe5b604052818152838201602001871015611c78578485fd5b611c89826020830160208701612096565b9695505050505050565b60006101208284031215611ca5578081fd5b50919050565b600080600080600080600060e0888a031215611cc5578485fd5b8751611cd0816120c6565b6020890151909750611ce1816120eb565b9550611cef60408901611a28565b9450611cfd60608901611a28565b9350611d0b60808901611a28565b925060a0880151611d1b816120fa565b9150611d2960c08901611a18565b905092959891949750929550565b600060208284031215611d48578081fd5b6118ab82611a3a565b60008060408385031215611d63578182fd5b505080516020909101519092909150565b600080600060608486031215611d88578081fd5b8351925060208401519150604084015190509250925092565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452611dd3816020860160208601612096565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60020b9052565b6fffffffffffffffffffffffffffffffff169052565b62ffffff169052565b6000828483379101908152919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015262ffffff919091166040830152909116606082015260800190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015611f61577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452611f4f858351611dbb565b94509285019290850190600101611f15565b5092979650505050505050565b6000602082526118ab6020830184611dbb565b600061014082019050611f95828451611da1565b6020830151611fa76020840182611da1565b506040830151611fba6040840182611e22565b506060830151611fcd6060840182611e05565b506080830151611fe06080840182611e05565b5060a0830151611ff360a0840182611e0c565b5060c083015160c083015260e083015160e08301526101008084015161201b82850182611da1565b505061012092830151919092015290565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612060578283fd5b83018035915067ffffffffffffffff82111561207a578283fd5b60200191503681900382131561208f57600080fd5b9250929050565b60005b838110156120b1578181015183820152602001612099565b838111156120c0576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff811681146120e857600080fd5b50565b8060020b81146120e857600080fd5b60ff811681146120e857600080fdfea164736f6c6343000706000a",
"bytecode": "0x60e06040523480156200001157600080fd5b50604051620025b7380380620025b7833981016040819052620000349162000079565b6001600160601b0319606093841b811660805291831b821660a05290911b1660c052620000c2565b80516001600160a01b03811681146200007457600080fd5b919050565b6000806000606084860312156200008e578283fd5b62000099846200005c565b9250620000a9602085016200005c565b9150620000b9604085016200005c565b90509250925092565b60805160601c60a05160601c60c05160601c6124896200012e6000398061027752806106265280610660528061068a528061087e5280610e7d52508060d252806108d752806109615280610a415280610acb5280610c2252508061045b5280610f5652506124896000f3fe6080604052600436106100b55760003560e01c8063ac9650d811610069578063c2e3140a1161004e578063c2e3140a146101ff578063c45a015514610212578063f3995c671461022757610134565b8063ac9650d8146101ca578063b44a2722146101ea57610134565b80634659a4941161009a5780634659a494146101795780634aa4a4fc1461018c578063a4a78f0c146101b757610134565b806313ead562146101395780632180c49f1461015957610134565b36610134573373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610132576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101299061226f565b60405180910390fd5b005b600080fd5b34801561014557600080fd5b50610132610154366004611d76565b61023a565b34801561016557600080fd5b50610132610174366004611fa2565b61030b565b610132610187366004611dcf565b610b60565b34801561019857600080fd5b506101a1610c20565b6040516101ae919061214f565b60405180910390f35b6101326101c5366004611dcf565b610c44565b6101dd6101d8366004611e2a565b610d21565b6040516101ae91906121de565b3480156101f657600080fd5b506101a1610e7b565b61013261020d366004611dcf565b610e9f565b34801561021e57600080fd5b506101a1610f54565b610132610235366004611dcf565b610f78565b6040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906313ead562906102b29087908790879087906004016121a1565b602060405180830381600087803b1580156102cc57600080fd5b505af11580156102e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103049190611d5a565b5050505050565b6103186020820182611d3e565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd336103416020850185611d3e565b84602001356040518463ffffffff1660e01b815260040161036493929190612170565b602060405180830381600087803b15801561037e57600080fd5b505af1158015610392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b69190611eb5565b506000806103c76020840184611d3e565b73ffffffffffffffffffffffffffffffffffffffff166389afcb44306040518263ffffffff1660e01b81526004016103ff919061214f565b6040805180830381600087803b15801561041857600080fd5b505af115801561042c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104509190612065565b9150915060006104fa7f000000000000000000000000000000000000000000000000000000000000000060405180606001604052808760400160208101906104989190611d3e565b73ffffffffffffffffffffffffffffffffffffffff1681526020016104c36080890160608a01611d3e565b73ffffffffffffffffffffffffffffffffffffffff1681526020016104ee60a0890160808a0161204b565b62ffffff169052611010565b905060008173ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561054457600080fd5b505afa158015610558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057c9190611fba565b505050505050905060006105bf826105a58860a00160208101906105a09190611ed1565b611146565b6105b86105a060e08b0160c08c01611ed1565b88886114d9565b90508560e00135816fffffffffffffffffffffffffffffffff161015610611576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610129906122a6565b61064b6106246060880160408901611d3e565b7f0000000000000000000000000000000000000000000000000000000000000000876115fe565b61068561065e6080880160608901611d3e565b7f0000000000000000000000000000000000000000000000000000000000000000866115fe565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633a3a6dc86040518061014001604052808b60400160208101906106e39190611d3e565b73ffffffffffffffffffffffffffffffffffffffff16815260200161070e60808d0160608e01611d3e565b73ffffffffffffffffffffffffffffffffffffffff16815260200161073960a08d0160808e0161204b565b62ffffff16815260200161075360c08d0160a08e01611ed1565b60020b815260200161076b60e08d0160c08e01611ed1565b60020b81526fffffffffffffffffffffffffffffffff871660208201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040820181905260608201526080016107ca6101208d016101008e01611d3e565b73ffffffffffffffffffffffffffffffffffffffff1681526020018b61012001358152506040518263ffffffff1660e01b815260040161080a91906122dd565b606060405180830381600087803b15801561082457600080fd5b505af1158015610838573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085c9190612088565b9250925050868210156109f3576108a461087c60608a0160408b01611d3e565b7f000000000000000000000000000000000000000000000000000000000000000060006115fe565b8187036108b96101608a016101408b01611e99565b801561091f575073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661090760608b0160408c01611d3e565b73ffffffffffffffffffffffffffffffffffffffff16145b156109d7576040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d90610996908490600401612388565b600060405180830381600087803b1580156109b057600080fd5b505af11580156109c4573d6000803e3d6000fd5b505050506109d233826117d3565b6109f1565b6109f16109ea60608b0160408c01611d3e565b3383611926565b505b85811015610b5657610a0e61087c60808a0160608b01611d3e565b808603610a236101608a016101408b01611e99565b8015610a89575073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016610a7160808b0160608c01611d3e565b73ffffffffffffffffffffffffffffffffffffffff16145b15610b41576040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d90610b00908490600401612388565b600060405180830381600087803b158015610b1a57600080fd5b505af1158015610b2e573d6000803e3d6000fd5b50505050610b3c33826117d3565b610b54565b610b546109ea60808b0160608c01611d3e565b505b5050505050505050565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b158015610c0057600080fd5b505af1158015610c14573d6000803e3d6000fd5b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610cd957600080fd5b505afa158015610ced573d6000803e3d6000fd5b505050506040513d6020811015610d0357600080fd5b50511015610d1957610d19868686868686610b60565b505050505050565b60608167ffffffffffffffff81118015610d3a57600080fd5b50604051908082528060200260200182016040528015610d6e57816020015b6060815260200190600190039081610d595790505b50905060005b82811015610e745760008030868685818110610d8c57fe5b9050602002810190610d9e9190612391565b604051610dac92919061213f565b600060405180830381855af49150503d8060008114610de7576040519150601f19603f3d011682016040523d82523d6000602084013e610dec565b606091505b509150915081610e5257604481511015610e0557600080fd5b60048101905080806020019051810190610e1f9190611eed565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610129919061225c565b80848481518110610e5f57fe5b60209081029190910101525050600101610d74565b5092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610f1457600080fd5b505afa158015610f28573d6000803e3d6000fd5b505050506040513d6020811015610f3e57600080fd5b50511015610d1957610d19868686868686610f78565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b158015610c0057600080fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161061105257600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b60008060008360020b1261115d578260020b611165565b8260020b6000035b9050620d89e88111156111d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000600182166111fa5770010000000000000000000000000000000061120c565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611240576ffff97272373d413259a46990580e213a0260801c5b600482161561125f576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561127e576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b601082161561129d576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156112bc576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156112db576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156112fa576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561131a576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561133a576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561135a576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561137a576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561139a576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156113ba576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156113da576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156113fa576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561141b576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561143b576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561145a576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611477576b048a170391f7dc42444e8fa20260801c5b60008460020b13156114b057807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff816114ac57fe5b0490505b6401000000008106156114c45760016114c7565b60005b60ff16602082901c0192505050919050565b60008373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161115611513579293925b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16101561155957611552858585611afb565b90506115f5565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1610156115e757600061159a878686611afb565b905060006115a9878986611bb3565b9050806fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff16106115dc57806115de565b815b925050506115f5565b6115f2858584611bb3565b90505b95945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106116d357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611696565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611735576040519150601f19603f3d011682016040523d82523d6000602084013e61173a565b606091505b5091509150818015611768575080511580611768575080806020019051602081101561176557600080fd5b50515b61030457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5341000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b6020831061184a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161180d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146118ac576040519150601f19603f3d011682016040523d82523d6000602084013e6118b1565b606091505b505090508061192157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106119fb57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016119be565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611a5d576040519150601f19603f3d011682016040523d82523d6000602084013e611a62565b606091505b5091509150818015611a90575080511580611a905750808060200190516020811015611a8d57600080fd5b50515b61030457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611b35579192915b6000611b7b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000611c28565b9050611ba8611ba3848388880373ffffffffffffffffffffffffffffffffffffffff16611c28565b611cf5565b9150505b9392505050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611bed579192915b611c20611ba3836c0100000000000000000000000087870373ffffffffffffffffffffffffffffffffffffffff16611c28565b949350505050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870986860292508281109083900303905080611c7c5760008411611c7157600080fd5b508290049050611bac565b808411611c8857600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b806fffffffffffffffffffffffffffffffff81168114611d1457600080fd5b919050565b805161ffff81168114611d1457600080fd5b803562ffffff81168114611d1457600080fd5b600060208284031215611d4f578081fd5b8135611bac8161242b565b600060208284031215611d6b578081fd5b8151611bac8161242b565b60008060008060808587031215611d8b578283fd5b8435611d968161242b565b93506020850135611da68161242b565b9250611db460408601611d2b565b91506060850135611dc48161242b565b939692955090935050565b60008060008060008060c08789031215611de7578182fd5b8635611df28161242b565b955060208701359450604087013593506060870135611e108161246d565b9598949750929560808101359460a0909101359350915050565b60008060208385031215611e3c578182fd5b823567ffffffffffffffff80821115611e53578384fd5b818501915085601f830112611e66578384fd5b813581811115611e74578485fd5b8660208083028501011115611e87578485fd5b60209290920196919550909350505050565b600060208284031215611eaa578081fd5b8135611bac81612450565b600060208284031215611ec6578081fd5b8151611bac81612450565b600060208284031215611ee2578081fd5b8135611bac8161245e565b600060208284031215611efe578081fd5b815167ffffffffffffffff80821115611f15578283fd5b818401915084601f830112611f28578283fd5b815181811115611f3457fe5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401168201018181108482111715611f7057fe5b604052818152838201602001871015611f87578485fd5b611f988260208301602087016123fb565b9695505050505050565b60006101608284031215611fb4578081fd5b50919050565b600080600080600080600060e0888a031215611fd4578485fd5b8751611fdf8161242b565b6020890151909750611ff08161245e565b9550611ffe60408901611d19565b945061200c60608901611d19565b935061201a60808901611d19565b925060a088015161202a8161246d565b60c089015190925061203b81612450565b8091505092959891949750929550565b60006020828403121561205c578081fd5b611bac82611d2b565b60008060408385031215612077578182fd5b505080516020909101519092909150565b60008060006060848603121561209c578081fd5b8351925060208401519150604084015190509250925092565b73ffffffffffffffffffffffffffffffffffffffff169052565b600081518084526120e78160208601602086016123fb565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60020b9052565b6fffffffffffffffffffffffffffffffff169052565b62ffffff169052565b6000828483379101908152919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015262ffffff919091166040830152909116606082015260800190565b6000602080830181845280855180835260408601915060408482028701019250838701855b8281101561224f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261223d8583516120cf565b94509285019290850190600101612203565b5092979650505050505050565b600060208252611bac60208301846120cf565b60208082526009908201527f4e6f742057455448390000000000000000000000000000000000000000000000604082015260600190565b60208082526016908201527f45786365737369766520707269636520696d7061637400000000000000000000604082015260600190565b6000610140820190506122f18284516120b5565b602083015161230360208401826120b5565b5060408301516123166040840182612136565b5060608301516123296060840182612119565b50608083015161233c6080840182612119565b5060a083015161234f60a0840182612120565b5060c083015160c083015260e083015160e083015261010080840151612377828501826120b5565b505061012092830151919092015290565b90815260200190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126123c5578283fd5b83018035915067ffffffffffffffff8211156123df578283fd5b6020019150368190038213156123f457600080fd5b9250929050565b60005b838110156124165781810151838201526020016123fe565b83811115612425576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461244d57600080fd5b50565b801515811461244d57600080fd5b8060020b811461244d57600080fd5b60ff8116811461244d57600080fdfea164736f6c6343000706000a",
"deployedBytecode": "0x6080604052600436106100b55760003560e01c8063ac9650d811610069578063c2e3140a1161004e578063c2e3140a146101ff578063c45a015514610212578063f3995c671461022757610134565b8063ac9650d8146101ca578063b44a2722146101ea57610134565b80634659a4941161009a5780634659a494146101795780634aa4a4fc1461018c578063a4a78f0c146101b757610134565b806313ead562146101395780632180c49f1461015957610134565b36610134573373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610132576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101299061226f565b60405180910390fd5b005b600080fd5b34801561014557600080fd5b50610132610154366004611d76565b61023a565b34801561016557600080fd5b50610132610174366004611fa2565b61030b565b610132610187366004611dcf565b610b60565b34801561019857600080fd5b506101a1610c20565b6040516101ae919061214f565b60405180910390f35b6101326101c5366004611dcf565b610c44565b6101dd6101d8366004611e2a565b610d21565b6040516101ae91906121de565b3480156101f657600080fd5b506101a1610e7b565b61013261020d366004611dcf565b610e9f565b34801561021e57600080fd5b506101a1610f54565b610132610235366004611dcf565b610f78565b6040517f13ead56200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906313ead562906102b29087908790879087906004016121a1565b602060405180830381600087803b1580156102cc57600080fd5b505af11580156102e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103049190611d5a565b5050505050565b6103186020820182611d3e565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd336103416020850185611d3e565b84602001356040518463ffffffff1660e01b815260040161036493929190612170565b602060405180830381600087803b15801561037e57600080fd5b505af1158015610392573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b69190611eb5565b506000806103c76020840184611d3e565b73ffffffffffffffffffffffffffffffffffffffff166389afcb44306040518263ffffffff1660e01b81526004016103ff919061214f565b6040805180830381600087803b15801561041857600080fd5b505af115801561042c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104509190612065565b9150915060006104fa7f000000000000000000000000000000000000000000000000000000000000000060405180606001604052808760400160208101906104989190611d3e565b73ffffffffffffffffffffffffffffffffffffffff1681526020016104c36080890160608a01611d3e565b73ffffffffffffffffffffffffffffffffffffffff1681526020016104ee60a0890160808a0161204b565b62ffffff169052611010565b905060008173ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561054457600080fd5b505afa158015610558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057c9190611fba565b505050505050905060006105bf826105a58860a00160208101906105a09190611ed1565b611146565b6105b86105a060e08b0160c08c01611ed1565b88886114d9565b90508560e00135816fffffffffffffffffffffffffffffffff161015610611576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610129906122a6565b61064b6106246060880160408901611d3e565b7f0000000000000000000000000000000000000000000000000000000000000000876115fe565b61068561065e6080880160608901611d3e565b7f0000000000000000000000000000000000000000000000000000000000000000866115fe565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16633a3a6dc86040518061014001604052808b60400160208101906106e39190611d3e565b73ffffffffffffffffffffffffffffffffffffffff16815260200161070e60808d0160608e01611d3e565b73ffffffffffffffffffffffffffffffffffffffff16815260200161073960a08d0160808e0161204b565b62ffffff16815260200161075360c08d0160a08e01611ed1565b60020b815260200161076b60e08d0160c08e01611ed1565b60020b81526fffffffffffffffffffffffffffffffff871660208201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040820181905260608201526080016107ca6101208d016101008e01611d3e565b73ffffffffffffffffffffffffffffffffffffffff1681526020018b61012001358152506040518263ffffffff1660e01b815260040161080a91906122dd565b606060405180830381600087803b15801561082457600080fd5b505af1158015610838573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085c9190612088565b9250925050868210156109f3576108a461087c60608a0160408b01611d3e565b7f000000000000000000000000000000000000000000000000000000000000000060006115fe565b8187036108b96101608a016101408b01611e99565b801561091f575073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661090760608b0160408c01611d3e565b73ffffffffffffffffffffffffffffffffffffffff16145b156109d7576040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d90610996908490600401612388565b600060405180830381600087803b1580156109b057600080fd5b505af11580156109c4573d6000803e3d6000fd5b505050506109d233826117d3565b6109f1565b6109f16109ea60608b0160408c01611d3e565b3383611926565b505b85811015610b5657610a0e61087c60808a0160608b01611d3e565b808603610a236101608a016101408b01611e99565b8015610a89575073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016610a7160808b0160608c01611d3e565b73ffffffffffffffffffffffffffffffffffffffff16145b15610b41576040517f2e1a7d4d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690632e1a7d4d90610b00908490600401612388565b600060405180830381600087803b158015610b1a57600080fd5b505af1158015610b2e573d6000803e3d6000fd5b50505050610b3c33826117d3565b610b54565b610b546109ea60808b0160608c01611d3e565b505b5050505050505050565b604080517f8fcbaf0c00000000000000000000000000000000000000000000000000000000815233600482015230602482015260448101879052606481018690526001608482015260ff851660a482015260c4810184905260e48101839052905173ffffffffffffffffffffffffffffffffffffffff881691638fcbaf0c9161010480830192600092919082900301818387803b158015610c0057600080fd5b505af1158015610c14573d6000803e3d6000fd5b50505050505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610cd957600080fd5b505afa158015610ced573d6000803e3d6000fd5b505050506040513d6020811015610d0357600080fd5b50511015610d1957610d19868686868686610b60565b505050505050565b60608167ffffffffffffffff81118015610d3a57600080fd5b50604051908082528060200260200182016040528015610d6e57816020015b6060815260200190600190039081610d595790505b50905060005b82811015610e745760008030868685818110610d8c57fe5b9050602002810190610d9e9190612391565b604051610dac92919061213f565b600060405180830381855af49150503d8060008114610de7576040519150601f19603f3d011682016040523d82523d6000602084013e610dec565b606091505b509150915081610e5257604481511015610e0557600080fd5b60048101905080806020019051810190610e1f9190611eed565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610129919061225c565b80848481518110610e5f57fe5b60209081029190910101525050600101610d74565b5092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523360048201523060248201529051869173ffffffffffffffffffffffffffffffffffffffff89169163dd62ed3e91604480820192602092909190829003018186803b158015610f1457600080fd5b505afa158015610f28573d6000803e3d6000fd5b505050506040513d6020811015610f3e57600080fd5b50511015610d1957610d19868686868686610f78565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c48101839052905173ffffffffffffffffffffffffffffffffffffffff88169163d505accf9160e480830192600092919082900301818387803b158015610c0057600080fd5b6000816020015173ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161061105257600080fd5b508051602080830151604093840151845173ffffffffffffffffffffffffffffffffffffffff94851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301207fff0000000000000000000000000000000000000000000000000000000000000060a085015294901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660a183015260b58201939093527fa8180af292c6986c74fa300a542e049db8a89221e2452e431c3d8103b610c56860d5808301919091528251808303909101815260f5909101909152805191012090565b60008060008360020b1261115d578260020b611165565b8260020b6000035b9050620d89e88111156111d957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000600182166111fa5770010000000000000000000000000000000061120c565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611240576ffff97272373d413259a46990580e213a0260801c5b600482161561125f576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561127e576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b601082161561129d576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156112bc576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156112db576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156112fa576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561131a576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561133a576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561135a576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561137a576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561139a576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156113ba576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156113da576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156113fa576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561141b576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561143b576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561145a576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611477576b048a170391f7dc42444e8fa20260801c5b60008460020b13156114b057807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff816114ac57fe5b0490505b6401000000008106156114c45760016114c7565b60005b60ff16602082901c0192505050919050565b60008373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161115611513579293925b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16101561155957611552858585611afb565b90506115f5565b8373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1610156115e757600061159a878686611afb565b905060006115a9878986611bb3565b9050806fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff16106115dc57806115de565b815b925050506115f5565b6115f2858584611bb3565b90505b95945050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106116d357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611696565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611735576040519150601f19603f3d011682016040523d82523d6000602084013e61173a565b606091505b5091509150818015611768575080511580611768575080806020019051602081101561176557600080fd5b50515b61030457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5341000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040518082805190602001908083835b6020831061184a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161180d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146118ac576040519150601f19603f3d011682016040523d82523d6000602084013e6118b1565b606091505b505090508061192157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f5354450000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106119fb57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016119be565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611a5d576040519150601f19603f3d011682016040523d82523d6000602084013e611a62565b606091505b5091509150818015611a90575080511580611a905750808060200190516020811015611a8d57600080fd5b50515b61030457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f5354000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611b35579192915b6000611b7b8573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000611c28565b9050611ba8611ba3848388880373ffffffffffffffffffffffffffffffffffffffff16611c28565b611cf5565b9150505b9392505050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161115611bed579192915b611c20611ba3836c0100000000000000000000000087870373ffffffffffffffffffffffffffffffffffffffff16611c28565b949350505050565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870986860292508281109083900303905080611c7c5760008411611c7157600080fd5b508290049050611bac565b808411611c8857600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b806fffffffffffffffffffffffffffffffff81168114611d1457600080fd5b919050565b805161ffff81168114611d1457600080fd5b803562ffffff81168114611d1457600080fd5b600060208284031215611d4f578081fd5b8135611bac8161242b565b600060208284031215611d6b578081fd5b8151611bac8161242b565b60008060008060808587031215611d8b578283fd5b8435611d968161242b565b93506020850135611da68161242b565b9250611db460408601611d2b565b91506060850135611dc48161242b565b939692955090935050565b60008060008060008060c08789031215611de7578182fd5b8635611df28161242b565b955060208701359450604087013593506060870135611e108161246d565b9598949750929560808101359460a0909101359350915050565b60008060208385031215611e3c578182fd5b823567ffffffffffffffff80821115611e53578384fd5b818501915085601f830112611e66578384fd5b813581811115611e74578485fd5b8660208083028501011115611e87578485fd5b60209290920196919550909350505050565b600060208284031215611eaa578081fd5b8135611bac81612450565b600060208284031215611ec6578081fd5b8151611bac81612450565b600060208284031215611ee2578081fd5b8135611bac8161245e565b600060208284031215611efe578081fd5b815167ffffffffffffffff80821115611f15578283fd5b818401915084601f830112611f28578283fd5b815181811115611f3457fe5b60405160207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401168201018181108482111715611f7057fe5b604052818152838201602001871015611f87578485fd5b611f988260208301602087016123fb565b9695505050505050565b60006101608284031215611fb4578081fd5b50919050565b600080600080600080600060e0888a031215611fd4578485fd5b8751611fdf8161242b565b6020890151909750611ff08161245e565b9550611ffe60408901611d19565b945061200c60608901611d19565b935061201a60808901611d19565b925060a088015161202a8161246d565b60c089015190925061203b81612450565b8091505092959891949750929550565b60006020828403121561205c578081fd5b611bac82611d2b565b60008060408385031215612077578182fd5b505080516020909101519092909150565b60008060006060848603121561209c578081fd5b8351925060208401519150604084015190509250925092565b73ffffffffffffffffffffffffffffffffffffffff169052565b600081518084526120e78160208601602086016123fb565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60020b9052565b6fffffffffffffffffffffffffffffffff169052565b62ffffff169052565b6000828483379101908152919050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015262ffffff919091166040830152909116606082015260800190565b6000602080830181845280855180835260408601915060408482028701019250838701855b8281101561224f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088860301845261223d8583516120cf565b94509285019290850190600101612203565b5092979650505050505050565b600060208252611bac60208301846120cf565b60208082526009908201527f4e6f742057455448390000000000000000000000000000000000000000000000604082015260600190565b60208082526016908201527f45786365737369766520707269636520696d7061637400000000000000000000604082015260600190565b6000610140820190506122f18284516120b5565b602083015161230360208401826120b5565b5060408301516123166040840182612136565b5060608301516123296060840182612119565b50608083015161233c6080840182612119565b5060a083015161234f60a0840182612120565b5060c083015160c083015260e083015160e083015261010080840151612377828501826120b5565b505061012092830151919092015290565b90815260200190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126123c5578283fd5b83018035915067ffffffffffffffff8211156123df578283fd5b6020019150368190038213156123f457600080fd5b9250929050565b60005b838110156124165781810151838201526020016123fe565b83811115612425576000848401525b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461244d57600080fd5b50565b801515811461244d57600080fd5b8060020b811461244d57600080fd5b60ff8116811461244d57600080fdfea164736f6c6343000706000a",
"linkReferences": {},
"deployedLinkReferences": {}
}

@@ -8,3 +8,3 @@ {

},
"version": "1.0.0-beta.12",
"version": "1.0.0-beta.13",
"homepage": "https://uniswap.org",

@@ -11,0 +11,0 @@ "keywords": [

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc