0x60806040525f60095f6101000a81548160ff0219169083151502179055506014600a556014600b555f600c555f600d55601e600e55601e600f556014601055601e6011555f6012556008600a620000579190620006de565b629896806200006791906200072e565b6013556008600a6200007a9190620006de565b6301312d006200008b91906200072e565b6014556008600a6200009e9190620006de565b5f620000ab91906200072e565b6015556008600a620000be9190620006de565b6301312d00620000cf91906200072e565b6016555f601860156101000a81548160ff0219169083151502179055505f601860166101000a81548160ff02191690831515021790555034801562000112575f80fd5b505f620001246200051e60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d06200051e60201b60201c565b600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a620002209190620006de565b633b9aca006200023191906200072e565b60015f620002446200051e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002966200052560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506008600a620003c19190620006de565b633b9aca00620003d291906200072e565b600681905550600160075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004926200051e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a620004f09190620006de565b633b9aca006200050191906200072e565b60405162000510919062000789565b60405180910390a3620007a4565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620005d657808604811115620005ae57620005ad6200054c565b5b6001851615620005be5780820291505b8081029050620005ce8562000579565b94506200058e565b94509492505050565b5f82620005f05760019050620006c2565b81620005ff575f9050620006c2565b8160018114620006185760028114620006235762000659565b6001915050620006c2565b60ff8411156200063857620006376200054c565b5b8360020a9150848211156200065257620006516200054c565b5b50620006c2565b5060208310610133831016604e8410600b8410161715620006935782820a9050838111156200068d576200068c6200054c565b5b620006c2565b620006a2848484600162000585565b92509050818404811115620006bc57620006bb6200054c565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006ea82620006c9565b9150620006f783620006d2565b9250620007267fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005df565b905092915050565b5f6200073a82620006c9565b91506200074783620006c9565b92508282026200075781620006c9565b915082820484148315176200077157620007706200054c565b5b5092915050565b6200078381620006c9565b82525050565b5f6020820190506200079e5f83018462000778565b92915050565b61392f80620007b25f395ff3fe608060405260043610610143575f3560e01c806372333356116100b55780639dc29fac1161006e5780639dc29fac14610420578063a9059cbb14610448578063bf474bed14610484578063c876d0b9146104ae578063c9567bf9146104d8578063dd62ed3e146104ee5761014a565b8063723333561461033a578063751039fc146103625780637d1db4a5146103785780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b8063313ce56711610107578063313ce567146102445780633bbac5791461026e57806351bc3c85146102aa5780636de7bcbd146102c057806370a08231146102e8578063715018a6146103245761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806318160ddd146101de57806323b872dd146102085761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261052a565b60405161016f9190612702565b60405180910390f35b348015610183575f80fd5b5061019e600480360381019061019991906127c0565b610567565b6040516101ab9190612818565b60405180910390f35b3480156101bf575f80fd5b506101c8610584565b6040516101d59190612840565b60405180910390f35b3480156101e9575f80fd5b506101f261058a565b6040516101ff9190612840565b60405180910390f35b348015610213575f80fd5b5061022e60048036038101906102299190612859565b6105ad565b60405161023b9190612818565b60405180910390f35b34801561024f575f80fd5b50610258610681565b60405161026591906128c4565b60405180910390f35b348015610279575f80fd5b50610294600480360381019061028f91906128dd565b610689565b6040516102a19190612818565b60405180910390f35b3480156102b5575f80fd5b506102be6106db565b005b3480156102cb575f80fd5b506102e660048036038101906102e19190612a48565b610773565b005b3480156102f3575f80fd5b5061030e600480360381019061030991906128dd565b610898565b60405161031b9190612840565b60405180910390f35b34801561032f575f80fd5b506103386108de565b005b348015610345575f80fd5b50610360600480360381019061035b9190612a8f565b610a2c565b005b34801561036d575f80fd5b50610376610b04565b005b348015610383575f80fd5b5061038c610c4c565b6040516103999190612840565b60405180910390f35b3480156103ad575f80fd5b506103b6610c52565b6040516103c39190612adc565b60405180910390f35b3480156103d7575f80fd5b506103e0610c79565b6040516103ed9190612840565b60405180910390f35b348015610401575f80fd5b5061040a610c7f565b6040516104179190612702565b60405180910390f35b34801561042b575f80fd5b50610446600480360381019061044191906127c0565b610cbc565b005b348015610453575f80fd5b5061046e600480360381019061046991906127c0565b610f06565b60405161047b9190612818565b60405180910390f35b34801561048f575f80fd5b50610498610f23565b6040516104a59190612840565b60405180910390f35b3480156104b9575f80fd5b506104c2610f29565b6040516104cf9190612818565b60405180910390f35b3480156104e3575f80fd5b506104ec610f3b565b005b3480156104f9575f80fd5b50610514600480360381019061050f9190612af5565b61145d565b6040516105219190612840565b60405180910390f35b60606040518060400160405280600c81526020017f42414e414e412050484f4e450000000000000000000000000000000000000000815250905090565b5f61057a6105736114df565b84846114e6565b6001905092915050565b60165481565b5f6008600a6105999190612c8f565b633b9aca006105a89190612cd9565b905090565b5f6105b98484846116a9565b610676846105c56114df565b610671856040518060600160405280602881526020016138d26028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106286114df565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121349092919063ffffffff16565b6114e6565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661071c6114df565b73ffffffffffffffffffffffffffffffffffffffff161461073b575f80fd5b5f61074530610898565b90505f8111156107595761075881612196565b5b5f4790505f81111561076f5761076e8161241f565b5b5050565b61077b6114df565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fe90612d64565b60405180910390fd5b5f5b815181101561089457600160045f84848151811061082a57610829612d82565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061088c90612daf565b915050610809565b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108e66114df565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610972576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096990612d64565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610ab35750610a84610c52565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990612e40565b60405180910390fd5b81600c8190555080600d819055505050565b610b0c6114df565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8f90612d64565b60405180910390fd5b6008600a610ba69190612c8f565b633b9aca00610bb59190612cd9565b6013819055506008600a610bc99190612c8f565b633b9aca00610bd89190612cd9565b6014819055505f60095f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610c269190612c8f565b633b9aca00610c359190612cd9565b604051610c429190612840565b60405180910390a1565b60135481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60145481565b60606040518060400160405280600b81526020017f42414e414e4150484f4e45000000000000000000000000000000000000000000815250905090565b60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610d435750610d14610c52565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7990612ea8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de790612f10565b60405180910390fd5b5f8111610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990612f78565b60405180910390fd5b8060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e7e9190612f96565b925050819055508060065f828254610e969190612f96565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610efa9190612840565b60405180910390a35050565b5f610f19610f126114df565b84846116a9565b6001905092915050565b60155481565b60095f9054906101000a900460ff1681565b610f436114df565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc690612d64565b60405180910390fd5b601860149054906101000a900460ff161561101f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101690613013565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506110bb3060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a6110a79190612c8f565b633b9aca006110b69190612cd9565b6114e6565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611125573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111499190613045565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f39190613045565b6040518363ffffffff1660e01b8152600401611210929190613070565b6020604051808303815f875af115801561122c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112509190613045565b60185f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306112d730610898565b5f806112e1610c52565b426040518863ffffffff1660e01b8152600401611303969594939291906130d9565b60606040518083038185885af115801561131f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611344919061314c565b50505060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016113e492919061319c565b6020604051808303815f875af1158015611400573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142491906131ed565b506001601860166101000a81548160ff0219169083151502179055506001601860146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b90613288565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990613316565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161169c9190612840565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170e906133a4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90613432565b60405180910390fd5b5f81116117c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117be906134c0565b60405180910390fd5b5f6117d0610c52565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561183e575061180e610c52565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e845760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156118e1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6118e9575f80fd5b60095f9054906101000a900460ff1615611a6f5760175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119a7575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a6e574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a229061354e565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b18575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b6b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611c505760115460125411611c1957601354821115611bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb7906135b6565b60405180910390fd5b60145482611bcd85610898565b611bd79190612f96565b1115611c18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0f9061361e565b60405180910390fd5b5b6010546012541015611c3857611c2e83612488565b15611c37575f80fd5b5b60125f815480929190611c4a90612daf565b91905055505b611c8c6064611c7e600e5460125411611c6b57600a54611c6f565b600c545b8561249990919063ffffffff16565b61251090919063ffffffff16565b905060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d1657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d9f57601354821115611d60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d57906135b6565b60405180910390fd5b611d9c6064611d8e600f5460125411611d7b57600b54611d7f565b600d545b8561249990919063ffffffff16565b61251090919063ffffffff16565b90505b5f611da930610898565b9050601860159054906101000a900460ff16158015611e14575060185f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e2c5750601860169054906101000a900460ff165b8015611e39575060155481115b8015611e485750601054601254115b15611e8257611e6a611e6584611e6084601654612559565b612559565b612196565b5f4790505f811115611e8057611e7f4761241f565b5b505b505b5f811115611f8357611edc8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461257190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f7a9190612840565b60405180910390a35b611fd38260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125ce90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061207661202a82846125ce90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461257190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61211984866125ce90919063ffffffff16565b6040516121269190612840565b60405180910390a350505050565b5f83831115829061217b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121729190612702565b60405180910390fd5b505f8385612189919061363c565b9050809150509392505050565b6001601860156101000a81548160ff0219169083151502179055505f81031561240257601860149054906101000a900460ff1615612402575f600267ffffffffffffffff8111156121ea576121e961290c565b5b6040519080825280602002602001820160405280156122185781602001602082028036833780820191505090505b50905030815f8151811061222f5761222e612d82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122d3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122f79190613045565b8160018151811061230b5761230a612d82565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123713060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114e6565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123d3959493929190613726565b5f604051808303815f87803b1580156123ea575f80fd5b505af11580156123fc573d5f803e3d5ffd5b50505050505b5f601860156101000a81548160ff02191690831515021790555050565b600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612484573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036124a9575f905061250a565b5f82846124b69190612cd9565b90508284826124c591906137ab565b14612505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fc9061384b565b60405180910390fd5b809150505b92915050565b5f61255183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612617565b905092915050565b5f8183116125675782612569565b815b905092915050565b5f80828461257f9190612f96565b9050838110156125c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125bb906138b3565b60405180910390fd5b8091505092915050565b5f61260f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612134565b905092915050565b5f808311829061265d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126549190612702565b60405180910390fd5b505f838561266b91906137ab565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156126af578082015181840152602081019050612694565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126d482612678565b6126de8185612682565b93506126ee818560208601612692565b6126f7816126ba565b840191505092915050565b5f6020820190508181035f83015261271a81846126ca565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61275c82612733565b9050919050565b61276c81612752565b8114612776575f80fd5b50565b5f8135905061278781612763565b92915050565b5f819050919050565b61279f8161278d565b81146127a9575f80fd5b50565b5f813590506127ba81612796565b92915050565b5f80604083850312156127d6576127d561272b565b5b5f6127e385828601612779565b92505060206127f4858286016127ac565b9150509250929050565b5f8115159050919050565b612812816127fe565b82525050565b5f60208201905061282b5f830184612809565b92915050565b61283a8161278d565b82525050565b5f6020820190506128535f830184612831565b92915050565b5f805f606084860312156128705761286f61272b565b5b5f61287d86828701612779565b935050602061288e86828701612779565b925050604061289f868287016127ac565b9150509250925092565b5f60ff82169050919050565b6128be816128a9565b82525050565b5f6020820190506128d75f8301846128b5565b92915050565b5f602082840312156128f2576128f161272b565b5b5f6128ff84828501612779565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612942826126ba565b810181811067ffffffffffffffff821117156129615761296061290c565b5b80604052505050565b5f612973612722565b905061297f8282612939565b919050565b5f67ffffffffffffffff82111561299e5761299d61290c565b5b602082029050602081019050919050565b5f80fd5b5f6129c56129c084612984565b61296a565b905080838252602082019050602084028301858111156129e8576129e76129af565b5b835b81811015612a1157806129fd8882612779565b8452602084019350506020810190506129ea565b5050509392505050565b5f82601f830112612a2f57612a2e612908565b5b8135612a3f8482602086016129b3565b91505092915050565b5f60208284031215612a5d57612a5c61272b565b5b5f82013567ffffffffffffffff811115612a7a57612a7961272f565b5b612a8684828501612a1b565b91505092915050565b5f8060408385031215612aa557612aa461272b565b5b5f612ab2858286016127ac565b9250506020612ac3858286016127ac565b9150509250929050565b612ad681612752565b82525050565b5f602082019050612aef5f830184612acd565b92915050565b5f8060408385031215612b0b57612b0a61272b565b5b5f612b1885828601612779565b9250506020612b2985828601612779565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612bb557808604811115612b9157612b90612b33565b5b6001851615612ba05780820291505b8081029050612bae85612b60565b9450612b75565b94509492505050565b5f82612bcd5760019050612c88565b81612bda575f9050612c88565b8160018114612bf05760028114612bfa57612c29565b6001915050612c88565b60ff841115612c0c57612c0b612b33565b5b8360020a915084821115612c2357612c22612b33565b5b50612c88565b5060208310610133831016604e8410600b8410161715612c5e5782820a905083811115612c5957612c58612b33565b5b612c88565b612c6b8484846001612b6c565b92509050818404811115612c8257612c81612b33565b5b81810290505b9392505050565b5f612c998261278d565b9150612ca4836128a9565b9250612cd17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612bbe565b905092915050565b5f612ce38261278d565b9150612cee8361278d565b9250828202612cfc8161278d565b91508282048414831517612d1357612d12612b33565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d4e602083612682565b9150612d5982612d1a565b602082019050919050565b5f6020820190508181035f830152612d7b81612d42565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612db98261278d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612deb57612dea612b33565b5b600182019050919050565b7f4e6f7420617574686f72697a656420746f2072656475636520666565000000005f82015250565b5f612e2a601c83612682565b9150612e3582612df6565b602082019050919050565b5f6020820190508181035f830152612e5781612e1e565b9050919050565b7f4e6f7420617574686f72697a656420746f206275726e000000000000000000005f82015250565b5f612e92601683612682565b9150612e9d82612e5e565b602082019050919050565b5f6020820190508181035f830152612ebf81612e86565b9050919050565b7f496e76616c696420726563697069656e742061646472657373000000000000005f82015250565b5f612efa601983612682565b9150612f0582612ec6565b602082019050919050565b5f6020820190508181035f830152612f2781612eee565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f612f62602083612682565b9150612f6d82612f2e565b602082019050919050565b5f6020820190508181035f830152612f8f81612f56565b9050919050565b5f612fa08261278d565b9150612fab8361278d565b9250828201905080821115612fc357612fc2612b33565b5b92915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612ffd601783612682565b915061300882612fc9565b602082019050919050565b5f6020820190508181035f83015261302a81612ff1565b9050919050565b5f8151905061303f81612763565b92915050565b5f6020828403121561305a5761305961272b565b5b5f61306784828501613031565b91505092915050565b5f6040820190506130835f830185612acd565b6130906020830184612acd565b9392505050565b5f819050919050565b5f819050919050565b5f6130c36130be6130b984613097565b6130a0565b61278d565b9050919050565b6130d3816130a9565b82525050565b5f60c0820190506130ec5f830189612acd565b6130f96020830188612831565b61310660408301876130ca565b61311360608301866130ca565b6131206080830185612acd565b61312d60a0830184612831565b979650505050505050565b5f8151905061314681612796565b92915050565b5f805f606084860312156131635761316261272b565b5b5f61317086828701613138565b935050602061318186828701613138565b925050604061319286828701613138565b9150509250925092565b5f6040820190506131af5f830185612acd565b6131bc6020830184612831565b9392505050565b6131cc816127fe565b81146131d6575f80fd5b50565b5f815190506131e7816131c3565b92915050565b5f602082840312156132025761320161272b565b5b5f61320f848285016131d9565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613272602483612682565b915061327d82613218565b604082019050919050565b5f6020820190508181035f83015261329f81613266565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613300602283612682565b915061330b826132a6565b604082019050919050565b5f6020820190508181035f83015261332d816132f4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61338e602583612682565b915061339982613334565b604082019050919050565b5f6020820190508181035f8301526133bb81613382565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61341c602383612682565b9150613427826133c2565b604082019050919050565b5f6020820190508181035f83015261344981613410565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6134aa602983612682565b91506134b582613450565b604082019050919050565b5f6020820190508181035f8301526134d78161349e565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f613538602483612682565b9150613543826134de565b604082019050919050565b5f6020820190508181035f8301526135658161352c565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6135a0601983612682565b91506135ab8261356c565b602082019050919050565b5f6020820190508181035f8301526135cd81613594565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613608601a83612682565b9150613613826135d4565b602082019050919050565b5f6020820190508181035f830152613635816135fc565b9050919050565b5f6136468261278d565b91506136518361278d565b925082820390508181111561366957613668612b33565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6136a181612752565b82525050565b5f6136b28383613698565b60208301905092915050565b5f602082019050919050565b5f6136d48261366f565b6136de8185613679565b93506136e983613689565b805f5b8381101561371957815161370088826136a7565b975061370b836136be565b9250506001810190506136ec565b5085935050505092915050565b5f60a0820190506137395f830188612831565b61374660208301876130ca565b818103604083015261375881866136ca565b90506137676060830185612acd565b6137746080830184612831565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6137b58261278d565b91506137c08361278d565b9250826137d0576137cf61377e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613835602183612682565b9150613840826137db565b604082019050919050565b5f6020820190508181035f83015261386281613829565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61389d601b83612682565b91506138a882613869565b602082019050919050565b5f6020820190508181035f8301526138ca81613891565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122081265f63285e9c6b2d246d68296fa7358edb4641cb4421cb31e840b49fdaf1ca64736f6c63430008140033