�PNG  IHDR22?�� pHYs  �� OiCCPPhotoshop ICC profilexڝSgTS�=���BK���KoR RB���&*! J�!��Q�EEȠ�����Q, � ��!���������{�kּ������>���� �H3Q5� �B�������.@� $p�d!s�#�~<<+"��x� �M��0���B�\���t�8K�@z�B�@F���&S�`�cb�P-`'������{[�!�� e�Dh;��V�EX0fK�9�-0IWfH���� � 0Q��){`�##x��F�W<�+��*x��<�$9E�[-qWW.(�I+6aa�@.�y�2�4���������x����6��_-��"bb���ϫp@�t~��,/��;�m��%�h^ �u��f�@����W�p�~<�5�j>{�-�]c�K'Xt����o��(�h���w��?�G�%�fI�q^D$.Tʳ?�D��*�A��,���� �`6�B$��BB d�r`)��B(�Ͱ*`/�@4�Qh��p.�U�=p�a��(�� A�a!ڈb�X#����!�H�$ ɈQ"K�5H1R�T UH�=r9�\F��;�2����G1���Q=� �C��7�F� �dt1�����r�=�6��Ыhڏ>C�0��3�l0.��B�8, �c˱"� ���V����cϱw�E� 6wB aAHXLXN�H� $4� 7 �Q�'"��K�&���b21�XH,#��/{�C�7$�C2'��I��T��F�nR#�,��4H#���dk�9�, +ȅ����3��!�[ �b@q��S�(R�jJ��4�e�2AU��Rݨ�T5�ZB���R�Q��4u�9̓IK�����hh�i��t�ݕN��W���G���w ��Ljg(�gw��L�Ӌ�T071���oUX*�*|�� �J�&�*/T����ު U�U�T��^S}�FU3S� Ԗ�U��P�SSg�;���g�oT?�~Y��Y�L�OC�Q��_�� c�x,!k ��u�5�&���|v*�����=���9C3J3W�R�f?�q��tN �(���~���)�)�4L�1e\k����X�H�Q�G�6������E�Y��A�J'\'Gg����S�Sݧ �M=:��.�k���Dw�n��^��Lo��y���}/�T�m���G X� $� �<�5qo</���QC]�@C�a�a�ᄑ��<��F�F�i�\�$�m�mƣ&&!&KM�M�RM��)�;L;L���͢�֙5�=1�2��כ߷`ZxZ,����eI��Z�Yn�Z9Y�XUZ]�F���%ֻ�����N�N���gð�ɶ�����ۮ�m�}agbg�Ů��}�}��= ���Z~s�r:V:ޚΜ�?}����/gX���3��)�i�S��Ggg�s�󈋉K��.�>.���Ƚ�Jt�q]�z���������ۯ�6�i�ܟ�4�)�Y3s���C�Q��? ��0k߬~OCO�g��#/c/�W�װ��w��a�>�>r��>�<7�2�Y_�7��ȷ�O�o�_��C#�d�z����%g��A�[��z|!��?:�e����A���AA�������!h�쐭!��Α�i�P~���a�a��~ '���W�?�p�X�1�5w��Cs�D�D�Dޛg1O9�-J5*>�.j<�7�4�?�.fY��X�XIlK9.*�6nl������� �{�/�]py�����.,:�@L�N8��A*��%�w%� y��g"/�6ш�C\*N�H*Mz�쑼5y$�3�,幄'���L Lݛ:��v m2=:�1����qB�!M��g�g�fvˬe����n��/��k���Y- �B��TZ(�*�geWf�͉�9���+��̳�ې7�����ᒶ��KW-X潬j9�������(�x��oʿ�ܔ���Ĺd�f�f���-�[����n �ڴ �V����E�/��(ۻ��C���<��e����;?T�T�T�T6��ݵa��n��{��4���[���>ɾ�UUM�f�e�I���?�������m]�Nmq����#�׹���=TR��+�G�����w- 6 U����#pDy��� �� :�v�{���vg/jB��F�S��[b[�O�>����z�G��499�?r����C�d�&����ˮ/~�����јѡ�򗓿m|������������x31^�V���w�w��O�| (�h���SЧ��������c3-� cHRMz%������u0�`:�o�_�F5IDATx��ytUս�?�;���fN$$��@B�!�k��� -*�gE���j�O�kQ�ʠ`U�B_ �AÐ0%�Ȕ�@r3ޛ;߳��$�@��v����^�s����������$��ߢ !�W��5�̱'-٘������4�>�Rƫ$�G��0U�H}�_ _� #��k�MJ/=�9Du *ڲ�k�PQ;0��j|�*�$�^컂脛y���>�z×� B��� ��(�:$�ʔ_�6��C!B����MVx��a��ζyY����j��ƋY2�9�F�{r��r�딟F��Q��hY6��� x��[l��RC��������nt@��;P��3��� F�w��7��:�P���ɋ'���mj���Bƪ�$�Q�L��y��߷g��\���z����v5�p�v$�v櫻�`6~K �Y�X����,�:��"�o�e0II"(��,������l_�C���/4�+f�E�!q��:����u����c��樼.UE�@� �]K�W���$-�h]�JG���Dz)�`��.�A/ ���mᏣc�3jK� �!�>���$�Q�!�_�? \�C2(E �M$Z I{�U���s�ǣ���=��@Բe ޻��W�����@ �w����}�9v,)��.}*|"�s��di���,���G�]W�AC�������|<����[��ߕ������K�*�G nߴ!��‹��J�!��6(L�a)��Am��������;adf��:�xm��nh�;֦I��(���o�C~ډa?�=��s����h��E������xp����)���_���t��W�����´;8���`dz=(��@@�+,�;�`�fhl��XȌ�3,uI�~z(J����� �ZX�A����H'�À�㜦�82|��a�n�z2��I���� ���EY�h�ε<�0�q�{��C��v�˅��?"@��χ�x�WS+��N�~�KQ�J�8ل�� _.W��� !TU{�����,��"�� �;�������HI S� ��))�o�1�H�D� ���� (� ;����"Ҕ��,���� �F=���O��&�Ph>�`���y��߲ &S��P�<��'��1s�1cĂ�N����2)����@�u��tv��<�+�-&�����h��[!FSG���' � z z0��<����8d&�����E0�,��<��"!P�b4��� �{S�����X����.�囤���T��hEF��X�q0"-<����h���]�Py*����F⩍��@v�˂�Y08�� .q��a��s����(!<̫1�3�L�H��7sYW�`��qtu�\7��?�@�Y�� %Ka�x�GZ�*W�P��y�����N0r9��Z�c�%���q,��k�����!!,��>���IB��� �x1�Xu�Y���v-���ֺ��N������JP��a�2`�e5��w��u;�6�i���̃��(K���ťa��(l51��JL��O'%���]���ٖ뿉!��{*�p+f ���i8��D�ȑ���ܩ�M��V��ӟz��x�7Z�1i}�^͜���6e����x��)u�d�ˏ�V�eG�\�X1�����=n�U'�~Y����L�\,�(d!x ,�:�TW8� M`r���@��r+v�Q0��>^;˴�VbF��('����� �*O��i��j�Ӆ����^�S3&� ���{������.ی�� N;��NU%d0�Ce\r"�C�b��&t7N�7��� �ȪD�[%l�۪�$��'m?�A9tI�9>��NVL ��� 6v~M�����ъ�B���0����9$&=ώm��W�0���L���&��E���f�f��'+�9��hv��7,���M��6�D�&�^� �����8 D֮�����o��k^z��O��hP�8q�5d*��YVq3�{��������#LX4�?��jP=3�~�؅c�ݰ�̱�ұ��8̲��2�G�����j��έ�9��w7���U�X�w�85C��?!I&���o&����L���I#�^�eV�,�^t5�k� �xs˛\��U�8��."���{���ǵ�l4��ݼ�;��r"���G�/~���gJV�N糦��ZZ^k+NN�D��I$�=OE�z����|*�*{��%k���G��>�`9��b;�s���8,�qs��c��.b��q�%�>r��n�R�Ƨ�%�,�A��le#�8���}; 21�0�b�&�QX�f���q�00����$>�h�N�'�a3��A���/�r ��L5�8�GԲ'�����w;��c#�q1���h$*��V^�k��QĽ�b:i������� ����H F#�_���,��]g����Ը����`RUU���� ��"�qD���>-��ϤI�~��3�̴�����NZ[[555�eeek7�m����YF#[��Đ��R��i��L�H�r ��@��J-�Pŝ��_|�-��6y��ks�V�U~��6���w.����(��0A� 4��f��� /���C�xŊ�ٳ����z=6�����rg���mKo��o�/����a�g���?'9%9��P��斓��~���L{�� �H��{AW��B��$����v�1b�&Mb�ر��ر#�0`�`xMBp! )Z�Nmo�mZ�g�}�eذaWTVV ���'99��C5��&�&+5�bT>|8��PUUETT����&���t��~TE%��'������b�tEGG;RSS�S�N�v��ѯ��t����u1@�ޚ"f��͈���r'L�Ph��m��ƌ�74o��`�x�q�P���NRSS�X,�����l&&&��MFFA!-��`��ҷ�n��Yuu�����x<I�LB%����KԒ50�!�3�bz�����ʸKL���;---�l6[��`��������Ȏ;�����egg4��!D�T��jWujyZ��������K����%����p�^���X,6��sV=�ܖ����6�3�X ���4ҿ��A2�&����_k�;d�� �VfOIEND�B`� 0x0x
PHP 8.1.31
Preview: _markupbase.py Size: 14.26 KB
//lib/python3.8/_markupbase.py
"""Shared support for scanning document type declarations in HTML and XHTML.

This module is used as a foundation for the html.parser module.  It has no
documented public API and should not be used directly.

"""

import re

_declname_match = re.compile(r'[a-zA-Z][-_.a-zA-Z0-9]*\s*').match
_declstringlit_match = re.compile(r'(\'[^\']*\'|"[^"]*")\s*').match
_commentclose = re.compile(r'--\s*>')
_markedsectionclose = re.compile(r']\s*]\s*>')

# An analysis of the MS-Word extensions is available at
# http://www.planetpublish.com/xmlarena/xap/Thursday/WordtoXML.pdf

_msmarkedsectionclose = re.compile(r']\s*>')

del re


class ParserBase:
    """Parser base class which provides some common support methods used
    by the SGML/HTML and XHTML parsers."""

    def __init__(self):
        if self.__class__ is ParserBase:
            raise RuntimeError(
                "_markupbase.ParserBase must be subclassed")

    def error(self, message):
        raise NotImplementedError(
            "subclasses of ParserBase must override error()")

    def reset(self):
        self.lineno = 1
        self.offset = 0

    def getpos(self):
        """Return current line number and offset."""
        return self.lineno, self.offset

    # Internal -- update line number and offset.  This should be
    # called for each piece of data exactly once, in order -- in other
    # words the concatenation of all the input strings to this
    # function should be exactly the entire input.
    def updatepos(self, i, j):
        if i >= j:
            return j
        rawdata = self.rawdata
        nlines = rawdata.count("\n", i, j)
        if nlines:
            self.lineno = self.lineno + nlines
            pos = rawdata.rindex("\n", i, j) # Should not fail
            self.offset = j-(pos+1)
        else:
            self.offset = self.offset + j-i
        return j

    _decl_otherchars = ''

    # Internal -- parse declaration (for use by subclasses).
    def parse_declaration(self, i):
        # This is some sort of declaration; in "HTML as
        # deployed," this should only be the document type
        # declaration ("<!DOCTYPE html...>").
        # ISO 8879:1986, however, has more complex
        # declaration syntax for elements in <!...>, including:
        # --comment--
        # [marked section]
        # name in the following list: ENTITY, DOCTYPE, ELEMENT,
        # ATTLIST, NOTATION, SHORTREF, USEMAP,
        # LINKTYPE, LINK, IDLINK, USELINK, SYSTEM
        rawdata = self.rawdata
        j = i + 2
        assert rawdata[i:j] == "<!", "unexpected call to parse_declaration"
        if rawdata[j:j+1] == ">":
            # the empty comment <!>
            return j + 1
        if rawdata[j:j+1] in ("-", ""):
            # Start of comment followed by buffer boundary,
            # or just a buffer boundary.
            return -1
        # A simple, practical version could look like: ((name|stringlit) S*) + '>'
        n = len(rawdata)
        if rawdata[j:j+2] == '--': #comment
            # Locate --.*-- as the body of the comment
            return self.parse_comment(i)
        elif rawdata[j] == '[': #marked section
            # Locate [statusWord [...arbitrary SGML...]] as the body of the marked section
            # Where statusWord is one of TEMP, CDATA, IGNORE, INCLUDE, RCDATA
            # Note that this is extended by Microsoft Office "Save as Web" function
            # to include [if...] and [endif].
            return self.parse_marked_section(i)
        else: #all other declaration elements
            decltype, j = self._scan_name(j, i)
        if j < 0:
            return j
        if decltype == "doctype":
            self._decl_otherchars = ''
        while j < n:
            c = rawdata[j]
            if c == ">":
                # end of declaration syntax
                data = rawdata[i+2:j]
                if decltype == "doctype":
                    self.handle_decl(data)
                else:
                    # According to the HTML5 specs sections "8.2.4.44 Bogus
                    # comment state" and "8.2.4.45 Markup declaration open
                    # state", a comment token should be emitted.
                    # Calling unknown_decl provides more flexibility though.
                    self.unknown_decl(data)
                return j + 1
            if c in "\"'":
                m = _declstringlit_match(rawdata, j)
                if not m:
                    return -1 # incomplete
                j = m.end()
            elif c in "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ":
                name, j = self._scan_name(j, i)
            elif c in self._decl_otherchars:
                j = j + 1
            elif c == "[":
                # this could be handled in a separate doctype parser
                if decltype == "doctype":
                    j = self._parse_doctype_subset(j + 1, i)
                elif decltype in {"attlist", "linktype", "link", "element"}:
                    # must tolerate []'d groups in a content model in an element declaration
                    # also in data attribute specifications of attlist declaration
                    # also link type declaration subsets in linktype declarations
                    # also link attribute specification lists in link declarations
                    self.error("unsupported '[' char in %s declaration" % decltype)
                else:
                    self.error("unexpected '[' char in declaration")
            else:
                self.error(
                    "unexpected %r char in declaration" % rawdata[j])
            if j < 0:
                return j
        return -1 # incomplete

    # Internal -- parse a marked section
    # Override this to handle MS-word extension syntax <![if word]>content<![endif]>
    def parse_marked_section(self, i, report=1):
        rawdata= self.rawdata
        assert rawdata[i:i+3] == '<![', "unexpected call to parse_marked_section()"
        sectName, j = self._scan_name( i+3, i )
        if j < 0:
            return j
        if sectName in {"temp", "cdata", "ignore", "include", "rcdata"}:
            # look for standard ]]> ending
            match= _markedsectionclose.search(rawdata, i+3)
        elif sectName in {"if", "else", "endif"}:
            # look for MS Office ]> ending
            match= _msmarkedsectionclose.search(rawdata, i+3)
        else:
            self.error('unknown status keyword %r in marked section' % rawdata[i+3:j])
        if not match:
            return -1
        if report:
            j = match.start(0)
            self.unknown_decl(rawdata[i+3: j])
        return match.end(0)

    # Internal -- parse comment, return length or -1 if not terminated
    def parse_comment(self, i, report=1):
        rawdata = self.rawdata
        if rawdata[i:i+4] != '<!--':
            self.error('unexpected call to parse_comment()')
        match = _commentclose.search(rawdata, i+4)
        if not match:
            return -1
        if report:
            j = match.start(0)
            self.handle_comment(rawdata[i+4: j])
        return match.end(0)

    # Internal -- scan past the internal subset in a <!DOCTYPE declaration,
    # returning the index just past any whitespace following the trailing ']'.
    def _parse_doctype_subset(self, i, declstartpos):
        rawdata = self.rawdata
        n = len(rawdata)
        j = i
        while j < n:
            c = rawdata[j]
            if c == "<":
                s = rawdata[j:j+2]
                if s == "<":
                    # end of buffer; incomplete
                    return -1
                if s != "<!":
                    self.updatepos(declstartpos, j + 1)
                    self.error("unexpected char in internal subset (in %r)" % s)
                if (j + 2) == n:
                    # end of buffer; incomplete
                    return -1
                if (j + 4) > n:
                    # end of buffer; incomplete
                    return -1
                if rawdata[j:j+4] == "<!--":
                    j = self.parse_comment(j, report=0)
                    if j < 0:
                        return j
                    continue
                name, j = self._scan_name(j + 2, declstartpos)
                if j == -1:
                    return -1
                if name not in {"attlist", "element", "entity", "notation"}:
                    self.updatepos(declstartpos, j + 2)
                    self.error(
                        "unknown declaration %r in internal subset" % name)
                # handle the individual names
                meth = getattr(self, "_parse_doctype_" + name)
                j = meth(j, declstartpos)
                if j < 0:
                    return j
            elif c == "%":
                # parameter entity reference
                if (j + 1) == n:
                    # end of buffer; incomplete
                    return -1
                s, j = self._scan_name(j + 1, declstartpos)
                if j < 0:
                    return j
                if rawdata[j] == ";":
                    j = j + 1
            elif c == "]":
                j = j + 1
                while j < n and rawdata[j].isspace():
                    j = j + 1
                if j < n:
                    if rawdata[j] == ">":
                        return j
                    self.updatepos(declstartpos, j)
                    self.error("unexpected char after internal subset")
                else:
                    return -1
            elif c.isspace():
                j = j + 1
            else:
                self.updatepos(declstartpos, j)
                self.error("unexpected char %r in internal subset" % c)
        # end of buffer reached
        return -1

    # Internal -- scan past <!ELEMENT declarations
    def _parse_doctype_element(self, i, declstartpos):
        name, j = self._scan_name(i, declstartpos)
        if j == -1:
            return -1
        # style content model; just skip until '>'
        rawdata = self.rawdata
        if '>' in rawdata[j:]:
            return rawdata.find(">", j) + 1
        return -1

    # Internal -- scan past <!ATTLIST declarations
    def _parse_doctype_attlist(self, i, declstartpos):
        rawdata = self.rawdata
        name, j = self._scan_name(i, declstartpos)
        c = rawdata[j:j+1]
        if c == "":
            return -1
        if c == ">":
            return j + 1
        while 1:
            # scan a series of attribute descriptions; simplified:
            #   name type [value] [#constraint]
            name, j = self._scan_name(j, declstartpos)
            if j < 0:
                return j
            c = rawdata[j:j+1]
            if c == "":
                return -1
            if c == "(":
                # an enumerated type; look for ')'
                if ")" in rawdata[j:]:
                    j = rawdata.find(")", j) + 1
                else:
                    return -1
                while rawdata[j:j+1].isspace():
                    j = j + 1
                if not rawdata[j:]:
                    # end of buffer, incomplete
                    return -1
            else:
                name, j = self._scan_name(j, declstartpos)
            c = rawdata[j:j+1]
            if not c:
                return -1
            if c in "'\"":
                m = _declstringlit_match(rawdata, j)
                if m:
                    j = m.end()
                else:
                    return -1
                c = rawdata[j:j+1]
                if not c:
                    return -1
            if c == "#":
                if rawdata[j:] == "#":
                    # end of buffer
                    return -1
                name, j = self._scan_name(j + 1, declstartpos)
                if j < 0:
                    return j
                c = rawdata[j:j+1]
                if not c:
                    return -1
            if c == '>':
                # all done
                return j + 1

    # Internal -- scan past <!NOTATION declarations
    def _parse_doctype_notation(self, i, declstartpos):
        name, j = self._scan_name(i, declstartpos)
        if j < 0:
            return j
        rawdata = self.rawdata
        while 1:
            c = rawdata[j:j+1]
            if not c:
                # end of buffer; incomplete
                return -1
            if c == '>':
                return j + 1
            if c in "'\"":
                m = _declstringlit_match(rawdata, j)
                if not m:
                    return -1
                j = m.end()
            else:
                name, j = self._scan_name(j, declstartpos)
                if j < 0:
                    return j

    # Internal -- scan past <!ENTITY declarations
    def _parse_doctype_entity(self, i, declstartpos):
        rawdata = self.rawdata
        if rawdata[i:i+1] == "%":
            j = i + 1
            while 1:
                c = rawdata[j:j+1]
                if not c:
                    return -1
                if c.isspace():
                    j = j + 1
                else:
                    break
        else:
            j = i
        name, j = self._scan_name(j, declstartpos)
        if j < 0:
            return j
        while 1:
            c = self.rawdata[j:j+1]
            if not c:
                return -1
            if c in "'\"":
                m = _declstringlit_match(rawdata, j)
                if m:
                    j = m.end()
                else:
                    return -1    # incomplete
            elif c == ">":
                return j + 1
            else:
                name, j = self._scan_name(j, declstartpos)
                if j < 0:
                    return j

    # Internal -- scan a name token and the new position and the token, or
    # return -1 if we've reached the end of the buffer.
    def _scan_name(self, i, declstartpos):
        rawdata = self.rawdata
        n = len(rawdata)
        if i == n:
            return None, -1
        m = _declname_match(rawdata, i)
        if m:
            s = m.group()
            name = s.strip()
            if (i + len(s)) == n:
                return None, -1  # end of buffer
            return name.lower(), m.end()
        else:
            self.updatepos(declstartpos, i)
            self.error("expected name token at %r"
                       % rawdata[declstartpos:declstartpos+20])

    # To be overridden -- handlers for unknown objects
    def unknown_decl(self, data):
        pass

Directory Contents

Dirs: 28 × Files: 175
Name Size Perms Modified Actions
asyncio DIR
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
- drwxr-xr-x 2026-02-20 12:29:32
Edit Download
ctypes DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
curses DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
dbm DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
distutils DIR
- drwxr-xr-x 2025-04-09 10:37:49
Edit Download
email DIR
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
encodings DIR
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
html DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
http DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
importlib DIR
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
json DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
lib2to3 DIR
- drwxr-xr-x 2022-07-11 21:40:36
Edit Download
logging DIR
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
sqlite3 DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
test DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
unittest DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
urllib DIR
- drwxr-xr-x 2025-04-09 10:37:50
Edit Download
venv DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
wsgiref DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
xml DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
xmlrpc DIR
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
- drwxr-xr-x 2025-04-09 10:37:51
Edit Download
4.38 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
32.04 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
477 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
94.05 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
18.78 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
11.06 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
19.62 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
19.90 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
31.30 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
13.63 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
2.16 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
12.26 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
24.25 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
33.14 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
11.81 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.31 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
14.51 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
10.37 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
35.81 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.18 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
3.97 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
13.36 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
53.10 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
24.41 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
129 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
8.46 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.97 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.83 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
3.53 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
15.77 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
48.80 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
86.22 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
320 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
82.09 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
20.09 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
102.09 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
2.75 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
37.24 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
9.60 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
14.36 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
3.98 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
14.79 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
23.76 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
34.31 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
36.53 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
4.86 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
7.31 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.85 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
26.92 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.56 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
20.91 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
9.50 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
22.34 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.47 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
52.35 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
3.72 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
10.29 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
115.77 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
3.46 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
74.55 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
945 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
13.60 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.21 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
76.36 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
12.68 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
76.82 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
8.85 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
21.16 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
23.86 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.44 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
42.25 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
27.08 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
2.82 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
10.00 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.67 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
10.46 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
58.95 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
38.08 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
51.38 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
61.27 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
62.96 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
91.29 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
8.71 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
20.96 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
39.48 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
31.46 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
14.72 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
15.26 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
20.98 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
22.98 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
26.70 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
4.69 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
14.90 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
104.36 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
7.96 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
11.09 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
7.08 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
28.13 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
15.49 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.14 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.93 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
11.77 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.29 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
1.99 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
18.13 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
8.33 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
13.01 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
50.27 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
2.22 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
21.81 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
155 B lrw-r--r-- 2020-03-13 10:14:16
Edit Download
33.90 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
43.75 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
6.93 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
34.42 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
26.66 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
26.07 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.99 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
39.29 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
51.14 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.36 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
38.76 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
10.29 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
12.61 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
257 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
75.52 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
17.94 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
2.06 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
7.83 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
24.45 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
11.14 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
93.22 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
22.71 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
32.15 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
18.95 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
1003 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
49.63 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
13.16 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
2.31 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
25.24 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
29.16 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
23.06 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
16.68 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
879 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
140.35 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
9.49 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
67.35 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.79 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
29.75 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
19.23 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
17.80 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
20.89 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
23.52 KB lrwxr-xr-x 2025-03-18 20:04:55
Edit Download
5.77 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
7.36 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
86.40 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
30.04 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
1.76 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
25.49 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
8.54 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.21 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.89 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
14.26 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
21.26 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
223.31 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
90.99 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
6.04 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
3.04 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
24.68 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
25.23 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
25.23 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
7.05 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.60 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
5.03 KB lrw-r--r-- 2025-03-18 20:04:55
Edit Download
64 B lrw-r--r-- 2025-03-18 20:04:55
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 0xNothings — Secure File Manager. All rights reserved. Built with ❤️ & Tailwind x Dark UI
Upload
Kotlin Archives - Weelorum https://weelorum.com/technology/kotlin/ Full Cycle Mobile App Development Services For Startups Sun, 01 Mar 2026 20:04:38 +0000 en-US hourly 1 https://wordpress.org/?v=7.0 PayFlow https://weelorum.com/portfolio-projects/payflow/ Sun, 01 Mar 2026 20:04:38 +0000 https://weelorum.com/success-stories/payflow/ PayFlow is a fintech application that simplifies international money transfers and currency exchange. Users can hold multiple currencies, send money globally with competitive rates, and receive instant notifications. The app features biometric authentication and real-time transaction tracking.

Сообщение PayFlow появились сначала на Weelorum.

]]>
PayFlow is a fintech application that simplifies international money transfers and currency exchange. Users can hold multiple currencies, send money globally with competitive rates, and receive instant notifications. The app features biometric authentication and real-time transaction tracking.

Сообщение PayFlow появились сначала на Weelorum.

]]>
Knock Knock https://weelorum.com/portfolio-projects/knock-knock/ Sun, 01 Mar 2026 20:04:37 +0000 https://weelorum.com/success-stories/knock-knock/ Knock Knock is a real-time restaurant discovery app. It shows users what’s happening inside venues, how crowded they are, and offers live previews via photos and video. The app uses geolocation to help people choose where to eat or socialize based on current ambiance.

Сообщение Knock Knock появились сначала на Weelorum.

]]>
Knock Knock is a real-time restaurant discovery app. It shows users what’s happening inside venues, how crowded they are, and offers live previews via photos and video. The app uses geolocation to help people choose where to eat or socialize based on current ambiance.

Сообщение Knock Knock появились сначала на Weelorum.

]]>