Loading
60806040526040518060800160405280605081526020016200419660509139600a90816200002e919062000a15565b5060405180602001604052806000815250600b90816200004f919062000a15565b503480156200005d57600080fd5b50604051620041e6380380620041e6833981810160405281019062000083919062000c60565b8181816002908162000096919062000a15565b508060039081620000a8919062000a15565b50620000b9620000fc60201b60201c565b6000819055505050620000e1620000d56200010560201b60201c565b6200010d60201b60201c565b620000f433600f620001d360201b60201c565b505062000e7b565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001f5828260405180602001604052806000815250620001f960201b60201c565b5050565b6200020e83838360016200021360201b60201c565b505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160362000280576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008403620002bb576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b620002d060008683876200060b60201b60201c565b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550846004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550600081905060008582019050838015620004a85750620004a78773ffffffffffffffffffffffffffffffffffffffff166200061160201b620015561760201c565b5b156200057a575b818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46200052660008884806001019550886200063460201b60201c565b6200055d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808203620004af5782600054146200057457600080fd5b620005e6565b5b818060010192508773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48082036200057b575b8160008190555050506200060460008683876200079560201b60201c565b5050505050565b50505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02620006626200010560201b60201c565b8786866040518563ffffffff1660e01b815260040162000686949392919062000d98565b6020604051808303816000875af1925050508015620006c557506040513d601f19601f82011682018060405250810190620006c2919062000e49565b60015b62000742573d8060008114620006f8576040519150601f19603f3d011682016040523d82523d6000602084013e620006fd565b606091505b5060008151036200073a576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b50505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200081d57607f821691505b602082108103620008335762000832620007d5565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200089d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200085e565b620008a986836200085e565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620008f6620008f0620008ea84620008c1565b620008cb565b620008c1565b9050919050565b6000819050919050565b6200091283620008d5565b6200092a6200092182620008fd565b8484546200086b565b825550505050565b600090565b6200094162000932565b6200094e81848462000907565b505050565b5b8181101562000976576200096a60008262000937565b60018101905062000954565b5050565b601f821115620009c5576200098f8162000839565b6200099a846200084e565b81016020851015620009aa578190505b620009c2620009b9856200084e565b83018262000953565b50505b505050565b600082821c905092915050565b6000620009ea60001984600802620009ca565b1980831691505092915050565b600062000a058383620009d7565b9150826002028217905092915050565b62000a20826200079b565b67ffffffffffffffff81111562000a3c5762000a3b620007a6565b5b62000a48825462000804565b62000a558282856200097a565b600060209050601f83116001811462000a8d576000841562000a78578287015190505b62000a848582620009f7565b86555062000af4565b601f19841662000a9d8662000839565b60005b8281101562000ac75784890151825560018201915060208501945060208101905062000aa0565b8683101562000ae7578489015162000ae3601f891682620009d7565b8355505b6001600288020188555050505b505050505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b62000b368262000b1a565b810181811067ffffffffffffffff8211171562000b585762000b57620007a6565b5b80604052505050565b600062000b6d62000afc565b905062000b7b828262000b2b565b919050565b600067ffffffffffffffff82111562000b9e5762000b9d620007a6565b5b62000ba98262000b1a565b9050602081019050919050565b60005b8381101562000bd657808201518184015260208101905062000bb9565b60008484015250505050565b600062000bf962000bf38462000b80565b62000b61565b90508281526020810184848401111562000c185762000c1762000b15565b5b62000c2584828562000bb6565b509392505050565b600082601f83011262000c455762000c4462000b10565b5b815162000c5784826020860162000be2565b91505092915050565b6000806040838503121562000c7a5762000c7962000b06565b5b600083015167ffffffffffffffff81111562000c9b5762000c9a62000b0b565b5b62000ca98582860162000c2d565b925050602083015167ffffffffffffffff81111562000ccd5762000ccc62000b0b565b5b62000cdb8582860162000c2d565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d128262000ce5565b9050919050565b62000d248162000d05565b82525050565b62000d3581620008c1565b82525050565b600081519050919050565b600082825260208201905092915050565b600062000d648262000d3b565b62000d70818562000d46565b935062000d8281856020860162000bb6565b62000d8d8162000b1a565b840191505092915050565b600060808201905062000daf600083018762000d19565b62000dbe602083018662000d19565b62000dcd604083018562000d2a565b818103606083015262000de1818462000d57565b905095945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b62000e238162000dec565b811462000e2f57600080fd5b50565b60008151905062000e438162000e18565b92915050565b60006020828403121562000e625762000e6162000b06565b5b600062000e728482850162000e32565b91505092915050565b61330b8062000e8b6000396000f3fe6080604052600436106101665760003560e01c8063715018a6116100d1578063a22cb4651161008a578063e5e01c1111610064578063e5e01c1114610519578063e985e9c514610542578063f2fde38b1461057f578063fe878b1d146105a857610166565b8063a22cb4651461048a578063b88d4fde146104b3578063c87b56dd146104dc57610166565b8063715018a6146103ad5780638da5cb5b146103c457806395d89b41146103ef5780639858cf191461041a5780639894ba7c14610445578063a0712d681461046e57610166565b806323b872dd1161012357806323b872dd1461028d57806332cb6b0c146102b657806342842e0e146102e1578063528c06cc1461030a5780636352211e1461033357806370a082311461037057610166565b806301ffc9a71461016b57806306fdde03146101a8578063081812fc146101d3578063095ea7b3146102105780630e5c19191461023957806318160ddd14610262575b600080fd5b34801561017757600080fd5b50610192600480360381019061018d9190612502565b6105d3565b60405161019f919061254a565b60405180910390f35b3480156101b457600080fd5b506101bd6106b5565b6040516101ca91906125f5565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f5919061264d565b610747565b60405161020791906126bb565b60405180910390f35b34801561021c57600080fd5b5061023760048036038101906102329190612702565b6107c3565b005b34801561024557600080fd5b50610260600480360381019061025b91906127a7565b6108cd565b005b34801561026e57600080fd5b5061027761095f565b6040516102849190612803565b60405180910390f35b34801561029957600080fd5b506102b460048036038101906102af919061281e565b610976565b005b3480156102c257600080fd5b506102cb610986565b6040516102d89190612803565b60405180910390f35b3480156102ed57600080fd5b506103086004803603810190610303919061281e565b61098d565b005b34801561031657600080fd5b50610331600480360381019061032c919061264d565b6109ad565b005b34801561033f57600080fd5b5061035a6004803603810190610355919061264d565b610a33565b60405161036791906126bb565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190612871565b610a49565b6040516103a49190612803565b60405180910390f35b3480156103b957600080fd5b506103c2610b18565b005b3480156103d057600080fd5b506103d9610ba0565b6040516103e691906126bb565b60405180910390f35b3480156103fb57600080fd5b50610404610bca565b60405161041191906125f5565b60405180910390f35b34801561042657600080fd5b5061042f610c5c565b60405161043c9190612803565b60405180910390f35b34801561045157600080fd5b5061046c60048036038101906104679190612871565b610c61565b005b6104886004803603810190610483919061264d565b610d2d565b005b34801561049657600080fd5b506104b160048036038101906104ac91906128ca565b611030565b005b3480156104bf57600080fd5b506104da60048036038101906104d59190612a3a565b6111a7565b005b3480156104e857600080fd5b5061050360048036038101906104fe919061264d565b611223565b60405161051091906125f5565b60405180910390f35b34801561052557600080fd5b50610540600480360381019061053b91906127a7565b611334565b005b34801561054e57600080fd5b5061056960048036038101906105649190612abd565b6113c6565b604051610576919061254a565b60405180910390f35b34801561058b57600080fd5b506105a660048036038101906105a19190612871565b61145a565b005b3480156105b457600080fd5b506105bd611551565b6040516105ca9190612803565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061069e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106ae57506106ad82611579565b5b9050919050565b6060600280546106c490612b2c565b80601f01602080910402602001604051908101604052809291908181526020018280546106f090612b2c565b801561073d5780601f106107125761010080835404028352916020019161073d565b820191906000526020600020905b81548152906001019060200180831161072057829003601f168201915b5050505050905090565b6000610752826115e3565b610788576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006107ce82610a33565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610835576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610854611631565b73ffffffffffffffffffffffffffffffffffffffff161415801561088657506108848161087f611631565b6113c6565b155b156108bd576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108c8838383611639565b505050565b6108d5611631565b73ffffffffffffffffffffffffffffffffffffffff166108f3610ba0565b73ffffffffffffffffffffffffffffffffffffffff1614610949576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094090612ba9565b60405180910390fd5b8181600a918261095a929190612d80565b505050565b60006109696116eb565b6001546000540303905090565b6109818383836116f4565b505050565b620f424081565b6109a8838383604051806020016040528060008152506111a7565b505050565b6109b5611631565b73ffffffffffffffffffffffffffffffffffffffff166109d3610ba0565b73ffffffffffffffffffffffffffffffffffffffff1614610a29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2090612ba9565b60405180910390fd5b8060098190555050565b6000610a3e82611ba8565b600001519050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ab0576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b610b20611631565b73ffffffffffffffffffffffffffffffffffffffff16610b3e610ba0565b73ffffffffffffffffffffffffffffffffffffffff1614610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b90612ba9565b60405180910390fd5b610b9e6000611e37565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610bd990612b2c565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0590612b2c565b8015610c525780601f10610c2757610100808354040283529160200191610c52565b820191906000526020600020905b815481529060010190602001808311610c3557829003601f168201915b5050505050905090565b600381565b610c69611631565b73ffffffffffffffffffffffffffffffffffffffff16610c87610ba0565b73ffffffffffffffffffffffffffffffffffffffff1614610cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd490612ba9565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d28573d6000803e3d6000fd5b505050565b620f424081610d3a61095f565b610d449190612e7f565b1115610d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7c90612eff565b60405180910390fd5b6003811480610d945750600a81145b80610d9f5750606481145b80610daa575060c881145b80610db657506103e881145b610df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dec90612f6b565b60405180910390fd5b6003811015610e565765aafc2937c000341015610e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3e90612fd7565b60405180910390fd5b610e513382611efd565b610fe9565b60038103610e6d57610e683382611efd565b610fe8565b60648103610ece576602d79883d20000341015610ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb690612fd7565b60405180910390fd5b610ec93382611efd565b610fe7565b60c88103610f2f576605af3107a40000341015610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790612fd7565b60405180910390fd5b610f2a3382611efd565b610fe6565b6103e88103610f91576618de76816d8000341015610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7990612fd7565b60405180910390fd5b610f8c3382611efd565b610fe5565b6550c35c74c000341015610fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd190612fd7565b60405180910390fd5b610fe43382611efd565b5b5b5b5b5b803373ffffffffffffffffffffffffffffffffffffffff167f52277f0b4a9b555c5aa96900a13546f972bda413737ec164aac947c87eec602460405160405180910390a350565b611038611631565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361109c576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760006110a9611631565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611156611631565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161119b919061254a565b60405180910390a35050565b6111b28484846116f4565b6111d18373ffffffffffffffffffffffffffffffffffffffff16611556565b80156111e657506111e484848484611f1b565b155b1561121d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60606000600954036112c157600a805461123c90612b2c565b80601f016020809104026020016040519081016040528092919081815260200182805461126890612b2c565b80156112b55780601f1061128a576101008083540402835291602001916112b5565b820191906000526020600020905b81548152906001019060200180831161129857829003601f168201915b5050505050905061132f565b6112ca826115e3565b611309576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130090613069565b60405180910390fd5b600b8260405160200161131d929190613138565b60405160208183030381529060405290505b919050565b61133c611631565b73ffffffffffffffffffffffffffffffffffffffff1661135a610ba0565b73ffffffffffffffffffffffffffffffffffffffff16146113b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a790612ba9565b60405180910390fd5b8181600b91826113c1929190612d80565b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611462611631565b73ffffffffffffffffffffffffffffffffffffffff16611480610ba0565b73ffffffffffffffffffffffffffffffffffffffff16146114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90612ba9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611545576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153c906131d2565b60405180910390fd5b61154e81611e37565b50565b600a81565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000816115ee6116eb565b111580156115fd575060005482105b801561162a575060046000838152602001908152602001600020600001601c9054906101000a900460ff16155b9050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006001905090565b60006116ff82611ba8565b90508373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161461176a576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff1661178b611631565b73ffffffffffffffffffffffffffffffffffffffff1614806117ba57506117b9856117b4611631565b6113c6565b5b806117ff57506117c8611631565b73ffffffffffffffffffffffffffffffffffffffff166117e784610747565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611838576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361189e576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6118ab858585600161206b565b6118b760008487611639565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600460008581526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550428160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060006001850190506000600460008381526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611b36576000548214611b3557878160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084602001518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b5b505050828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611ba18585856001612071565b5050505050565b611bb0612453565b600082905080611bbe6116eb565b11158015611bcd575060005481105b15611e00576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff16151515158152505090508060400151611dfe57600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614611ce2578092505050611e32565b5b600115611dfd57818060019003925050600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614611df8578092505050611e32565b611ce3565b5b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611f17828260405180602001604052806000815250612077565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f41611631565b8786866040518563ffffffff1660e01b8152600401611f639493929190613247565b6020604051808303816000875af1925050508015611f9f57506040513d601f19601f82011682018060405250810190611f9c91906132a8565b60015b612018573d8060008114611fcf576040519150601f19603f3d011682016040523d82523d6000602084013e611fd4565b606091505b506000815103612010576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b50505050565b50505050565b6120848383836001612089565b505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036120f5576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000840361212f576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61213c600086838761206b565b83600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555083600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550846004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060008190506000858201905083801561230657506123058773ffffffffffffffffffffffffffffffffffffffff16611556565b5b156123cb575b818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461237b6000888480600101955088611f1b565b6123b1576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80820361230c5782600054146123c657600080fd5b612436565b5b818060010192508773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48082036123cc575b81600081905550505061244c6000868387612071565b5050505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6124df816124aa565b81146124ea57600080fd5b50565b6000813590506124fc816124d6565b92915050565b600060208284031215612518576125176124a0565b5b6000612526848285016124ed565b91505092915050565b60008115159050919050565b6125448161252f565b82525050565b600060208201905061255f600083018461253b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561259f578082015181840152602081019050612584565b60008484015250505050565b6000601f19601f8301169050919050565b60006125c782612565565b6125d18185612570565b93506125e1818560208601612581565b6125ea816125ab565b840191505092915050565b6000602082019050818103600083015261260f81846125bc565b905092915050565b6000819050919050565b61262a81612617565b811461263557600080fd5b50565b60008135905061264781612621565b92915050565b600060208284031215612663576126626124a0565b5b600061267184828501612638565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126a58261267a565b9050919050565b6126b58161269a565b82525050565b60006020820190506126d060008301846126ac565b92915050565b6126df8161269a565b81146126ea57600080fd5b50565b6000813590506126fc816126d6565b92915050565b60008060408385031215612719576127186124a0565b5b6000612727858286016126ed565b925050602061273885828601612638565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261276757612766612742565b5b8235905067ffffffffffffffff81111561278457612783612747565b5b6020830191508360018202830111156127a05761279f61274c565b5b9250929050565b600080602083850312156127be576127bd6124a0565b5b600083013567ffffffffffffffff8111156127dc576127db6124a5565b5b6127e885828601612751565b92509250509250929050565b6127fd81612617565b82525050565b600060208201905061281860008301846127f4565b92915050565b600080600060608486031215612837576128366124a0565b5b6000612845868287016126ed565b9350506020612856868287016126ed565b925050604061286786828701612638565b9150509250925092565b600060208284031215612887576128866124a0565b5b6000612895848285016126ed565b91505092915050565b6128a78161252f565b81146128b257600080fd5b50565b6000813590506128c48161289e565b92915050565b600080604083850312156128e1576128e06124a0565b5b60006128ef858286016126ed565b9250506020612900858286016128b5565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612947826125ab565b810181811067ffffffffffffffff821117156129665761296561290f565b5b80604052505050565b6000612979612496565b9050612985828261293e565b919050565b600067ffffffffffffffff8211156129a5576129a461290f565b5b6129ae826125ab565b9050602081019050919050565b82818337600083830152505050565b60006129dd6129d88461298a565b61296f565b9050828152602081018484840111156129f9576129f861290a565b5b612a048482856129bb565b509392505050565b600082601f830112612a2157612a20612742565b5b8135612a318482602086016129ca565b91505092915050565b60008060008060808587031215612a5457612a536124a0565b5b6000612a62878288016126ed565b9450506020612a73878288016126ed565b9350506040612a8487828801612638565b925050606085013567ffffffffffffffff811115612aa557612aa46124a5565b5b612ab187828801612a0c565b91505092959194509250565b60008060408385031215612ad457612ad36124a0565b5b6000612ae2858286016126ed565b9250506020612af3858286016126ed565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b4457607f821691505b602082108103612b5757612b56612afd565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b93602083612570565b9150612b9e82612b5d565b602082019050919050565b60006020820190508181036000830152612bc281612b86565b9050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612bf9565b612c408683612bf9565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c7d612c78612c7384612617565b612c58565b612617565b9050919050565b6000819050919050565b612c9783612c62565b612cab612ca382612c84565b848454612c06565b825550505050565b600090565b612cc0612cb3565b612ccb818484612c8e565b505050565b5b81811015612cef57612ce4600082612cb8565b600181019050612cd1565b5050565b601f821115612d3457612d0581612bd4565b612d0e84612be9565b81016020851015612d1d578190505b612d31612d2985612be9565b830182612cd0565b50505b505050565b600082821c905092915050565b6000612d5760001984600802612d39565b1980831691505092915050565b6000612d708383612d46565b9150826002028217905092915050565b612d8a8383612bc9565b67ffffffffffffffff811115612da357612da261290f565b5b612dad8254612b2c565b612db8828285612cf3565b6000601f831160018114612de75760008415612dd5578287013590505b612ddf8582612d64565b865550612e47565b601f198416612df586612bd4565b60005b82811015612e1d57848901358255600182019150602085019450602081019050612df8565b86831015612e3a5784890135612e36601f891682612d46565b8355505b6001600288020188555050505b50505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e8a82612617565b9150612e9583612617565b9250828201905080821115612ead57612eac612e50565b5b92915050565b7f4552433732313a2045786365656473206d6178696d756d20737570706c790000600082015250565b6000612ee9601e83612570565b9150612ef482612eb3565b602082019050919050565b60006020820190508181036000830152612f1881612edc565b9050919050565b7f4552433732313a20496e76616c6964207175616e746974790000000000000000600082015250565b6000612f55601883612570565b9150612f6082612f1f565b602082019050919050565b60006020820190508181036000830152612f8481612f48565b9050919050565b7f4552433732313a20496e73756666696369656e74207061796d656e7400000000600082015250565b6000612fc1601c83612570565b9150612fcc82612f8b565b602082019050919050565b60006020820190508181036000830152612ff081612fb4565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613053602f83612570565b915061305e82612ff7565b604082019050919050565b6000602082019050818103600083015261308281613046565b9050919050565b600081905092915050565b600081546130a181612b2c565b6130ab8186613089565b945060018216600081146130c657600181146130db5761310e565b60ff198316865281151582028601935061310e565b6130e485612bd4565b60005b83811015613106578154818901526001820191506020810190506130e7565b838801955050505b50505092915050565b6000819050919050565b61313261312d82612617565b613117565b82525050565b60006131448285613094565b91506131508284613121565b6020820191508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131bc602683612570565b91506131c782613160565b604082019050919050565b600060208201905081810360008301526131eb816131af565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613219826131f2565b61322381856131fd565b9350613233818560208601612581565b61323c816125ab565b840191505092915050565b600060808201905061325c60008301876126ac565b61326960208301866126ac565b61327660408301856127f4565b8181036060830152613288818461320e565b905095945050505050565b6000815190506132a2816124d6565b92915050565b6000602082840312156132be576132bd6124a0565b5b60006132cc84828501613293565b9150509291505056fea2646970667358221220562865b98f51713edd0d311df8b75e526baf4e5a69ea7d85cb21bf116fed44f664736f6c6343000812003368747470733a2f2f697066732e696f2f697066732f6261666b726569666a6f69376e3564347a71747072706335697770667636796b776a6973757737356c33686d3665736177666b7562696a6d7767610000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000115a6f72612041646f70746572205061737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045a4f524100000000000000000000000000000000000000000000000000000000