0x60806040526040518060400160405280600681526020017f4563686f46490000000000000000000000000000000000000000000000000000815250600190816200004a9190620007d6565b506040518060400160405280600381526020017f454346000000000000000000000000000000000000000000000000000000000081525060029081620000919190620007d6565b506012600360006101000a81548160ff021916908360ff160217905550620000be6200040c60201b60201c565b600a620000cc919062000a4d565b630bebc200620000dd919062000a9e565b6004556002600560006101000a81548160ff021916908360ff1602179055506003600560016101000a81548160ff021916908360ff16021790555030600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101f4600c553480156200016c57600080fd5b506040516200487438038062004874833981810160405281019062000192919062000b53565b620001a3336200042360201b60201c565b80600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060045460096000620001fb620004e760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002596200024d6200051060201b60201c565b6200051860201b60201c565b6001600d60006200026f620004e760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600d6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506200034c6200051060201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200039c620004e760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454604051620003fd919062000b96565b60405180910390a35062000bb3565b6000600360009054906101000a900460ff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005de57607f821691505b602082108103620005f457620005f362000596565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200065e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200061f565b6200066a86836200061f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006b7620006b1620006ab8462000682565b6200068c565b62000682565b9050919050565b6000819050919050565b620006d38362000696565b620006eb620006e282620006be565b8484546200062c565b825550505050565b600090565b62000702620006f3565b6200070f818484620006c8565b505050565b5b8181101562000737576200072b600082620006f8565b60018101905062000715565b5050565b601f82111562000786576200075081620005fa565b6200075b846200060f565b810160208510156200076b578190505b620007836200077a856200060f565b83018262000714565b50505b505050565b600082821c905092915050565b6000620007ab600019846008026200078b565b1980831691505092915050565b6000620007c6838362000798565b9150826002028217905092915050565b620007e1826200055c565b67ffffffffffffffff811115620007fd57620007fc62000567565b5b620008098254620005c5565b620008168282856200073b565b600060209050601f8311600181146200084e576000841562000839578287015190505b620008458582620007b8565b865550620008b5565b601f1984166200085e86620005fa565b60005b82811015620008885784890151825560018201915060208501945060208101905062000861565b86831015620008a85784890151620008a4601f89168262000798565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200094b57808604811115620009235762000922620008bd565b5b6001851615620009335780820291505b80810290506200094385620008ec565b945062000903565b94509492505050565b60008262000966576001905062000a39565b8162000976576000905062000a39565b81600181146200098f57600281146200099a57620009d0565b600191505062000a39565b60ff841115620009af57620009ae620008bd565b5b8360020a915084821115620009c957620009c8620008bd565b5b5062000a39565b5060208310610133831016604e8410600b841016171562000a0a5782820a90508381111562000a045762000a03620008bd565b5b62000a39565b62000a198484846001620008f9565b9250905081840481111562000a335762000a32620008bd565b5b81810290505b9392505050565b600060ff82169050919050565b600062000a5a8262000682565b915062000a678362000a40565b925062000a967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000954565b905092915050565b600062000aab8262000682565b915062000ab88362000682565b925082820262000ac88162000682565b9150828204841483151762000ae25762000ae1620008bd565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b1b8262000aee565b9050919050565b62000b2d8162000b0e565b811462000b3957600080fd5b50565b60008151905062000b4d8162000b22565b92915050565b60006020828403121562000b6c5762000b6b62000ae9565b5b600062000b7c8482850162000b3c565b91505092915050565b62000b908162000682565b82525050565b600060208201905062000bad600083018462000b85565b92915050565b613cb18062000bc36000396000f3fe6080604052600436106101d15760003560e01c806375a3c7b0116100f7578063a457c2d711610095578063dd62ed3e11610064578063dd62ed3e14610672578063e4440a86146106af578063f2fde38b146106da578063ff4b79d314610703576101d8565b8063a457c2d7146105a4578063a9059cbb146105e1578063b59c09741461061e578063c016deae14610635576101d8565b80638da5cb5b116100d15780638da5cb5b146104d457806395d89b41146104ff57806399dead311461052a5780639ffa77dc14610567576101d8565b806375a3c7b01461047d578063791dc0d3146104945780638b6084e4146104bd576101d8565b80632f9c4edb1161016f57806351c6590a1161013e57806351c6590a146103e4578063683ad2ec1461040057806370a0823114610429578063715018a614610466576101d8565b80632f9c4edb1461032a578063313ce56714610353578063395093511461037e5780634d474d42146103bb576101d8565b806318160ddd116101ab57806318160ddd146102705780631a2e6a011461029b57806323b872dd146102c4578063269bf9ea14610301576101d8565b806306fdde03146101dd578063095ea7b3146102085780630c3f6acf14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261071a565b6040516101ff9190612c9a565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612d64565b6107ac565b60405161023c9190612dbf565b60405180910390f35b34801561025157600080fd5b5061025a6107c8565b6040516102679190612dbf565b60405180910390f35b34801561027c57600080fd5b506102856107df565b6040516102929190612de9565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190612e04565b6107e9565b005b3480156102d057600080fd5b506102eb60048036038101906102e69190612e31565b6108b6565b6040516102f89190612dbf565b60405180910390f35b34801561030d57600080fd5b5061032860048036038101906103239190612eb0565b6108de565b005b34801561033657600080fd5b50610351600480360381019061034c9190612e04565b6109ea565b005b34801561035f57600080fd5b50610368610a36565b6040516103759190612f0c565b60405180910390f35b34801561038a57600080fd5b506103a560048036038101906103a09190612d64565b610a4d565b6040516103b29190612dbf565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd9190612e04565b610a7d565b005b6103fe60048036038101906103f99190612f27565b610ac9565b005b34801561040c57600080fd5b5061042760048036038101906104229190612f80565b61106f565b005b34801561043557600080fd5b50610450600480360381019061044b9190612e04565b611108565b60405161045d9190612de9565b60405180910390f35b34801561047257600080fd5b5061047b611151565b005b34801561048957600080fd5b50610492611165565b005b3480156104a057600080fd5b506104bb60048036038101906104b69190612eb0565b611351565b005b3480156104c957600080fd5b506104d261145d565b005b3480156104e057600080fd5b506104e9611491565b6040516104f69190612fcf565b60405180910390f35b34801561050b57600080fd5b506105146114ba565b6040516105219190612c9a565b60405180910390f35b34801561053657600080fd5b50610551600480360381019061054c9190612e04565b61154c565b60405161055e9190612f0c565b60405180910390f35b34801561057357600080fd5b5061058e60048036038101906105899190612e04565b6115a2565b60405161059b9190612f0c565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190612d64565b6115f8565b6040516105d89190612dbf565b60405180910390f35b3480156105ed57600080fd5b5061060860048036038101906106039190612d64565b611668565b6040516106159190612dbf565b60405180910390f35b34801561062a57600080fd5b50610633611684565b005b34801561064157600080fd5b5061065c60048036038101906106579190612e04565b611990565b6040516106699190612de9565b60405180910390f35b34801561067e57600080fd5b5061069960048036038101906106949190612fea565b611b25565b6040516106a69190612de9565b60405180910390f35b3480156106bb57600080fd5b506106c4611bac565b6040516106d19190612fcf565b60405180910390f35b3480156106e657600080fd5b5061070160048036038101906106fc9190612e04565b611bd2565b005b34801561070f57600080fd5b50610718611c55565b005b60606001805461072990613059565b80601f016020809104026020016040519081016040528092919081815260200182805461075590613059565b80156107a25780601f10610777576101008083540402835291602001916107a2565b820191906000526020600020905b81548152906001019060200180831161078557829003601f168201915b5050505050905090565b6000803390506107bd818585611c67565b600191505092915050565b6000600b60149054906101000a900460ff16905090565b6000600454905090565b6107f1611e30565b6000600d60006107ff611e6b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff1602179055506108b381611e73565b50565b6000803390506108c7858285611eb7565b6108d2858585611f43565b60019150509392505050565b6108e6611e30565b6000816108f45760006108f7565b60015b90508060ff16600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff160361098d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610984906130d6565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550505050565b6109f2611e30565b80600560026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360009054906101000a900460ff16905090565b600080339050610a72818585610a638589611b25565b610a6d9190613125565b611c67565b600191505092915050565b610a85611e30565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ad1611e30565b6000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b64919061316e565b905060008173ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c16919061316e565b6040518363ffffffff1660e01b8152600401610c3392919061319b565b602060405180830381865afa158015610c50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c74919061316e565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610cb05780610dbf565b8173ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5e919061316e565b6040518363ffffffff1660e01b8152600401610d7b92919061319b565b6020604051808303816000875af1158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe919061316e565b5b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e92919061316e565b90508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015610edc57600080fd5b505af1158015610ef0573d6000803e3d6000fd5b5050505050610f21600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611668565b508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16346040518363ffffffff1660e01b8152600401610f7f9291906131c4565b6020604051808303816000875af1158015610f9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc29190613202565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636a627842611009611e6b565b6040518263ffffffff1660e01b81526004016110259190612fcf565b6020604051808303816000875af1158015611044573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110689190613244565b5050505050565b611077611e30565b605a8260ff161115801561108f5750605a8160ff1611155b6110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c5906132bd565b60405180910390fd5b81600560006101000a81548160ff021916908360ff16021790555080600560016101000a81548160ff021916908360ff1602179055505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611159612895565b611163600061290c565b565b61116d611e30565b6000600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611200919061316e565b90508073ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b0919061316e565b6040518363ffffffff1660e01b81526004016112cd92919061319b565b602060405180830381865afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e919061316e565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611359611e30565b60008161136757600061136a565b60015b90508060ff16600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1603611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f7906130d6565b60405180910390fd5b80600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550505050565b611465611e30565b600b60149054906101000a900460ff1615600b60146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546114c990613059565b80601f01602080910402602001604051908101604052809291908181526020018280546114f590613059565b80156115425780601f1061151757610100808354040283529160200191611542565b820191906000526020600020905b81548152906001019060200180831161152557829003601f168201915b5050505050905090565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080339050600061160a8286611b25565b90508381101561164f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116469061334f565b60405180910390fd5b61165c8286868403611c67565b60019250505092915050565b600080339050611679818585611f43565b600191505092915050565b61168c611e30565b60006116b9600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611990565b90506000816dffffffffffffffffffffffffffff80166116d9919061336f565b90506116e36129d0565b6116f5306116f033611108565b611668565b5061173330600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff166dffffffffffffffffffffffffffff8016611c67565b6060600267ffffffffffffffff8111156117505761174f6133a3565b5b60405190808252806020026020018201604052801561177e5781602001602082028036833780820191505090505b5090503081600081518110611796576117956133d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561183d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611861919061316e565b81600181518110611875576118746133d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe583600084600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166104b0426119229190613125565b6040518663ffffffff1660e01b8152600401611942959493929190613504565b6000604051808303816000875af1158015611961573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061198a9190613677565b50505050565b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a269190613742565b509150915060008473ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ab1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad5919061316e565b73ffffffffffffffffffffffffffffffffffffffff1614611b0657816dffffffffffffffffffffffffffff16611b18565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bda612895565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4090613807565b60405180910390fd5b611c528161290c565b50565b611c5d611e30565b611c656129d0565b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccd90613899565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3c9061392b565b60405180910390fd5b80600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e239190612de9565b60405180910390a3505050565b6000611e3a611e6b565b9050611e6881600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612a3f565b50565b600033905090565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000611ec38484611b25565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611f3d5781811015611f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2690613997565b60405180910390fd5b611f3c8484848403611c67565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa990613a29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201890613abb565b60405180910390fd5b61202c838383612a7b565b6000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161461208857600080fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561210f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210690613b4d565b60405180910390fd5b6000600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff161480156121bd57506000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16145b15612779576121cb84612aa5565b156124155760006121ee83600560009054906101000a900460ff1660ff16612b57565b905082826121fc919061336f565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808361224b919061336f565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122999190613125565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83866122fb919061336f565b6040516123089190612de9565b60405180910390a38060096000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123819190613125565b92505081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124079190612de9565b60405180910390a350612774565b61241e83612aa5565b1561266857600061244183600560019054906101000a900460ff1660ff16612b57565b9050828261244f919061336f565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808361249e919061336f565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124ec9190613125565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838661254e919061336f565b60405161255b9190612de9565b60405180910390a38060096000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125d49190613125565b92505081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161265a9190612de9565b60405180910390a350612773565b8181612674919061336f565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127069190613125565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161276a9190612de9565b60405180910390a35b5b612884565b8181612785919061336f565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128179190613125565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161287b9190612de9565b60405180910390a35b61288f848484612b79565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166128b4611491565b73ffffffffffffffffffffffffffffffffffffffff161461290a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290190613bb9565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6dffffffffffffffffffffffffffff8016600960006129ed611e6b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612a369190613125565b92505081905550565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612a7757600080fd5b5050565b612a8482612aa5565b15612a9357612a9283612b7e565b5b60008111612aa057600080fd5b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480612b505750600560029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b9050919050565b600060648284612b679190613bd9565b612b719190613c4a565b905092915050565b505050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff1603612bf757600b60149054906101000a900460ff1615612bf657612bf5600c54612bfa565b5b5b50565b803a1115612c0757600080fd5b50565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c44578082015181840152602081019050612c29565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c6c82612c0a565b612c768185612c15565b9350612c86818560208601612c26565b612c8f81612c50565b840191505092915050565b60006020820190508181036000830152612cb48184612c61565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cfb82612cd0565b9050919050565b612d0b81612cf0565b8114612d1657600080fd5b50565b600081359050612d2881612d02565b92915050565b6000819050919050565b612d4181612d2e565b8114612d4c57600080fd5b50565b600081359050612d5e81612d38565b92915050565b60008060408385031215612d7b57612d7a612cc6565b5b6000612d8985828601612d19565b9250506020612d9a85828601612d4f565b9150509250929050565b60008115159050919050565b612db981612da4565b82525050565b6000602082019050612dd46000830184612db0565b92915050565b612de381612d2e565b82525050565b6000602082019050612dfe6000830184612dda565b92915050565b600060208284031215612e1a57612e19612cc6565b5b6000612e2884828501612d19565b91505092915050565b600080600060608486031215612e4a57612e49612cc6565b5b6000612e5886828701612d19565b9350506020612e6986828701612d19565b9250506040612e7a86828701612d4f565b9150509250925092565b612e8d81612da4565b8114612e9857600080fd5b50565b600081359050612eaa81612e84565b92915050565b60008060408385031215612ec757612ec6612cc6565b5b6000612ed585828601612d19565b9250506020612ee685828601612e9b565b9150509250929050565b600060ff82169050919050565b612f0681612ef0565b82525050565b6000602082019050612f216000830184612efd565b92915050565b600060208284031215612f3d57612f3c612cc6565b5b6000612f4b84828501612d4f565b91505092915050565b612f5d81612ef0565b8114612f6857600080fd5b50565b600081359050612f7a81612f54565b92915050565b60008060408385031215612f9757612f96612cc6565b5b6000612fa585828601612f6b565b9250506020612fb685828601612f6b565b9150509250929050565b612fc981612cf0565b82525050565b6000602082019050612fe46000830184612fc0565b92915050565b6000806040838503121561300157613000612cc6565b5b600061300f85828601612d19565b925050602061302085828601612d19565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061307157607f821691505b6020821081036130845761308361302a565b5b50919050565b7f6578697374696e67207374617465000000000000000000000000000000000000600082015250565b60006130c0600e83612c15565b91506130cb8261308a565b602082019050919050565b600060208201905081810360008301526130ef816130b3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061313082612d2e565b915061313b83612d2e565b9250828201905080821115613153576131526130f6565b5b92915050565b60008151905061316881612d02565b92915050565b60006020828403121561318457613183612cc6565b5b600061319284828501613159565b91505092915050565b60006040820190506131b06000830185612fc0565b6131bd6020830184612fc0565b9392505050565b60006040820190506131d96000830185612fc0565b6131e66020830184612dda565b9392505050565b6000815190506131fc81612e84565b92915050565b60006020828403121561321857613217612cc6565b5b6000613226848285016131ed565b91505092915050565b60008151905061323e81612d38565b92915050565b60006020828403121561325a57613259612cc6565b5b60006132688482850161322f565b91505092915050565b7f66656520697320746f6f20686967682100000000000000000000000000000000600082015250565b60006132a7601083612c15565b91506132b282613271565b602082019050919050565b600060208201905081810360008301526132d68161329a565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613339602583612c15565b9150613344826132dd565b604082019050919050565b600060208201905081810360008301526133688161332c565b9050919050565b600061337a82612d2e565b915061338583612d2e565b925082820390508181111561339d5761339c6130f6565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b600061343061342b61342684613401565b61340b565b612d2e565b9050919050565b61344081613415565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61347b81612cf0565b82525050565b600061348d8383613472565b60208301905092915050565b6000602082019050919050565b60006134b182613446565b6134bb8185613451565b93506134c683613462565b8060005b838110156134f75781516134de8882613481565b97506134e983613499565b9250506001810190506134ca565b5085935050505092915050565b600060a0820190506135196000830188612dda565b6135266020830187613437565b818103604083015261353881866134a6565b90506135476060830185612fc0565b6135546080830184612dda565b9695505050505050565b600080fd5b61356c82612c50565b810181811067ffffffffffffffff8211171561358b5761358a6133a3565b5b80604052505050565b600061359e612cbc565b90506135aa8282613563565b919050565b600067ffffffffffffffff8211156135ca576135c96133a3565b5b602082029050602081019050919050565b600080fd5b60006135f36135ee846135af565b613594565b90508083825260208201905060208402830185811115613616576136156135db565b5b835b8181101561363f578061362b888261322f565b845260208401935050602081019050613618565b5050509392505050565b600082601f83011261365e5761365d61355e565b5b815161366e8482602086016135e0565b91505092915050565b60006020828403121561368d5761368c612cc6565b5b600082015167ffffffffffffffff8111156136ab576136aa612ccb565b5b6136b784828501613649565b91505092915050565b60006dffffffffffffffffffffffffffff82169050919050565b6136e3816136c0565b81146136ee57600080fd5b50565b600081519050613700816136da565b92915050565b600063ffffffff82169050919050565b61371f81613706565b811461372a57600080fd5b50565b60008151905061373c81613716565b92915050565b60008060006060848603121561375b5761375a612cc6565b5b6000613769868287016136f1565b935050602061377a868287016136f1565b925050604061378b8682870161372d565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137f1602683612c15565b91506137fc82613795565b604082019050919050565b60006020820190508181036000830152613820816137e4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613883602483612c15565b915061388e82613827565b604082019050919050565b600060208201905081810360008301526138b281613876565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613915602283612c15565b9150613920826138b9565b604082019050919050565b6000602082019050818103600083015261394481613908565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613981601d83612c15565b915061398c8261394b565b602082019050919050565b600060208201905081810360008301526139b081613974565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a13602583612c15565b9150613a1e826139b7565b604082019050919050565b60006020820190508181036000830152613a4281613a06565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa5602383612c15565b9150613ab082613a49565b604082019050919050565b60006020820190508181036000830152613ad481613a98565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b37602683612c15565b9150613b4282613adb565b604082019050919050565b60006020820190508181036000830152613b6681613b2a565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ba3602083612c15565b9150613bae82613b6d565b602082019050919050565b60006020820190508181036000830152613bd281613b96565b9050919050565b6000613be482612d2e565b9150613bef83612d2e565b9250828202613bfd81612d2e565b91508282048414831517613c1457613c136130f6565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c5582612d2e565b9150613c6083612d2e565b925082613c7057613c6f613c1b565b5b82820490509291505056fea264697066735822122055e36f38dccb4202190a07f2ad62dcf90b121e4c1fa2a890c30c8577b4164b6c64736f6c634300081300330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d