60806040523480156200001157600080fd5b5060405162003c3438038062003c34833981810160405281019062000037919062000432565b6040518060400160405280600881526020017f446573416c7068610000000000000000000000000000000000000000000000008152506040518060400160405280600881526020017f446573416c7068610000000000000000000000000000000000000000000000008152508160009080519060200190620000bb929190620001e5565b508060019080519060200190620000d4929190620001e5565b505050620000f7620000eb6200011760201b60201c565b6200011f60201b60201c565b80600b90805190602001906200010f929190620001e5565b5050620004e8565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001f390620004b2565b90600052602060002090601f01602090048101928262000217576000855562000263565b82601f106200023257805160ff191683800117855562000263565b8280016001018555821562000263579182015b828111156200026257825182559160200191906001019062000245565b5b50905062000272919062000276565b5090565b5b808211156200029157600081600090555060010162000277565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620002fe82620002b3565b810181811067ffffffffffffffff8211171562000320576200031f620002c4565b5b80604052505050565b60006200033562000295565b9050620003438282620002f3565b919050565b600067ffffffffffffffff821115620003665762000365620002c4565b5b6200037182620002b3565b9050602081019050919050565b60005b838110156200039e57808201518184015260208101905062000381565b83811115620003ae576000848401525b50505050565b6000620003cb620003c58462000348565b62000329565b905082815260208101848484011115620003ea57620003e9620002ae565b5b620003f78482856200037e565b509392505050565b600082601f830112620004175762000416620002a9565b5b815162000429848260208601620003b4565b91505092915050565b6000602082840312156200044b576200044a6200029f565b5b600082015167ffffffffffffffff8111156200046c576200046b620002a4565b5b6200047a84828501620003ff565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004cb57607f821691505b60208210811415620004e257620004e162000483565b5b50919050565b61373c80620004f86000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806367243482116100b8578063a0bcfc7f1161007c578063a0bcfc7f14610363578063a22cb4651461037f578063b88d4fde1461039b578063c87b56dd146103b7578063e985e9c5146103e7578063f2fde38b1461041757610142565b806367243482146102d157806370a08231146102ed578063715018a61461031d5780638da5cb5b1461032757806395d89b411461034557610142565b806323b872dd1161010a57806323b872dd146101ff5780632f745c591461021b5780633ccfd60b1461024b57806342842e0e146102555780634f6ccce7146102715780636352211e146102a157610142565b806301ffc9a71461014757806306fdde0314610177578063081812fc14610195578063095ea7b3146101c557806318160ddd146101e1575b600080fd5b610161600480360381019061015c9190612154565b610433565b60405161016e919061219c565b60405180910390f35b61017f6104ad565b60405161018c9190612250565b60405180910390f35b6101af60048036038101906101aa91906122a8565b61053f565b6040516101bc9190612316565b60405180910390f35b6101df60048036038101906101da919061235d565b610585565b005b6101e961069d565b6040516101f691906123ac565b60405180910390f35b610219600480360381019061021491906123c7565b6106aa565b005b6102356004803603810190610230919061235d565b61070a565b60405161024291906123ac565b60405180910390f35b6102536107af565b005b61026f600480360381019061026a91906123c7565b6107d0565b005b61028b600480360381019061028691906122a8565b6107f0565b60405161029891906123ac565b60405180910390f35b6102bb60048036038101906102b691906122a8565b610861565b6040516102c89190612316565b60405180910390f35b6102eb60048036038101906102e69190612625565b610913565b005b6103076004803603810190610302919061269d565b6109ff565b60405161031491906123ac565b60405180910390f35b610325610ab7565b005b61032f610afa565b60405161033c9190612316565b60405180910390f35b61034d610b24565b60405161035a9190612250565b60405180910390f35b61037d6004803603810190610378919061277f565b610bb6565b005b610399600480360381019061039491906127f4565b610bd8565b005b6103b560048036038101906103b091906128d5565b610bee565b005b6103d160048036038101906103cc91906122a8565b610c50565b6040516103de9190612250565b60405180910390f35b61040160048036038101906103fc9190612958565b610ca9565b60405161040e919061219c565b60405180910390f35b610431600480360381019061042c919061269d565b610d3d565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104a657506104a582610dc1565b5b9050919050565b6060600080546104bc906129c7565b80601f01602080910402602001604051908101604052809291908181526020018280546104e8906129c7565b80156105355780601f1061050a57610100808354040283529160200191610535565b820191906000526020600020905b81548152906001019060200180831161051857829003601f168201915b5050505050905090565b600061054a82610ea3565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061059082610861565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610601576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f890612a6b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610620610eee565b73ffffffffffffffffffffffffffffffffffffffff16148061064f575061064e81610649610eee565b610ca9565b5b61068e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068590612afd565b60405180910390fd5b6106988383610ef6565b505050565b6000600880549050905090565b6106bb6106b5610eee565b82610faf565b6106fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f190612b8f565b60405180910390fd5b610705838383611044565b505050565b6000610715836109ff565b8210610756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074d90612c21565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6107b76112ab565b60006107c1610eee565b90506107cd8147611329565b50565b6107eb83838360405180602001604052806000815250610bee565b505050565b60006107fa61069d565b821061083b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083290612cb3565b60405180910390fd5b6008828154811061084f5761084e612cd3565b5b90600052602060002001549050919050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561090a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090190612d4e565b60405180910390fd5b80915050919050565b61091b6112ab565b805182511461095f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095690612de0565b60405180910390fd5b60005b82518110156109fa5760008282815181106109805761097f612cd3565b5b6020026020010151905060005b818110156109e557600060016109a161069d565b6109ab9190612e2f565b90506109d18685815181106109c3576109c2612cd3565b5b60200260200101518261141d565b5080806109dd90612e85565b91505061098d565b505080806109f290612e85565b915050610962565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6790612f40565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610abf6112ab565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af190612fd2565b60405180910390fd5b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610b33906129c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5f906129c7565b8015610bac5780601f10610b8157610100808354040283529160200191610bac565b820191906000526020600020905b815481529060010190602001808311610b8f57829003601f168201915b5050505050905090565b610bbe6112ab565b80600b9080519060200190610bd4929190612045565b5050565b610bea610be3610eee565b838361143b565b5050565b610bff610bf9610eee565b83610faf565b610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3590612b8f565b60405180910390fd5b610c4a848484846115a8565b50505050565b6060610c5b82611604565b610c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9190613064565b60405180910390fd5b610ca2611670565b9050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610d456112ab565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610db5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dac906130f6565b60405180910390fd5b610dbe81611702565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610e8c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610e9c5750610e9b826117c8565b5b9050919050565b610eac81611604565b610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee290612d4e565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610f6983610861565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610fbb83610861565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610ffd5750610ffc8185610ca9565b5b8061103b57508373ffffffffffffffffffffffffffffffffffffffff166110238461053f565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661106482610861565b73ffffffffffffffffffffffffffffffffffffffff16146110ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b190613188565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561112a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111219061321a565b60405180910390fd5b611135838383611832565b611140600082610ef6565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611190919061323a565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111e79190612e2f565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46112a6838383611946565b505050565b6112b3610eee565b73ffffffffffffffffffffffffffffffffffffffff166112d1610afa565b73ffffffffffffffffffffffffffffffffffffffff1614611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e906132ba565b60405180910390fd5b565b8047101561136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390613326565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161139290613377565b60006040518083038185875af1925050503d80600081146113cf576040519150601f19603f3d011682016040523d82523d6000602084013e6113d4565b606091505b5050905080611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f906133fe565b60405180910390fd5b505050565b61143782826040518060200160405280600081525061194b565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a19061346a565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161159b919061219c565b60405180910390a3505050565b6115b3848484611044565b6115bf848484846119a6565b6115fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f5906134fc565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6060600b805461167f906129c7565b80601f01602080910402602001604051908101604052809291908181526020018280546116ab906129c7565b80156116f85780601f106116cd576101008083540402835291602001916116f8565b820191906000526020600020905b8154815290600101906020018083116116db57829003601f168201915b5050505050905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61183d838383611b3d565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118805761187b81611b42565b6118bf565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146118be576118bd8382611b8b565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611902576118fd81611cf8565b611941565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146119405761193f8282611dc9565b5b5b505050565b505050565b6119558383611e48565b61196260008484846119a6565b6119a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611998906134fc565b60405180910390fd5b505050565b60006119c78473ffffffffffffffffffffffffffffffffffffffff16612022565b15611b30578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026119f0610eee565b8786866040518563ffffffff1660e01b8152600401611a129493929190613571565b602060405180830381600087803b158015611a2c57600080fd5b505af1925050508015611a5d57506040513d601f19601f82011682018060405250810190611a5a91906135d2565b60015b611ae0573d8060008114611a8d576040519150601f19603f3d011682016040523d82523d6000602084013e611a92565b606091505b50600081511415611ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611acf906134fc565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611b35565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001611b98846109ff565b611ba2919061323a565b9050600060076000848152602001908152602001600020549050818114611c87576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050611d0c919061323a565b9050600060096000848152602001908152602001600020549050600060088381548110611d3c57611d3b612cd3565b5b906000526020600020015490508060088381548110611d5e57611d5d612cd3565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480611dad57611dac6135ff565b5b6001900381819060005260206000200160009055905550505050565b6000611dd4836109ff565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaf9061367a565b60405180910390fd5b611ec181611604565b15611f01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef8906136e6565b60405180910390fd5b611f0d60008383611832565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f5d9190612e2f565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461201e60008383611946565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b828054612051906129c7565b90600052602060002090601f01602090048101928261207357600085556120ba565b82601f1061208c57805160ff19168380011785556120ba565b828001600101855582156120ba579182015b828111156120b957825182559160200191906001019061209e565b5b5090506120c791906120cb565b5090565b5b808211156120e45760008160009055506001016120cc565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612131816120fc565b811461213c57600080fd5b50565b60008135905061214e81612128565b92915050565b60006020828403121561216a576121696120f2565b5b60006121788482850161213f565b91505092915050565b60008115159050919050565b61219681612181565b82525050565b60006020820190506121b1600083018461218d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121f15780820151818401526020810190506121d6565b83811115612200576000848401525b50505050565b6000601f19601f8301169050919050565b6000612222826121b7565b61222c81856121c2565b935061223c8185602086016121d3565b61224581612206565b840191505092915050565b6000602082019050818103600083015261226a8184612217565b905092915050565b6000819050919050565b61228581612272565b811461229057600080fd5b50565b6000813590506122a28161227c565b92915050565b6000602082840312156122be576122bd6120f2565b5b60006122cc84828501612293565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612300826122d5565b9050919050565b612310816122f5565b82525050565b600060208201905061232b6000830184612307565b92915050565b61233a816122f5565b811461234557600080fd5b50565b60008135905061235781612331565b92915050565b60008060408385031215612374576123736120f2565b5b600061238285828601612348565b925050602061239385828601612293565b9150509250929050565b6123a681612272565b82525050565b60006020820190506123c1600083018461239d565b92915050565b6000806000606084860312156123e0576123df6120f2565b5b60006123ee86828701612348565b93505060206123ff86828701612348565b925050604061241086828701612293565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61245782612206565b810181811067ffffffffffffffff821117156124765761247561241f565b5b80604052505050565b60006124896120e8565b9050612495828261244e565b919050565b600067ffffffffffffffff8211156124b5576124b461241f565b5b602082029050602081019050919050565b600080fd5b60006124de6124d98461249a565b61247f565b90508083825260208201905060208402830185811115612501576125006124c6565b5b835b8181101561252a57806125168882612348565b845260208401935050602081019050612503565b5050509392505050565b600082601f8301126125495761254861241a565b5b81356125598482602086016124cb565b91505092915050565b600067ffffffffffffffff82111561257d5761257c61241f565b5b602082029050602081019050919050565b60006125a161259c84612562565b61247f565b905080838252602082019050602084028301858111156125c4576125c36124c6565b5b835b818110156125ed57806125d98882612293565b8452602084019350506020810190506125c6565b5050509392505050565b600082601f83011261260c5761260b61241a565b5b813561261c84826020860161258e565b91505092915050565b6000806040838503121561263c5761263b6120f2565b5b600083013567ffffffffffffffff81111561265a576126596120f7565b5b61266685828601612534565b925050602083013567ffffffffffffffff811115612687576126866120f7565b5b612693858286016125f7565b9150509250929050565b6000602082840312156126b3576126b26120f2565b5b60006126c184828501612348565b91505092915050565b600080fd5b600067ffffffffffffffff8211156126ea576126e961241f565b5b6126f382612206565b9050602081019050919050565b82818337600083830152505050565b600061272261271d846126cf565b61247f565b90508281526020810184848401111561273e5761273d6126ca565b5b612749848285612700565b509392505050565b600082601f8301126127665761276561241a565b5b813561277684826020860161270f565b91505092915050565b600060208284031215612795576127946120f2565b5b600082013567ffffffffffffffff8111156127b3576127b26120f7565b5b6127bf84828501612751565b91505092915050565b6127d181612181565b81146127dc57600080fd5b50565b6000813590506127ee816127c8565b92915050565b6000806040838503121561280b5761280a6120f2565b5b600061281985828601612348565b925050602061282a858286016127df565b9150509250929050565b600067ffffffffffffffff82111561284f5761284e61241f565b5b61285882612206565b9050602081019050919050565b600061287861287384612834565b61247f565b905082815260208101848484011115612894576128936126ca565b5b61289f848285612700565b509392505050565b600082601f8301126128bc576128bb61241a565b5b81356128cc848260208601612865565b91505092915050565b600080600080608085870312156128ef576128ee6120f2565b5b60006128fd87828801612348565b945050602061290e87828801612348565b935050604061291f87828801612293565b925050606085013567ffffffffffffffff8111156129405761293f6120f7565b5b61294c878288016128a7565b91505092959194509250565b6000806040838503121561296f5761296e6120f2565b5b600061297d85828601612348565b925050602061298e85828601612348565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806129df57607f821691505b602082108114156129f3576129f2612998565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a556021836121c2565b9150612a60826129f9565b604082019050919050565b60006020820190508181036000830152612a8481612a48565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b6000612ae7603e836121c2565b9150612af282612a8b565b604082019050919050565b60006020820190508181036000830152612b1681612ada565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612b79602e836121c2565b9150612b8482612b1d565b604082019050919050565b60006020820190508181036000830152612ba881612b6c565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000612c0b602b836121c2565b9150612c1682612baf565b604082019050919050565b60006020820190508181036000830152612c3a81612bfe565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000612c9d602c836121c2565b9150612ca882612c41565b604082019050919050565b60006020820190508181036000830152612ccc81612c90565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612d386018836121c2565b9150612d4382612d02565b602082019050919050565b60006020820190508181036000830152612d6781612d2b565b9050919050565b7f446573416c7068612361697264726f703a20546865205f746f20616e64205f7160008201527f75616e74697479206c656e677468206e6f74206d617463682e00000000000000602082015250565b6000612dca6039836121c2565b9150612dd582612d6e565b604082019050919050565b60006020820190508181036000830152612df981612dbd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e3a82612272565b9150612e4583612272565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e7a57612e79612e00565b5b828201905092915050565b6000612e9082612272565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ec357612ec2612e00565b5b600182019050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000612f2a6029836121c2565b9150612f3582612ece565b604082019050919050565b60006020820190508181036000830152612f5981612f1d565b9050919050565b7f536166654f776e61626c653a206f776e6572736869702063616e6e6f7420626560008201527f2072656e6f756e63656400000000000000000000000000000000000000000000602082015250565b6000612fbc602a836121c2565b9150612fc782612f60565b604082019050919050565b60006020820190508181036000830152612feb81612faf565b9050919050565b7f446573416c70686123746f6b656e5552493a2055524920717565727920666f7260008201527f206e6f6e6578697374656e7420746f6b656e0000000000000000000000000000602082015250565b600061304e6032836121c2565b915061305982612ff2565b604082019050919050565b6000602082019050818103600083015261307d81613041565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006130e06026836121c2565b91506130eb82613084565b604082019050919050565b6000602082019050818103600083015261310f816130d3565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006131726025836121c2565b915061317d82613116565b604082019050919050565b600060208201905081810360008301526131a181613165565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132046024836121c2565b915061320f826131a8565b604082019050919050565b60006020820190508181036000830152613233816131f7565b9050919050565b600061324582612272565b915061325083612272565b92508282101561326357613262612e00565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006132a46020836121c2565b91506132af8261326e565b602082019050919050565b600060208201905081810360008301526132d381613297565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613310601d836121c2565b915061331b826132da565b602082019050919050565b6000602082019050818103600083015261333f81613303565b9050919050565b600081905092915050565b50565b6000613361600083613346565b915061336c82613351565b600082019050919050565b600061338282613354565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b60006133e8603a836121c2565b91506133f38261338c565b604082019050919050565b60006020820190508181036000830152613417816133db565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006134546019836121c2565b915061345f8261341e565b602082019050919050565b6000602082019050818103600083015261348381613447565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006134e66032836121c2565b91506134f18261348a565b604082019050919050565b60006020820190508181036000830152613515816134d9565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006135438261351c565b61354d8185613527565b935061355d8185602086016121d3565b61356681612206565b840191505092915050565b60006080820190506135866000830187612307565b6135936020830186612307565b6135a0604083018561239d565b81810360608301526135b28184613538565b905095945050505050565b6000815190506135cc81612128565b92915050565b6000602082840312156135e8576135e76120f2565b5b60006135f6848285016135bd565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006136646020836121c2565b915061366f8261362e565b602082019050919050565b6000602082019050818103600083015261369381613657565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006136d0601c836121c2565b91506136db8261369a565b602082019050919050565b600060208201905081810360008301526136ff816136c3565b905091905056fea2646970667358221220334b4e22b2e487a5948ae7b18b6061d2ca19609fbdb8d8fa82115e0fbb1459de64736f6c634300080900330000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004c68747470733a2f2f697066732e66696c65626173652e696f2f697066732f516d596f414b576f4156456576447646547641614873384e4e327862617639386b734454383575425577634752310000000000000000000000000000000000000000