608060405234801561000f575f80fd5b506040518060400160405280600881526020017f4861696b754e46540000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4841494b55000000000000000000000000000000000000000000000000000000815250815f908161008a91906103ca565b50806001908161009a91906103ca565b5050506100b96100ae6100c660201b60201c565b6100cd60201b60201c565b6001600781905550610499565b5f33905090565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061020b57607f821691505b60208210810361021e5761021d6101c7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026102807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610245565b61028a8683610245565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6102ce6102c96102c4846102a2565b6102ab565b6102a2565b9050919050565b5f819050919050565b6102e7836102b4565b6102fb6102f3826102d5565b848454610251565b825550505050565b5f90565b61030f610303565b61031a8184846102de565b505050565b5b8181101561033d576103325f82610307565b600181019050610320565b5050565b601f8211156103825761035381610224565b61035c84610236565b8101602085101561036b578190505b61037f61037785610236565b83018261031f565b50505b505050565b5f82821c905092915050565b5f6103a25f1984600802610387565b1980831691505092915050565b5f6103ba8383610393565b9150826002028217905092915050565b6103d382610190565b67ffffffffffffffff8111156103ec576103eb61019a565b5b6103f682546101f4565b610401828285610341565b5f60209050601f831160018114610432575f8415610420578287015190505b61042a85826103af565b865550610491565b601f19841661044086610224565b5f5b8281101561046757848901518255600182019150602085019450602081019050610442565b868310156104845784890151610480601f891682610393565b8355505b6001600288020188555050505b505050505050565b613ab0806104a65f395ff3fe608060405234801561000f575f80fd5b5060043610610140575f3560e01c806370a08231116100b657806397afe82d1161007a57806397afe82d14610363578063a22cb46514610393578063b88d4fde146103af578063c87b56dd146103cb578063e985e9c5146103fb578063f2fde38b1461042b57610140565b806370a08231146102ba578063715018a6146102ea5780637cb82b2a146102f45780638da5cb5b1461032757806395d89b411461034557610140565b80632c83ea56116101085780632c83ea56146101fa57806331d81cbb14610216578063350fe1651461023457806342842e0e1461025057806349af5bfe1461026c5780636352211e1461028a57610140565b806301ffc9a71461014457806306fdde0314610174578063081812fc14610192578063095ea7b3146101c257806323b872dd146101de575b5f80fd5b61015e6004803603810190610159919061241d565b610447565b60405161016b9190612462565b60405180910390f35b61017c610528565b60405161018991906124eb565b60405180910390f35b6101ac60048036038101906101a7919061253e565b6105b7565b6040516101b991906125a8565b60405180910390f35b6101dc60048036038101906101d791906125eb565b610638565b005b6101f860048036038101906101f39190612629565b61074e565b005b610214600480360381019061020f9190612679565b6107ae565b005b61021e61088b565b60405161022b91906126c6565b60405180910390f35b61024e60048036038101906102499190612740565b610891565b005b61026a60048036038101906102659190612629565b610be5565b005b610274610c04565b6040516102819190612970565b60405180910390f35b6102a4600480360381019061029f919061253e565b610f76565b6040516102b191906125a8565b60405180910390f35b6102d460048036038101906102cf9190612990565b611022565b6040516102e191906126c6565b60405180910390f35b6102f26110d6565b005b61030e6004803603810190610309919061253e565b61115d565b60405161031e94939291906129bb565b60405180910390f35b61032f611349565b60405161033c91906125a8565b60405180910390f35b61034d611371565b60405161035a91906124eb565b60405180910390f35b61037d600480360381019061037891906125eb565b611401565b60405161038a91906126c6565b60405180910390f35b6103ad60048036038101906103a89190612a3d565b61142c565b005b6103c960048036038101906103c49190612ba3565b611442565b005b6103e560048036038101906103e0919061253e565b6114a4565b6040516103f291906124eb565b60405180910390f35b61041560048036038101906104109190612c23565b611548565b6040516104229190612462565b60405180910390f35b61044560048036038101906104409190612990565b6115d6565b005b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061051157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806105215750610520826116cc565b5b9050919050565b60605f805461053690612c8e565b80601f016020809104026020016040519081016040528092919081815260200182805461056290612c8e565b80156105ad5780601f10610584576101008083540402835291602001916105ad565b820191905f5260205f20905b81548152906001019060200180831161059057829003601f168201915b5050505050905090565b5f6105c182611735565b610600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f790612d2e565b60405180910390fd5b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f61064282610f76565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a990612dbc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166106d161179d565b73ffffffffffffffffffffffffffffffffffffffff16148061070057506106ff816106fa61179d565b611548565b5b61073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073690612e4a565b60405180910390fd5b61074983836117a4565b505050565b61075f61075961179d565b8261185a565b61079e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079590612ed8565b60405180910390fd5b6107a9838383611936565b505050565b3373ffffffffffffffffffffffffffffffffffffffff166107ce83610f76565b73ffffffffffffffffffffffffffffffffffffffff161461082657816040517f03ce4e3200000000000000000000000000000000000000000000000000000000815260040161081d91906126c6565b60405180910390fd5b60095f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f90919091909150555050565b60075481565b600a86866040516108a3929190612f24565b90815260200160405180910390205f9054906101000a900460ff16806108f25750600a84846040516108d6929190612f24565b90815260200160405180910390205f9054906101000a900460ff165b806109265750600a828260405161090a929190612f24565b90815260200160405180910390205f9054906101000a900460ff165b1561095d576040517f693a889e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600a8787604051610971929190612f24565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055506001600a85856040516109a9929190612f24565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055506001600a83836040516109e1929190612f24565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055505f6007549050610a153382611b91565b600860405180608001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200189898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815260200187878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050815250908060018154018082558091505060019003905f5260205f2090600402015f909190919091505f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019081610b9691906130d9565b506040820151816002019081610bac91906130d9565b506060820151816003019081610bc291906130d9565b50505060075f815480929190610bd7906131d5565b919050555050505050505050565b610bff83838360405180602001604052805f815250611442565b505050565b60605f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f818054905003610c83576040517ff8826a6900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f818054905067ffffffffffffffff811115610ca257610ca1612a7f565b5b604051908082528060200260200182016040528015610cdb57816020015b610cc861237a565b815260200190600190039081610cc05790505b5090505f5b8280549050811015610f6d5760086001848381548110610d0357610d0261321c565b5b905f5260205f200154610d169190613249565b81548110610d2757610d2661321c565b5b905f5260205f2090600402016040518060800160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054610da290612c8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610dce90612c8e565b8015610e195780601f10610df057610100808354040283529160200191610e19565b820191905f5260205f20905b815481529060010190602001808311610dfc57829003601f168201915b50505050508152602001600282018054610e3290612c8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e5e90612c8e565b8015610ea95780601f10610e8057610100808354040283529160200191610ea9565b820191905f5260205f20905b815481529060010190602001808311610e8c57829003601f168201915b50505050508152602001600382018054610ec290612c8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610eee90612c8e565b8015610f395780601f10610f1057610100808354040283529160200191610f39565b820191905f5260205f20905b815481529060010190602001808311610f1c57829003601f168201915b505050505081525050828281518110610f5557610f5461321c565b5b60200260200101819052508080600101915050610ce0565b50809250505090565b5f8060025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611019576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611010906132ec565b60405180910390fd5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611091576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110889061337a565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6110de61179d565b73ffffffffffffffffffffffffffffffffffffffff166110fc611349565b73ffffffffffffffffffffffffffffffffffffffff1614611152576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611149906133e2565b60405180910390fd5b61115b5f611bae565b565b6008818154811061116c575f80fd5b905f5260205f2090600402015f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010180546111b090612c8e565b80601f01602080910402602001604051908101604052809291908181526020018280546111dc90612c8e565b80156112275780601f106111fe57610100808354040283529160200191611227565b820191905f5260205f20905b81548152906001019060200180831161120a57829003601f168201915b50505050509080600201805461123c90612c8e565b80601f016020809104026020016040519081016040528092919081815260200182805461126890612c8e565b80156112b35780601f1061128a576101008083540402835291602001916112b3565b820191905f5260205f20905b81548152906001019060200180831161129657829003601f168201915b5050505050908060030180546112c890612c8e565b80601f01602080910402602001604051908101604052809291908181526020018280546112f490612c8e565b801561133f5780601f106113165761010080835404028352916020019161133f565b820191905f5260205f20905b81548152906001019060200180831161132257829003601f168201915b5050505050905084565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461138090612c8e565b80601f01602080910402602001604051908101604052809291908181526020018280546113ac90612c8e565b80156113f75780601f106113ce576101008083540402835291602001916113f7565b820191905f5260205f20905b8154815290600101906020018083116113da57829003601f168201915b5050505050905090565b6009602052815f5260405f20818154811061141a575f80fd5b905f5260205f20015f91509150505481565b61143e61143761179d565b8383611c71565b5050565b61145361144d61179d565b8361185a565b611492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148990612ed8565b60405180910390fd5b61149e84848484611dd8565b50505050565b60606114af82611735565b6114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e590613470565b60405180910390fd5b5f6114f7611e34565b90505f8151116115155760405180602001604052805f815250611540565b8061151f84611e4a565b6040516020016115309291906134be565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6115de61179d565b73ffffffffffffffffffffffffffffffffffffffff166115fc611349565b73ffffffffffffffffffffffffffffffffffffffff1614611652576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611649906133e2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b790613551565b60405180910390fd5b6116c981611bae565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660025f8481526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f33905090565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661181483610f76565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f61186482611735565b6118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a906135df565b60405180910390fd5b5f6118ad83610f76565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806118ef57506118ee8185611548565b5b8061192d57508373ffffffffffffffffffffffffffffffffffffffff16611915846105b7565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661195682610f76565b73ffffffffffffffffffffffffffffffffffffffff16146119ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a39061366d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a11906136fb565b60405180910390fd5b611a25838383611fa3565b611a2f5f826117a4565b600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a7c9190613249565b92505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611ad09190613719565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611b8c838383611fa8565b505050565b611baa828260405180602001604052805f815250611fad565b5050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd690613796565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611dcb9190612462565b60405180910390a3505050565b611de3848484611936565b611def84848484612007565b611e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2590613824565b60405180910390fd5b50505050565b606060405180602001604052805f815250905090565b60605f8203611e90576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611f9e565b5f8290505f5b5f8214611ebf578080611ea8906131d5565b915050600a82611eb8919061386f565b9150611e96565b5f8167ffffffffffffffff811115611eda57611ed9612a7f565b5b6040519080825280601f01601f191660200182016040528015611f0c5781602001600182028036833780820191505090505b5090505b5f8514611f9757600182611f249190613249565b9150600a85611f33919061389f565b6030611f3f9190613719565b60f81b818381518110611f5557611f5461321c565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600a85611f90919061386f565b9450611f10565b8093505050505b919050565b505050565b505050565b611fb78383612189565b611fc35f848484612007565b612002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff990613824565b60405180910390fd5b505050565b5f6120278473ffffffffffffffffffffffffffffffffffffffff16612358565b1561217c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261205061179d565b8786866040518563ffffffff1660e01b81526004016120729493929190613921565b6020604051808303815f875af19250505080156120ad57506040513d601f19601f820116820180604052508101906120aa919061397f565b60015b61212c573d805f81146120db576040519150601f19603f3d011682016040523d82523d5f602084013e6120e0565b606091505b505f815103612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b90613824565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612181565b600190505b949350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ee906139f4565b60405180910390fd5b61220081611735565b15612240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223790613a5c565b60405180910390fd5b61224b5f8383611fa3565b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122989190613719565b925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46123545f8383611fa8565b5050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60405180608001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6123fc816123c8565b8114612406575f80fd5b50565b5f81359050612417816123f3565b92915050565b5f60208284031215612432576124316123c0565b5b5f61243f84828501612409565b91505092915050565b5f8115159050919050565b61245c81612448565b82525050565b5f6020820190506124755f830184612453565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6124bd8261247b565b6124c78185612485565b93506124d7818560208601612495565b6124e0816124a3565b840191505092915050565b5f6020820190508181035f83015261250381846124b3565b905092915050565b5f819050919050565b61251d8161250b565b8114612527575f80fd5b50565b5f8135905061253881612514565b92915050565b5f60208284031215612553576125526123c0565b5b5f6125608482850161252a565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61259282612569565b9050919050565b6125a281612588565b82525050565b5f6020820190506125bb5f830184612599565b92915050565b6125ca81612588565b81146125d4575f80fd5b50565b5f813590506125e5816125c1565b92915050565b5f8060408385031215612601576126006123c0565b5b5f61260e858286016125d7565b925050602061261f8582860161252a565b9150509250929050565b5f805f606084860312156126405761263f6123c0565b5b5f61264d868287016125d7565b935050602061265e868287016125d7565b925050604061266f8682870161252a565b9150509250925092565b5f806040838503121561268f5761268e6123c0565b5b5f61269c8582860161252a565b92505060206126ad858286016125d7565b9150509250929050565b6126c08161250b565b82525050565b5f6020820190506126d95f8301846126b7565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112612700576126ff6126df565b5b8235905067ffffffffffffffff81111561271d5761271c6126e3565b5b602083019150836001820283011115612739576127386126e7565b5b9250929050565b5f805f805f806060878903121561275a576127596123c0565b5b5f87013567ffffffffffffffff811115612777576127766123c4565b5b61278389828a016126eb565b9650965050602087013567ffffffffffffffff8111156127a6576127a56123c4565b5b6127b289828a016126eb565b9450945050604087013567ffffffffffffffff8111156127d5576127d46123c4565b5b6127e189828a016126eb565b92509250509295509295509295565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61282281612588565b82525050565b5f82825260208201905092915050565b5f6128428261247b565b61284c8185612828565b935061285c818560208601612495565b612865816124a3565b840191505092915050565b5f608083015f8301516128855f860182612819565b506020830151848203602086015261289d8282612838565b915050604083015184820360408601526128b78282612838565b915050606083015184820360608601526128d18282612838565b9150508091505092915050565b5f6128e98383612870565b905092915050565b5f602082019050919050565b5f612907826127f0565b61291181856127fa565b9350836020820285016129238561280a565b805f5b8581101561295e578484038952815161293f85826128de565b945061294a836128f1565b925060208a01995050600181019050612926565b50829750879550505050505092915050565b5f6020820190508181035f83015261298881846128fd565b905092915050565b5f602082840312156129a5576129a46123c0565b5b5f6129b2848285016125d7565b91505092915050565b5f6080820190506129ce5f830187612599565b81810360208301526129e081866124b3565b905081810360408301526129f481856124b3565b90508181036060830152612a0881846124b3565b905095945050505050565b612a1c81612448565b8114612a26575f80fd5b50565b5f81359050612a3781612a13565b92915050565b5f8060408385031215612a5357612a526123c0565b5b5f612a60858286016125d7565b9250506020612a7185828601612a29565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612ab5826124a3565b810181811067ffffffffffffffff82111715612ad457612ad3612a7f565b5b80604052505050565b5f612ae66123b7565b9050612af28282612aac565b919050565b5f67ffffffffffffffff821115612b1157612b10612a7f565b5b612b1a826124a3565b9050602081019050919050565b828183375f83830152505050565b5f612b47612b4284612af7565b612add565b905082815260208101848484011115612b6357612b62612a7b565b5b612b6e848285612b27565b509392505050565b5f82601f830112612b8a57612b896126df565b5b8135612b9a848260208601612b35565b91505092915050565b5f805f8060808587031215612bbb57612bba6123c0565b5b5f612bc8878288016125d7565b9450506020612bd9878288016125d7565b9350506040612bea8782880161252a565b925050606085013567ffffffffffffffff811115612c0b57612c0a6123c4565b5b612c1787828801612b76565b91505092959194509250565b5f8060408385031215612c3957612c386123c0565b5b5f612c46858286016125d7565b9250506020612c57858286016125d7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612ca557607f821691505b602082108103612cb857612cb7612c61565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e65785f8201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b5f612d18602c83612485565b9150612d2382612cbe565b604082019050919050565b5f6020820190508181035f830152612d4581612d0c565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f612da6602183612485565b9150612db182612d4c565b604082019050919050565b5f6020820190508181035f830152612dd381612d9a565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f775f8201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b5f612e34603883612485565b9150612e3f82612dda565b604082019050919050565b5f6020820190508181035f830152612e6181612e28565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f5f8201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b5f612ec2603183612485565b9150612ecd82612e68565b604082019050919050565b5f6020820190508181035f830152612eef81612eb6565b9050919050565b5f81905092915050565b5f612f0b8385612ef6565b9350612f18838584612b27565b82840190509392505050565b5f612f30828486612f00565b91508190509392505050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612f987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612f5d565b612fa28683612f5d565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612fdd612fd8612fd38461250b565b612fba565b61250b565b9050919050565b5f819050919050565b612ff683612fc3565b61300a61300282612fe4565b848454612f69565b825550505050565b5f90565b61301e613012565b613029818484612fed565b505050565b5b8181101561304c576130415f82613016565b60018101905061302f565b5050565b601f8211156130915761306281612f3c565b61306b84612f4e565b8101602085101561307a578190505b61308e61308685612f4e565b83018261302e565b50505b505050565b5f82821c905092915050565b5f6130b15f1984600802613096565b1980831691505092915050565b5f6130c983836130a2565b9150826002028217905092915050565b6130e28261247b565b67ffffffffffffffff8111156130fb576130fa612a7f565b5b6131058254612c8e565b613110828285613050565b5f60209050601f831160018114613141575f841561312f578287015190505b61313985826130be565b8655506131a0565b601f19841661314f86612f3c565b5f5b8281101561317657848901518255600182019150602085019450602081019050613151565b86831015613193578489015161318f601f8916826130a2565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6131df8261250b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613211576132106131a8565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6132538261250b565b915061325e8361250b565b9250828203905081811115613276576132756131a8565b5b92915050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e65786973745f8201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b5f6132d6602983612485565b91506132e18261327c565b604082019050919050565b5f6020820190508181035f830152613303816132ca565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a655f8201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b5f613364602a83612485565b915061336f8261330a565b604082019050919050565b5f6020820190508181035f83015261339181613358565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6133cc602083612485565b91506133d782613398565b602082019050919050565b5f6020820190508181035f8301526133f9816133c0565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f5f8201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b5f61345a602f83612485565b915061346582613400565b604082019050919050565b5f6020820190508181035f8301526134878161344e565b9050919050565b5f6134988261247b565b6134a28185612ef6565b93506134b2818560208601612495565b80840191505092915050565b5f6134c9828561348e565b91506134d5828461348e565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61353b602683612485565b9150613546826134e1565b604082019050919050565b5f6020820190508181035f8301526135688161352f565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e65785f8201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b5f6135c9602c83612485565b91506135d48261356f565b604082019050919050565b5f6020820190508181035f8301526135f6816135bd565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f7272656374205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f613657602583612485565b9150613662826135fd565b604082019050919050565b5f6020820190508181035f8301526136848161364b565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6136e5602483612485565b91506136f08261368b565b604082019050919050565b5f6020820190508181035f830152613712816136d9565b9050919050565b5f6137238261250b565b915061372e8361250b565b9250828201905080821115613746576137456131a8565b5b92915050565b7f4552433732313a20617070726f766520746f2063616c6c6572000000000000005f82015250565b5f613780601983612485565b915061378b8261374c565b602082019050919050565b5f6020820190508181035f8301526137ad81613774565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e2045524337323152655f8201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b5f61380e603283612485565b9150613819826137b4565b604082019050919050565b5f6020820190508181035f83015261383b81613802565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6138798261250b565b91506138848361250b565b92508261389457613893613842565b5b828204905092915050565b5f6138a98261250b565b91506138b48361250b565b9250826138c4576138c3613842565b5b828206905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6138f3826138cf565b6138fd81856138d9565b935061390d818560208601612495565b613916816124a3565b840191505092915050565b5f6080820190506139345f830187612599565b6139416020830186612599565b61394e60408301856126b7565b818103606083015261396081846138e9565b905095945050505050565b5f81519050613979816123f3565b92915050565b5f60208284031215613994576139936123c0565b5b5f6139a18482850161396b565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f6139de602083612485565b91506139e9826139aa565b602082019050919050565b5f6020820190508181035f830152613a0b816139d2565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e746564000000005f82015250565b5f613a46601c83612485565b9150613a5182613a12565b602082019050919050565b5f6020820190508181035f830152613a7381613a3a565b905091905056fea2646970667358221220571f691a0dafc7aef2927347c3564362c377750b875a06b17d2065f23d11a39264736f6c634300081a0033