608060405264e8d4a510006005556404a817c8006006556404a817c8006007556329b92700600855662386f26fc100006009556003600a556003600b556003600c556000600d556003600e556003600f556003601055600960115560165460125560175460135560185460145560195460155573612e05a2ba306b653dcbe23552856bfd69c11680601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073612e05a2ba306b653dcbe23552856bfd69c11680601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507389568569da9c83cb35e59f92f5df2f6ca829eeee601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000602160146101000a81548160ff0219169083151502179055506000602160156101000a81548160ff021916908315150217905550348015620001f757600080fd5b5060006200020a6200072f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003749190620007ca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004029190620007ca565b6040518363ffffffff1660e01b8152600401620004219291906200080d565b6020604051808303816000875af115801562000441573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004679190620007ca565b602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060055460026000620004be6200072f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620005126200073760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006bf6200072f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60055460405162000720919062000855565b60405180910390a35062000872565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007928262000765565b9050919050565b620007a48162000785565b8114620007b057600080fd5b50565b600081519050620007c48162000799565b92915050565b600060208284031215620007e357620007e262000760565b5b6000620007f384828501620007b3565b91505092915050565b620008078162000785565b82525050565b6000604082019050620008246000830185620007fc565b620008336020830184620007fc565b9392505050565b6000819050919050565b6200084f816200083a565b82525050565b60006020820190506200086c600083018462000844565b92915050565b61427c80620008826000396000f3fe6080604052600436106102345760003560e01c806370a082311161012e578063d3e6cee0116100ab578063e632313c1161006f578063e632313c146107fa578063f2fde38b14610823578063f42938901461084c578063fc588c0414610863578063fd01bd4c1461088c5761023b565b8063d3e6cee014610711578063d89135cd1461073c578063d9f7e4df14610767578063dc903ba114610792578063dd62ed3e146107bd5761023b565b8063a9059cbb116100f2578063a9059cbb1461062a578063abb876b014610667578063af465a2714610692578063bbc8ac8b146106bd578063cef58a6c146106e85761023b565b806370a0823114610555578063715018a6146105925780638da5cb5b146105a95780638ea78153146105d457806395d89b41146105ff5761023b565b80632e8fa821116101bc57806351bc3c851161018057806351bc3c85146104ba5780635dbc2fe1146104d157806363a640ff146104e8578063653092fd146105135780636c0a24eb1461052a5761023b565b80632e8fa821146103e5578063313ce5671461041057806336cf7c871461043b57806337ebf7d41461046657806349bd5a5e1461048f5761023b565b806318160ddd1161020357806318160ddd146102fe578063233296f01461032957806323b872dd1461035457806323bbf9e71461039157806327a14fc2146103bc5761023b565b806306fdde0314610240578063095ea7b31461026b5780630cdf2187146102a85780631694505e146102d35761023b565b3661023b57005b600080fd5b34801561024c57600080fd5b506102556108b7565b60405161026291906132d2565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d919061338d565b6108f4565b60405161029f91906133e8565b60405180910390f35b3480156102b457600080fd5b506102bd610912565b6040516102ca9190613412565b60405180910390f35b3480156102df57600080fd5b506102e8610918565b6040516102f5919061348c565b60405180910390f35b34801561030a57600080fd5b5061031361093e565b6040516103209190613412565b60405180910390f35b34801561033557600080fd5b5061033e610948565b60405161034b9190613412565b60405180910390f35b34801561036057600080fd5b5061037b600480360381019061037691906134a7565b61094e565b60405161038891906133e8565b60405180910390f35b34801561039d57600080fd5b506103a6610a27565b6040516103b39190613412565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de91906134fa565b610a2d565b005b3480156103f157600080fd5b506103fa610aef565b6040516104079190613412565b60405180910390f35b34801561041c57600080fd5b50610425610af5565b6040516104329190613543565b60405180910390f35b34801561044757600080fd5b50610450610afe565b60405161045d919061357f565b60405180910390f35b34801561047257600080fd5b5061048d600480360381019061048891906135c6565b610b24565b005b34801561049b57600080fd5b506104a4610bfd565b6040516104b19190613602565b60405180910390f35b3480156104c657600080fd5b506104cf610c23565b005b3480156104dd57600080fd5b506104e6610ca7565b005b3480156104f457600080fd5b506104fd610d59565b60405161050a9190613412565b60405180910390f35b34801561051f57600080fd5b50610528610d5f565b005b34801561053657600080fd5b5061053f610de2565b60405161054c9190613412565b60405180910390f35b34801561056157600080fd5b5061057c6004803603810190610577919061361d565b610de8565b6040516105899190613412565b60405180910390f35b34801561059e57600080fd5b506105a7610e31565b005b3480156105b557600080fd5b506105be610f84565b6040516105cb9190613602565b60405180910390f35b3480156105e057600080fd5b506105e9610fad565b6040516105f691906133e8565b60405180910390f35b34801561060b57600080fd5b50610614610fc0565b60405161062191906132d2565b60405180910390f35b34801561063657600080fd5b50610651600480360381019061064c919061338d565b610ffd565b60405161065e91906133e8565b60405180910390f35b34801561067357600080fd5b5061067c61101b565b6040516106899190613412565b60405180910390f35b34801561069e57600080fd5b506106a7611021565b6040516106b49190613412565b60405180910390f35b3480156106c957600080fd5b506106d2611027565b6040516106df9190613412565b60405180910390f35b3480156106f457600080fd5b5061070f600480360381019061070a91906134fa565b61102d565b005b34801561071d57600080fd5b50610726611098565b6040516107339190613412565b60405180910390f35b34801561074857600080fd5b5061075161109e565b60405161075e9190613412565b60405180910390f35b34801561077357600080fd5b5061077c6110a8565b6040516107899190613412565b60405180910390f35b34801561079e57600080fd5b506107a76110ae565b6040516107b49190613412565b60405180910390f35b3480156107c957600080fd5b506107e460048036038101906107df919061364a565b6110b4565b6040516107f19190613412565b60405180910390f35b34801561080657600080fd5b50610821600480360381019061081c91906134fa565b61113b565b005b34801561082f57600080fd5b5061084a6004803603810190610845919061361d565b6111a6565b005b34801561085857600080fd5b506108616112b6565b005b34801561086f57600080fd5b5061088a600480360381019061088591906134fa565b611332565b005b34801561089857600080fd5b506108a16113e5565b6040516108ae9190613412565b60405180910390f35b60606040518060400160405280600d81526020017f4275726e74204c6f627374657200000000000000000000000000000000000000815250905090565b60006109086109016113eb565b84846113f3565b6001905092915050565b600e5481565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b60075481565b600061095b8484846115bc565b610a1c846109676113eb565b610a178560405180606001604052806028815260200161421f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109cd6113eb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f529092919063ffffffff16565b6113f3565b600190509392505050565b600a5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6e6113eb565b73ffffffffffffffffffffffffffffffffffffffff1614610a8e57600080fd5b610aa460c8600554611fb690919063ffffffff16565b8111610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906136fc565b60405180910390fd5b8060068190555050565b60085481565b60006006905090565b601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b2c6113eb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb090613768565b60405180910390fd5b80601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c646113eb565b73ffffffffffffffffffffffffffffffffffffffff1614610c8457600080fd5b6000610c8f30610de8565b90506000811115610ca457610ca381612000565b5b50565b610caf6113eb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3390613768565b60405180910390fd5b6001602160156101000a81548160ff021916908315150217905550565b600d5481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610da06113eb565b73ffffffffffffffffffffffffffffffffffffffff1614610dc057600080fd5b60016011819055506002600e819055506002600a819055506001600d81905550565b60065481565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e396113eb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd90613768565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b602160159054906101000a900460ff1681565b60606040518060400160405280600881526020017ff09f94a5f09fa69e000000000000000000000000000000000000000000000000815250905090565b600061101161100a6113eb565b84846115bc565b6001905092915050565b600c5481565b60055481565b60105481565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106e6113eb565b73ffffffffffffffffffffffffffffffffffffffff161461108e57600080fd5b8060098190555050565b60115481565b6000601a54905090565b600f5481565b600b5481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661117c6113eb565b73ffffffffffffffffffffffffffffffffffffffff161461119c57600080fd5b8060088190555050565b6111ae6113eb565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461123b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123290613768565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a1906137fa565b60405180910390fd5b6112b381612279565b50565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112f76113eb565b73ffffffffffffffffffffffffffffffffffffffff161461131757600080fd5b6000479050600081111561132f5761132e8161233d565b5b50565b6402540be40081101561137a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137190613866565b60405180910390fd5b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113bb6113eb565b73ffffffffffffffffffffffffffffffffffffffff16146113db57600080fd5b8060078190555050565b601a5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611462576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611459906138f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c89061398a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115af9190613412565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361162b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162290613a1c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361169a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169190613aae565b60405180910390fd5b600081116116dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d490613b40565b60405180910390fd5b601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117815750601b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61178a57600080fd5b600060019050611798610f84565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561180657506117d6610f84565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561183e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561187657503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e8d57602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119265750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119d15750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615806119d05750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b5b15611a7b576006546119f4836119e686610de8565b61243890919063ffffffff16565b1115611a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2c90613bd2565b60405180910390fd5b600754821115611a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7190613c64565b60405180910390fd5b5b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b265750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b7c5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bd25750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bfc57600a54601681905550600b54601781905550600c54601881905550600d546019819055505b602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ca75750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611cfd5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d535750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d7d57600e54601681905550600f546017819055506010546018819055506011546019819055505b602160149054906101000a900460ff16158015611de85750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e8c576000611df830610de8565b9050600854811115611e0e57611e0d81612496565b5b6000479050602160159054906101000a900460ff16158015611e305750600081115b15611e4357611e3e4761233d565b611e89565b602160159054906101000a900460ff168015611e60575060095481115b15611e88576000611e7b600283611fb690919063ffffffff16565b9050611e86816125bf565b505b5b50505b5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f2e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f3857600090505b611f44848484846125d5565b611f4c612b9f565b50505050565b6000838311158290611f9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f9191906132d2565b60405180910390fd5b5060008385611fa99190613cb3565b9050809150509392505050565b6000611ff883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612bc5565b905092915050565b6001602160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561203857612037613ce7565b5b6040519080825280602002602001820160405280156120665781602001602082028036833780820191505090505b509050308160008151811061207e5761207d613d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612125573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121499190613d5a565b8160018151811061215d5761215c613d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121c430602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113f3565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612228959493929190613e80565b600060405180830381600087803b15801561224257600080fd5b505af1158015612256573d6000803e3d6000fd5b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61238d600284611fb690919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156123b8573d6000803e3d6000fd5b50601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612409600284611fb690919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612434573d6000803e3d6000fd5b5050565b60008082846124479190613eda565b90508381101561248c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248390613f7c565b60405180910390fd5b8091505092915050565b6001602160146101000a81548160ff02191690831515021790555060006125186124f56016546124e76019546124d960185460175461243890919063ffffffff16565b61243890919063ffffffff16565b61243890919063ffffffff16565b61250a84601654612c2890919063ffffffff16565b611fb690919063ffffffff16565b90506000612530600283611fb690919063ffffffff16565b905060006125478285612ca290919063ffffffff16565b9050600047905061255782612000565b600061259083612582866125748647612ca290919063ffffffff16565b612c2890919063ffffffff16565b611fb690919063ffffffff16565b905061259c8482612cec565b50505050506000602160146101000a81548160ff02191690831515021790555050565b60008111156125d2576125d181612dec565b5b50565b806125e3576125e2613045565b5b6125eb61320a565b612613606461260560175486612c2890919063ffffffff16565b611fb690919063ffffffff16565b816020018181525050612644606461263660165486612c2890919063ffffffff16565b611fb690919063ffffffff16565b816000018181525050612675606461266760185486612c2890919063ffffffff16565b611fb690919063ffffffff16565b8160400181815250506126a6606461269860195486612c2890919063ffffffff16565b611fb690919063ffffffff16565b81606001818152505061270881600001516126fa83602001516126ec85606001516126de87604001518a612ca290919063ffffffff16565b612ca290919063ffffffff16565b612ca290919063ffffffff16565b612ca290919063ffffffff16565b816080018181525050600061272a826020015185612ca290919063ffffffff16565b905061273a8683602001516130c0565b61278c81600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca290919063ffffffff16565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128258260800151600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243890919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129006128868360000151846020015161243890919063ffffffff16565b6128f284606001516128e48660400151600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243890919063ffffffff16565b61243890919063ffffffff16565b61243890919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550602160159054906101000a900460ff1680156129ad5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b80156129e557503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612a3f5750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b8015612af05750602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480612aef5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b5b15612b2657612b25602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683602001516130c0565b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460800151604051612b879190613412565b60405180910390a3612b97612b9f565b505050505050565b601254601681905550601354601781905550601454601881905550601554601981905550565b60008083118290612c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c0391906132d2565b60405180910390fd5b5060008385612c1b9190613fcb565b9050809150509392505050565b6000808303612c3a5760009050612c9c565b60008284612c489190613ffc565b9050828482612c579190613fcb565b14612c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8e906140c8565b60405180910390fd5b809150505b92915050565b6000612ce483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f52565b905092915050565b612d1930602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113f3565b602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612da296959493929190614109565b60606040518083038185885af1158015612dc0573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612de5919061417f565b5050505050565b6000600267ffffffffffffffff811115612e0957612e08613ce7565b5b604051908082528060200260200182016040528015612e375781602001602082028036833780820191505090505b509050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ecb9190613d5a565b81600081518110612edf57612ede613d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612f5057612f4f613d16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6f9de9583600084601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161300f94939291906141d2565b6000604051808303818588803b15801561302857600080fd5b505af115801561303c573d6000803e3d6000fd5b50505050505050565b600060175414801561305957506000601654145b801561306757506000601854145b801561307557506000601954145b6130be5760175460138190555060165460128190555060185460148190555060195460158190555060006017819055506000601681905550600060188190555060006019819055505b565b6130c982610de8565b8111156130d557600080fd5b61312781600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca290919063ffffffff16565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061317f81600554612ca290919063ffffffff16565b60058190555061319a81601a5461243890919063ffffffff16565b601a81905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516131fe9190613412565b60405180910390a35050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015613273578082015181840152602081019050613258565b83811115613282576000848401525b50505050565b6000601f19601f8301169050919050565b60006132a482613239565b6132ae8185613244565b93506132be818560208601613255565b6132c781613288565b840191505092915050565b600060208201905081810360008301526132ec8184613299565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613324826132f9565b9050919050565b61333481613319565b811461333f57600080fd5b50565b6000813590506133518161332b565b92915050565b6000819050919050565b61336a81613357565b811461337557600080fd5b50565b60008135905061338781613361565b92915050565b600080604083850312156133a4576133a36132f4565b5b60006133b285828601613342565b92505060206133c385828601613378565b9150509250929050565b60008115159050919050565b6133e2816133cd565b82525050565b60006020820190506133fd60008301846133d9565b92915050565b61340c81613357565b82525050565b60006020820190506134276000830184613403565b92915050565b6000819050919050565b600061345261344d613448846132f9565b61342d565b6132f9565b9050919050565b600061346482613437565b9050919050565b600061347682613459565b9050919050565b6134868161346b565b82525050565b60006020820190506134a1600083018461347d565b92915050565b6000806000606084860312156134c0576134bf6132f4565b5b60006134ce86828701613342565b93505060206134df86828701613342565b92505060406134f086828701613378565b9150509250925092565b6000602082840312156135105761350f6132f4565b5b600061351e84828501613378565b91505092915050565b600060ff82169050919050565b61353d81613527565b82525050565b60006020820190506135586000830184613534565b92915050565b6000613569826132f9565b9050919050565b6135798161355e565b82525050565b60006020820190506135946000830184613570565b92915050565b6135a38161355e565b81146135ae57600080fd5b50565b6000813590506135c08161359a565b92915050565b6000602082840312156135dc576135db6132f4565b5b60006135ea848285016135b1565b91505092915050565b6135fc81613319565b82525050565b600060208201905061361760008301846135f3565b92915050565b600060208284031215613633576136326132f4565b5b600061364184828501613342565b91505092915050565b60008060408385031215613661576136606132f4565b5b600061366f85828601613342565b925050602061368085828601613342565b9150509250929050565b7f416d6f756e74206d7573742062652067726561746572207468616e20302e352560008201527f206f6620737570706c7900000000000000000000000000000000000000000000602082015250565b60006136e6602a83613244565b91506136f18261368a565b604082019050919050565b60006020820190508181036000830152613715816136d9565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613752602083613244565b915061375d8261371c565b602082019050919050565b6000602082019050818103600083015261378181613745565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137e4602683613244565b91506137ef82613788565b604082019050919050565b60006020820190508181036000830152613813816137d7565b9050919050565b7f6e656761746976652067686f7374207269646572000000000000000000000000600082015250565b6000613850601483613244565b915061385b8261381a565b602082019050919050565b6000602082019050818103600083015261387f81613843565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138e2602483613244565b91506138ed82613886565b604082019050919050565b60006020820190508181036000830152613911816138d5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613974602283613244565b915061397f82613918565b604082019050919050565b600060208201905081810360008301526139a381613967565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a06602583613244565b9150613a11826139aa565b604082019050919050565b60006020820190508181036000830152613a35816139f9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a98602383613244565b9150613aa382613a3c565b604082019050919050565b60006020820190508181036000830152613ac781613a8b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613b2a602983613244565b9150613b3582613ace565b604082019050919050565b60006020820190508181036000830152613b5981613b1d565b9050919050565b7f596f7520617265206265696e67206772656564792e20457863656564696e672060008201527f4d61782057616c6c65742e000000000000000000000000000000000000000000602082015250565b6000613bbc602b83613244565b9150613bc782613b60565b604082019050919050565b60006020820190508181036000830152613beb81613baf565b9050919050565b7f536c6f7720646f776e2062756464792e2e2e74686572652069732061206d617860008201527f207472616e73616374696f6e0000000000000000000000000000000000000000602082015250565b6000613c4e602c83613244565b9150613c5982613bf2565b604082019050919050565b60006020820190508181036000830152613c7d81613c41565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613cbe82613357565b9150613cc983613357565b925082821015613cdc57613cdb613c84565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613d548161332b565b92915050565b600060208284031215613d7057613d6f6132f4565b5b6000613d7e84828501613d45565b91505092915050565b6000819050919050565b6000613dac613da7613da284613d87565b61342d565b613357565b9050919050565b613dbc81613d91565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613df781613319565b82525050565b6000613e098383613dee565b60208301905092915050565b6000602082019050919050565b6000613e2d82613dc2565b613e378185613dcd565b9350613e4283613dde565b8060005b83811015613e73578151613e5a8882613dfd565b9750613e6583613e15565b925050600181019050613e46565b5085935050505092915050565b600060a082019050613e956000830188613403565b613ea26020830187613db3565b8181036040830152613eb48186613e22565b9050613ec360608301856135f3565b613ed06080830184613403565b9695505050505050565b6000613ee582613357565b9150613ef083613357565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f2557613f24613c84565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f66601b83613244565b9150613f7182613f30565b602082019050919050565b60006020820190508181036000830152613f9581613f59565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613fd682613357565b9150613fe183613357565b925082613ff157613ff0613f9c565b5b828204905092915050565b600061400782613357565b915061401283613357565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561404b5761404a613c84565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006140b2602183613244565b91506140bd82614056565b604082019050919050565b600060208201905081810360008301526140e1816140a5565b9050919050565b60006140f382613459565b9050919050565b614103816140e8565b82525050565b600060c08201905061411e60008301896135f3565b61412b6020830188613403565b6141386040830187613db3565b6141456060830186613db3565b61415260808301856140fa565b61415f60a0830184613403565b979650505050505050565b60008151905061417981613361565b92915050565b600080600060608486031215614198576141976132f4565b5b60006141a68682870161416a565b93505060206141b78682870161416a565b92505060406141c88682870161416a565b9150509250925092565b60006080820190506141e76000830187613db3565b81810360208301526141f98186613e22565b905061420860408301856140fa565b6142156060830184613403565b9594505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a56fd53174ebc740d3f86455287d93aed7db0794ef84ed9d257836dcf3d356564736f6c634300080f0033