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
/** * SPDX-FileCopyrightText: (C) 2011 Dominik Seichter * SPDX-FileCopyrightText: (C) 2020 Francesco Pretto * SPDX-License-Identifier: LGPL-2.0-or-later */ #ifndef PDF_DICTIONARY_H #define PDF_DICTIONARY_H #include "PdfDeclarations.h" #include "PdfDataContainer.h" namespace PoDoFo { class PdfDictionary; // Compartor to enable heterogeneous lookup in // PdfDictionary with both PdfName and string_view // See https://stackoverflow.com/a/31924435/213871 struct PdfDictionaryComparator final { using is_transparent = std::true_type; bool operator()(const PdfName& lhs, const PdfName& rhs) const { return lhs < rhs; } bool operator()(const PdfName& lhs, const std::string_view& rhs) const { return lhs.GetRawData() < rhs; } bool operator()(const std::string_view& lhs, const PdfName& rhs) const { return lhs < rhs.GetRawData(); } }; using PdfDictionaryMap = std::map; /** * Helper class to iterate through indirect objects */ template class PdfDictionaryIndirectIterableBase final : public PdfIndirectIterableBase { friend class PdfDictionary; public: PdfDictionaryIndirectIterableBase(); private: PdfDictionaryIndirectIterableBase(PdfDictionary& dict); public: class iterator final { friend class PdfDictionaryIndirectIterableBase; public: using difference_type = void; using value_type = std::pair; using pointer = const value_type*; using reference = const value_type&; using iterator_category = std::forward_iterator_tag; public: iterator(); private: iterator(TMapIterator&& iterator, PdfIndirectObjectList* objects); public: iterator(const iterator&) = default; iterator& operator=(const iterator&) = default; bool operator==(const iterator& rhs) const; bool operator!=(const iterator& rhs) const; iterator& operator++(); reference operator*(); pointer operator->(); private: void resolve(); private: TMapIterator m_iterator; PdfIndirectObjectList* m_objects; value_type m_pair; }; public: iterator begin() const; iterator end() const; private: PdfDictionary* m_dict; }; using PdfDictionaryIndirectIterable = PdfDictionaryIndirectIterableBase; using PdfDictionaryConstIndirectIterable = PdfDictionaryIndirectIterableBase; /** The PDF dictionary data type of PoDoFo (inherits from PdfDataContainer, * the base class for such representations) * Note: manipulation function accepts PdfName for the key, * while getters accept std::string_view. This is an optimization * since we do lookup with both types. We also assume doing * lookups with strings will only use characters compatible * with PdfDocEncoding */ class PODOFO_API PdfDictionary final : public PdfDataContainer { friend class PdfObject; friend class PdfTokenizer; public: /** Create a new, empty dictionary */ PdfDictionary(); /** Deep copy a dictionary * \param rhs the PdfDictionary to copy */ PdfDictionary(const PdfDictionary& rhs); PdfDictionary(PdfDictionary&& rhs) noexcept; /** Assignment operator. * Assign another PdfDictionary to this dictionary. This is a deep copy; * all elements of the source dictionary are duplicated. * * \param rhs the PdfDictionary to copy. * * \return this PdfDictionary * * This will set the dirty flag of this object. * \see IsDirty */ PdfDictionary& operator=(const PdfDictionary& rhs); PdfDictionary& operator=(PdfDictionary&& rhs) noexcept; /** * Comparison operator. If this dictionary contains all the same keys * as the other dictionary, and for each key the values compare equal, * the dictionaries are considered equal. */ bool operator==(const PdfDictionary& rhs) const; /** * \see operator== */ bool operator!=(const PdfDictionary& rhs) const; /** Removes all keys from the dictionary */ void Clear(); /** Add a key to the dictionary. * If an existing key of this name exists, its value is replaced and * the old value object will be deleted. The given object is copied. * * This will set the dirty flag of this object. * \see IsDirty * * \param key the key is identified by this name in the dictionary * \param obj object containing the data. The object is copied. */ PdfObject& AddKey(const PdfName& key, const PdfObject& obj); PdfObject& AddKey(const PdfName& key, PdfObject&& obj); /** Add a key to the dictionary. * If an existing key of this name exists, its value is replaced and * the old value object will be deleted. The object must be indirect * and the object reference will be added instead to the dictionary * * This will set the dirty flag of this object. * \see IsDirty * * \param key the key is identified by this name in the dictionary * \param obj object containing the data * \throws PdfError::InvalidHandle on nullptr obj or if the object can't * be added as an indirect reference */ void AddKeyIndirect(const PdfName& key, const PdfObject& obj); /** Add a key to the dictionary. * If an existing key of this name exists, its value is replaced and * the old value object will be deleted. If the object is indirect * the object reference will be added instead to the dictionary, * otherwise the object is copied * * This will set the dirty flag of this object. * \see IsDirty * * \param key the key is identified by this name in the dictionary * \param obj a variant object containing the data * \throws PdfError::InvalidHandle on nullptr obj */ PdfObject& AddKeyIndirectSafe(const PdfName& key, const PdfObject& obj); /** Get the key's value out of the dictionary. * * The returned value is a pointer to the internal object in the dictionary * so it MUST not be deleted. * * \param key look for the key named key in the dictionary * * \returns pointer to the found value, or 0 if the key was not found. */ const PdfObject* GetKey(const std::string_view& key) const; /** Get the key's value out of the dictionary. This is an overloaded member * function. * * The returned value is a pointer to the internal object in the dictionary. * It may be modified but is still owned by the dictionary so it MUST not * be deleted. * * \param key look for the key named key in the dictionary * * \returns the found value, or 0 if the key was not found. */ PdfObject* GetKey(const std::string_view& key); /** Get the keys value out of the dictionary * * Lookup in the indirect objects as well, if the shallow object was a reference. * The returned value is a pointer to the internal object in the dictionary * so it MUST not be deleted. * * \param key look for the key names key in the dictionary * \returns pointer to the found value or 0 if the key was not found. */ const PdfObject* FindKey(const std::string_view& key) const; PdfObject* FindKey(const std::string_view& key); const PdfObject& MustFindKey(const std::string_view& key) const; PdfObject& MustFindKey(const std::string_view& key); /** Get the keys value out of the dictionary * * Lookup in the indirect objects as well, if the shallow object was a reference. * Also lookup the parent objects, if /Parent key is found in the dictionary. * The returned value is a pointer to the internal object in the dictionary * so it MUST not be deleted. * * \param key look for the key names key in the dictionary * \returns pointer to the found value or 0 if the key was not found. */ const PdfObject* FindKeyParent(const std::string_view& key) const; PdfObject* FindKeyParent(const std::string_view& key); const PdfObject& MustFindKeyParent(const std::string_view& key) const; PdfObject& MustFindKeyParent(const std::string_view& key); /** Get the key's value out of the dictionary. * * The returned value is a reference to the internal object in the dictionary * so it MUST not be deleted. If the key is not found, this throws a PdfError * exception with error code PdfErrorCode::NoObject, instead of returning. * This is intended to make code more readable by sparing (especially multiple) * nullptr checks. * * \param key look for the key named key in the dictionary * * \returns reference to the found value (never 0). * \throws PdfError(PdfErrorCode::NoObject). */ const PdfObject& MustGetKey(const std::string_view& key) const; PdfObject& MustGetKey(const std::string_view& key); template T GetKeyAs(const std::string_view& key, const std::common_type_t& defvalue = { }) const; template T FindKeyAs(const std::string_view& key, const std::common_type_t& defvalue = { }) const; template T FindKeyParentAs(const std::string_view& key, const std::common_type_t& defvalue = { }) const; template T FindKeyAsSafe(const std::string_view& key, const std::common_type_t& defvalue = { }) const; template T FindKeyParentAsSafe(const std::string_view& key, const std::common_type_t& defvalue = { }) const; template bool TryFindKeyAs(const std::string_view& key, T& value) const; template bool TryFindKeyParentAs(const std::string_view& key, T& value) const; /** Allows to check if a dictionary contains a certain key. * \param key look for the key named key.Name() in the dictionary * * \returns true if the key is part of the dictionary, otherwise false. */ bool HasKey(const std::string_view& key) const; /** Remove a key from this dictionary. If the key does not exist, this * function does nothing. * * \param key the name of the key to delete * * \returns true if the key was found in the object and was removed. * If there was no key with this name, false is returned. * * This will set the dirty flag of this object. * \see IsDirty */ bool RemoveKey(const std::string_view& key); void Write(OutputStream& stream, PdfWriteFlags writeMode, const PdfStatefulEncrypt& encrypt, charbuff& buffer) const override; /** * \returns the size of the internal map */ unsigned GetSize() const; PdfDictionaryIndirectIterable GetIndirectIterator(); PdfDictionaryConstIndirectIterable GetIndirectIterator() const; public: using iterator = PdfDictionaryMap::iterator; using const_iterator = PdfDictionaryMap::const_iterator; public: iterator begin(); iterator end(); const_iterator begin() const; const_iterator end() const; size_t size() const; protected: void ResetDirtyInternal() override; void setChildrenParent() override; private: std::pair AddKey(const PdfName& key, PdfObject&& obj, bool noDirtySet); private: PdfObject& addKey(const PdfName& key, PdfObject&& obj); PdfObject* getKey(const std::string_view& key) const; PdfObject* findKey(const std::string_view& key) const; PdfObject* findKeyParent(const std::string_view& key) const; private: PdfDictionaryMap m_Map; }; template T PdfDictionary::GetKeyAs(const std::string_view& key, const std::common_type_t& defvalue) const { auto obj = getKey(key); if (obj == nullptr) return defvalue; return Object::Get(*obj); } template T PdfDictionary::FindKeyAs(const std::string_view& key, const std::common_type_t& defvalue) const { auto obj = findKey(key); if (obj == nullptr) return defvalue; return Object::Get(*obj); } template T PdfDictionary::FindKeyParentAs(const std::string_view& key, const std::common_type_t& defvalue) const { auto obj = findKeyParent(key); T ret{ }; if (obj == nullptr) return defvalue; return Object::Get(*obj); } template T PdfDictionary::FindKeyAsSafe(const std::string_view& key, const std::common_type_t& defvalue) const { T value; auto obj = findKey(key); if (obj != nullptr && Object::TryGet(*obj, value)) return value; else return defvalue; } template T PdfDictionary::FindKeyParentAsSafe(const std::string_view& key, const std::common_type_t& defvalue) const { T value; auto obj = findKeyParent(key); if (obj != nullptr && Object::TryGet(*obj, value)) return value; else return defvalue; } template bool PdfDictionary::TryFindKeyAs(const std::string_view& key, T& value) const { auto obj = findKey(key); if (obj != nullptr && Object::TryGet(*obj, value)) { return true; } else { value = { }; return false; } } template bool PdfDictionary::TryFindKeyParentAs(const std::string_view& key, T& value) const { auto obj = findKeyParent(key); if (obj != nullptr && Object::TryGet(*obj, value)) { return true; } else { value = { }; return false; } } template PdfDictionaryIndirectIterableBase::PdfDictionaryIndirectIterableBase() : m_dict(nullptr) { } template PdfDictionaryIndirectIterableBase::PdfDictionaryIndirectIterableBase(PdfDictionary& dict) : PdfIndirectIterableBase(dict), m_dict(&dict) { } template typename PdfDictionaryIndirectIterableBase::iterator PdfDictionaryIndirectIterableBase::begin() const { if (m_dict == nullptr) return iterator(); else return iterator(m_dict->begin(), GetObjects()); } template typename PdfDictionaryIndirectIterableBase::iterator PdfDictionaryIndirectIterableBase::end() const { if (m_dict == nullptr) return iterator(); else return iterator(m_dict->end(), GetObjects()); } template PdfDictionaryIndirectIterableBase::iterator::iterator() : m_objects(nullptr) { } template PdfDictionaryIndirectIterableBase::iterator::iterator(TMapIterator&& iterator, PdfIndirectObjectList* objects) : m_iterator(std::move(iterator)), m_objects(objects) { } template bool PdfDictionaryIndirectIterableBase::iterator::operator==(const iterator& rhs) const { return m_iterator == rhs.m_iterator; } template bool PdfDictionaryIndirectIterableBase::iterator::operator!=(const iterator& rhs) const { return m_iterator != rhs.m_iterator; } template typename PdfDictionaryIndirectIterableBase::iterator& PdfDictionaryIndirectIterableBase::iterator::operator++() { m_iterator++; return *this; } template typename PdfDictionaryIndirectIterableBase::iterator::reference PdfDictionaryIndirectIterableBase::iterator::operator*() { resolve(); return m_pair; } template typename PdfDictionaryIndirectIterableBase::iterator::pointer PdfDictionaryIndirectIterableBase::iterator::operator->() { resolve(); return &m_pair; } template void PdfDictionaryIndirectIterableBase::iterator::resolve() { TObject& robj = m_iterator->second; TObject* indirectobj; PdfReference ref; if (m_objects != nullptr && robj.TryGetReference(ref) && ref.IsIndirect() && (indirectobj = GetObject(*m_objects, ref)) != nullptr) { m_pair = value_type(m_iterator->first, indirectobj); } else { m_pair = value_type(m_iterator->first, &robj); } } } #endif // PDF_DICTIONARY_H