60806040523480156200001157600080fd5b506040516200426438038062004264833981810160405281019062000037919062000702565b733cc6cdda760b79bafa08df41ecfa224f810dceb660018383816002908162000061919062000a3b565b50806003908162000073919062000a3b565b50620000846200035860201b60201c565b6000819055505050620000ac620000a06200036160201b60201c565b6200036960201b60201c565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115620002a157801562000167576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16637d3e3dbe30846040518363ffffffff1660e01b81526004016200012d92919062000b33565b600060405180830381600087803b1580156200014857600080fd5b505af11580156200015d573d6000803e3d6000fd5b50505050620002a0565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000221576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663a0af290330846040518363ffffffff1660e01b8152600401620001e792919062000b33565b600060405180830381600087803b1580156200020257600080fd5b505af115801562000217573d6000803e3d6000fd5b505050506200029f565b6daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b81526004016200026a919062000b60565b600060405180830381600087803b1580156200028557600080fd5b505af11580156200029a573d6000803e3d6000fd5b505050505b5b5b505060005b84518110156200033b57600160096000878481518110620002cc57620002cb62000b7d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080620003329062000bdb565b915050620002a6565b5082600a90816200034d919062000a3b565b505050505062000c28565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004938262000448565b810181811067ffffffffffffffff82111715620004b557620004b462000459565b5b80604052505050565b6000620004ca6200042f565b9050620004d8828262000488565b919050565b600067ffffffffffffffff821115620004fb57620004fa62000459565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200053e8262000511565b9050919050565b620005508162000531565b81146200055c57600080fd5b50565b600081519050620005708162000545565b92915050565b60006200058d6200058784620004dd565b620004be565b90508083825260208201905060208402830185811115620005b357620005b26200050c565b5b835b81811015620005e05780620005cb88826200055f565b845260208401935050602081019050620005b5565b5050509392505050565b600082601f83011262000602576200060162000443565b5b81516200061484826020860162000576565b91505092915050565b600080fd5b600067ffffffffffffffff82111562000640576200063f62000459565b5b6200064b8262000448565b9050602081019050919050565b60005b83811015620006785780820151818401526020810190506200065b565b60008484015250505050565b60006200069b620006958462000622565b620004be565b905082815260208101848484011115620006ba57620006b96200061d565b5b620006c784828562000658565b509392505050565b600082601f830112620006e757620006e662000443565b5b8151620006f984826020860162000684565b91505092915050565b600080600080608085870312156200071f576200071e62000439565b5b600085015167ffffffffffffffff81111562000740576200073f6200043e565b5b6200074e87828801620005ea565b945050602085015167ffffffffffffffff8111156200077257620007716200043e565b5b6200078087828801620006cf565b935050604085015167ffffffffffffffff811115620007a457620007a36200043e565b5b620007b287828801620006cf565b925050606085015167ffffffffffffffff811115620007d657620007d56200043e565b5b620007e487828801620006cf565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200084357607f821691505b602082108103620008595762000858620007fb565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000884565b620008cf868362000884565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200091c620009166200091084620008e7565b620008f1565b620008e7565b9050919050565b6000819050919050565b6200093883620008fb565b62000950620009478262000923565b84845462000891565b825550505050565b600090565b6200096762000958565b620009748184846200092d565b505050565b5b818110156200099c57620009906000826200095d565b6001810190506200097a565b5050565b601f821115620009eb57620009b5816200085f565b620009c08462000874565b81016020851015620009d0578190505b620009e8620009df8562000874565b83018262000979565b50505b505050565b600082821c905092915050565b600062000a1060001984600802620009f0565b1980831691505092915050565b600062000a2b8383620009fd565b9150826002028217905092915050565b62000a4682620007f0565b67ffffffffffffffff81111562000a625762000a6162000459565b5b62000a6e82546200082a565b62000a7b828285620009a0565b600060209050601f83116001811462000ab3576000841562000a9e578287015190505b62000aaa858262000a1d565b86555062000b1a565b601f19841662000ac3866200085f565b60005b8281101562000aed5784890151825560018201915060208501945060208101905062000ac6565b8683101562000b0d578489015162000b09601f891682620009fd565b8355505b6001600288020188555050505b505050505050565b62000b2d8162000531565b82525050565b600060408201905062000b4a600083018562000b22565b62000b59602083018462000b22565b9392505050565b600060208201905062000b77600083018462000b22565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000be882620008e7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000c1d5762000c1c62000bac565b5b600182019050919050565b61362c8062000c386000396000f3fe6080604052600436106101b75760003560e01c806355f804b3116100ec57806395d89b411161008a578063badb97ff11610064578063badb97ff146105c0578063c87b56dd146105e9578063e985e9c514610626578063f2fde38b14610663576101b7565b806395d89b4114610550578063a22cb4651461057b578063b88d4fde146105a4576101b7565b806370480275116100c657806370480275146104a857806370a08231146104d1578063715018a61461050e5780638da5cb5b14610525576101b7565b806355f804b3146104175780636352211e146104405780636c0360eb1461047d576101b7565b806318160ddd1161015957806341f434341161013357806341f434341461036a57806342842e0e1461039557806342966c68146103b1578063429b62e5146103da576101b7565b806318160ddd146102e657806323b872dd1461031157806324d7806c1461032d576101b7565b8063081812fc11610195578063081812fc1461023b578063095ea7b3146102785780631375a681146102945780631785f53c146102bd576101b7565b806301ffc9a7146101bc57806306fdde03146101f957806307754a4e14610224575b600080fd5b3480156101c857600080fd5b506101e360048036038101906101de91906125ff565b61068c565b6040516101f09190612647565b60405180910390f35b34801561020557600080fd5b5061020e61069e565b60405161021b91906126f2565b60405180910390f35b34801561023057600080fd5b50610239610730565b005b34801561024757600080fd5b50610262600480360381019061025d919061274a565b61088a565b60405161026f91906127b8565b60405180910390f35b610292600480360381019061028d91906127ff565b610909565b005b3480156102a057600080fd5b506102bb60048036038101906102b69190612987565b610a4d565b005b3480156102c957600080fd5b506102e460048036038101906102df91906129d0565b610b4e565b005b3480156102f257600080fd5b506102fb610ba8565b6040516103089190612a0c565b60405180910390f35b61032b60048036038101906103269190612a27565b610bbf565b005b34801561033957600080fd5b50610354600480360381019061034f91906129d0565b610ee1565b6040516103619190612647565b60405180910390f35b34801561037657600080fd5b5061037f610f37565b60405161038c9190612ad9565b60405180910390f35b6103af60048036038101906103aa9190612a27565b610f49565b005b3480156103bd57600080fd5b506103d860048036038101906103d3919061274a565b611051565b005b3480156103e657600080fd5b5061040160048036038101906103fc91906129d0565b61105f565b60405161040e9190612647565b60405180910390f35b34801561042357600080fd5b5061043e60048036038101906104399190612ba9565b61107f565b005b34801561044c57600080fd5b506104676004803603810190610462919061274a565b61109a565b60405161047491906127b8565b60405180910390f35b34801561048957600080fd5b506104926110ac565b60405161049f91906126f2565b60405180910390f35b3480156104b457600080fd5b506104cf60048036038101906104ca91906129d0565b61113a565b005b3480156104dd57600080fd5b506104f860048036038101906104f391906129d0565b61119d565b6040516105059190612a0c565b60405180910390f35b34801561051a57600080fd5b50610523611255565b005b34801561053157600080fd5b5061053a611269565b60405161054791906127b8565b60405180910390f35b34801561055c57600080fd5b50610565611293565b60405161057291906126f2565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d9190612c1e565b611325565b005b6105be60048036038101906105b99190612cff565b6113f7565b005b3480156105cc57600080fd5b506105e760048036038101906105e2919061274a565b61146a565b005b3480156105f557600080fd5b50610610600480360381019061060b919061274a565b61152f565b60405161061d91906126f2565b60405180910390f35b34801561063257600080fd5b5061064d60048036038101906106489190612d82565b6115a2565b60405161065a9190612647565b60405180910390f35b34801561066f57600080fd5b5061068a600480360381019061068591906129d0565b611612565b005b600061069782611695565b9050919050565b6060600280546106ad90612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546106d990612df1565b80156107265780601f106106fb57610100808354040283529160200191610726565b820191906000526020600020905b81548152906001019060200180831161070957829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b815260040161076991906127b8565b602060405180830381865afa158015610786573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107aa9190612e37565b6107e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e090612eb0565b60405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085a9190612ee5565b90506000600190505b8181116108865761087381611051565b808061087e90612f41565b915050610863565b5050565b600061089582611727565b6108cb576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109148261109a565b90508073ffffffffffffffffffffffffffffffffffffffff16610935611786565b73ffffffffffffffffffffffffffffffffffffffff1614610998576109618161095c611786565b6115a2565b610997576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b3073ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b8152600401610a8691906127b8565b602060405180830381865afa158015610aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac79190612e37565b610b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afd90612eb0565b60405180910390fd5b60005b8151811015610b4a57610b37828281518110610b2857610b27612f89565b5b6020026020010151600161178e565b8080610b4290612f41565b915050610b09565b5050565b610b56611949565b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905550565b6000610bb26119c7565b6001546000540303905090565b6000610bca826119d0565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c31576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610c3d84611a9c565b91509150610c538187610c4e611786565b611ac3565b610c9f57610c6886610c63611786565b6115a2565b610c9e576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610d05576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d128686866001611b07565b8015610d1d57600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610deb85610dc7888887611b0d565b7c020000000000000000000000000000000000000000000000000000000017611b35565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610e715760006001850190506000600460008381526020019081526020016000205403610e6f576000548114610e6e578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610ed98686866001611b60565b505050505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6daaeb6d7670e522a718067333cd4e81565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610f8757610f8633611b66565b5b3073ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b8152600401610fc091906127b8565b602060405180830381865afa158015610fdd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110019190612e37565b611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790612eb0565b60405180910390fd5b61104b848484611c63565b50505050565b61105c816001611c83565b50565b60096020528060005260406000206000915054906101000a900460ff1681565b611087611949565b80600a9081611096919061315a565b5050565b60006110a5826119d0565b9050919050565b600a80546110b990612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546110e590612df1565b80156111325780601f1061110757610100808354040283529160200191611132565b820191906000526020600020905b81548152906001019060200180831161111557829003601f168201915b505050505081565b611142611949565b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611204576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61125d611949565b6112676000611d4a565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600380546112a290612df1565b80601f01602080910402602001604051908101604052809291908181526020018280546112ce90612df1565b801561131b5780601f106112f05761010080835404028352916020019161131b565b820191906000526020600020905b8154815290600101906020018083116112fe57829003601f168201915b5050505050905090565b8161132f81611b66565b3073ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b815260040161136891906127b8565b602060405180830381865afa158015611385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a99190612e37565b6113e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113df90612eb0565b60405180910390fd5b6113f28383611e10565b505050565b611402848484610bbf565b60008373ffffffffffffffffffffffffffffffffffffffff163b146114645761142d84848484611f1b565b611463576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b3073ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b81526004016114a391906127b8565b602060405180830381865afa1580156114c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e49190612e37565b611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a90612eb0565b60405180910390fd5b61152c81611051565b50565b606061153a82611727565b611570576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a61157b8361206b565b60405160200161158c929190613383565b6040516020818303038152906040529050919050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156115ff576001905061160c565b6116098383612139565b90505b92915050565b61161a611949565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611689576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116809061342f565b60405180910390fd5b61169281611d4a565b50565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f057506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806117205750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6000816117326119c7565b11158015611741575060005482105b801561177f575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600080549050600082036117ce576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117db6000848385611b07565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611852836118436000866000611b0d565b61184c856121cd565b17611b35565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b8181146118f357808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001810190506118b8565b506000820361192e576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506119446000848385611b60565b505050565b6119516121dd565b73ffffffffffffffffffffffffffffffffffffffff1661196f611269565b73ffffffffffffffffffffffffffffffffffffffff16146119c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bc9061349b565b60405180910390fd5b565b60006001905090565b600080829050806119df6119c7565b11611a6557600054811015611a645760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611a62575b60008103611a58576004600083600190039350838152602001908152602001600020549050611a2e565b8092505050611a97565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611b248686846121e5565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b60006daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff163b1115611c60576daaeb6d7670e522a718067333cd4e73ffffffffffffffffffffffffffffffffffffffff1663c617113430836040518363ffffffff1660e01b8152600401611bdd9291906134bb565b602060405180830381865afa158015611bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1e9190612e37565b611c5f57806040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401611c5691906127b8565b60405180910390fd5b5b50565b611c7e838383604051806020016040528060008152506113f7565b505050565b3073ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b8152600401611cbc91906127b8565b602060405180830381865afa158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190612e37565b611d3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3390612eb0565b60405180910390fd5b611d4682826121ee565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8060076000611e1d611786565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611eca611786565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611f0f9190612647565b60405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f41611786565b8786866040518563ffffffff1660e01b8152600401611f639493929190613539565b6020604051808303816000875af1925050508015611f9f57506040513d601f19601f82011682018060405250810190611f9c919061359a565b60015b612018573d8060008114611fcf576040519150601f19603f3d011682016040523d82523d6000602084013e611fd4565b606091505b506000815103612010576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60606000600161207a84612440565b01905060008167ffffffffffffffff81111561209957612098612844565b5b6040519080825280601f01601f1916602001820160405280156120cb5781602001600182028036833780820191505090505b509050600082602001820190505b60011561212e578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581612122576121216135c7565b5b049450600085036120d9575b819350505050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60006001821460e11b9050919050565b600033905090565b60009392505050565b60006121f9836119d0565b9050600081905060008061220c86611a9c565b915091508415612275576122288184612223611786565b611ac3565b6122745761223d83612238611786565b6115a2565b612273576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5b612283836000886001611b07565b801561228e57600082555b600160806001901b03600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612336836122f385600088611b0d565b7c02000000000000000000000000000000000000000000000000000000007c01000000000000000000000000000000000000000000000000000000001717611b35565b600460008881526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008516036123bc57600060018701905060006004600083815260200190815260200160002054036123ba5760005481146123b9578460046000838152602001908152602001600020819055505b5b505b85600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612426836000886001611b60565b600160008154809291906001019190505550505050505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061249e577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612494576124936135c7565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106124db576d04ee2d6d415b85acef810000000083816124d1576124d06135c7565b5b0492506020810190505b662386f26fc10000831061250a57662386f26fc100008381612500576124ff6135c7565b5b0492506010810190505b6305f5e1008310612533576305f5e1008381612529576125286135c7565b5b0492506008810190505b612710831061255857612710838161254e5761254d6135c7565b5b0492506004810190505b6064831061257b5760648381612571576125706135c7565b5b0492506002810190505b600a831061258a576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6125dc816125a7565b81146125e757600080fd5b50565b6000813590506125f9816125d3565b92915050565b6000602082840312156126155761261461259d565b5b6000612623848285016125ea565b91505092915050565b60008115159050919050565b6126418161262c565b82525050565b600060208201905061265c6000830184612638565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561269c578082015181840152602081019050612681565b60008484015250505050565b6000601f19601f8301169050919050565b60006126c482612662565b6126ce818561266d565b93506126de81856020860161267e565b6126e7816126a8565b840191505092915050565b6000602082019050818103600083015261270c81846126b9565b905092915050565b6000819050919050565b61272781612714565b811461273257600080fd5b50565b6000813590506127448161271e565b92915050565b6000602082840312156127605761275f61259d565b5b600061276e84828501612735565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127a282612777565b9050919050565b6127b281612797565b82525050565b60006020820190506127cd60008301846127a9565b92915050565b6127dc81612797565b81146127e757600080fd5b50565b6000813590506127f9816127d3565b92915050565b600080604083850312156128165761281561259d565b5b6000612824858286016127ea565b925050602061283585828601612735565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61287c826126a8565b810181811067ffffffffffffffff8211171561289b5761289a612844565b5b80604052505050565b60006128ae612593565b90506128ba8282612873565b919050565b600067ffffffffffffffff8211156128da576128d9612844565b5b602082029050602081019050919050565b600080fd5b60006129036128fe846128bf565b6128a4565b90508083825260208201905060208402830185811115612926576129256128eb565b5b835b8181101561294f578061293b88826127ea565b845260208401935050602081019050612928565b5050509392505050565b600082601f83011261296e5761296d61283f565b5b813561297e8482602086016128f0565b91505092915050565b60006020828403121561299d5761299c61259d565b5b600082013567ffffffffffffffff8111156129bb576129ba6125a2565b5b6129c784828501612959565b91505092915050565b6000602082840312156129e6576129e561259d565b5b60006129f4848285016127ea565b91505092915050565b612a0681612714565b82525050565b6000602082019050612a2160008301846129fd565b92915050565b600080600060608486031215612a4057612a3f61259d565b5b6000612a4e868287016127ea565b9350506020612a5f868287016127ea565b9250506040612a7086828701612735565b9150509250925092565b6000819050919050565b6000612a9f612a9a612a9584612777565b612a7a565b612777565b9050919050565b6000612ab182612a84565b9050919050565b6000612ac382612aa6565b9050919050565b612ad381612ab8565b82525050565b6000602082019050612aee6000830184612aca565b92915050565b600080fd5b600067ffffffffffffffff821115612b1457612b13612844565b5b612b1d826126a8565b9050602081019050919050565b82818337600083830152505050565b6000612b4c612b4784612af9565b6128a4565b905082815260208101848484011115612b6857612b67612af4565b5b612b73848285612b2a565b509392505050565b600082601f830112612b9057612b8f61283f565b5b8135612ba0848260208601612b39565b91505092915050565b600060208284031215612bbf57612bbe61259d565b5b600082013567ffffffffffffffff811115612bdd57612bdc6125a2565b5b612be984828501612b7b565b91505092915050565b612bfb8161262c565b8114612c0657600080fd5b50565b600081359050612c1881612bf2565b92915050565b60008060408385031215612c3557612c3461259d565b5b6000612c43858286016127ea565b9250506020612c5485828601612c09565b9150509250929050565b600067ffffffffffffffff821115612c7957612c78612844565b5b612c82826126a8565b9050602081019050919050565b6000612ca2612c9d84612c5e565b6128a4565b905082815260208101848484011115612cbe57612cbd612af4565b5b612cc9848285612b2a565b509392505050565b600082601f830112612ce657612ce561283f565b5b8135612cf6848260208601612c8f565b91505092915050565b60008060008060808587031215612d1957612d1861259d565b5b6000612d27878288016127ea565b9450506020612d38878288016127ea565b9350506040612d4987828801612735565b925050606085013567ffffffffffffffff811115612d6a57612d696125a2565b5b612d7687828801612cd1565b91505092959194509250565b60008060408385031215612d9957612d9861259d565b5b6000612da7858286016127ea565b9250506020612db8858286016127ea565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612e0957607f821691505b602082108103612e1c57612e1b612dc2565b5b50919050565b600081519050612e3181612bf2565b92915050565b600060208284031215612e4d57612e4c61259d565b5b6000612e5b84828501612e22565b91505092915050565b7f6e6f742061646d696e0000000000000000000000000000000000000000000000600082015250565b6000612e9a60098361266d565b9150612ea582612e64565b602082019050919050565b60006020820190508181036000830152612ec981612e8d565b9050919050565b600081519050612edf8161271e565b92915050565b600060208284031215612efb57612efa61259d565b5b6000612f0984828501612ed0565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f4c82612714565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f7e57612f7d612f12565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261301a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612fdd565b6130248683612fdd565b95508019841693508086168417925050509392505050565b600061305761305261304d84612714565b612a7a565b612714565b9050919050565b6000819050919050565b6130718361303c565b61308561307d8261305e565b848454612fea565b825550505050565b600090565b61309a61308d565b6130a5818484613068565b505050565b5b818110156130c9576130be600082613092565b6001810190506130ab565b5050565b601f82111561310e576130df81612fb8565b6130e884612fcd565b810160208510156130f7578190505b61310b61310385612fcd565b8301826130aa565b50505b505050565b600082821c905092915050565b600061313160001984600802613113565b1980831691505092915050565b600061314a8383613120565b9150826002028217905092915050565b61316382612662565b67ffffffffffffffff81111561317c5761317b612844565b5b6131868254612df1565b6131918282856130cd565b600060209050601f8311600181146131c457600084156131b2578287015190505b6131bc858261313e565b865550613224565b601f1984166131d286612fb8565b60005b828110156131fa578489015182556001820191506020850194506020810190506131d5565b868310156132175784890151613213601f891682613120565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b6000815461324481612df1565b61324e818661322c565b94506001821660008114613269576001811461327e576132b1565b60ff19831686528115158202860193506132b1565b61328785612fb8565b60005b838110156132a95781548189015260018201915060208101905061328a565b838801955050505b50505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b60006132f060018361322c565b91506132fb826132ba565b600182019050919050565b600061331182612662565b61331b818561322c565b935061332b81856020860161267e565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b600061336d60058361322c565b915061337882613337565b600582019050919050565b600061338f8285613237565b915061339a826132e3565b91506133a68284613306565b91506133b182613360565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061341960268361266d565b9150613424826133bd565b604082019050919050565b600060208201905081810360008301526134488161340c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061348560208361266d565b91506134908261344f565b602082019050919050565b600060208201905081810360008301526134b481613478565b9050919050565b60006040820190506134d060008301856127a9565b6134dd60208301846127a9565b9392505050565b600081519050919050565b600082825260208201905092915050565b600061350b826134e4565b61351581856134ef565b935061352581856020860161267e565b61352e816126a8565b840191505092915050565b600060808201905061354e60008301876127a9565b61355b60208301866127a9565b61356860408301856129fd565b818103606083015261357a8184613500565b905095945050505050565b600081519050613594816125d3565b92915050565b6000602082840312156135b0576135af61259d565b5b60006135be84828501613585565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220f0bfefe09f439138f9efb5ea843616fa89155c5760ec4ed12b9e5adf89f661fc64736f6c63430008110033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000faeae775e14493a8cc6c2582d588e20aff1848e1000000000000000000000000c8d559baa3345539ce679e3ef14b7569eaa62c6c000000000000000000000000000000000000000000000000000000000000004268747470733a2f2f7075622d30313930353232343138656434306138623635333036616234336633393966642e72322e6465762f52304e314e2f6d657461646174610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009304e312052304e314e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000552304e314e000000000000000000000000000000000000000000000000000000