✘✘ GRAYBYTE WORDPRESS FILE MANAGER ✘✘

​🇳​​🇦​​🇲​​🇪♯➤ server.blackpussy.asia ​🇻​♯➤ 5.14.0-611.20.1.el9_7.x86_64 #1 SMP 🇾​♯➤ 2026

𝗛𝗢𝗠𝗘 𝗜𝗗 ♯➤ 163.245.207.76 ♯➤ 𝗔𝗗𝗠𝗜𝗡 𝗜𝗗 216.73.216.243
𝗢𝗣𝗧𝗜𝗢𝗡𝗦 ♯ CRL ♯➤ 𝗢𝗞 ┃ WGT ♯➤ 𝗢𝗞 ┃ SDO ♯➤ 𝗢𝗞 ┃ PKEX ♯➤ 𝗢𝗙𝗙
𝗗𝗘𝗔𝗖𝗧𝗜𝗩𝗔𝗧𝗘𝗗 ♯➤ mail,mb_send_mail
𝗖𝗨𝗥𝗥𝗘𝗡𝗧 𝗙𝗜𝗟𝗘 : /usr/lib64/python3.9/encodings//punycode.py
""" Codec for the Punicode encoding, as specified in RFC 3492

Written by Martin v. Löwis.
"""

import codecs

##################### Encoding #####################################

def segregate(str):
    """3.1 Basic code point segregation"""
    base = bytearray()
    extended = set()
    for c in str:
        if ord(c) < 128:
            base.append(ord(c))
        else:
            extended.add(c)
    extended = sorted(extended)
    return bytes(base), extended

def selective_len(str, max):
    """Return the length of str, considering only characters below max."""
    res = 0
    for c in str:
        if ord(c) < max:
            res += 1
    return res

def selective_find(str, char, index, pos):
    """Return a pair (index, pos), indicating the next occurrence of
    char in str. index is the position of the character considering
    only ordinals up to and including char, and pos is the position in
    the full string. index/pos is the starting position in the full
    string."""

    l = len(str)
    while 1:
        pos += 1
        if pos == l:
            return (-1, -1)
        c = str[pos]
        if c == char:
            return index+1, pos
        elif c < char:
            index += 1

def insertion_unsort(str, extended):
    """3.2 Insertion unsort coding"""
    oldchar = 0x80
    result = []
    oldindex = -1
    for c in extended:
        index = pos = -1
        char = ord(c)
        curlen = selective_len(str, char)
        delta = (curlen+1) * (char - oldchar)
        while 1:
            index,pos = selective_find(str,c,index,pos)
            if index == -1:
                break
            delta += index - oldindex
            result.append(delta-1)
            oldindex = index
            delta = 0
        oldchar = char

    return result

def T(j, bias):
    # Punycode parameters: tmin = 1, tmax = 26, base = 36
    res = 36 * (j + 1) - bias
    if res < 1: return 1
    if res > 26: return 26
    return res

digits = b"abcdefghijklmnopqrstuvwxyz0123456789"
def generate_generalized_integer(N, bias):
    """3.3 Generalized variable-length integers"""
    result = bytearray()
    j = 0
    while 1:
        t = T(j, bias)
        if N < t:
            result.append(digits[N])
            return bytes(result)
        result.append(digits[t + ((N - t) % (36 - t))])
        N = (N - t) // (36 - t)
        j += 1

