@animoca/ethereum-contracts-sale
Version:
850 lines • 79.8 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "SwapSaleMock",
"sourceName": "contracts/mocks/sale/abstract/SwapSaleMock.sol",
"abi": [
{
"inputs": [
{
"internalType": "address payable",
"name": "payoutWallet_",
"type": "address"
},
{
"internalType": "uint256",
"name": "skusCapacity",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "tokensPerSkuCapacity",
"type": "uint256"
},
{
"internalType": "address",
"name": "referenceToken",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32[]",
"name": "names",
"type": "bytes32[]"
},
{
"indexed": false,
"internalType": "bytes32[]",
"name": "values",
"type": "bytes32[]"
}
],
"name": "MagicValues",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Paused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "payoutWallet_",
"type": "address"
}
],
"name": "PayoutWalletSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "purchaser",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "recipient",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "sku",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "quantity",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "userData",
"type": "bytes"
},
{
"indexed": false,
"internalType": "uint256",
"name": "totalPrice",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes",
"name": "extData",
"type": "bytes"
}
],
"name": "Purchase",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "sku",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "totalSupply",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "maxQuantityPerPurchase",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "notificationsReceiver",
"type": "address"
}
],
"name": "SkuCreation",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "sku",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address[]",
"name": "tokens",
"type": "address[]"
},
{
"indexed": false,
"internalType": "uint256[]",
"name": "prices",
"type": "uint256[]"
}
],
"name": "SkuPricingUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Started",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Unpaused",
"type": "event"
},
{
"inputs": [],
"name": "PRICE_CONVERT_VIA_ORACLE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "PRICE_SWAP_VIA_ORACLE",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "SUPPLY_UNLIMITED",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "TOKEN_ETH",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "recipient",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "bytes32",
"name": "sku",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "quantity",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "userData",
"type": "bytes"
}
],
"name": "callUnderscoreOraclePricing",
"outputs": [
{
"internalType": "bool",
"name": "handled",
"type": "bool"
},
{
"internalType": "uint256",
"name": "totalPrice",
"type": "uint256"
},
{
"internalType": "bytes32[]",
"name": "pricingData",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "recipient",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "bytes32",
"name": "sku",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "quantity",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "userData",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "totalPrice",
"type": "uint256"
},
{
"internalType": "bytes32[]",
"name": "pricingData",
"type": "bytes32[]"
}
],
"name": "callUnderscorePayment",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "recipient",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "bytes32",
"name": "sku",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "quantity",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "userData",
"type": "bytes"
}
],
"name": "callUnderscorePricing",
"outputs": [
{
"internalType": "uint256",
"name": "totalPrice",
"type": "uint256"
},
{
"internalType": "bytes32[]",
"name": "pricingData",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "tokens",
"type": "address[]"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "conversionRates",
"outputs": [
{
"internalType": "uint256[]",
"name": "rates",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "sku",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "totalSupply",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxQuantityPerPurchase",
"type": "uint256"
},
{
"internalType": "address",
"name": "notificationsReceiver",
"type": "address"
}
],
"name": "createSku",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "recipient",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "bytes32",
"name": "sku",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "quantity",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "userData",
"type": "bytes"
}
],
"name": "estimatePurchase",
"outputs": [
{
"internalType": "uint256",
"name": "totalPrice",
"type": "uint256"
},
{
"internalType": "bytes32[]",
"name": "pricingData",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "sku",
"type": "bytes32"
}
],
"name": "getSkuInfo",
"outputs": [
{
"internalType": "uint256",
"name": "totalSupply",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "remainingSupply",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "maxQuantityPerPurchase",
"type": "uint256"
},
{
"internalType": "address",
"name": "notificationsReceiver",
"type": "address"
},
{
"internalType": "address[]",
"name": "tokens",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "prices",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getSkus",
"outputs": [
{
"internalType": "bytes32[]",
"name": "skus",
"type": "bytes32[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "mockSwapRates",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "mockSwapVariance",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "payoutWallet",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "recipient",
"type": "address"
},
{
"internalType": "address",
"name": "token",
"type": "address"
},
{
"internalType": "bytes32",
"name": "sku",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "quantity",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "userData",
"type": "bytes"
}
],
"name": "purchaseFor",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "referenceToken",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "fromToken",
"type": "address"
},
{
"internalType": "address",
"name": "toToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "rate",
"type": "uint256"
}
],
"name": "setMockSwapRate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "int256",
"name": "value",
"type": "int256"
}
],
"name": "setMockSwapVariance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "payoutWallet_",
"type": "address"
}
],
"name": "setPayoutWallet",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "start",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "startedAt",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "tokens",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "referenceAmount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "swapRates",
"outputs": [
{
"internalType": "uint256[]",
"name": "rates",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "sku",
"type": "bytes32"
},
{
"internalType": "address[]",
"name": "tokens",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "prices",
"type": "uint256[]"
}
],
"name": "updateSkuPricing",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60c06040523480156200001157600080fd5b5060405162003f3838038062003f38833981810160405260808110156200003757600080fd5b5080516020820151604080840151606090940151600080546001600160a01b03191633908117825592519495939491928692869286928692869286928692869286928692869285928592859260019291869183918291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b03811662000110576040805162461bcd60e51b815260206004820152601460248201527f5061796f75743a207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fdd880d24a789958a6398c99c2e54ce31bc10a638cbc42f7dd34285479ae0f8559181900360200190a150506003805460ff1916911515919091179055608082905260a081905260408051600280825260608201835260009260208301908036833750506040805160028082526060820183529394506000939092509060208301908036833750508351919250680a89e968a9cbe8aa8960bb1b9173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee91508490600090620001f557fe5b60200260200101836000815181106200020a57fe5b602002602001018281525082815250505060001960001b6f14d55414131657d5539312535255115160821b90836001815181106200024457fe5b60200260200101836001815181106200025957fe5b602002602001018281525082815250505060008051602062003f188339815191528282604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015620002c2578181015183820152602001620002a8565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101562000303578181015183820152602001620002e9565b5050505090500194505050505060405180910390a15050600780546001600160a01b0319166001600160a01b0389161790555060009450600193508492506200034a915050565b5060405190808252806020026020018201604052801562000375578160200160208202803683370190505b50604080516001808252818301909252919250600091906020808301908036833701905050905060001960001b7f50524943455f434f4e564552545f5649415f4f5241434c4500000000000000009083600081518110620003d257fe5b6020026020010183600081518110620003e757fe5b602002602001018281525082815250505060008051602062003f188339815191528282604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156200045057818101518382015260200162000436565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156200049157818101518382015260200162000477565b5050505090500194505050505060405180910390a1505050505050600060016001600160401b0381118015620004c657600080fd5b50604051908082528060200260200182016040528015620004f1578160200160208202803683370190505b506040805160018082528183019092529192506000919060208083019080368337505083519192507f50524943455f535741505f5649415f4f5241434c45000000000000000000000091600119915084906000906200054c57fe5b60200260200101836000815181106200056157fe5b602002602001018281525082815250505060008051602062003f188339815191528282604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015620005ca578181015183820152602001620005b0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156200060b578181015183820152602001620005f1565b5050505090500194505050505060405180910390a15050505050505050505060805160a0516138ca6200064e60003980612a84525080611ada52506138ca6000f3fe6080604052600436106101c25760003560e01c80638456cb59116100f7578063a0cf073511610095578063c7b778db11610064578063c7b778db14610b57578063c931f7c914610c26578063f21f537d14610c61578063f2fde38b14610c76576101c2565b8063a0cf0735146108d4578063a963b257146109da578063bda4c5ab14610a6f578063be9a655514610b42576101c2565b80638da5cb5b116100d15780638da5cb5b1461080857806397309b441461081d5780639865bcc8146108bf5780639e049545146108bf576101c2565b80638456cb59146106f35780638488bb4e146107085780638ce507eb1461071d576101c2565b8063579f2c77116101645780635e6e9f701161013e5780635e6e9f70146104f6578063607dc0171461063157806361bd38511461065b5780636b8f9c43146106c0576101c2565b8063579f2c77146104a35780635c4fafc7146104b85780635c975abb146104cd576101c2565b80632c87927b116101a05780632c87927b146103dd5780633c33c51e146104245780633f4ba83a14610467578063558884bd1461047c576101c2565b80631265b651146101c75780631323b066146101f85780632a8a45bc146102f5575b600080fd5b3480156101d357600080fd5b506101dc610ca9565b604080516001600160a01b039092168252519081900360200190f35b34801561020457600080fd5b5061029a600480360360a081101561021b57600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561025b57600080fd5b82018360208201111561026d57600080fd5b8035906020019184600183028401116401000000008311171561028f57600080fd5b509092509050610cb8565b6040518083815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156102e05781810151838201526020016102c8565b50505050905001935050505060405180910390f35b34801561030157600080fd5b5061031f6004803603602081101561031857600080fd5b5035610dad565b60405180878152602001868152602001858152602001846001600160a01b031681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561038457818101518382015260200161036c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156103c35781810151838201526020016103ab565b505050509050019850505050505050505060405180910390f35b3480156103e957600080fd5b506104226004803603608081101561040057600080fd5b50803590602081013590604081013590606001356001600160a01b0316610f52565b005b34801561043057600080fd5b506104226004803603606081101561044757600080fd5b506001600160a01b03813581169160208101359091169060400135610f64565b34801561047357600080fd5b50610422610f90565b34801561048857600080fd5b50610491610ffe565b60408051918252519081900360200190f35b3480156104af57600080fd5b50610491611004565b3480156104c457600080fd5b506101dc61100a565b3480156104d957600080fd5b506104e2611022565b604080519115158252519081900360200190f35b34801561050257600080fd5b506104226004803603606081101561051957600080fd5b8135919081019060408101602082013564010000000081111561053b57600080fd5b82018360208201111561054d57600080fd5b8035906020019184602083028401116401000000008311171561056f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156105bf57600080fd5b8201836020820111156105d157600080fd5b803590602001918460208302840111640100000000831117156105f357600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061102b945050505050565b34801561063d57600080fd5b506104226004803603602081101561065457600080fd5b5035611208565b34801561066757600080fd5b5061067061120d565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106ac578181015183820152602001610694565b505050509050019250505060405180910390f35b3480156106cc57600080fd5b50610422600480360360208110156106e357600080fd5b50356001600160a01b0316611268565b3480156106ff57600080fd5b50610422611335565b34801561071457600080fd5b506101dc61139c565b610422600480360360e081101561073357600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561077357600080fd5b82018360208201111561078557600080fd5b803590602001918460018302840111640100000000831117156107a757600080fd5b919390928235926040810190602001356401000000008111156107c957600080fd5b8201836020820111156107db57600080fd5b803590602001918460208302840111640100000000831117156107fd57600080fd5b5090925090506113ab565b34801561081457600080fd5b506101dc611475565b34801561082957600080fd5b5061029a600480360360a081101561084057600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561088057600080fd5b82018360208201111561089257600080fd5b803590602001918460018302840111640100000000831117156108b457600080fd5b509092509050611484565b3480156108cb57600080fd5b50610491611523565b3480156108e057600080fd5b50610976600480360360a08110156108f757600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561093757600080fd5b82018360208201111561094957600080fd5b8035906020019184600183028401116401000000008311171561096b57600080fd5b509092509050611529565b60405180841515815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156109c45781810151838201526020016109ac565b5050505090500194505050505060405180910390f35b610422600480360360a08110156109f057600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610a3057600080fd5b820183602082011115610a4257600080fd5b80359060200191846001830284011164010000000083111715610a6457600080fd5b5090925090506115f1565b348015610a7b57600080fd5b5061067060048036036060811015610a9257600080fd5b810190602081018135640100000000811115610aad57600080fd5b820183602082011115610abf57600080fd5b80359060200191846020830284011164010000000083111715610ae157600080fd5b91939092823592604081019060200135640100000000811115610b0357600080fd5b820183602082011115610b1557600080fd5b80359060200191846001830284011164010000000083111715610b3757600080fd5b5090925090506116d7565b348015610b4e57600080fd5b506104226117e6565b348015610b6357600080fd5b5061067060048036036040811015610b7a57600080fd5b810190602081018135640100000000811115610b9557600080fd5b820183602082011115610ba757600080fd5b80359060200191846020830284011164010000000083111715610bc957600080fd5b919390929091602081019035640100000000811115610be757600080fd5b820183602082011115610bf957600080fd5b80359060200191846001830284011164010000000083111715610c1b57600080fd5b5090925090506117f9565b348015610c3257600080fd5b5061049160048036036040811015610c4957600080fd5b506001600160a01b03813581169160200135166118e5565b348015610c6d57600080fd5b50610491611902565b348015610c8257600080fd5b5061042260048036036020811015610c9957600080fd5b50356001600160a01b0316611908565b6007546001600160a01b031681565b6000606060025460001415610d14576040805162461bcd60e51b815260206004820152601660248201527f537461727461626c653a206e6f74207374617274656400000000000000000000604482015290519081900360640190fd5b610d1c61196e565b610d24613802565b610d2c6119c6565b6001600160a01b03908116825289811660208084019190915290891660408084019190915260608301899052608083018890528051601f870183900483028101830190915285815290869086908190840183828082843760009201919091525050505060a0820152610d9d816119ca565b9250925050965096945050505050565b6000818152600660205260408120819081908190606090819083610dd3600483016119f1565b82549850905087610e2b576040805162461bcd60e51b815260206004820152601660248201527f53616c653a206e6f6e2d6578697374656e7420736b7500000000000000000000604482015290519081900360640190fd5b60018201546002830154600384015491985096506001600160a01b031694508067ffffffffffffffff81118015610e6157600080fd5b50604051908082528060200260200182016040528015610e8b578160200160208202803683370190505b5093508067ffffffffffffffff81118015610ea557600080fd5b50604051908082528060200260200182016040528015610ecf578160200160208202803683370190505b50925060005b81811015610f4657600080610eed60048601846119f5565b915091508160001c878481518110610f0157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508060001c868481518110610f3157fe5b60209081029190910101525050600101610ed5565b50505091939550919395565b610f5e84848484611a86565b50505050565b6001600160a01b0392831660009081526008602090815260408083209490951682529290925291902055565b600254610fe4576040805162461bcd60e51b815260206004820152601660248201527f537461727461626c653a206e6f74207374617274656400000000000000000000604482015290519081900360640190fd5b610ff4610fef6119c6565b611cbd565b610ffc611d84565b565b60095481565b60011981565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b60035460ff1681565b611036610fef6119c6565b81518151811461108d576040805162461bcd60e51b815260206004820152601960248201527f53616c653a20696e636f6e73697374656e742061727261797300000000000000604482015290519081900360640190fd5b600084815260066020526040902080546110ee576040805162461bcd60e51b815260206004820152601660248201527f53616c653a206e6f6e2d6578697374656e7420736b7500000000000000000000604482015290519081900360640190fd5b6004810182611139576000611102826119f1565b905060005b8181101561113257600061111b84826119f5565b5090506111288482611ddc565b5050600101611107565b5050611144565b611144818686611ebc565b857fcb3fe5489e0cd43d0f4a33d1e09a4a0463a03d0d38f56165530854e5540db1438686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156111ac578181015183820152602001611194565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156111eb5781810151838201526020016111d3565b5050505090500194505050505060405180910390a2505050505050565b600955565b6060600460000180548060200260200160405190810160405280929190818152602001828054801561125e57602002820191906000526020600020905b81548152602001906001019080831161124a575b5050505050905090565b611273610fef6119c6565b6001600160a01b0381166112ce576040805162461bcd60e51b815260206004820152601460248201527f5061796f75743a207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03838116919091179182905560408051929091168252517fdd880d24a789958a6398c99c2e54ce31bc10a638cbc42f7dd34285479ae0f855916020908290030190a150565b600254611389576040805162461bcd60e51b815260206004820152601660248201527f537461727461626c653a206e6f74207374617274656400000000000000000000604482015290519081900360640190fd5b611394610fef6119c6565b610ffc611f44565b6001546001600160a01b031681565b6113b3613802565b6113bb6119c6565b6001600160a01b0390811682528a8116602080840191909152908a16604080840191909152606083018a9052608083018990528051601f880183900483028101830190915286815290879087908190840183828082843760009201919091525050505060a082015260c081018490526040805160208085028281018201909352848252909185918591829185019084908082843760009201919091525050505060e082015261146981611f82565b50505050505050505050565b6000546001600160a01b031690565b60006060611490613802565b6114986119c6565b6001600160a01b03908116825289811660208084019190915290891660408084019190915260608301899052608083018890528051601f870183900483028101830190915285815290869086908190840183828082843760009201919091525050505060a082015261150981612221565b8060c0015192508060e00151915050965096945050505050565b60001981565b6000806060611536613802565b61153e6119c6565b6001600160a01b0390811682528a8116602080840191909152908a16604080840191909152606083018a9052608083018990528051601f8801839004830281018301909152868152908790879081908401838280828437600092018290525060a08601949094525050508881526006602052604081209060048201906115c484836122c3565b90506115d1848383612333565b96508360c0015195508360e0015194505050505096509650969350505050565b600254611645576040805162461bcd60e51b815260206004820152601660248201527f537461727461626c653a206e6f74207374617274656400000000000000000000604482015290519081900360640190fd5b61164d61196e565b611655613802565b61165d6119c6565b6001600160a01b03908116825287811660208084019190915290871660408084019190915260608301879052608083018690528051601f850183900483028101830190915283815290849084908190840183828082843760009201919091525050505060a08201526116ce81612438565b50505050505050565b6060848067ffffffffffffffff811180156116f157600080fd5b5060405190808252806020026020018201604052801561171b578160200160208202803683370190505b50915060005b818110156117db57600061179d89898481811061173a57fe5b905060200201356001600160a01b0316600760009054906101000a90046001600160a01b03168989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061246592505050565b90506117bb816117b589670de0b6b3a76400006124ff565b90612558565b8483815181106117c757fe5b602090810291909101015250600101611721565b505095945050505050565b6117f1610fef6119c6565b610ff46125bf565b6060838067ffffffffffffffff8111801561181357600080fd5b5060405190808252806020026020018201604052801561183d578160200160208202803683370190505b50915060005b818110156118db576118bc87878381811061185a57fe5b905060200201356001600160a01b0316600760009054906101000a90046001600160a01b031687878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061264192505050565b8382815181106118c857fe5b6020908102919091010152600101611843565b5050949350505050565b600860209081526000928352604080842090915290825290205481565b60025490565b611913610fef6119c6565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821780845560405192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60035460ff1615610ffc576040805162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3390565b600060606119d78361264a565b6119e083612221565b505060c081015160e0909101519091565b5490565b815460009081908310611a4f576040805162461bcd60e51b815260206004820152601c60248201527f456e756d4d61703a20696e646578206f7574206f6620626f756e647300000000604482015290519081900360640190fd5b6000846000018481548110611a6057fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b82611ad8576040805162461bcd60e51b815260206004820152601160248201527f53616c653a207a65726f20737570706c79000000000000000000000000000000604482015290519081900360640190fd5b7f0000000000000000000000000000000000000000000000000000000000000000611b0360046119f1565b10611b55576040805162461bcd60e51b815260206004820152601360248201527f53616c653a20746f6f206d616e7920736b757300000000000000000000000000604482015290519081900360640190fd5b611b606004856128f4565b611bb1576040805162461bcd60e51b815260206004820152601960248201527f53616c653a20736b7520616c7265616479206372656174656400000000000000604482015290519081900360640190fd5b6001600160a01b03811615611c2357611bd2816001600160a01b031661293e565b611c23576040805162461bcd60e51b815260206004820152601b60248201527f53616c653a206e6f6e2d636f6e74726163742072656365697665720000000000604482015290519081900360640190fd5b60008481526006602090815260409182902085815560018101869055600281018590556003810180546001600160a01b03861673ffffffffffffffffffffffffffffffffffffffff1990911681179091558351888152928301879052828401869052606083015291517f38bd4aabce684540cd61351b91f2f5facf9d6963934347e25aab93d87ae7ac149181900360800190a15050505050565b306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611cf657600080fd5b505afa158015611d0a573d6000803e3d6000fd5b505050506040513d6020811015611d2057600080fd5b50516001600160a01b03828116911614611d81576040805162461bcd60e51b815260206004820152601660248201527f4f776e61626c653a206e6f7420746865206f776e657200000000000000000000604482015290519081900360640190fd5b50565b611d8c612944565b6003805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611dbf6119c6565b604080516001600160a01b039092168252519081900360200190a1565b60008181526001830160205260408120548015611eb05783546000198083019190810190600090879083908110611e0f57fe5b9060005260206000209060020201905080876000018481548110611e2f57fe5b600091825260208083208454600290930201918255600193840154918401919091558354825289830190526040902090840190558654879080611e6e57fe5b6000828152602080822060026000199094019384020182815560019081018390559290935588815289820190925260408220919091559450611eb69350505050565b60009150505b92915050565b611ec783838361299b565b611ed0836119f1565b1580611eee5750600754611eee9084906001600160a01b0316612aff565b611f3f576040805162461bcd60e51b815260206004820152601860248201527f53616c653a206e6f207265666572656e636520746f6b656e0000000000000000604482015290519081900360640190fd5b505050565b611f4c61196e565b6003805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611dbf6119c6565b60e0810151511580611fb457506001600019038160e00151600081518110611fa657fe5b602002602001015160001c14155b15611fc757611fc281612b17565b611d81565b60408101516001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561204e578060c00151341015612049576040805162461bcd60e51b815260206004820152601660248201527f53616c653a20696e73756666696369656e742045544800000000000000000000604482015290519081900360640190fd5b612075565b6120756120596119c6565b60c083015160408401516001600160a01b031691903090612c62565b60008160e0015160018151811061208857fe5b602002602001015160001c905060006120ba670de0b6b3a76400006117b58560c00151856124ff90919063ffffffff16565b604084015160075460a08601519293506000926120e392916001600160a01b0316908590612cea565b60408501519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561216457600061211b3483612d18565b9050801561215e5784516040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561215c573d6000803e3d6000fd5b505b5061219d565b60c08401516000906121769083612d18565b9050801561219b578451604086015161219b916001600160a01b039091169083612d75565b505b6007546001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612204576001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156121fe573d6000803e3d6000fd5b50610f5e565b600154600754610f5e916001600160a01b03918216911683612d75565b606081015160009081526006602052604090208054612287576040805162461bcd60e51b815260206004820152601560248201527f53616c653a20756e737570706f7274656420534b550000000000000000000000604482015290519081900360640190fd5b60048101600061229784836122c3565b90506122a4848383612333565b610f5e5760808401516122b89082906124ff565b60c085015250505050565b60408201516000906122df9083906001600160a01b0316612df5565b905080611eb6576040805162461bcd60e51b815260206004820152601f60248201527f53616c653a20756e737570706f72746564207061796d656e7420746f6b656e00604482015290519081900360640190fd5b6000600119821461235057612349848484612e85565b9050612431565b60075460009061236a9085906001600160a01b0316612df5565b60808601519091506000906123809083906124ff565b604087015160075460a08901519293506000926123a992916001600160a01b0316908590612465565b905060006123c3826117b585670de0b6b3a76400006124ff565b604080516002808252606082018352929350919060208301908036833750505060e0890181905280518791906000906123f857fe5b6020026020010181815250508060001b8860e0015160018151811061241957fe5b60209081029190910101525060c08701525060019150505b9392505050565b6124418161264a565b61244a81612221565b61245381611f82565b61245c81612f7d565b611d8181612fc9565b6001600160a01b038085166000908152600860209081526040808320938716835292905290812054806124df576040805162461bcd60e51b815260206004820152601460248201527f53616c653a20756e646566696e65642072617465000000000000000000000000604482015290519081900360640190fd5b6124f5816117b586670de0b6b3a76400006124ff565b9695505050505050565b60008261250e57506000611eb6565b8282028284828161251b57fe5b04146124315760405162461bcd60e51b81526004018080602001828103825260218152602001806138746021913960400191505060405180910390fd5b60008082116125ae576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816125b757fe5b049392505050565b60025415612614576040805162461bcd60e51b815260206004820152601260248201527f537461727461626c653a20737461727465640000000000000000000000000000604482015290519081900360640190fd5b426002557f27029695aa5f602a4ee81f4c32dfa86e562f200a17966496f3a7c3f2ec0f9417611dbf6119c6565b50600192915050565b60208101516001600160a01b03166126a9576040805162461bcd60e51b815260206004820152601c60248201527f53616c653a207a65726f206164647265737320726563697069656e7400000000604482015290519081900360640190fd5b60408101516001600160a01b0316612708576040805162461bcd60e51b815260206004820152601860248201527f53616c653a207a65726f206164647265737320746f6b656e0000000000000000604482015290519081900360640190fd5b608081015161275e576040805162461bcd60e51b815260206004820152601c60248201527f53616c653a207a65726f207175616e7469747920707572636861736500000000604482015290519081900360640190fd5b6060810151600090815260066020526040902080546127c4576040805162461bcd60e51b815260206004820152601660248201527f53616c653a206e6f6e2d6578697374656e7420736b7500000000000000000000604482015290519081900360640190fd5b816080015181600201541015612821576040805162461bcd60e51b815260206004820152601860248201527f53616c653a2061626f7665206d6178207175616e746974790000000000000000604482015290519081900360640190fd5b80546000191461288857816080015181600101541015612888576040805162461bcd60e51b815260206004820152601960248201527f53616c653a20696e73756666696369656e7420737570706c7900000000000000604482015290519081900360640190fd5b60408201516001600160a01b03166128a36004830182612aff565b611f3f576040805162461bcd60e51b815260206004820152601c60248201527f53616c653a206e6f6e2d6578697374656e7420736b7520746f6b656e00000000604482015290519081900360640190fd5b60006129008383612aff565b61293657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611eb6565b506000611eb6565b3b151590565b60035460ff16610ffc576040805162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b60005b8251811015612a815760008382815181106129b557fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415612a27576040805162461bcd60e51b815260206004820152601860248201527f53616c653a207a65726f206164647265737320746f6b656e0000000000000000604482015290519081900360640190fd5b6000838381518110612a3557fe5b602002602001015190508060001415612a6157612a5b866001600160a01b038416611ddc565b50612a77565b612a75866001600160a01b038416836134ae565b505b505060010161299e565b507f0000000000000000000000000000000000000000000000000000000000000000612aac846119f1565b1115611f3f576040805162461bcd60e51b815260206004820152601560248201527f53616c653a20746f6f206d616e7920746f6b656e730000000000000000000000604482015290519081900360640190fd5b60009081526001919091016020526040902054151590565b60408101516001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612c3a578060c00151341015612b99576040805162461bcd60e51b815260206004820152601660248201527f53616c653a20696e73756666696369656e742045544800000000000000000000604482015290519081900360640190fd5b60015460c08201516040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015612bd7573d6000803e3d6000fd5b506000612bf18260c0015134612d1890919063ffffffff16565b90508015612c345781516040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612c32573d6000803e3d6000fd5b505b50611d81565b611d81612c456119c6565b60015460c084015160408501516001600160a01b03908116939216905b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610f5e908590613545565b6000612cf885858585612465565b9050612d0f612d0860095461374d565b82906137a8565b50949350505050565b600082821115612d6f576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052611f3f908490613545565b600081815260018301602052604081205480612e58576040805162461bcd60e51b815260206004820152601860248201527f456e756d4d61703a206e6f6e6578697374656e74206b65790000000000000000604482015290519081900360640190fd5b836000016001820381548110612e6a57fe5b90600052602060002090600202016001015491505092915050565b60006000198214612e9857506000612431565b600754600090612eb29085906001600160a01b0316612df5565b604086015160075460a0880151929350600092612ed992916001600160a01b031690612641565b90506000612f0a8760800151612f04846117b5670de0b6b3a7640000886124ff90919063ffffffff16565b906124ff565b604080516002808252606082018352929350919060208301908036833750505060e088018190528051869190600090612f3f57fe5b6020026020010181815250508160001b8760e00151600181518110612f6057fe5b602090810291909101015260c08701525060019150509392505050565b60608101516000908152600660205260409020805460001914612fc55760808201516001820154612fad91612d18565b60608301516000908152600660205260409020600101555b5050565b806060015181604001516001600160a01b031682600001516001600160a01b03167f29f844483ca6b10b5c0611d039afc15ce8f6380e905307b381c3a8ee4e90e11e846020015185608001518660a001518760c001518860e001518961010001518a610120015160405160200180848051906020019060200280838360005b83811015613060578181015183820152602001613048565b50505050905001838051906020019060200280838360005b83811015613090578181015183820152602001613078565b50505050905001828051906020019060200280838360005b838110156130c05781810151838201526020016130a8565b50505050905001935050505060405160208183030381529060405260405180866001600160a01b031681526020018581526020018060200184815260200180602001838103835286818151815260200191508051906020019080838360005b8381101561313757818101518382015260200161311f565b50505050905090810190601f1680156131645780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561319757818101518382015260200161317f565b50505050905090810190601f1680156131c45780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a460608101516000908152600660205260409020600301546001600160a01b03168015612fc5576361eceae860e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916816001600160a01b03166361eceae8846000015185602001518660400151876060015188608001518960a001518a60c001518b60e001518c61010001518d61012001516040518b63ffffffff1660e01b8152600401808b6001600160a01b031681526020018a6001600160a01b03168152602001896001600160a01b031681526020018881526020018781526020018060200186815260200180602001806020018060200185810385528a818151815260200191508051906020019080838360005b838110156132fd5781810151838201526020016132e5565b50505050905090810190601f16801561332a5780820380516001836020036101000a031916815260200191505b508581038452885181528851602091820191808b01910280838360005b8381101561335f578181015183820152602001613347565b50505050905001858103835287818151815260200191508051906020019060200280838360005b8381101561339e578181015183820152602001613386565b50505050905001858103825286818151815260200191508051906020019060200280838360005b838110156133dd5781810151838201526020016133c5565b505050509050019e505050505050505050505050505050602060405180830381600087803b15801561340e57600080fd5b505af1158015613422573d6000803e3d6000fd5b505050506040513d602081101561343857600080fd5b50517fffffffff000000000000000000000000000000000000000000000000000000001614612fc5576040805162461bcd60e51b815260206004820152601a60248201527f53616c653a206e6f74696669636174696f6e2072656675736564000000000000604482015290519081900360640190fd5b600082815260018401602052604081205480613513575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055612431565b8285600001600183038154811061352657fe5b9060005260206000209060020201600101819055506000915050612431565b816135586001600160a01b03821661293e565b6135a9576040805162461bcd60e51b815260206004820152601a60248201527f4552433230577261707065723a206e6f6e2d636f6e7472616374000000000000604482015290519081900360640190fd5b600080826001600160a01b0316846040518082805190602001908083835b6020831061360457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016135c7565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613666576040519150601f19603f3d011682016040523d82523d6000602084013e61366b565b606091505b509150915081156136ea578051156136e55780806020019051602081101561369257600080fd5b50516136e5576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b613746565b805161373d576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b80518082602001fd5b5050505050565b6000808212156137a4576040805162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015290519081900360640190fd5b5090565b600082820183811015612431576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60405180610140016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008019168152602001600081526020016060815260200160008152602001606081526020016060815260200160608152509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c4e75bb10eaf1422ddc64e093ef0ba270fd4dcf73ec30fd57d22121ffd33cd2964736f6c63430007060033abb92614f53337043b55dc996a83ebb09adce78ec336ca188ea02180b61d1c14",
"deployedBytecode": "0x6080604052600436106101c25760003560e01c80638456cb59116100f7578063a0cf073511610095578063c7b778db11610064578063c7b778db14610b57578063c931f7c914610c26578063f21f537d14610c61578063f2fde38b14610c76576101c2565b8063a0cf0735146108d4578063a963b257146109da578063bda4c5ab14610a6f578063be9a655514610b42576101c2565b80638da5cb5b116100d15780638da5cb5b1461080857806397309b441461081d5780639865bcc8146108bf5780639e049545146108bf576101c2565b80638456cb59146106f35780638488bb4e146107085780638ce507eb1461071d576101c2565b8063579f2c77116101645780635e6e9f701161013e5780635e6e9f70146104f6578063607dc0171461063157806361bd38511461065b5780636b8f9c43146106c0576101c2565b8063579f2c77146104a35780635c4fafc7146104b85780635c975abb146104cd576101c2565b80632c87927b116101a05780632c87927b146103dd5780633c33c51e146104245780633f4ba83a14610467578063558884bd1461047c576101c2565b80631265b651146101c75780631323b066146101f85780632a8a45bc146102f5575b600080fd5b3480156101d357600080fd5b506101dc610ca9565b604080516001600160a01b039092168252519081900360200190f35b34801561020457600080fd5b5061029a600480360360a081101561021b57600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561025b57600080fd5b82018360208201111561026d57600080fd5b8035906020019184600183028401116401000000008311171561028f57600080fd5b509092509050610cb8565b6040518083815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156102e05781810151838201526020016102c8565b50505050905001935050505060405180910390f35b34801561030157600080fd5b5061031f6004803603602081101561031857600080fd5b5035610dad565b60405180878152602001868152602001858152602001846001600160a01b031681526020018060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561038457818101518382015260200161036c565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156103c35781810151838201526020016103ab565b505050509050019850505050505050505060405180910390f35b3480156103e957600080fd5b506104226004803603608081101561040057600080fd5b50803590602081013590604081013590606001356001600160a01b0316610f52565b005b34801561043057600080fd5b506104226004803603606081101561044757600080fd5b506001600160a01b03813581169160208101359091169060400135610f64565b34801561047357600080fd5b50610422610f90565b34801561048857600080fd5b50610491610ffe565b60408051918252519081900360200190f35b3480156104af57600080fd5b50610491611004565b3480156104c457600080fd5b506101dc61100a565b3480156104d957600080fd5b506104e2611022565b604080519115158252519081900360200190f35b34801561050257600080fd5b506104226004803603606081101561051957600080fd5b8135919081019060408101602082013564010000000081111561053b57600080fd5b82018360208201111561054d57600080fd5b8035906020019184602083028401116401000000008311171561056f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156105bf57600080fd5b8201836020820111156105d157600080fd5b803590602001918460208302840111640100000000831117156105f357600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061102b945050505050565b34801561063d57600080fd5b506104226004803603602081101561065457600080fd5b5035611208565b34801561066757600080fd5b5061067061120d565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156106ac578181015183820152602001610694565b505050509050019250505060405180910390f35b3480156106cc57600080fd5b50610422600480360360208110156106e357600080fd5b50356001600160a01b0316611268565b3480156106ff57600080fd5b50610422611335565b34801561071457600080fd5b506101dc61139c565b610422600480360360e081101561073357600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561077357600080fd5b82018360208201111561078557600080fd5b803590602001918460018302840111640100000000831117156107a757600080fd5b919390928235926040810190602001356401000000008111156107c957600080fd5b8201836020820111156107db57600080fd5b803590602001918460208302840111640100000000831117156107fd57600080fd5b5090925090506113ab565b34801561081457600080fd5b506101dc611475565b34801561082957600080fd5b5061029a600480360360a081101561084057600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561088057600080fd5b82018360208201111561089257600080fd5b803590602001918460018302840111640100000000831117156108b457600080fd5b509092509050611484565b3480156108cb57600080fd5b50610491611523565b3480156108e057600080fd5b50610976600480360360a08110156108f757600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561093757600080fd5b82018360208201111561094957600080fd5b8035906020019184600183028401116401000000008311171561096b57600080fd5b509092509050611529565b60405180841515815260200183815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156109c45781810151838201526020016109ac565b5050505090500194505050505060405180910390f35b610422600480360360a08110156109f057600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a081016080820135640100000000811115610a3057600080fd5b820183602082011115610a4257600080fd5b80359060200191846001830284011164010000000083111715610a6457600080fd5b5090925090506115f1565b348015610a7b57600080fd5b5061067060048036036060811015610a9257600080fd5b810190602081018135640100000000811115610aad57600080fd5b820183602082011115610abf57600080fd5b80359060200191846020830284011164010000000083111715610ae157600080fd5b91939092823592604081019060200135640100000000811115610b0357600080fd5b820183602082011115610b1557600080fd5b80359060200191846001830284011164010000000083111715610b3757600080fd5b5090925090506116d7565b348015610b4e57600080fd5b506104226117e6565b348015610b6357600080fd5b5061067060048036036040811015610b7a57600080fd5b810190602081018135640100000000811115610b9557600080fd5b820183602082011115610ba757600080fd5b80359060200191846020830284011164010000000083111715610bc957600080fd5b919390929091602081019035640100000000811115610be757600080fd5b820183602082011115610bf957600080fd5b80359060200191846001830284011164010000000083111715610c1b57600080fd5b5090925090506117f9565b348015610c3257600080fd5b5061049160048036036040811015610c4957600080fd5b506001600160a01b03813581169160200135166118e5565b348015610c6d57600080fd5b50610491611902565b348015610c8257600080fd5b5061042260048036036020811015610c9957600080fd5b50356001600160a01b0316611908565b6007546001600160a01b031681565b6000606060025460001415610d14576040805162461bcd60e51b815260206004820152601660248201527f537461727461626c653a206e6f74207374617274656400000000000000000000604482015290519081900360640190fd5b610d1c61196e565b610d24613802565b610d2c6119c6565b6001600160a01b03908116825289811660208084019190915290891660408084019190915260608301899052608083018890528051601f870183900483028101830190915285815290869086908190840183828082843760009201919091525050505060a0820152610d9d816119ca565b9250925050965096945050505050565b6000818152600660205260408120819081908190606090819083610dd3600483016119f1565b82549850905087610e2b576040805162461bcd60e51b815260206004820152601660248201527f53616c653a206e6f6e2d6578697374656e7420736b7500000000000000000000604482015290519081900360640190fd5b60018201546002830154600384015491985096506001600160a01b031694508067ffffffffffffffff81118015610e6157600080fd5b50604051908082528060200260200182016040528015610e8b578160200160208202803683370190505b5093508067ffffffffffffffff81118015610ea557600080fd5b50604051908082528060200260200182016040528015610ecf578160200160208202803683370190505b50925060005b81811015610f4657600080610eed60048601846119f5565b915091508160001c878481518110610f0157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508060001c868481518110610f3157fe5b60209081029190910101525050600101610ed5565b50505091939550919395565b610f5e84848484611a86565b50505050565b6001600160a01b0392831660009081526008602090815260408083209490951682529290925291902055565b600254610fe4576040805162461bcd60e51b815260206004820152601660248201527f537461727461626c653a206e6f74207374617274656400000000000000000000604482015290519081900360640190fd5b610ff4610fef6119c6565b611cbd565b610ffc611d84565b565b60095481565b60011981565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b60035460ff1681565b611036610fef6119c6565b81518151811461108d576040805162461bcd60e51b815260206004820152601960248201527f53616c653a20696e636f6e73697374656e742061727261797300000000000000604482015290519081900360640190fd5b600084815260066020526040902080546110ee576040805162461bcd60e51b815260206004820152601660248201527f53616c653a206e6f6e2d6578697374656e7420736b7500000000000000000000604482015290519081900360640190fd5b6004810182611139576000611102826119f1565b905060005b8181101561113257600061111b84826119f5565b5090506111288482611ddc565b5050600101611107565b5050611144565b611144818686611ebc565b857fcb3fe5489e0cd43d0f4a33d1e09a4a0463a03d0d38f56165530854e5540db1438686604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156111ac578181015183820152602001611194565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156111eb5781810151838201526020016111d3565b5050505090500194505050505060405180910390a2505050505050565b600955565b6060600460000180548060200260200160405190810160405280929190818152602001828054801561125e57602002820191906000526020600020905b81548152602001906001019080831161124a575b5050505050905090565b611273610fef6119c6565b6001600160a01b0381166112ce576040805162461bcd60e51b815260206004820152601460248201527f5061796f75743a207a65726f2061646472657373000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03838116919091179182905560408051929091168252517fdd880d24a789958a6398c99c2e54ce31bc10a638cbc42f7dd34285479ae0f855916020908290030190a150565b600254611389576040805162461bcd60e51b815260206004820152601660248201527f537461727461626c653a206e6f74207374617274656400000000000000000000604482015290519081900360640190fd5b611394610fef6119c6565b610ffc611f44565b6001546001600160a01b031681565b6113b3613802565b6113bb6119c6565b6001600160a01b0390811682528a8116602080840191909152908a16604080840191909152606083018a9052608083018990528051601f880183900483028101830190915286815290879087908190840183828082843760009201919091525050505060a082015260c081018490526040805160208085028281018201909352848252909185918591829185019084908082843760009201919091525050505060e082015261146981611f82565b50505050505050505050565b6000546001600160a01b031690565b60006060611490613802565b6114986119c6565b6001600160a01b03908116825289811660208084019190915290891660408084019190915260608301899052608083018890528051601f870183900483028101830190915285815290869086908190840183828082843760009201919091525050505060a082015261150981612221565b8060c0015192508060e00151915050965096945050505050565b60001981565b6000806060611536613802565b61153e6119c6565b6001600160a01b0390811682528a8116602080840191909152908a16604080840191909152606083018a9052608083018990528051601f8801839004830281018301909152868152908790879081908401838280828437600092018290525060a08601949094525050508881526006602052604081209060048201906115c484836122c3565b90506115d1848383612333565b96508360c0015195508360e0015194505050505096509650969350505050565b600254611645576040805162461bcd60e51b815260206004820152601660248201527f537461727461626c653a206e6f74207374617274656400000000000000000000604482015290519081900360640190fd5b61164d61196e565b611655613802565b61165d6119c6565b6001600160a01b03908116825287811660208084019190915290871660408084019190915260608301879052608083018690528051601f850183900483028101830190915283815290849084908190840183828082843760009201919091525050505060a08201526116ce81612438565b50505050505050565b6060848067ffffffffffffffff811180156116f157600080fd5b5060405190808252806020026020018201604052801561171b578160200160208202803683370190505b50915060005b818110156117db57600061179d89898481811061173a57fe5b905060200201356001600160a01b0316600760009054906101000a90046001600160a01b03168989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061246592505050565b90506117bb816117b589670de0b6b3a76400006124ff565b90612558565b8483815181106117c757fe5b602090810291909101015250600101611721565b505095945050505050565b6117f1610fef6119c6565b610ff46125bf565b6060838067ffffffffffffffff8111801561181357600080fd5b5060405190808252806020026020018201604052801561183d578160200160208202803683370190505b50915060005b818110156118db576118bc87878381811061185a57fe5b905060200201356001600160a01b0316600760009054906101000a90046001600160a01b031687878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061264192505050565b8382815181106118c857fe5b6020908102919091010152600101611843565b5050949350505050565b600860209081526000928352604080842090915290825290205481565b60025490565b611913610fef6119c6565b6000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821780845560405192939116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60035460ff1615610ffc576040805162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b3390565b600060606119d78361264a565b6119e083612221565b505060c081015160e0909101519091565b5490565b815460009081908310611a4f576040805162461bcd60e51b815260206004820152601c60248201527f456e756d4d61703a20696e646578206f7574206f6620626f756e647300000000604482015290519081900360640190fd5b6000846000018481548110611a6057fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b82611ad8576040805162461bcd60e51b815260206004820152601160248201527f53616c653a207a65726f20737570706c79000000000000000000000000000000604482015290519081900360640190fd5b7f0000000000000000000000000000000000000000000000000000000000000000611b0360046119f1565b10611b55576040805162461bcd60e51b815260206004820152601360248201527f53616c653a20746f6f206d616e7920736b757300000000000000000000000000604482015290519081900360640190fd5b611b606004856128f4565b611bb1576040805162461bcd60e51b815260206004820152601960248201527f53616c653a20736b7520616c7265616479206372656174656400000000000000604482015290519081900360640190fd5b6001600160a01b03811615611c2357611bd2816001600160a01b031661293e565b611c23576040805162461bcd60e51b815260206004820152601b60248201527f53616c653a206e6f6e2d636f6e74726163742072656365697665720000000000604482015290519081900360640190fd5b60008481526006602090815260409182902085815560018101869055600281018590556003810180546001600160a01b03861673ffffffffffffffffffffffffffffffffffffffff1990911681179091558351888152928301879052828401869052606083015291517f38bd4aabce684540cd61351b91f2f5facf9d6963934347e25aab93d87ae7ac149181900360800190a15050505050565b306001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611cf657600080fd5b505afa158015611d0a573d6000803e3d6000fd5b505050506040513d6020811015611d2057600080fd5b50516001600160a01b03828116911614611d81576040805162461bcd60e51b815260206004820152601660248201527f4f776e61626c653a206e6f7420746865206f776e657200000000000000000000604482015290519081900360640190fd5b50565b611d8c612944565b6003805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611dbf6119c6565b604080516001600160a01b039092168252519081900360200190a1565b60008181526001830160205260408120548015611eb05783546000198083019190810190600090879083908110611e0f57fe5b9060005260206000209060020201905080876000018481548110611e2f57fe5b600091825260208083208454600290930201918255600193840154918401919091558354825289830190526040902090840190558654879080611e6e57fe5b6000828152602080822060026000199094019384020182815560019081018390559290935588815289820190925260408220919091559450611eb69350505050565b60009150505b92915050565b611ec783838361299b565b611ed0836119f1565b1580611eee5750600754611eee9084906001600160a01b0316612aff565b611f3f576040805162461bcd60e51b815260206004820152601860248201527f53616c653a206e6f207265666572656e636520746f6b656e0000000000000000604482015290519081900360640190fd5b505050565b611f4c61196e565b6003805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611dbf6119c6565b60e0810151511580611fb457506001600019038160e00151600081518110611fa657fe5b602002602001015160001c14155b15611fc757611fc281612b17565b611d81565b60408101516001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561204e578060c00151341015612049576040805162461bcd60e51b815260206004820152601660248201527f53616c653a20696e73756666696369656e742045544800000000000000000000604482015290519081900360640190fd5b612075565b6120756120596119c6565b60c083015160408401516001600160a01b031691903090612c62565b60008160e0015160018151811061208857fe5b602002602001015160001c905060006120ba670de0b6b3a76400006117b58560c00151856124ff90919063ffffffff16565b604084015160075460a08601519293506000926120e392916001600160a01b0316908590612cea565b60408501519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561216457600061211b3483612d18565b9050801561215e5784516040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561215c573d6000803e3d6000fd5b505b5061219d565b60c08401516000906121769083612d18565b9050801561219b578451604086015161219b916001600160a01b039091169083612d75565b505b6007546001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612204576001546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156121fe573d6000803e3d6000fd5b50610f5e565b600154600754610f5e916001600160a01b03918216911683612d75565b606081015160009081526006602052604090208054612287576040805162461bcd60e51b815260206004820152601560248201527f53616c653a20756e737570706f7274656420534b550000000000000000000000604482015290519081900360640190fd5b60048101600061229784836122c3565b90506122a4848383612333565b610f5e5760808401516122b89082906124ff565b60c085015250505050565b60408201516000906122df9083906001600160a01b0316612df5565b905080611eb6576040805162461bcd60e51b815260206004820152601f60248201527f53616c653a20756e737570706f72746564207061796d656e7420746f6b656e00604482015290519081900360640190fd5b6000600119821461235057612349848484612e85565b9050612431565b60075460009061236a9085906001600160a01b0316612df5565b60808601519091506000906123809083906124ff565b604087015160075460a08901519293506000926123a992916001600160a01b0316908590612465565b905060006123c3826117b585670de0b6b3a76400006124ff565b604080516002808252606082018352929350919060208301908036833750505060e0890181905280518791906000906123f857fe5b6020026020010181815250508060001b8860e0015160018151811061241957fe5b60209081029190910101525060c08701525060019150505b9392505050565b6124418161264a565b61244a81612221565b61245381611f82565b61245c81612f7d565b611d8181612fc9565b6001600160a01b038085166000908152600860209081526040808320938716835292905290812054806124df576040805162461bcd60e51b815260206004820152601460248201527f53616c653a20756e646566696e65642072617465000000000000000000000000604482015290519081900360640190fd5b6124f5816117b586670de0b6b3a76400006124ff565b9695505050505050565b60008261250e57506000611eb6565b8282028284828161251b57fe5b04146124315760405162461bcd60e51b81526004018080602001828103825260218152602001806138746021913960400191505060405180910390fd5b60008082116125ae576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b8183816125b757fe5b049392505050565b60025415612614576040805162461bcd60e51b815260206004820152601260248201527f537461727461626c653a20737461727465640000000000000000000000000000604482015290519081900360640190fd5b426002557f27029695aa5f602a4ee81f4c32dfa86e562f200a17966496f3a7c3f2ec0f9417611dbf6119c6565b50600192915050565b60208101516001600160a01b03166126a9576040805162461bcd60e51b815260206004820152601c60248201527f53616c653a207a65726f206164647265737320726563697069656e7400000000604482015290519081900360640190fd5b60408101516001600160a01b0316612708576040805162461bcd60e51b815260206004820152601860248201527f53616c653a207a65726f206164647265737320746f6b656e0000000000000000604482015290519081900360640190fd5b608081015161275e576040805162461bcd60e51b815260206004820152601c60248201527f53616c653a207a65726f207175616e7469747920707572636861736500000000604482015290519081900360640190fd5b6060810151600090815260066020526040902080546127c4576040805162461bcd60e51b815260206004820152601660248201527f53616c653a206e6f6e2d6578697374656e7420736b7500000000000000000000604482015290519081900360640190fd5b816080015181600201541015612821576040805162461bcd60e51b815260206004820152601860248201527f53616c653a2061626f7665206d6178207175616e746974790000000000000000604482015290519081900360640190fd5b80546000191461288857816080015181600101541015612888576040805162461bcd60e51b815260206004820152601960248201527f53616c653a20696e73756666696369656e7420737570706c7900000000000000604482015290519081900360640190fd5b60408201516001600160a01b03166128a36004830182612aff565b611f3f576040805162461bcd60e51b815260206004820152601c60248201527f53616c653a206e6f6e2d6578697374656e7420736b7520746f6b656e00000000604482015290519081900360640190fd5b60006129008383612aff565b61293657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611eb6565b506000611eb6565b3b151590565b60035460ff16610ffc576040805162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b60005b8251811015612a815760008382815181106129b557fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415612a27576040805162461bcd60e51b815260206004820152601860248201527f53616c653a207a65726f206164647265737320746f6b656e0000000000000000604482015290519081900360640190fd5b6000838381518110612a3557fe5b602002602001015190508060001415612a6157612a5b866001600160a01b038416611ddc565b50612a77565b612a75866001600160a01b038416836134ae565b505b505060010161299e565b507f0000000000000000000000000000000000000000000000000000000000000000612aac846119f1565b1115611f3f576040805162461bcd60e51b815260206004820152601560248201527f53616c653a20746f6f206d616e7920746f6b656e730000000000000000000000604482015290519081900360640190fd5b60009081526001919091016020526040902054151590565b60408101516001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612c3a578060c00151341015612b99576040805162461bcd60e51b815260206004820152601660248201527f53616c653a20696e73756666696369656e742045544800000000000000000000604482015290519081900360640190fd5b60015460c08201516040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015612bd7573d6000803e3d6000fd5b506000612bf18260c0015134612d1890919063ffffffff16565b90508015612c345781516040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612c32573d6000803e3d6000fd5b505b50611d81565b611d81612c456119c6565b60015460c084015160408501516001600160a01b03908116939216905b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610f5e908590613545565b6000612cf885858585612465565b9050612d0f612d0860095461374d565b82906137a8565b50949350505050565b600082821115612d6f576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052611f3f908490613545565b600081815260018301602052604081205480612e58576040805162461bcd60e51b815260206004820152601860248201527f456e756d4d61703a206e6f6e6578697374656e74206b65790000000000000000604482015290519081900360640190fd5b836000016001820381548110612e6a57fe5b90600052602060002090600202016001015491505092915050565b60006000198214612e9857506000612431565b600754600090612eb29085906001600160a01b0316612df5565b604086015160075460a0880151929350600092612ed992916001600160a01b031690612641565b90506000612f0a8760800151612f04846117b5670de0b6b3a7640000886124ff90919063ffffffff16565b906124ff565b604080516002808252606082018352929350919060208301908036833750505060e088018190528051869190600090612f3f57fe5b6020026020010181815250508160001b8760e00151600181518110612f6057fe5b602090810291909101015260c08701525060019150509392505050565b60608101516000908152600660205260409020805460001914612fc55760808201516001820154612fad91612d18565b60608301516000908152600660205260409020600101555b5050565b806060015181604001516001600160a01b031682600001516001600160a01b03167f29f844483ca6b10b5c0611d039afc15ce8f6380e905307b381c3a8ee4e90e11e846020015185608001518660a001518760c001518860e001518961010001518a610120015160405160200180848051906020019060200280838360005b83811015613060578181015183820152602001613048565b50505050905001838051906020019060200280838360005b83811015613090578181015183820152602001613078565b50505050905001828051906020019060200280838360005b838110156130c05781810151838201526020016130a8565b50505050905001935050505060405160208183030381529060405260405180866001600160a01b031681526020018581526020018060200184815260200180602001838103835286818151815260200191508051906020019080838360005b8381101561313757818101518382015260200161311f565b50505050905090810190601f1680156131645780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b8381101561319757818101518382015260200161317f565b50505050905090810190601f1680156131c45780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a460608101516000908152600660205260409020600301546001600160a01b03168015612fc5576361eceae860e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916816001600160a01b03166361eceae8846000015185602001518660400151876060015188608001518960a001518a60c001518b60e001518c61010001518d61012001516040518b63ffffffff1660e01b8152600401808b6001600160a01b031681526020018a6001600160a01b03168152602001896001600160a01b031681526020018881526020018781526020018060200186815260200180602001806020018060200185810385528a818151815260200191508051906020019080838360005b838110156132fd5781810151838201526020016132e5565b50505050905090810190601f16801561332a5780820380516001836020036101000a031916815260200191505b508581038452885181528851602091820191808b01910280838360005b8381101561335f578181015183820152602001613347565b50505050905001858103835287818151815260200191508051906020019060200280838360005b8381101561339e578181015183820152602001613386565b50505050905001858103825286818151815260200191508051906020019060200280838360005b838110156133dd5781810151838201526020016133c5565b505050509050019e505050505050505050505050505050602060405180830381600087803b15801561340e57600080fd5b505af1158015613422573d6000803e3d6000fd5b505050506040513d602081101561343857600080fd5b50517fffffffff000000000000000000000000000000000000000000000000000000001614612fc5576040805162461bcd60e51b815260206004820152601a60248201527f53616c653a206e6f74696669636174696f6e2072656675736564000000000000604482015290519081900360640190fd5b600082815260018401602052604081205480613513575050604080518082018252838152602080820184815286546001818101895560008981528481209551600290930290950191825591519082015586548684528188019092529290912055612431565b8285600001600183038154811061352657fe5b9060005260206000209060020201600101819055506000915050612431565b816135586001600160a01b03821661293e565b6135a9576040805162461bcd60e51b815260206004820152601a60248201527f4552433230577261707065723a206e6f6e2d636f6e7472616374000000000000604482015290519081900360640190fd5b600080826001600160a01b0316846040518082805190602001908083835b6020831061360457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016135c7565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613666576040519150601f19603f3d011682016040523d82523d6000602084013e61366b565b606091505b509150915081156136ea578051156136e55780806020019051602081101561369257600080fd5b50516136e5576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b613746565b805161373d576040805162461bcd60e51b815260206004820152601e60248201527f4552433230577261707065723a206f7065726174696f6e206661696c65640000604482015290519081900360640190fd5b80518082602001fd5b5050505050565b6000808212156137a4576040805162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015290519081900360640190fd5b5090565b600082820183811015612431576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60405180610140016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008019168152602001600081526020016060815260200160008152602001606081526020016060815260200160608152509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c4e75bb10eaf1422ddc64e093ef0ba270fd4dcf73ec30fd57d22121ffd33cd2964736f6c63430007060033",
"linkReferences": {},
"deployedLinkReferences": {}
}