60806040525f600455620f42406008553480156200001b575f80fd5b5060405162003e1e38038062003e1e833981810160405281019062000041919062000540565b8162000053816200012d60201b60201c565b5062000074620000686200014260201b60201c565b6200014960201b60201c565b62000085816200020c60201b60201c565b6040518060400160405280601281526020017f506c616e6574204d79737465727920426f78000000000000000000000000000081525060069081620000cb9190620007db565b506040518060400160405280600681526020017f504c414e4554000000000000000000000000000000000000000000000000000081525060079081620001129190620007db565b508160059081620001249190620007db565b505050620009d1565b80600290816200013e9190620007db565b5050565b5f33905090565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6200021c620002a160201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200028d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002849062000943565b60405180910390fd5b6200029e816200014960201b60201c565b50565b620002b16200014260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002d76200033260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200032790620009b1565b60405180910390fd5b565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620003bb8262000373565b810181811067ffffffffffffffff82111715620003dd57620003dc62000383565b5b80604052505050565b5f620003f16200035a565b9050620003ff8282620003b0565b919050565b5f67ffffffffffffffff82111562000421576200042062000383565b5b6200042c8262000373565b9050602081019050919050565b5f5b83811015620004585780820151818401526020810190506200043b565b5f8484015250505050565b5f62000479620004738462000404565b620003e6565b9050828152602081018484840111156200049857620004976200036f565b5b620004a584828562000439565b509392505050565b5f82601f830112620004c457620004c36200036b565b5b8151620004d684826020860162000463565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200050a82620004df565b9050919050565b6200051c81620004fe565b811462000527575f80fd5b50565b5f815190506200053a8162000511565b92915050565b5f806040838503121562000559576200055862000363565b5b5f83015167ffffffffffffffff81111562000579576200057862000367565b5b6200058785828601620004ad565b92505060206200059a858286016200052a565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620005f357607f821691505b602082108103620006095762000608620005ae565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026200066d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000630565b62000679868362000630565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620006c3620006bd620006b78462000691565b6200069a565b62000691565b9050919050565b5f819050919050565b620006de83620006a3565b620006f6620006ed82620006ca565b8484546200063c565b825550505050565b5f90565b6200070c620006fe565b62000719818484620006d3565b505050565b5b818110156200074057620007345f8262000702565b6001810190506200071f565b5050565b601f8211156200078f5762000759816200060f565b620007648462000621565b8101602085101562000774578190505b6200078c620007838562000621565b8301826200071e565b50505b505050565b5f82821c905092915050565b5f620007b15f198460080262000794565b1980831691505092915050565b5f620007cb8383620007a0565b9150826002028217905092915050565b620007e682620005a4565b67ffffffffffffffff81111562000802576200080162000383565b5b6200080e8254620005db565b6200081b82828562000744565b5f60209050601f83116001811462000851575f84156200083c578287015190505b620008488582620007be565b865550620008b7565b601f19841662000861866200060f565b5f5b828110156200088a5784890151825560018201915060208501945060208101905062000863565b86831015620008aa5784890151620008a6601f891682620007a0565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6200092b602683620008bf565b91506200093882620008cf565b604082019050919050565b5f6020820190508181035f8301526200095c816200091d565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f62000999602083620008bf565b9150620009a68262000963565b602082019050919050565b5f6020820190508181035f830152620009ca816200098b565b9050919050565b61343f80620009df5f395ff3fe608060405234801561000f575f80fd5b50600436106100fd575f3560e01c80636a62784211610095578063a22cb46511610064578063a22cb46514610295578063e985e9c5146102b1578063f242432a146102e1578063f2fde38b146102fd576100fd565b80636a62784214610233578063715018a61461024f5780638da5cb5b1461025957806395d89b4114610277576100fd565b80632eb2c2d6116100d15780632eb2c2d6146101af57806330176e13146101cb5780634e1273f4146101e75780635f0e5c6014610217576100fd565b8062fdd58e1461010157806301ffc9a71461013157806306fdde03146101615780630e89341c1461017f575b5f80fd5b61011b60048036038101906101169190611d21565b610319565b6040516101289190611d6e565b60405180910390f35b61014b60048036038101906101469190611ddc565b6103dc565b6040516101589190611e21565b60405180910390f35b6101696104bd565b6040516101769190611ec4565b60405180910390f35b61019960048036038101906101949190611ee4565b610549565b6040516101a69190611ec4565b60405180910390f35b6101c960048036038101906101c491906120ff565b610575565b005b6101e560048036038101906101e09190612268565b610616565b005b61020160048036038101906101fc919061236f565b610631565b60405161020e919061249c565b60405180910390f35b610231600480360381019061022c91906124bc565b610748565b005b61024d60048036038101906102489190612528565b6108a4565b005b6102576108cc565b005b6102616108df565b60405161026e9190612562565b60405180910390f35b61027f610907565b60405161028c9190611ec4565b60405180910390f35b6102af60048036038101906102aa91906125a5565b610993565b005b6102cb60048036038101906102c691906125e3565b6109a9565b6040516102d89190611e21565b60405180910390f35b6102fb60048036038101906102f69190612621565b610a37565b005b61031760048036038101906103129190612528565b610ad8565b005b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037f90612724565b60405180910390fd5b5f808381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104a657507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104b657506104b582610b5a565b5b9050919050565b600680546104ca9061276f565b80601f01602080910402602001604051908101604052809291908181526020018280546104f69061276f565b80156105415780601f1061051857610100808354040283529160200191610541565b820191905f5260205f20905b81548152906001019060200180831161052457829003601f168201915b505050505081565b606060058260405160200161055f92919061285b565b6040516020818303038152906040529050919050565b61057d610bc3565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806105c357506105c2856105bd610bc3565b6109a9565b5b610602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f9906128f2565b60405180910390fd5b61060f8585858585610bca565b5050505050565b61061e610ed8565b806005908161062d9190612a9b565b5050565b60608151835114610677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066e90612bda565b60405180910390fd5b5f835167ffffffffffffffff81111561069357610692611f13565b5b6040519080825280602002602001820160405280156106c15781602001602082028036833780820191505090505b5090505f5b845181101561073d5761070d8582815181106106e5576106e4612bf8565b5b6020026020010151858381518110610700576106ff612bf8565b5b6020026020010151610319565b8282815181106107205761071f612bf8565b5b6020026020010181815250508061073690612c52565b90506106c6565b508091505092915050565b5f600167ffffffffffffffff81111561076457610763611f13565b5b6040519080825280602002602001820160405280156107925781602001602082028036833780820191505090505b50905082815f815181106107a9576107a8612bf8565b5b6020026020010181815250505f600167ffffffffffffffff8111156107d1576107d0611f13565b5b6040519080825280602002602001820160405280156107ff5781602001602082028036833780820191505090505b50905082815f8151811061081657610815612bf8565b5b6020026020010181815250505f5b855181101561089c5761085086828151811061084357610842612bf8565b5b6020026020010151610f56565b6108895761088886828151811061086a57610869612bf8565b5b6020026020010151848460405180602001604052805f815250610f67565b5b808061089490612c52565b915050610824565b505050505050565b6108ac610ed8565b6108c981600454600160405180602001604052805f8152506111d7565b50565b6108d4610ed8565b6108dd5f61137a565b565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600780546109149061276f565b80601f01602080910402602001604051908101604052809291908181526020018280546109409061276f565b801561098b5780601f106109625761010080835404028352916020019161098b565b820191905f5260205f20905b81548152906001019060200180831161096e57829003601f168201915b505050505081565b6109a561099e610bc3565b838361143d565b5050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b610a3f610bc3565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610a855750610a8485610a7f610bc3565b6109a9565b5b610ac4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abb906128f2565b60405180910390fd5b610ad185858585856115a4565b5050505050565b610ae0610ed8565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4590612d09565b60405180910390fd5b610b578161137a565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b8151835114610c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0590612d97565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7390612e25565b60405180910390fd5b5f610c85610bc3565b9050610c9581878787878761182d565b5f5b8451811015610e35575f858281518110610cb457610cb3612bf8565b5b602002602001015190505f858381518110610cd257610cd1612bf8565b5b602002602001015190505f805f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6590612eb3565b60405180910390fd5b8181035f808581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610e1a9190612ed1565b9250508190555050505080610e2e90612c52565b9050610c97565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610eac929190612f04565b60405180910390a4610ec2818787878787611835565b610ed081878787878761183d565b505050505050565b610ee0610bc3565b73ffffffffffffffffffffffffffffffffffffffff16610efe6108df565b73ffffffffffffffffffffffffffffffffffffffff1614610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90612f83565b60405180910390fd5b565b5f610f6082611a13565b9050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc90613011565b60405180910390fd5b8151835114611019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101090612d97565b60405180910390fd5b5f611022610bc3565b905061104681732791bca1f2de4661ed88a30c99a7a9449aa841748787878761182d565b5f5b84518110156110f95783818151811061106457611063612bf8565b5b60200260200101515f8087848151811061108157611080612bf8565b5b602002602001015181526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110df9190612ed1565b9250508190555080806110f190612c52565b915050611048565b508473ffffffffffffffffffffffffffffffffffffffff16732791bca1f2de4661ed88a30c99a7a9449aa8417473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611184929190612f04565b60405180910390a46111ae81732791bca1f2de4661ed88a30c99a7a9449aa8417487878787611835565b6111d081732791bca1f2de4661ed88a30c99a7a9449aa841748787878761183d565b5050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611245576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123c90613011565b60405180910390fd5b5f61124e610bc3565b90505f61125a85611a35565b90505f61126685611a35565b9050611276835f8985858961182d565b845f808881526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112d09190612ed1565b925050819055508673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62898960405161134d92919061302f565b60405180910390a4611363835f89858589611835565b611371835f89898989611aad565b50505050505050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a2906130c6565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516115979190611e21565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160990612e25565b60405180910390fd5b5f61161b610bc3565b90505f61162785611a35565b90505f61163385611a35565b905061164383898985858961182d565b5f805f8881526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050858110156116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc90612eb3565b60405180910390fd5b8581035f808981526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550855f808981526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546117819190612ed1565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a6040516117fe92919061302f565b60405180910390a4611814848a8a86868a611835565b611822848a8a8a8a8a611aad565b505050505050505050565b505050505050565b505050505050565b61185c8473ffffffffffffffffffffffffffffffffffffffff16611a13565b15611a0b578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b81526004016118a2959493929190613136565b6020604051808303815f875af19250505080156118dd57506040513d601f19601f820116820180604052508101906118da91906131b0565b60015b611982576118e96131e7565b806308c379a00361194557506118fd613206565b806119085750611947565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193c9190611ec4565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197990613305565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611a09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0090613393565b60405180910390fd5b505b505050505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60605f600167ffffffffffffffff811115611a5357611a52611f13565b5b604051908082528060200260200182016040528015611a815781602001602082028036833780820191505090505b50905082815f81518110611a9857611a97612bf8565b5b60200260200101818152505080915050919050565b611acc8473ffffffffffffffffffffffffffffffffffffffff16611a13565b15611c7b578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b129594939291906133b1565b6020604051808303815f875af1925050508015611b4d57506040513d601f19601f82011682018060405250810190611b4a91906131b0565b60015b611bf257611b596131e7565b806308c379a003611bb55750611b6d613206565b80611b785750611bb7565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bac9190611ec4565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be990613305565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7090613393565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611cbd82611c94565b9050919050565b611ccd81611cb3565b8114611cd7575f80fd5b50565b5f81359050611ce881611cc4565b92915050565b5f819050919050565b611d0081611cee565b8114611d0a575f80fd5b50565b5f81359050611d1b81611cf7565b92915050565b5f8060408385031215611d3757611d36611c8c565b5b5f611d4485828601611cda565b9250506020611d5585828601611d0d565b9150509250929050565b611d6881611cee565b82525050565b5f602082019050611d815f830184611d5f565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611dbb81611d87565b8114611dc5575f80fd5b50565b5f81359050611dd681611db2565b92915050565b5f60208284031215611df157611df0611c8c565b5b5f611dfe84828501611dc8565b91505092915050565b5f8115159050919050565b611e1b81611e07565b82525050565b5f602082019050611e345f830184611e12565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611e71578082015181840152602081019050611e56565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611e9682611e3a565b611ea08185611e44565b9350611eb0818560208601611e54565b611eb981611e7c565b840191505092915050565b5f6020820190508181035f830152611edc8184611e8c565b905092915050565b5f60208284031215611ef957611ef8611c8c565b5b5f611f0684828501611d0d565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611f4982611e7c565b810181811067ffffffffffffffff82111715611f6857611f67611f13565b5b80604052505050565b5f611f7a611c83565b9050611f868282611f40565b919050565b5f67ffffffffffffffff821115611fa557611fa4611f13565b5b602082029050602081019050919050565b5f80fd5b5f611fcc611fc784611f8b565b611f71565b90508083825260208201905060208402830185811115611fef57611fee611fb6565b5b835b8181101561201857806120048882611d0d565b845260208401935050602081019050611ff1565b5050509392505050565b5f82601f83011261203657612035611f0f565b5b8135612046848260208601611fba565b91505092915050565b5f80fd5b5f67ffffffffffffffff82111561206d5761206c611f13565b5b61207682611e7c565b9050602081019050919050565b828183375f83830152505050565b5f6120a361209e84612053565b611f71565b9050828152602081018484840111156120bf576120be61204f565b5b6120ca848285612083565b509392505050565b5f82601f8301126120e6576120e5611f0f565b5b81356120f6848260208601612091565b91505092915050565b5f805f805f60a0868803121561211857612117611c8c565b5b5f61212588828901611cda565b955050602061213688828901611cda565b945050604086013567ffffffffffffffff81111561215757612156611c90565b5b61216388828901612022565b935050606086013567ffffffffffffffff81111561218457612183611c90565b5b61219088828901612022565b925050608086013567ffffffffffffffff8111156121b1576121b0611c90565b5b6121bd888289016120d2565b9150509295509295909350565b5f67ffffffffffffffff8211156121e4576121e3611f13565b5b6121ed82611e7c565b9050602081019050919050565b5f61220c612207846121ca565b611f71565b9050828152602081018484840111156122285761222761204f565b5b612233848285612083565b509392505050565b5f82601f83011261224f5761224e611f0f565b5b813561225f8482602086016121fa565b91505092915050565b5f6020828403121561227d5761227c611c8c565b5b5f82013567ffffffffffffffff81111561229a57612299611c90565b5b6122a68482850161223b565b91505092915050565b5f67ffffffffffffffff8211156122c9576122c8611f13565b5b602082029050602081019050919050565b5f6122ec6122e7846122af565b611f71565b9050808382526020820190506020840283018581111561230f5761230e611fb6565b5b835b8181101561233857806123248882611cda565b845260208401935050602081019050612311565b5050509392505050565b5f82601f83011261235657612355611f0f565b5b81356123668482602086016122da565b91505092915050565b5f806040838503121561238557612384611c8c565b5b5f83013567ffffffffffffffff8111156123a2576123a1611c90565b5b6123ae85828601612342565b925050602083013567ffffffffffffffff8111156123cf576123ce611c90565b5b6123db85828601612022565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61241781611cee565b82525050565b5f612428838361240e565b60208301905092915050565b5f602082019050919050565b5f61244a826123e5565b61245481856123ef565b935061245f836123ff565b805f5b8381101561248f578151612476888261241d565b975061248183612434565b925050600181019050612462565b5085935050505092915050565b5f6020820190508181035f8301526124b48184612440565b905092915050565b5f805f606084860312156124d3576124d2611c8c565b5b5f84013567ffffffffffffffff8111156124f0576124ef611c90565b5b6124fc86828701612342565b935050602061250d86828701611d0d565b925050604061251e86828701611d0d565b9150509250925092565b5f6020828403121561253d5761253c611c8c565b5b5f61254a84828501611cda565b91505092915050565b61255c81611cb3565b82525050565b5f6020820190506125755f830184612553565b92915050565b61258481611e07565b811461258e575f80fd5b50565b5f8135905061259f8161257b565b92915050565b5f80604083850312156125bb576125ba611c8c565b5b5f6125c885828601611cda565b92505060206125d985828601612591565b9150509250929050565b5f80604083850312156125f9576125f8611c8c565b5b5f61260685828601611cda565b925050602061261785828601611cda565b9150509250929050565b5f805f805f60a0868803121561263a57612639611c8c565b5b5f61264788828901611cda565b955050602061265888828901611cda565b945050604061266988828901611d0d565b935050606061267a88828901611d0d565b925050608086013567ffffffffffffffff81111561269b5761269a611c90565b5b6126a7888289016120d2565b9150509295509295909350565b7f455243313135353a2061646472657373207a65726f206973206e6f74206120765f8201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b5f61270e602a83611e44565b9150612719826126b4565b604082019050919050565b5f6020820190508181035f83015261273b81612702565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061278657607f821691505b60208210810361279957612798612742565b5b50919050565b5f81905092915050565b5f819050815f5260205f209050919050565b5f81546127c78161276f565b6127d1818661279f565b9450600182165f81146127eb576001811461280057612832565b60ff1983168652811515820286019350612832565b612809856127a9565b5f5b8381101561282a5781548189015260018201915060208101905061280b565b838801955050505b50505092915050565b5f819050919050565b61285561285082611cee565b61283b565b82525050565b5f61286682856127bb565b91506128728284612844565b6020820191508190509392505050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e5f8201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b5f6128dc602e83611e44565b91506128e782612882565b604082019050919050565b5f6020820190508181035f830152612909816128d0565b9050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261295a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261291f565b612964868361291f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61299f61299a61299584611cee565b61297c565b611cee565b9050919050565b5f819050919050565b6129b883612985565b6129cc6129c4826129a6565b84845461292b565b825550505050565b5f90565b6129e06129d4565b6129eb8184846129af565b505050565b5b81811015612a0e57612a035f826129d8565b6001810190506129f1565b5050565b601f821115612a5357612a24816127a9565b612a2d84612910565b81016020851015612a3c578190505b612a50612a4885612910565b8301826129f0565b50505b505050565b5f82821c905092915050565b5f612a735f1984600802612a58565b1980831691505092915050565b5f612a8b8383612a64565b9150826002028217905092915050565b612aa482611e3a565b67ffffffffffffffff811115612abd57612abc611f13565b5b612ac7825461276f565b612ad2828285612a12565b5f60209050601f831160018114612b03575f8415612af1578287015190505b612afb8582612a80565b865550612b62565b601f198416612b11866127a9565b5f5b82811015612b3857848901518255600182019150602085019450602081019050612b13565b86831015612b555784890151612b51601f891682612a64565b8355505b6001600288020188555050505b505050505050565b7f455243313135353a206163636f756e747320616e6420696473206c656e6774685f8201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b5f612bc4602983611e44565b9150612bcf82612b6a565b604082019050919050565b5f6020820190508181035f830152612bf181612bb8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612c5c82611cee565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c8e57612c8d612c25565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612cf3602683611e44565b9150612cfe82612c99565b604082019050919050565b5f6020820190508181035f830152612d2081612ce7565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e677468205f8201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b5f612d81602883611e44565b9150612d8c82612d27565b604082019050919050565b5f6020820190508181035f830152612dae81612d75565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e0f602583611e44565b9150612e1a82612db5565b604082019050919050565b5f6020820190508181035f830152612e3c81612e03565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f5f8201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b5f612e9d602a83611e44565b9150612ea882612e43565b604082019050919050565b5f6020820190508181035f830152612eca81612e91565b9050919050565b5f612edb82611cee565b9150612ee683611cee565b9250828201905080821115612efe57612efd612c25565b5b92915050565b5f6040820190508181035f830152612f1c8185612440565b90508181036020830152612f308184612440565b90509392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612f6d602083611e44565b9150612f7882612f39565b602082019050919050565b5f6020820190508181035f830152612f9a81612f61565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ffb602183611e44565b915061300682612fa1565b604082019050919050565b5f6020820190508181035f83015261302881612fef565b9050919050565b5f6040820190506130425f830185611d5f565b61304f6020830184611d5f565b9392505050565b7f455243313135353a2073657474696e6720617070726f76616c207374617475735f8201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b5f6130b0602983611e44565b91506130bb82613056565b604082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f613108826130e4565b61311281856130ee565b9350613122818560208601611e54565b61312b81611e7c565b840191505092915050565b5f60a0820190506131495f830188612553565b6131566020830187612553565b81810360408301526131688186612440565b9050818103606083015261317c8185612440565b9050818103608083015261319081846130fe565b90509695505050505050565b5f815190506131aa81611db2565b92915050565b5f602082840312156131c5576131c4611c8c565b5b5f6131d28482850161319c565b91505092915050565b5f8160e01c9050919050565b5f60033d11156132035760045f803e6132005f516131db565b90505b90565b5f60443d1061329257613217611c83565b60043d036004823e80513d602482011167ffffffffffffffff8211171561323f575050613292565b808201805167ffffffffffffffff81111561325d5750505050613292565b80602083010160043d03850181111561327a575050505050613292565b61328982602001850186611f40565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d455243313135355f8201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b5f6132ef603483611e44565b91506132fa82613295565b604082019050919050565b5f6020820190508181035f83015261331c816132e3565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a656374655f8201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b5f61337d602883611e44565b915061338882613323565b604082019050919050565b5f6020820190508181035f8301526133aa81613371565b9050919050565b5f60a0820190506133c45f830188612553565b6133d16020830187612553565b6133de6040830186611d5f565b6133eb6060830185611d5f565b81810360808301526133fd81846130fe565b9050969550505050505056fea264697066735822122003b13211335e666d486b06feea54ae58a435091c5f602a8a6cb55a0ace4c58c464736f6c63430008150033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000035034c180eb127d7a0e3b43ade79b0b0376cb56c00000000000000000000000000000000000000000000000000000000000000096562616e615f726f740000000000000000000000000000000000000000000000