def adapt(delta, first, numchars):
    if first:
        delta //= 700
    else:
        delta //= 2
    delta += delta // numchars
    # ((base - tmin) * tmax) // 2 == 455
    divisions = 0
    while delta > 455:
        delta = delta // 35 # base - tmin
        divisions += 36
    bias = divisions + (36 * delta // (delta + 38))
    return bias


def generate_integers(baselen, deltas):
    """3.4 Bias adaptation"""
    # Punycode parameters: initial bias = 72, damp = 700, skew = 38
    result = bytearray()
    bias = 72
    for points, delta in enumerate(deltas):
        s = generate_generalized_integer(delta, bias)
        result.extend(s)
        bias = adapt(delta, points==0, baselen+points+1)
    return bytes(result)

def punycode_encode(text):
    base, extended = segregate(text)
    deltas = insertion_unsort(text, extended)
    extended = generate_integers(len(base), deltas)
    if base:
        return base + b"-" + extended
    return extended

##################### Decoding #####################################

def decode_generalized_number(extended, extpos, bias, errors):
    """3.3 Generalized variable-length integers"""
    result = 0
    w = 1
    j = 0
    while 1:
        try:
            char = ord(extended[extpos])
        except IndexError:
            if errors == "strict":
                raise UnicodeError("incomplete punicode string")
            return extpos + 1, None
        extpos += 1
        if 0x41 <= char <= 0x5A: # A-Z
            digit = char - 0x41
        elif 0x30 <= char <= 0x39:
            digit = char - 22 # 0x30-26
        elif errors == "strict":
            raise UnicodeError("Invalid extended code point '%s'"
                               % extended[extpos-1])
        else:
            return extpos, None
        t = T(j, bias)
        result += digit * w
        if digit < t:
            return extpos, result
        w = w * (36 - t)
        j += 1


def insertion_sort(base, extended, errors):
    """3.2 Insertion unsort coding"""
    char = 0x80
    pos = -1
    bias = 72
    extpos = 0
    while extpos < len(extended):
        newpos, delta = decode_generalized_number(extended, extpos,
                                                  bias, errors)
        if delta is None:
            # There was an error in decoding. We can't continue because
            # synchronization is lost.
            return base
        pos += delta+1
        char += pos // (len(base) + 1)
        if char > 0x10FFFF:
            if errors == "strict":
                raise UnicodeError("Invalid character U+%x" % char)
            char = ord('?')
        pos = pos % (len(base) + 1)
        base = base[:pos] + chr(char) + base[pos:]
        bias = adapt(delta, (extpos == 0), len(base))
        extpos = newpos
    return base

def punycode_decode(text, errors):
    if isinstance(text, str):
        text = text.encode("ascii")
    if isinstance(text, memoryview):
        text = bytes(text)
    pos = text.rfind(b"-")
    if pos == -1:
        base = ""
        extended = str(text, "ascii").upper()
    else:
        base = str(text[:pos], "ascii", errors)
        extended = str(text[pos+1:], "ascii").upper()
    return insertion_sort(base, extended, errors)

### Codec APIs

class Codec(codecs.Codec):

    def encode(self, input, errors='strict'):
        res = punycode_encode(input)
        return res, len(input)

    def decode(self, input, errors='strict'):
        if errors not in ('strict', 'replace', 'ignore'):
            raise UnicodeError("Unsupported error handling "+errors)
        res = punycode_decode(input, errors)
        return res, len(input)

class IncrementalEncoder(codecs.IncrementalEncoder):
    def encode(self, input, final=False):
        return punycode_encode(input)

class IncrementalDecoder(codecs.IncrementalDecoder):
    def decode(self, input, final=False):
        if self.errors not in ('strict', 'replace', 'ignore'):
            raise UnicodeError("Unsupported error handling "+self.errors)
        return punycode_decode(input, self.errors)

class StreamWriter(Codec,codecs.StreamWriter):
    pass

class StreamReader(Codec,codecs.StreamReader):
    pass

### encodings module API

def getregentry():
    return codecs.CodecInfo(
        name='punycode',
        encode=Codec().encode,
        decode=Codec().decode,
        incrementalencoder=IncrementalEncoder,
        incrementaldecoder=IncrementalDecoder,
        streamwriter=StreamWriter,
        streamreader=StreamReader,
    )

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]

Current_dir [ 𝗡𝗢𝗧 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ] Document_root [ 𝗪𝗥𝗜𝗧𝗘𝗔𝗕𝗟𝗘 ]


