Contract details
0xA13D6017Be8Dca023822DB4749f0321E8a20595e
Contract name
0xA13D6017Be8Dca023822DB4749f0321E8a20595e
Creator
0xA13D601...595e
at txn
0xA13D601...595e
Balance
0
Transactions
Gas used
0
Last balance update
4297643
Transactions
Token transfers
Tokens
Internal txns
Coin balance history
Contract
Contract name
StakingManager
EVM Version
Paris
Optimization runs
200
Contract file path
contracts/StakingManager.sol
Compiler version
v0.8.9+commit.e5eed63a
Optimization enabled
true
Verified at
Sep 22, 10:20:30
StakingManager.sol
Loading...
Compiler Settings
{}
libraries:{},
optimizer:{},
enabled:true,
runs:200
outputSelection:{}
*:{}
[],
"ast"
*:[]
"abi",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"metadata"
Contract ABI
[]
{},
anonymous:false,
inputs:[],
{},
indexed:false,
internalType:"address",
name:"previousAdmin",
type:"address"
{}
indexed:false,
internalType:"address",
name:"newAdmin",
type:"address"
name:"AdminChanged",
type:"event"
{},
anonymous:false,
inputs:[],
{}
indexed:true,
internalType:"address",
name:"beacon",
type:"address"
name:"BeaconUpgraded",
type:"event"
{},
anonymous:false,
inputs:[],
{},
indexed:false,
internalType:"address",
name:"token",
type:"address"
{},
indexed:false,
internalType:"uint256",
name:"tokenId",
type:"uint256"
{},
indexed:false,
internalType:"uint256",
name:"amount",
type:"uint256"
{},
indexed:false,
internalType:"string",
name:"receiver",
type:"string"
{},
indexed:false,
internalType:"string",
name:"network",
type:"string"
{},
indexed:false,
internalType:"bool",
name:"isWrapped",
type:"bool"
{}
indexed:false,
internalType:"uint16",
name:"referralId",
type:"uint16"
name:"DepositedERC1155",
type:"event"
{},
anonymous:false,
inputs:[],
{},
indexed:false,
internalType:"address",
name:"token",
type:"address"
{},
indexed:false,
internalType:"uint256",
name:"amount",
type:"uint256"
{},
indexed:false,
internalType:"string",
name:"receiver",
type:"string"
{},
indexed:false,
internalType:"string",
name:"network",
type:"string"
{},
indexed:false,
internalType:"bool",
name:"isWrapped",
type:"bool"
{}
indexed:false,
internalType:"uint16",
name:"referralId",
type:"uint16"
name:"DepositedERC20",
type:"event"
{},
anonymous:false,
inputs:[],
{},
indexed:false,
internalType:"address",
name:"token",
type:"address"
{},
indexed:false,
internalType:"uint256",
name:"tokenId",
type:"uint256"
{},
indexed:false,
internalType:"string",
name:"receiver",
type:"string"
{},
indexed:false,
internalType:"string",
name:"network",
type:"string"
{},
indexed:false,
internalType:"bool",
name:"isWrapped",
type:"bool"
{}
indexed:false,
internalType:"uint16",
name:"referralId",
type:"uint16"
name:"DepositedERC721",
type:"event"
{},
anonymous:false,
inputs:[],
{},
indexed:false,
internalType:"uint256",
name:"amount",
type:"uint256"
{},
indexed:false,
internalType:"string",
name:"receiver",
type:"string"
{},
indexed:false,
internalType:"string",
name:"network",
type:"string"
{}
indexed:false,
internalType:"uint16",
name:"referralId",
type:"uint16"
name:"DepositedNative",
type:"event"
{},
anonymous:false,
inputs:[],
{}
indexed:false,
internalType:"uint8",
name:"version",
type:"uint8"
name:"Initialized",
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:true,
internalType:"address",
name:"implementation",
type:"address"
name:"Upgraded",
type:"event"
{},
inputs:[],
{},
internalType:"address[]",
name:"signers_",
type:"address[]"
{}
internalType:"uint256",
name:"signaturesThreshold_",
type:"uint256"
name:"__Bridge_init",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{},
internalType:"address[]",
name:"signers_",
type:"address[]"
{}
internalType:"uint256",
name:"signaturesThreshold_",
type:"uint256"
name:"__Signers_init",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{},
internalType:"bytes32",
name:"txHash_",
type:"bytes32"
{}
internalType:"uint256",
name:"txNonce_",
type:"uint256"
name:"addHash",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{}
internalType:"address[]",
name:"signers_",
type:"address[]"
name:"addSigners",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{},
internalType:"bytes32",
name:"txHash_",
type:"bytes32"
{}
internalType:"uint256",
name:"txNonce_",
type:"uint256"
name:"containsHash",
outputs:[],
{}
internalType:"bool",
name:"",
type:"bool"
stateMutability:"view",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"token_",
type:"address"
{},
internalType:"uint256",
name:"tokenId_",
type:"uint256"
{},
internalType:"uint256",
name:"amount_",
type:"uint256"
{},
internalType:"string",
name:"receiver_",
type:"string"
{},
internalType:"string",
name:"network_",
type:"string"
{},
internalType:"bool",
name:"isWrapped_",
type:"bool"
{}
internalType:"uint16",
name:"referralId_",
type:"uint16"
name:"depositERC1155",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"token_",
type:"address"
{},
internalType:"uint256",
name:"amount_",
type:"uint256"
{},
internalType:"string",
name:"receiver_",
type:"string"
{},
internalType:"string",
name:"network_",
type:"string"
{},
internalType:"bool",
name:"isWrapped_",
type:"bool"
{}
internalType:"uint16",
name:"referralId_",
type:"uint16"
name:"depositERC20",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"token_",
type:"address"
{},
internalType:"uint256",
name:"tokenId_",
type:"uint256"
{},
internalType:"string",
name:"receiver_",
type:"string"
{},
internalType:"string",
name:"network_",
type:"string"
{},
internalType:"bool",
name:"isWrapped_",
type:"bool"
{}
internalType:"uint16",
name:"referralId_",
type:"uint16"
name:"depositERC721",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{},
internalType:"string",
name:"receiver_",
type:"string"
{},
internalType:"string",
name:"network_",
type:"string"
{}
internalType:"uint16",
name:"referralId_",
type:"uint16"
name:"depositNative",
outputs:[],
stateMutability:"payable",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"token_",
type:"address"
{},
internalType:"uint256",
name:"tokenId_",
type:"uint256"
{},
internalType:"uint256",
name:"amount_",
type:"uint256"
{},
internalType:"address",
name:"receiver_",
type:"address"
{},
internalType:"bytes32",
name:"txHash_",
type:"bytes32"
{},
internalType:"uint256",
name:"txNonce_",
type:"uint256"
{},
internalType:"uint256",
name:"chainId_",
type:"uint256"
{},
internalType:"string",
name:"tokenURI_",
type:"string"
{}
internalType:"bool",
name:"isWrapped_",
type:"bool"
name:"getERC1155SignHash",
outputs:[],
{}
internalType:"bytes32",
name:"",
type:"bytes32"
stateMutability:"pure",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"token_",
type:"address"
{},
internalType:"uint256",
name:"amount_",
type:"uint256"
{},
internalType:"address",
name:"receiver_",
type:"address"
{},
internalType:"bytes32",
name:"txHash_",
type:"bytes32"
{},
internalType:"uint256",
name:"txNonce_",
type:"uint256"
{},
internalType:"uint256",
name:"chainId_",
type:"uint256"
{}
internalType:"bool",
name:"isWrapped_",
type:"bool"
name:"getERC20SignHash",
outputs:[],
{}
internalType:"bytes32",
name:"",
type:"bytes32"
stateMutability:"pure",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"token_",
type:"address"
{},
internalType:"uint256",
name:"tokenId_",
type:"uint256"
{},
internalType:"address",
name:"receiver_",
type:"address"
{},
internalType:"bytes32",
name:"txHash_",
type:"bytes32"
{},
internalType:"uint256",
name:"txNonce_",
type:"uint256"
{},
internalType:"uint256",
name:"chainId_",
type:"uint256"
{},
internalType:"string",
name:"tokenURI_",
type:"string"
{}
internalType:"bool",
name:"isWrapped_",
type:"bool"
name:"getERC721SignHash",
outputs:[],
{}
internalType:"bytes32",
name:"",
type:"bytes32"
stateMutability:"pure",
type:"function"
{},
inputs:[],
{},
internalType:"uint256",
name:"amount_",
type:"uint256"
{},
internalType:"address",
name:"receiver_",
type:"address"
{},
internalType:"bytes32",
name:"txHash_",
type:"bytes32"
{},
internalType:"uint256",
name:"txNonce_",
type:"uint256"
{}
internalType:"uint256",
name:"chainId_",
type:"uint256"
name:"getNativeSignHash",
outputs:[],
{}
internalType:"bytes32",
name:"",
type:"bytes32"
stateMutability:"pure",
type:"function"
{},
inputs:[],
name:"getSigners",
outputs:[],
{}
internalType:"address[]",
name:"",
type:"address[]"
stateMutability:"view",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"",
type:"address"
{},
internalType:"address",
name:"",
type:"address"
{},
internalType:"uint256[]",
name:"",
type:"uint256[]"
{},
internalType:"uint256[]",
name:"",
type:"uint256[]"
{}
internalType:"bytes",
name:"",
type:"bytes"
name:"onERC1155BatchReceived",
outputs:[],
{}
internalType:"bytes4",
name:"",
type:"bytes4"
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"",
type:"address"
{},
internalType:"address",
name:"",
type:"address"
{},
internalType:"uint256",
name:"",
type:"uint256"
{},
internalType:"uint256",
name:"",
type:"uint256"
{}
internalType:"bytes",
name:"",
type:"bytes"
name:"onERC1155Received",
outputs:[],
{}
internalType:"bytes4",
name:"",
type:"bytes4"
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"",
type:"address"
{},
internalType:"address",
name:"",
type:"address"
{},
internalType:"uint256",
name:"",
type:"uint256"
{}
internalType:"bytes",
name:"",
type:"bytes"
name:"onERC721Received",
outputs:[],
{}
internalType:"bytes4",
name:"",
type:"bytes4"
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
name:"owner",
outputs:[],
{}
internalType:"address",
name:"",
type:"address"
stateMutability:"view",
type:"function"
{},
inputs:[],
name:"proxiableUUID",
outputs:[],
{}
internalType:"bytes32",
name:"",
type:"bytes32"
stateMutability:"view",
type:"function"
{},
inputs:[],
{}
internalType:"address[]",
name:"signers_",
type:"address[]"
name:"removeSigners",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
name:"renounceOwnership",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{}
internalType:"uint256",
name:"signaturesThreshold_",
type:"uint256"
name:"setSignaturesThreshold",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
name:"signaturesThreshold",
outputs:[],
{}
internalType:"uint256",
name:"",
type:"uint256"
stateMutability:"view",
type:"function"
{},
inputs:[],
{}
internalType:"bytes4",
name:"interfaceId",
type:"bytes4"
name:"supportsInterface",
outputs:[],
{}
internalType:"bool",
name:"",
type:"bool"
stateMutability:"view",
type:"function"
{},
inputs:[],
{}
internalType:"address",
name:"newOwner",
type:"address"
name:"transferOwnership",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{}
internalType:"address",
name:"newImplementation",
type:"address"
name:"upgradeTo",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"newImplementation",
type:"address"
{}
internalType:"bytes",
name:"data",
type:"bytes"
name:"upgradeToAndCall",
outputs:[],
stateMutability:"payable",
type:"function"
{},
inputs:[],
{}
internalType:"bytes32",
name:"",
type:"bytes32"
name:"usedHashes",
outputs:[],
{}
internalType:"bool",
name:"",
type:"bool"
stateMutability:"view",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"token_",
type:"address"
{},
internalType:"uint256",
name:"tokenId_",
type:"uint256"
{},
internalType:"uint256",
name:"amount_",
type:"uint256"
{},
internalType:"address",
name:"receiver_",
type:"address"
{},
internalType:"bytes32",
name:"txHash_",
type:"bytes32"
{},
internalType:"uint256",
name:"txNonce_",
type:"uint256"
{},
internalType:"string",
name:"tokenURI_",
type:"string"
{},
internalType:"bool",
name:"isWrapped_",
type:"bool"
{}
internalType:"bytes[]",
name:"signatures_",
type:"bytes[]"
name:"withdrawERC1155",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"token_",
type:"address"
{},
internalType:"uint256",
name:"amount_",
type:"uint256"
{},
internalType:"address",
name:"receiver_",
type:"address"
{},
internalType:"bytes32",
name:"txHash_",
type:"bytes32"
{},
internalType:"uint256",
name:"txNonce_",
type:"uint256"
{},
internalType:"bool",
name:"isWrapped_",
type:"bool"
{}
internalType:"bytes[]",
name:"signatures_",
type:"bytes[]"
name:"withdrawERC20",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{},
internalType:"address",
name:"token_",
type:"address"
{},
internalType:"uint256",
name:"tokenId_",
type:"uint256"
{},
internalType:"address",
name:"receiver_",
type:"address"
{},
internalType:"bytes32",
name:"txHash_",
type:"bytes32"
{},
internalType:"uint256",
name:"txNonce_",
type:"uint256"
{},
internalType:"string",
name:"tokenURI_",
type:"string"
{},
internalType:"bool",
name:"isWrapped_",
type:"bool"
{}
internalType:"bytes[]",
name:"signatures_",
type:"bytes[]"
name:"withdrawERC721",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{},
inputs:[],
{},
internalType:"uint256",
name:"amount_",
type:"uint256"
{},
internalType:"address",
name:"receiver_",
type:"address"
{},
internalType:"bytes32",
name:"txHash_",
type:"bytes32"
{},
internalType:"uint256",
name:"txNonce_",
type:"uint256"
{}
internalType:"bytes[]",
name:"signatures_",
type:"bytes[]"
name:"withdrawNative",
outputs:[],
stateMutability:"nonpayable",
type:"function"
{}
stateMutability:"payable",
type:"receive"
Contract creation code
"0x60a06040523060805234801561001457600080fd5b50608051613dc161004c600039600081816107a6015281816107e601528181610886015281816108c601526109590152613dc16000f3fe6080604052600436106101e75760003560e01c80638da5cb5b11610102578063b3953d4411610095578063bf1fe08f11610064578063bf1fe08f146105a8578063e8906a2d146105c8578063f23a6e61146105e8578063f2fde38b1461061457600080fd5b8063b3953d441461051c578063b427d67c1461053c578063bc197c811461055c578063be6f93d41461058857600080fd5b806394cf795e116100d157806394cf795e1461048a578063aaba091e146104ac578063aef18bf7146104cc578063af94570d146104fc57600080fd5b80638da5cb5b1461040f57806390946c6e1461043757806390e208ee1461045757806394995fc41461046a57600080fd5b80634f1ef2861161017a578063715018a611610149578063715018a61461039a5780637eb9d447146103af5780638338fcd8146103cf5780638d361e43146103ef57600080fd5b80634f1ef2861461033257806352d1902d146103455780635bd5429d1461035a5780635fe277561461037a57600080fd5b80631c3d9c87116101b65780631c3d9c87146102ae578063337e03a9146102ce5780633659cfe6146102fc57806339ce73c71461031c57600080fd5b806301ffc9a7146101f35780630430285a1461022857806309a5584114610248578063150b7a021461026a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004612b59565b610634565b60405190151581526020015b60405180910390f35b34801561023457600080fd5b50610213610243366004612b83565b61066b565b34801561025457600080fd5b50610268610263366004612be9565b6106ba565b005b34801561027657600080fd5b50610295610285366004612d00565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200161021f565b3480156102ba57600080fd5b506102686102c9366004612d67565b61070a565b3480156102da57600080fd5b506102ee6102e9366004612dd7565b610743565b60405190815260200161021f565b34801561030857600080fd5b50610268610317366004612e1d565b61079b565b34801561032857600080fd5b506102ee60655481565b610268610340366004612e38565b61087b565b34801561035157600080fd5b506102ee61094c565b34801561036657600080fd5b50610268610375366004612b83565b6109ff565b34801561038657600080fd5b50610268610395366004612ee6565b610a33565b3480156103a657600080fd5b50610268610c04565b3480156103bb57600080fd5b506102686103ca366004612f9a565b610c3a565b3480156103db57600080fd5b506102686103ea366004612be9565b610c7f565b3480156103fb57600080fd5b5061026861040a36600461305f565b610cfa565b34801561041b57600080fd5b506033546040516001600160a01b03909116815260200161021f565b34801561044357600080fd5b506102686104523660046130a0565b610d74565b61026861046536600461314b565b610ee9565b34801561047657600080fd5b506102686104853660046131cb565b610f81565b34801561049657600080fd5b5061049f610fc0565b60405161021f919061325e565b3480156104b857600080fd5b506102ee6104c73660046132ab565b610fd1565b3480156104d857600080fd5b506102136104e7366004613319565b60686020526000908152604090205460ff1681565b34801561050857600080fd5b506102ee610517366004613332565b61103f565b34801561052857600080fd5b506102686105373660046133d0565b611087565b34801561054857600080fd5b506102ee6105573660046134a5565b6110cf565b34801561056857600080fd5b506102956105773660046135c2565b63bc197c8160e01b95945050505050565b34801561059457600080fd5b506102686105a33660046130a0565b61111a565b3480156105b457600080fd5b506102686105c3366004613319565b611279565b3480156105d457600080fd5b506102686105e336600461305f565b6112f8565b3480156105f457600080fd5b5061029561060336600461366b565b63f23a6e6160e01b95945050505050565b34801561062057600080fd5b5061026861062f366004612e1d565b6113e9565b60006001600160e01b03198216630271189760e51b148061066557506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080838360405160200161068a929190918252602082015260400190565b60408051808303601f1901815291815281516020928301206000908152606890925290205460ff16949350505050565b600054610100900460ff166106ea5760405162461bcd60e51b81526004016106e1906136cf565b60405180910390fd5b6106f2611481565b6106fc83836112f8565b61070581611279565b505050565b60006107198787878746610743565b905061072585856114b0565b610730818484611556565b61073a878761165a565b50505050505050565b6040805160208082019790975260609590951b6bffffffffffffffffffffffff191685820152605485019390935260748401919091526094808401919091528151808403909101815260b49092019052805191012090565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156107e45760405162461bcd60e51b81526004016106e19061371a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661082d600080516020613d45833981519152546001600160a01b031690565b6001600160a01b0316146108535760405162461bcd60e51b81526004016106e190613766565b61085c816117a3565b60408051600080825260208201909252610878918391906117cd565b50565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156108c45760405162461bcd60e51b81526004016106e19061371a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661090d600080516020613d45833981519152546001600160a01b031690565b6001600160a01b0316146109335760405162461bcd60e51b81526004016106e190613766565b61093c826117a3565b610948828260016117cd565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109ec5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016106e1565b50600080516020613d4583398151915290565b6033546001600160a01b03163314610a295760405162461bcd60e51b81526004016106e1906137b2565b61094882826114b0565b6001600160a01b038916610a895760405162461bcd60e51b815260206004820152601a60248201527f4552433131353548616e646c65723a207a65726f20746f6b656e00000000000060448201526064016106e1565b60008711610ad95760405162461bcd60e51b815260206004820152601e60248201527f4552433131353548616e646c65723a20616d6f756e74206973207a65726f000060448201526064016106e1565b888215610b4c5760405163124d91e560e01b8152336004820152602481018a9052604481018990526001600160a01b0382169063124d91e590606401600060405180830381600087803b158015610b2f57600080fd5b505af1158015610b43573d6000803e3d6000fd5b50505050610bb1565b604051637921219560e11b81526001600160a01b0382169063f242432a90610b7e90339030908e908e906004016137e7565b600060405180830381600087803b158015610b9857600080fd5b505af1158015610bac573d6000803e3d6000fd5b505050505b7f6f2f9c82f8808cf5cb4332789c02c0c95fad4f7586899cc1bc426f254debf1658a8a8a8a8a8a8a8a8a604051610bf099989796959493929190613848565b60405180910390a150505050505050505050565b6033546001600160a01b03163314610c2e5760405162461bcd60e51b81526004016106e1906137b2565b610c386000611947565b565b6000610c4d8b8b8b8b8b468c8c8c61103f565b9050610c5988886114b0565b610c64818484611556565b610c728b8b8b898989611999565b5050505050505050505050565b6000610c8b6001611b15565b90508015610ca3576000805461ff0019166101001790555b610cae8484846106ba565b8015610cf4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6033546001600160a01b03163314610d245760405162461bcd60e51b81526004016106e1906137b2565b60005b8181101561070557610d61838383818110610d4457610d446138ab565b9050602002016020810190610d599190612e1d565b606690611ba2565b5080610d6c816138d7565b915050610d27565b6001600160a01b038816610dc65760405162461bcd60e51b815260206004820152601960248201527822a9219b9918a430b7323632b91d103d32b937903a37b5b2b760391b60448201526064016106e1565b878215610e325760405163079cc67960e41b8152336004820152602481018990526001600160a01b038216906379cc679090604401600060405180830381600087803b158015610e1557600080fd5b505af1158015610e29573d6000803e3d6000fd5b50505050610e99565b604051632142170760e11b8152336004820152306024820152604481018990526001600160a01b038216906342842e0e90606401600060405180830381600087803b158015610e8057600080fd5b505af1158015610e94573d6000803e3d6000fd5b505050505b7f5a035a04c3f86dbf0cfe44e37374a1c7d8ad9d3b2542a39acaab6e3cb18e97388989898989898989604051610ed69897969594939291906138f2565b60405180910390a1505050505050505050565b60003411610f395760405162461bcd60e51b815260206004820152601960248201527f4e617469766548616e646c65723a207a65726f2076616c75650000000000000060448201526064016106e1565b7f618bd7f3201fe12a7051eb9e8f45ac82a6648b19a07a79c9189ac480546e68c1348686868686604051610f729695949392919061394e565b60405180910390a15050505050565b6000610f928989898989468a610fd1565b9050610f9e86866114b0565b610fa9818484611556565b610fb589898987611bbe565b505050505050505050565b6060610fcc6066611d3e565b905090565b604080516bffffffffffffffffffffffff196060998a1b811660208084019190915260348301999099529690981b90951660548801526068870193909352608886019190915260a8850152151560f81b60c8840152805180840360a901815260c99093019052815191012090565b600089898989898989898960405160200161106299989796959493929190613993565b6040516020818303038152906040528051906020012090509998505050505050505050565b600061109b8c8c8c8c8c8c468d8d8d6110cf565b90506110a788886114b0565b6110b2818484611556565b6110c18c8c8c8c8a8a8a611d4b565b505050505050505050505050565b60008a8a8a8a8a8a8a8a8a8a6040516020016110f49a999897969594939291906139f5565b6040516020818303038152906040528051906020012090509a9950505050505050505050565b6001600160a01b03881661116b5760405162461bcd60e51b815260206004820152601860248201527722a92199182430b7323632b91d103d32b937903a37b5b2b760411b60448201526064016106e1565b600087116111bb5760405162461bcd60e51b815260206004820152601c60248201527f455243323048616e646c65723a20616d6f756e74206973207a65726f0000000060448201526064016106e1565b8782156112275760405163079cc67960e41b8152336004820152602481018990526001600160a01b038216906379cc679090604401600060405180830381600087803b15801561120a57600080fd5b505af115801561121e573d6000803e3d6000fd5b5050505061123c565b61123c6001600160a01b03821633308b611f23565b7ffc11ca985085252b65dba84249af6977f9d4cb2acc79ee95fff01985d1b562758989898989898989604051610ed69897969594939291906138f2565b6033546001600160a01b031633146112a35760405162461bcd60e51b81526004016106e1906137b2565b600081116112f35760405162461bcd60e51b815260206004820152601a60248201527f5369676e6572733a20696e76616c6964207468726573686f6c6400000000000060448201526064016106e1565b606555565b6033546001600160a01b031633146113225760405162461bcd60e51b81526004016106e1906137b2565b60005b81811015610705576000838383818110611341576113416138ab565b90506020020160208101906113569190612e1d565b6001600160a01b031614156113a45760405162461bcd60e51b815260206004820152601460248201527329b4b3b732b9399d103d32b9379039b4b3b732b960611b60448201526064016106e1565b6113d68383838181106113b9576113b96138ab565b90506020020160208101906113ce9190612e1d565b606690611f8e565b50806113e1816138d7565b915050611325565b6033546001600160a01b031633146114135760405162461bcd60e51b81526004016106e1906137b2565b6001600160a01b0381166114785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e1565b61087881611947565b600054610100900460ff166114a85760405162461bcd60e51b81526004016106e1906136cf565b610c38611fa3565b60408051602080820185905281830184905282518083038401815260609092018352815191810191909120600081815260689092529190205460ff16156115395760405162461bcd60e51b815260206004820152601e60248201527f4861736865733a207468652068617368206e6f6e63652069732075736564000060448201526064016106e1565b6000908152606860205260409020805460ff191660011790555050565b6000816001600160401b0381111561157057611570612c4b565b604051908082528060200260200182016040528015611599578160200160208202803683370190505b50905060005b82811015611650576116148484838181106115bc576115bc6138ab565b90506020028101906115ce9190613a5e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061160e9250899150611fd39050565b90612026565b828281518110611626576116266138ab565b6001600160a01b039092166020928302919091019091015280611648816138d7565b91505061159f565b50610cf48161204a565b600082116116aa5760405162461bcd60e51b815260206004820152601d60248201527f4e617469766548616e646c65723a20616d6f756e74206973207a65726f00000060448201526064016106e1565b6001600160a01b0381166117005760405162461bcd60e51b815260206004820152601f60248201527f4e617469766548616e646c65723a207265636569766572206973207a65726f0060448201526064016106e1565b6000816001600160a01b03168360405160006040518083038185875af1925050503d806000811461174d576040519150601f19603f3d011682016040523d82523d6000602084013e611752565b606091505b50509050806107055760405162461bcd60e51b815260206004820152601d60248201527f4e617469766548616e646c65723a2063616e27742073656e642065746800000060448201526064016106e1565b6033546001600160a01b031633146108785760405162461bcd60e51b81526004016106e1906137b2565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561180057610705836121c2565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561183957600080fd5b505afa925050508015611869575060408051601f3d908101601f1916820190925261186691810190613aa4565b60015b6118cc5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016106e1565b600080516020613d45833981519152811461193b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016106e1565b5061070583838361225e565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0386166119eb5760405162461bcd60e51b815260206004820152601960248201527822a9219b9918a430b7323632b91d103d32b937903a37b5b2b760391b60448201526064016106e1565b6001600160a01b038416611a415760405162461bcd60e51b815260206004820152601c60248201527f45524337323148616e646c65723a207a65726f2072656365697665720000000060448201526064016106e1565b858115611ab157604051639f6ed25f60e01b81526001600160a01b03821690639f6ed25f90611a7a9088908a9089908990600401613abd565b600060405180830381600087803b158015611a9457600080fd5b505af1158015611aa8573d6000803e3d6000fd5b5050505061073a565b604051632142170760e11b81523060048201526001600160a01b038681166024830152604482018890528216906342842e0e90606401600060405180830381600087803b158015611b0157600080fd5b505af1158015610c72573d6000803e3d6000fd5b60008054610100900460ff1615611b5c578160ff166001148015611b385750303b155b611b545760405162461bcd60e51b81526004016106e190613ae5565b506000919050565b60005460ff808416911610611b835760405162461bcd60e51b81526004016106e190613ae5565b506000805460ff191660ff92909216919091179055600190565b919050565b6000611bb7836001600160a01b038416612283565b9392505050565b6001600160a01b038416611c0f5760405162461bcd60e51b815260206004820152601860248201527722a92199182430b7323632b91d103d32b937903a37b5b2b760411b60448201526064016106e1565b60008311611c5f5760405162461bcd60e51b815260206004820152601c60248201527f455243323048616e646c65723a20616d6f756e74206973207a65726f0000000060448201526064016106e1565b6001600160a01b038216611cb55760405162461bcd60e51b815260206004820152601b60248201527f455243323048616e646c65723a207a65726f207265636569766572000000000060448201526064016106e1565b838115611d23576040516308934a5f60e31b81526001600160a01b0384811660048301526024820186905282169063449a52f890604401600060405180830381600087803b158015611d0657600080fd5b505af1158015611d1a573d6000803e3d6000fd5b50505050611d37565b611d376001600160a01b0382168486612376565b5050505050565b60606000611bb7836123a6565b6001600160a01b038716611da15760405162461bcd60e51b815260206004820152601a60248201527f4552433131353548616e646c65723a207a65726f20746f6b656e00000000000060448201526064016106e1565b6001600160a01b038416611df75760405162461bcd60e51b815260206004820152601d60248201527f4552433131353548616e646c65723a207a65726f20726563656976657200000060448201526064016106e1565b60008511611e475760405162461bcd60e51b815260206004820152601e60248201527f4552433131353548616e646c65723a20616d6f756e74206973207a65726f000060448201526064016106e1565b868115611eb957604051633dbd5b2560e01b81526001600160a01b03821690633dbd5b2590611e829088908b908b908a908a90600401613b33565b600060405180830381600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b50505050611f19565b604051637921219560e11b81526001600160a01b0382169063f242432a90611eeb90309089908c908c906004016137e7565b600060405180830381600087803b158015611f0557600080fd5b505af11580156110c1573d6000803e3d6000fd5b5050505050505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610cf49085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612402565b6000611bb7836001600160a01b0384166124d4565b600054610100900460ff16611fca5760405162461bcd60e51b81526004016106e1906136cf565b610c3833611947565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b60008060006120358585612523565b9150915061204281612593565b509392505050565b6000805b825181101561216e5761208483828151811061206c5761206c6138ab565b6020026020010151606661274e90919063ffffffff16565b6120d05760405162461bcd60e51b815260206004820152601760248201527f5369676e6572733a20696e76616c6964207369676e657200000000000000000060448201526064016106e1565b600060988483815181106120e6576120e66138ab565b60200260200101516001600160a01b0316901c60026121059190613c45565b9050828116156121575760405162461bcd60e51b815260206004820152601a60248201527f5369676e6572733a206475706c6963617465207369676e65727300000000000060448201526064016106e1565b919091179080612166816138d7565b91505061204e565b50606554825110156109485760405162461bcd60e51b815260206004820152601d60248201527f5369676e6572733a207468726573686f6c64206973206e6f74206d657400000060448201526064016106e1565b6001600160a01b0381163b61222f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016106e1565b600080516020613d4583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61226783612770565b6000825111806122745750805b1561070557610cf483836127b0565b6000818152600183016020526040812054801561236c5760006122a7600183613c51565b85549091506000906122bb90600190613c51565b90508181146123205760008660000182815481106122db576122db6138ab565b90600052602060002001549050808760000184815481106122fe576122fe6138ab565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061233157612331613c68565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610665565b6000915050610665565b6040516001600160a01b03831660248201526044810182905261070590849063a9059cbb60e01b90606401611f57565b6060816000018054806020026020016040519081016040528092919081815260200182805480156123f657602002820191906000526020600020905b8154815260200190600101908083116123e2575b50505050509050919050565b6000612457826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127d59092919063ffffffff16565b80519091501561070557808060200190518101906124759190613c7e565b6107055760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106e1565b600081815260018301602052604081205461251b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610665565b506000610665565b60008082516041141561255a5760208301516040840151606085015160001a61254e878285856127ec565b9450945050505061258c565b82516040141561258457602083015160408401516125798683836128d9565b93509350505061258c565b506000905060025b9250929050565b60008160048111156125a7576125a7613c9b565b14156125b05750565b60018160048111156125c4576125c4613c9b565b14156126125760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106e1565b600281600481111561262657612626613c9b565b14156126745760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106e1565b600381600481111561268857612688613c9b565b14156126e15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106e1565b60048160048111156126f5576126f5613c9b565b14156108785760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016106e1565b6001600160a01b03811660009081526001830160205260408120541515611bb7565b612779816121c2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611bb78383604051806060016040528060278152602001613d6560279139612912565b60606127e484846000856129ef565b949350505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561282357506000905060036128d0565b8460ff16601b1415801561283b57508460ff16601c14155b1561284c57506000905060046128d0565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156128a0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166128c9576000600192509250506128d0565b9150600090505b94509492505050565b6000806001600160ff1b038316816128f660ff86901c601b613cb1565b9050612904878288856127ec565b935093505050935093915050565b60606001600160a01b0384163b61297a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016106e1565b600080856001600160a01b0316856040516129959190613cf5565b600060405180830381855af49150503d80600081146129d0576040519150601f19603f3d011682016040523d82523d6000602084013e6129d5565b606091505b50915091506129e5828286612b20565b9695505050505050565b606082471015612a505760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106e1565b6001600160a01b0385163b612aa75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106e1565b600080866001600160a01b03168587604051612ac39190613cf5565b60006040518083038185875af1925050503d8060008114612b00576040519150601f19603f3d011682016040523d82523d6000602084013e612b05565b606091505b5091509150612b15828286612b20565b979650505050505050565b60608315612b2f575081611bb7565b825115612b3f5782518084602001fd5b8160405162461bcd60e51b81526004016106e19190613d11565b600060208284031215612b6b57600080fd5b81356001600160e01b031981168114611bb757600080fd5b60008060408385031215612b9657600080fd5b50508035926020909101359150565b60008083601f840112612bb757600080fd5b5081356001600160401b03811115612bce57600080fd5b6020830191508360208260051b850101111561258c57600080fd5b600080600060408486031215612bfe57600080fd5b83356001600160401b03811115612c1457600080fd5b612c2086828701612ba5565b909790965060209590950135949350505050565b80356001600160a01b0381168114611b9d57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612c8957612c89612c4b565b604052919050565b600082601f830112612ca257600080fd5b81356001600160401b03811115612cbb57612cbb612c4b565b612cce601f8201601f1916602001612c61565b818152846020838601011115612ce357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612d1657600080fd5b612d1f85612c34565b9350612d2d60208601612c34565b92506040850135915060608501356001600160401b03811115612d4f57600080fd5b612d5b87828801612c91565b91505092959194509250565b60008060008060008060a08789031215612d8057600080fd5b86359550612d9060208801612c34565b9450604087013593506060870135925060808701356001600160401b03811115612db957600080fd5b612dc589828a01612ba5565b979a9699509497509295939492505050565b600080600080600060a08688031215612def57600080fd5b85359450612dff60208701612c34565b94979496505050506040830135926060810135926080909101359150565b600060208284031215612e2f57600080fd5b611bb782612c34565b60008060408385031215612e4b57600080fd5b612e5483612c34565b915060208301356001600160401b03811115612e6f57600080fd5b612e7b85828601612c91565b9150509250929050565b60008083601f840112612e9757600080fd5b5081356001600160401b03811115612eae57600080fd5b60208301915083602082850101111561258c57600080fd5b801515811461087857600080fd5b803561ffff81168114611b9d57600080fd5b600080600080600080600080600060e08a8c031215612f0457600080fd5b612f0d8a612c34565b985060208a0135975060408a0135965060608a01356001600160401b0380821115612f3757600080fd5b612f438d838e01612e85565b909850965060808c0135915080821115612f5c57600080fd5b50612f698c828d01612e85565b90955093505060a08a0135612f7d81612ec6565b9150612f8b60c08b01612ed4565b90509295985092959850929598565b6000806000806000806000806000806101008b8d031215612fba57600080fd5b612fc38b612c34565b995060208b01359850612fd860408c01612c34565b975060608b0135965060808b0135955060a08b01356001600160401b038082111561300257600080fd5b61300e8e838f01612e85565b909750955060c08d0135915061302382612ec6565b90935060e08c0135908082111561303957600080fd5b506130468d828e01612ba5565b915080935050809150509295989b9194979a5092959850565b6000806020838503121561307257600080fd5b82356001600160401b0381111561308857600080fd5b61309485828601612ba5565b90969095509350505050565b60008060008060008060008060c0898b0312156130bc57600080fd5b6130c589612c34565b97506020890135965060408901356001600160401b03808211156130e857600080fd5b6130f48c838d01612e85565b909850965060608b013591508082111561310d57600080fd5b5061311a8b828c01612e85565b909550935050608089013561312e81612ec6565b915061313c60a08a01612ed4565b90509295985092959890939650565b60008060008060006060868803121561316357600080fd5b85356001600160401b038082111561317a57600080fd5b61318689838a01612e85565b9097509550602088013591508082111561319f57600080fd5b506131ac88828901612e85565b90945092506131bf905060408701612ed4565b90509295509295909350565b60008060008060008060008060e0898b0312156131e757600080fd5b6131f089612c34565b97506020890135965061320560408a01612c34565b9550606089013594506080890135935060a089013561322381612ec6565b925060c08901356001600160401b0381111561323e57600080fd5b61324a8b828c01612ba5565b999c989b5096995094979396929594505050565b6020808252825182820181905260009190848201906040850190845b8181101561329f5783516001600160a01b03168352928401929184019160010161327a565b50909695505050505050565b600080600080600080600060e0888a0312156132c657600080fd5b6132cf88612c34565b9650602088013595506132e460408901612c34565b9450606088013593506080880135925060a0880135915060c088013561330981612ec6565b8091505092959891949750929550565b60006020828403121561332b57600080fd5b5035919050565b60008060008060008060008060006101008a8c03121561335157600080fd5b61335a8a612c34565b985060208a0135975061336f60408b01612c34565b965060608a0135955060808a0135945060a08a0135935060c08a01356001600160401b0381111561339f57600080fd5b6133ab8c828d01612e85565b90945092505060e08a01356133bf81612ec6565b809150509295985092959850929598565b60008060008060008060008060008060006101208c8e0312156133f257600080fd5b6133fb8c612c34565b9a5060208c0135995060408c0135985061341760608d01612c34565b975060808c0135965060a08c013595506001600160401b038060c08e0135111561344057600080fd5b6134508e60c08f01358f01612e85565b909650945061346260e08e0135612ec6565b60e08d01359350806101008e0135111561347b57600080fd5b5061348d8d6101008e01358e01612ba5565b81935080925050509295989b509295989b9093969950565b6000806000806000806000806000806101208b8d0312156134c557600080fd5b6134ce8b612c34565b995060208b0135985060408b013597506134ea60608c01612c34565b965060808b0135955060a08b0135945060c08b0135935060e08b01356001600160401b0381111561351a57600080fd5b6135268d828e01612e85565b9094509250506101008b013561353b81612ec6565b809150509295989b9194979a5092959850565b600082601f83011261355f57600080fd5b813560206001600160401b0382111561357a5761357a612c4b565b8160051b613589828201612c61565b92835284810182019282810190878511156135a357600080fd5b83870192505b84831015612b15578235825291830191908301906135a9565b600080600080600060a086880312156135da57600080fd5b6135e386612c34565b94506135f160208701612c34565b935060408601356001600160401b038082111561360d57600080fd5b61361989838a0161354e565b9450606088013591508082111561362f57600080fd5b61363b89838a0161354e565b9350608088013591508082111561365157600080fd5b5061365e88828901612c91565b9150509295509295909350565b600080600080600060a0868803121561368357600080fd5b61368c86612c34565b945061369a60208701612c34565b9350604086013592506060860135915060808601356001600160401b038111156136c357600080fd5b61365e88828901612c91565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038a16815288602082015287604082015260e06060820152600061387660e08301888a61381f565b828103608084015261388981878961381f565b94151560a0840152505061ffff9190911660c090910152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156138eb576138eb6138c1565b5060010190565b60018060a01b038916815287602082015260c06040820152600061391a60c08301888a61381f565b828103606084015261392d81878961381f565b9415156080840152505061ffff9190911660a0909101529695505050505050565b86815260806020820152600061396860808301878961381f565b828103604084015261397b81868861381f565b91505061ffff83166060830152979650505050505050565b60006bffffffffffffffffffffffff19808c60601b1683528a6014840152808a60601b16603484015250876048830152866068830152856088830152838560a88401375090151560f81b910160a881019190915260a901979650505050505050565b60006bffffffffffffffffffffffff19808d60601b1683528b60148401528a6034840152808a60601b166054840152508760688301528660888301528560a8830152838560c88401375090151560f81b910160c881019190915260c90198975050505050505050565b6000808335601e19843603018112613a7557600080fd5b8301803591506001600160401b03821115613a8f57600080fd5b60200191503681900382131561258c57600080fd5b600060208284031215613ab657600080fd5b5051919050565b60018060a01b03851681528360208201526060604082015260006129e560608301848661381f565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60018060a01b0386168152846020820152836040820152608060608201526000612b1560808301848661381f565b600181815b80851115613b9c578160001904821115613b8257613b826138c1565b80851615613b8f57918102915b93841c9390800290613b66565b509250929050565b600082613bb357506001610665565b81613bc057506000610665565b8160018114613bd65760028114613be057613bfc565b6001915050610665565b60ff841115613bf157613bf16138c1565b50506001821b610665565b5060208310610133831016604e8410600b8410161715613c1f575081810a610665565b613c298383613b61565b8060001904821115613c3d57613c3d6138c1565b029392505050565b6000611bb78383613ba4565b600082821015613c6357613c636138c1565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613c9057600080fd5b8151611bb781612ec6565b634e487b7160e01b600052602160045260246000fd5b60008219821115613cc457613cc46138c1565b500190565b60005b83811015613ce4578181015183820152602001613ccc565b83811115610cf45750506000910152565b60008251613d07818460208701613cc9565b9190910192915050565b6020815260008251806020840152613d30816040850160208701613cc9565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207759de0aa8e40c61d23375e6ca6dd1ee308ebf35f6f530ed9ff4b61e664469e264736f6c63430008090033"
Deployed ByteCode
"0x6080604052600436106101e75760003560e01c80638da5cb5b11610102578063b3953d4411610095578063bf1fe08f11610064578063bf1fe08f146105a8578063e8906a2d146105c8578063f23a6e61146105e8578063f2fde38b1461061457600080fd5b8063b3953d441461051c578063b427d67c1461053c578063bc197c811461055c578063be6f93d41461058857600080fd5b806394cf795e116100d157806394cf795e1461048a578063aaba091e146104ac578063aef18bf7146104cc578063af94570d146104fc57600080fd5b80638da5cb5b1461040f57806390946c6e1461043757806390e208ee1461045757806394995fc41461046a57600080fd5b80634f1ef2861161017a578063715018a611610149578063715018a61461039a5780637eb9d447146103af5780638338fcd8146103cf5780638d361e43146103ef57600080fd5b80634f1ef2861461033257806352d1902d146103455780635bd5429d1461035a5780635fe277561461037a57600080fd5b80631c3d9c87116101b65780631c3d9c87146102ae578063337e03a9146102ce5780633659cfe6146102fc57806339ce73c71461031c57600080fd5b806301ffc9a7146101f35780630430285a1461022857806309a5584114610248578063150b7a021461026a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004612b59565b610634565b60405190151581526020015b60405180910390f35b34801561023457600080fd5b50610213610243366004612b83565b61066b565b34801561025457600080fd5b50610268610263366004612be9565b6106ba565b005b34801561027657600080fd5b50610295610285366004612d00565b630a85bd0160e11b949350505050565b6040516001600160e01b0319909116815260200161021f565b3480156102ba57600080fd5b506102686102c9366004612d67565b61070a565b3480156102da57600080fd5b506102ee6102e9366004612dd7565b610743565b60405190815260200161021f565b34801561030857600080fd5b50610268610317366004612e1d565b61079b565b34801561032857600080fd5b506102ee60655481565b610268610340366004612e38565b61087b565b34801561035157600080fd5b506102ee61094c565b34801561036657600080fd5b50610268610375366004612b83565b6109ff565b34801561038657600080fd5b50610268610395366004612ee6565b610a33565b3480156103a657600080fd5b50610268610c04565b3480156103bb57600080fd5b506102686103ca366004612f9a565b610c3a565b3480156103db57600080fd5b506102686103ea366004612be9565b610c7f565b3480156103fb57600080fd5b5061026861040a36600461305f565b610cfa565b34801561041b57600080fd5b506033546040516001600160a01b03909116815260200161021f565b34801561044357600080fd5b506102686104523660046130a0565b610d74565b61026861046536600461314b565b610ee9565b34801561047657600080fd5b506102686104853660046131cb565b610f81565b34801561049657600080fd5b5061049f610fc0565b60405161021f919061325e565b3480156104b857600080fd5b506102ee6104c73660046132ab565b610fd1565b3480156104d857600080fd5b506102136104e7366004613319565b60686020526000908152604090205460ff1681565b34801561050857600080fd5b506102ee610517366004613332565b61103f565b34801561052857600080fd5b506102686105373660046133d0565b611087565b34801561054857600080fd5b506102ee6105573660046134a5565b6110cf565b34801561056857600080fd5b506102956105773660046135c2565b63bc197c8160e01b95945050505050565b34801561059457600080fd5b506102686105a33660046130a0565b61111a565b3480156105b457600080fd5b506102686105c3366004613319565b611279565b3480156105d457600080fd5b506102686105e336600461305f565b6112f8565b3480156105f457600080fd5b5061029561060336600461366b565b63f23a6e6160e01b95945050505050565b34801561062057600080fd5b5061026861062f366004612e1d565b6113e9565b60006001600160e01b03198216630271189760e51b148061066557506301ffc9a760e01b6001600160e01b03198316145b92915050565b600080838360405160200161068a929190918252602082015260400190565b60408051808303601f1901815291815281516020928301206000908152606890925290205460ff16949350505050565b600054610100900460ff166106ea5760405162461bcd60e51b81526004016106e1906136cf565b60405180910390fd5b6106f2611481565b6106fc83836112f8565b61070581611279565b505050565b60006107198787878746610743565b905061072585856114b0565b610730818484611556565b61073a878761165a565b50505050505050565b6040805160208082019790975260609590951b6bffffffffffffffffffffffff191685820152605485019390935260748401919091526094808401919091528151808403909101815260b49092019052805191012090565b306001600160a01b037f000000000000000000000000a13d6017be8dca023822db4749f0321e8a20595e1614156107e45760405162461bcd60e51b81526004016106e19061371a565b7f000000000000000000000000a13d6017be8dca023822db4749f0321e8a20595e6001600160a01b031661082d600080516020613d45833981519152546001600160a01b031690565b6001600160a01b0316146108535760405162461bcd60e51b81526004016106e190613766565b61085c816117a3565b60408051600080825260208201909252610878918391906117cd565b50565b306001600160a01b037f000000000000000000000000a13d6017be8dca023822db4749f0321e8a20595e1614156108c45760405162461bcd60e51b81526004016106e19061371a565b7f000000000000000000000000a13d6017be8dca023822db4749f0321e8a20595e6001600160a01b031661090d600080516020613d45833981519152546001600160a01b031690565b6001600160a01b0316146109335760405162461bcd60e51b81526004016106e190613766565b61093c826117a3565b610948828260016117cd565b5050565b6000306001600160a01b037f000000000000000000000000a13d6017be8dca023822db4749f0321e8a20595e16146109ec5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016106e1565b50600080516020613d4583398151915290565b6033546001600160a01b03163314610a295760405162461bcd60e51b81526004016106e1906137b2565b61094882826114b0565b6001600160a01b038916610a895760405162461bcd60e51b815260206004820152601a60248201527f4552433131353548616e646c65723a207a65726f20746f6b656e00000000000060448201526064016106e1565b60008711610ad95760405162461bcd60e51b815260206004820152601e60248201527f4552433131353548616e646c65723a20616d6f756e74206973207a65726f000060448201526064016106e1565b888215610b4c5760405163124d91e560e01b8152336004820152602481018a9052604481018990526001600160a01b0382169063124d91e590606401600060405180830381600087803b158015610b2f57600080fd5b505af1158015610b43573d6000803e3d6000fd5b50505050610bb1565b604051637921219560e11b81526001600160a01b0382169063f242432a90610b7e90339030908e908e906004016137e7565b600060405180830381600087803b158015610b9857600080fd5b505af1158015610bac573d6000803e3d6000fd5b505050505b7f6f2f9c82f8808cf5cb4332789c02c0c95fad4f7586899cc1bc426f254debf1658a8a8a8a8a8a8a8a8a604051610bf099989796959493929190613848565b60405180910390a150505050505050505050565b6033546001600160a01b03163314610c2e5760405162461bcd60e51b81526004016106e1906137b2565b610c386000611947565b565b6000610c4d8b8b8b8b8b468c8c8c61103f565b9050610c5988886114b0565b610c64818484611556565b610c728b8b8b898989611999565b5050505050505050505050565b6000610c8b6001611b15565b90508015610ca3576000805461ff0019166101001790555b610cae8484846106ba565b8015610cf4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b6033546001600160a01b03163314610d245760405162461bcd60e51b81526004016106e1906137b2565b60005b8181101561070557610d61838383818110610d4457610d446138ab565b9050602002016020810190610d599190612e1d565b606690611ba2565b5080610d6c816138d7565b915050610d27565b6001600160a01b038816610dc65760405162461bcd60e51b815260206004820152601960248201527822a9219b9918a430b7323632b91d103d32b937903a37b5b2b760391b60448201526064016106e1565b878215610e325760405163079cc67960e41b8152336004820152602481018990526001600160a01b038216906379cc679090604401600060405180830381600087803b158015610e1557600080fd5b505af1158015610e29573d6000803e3d6000fd5b50505050610e99565b604051632142170760e11b8152336004820152306024820152604481018990526001600160a01b038216906342842e0e90606401600060405180830381600087803b158015610e8057600080fd5b505af1158015610e94573d6000803e3d6000fd5b505050505b7f5a035a04c3f86dbf0cfe44e37374a1c7d8ad9d3b2542a39acaab6e3cb18e97388989898989898989604051610ed69897969594939291906138f2565b60405180910390a1505050505050505050565b60003411610f395760405162461bcd60e51b815260206004820152601960248201527f4e617469766548616e646c65723a207a65726f2076616c75650000000000000060448201526064016106e1565b7f618bd7f3201fe12a7051eb9e8f45ac82a6648b19a07a79c9189ac480546e68c1348686868686604051610f729695949392919061394e565b60405180910390a15050505050565b6000610f928989898989468a610fd1565b9050610f9e86866114b0565b610fa9818484611556565b610fb589898987611bbe565b505050505050505050565b6060610fcc6066611d3e565b905090565b604080516bffffffffffffffffffffffff196060998a1b811660208084019190915260348301999099529690981b90951660548801526068870193909352608886019190915260a8850152151560f81b60c8840152805180840360a901815260c99093019052815191012090565b600089898989898989898960405160200161106299989796959493929190613993565b6040516020818303038152906040528051906020012090509998505050505050505050565b600061109b8c8c8c8c8c8c468d8d8d6110cf565b90506110a788886114b0565b6110b2818484611556565b6110c18c8c8c8c8a8a8a611d4b565b505050505050505050505050565b60008a8a8a8a8a8a8a8a8a8a6040516020016110f49a999897969594939291906139f5565b6040516020818303038152906040528051906020012090509a9950505050505050505050565b6001600160a01b03881661116b5760405162461bcd60e51b815260206004820152601860248201527722a92199182430b7323632b91d103d32b937903a37b5b2b760411b60448201526064016106e1565b600087116111bb5760405162461bcd60e51b815260206004820152601c60248201527f455243323048616e646c65723a20616d6f756e74206973207a65726f0000000060448201526064016106e1565b8782156112275760405163079cc67960e41b8152336004820152602481018990526001600160a01b038216906379cc679090604401600060405180830381600087803b15801561120a57600080fd5b505af115801561121e573d6000803e3d6000fd5b5050505061123c565b61123c6001600160a01b03821633308b611f23565b7ffc11ca985085252b65dba84249af6977f9d4cb2acc79ee95fff01985d1b562758989898989898989604051610ed69897969594939291906138f2565b6033546001600160a01b031633146112a35760405162461bcd60e51b81526004016106e1906137b2565b600081116112f35760405162461bcd60e51b815260206004820152601a60248201527f5369676e6572733a20696e76616c6964207468726573686f6c6400000000000060448201526064016106e1565b606555565b6033546001600160a01b031633146113225760405162461bcd60e51b81526004016106e1906137b2565b60005b81811015610705576000838383818110611341576113416138ab565b90506020020160208101906113569190612e1d565b6001600160a01b031614156113a45760405162461bcd60e51b815260206004820152601460248201527329b4b3b732b9399d103d32b9379039b4b3b732b960611b60448201526064016106e1565b6113d68383838181106113b9576113b96138ab565b90506020020160208101906113ce9190612e1d565b606690611f8e565b50806113e1816138d7565b915050611325565b6033546001600160a01b031633146114135760405162461bcd60e51b81526004016106e1906137b2565b6001600160a01b0381166114785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e1565b61087881611947565b600054610100900460ff166114a85760405162461bcd60e51b81526004016106e1906136cf565b610c38611fa3565b60408051602080820185905281830184905282518083038401815260609092018352815191810191909120600081815260689092529190205460ff16156115395760405162461bcd60e51b815260206004820152601e60248201527f4861736865733a207468652068617368206e6f6e63652069732075736564000060448201526064016106e1565b6000908152606860205260409020805460ff191660011790555050565b6000816001600160401b0381111561157057611570612c4b565b604051908082528060200260200182016040528015611599578160200160208202803683370190505b50905060005b82811015611650576116148484838181106115bc576115bc6138ab565b90506020028101906115ce9190613a5e565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061160e9250899150611fd39050565b90612026565b828281518110611626576116266138ab565b6001600160a01b039092166020928302919091019091015280611648816138d7565b91505061159f565b50610cf48161204a565b600082116116aa5760405162461bcd60e51b815260206004820152601d60248201527f4e617469766548616e646c65723a20616d6f756e74206973207a65726f00000060448201526064016106e1565b6001600160a01b0381166117005760405162461bcd60e51b815260206004820152601f60248201527f4e617469766548616e646c65723a207265636569766572206973207a65726f0060448201526064016106e1565b6000816001600160a01b03168360405160006040518083038185875af1925050503d806000811461174d576040519150601f19603f3d011682016040523d82523d6000602084013e611752565b606091505b50509050806107055760405162461bcd60e51b815260206004820152601d60248201527f4e617469766548616e646c65723a2063616e27742073656e642065746800000060448201526064016106e1565b6033546001600160a01b031633146108785760405162461bcd60e51b81526004016106e1906137b2565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561180057610705836121c2565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561183957600080fd5b505afa925050508015611869575060408051601f3d908101601f1916820190925261186691810190613aa4565b60015b6118cc5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016106e1565b600080516020613d45833981519152811461193b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016106e1565b5061070583838361225e565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0386166119eb5760405162461bcd60e51b815260206004820152601960248201527822a9219b9918a430b7323632b91d103d32b937903a37b5b2b760391b60448201526064016106e1565b6001600160a01b038416611a415760405162461bcd60e51b815260206004820152601c60248201527f45524337323148616e646c65723a207a65726f2072656365697665720000000060448201526064016106e1565b858115611ab157604051639f6ed25f60e01b81526001600160a01b03821690639f6ed25f90611a7a9088908a9089908990600401613abd565b600060405180830381600087803b158015611a9457600080fd5b505af1158015611aa8573d6000803e3d6000fd5b5050505061073a565b604051632142170760e11b81523060048201526001600160a01b038681166024830152604482018890528216906342842e0e90606401600060405180830381600087803b158015611b0157600080fd5b505af1158015610c72573d6000803e3d6000fd5b60008054610100900460ff1615611b5c578160ff166001148015611b385750303b155b611b545760405162461bcd60e51b81526004016106e190613ae5565b506000919050565b60005460ff808416911610611b835760405162461bcd60e51b81526004016106e190613ae5565b506000805460ff191660ff92909216919091179055600190565b919050565b6000611bb7836001600160a01b038416612283565b9392505050565b6001600160a01b038416611c0f5760405162461bcd60e51b815260206004820152601860248201527722a92199182430b7323632b91d103d32b937903a37b5b2b760411b60448201526064016106e1565b60008311611c5f5760405162461bcd60e51b815260206004820152601c60248201527f455243323048616e646c65723a20616d6f756e74206973207a65726f0000000060448201526064016106e1565b6001600160a01b038216611cb55760405162461bcd60e51b815260206004820152601b60248201527f455243323048616e646c65723a207a65726f207265636569766572000000000060448201526064016106e1565b838115611d23576040516308934a5f60e31b81526001600160a01b0384811660048301526024820186905282169063449a52f890604401600060405180830381600087803b158015611d0657600080fd5b505af1158015611d1a573d6000803e3d6000fd5b50505050611d37565b611d376001600160a01b0382168486612376565b5050505050565b60606000611bb7836123a6565b6001600160a01b038716611da15760405162461bcd60e51b815260206004820152601a60248201527f4552433131353548616e646c65723a207a65726f20746f6b656e00000000000060448201526064016106e1565b6001600160a01b038416611df75760405162461bcd60e51b815260206004820152601d60248201527f4552433131353548616e646c65723a207a65726f20726563656976657200000060448201526064016106e1565b60008511611e475760405162461bcd60e51b815260206004820152601e60248201527f4552433131353548616e646c65723a20616d6f756e74206973207a65726f000060448201526064016106e1565b868115611eb957604051633dbd5b2560e01b81526001600160a01b03821690633dbd5b2590611e829088908b908b908a908a90600401613b33565b600060405180830381600087803b158015611e9c57600080fd5b505af1158015611eb0573d6000803e3d6000fd5b50505050611f19565b604051637921219560e11b81526001600160a01b0382169063f242432a90611eeb90309089908c908c906004016137e7565b600060405180830381600087803b158015611f0557600080fd5b505af11580156110c1573d6000803e3d6000fd5b5050505050505050565b6040516001600160a01b0380851660248301528316604482015260648101829052610cf49085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612402565b6000611bb7836001600160a01b0384166124d4565b600054610100900460ff16611fca5760405162461bcd60e51b81526004016106e1906136cf565b610c3833611947565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b60008060006120358585612523565b9150915061204281612593565b509392505050565b6000805b825181101561216e5761208483828151811061206c5761206c6138ab565b6020026020010151606661274e90919063ffffffff16565b6120d05760405162461bcd60e51b815260206004820152601760248201527f5369676e6572733a20696e76616c6964207369676e657200000000000000000060448201526064016106e1565b600060988483815181106120e6576120e66138ab565b60200260200101516001600160a01b0316901c60026121059190613c45565b9050828116156121575760405162461bcd60e51b815260206004820152601a60248201527f5369676e6572733a206475706c6963617465207369676e65727300000000000060448201526064016106e1565b919091179080612166816138d7565b91505061204e565b50606554825110156109485760405162461bcd60e51b815260206004820152601d60248201527f5369676e6572733a207468726573686f6c64206973206e6f74206d657400000060448201526064016106e1565b6001600160a01b0381163b61222f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016106e1565b600080516020613d4583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61226783612770565b6000825111806122745750805b1561070557610cf483836127b0565b6000818152600183016020526040812054801561236c5760006122a7600183613c51565b85549091506000906122bb90600190613c51565b90508181146123205760008660000182815481106122db576122db6138ab565b90600052602060002001549050808760000184815481106122fe576122fe6138ab565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061233157612331613c68565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610665565b6000915050610665565b6040516001600160a01b03831660248201526044810182905261070590849063a9059cbb60e01b90606401611f57565b6060816000018054806020026020016040519081016040528092919081815260200182805480156123f657602002820191906000526020600020905b8154815260200190600101908083116123e2575b50505050509050919050565b6000612457826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166127d59092919063ffffffff16565b80519091501561070557808060200190518101906124759190613c7e565b6107055760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106e1565b600081815260018301602052604081205461251b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610665565b506000610665565b60008082516041141561255a5760208301516040840151606085015160001a61254e878285856127ec565b9450945050505061258c565b82516040141561258457602083015160408401516125798683836128d9565b93509350505061258c565b506000905060025b9250929050565b60008160048111156125a7576125a7613c9b565b14156125b05750565b60018160048111156125c4576125c4613c9b565b14156126125760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106e1565b600281600481111561262657612626613c9b565b14156126745760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106e1565b600381600481111561268857612688613c9b565b14156126e15760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106e1565b60048160048111156126f5576126f5613c9b565b14156108785760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016106e1565b6001600160a01b03811660009081526001830160205260408120541515611bb7565b612779816121c2565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611bb78383604051806060016040528060278152602001613d6560279139612912565b60606127e484846000856129ef565b949350505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561282357506000905060036128d0565b8460ff16601b1415801561283b57508460ff16601c14155b1561284c57506000905060046128d0565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156128a0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166128c9576000600192509250506128d0565b9150600090505b94509492505050565b6000806001600160ff1b038316816128f660ff86901c601b613cb1565b9050612904878288856127ec565b935093505050935093915050565b60606001600160a01b0384163b61297a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016106e1565b600080856001600160a01b0316856040516129959190613cf5565b600060405180830381855af49150503d80600081146129d0576040519150601f19603f3d011682016040523d82523d6000602084013e6129d5565b606091505b50915091506129e5828286612b20565b9695505050505050565b606082471015612a505760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016106e1565b6001600160a01b0385163b612aa75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106e1565b600080866001600160a01b03168587604051612ac39190613cf5565b60006040518083038185875af1925050503d8060008114612b00576040519150601f19603f3d011682016040523d82523d6000602084013e612b05565b606091505b5091509150612b15828286612b20565b979650505050505050565b60608315612b2f575081611bb7565b825115612b3f5782518084602001fd5b8160405162461bcd60e51b81526004016106e19190613d11565b600060208284031215612b6b57600080fd5b81356001600160e01b031981168114611bb757600080fd5b60008060408385031215612b9657600080fd5b50508035926020909101359150565b60008083601f840112612bb757600080fd5b5081356001600160401b03811115612bce57600080fd5b6020830191508360208260051b850101111561258c57600080fd5b600080600060408486031215612bfe57600080fd5b83356001600160401b03811115612c1457600080fd5b612c2086828701612ba5565b909790965060209590950135949350505050565b80356001600160a01b0381168114611b9d57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612c8957612c89612c4b565b604052919050565b600082601f830112612ca257600080fd5b81356001600160401b03811115612cbb57612cbb612c4b565b612cce601f8201601f1916602001612c61565b818152846020838601011115612ce357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215612d1657600080fd5b612d1f85612c34565b9350612d2d60208601612c34565b92506040850135915060608501356001600160401b03811115612d4f57600080fd5b612d5b87828801612c91565b91505092959194509250565b60008060008060008060a08789031215612d8057600080fd5b86359550612d9060208801612c34565b9450604087013593506060870135925060808701356001600160401b03811115612db957600080fd5b612dc589828a01612ba5565b979a9699509497509295939492505050565b600080600080600060a08688031215612def57600080fd5b85359450612dff60208701612c34565b94979496505050506040830135926060810135926080909101359150565b600060208284031215612e2f57600080fd5b611bb782612c34565b60008060408385031215612e4b57600080fd5b612e5483612c34565b915060208301356001600160401b03811115612e6f57600080fd5b612e7b85828601612c91565b9150509250929050565b60008083601f840112612e9757600080fd5b5081356001600160401b03811115612eae57600080fd5b60208301915083602082850101111561258c57600080fd5b801515811461087857600080fd5b803561ffff81168114611b9d57600080fd5b600080600080600080600080600060e08a8c031215612f0457600080fd5b612f0d8a612c34565b985060208a0135975060408a0135965060608a01356001600160401b0380821115612f3757600080fd5b612f438d838e01612e85565b909850965060808c0135915080821115612f5c57600080fd5b50612f698c828d01612e85565b90955093505060a08a0135612f7d81612ec6565b9150612f8b60c08b01612ed4565b90509295985092959850929598565b6000806000806000806000806000806101008b8d031215612fba57600080fd5b612fc38b612c34565b995060208b01359850612fd860408c01612c34565b975060608b0135965060808b0135955060a08b01356001600160401b038082111561300257600080fd5b61300e8e838f01612e85565b909750955060c08d0135915061302382612ec6565b90935060e08c0135908082111561303957600080fd5b506130468d828e01612ba5565b915080935050809150509295989b9194979a5092959850565b6000806020838503121561307257600080fd5b82356001600160401b0381111561308857600080fd5b61309485828601612ba5565b90969095509350505050565b60008060008060008060008060c0898b0312156130bc57600080fd5b6130c589612c34565b97506020890135965060408901356001600160401b03808211156130e857600080fd5b6130f48c838d01612e85565b909850965060608b013591508082111561310d57600080fd5b5061311a8b828c01612e85565b909550935050608089013561312e81612ec6565b915061313c60a08a01612ed4565b90509295985092959890939650565b60008060008060006060868803121561316357600080fd5b85356001600160401b038082111561317a57600080fd5b61318689838a01612e85565b9097509550602088013591508082111561319f57600080fd5b506131ac88828901612e85565b90945092506131bf905060408701612ed4565b90509295509295909350565b60008060008060008060008060e0898b0312156131e757600080fd5b6131f089612c34565b97506020890135965061320560408a01612c34565b9550606089013594506080890135935060a089013561322381612ec6565b925060c08901356001600160401b0381111561323e57600080fd5b61324a8b828c01612ba5565b999c989b5096995094979396929594505050565b6020808252825182820181905260009190848201906040850190845b8181101561329f5783516001600160a01b03168352928401929184019160010161327a565b50909695505050505050565b600080600080600080600060e0888a0312156132c657600080fd5b6132cf88612c34565b9650602088013595506132e460408901612c34565b9450606088013593506080880135925060a0880135915060c088013561330981612ec6565b8091505092959891949750929550565b60006020828403121561332b57600080fd5b5035919050565b60008060008060008060008060006101008a8c03121561335157600080fd5b61335a8a612c34565b985060208a0135975061336f60408b01612c34565b965060608a0135955060808a0135945060a08a0135935060c08a01356001600160401b0381111561339f57600080fd5b6133ab8c828d01612e85565b90945092505060e08a01356133bf81612ec6565b809150509295985092959850929598565b60008060008060008060008060008060006101208c8e0312156133f257600080fd5b6133fb8c612c34565b9a5060208c0135995060408c0135985061341760608d01612c34565b975060808c0135965060a08c013595506001600160401b038060c08e0135111561344057600080fd5b6134508e60c08f01358f01612e85565b909650945061346260e08e0135612ec6565b60e08d01359350806101008e0135111561347b57600080fd5b5061348d8d6101008e01358e01612ba5565b81935080925050509295989b509295989b9093969950565b6000806000806000806000806000806101208b8d0312156134c557600080fd5b6134ce8b612c34565b995060208b0135985060408b013597506134ea60608c01612c34565b965060808b0135955060a08b0135945060c08b0135935060e08b01356001600160401b0381111561351a57600080fd5b6135268d828e01612e85565b9094509250506101008b013561353b81612ec6565b809150509295989b9194979a5092959850565b600082601f83011261355f57600080fd5b813560206001600160401b0382111561357a5761357a612c4b565b8160051b613589828201612c61565b92835284810182019282810190878511156135a357600080fd5b83870192505b84831015612b15578235825291830191908301906135a9565b600080600080600060a086880312156135da57600080fd5b6135e386612c34565b94506135f160208701612c34565b935060408601356001600160401b038082111561360d57600080fd5b61361989838a0161354e565b9450606088013591508082111561362f57600080fd5b61363b89838a0161354e565b9350608088013591508082111561365157600080fd5b5061365e88828901612c91565b9150509295509295909350565b600080600080600060a0868803121561368357600080fd5b61368c86612c34565b945061369a60208701612c34565b9350604086013592506060860135915060808601356001600160401b038111156136c357600080fd5b61365e88828901612c91565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038a16815288602082015287604082015260e06060820152600061387660e08301888a61381f565b828103608084015261388981878961381f565b94151560a0840152505061ffff9190911660c090910152979650505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156138eb576138eb6138c1565b5060010190565b60018060a01b038916815287602082015260c06040820152600061391a60c08301888a61381f565b828103606084015261392d81878961381f565b9415156080840152505061ffff9190911660a0909101529695505050505050565b86815260806020820152600061396860808301878961381f565b828103604084015261397b81868861381f565b91505061ffff83166060830152979650505050505050565b60006bffffffffffffffffffffffff19808c60601b1683528a6014840152808a60601b16603484015250876048830152866068830152856088830152838560a88401375090151560f81b910160a881019190915260a901979650505050505050565b60006bffffffffffffffffffffffff19808d60601b1683528b60148401528a6034840152808a60601b166054840152508760688301528660888301528560a8830152838560c88401375090151560f81b910160c881019190915260c90198975050505050505050565b6000808335601e19843603018112613a7557600080fd5b8301803591506001600160401b03821115613a8f57600080fd5b60200191503681900382131561258c57600080fd5b600060208284031215613ab657600080fd5b5051919050565b60018060a01b03851681528360208201526060604082015260006129e560608301848661381f565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60018060a01b0386168152846020820152836040820152608060608201526000612b1560808301848661381f565b600181815b80851115613b9c578160001904821115613b8257613b826138c1565b80851615613b8f57918102915b93841c9390800290613b66565b509250929050565b600082613bb357506001610665565b81613bc057506000610665565b8160018114613bd65760028114613be057613bfc565b6001915050610665565b60ff841115613bf157613bf16138c1565b50506001821b610665565b5060208310610133831016604e8410600b8410161715613c1f575081810a610665565b613c298383613b61565b8060001904821115613c3d57613c3d6138c1565b029392505050565b6000611bb78383613ba4565b600082821015613c6357613c636138c1565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613c9057600080fd5b8151611bb781612ec6565b634e487b7160e01b600052602160045260246000fd5b60008219821115613cc457613cc46138c1565b500190565b60005b83811015613ce4578181015183820152602001613ccc565b83811115610cf45750506000910152565b60008251613d07818460208701613cc9565b9190910192915050565b6020815260008251806020840152613d30816040850160208701613cc9565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212207759de0aa8e40c61d23375e6ca6dd1ee308ebf35f6f530ed9ff4b61e664469e264736f6c63430008090033"