6080604052604051806080016040528060518152602001613b2d60519139600b908161002b91906106b5565b50610457600c556009600d556009600e556001600f5f6101000a81548160ff0219169083151502179055506001600f60016101000a81548160ff02191690831515021790555034801561007c575f80fd5b5061008b61037e60201b60201c565b6040518060400160405280600881526020017f424c5552415045530000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f6261700000000000000000000000000000000000000000000000000000000000815250816002908161010691906106b5565b50806003908161011691906106b5565b5061012561038560201b60201c565b5f8190555061013861038560201b60201c565b61014661038960201b60201c565b10156101635761016263fed8210f60e01b6103b060201b60201c565b5b50505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101d5575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101cc91906107c3565b60405180910390fd5b6101e4816103b860201b60201c565b506001600a8190555060405180606001604052806601c6a809ec580081526020016001151581526020016001151581525060115f600581526020019081526020015f205f820151815f01556020820151816001015f6101000a81548160ff02191690831515021790555060408201518160010160016101000a81548160ff021916908315150217905550905050604051806060016040528066038c95d021700081526020016001151581526020016001151581525060115f601481526020019081526020015f205f820151815f01556020820151816001015f6101000a81548160ff02191690831515021790555060408201518160010160016101000a81548160ff021916908315150217905550905050604051806060016040528066237dda214e600081526020016001151581526020016001151581525060115f606481526020019081526020015f205f820151815f01556020820151816001015f6101000a81548160ff02191690831515021790555060408201518160010160016101000a81548160ff0219169083151502179055509050506107dc565b5f33905090565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b805f5260045ffd5b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806104f657607f821691505b602082108103610509576105086104b2565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261056b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610530565b6105758683610530565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6105b96105b46105af8461058d565b610596565b61058d565b9050919050565b5f819050919050565b6105d28361059f565b6105e66105de826105c0565b84845461053c565b825550505050565b5f90565b6105fa6105ee565b6106058184846105c9565b505050565b5b818110156106285761061d5f826105f2565b60018101905061060b565b5050565b601f82111561066d5761063e8161050f565b61064784610521565b81016020851015610656578190505b61066a61066285610521565b83018261060a565b50505b505050565b5f82821c905092915050565b5f61068d5f1984600802610672565b1980831691505092915050565b5f6106a5838361067e565b9150826002028217905092915050565b6106be8261047b565b67ffffffffffffffff8111156106d7576106d6610485565b5b6106e182546104df565b6106ec82828561062c565b5f60209050601f83116001811461071d575f841561070b578287015190505b610715858261069a565b86555061077c565b601f19841661072b8661050f565b5f5b828110156107525784890151825560018201915060208501945060208101905061072d565b8683101561076f578489015161076b601f89168261067e565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107ad82610784565b9050919050565b6107bd816107a3565b82525050565b5f6020820190506107d65f8301846107b4565b92915050565b613344806107e95f395ff3fe6080604052600436106101f8575f3560e01c80636f8b44b01161010c578063b88d4fde1161009f578063d5abeb011161006e578063d5abeb01146106c4578063e985e9c5146106ee578063f2fde38b1461072a578063f6511f9314610752578063f69f734f1461078e576101f8565b8063b88d4fde14610618578063c7c39ffc14610634578063c87b56dd1461065e578063d547cfb71461069a576101f8565b80638da5cb5b116100db5780638da5cb5b1461058057806395d89b41146105aa578063a0712d68146105d4578063a22cb465146105f0576101f8565b80636f8b44b0146104dc57806370a0823114610504578063715018a6146105405780637a5b85c114610556576101f8565b80632709c7a11161018f5780634cb1ac021161015e5780634cb1ac02146103fe5780634f9b563c1461042857806355f804b3146104505780636352211e146104785780636dd66cbe146104b4576101f8565b80632709c7a11461036857806328cad13d146103a45780633ccfd60b146103cc57806342842e0e146103e2576101f8565b806316f3b656116101cb57806316f3b656146102ba57806318160ddd146102f85780631e84c4131461032257806323b872dd1461034c576101f8565b806301ffc9a7146101fc57806306fdde0314610238578063081812fc14610262578063095ea7b31461029e575b5f80fd5b348015610207575f80fd5b50610222600480360381019061021d91906122fb565b6107b6565b60405161022f9190612340565b60405180910390f35b348015610243575f80fd5b5061024c610847565b60405161025991906123c9565b60405180910390f35b34801561026d575f80fd5b506102886004803603810190610283919061241c565b6108d7565b6040516102959190612486565b60405180910390f35b6102b860048036038101906102b391906124c9565b610930565b005b3480156102c5575f80fd5b506102e060048036038101906102db919061241c565b610940565b6040516102ef93929190612516565b60405180910390f35b348015610303575f80fd5b5061030c61097f565b604051610319919061254b565b60405180910390f35b34801561032d575f80fd5b506103366109ca565b6040516103439190612340565b60405180910390f35b61036660048036038101906103619190612564565b6109dd565b005b348015610373575f80fd5b5061038e600480360381019061038991906125b4565b610c88565b60405161039b919061254b565b60405180910390f35b3480156103af575f80fd5b506103ca60048036038101906103c59190612609565b610c9d565b005b3480156103d7575f80fd5b506103e0610cc2565b005b6103fc60048036038101906103f79190612564565b610ce6565b005b348015610409575f80fd5b50610412610d05565b60405161041f919061254b565b60405180910390f35b348015610433575f80fd5b5061044e60048036038101906104499190612609565b610d0b565b005b34801561045b575f80fd5b5061047660048036038101906104719190612760565b610d2f565b005b348015610483575f80fd5b5061049e6004803603810190610499919061241c565b610d4a565b6040516104ab9190612486565b60405180910390f35b3480156104bf575f80fd5b506104da60048036038101906104d5919061241c565b610d5b565b005b3480156104e7575f80fd5b5061050260048036038101906104fd919061241c565b610d6d565b005b34801561050f575f80fd5b5061052a600480360381019061052591906125b4565b610d7f565b604051610537919061254b565b60405180910390f35b34801561054b575f80fd5b50610554610e13565b005b348015610561575f80fd5b5061056a610e26565b6040516105779190612340565b60405180910390f35b34801561058b575f80fd5b50610594610e38565b6040516105a19190612486565b60405180910390f35b3480156105b5575f80fd5b506105be610e60565b6040516105cb91906123c9565b60405180910390f35b6105ee60048036038101906105e9919061241c565b610ef0565b005b3480156105fb575f80fd5b50610616600480360381019061061191906127a7565b6111db565b005b610632600480360381019061062d9190612883565b6112e1565b005b34801561063f575f80fd5b50610648611332565b604051610655919061254b565b60405180910390f35b348015610669575f80fd5b50610684600480360381019061067f919061241c565b611338565b60405161069191906123c9565b60405180910390f35b3480156106a5575f80fd5b506106ae6113b4565b6040516106bb91906123c9565b60405180910390f35b3480156106cf575f80fd5b506106d8611440565b6040516106e5919061254b565b60405180910390f35b3480156106f9575f80fd5b50610714600480360381019061070f9190612903565b611446565b6040516107219190612340565b60405180910390f35b348015610735575f80fd5b50610750600480360381019061074b91906125b4565b6114d4565b005b34801561075d575f80fd5b506107786004803603810190610773919061241c565b611558565b604051610785919061254b565b60405180910390f35b348015610799575f80fd5b506107b460048036038101906107af9190612941565b6115fe565b005b5f6301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061081057506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108405750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606060028054610856906129be565b80601f0160208091040260200160405190810160405280929190818152602001828054610882906129be565b80156108cd5780601f106108a4576101008083540402835291602001916108cd565b820191905f5260205f20905b8154815290600101906020018083116108b057829003601f168201915b5050505050905090565b5f6108e182611686565b6108f6576108f563cf4700e460e01b611729565b5b60065f8381526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b61093c82826001611731565b5050565b6011602052805f5260405f205f91509050805f015490806001015f9054906101000a900460ff16908060010160019054906101000a900460ff16905083565b5f61098861185b565b6001545f54030390507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6109ba61185f565b146109c757600854810190505b90565b600f60019054906101000a900460ff1681565b5f6109e782611886565b905073ffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff161693508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610a5c57610a5b63a114810060e01b611729565b5b5f80610a6784611995565b91509150610a7d8187610a786119b8565b6119bf565b610aa857610a9286610a8d6119b8565b611446565b610aa757610aa66359c896be60e01b611729565b5b5b610ab58686866001611a02565b8015610abf575f82555b60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8154600190039190508190555060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f815460010191905081905550610b8785610b63888887611a08565b7c020000000000000000000000000000000000000000000000000000000017611a2f565b60045f8681526020019081526020015f20819055505f7c0200000000000000000000000000000000000000000000000000000000841603610c03575f6001850190505f60045f8381526020019081526020015f205403610c01575f548114610c00578360045f8381526020019081526020015f20819055505b5b505b5f73ffffffffffffffffffffffffffffffffffffffff8673ffffffffffffffffffffffffffffffffffffffff161690508481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a45f8103610c7257610c7163ea553b3460e01b611729565b5b610c7f8787876001611a59565b50505050505050565b6010602052805f5260405f205f915090505481565b610ca5611a5f565b80600f60016101000a81548160ff02191690831515021790555050565b610cca611a5f565b610cd2611ae6565b610cdc3347611b35565b610ce4611c1e565b565b610d0083838360405180602001604052805f8152506112e1565b505050565b600e5481565b610d13611a5f565b80600f5f6101000a81548160ff02191690831515021790555050565b610d37611a5f565b80600b9081610d469190612b8b565b5050565b5f610d5482611886565b9050919050565b610d63611a5f565b80600e8190555050565b610d75611a5f565b80600c8190555050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dc457610dc3638f4eb60460e01b611729565b5b67ffffffffffffffff60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054169050919050565b610e1b611a5f565b610e245f611c28565b565b600f5f9054906101000a900460ff1681565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610e6f906129be565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9b906129be565b8015610ee65780601f10610ebd57610100808354040283529160200191610ee6565b820191905f5260205f20905b815481529060010190602001808311610ec957829003601f168201915b5050505050905090565b600f60019054906101000a900460ff16610f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3690612ca4565b60405180910390fd5b5f8111610f81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7890612d0c565b60405180910390fd5b600c5481610f8d61097f565b610f979190612d57565b1115610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf90612dd4565b60405180910390fd5b5f610fe1610e38565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160361101b575f90506111cd565b600f5f9054906101000a900460ff1680156110385750600d548211155b801561108e5750600e548260105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461108b9190612d57565b11155b156110ee575f90508160105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110e29190612d57565b925050819055506111cc565b60115f8381526020019081526020015f206001015f9054906101000a900460ff168015611139575060115f8381526020019081526020015f2060010160019054906101000a900460ff165b156111905761114782611558565b905034811461118b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118290612e3c565b60405180910390fd5b6111cb565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c290612eca565b60405180910390fd5b5b5b6111d73383611ceb565b5050565b8060075f6111e76119b8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166112906119b8565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516112d59190612340565b60405180910390a35050565b6112ec8484846109dd565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1461132c5761131684848484611d08565b61132b5761132a63d1a57ed660e01b611729565b5b5b50505050565b600d5481565b606061134382611686565b611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990612f58565b60405180910390fd5b600b61138d83611e32565b60405160200161139e92919061307a565b6040516020818303038152906040529050919050565b600b80546113c1906129be565b80601f01602080910402602001604051908101604052809291908181526020018280546113ed906129be565b80156114385780601f1061140f57610100808354040283529160200191611438565b820191905f5260205f20905b81548152906001019060200180831161141b57829003601f168201915b505050505081565b600c5481565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b6114dc611a5f565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361154c575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016115439190612486565b60405180910390fd5b61155581611c28565b50565b5f60115f8381526020019081526020015f206001015f9054906101000a900460ff1680156115a4575060115f8381526020019081526020015f2060010160019054906101000a900460ff165b6115e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115da90613118565b60405180910390fd5b60115f8381526020019081526020015f205f01549050919050565b611606611a5f565b604051806060016040528083815260200160011515815260200182151581525060115f8581526020019081526020015f205f820151815f01556020820151816001015f6101000a81548160ff02191690831515021790555060408201518160010160016101000a81548160ff021916908315150217905550905050505050565b5f8161169061185b565b116117235761169d61185f565b8211156116c5576116be60045f8481526020019081526020015f2054611efc565b9050611724565b5f54821015611722575f5b5f60045f8581526020019081526020015f2054915081036116fc57826116f590613136565b92506116d0565b5f7c01000000000000000000000000000000000000000000000000000000008216149150505b5b5b919050565b805f5260045ffd5b5f61173b83610d4a565b905081801561177d57508073ffffffffffffffffffffffffffffffffffffffff166117646119b8565b73ffffffffffffffffffffffffffffffffffffffff1614155b156117a9576117938161178e6119b8565b611446565b6117a8576117a763cfb3b94260e01b611729565b5b5b8360065f8581526020019081526020015f205f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550828473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a450505050565b5f90565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b5f8161189061185b565b1161197f5760045f8381526020019081526020015f205490506118b161185f565b8211156118d6576118c181611efc565b611990576118d563df2d9b4260e01b611729565b5b5f8103611957575f5482106118f6576118f563df2d9b4260e01b611729565b5b5b60045f836001900393508381526020019081526020015f205490505f810315611952575f7c0100000000000000000000000000000000000000000000000000000000821603156119905761195163df2d9b4260e01b611729565b5b6118f7565b5f7c010000000000000000000000000000000000000000000000000000000082160315611990575b61198f63df2d9b4260e01b611729565b5b919050565b5f805f60065f8581526020019081526020015f2090508092508254915050915091565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b5f8060e883901c905060e8611a1e868684611f3c565b62ffffff16901b9150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b611a67611f44565b73ffffffffffffffffffffffffffffffffffffffff16611a85610e38565b73ffffffffffffffffffffffffffffffffffffffff1614611ae457611aa8611f44565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611adb9190612486565b60405180910390fd5b565b6002600a5403611b2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b22906131a7565b60405180910390fd5b6002600a81905550565b80471015611b7a57306040517fcd786059000000000000000000000000000000000000000000000000000000008152600401611b719190612486565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051611b9f906131f2565b5f6040518083038185875af1925050503d805f8114611bd9576040519150601f19603f3d011682016040523d82523d5f602084013e611bde565b606091505b5050905080611c19576040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6001600a81905550565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611d04828260405180602001604052805f815250611f4b565b5050565b5f8373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611d2d6119b8565b8786866040518563ffffffff1660e01b8152600401611d4f9493929190613258565b6020604051808303815f875af1925050508015611d8a57506040513d601f19601f82011682018060405250810190611d8791906132b6565b60015b611ddf573d805f8114611db8576040519150601f19603f3d011682016040523d82523d5f602084013e611dbd565b606091505b505f815103611dd757611dd663d1a57ed660e01b611729565b5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60605f6001611e4084611fc1565b0190505f8167ffffffffffffffff811115611e5e57611e5d61263c565b5b6040519080825280601f01601f191660200182016040528015611e905781602001600182028036833780820191505090505b5090505f82602001820190505b600115611ef1578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611ee657611ee56132e1565b5b0494505f8503611e9d575b819350505050919050565b5f7c0100000000000000000000000000000000000000000000000000000000821673ffffffffffffffffffffffffffffffffffffffff8316119050919050565b5f9392505050565b5f33905090565b611f558383612112565b5f8373ffffffffffffffffffffffffffffffffffffffff163b14611fbc575f805490505f83820390505b611f915f868380600101945086611d08565b611fa657611fa563d1a57ed660e01b611729565b5b818110611f7f57815f5414611fb9575f80fd5b50505b505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061201d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612013576120126132e1565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061205a576d04ee2d6d415b85acef810000000083816120505761204f6132e1565b5b0492506020810190505b662386f26fc10000831061208957662386f26fc10000838161207f5761207e6132e1565b5b0492506010810190505b6305f5e10083106120b2576305f5e10083816120a8576120a76132e1565b5b0492506008810190505b61271083106120d75761271083816120cd576120cc6132e1565b5b0492506004810190505b606483106120fa57606483816120f0576120ef6132e1565b5b0492506002810190505b600a8310612109576001810190505b80915050919050565b5f805490505f820361212f5761212e63b562e8dd60e01b611729565b5b61213b5f848385611a02565b6121598361214a5f865f611a08565b61215385612286565b17611a2f565b60045f8381526020019081526020015f2081905550600160406001901b17820260055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505f73ffffffffffffffffffffffffffffffffffffffff8473ffffffffffffffffffffffffffffffffffffffff161690505f810361220a57612209632e07630060e01b611729565b5b5f83830190505f83905061221c61185f565b600183031115612237576122366381647e3a60e01b611729565b5b5b80835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a481816001019150810361223857815f819055505050506122815f848385611a59565b505050565b5f6001821460e11b9050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122da816122a6565b81146122e4575f80fd5b50565b5f813590506122f5816122d1565b92915050565b5f602082840312156123105761230f61229e565b5b5f61231d848285016122e7565b91505092915050565b5f8115159050919050565b61233a81612326565b82525050565b5f6020820190506123535f830184612331565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61239b82612359565b6123a58185612363565b93506123b5818560208601612373565b6123be81612381565b840191505092915050565b5f6020820190508181035f8301526123e18184612391565b905092915050565b5f819050919050565b6123fb816123e9565b8114612405575f80fd5b50565b5f81359050612416816123f2565b92915050565b5f602082840312156124315761243061229e565b5b5f61243e84828501612408565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61247082612447565b9050919050565b61248081612466565b82525050565b5f6020820190506124995f830184612477565b92915050565b6124a881612466565b81146124b2575f80fd5b50565b5f813590506124c38161249f565b92915050565b5f80604083850312156124df576124de61229e565b5b5f6124ec858286016124b5565b92505060206124fd85828601612408565b9150509250929050565b612510816123e9565b82525050565b5f6060820190506125295f830186612507565b6125366020830185612331565b6125436040830184612331565b949350505050565b5f60208201905061255e5f830184612507565b92915050565b5f805f6060848603121561257b5761257a61229e565b5b5f612588868287016124b5565b9350506020612599868287016124b5565b92505060406125aa86828701612408565b9150509250925092565b5f602082840312156125c9576125c861229e565b5b5f6125d6848285016124b5565b91505092915050565b6125e881612326565b81146125f2575f80fd5b50565b5f81359050612603816125df565b92915050565b5f6020828403121561261e5761261d61229e565b5b5f61262b848285016125f5565b91505092915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61267282612381565b810181811067ffffffffffffffff821117156126915761269061263c565b5b80604052505050565b5f6126a3612295565b90506126af8282612669565b919050565b5f67ffffffffffffffff8211156126ce576126cd61263c565b5b6126d782612381565b9050602081019050919050565b828183375f83830152505050565b5f6127046126ff846126b4565b61269a565b9050828152602081018484840111156127205761271f612638565b5b61272b8482856126e4565b509392505050565b5f82601f83011261274757612746612634565b5b81356127578482602086016126f2565b91505092915050565b5f602082840312156127755761277461229e565b5b5f82013567ffffffffffffffff811115612792576127916122a2565b5b61279e84828501612733565b91505092915050565b5f80604083850312156127bd576127bc61229e565b5b5f6127ca858286016124b5565b92505060206127db858286016125f5565b9150509250929050565b5f67ffffffffffffffff8211156127ff576127fe61263c565b5b61280882612381565b9050602081019050919050565b5f612827612822846127e5565b61269a565b90508281526020810184848401111561284357612842612638565b5b61284e8482856126e4565b509392505050565b5f82601f83011261286a57612869612634565b5b813561287a848260208601612815565b91505092915050565b5f805f806080858703121561289b5761289a61229e565b5b5f6128a8878288016124b5565b94505060206128b9878288016124b5565b93505060406128ca87828801612408565b925050606085013567ffffffffffffffff8111156128eb576128ea6122a2565b5b6128f787828801612856565b91505092959194509250565b5f80604083850312156129195761291861229e565b5b5f612926858286016124b5565b9250506020612937858286016124b5565b9150509250929050565b5f805f606084860312156129585761295761229e565b5b5f61296586828701612408565b935050602061297686828701612408565b9250506040612987868287016125f5565b9150509250925092565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806129d557607f821691505b6020821081036129e8576129e7612991565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612a4a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612a0f565b612a548683612a0f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612a8f612a8a612a85846123e9565b612a6c565b6123e9565b9050919050565b5f819050919050565b612aa883612a75565b612abc612ab482612a96565b848454612a1b565b825550505050565b5f90565b612ad0612ac4565b612adb818484612a9f565b505050565b5b81811015612afe57612af35f82612ac8565b600181019050612ae1565b5050565b601f821115612b4357612b14816129ee565b612b1d84612a00565b81016020851015612b2c578190505b612b40612b3885612a00565b830182612ae0565b50505b505050565b5f82821c905092915050565b5f612b635f1984600802612b48565b1980831691505092915050565b5f612b7b8383612b54565b9150826002028217905092915050565b612b9482612359565b67ffffffffffffffff811115612bad57612bac61263c565b5b612bb782546129be565b612bc2828285612b02565b5f60209050601f831160018114612bf3575f8415612be1578287015190505b612beb8582612b70565b865550612c52565b601f198416612c01866129ee565b5f5b82811015612c2857848901518255600182019150602085019450602081019050612c03565b86831015612c455784890151612c41601f891682612b54565b8355505b6001600288020188555050505b505050505050565b7f5075626c69632073616c65206e6f7420737461727465640000000000000000005f82015250565b5f612c8e601783612363565b9150612c9982612c5a565b602082019050919050565b5f6020820190508181035f830152612cbb81612c82565b9050919050565b7f496e76616c6964206d696e7420616d6f756e74000000000000000000000000005f82015250565b5f612cf6601383612363565b9150612d0182612cc2565b602082019050919050565b5f6020820190508181035f830152612d2381612cea565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612d61826123e9565b9150612d6c836123e9565b9250828201905080821115612d8457612d83612d2a565b5b92915050565b7f4e6f206d6f7265000000000000000000000000000000000000000000000000005f82015250565b5f612dbe600783612363565b9150612dc982612d8a565b602082019050919050565b5f6020820190508181035f830152612deb81612db2565b9050919050565b7f496e636f7272656374204554482076616c75652073656e7400000000000000005f82015250565b5f612e26601883612363565b9150612e3182612df2565b602082019050919050565b5f6020820190508181035f830152612e5381612e1a565b9050919050565b7f496e76616c6964207175616e74697479206f72207061796d656e7420726571755f8201527f6972656400000000000000000000000000000000000000000000000000000000602082015250565b5f612eb4602483612363565b9150612ebf82612e5a565b604082019050919050565b5f6020820190508181035f830152612ee181612ea8565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f5f8201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b5f612f42602f83612363565b9150612f4d82612ee8565b604082019050919050565b5f6020820190508181035f830152612f6f81612f36565b9050919050565b5f81905092915050565b5f8154612f8c816129be565b612f968186612f76565b9450600182165f8114612fb05760018114612fc557612ff7565b60ff1983168652811515820286019350612ff7565b612fce856129ee565b5f5b83811015612fef57815481890152600182019150602081019050612fd0565b838801955050505b50505092915050565b5f61300a82612359565b6130148185612f76565b9350613024818560208601612373565b80840191505092915050565b7f2e6a736f6e0000000000000000000000000000000000000000000000000000005f82015250565b5f613064600583612f76565b915061306f82613030565b600582019050919050565b5f6130858285612f80565b91506130918284613000565b915061309c82613058565b91508190509392505050565b7f496e76616c6964207175616e74697479206f722070726963696e6720697320695f8201527f6e61637469766500000000000000000000000000000000000000000000000000602082015250565b5f613102602783612363565b915061310d826130a8565b604082019050919050565b5f6020820190508181035f83015261312f816130f6565b9050919050565b5f613140826123e9565b91505f820361315257613151612d2a565b5b600182039050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f613191601f83612363565b915061319c8261315d565b602082019050919050565b5f6020820190508181035f8301526131be81613185565b9050919050565b5f81905092915050565b50565b5f6131dd5f836131c5565b91506131e8826131cf565b5f82019050919050565b5f6131fc826131d2565b9150819050919050565b5f81519050919050565b5f82825260208201905092915050565b5f61322a82613206565b6132348185613210565b9350613244818560208601612373565b61324d81612381565b840191505092915050565b5f60808201905061326b5f830187612477565b6132786020830186612477565b6132856040830185612507565b81810360608301526132978184613220565b905095945050505050565b5f815190506132b0816122d1565b92915050565b5f602082840312156132cb576132ca61229e565b5b5f6132d8848285016132a2565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffdfea2646970667358221220b46156c4191f1c23662b85b0b995db02b69171546e3170bc36b541cea03797e864736f6c6343000819003368747470733a2f2f697066732e696f2f697066732f6261667962656968686e7662697565773672656e6d6b6e6a65356d74726a653266796e34376c6e6673706b6766686a356a636e76376573753565652f