60806040526b033b2e3c9fd0803ce8000000600019620000209190620008aa565b6000196200002f919062000911565b60065560006008556000600955600a80556028600b55600954600c55600b54600d55600c54600e55600d54600f5560006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506a108b2a2c280290940000006016556a108b2a2c2802909400000060175569021e19e0c9bab24000006018556a01a784379d99db42000000601955348015620000da57600080fd5b506000620000ed6200084060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620001a26200084060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000286573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ac9190620009b6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000314573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033a9190620009b6565b6040518363ffffffff1660e01b815260040162000359929190620009f9565b6020604051808303816000875af115801562000379573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039f9190620009b6565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f8dfe07a9fad1da481d8954857bdf0b432dff80d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200048b6200084860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060001960046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060001960046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620007c66200084060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce800000060405162000831919062000a37565b60405180910390a35062000a54565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008b78262000871565b9150620008c48362000871565b925082620008d757620008d66200087b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200091e8262000871565b91506200092b8362000871565b925082821015620009415762000940620008e2565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200097e8262000951565b9050919050565b620009908162000971565b81146200099c57600080fd5b50565b600081519050620009b08162000985565b92915050565b600060208284031215620009cf57620009ce6200094c565b5b6000620009df848285016200099f565b91505092915050565b620009f38162000971565b82525050565b600060408201905062000a106000830185620009e8565b62000a1f6020830184620009e8565b9392505050565b62000a318162000871565b82525050565b600060208201905062000a4e600083018462000a26565b92915050565b6139c98062000a646000396000f3fe6080604052600436106101bb5760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c60d985311610064578063c60d9853146105e5578063caac793414610610578063dd62ed3e1461063b578063f2fde38b14610678576101c2565b8063a2a957bb14610556578063a9059cbb1461057f578063c492f046146105bc576101c2565b80638da5cb5b116100c65780638da5cb5b146104ac5780638f9a55c0146104d757806395d89b411461050257806398a5c3151461052d576101c2565b8063751039fc146104535780637d1db4a51461046a5780638a8c523c14610495576101c2565b8063313ce5671161015957806349bd5a5e1161013357806349bd5a5e146103a95780636168f352146103d457806370a08231146103ff578063715018a61461043c576101c2565b8063313ce5671461032a5780633d6a9afe1461035557806347c7d92414610380576101c2565b806318160ddd1161019557806318160ddd1461025a5780631990948b1461028557806323b872dd146102c25780632fd689e3146102ff576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106a1565b6040516101e99190612a09565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612ac9565b6106de565b6040516102269190612b24565b60405180910390f35b34801561023b57600080fd5b506102446106fc565b6040516102519190612b9e565b60405180910390f35b34801561026657600080fd5b5061026f610722565b60405161027c9190612bc8565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612be3565b610736565b6040516102b99190612bc8565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e49190612c10565b61074e565b6040516102f69190612b24565b60405180910390f35b34801561030b57600080fd5b50610314610827565b6040516103219190612bc8565b60405180910390f35b34801561033657600080fd5b5061033f61082d565b60405161034c9190612c7f565b60405180910390f35b34801561036157600080fd5b5061036a610836565b6040516103779190612cbb565b60405180910390f35b34801561038c57600080fd5b506103a760048036038101906103a29190612cd6565b61085c565b005b3480156103b557600080fd5b506103be6108fb565b6040516103cb9190612d12565b60405180910390f35b3480156103e057600080fd5b506103e9610921565b6040516103f69190612bc8565b60405180910390f35b34801561040b57600080fd5b5061042660048036038101906104219190612be3565b610927565b6040516104339190612bc8565b60405180910390f35b34801561044857600080fd5b50610451610978565b005b34801561045f57600080fd5b50610468610acb565b005b34801561047657600080fd5b5061047f610b74565b60405161048c9190612bc8565b60405180910390f35b3480156104a157600080fd5b506104aa610b7a565b005b3480156104b857600080fd5b506104c1610c2c565b6040516104ce9190612d12565b60405180910390f35b3480156104e357600080fd5b506104ec610c55565b6040516104f99190612bc8565b60405180910390f35b34801561050e57600080fd5b50610517610c5b565b6040516105249190612a09565b60405180910390f35b34801561053957600080fd5b50610554600480360381019061054f9190612cd6565b610c98565b005b34801561056257600080fd5b5061057d60048036038101906105789190612d2d565b610d37565b005b34801561058b57600080fd5b506105a660048036038101906105a19190612ac9565b610dee565b6040516105b39190612b24565b60405180910390f35b3480156105c857600080fd5b506105e360048036038101906105de9190612e25565b610e0c565b005b3480156105f157600080fd5b506105fa610f46565b6040516106079190612d12565b60405180910390f35b34801561061c57600080fd5b50610625610f6c565b6040516106329190612cbb565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190612e85565b610f92565b60405161066f9190612bc8565b60405180910390f35b34801561068457600080fd5b5061069f600480360381019061069a9190612be3565b611019565b005b60606040518060400160405280601181526020017f52656d696c696f204d656d6520436f696e000000000000000000000000000000815250905090565b60006106f26106eb6111da565b84846111e2565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006b033b2e3c9fd0803ce8000000905090565b60106020528060005260406000206000915090505481565b600061075b8484846113ab565b61081c846107676111da565b6108178560405180606001604052806028815260200161396c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107cd6111da565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cb49092919063ffffffff16565b6111e2565b600190509392505050565b60185481565b60006012905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108646111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890612f11565b60405180910390fd5b8060198190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b6000610971600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d18565b9050919050565b6109806111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0490612f11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ad36111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790612f11565b60405180910390fd5b600019601681905550600019601781905550565b60165481565b610b826111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0690612f11565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600581526020017f47454e5453000000000000000000000000000000000000000000000000000000815250905090565b610ca06111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2490612f11565b60405180910390fd5b8060188190555050565b610d3f6111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc390612f11565b60405180910390fd5b836008819055508260098190555081600a8190555080600b8190555050505050565b6000610e02610dfb6111da565b84846113ab565b6001905092915050565b610e146111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9890612f11565b60405180910390fd5b60005b83839050811015610f40578160056000868685818110610ec757610ec6612f31565b5b9050602002016020810190610edc9190612be3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f3890612f8f565b915050610ea4565b50505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110216111da565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a590612f11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490613049565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611251576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611248906130db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b79061316d565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161139e9190612bc8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361141a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611411906131ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148090613291565b60405180910390fd5b600081116114cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c390613323565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115705750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119b357601560149054906101000a900460ff166115ff57611591610c2c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f5906133b5565b60405180910390fd5b5b601654811115611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b90613421565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146116f157601754816116a684610927565b6116b09190613441565b106116f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e790613509565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117d7576000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036117d25743601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61182c565b60158054906101000a900460ff1661182b5782601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b600061183730610927565b90506000601854821015905060195482106118525760195491505b80801561186a575060158054906101000a900460ff16155b80156118c45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118dc5750601560169054906101000a900460ff165b80156119325750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119885750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119b05761199682611d86565b600047905060008111156119ae576119ad47611ffd565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a5a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b0d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b0c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611b1b5760009050611ca2565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611bc65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bde57600854600c81905550600a54600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c895750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ca157600954600c81905550600b54600d819055505b5b611cae848484846120f8565b50505050565b6000838311158290611cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf39190612a09565b60405180910390fd5b5060008385611d0b9190613529565b9050809150509392505050565b6000600654821115611d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d56906135cf565b60405180910390fd5b6000611d69612271565b9050611d7e818461229c90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dbd57611dbc6135ef565b5b604051908082528060200260200182016040528015611deb5781602001602082028036833780820191505090505b5090503081600081518110611e0357611e02612f31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ece9190613633565b81600181518110611ee257611ee1612f31565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f4930601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111e2565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fad959493929190613759565b600060405180830381600087803b158015611fc757600080fd5b505af1158015611fdb573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61204d60028461229c90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612078573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120c960028461229c90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156120f4573d6000803e3d6000fd5b5050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121a35750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121fd5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156122445782601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b80612252576122516122e6565b5b61225d848484612323565b8061226b5761226a6124ee565b5b50505050565b600080600061227e612502565b91509150612295818361229c90919063ffffffff16565b9250505090565b60006122de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061256d565b905092915050565b6000600c541480156122fa57506000600d54145b61232157600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612335876125d0565b95509550955095509550955061239386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612474816126e0565b61247e848361279d565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124db9190612bc8565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006b033b2e3c9fd0803ce8000000905061253e6b033b2e3c9fd0803ce800000060065461229c90919063ffffffff16565b821015612560576006546b033b2e3c9fd0803ce8000000935093505050612569565b81819350935050505b9091565b600080831182906125b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ab9190612a09565b60405180910390fd5b50600083856125c391906137e2565b9050809150509392505050565b60008060008060008060008060006125ed8a600c54600d546127d7565b92509250925060006125fd612271565b905060008060006126108e87878761286d565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061267a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cb4565b905092915050565b60008082846126919190613441565b9050838110156126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd9061385f565b60405180910390fd5b8091505092915050565b60006126ea612271565b9050600061270182846128f690919063ffffffff16565b905061275581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6127b28260065461263890919063ffffffff16565b6006819055506127cd8160075461268290919063ffffffff16565b6007819055505050565b60008060008061280360646127f5888a6128f690919063ffffffff16565b61229c90919063ffffffff16565b9050600061282d606461281f888b6128f690919063ffffffff16565b61229c90919063ffffffff16565b9050600061285682612848858c61263890919063ffffffff16565b61263890919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061288685896128f690919063ffffffff16565b9050600061289d86896128f690919063ffffffff16565b905060006128b487896128f690919063ffffffff16565b905060006128dd826128cf858761263890919063ffffffff16565b61263890919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612908576000905061296a565b60008284612916919061387f565b905082848261292591906137e2565b14612965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295c9061394b565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129aa57808201518184015260208101905061298f565b838111156129b9576000848401525b50505050565b6000601f19601f8301169050919050565b60006129db82612970565b6129e5818561297b565b93506129f581856020860161298c565b6129fe816129bf565b840191505092915050565b60006020820190508181036000830152612a2381846129d0565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a6082612a35565b9050919050565b612a7081612a55565b8114612a7b57600080fd5b50565b600081359050612a8d81612a67565b92915050565b6000819050919050565b612aa681612a93565b8114612ab157600080fd5b50565b600081359050612ac381612a9d565b92915050565b60008060408385031215612ae057612adf612a2b565b5b6000612aee85828601612a7e565b9250506020612aff85828601612ab4565b9150509250929050565b60008115159050919050565b612b1e81612b09565b82525050565b6000602082019050612b396000830184612b15565b92915050565b6000819050919050565b6000612b64612b5f612b5a84612a35565b612b3f565b612a35565b9050919050565b6000612b7682612b49565b9050919050565b6000612b8882612b6b565b9050919050565b612b9881612b7d565b82525050565b6000602082019050612bb36000830184612b8f565b92915050565b612bc281612a93565b82525050565b6000602082019050612bdd6000830184612bb9565b92915050565b600060208284031215612bf957612bf8612a2b565b5b6000612c0784828501612a7e565b91505092915050565b600080600060608486031215612c2957612c28612a2b565b5b6000612c3786828701612a7e565b9350506020612c4886828701612a7e565b9250506040612c5986828701612ab4565b9150509250925092565b600060ff82169050919050565b612c7981612c63565b82525050565b6000602082019050612c946000830184612c70565b92915050565b6000612ca582612a35565b9050919050565b612cb581612c9a565b82525050565b6000602082019050612cd06000830184612cac565b92915050565b600060208284031215612cec57612ceb612a2b565b5b6000612cfa84828501612ab4565b91505092915050565b612d0c81612a55565b82525050565b6000602082019050612d276000830184612d03565b92915050565b60008060008060808587031215612d4757612d46612a2b565b5b6000612d5587828801612ab4565b9450506020612d6687828801612ab4565b9350506040612d7787828801612ab4565b9250506060612d8887828801612ab4565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612db957612db8612d94565b5b8235905067ffffffffffffffff811115612dd657612dd5612d99565b5b602083019150836020820283011115612df257612df1612d9e565b5b9250929050565b612e0281612b09565b8114612e0d57600080fd5b50565b600081359050612e1f81612df9565b92915050565b600080600060408486031215612e3e57612e3d612a2b565b5b600084013567ffffffffffffffff811115612e5c57612e5b612a30565b5b612e6886828701612da3565b93509350506020612e7b86828701612e10565b9150509250925092565b60008060408385031215612e9c57612e9b612a2b565b5b6000612eaa85828601612a7e565b9250506020612ebb85828601612a7e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612efb60208361297b565b9150612f0682612ec5565b602082019050919050565b60006020820190508181036000830152612f2a81612eee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f9a82612a93565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fcc57612fcb612f60565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061303360268361297b565b915061303e82612fd7565b604082019050919050565b6000602082019050818103600083015261306281613026565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130c560248361297b565b91506130d082613069565b604082019050919050565b600060208201905081810360008301526130f4816130b8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061315760228361297b565b9150613162826130fb565b604082019050919050565b600060208201905081810360008301526131868161314a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131e960258361297b565b91506131f48261318d565b604082019050919050565b60006020820190508181036000830152613218816131dc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061327b60238361297b565b91506132868261321f565b604082019050919050565b600060208201905081810360008301526132aa8161326e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061330d60298361297b565b9150613318826132b1565b604082019050919050565b6000602082019050818103600083015261333c81613300565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061339f603f8361297b565b91506133aa82613343565b604082019050919050565b600060208201905081810360008301526133ce81613392565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061340b601c8361297b565b9150613416826133d5565b602082019050919050565b6000602082019050818103600083015261343a816133fe565b9050919050565b600061344c82612a93565b915061345783612a93565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561348c5761348b612f60565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006134f360238361297b565b91506134fe82613497565b604082019050919050565b60006020820190508181036000830152613522816134e6565b9050919050565b600061353482612a93565b915061353f83612a93565b92508282101561355257613551612f60565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006135b9602a8361297b565b91506135c48261355d565b604082019050919050565b600060208201905081810360008301526135e8816135ac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061362d81612a67565b92915050565b60006020828403121561364957613648612a2b565b5b60006136578482850161361e565b91505092915050565b6000819050919050565b600061368561368061367b84613660565b612b3f565b612a93565b9050919050565b6136958161366a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136d081612a55565b82525050565b60006136e283836136c7565b60208301905092915050565b6000602082019050919050565b60006137068261369b565b61371081856136a6565b935061371b836136b7565b8060005b8381101561374c57815161373388826136d6565b975061373e836136ee565b92505060018101905061371f565b5085935050505092915050565b600060a08201905061376e6000830188612bb9565b61377b602083018761368c565b818103604083015261378d81866136fb565b905061379c6060830185612d03565b6137a96080830184612bb9565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006137ed82612a93565b91506137f883612a93565b925082613808576138076137b3565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613849601b8361297b565b915061385482613813565b602082019050919050565b600060208201905081810360008301526138788161383c565b9050919050565b600061388a82612a93565b915061389583612a93565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138ce576138cd612f60565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061393560218361297b565b9150613940826138d9565b604082019050919050565b6000602082019050818103600083015261396481613928565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f0a32fe536b180d83ea1b1a45799a7374615b9267c7d49af253f0bc1cfaa89d364736f6c634300080f0033