1:45 PM 11/12/2025 ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
// // Copyright (c) 2023-2025 Ivica Siladic, Bruno Iljazovic, Korina Simicevic // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt) // #ifndef BOOST_MQTT5_ASSEMBLE_OP_HPP #define BOOST_MQTT5_ASSEMBLE_OP_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace boost::mqtt5::detail { namespace asio = boost::asio; class data_span : private std::pair { using base = std::pair; public: using base::base; auto first() const { return base::first; } auto last() const { return base::second; } void expand_suffix(size_t num_chars) { base::second += num_chars; } void remove_prefix(size_t num_chars) { base::first += num_chars; } size_t size() const { return std::distance(base::first, base::second); } }; template class assemble_op { using client_service = ClientService; using handler_type = Handler; struct on_read {}; client_service& _svc; handler_type _handler; std::string& _read_buff; data_span& _data_span; public: assemble_op( client_service& svc, handler_type&& handler, std::string& read_buff, data_span& active_span ) : _svc(svc), _handler(std::move(handler)), _read_buff(read_buff), _data_span(active_span) {} assemble_op(assemble_op&&) noexcept = default; assemble_op(const assemble_op&) = delete; assemble_op& operator=(assemble_op&&) noexcept = default; assemble_op& operator=(const assemble_op&) = delete; using allocator_type = asio::associated_allocator_t; allocator_type get_allocator() const noexcept { return asio::get_associated_allocator(_handler); } using executor_type = asio::associated_executor_t; executor_type get_executor() const noexcept { return asio::get_associated_executor(_handler); } template void perform(CompletionCondition cc) { if (cc(error_code {}, 0) == 0 && _data_span.size()) { return asio::post( _svc.get_executor(), asio::prepend( std::move(*this), on_read {}, error_code {}, 0, std::move(cc) ) ); } prepare_buffer(1); // Must be evaluated before this is moved auto store_begin = _read_buff.data() + std::distance(_read_buff.cbegin(), _data_span.last()); auto store_size = std::distance(_data_span.last(), _read_buff.cend()); _svc._stream.async_read_some( asio::buffer(store_begin, store_size), compute_read_timeout(), asio::prepend( asio::append(std::move(*this), std::move(cc)), on_read {} ) ); } template void operator()( on_read, error_code ec, size_t bytes_read, CompletionCondition cc ) { if (ec == asio::error::try_again) { _svc.update_session_state(); _svc._async_sender.resend(); _data_span = { _read_buff.cbegin(), _read_buff.cbegin() }; return perform(std::move(cc)); } if (ec) return complete(ec, 0, {}, {}); _data_span.expand_suffix(bytes_read); BOOST_ASSERT(_data_span.size()); auto control_byte = uint8_t(*_data_span.first()); if ((control_byte & 0b11110000) == 0) // close the connection, cancel return complete(client::error::malformed_packet, 0, {}, {}); auto first = _data_span.first() + 1; auto varlen = decoders::type_parse( first, _data_span.last(), decoders::basic::varint_ ); if (!varlen) { if (_data_span.size() < 5) return perform(asio::transfer_at_least(1)); return complete(client::error::malformed_packet, 0, {}, {}); } if ( static_cast(*varlen) > max_recv_size() - std::distance(_data_span.first(), first) ) return complete(client::error::packet_too_large, 0, {}, {}); if (std::distance(first, _data_span.last()) < *varlen) { prepare_buffer(*varlen - std::distance(first, _data_span.last())); return perform(asio::transfer_at_least(1)); } _data_span.remove_prefix( std::distance(_data_span.first(), first) + *varlen ); dispatch(control_byte, first, first + *varlen); } private: void prepare_buffer(std::ptrdiff_t extra_len) { if (std::distance(_data_span.last(), _read_buff.cend()) >= extra_len) return; // make room for the packet by erasing bytes we already parsed from the // beginning of the read buffer const auto data_span_size = _data_span.size(); _read_buff.erase(_read_buff.cbegin(), _data_span.first()); _read_buff.resize(max_recv_size()); _data_span = { _read_buff.cbegin(), _read_buff.cbegin() + data_span_size }; } uint32_t max_recv_size() const { return (std::min)( _svc.connect_property(prop::maximum_packet_size) .value_or(default_max_recv_size), static_cast(default_max_send_size) ); } duration compute_read_timeout() const { auto negotiated_ka = _svc.negotiated_keep_alive(); return negotiated_ka ? std::chrono::milliseconds(3 * negotiated_ka * 1000 / 2) : duration((std::numeric_limits::max)()); } static bool valid_header(uint8_t control_byte) { auto code = control_code_e(control_byte & 0b11110000); if (code == control_code_e::publish) return true; auto res = control_byte & 0b00001111; if (code == control_code_e::pubrel) return res == 0b00000010; return res == 0b00000000; } void dispatch( uint8_t control_byte, byte_citer first, byte_citer last ) { using namespace decoders; if (!valid_header(control_byte)) return complete(client::error::malformed_packet, 0, {}, {}); auto code = control_code_e(control_byte & 0b11110000); if (code == control_code_e::pingresp) return perform(asio::transfer_at_least(0)); bool is_reply = code != control_code_e::publish && code != control_code_e::auth && code != control_code_e::disconnect; if (is_reply) { auto packet_id = decoders::decode_packet_id(first).value(); _svc._replies.dispatch(error_code {}, code, packet_id, first, last); return perform(asio::transfer_at_least(0)); } complete(error_code {}, control_byte, first, last); } void complete( error_code ec, uint8_t control_code, byte_citer first, byte_citer last ) { if (ec) _data_span = { _read_buff.cbegin(), _read_buff.cbegin() }; std::move(_handler)(ec, control_code, first, last); } }; } // end namespace boost::mqtt5::detail #endif // !BOOST_MQTT5_ASSEMBLE_OP_HPP