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
//======================================================================== // // StructElement.h // // This file is licensed under the GPLv2 or later // // Copyright 2013, 2014 Igalia S.L. // Copyright 2014 Luigi Scarso // Copyright 2014, 2018, 2019, 2021, 2023-2025 Albert Astals Cid // Copyright 2018 Adam Reichold // Copyright 2021, 2023 Adrian Johnson // Copyright 2025 g10 Code GmbH, Author: Sune Stolborg Vuorela // //======================================================================== #ifndef STRUCTELEMENT_H #define STRUCTELEMENT_H #include "goo/GooString.h" #include "MarkedContentOutputDev.h" #include "Object.h" #include "poppler_private_export.h" #include class GooString; class Dict; class StructElement; class StructTreeRoot; class POPPLER_PRIVATE_EXPORT Attribute { public: enum Type { Unknown = 0, // Uninitialized, parsing error, etc. UserProperty, // User defined attribute (i.e. non-standard) // Common standard attributes Placement, WritingMode, BackgroundColor, BorderColor, BorderStyle, BorderThickness, Color, Padding, // Block element standard attributes SpaceBefore, SpaceAfter, StartIndent, EndIndent, TextIndent, TextAlign, BBox, Width, Height, BlockAlign, InlineAlign, TBorderStyle, TPadding, // Inline element standard attributes BaselineShift, LineHeight, TextDecorationColor, TextDecorationThickness, TextDecorationType, RubyAlign, RubyPosition, GlyphOrientationVertical, // Column-only standard attributes ColumnCount, ColumnGap, ColumnWidths, // List-only standard attributes ListNumbering, // PrintField-only standard attributes Role, checked, Desc, // Table-only standard attributes RowSpan, ColSpan, Headers, Scope, Summary, }; enum Owner { UnknownOwner = 0, // User-defined attributes UserProperties, // Standard attributes Layout, List, PrintField, Table, // Translation to other formats XML_1_00, HTML_3_20, HTML_4_01, OEB_1_00, RTF_1_05, CSS_1_00, CSS_2_00, }; // Creates a standard attribute. The name is predefined, and the // value is type-checked to conform to the PDF specification. Attribute(Type type, Object *value); // Creates an UserProperty attribute, with an arbitrary name and value. Attribute(GooString &&name, Object *value); bool isOk() const { return type != Unknown; } // Name, type and value can be set only on construction. Type getType() const { return type; } Owner getOwner() const { return owner; } const char *getTypeName() const; const char *getOwnerName() const; const Object *getValue() const { return &value; } static Object *getDefaultValue(Type type); const char *getName() const { return (type == UserProperty ? name.c_str() : getTypeName()); } // The revision is optional, and defaults to zero. unsigned int getRevision() const { return revision; } void setRevision(unsigned int revisionA) { revision = revisionA; } // Hidden elements should not be displayed by the user agent bool isHidden() const { return hidden; } void setHidden(bool hiddenA) { hidden = hiddenA; } // The formatted value may be in the PDF, or be left undefined (nullptr). // In the later case the user agent should provide a default representation. const char *getFormattedValue() const { return formatted ? formatted->c_str() : nullptr; } void setFormattedValue(const GooString *formattedA); ~Attribute(); private: Type type; Owner owner; unsigned int revision; GooString name; Object value; bool hidden; std::unique_ptr formatted; bool checkType(StructElement *element = nullptr); static Type getTypeForName(const char *name, StructElement *element = nullptr); static Attribute *parseUserProperty(Dict *property); friend class StructElement; }; class POPPLER_PRIVATE_EXPORT StructElement { public: enum Type { Unknown = 0, MCID, // MCID reference, used internally OBJR, // Object reference, used internally Document, Part, Art, Sect, Div, // Structural elements Span, Quote, Note, Reference, BibEntry, // Inline elements Code, Link, Annot, BlockQuote, Caption, NonStruct, TOC, TOCI, Index, Private, P, H, H1, H2, H3, H4, H5, H6, // Paragraph-like L, LI, Lbl, LBody, // List elements Table, TR, TH, TD, THead, TFoot, TBody, // Table elements Ruby, RB, RT, RP, // Ruby text elements Warichu, WT, WP, Figure, Formula, Form, // Illustration-like elements }; static const Ref InvalidRef; const char *getTypeName() const; Type getType() const { return type; } bool isOk() const { return type != Unknown; } bool isBlock() const; bool isInline() const; bool isGrouping() const; bool isContent() const { return (type == MCID) || isObjectRef(); } bool isObjectRef() const { return (type == OBJR && c->ref != Ref::INVALID()); } int getMCID() const { return c->mcid; } Ref getObjectRef() const { return c->ref; } Ref getParentRef() const { return isContent() ? parent->getParentRef() : s->parentRef; } StructElement *getParent() const { return parent; } // returns NULL if parent is StructTreeRoot bool hasPageRef() const; bool getPageRef(Ref &ref) const; bool hasStmRef() const { return stmRef.isRef(); } bool getStmRef(Ref &ref) const; StructTreeRoot *getStructTreeRoot() { return treeRoot; } // Optional element identifier. const GooString *getID() const { return isContent() ? nullptr : s->id.get(); } // Optional ISO language name, e.g. en_US GooString *getLanguage() { if (!isContent() && s->language) { return s->language.get(); } return parent ? parent->getLanguage() : nullptr; } const GooString *getLanguage() const { if (!isContent() && s->language) { return s->language.get(); } return parent ? parent->getLanguage() : nullptr; } // Optional revision number, defaults to zero. unsigned int getRevision() const { return isContent() ? 0 : s->revision; } void setRevision(unsigned int revision) const { if (isContent()) { s->revision = revision; } } // Optional element title, in human-readable form. const GooString *getTitle() const { return isContent() ? nullptr : s->title.get(); } // Optional element expanded abbreviation text. const GooString *getExpandedAbbr() const { return isContent() ? nullptr : s->expandedAbbr.get(); } unsigned getNumChildren() const { return isContent() ? 0 : s->elements.size(); } const StructElement *getChild(int i) const { return isContent() ? nullptr : s->elements.at(i); } void appendChild(StructElement *element) const { if (!isContent() && element && element->isOk()) { s->elements.push_back(element); } } unsigned getNumAttributes() const { return isContent() ? 0 : s->attributes.size(); } const Attribute *getAttribute(int i) const { return isContent() ? nullptr : s->attributes.at(i); } Attribute *getNonConstAttribute(int i) const { return isContent() ? nullptr : s->attributes.at(i); } void appendAttribute(Attribute *attribute) const { if (!isContent() && attribute) { s->attributes.push_back(attribute); } } const Attribute *findAttribute(Attribute::Type attributeType, bool inherit = false, Attribute::Owner owner = Attribute::UnknownOwner) const; const GooString *getAltText() const { return isContent() ? nullptr : s->altText.get(); } const GooString *getActualText() const { return isContent() ? nullptr : s->actualText.get(); } // Content text referenced by the element: // // - For MCID reference elements, this is just the text of the // corresponding marked content object in the page stream, regardless // of the setting of the "recursive" flag. // - For other elements, if the "recursive" flag is set, the text // enclosed by *all* the child MCID reference elements of the subtree // is returned. The text is assembled by traversing the leaf MCID // reference elements in logical order. // - In any other case, the function returns nullptr. // // A new string is returned, and the ownership passed to the caller. // GooString *getText(bool recursive = true) const { return appendSubTreeText(nullptr, recursive); } TextSpanArray getTextSpans() const { if (!isContent()) { return TextSpanArray(); } MarkedContentOutputDev mcdev(getMCID(), stmRef); return getTextSpansInternal(mcdev); } ~StructElement(); private: GooString *appendSubTreeText(GooString *string, bool recursive) const; const TextSpanArray &getTextSpansInternal(MarkedContentOutputDev &mcdev) const; using AttrPtrArray = std::vector; using ElemPtrArray = std::vector; struct StructData { Ref parentRef; std::unique_ptr altText; std::unique_ptr actualText; std::unique_ptr id; std::unique_ptr title; std::unique_ptr expandedAbbr; std::unique_ptr language; unsigned int revision = 0; ElemPtrArray elements; AttrPtrArray attributes; StructData(); ~StructData(); StructData(const StructData &) = delete; StructData &operator=(const StructData &) = delete; }; // Data in content elements (MCID, MCR) struct ContentData { union { int mcid; Ref ref; }; explicit ContentData(int mcidA) : mcid(mcidA) { } explicit ContentData(const Ref r) { ref = r; } }; // Common data Type type; StructTreeRoot *treeRoot; StructElement *parent; mutable Object pageRef; Object stmRef; union { StructData *s; ContentData *c; }; StructElement(Dict *elementDict, StructTreeRoot *treeRootA, StructElement *parentA, RefRecursionChecker &seen); StructElement(int mcid, StructTreeRoot *treeRootA, StructElement *parentA); StructElement(Ref ref, StructTreeRoot *treeRootA, StructElement *parentA); void parse(Dict *elementDict); StructElement *parseChild(const Object *ref, Object *childObj, RefRecursionChecker &seen); void parseChildren(Dict *element, RefRecursionChecker &seen); void parseAttributes(Dict *attributes, bool keepExisting = false); friend class StructTreeRoot; }; #endif