60806040526722b1c8c1227a000060045534801561001c57600080fd5b5060008054600160a060020a0319163390811782556004548183526001602090815260408085208390558051928352519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a361109a806100886000396000f3006080604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100f5578063095ea7b31461017f57806318160ddd146101b757806323b872dd146101de5780632929abe614610208578063313ce56714610296578063410085df146102c157806370a08231146102e75780638da5cb5b1461030857806395d89b41146103395780639dc29fac1461034e578063a7b8682414610372578063a9059cbb14610396578063adf9ffea146103ba578063c204642c146103db578063dd62ed3e14610432578063f2fde38b14610459575b600080fd5b34801561010157600080fd5b5061010a61047a565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014457818101518382015260200161012c565b50505050905090810190601f1680156101715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018b57600080fd5b506101a3600160a060020a03600435166024356104b1565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101cc610517565b60408051918252519081900360200190f35b3480156101ea57600080fd5b506101a3600160a060020a036004358116906024351660443561051d565b34801561021457600080fd5b50604080516020600480358082013583810280860185019096528085526101a395369593946024949385019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497506106cc9650505050505050565b3480156102a257600080fd5b506102ab610950565b6040805160ff9092168252519081900360200190f35b3480156102cd57600080fd5b506102e5600160a060020a0360043516602435610955565b005b3480156102f357600080fd5b506101cc600160a060020a0360043516610a54565b34801561031457600080fd5b5061031d610a6f565b60408051600160a060020a039092168252519081900360200190f35b34801561034557600080fd5b5061010a610a7e565b34801561035a57600080fd5b506102e5600160a060020a0360043516602435610ab5565b34801561037e57600080fd5b506102e5600160a060020a0360043516602435610bdf565b3480156103a257600080fd5b506101a3600160a060020a0360043516602435610c6e565b3480156103c657600080fd5b506101cc600160a060020a0360043516610d7e565b3480156103e757600080fd5b50604080516020600480358082013583810280860185019096528085526101a3953695939460249493850192918291850190849080828437509497505093359450610d999350505050565b34801561043e57600080fd5b506101cc600160a060020a0360043581169060243516610f6a565b34801561046557600080fd5b506102e5600160a060020a0360043516610f95565b60408051808201909152600881527f6d616d65436f696e000000000000000000000000000000000000000000000000602082015281565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60045490565b6000600160a060020a038316151561053457600080fd5b600160a060020a03841660009081526001602052604090205482111561055957600080fd5b600160a060020a038416600090815260026020908152604080832033845290915290205482111561058957600080fd5b600160a060020a03841660009081526003602052604090205442116105ad57600080fd5b600160a060020a03831660009081526003602052604090205442116105d157600080fd5b600160a060020a0384166000908152600160205260409020546105fa908363ffffffff61102916565b600160a060020a03808616600090815260016020526040808220939093559085168152205461062f908363ffffffff61103b16565b600160a060020a038085166000908152600160209081526040808320949094559187168152600282528281203382529091522054610673908363ffffffff61102916565b600160a060020a038086166000818152600260209081526040808320338452825291829020949094558051868152905192871693919260008051602061104f833981519152929181900390910190a35060019392505050565b336000908152600360205260408120548190819042116106eb57600080fd5b84516000106106f957600080fd5b835160001061070757600080fd5b835185511461071557600080fd5b5060009050805b84518110156107ea57845160009086908390811061073657fe5b60209081029091010151600160a060020a0316141561075457600080fd5b60036000868381518110151561076657fe5b6020908102909101810151600160a060020a0316825281019190915260400160002054421161079457600080fd5b600084828151811015156107a457fe5b60209081029091010151116107b857600080fd5b6107e084828151811015156107c957fe5b60209081029091010151839063ffffffff61103b16565b915060010161071c565b3360009081526001602052604090205482111561080657600080fd5b33600090815260016020526040902054610826908363ffffffff61102916565b3360009081526001602052604081209190915590505b8451811015610945576108a1848281518110151561085657fe5b9060200190602002015160016000888581518110151561087257fe5b6020908102909101810151600160a060020a03168252810191909152604001600020549063ffffffff61103b16565b6001600087848151811015156108b357fe5b6020908102909101810151600160a060020a031682528101919091526040016000205584518590829081106108e457fe5b90602001906020020151600160a060020a031633600160a060020a031660008051602061104f833981519152868481518110151561091e57fe5b906020019060200201516040518082815260200191505060405180910390a360010161083c565b506001949350505050565b600881565b600054600160a060020a0316331461096c57600080fd5b600160a060020a038216600090815260036020526040902054421161099057600080fd5b6004546109a3908263ffffffff61103b16565b600455600160a060020a0382166000908152600160205260409020546109cf908263ffffffff61103b16565b600160a060020a038316600081815260016020908152604091829020939093558051848152905191927fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d92918290030190a2604080518281529051600160a060020a0384169160009160008051602061104f8339815191529181900360200190a35050565b600160a060020a031660009081526001602052604090205490565b600054600160a060020a031681565b60408051808201909152600481527f4d414d4500000000000000000000000000000000000000000000000000000000602082015281565b600054600160a060020a03163314610acc57600080fd5b600160a060020a038216600090815260016020526040902054811115610af157600080fd5b600160a060020a0382166000908152600360205260409020544211610b1557600080fd5b600160a060020a038216600090815260016020526040902054610b3e908263ffffffff61102916565b600160a060020a038316600090815260016020526040902055600454610b6a908263ffffffff61102916565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a0385169160008051602061104f8339815191529181900360200190a35050565b600054600160a060020a03163314610bf657600080fd5b600160a060020a0382166000908152600360205260409020548111610c1a57600080fd5b600160a060020a038216600081815260036020908152604091829020849055815184815291517fa25dc2c532ce8bb5ca6f0bbb701ea285dfa8c5fe65cdba305f88a0bab852ef829281900390910190a25050565b6000600160a060020a0383161515610c8557600080fd5b33600090815260016020526040902054821115610ca157600080fd5b336000908152600360205260409020544211610cbc57600080fd5b600160a060020a0383166000908152600360205260409020544211610ce057600080fd5b33600090815260016020526040902054610d00908363ffffffff61102916565b3360009081526001602052604080822092909255600160a060020a03851681522054610d32908363ffffffff61103b16565b600160a060020a03841660008181526001602090815260409182902093909355805185815290519192339260008051602061104f8339815191529281900390910190a350600192915050565b600160a060020a031660009081526003602052604090205490565b33600090815260036020526040812054819081904211610db857600080fd5b8451600010610dc657600080fd5b60008411610dd357600080fd5b5060009050805b8451811015610e6c578451600090869083908110610df457fe5b60209081029091010151600160a060020a03161415610e1257600080fd5b600360008683815181101515610e2457fe5b6020908102909101810151600160a060020a03168252810191909152604001600020544211610e5257600080fd5b610e62828563ffffffff61103b16565b9150600101610dda565b33600090815260016020526040902054821115610e8857600080fd5b33600090815260016020526040902054610ea8908363ffffffff61102916565b3360009081526001602052604081209190915590505b845181101561094557610edd8460016000888581518110151561087257fe5b600160008784815181101515610eef57fe5b6020908102909101810151600160a060020a03168252810191909152604001600020558451859082908110610f2057fe5b90602001906020020151600160a060020a031633600160a060020a031660008051602061104f833981519152866040518082815260200191505060405180910390a3600101610ebe565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600054600160a060020a03163314610fac57600080fd5b600160a060020a0381161515610fc157600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282111561103557fe5b50900390565b8181018281101561104857fe5b929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820e20f6efef0003d63e33a0fce9d0cbdb7ad6bf5c04d2f0096a067a0a74823873b0029