60806040526000601460006101000a81548160ff0219169083151502179055506000601460016101000a81548160ff0219169083151502179055506000601460026101000a81548160ff0219169083151502179055506b033b2e3c9fd0803ce8000000601b55670de0b6b3a7640000601c553480156200007e57600080fd5b506040518060400160405280600581526020017f4b6f616c610000000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f244b4f414c41000000000000000000000000000000000000000000000000000081525081600390805190602001906200010392919062000c68565b5080600490805190602001906200011c92919062000c68565b505050600062000131620008a760201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507358bb898055fe4fbbbf84882e43ba2b9e8282690f600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733bb9a4eef69a1466bb22338522d35b1f81aa5385600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507358bb898055fe4fbbbf84882e43ba2b9e8282690f601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160076000620002e5620008af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600062000512620008af60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005cd6006620008d960201b60201c565b620005e2603c601480620009cf60201b60201c565b604051620005f09062000cf9565b604051809103906000f0801580156200060d573d6000803e3d6000fd5b50601460036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331e79db0601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401620006cd919062000d96565b600060405180830381600087803b158015620006e857600080fd5b505af1158015620006fd573d6000803e3d6000fd5b50505050601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331e79db0306040518263ffffffff1660e01b81526004016200075e919062000d96565b600060405180830381600087803b1580156200077957600080fd5b505af11580156200078e573d6000803e3d6000fd5b50505050601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331e79db0620007e0620008af60201b60201c565b6040518263ffffffff1660e01b8152600401620007fe919062000d96565b600060405180830381600087803b1580156200081957600080fd5b505af11580156200082e573d6000803e3d6000fd5b505050506200087162000846620008af60201b60201c565b60646014601b5462000859919062000ef7565b62000865919062000ebf565b62000af060201b60201c565b620008a13060646050601b5462000889919062000ef7565b62000895919062000ebf565b62000af060201b60201c565b620010ab565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620008e9620008a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200097b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009729062000db3565b60405180910390fd5b60038110156200098a57600080fd5b806017819055507f75692f6067c04a97626bc75260695f2f6d8b54c71b8e354d9e6a9ea8694780d5601754604051620009c4919062000df7565b60405180910390a150565b620009df620008a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a689062000db3565b60405180910390fd5b826018819055508160198190555080601a81905550606481838562000a97919062000e62565b62000aa3919062000e62565b1462000aae57600080fd5b7fdee9e37af3ea8d668829450175b129f10d826c482d4a23993888ebdd011b981383838360405162000ae39392919062000e14565b60405180910390a1505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000b63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b5a9062000dd5565b60405180910390fd5b62000b776000838362000c5e60201b60201c565b806002600082825462000b8b919062000e62565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000c3e919062000df7565b60405180910390a362000c5a6000838362000c6360201b60201c565b5050565b505050565b505050565b82805462000c769062000f96565b90600052602060002090601f01602090048101928262000c9a576000855562000ce6565b82601f1062000cb557805160ff191683800117855562000ce6565b8280016001018555821562000ce6579182015b8281111562000ce557825182559160200191906001019062000cc8565b5b50905062000cf5919062000d07565b5090565b6133dd806200616683390190565b5b8082111562000d2257600081600090555060010162000d08565b5090565b62000d318162000f58565b82525050565b600062000d4660208362000e51565b915062000d538262001059565b602082019050919050565b600062000d6d601f8362000e51565b915062000d7a8262001082565b602082019050919050565b62000d908162000f8c565b82525050565b600060208201905062000dad600083018462000d26565b92915050565b6000602082019050818103600083015262000dce8162000d37565b9050919050565b6000602082019050818103600083015262000df08162000d5e565b9050919050565b600060208201905062000e0e600083018462000d85565b92915050565b600060608201905062000e2b600083018662000d85565b62000e3a602083018562000d85565b62000e49604083018462000d85565b949350505050565b600082825260208201905092915050565b600062000e6f8262000f8c565b915062000e7c8362000f8c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000eb45762000eb362000fcc565b5b828201905092915050565b600062000ecc8262000f8c565b915062000ed98362000f8c565b92508262000eec5762000eeb62000ffb565b5b828204905092915050565b600062000f048262000f8c565b915062000f118362000f8c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000f4d5762000f4c62000fcc565b5b828202905092915050565b600062000f658262000f6c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000600282049050600182168062000faf57607f821691505b6020821081141562000fc65762000fc56200102a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6150ab80620010bb6000396000f3fe6080604052600436106101f25760003560e01c80635932ead11161010d57806397c86079116100a0578063b9ccf21d1161006f578063b9ccf21d1461070d578063c582c5fe14610724578063dd62ed3e14610761578063e388d5371461079e578063f3d19bf3146107c9576101f9565b806397c860791461063f578063a457c2d71461066a578063a9059cbb146106a7578063b515566a146106e4576101f9565b8063854aa5c1116100dc578063854aa5c11461057e5780638bcdcbf3146105a75780638da5cb5b146105e957806395d89b4114610614576101f9565b80635932ead1146104d857806370a0823114610501578063715018a61461053e578063729d8a8714610555576101f9565b80632a5bdc33116101855780633950935111610154578063395093511461043257806348dfea0a1461046f5780634e71d92d1461049857806353674ba6146104af576101f9565b80632a5bdc33146103885780632c1f5216146103b1578063313ce567146103dc57806339307e1614610407576101f9565b80631cb9c66b116101c15780631cb9c66b146102bc57806322429085146102f957806323b872dd14610322578063273123b71461035f576101f9565b806306c81144146101fe57806306fdde0314610229578063095ea7b31461025457806318160ddd14610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610806565b60405161022091906147f2565b60405180910390f35b34801561023557600080fd5b5061023e6108c8565b60405161024b9190614690565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190613ffd565b61095a565b604051610288919061465a565b60405180910390f35b34801561029d57600080fd5b506102a661097d565b6040516102b391906147f2565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190613f20565b610987565b6040516102f091906147f2565b60405180910390f35b34801561030557600080fd5b50610320600480360381019061031b9190614198565b610ab5565b005b34801561032e57600080fd5b5061034960048036038101906103449190613fae565b610bc4565b604051610356919061465a565b60405180910390f35b34801561036b57600080fd5b5061038660048036038101906103819190613f20565b610bf3565b005b34801561039457600080fd5b506103af60048036038101906103aa9190613f20565b610ce5565b005b3480156103bd57600080fd5b506103c6610dd7565b6040516103d39190614675565b60405180910390f35b3480156103e857600080fd5b506103f1610dfd565b6040516103fe91906148ff565b60405180910390f35b34801561041357600080fd5b5061041c610e06565b60405161042991906147f2565b60405180910390f35b34801561043e57600080fd5b5061045960048036038101906104549190613ffd565b610e0c565b604051610466919061465a565b60405180910390f35b34801561047b57600080fd5b50610496600480360381019061049191906140c9565b610e43565b005b3480156104a457600080fd5b506104ad61176e565b005b3480156104bb57600080fd5b506104d660048036038101906104d1919061416f565b6117fd565b005b3480156104e457600080fd5b506104ff60048036038101906104fa919061411d565b61189e565b005b34801561050d57600080fd5b5061052860048036038101906105239190613f20565b611952565b60405161053591906147f2565b60405180910390f35b34801561054a57600080fd5b5061055361199a565b005b34801561056157600080fd5b5061057c6004803603810190610577919061416f565b611af2565b005b34801561058a57600080fd5b506105a560048036038101906105a0919061416f565b611b93565b005b3480156105b357600080fd5b506105ce60048036038101906105c99190613f20565b611c7b565b6040516105e09695949392919061489e565b60405180910390f35b3480156105f557600080fd5b506105fe611d98565b60405161060b9190614502565b60405180910390f35b34801561062057600080fd5b50610629611dc2565b6040516106369190614690565b60405180910390f35b34801561064b57600080fd5b50610654611e54565b60405161066191906147f2565b60405180910390f35b34801561067657600080fd5b50610691600480360381019061068c9190613ffd565b611e5a565b60405161069e919061465a565b60405180910390f35b3480156106b357600080fd5b506106ce60048036038101906106c99190613ffd565b611ed1565b6040516106db919061465a565b60405180910390f35b3480156106f057600080fd5b5061070b60048036038101906107069190614088565b611ef4565b005b34801561071957600080fd5b50610722612113565b005b34801561073057600080fd5b5061074b60048036038101906107469190613f20565b6121b4565b604051610758919061465a565b60405180910390f35b34801561076d57600080fd5b5061078860048036038101906107839190613f72565b6121d4565b60405161079591906147f2565b60405180910390f35b3480156107aa57600080fd5b506107b361225b565b6040516107c091906147f2565b60405180910390f35b3480156107d557600080fd5b506107f060048036038101906107eb9190613f20565b612261565b6040516107fd91906147f2565b60405180910390f35b60008061081161097d565b9050601260149054906101000a900460ff1661083057809150506108c5565b600061271090506000601354426108479190614aac565b9050600082601e856108599190614a52565b6108639190614a21565b9050600083600a866108759190614a52565b61087f9190614a21565b90506000603c84836108919190614a52565b61089b9190614a21565b9050670de0b6b3a764000081846108b291906149cb565b6108bc91906149cb565b96505050505050505b90565b6060600380546108d790614c10565b80601f016020809104026020016040519081016040528092919081815260200182805461090390614c10565b80156109505780601f1061092557610100808354040283529160200191610950565b820191906000526020600020905b81548152906001019060200180831161093357829003601f168201915b5050505050905090565b600080610965612279565b9050610972818585612281565b600191505092915050565b6000600254905090565b600080601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156109d95760009050610ab0565b6000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442610a269190614aac565b90506000601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000610e1083601754610a7f9190614a52565b610a899190614a21565b9050818110610a9e5760009350505050610ab0565b8082610aaa9190614aac565b93505050505b919050565b610abd612279565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4390614732565b60405180910390fd5b826018819055508160198190555080601a819055506064818385610b7091906149cb565b610b7a91906149cb565b14610b8457600080fd5b7fdee9e37af3ea8d668829450175b129f10d826c482d4a23993888ebdd011b9813838383604051610bb793929190614867565b60405180910390a1505050565b600080610bcf612279565b9050610bdc85828561244c565b610be78585856124d8565b60019150509392505050565b610bfb612279565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8190614732565b60405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610ced612279565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7390614732565b60405180910390fd5b6001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b601a5481565b600080610e17612279565b9050610e38818585610e2985896121d4565b610e3391906149cb565b612281565b600191505092915050565b610e4b612279565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed190614732565b60405180910390fd5b601260149054906101000a900460ff1615610f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2190614792565b60405180910390fd5b60006038461415610f51577310ed43c718714eb63d5aa57b78b54704e256024e9050610f69565b737a250d5630b4cf539739df2c5dacb4c659f2488d90505b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fd930601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601b54612281565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561101f57600080fd5b505afa158015611033573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110579190613f49565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156110b957600080fd5b505afa1580156110cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f19190613f49565b6040518363ffffffff1660e01b815260040161110e929190614546565b602060405180830381600087803b15801561112857600080fd5b505af115801561113c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111609190613f49565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331e79db0601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161121d9190614502565b600060405180830381600087803b15801561123757600080fd5b505af115801561124b573d6000803e3d6000fd5b50505050601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331e79db0601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016112cc9190614502565b600060405180830381600087803b1580156112e657600080fd5b505af11580156112fa573d6000803e3d6000fd5b50505050600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060076000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a905050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306114a830611952565b6000806114b3611d98565b426040518863ffffffff1660e01b81526004016114d5969594939291906145f9565b6060604051808303818588803b1580156114ee57600080fd5b505af1158015611502573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061152791906141e7565b5050506001601460016101000a81548160ff0219169083151502179055506001601460026101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550426013819055506103e86001601b546115949190614a52565b61159e9190614a21565b600c819055506103e86002601b546115b69190614a52565b6115c09190614a21565b600d8190555060005b835181101561167657826013546115e091906149cb565b600b600086848151811061161d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061166e90614c73565b9150506115c9565b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161171692919061456f565b602060405180830381600087803b15801561173057600080fd5b505af1158015611744573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117689190614146565b50505050565b601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631e83409a336040518263ffffffff1660e01b81526004016117c99190614502565b600060405180830381600087803b1580156117e357600080fd5b505af11580156117f7573d6000803e3d6000fd5b50505050565b611805612279565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188b90614732565b60405180910390fd5b80600c8190555050565b6118a6612279565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90614732565b60405180910390fd5b80601460026101000a81548160ff02191690831515021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119a2612279565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2890614732565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611afa612279565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8090614732565b60405180910390fd5b80600d8190555050565b611b9b612279565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2190614732565b60405180910390fd5b6003811015611c3857600080fd5b806017819055507f75692f6067c04a97626bc75260695f2f6d8b54c71b8e354d9e6a9ea8694780d5601754604051611c7091906147f2565b60405180910390a150565b600080600080600080601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fbcbc0f1886040518263ffffffff1660e01b8152600401611cdf9190614502565b60606040518083038186803b158015611cf757600080fd5b505afa158015611d0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2f9190614039565b9091508096508197505050611d4387610987565b93506017549150601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925042905091939550919395565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054611dd190614c10565b80601f0160208091040260200160405190810160405280929190818152602001828054611dfd90614c10565b8015611e4a5780601f10611e1f57610100808354040283529160200191611e4a565b820191906000526020600020905b815481529060010190602001808311611e2d57829003601f168201915b5050505050905090565b60185481565b600080611e65612279565b90506000611e7382866121d4565b905083811015611eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaf906147d2565b60405180910390fd5b611ec58286868403612281565b60019250505092915050565b600080611edc612279565b9050611ee98185856124d8565b600191505092915050565b611efc612279565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8290614732565b60405180910390fd5b60005b815181101561210f57600160096000848481518110611fd6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166331e79db08383815181106120a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b81526004016120ca9190614502565b600060405180830381600087803b1580156120e457600080fd5b505af11580156120f8573d6000803e3d6000fd5b50505050808061210790614c73565b915050611f8e565b5050565b61211b612279565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a190614732565b60405180910390fd5b6121b26131c0565b565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60195481565b600b6020528060005260406000206000915090505481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e890614772565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612361576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612358906146d2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161243f91906147f2565b60405180910390a3505050565b600061245884846121d4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146124d257818110156124c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124bb906146f2565b60405180910390fd5b6124d18484848403612281565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253f90614752565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125af906146b2565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125fc576125f78383836134ce565b6131bb565b612604611d98565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156126725750612642611d98565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612c0357601260149054906101000a900460ff16806126bd57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b6126c657600080fd5b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561276a5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61277357600080fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561281e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156128745750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561288c5750601460029054906101000a900460ff165b15612a8157612899610806565b816128a384611952565b6128ad91906149cb565b11156128b857600080fd5b42600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061290357600080fd5b600f4261291091906149cb565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156129ec57506000600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15612a7c57600060135442612a019190614aac565b9050601e811015612a7a576000607882601e612a1d9190614aac565b612a279190614a52565b90508042612a3591906149cb565b600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b505b612b55565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b545742600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4a906147b2565b60405180910390fd5b5b5b6000612b6030611952565b9050600c548110158015612b815750601460009054906101000a900460ff16155b8015612bdb5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015612bf35750601460019054906101000a900460ff165b15612c0157612c006131c0565b5b505b6000612c10848484613746565b90506000811115612e3e576000601d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080601c541115612d7a57600081601c54612c799190614aac565b9050612c8486611952565b8482612c909190614a52565b612c9a9190614a21565b82612ca591906149cb565b601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601c54601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612d7857601c54601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b81601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600060648484612e129190614a52565b612e1c9190614a21565b9050612e298630836134ce565b8084612e359190614aac565b93505050612fac565b6000601d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015612edf5750600081115b15612faa576000612eef85611952565b9050808410612f42576000601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fa8565b808482612f4f9190614aac565b83612f5a9190614a52565b612f649190614a21565b601d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505b505b612fb78484846134ce565b6000601c54612fc586611952565b601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601c546130129190614aac565b61301c9190614a52565b6130269190614a21565b90506000601c5461303686611952565b601d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601c546130839190614aac565b61308d9190614a52565b6130979190614a21565b9050601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc87846040518363ffffffff1660e01b81526004016130f692919061451d565b600060405180830381600087803b15801561311057600080fd5b505af1158015613124573d6000803e3d6000fd5b50505050601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e30443bc86836040518363ffffffff1660e01b815260040161318592919061451d565b600060405180830381600087803b15801561319f57600080fd5b505af11580156131b3573d6000803e3d6000fd5b505050505050505b505050565b6001601460006101000a81548160ff02191690831515021790555060006131e630611952565b90506000819050600d548111156131fd57600d5490505b600060c86019548361320f9190614a52565b6132199190614a21565b905080826132279190614aac565b915061323282613a2f565b600060026019546132439190614a21565b9050613266606482476132569190614a52565b6132609190614a21565b83613cf3565b6000601a5460185461327891906149cb565b60646018546132879190614a52565b6132919190614a21565b905060004790506000601460039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16606484846132e19190614a52565b6132eb9190614a21565b6040516132f7906144ed565b60006040518083038185875af1925050503d8060008114613334576040519150601f19603f3d011682016040523d82523d6000602084013e613339565b606091505b50509050479150600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166064603c846133889190614a52565b6133929190614a21565b60405161339e906144ed565b60006040518083038185875af1925050503d80600081146133db576040519150601f19603f3d011682016040523d82523d6000602084013e6133e0565b606091505b505080915050479150600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161342f906144ed565b60006040518083038185875af1925050503d806000811461346c576040519150601f19603f3d011682016040523d82523d6000602084013e613471565b606091505b50508091505080156134aa577fe93241f9a7911fd1d7c92e032875f4c07368d026fa334cccec385050c94f17cc60405160405180910390a15b6000601460006101000a81548160ff02191690831515021790555050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561353e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353590614752565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156135ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135a5906146b2565b60405180910390fd5b6135b9838383613e02565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561363f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161363690614712565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161372d91906147f2565b60405180910390a3613740848484613e07565b50505050565b6000601260149054906101000a900460ff1615806137705750601460009054906101000a900460ff165b1561377e5760009050613a28565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061381f5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561382d5760009050613a28565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806138d65750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156138e45760009050613a28565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156139435760009050613a28565b600061394e85610987565b9050600083111561396857828061396490614be6565b9350505b600061397386611952565b6064856139809190614a52565b61398a9190614a21565b9050808061399790614c73565b915050600081836139a891906149cb565b90506000601660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054426139f79190614aac565b9050610258811015613a12578180613a0e90614c73565b9250505b6063821115613a2057606391505b819450505050505b9392505050565b6000600267ffffffffffffffff811115613a72577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015613aa05781602001602082028036833780820191505090505b5090503081600081518110613ade577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613b8057600080fd5b505afa158015613b94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb89190613f49565b81600181518110613bf2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613c5930601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612281565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613cbd95949392919061480d565b600060405180830381600087803b158015613cd757600080fd5b505af1158015613ceb573d6000803e3d6000fd5b505050505050565b613d2030601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683612281565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833084600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401613da996959493929190614598565b6060604051808303818588803b158015613dc257600080fd5b505af1158015613dd6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613dfb91906141e7565b5050505050565b505050565b505050565b6000613e1f613e1a8461493f565b61491a565b90508083825260208201905082856020860282011115613e3e57600080fd5b60005b85811015613e6e5781613e548882613e78565b845260208401935060208301925050600181019050613e41565b5050509392505050565b600081359050613e8781615030565b92915050565b600081519050613e9c81615030565b92915050565b600082601f830112613eb357600080fd5b8135613ec3848260208601613e0c565b91505092915050565b600081359050613edb81615047565b92915050565b600081519050613ef081615047565b92915050565b600081359050613f058161505e565b92915050565b600081519050613f1a8161505e565b92915050565b600060208284031215613f3257600080fd5b6000613f4084828501613e78565b91505092915050565b600060208284031215613f5b57600080fd5b6000613f6984828501613e8d565b91505092915050565b60008060408385031215613f8557600080fd5b6000613f9385828601613e78565b9250506020613fa485828601613e78565b9150509250929050565b600080600060608486031215613fc357600080fd5b6000613fd186828701613e78565b9350506020613fe286828701613e78565b9250506040613ff386828701613ef6565b9150509250925092565b6000806040838503121561401057600080fd5b600061401e85828601613e78565b925050602061402f85828601613ef6565b9150509250929050565b60008060006060848603121561404e57600080fd5b600061405c86828701613e8d565b935050602061406d86828701613f0b565b925050604061407e86828701613f0b565b9150509250925092565b60006020828403121561409a57600080fd5b600082013567ffffffffffffffff8111156140b457600080fd5b6140c084828501613ea2565b91505092915050565b600080604083850312156140dc57600080fd5b600083013567ffffffffffffffff8111156140f657600080fd5b61410285828601613ea2565b925050602061411385828601613ef6565b9150509250929050565b60006020828403121561412f57600080fd5b600061413d84828501613ecc565b91505092915050565b60006020828403121561415857600080fd5b600061416684828501613ee1565b91505092915050565b60006020828403121561418157600080fd5b600061418f84828501613ef6565b91505092915050565b6000806000606084860312156141ad57600080fd5b60006141bb86828701613ef6565b93505060206141cc86828701613ef6565b92505060406141dd86828701613ef6565b9150509250925092565b6000806000606084860312156141fc57600080fd5b600061420a86828701613f0b565b935050602061421b86828701613f0b565b925050604061422c86828701613f0b565b9150509250925092565b6000614242838361426c565b60208301905092915050565b61425781614b47565b82525050565b61426681614af2565b82525050565b61427581614ae0565b82525050565b61428481614ae0565b82525050565b60006142958261497b565b61429f818561499e565b93506142aa8361496b565b8060005b838110156142db5781516142c28882614236565b97506142cd83614991565b9250506001810190506142ae565b5085935050505092915050565b6142f181614b04565b82525050565b61430081614b59565b82525050565b61430f81614b7d565b82525050565b600061432082614986565b61432a81856149ba565b935061433a818560208601614bb3565b61434381614d78565b840191505092915050565b600061435b6023836149ba565b915061436682614d89565b604082019050919050565b600061437e6022836149ba565b915061438982614dd8565b604082019050919050565b60006143a1601d836149ba565b91506143ac82614e27565b602082019050919050565b60006143c46026836149ba565b91506143cf82614e50565b604082019050919050565b60006143e76020836149ba565b91506143f282614e9f565b602082019050919050565b600061440a6025836149ba565b915061441582614ec8565b604082019050919050565b600061442d6000836149af565b915061443882614f17565b600082019050919050565b60006144506024836149ba565b915061445b82614f1a565b604082019050919050565b60006144736017836149ba565b915061447e82614f69565b602082019050919050565b6000614496603b836149ba565b91506144a182614f92565b604082019050919050565b60006144b96025836149ba565b91506144c482614fe1565b604082019050919050565b6144d881614b30565b82525050565b6144e781614b3a565b82525050565b60006144f882614420565b9150819050919050565b6000602082019050614517600083018461427b565b92915050565b6000604082019050614532600083018561425d565b61453f60208301846144cf565b9392505050565b600060408201905061455b600083018561427b565b614568602083018461427b565b9392505050565b6000604082019050614584600083018561427b565b61459160208301846144cf565b9392505050565b600060c0820190506145ad600083018961427b565b6145ba60208301886144cf565b6145c76040830187614306565b6145d46060830186614306565b6145e1608083018561424e565b6145ee60a08301846144cf565b979650505050505050565b600060c08201905061460e600083018961427b565b61461b60208301886144cf565b6146286040830187614306565b6146356060830186614306565b614642608083018561427b565b61464f60a08301846144cf565b979650505050505050565b600060208201905061466f60008301846142e8565b92915050565b600060208201905061468a60008301846142f7565b92915050565b600060208201905081810360008301526146aa8184614315565b905092915050565b600060208201905081810360008301526146cb8161434e565b9050919050565b600060208201905081810360008301526146eb81614371565b9050919050565b6000602082019050818103600083015261470b81614394565b9050919050565b6000602082019050818103600083015261472b816143b7565b9050919050565b6000602082019050818103600083015261474b816143da565b9050919050565b6000602082019050818103600083015261476b816143fd565b9050919050565b6000602082019050818103600083015261478b81614443565b9050919050565b600060208201905081810360008301526147ab81614466565b9050919050565b600060208201905081810360008301526147cb81614489565b9050919050565b600060208201905081810360008301526147eb816144ac565b9050919050565b600060208201905061480760008301846144cf565b92915050565b600060a08201905061482260008301886144cf565b61482f6020830187614306565b8181036040830152614841818661428a565b9050614850606083018561427b565b61485d60808301846144cf565b9695505050505050565b600060608201905061487c60008301866144cf565b61488960208301856144cf565b61489660408301846144cf565b949350505050565b600060c0820190506148b360008301896144cf565b6148c060208301886144cf565b6148cd60408301876144cf565b6148da60608301866144cf565b6148e760808301856144cf565b6148f460a08301846144cf565b979650505050505050565b600060208201905061491460008301846144de565b92915050565b6000614924614935565b90506149308282614c42565b919050565b6000604051905090565b600067ffffffffffffffff82111561495a57614959614d49565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b60006149d682614b30565b91506149e183614b30565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a1657614a15614cbc565b5b828201905092915050565b6000614a2c82614b30565b9150614a3783614b30565b925082614a4757614a46614ceb565b5b828204905092915050565b6000614a5d82614b30565b9150614a6883614b30565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614aa157614aa0614cbc565b5b828202905092915050565b6000614ab782614b30565b9150614ac283614b30565b925082821015614ad557614ad4614cbc565b5b828203905092915050565b6000614aeb82614b10565b9050919050565b6000614afd82614b10565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000614b5282614b8f565b9050919050565b6000614b6482614b6b565b9050919050565b6000614b7682614b10565b9050919050565b6000614b8882614b30565b9050919050565b6000614b9a82614ba1565b9050919050565b6000614bac82614b10565b9050919050565b60005b83811015614bd1578082015181840152602081019050614bb6565b83811115614be0576000848401525b50505050565b6000614bf182614b30565b91506000821415614c0557614c04614cbc565b5b600182039050919050565b60006002820490506001821680614c2857607f821691505b60208210811415614c3c57614c3b614d1a565b5b50919050565b614c4b82614d78565b810181811067ffffffffffffffff82111715614c6a57614c69614d49565b5b80604052505050565b6000614c7e82614b30565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614cb157614cb0614cbc565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f596f7520626f7567687420736f206561726c792120506c65617365207761697460008201527f20612062697420746f2073656c6c206f72207472616e736665722e0000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61503981614ae0565b811461504457600080fd5b50565b61505081614b04565b811461505b57600080fd5b50565b61506781614b30565b811461507257600080fd5b5056fea2646970667358221220b07131ff9346272e37d503ba4ba4aee01735aee5cdfb042e70ff230104eb652164736f6c6343000804003360806040523480156200001157600080fd5b506040518060400160405280600f81526020017f4b6f616c61446976547261636b657200000000000000000000000000000000008152506040518060400160405280601081526020017f244b6f616c61446976547261636b657200000000000000000000000000000000815250818181600390805190602001906200009892919062000175565b508060049080519060200190620000b192919062000175565b50505050506000620000c86200016d60201b60201c565b905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200028a565b600033905090565b828054620001839062000225565b90600052602060002090601f016020900481019282620001a75760008555620001f3565b82601f10620001c257805160ff1916838001178555620001f3565b82800160010185558215620001f3579182015b82811115620001f2578251825591602001919060010190620001d5565b5b50905062000202919062000206565b5090565b5b808211156200022157600081600090555060010162000207565b5090565b600060028204905060018216806200023e57607f821691505b602082108114156200025557620002546200025b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613143806200029a6000396000f3fe6080604052600436106101bb5760003560e01c806370a08231116100ec578063a8b9d2401161008a578063dd62ed3e11610064578063dd62ed3e14610662578063e0cb27cd1461069f578063e30443bc146106dc578063fbcbc0f114610705576101ca565b8063a8b9d240146105ab578063a9059cbb146105e8578063aafd847a14610625576101ca565b80638da5cb5b116100c65780638da5cb5b146104db57806391b89fba1461050657806395d89b4114610543578063a457c2d71461056e576101ca565b806370a082311461045c578063715018a61461049957806385a6b3ae146104b0576101ca565b806327ce0147116101595780633920fcad116101335780633920fcad146103a057806339509351146103cb5780634e7b827f146104085780636a47400214610445576101ca565b806327ce01471461030f578063313ce5671461034c57806331e79db014610377576101ca565b806318160ddd1161019557806318160ddd146102415780631e83409a1461026c578063226cfa3d1461029557806323b872dd146102d2576101ca565b806303c83302146101cf57806306fdde03146101d9578063095ea7b314610204576101ca565b366101ca576101c8610744565b005b600080fd5b6101d7610744565b005b3480156101e557600080fd5b506101ee610808565b6040516101fb91906126e5565b60405180910390f35b34801561021057600080fd5b5061022b60048036038101906102269190612344565b61089a565b60405161023891906126ca565b60405180910390f35b34801561024d57600080fd5b506102566108bd565b60405161026391906128c7565b60405180910390f35b34801561027857600080fd5b50610293600480360381019061028e919061222b565b6108c7565b005b3480156102a157600080fd5b506102bc60048036038101906102b7919061222b565b6109af565b6040516102c991906128c7565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f491906122f5565b6109c7565b60405161030691906126ca565b60405180910390f35b34801561031b57600080fd5b506103366004803603810190610331919061222b565b6109f6565b60405161034391906128c7565b60405180910390f35b34801561035857600080fd5b50610361610a99565b60405161036e91906128e2565b60405180910390f35b34801561038357600080fd5b5061039e6004803603810190610399919061222b565b610aa2565b005b3480156103ac57600080fd5b506103b5610be2565b6040516103c291906128c7565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed9190612344565b610be9565b6040516103ff91906126ca565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a919061222b565b610c20565b60405161043c91906126ca565b60405180910390f35b34801561045157600080fd5b5061045a610c40565b005b34801561046857600080fd5b50610483600480360381019061047e919061222b565b610c83565b60405161049091906128c7565b60405180910390f35b3480156104a557600080fd5b506104ae610ccb565b005b3480156104bc57600080fd5b506104c5610e23565b6040516104d291906128c7565b60405180910390f35b3480156104e757600080fd5b506104f0610e29565b6040516104fd9190612626565b60405180910390f35b34801561051257600080fd5b5061052d6004803603810190610528919061222b565b610e53565b60405161053a91906128c7565b60405180910390f35b34801561054f57600080fd5b50610558610e65565b60405161056591906126e5565b60405180910390f35b34801561057a57600080fd5b5061059560048036038101906105909190612344565b610ef7565b6040516105a291906126ca565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd919061222b565b610f6e565b6040516105df91906128c7565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a9190612344565b610fd1565b60405161061c91906126ca565b60405180910390f35b34801561063157600080fd5b5061064c6004803603810190610647919061222b565b610ff4565b60405161065991906128c7565b60405180910390f35b34801561066e57600080fd5b50610689600480360381019061068491906122b9565b61103d565b60405161069691906128c7565b60405180910390f35b3480156106ab57600080fd5b506106c660048036038101906106c1919061222b565b6110c4565b6040516106d391906126ca565b60405180910390f35b3480156106e857600080fd5b5061070360048036038101906106fe919061227d565b6113fc565b005b34801561071157600080fd5b5061072c6004803603810190610727919061222b565b611592565b60405161073b93929190612693565b60405180910390f35b600061074e6108bd565b1161075857600080fd5b6000341115610806576107ab61076c6108bd565b610790700100000000000000000000000000000000346115b790919063ffffffff16565b61079a9190612a0e565b60055461163290919063ffffffff16565b6005819055507fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d7845411651133346040516107e292919061266a565b60405180910390a16107ff3460085461163290919063ffffffff16565b6008819055505b565b60606003805461081790612c3b565b80601f016020809104026020016040519081016040528092919081815260200182805461084390612c3b565b80156108905780601f1061086557610100808354040283529160200191610890565b820191906000526020600020905b81548152906001019060200180831161087357829003601f168201915b5050505050905090565b6000806108a5611690565b90506108b2818585611698565b600191505092915050565b6000600254905090565b6108cf611690565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461095e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610955906127e7565b60405180910390fd5b42600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109ab81611863565b5050565b600c6020528060005260406000206000915090505481565b6000806109d2611690565b90506109df858285611a73565b6109ea858585611aff565b60019150509392505050565b6000700100000000000000000000000000000000610a88610a83600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a75610a70610a5f88610c83565b6005546115b790919063ffffffff16565b611b45565b611b6290919063ffffffff16565b611bad565b610a929190612a0e565b9050919050565b60006012905090565b610aaa611690565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b30906127e7565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610b9c816000611bc4565b8073ffffffffffffffffffffffffffffffffffffffff167fa878b31040b2e6d0a9a3d3361209db3908ba62014b0dca52adbaee451d128b2560405160405180910390a250565b624f1a0081565b600080610bf4611690565b9050610c15818585610c06858961103d565b610c1091906129b8565b611698565b600191505092915050565b600b6020528060005260406000206000915054906101000a900460ff1681565b6000610c81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7890612767565b60405180910390fd5b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cd3611690565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d59906127e7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60085481565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610e5e82610f6e565b9050919050565b606060048054610e7490612c3b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea090612c3b565b8015610eed5780601f10610ec257610100808354040283529160200191610eed565b820191906000526020600020905b815481529060010190602001808311610ed057829003601f168201915b5050505050905090565b600080610f02611690565b90506000610f10828661103d565b905083811015610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90612887565b60405180910390fd5b610f628286868403611698565b60019250505092915050565b6000610fca600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fbc846109f6565b611c3190919063ffffffff16565b9050919050565b600080610fdc611690565b9050610fe9818585611aff565b600191505092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006110ce611690565b73ffffffffffffffffffffffffffffffffffffffff166110ec610e29565b73ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561113157600080fd5b505afa158015611145573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111699190612254565b73ffffffffffffffffffffffffffffffffffffffff16146111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690612707565b60405180910390fd5b60006111ca83610f6e565b9050600081116111d957600080fd5b624f1a00600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054426112289190612b2d565b101561123357600080fd5b61128581600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163290919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d83826040516112f992919061266a565b60405180910390a160003373ffffffffffffffffffffffffffffffffffffffff168260405161132790612611565b60006040518083038185875af1925050503d8060008114611364576040519150601f19603f3d011682016040523d82523d6000602084013e611369565b606091505b50509050806113ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a490612827565b60405180910390fd5b42600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600192505050919050565b611404611690565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148a906127e7565b60405180910390fd5b600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156114ea5761158e565b6114f48282611bc4565b60008111801561154357506000600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1561158d5742600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5050565b60008060008392506115a383610f6e565b91506115ae836109f6565b90509193909250565b6000808314156115ca576000905061162c565b600082846115d89190612a3f565b90508284826115e79190612a0e565b14611627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161e906127c7565b60405180910390fd5b809150505b92915050565b600080828461164191906129b8565b905083811015611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d90612787565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ff90612867565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176f90612747565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161185691906128c7565b60405180910390a3505050565b60008061186f83610f6e565b90506000811115611a68576118cc81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461163290919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d8382604051611940929190612641565b60405180910390a160008373ffffffffffffffffffffffffffffffffffffffff1682610bb89060405161197290612611565b600060405180830381858888f193505050503d80600081146119b0576040519150601f19603f3d011682016040523d82523d6000602084013e6119b5565b606091505b5050905080611a5e57611a1082600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3190919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600092505050611a6e565b8192505050611a6e565b60009150505b919050565b6000611a7f848461103d565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611af95781811015611aeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae2906127a7565b60405180910390fd5b611af88484848403611698565b5b50505050565b6000611b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3790612807565b60405180910390fd5b505050565b6000808290506000811215611b5957600080fd5b80915050919050565b6000808284611b719190612924565b905060008312158015611b845750838112155b80611b9a5750600083128015611b9957508381125b5b611ba357600080fd5b8091505092915050565b600080821215611bbc57600080fd5b819050919050565b6000611bcf83610c83565b905080821115611c00576000611bee8284611c3190919063ffffffff16565b9050611bfa8482611c7b565b50611c2c565b80821015611c2b576000611c1d8383611c3190919063ffffffff16565b9050611c298482611d3a565b505b5b505050565b6000611c7383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df9565b905092915050565b611c858282611e5d565b611cf3611ca5611ca0836005546115b790919063ffffffff16565b611b45565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fb490919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b611d448282611fff565b611db2611d64611d5f836005546115b790919063ffffffff16565b611b45565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b6290919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000838311158290611e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3891906126e5565b60405180910390fd5b5060008385611e509190612b2d565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec4906128a7565b60405180910390fd5b611ed9600083836121cd565b8060026000828254611eeb91906129b8565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f9c91906128c7565b60405180910390a3611fb0600083836121d2565b5050565b6000808284611fc39190612a99565b905060008312158015611fd65750838113155b80611fec5750600083128015611feb57508381135b5b611ff557600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690612847565b60405180910390fd5b61207b826000836121cd565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f890612727565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121b491906128c7565b60405180910390a36121c8836000846121d2565b505050565b505050565b505050565b6000813590506121e6816130c8565b92915050565b6000815190506121fb816130c8565b92915050565b600081359050612210816130df565b92915050565b600081359050612225816130f6565b92915050565b60006020828403121561223d57600080fd5b600061224b848285016121d7565b91505092915050565b60006020828403121561226657600080fd5b6000612274848285016121ec565b91505092915050565b6000806040838503121561229057600080fd5b600061229e85828601612201565b92505060206122af85828601612216565b9150509250929050565b600080604083850312156122cc57600080fd5b60006122da858286016121d7565b92505060206122eb858286016121d7565b9150509250929050565b60008060006060848603121561230a57600080fd5b6000612318868287016121d7565b9350506020612329868287016121d7565b925050604061233a86828701612216565b9150509250925092565b6000806040838503121561235757600080fd5b6000612365858286016121d7565b925050602061237685828601612216565b9150509250929050565b61238981612bd2565b82525050565b61239881612b61565b82525050565b6123a781612b85565b82525050565b60006123b8826128fd565b6123c28185612913565b93506123d2818560208601612c08565b6123db81612cfa565b840191505092915050565b60006123f3601f83612913565b91506123fe82612d0b565b602082019050919050565b6000612416602283612913565b915061242182612d34565b604082019050919050565b6000612439602283612913565b915061244482612d83565b604082019050919050565b600061245c606583612913565b915061246782612dd2565b608082019050919050565b600061247f601b83612913565b915061248a82612e6d565b602082019050919050565b60006124a2601d83612913565b91506124ad82612e96565b602082019050919050565b60006124c5602183612913565b91506124d082612ebf565b604082019050919050565b60006124e8602083612913565b91506124f382612f0e565b602082019050919050565b600061250b602a83612913565b915061251682612f37565b604082019050919050565b600061252e601883612913565b915061253982612f86565b602082019050919050565b6000612551602183612913565b915061255c82612faf565b604082019050919050565b6000612574600083612908565b915061257f82612ffe565b600082019050919050565b6000612597602483612913565b91506125a282613001565b604082019050919050565b60006125ba602583612913565b91506125c582613050565b604082019050919050565b60006125dd601f83612913565b91506125e88261309f565b602082019050919050565b6125fc81612bbb565b82525050565b61260b81612bc5565b82525050565b600061261c82612567565b9150819050919050565b600060208201905061263b600083018461238f565b92915050565b60006040820190506126566000830185612380565b61266360208301846125f3565b9392505050565b600060408201905061267f600083018561238f565b61268c60208301846125f3565b9392505050565b60006060820190506126a8600083018661238f565b6126b560208301856125f3565b6126c260408301846125f3565b949350505050565b60006020820190506126df600083018461239e565b92915050565b600060208201905081810360008301526126ff81846123ad565b905092915050565b60006020820190508181036000830152612720816123e6565b9050919050565b6000602082019050818103600083015261274081612409565b9050919050565b600060208201905081810360008301526127608161242c565b9050919050565b600060208201905081810360008301526127808161244f565b9050919050565b600060208201905081810360008301526127a081612472565b9050919050565b600060208201905081810360008301526127c081612495565b9050919050565b600060208201905081810360008301526127e0816124b8565b9050919050565b60006020820190508181036000830152612800816124db565b9050919050565b60006020820190508181036000830152612820816124fe565b9050919050565b6000602082019050818103600083015261284081612521565b9050919050565b6000602082019050818103600083015261286081612544565b9050919050565b600060208201905081810360008301526128808161258a565b9050919050565b600060208201905081810360008301526128a0816125ad565b9050919050565b600060208201905081810360008301526128c0816125d0565b9050919050565b60006020820190506128dc60008301846125f3565b92915050565b60006020820190506128f76000830184612602565b92915050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600061292f82612b91565b915061293a83612b91565b9250817f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0383136000831215161561297557612974612c6d565b5b817f80000000000000000000000000000000000000000000000000000000000000000383126000831216156129ad576129ac612c6d565b5b828201905092915050565b60006129c382612bbb565b91506129ce83612bbb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a0357612a02612c6d565b5b828201905092915050565b6000612a1982612bbb565b9150612a2483612bbb565b925082612a3457612a33612c9c565b5b828204905092915050565b6000612a4a82612bbb565b9150612a5583612bbb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612a8e57612a8d612c6d565b5b828202905092915050565b6000612aa482612b91565b9150612aaf83612b91565b9250827f800000000000000000000000000000000000000000000000000000000000000001821260008412151615612aea57612ae9612c6d565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018213600084121615612b2257612b21612c6d565b5b828203905092915050565b6000612b3882612bbb565b9150612b4383612bbb565b925082821015612b5657612b55612c6d565b5b828203905092915050565b6000612b6c82612b9b565b9050919050565b6000612b7e82612b9b565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612bdd82612be4565b9050919050565b6000612bef82612bf6565b9050919050565b6000612c0182612b9b565b9050919050565b60005b83811015612c26578082015181840152602081019050612c0b565b83811115612c35576000848401525b50505050565b60006002820490506001821680612c5357607f821691505b60208210811415612c6757612c66612ccb565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f63616c6c6572206973206e6f7420746865206f776e65722773206f776e657200600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4b6f616c614469766964656e64547261636b65723a207769746864726177446960008201527f766964656e642064697361626c65642e20557365207468652027636c61696d2760208201527f2066756e6374696f6e206f6e20746865206d61696e204b6f616c6120636f6e7460408201527f726163742e000000000000000000000000000000000000000000000000000000606082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4b6f616c614469766964656e64547261636b65723a204e6f207472616e73666560008201527f727320616c6c6f77656400000000000000000000000000000000000000000000602082015250565b7f436f756c64206e6f742073656e64206469766964656e64730000000000000000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6130d181612b61565b81146130dc57600080fd5b50565b6130e881612b73565b81146130f357600080fd5b50565b6130ff81612bbb565b811461310a57600080fd5b5056fea2646970667358221220c0433c50d6856fa34a8b3e449cea0cba8ae2fd8168d16349e8bef8358005def064736f6c63430008040033