60806040527f5ef52737852c52d2211e81450fc3850cd8f44f8344ad3b406fdca6ea6d0bac7e600f553480156200003557600080fd5b5060405162006e3938038062006e3983398181016040528101906200005b919062000961565b6daaeb6d7670e522a718067333cd4e733cc6cdda760b79bafa08df41ecfa224f810dceb660018282826040518060400160405280601981526020017f54616b616e6f7473756d654c696d6974656445646974696f6e000000000000008152506040518060400160405280600381526020017f544c450000000000000000000000000000000000000000000000000000000000815250816000908162000101919062000c22565b50806001908162000113919062000c22565b505050620001366200012a6200048560201b60201c565b6200048d60201b60201c565b600083905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008173ffffffffffffffffffffffffffffffffffffffff163b1115620003395781156200021b578073ffffffffffffffffffffffffffffffffffffffff16637d3e3dbe30856040518363ffffffff1660e01b8152600401620001e192919062000d1a565b600060405180830381600087803b158015620001fc57600080fd5b505af115801562000211573d6000803e3d6000fd5b5050505062000338565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614620002c7578073ffffffffffffffffffffffffffffffffffffffff1663a0af290330856040518363ffffffff1660e01b81526004016200028d92919062000d1a565b600060405180830381600087803b158015620002a857600080fd5b505af1158015620002bd573d6000803e3d6000fd5b5050505062000337565b8073ffffffffffffffffffffffffffffffffffffffff16634420e486306040518263ffffffff1660e01b815260040162000302919062000d47565b600060405180830381600087803b1580156200031d57600080fd5b505af115801562000332573d6000803e3d6000fd5b505050505b5b5b50505050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620003a4576040517fc49d17ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050620003bc6000801b336200055360201b60201c565b620003d3600f546000801b6200056960201b60201c565b620003fb733b4a211a88aac938ee6f050f72987fb16b3ef2606103e8620005cd60201b60201c565b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000e7f565b600033905090565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200056582826200077060201b60201c565b5050565b60006200057c836200086260201b60201c565b905081600c6000858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b620005dd6200088260201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156200063e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006359062000deb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006a79062000e5d565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600a60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6200078282826200088c60201b60201c565b6200085e576001600c600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620008036200048560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000600c6000838152602001908152602001600020600101549050919050565b6000612710905090565b6000600c600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200092982620008fc565b9050919050565b6200093b816200091c565b81146200094757600080fd5b50565b6000815190506200095b8162000930565b92915050565b600080604083850312156200097b576200097a620008f7565b5b60006200098b858286016200094a565b92505060206200099e858286016200094a565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a2a57607f821691505b60208210810362000a405762000a3f620009e2565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000aaa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a6b565b62000ab6868362000a6b565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b0362000afd62000af78462000ace565b62000ad8565b62000ace565b9050919050565b6000819050919050565b62000b1f8362000ae2565b62000b3762000b2e8262000b0a565b84845462000a78565b825550505050565b600090565b62000b4e62000b3f565b62000b5b81848462000b14565b505050565b5b8181101562000b835762000b7760008262000b44565b60018101905062000b61565b5050565b601f82111562000bd25762000b9c8162000a46565b62000ba78462000a5b565b8101602085101562000bb7578190505b62000bcf62000bc68562000a5b565b83018262000b60565b50505b505050565b600082821c905092915050565b600062000bf76000198460080262000bd7565b1980831691505092915050565b600062000c12838362000be4565b9150826002028217905092915050565b62000c2d82620009a8565b67ffffffffffffffff81111562000c495762000c48620009b3565b5b62000c55825462000a11565b62000c6282828562000b87565b600060209050601f83116001811462000c9a576000841562000c85578287015190505b62000c91858262000c04565b86555062000d01565b601f19841662000caa8662000a46565b60005b8281101562000cd45784890151825560018201915060208501945060208101905062000cad565b8683101562000cf4578489015162000cf0601f89168262000be4565b8355505b6001600288020188555050505b505050505050565b62000d14816200091c565b82525050565b600060408201905062000d31600083018562000d09565b62000d40602083018462000d09565b9392505050565b600060208201905062000d5e600083018462000d09565b92915050565b600082825260208201905092915050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b600062000dd3602a8362000d64565b915062000de08262000d75565b604082019050919050565b6000602082019050818103600083015262000e068162000dc4565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b600062000e4560198362000d64565b915062000e528262000e0d565b602082019050919050565b6000602082019050818103600083015262000e788162000e36565b9050919050565b615faa8062000e8f6000396000f3fe608060405234801561001057600080fd5b50600436106102d55760003560e01c806369008b2311610182578063a217fddf116100e9578063ba4d4c30116100a2578063e7dba3e71161007c578063e7dba3e7146108fd578063e985e9c514610919578063ecba222a14610949578063f2fde38b14610967576102d5565b8063ba4d4c3014610895578063c87b56dd146108b1578063d547741f146108e1576102d5565b8063a217fddf146107e7578063a22cb46514610805578063b0ccc31e14610821578063b6c186ce1461083f578063b88d4fde1461085d578063b8d1e53214610879576102d5565b80637f7e8a4e1161013b5780637f7e8a4e146107255780638a4e6f2a146107555780638bce3c0f1461075f5780638da5cb5b1461077b57806391d148541461079957806395d89b41146107c9576102d5565b806369008b23146106535780636ca5a2011461066f5780636dca66501461069f57806370a08231146106cf578063715018a6146106ff5780637418589014610709576102d5565b80632a55205a1161024157806342842e0e116101fa57806358b59e9c116101d457806358b59e9c146105b95780635d7c86c7146105e95780635ef9432a146106195780636352211e14610623576102d5565b806342842e0e1461055157806346f8402e1461056d5780634f6ccce714610589576102d5565b80632a55205a146104805780632f2ff15d146104b15780632f745c59146104cd57806336568abe146104fd57806339a0c6f9146105195780633a0a60c914610535576102d5565b806318160ddd1161029357806318160ddd146103ac5780631aa347dc146103ca5780631e3bcc8e146103fa57806320dd56dc1461041657806323b872dd14610434578063248a9ca314610450576102d5565b8062248c9f146102da57806301ffc9a7146102f657806306fdde0314610326578063081812fc14610344578063095ea7b3146103745780630fa790a114610390575b600080fd5b6102f460048036038101906102ef9190614231565b610983565b005b610310600480360381019061030b91906142b6565b6109f3565b60405161031d91906142fe565b60405180910390f35b61032e610b3d565b60405161033b91906143a9565b60405180910390f35b61035e60048036038101906103599190614231565b610bcf565b60405161036b919061440c565b60405180910390f35b61038e60048036038101906103899190614453565b610c15565b005b6103aa60048036038101906103a59190614493565b610c2e565b005b6103b4610ce9565b6040516103c19190614509565b60405180910390f35b6103e460048036038101906103df9190614231565b610cf6565b6040516103f191906143a9565b60405180910390f35b610414600480360381019061040f9190614524565b610da6565b005b61041e610dd7565b60405161042b9190614509565b60405180910390f35b61044e60048036038101906104499190614551565b610de1565b005b61046a600480360381019061046591906145da565b610e30565b6040516104779190614616565b60405180910390f35b61049a60048036038101906104959190614631565b610e50565b6040516104a8929190614671565b60405180910390f35b6104cb60048036038101906104c6919061469a565b61103a565b005b6104e760048036038101906104e29190614453565b61105b565b6040516104f49190614509565b60405180910390f35b6105176004803603810190610512919061469a565b611100565b005b610533600480360381019061052e919061480f565b611183565b005b61054f600480360381019061054a919061480f565b6111a4565b005b61056b60048036038101906105669190614551565b6111c5565b005b61058760048036038101906105829190614858565b611214565b005b6105a3600480360381019061059e9190614231565b6112c4565b6040516105b09190614509565b60405180910390f35b6105d360048036038101906105ce9190614231565b611335565b6040516105e091906142fe565b60405180910390f35b61060360048036038101906105fe9190614231565b61135f565b6040516106109190614922565b60405180910390f35b6106216113be565b005b61063d60048036038101906106389190614231565b6114fc565b60405161064a919061440c565b60405180910390f35b61066d60048036038101906106689190614493565b611582565b005b61068960048036038101906106849190614231565b611652565b6040516106969190614509565b60405180910390f35b6106b960048036038101906106b49190614231565b61166f565b6040516106c691906142fe565b60405180910390f35b6106e960048036038101906106e49190614524565b6116e7565b6040516106f69190614509565b60405180910390f35b61070761179e565b005b610723600480360381019061071e9190614981565b6117b2565b005b61073f600480360381019061073a9190614231565b6117ce565b60405161074c91906142fe565b60405180910390f35b61075d611846565b005b61077960048036038101906107749190614524565b611c7b565b005b610783611ccd565b604051610790919061440c565b60405180910390f35b6107b360048036038101906107ae919061469a565b611cdc565b6040516107c091906142fe565b60405180910390f35b6107d1611d47565b6040516107de91906143a9565b60405180910390f35b6107ef611dd9565b6040516107fc9190614616565b60405180910390f35b61081f600480360381019061081a91906149ed565b611de0565b005b610829611df9565b6040516108369190614a8c565b60405180910390f35b610847611e1f565b604051610854919061440c565b60405180910390f35b61087760048036038101906108729190614b48565b611e49565b005b610893600480360381019061088e9190614524565b611e9a565b005b6108af60048036038101906108aa9190614631565b611fc8565b005b6108cb60048036038101906108c69190614231565b61201d565b6040516108d891906143a9565b60405180910390f35b6108fb60048036038101906108f6919061469a565b61202f565b005b61091760048036038101906109129190614858565b612050565b005b610933600480360381019061092e9190614bcb565b612100565b60405161094091906142fe565b60405180910390f35b610951612194565b60405161095e91906142fe565b60405180910390f35b610981600480360381019061097c9190614524565b6121a7565b005b600f5461098f8161222a565b60016018600084815260200190815260200160002060006101000a81548160ff02191690831515021790556109c357600080fd5b60006018600084815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610abe57507fda8def73000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b2657507f2baae9fd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b365750610b358261223e565b5b9050919050565b606060008054610b4c90614c3a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7890614c3a565b8015610bc55780601f10610b9a57610100808354040283529160200191610bc5565b820191906000526020600020905b815481529060010190602001808311610ba857829003601f168201915b5050505050905090565b6000610bda826122b8565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b81610c1f81612303565b610c298383612445565b505050565b6000801b610c3b8161222a565b60008511610c4857600080fd5b83831180610c5557508382115b610c5e57600080fd5b6040518060a00160405280868152602001858152602001848152602001838152602001600081525060156000601660008154610c9990614c9a565b919050819055815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030155608082015181600401559050505050505050565b6000600880549050905090565b6060600115156018600084815260200190815260200160002060009054906101000a900460ff16151503610d73576012610d42601760008581526020019081526020016000205461255c565b610d4b8461255c565b604051602001610d5d93929190614e4e565b6040516020818303038152906040529050610da1565b6011610d7e8361255c565b604051602001610d8f929190614e95565b60405160208183030381529060405290505b919050565b6000801b610db38161222a565b610dd38260106000815480929190610dca90614c9a565b9190505561262a565b5050565b6000601654905090565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e1f57610e1e33612303565b5b610e2a848484612648565b50505050565b6000600c6000838152602001908152602001600020600101549050919050565b6000806000600b60008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1603610fe557600a6040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610fef6126a8565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff168661101b9190614ec4565b6110259190614f35565b90508160000151819350935050509250929050565b61104382610e30565b61104c8161222a565b61105683836126b2565b505050565b6000611066836116e7565b82106110a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109e90614fd8565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b611108612793565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116c9061506a565b60405180910390fd5b61117f828261279b565b5050565b6000801b6111908161222a565b816011908161119f9190615217565b505050565b6000801b6111b18161222a565b81601290816111c09190615217565b505050565b823373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146112035761120233612303565b5b61120e84848461287d565b50505050565b6000801b6112218161222a565b6000841161122e57600080fd5b82821161123a57600080fd5b6040518060a0016040528085815260200184815260200184815260200183815260200160008152506015600060166000815461127590614c9a565b9190508190558152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015590505050505050565b60006112ce610ce9565b821061130f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113069061535b565b60405180910390fd5b600882815481106113235761132261537b565b5b90600052602060002001549050919050565b60006018600083815260200190815260200160002060009054906101000a900460ff169050919050565b6113676141b8565b601560008381526020019081526020016000206040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815250509050919050565b6113c6611ccd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461142a576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e60149054906101000a900460ff1615611471576040517f2aa3491e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e60146101000a81548160ff0219169083151502179055507f51e2d870cc2e10853e38dc06fcdae46ad3c3f588f326608803dac6204541ad1660405160405180910390a1565b6000806115088361289d565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611579576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611570906153f6565b60405180910390fd5b80915050919050565b6000801b61158f8161222a565b846015600060165481526020019081526020016000206004015411156115b457600080fd5b600085116115c157600080fd5b838311806115ce57508382115b6115d757600080fd5b84601560006016548152602001908152602001600020600001819055508360156000601654815260200190815260200160002060010181905550826015600060165481526020019081526020016000206002018190555081601560006016548152602001908152602001600020600301819055505050505050565b600060176000838152602001908152602001600020549050919050565b6000601560008381526020019081526020016000206001015442101580156116ad575060156000838152602001908152602001600020600201544210155b80156116cf575060156000838152602001908152602001600020600301544211155b156116dd57600190506116e2565b600090505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90615488565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6117a66128da565b6117b06000612958565b565b6000801b6117bf8161222a565b6117c98383612a1e565b505050565b60006015600083815260200190815260200160002060010154421015801561180c575060156000838152602001908152602001600020600201544211155b801561182e575060156000838152602001908152602001600020600301544211155b1561183c5760019050611841565b600090505b919050565b6015600060165481526020019081526020016000206001015442101561186b57600080fd5b60156000601654815260200190815260200160002060020154421115806118aa5750601560006016548152602001908152602001600020600301544211155b6118b357600080fd5b6015600060165481526020019081526020016000206000015460156000601654815260200190815260200160002060040154106118ef57600080fd5b6001601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad6a0f60336040518263ffffffff1660e01b815260040161194c919061440c565b602060405180830381865afa158015611969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198d91906154bd565b6003601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634ef08945336040518263ffffffff1660e01b81526004016119ea919061440c565b602060405180830381865afa158015611a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2b91906154bd565b611a359190614f35565b611a3f91906154ea565b1015611a4a57600080fd5b601560006016548152602001908152602001600020600201544211611ba0576001601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c8bd865d336040518263ffffffff1660e01b8152600401611ac6919061440c565b602060405180830381865afa158015611ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0791906154bd565b1015611b1257600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b3bc54fd336040518263ffffffff1660e01b8152600401611b6d919061440c565b600060405180830381600087803b158015611b8757600080fd5b505af1158015611b9b573d6000803e3d6000fd5b505050505b611bc03360106000815480929190611bb790614c9a565b9190505561262a565b60156000601654815260200190815260200160002060040160008154611be590614c9a565b91905081905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f4f5998336040518263ffffffff1660e01b8152600401611c47919061440c565b600060405180830381600087803b158015611c6157600080fd5b505af1158015611c75573d6000803e3d6000fd5b50505050565b6000801b611c888161222a565b81601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000611cd7612bb3565b905090565b6000600c600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060018054611d5690614c3a565b80601f0160208091040260200160405190810160405280929190818152602001828054611d8290614c3a565b8015611dcf5780601f10611da457610100808354040283529160200191611dcf565b820191906000526020600020905b815481529060010190602001808311611db257829003601f168201915b5050505050905090565b6000801b81565b81611dea81612303565b611df48383612bdd565b505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b833373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e8757611e8633612303565b5b611e9385858585612bf3565b5050505050565b611ea2611ccd565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f06576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e60149054906101000a900460ff1615611f4d576040517f2aa3491e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9f513fe86dc42fdbac355fa4d9b1d5be7b5e6cd2df67e30db8003766568de47681604051611fbd919061440c565b60405180910390a150565b600f54611fd48161222a565b81601760008581526020019081526020016000208190555060016018600085815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b606061202882610cf6565b9050919050565b61203882610e30565b6120418161222a565b61204b838361279b565b505050565b6000801b61205d8161222a565b6000841161206a57600080fd5b82821161207657600080fd5b6040518060a001604052808581526020018481526020018381526020018381526020016000815250601560006016600081546120b190614c9a565b9190508190558152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015590505050505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600e60149054906101000a900460ff1681565b6121af6128da565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361221e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221590615590565b60405180910390fd5b61222781612958565b50565b61223b81612236612793565b612c55565b50565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806122b157506122b082612cda565b5b9050919050565b6122c181612d54565b612300576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f7906153f6565b60405180910390fd5b50565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561237e575060008173ffffffffffffffffffffffffffffffffffffffff163b115b15612441578073ffffffffffffffffffffffffffffffffffffffff1663c617113430846040518363ffffffff1660e01b81526004016123be9291906155b0565b602060405180830381865afa1580156123db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ff91906155ee565b61244057816040517fede71dcc000000000000000000000000000000000000000000000000000000008152600401612437919061440c565b60405180910390fd5b5b5050565b6000612450826114fc565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b79061568d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166124df612793565b73ffffffffffffffffffffffffffffffffffffffff16148061250e575061250d81612508612793565b612100565b5b61254d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125449061571f565b60405180910390fd5b6125578383612d95565b505050565b60606000600161256b84612e4e565b01905060008167ffffffffffffffff81111561258a576125896146e4565b5b6040519080825280601f01601f1916602001820160405280156125bc5781602001600182028036833780820191505090505b509050600082602001820190505b60011561261f578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161261357612612614f06565b5b049450600085036125ca575b819350505050919050565b612644828260405180602001604052806000815250612fa1565b5050565b612659612653612793565b82612ffc565b612698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268f906157b1565b60405180910390fd5b6126a3838383613091565b505050565b6000612710905090565b6126bc8282611cdc565b61278f576001600c600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612734612793565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600033905090565b6127a58282611cdc565b15612879576000600c600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061281e612793565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b61289883838360405180602001604052806000815250611e49565b505050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6128e2612793565b73ffffffffffffffffffffffffffffffffffffffff16612900611ccd565b73ffffffffffffffffffffffffffffffffffffffff1614612956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294d9061581d565b60405180910390fd5b565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612a266126a8565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115612a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7b906158af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aea9061591b565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600a60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b612bef612be8612793565b838361338a565b5050565b612c04612bfe612793565b83612ffc565b612c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3a906157b1565b60405180910390fd5b612c4f848484846134f6565b50505050565b612c5f8282611cdc565b612cd657612c6c81613552565b612c7a8360001c602061357f565b604051602001612c8b9291906159d3565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccd91906143a9565b60405180910390fd5b5050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612d4d5750612d4c826137bb565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16612d768361289d565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16612e08836114fc565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612eac577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612ea257612ea1614f06565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612ee9576d04ee2d6d415b85acef81000000008381612edf57612ede614f06565b5b0492506020810190505b662386f26fc100008310612f1857662386f26fc100008381612f0e57612f0d614f06565b5b0492506010810190505b6305f5e1008310612f41576305f5e1008381612f3757612f36614f06565b5b0492506008810190505b6127108310612f66576127108381612f5c57612f5b614f06565b5b0492506004810190505b60648310612f895760648381612f7f57612f7e614f06565b5b0492506002810190505b600a8310612f98576001810190505b80915050919050565b612fab8383613835565b612fb86000848484613a52565b612ff7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fee90615a7f565b60405180910390fd5b505050565b600080613008836114fc565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061304a57506130498185612100565b5b8061308857508373ffffffffffffffffffffffffffffffffffffffff1661307084610bcf565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166130b1826114fc565b73ffffffffffffffffffffffffffffffffffffffff1614613107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130fe90615b11565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161316d90615ba3565b60405180910390fd5b6131838383836001613bd9565b8273ffffffffffffffffffffffffffffffffffffffff166131a3826114fc565b73ffffffffffffffffffffffffffffffffffffffff16146131f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131f090615b11565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46133858383836001613d37565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036133f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133ef90615c0f565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516134e991906142fe565b60405180910390a3505050565b613501848484613091565b61350d84848484613a52565b61354c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161354390615a7f565b60405180910390fd5b50505050565b60606135788273ffffffffffffffffffffffffffffffffffffffff16601460ff1661357f565b9050919050565b6060600060028360026135929190614ec4565b61359c9190615c2f565b67ffffffffffffffff8111156135b5576135b46146e4565b5b6040519080825280601f01601f1916602001820160405280156135e75781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061361f5761361e61537b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106136835761368261537b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026136c39190614ec4565b6136cd9190615c2f565b90505b600181111561376d577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061370f5761370e61537b565b5b1a60f81b8282815181106137265761372561537b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061376690615c63565b90506136d0565b50600084146137b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137a890615cd8565b60405180910390fd5b8091505092915050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061382e575061382d82613d3d565b5b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036138a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161389b90615d44565b60405180910390fd5b6138ad81612d54565b156138ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138e490615db0565b60405180910390fd5b6138fb600083836001613bd9565b61390481612d54565b15613944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161393b90615db0565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613a4e600083836001613d37565b5050565b6000613a738473ffffffffffffffffffffffffffffffffffffffff16613e1f565b15613bcc578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02613a9c612793565b8786866040518563ffffffff1660e01b8152600401613abe9493929190615e25565b6020604051808303816000875af1925050508015613afa57506040513d601f19601f82011682018060405250810190613af79190615e86565b60015b613b7c573d8060008114613b2a576040519150601f19603f3d011682016040523d82523d6000602084013e613b2f565b606091505b506000815103613b74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b6b90615a7f565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613bd1565b600190505b949350505050565b613be584848484613e42565b6001811115613c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c2090615f25565b60405180910390fd5b6000829050600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603613c7057613c6b81613e48565b613caf565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614613cae57613cad8582613e91565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603613cf157613cec81613ffe565b613d30565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614613d2f57613d2e84826140cf565b5b5b5050505050565b50505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480613e0857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80613e185750613e178261414e565b5b9050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b50505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001613e9e846116e7565b613ea891906154ea565b9050600060076000848152602001908152602001600020549050818114613f8d576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905061401291906154ea565b90506000600960008481526020019081526020016000205490506000600883815481106140425761404161537b565b5b9060005260206000200154905080600883815481106140645761406361537b565b5b9060005260206000200181905550816009600083815260200190815260200160002081905550600960008581526020019081526020016000206000905560088054806140b3576140b2615f45565b5b6001900381819060005260206000200160009055905550505050565b60006140da836116e7565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61420e816141fb565b811461421957600080fd5b50565b60008135905061422b81614205565b92915050565b600060208284031215614247576142466141f1565b5b60006142558482850161421c565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6142938161425e565b811461429e57600080fd5b50565b6000813590506142b08161428a565b92915050565b6000602082840312156142cc576142cb6141f1565b5b60006142da848285016142a1565b91505092915050565b60008115159050919050565b6142f8816142e3565b82525050565b600060208201905061431360008301846142ef565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015614353578082015181840152602081019050614338565b60008484015250505050565b6000601f19601f8301169050919050565b600061437b82614319565b6143858185614324565b9350614395818560208601614335565b61439e8161435f565b840191505092915050565b600060208201905081810360008301526143c38184614370565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006143f6826143cb565b9050919050565b614406816143eb565b82525050565b600060208201905061442160008301846143fd565b92915050565b614430816143eb565b811461443b57600080fd5b50565b60008135905061444d81614427565b92915050565b6000806040838503121561446a576144696141f1565b5b60006144788582860161443e565b92505060206144898582860161421c565b9150509250929050565b600080600080608085870312156144ad576144ac6141f1565b5b60006144bb8782880161421c565b94505060206144cc8782880161421c565b93505060406144dd8782880161421c565b92505060606144ee8782880161421c565b91505092959194509250565b614503816141fb565b82525050565b600060208201905061451e60008301846144fa565b92915050565b60006020828403121561453a576145396141f1565b5b60006145488482850161443e565b91505092915050565b60008060006060848603121561456a576145696141f1565b5b60006145788682870161443e565b93505060206145898682870161443e565b925050604061459a8682870161421c565b9150509250925092565b6000819050919050565b6145b7816145a4565b81146145c257600080fd5b50565b6000813590506145d4816145ae565b92915050565b6000602082840312156145f0576145ef6141f1565b5b60006145fe848285016145c5565b91505092915050565b614610816145a4565b82525050565b600060208201905061462b6000830184614607565b92915050565b60008060408385031215614648576146476141f1565b5b60006146568582860161421c565b92505060206146678582860161421c565b9150509250929050565b600060408201905061468660008301856143fd565b61469360208301846144fa565b9392505050565b600080604083850312156146b1576146b06141f1565b5b60006146bf858286016145c5565b92505060206146d08582860161443e565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61471c8261435f565b810181811067ffffffffffffffff8211171561473b5761473a6146e4565b5b80604052505050565b600061474e6141e7565b905061475a8282614713565b919050565b600067ffffffffffffffff82111561477a576147796146e4565b5b6147838261435f565b9050602081019050919050565b82818337600083830152505050565b60006147b26147ad8461475f565b614744565b9050828152602081018484840111156147ce576147cd6146df565b5b6147d9848285614790565b509392505050565b600082601f8301126147f6576147f56146da565b5b813561480684826020860161479f565b91505092915050565b600060208284031215614825576148246141f1565b5b600082013567ffffffffffffffff811115614843576148426141f6565b5b61484f848285016147e1565b91505092915050565b600080600060608486031215614871576148706141f1565b5b600061487f8682870161421c565b93505060206148908682870161421c565b92505060406148a18682870161421c565b9150509250925092565b6148b4816141fb565b82525050565b60a0820160008201516148d060008501826148ab565b5060208201516148e360208501826148ab565b5060408201516148f660408501826148ab565b50606082015161490960608501826148ab565b50608082015161491c60808501826148ab565b50505050565b600060a08201905061493760008301846148ba565b92915050565b60006bffffffffffffffffffffffff82169050919050565b61495e8161493d565b811461496957600080fd5b50565b60008135905061497b81614955565b92915050565b60008060408385031215614998576149976141f1565b5b60006149a68582860161443e565b92505060206149b78582860161496c565b9150509250929050565b6149ca816142e3565b81146149d557600080fd5b50565b6000813590506149e7816149c1565b92915050565b60008060408385031215614a0457614a036141f1565b5b6000614a128582860161443e565b9250506020614a23858286016149d8565b9150509250929050565b6000819050919050565b6000614a52614a4d614a48846143cb565b614a2d565b6143cb565b9050919050565b6000614a6482614a37565b9050919050565b6000614a7682614a59565b9050919050565b614a8681614a6b565b82525050565b6000602082019050614aa16000830184614a7d565b92915050565b600067ffffffffffffffff821115614ac257614ac16146e4565b5b614acb8261435f565b9050602081019050919050565b6000614aeb614ae684614aa7565b614744565b905082815260208101848484011115614b0757614b066146df565b5b614b12848285614790565b509392505050565b600082601f830112614b2f57614b2e6146da565b5b8135614b3f848260208601614ad8565b91505092915050565b60008060008060808587031215614b6257614b616141f1565b5b6000614b708782880161443e565b9450506020614b818782880161443e565b9350506040614b928782880161421c565b925050606085013567ffffffffffffffff811115614bb357614bb26141f6565b5b614bbf87828801614b1a565b91505092959194509250565b60008060408385031215614be257614be16141f1565b5b6000614bf08582860161443e565b9250506020614c018582860161443e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614c5257607f821691505b602082108103614c6557614c64614c0b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614ca5826141fb565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614cd757614cd6614c6b565b5b600182019050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154614d0f81614c3a565b614d198186614ce2565b94506001821660008114614d345760018114614d4957614d7c565b60ff1983168652811515820286019350614d7c565b614d5285614ced565b60005b83811015614d7457815481890152600182019150602081019050614d55565b838801955050505b50505092915050565b6000614d9082614319565b614d9a8185614ce2565b9350614daa818560208601614335565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000614dec600183614ce2565b9150614df782614db6565b600182019050919050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000614e38600583614ce2565b9150614e4382614e02565b600582019050919050565b6000614e5a8286614d02565b9150614e668285614d85565b9150614e7182614ddf565b9150614e7d8284614d85565b9150614e8882614e2b565b9150819050949350505050565b6000614ea18285614d02565b9150614ead8284614d85565b9150614eb882614e2b565b91508190509392505050565b6000614ecf826141fb565b9150614eda836141fb565b9250828202614ee8816141fb565b91508282048414831517614eff57614efe614c6b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614f40826141fb565b9150614f4b836141fb565b925082614f5b57614f5a614f06565b5b828204905092915050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000614fc2602b83614324565b9150614fcd82614f66565b604082019050919050565b60006020820190508181036000830152614ff181614fb5565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000615054602f83614324565b915061505f82614ff8565b604082019050919050565b6000602082019050818103600083015261508381615047565b9050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026150d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261509a565b6150e1868361509a565b95508019841693508086168417925050509392505050565b600061511461510f61510a846141fb565b614a2d565b6141fb565b9050919050565b6000819050919050565b61512e836150f9565b61514261513a8261511b565b8484546150a7565b825550505050565b600090565b61515761514a565b615162818484615125565b505050565b5b818110156151865761517b60008261514f565b600181019050615168565b5050565b601f8211156151cb5761519c81614ced565b6151a58461508a565b810160208510156151b4578190505b6151c86151c08561508a565b830182615167565b50505b505050565b600082821c905092915050565b60006151ee600019846008026151d0565b1980831691505092915050565b600061520783836151dd565b9150826002028217905092915050565b61522082614319565b67ffffffffffffffff811115615239576152386146e4565b5b6152438254614c3a565b61524e82828561518a565b600060209050601f831160018114615281576000841561526f578287015190505b61527985826151fb565b8655506152e1565b601f19841661528f86614ced565b60005b828110156152b757848901518255600182019150602085019450602081019050615292565b868310156152d457848901516152d0601f8916826151dd565b8355505b6001600288020188555050505b505050505050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000615345602c83614324565b9150615350826152e9565b604082019050919050565b6000602082019050818103600083015261537481615338565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006153e0601883614324565b91506153eb826153aa565b602082019050919050565b6000602082019050818103600083015261540f816153d3565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000615472602983614324565b915061547d82615416565b604082019050919050565b600060208201905081810360008301526154a181615465565b9050919050565b6000815190506154b781614205565b92915050565b6000602082840312156154d3576154d26141f1565b5b60006154e1848285016154a8565b91505092915050565b60006154f5826141fb565b9150615500836141fb565b925082820390508181111561551857615517614c6b565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061557a602683614324565b91506155858261551e565b604082019050919050565b600060208201905081810360008301526155a98161556d565b9050919050565b60006040820190506155c560008301856143fd565b6155d260208301846143fd565b9392505050565b6000815190506155e8816149c1565b92915050565b600060208284031215615604576156036141f1565b5b6000615612848285016155d9565b91505092915050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000615677602183614324565b91506156828261561b565b604082019050919050565b600060208201905081810360008301526156a68161566a565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000615709603d83614324565b9150615714826156ad565b604082019050919050565b60006020820190508181036000830152615738816156fc565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b600061579b602d83614324565b91506157a68261573f565b604082019050919050565b600060208201905081810360008301526157ca8161578e565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000615807602083614324565b9150615812826157d1565b602082019050919050565b60006020820190508181036000830152615836816157fa565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b6000615899602a83614324565b91506158a48261583d565b604082019050919050565b600060208201905081810360008301526158c88161588c565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6000615905601983614324565b9150615910826158cf565b602082019050919050565b60006020820190508181036000830152615934816158f8565b9050919050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000615971601783614ce2565b915061597c8261593b565b601782019050919050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006159bd601183614ce2565b91506159c882615987565b601182019050919050565b60006159de82615964565b91506159ea8285614d85565b91506159f5826159b0565b9150615a018284614d85565b91508190509392505050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000615a69603283614324565b9150615a7482615a0d565b604082019050919050565b60006020820190508181036000830152615a9881615a5c565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000615afb602583614324565b9150615b0682615a9f565b604082019050919050565b60006020820190508181036000830152615b2a81615aee565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000615b8d602483614324565b9150615b9882615b31565b604082019050919050565b60006020820190508181036000830152615bbc81615b80565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000615bf9601983614324565b9150615c0482615bc3565b602082019050919050565b60006020820190508181036000830152615c2881615bec565b9050919050565b6000615c3a826141fb565b9150615c45836141fb565b9250828201905080821115615c5d57615c5c614c6b565b5b92915050565b6000615c6e826141fb565b915060008203615c8157615c80614c6b565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b6000615cc2602083614324565b9150615ccd82615c8c565b602082019050919050565b60006020820190508181036000830152615cf181615cb5565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000615d2e602083614324565b9150615d3982615cf8565b602082019050919050565b60006020820190508181036000830152615d5d81615d21565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615d9a601c83614324565b9150615da582615d64565b602082019050919050565b60006020820190508181036000830152615dc981615d8d565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000615df782615dd0565b615e018185615ddb565b9350615e11818560208601614335565b615e1a8161435f565b840191505092915050565b6000608082019050615e3a60008301876143fd565b615e4760208301866143fd565b615e5460408301856144fa565b8181036060830152615e668184615dec565b905095945050505050565b600081519050615e808161428a565b92915050565b600060208284031215615e9c57615e9b6141f1565b5b6000615eaa84828501615e71565b91505092915050565b7f455243373231456e756d657261626c653a20636f6e736563757469766520747260008201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b6000615f0f603583614324565b9150615f1a82615eb3565b604082019050919050565b60006020820190508181036000830152615f3e81615f02565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220bb1fb060fc868db2a32f5de6cc09d438812f1cb52f2f4e51dc1e420403fb7c8c64736f6c63430008110033000000000000000000000000c511d725e036f2f514259d1f240e70eaeb8dfe170000000000000000000000005b88a74d18e2e6198aa8d91153bdb589a364c417