60a060405234801561001057600080fd5b50604051612d20380380612d2083398101604081905261002f91610343565b336040518060400160405280600781526020016615195cdd13919560ca1b815250604051806040016040528060028152602001612a2760f11b815250816000908161007a9190610485565b5060016100878282610485565b5050506001600160a01b0381166100b857604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6100c1816102c1565b506000600a60146101000a81548160ff0219169083151502179055506001600b81905550886080818152505060405180608001604052808963ffffffff1681526020018863ffffffff168152602001876001600160401b031681526020018663ffffffff16815250601060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548163ffffffff021916908363ffffffff16021790555060408201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160106101000a81548163ffffffff021916908363ffffffff16021790555090505060405180608001604052808563ffffffff1681526020018463ffffffff168152602001836001600160401b031681526020018263ffffffff16815250600f60008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548163ffffffff021916908363ffffffff16021790555060408201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160106101000a81548163ffffffff021916908363ffffffff160217905550905050505050505050505050610544565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b805163ffffffff8116811461032757600080fd5b919050565b80516001600160401b038116811461032757600080fd5b60008060008060008060008060006101208a8c03121561036257600080fd5b8951985061037260208b01610313565b975061038060408b01610313565b965061038e60608b0161032c565b955061039c60808b01610313565b94506103aa60a08b01610313565b93506103b860c08b01610313565b92506103c660e08b0161032c565b91506103d56101008b01610313565b90509295985092959850929598565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061040e57607f821691505b60208210810361042e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610480576000816000526020600020601f850160051c8101602086101561045d5750805b601f850160051c820191505b8181101561047c57828155600101610469565b5050505b505050565b81516001600160401b0381111561049e5761049e6103e4565b6104b2816104ac84546103fa565b84610434565b602080601f8311600181146104e757600084156104cf5750858301515b600019600386901b1c1916600185901b17855561047c565b600085815260208120601f198616915b82811015610516578886015182559484019460019091019084016104f7565b50858210156105345787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6080516127ba610566600039600081816104330152610cf801526127ba6000f3fe6080604052600436106102255760003560e01c806370a0823111610123578063b88d4fde116100ab578063e3707e501161006f578063e3707e50146106bc578063e985e9c5146106dc578063ec0a9a0a146106fc578063f2fde38b1461071c578063fff288101461073c57600080fd5b8063b88d4fde14610627578063bedb86fb14610647578063c87b56dd14610667578063cded205714610687578063e086e5ec146106a757600080fd5b806395d89b41116100f257806395d89b4114610589578063a0712d681461059e578063a22cb465146105b1578063a5f5cebf146105d1578063b0ea7dcf1461061457600080fd5b806370a0823114610509578063715018a6146105295780638462151c1461053e5780638da5cb5b1461056b57600080fd5b80632b291058116101b15780634f6ccce7116101755780634f6ccce71461047557806355f804b3146104955780635b92ac0d146104b55780635c975abb146104ca5780636352211e146104e957600080fd5b80632b2910581461036f5780632eb4a7ab146103eb5780632f745c591461040157806332cb6b0c1461042157806342842e0e1461045557600080fd5b8063095ea7b3116101f8578063095ea7b3146102ce57806318160ddd146102f057806323b872dd1461030f57806326a49e371461032f57806327c1c94a1461034f57600080fd5b806301ffc9a71461022a57806305e9cf4b1461025f57806306fdde0314610274578063081812fc14610296575b600080fd5b34801561023657600080fd5b5061024a61024536600461206c565b61076c565b60405190151581526020015b60405180910390f35b34801561026b57600080fd5b5061024a610797565b34801561028057600080fd5b506102896107c6565b60405161025691906120d9565b3480156102a257600080fd5b506102b66102b13660046120ec565b610858565b6040516001600160a01b039091168152602001610256565b3480156102da57600080fd5b506102ee6102e9366004612121565b610881565b005b3480156102fc57600080fd5b506008545b604051908152602001610256565b34801561031b57600080fd5b506102ee61032a36600461214b565b610890565b34801561033b57600080fd5b5061030161034a3660046120ec565b610920565b34801561035b57600080fd5b506102ee61036a3660046120ec565b610940565b34801561037b57600080fd5b50600f546103b29063ffffffff80821691600160201b81048216916001600160401b03600160401b83041691600160801b90041684565b6040805163ffffffff958616815293851660208501526001600160401b0390921691830191909152919091166060820152608001610256565b3480156103f757600080fd5b50610301600d5481565b34801561040d57600080fd5b5061030161041c366004612121565b61094d565b34801561042d57600080fd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b34801561046157600080fd5b506102ee61047036600461214b565b6109b2565b34801561048157600080fd5b506103016104903660046120ec565b6109d2565b3480156104a157600080fd5b506102ee6104b0366004612212565b610a2b565b3480156104c157600080fd5b5061024a610a3f565b3480156104d657600080fd5b50600a54600160a01b900460ff1661024a565b3480156104f557600080fd5b506102b66105043660046120ec565b610a6c565b34801561051557600080fd5b5061030161052436600461225a565b610a77565b34801561053557600080fd5b506102ee610abf565b34801561054a57600080fd5b5061055e61055936600461225a565b610ad3565b6040516102569190612275565b34801561057757600080fd5b50600a546001600160a01b03166102b6565b34801561059557600080fd5b50610289610b6a565b6102ee6105ac3660046120ec565b610b79565b3480156105bd57600080fd5b506102ee6105cc3660046122c9565b610e0f565b3480156105dd57600080fd5b506010546103b29063ffffffff80821691600160201b81048216916001600160401b03600160401b83041691600160801b90041684565b6102ee6106223660046122fc565b610e1a565b34801561063357600080fd5b506102ee610642366004612370565b61107e565b34801561065357600080fd5b506102ee6106623660046123eb565b611095565b34801561067357600080fd5b506102896106823660046120ec565b6110b3565b34801561069357600080fd5b506102ee6106a236600461241a565b61111b565b3480156106b357600080fd5b506102ee6111d3565b3480156106c857600080fd5b506102ee6106d736600461244c565b611214565b3480156106e857600080fd5b5061024a6106f7366004612476565b611340565b34801561070857600080fd5b506102ee6107173660046124a0565b61136e565b34801561072857600080fd5b506102ee61073736600461225a565b611488565b34801561074857600080fd5b5061024a61075736600461225a565b600e6020526000908152604090205460ff1681565b60006001600160e01b0319821663780e9d6360e01b14806107915750610791826114c3565b92915050565b60105460009063ffffffff1643108015906107c15750601054600160201b900463ffffffff164311155b905090565b6060600080546107d5906124f4565b80601f0160208091040260200160405190810160405280929190818152602001828054610801906124f4565b801561084e5780601f106108235761010080835404028352916020019161084e565b820191906000526020600020905b81548152906001019060200180831161083157829003601f168201915b5050505050905090565b600061086382611513565b506000828152600460205260409020546001600160a01b0316610791565b61088c82823361154c565b5050565b6001600160a01b0382166108bf57604051633250574960e11b8152600060048201526024015b60405180910390fd5b60006108cc838333611559565b9050836001600160a01b0316816001600160a01b03161461091a576040516364283d7b60e01b81526001600160a01b03808616600483015260248201849052821660448201526064016108b6565b50505050565b600f5460009061079190600160401b90046001600160401b031683612544565b610948611576565b600d55565b600061095883610a77565b82106109895760405163295f44f760e21b81526001600160a01b0384166004820152602481018390526044016108b6565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b6109cd8383836040518060200160405280600081525061107e565b505050565b60006109dd60085490565b8210610a065760405163295f44f760e21b815260006004820152602481018390526044016108b6565b60088281548110610a1957610a1961255b565b90600052602060002001549050919050565b610a33611576565b600c61088c82826125c1565b600f5460009063ffffffff1643108015906107c1575050600f54600160201b900463ffffffff1643111590565b600061079182611513565b60006001600160a01b038216610aa3576040516322718ad960e21b8152600060048201526024016108b6565b506001600160a01b031660009081526003602052604090205490565b610ac7611576565b610ad160006115a3565b565b60606000610ae083610a77565b90506000816001600160401b03811115610afc57610afc612187565b604051908082528060200260200182016040528015610b25578160200160208202803683370190505b50905060005b82811015610b6257610b3d858261094d565b828281518110610b4f57610b4f61255b565b6020908102919091010152600101610b2b565b509392505050565b6060600180546107d5906124f4565b610b816115f5565b60408051608081018252600f5463ffffffff808216808452600160201b8304821660208501526001600160401b03600160401b84041694840194909452600160801b909104166060820152904310801590610be65750806020015163ffffffff164311155b610c275760405162461bcd60e51b81526020600482015260126024820152714d696e74206973206e6f742061637469766560701b60448201526064016108b6565b8115801590610c405750806060015163ffffffff168211155b610c855760405162461bcd60e51b8152602060048201526016602482015275125b9d985b1a5908185b5bdd5b9d081d1bc81b5a5b9d60521b60448201526064016108b6565b6040810151610c9d906001600160401b031683612544565b3414610ce35760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420616d6f756e7420746f2070617960581b60448201526064016108b6565b6000610cee60085490565b90506000610d1c827f0000000000000000000000000000000000000000000000000000000000000000612680565b905060008111610d595760405162461bcd60e51b815260206004820152600860248201526714dbdb19081bdd5d60c21b60448201526064016108b6565b6000818510610d685781610d6a565b845b9050600084604001516001600160401b031682610d879190612544565b905060015b828111610db857610da633610da18388612693565b61161f565b80610db0816126a6565b915050610d8c565b506000610dc58234612680565b90508015610dfc57604051339082156108fc029083906000818181858888f19350505050158015610dfa573d6000803e3d6000fd5b505b505050505050610e0c6001600b55565b50565b61088c338383611684565b610e226115f5565b6040805160808101825260105463ffffffff808216808452600160201b8304821660208501526001600160401b03600160401b84041694840194909452600160801b909104166060820152904310801590610e875750806020015163ffffffff164311155b610ecb5760405162461bcd60e51b8152602060048201526015602482015274574c204d696e74206973206e6f742061637469766560581b60448201526064016108b6565b80604001516001600160401b03163414610f1f5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420616d6f756e7420746f2070617960581b60448201526064016108b6565b336000908152600e602052604090205460ff1615610f705760405162461bcd60e51b815260206004820152600e60248201526d105b1c9958591e48135a5b9d195960921b60448201526064016108b6565b6000610f7b60085490565b9050816060015163ffffffff168110610fc15760405162461bcd60e51b815260206004820152600860248201526714dbdb19081bdd5d60c21b60448201526064016108b6565b604080513360208201526000910160408051601f198184030181528282528051602091820120908301520160405160208183030381529060405280519060200120905061104585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050600d549150849050611723565b611062576040516309bde33960e01b815260040160405180910390fd5b61107133610da1846001612693565b50505061088c6001600b55565b611089848484610890565b61091a84848484611739565b61109d611576565b80156110ab57610e0c611862565b610e0c6118c2565b60606110be82611513565b5060006110c96118fe565b905060008151116110e95760405180602001604052806000815250611114565b806110f38461190d565b6040516020016111049291906126bf565b6040516020818303038152906040525b9392505050565b611123611576565b60008163ffffffff16116111795760405162461bcd60e51b815260206004820152601760248201527f496e76616c6964206d6178206d696e742070657220747800000000000000000060448201526064016108b6565b600f805463ffffffff60801b1916600160801b63ffffffff8416908102919091179091556040519081527f3d154162b387034604caa9fa99c9dca27278e0c7e209cb16f58b082d770e55759060200160405180910390a150565b6111db611576565b600a546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610e0c573d6000803e3d6000fd5b61121c611576565b6000816001600160401b0316116112655760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b60448201526064016108b6565b6000826001600160401b0316116112ae5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420707269636560981b60448201526064016108b6565b601080546001600160401b03808516600160401b9081026fffffffffffffffff00000000000000001993841617909355600f805491851690930291161790556040517f0b250d8f5a257607198d490a449e479942e81c33c742a763f9c8d8e474d805fd9061133490849084906001600160401b0392831681529116602082015260400190565b60405180910390a15050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b611376611576565b8263ffffffff168463ffffffff16106113a15760405162461bcd60e51b81526004016108b6906126ee565b8063ffffffff168263ffffffff16106113cc5760405162461bcd60e51b81526004016108b6906126ee565b8163ffffffff168363ffffffff16106113f75760405162461bcd60e51b81526004016108b6906126ee565b6010805463ffffffff858116600160201b81810267ffffffffffffffff199485168a851690811791909117909555600f805487851692830295169388169384179490941790935560408051948552602085019190915283015260608201527f944a6bad364fa8509b81b8b50736b5340e8f10c15a74a2b6054add149a8b0f759060800160405180910390a150505050565b611490611576565b6001600160a01b0381166114ba57604051631e4fbdf760e01b8152600060048201526024016108b6565b610e0c816115a3565b60006001600160e01b031982166380ac58cd60e01b14806114f457506001600160e01b03198216635b5e139f60e01b145b8061079157506301ffc9a760e01b6001600160e01b0319831614610791565b6000818152600260205260408120546001600160a01b03168061079157604051637e27328960e01b8152600481018490526024016108b6565b6109cd838383600161199f565b6000611563611aa5565b61156e848484611ad0565b949350505050565b600a546001600160a01b03163314610ad15760405163118cdaa760e01b81523360048201526024016108b6565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6002600b540361161857604051633ee5aeb560e01b815260040160405180910390fd5b6002600b55565b6001600160a01b03821661164957604051633250574960e11b8152600060048201526024016108b6565b600061165783836000611559565b90506001600160a01b038116156109cd576040516339e3563760e11b8152600060048201526024016108b6565b6001600160a01b0382166116b657604051630b61174360e31b81526001600160a01b03831660048201526024016108b6565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000826117308584611b9d565b14949350505050565b6001600160a01b0383163b1561091a57604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061177b903390889087908790600401612714565b6020604051808303816000875af19250505080156117b6575060408051601f3d908101601f191682019092526117b391810190612751565b60015b61181f573d8080156117e4576040519150601f19603f3d011682016040523d82523d6000602084013e6117e9565b606091505b50805160000361181757604051633250574960e11b81526001600160a01b03851660048201526024016108b6565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461185b57604051633250574960e11b81526001600160a01b03851660048201526024016108b6565b5050505050565b61186a611aa5565b600a805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586118a53390565b6040516001600160a01b03909116815260200160405180910390a1565b6118ca611bd8565b600a805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336118a5565b6060600c80546107d5906124f4565b6060600061191a83611c02565b60010190506000816001600160401b0381111561193957611939612187565b6040519080825280601f01601f191660200182016040528015611963576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461196d57509392505050565b80806119b357506001600160a01b03821615155b15611a755760006119c384611513565b90506001600160a01b038316158015906119ef5750826001600160a01b0316816001600160a01b031614155b8015611a025750611a008184611340565b155b15611a2b5760405163a9fbf51f60e01b81526001600160a01b03841660048201526024016108b6565b8115611a735783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b600a54600160a01b900460ff1615610ad15760405163d93c066560e01b815260040160405180910390fd5b600080611ade858585611cda565b90506001600160a01b038116611b3b57611b3684600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611b5e565b846001600160a01b0316816001600160a01b031614611b5e57611b5e8185611dd3565b6001600160a01b038516611b7a57611b7584611e64565b61156e565b846001600160a01b0316816001600160a01b03161461156e5761156e8585611f13565b600081815b8451811015610b6257611bce82868381518110611bc157611bc161255b565b6020026020010151611f63565b9150600101611ba2565b600a54600160a01b900460ff16610ad157604051638dfc202b60e01b815260040160405180910390fd5b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611c415772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611c6d576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611c8b57662386f26fc10000830492506010015b6305f5e1008310611ca3576305f5e100830492506008015b6127108310611cb757612710830492506004015b60648310611cc9576064830492506002015b600a83106107915760010192915050565b6000828152600260205260408120546001600160a01b0390811690831615611d0757611d07818486611f8f565b6001600160a01b03811615611d4557611d2460008560008061199f565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615611d74576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000611dde83610a77565b600083815260076020526040902054909150808214611e31576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611e7690600190612680565b60008381526009602052604081205460088054939450909284908110611e9e57611e9e61255b565b906000526020600020015490508060088381548110611ebf57611ebf61255b565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611ef757611ef761276e565b6001900381819060005260206000200160009055905550505050565b60006001611f2084610a77565b611f2a9190612680565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6000818310611f7f576000828152602084905260409020611114565b5060009182526020526040902090565b611f9a838383611ff3565b6109cd576001600160a01b038316611fc857604051637e27328960e01b8152600481018290526024016108b6565b60405163177e802f60e01b81526001600160a01b0383166004820152602481018290526044016108b6565b60006001600160a01b0383161580159061156e5750826001600160a01b0316846001600160a01b0316148061202d575061202d8484611340565b8061156e5750506000908152600460205260409020546001600160a01b03908116911614919050565b6001600160e01b031981168114610e0c57600080fd5b60006020828403121561207e57600080fd5b813561111481612056565b60005b838110156120a457818101518382015260200161208c565b50506000910152565b600081518084526120c5816020860160208601612089565b601f01601f19169290920160200192915050565b60208152600061111460208301846120ad565b6000602082840312156120fe57600080fd5b5035919050565b80356001600160a01b038116811461211c57600080fd5b919050565b6000806040838503121561213457600080fd5b61213d83612105565b946020939093013593505050565b60008060006060848603121561216057600080fd5b61216984612105565b925061217760208501612105565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b03808411156121b7576121b7612187565b604051601f8501601f19908116603f011681019082821181831017156121df576121df612187565b816040528093508581528686860111156121f857600080fd5b858560208301376000602087830101525050509392505050565b60006020828403121561222457600080fd5b81356001600160401b0381111561223a57600080fd5b8201601f8101841361224b57600080fd5b61156e8482356020840161219d565b60006020828403121561226c57600080fd5b61111482612105565b6020808252825182820181905260009190848201906040850190845b818110156122ad57835183529284019291840191600101612291565b50909695505050505050565b8035801515811461211c57600080fd5b600080604083850312156122dc57600080fd5b6122e583612105565b91506122f3602084016122b9565b90509250929050565b6000806020838503121561230f57600080fd5b82356001600160401b038082111561232657600080fd5b818501915085601f83011261233a57600080fd5b81358181111561234957600080fd5b8660208260051b850101111561235e57600080fd5b60209290920196919550909350505050565b6000806000806080858703121561238657600080fd5b61238f85612105565b935061239d60208601612105565b92506040850135915060608501356001600160401b038111156123bf57600080fd5b8501601f810187136123d057600080fd5b6123df8782356020840161219d565b91505092959194509250565b6000602082840312156123fd57600080fd5b611114826122b9565b803563ffffffff8116811461211c57600080fd5b60006020828403121561242c57600080fd5b61111482612406565b80356001600160401b038116811461211c57600080fd5b6000806040838503121561245f57600080fd5b61246883612435565b91506122f360208401612435565b6000806040838503121561248957600080fd5b61249283612105565b91506122f360208401612105565b600080600080608085870312156124b657600080fd5b6124bf85612406565b93506124cd60208601612406565b92506124db60408601612406565b91506124e960608601612406565b905092959194509250565b600181811c9082168061250857607f821691505b60208210810361252857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107915761079161252e565b634e487b7160e01b600052603260045260246000fd5b601f8211156109cd576000816000526020600020601f850160051c8101602086101561259a5750805b601f850160051c820191505b818110156125b9578281556001016125a6565b505050505050565b81516001600160401b038111156125da576125da612187565b6125ee816125e884546124f4565b84612571565b602080601f831160018114612623576000841561260b5750858301515b600019600386901b1c1916600185901b1785556125b9565b600085815260208120601f198616915b8281101561265257888601518255948401946001909101908401612633565b50858210156126705787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b818103818111156107915761079161252e565b808201808211156107915761079161252e565b6000600182016126b8576126b861252e565b5060010190565b600083516126d1818460208801612089565b8351908301906126e5818360208801612089565b01949350505050565b6020808252600c908201526b496e76616c69642074696d6560a01b604082015260600190565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612747908301846120ad565b9695505050505050565b60006020828403121561276357600080fd5b815161111481612056565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e07c8444e83a0bb61a45a71c400fd61d3ab24b21125433efd16cae6cb7fe469a64736f6c634300081900330000000000000000000000000000000000000000000000000000000000004e200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000121eac0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000000000000121eac10000000000000000000000000000000000000000000000000000000001ba81400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000a