23696e636c756465203c6765746f70742e683e0a23696e636c756465203c737464626f6f6c2e683e0a23696e636c756465203c737464696f2e683e0a23696e636c756465203c7374646c69622e683e0a23696e636c756465203c737472696e672e683e0a23696e636c756465203c7761796c616e642d636c69656e742e683e0a0a23696e636c7564652022776c722d6c617965722d7368656c6c2d756e737461626c652d76312d636c69656e742d70726f746f636f6c2e68220a0a23696e636c756465202273686d2e68220a0a7374727563742077625f636f6c6f72207b0a2020202075696e7433325f7420722c20672c20623b0a7d3b0a0a73746174696320626f6f6c2070617273655f636f6c6f7228636f6e73742063686172202a7374722c207374727563742077625f636f6c6f72202a636f6c6f7229207b0a20202020696620287374725b305d203d3d2027232729207b0a20202020202020207374722b2b3b0a202020207d0a0a2020202075696e7433325f7420722c20672c20623b0a20202020636861722064756d6d795b325d3b0a20202020696e7420726573203d20737363616e66287374722c20222530327825303278253032782573222c2026722c2026672c2026622c2064756d6d79293b0a202020206966202872657320213d2033207c7c2064756d6d795b305d20213d20275c302729207b0a202020202020202072657475726e2066616c73653b0a202020207d0a0a20202020636f6c6f722d3e72203d20723b0a20202020636f6c6f722d3e67203d20673b0a20202020636f6c6f722d3e62203d20623b0a0a2020202072657475726e20747275653b0a7d0a0a7374727563742077625f636f6e666967207b0a202020207374727563742077625f636f6c6f72202a62675f636f6c6f723b0a7d3b0a0a73746174696320766f6964207072696e745f636f6e666967287374727563742077625f636f6e666967202a636f6e66696729207b0a202020207374727563742077625f636f6c6f72202a636f6c6f72203d20636f6e6669672d3e62675f636f6c6f723b0a202020207072696e74662822636f6e6669673a5c6e220a202020202020202020202022202d20636f6c6f723a205b25642c2025642c2025645d5c6e222c0a2020202020202020202020636f6c6f722d3e722c20636f6c6f722d3e672c20636f6c6f722d3e62293b0a7d0a0a7374727563742077625f6f7574707574207b0a2020202075696e7433325f7420776c5f6e616d653b0a2020202073747275637420776c5f6f7574707574202a776c5f6f75747075743b0a0a2020202063686172202a6d616b652c202a6d6f64656c3b0a0a2020202075696e7433325f742077696474682c206865696768743b0a20202020696e7433325f74207363616c653b0a0a20202020626f6f6c20636f6e666967757265643b0a2020202073747275637420776c5f6c697374206c696e6b3b0a7d3b0a0a7374727563742077625f7374617465207b0a2020202073747275637420776c5f646973706c6179202a646973706c61793b0a2020202073747275637420776c5f7265676973747279202a72656769737472793b0a2020202073747275637420776c5f636f6d706f7369746f72202a636f6d706f7369746f723b0a2020202073747275637420776c5f73686d202a73686d3b0a20202020737472756374207a776c725f6c617965725f7368656c6c5f7631202a6c617965725f7368656c6c3b0a2020202073747275637420776c5f6c697374206f7574707574733b0a7d3b0a0a73746174696320766f69642064657374726f795f6f7574707574287374727563742077625f6f7574707574202a6f757470757429207b0a20202020696620286f7574707574203d3d204e554c4c29207b0a202020202020202072657475726e3b0a202020207d0a0a20202020776c5f6c6973745f72656d6f766528266f75747075742d3e6c696e6b293b0a20202020776c5f6f75747075745f64657374726f79286f75747075742d3e776c5f6f7574707574293b0a2020202066726565286f75747075742d3e6d616b65293b0a2020202066726565286f75747075742d3e6d6f64656c293b0a2020202066726565286f7574707574293b0a7d0a0a73746174696320766f6964206f75747075745f67656f6d6574727928766f6964202a646174612c2073747275637420776c5f6f7574707574202a776c5f6f75747075742c20696e7433325f7420782c0a20202020202020202020202020202020202020202020202020202020696e7433325f7420792c20696e7433325f742077696474685f6d6d2c20696e7433325f74206865696768745f6d6d2c0a20202020202020202020202020202020202020202020202020202020696e7433325f7420737562706978656c2c20636f6e73742063686172202a6d616b652c0a20202020202020202020202020202020202020202020202020202020636f6e73742063686172202a6d6f64656c2c20696e7433325f74207472616e73666f726d29207b0a2020202028766f696429776c5f6f75747075743b0a2020202028766f696429783b0a2020202028766f696429793b0a2020202028766f69642977696474685f6d6d3b0a2020202028766f6964296865696768745f6d6d3b0a2020202028766f696429737562706978656c3b0a2020202028766f6964297472616e73666f726d3b0a0a202020207374727563742077625f6f7574707574202a6f7574707574203d20646174613b0a2020202066726565286f75747075742d3e6d616b65293b0a2020202066726565286f75747075742d3e6d6f64656c293b0a0a20202020696620286d616b6520213d204e554c4c29207b0a202020202020202075696e7433325f74206c656e203d207374726c656e286d616b6529202b20313b0a202020202020202063686172202a6e65775f6d616b65203d206d616c6c6f63286c656e293b0a2020202020202020696620286e65775f6d616b6520213d204e554c4c29207b0a2020202020202020202020206d656d637079286e65775f6d616b652c206d616b652c206c656e293b0a20202020202020207d0a20202020202020206f75747075742d3e6d616b65203d206e65775f6d616b653b0a202020207d0a20202020696620286d6f64656c20213d204e554c4c29207b0a202020202020202075696e7433325f74206c656e203d207374726c656e286d6f64656c29202b20313b0a202020202020202063686172202a6e65775f6d6f64656c203d206d616c6c6f63286c656e293b0a2020202020202020696620286e65775f6d6f64656c20213d204e554c4c29207b0a2020202020202020202020206d656d637079286e65775f6d6f64656c2c206d6f64656c2c206c656e293b0a20202020202020207d0a20202020202020206f75747075742d3e6d6f64656c203d206e65775f6d6f64656c3b0a202020207d0a7d0a0a73746174696320766f6964206f75747075745f6d6f646528766f6964202a646174612c2073747275637420776c5f6f7574707574202a776c5f6f75747075742c2075696e7433325f7420666c6167732c0a202020202020202020202020202020202020202020202020696e7433325f742077696474682c20696e7433325f74206865696768742c20696e7433325f74207265667265736829207b0a2020202028766f696429776c5f6f75747075743b0a2020202028766f696429726566726573683b0a0a202020202f2a2069732074686973206e65636573736172793f202a2f0a202020206966202828666c616773202620574c5f4f55545055545f4d4f44455f43555252454e5429203d3d203029207b0a202020202020202072657475726e3b0a202020207d0a0a202020207374727563742077625f6f7574707574202a6f7574707574203d20646174613b0a202020206f75747075742d3e7769647468203d2077696474683b0a202020206f75747075742d3e686569676874203d206865696768743b0a7d0a0a73746174696320766f6964206f75747075745f646f6e6528766f6964202a646174612c2073747275637420776c5f6f7574707574202a776c5f6f757470757429207b0a2020202028766f696429776c5f6f75747075743b0a0a202020207374727563742077625f6f7574707574202a6f7574707574203d20646174613b0a0a202020207072696e746628226f75747075743a202573202573202825647825642c207363616c653d2564295c6e222c206f75747075742d3e6d616b652c206f75747075742d3e6d6f64656c2c0a20202020202020202020206f75747075742d3e77696474682c206f75747075742d3e6865696768742c206f75747075742d3e7363616c65293b0a7d0a0a73746174696320766f6964206f75747075745f7363616c6528766f6964202a646174612c2073747275637420776c5f6f7574707574202a776c5f6f75747075742c0a20202020202020202020202020202020202020202020202020696e7433325f7420666163746f7229207b0a2020202028766f696429646174613b0a2020202028766f696429776c5f6f75747075743b0a0a202020207374727563742077625f6f7574707574202a6f7574707574203d20646174613b0a202020206f75747075742d3e7363616c65203d20666163746f723b0a7d0a0a73746174696320636f6e73742073747275637420776c5f6f75747075745f6c697374656e6572206f75747075745f6c697374656e6572203d207b0a202020202e67656f6d65747279203d206f75747075745f67656f6d657472792c0a202020202e6d6f6465203d206f75747075745f6d6f64652c0a202020202e646f6e65203d206f75747075745f646f6e652c0a202020202e7363616c65203d206f75747075745f7363616c652c0a7d3b0a0a73746174696320766f69642068616e646c655f676c6f62616c28766f6964202a646174612c2073747275637420776c5f7265676973747279202a72656769737472792c0a202020202020202020202020202020202020202020202020202075696e7433325f74206e616d652c20636f6e73742063686172202a696e746572666163652c0a202020202020202020202020202020202020202020202020202075696e7433325f742076657273696f6e29207b0a2020202028766f69642976657273696f6e3b0a0a202020207374727563742077625f7374617465202a7374617465203d20646174613b0a0a2020202069662028737472636d7028696e746572666163652c20776c5f636f6d706f7369746f725f696e746572666163652e6e616d6529203d3d203029207b0a202020202020202073746174652d3e636f6d706f7369746f72203d0a202020202020202020202020776c5f72656769737472795f62696e642872656769737472792c206e616d652c2026776c5f636f6d706f7369746f725f696e746572666163652c2034293b0a202020207d0a0a20202020656c73652069662028737472636d7028696e746572666163652c20776c5f73686d5f696e746572666163652e6e616d6529203d3d203029207b0a202020202020202073746174652d3e73686d203d20776c5f72656769737472795f62696e642872656769737472792c206e616d652c2026776c5f73686d5f696e746572666163652c2031293b0a202020207d0a0a20202020656c73652069662028737472636d7028696e746572666163652c20776c5f6f75747075745f696e746572666163652e6e616d6529203d3d203029207b0a20202020202020207374727563742077625f6f7574707574202a6f7574707574203d2063616c6c6f6328312c2073697a656f66287374727563742077625f6f757470757429293b0a20202020202020206f75747075742d3e776c5f6e616d65203d206e616d653b0a20202020202020206f75747075742d3e776c5f6f7574707574203d0a202020202020202020202020776c5f72656769737472795f62696e642872656769737472792c206e616d652c2026776c5f6f75747075745f696e746572666163652c2033293b0a2020202020202020776c5f6f75747075745f6164645f6c697374656e6572286f75747075742d3e776c5f6f75747075742c20266f75747075745f6c697374656e65722c206f7574707574293b0a2020202020202020776c5f6c6973745f696e73657274282673746174652d3e6f7574707574732c20266f75747075742d3e6c696e6b293b0a202020207d0a0a20202020656c73652069662028737472636d7028696e746572666163652c207a776c725f6c617965725f7368656c6c5f76315f696e746572666163652e6e616d6529203d3d203029207b0a202020202020202073746174652d3e6c617965725f7368656c6c203d0a202020202020202020202020776c5f72656769737472795f62696e642872656769737472792c206e616d652c20267a776c725f6c617965725f7368656c6c5f76315f696e746572666163652c2031293b0a202020207d0a7d0a0a73746174696320766f69642068616e646c655f676c6f62616c5f72656d6f766528766f6964202a646174612c2073747275637420776c5f7265676973747279202a72656769737472792c0a20202020202020202020202020202020202020202020202020202020202020202075696e7433325f74206e616d6529207b0a2020202028766f69642972656769737472793b0a0a202020207374727563742077625f7374617465202a7374617465203d20646174613b0a0a202020207374727563742077625f6f7574707574202a6f75747075742c202a746d703b0a20202020776c5f6c6973745f666f725f656163685f73616665286f75747075742c20746d702c202673746174652d3e6f7574707574732c206c696e6b29207b0a2020202020202020696620286f75747075742d3e776c5f6e616d65203d3d206e616d6529207b0a20202020202020202020202064657374726f795f6f7574707574286f7574707574293b0a202020202020202020202020627265616b3b0a20202020202020207d0a202020207d0a7d0a0a73746174696320636f6e73742073747275637420776c5f72656769737472795f6c697374656e65722072656769737472795f6c697374656e6572203d207b0a202020202e676c6f62616c203d2068616e646c655f676c6f62616c2c0a202020202e676c6f62616c5f72656d6f7665203d2068616e646c655f676c6f62616c5f72656d6f76652c0a7d3b0a0a73746174696320626f6f6c20696e69745f7761796c616e64287374727563742077625f7374617465202a737461746529207b0a2020202073746174652d3e646973706c6179203d20776c5f646973706c61795f636f6e6e656374284e554c4c293b0a202020206966202873746174652d3e646973706c6179203d3d204e554c4c29207b0a2020202020202020667072696e7466287374646572722c20226572723a206661696c656420746f20636f6e6e65637420746f207761796c616e6420646973706c61795c6e22293b0a202020202020202072657475726e2066616c73653b0a202020207d0a0a2020202073746174652d3e7265676973747279203d20776c5f646973706c61795f6765745f72656769737472792873746174652d3e646973706c6179293b0a202020206966202873746174652d3e7265676973747279203d3d204e554c4c29207b0a2020202020202020667072696e7466287374646572722c20226572723a206661696c656420746f2067657420646973706c61792072656769737472795c6e22293b0a202020202020202072657475726e2066616c73653b0a202020207d0a0a20202020776c5f6c6973745f696e6974282673746174652d3e6f757470757473293b0a0a20202020776c5f72656769737472795f6164645f6c697374656e65722873746174652d3e72656769737472792c202672656769737472795f6c697374656e65722c207374617465293b0a20202020776c5f646973706c61795f726f756e64747269702873746174652d3e646973706c6179293b0a0a202020206966202873746174652d3e636f6d706f7369746f72203d3d204e554c4c207c7c2073746174652d3e73686d203d3d204e554c4c207c7c0a202020202020202073746174652d3e6c617965725f7368656c6c203d3d204e554c4c29207b0a2020202020202020667072696e7466280a2020202020202020202020207374646572722c0a202020202020202020202020226572723a206f6e65206f72206d756c7469706c65206e6f7420666f756e643a20636f6d706f7369746f722c2073686d2c206c61796572207368656c6c5c6e22293b0a202020202020202072657475726e2066616c73653b0a202020207d0a0a2020202072657475726e20747275653b0a7d0a0a73746174696320766f69642066696e6973685f7761796c616e64287374727563742077625f7374617465202a737461746529207b0a202020207374727563742077625f6f7574707574202a6f75747075742c202a746d703b0a20202020776c5f6c6973745f666f725f656163685f73616665286f75747075742c20746d702c202673746174652d3e6f7574707574732c206c696e6b29207b0a202020202020202064657374726f795f6f7574707574286f7574707574293b0a202020207d0a202020206966202873746174652d3e636f6d706f7369746f7220213d204e554c4c29207b0a2020202020202020776c5f636f6d706f7369746f725f64657374726f792873746174652d3e636f6d706f7369746f72293b0a202020207d0a202020206966202873746174652d3e73686d20213d204e554c4c29207b0a2020202020202020776c5f73686d5f64657374726f792873746174652d3e73686d293b0a202020207d0a202020206966202873746174652d3e6c617965725f7368656c6c20213d204e554c4c29207b0a20202020202020207a776c725f6c617965725f7368656c6c5f76315f64657374726f792873746174652d3e6c617965725f7368656c6c293b0a202020207d0a202020206966202873746174652d3e726567697374727920213d204e554c4c29207b0a2020202020202020776c5f72656769737472795f64657374726f792873746174652d3e7265676973747279293b0a202020207d0a202020206966202873746174652d3e646973706c617920213d204e554c4c29207b0a2020202020202020776c5f646973706c61795f646973636f6e6e6563742873746174652d3e646973706c6179293b0a202020207d0a7d0a0a73746174696320766f696420757361676528636f6e73742063686172202a70726f676e616d6529207b0a20202020667072696e7466287374646572722c0a2020202020202020202020202275736167653a202573205b2d68565d205b2d6320636f6c6f725d5c6e220a2020202020202020202020202220202d682c202d2d68656c70090973686f77207573616765206d65737361676520616e6420657869745c6e220a2020202020202020202020202220202d562c202d2d76657273696f6e090973686f772076657273696f6e20696e666f726d6174696f6e20616e6420657869745c6e220a2020202020202020202020202220202d632c202d2d636f6c6f72090973657420746865206261636b67726f756e6420636f6c6f72206f7074696f6e5c6e222c0a20202020202020202020202070726f676e616d65293b0a7d0a0a2f2a204e4f54453a20636f6c6f7220636f6e66696775726174696f6e206973206b6570742c20627574206e6f2072656e646572696e6720697320646f6e6520796574202a2f0a696e74206d61696e28696e7420617267632c2063686172202a617267765b5d29207b0a20202020636f6e73742063686172202a70726f676e616d65203d20617267765b305d3b0a20202020636f6e737420737472756374206f7074696f6e206c6f6e676f7074735b5d203d207b0a20202020202020207b2268656c70222c206e6f5f617267756d656e742c20302c202768277d2c0a20202020202020207b2276657273696f6e222c206e6f5f617267756d656e742c20302c202756277d2c0a20202020202020207b22636f6c6f72222c2072657175697265645f617267756d656e742c20302c202763277d2c0a20202020202020207b4e554c4c2c206e6f5f617267756d656e742c20302c20307d2c0a202020207d3b0a0a202020202f2a2061707020636f6e6669672064617461202b2064656661756c7473202a2f0a202020207374727563742077625f636f6c6f7220636f6c6f72203d207b31382c2031382c2031387d3b0a202020207374727563742077625f636f6e66696720636f6e666967203d207b2e62675f636f6c6f72203d2026636f6c6f727d3b0a0a20202020696e7420633b0a20202020646f207b0a202020202020202063203d206765746f70745f6c6f6e6728617267632c20617267762c20223a6856633a222c206c6f6e676f7074732c204e554c4c293b0a202020202020202073776974636820286329207b0a202020202020202063617365202768273a0a20202020202020202020202075736167652870726f676e616d65293b0a20202020202020202020202072657475726e20455849545f535543434553533b0a202020202020202063617365202756273a0a202020202020202020202020667072696e7466287374646572722c202225732076657273696f6e2022205741594241434b5f56455253494f4e20225c6e222c2070726f676e616d65293b0a20202020202020202020202072657475726e20455849545f535543434553533b0a202020202020202063617365202763273a0a202020202020202020202020696620282170617273655f636f6c6f72286f70746172672c2026636f6c6f722929207b0a20202020202020202020202020202020667072696e7466287374646572722c202225733a20696e76616c696420636f6c6f7220617267756d656e74202d2d20272573275c6e222c0a20202020202020202020202020202020202020202020202070726f676e616d652c206f7074617267293b0a2020202020202020202020202020202072657475726e20455849545f4641494c5552453b0a2020202020202020202020207d0a202020202020202020202020627265616b3b0a20202020202020206361736520273a273a0a202020202020202020202020667072696e7466287374646572722c202225733a206f7074696f6e20726571756972657320616e20617267756d656e74202d2d20272563275c6e222c0a202020202020202020202020202020202020202070726f676e616d652c206f70746f7074293b0a20202020202020202020202075736167652870726f676e616d65293b0a20202020202020202020202072657475726e20455849545f4641494c5552453b0a20202020202020206361736520273f273a0a202020202020202020202020667072696e7466287374646572722c202225733a20696e76616c6964206f7074696f6e202d2d20272563275c6e222c2070726f676e616d652c206f70746f7074293b0a20202020202020202020202075736167652870726f676e616d65293b0a20202020202020202020202072657475726e20455849545f4641494c5552453b0a20202020202020207d0a202020207d207768696c6520286320213d202d31293b0a0a202020207072696e745f636f6e6669672826636f6e666967293b0a202020207075746368617228275c6e27293b0a0a202020207374727563742077625f7374617465207374617465203d207b307d3b0a202020206966202821696e69745f7761796c616e64282673746174652929207b0a202020202020202066696e6973685f7761796c616e6428267374617465293b0a202020202020202072657475726e20455849545f4641494c5552453b0a202020207d0a0a202020207768696c652028776c5f646973706c61795f64697370617463682873746174652e646973706c61792920213d202d3129207b0a20202020202020202f2a206572722e2e2e207768617420676f657320686572653f202a2f0a202020207d0a0a2020202066696e6973685f7761796c616e6428267374617465293b0a0a2020202072657475726e20455849545f535543434553533b0a7d0a