Special data
- Status: Successful
- Nonce: 10
- Type: 0
- Gas used: 4629097 gas
- Gas limit: 4629097 gas
- Gas price: 153.53 Gwei
- Effective gas price: 153.53 Gwei
-
Input data:
0x60c06040523480156200001157600080fd5b50604051620053e2380380620053e283398101604081905262000034916200004b565b6001600160a01b0316608081905260a0526200007d565b6000602082840312156200005e57600080fd5b81516001600160a01b03811681146200007657600080fd5b9392505050565b60805160a05161533f620000a360003960006106b001526000610e36015261533f6000f3fe6080604052600436106101d15760003560e01c8063ad0e7b1a116100f7578063de7b484311610095578063eb5625d911610064578063eb5625d91461058b578063ec77bbdb146105ab578063f435a9ac146105cb578063fa461e33146105de57600080fd5b8063de7b48431461050b578063df92bd081461052b578063e0d12ba51461054b578063e27703c71461056b57600080fd5b8063ca19ebd9116100d1578063ca19ebd91461048b578063ccf874ba146104ab578063d1660f99146104cb578063da384cd1146104eb57600080fd5b8063ad0e7b1a1461042b578063b757fed61461044b578063c9f12e9d1461046b57600080fd5b8063314464aa1161016f57806375d22a271161013e57806375d22a27146103a3578063aade5c49146103c3578063ab24c224146103e3578063ac14b5ea146103f657600080fd5b8063314464aa1461032357806332ce0a7c14610343578063364dec1d1461036357806370bdb9471461038357600080fd5b806314284aab116101ab57806314284aab1461029e5780631c021781146102be5780632636f7f8146102de57806329439004146102f157600080fd5b8063059712241461024b57806308d4b9e11461025e57806310c5cc111461027e57600080fd5b3661024657323303610244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f455448206465706f7369742072656a656374656400000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b6102446102593660046143b8565b6105fe565b34801561026a57600080fd5b50610244610279366004614529565b610941565b34801561028a57600080fd5b50610244610299366004614590565b610a21565b3480156102aa57600080fd5b506102446102b93660046146bc565b610ad4565b3480156102ca57600080fd5b506102446102d936600461471d565b610b2f565b6102446102ec3660046147a4565b610dc9565b3480156102fd57600080fd5b5061031161030c3660046147f9565b610dd8565b60405190815260200160405180910390f35b34801561032f57600080fd5b5061024461033e36600461481b565b610e1a565b34801561034f57600080fd5b5061024461035e366004614895565b610e8c565b34801561036f57600080fd5b5061024461037e36600461491e565b610f9f565b34801561038f57600080fd5b5061031161039e366004614953565b6111ed565b3480156103af57600080fd5b506102446103be36600461497f565b611232565b3480156103cf57600080fd5b506102446103de3660046149e3565b6112d2565b6102446103f1366004614a85565b611478565b34801561040257600080fd5b50610311610411366004614a9e565b600060208181529281526040808220909352908152205481565b34801561043757600080fd5b50610244610446366004614b6d565b61153d565b34801561045757600080fd5b50610244610466366004614590565b611650565b34801561047757600080fd5b50610244610486366004614590565b611665565b34801561049757600080fd5b506103116104a6366004614953565b611678565b3480156104b757600080fd5b506102446104c6366004614bf1565b611b89565b3480156104d757600080fd5b506102446104e6366004614c26565b611bc3565b3480156104f757600080fd5b50610244610506366004614c56565b611be4565b34801561051757600080fd5b50610244610526366004614cb5565b611cab565b34801561053757600080fd5b50610244610546366004614cf7565b611ce5565b34801561055757600080fd5b50610244610566366004614da0565b611e5d565b34801561057757600080fd5b50610244610586366004614590565b61201a565b34801561059757600080fd5b506102446105a6366004614c26565b61202d565b3480156105b757600080fd5b506103116105c6366004614dfb565b61204e565b6102446105d936600461481b565b6120af565b3480156105ea57600080fd5b506102446105f9366004614e30565b61214a565b600073ffffffffffffffffffffffffffffffffffffffff851661062257600061064d565b6fffffffffffffffffffffffffffffffff8316610643608085901c86614eb2565b61064d9190614eef565b9050600061065b8286614f2a565b905082821115801561066d5750828111155b1561067957505061093a565b60408051606081018252600080825260208201819052825173ffffffffffffffffffffffffffffffffffffffff808c1660248301527f00000000000000000000000000000000000000000000000000000000000000001660448201526064810185905290928201907fd1660f990000000000000000000000000000000000000000000000000000000090608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090951694909417909352925281516060810183526000808252918101829052825173ffffffffffffffffffffffffffffffffffffffff808e1660248301528c16604482015260648101889052939450909290918201907fd1660f990000000000000000000000000000000000000000000000000000000090608401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091529052905084841161088b5761088682610f9f565b610935565b84831161089b5761088681610f9f565b60408051600280825260608201909252600091816020015b6108d760405180606001604052806000815260200160008152602001606081525090565b8152602001906001900390816108b3579050509050828160008151811061090057610900614f41565b6020026020010181905250818160018151811061091f5761091f614f41565b602002602001018190525061093381611b89565b505b505050505b5050505050565b60408051600080825260208083018085527f5915d806000000000000000000000000000000000000000000000000000000008152602484018a81526044850195865284516064860181905273ffffffffffffffffffffffffffffffffffffffff8b1696635915d806968d96909593949193608487019302908190849084905b838110156109d85781810151838201526020016109c0565b505050509050019350505050600060405180830381600087803b1580156109fe57600080fd5b505af1158015610a12573d6000803e3d6000fd5b5050505061093a8383836121d6565b600080610a368787878787633b9aca0061236d565b915091508673ffffffffffffffffffffffffffffffffffffffff16636d9a640a8383876040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b158015610ab357600080fd5b505af1158015610ac7573d6000803e3d6000fd5b5050505050505050505050565b60006fffffffffffffffffffffffffffffffff8216608083901c610b0e73ffffffffffffffffffffffffffffffffffffffff8616336125de565b610b189190614eb2565b610b229190614eef565b905061093a858583612697565b8060200135471015610b9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f496e73756666696369656e742062616c616e636520666f722063616c6c000000604482015260640161023b565b60006060823573ffffffffffffffffffffffffffffffffffffffff8116610bc15750305b6b4fffffffffffffffffffffff843560a01c166000819003610c615773ffffffffffffffffffffffffffffffffffffffff82166020860135610c066040880188614f70565b604051610c14929190614fd5565b60006040518083038185875af1925050503d8060008114610c51576040519150601f19603f3d011682016040523d82523d6000602084013e610c56565b606091505b509094509250610ce3565b73ffffffffffffffffffffffffffffffffffffffff8216816020870135610c8b6040890189614f70565b604051610c99929190614fd5565b600060405180830381858888f193505050503d8060008114610cd7576040519150601f19603f3d011682016040523d82523d6000602084013e610cdc565b606091505b5090945092505b8361093a576000610d29846040518060400160405280601681526020017f45787465726e616c2063616c6c206661696c65643a2000000000000000000000815250612889565b90507f80000000000000000000000000000000000000000000000000000000000000008635811601610d8957806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023b9190615011565b7f08c379a0afcc32b1a39302f7cb8073359698411ab5fd6e3edb2c02c0b5fba8aa81604051610db89190615011565b60405180910390a15b505050505050565b610dd38282611cab565b505050565b60006fffffffffffffffffffffffffffffffff8216608083901c610dfd853331614f2a565b610e079190614eb2565b610e119190614eef565b90505b92915050565b610e5b73ffffffffffffffffffffffffffffffffffffffff83167f000000000000000000000000000000000000000000000000000000000000000083612e24565b60009283526020838152604080852073ffffffffffffffffffffffffffffffffffffffff9094168552929052912055565b6000808473ffffffffffffffffffffffffffffffffffffffff168484604051610eb6929190614fd5565b600060405180830381855afa9150503d8060008114610ef1576040519150601f19603f3d011682016040523d82523d6000602084013e610ef6565b606091505b509150915081610f7257610f3f816040518060400160405280601381526020017f50617463682063616c6c206661696c65643a2000000000000000000000000000815250612889565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023b9190615011565b600081806020019051810190610f889190615062565b9050610f95888883612697565b5050505050505050565b806020015147101561100d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f496e73756666696369656e742062616c616e636520666f722063616c6c000000604482015260640161023b565b805160009060609073ffffffffffffffffffffffffffffffffffffffff81166110335750305b835160a01c6b4fffffffffffffffffffffff1660008190036110ca578173ffffffffffffffffffffffffffffffffffffffff168560200151866040015160405161107d919061507b565b60006040518083038185875af1925050503d80600081146110ba576040519150601f19603f3d011682016040523d82523d6000602084013e6110bf565b606091505b509094509250611144565b8173ffffffffffffffffffffffffffffffffffffffff168560200151829087604001516040516110fa919061507b565b600060405180830381858888f193505050503d8060008114611138576040519150601f19603f3d011682016040523d82523d6000602084013e61113d565b606091505b5090945092505b8361093a57600061118a846040518060400160405280601681526020017f45787465726e616c2063616c6c206661696c65643a2000000000000000000000815250612889565b90507f80000000000000000000000000000000000000000000000000000000000000008087600001511603610d8957806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023b9190615011565b60008061121073ffffffffffffffffffffffffffffffffffffffff8516336125de565b905082811161122057600061122a565b61122a8382614f2a565b949350505050565b60008061124187878786612eb1565b604080517f022c0d9f000000000000000000000000000000000000000000000000000000008152600481018490526024810183905273ffffffffffffffffffffffffffffffffffffffff8881166044830152608060648301526000608483018190529251949650929450918a169263022c0d9f9260a480820193929182900301818387803b158015610ab357600080fd5b86611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f456d7074792063616c6c73000000000000000000000000000000000000000000604482015260640161023b565b6040517fda384cd1000000000000000000000000000000000000000000000000000000008152309063da384cd19061137d908b908b90899088908890600401615097565b600060405180830381600087803b15801561139757600080fd5b505af19250505080156113a8575060015b610f95573d8080156113d6576040519150601f19603f3d011682016040523d82523d6000602084013e6113db565b606091505b507f08c379a0afcc32b1a39302f7cb8073359698411ab5fd6e3edb2c02c0b5fba8aa61143c826040518060400160405280601681526020017f5772617070656420726f757465206661696c65643a2000000000000000000000815250612889565b6040516114499190615011565b60405180910390a161147273ffffffffffffffffffffffffffffffffffffffff871685896131db565b50610f95565b608081901c6fffffffffffffffffffffffffffffffff82164282108015906114a05750804311155b61150b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5472616e73616374696f6e206578706972657300000000000000000000000000604482015290519081900360640190fd5b60405141903480156108fc02916000818181858888f19350505050158015611537573d6000803e3d6000fd5b50505050565b845183146115a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f417272617973206c656e6774682073686f756c6420626520657175616c000000604482015260640161023b565b60006fffffffffffffffffffffffffffffffff8216608083901c6115e173ffffffffffffffffffffffffffffffffffffffff8616336125de565b6115eb9190614eb2565b6115f59190614eef565b905060005b86518110156116475761163f87828151811061161857611618614f41565b602002602001015187878481811061163257611632614f41565b9050602002013584612697565b6001016115fa565b50505050505050565b6000806112418787878787633b9aca0061236d565b60008061124187878787876103e861236d565b6000611682614328565b8373ffffffffffffffffffffffffffffffffffffffff1663ffa642256040518163ffffffff1660e01b81526004016040805180830381865afa1580156116cc573d6000803e3d6000fd5b505050506040513d60408110156116e257600080fd5b50805160209182015160a08401526080830152604080517f17be952e000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff8716926317be952e92600480820193918290030181865afa15801561175c573d6000803e3d6000fd5b505050506040513d602081101561177257600080fd5b505160ff16600281111561178857611788615234565b8160c00190600281111561179e5761179e615234565b908160028111156117b1576117b1615234565b815250508373ffffffffffffffffffffffffffffffffffffffff1663796da7af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611800573d6000803e3d6000fd5b505050506040513d602081101561181657600080fd5b50518152604080517f7c9b8e89000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff861691637c9b8e899160048083019260209291908290030181865afa158015611885573d6000803e3d6000fd5b505050506040513d602081101561189b57600080fd5b50516060820152604080517feab5d20e000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff86169163eab5d20e9160048083019260209291908290030181865afa15801561190d573d6000803e3d6000fd5b505050506040513d602081101561192357600080fd5b505160408083019190915280517fec2fd46d000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff86169163ec2fd46d9160048083019260209291908290030181865afa158015611997573d6000803e3d6000fd5b505050506040513d60208110156119ad57600080fd5b505160208201526000808260c0015160028111156119cd576119cd615234565b036119e3576119dc8483613253565b9050611a75565b60018260c0015160028111156119fb576119fb615234565b03611a0a576119dc84836132a5565b600082608001518360400151611a209190614f2a565b9050600083606001518460a00151611a389190614f2a565b9050808611611a5257611a4b86856132eb565b9250611a72565b611a65611a5f8288614f2a565b85613253565b611a6f9083615263565b92505b50505b611b80818673ffffffffffffffffffffffffffffffffffffffff1663ab44a7a36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ac4573d6000803e3d6000fd5b505050506040513d6020811015611ada57600080fd5b5051604080517fc0ffa178000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff8a169163c0ffa1789160048083019260209291908290030181865afa158015611b47573d6000803e3d6000fd5b505050506040513d6020811015611b5d57600080fd5b5051611b7190670de0b6b3a7640000615263565b611b7b9190615263565b613333565b95945050505050565b60005b8151811015611bbf57611bb7828281518110611baa57611baa614f41565b6020026020010151610f9f565b600101611b8c565b5050565b610dd373ffffffffffffffffffffffffffffffffffffffff841683836131db565b6000611c0673ffffffffffffffffffffffffffffffffffffffff8516846125de565b9050611c128686611cab565b600081611c3573ffffffffffffffffffffffffffffffffffffffff8716866125de565b611c3f9190614f2a565b905082811015611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f52657475726e20616d6f756e74206973206e6f7420656e6f7567680000000000604482015260640161023b565b60005b81811015610dd357611cdd838383818110611ccb57611ccb614f41565b90506020028101906102d9919061527b565b600101611cae565b85518414611d4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f417272617973206c656e6774682073686f756c6420626520657175616c000000604482015260640161023b565b6000808473ffffffffffffffffffffffffffffffffffffffff168484604051611d79929190614fd5565b600060405180830381855afa9150503d8060008114611db4576040519150601f19603f3d011682016040523d82523d6000602084013e611db9565b606091505b509150915081611e0257610f3f816040518060400160405280601381526020017f50617463682063616c6c206661696c65643a2000000000000000000000000000815250612889565b600081806020019051810190611e189190615062565b905060005b895181101561093357611e558a8281518110611e3b57611e3b614f41565b60200260200101518a8a8481811061163257611632614f41565b600101611e1d565b604080517f89afcb44000000000000000000000000000000000000000000000000000000008152306004820152815173ffffffffffffffffffffffffffffffffffffffff8716926389afcb44926024808201939182900301816000875af1158015611ecc573d6000803e3d6000fd5b505050506040513d6040811015611ee257600080fd5b50611f0c90508260005b602002015173ffffffffffffffffffffffffffffffffffffffff16613348565b1561200f57604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc291632e1a7d4d9183916370a082319160248083019260209291908290030181865afa158015611f88573d6000803e3d6000fd5b505050506040513d6020811015611f9e57600080fd5b5051604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152600481019290925251602480830192600092919082900301818387803b158015611ff657600080fd5b505af115801561200a573d6000803e3d6000fd5b505050505b6115378383836121d6565b600080610a3687878787876103e861236d565b610dd373ffffffffffffffffffffffffffffffffffffffff8416838361339b565b60006120a56fffffffffffffffffffffffffffffffff8416608085901c61208b73ffffffffffffffffffffffffffffffffffffffff8816336125de565b6120959190614eb2565b61209f9190614eef565b836136a0565b90505b9392505050565b60008381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152902054811461150b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f46756e64732077657265206e6f742073656e7400000000000000000000000000604482015290519081900360640190fd5b6000808383604081101561215d57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116935060209091013516905060008613156121ac576121ac73ffffffffffffffffffffffffffffffffffffffff83163388612e24565b6000851315610dc157610dc173ffffffffffffffffffffffffffffffffffffffff82163387612e24565b60006121e0614375565b6121e8614375565b612211308660005b602002015173ffffffffffffffffffffffffffffffffffffffff16906125de565b815261221f308660016121f0565b602082015261222f856000611eec565b1561223d578051925061226b565b805161226b9087908760005b602002015173ffffffffffffffffffffffffffffffffffffffff16919061339b565b61227f868260016020020151876001612249565b8573ffffffffffffffffffffffffffffffffffffffff16639ea5ce0a848385886040518563ffffffff1660e01b81526004018084600260200280838360005b838110156122d65781810151838201526020016122be565b5050505090500183600260200280838360005b838110156123015781810151838201526020016122e9565b505050509050018273ffffffffffffffffffffffffffffffffffffffff168152602001935050505060606040518083038185885af1158015612347573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052506060811015610f9557600080fd5b60008060008773ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381865afa1580156123de573d6000803e3d6000fd5b505050506040513d60208110156123f457600080fd5b5051604080517f0902f1ac0000000000000000000000000000000000000000000000000000000081529051919250600091829173ffffffffffffffffffffffffffffffffffffffff8d1691630902f1ac916004808201926060929091908290030181865afa15801561246a573d6000803e3d6000fd5b505050506040513d606081101561248057600080fd5b5080516020909101516dffffffffffffffffffffffffffff918216935016905073ffffffffffffffffffffffffffffffffffffffff808a16908b1611156124c357905b60006124cf8385614f2a565b905060006124e160a08b901c89614f2a565b6124eb9083614eb2565b905060006124f98483614eb2565b90506000826125088b88614eb2565b6125129190615263565b905060006125208284614eef565b90995097508a88101561259457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f556e69563245787420726573756c74206973206e6f7420656e6f756768000000604482015290519081900360640190fd5b8c73ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1611156125cc579697965b50505050505050965096945050505050565b60006125e983613348565b1561260c575073ffffffffffffffffffffffffffffffffffffffff811631610e14565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381865afa158015612678573d6000803e3d6000fd5b505050506040513d602081101561268e57600080fd5b50519050610e14565b7fc00000000000000000000000000000000000000000000000000000000000000082167f400000000000000000000000000000000000000000000000000000000000000001612742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f496e76616c696420736b69704d61736b416e644f666673657400000000000000604482015260640161023b565b7f2000000000000000000000000000000000000000000000000000000000000000821615612777578060000361277757505050565b7f800000000000000000000000000000000000000000000000000000000000000082166000036127b75780836020018181516127b39190615263565b9052505b7f40000000000000000000000000000000000000000000000000000000000000008216600003612880576040830151517f1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831690602082011115612877576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6666736574206973206f7574206f662072616e676500000000000000000000604482015260640161023b565b83016080018190525b610dd383610f9f565b60606004835110612cb85760208301517fffffffff0000000000000000000000000000000000000000000000000000000081167f08c379a0000000000000000000000000000000000000000000000000000000001480156128ec57506044845110155b15612aed5760248481015180860182018051919290919061290e908490615263565b6129189190615263565b8651101561298757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e76616c69642072657665727420726561736f6e0000000000000000000000604482015290519081900360640190fd5b84816040516020018083805190602001908083835b602083106129d957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161299c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527f4572726f72280000000000000000000000000000000000000000000000000000919093019081528451600690910192850191508083835b60208310612a8657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612a49565b6001836020036101000a038019825116818451168082178552505050505050905001807f2900000000000000000000000000000000000000000000000000000000000000815250600101925050506040516020818303038152906040529350505050610e14565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f4e487b7100000000000000000000000000000000000000000000000000000000148015612b3f575083516024145b15612cb657602484015183612b53826136b6565b6040516020018083805190602001908083835b60208310612ba357805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612b66565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527f50616e6963280000000000000000000000000000000000000000000000000000919093019081528451600690910192850191508083835b60208310612c5057805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612c13565b6001836020036101000a038019825116818451168082178552505050505050905001807f29000000000000000000000000000000000000000000000000000000000000008152506001019250505060405160208183030381529060405292505050610e14565b505b81612cc2846136dc565b6040516020018083805190602001908083835b60208310612d1257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612cd5565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527f556e6b6e6f776e28000000000000000000000000000000000000000000000000919093019081528451600890910192850191508083835b60208310612dbf57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612d82565b6001836020036101000a038019825116818451168082178552505050505050905001807f290000000000000000000000000000000000000000000000000000000000000081525060010192505050604051602081830303815290604052905092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610dd3908490613981565b60008060008573ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381865afa158015612f22573d6000803e3d6000fd5b505050506040513d6020811015612f3857600080fd5b5051604080517fd66940270000000000000000000000000000000000000000000000000000000081529051919250600091829182918291829173ffffffffffffffffffffffffffffffffffffffff8e169163d66940279160048083019260a09291908290030181865afa158015612fb3573d6000803e3d6000fd5b505050506040513d60a0811015612fc957600080fd5b5080516020820151604083015160608401516080909401519298509096509450909250905073ffffffffffffffffffffffffffffffffffffffff808b16908c1611156130f05761307661302c6dffffffffffffffffffffffffffff861688614f2a565b856dffffffffffffffffffffffffffff16876dffffffffffffffffffffffffffff16856dffffffffffffffffffffffffffff16876dffffffffffffffffffffffffffff1686613a8d565b975060009650888810156130eb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f444d4d3a20726573756c74206973206e6f7420656e6f75676800000000000000604482015290519081900360640190fd5b6131cc565b6000975061315b6131116dffffffffffffffffffffffffffff871688614f2a565b866dffffffffffffffffffffffffffff16866dffffffffffffffffffffffffffff16866dffffffffffffffffffffffffffff16866dffffffffffffffffffffffffffff1686613a8d565b9650888710156131cc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f444d4d3a20726573756c74206973206e6f7420656e6f75676800000000000000604482015290519081900360640190fd5b50505050505094509492505050565b8015610dd3576131ea83613348565b156132325760405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f19350505050158015611537573d6000803e3d6000fd5b610dd373ffffffffffffffffffffffffffffffffffffffff84168383612e24565b60008061326c670de0b6b3a76400008460000151613333565b90506000613293846080015185608001516132878589613c46565b60008860200151613c5b565b9050808460800151611b809190614f2a565b6000806132be670de0b6b3a76400008460000151613333565b905060006132d9846080015185604001516132878589613c46565b9050808460400151611b809190614f2a565b6000808383606001516132fe9190615263565b90506000613318670de0b6b3a76400008560000151613333565b9050611b808460a00151838660600151848860200151613dbd565b600081610e07670de0b6b3a764000085614eb2565b600073ffffffffffffffffffffffffffffffffffffffff82161580610e14575073ffffffffffffffffffffffffffffffffffffffff821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1492915050565b6133a483613348565b1561341057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f417070726f76652063616c6c6564206f6e204554480000000000000000000000604482015290519081900360640190fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b3000000000000000000000000000000000000000000000000000000001781529251825160009485949389169392918291908083835b602083106134e557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016134a8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613547576040519150601f19603f3d011682016040523d82523d6000602084013e61354c565b606091505b509150915081158061357e57506000815111801561357e575080806020019051602081101561357a57600080fd5b5051155b1561093a576040805173ffffffffffffffffffffffffffffffffffffffff8616602482015260006044808301919091528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052613613908690613e2e565b6040805173ffffffffffffffffffffffffffffffffffffffff8616602482015260448082018690528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b30000000000000000000000000000000000000000000000000000000017905261093a908690613e2e565b60008183106136af5781610e11565b5090919050565b6060610e1482604051602001808281526020019150506040516020818303038152906040525b80516060907f303132333435363738396162636465660000000000000000000000000000000090600090613711906002614eb2565b61371c906002615263565b67ffffffffffffffff81111561373457613734614409565b6040519080825280601f01601f19166020018201604052801561375e576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061379557613795614f41565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106137f8576137f8614f41565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b84518110156139795782600486838151811061384857613848614f41565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c60f81c6010811061388457613884614f41565b1a60f81b82613894836002614eb2565b61389f906002615263565b815181106138af576138af614f41565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350828582815181106138f1576138f1614f41565b60209101015160f81c600f166010811061390d5761390d614f41565b1a60f81b8261391d836002614eb2565b613928906003615263565b8151811061393857613938614f41565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080613971816152af565b91505061382a565b509392505050565b60006139e3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661406d9092919063ffffffff16565b805190915015610dd35780806020019051810190613a0191906152e7565b610dd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161023b565b6000808711613afd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f444d4d3a20494e53554646494349454e545f494e5055545f414d4f554e540000604482015290519081900360640190fd5b600086118015613b0d5750600085115b613b7857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f444d4d3a20494e53554646494349454e545f4c49515549444954590000000000604482015290519081900360640190fd5b6000670de0b6b3a7640000613b8d8482614f2a565b613b97908a614eb2565b613ba19190614eef565b90506000613baf8583614eb2565b90506000613bbd8388615263565b9050613bc98183614eef565b9350838811613c3957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f444d4d3a20494e53554646494349454e545f4c49515549444954592032000000604482015290519081900360640190fd5b5050509695505050505050565b6000670de0b6b3a7640000610e078385614eb2565b6000808587613c6a858a613c46565b613c749190614eb2565b613c7e9190614eef565b90506000613c9d613c9785670de0b6b3a7640000614f2a565b88613c46565b905060018515613cb857613cb18783615263565b9150613cc5565b613cc28784615263565b92505b828210613ce157613cd68383614f2a565b915060019050613cf2565b613ceb8284614f2a565b9150600090505b6000613d2e613d0987670de0b6b3a7640000614f2a565b613d14906004614eb2565b8b613d1f898e613c46565b613d299190614eb2565b613c46565b9050613d4d81613d3e8580614eb2565b613d489190615263565b61407c565b90506000613d6387670de0b6b3a7640000614f2a565b613d6e906002614eb2565b905060008315613d8957613d828386615263565b9050613d96565b613d938584614f2a565b90505b8815613db357613da68183613333565b9650505050505050611b80565b613da681836140f3565b600080613dce84613d298789614f2a565b90506000613df087613de08a80614eb2565b613dea9190614eef565b876140f3565b90506000613dfe8583613c46565b9050613e218382613e1788670de0b6b3a7640000614f2a565b613d299190615263565b9998505050505050505050565b6000808373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310613e9657805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101613e59565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613ef8576040519150601f19603f3d011682016040523d82523d6000602084013e613efd565b606091505b509150915081613fe457613f46816040518060400160405280601781526020017f4c6f772d6c6576656c2063616c6c206661696c65643a20000000000000000000815250612889565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613fa9578181015183820152602001613f91565b50505050905090810190601f168015613fd65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b8051156115375780806020019051602081101561400057600080fd5b505161153757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552433230206f7065726174696f6e20646964206e6f74207375636365656400604482015290519081900360640190fd5b60606120a58484600085614110565b600060038211156140dd57816000614095600283614eef565b6140a0906001615263565b90505b818110156140d6579050806002816140bb8187614eef565b6140c59190615263565b6140cf9190614eef565b90506140a3565b5092915050565b81156140eb57506001919050565b506000919050565b6000610e1161410a670de0b6b3a764000085614eb2565b836142a6565b6060824710156141a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161023b565b73ffffffffffffffffffffffffffffffffffffffff85163b614220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161023b565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051614249919061507b565b60006040518083038185875af1925050503d8060008114614286576040519150601f19603f3d011682016040523d82523d6000602084013e61428b565b606091505b509150915061429b8282866142d5565b979650505050505050565b6000806142b38385614eef565b90508281028085039085146142cd57506001019050610e14565b509050610e14565b606083156142e45750816120a8565b8251156142f45782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023b9190615011565b6040518060e001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000600281111561437057614370615234565b905290565b60405180604001604052806002906020820280368337509192915050565b73ffffffffffffffffffffffffffffffffffffffff811681146143b557600080fd5b50565b600080600080600060a086880312156143d057600080fd5b85356143db81614393565b945060208601356143eb81614393565b94979496505050506040830135926060810135926080909101359150565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561445b5761445b614409565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156144a8576144a8614409565b604052919050565b600082601f8301126144c157600080fd5b6040516040810181811067ffffffffffffffff821117156144e4576144e4614409565b80604052508060408401858111156144fb57600080fd5b845b8181101561451e57803561451081614393565b8352602092830192016144fd565b509195945050505050565b600080600080600060c0868803121561454157600080fd5b85359450602086013561455381614393565b9350604086013561456381614393565b925061457287606088016144b0565b915060a086013561458281614393565b809150509295509295909350565b600080600080600060a086880312156145a857600080fd5b85356145b381614393565b945060208601356145c381614393565b935060408601356145d381614393565b94979396509394606081013594506080013592915050565b6000606082840312156145fd57600080fd5b614605614438565b90508135815260208083013581830152604083013567ffffffffffffffff8082111561463057600080fd5b818501915085601f83011261464457600080fd5b81358181111561465657614656614409565b614686847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614461565b9150808252868482850101111561469c57600080fd5b808484018584013760008482840101525080604085015250505092915050565b600080600080608085870312156146d257600080fd5b843567ffffffffffffffff8111156146e957600080fd5b6146f5878288016145eb565b94505060208501359250604085013561470d81614393565b9396929550929360600135925050565b60006020828403121561472f57600080fd5b813567ffffffffffffffff81111561474657600080fd5b8201606081850312156120a857600080fd5b60008083601f84011261476a57600080fd5b50813567ffffffffffffffff81111561478257600080fd5b6020830191508360208260051b850101111561479d57600080fd5b9250929050565b6000806000604084860312156147b957600080fd5b83356147c481614393565b9250602084013567ffffffffffffffff8111156147e057600080fd5b6147ec86828701614758565b9497909650939450505050565b6000806040838503121561480c57600080fd5b50508035926020909101359150565b60008060006060848603121561483057600080fd5b83359250602084013561484281614393565b929592945050506040919091013590565b60008083601f84011261486557600080fd5b50813567ffffffffffffffff81111561487d57600080fd5b60208301915083602082850101111561479d57600080fd5b6000806000806000608086880312156148ad57600080fd5b853567ffffffffffffffff808211156148c557600080fd5b6148d189838a016145eb565b965060208801359550604088013591506148ea82614393565b9093506060870135908082111561490057600080fd5b5061490d88828901614853565b969995985093965092949392505050565b60006020828403121561493057600080fd5b813567ffffffffffffffff81111561494757600080fd5b61122a848285016145eb565b6000806040838503121561496657600080fd5b823561497181614393565b946020939093013593505050565b600080600080600060a0868803121561499757600080fd5b85356149a281614393565b945060208601356149b281614393565b935060408601356149c281614393565b925060608601356149d281614393565b949793965091946080013592915050565b60008060008060008060008060e0898b0312156149ff57600080fd5b883567ffffffffffffffff811115614a1657600080fd5b614a228b828c01614758565b909950975050602089013595506040890135614a3d81614393565b94506060890135614a4d81614393565b93506080890135614a5d81614393565b925060a0890135614a6d81614393565b8092505060c089013590509295985092959890939650565b600060208284031215614a9757600080fd5b5035919050565b60008060408385031215614ab157600080fd5b823591506020830135614ac381614393565b809150509250929050565b600082601f830112614adf57600080fd5b8135602067ffffffffffffffff80831115614afc57614afc614409565b8260051b614b0b838201614461565b9384528581018301938381019088861115614b2557600080fd5b84880192505b85831015614b6157823584811115614b435760008081fd5b614b518a87838c01016145eb565b8352509184019190840190614b2b565b98975050505050505050565b600080600080600060808688031215614b8557600080fd5b853567ffffffffffffffff80821115614b9d57600080fd5b614ba989838a01614ace565b96506020880135915080821115614bbf57600080fd5b50614bcc88828901614758565b9095509350506040860135614be081614393565b949793965091946060013592915050565b600060208284031215614c0357600080fd5b813567ffffffffffffffff811115614c1a57600080fd5b61122a84828501614ace565b600080600060608486031215614c3b57600080fd5b8335614c4681614393565b9250602084013561484281614393565b600080600080600060808688031215614c6e57600080fd5b853567ffffffffffffffff811115614c8557600080fd5b614c9188828901614758565b9096509450506020860135614ca581614393565b92506040860135614be081614393565b60008060208385031215614cc857600080fd5b823567ffffffffffffffff811115614cdf57600080fd5b614ceb85828601614758565b90969095509350505050565b60008060008060008060808789031215614d1057600080fd5b863567ffffffffffffffff80821115614d2857600080fd5b614d348a838b01614ace565b97506020890135915080821115614d4a57600080fd5b614d568a838b01614758565b909750955060408901359150614d6b82614393565b90935060608801359080821115614d8157600080fd5b50614d8e89828a01614853565b979a9699509497509295939492505050565b60008060008060a08587031215614db657600080fd5b8435614dc181614393565b93506020850135614dd181614393565b9250614de086604087016144b0565b91506080850135614df081614393565b939692955090935050565b600080600060608486031215614e1057600080fd5b8335614e1b81614393565b95602085013595506040909401359392505050565b60008060008060608587031215614e4657600080fd5b8435935060208501359250604085013567ffffffffffffffff811115614e6b57600080fd5b614e7787828801614853565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614eea57614eea614e83565b500290565b600082614f25577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082821015614f3c57614f3c614e83565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614fa557600080fd5b83018035915067ffffffffffffffff821115614fc057600080fd5b60200191503681900382131561479d57600080fd5b8183823760009101908152919050565b60005b83811015615000578181015183820152602001614fe8565b838111156115375750506000910152565b6020815260008251806020840152615030816040850160208701614fe5565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60006020828403121561507457600080fd5b5051919050565b6000825161508d818460208701614fe5565b9190910192915050565b608080825281810186905260009060a0600588901b8401810190840189845b8a8110156151e3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6087850301835281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18d360301811261511757600080fd5b8c018035855260208082013581870152606090604080840135368590037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe101811261516157600080fd5b8401803567ffffffffffffffff81111561517a57600080fd5b80360386131561518957600080fd5b84838b015280858b0152808483018c8c013760008a82018c0152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909801890197505094850194939093019250506001016150b6565b50505073ffffffffffffffffffffffffffffffffffffffff87166020850152915061520b9050565b73ffffffffffffffffffffffffffffffffffffffff939093166040820152606001529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000821982111561527657615276614e83565b500190565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261508d57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036152e0576152e0614e83565b5060010190565b6000602082840312156152f957600080fd5b815180151581146120a857600080fdfea2646970667358221220c6a3251de141cca820fc67d9117f0b79a7940be364def30d2c25b14d93553bcf64736f6c634300080d00330000000000000000000000004dfa40fdaa7694676899f8887a45603922609af4