{"id":7330,"date":"2025-11-21T15:57:33","date_gmt":"2025-11-21T07:57:33","guid":{"rendered":"https:\/\/louisthai.com\/?page_id=7330"},"modified":"2025-11-21T15:58:06","modified_gmt":"2025-11-21T07:58:06","slug":"self-check-service-system-mtmi","status":"publish","type":"page","link":"https:\/\/louisthai.com\/hk\/self-check-service-system-mtmi\/","title":{"rendered":"Self-check service system MTMI"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"7330\" class=\"elementor elementor-7330\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-664e532 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"664e532\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5c9a7ea\" data-id=\"5c9a7ea\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-580ddfa elementor-widget elementor-widget-html\" data-id=\"580ddfa\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"zh-Hans\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <title>Merit Dedication Energy Index (MDET) \u00b7 Louisthaiology<\/title>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\n  <style>\n    * { box-sizing: border-box; }\n\n    body {\n      margin: 0;\n      font-family: -apple-system, BlinkMacSystemFont, system-ui,\n        \"SF Pro Text\", \"PingFang SC\", \"Hiragino Sans GB\",\n        \"Microsoft YaHei\", sans-serif;\n      background: #000000;\n      color: #111111;\n      -webkit-font-smoothing: antialiased;\n    }\n\n    header {\n      max-width: 960px;\n      margin: 0 auto;\n      padding: 22px 18px 10px;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      color: #f5f5f7;\n    }\n\n    .brand-block {\n      display: flex;\n      flex-direction: column;\n      gap: 3px;\n    }\n\n    .brand {\n      font-size: 0.8rem;\n      letter-spacing: 0.16em;\n      text-transform: uppercase;\n      color: #9b9ba0;\n    }\n\n    .title-text {\n      font-size: 1.7rem;\n      font-weight: 650;\n      color: #ffffff;\n    }\n\n    .subtitle-text {\n      font-size: 0.96rem;\n      color: #d0d0d5;\n      max-width: 460px;\n    }\n\n    .lang-switch {\n      display: inline-flex;\n      align-items: center;\n      gap: 6px;\n      background: rgba(30,30,32,0.92);\n      border-radius: 999px;\n      padding: 4px 6px;\n      border: 1px solid rgba(255,255,255,0.12);\n      backdrop-filter: blur(18px);\n      box-shadow: 0 10px 26px rgba(0,0,0,0.55);\n    }\n\n    .lang-label {\n      font-size: 0.72rem;\n      text-transform: uppercase;\n      letter-spacing: 0.12em;\n      color: #9b9ba0;\n      padding: 0 6px;\n    }\n\n    .lang-btn {\n      border: none;\n      background: transparent;\n      padding: 4px 10px;\n      cursor: pointer;\n      font-size: 0.8rem;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: #e5e5ea;\n      border-radius: 999px;\n      transition: background 0.15s, color 0.15s;\n    }\n\n    .lang-btn.active {\n      background: #007aff;\n      color: #ffffff;\n    }\n\n    .container {\n      max-width: 860px;\n      margin: 0 auto 40px;\n      padding: 4px 18px 32px;\n    }\n\n    .hero-note {\n      margin: 6px 0 18px;\n      font-size: 0.96rem;\n      color: #d0d0d5;\n      line-height: 1.7;\n      max-width: 640px;\n    }\n\n    .card {\n      background: rgba(255,255,255,0.96);\n      border-radius: 18px;\n      padding: 18px 18px 20px;\n      margin-top: 14px;\n      box-shadow:\n        0 18px 40px rgba(0,0,0,0.6),\n        0 0 0 0.5px rgba(255,255,255,0.08);\n      backdrop-filter: blur(22px);\n    }\n\n    .card h2 {\n      margin: 0 0 4px;\n      font-size: 1.05rem;\n      font-weight: 600;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: #1d1d1f;\n    }\n\n    .card small {\n      display: block;\n      margin-bottom: 10px;\n      color: #8e8e93;\n      font-size: 0.84rem;\n    }\n\n    label {\n      display: block;\n      margin: 9px 0 6px;\n      font-size: 0.95rem;\n      font-weight: 520;\n      color: #1d1d1f;\n    }\n\n    label span.hint {\n      font-weight: 400;\n      color: #8e8e93;\n      font-size: 0.8rem;\n      margin-left: 4px;\n    }\n\n    textarea, select, input[type=\"text\"], input[type=\"date\"] {\n      width: 100%;\n      border-radius: 12px;\n      border: 1px solid #d2d2d7;\n      padding: 10px 12px;\n      font-size: 0.94rem;\n      outline: none;\n      transition: border 0.16s, box-shadow 0.16s, background 0.16s;\n      background: #f9f9fb;\n    }\n\n    textarea {\n      min-height: 100px;\n      resize: vertical;\n    }\n\n    textarea:focus,\n    select:focus,\n    input[type=\"text\"]:focus,\n    input[type=\"date\"]:focus {\n      border-color: #ff3b30;\n      box-shadow: 0 0 0 1px #ff3b3040;\n      background: #ffffff;\n    }\n\n    .row {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 14px;\n    }\n\n    .col {\n      flex: 1 1 220px;\n      min-width: 0;\n    }\n\n    .radio-group {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n      gap: 6px;\n      margin-top: 4px;\n    }\n\n    .radio-pill {\n      border-radius: 999px;\n      border: 1px solid #d2d2d7;\n      padding: 7px 11px;\n      font-size: 0.86rem;\n      cursor: pointer;\n      display: flex;\n      align-items: center;\n      gap: 6px;\n      background: #f9f9fb;\n      transition: all 0.15s;\n    }\n\n    .radio-pill input {\n      margin: 0;\n    }\n\n    .radio-pill:hover {\n      border-color: #ff3b30;\n      background: #ffffff;\n    }\n\n    .slider-row {\n      display: flex;\n      align-items: center;\n      gap: 10px;\n    }\n\n    input[type=\"range\"] {\n      flex: 1;\n    }\n\n    .slider-value {\n      min-width: 40px;\n      text-align: right;\n      font-size: 0.86rem;\n      color: #4b4b50;\n    }\n\n    .btn-row {\n      margin-top: 16px;\n      display: flex;\n      gap: 10px;\n      flex-wrap: wrap;\n    }\n\n    button {\n      border-radius: 999px;\n      border: none;\n      padding: 10px 20px;\n      font-size: 0.9rem;\n      cursor: pointer;\n      font-weight: 520;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      display: inline-flex;\n      align-items: center;\n      gap: 6px;\n      transition: transform 0.1s ease, background 0.15s,\n        color 0.15s, box-shadow 0.1s;\n    }\n\n    button.primary {\n      background: linear-gradient(90deg,#ff3b30,#ff453a,#ff2d55);\n      color: #ffffff;\n      box-shadow: 0 10px 26px rgba(255,59,48,0.55);\n    }\n\n    button.primary:hover {\n      transform: translateY(-1px);\n      box-shadow: 0 18px 40px rgba(255,59,48,0.7);\n    }\n\n    button.secondary {\n      background: #101015;\n      color: #ffffff;\n      border: 1px solid #2c2c2e;\n      box-shadow: 0 3px 14px rgba(0,0,0,0.8);\n    }\n\n    button.secondary:hover {\n      background: #1c1c1f;\n    }\n\n    \/* --- \u6f02\u4eae\u5c0f\u5361\u7247\u5916\u6846 --- *\/\n    .card-wrapper {\n      max-width: 720px;\n      margin: 26px auto 0;\n      padding: 18px;\n      border-radius: 26px;\n      background: radial-gradient(circle at top left,#320000,#050509);\n      box-shadow:\n        0 40px 90px rgba(0,0,0,0.9),\n        0 0 0 1px rgba(255,255,255,0.08);\n      display: none;\n      position: relative;\n    }\n\n    .card-wrapper.visible {\n      display: block;\n    }\n\n    .lt-logo-row {\n      display: flex;\n      justify-content: center;\n      margin-bottom: 10px;\n    }\n\n    .lt-logo {\n      max-width: 260px;\n      height: auto;\n      filter: drop-shadow(0 8px 20px rgba(255,59,48,0.75));\n    }\n\n    .merit-card {\n      margin: 0;\n      border-radius: 22px;\n      box-shadow:\n        0 24px 60px rgba(0,0,0,0.85),\n        0 0 0 1px rgba(255,255,255,0.1);\n      background: linear-gradient(145deg,#ffffff,#f3f4ff);\n    }\n\n    .result-header {\n      display: flex;\n      justify-content: space-between;\n      gap: 16px;\n      align-items: flex-start;\n      margin-bottom: 6px;\n    }\n\n    .result-sub {\n      font-size: 0.8rem;\n      color: #8e8e93;\n      letter-spacing: 0.16em;\n      text-transform: uppercase;\n    }\n\n    .client-meta {\n      font-size: 0.8rem;\n      color: #6e6e73;\n      text-align: right;\n    }\n\n    .meta-line {\n      white-space: nowrap;\n    }\n\n    .timestamp-line {\n      margin-top: 6px;\n      font-size: 0.8rem;\n      color: #9b9ba0;\n    }\n\n    .score-display {\n      display: flex;\n      flex-wrap: wrap;\n      align-items: center;\n      gap: 20px;\n      margin-top: 10px;\n    }\n\n    .score-circle {\n      width: 100px;\n      height: 100px;\n      border-radius: 50%;\n      border: 4px solid #ff3b30;\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      justify-content: center;\n      font-weight: 600;\n      font-size: 1.28rem;\n      position: relative;\n      background: radial-gradient(circle at 30% 20%, #ffffff, #ffe5e3);\n      box-shadow: 0 14px 32px rgba(255,59,48,0.55);\n    }\n\n    .score-circle span {\n      font-size: 0.86rem;\n      font-weight: 500;\n      color: #6e6e73;\n    }\n\n    .score-level {\n      font-weight: 600;\n      font-size: 1rem;\n      margin-bottom: 4px;\n      color: #1d1d1f;\n    }\n\n    .score-desc {\n      font-size: 0.9rem;\n      color: #4b4b50;\n      line-height: 1.7;\n      white-space: pre-line;\n    }\n\n    .formula {\n      font-size: 0.8rem;\n      color: #6e6e73;\n      margin-top: 10px;\n      border-top: 1px solid #e5e5ea;\n      padding-top: 8px;\n    }\n\n    details {\n      margin-top: 10px;\n      font-size: 0.8rem;\n      color: #6e6e73;\n    }\n\n    details summary {\n      cursor: pointer;\n      font-weight: 500;\n    }\n\n    .signature-block {\n      margin-top: 14px;\n      border-top: 1px solid #e5e5ea;\n      padding-top: 8px;\n      display: flex;\n      justify-content: flex-end;\n      align-items: flex-end;\n      gap: 10px;\n    }\n\n    .signature-text {\n      font-size: 0.78rem;\n      color: #8e8e93;\n      text-align: right;\n    }\n\n    .signature-name {\n      font-size: 0.86rem;\n      color: #1d1d1f;\n      font-weight: 500;\n    }\n\n    .signature-img {\n      height: 40px;\n      width: auto;\n      filter: drop-shadow(0 3px 6px rgba(0,0,0,0.3));\n    }\n\n    footer {\n      text-align: center;\n      font-size: 0.78rem;\n      color: #9b9ba0;\n      padding-bottom: 22px;\n      margin-top: 20px;\n    }\n\n    @media (max-width: 640px) {\n      header {\n        flex-direction: column;\n        align-items: flex-start;\n        gap: 10px;\n        padding-top: 18px;\n      }\n      .title-text { font-size: 1.4rem; }\n      .container { padding: 0 14px 26px; }\n      .card { padding: 16px 14px 18px; }\n      .result-header {\n        flex-direction: column;\n        align-items: flex-start;\n      }\n      .client-meta { text-align: left; }\n      .card-wrapper { margin-top: 20px; }\n    }\n  <\/style>\n<\/head>\n<body>\n<header>\n  <div class=\"brand-block\">\n    <div class=\"brand\">LOUISTHAI \u00b7 MERIT FLOW<\/div>\n    <div class=\"title-text\" id=\"titleText\">Merit Dedication Energy Index<\/div>\n    <div class=\"subtitle-text\" id=\"subtitleText\">\n      Instant merit flow \u00b7 \u201cAs water flows, merit follows.\u201d\n    <\/div>\n  <\/div>\n  <div class=\"lang-switch\">\n    <span class=\"lang-label\">LANG<\/span>\n    <button class=\"lang-btn active\" data-lang=\"en\">EN<\/button>\n    <button class=\"lang-btn\" data-lang=\"zh\">\u4e2d\u6587<\/button>\n    <button class=\"lang-btn\" data-lang=\"th\">\u0e44\u0e17\u0e22<\/button>\n  <\/div>\n<\/header>\n\n<div class=\"container\">\n  <p class=\"hero-note\" id=\"heroNote\">\n    This experimental Louisthaiology tool helps you practice dedicating merit at the very moment you perform it, visualised as an energy index from 0\u2013100.\n  <\/p>\n\n  <!-- \u8f93\u5165\u533a -->\n  <div class=\"card\">\n    <div class=\"row\">\n      <div class=\"col\">\n        <label for=\"clientName\" id=\"labelClientName\">Client name<\/label>\n        <input type=\"text\" id=\"clientName\" placeholder=\"Example: Wong Shee Yee\" \/>\n      <\/div>\n      <div class=\"col\">\n        <label for=\"clientDob\" id=\"labelDob\">Date of birth<\/label>\n        <input type=\"date\" id=\"clientDob\" \/>\n      <\/div>\n    <\/div>\n    <div class=\"row\">\n      <div class=\"col\">\n        <label for=\"clientWhatsApp\" id=\"labelWhatsApp\">WhatsApp number<\/label>\n        <input type=\"text\" id=\"clientWhatsApp\" placeholder=\"+60 1X-XXX XXXX\" \/>\n      <\/div>\n    <\/div>\n\n    <h2 id=\"section1Title\" style=\"margin-top:16px;\">1 \u00b7 DESCRIBE YOUR MERIT ACT<\/h2>\n    <small id=\"section1Hint\">\n      Examples: giving, offering, helping someone, caring for parents, chanting and dedicating, keeping precepts, saving beings, etc.\n    <\/small>\n\n    <label for=\"deedText\" id=\"labelDeedText\">\n      What are you doing right now?\n    <\/label>\n    <textarea id=\"deedText\" placeholder=\"Example: I offered a meal to my parents and sincerely wished them long life and good health.\"><\/textarea>\n\n    <label id=\"labelDeedType\">Type of merit<\/label>\n    <div class=\"radio-group\">\n      <label class=\"radio-pill\">\n        <input type=\"radio\" name=\"deedType\" value=\"dana\" checked \/>\n        <span id=\"labelDana\">Giving & Offering (Dana)<\/span>\n      <\/label>\n      <label class=\"radio-pill\">\n        <input type=\"radio\" name=\"deedType\" value=\"sila\" \/>\n        <span id=\"labelSila\">Morality \/ Precepts (Sila)<\/span>\n      <\/label>\n      <label class=\"radio-pill\">\n        <input type=\"radio\" name=\"deedType\" value=\"bhavana\" \/>\n        <span id=\"labelBhavana\">Meditation \/ Chanting (Bh\u0101van\u0101)<\/span>\n      <\/label>\n      <label class=\"radio-pill\">\n        <input type=\"radio\" name=\"deedType\" value=\"help\" \/>\n        <span id=\"labelHelp\">Helping and Service<\/span>\n      <\/label>\n      <label class=\"radio-pill\">\n        <input type=\"radio\" name=\"deedType\" value=\"forgive\" \/>\n        <span id=\"labelForgive\">Forgiveness \/ Patience<\/span>\n      <\/label>\n      <label class=\"radio-pill\">\n        <input type=\"radio\" name=\"deedType\" value=\"rejoice\" \/>\n        <span id=\"labelRejoice\">Rejoicing & Blessing<\/span>\n      <\/label>\n    <\/div>\n\n    <div class=\"row\" style=\"margin-top:10px;\">\n      <div class=\"col\">\n        <label for=\"intentionSlider\" id=\"labelIntention\">\n          Focus of mind\n          <span class=\"hint\" id=\"hintIntention\">(1 = distracted \u00b7 10 = fully present)<\/span>\n        <\/label>\n        <div class=\"slider-row\">\n          <input type=\"range\" id=\"intentionSlider\" min=\"1\" max=\"10\" value=\"7\" \/>\n          <div class=\"slider-value\"><span id=\"intentionValue\">7<\/span> \/ 10<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"col\">\n        <label for=\"timingSelect\" id=\"labelTiming\">\n          When do you dedicate the merit?\n        <\/label>\n        <select id=\"timingSelect\">\n          <option value=\"immediate\" id=\"timingImmediate\">\n            While doing the act, in the same moment\n          <\/option>\n          <option value=\"sameDay\" id=\"timingSameDay\">\n            Later on the same day\n          <\/option>\n          <option value=\"later\" id=\"timingLater\">\n            Only after a few days\n          <\/option>\n        <\/select>\n      <\/div>\n    <\/div>\n\n    <div class=\"row\">\n      <div class=\"col\">\n        <label for=\"targetSelect\" id=\"labelTarget\">\n          Clarity of recipients\n        <\/label>\n        <select id=\"targetSelect\">\n          <option value=\"specific\" id=\"targetSpecific\">\n            Very specific: named person \/ parents \/ ancestors \/ particular beings\n          <\/option>\n          <option value=\"mixed\" id=\"targetMixed\">\n            General: e.g. \u201call beings with karmic connection\u201d, \u201cdebtors\u201d\n          <\/option>\n          <option value=\"vague\" id=\"targetVague\">\n            Vague: just blessing broadly without clear focus\n          <\/option>\n        <\/select>\n      <\/div>\n      <div class=\"col\">\n        <label for=\"mantraText\" id=\"labelMantra\">\n          Dedication phrase in your heart (optional)\n        <\/label>\n        <input\n          type=\"text\"\n          id=\"mantraText\"\n          placeholder='Example: \u201cMay all beings be free from suffering.\u201d'\n        \/>\n      <\/div>\n    <\/div>\n\n    <div class=\"btn-row\">\n      <button class=\"primary\" id=\"calcBtn\">\n        <span id=\"btnCalcText\">Calculate Energy Index<\/span>\n      <\/button>\n      <button class=\"secondary\" id=\"pdfBtn\">\n        <span id=\"btnPDFText\">Export PDF Card<\/span>\n      <\/button>\n      <button class=\"secondary\" id=\"resetBtn\">\n        <span id=\"btnResetText\">Reset<\/span>\n      <\/button>\n    <\/div>\n  <\/div>\n\n  <!-- \u5c0f\u5361\u7247\u5916\u6846\uff08\u7528\u4e8e\u622a\u56fe\u6210 PDF\uff09 -->\n  <div id=\"cardWrapper\" class=\"card-wrapper\">\n    <div class=\"lt-logo-row\">\n      <!-- \u628a louisthai_logo.png \u653e\u5728\u540c\u4e00\u8d44\u6599\u5939 -->\n      <img decoding=\"async\" src=\"louisthai_logo.png\" class=\"lt-logo\" alt=\"LOUIS THAI logo\" \/>\n    <\/div>\n    <div class=\"card merit-card\" id=\"resultCard\">\n      <div class=\"result-header\">\n        <div>\n          <h2 id=\"section2Title\">2 \u00b7 RESULT OF DEDICATION<\/h2>\n          <div class=\"result-sub\">Louisthaiology \u00b7 Merit Flow Card<\/div>\n        <\/div>\n        <div class=\"client-meta\">\n          <div class=\"meta-line\" id=\"cardClientNameLine\"><\/div>\n          <div class=\"meta-line\" id=\"cardClientDobLine\"><\/div>\n          <div class=\"meta-line\" id=\"cardClientWaLine\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"timestamp-line\" id=\"cardTimestamp\"><\/div>\n\n      <div class=\"score-display\">\n        <div class=\"score-circle\">\n          <div id=\"scoreNumber\">0<\/div>\n          <span>\/ 100<\/span>\n        <\/div>\n        <div>\n          <div class=\"score-level\" id=\"scoreLevel\">\u2014<\/div>\n          <div class=\"score-desc\" id=\"scoreDesc\"><\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"formula\" id=\"formulaText\"><\/div>\n\n      <details>\n        <summary id=\"modelSummaryTitle\">Model notes<\/summary>\n        <p id=\"modelSummaryBody\">\n          This page is an experimental Louisthaiology model to help you feel the idea of \u201cas water flows, merit follows\u201d. Different types of merit, focus, timing, and clarity of recipients are mapped into a 0\u2013100 index as training for the heart, not as an absolute cosmic score.\n        <\/p>\n      <\/details>\n\n      <div class=\"signature-block\">\n        <div class=\"signature-text\">\n          <div id=\"signatureLabel\">Signed by \u7b7e\u540d \u0e25\u0e07\u0e19\u0e32\u0e21<\/div>\n          <div class=\"signature-name\" id=\"signatureName\">\n            LOUIS THAI \u00b7 Merit Guide\n          <\/div>\n        <\/div>\n        <!-- \u628a louisthai_signature.png \u653e\u5728\u540c\u4e00\u8d44\u6599\u5939 -->\n        <img decoding=\"async\" src=\"louisthai_signature.png\" class=\"signature-img\" alt=\"Signature\" \/>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <footer id=\"footerText\">\n    Louisthaiology Experimental Tool \u00b7 \u201cAs water is flowing, merit is already on its way.\u201d\n  <\/footer>\n<\/div>\n\n<!-- jsPDF & html2canvas -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js\"><\/script>\n\n<script>\n  \/\/ -------- i18n \u6587\u6848 --------\n  const i18n = {\n    en: {\n      title: \"Merit Dedication Energy Index\",\n      subtitle: \"Instant merit flow \u00b7 \u201cAs water flows, merit follows.\u201d\",\n      heroNote:\n        \"This experimental Louisthaiology tool helps you practice dedicating merit at the very moment you perform it, visualised as an energy index from 0\u2013100.\",\n      labelClientName: \"Client name\",\n      labelDob: \"Date of birth\",\n      labelWhatsApp: \"WhatsApp number\",\n      phClientName: \"Example: John San De Kai Meng\",\n      phWhatsApp: \"+60 1X-XXX XXXX\",\n      section1Title: \"1 \u00b7 DESCRIBE YOUR MERIT ACT\",\n      section1Hint:\n        \"Examples: giving, offering, helping someone, caring for parents, chanting and dedicating, keeping precepts, saving beings, etc.\",\n      labelDeedText: \"What are you doing right now?\",\n      deedPlaceholder:\n        \"Example: I offered a meal to my parents and sincerely wished them long life and good health.\",\n      labelDeedType: \"Type of merit\",\n      deedTypes: {\n        dana: \"Giving & Offering (Dana)\",\n        sila: \"Morality \/ Precepts (Sila)\",\n        bhavana: \"Meditation \/ Chanting (Bh\u0101van\u0101)\",\n        help: \"Helping and Service\",\n        forgive: \"Forgiveness \/ Patience\",\n        rejoice: \"Rejoicing & Blessing\"\n      },\n      labelIntention: \"Focus of mind\",\n      hintIntention: \"(1 = distracted \u00b7 10 = fully present)\",\n      labelTiming: \"When do you dedicate the merit?\",\n      timing: {\n        immediate: \"While doing the act, in the same moment\",\n        sameDay: \"Later on the same day\",\n        later: \"Only after a few days\"\n      },\n      labelTarget: \"Clarity of recipients\",\n      target: {\n        specific:\n          \"Very specific: named person \/ parents \/ ancestors \/ particular beings\",\n        mixed:\n          \"General: e.g. \u201call beings with karmic connection\u201d, \u201cdebtors\u201d\",\n        vague:\n          \"Vague: just blessing broadly without clear focus\"\n      },\n      labelMantra: \"Dedication phrase in your heart (optional)\",\n      mantraPlaceholder: 'Example: \u201cMay all beings be free from suffering.\u201d',\n      btnCalc: \"Calculate Energy Index\",\n      btnReset: \"Reset\",\n      btnPDF: \"Export PDF Card\",\n      section2Title: \"2 \u00b7 RESULT OF DEDICATION\",\n      levels: {\n        low: {\n          title: \"Low flow \u00b7 Water just touching soil\",\n          desc:\n            \"The seed of merit is planted, but the mind may be scattered or the dedication is delayed.\\nTry to bring your palms together and dedicate in the same moment you do the act, like opening the tap so water truly starts flowing.\"\n        },\n        mid: {\n          title: \"Medium flow \u00b7 Water forms a small stream\",\n          desc:\n            \"Merit is already flowing, and the recipients are likely to feel your blessings.\\nBy sharpening your focus and naming the recipients more clearly, the flow can become more stable and far-reaching.\"\n        },\n        high: {\n          title: \"Strong flow \u00b7 Water like a steady river\",\n          desc:\n            \"Your mind is clear and the dedication is timely. The flow of merit is stable and powerful.\\nThis is a good pattern to repeat daily, turning ordinary actions into continuous protection.\"\n        },\n        ultra: {\n          title: \"Very high flow \u00b7 Water jet into the sky\",\n          desc:\n            \"Pure intention, clear recipients, and dedication done in the very moment \u2014 almost no obstruction to the flow of merit.\\nThis is a powerful time to make long-range vows for yourself and all beings.\"\n        }\n      },\n      noDeedNote:\n        \"(Note: You did not write down the merit act. The index is still calculated, but writing it helps the mind become clearer.)\",\n      mantraNotePrefix: 'Your dedication phrase: \u201c',\n      mantraNoteSuffix:\n        '\u201d is recorded in this practice as your personal merit mantra for future use.',\n      formula: (base, typeLabel, intentionScore, intention, timingScore, timingLabel, targetScore, targetLabel) =>\n        `Formula: base <b>${base}<\/b> (${typeLabel}) + mind focus <b>${intentionScore}<\/b> (focus ${intention}\/10) + timing bonus <b>${timingScore}<\/b> (${timingLabel}) + recipient clarity bonus <b>${targetScore}<\/b> (${targetLabel}) \u2192 capped at 100.`,\n      modelSummaryTitle: \"Model notes\",\n      modelSummaryBody:\n        \"This page is an experimental Louisthaiology model to feel the principle \u201cas water flows, merit follows\u201d. Different types of merit, focus, timing, and clarity of recipients are mapped into a 0\u2013100 index as training for the heart, not as an absolute cosmic score.\",\n      footer:\n        \"Louisthaiology Experimental Tool \u00b7 \u201cAs water is flowing, merit is already on its way.\u201d\",\n      typeLabelsFormula: {\n        dana: \"Giving & Offering (Dana)\",\n        sila: \"Morality & Precepts (Sila)\",\n        bhavana: \"Meditation & Chanting (Bh\u0101van\u0101)\",\n        help: \"Helping & Service\",\n        forgive: \"Forgiveness & Patience\",\n        rejoice: \"Rejoicing & Blessing\"\n      },\n      timingLabelFormula: {\n        immediate: \"dedication in the same moment\",\n        sameDay: \"dedication later on the same day\",\n        later: \"dedication after several days\"\n      },\n      targetLabelFormula: {\n        specific: \"very specific recipients\",\n        mixed: \"group-level recipients\",\n        vague: \"vague recipients\"\n      },\n      signLabel: \"Signed by \u7b7e\u540d \u0e25\u0e07\u0e19\u0e32\u0e21\",\n      signName: \"LOUIS THAI \u00b7 Merit Guide\"\n    },\n\n    zh: {\n      title: \"\u56de\u5411\u5584\u884c\u80fd\u91cf\u6307\u6570\",\n      subtitle: \"\u5584\u6d41\u5982\u6c34 \u00b7 \u201c\u6c34\u4e00\u6d41\u52a8\uff0c\u529f\u5fb7\u5df2\u5728\u8def\u4e0a\u201d\u3002\",\n      heroNote:\n        \"\u672c\u5de5\u5177\u4e3a Louisthaiology \u5b9e\u9a8c\u7248\uff0c\u7528 0\u2013100 \u7684\u80fd\u91cf\u6307\u6570\uff0c\u5e2e\u52a9\u4f60\u7ec3\u4e60\u300c\u5728\u884c\u5584\u7684\u5f53\u4e0b\u7acb\u523b\u56de\u5411\u300d\uff0c\u800c\u4e0d\u662f\u62d6\u5230\u4ee5\u540e\u624d\u60f3\u5230\u3002\",\n      labelClientName: \"\u5ba2\u6237\u540d\u5b57\",\n      labelDob: \"\u51fa\u751f\u65e5\u671f\",\n      labelWhatsApp: \"WhatsApp \u53f7\u7801\",\n      phClientName: \"\u4f8b\u5982\uff1aWong Shee Yee\",\n      phWhatsApp: \"+60 1X-XXX XXXX\",\n      section1Title: \"\u2460 \u63cf\u8ff0\u4f60\u6b63\u5728\u505a\u7684\u5584\u884c\",\n      section1Hint:\n        \"\u4f8b\uff1a\u5e03\u65bd\u4f9b\u517b\u3001\u5e2e\u4eba\u89e3\u51b3\u95ee\u9898\u3001\u7167\u987e\u7236\u6bcd\u3001\u5ff5\u7ecf\u56de\u5411\u3001\u5b88\u6212\u4e0d\u6740\u751f\u3001\u653e\u751f\u3001\u7167\u987e\u52a8\u7269\u7b49\u3002\",\n      labelDeedText: \"\u6b64\u523b\u4f60\u6b63\u5728\u505a\u4ec0\u4e48\u5584\u884c\uff1f\",\n      deedPlaceholder:\n        \"\u4f8b\u5982\uff1a\u4eca\u5929\u6211\u4f9b\u517b\u7236\u6bcd\u9910\u98df\uff0c\u5e76\u5728\u4f9b\u517b\u65f6\u53d1\u613f\uff0c\u613f\u4ed6\u4eec\u8eab\u5fc3\u5065\u5eb7\u3001\u957f\u5bff\u65e0\u75c5\u3002\",\n      labelDeedType: \"\u5584\u884c\u7c7b\u522b\",\n      deedTypes: {\n        dana: \"\u5e03\u65bd\u4f9b\u517b\uff08\u0e17\u0e32\u0e19 Dana\uff09\",\n        sila: \"\u5b88\u6212\u6301\u5f8b\uff08\u0e28\u0e35\u0e25 Sila\uff09\",\n        bhavana: \"\u7985\u4fee\u5ff5\u4f5b\uff08\u0e20\u0e32\u0e27\u0e19\u0e32 Bh\u0101van\u0101\uff09\",\n        help: \"\u5e2e\u52a9\u670d\u52a1\u4f17\u751f\",\n        forgive: \"\u5bbd\u6055\u3001\u5fcd\u8fb1\u4e0d\u8ba1\u8f83\",\n        rejoice: \"\u968f\u559c\u3001\u795d\u798f\u3001\u4e00\u8d77\u56de\u5411\"\n      },\n      labelIntention: \"\u5fc3\u5ff5\u4e13\u6ce8\u5ea6\",\n      hintIntention: \"\uff081 = \u5f88\u5206\u6563 \u00b7 10 = \u5fc3\u5f88\u9759\u3001\u5f88\u6e05\u695a\uff09\",\n      labelTiming: \"\u4f60\u5728\u4ec0\u4e48\u65f6\u5019\u505a\u201c\u56de\u5411\u201d\uff1f\",\n      timing: {\n        immediate: \"\u5728\u5584\u884c\u8fdb\u884c\u7684\u540c\u4e00\u523b\u5f53\u4e0b\u7acb\u523b\u56de\u5411\",\n        sameDay: \"\u540c\u4e00\u5929\u7a0d\u540e\u624d\u56de\u5411\",\n        later: \"\u8fc7\u4e86\u597d\u51e0\u5929\u624d\u60f3\u8d77\u8981\u56de\u5411\"\n      },\n      labelTarget: \"\u56de\u5411\u5bf9\u8c61\u7684\u6e05\u6670\u5ea6\",\n      target: {\n        specific: \"\u975e\u5e38\u5177\u4f53\uff1a\u67d0\u4eba\u3001\u7236\u6bcd\u3001\u7956\u5148\u3001\u7279\u5b9a\u4f17\u751f\u7fa4\u4f53\",\n        mixed: \"\u5927\u81f4\u5bf9\u8c61\uff1a\u5982\u201c\u6240\u6709\u6709\u7f18\u4f17\u751f\u201d\u3001\u201c\u51a4\u4eb2\u503a\u4e3b\u201d \u7b49\",\n        vague: \"\u6bd4\u8f83\u6a21\u7cca\uff1a\u53ea\u662f\u5927\u6982\u795d\u798f\u4e00\u4e0b\uff0c\u6ca1\u6709\u5f88\u6e05\u695a\u5bf9\u8c61\"\n      },\n      labelMantra: \"\u5fc3\u4e2d\u53d1\u613f\u53e5\uff08\u53ef\u4e0d\u586b\uff09\",\n      mantraPlaceholder: \"\u4f8b\u5982\uff1a\u201c\u613f\u4e00\u5207\u6709\u60c5\u7686\u5f97\u5b89\u4e50\uff0c\u79bb\u82e6\u5f97\u4e50\u3002\u201d\",\n      btnCalc: \"\u8ba1\u7b97\u56de\u5411\u80fd\u91cf\u6307\u6570\",\n      btnReset: \"\u91cd\u7f6e\",\n      btnPDF: \"\u5bfc\u51fa PDF \u5c0f\u5361\u7247\",\n      section2Title: \"\u2461 \u56de\u5411\u80fd\u91cf\u7ed3\u679c\",\n      levels: {\n        low: {\n          title: \"\u80fd\u91cf\u504f\u4f4e \u00b7 \u6c34\u521a\u6e17\u5165\u571f\u58e4\",\n          desc:\n            \"\u5584\u884c\u5df2\u7ecf\u79cd\u4e0b\u79cd\u5b50\uff0c\u4f46\u5fc3\u5ff5\u53ef\u80fd\u6bd4\u8f83\u5206\u6563\uff0c\u6216\u56de\u5411\u7684\u65f6\u95f4\u62d6\u5f97\u8f83\u4e45\u3002\\n\u5efa\u8bae\u4ee5\u540e\u884c\u5584\u65f6\uff0c\u8f7b\u8f7b\u5408\u638c\uff0c\u5728\u201c\u5f53\u4e0b\u201d\u53d1\u4e00\u4e2a\u6e05\u695a\u7684\u613f\uff0c\u8ba9\u6c34\u9f99\u5934\u771f\u6b63\u6253\u5f00\u3002\"\n        },\n        mid: {\n          title: \"\u80fd\u91cf\u4e2d\u7b49 \u00b7 \u6c34\u6d41\u6210\u5c0f\u6eaa\",\n          desc:\n            \"\u5584\u6d41\u5df2\u7ecf\u5f62\u6210\uff0c\u88ab\u56de\u5411\u7684\u5bf9\u8c61\u6709\u673a\u4f1a\u611f\u53d7\u5230\u795d\u798f\u3002\\n\u5982\u679c\u53ef\u4ee5\u518d\u63d0\u5347\u4e13\u6ce8\uff0c\u5e76\u66f4\u5177\u4f53\u5730\u79f0\u547c\u56de\u5411\u5bf9\u8c61\uff0c\u5584\u679c\u4f1a\u6d41\u5f97\u66f4\u7a33\u3001\u66f4\u8fdc\u3002\"\n        },\n        high: {\n          title: \"\u80fd\u91cf\u5f3a \u00b7 \u6c34\u52bf\u5982\u6cb3\u5ddd\",\n          desc:\n            \"\u4f60\u7684\u5fc3\u5ff5\u6e05\u6670\u3001\u56de\u5411\u53ca\u65f6\uff0c\u5584\u6d41\u7a33\u5b9a\u800c\u6709\u529b\u3002\\n\u5f88\u9002\u5408\u628a\u8fd9\u79cd\u201c\u5f53\u4e0b\u53d1\u613f\u201d\u7684\u6a21\u5f0f\u53d8\u6210\u6bcf\u5929\u7684\u4e60\u60ef\uff0c\u8ba9\u65e5\u5e38\u5c0f\u5584\u53d8\u6210\u6301\u7eed\u62a4\u6301\u4f60\u7684\u529b\u91cf\u3002\"\n        },\n        ultra: {\n          title: \"\u80fd\u91cf\u6781\u9ad8 \u00b7 \u6c34\u67f1\u76f4\u51b2\u4e91\u9704\",\n          desc:\n            \"\u53d1\u5fc3\u6e05\u51c0\u575a\u5b9a\u3001\u5bf9\u8c61\u660e\u786e\u3001\u56de\u5411\u5728\u5f53\u4e0b\u5b8c\u6210\uff0c\u51e0\u4e4e\u6ca1\u6709\u4ec0\u4e48\u963b\u788d\u5584\u6d41\u3002\\n\u8fd9\u662f\u4e00\u4e2a\u5f88\u9002\u5408\u53d1\u957f\u8fdc\u5927\u613f\u3001\u4e3a\u81ea\u5df1\u4e0e\u4e00\u5207\u4f17\u751f\u7948\u613f\u7684\u65f6\u523b\u3002\"\n        }\n      },\n      noDeedNote:\n        \"\uff08\u63d0\u793a\uff1a\u4f60\u8fd8\u6ca1\u6709\u5199\u4e0b\u5584\u884c\u5185\u5bb9\u3002\u6307\u6570\u5df2\u7ecf\u8ba1\u7b97\u51fa\u6765\uff0c\u4f46\u5efa\u8bae\u5199\u4e0b\u6765\uff0c\u8ba9\u5fc3\u66f4\u6e05\u695a\u3002\uff09\",\n      mantraNotePrefix: \"\u4f60\u6240\u53d1\u7684\u613f\u53e5\uff1a\u300c\",\n      mantraNoteSuffix:\n        \"\u300d\u5df2\u7ecf\u88ab\u8bb0\u5165\u8fd9\u4e00\u6b21\u7684\u56de\u5411\u7ec3\u4e60\u4e2d\uff0c\u53ef\u4f5c\u4e3a\u4f60\u672a\u6765\u91cd\u590d\u4f7f\u7528\u7684\u201c\u4e2a\u4eba\u56de\u5411\u5492\u8bed\u201d\u3002\",\n      formula: (base, typeLabel, intentionScore, intention, timingScore, timingLabel, targetScore, targetLabel) =>\n        `\u8ba1\u7b97\u5927\u81f4\u7ed3\u6784\uff1a\u57fa\u7840\u5206 <b>${base}<\/b>\uff08${typeLabel}\uff09 + \u5fc3\u5ff5\u5206 <b>${intentionScore}<\/b>\uff08\u4e13\u6ce8\u5ea6 ${intention}\/10\uff09 + \u65f6\u95f4\u52a0\u6210 <b>${timingScore}<\/b>\uff08${timingLabel}\uff09 + \u5bf9\u8c61\u6e05\u6670\u52a0\u6210 <b>${targetScore}<\/b>\uff08${targetLabel}\uff09 \u2192 \u5c01\u9876 100 \u5206\u3002`,\n      modelSummaryTitle: \"\u6a21\u578b\u8bf4\u660e\",\n      modelSummaryBody:\n        \"\u672c\u9875\u9762\u4e3a Louisthaiology \u5b9e\u9a8c\u7248\u6a21\u578b\uff0c\u7528\u6765\u201c\u611f\u89c9\u201d\u7ecf\u5178\u4e2d\u90a3\u53e5\uff1a\u6c34\u6b63\u5728\u6d41\uff0c\u529f\u5fb7\u4e5f\u6b63\u5728\u8d70\u3002\u4e0d\u540c\u5584\u884c\u7c7b\u522b\u3001\u4e13\u6ce8\u5ea6\u3001\u56de\u5411\u65f6\u95f4\u4e0e\u5bf9\u8c61\u6e05\u6670\u5ea6\uff0c\u53ea\u662f\u88ab\u6620\u5c04\u6210 0\u2013100 \u7684\u8bad\u7ec3\u6307\u6570\u2014\u2014\u4e0d\u662f\u5b87\u5b99\u771f\u6b63\u7684\u7ec8\u6781\u8bc4\u5206\u3002\",\n      footer:\n        \"Louisthaiology \u5b9e\u9a8c\u5de5\u5177 \u00b7 \u300c\u6c34\u4e00\u6d41\u52a8\uff0c\u529f\u5fb7\u5df2\u5728\u8def\u4e0a\u3002\u300d\",\n      typeLabelsFormula: {\n        dana: \"\u5e03\u65bd\u4f9b\u517b\uff08\u0e17\u0e32\u0e19 Dana\uff09\",\n        sila: \"\u5b88\u6212\u6301\u5f8b\uff08\u0e28\u0e35\u0e25 Sila\uff09\",\n        bhavana: \"\u7985\u4fee\u5ff5\u4f5b\uff08\u0e20\u0e32\u0e27\u0e19\u0e32 Bh\u0101van\u0101\uff09\",\n        help: \"\u5e2e\u52a9\u670d\u52a1\u4f17\u751f\",\n        forgive: \"\u5bbd\u6055\u5fcd\u8fb1\",\n        rejoice: \"\u968f\u559c\u795d\u798f\"\n      },\n      timingLabelFormula: {\n        immediate: \"\u5728\u5584\u884c\u5f53\u4e0b\u5c31\u56de\u5411\",\n        sameDay: \"\u540c\u4e00\u5929\u7a0d\u540e\u624d\u56de\u5411\",\n        later: \"\u9694\u51e0\u5929\u4e4b\u540e\u624d\u56de\u5411\"\n      },\n      targetLabelFormula: {\n        specific: \"\u5bf9\u8c61\u975e\u5e38\u5177\u4f53\u6e05\u6670\",\n        mixed: \"\u5bf9\u8c61\u5927\u81f4\u660e\u786e\",\n        vague: \"\u5bf9\u8c61\u6bd4\u8f83\u6a21\u7cca\"\n      },\n      signLabel: \"\u7b7e\u540d Signed by \u0e25\u0e07\u0e19\u0e32\u0e21\",\n      signName: \"LOUIS THAI \u00b7 \u547d\u7406\u5bfc\u5e08\"\n    },\n\n    th: {\n      title: \"\u0e14\u0e31\u0e0a\u0e19\u0e35\u0e1e\u0e25\u0e31\u0e07\u0e01\u0e32\u0e23\u0e2d\u0e38\u0e17\u0e34\u0e28\u0e1a\u0e38\u0e0d\",\n      subtitle: \"\u0e19\u0e49\u0e33\u0e01\u0e33\u0e25\u0e31\u0e07\u0e44\u0e2b\u0e25 \u00b7 \u300c\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e19\u0e49\u0e33\u0e44\u0e2b\u0e25 \u0e1a\u0e38\u0e0d\u0e01\u0e47\u0e01\u0e33\u0e25\u0e31\u0e07\u0e44\u0e1b\u0e14\u0e49\u0e27\u0e22\u300d\",\n      heroNote:\n        \"\u0e40\u0e04\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e21\u0e37\u0e2d\u0e19\u0e35\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e15\u0e49\u0e19\u0e41\u0e1a\u0e1a\u0e02\u0e2d\u0e07 Louisthaiology \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e1d\u0e36\u0e01 \u201c\u0e2d\u0e38\u0e17\u0e34\u0e28\u0e1a\u0e38\u0e0d\u0e43\u0e19\u0e02\u0e13\u0e30\u0e17\u0e33\u0e1a\u0e38\u0e0d\u201d \u0e43\u0e0a\u0e49\u0e2a\u0e40\u0e01\u0e25 0\u2013100 \u0e41\u0e2a\u0e14\u0e07\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e44\u0e2b\u0e25\u0e02\u0e2d\u0e07\u0e1a\u0e38\u0e0d.\",\n      labelClientName: \"\u0e0a\u0e37\u0e48\u0e2d\u0e1c\u0e39\u0e49\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e23\u0e27\u0e08\",\n      labelDob: \"\u0e27\u0e31\u0e19\u0e40\u0e14\u0e37\u0e2d\u0e19\u0e1b\u0e35\u0e40\u0e01\u0e34\u0e14\",\n      labelWhatsApp: \"\u0e2b\u0e21\u0e32\u0e22\u0e40\u0e25\u0e02 WhatsApp\",\n      phClientName: \"\u0e40\u0e0a\u0e48\u0e19: Thawin Wanpanwan\",\n      phWhatsAppNumber: \"+60 1X-XXX XXXX\",\n      section1Title: \"\u0e51 \u00b7 \u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e1a\u0e38\u0e0d\u0e17\u0e35\u0e48\u0e01\u0e33\u0e25\u0e31\u0e07\u0e17\u0e33\u0e2d\u0e22\u0e39\u0e48\u0e15\u0e2d\u0e19\u0e19\u0e35\u0e49\",\n      section1Hint:\n        \"\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07: \u0e16\u0e27\u0e32\u0e22\u0e17\u0e32\u0e19, \u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d\u0e1c\u0e39\u0e49\u0e2d\u0e37\u0e48\u0e19, \u0e14\u0e39\u0e41\u0e25\u0e1e\u0e48\u0e2d\u0e41\u0e21\u0e48, \u0e2a\u0e27\u0e14\u0e21\u0e19\u0e15\u0e4c\u0e41\u0e25\u0e49\u0e27\u0e2d\u0e38\u0e17\u0e34\u0e28, \u0e23\u0e31\u0e01\u0e29\u0e32\u0e28\u0e35\u0e25, \u0e1b\u0e25\u0e48\u0e2d\u0e22\u0e2a\u0e31\u0e15\u0e27\u0e4c \u0e2f\u0e25\u0e2f\",\n      labelDeedText: \"\u0e15\u0e2d\u0e19\u0e19\u0e35\u0e49\u0e04\u0e38\u0e13\u0e01\u0e33\u0e25\u0e31\u0e07\u0e17\u0e33\u0e1a\u0e38\u0e0d\u0e2d\u0e30\u0e44\u0e23\u0e2d\u0e22\u0e39\u0e48?\",\n      deedPlaceholder:\n        \"\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07: \u0e27\u0e31\u0e19\u0e19\u0e35\u0e49\u0e09\u0e31\u0e19\u0e16\u0e27\u0e32\u0e22\u0e2d\u0e32\u0e2b\u0e32\u0e23\u0e43\u0e2b\u0e49\u0e1e\u0e48\u0e2d\u0e41\u0e21\u0e48 \u0e41\u0e25\u0e49\u0e27\u0e15\u0e31\u0e49\u0e07\u0e08\u0e34\u0e15\u0e2d\u0e18\u0e34\u0e29\u0e10\u0e32\u0e19\u0e43\u0e2b\u0e49\u0e17\u0e48\u0e32\u0e19\u0e21\u0e35\u0e2a\u0e38\u0e02\u0e20\u0e32\u0e1e\u0e41\u0e02\u0e47\u0e07\u0e41\u0e23\u0e07 \u0e2d\u0e32\u0e22\u0e38\u0e22\u0e37\u0e19.\",\n      labelDeedType: \"\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e02\u0e2d\u0e07\u0e1a\u0e38\u0e0d\",\n      deedTypes: {\n        dana: \"\u0e17\u0e32\u0e19 \/ \u0e01\u0e32\u0e23\u0e43\u0e2b\u0e49\",\n        sila: \"\u0e28\u0e35\u0e25 \/ \u0e01\u0e32\u0e23\u0e2a\u0e33\u0e23\u0e27\u0e21\",\n        bhavana: \"\u0e20\u0e32\u0e27\u0e19\u0e32 \/ \u0e2a\u0e21\u0e32\u0e18\u0e34 \u0e2a\u0e27\u0e14\u0e21\u0e19\u0e15\u0e4c\",\n        help: \"\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d \u0e23\u0e31\u0e1a\u0e43\u0e0a\u0e49\u0e1c\u0e39\u0e49\u0e2d\u0e37\u0e48\u0e19\",\n        forgive: \"\u0e01\u0e32\u0e23\u0e43\u0e2b\u0e49\u0e2d\u0e20\u0e31\u0e22 \/ \u0e2d\u0e14\u0e17\u0e19 \u0e2d\u0e14\u0e01\u0e25\u0e31\u0e49\u0e19\",\n        rejoice: \"\u0e2d\u0e19\u0e38\u0e42\u0e21\u0e17\u0e19\u0e32 \/ \u0e2a\u0e48\u0e07\u0e43\u0e08\u0e2d\u0e27\u0e22\u0e1e\u0e23\"\n      },\n      labelIntention: \"\u0e23\u0e30\u0e14\u0e31\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e15\u0e31\u0e49\u0e07\u0e43\u0e08\u0e02\u0e2d\u0e07\u0e08\u0e34\u0e15\",\n      hintIntention: \"(1 = \u0e43\u0e08\u0e25\u0e2d\u0e22\u0e07\u0e48\u0e32\u0e22 \u00b7 10 = \u0e43\u0e08\u0e19\u0e34\u0e48\u0e07 \u0e0a\u0e31\u0e14 \u0e43\u0e2a)\",\n      labelTiming: \"\u0e04\u0e38\u0e13\u0e2d\u0e38\u0e17\u0e34\u0e28\u0e1a\u0e38\u0e0d\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e44\u0e2b\u0e23\u0e48?\",\n      timing: {\n        immediate: \"\u0e2d\u0e38\u0e17\u0e34\u0e28\u0e43\u0e19\u0e02\u0e13\u0e30\u0e17\u0e33\u0e1a\u0e38\u0e0d\u0e19\u0e31\u0e49\u0e19\u0e40\u0e25\u0e22\",\n        sameDay: \"\u0e2d\u0e38\u0e17\u0e34\u0e28\u0e20\u0e32\u0e22\u0e43\u0e19\u0e27\u0e31\u0e19\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19\",\n        later: \"\u0e1b\u0e25\u0e48\u0e2d\u0e22\u0e43\u0e2b\u0e49\u0e40\u0e27\u0e25\u0e32\u0e1c\u0e48\u0e32\u0e19\u0e44\u0e1b\u0e2b\u0e25\u0e32\u0e22\u0e27\u0e31\u0e19\u0e41\u0e25\u0e49\u0e27\u0e04\u0e48\u0e2d\u0e22\u0e2d\u0e38\u0e17\u0e34\u0e28\"\n      },\n      labelTarget: \"\u0e04\u0e27\u0e32\u0e21\u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19\u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e23\u0e31\u0e1a\u0e1a\u0e38\u0e0d\",\n      target: {\n        specific: \"\u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19\u0e21\u0e32\u0e01: \u0e23\u0e30\u0e1a\u0e38\u0e0a\u0e37\u0e48\u0e2d\u0e1a\u0e38\u0e04\u0e04\u0e25\u0e2b\u0e23\u0e37\u0e2d\u0e01\u0e25\u0e38\u0e48\u0e21\u0e0a\u0e31\u0e14\",\n        mixed: \"\u0e01\u0e27\u0e49\u0e32\u0e07 \u0e46: \u0e40\u0e0a\u0e48\u0e19 \u0e2a\u0e23\u0e23\u0e1e\u0e2a\u0e31\u0e15\u0e27\u0e4c\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e25\u0e32\u0e22, \u0e40\u0e08\u0e49\u0e32\u0e01\u0e23\u0e23\u0e21\u0e19\u0e32\u0e22\u0e40\u0e27\u0e23\",\n        vague: \"\u0e44\u0e21\u0e48\u0e04\u0e48\u0e2d\u0e22\u0e0a\u0e31\u0e14: \u0e41\u0e04\u0e48\u0e2d\u0e27\u0e22\u0e1e\u0e23\u0e23\u0e27\u0e21 \u0e46\"\n      },\n      labelMantra: \"\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e29\u0e10\u0e32\u0e19\u0e43\u0e19\u0e43\u0e08 (\u0e08\u0e30\u0e01\u0e23\u0e2d\u0e01\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e01\u0e47\u0e44\u0e14\u0e49)\",\n      mantraPlaceholder: \"\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07: \u201c\u0e02\u0e2d\u0e43\u0e2b\u0e49\u0e2a\u0e23\u0e23\u0e1e\u0e2a\u0e31\u0e15\u0e27\u0e4c\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e25\u0e32\u0e22 \u0e1e\u0e49\u0e19\u0e17\u0e38\u0e01\u0e02\u0e4c\u0e1e\u0e1a\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e38\u0e02\u0e17\u0e35\u0e48\u0e41\u0e17\u0e49\u0e08\u0e23\u0e34\u0e07\u201d\",\n      btnCalc: \"\u0e04\u0e33\u0e19\u0e27\u0e13\u0e14\u0e31\u0e0a\u0e19\u0e35\u0e1e\u0e25\u0e31\u0e07\u0e1a\u0e38\u0e0d\",\n      btnReset: \"\u0e25\u0e49\u0e32\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\",\n      btnPDF: \"\u0e2a\u0e48\u0e07\u0e2d\u0e2d\u0e01 PDF \u0e01\u0e32\u0e23\u0e4c\u0e14\",\n      section2Title: \"\u0e52 \u00b7 \u0e1c\u0e25\u0e25\u0e31\u0e1e\u0e18\u0e4c\u0e01\u0e32\u0e23\u0e2d\u0e38\u0e17\u0e34\u0e28\u0e1a\u0e38\u0e0d\",\n      levels: {\n        low: {\n          title: \"\u0e1e\u0e25\u0e31\u0e07\u0e04\u0e48\u0e2d\u0e19\u0e02\u0e49\u0e32\u0e07\u0e15\u0e48\u0e33 \u00b7 \u0e19\u0e49\u0e33\u0e40\u0e1e\u0e34\u0e48\u0e07\u0e0b\u0e36\u0e21\u0e25\u0e07\u0e14\u0e34\u0e19\",\n          desc:\n            \"\u0e40\u0e21\u0e25\u0e47\u0e14\u0e41\u0e2b\u0e48\u0e07\u0e1a\u0e38\u0e0d\u0e16\u0e39\u0e01\u0e2b\u0e27\u0e48\u0e32\u0e19\u0e41\u0e25\u0e49\u0e27 \u0e41\u0e15\u0e48\u0e08\u0e34\u0e15\u0e2d\u0e32\u0e08\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e04\u0e48\u0e2d\u0e22\u0e19\u0e34\u0e48\u0e07 \u0e2b\u0e23\u0e37\u0e2d\u0e2d\u0e38\u0e17\u0e34\u0e28\u0e0a\u0e49\u0e32\u0e01\u0e27\u0e48\u0e32\u0e08\u0e31\u0e07\u0e2b\u0e27\u0e30\u0e17\u0e33\u0e1a\u0e38\u0e0d.\\n\u0e25\u0e2d\u0e07\u0e1d\u0e36\u0e01\u0e2d\u0e38\u0e17\u0e34\u0e28\u0e43\u0e19\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35\u0e17\u0e35\u0e48\u0e01\u0e33\u0e25\u0e31\u0e07\u0e17\u0e33\u0e14\u0e35 \u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e40\u0e1b\u0e34\u0e14\u0e01\u0e4a\u0e2d\u0e01\u0e43\u0e2b\u0e49\u0e19\u0e49\u0e33\u0e44\u0e2b\u0e25\u0e2d\u0e2d\u0e01\u0e17\u0e31\u0e19\u0e17\u0e35.\"\n        },\n        mid: {\n          title: \"\u0e1e\u0e25\u0e31\u0e07\u0e1b\u0e32\u0e19\u0e01\u0e25\u0e32\u0e07 \u00b7 \u0e2a\u0e32\u0e22\u0e19\u0e49\u0e33\u0e40\u0e23\u0e34\u0e48\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e25\u0e33\u0e18\u0e32\u0e23\",\n          desc:\n            \"\u0e01\u0e32\u0e23\u0e44\u0e2b\u0e25\u0e02\u0e2d\u0e07\u0e1a\u0e38\u0e0d\u0e40\u0e23\u0e34\u0e48\u0e21\u0e0a\u0e31\u0e14 \u0e1c\u0e39\u0e49\u0e23\u0e31\u0e1a\u0e21\u0e35\u0e42\u0e2d\u0e01\u0e32\u0e2a\u0e44\u0e14\u0e49\u0e23\u0e31\u0e1a\u0e1e\u0e25\u0e31\u0e07\u0e1a\u0e38\u0e0d\u0e41\u0e25\u0e30\u0e04\u0e33\u0e2d\u0e27\u0e22\u0e1e\u0e23.\\n\u0e16\u0e49\u0e32\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e2a\u0e21\u0e32\u0e18\u0e34\u0e41\u0e25\u0e30\u0e23\u0e30\u0e1a\u0e38\u0e1c\u0e39\u0e49\u0e23\u0e31\u0e1a\u0e43\u0e2b\u0e49\u0e0a\u0e31\u0e14\u0e02\u0e36\u0e49\u0e19 \u0e2a\u0e32\u0e22\u0e19\u0e49\u0e33\u0e1a\u0e38\u0e0d\u0e08\u0e30\u0e22\u0e34\u0e48\u0e07\u0e19\u0e34\u0e48\u0e07\u0e41\u0e25\u0e30\u0e44\u0e01\u0e25.\"\n        },\n        high: {\n          title: \"\u0e1e\u0e25\u0e31\u0e07\u0e41\u0e23\u0e07\u0e14\u0e35 \u00b7 \u0e2a\u0e32\u0e22\u0e19\u0e49\u0e33\u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e41\u0e21\u0e48\u0e19\u0e49\u0e33\u0e21\u0e31\u0e48\u0e19\u0e04\u0e07\",\n          desc:\n            \"\u0e08\u0e34\u0e15\u0e04\u0e48\u0e2d\u0e19\u0e02\u0e49\u0e32\u0e07\u0e0a\u0e31\u0e14 \u0e2d\u0e38\u0e17\u0e34\u0e28\u0e17\u0e31\u0e19\u0e40\u0e27\u0e25\u0e32 \u0e01\u0e32\u0e23\u0e44\u0e2b\u0e25\u0e02\u0e2d\u0e07\u0e1a\u0e38\u0e0d\u0e21\u0e35\u0e40\u0e2a\u0e16\u0e35\u0e22\u0e23\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e21\u0e35\u0e01\u0e33\u0e25\u0e31\u0e07.\\n\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e21\u0e32\u0e01\u0e17\u0e35\u0e48\u0e08\u0e30\u0e17\u0e33\u0e40\u0e1b\u0e47\u0e19\u0e19\u0e34\u0e2a\u0e31\u0e22\u0e1b\u0e23\u0e30\u0e08\u0e33\u0e27\u0e31\u0e19 \u0e43\u0e2b\u0e49\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07\u0e14\u0e35 \u0e46 \u0e17\u0e38\u0e01\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e01\u0e25\u0e32\u0e22\u0e40\u0e1b\u0e47\u0e19\u0e40\u0e01\u0e23\u0e32\u0e30\u0e1e\u0e25\u0e31\u0e07\u0e1a\u0e38\u0e0d\u0e04\u0e38\u0e49\u0e21\u0e04\u0e23\u0e2d\u0e07\u0e0a\u0e35\u0e27\u0e34\u0e15.\"\n        },\n        ultra: {\n          title: \"\u0e1e\u0e25\u0e31\u0e07\u0e2a\u0e39\u0e07\u0e21\u0e32\u0e01 \u00b7 \u0e2a\u0e32\u0e22\u0e19\u0e49\u0e33\u0e1e\u0e38\u0e48\u0e07\u0e02\u0e36\u0e49\u0e19\u0e2a\u0e39\u0e48\u0e17\u0e49\u0e2d\u0e07\u0e1f\u0e49\u0e32\",\n          desc:\n            \"\u0e08\u0e34\u0e15\u0e15\u0e31\u0e49\u0e07\u0e21\u0e31\u0e48\u0e19 \u0e43\u0e2a \u0e1c\u0e39\u0e49\u0e23\u0e31\u0e1a\u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19 \u0e41\u0e25\u0e30\u0e2d\u0e38\u0e17\u0e34\u0e28\u0e43\u0e19\u0e27\u0e34\u0e19\u0e32\u0e17\u0e35\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e17\u0e33\u0e1a\u0e38\u0e0d \u0e41\u0e17\u0e1a\u0e44\u0e21\u0e48\u0e21\u0e35\u0e2d\u0e30\u0e44\u0e23\u0e21\u0e32\u0e02\u0e27\u0e32\u0e07\u0e17\u0e32\u0e07\u0e02\u0e2d\u0e07\u0e1a\u0e38\u0e0d.\\n\u0e08\u0e31\u0e07\u0e2b\u0e27\u0e30\u0e41\u0e1a\u0e1a\u0e19\u0e35\u0e49\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e01\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e1b\u0e13\u0e34\u0e18\u0e32\u0e19\u0e23\u0e30\u0e22\u0e30\u0e22\u0e32\u0e27 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e1b\u0e23\u0e30\u0e42\u0e22\u0e0a\u0e19\u0e4c\u0e15\u0e19\u0e41\u0e25\u0e30\u0e1c\u0e39\u0e49\u0e2d\u0e37\u0e48\u0e19.\"\n        }\n      },\n      noDeedNote:\n        \"(\u0e02\u0e49\u0e2d\u0e40\u0e2a\u0e19\u0e2d\u0e41\u0e19\u0e30: \u0e04\u0e38\u0e13\u0e22\u0e31\u0e07\u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e40\u0e02\u0e35\u0e22\u0e19\u0e27\u0e48\u0e32\u0e17\u0e33\u0e1a\u0e38\u0e0d\u0e2d\u0e30\u0e44\u0e23\u0e2d\u0e22\u0e39\u0e48 \u0e41\u0e21\u0e49\u0e08\u0e30\u0e04\u0e33\u0e19\u0e27\u0e13\u0e14\u0e31\u0e0a\u0e19\u0e35\u0e44\u0e14\u0e49\u0e41\u0e25\u0e49\u0e27 \u0e41\u0e15\u0e48\u0e01\u0e32\u0e23\u0e40\u0e02\u0e35\u0e22\u0e19\u0e08\u0e30\u0e0a\u0e48\u0e27\u0e22\u0e43\u0e2b\u0e49\u0e43\u0e08\u0e0a\u0e31\u0e14\u0e02\u0e36\u0e49\u0e19.)\",\n      mantraNotePrefix: \"\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e29\u0e10\u0e32\u0e19\u0e17\u0e35\u0e48\u0e04\u0e38\u0e13\u0e15\u0e31\u0e49\u0e07\u0e44\u0e27\u0e49\u0e04\u0e37\u0e2d \u201c\",\n      mantraNoteSuffix:\n        \"\u201d \u0e23\u0e30\u0e1a\u0e1a\u0e08\u0e30\u0e16\u0e37\u0e2d\u0e27\u0e48\u0e32\u0e40\u0e1b\u0e47\u0e19 \u201c\u0e21\u0e19\u0e15\u0e4c\u0e2d\u0e38\u0e17\u0e34\u0e28\u0e1a\u0e38\u0e0d\u0e2a\u0e48\u0e27\u0e19\u0e15\u0e31\u0e27\u201d \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e1d\u0e36\u0e01\u0e04\u0e23\u0e31\u0e49\u0e07\u0e19\u0e35\u0e49.\",\n      formula: (base, typeLabel, intentionScore, intention, timingScore, timingLabel, targetScore, targetLabel) =>\n        `\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07: \u0e04\u0e30\u0e41\u0e19\u0e19\u0e1e\u0e37\u0e49\u0e19\u0e10\u0e32\u0e19 <b>${base}<\/b> (${typeLabel}) + \u0e04\u0e30\u0e41\u0e19\u0e19\u0e2a\u0e21\u0e32\u0e18\u0e34 <b>${intentionScore}<\/b> (\u0e23\u0e30\u0e14\u0e31\u0e1a ${intention}\/10) + \u0e04\u0e30\u0e41\u0e19\u0e19\u0e08\u0e31\u0e07\u0e2b\u0e27\u0e30\u0e40\u0e27\u0e25\u0e32 <b>${timingScore}<\/b> (${timingLabel}) + \u0e04\u0e30\u0e41\u0e19\u0e19\u0e04\u0e27\u0e32\u0e21\u0e0a\u0e31\u0e14\u0e02\u0e2d\u0e07\u0e1c\u0e39\u0e49\u0e23\u0e31\u0e1a <b>${targetScore}<\/b> (${targetLabel}) \u2192 \u0e1b\u0e23\u0e31\u0e1a\u0e44\u0e21\u0e48\u0e40\u0e01\u0e34\u0e19 100 \u0e04\u0e30\u0e41\u0e19\u0e19.`,\n      modelSummaryTitle: \"\u0e04\u0e33\u0e2d\u0e18\u0e34\u0e1a\u0e32\u0e22\u0e42\u0e21\u0e40\u0e14\u0e25\",\n      modelSummaryBody:\n        \"\u0e2b\u0e19\u0e49\u0e32\u0e19\u0e35\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e42\u0e21\u0e40\u0e14\u0e25\u0e17\u0e14\u0e25\u0e2d\u0e07\u0e02\u0e2d\u0e07 Louisthaiology \u0e43\u0e0a\u0e49\u0e2a\u0e40\u0e01\u0e25 0\u2013100 \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e43\u0e2b\u0e49\u0e40\u0e23\u0e32\u0e23\u0e39\u0e49\u0e2a\u0e36\u0e01\u0e01\u0e31\u0e1a\u0e1b\u0e23\u0e30\u0e42\u0e22\u0e04\u0e27\u0e48\u0e32 \u201c\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e19\u0e49\u0e33\u0e01\u0e33\u0e25\u0e31\u0e07\u0e44\u0e2b\u0e25 \u0e1a\u0e38\u0e0d\u0e01\u0e47\u0e01\u0e33\u0e25\u0e31\u0e07\u0e44\u0e1b\u201d \u0e44\u0e21\u0e48\u0e43\u0e0a\u0e48\u0e04\u0e30\u0e41\u0e19\u0e19\u0e15\u0e31\u0e14\u0e2a\u0e34\u0e19\u0e08\u0e32\u0e01\u0e1f\u0e49\u0e32\u0e14\u0e34\u0e19.\",\n      footer:\n        \"Louisthaiology Experimental Tool \u00b7 \u201c\u0e40\u0e21\u0e37\u0e48\u0e2d\u0e19\u0e49\u0e33\u0e44\u0e2b\u0e25 \u0e1a\u0e38\u0e0d\u0e01\u0e47\u0e01\u0e33\u0e25\u0e31\u0e07\u0e44\u0e1b\u0e14\u0e49\u0e27\u0e22\u0e41\u0e25\u0e49\u0e27\u201d\",\n      typeLabelsFormula: {\n        dana: \"\u0e17\u0e32\u0e19 \/ \u0e01\u0e32\u0e23\u0e43\u0e2b\u0e49\",\n        sila: \"\u0e28\u0e35\u0e25 \/ \u0e01\u0e32\u0e23\u0e2a\u0e33\u0e23\u0e27\u0e21\",\n        bhavana: \"\u0e20\u0e32\u0e27\u0e19\u0e32 \/ \u0e2a\u0e21\u0e32\u0e18\u0e34 \u0e2a\u0e27\u0e14\u0e21\u0e19\u0e15\u0e4c\",\n        help: \"\u0e0a\u0e48\u0e27\u0e22\u0e40\u0e2b\u0e25\u0e37\u0e2d\u0e1c\u0e39\u0e49\u0e2d\u0e37\u0e48\u0e19\",\n        forgive: \"\u0e01\u0e32\u0e23\u0e43\u0e2b\u0e49\u0e2d\u0e20\u0e31\u0e22\",\n        rejoice: \"\u0e2d\u0e19\u0e38\u0e42\u0e21\u0e17\u0e19\u0e32 \/ \u0e2a\u0e48\u0e07\u0e43\u0e08\u0e2d\u0e27\u0e22\u0e1e\u0e23\"\n      },\n      timingLabelFormula: {\n        immediate: \"\u0e2d\u0e38\u0e17\u0e34\u0e28\u0e43\u0e19\u0e02\u0e13\u0e30\u0e17\u0e33\u0e1a\u0e38\u0e0d\",\n        sameDay: \"\u0e2d\u0e38\u0e17\u0e34\u0e28\u0e43\u0e19\u0e27\u0e31\u0e19\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19\",\n        later: \"\u0e1b\u0e25\u0e48\u0e2d\u0e22\u0e43\u0e2b\u0e49\u0e40\u0e27\u0e25\u0e32\u0e1c\u0e48\u0e32\u0e19\u0e2b\u0e25\u0e32\u0e22\u0e27\u0e31\u0e19\u0e41\u0e25\u0e49\u0e27\u0e08\u0e36\u0e07\u0e2d\u0e38\u0e17\u0e34\u0e28\"\n      },\n      targetLabelFormula: {\n        specific: \"\u0e1c\u0e39\u0e49\u0e23\u0e31\u0e1a\u0e0a\u0e31\u0e14\u0e40\u0e08\u0e19\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e40\u0e08\u0e32\u0e30\u0e08\u0e07\",\n        mixed: \"\u0e1c\u0e39\u0e49\u0e23\u0e31\u0e1a\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e25\u0e38\u0e48\u0e21\u0e01\u0e27\u0e49\u0e32\u0e07 \u0e46\",\n        vague: \"\u0e1c\u0e39\u0e49\u0e23\u0e31\u0e1a\u0e04\u0e48\u0e2d\u0e19\u0e02\u0e49\u0e32\u0e07\u0e04\u0e25\u0e38\u0e21\u0e40\u0e04\u0e23\u0e37\u0e2d\"\n      },\n      signLabel: \"\u0e25\u0e07\u0e19\u0e32\u0e21 Signed by \u7b7e\u540d\",\n      signName: \"\u0e2b\u0e25\u0e38\u0e22\u0e2a\u0e4c \u0e44\u0e17\u0e22 \u00b7 \u0e1c\u0e39\u0e49\u0e19\u0e33\u0e17\u0e32\u0e07\u0e1a\u0e38\u0e0d\"\n    }\n  };\n\n  let currentLang = \"en\";\n  let lastCalcDate = null;\n\n  function setLanguage(lang) {\n    currentLang = lang;\n    const t = i18n[lang];\n\n    document.getElementById(\"titleText\").textContent = t.title;\n    document.getElementById(\"subtitleText\").textContent = t.subtitle;\n    document.getElementById(\"heroNote\").textContent = t.heroNote;\n\n    document.getElementById(\"labelClientName\").textContent = t.labelClientName;\n    document.getElementById(\"labelDob\").textContent = t.labelDob;\n    document.getElementById(\"labelWhatsApp\").textContent = t.labelWhatsApp;\n    document.getElementById(\"clientName\").placeholder = t.phClientName;\n    document.getElementById(\"clientWhatsApp\").placeholder = t.phWhatsApp;\n\n    document.getElementById(\"section1Title\").textContent = t.section1Title;\n    document.getElementById(\"section1Hint\").textContent = t.section1Hint;\n    document.getElementById(\"labelDeedText\").textContent = t.labelDeedText;\n    document.getElementById(\"deedText\").placeholder = t.deedPlaceholder;\n\n    document.getElementById(\"labelDeedType\").textContent = t.labelDeedType;\n    document.getElementById(\"labelDana\").textContent = t.deedTypes.dana;\n    document.getElementById(\"labelSila\").textContent = t.deedTypes.sila;\n    document.getElementById(\"labelBhavana\").textContent = t.deedTypes.bhavana;\n    document.getElementById(\"labelHelp\").textContent = t.deedTypes.help;\n    document.getElementById(\"labelForgive\").textContent = t.deedTypes.forgive;\n    document.getElementById(\"labelRejoice\").textContent = t.deedTypes.rejoice;\n\n    document.getElementById(\"labelIntention\").textContent = t.labelIntention;\n    document.getElementById(\"hintIntention\").textContent = t.hintIntention;\n\n    document.getElementById(\"labelTiming\").textContent = t.labelTiming;\n    document.getElementById(\"timingImmediate\").textContent = t.timing.immediate;\n    document.getElementById(\"timingSameDay\").textContent = t.timing.sameDay;\n    document.getElementById(\"timingLater\").textContent = t.timing.later;\n\n    document.getElementById(\"labelTarget\").textContent = t.labelTarget;\n    document.getElementById(\"targetSpecific\").textContent = t.target.specific;\n    document.getElementById(\"targetMixed\").textContent = t.target.mixed;\n    document.getElementById(\"targetVague\").textContent = t.target.vague;\n\n    document.getElementById(\"labelMantra\").textContent = t.labelMantra;\n    document.getElementById(\"mantraText\").placeholder = t.mantraPlaceholder;\n\n    document.getElementById(\"btnCalcText\").textContent = t.btnCalc;\n    document.getElementById(\"btnResetText\").textContent = t.btnReset;\n    document.getElementById(\"btnPDFText\").textContent = t.btnPDF;\n\n    document.getElementById(\"section2Title\").textContent = t.section2Title;\n    document.getElementById(\"modelSummaryTitle\").textContent =\n      t.modelSummaryTitle;\n    document.getElementById(\"modelSummaryBody\").textContent =\n      t.modelSummaryBody;\n    document.getElementById(\"footerText\").textContent = t.footer;\n\n    document.getElementById(\"signatureLabel\").textContent = t.signLabel;\n    document.getElementById(\"signatureName\").textContent = t.signName;\n\n    document\n      .querySelectorAll(\".lang-btn\")\n      .forEach((btn) => btn.classList.remove(\"active\"));\n    const activeBtn = document.querySelector(\n      `.lang-btn[data-lang=\"${lang}\"]`\n    );\n    if (activeBtn) activeBtn.classList.add(\"active\");\n  }\n\n  const slider = document.getElementById(\"intentionSlider\");\n  const sliderValue = document.getElementById(\"intentionValue\");\n  slider.addEventListener(\"input\", () => {\n    sliderValue.textContent = slider.value;\n  });\n\n  function calculateIndex() {\n    const t = i18n[currentLang];\n\n    const name = document.getElementById(\"clientName\").value.trim();\n    const dob = document.getElementById(\"clientDob\").value;\n    const wa = document.getElementById(\"clientWhatsApp\").value.trim();\n\n    const deedText = document.getElementById(\"deedText\").value.trim();\n    const deedType = document.querySelector(\"input[name='deedType']:checked\")\n      .value;\n    const intention = parseInt(slider.value, 10);\n    const timing = document.getElementById(\"timingSelect\").value;\n    const target = document.getElementById(\"targetSelect\").value;\n    const mantra = document.getElementById(\"mantraText\").value.trim();\n\n    let base = 0;\n    switch (deedType) {\n      case \"dana\": base = 32; break;\n      case \"sila\": base = 35; break;\n      case \"bhavana\": base = 38; break;\n      case \"help\": base = 30; break;\n      case \"forgive\": base = 34; break;\n      case \"rejoice\": base = 26; break;\n    }\n\n    const intentionScore = intention * 3;\n\n    let timingScore = 0;\n    if (timing === \"immediate\") timingScore = 20;\n    else if (timing === \"sameDay\") timingScore = 10;\n\n    let targetScore = 0;\n    if (target === \"specific\") targetScore = 10;\n    else if (target === \"mixed\") targetScore = 6;\n    else targetScore = 3;\n\n    let total = base + intentionScore + timingScore + targetScore;\n    if (total > 100) total = 100;\n    if (total < 0) total = 0;\n\n    const tLevels = t.levels;\n    let levelData;\n    if (total < 40) levelData = tLevels.low;\n    else if (total < 70) levelData = tLevels.mid;\n    else if (total < 90) levelData = tLevels.high;\n    else levelData = tLevels.ultra;\n\n    let desc = levelData.desc;\n    if (!deedText) {\n      desc += \"\\n\\n\" + t.noDeedNote;\n    }\n    if (mantra) {\n      desc += \"\\n\\n\" + t.mantraNotePrefix + mantra + t.mantraNoteSuffix;\n    }\n\n    const typeLabel =\n      t.typeLabelsFormula[deedType] || t.deedTypes[deedType] || \"\";\n    const timingLabel =\n      t.timingLabelFormula[timing] || t.timing[timing] || \"\";\n    const targetLabel =\n      t.targetLabelFormula[target] || t.target[target] || \"\";\n\n    const formulaText = t.formula(\n      base,\n      typeLabel,\n      intentionScore,\n      intention,\n      timingScore,\n      timingLabel,\n      targetScore,\n      targetLabel\n    );\n\n    document.getElementById(\"scoreNumber\").textContent = total.toString();\n    document.getElementById(\"scoreLevel\").textContent = levelData.title;\n    document.getElementById(\"scoreDesc\").textContent = desc;\n    document.getElementById(\"formulaText\").innerHTML = formulaText;\n\n    \/\/ \u5ba2\u6237\u4fe1\u606f\u586b\u5165\u5361\u7247\u53f3\u4e0a\u89d2\n    const lc = t.labelClientName || \"Name\";\n    const ld = t.labelDob || \"Date of birth\";\n    const lw = t.labelWhatsApp || \"WhatsApp\";\n    document.getElementById(\"cardClientNameLine\").textContent =\n      `${lc}: ${name || \"-\"}`;\n    document.getElementById(\"cardClientDobLine\").textContent =\n      `${ld}: ${dob || \"-\"}`;\n    document.getElementById(\"cardClientWaLine\").textContent =\n      `${lw}: ${wa || \"-\"}`;\n\n    \/\/ \u65f6\u95f4\u6233\u663e\u793a\n    lastCalcDate = new Date();\n    const months = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];\n    const d = String(lastCalcDate.getDate()).padStart(2,\"0\");\n    const mLabel = months[lastCalcDate.getMonth()];\n    const y = lastCalcDate.getFullYear();\n    const hh = String(lastCalcDate.getHours()).padStart(2,\"0\");\n    const mm = String(lastCalcDate.getMinutes()).padStart(2,\"0\");\n    document.getElementById(\"cardTimestamp\").textContent =\n      `Session: ${d}-${mLabel}-${y} ${hh}:${mm}`;\n\n    \/\/ \u663e\u793a\u5361\u7247\u5916\u6846\n    document.getElementById(\"cardWrapper\").classList.add(\"visible\");\n\n    return {\n      total,\n      typeLabel,\n      timingLabel,\n      targetLabel,\n      intention,\n      intentionScore,\n      timingScore,\n      targetScore\n    };\n  }\n\n  document.getElementById(\"calcBtn\").addEventListener(\"click\", () => {\n    calculateIndex();\n    document.getElementById(\"cardWrapper\").scrollIntoView({\n      behavior: \"smooth\",\n      block: \"start\"\n    });\n  });\n\n  \/\/ \u5bfc\u51fa PDF\uff1a\u628a\u6f02\u4eae\u5c0f\u5361\u7247\u622a\u56fe\u8fdb\u53bb\n  document.getElementById(\"pdfBtn\").addEventListener(\"click\", async () => {\n    if (!window.jspdf || !window.html2canvas) {\n      alert(\"PDF \u6216\u622a\u56fe\u5e93\u5c1a\u672a\u8f7d\u5165\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002\");\n      return;\n    }\n\n    \/\/ \u786e\u4fdd\u5148\u8ba1\u7b97\u6700\u65b0\u7ed3\u679c\n    calculateIndex();\n\n    const wrapper = document.getElementById(\"cardWrapper\");\n    if (!wrapper.classList.contains(\"visible\")) {\n      alert(\"\u8bf7\u5148\u70b9\u51fb\u300e\u8ba1\u7b97\u56de\u5411\u80fd\u91cf\u6307\u6570\u300f\u3002\");\n      return;\n    }\n\n    const nameRaw = document.getElementById(\"clientName\").value.trim();\n    let safeName = nameRaw.replace(\/\\s+\/g,\"_\").replace(\/[^A-Za-z0-9_\\-]\/g,\"\");\n    if (!safeName) safeName = \"client\";\n\n    const now = lastCalcDate || new Date();\n    const months = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];\n    const d = String(now.getDate()).padStart(2,\"0\");\n    const mLabel = months[now.getMonth()];\n    const y = now.getFullYear();\n    const hh = String(now.getHours()).padStart(2,\"0\");\n    const mm = String(now.getMinutes()).padStart(2,\"0\");\n    const stamp = `${d}${mLabel}${y}_${hh}.${mm}`;\n\n    const filename = `${safeName}_boon_transfer_energy_index_check_${stamp}.pdf`;\n\n    const canvas = await html2canvas(wrapper, {\n      scale: 2,\n      backgroundColor: null\n    });\n    const imgData = canvas.toDataURL(\"image\/png\");\n\n    const { jsPDF } = window.jspdf;\n    const pdf = new jsPDF({ unit: \"mm\", format: \"a4\" });\n    const pageWidth = pdf.internal.pageSize.getWidth();\n    const pageHeight = pdf.internal.pageSize.getHeight();\n    const margin = 10;\n    const imgWidth = pageWidth - margin * 2;\n    const imgHeight = canvas.height * imgWidth \/ canvas.width;\n    const posX = margin;\n    const posY = (pageHeight - imgHeight) \/ 2;\n\n    pdf.addImage(imgData, \"PNG\", posX, posY, imgWidth, imgHeight);\n    pdf.save(filename);\n  });\n\n  document.getElementById(\"resetBtn\").addEventListener(\"click\", () => {\n    document.getElementById(\"clientName\").value = \"\";\n    document.getElementById(\"clientDob\").value = \"\";\n    document.getElementById(\"clientWhatsApp\").value = \"\";\n    document.getElementById(\"deedText\").value = \"\";\n    document.getElementById(\"mantraText\").value = \"\";\n    slider.value = 7;\n    sliderValue.textContent = \"7\";\n    document.getElementById(\"timingSelect\").value = \"immediate\";\n    document.getElementById(\"targetSelect\").value = \"specific\";\n    document.querySelector(\"input[name='deedType'][value='dana']\").checked = true;\n    document.getElementById(\"cardWrapper\").classList.remove(\"visible\");\n  });\n\n  document.querySelectorAll(\".lang-btn\").forEach((btn) => {\n    btn.addEventListener(\"click\", () => {\n      const lang = btn.getAttribute(\"data-lang\");\n      setLanguage(lang);\n    });\n  });\n\n  setLanguage(\"en\");\n<\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Merit Dedication Energy Index (MDET) \u00b7 Louisthaiology LOUISTHAI \u00b7 MERIT FLOW Merit Dedication Energy Index Instant merit flow \u00b7 \u201cAs water flows, merit follows.\u201d LANG EN \u4e2d\u6587 \u0e44\u0e17\u0e22 This experimental Louisthaiology tool helps you practice dedicating merit at the very moment you perform it, visualised as an energy index from 0\u2013100. Client name Date of [&hellip;]<\/p>","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","_joinchat":[],"footnotes":""},"class_list":["post-7330","page","type-page","status-publish","hentry","entry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/pages\/7330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/comments?post=7330"}],"version-history":[{"count":4,"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/pages\/7330\/revisions"}],"predecessor-version":[{"id":7334,"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/pages\/7330\/revisions\/7334"}],"wp:attachment":[{"href":"https:\/\/louisthai.com\/hk\/wp-json\/wp\/v2\/media?parent=7330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}