[ Back ]
𝗡𝗔𝗠𝗘
𝗦𝗜𝗭𝗘
𝗟𝗔𝗦𝗧 𝗧𝗢𝗨𝗖𝗛
𝗨𝗦𝗘𝗥
𝗦𝗧𝗔𝗧𝗨𝗦
𝗙𝗨𝗡𝗖𝗧𝗜𝗢𝗡𝗦
..
--
14 Aug 2026 4.57 AM
root / root
0755
__pycache__
--
14 Aug 2026 4.57 AM
root / root
0755
__init__.py
5.457 KB
31 Oct 2025 6.40 PM
root / root
0644
aliases.py
15.31 KB
31 Oct 2025 6.40 PM
root / root
0644
ascii.py
1.219 KB
31 Oct 2025 6.40 PM
root / root
0644
base64_codec.py
1.497 KB
31 Oct 2025 6.40 PM
root / root
0644
big5.py
0.995 KB
31 Oct 2025 6.40 PM
root / root
0644
big5hkscs.py
1.015 KB
31 Oct 2025 6.40 PM
root / root
0644
bz2_codec.py
2.196 KB
31 Oct 2025 6.40 PM
root / root
0644
charmap.py
2.035 KB
31 Oct 2025 6.40 PM
root / root
0644
cp037.pyc
2.367 KB
12 Aug 2026 3.51 PM
root / root
0644
cp1006.pyc
2.441 KB
12 Aug 2026 3.51 PM
root / root
0644
cp1026.pyc
2.371 KB
12 Aug 2026 3.51 PM
root / root
0644
cp1125.py
33.786 KB
31 Oct 2025 6.40 PM
root / root
0644
cp1140.pyc
2.357 KB
12 Aug 2026 3.51 PM
root / root
0644
cp1250.pyc
2.394 KB
12 Aug 2026 3.51 PM
root / root
0644
cp1251.pyc
2.391 KB
12 Aug 2026 3.51 PM
root / root
0644
cp1252.pyc
2.394 KB
12 Aug 2026 3.51 PM
root / root
0644
cp1253.pyc
2.406 KB
12 Aug 2026 3.51 PM
root / root
0644
cp1254.pyc
2.396 KB
12 Aug 2026 3.51 PM
root / root
0644
cp1255.pyc
2.414 KB
12 Aug 2026 3.51 PM
root / root
0644
cp1256.pyc
2.393 KB
12 Aug 2026 3.51 PM
root / root
0644
cp1257.pyc
2.4 KB
12 Aug 2026 3.51 PM
root / root
0644
cp1258.pyc
2.398 KB
12 Aug 2026 3.51 PM
root / root
0644
cp273.pyc
2.354 KB
12 Aug 2026 3.51 PM
root / root
0644
cp424.pyc
2.396 KB
12 Aug 2026 3.51 PM
root / root
0644
cp437.pyc
7.664 KB
12 Aug 2026 3.51 PM
root / root
0644
cp500.pyc
2.367 KB
12 Aug 2026 3.51 PM
root / root
0644
cp720.py
13.365 KB
31 Oct 2025 6.40 PM
root / root
0644
cp737.pyc
7.979 KB
12 Aug 2026 3.51 PM
root / root
0644
cp775.pyc
7.693 KB
12 Aug 2026 3.51 PM
root / root
0644
cp850.pyc
7.333 KB
12 Aug 2026 3.51 PM
root / root
0644
cp852.pyc
7.701 KB
12 Aug 2026 3.51 PM
root / root
0644
cp855.pyc
7.948 KB
12 Aug 2026 3.51 PM
root / root
0644
cp856.pyc
2.428 KB
12 Aug 2026 3.51 PM
root / root
0644
cp857.pyc
7.313 KB
12 Aug 2026 3.51 PM
root / root
0644
cp858.py
33.218 KB
31 Oct 2025 6.40 PM
root / root
0644
cp860.pyc
7.644 KB
12 Aug 2026 3.51 PM
root / root
0644
cp861.pyc
7.658 KB
12 Aug 2026 3.51 PM
root / root
0644
cp862.pyc
7.843 KB
12 Aug 2026 3.51 PM
root / root
0644
cp863.pyc
7.658 KB
12 Aug 2026 3.51 PM
root / root
0644
cp864.pyc
7.799 KB
12 Aug 2026 3.51 PM
root / root
0644
cp865.pyc
7.658 KB
12 Aug 2026 3.51 PM
root / root
0644
cp866.pyc
7.983 KB
12 Aug 2026 3.51 PM
root / root
0644
cp869.pyc
7.682 KB
12 Aug 2026 3.51 PM
root / root
0644
cp874.pyc
2.492 KB
12 Aug 2026 3.51 PM
root / root
0644
cp875.pyc
2.364 KB
12 Aug 2026 3.51 PM
root / root
0644
cp932.py
0.999 KB
31 Oct 2025 6.40 PM
root / root
0644
cp949.py
0.999 KB
31 Oct 2025 6.40 PM
root / root
0644
cp950.py
0.999 KB
31 Oct 2025 6.40 PM
root / root
0644
euc_jis_2004.py
1.026 KB
31 Oct 2025 6.40 PM
root / root
0644
euc_jisx0213.py
1.026 KB
31 Oct 2025 6.40 PM
root / root
0644
euc_jp.py
1.003 KB
31 Oct 2025 6.40 PM
root / root
0644
euc_kr.py
1.003 KB
31 Oct 2025 6.40 PM
root / root
0644
gb18030.py
1.007 KB
31 Oct 2025 6.40 PM
root / root
0644
gb2312.py
1.003 KB
31 Oct 2025 6.40 PM
root / root
0644
gbk.py
0.991 KB
31 Oct 2025 6.40 PM
root / root
0644
hex_codec.py
1.473 KB
31 Oct 2025 6.40 PM
root / root
0644
hp_roman8.pyc
2.563 KB
12 Aug 2026 3.51 PM
root / root
0644
hz.py
0.987 KB
31 Oct 2025 6.40 PM
root / root
0644
idna.py
8.885 KB
31 Oct 2025 6.40 PM
root / root
0644
iso2022_jp.py
1.028 KB
31 Oct 2025 6.40 PM
root / root
0644
iso2022_jp_1.py
1.036 KB
31 Oct 2025 6.40 PM
root / root
0644
iso2022_jp_2.py
1.036 KB
31 Oct 2025 6.40 PM
root / root
0644
iso2022_jp_2004.py
1.048 KB
31 Oct 2025 6.40 PM
root / root
0644
iso2022_jp_3.py
1.036 KB
31 Oct 2025 6.40 PM
root / root
0644
iso2022_jp_ext.py
1.044 KB
31 Oct 2025 6.40 PM
root / root
0644
iso2022_kr.py
1.028 KB
31 Oct 2025 6.40 PM
root / root
0644
iso8859_1.pyc
2.366 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_10.pyc
2.371 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_11.pyc
2.463 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_13.pyc
2.374 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_14.pyc
2.392 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_15.pyc
2.371 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_16.pyc
2.373 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_2.pyc
2.366 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_3.pyc
2.373 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_4.pyc
2.366 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_5.pyc
2.367 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_6.pyc
2.41 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_7.pyc
2.374 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_8.pyc
2.404 KB
12 Aug 2026 3.51 PM
root / root
0644
iso8859_9.pyc
2.366 KB
12 Aug 2026 3.51 PM
root / root
0644
johab.py
0.999 KB
31 Oct 2025 6.40 PM
root / root
0644
koi8_r.pyc
2.417 KB
12 Aug 2026 3.51 PM
root / root
0644
koi8_t.py
12.884 KB
31 Oct 2025 6.40 PM
root / root
0644
koi8_u.pyc
2.403 KB
12 Aug 2026 3.51 PM
root / root
0644
kz1048.pyc
2.381 KB
12 Aug 2026 3.51 PM
root / root
0644
latin_1.py
1.234 KB
31 Oct 2025 6.40 PM
root / root
0644
mac_arabic.pyc
7.561 KB
12 Aug 2026 3.51 PM
root / root
0644
mac_croatian.pyc
2.412 KB
12 Aug 2026 3.51 PM
root / root
0644
mac_cyrillic.pyc
2.402 KB
12 Aug 2026 3.51 PM
root / root
0644
mac_farsi.pyc
2.348 KB
12 Aug 2026 3.51 PM
root / root
0644
mac_greek.pyc
2.387 KB
12 Aug 2026 3.51 PM
root / root
0644
mac_iceland.pyc
2.405 KB
12 Aug 2026 3.51 PM
root / root
0644
mac_latin2.pyc
2.543 KB
12 Aug 2026 3.51 PM
root / root
0644
mac_roman.pyc
2.403 KB
12 Aug 2026 3.51 PM
root / root
0644
mac_romanian.pyc
2.413 KB
12 Aug 2026 3.51 PM
root / root
0644
mac_turkish.pyc
2.406 KB
12 Aug 2026 3.51 PM
root / root
0644
mbcs.py
1.183 KB
31 Oct 2025 6.40 PM
root / root
0644
oem.py
0.995 KB
31 Oct 2025 6.40 PM
root / root
0644
palmos.py
13.202 KB
31 Oct 2025 6.40 PM
root / root
0644
ptcp154.pyc
2.485 KB
12 Aug 2026 3.51 PM
root / root
0644
punycode.py
6.722 KB
31 Oct 2025 6.40 PM
root / root
0644
quopri_codec.py
1.489 KB
31 Oct 2025 6.40 PM
root / root
0644
raw_unicode_escape.py
1.301 KB
31 Oct 2025 6.40 PM
root / root
0644
rot_13.py
2.391 KB
31 Oct 2025 6.40 PM
root / root
0755
shift_jis.py
1.015 KB
31 Oct 2025 6.40 PM
root / root
0644
shift_jis_2004.py
1.034 KB
31 Oct 2025 6.40 PM
root / root
0644
shift_jisx0213.py
1.034 KB
31 Oct 2025 6.40 PM
root / root
0644
tis_620.pyc
2.454 KB
12 Aug 2026 3.51 PM
root / root
0644
undefined.py
1.269 KB
31 Oct 2025 6.40 PM
root / root
0644
unicode_escape.py
1.273 KB
31 Oct 2025 6.40 PM
root / root
0644
utf_16.py
5.113 KB
31 Oct 2025 6.40 PM
root / root
0644
utf_16_be.py
1.013 KB
31 Oct 2025 6.40 PM
root / root
0644
utf_16_le.py
1.013 KB
31 Oct 2025 6.40 PM
root / root
0644
utf_32.py
5.009 KB
31 Oct 2025 6.40 PM
root / root
0644
utf_32_be.py
0.908 KB
31 Oct 2025 6.40 PM
root / root
0644
utf_32_le.py
0.908 KB
31 Oct 2025 6.40 PM
root / root
0644
utf_7.py
0.924 KB
31 Oct 2025 6.40 PM
root / root
0644
utf_8.py
0.981 KB
31 Oct 2025 6.40 PM
root / root
0644
utf_8_sig.py
4.036 KB
31 Oct 2025 6.40 PM
root / root
0644
uu_codec.py
2.784 KB
31 Oct 2025 6.40 PM
root / root
0644
zlib_codec.py
2.152 KB
31 Oct 2025 6.40 PM
root / root
0644

✘✘ GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME ✘✘
Static GIF Static GIF