LK82 - It's a Thai soundex rule.

    :param str text: Thai word
    :return: LK82 soundex

def lk82(text: str) -> str:
    """
    LK82 - It's a Thai soundex rule.

    :param str text: Thai word
    :return: LK82 soundex
    """
    if not text or not isinstance(text, str):
        return ""

    text = _RE_1.sub("", text)  # 4.ลบวรรณยุกต์
    text = _RE_2.sub("", text)  # 4.ลบตัวการันต์
    text = _RE_3.sub("", text)  # 5.ทิ้งไม้ไต่คู่ ฯลฯ

    if not text:
        return ""

    # 6.เข้ารหัสตัวแรก
    res = []
    if "ก" <= text[0] <= "ฮ":
        res.append(text[0].translate(_TRANS1))
        text = text[1:]
    else:
        if len(text) > 1:
            res.append(text[1].translate(_TRANS1))
        res.append(text[0].translate(_TRANS2))
        text = text[2:]

    # เข้ารหัสตัวที่เหลือ
    i_v = None  # ตำแหน่งตัวคั่นล่าสุด (สระ)
    for i, c in enumerate(text):
        if c in "ะัิี":  # 7. ตัวคั่นเฉยๆ
            i_v = i
            res.append("")
        elif c in "าๅึืู":  # 8.คั่นและใส่
            i_v = i
            res.append(c.translate(_TRANS2))
        elif c == "ุ":  # 9.สระอุ
            i_v = i
            if i == 0 or (text[i - 1] not in "ตธ"):
                res.append(c.translate(_TRANS2))
            else:
                res.append("")
        elif c in "หอ":
            if i + 1 < len(text) and (text[i + 1] in "ึืุู"):
                res.append(c.translate(_TRANS2))
        elif c in "รวยฤฦ":
            if i_v == i - 1 or (i + 1 < len(text) and (text[i + 1] in "ึืุู")):
                res.append(c.translate(_TRANS2))
        else:
            res.append(c.translate(_TRANS2))  # 12.

    # 13. เอาตัวซ้ำออก
    res2 = [res[0]]
    for i in range(1, len(res)):
        if res[i] != res[i - 1]:
            res2.append(res[i])

    # 14. เติมศูนย์ให้ครบ ถ้าเกินก็ตัด
    return ("".join(res2) + "0000")[:5]