{"id":4333,"date":"2026-04-07T07:55:13","date_gmt":"2026-04-07T07:55:13","guid":{"rendered":"https:\/\/ratha.me\/%d9%85%d9%88%d9%82%d8%b9-%d8%a7%d9%84%d9%88%d9%8a%d8%a8-%d8%a7%d9%84%d8%ae%d8%a7%d8%b5-%d8%a8%d9%83\/"},"modified":"2026-05-29T06:06:19","modified_gmt":"2026-05-29T06:06:19","slug":"%d9%85%d9%88%d9%82%d8%b9-%d8%a7%d9%84%d9%88%d9%8a%d8%a8-%d8%a7%d9%84%d8%ae%d8%a7%d8%b5-%d8%a8%d9%83","status":"publish","type":"page","link":"https:\/\/ratha.me\/ar\/%d9%85%d9%88%d9%82%d8%b9-%d8%a7%d9%84%d9%88%d9%8a%d8%a8-%d8%a7%d9%84%d8%ae%d8%a7%d8%b5-%d8%a8%d9%83\/","title":{"rendered":"\u0645\u0648\u0642\u0639 \u0627\u0644\u0648\u064a\u0628 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4333\" class=\"elementor elementor-4333 elementor-4330\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"wd-negative-gap elementor-element elementor-element-730d6b6 wd-section-stretch-content elementor-hidden-desktop elementor-hidden-tablet elementor-hidden-mobile e-flex e-con-boxed e-con e-parent\" data-id=\"730d6b6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2f5f2bb e-con-full e-flex e-con e-child\" data-id=\"2f5f2bb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-96d4a1c elementor-widget elementor-widget-image\" data-id=\"96d4a1c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img data-opt-id=1970998174  fetchpriority=\"high\" decoding=\"async\" width=\"368\" height=\"249\" src=\"https:\/\/mllvsvx8kkai.i.optimole.com\/w:368\/h:249\/q:mauto\/f:best\/ig:avif\/https:\/\/ratha.me\/wp-content\/uploads\/2026\/04\/Frame-2087325082.svg\" class=\"attachment-full size-full wp-image-4342\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a09bde6 color-scheme-inherit text-left elementor-widget elementor-widget-text-editor\" data-id=\"a09bde6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u0627\u0633\u062a\u062e\u062f\u0645 \u0643\u0648\u062f Ratha15 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u062e\u0635\u0645 15%<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e5acc42 e-con-full wd-section-stretch e-flex e-con e-child\" data-id=\"e5acc42\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-111c533 elementor-widget elementor-widget-image\" data-id=\"111c533\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/www.instagram.com\/websitek.in\">\n\t\t\t\t\t\t\t<img data-opt-id=874852479  fetchpriority=\"high\" decoding=\"async\" width=\"514\" height=\"70\" src=\"https:\/\/mllvsvx8kkai.i.optimole.com\/w:514\/h:70\/q:mauto\/f:best\/ig:avif\/https:\/\/ratha.me\/wp-content\/uploads\/2026\/04\/Button-6.svg\" class=\"elementor-animation-grow attachment-full size-full wp-image-4622\" alt=\"\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4348cf7 elementor-widget elementor-widget-image\" data-id=\"4348cf7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/wa.me\/96561006314\">\n\t\t\t\t\t\t\t<img data-opt-id=2132839791  data-opt-src=\"https:\/\/mllvsvx8kkai.i.optimole.com\/w:514\/h:70\/q:mauto\/f:best\/ig:avif\/https:\/\/ratha.me\/wp-content\/uploads\/2026\/04\/Button-1-2.svg\"  decoding=\"async\" width=\"514\" height=\"70\" src=\"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20514%2070%22%20width%3D%22514%22%20height%3D%2270%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect%20width%3D%22514%22%20height%3D%2270%22%20fill%3D%22transparent%22%2F%3E%3C%2Fsvg%3E\" class=\"optimole-lazy-only  elementor-animation-grow attachment-full size-full wp-image-4623\" alt=\"\" \/>\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"wd-negative-gap elementor-element elementor-element-a7516ce e-flex e-con-boxed e-con e-parent\" data-id=\"a7516ce\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-69c6360 elementor-widget elementor-widget-html\" data-id=\"69c6360\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div>\r\n\r\n\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"\u0627\u0644\u0639\u0631\u0636=\u0639\u0631\u0636 \u0627\u0644\u062c\u0647\u0627\u0632\u060c \u0645\u0642\u064a\u0627\u0633 \u0623\u0648\u0644\u064a=1.0\u060c \u0645\u0646\u0641\u0630 \u0639\u0631\u0636 \u0645\u0646\u0627\u0633\u0628=\u063a\u0637\u0627\u0621\">\r\n<title>\u0645\u0648\u0642\u0639\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u00d7 \u0631\u0627\u062b\u0627 - \u062a\u0630\u0643\u0631\u062a\u0643<\/title>\r\n<meta name=\"description\" content=\"\u062a\u0630\u0643\u0631\u062a\u0643 \u0627\u0644\u062d\u0635\u0631\u064a\u0629 \u0644\u0640 \"\u0631\u0627\u062b\u0627\" \u0645\u0646 \u0645\u0648\u0642\u0639 \"\u0648\u064a\u0628 \u0637\u0628\". \u0627\u0633\u062a\u0631\u062f \u0639\u0631\u0636\u0643\u060c \u062b\u0645 \u0623\u0631\u0633\u0644\u0647 \u0625\u0644\u0649 \u0635\u062f\u064a\u0642.\">\r\n\r\n<!-- Open Graph \/ link preview (matters when shared on WhatsApp\/social).\r\n     Set og:url and og:image to your live WordPress URLs in Phase 2. -->\r\n<meta property=\"og:type\" content=\"\u0627\u0644\u0645\u0648\u0642\u0639 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a\">\r\n<meta property=\"og:title\" content=\"\u0645\u0648\u0642\u0639\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u00d7 \u0631\u0627\u062b\u0627 - \u062e\u0635\u0645 15% \u0639\u0644\u0649 \u0645\u0634\u0631\u0648\u0639\u0643 \u0627\u0644\u0623\u0648\u0644\">\r\n<meta property=\"og:description\" content=\"\u0627\u0645\u0633\u062d \u062a\u0630\u0643\u0631\u0629 \u0631\u0627\u062b\u0627 \u0648\u0627\u0633\u062a\u0628\u062f\u0644\u0647\u0627 \u0648\u0634\u0627\u0631\u0643\u0647\u0627.\">\r\n<meta property=\"og:image\" content=\"\">\r\n<meta name=\"twitter:card\" content=\"\u0645\u0644\u062e\u0635_\u0635\u0648\u0631\u0629_\u0643\u0628\u064a\u0631\u0629_\u0635\u0648\u0631\u0629\">\r\n\r\n<!-- Runtime libs (QR + save-as-PDF\/image). Need internet; can be vendored\/inlined later. -->\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/qrious\/4.0.2\/qrious.min.js\"><\/script>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js\"><\/script>\r\n\r\n<!-- Arabic webfont (graceful fallback to system Arabic fonts if offline) -->\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin=\"\">\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Tajawal:wght@400;500;700;800&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\n\/* =========================================================================\r\n   RATHA TICKET \u2014 design tokens. Per-brand colors are overridden from CONFIG\r\n   at runtime, so this :root is just the Websitek default.\r\n   ========================================================================= *\/\r\n:root{\r\n  --brand:#a78bc9;          \/* Websitek lavender (sampled from logo) *\/\r\n  --brand-glow:#cbb6ec;     \/* lighter purple for gradients\/glow *\/\r\n  --brand-deep:#5b3e86;\r\n  --brand-rgb:167,139,201;\r\n  --brand-deep-rgb:91,62,134;\r\n  --offer-top:#ffffff;\r\n  --offer-bottom:#cbb6ec;\r\n  --accent-ink:#cbb6ec;     \/* deep purple for depth *\/\r\n  --bg:#0a090f;             \/* page background *\/\r\n  --bg-2:#120e1b;\r\n  --surface:#17131f;        \/* ticket surface *\/\r\n  --surface-2:#1e1828;\r\n  --line:rgba(var(--brand-rgb),.18);\r\n  --ink:#f6f4fa;\r\n  --ink-muted:#aba3bd;\r\n  --ok:#46d39a;\r\n  --radius:22px;\r\n  --notch:26px;             \/* perforation cut-out diameter *\/\r\n  --font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;\r\n  --mono:'SF Mono',ui-monospace,'Roboto Mono','Consolas',monospace;\r\n}\r\n\r\n*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}\r\n\r\nhtml,body{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%;}\r\nbody{\r\n  font-family:var(--font);\r\n  color:var(--ink);\r\n  background:\r\n    radial-gradient(1100px 600px at 50% -10%, rgba(var(--brand-rgb),.22), transparent 60%),\r\n    radial-gradient(800px 500px at 90% 110%, rgba(var(--brand-deep-rgb),.28), transparent 55%),\r\n    var(--bg);\r\n  min-height:100svh;\r\n  padding:8px 14px calc(8px + env(safe-area-inset-bottom));\r\n  -webkit-font-smoothing:antialiased;\r\n  overflow-x:hidden;\r\n}\r\n\r\n\/* subtle technological scanline texture over the whole page *\/\r\nbody::before{\r\n  content:\"\";\r\n  position:fixed;inset:0;pointer-events:none;z-index:0;\r\n  background-image:repeating-linear-gradient(0deg, rgba(255,255,255,.025) 0 1px, transparent 1px 3px);\r\n  mix-blend-mode:overlay;opacity:.5;\r\n}\r\n\r\n\/* =========================== TICKET ================================ *\/\r\n.shell{position:relative;z-index:1;width:100%;max-width:430px;margin:0 auto;}\r\n\r\n.ticket{\r\n  position:relative;\r\n  background:\r\n    linear-gradient(180deg, var(--surface-2), var(--surface));\r\n  border:1px solid var(--line);\r\n  border-radius:var(--radius);\r\n  box-shadow:\r\n    0 1px 0 rgba(255,255,255,.04) inset,\r\n    0 30px 70px -30px rgba(0,0,0,.85),\r\n    0 0 0 1px rgba(0,0,0,.35);\r\n  overflow:hidden;\r\n  isolation:isolate;\r\n}\r\n\r\n\/* faint brand grid inside the ticket *\/\r\n.ticket::before{\r\n  content:\"\";position:absolute;inset:0;z-index:0;pointer-events:none;\r\n  background-image:\r\n    linear-gradient(rgba(var(--brand-rgb),.05) 1px, transparent 1px),\r\n    linear-gradient(90deg, rgba(var(--brand-rgb),.05) 1px, transparent 1px);\r\n  background-size:26px 26px;\r\n  mask-image:radial-gradient(120% 80% at 50% 0%, #000 30%, transparent 80%);\r\n}\r\n\r\n\/* one-time diagonal sheen on load (settles, so screenshots stay clean) *\/\r\n.ticket::after{\r\n  content:\"\";position:absolute;top:0;left:-60%;width:55%;height:100%;z-index:3;pointer-events:none;\r\n  background:linear-gradient(105deg, transparent, rgba(255,255,255,.16), transparent);\r\n  transform:skewX(-18deg);\r\n  animation:sheen 1.5s ease-out .35s 1 both;\r\n}\r\n@keyframes sheen{from{left:-60%}to{left:160%}}\r\n\r\n.t-inner{position:relative;z-index:2;}\r\n\r\n\/* ---- top stub ---- *\/\r\n.stub{\r\n  display:flex;align-items:center;justify-content:space-between;gap:10px;\r\n  padding:10px 18px 8px;\r\n}\r\n.stub .ratha{\r\n  display:flex;align-items:center;gap:8px;font-weight:800;letter-spacing:.12em;\r\n  font-size:11px;text-transform:uppercase;color:var(--ink);white-space:nowrap;\r\n}\r\n.ratha-tag{font-size:7.5px;font-weight:600;letter-spacing:.04em;text-transform:none;white-space:normal;color:var(--ink-muted);line-height:1.25;max-width:118px;border-inline-start:1px solid var(--line);padding-inline-start:8px;}\r\n\r\n.stub .ratha .dot{\r\n  width:9px;height:9px;border-radius:50%;\r\n  background:radial-gradient(circle at 30% 30%, var(--brand-glow), var(--brand-deep));\r\n  box-shadow:0 0 12px rgba(var(--brand-rgb),.8);\r\n}\r\n.stub .kind{\r\n  font-family:var(--mono);font-size:9px;letter-spacing:.13em;text-transform:uppercase;\r\n  color:var(--accent-ink);border:1px solid var(--line);border-radius:999px;\r\n  padding:5px 8px;background:rgba(var(--brand-rgb),.07);white-space:nowrap;\r\n}\r\n\r\n.serial{\r\n  font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--ink-muted);\r\n  padding:0 20px 6px;\r\n}\r\n.serial b{color:var(--accent-ink);font-weight:600;}\r\n\r\n\/* ---- perforation ---- *\/\r\n.perf{position:relative;height:0;margin:2px 0;}\r\n.perf .line{\r\n  position:absolute;left:18px;right:18px;top:50%;\r\n  border-top:2px dashed rgba(var(--brand-rgb),.35);\r\n}\r\n.perf .notch{\r\n  position:absolute;top:50%;width:var(--notch);height:var(--notch);\r\n  background:var(--bg);border-radius:50%;transform:translateY(-50%);\r\n  box-shadow:inset 0 0 0 1px var(--line);\r\n}\r\n.perf .notch.l{left:calc(var(--notch)\/-2);}\r\n.perf .notch.r{right:calc(var(--notch)\/-2);}\r\n\r\n\/* ---- body ---- *\/\r\n.body{padding:8px 22px 4px;text-align:center;}\r\n\r\n.logo-badge{\r\n  position:relative;width:auto;margin:2px auto 4px;height:70px;\r\n  display:flex;align-items:center;justify-content:center;\r\n}\r\n.logo-badge::before{\r\n  content:\"\";position:absolute;left:50%;top:48%;width:260px;height:170px;\r\n  transform:translate(-50%,-50%);pointer-events:none;\r\n  background:radial-gradient(closest-side, rgba(var(--brand-rgb),.30), transparent 72%);\r\n  filter:blur(8px);\r\n}\r\n.logo-badge img{\r\n  position:relative;width:auto;max-width:72%;max-height:100%;object-fit:contain;\r\n  filter:drop-shadow(0 2px 8px rgba(0,0,0,.10));\r\n}\r\n\r\n.tagline{\r\n  font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;\r\n  color:var(--ink-muted);margin-bottom:4px;\r\n}\r\n\r\n.offer-label{\r\n  font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--accent-ink);\r\n  margin-bottom:8px;\r\n}\r\n.offer{\r\n  font-size:clamp(27px,8.5vw,36px);line-height:1.05;font-weight:850;letter-spacing:-.01em;\r\n  background:linear-gradient(180deg, var(--offer-top), var(--offer-bottom));\r\n  -webkit-background-clip:text;background-clip:text;color:transparent;\r\n  margin-bottom:4px;\r\n}\r\n.offer .sub{\r\n  display:block;font-size:13px;font-weight:600;letter-spacing:.02em;\r\n  color:var(--ink-muted);margin-top:4px;-webkit-text-fill-color:var(--ink-muted);\r\n}\r\n\r\n.logo-badge.plate{background:#fff;width:fit-content;max-width:78%;padding:16px 20px;border-radius:18px;box-shadow:0 16px 40px -16px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.06);}\r\n.logo-badge.plate::before{display:none;}\r\n.logo-badge.plate img{filter:none;width:200px;max-width:100%;}\r\n\r\n\/* ---- QR (hero) ---- *\/\r\n.offer-details{max-width:300px;margin:4px auto 0;font-size:12px;line-height:1.4;color:var(--ink-muted);letter-spacing:.01em;}\r\n.qr-wrap{margin:6px auto 4px;display:flex;flex-direction:column;align-items:center;gap:6px;}\r\n.qr{\r\n  position:relative;width:min(160px,48vw);height:min(160px,48vw);border-radius:20px;background:#fff;padding:14px;\r\n  box-shadow:0 16px 44px -16px rgba(0,0,0,.8), 0 0 0 1px var(--line), 0 0 0 7px rgba(var(--brand-rgb),.10);\r\n  display:flex;align-items:center;justify-content:center;\r\n}\r\n.qr canvas,.qr img{width:100%!important;height:100%!important;border-radius:6px;display:block;}\r\n.qr-hint{font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-ink);}\r\n\r\n\/* ---- actions ---- *\/\r\n.actions{padding:4px 20px 4px;display:flex;flex-direction:column;gap:6px;}\r\n.btn{\r\n  appearance:none;border:0;cursor:pointer;font-family:inherit;font-weight:700;\r\n  border-radius:13px;padding:15px 16px;font-size:15px;letter-spacing:.01em;\r\n  display:flex;align-items:center;justify-content:center;gap:10px;\r\n  transition:transform .12s ease, filter .2s ease, opacity .2s ease;width:100%;\r\n}\r\n.btn:active{transform:translateY(1px) scale(.99);}\r\n.btn .ic{width:19px;height:19px;flex:none;}\r\n.btn-redeem{background:linear-gradient(135deg,#25D366,#1ebd5a);color:#04210f;box-shadow:0 12px 26px -12px rgba(37,211,102,.7);}\r\n.btn-share{\r\n  background:linear-gradient(135deg, var(--brand), var(--brand-deep));color:#fff;\r\n  box-shadow:0 12px 26px -12px rgba(var(--brand-rgb),.8);\r\n}\r\n.btn-insta{\r\n  background:linear-gradient(135deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5);color:#fff;\r\n  box-shadow:0 12px 26px -12px rgba(214,41,118,.6);\r\n}\r\n.btn-row{display:flex;gap:10px;}\r\n.btn-row .btn{flex:1;}\r\n.btn-ghost{\r\n  background:rgba(var(--brand-rgb),.06);color:var(--ink);border:1px solid var(--line);\r\n  font-size:13px;padding:13px;font-weight:600;\r\n}\r\n\/* (Wallet button styles removed \u2014 Phase 2) *\/\r\n\r\n\/* ---- footer ---- *\/\r\n.foot{padding:6px 20px 10px;text-align:center;border-top:1px solid var(--line);margin-top:4px;}\r\n.foot .by{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted);}\r\n.foot .by b{color:var(--accent-ink);font-weight:700;}\r\n.foot .terms{font-size:9.5px;color:var(--ink-muted);opacity:.75;margin-top:6px;line-height:1.5;}\r\n\r\n\/* tiny caption under the ticket (not captured in the saved image) *\/\r\n.cap{margin-top:4px;text-align:center;font-size:10.5px;color:var(--ink-muted);letter-spacing:.04em;}\r\n\r\n\/* ---- toast ---- *\/\r\n.toast{\r\n  position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);\r\n  background:rgba(20,16,28,.96);color:#fff;border:1px solid var(--line);\r\n  padding:12px 18px;border-radius:12px;font-size:13px;font-weight:600;z-index:50;\r\n  opacity:0;pointer-events:none;transition:opacity .25s ease, transform .25s ease;\r\n  box-shadow:0 14px 40px -12px rgba(0,0,0,.8);backdrop-filter:blur(8px);\r\n}\r\n.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}\r\n\r\n\/* language toggle \u2014 sits in the card's top corner (in normal flow so it never\r\n   overlaps the ticket); excluded from the image\/PDF capture since it's outside #ticket *\/\r\n.langbar{display:flex;justify-content:flex-end;margin:0 4px 2px;}\r\n.langtoggle{\r\n  display:inline-flex;gap:2px;\r\n  background:rgba(20,16,28,.72);border:1px solid var(--line);border-radius:999px;\r\n  padding:3px;backdrop-filter:blur(8px);box-shadow:0 8px 24px -12px rgba(0,0,0,.7);\r\n}\r\n.langtoggle button{\r\n  border:0;background:transparent;color:var(--ink-muted);font-family:inherit;\r\n  font-size:12px;font-weight:800;letter-spacing:.04em;padding:6px 13px;border-radius:999px;cursor:pointer;\r\n}\r\n.langtoggle button.active{background:linear-gradient(135deg,var(--brand),var(--brand-deep));color:#fff;}\r\n\r\n\/* Arabic: nicer font + drop Latin letter-spacing so glyphs join correctly *\/\r\nbody.ar{font-family:'Tajawal','Segoe UI',Tahoma,Arial,sans-serif;}\r\nbody.ar .kind,body.ar .ratha,body.ar .serial,body.ar .tagline,\r\nbody.ar .offer-label,body.ar .offer,body.ar .qr-hint,body.ar .by,\r\nbody.ar .terms,body.ar .cap,body.ar .btn{letter-spacing:normal;}\r\n\r\n@media (max-width:360px){ .logo-badge img{max-width:66%;} .body{padding-left:16px;padding-right:16px;} .actions{padding-left:14px;padding-right:14px;} }\r\n\r\n\/* print fallback for \"Save as PDF\" via browser print *\/\r\n@media print{\r\n  body{background:#fff;}\r\n  body::before,.cap,.actions{display:none!important;}\r\n  .ticket{box-shadow:none;border:1px solid #ccc;}\r\n}\r\n<\/style>\r\n\r\n\r\n  <div class=\"shell\">\r\n    <div class=\"langbar\">\r\n      <div class=\"langtoggle\" id=\"langtoggle\">\r\n        <button data-lang=\"en\" id=\"langEn\" type=\"button\">EN<\/button>\r\n        <button data-lang=\"ar\" id=\"langAr\" type=\"button\">\u0639<\/button>\r\n      <\/div>\r\n    <\/div>\r\n    <!-- everything inside #ticket is what gets captured for image\/PDF -->\r\n    <div class=\"ticket\" id=\"ticket\">\r\n      <div class=\"t-inner\">\r\n        <div class=\"stub\">\r\n          <div class=\"ratha\"><span class=\"dot\"><\/span><span id=\"rathaName\">\u0631\u0630\u0627\u0630<\/span><span class=\"ratha-tag\" id=\"rathaTag\">\u0627\u0644\u062a\u0631\u0648\u064a\u062c \u0644\u0644\u0639\u0644\u0627\u0645\u0627\u062a \u0627\u0644\u062a\u062c\u0627\u0631\u064a\u0629 \u0627\u0644\u0643\u0648\u064a\u062a\u064a\u0629 \u0627\u0644\u0645\u062d\u0644\u064a\u0629<\/span><\/div>\r\n          <div class=\"kind\" id=\"kind\">\u0627\u0644\u062a\u0630\u0643\u0631\u0629 \u0627\u0644\u0631\u0642\u0645\u064a\u0629<\/div>\r\n        <\/div>\r\n        <div class=\"serial\"><span id=\"serialLabel\">\u0644\u0627.<\/span> <b id=\"serial\">RTH-00000000<\/b> - <span id=\"issued\">\u0635\u0627\u0644\u062d<\/span><\/div>\r\n\r\n        <div class=\"perf\"><span class=\"line\"><\/span><span class=\"notch l\"><\/span><span class=\"notch r\"><\/span><\/div>\r\n\r\n        <div class=\"body\">\r\n          <div class=\"logo-badge\"><img id=\"brandLogo\" alt=\"\"><\/div>\r\n          <div class=\"tagline\" id=\"tagline\">\u0627\u0644\u062a\u0633\u0648\u064a\u0642 \u0627\u0644\u0631\u0642\u0645\u064a - \u062a\u0646\u0645\u064a\u0629 \u0639\u0644\u0627\u0645\u062a\u0643 \u0627\u0644\u062a\u062c\u0627\u0631\u064a\u0629<\/div>\r\n\r\n          <div class=\"offer-label\" id=\"offerLabel\">\u0639\u0631\u0636\u0643 \u0627\u0644\u062d\u0635\u0631\u064a<\/div>\r\n          <div class=\"offer\" id=\"offer\">\u062e\u0635\u0645 15% \u0639\u0644\u0649<span class=\"sub\" id=\"offerSub\">\u0645\u0634\u0631\u0648\u0639\u0643 \u0627\u0644\u0623\u0648\u0644<\/span><\/div>\r\n\r\n          <div class=\"offer-details\" id=\"offerDetails\"><\/div>\r\n\r\n          <div class=\"qr-wrap\">\r\n            <div class=\"qr\"><canvas id=\"qr\"><\/canvas><\/div>\r\n            <div class=\"qr-hint\" id=\"qrHint\">\u0627\u0644\u0645\u0633\u062d \u0627\u0644\u0636\u0648\u0626\u064a \u0644\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f<\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"actions\" id=\"actions\">\r\n          <button class=\"btn btn-redeem\" id=\"redeemBtn\">\r\n            <svg class=\"ic\" viewbox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M12 2a10 10 0 0 0-8.6 15l-1.3 4.7 4.8-1.3A10 10 0 1 0 12 2zm5.3 14.1c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .1-1.6-.1-.4-.1-.9-.3-1.5-.6-2.7-1.2-4.4-3.9-4.6-4.1-.1-.2-1.1-1.4-1.1-2.7s.7-1.9.9-2.2c.2-.2.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 1.9c.1.2.1.3 0 .5l-.4.6c-.2.2-.3.4-.1.7.2.3.8 1.3 1.7 2.1 1.2 1 2.1 1.3 2.4 1.5.2.1.4.1.6-.1l.7-.9c.2-.2.4-.2.6-.1l1.8.9c.2.1.4.2.4.3.1.2.1.7-.1 1.1z\"><\/path><\/svg>\r\n  \u0627\u0633\u062a\u0631\u062f \u0639\u0644\u0649 \u0648\u0627\u062a\u0633\u0627\u0628\r\n          <\/button>\r\n\r\n          <button class=\"btn btn-share\" id=\"shareBtn\">\r\n            <svg class=\"ic\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"18\" cy=\"5\" r=\"3\"><\/circle><circle cx=\"6\" cy=\"12\" r=\"3\"><\/circle><circle cx=\"18\" cy=\"19\" r=\"3\"><\/circle><path d=\"M8.6 13.5 15.4 17.5M15.4 6.5 8.6 10.5\"><\/path><\/svg>\r\n  \ud83c\udf81 \u0623\u0631\u0633\u0644 \u0647\u0630\u0627 \u0627\u0644\u0639\u0631\u0636 \u0625\u0644\u0649 \u0635\u062f\u064a\u0642\r\n          <\/button>\r\n\r\n          <button class=\"btn btn-insta\" id=\"instaBtn\">\r\n            <svg class=\"ic\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"5\"><\/rect><circle cx=\"12\" cy=\"12\" r=\"4\"><\/circle><circle cx=\"17.5\" cy=\"6.5\" r=\"1\" fill=\"currentColor\" stroke=\"none\"><\/circle><\/svg>\r\n  \u062a\u0627\u0628\u0639\u0646\u0627 \u0639\u0644\u0649 \u0625\u0646\u0633\u062a\u063a\u0631\u0627\u0645\r\n          <\/button>\r\n\r\n          <!-- Phase 2: Apple \/ Google Wallet buttons go here -->\r\n\r\n          <button class=\"btn btn-ghost\" id=\"saveBtn\">\u2b07 \u062d\u0641\u0638 \u0643\u0635\u0648\u0631\u0629<\/button>\r\n        <\/div>\r\n\r\n        <div class=\"foot\">\r\n          <div class=\"by\" id=\"poweredBy\">\u0645\u062f\u0639\u0648\u0645 \u0645\u0646 <b>RATHA<\/b><\/div>\r\n          <div class=\"terms\" id=\"terms\">\u0627\u0633\u062a\u0631\u062f\u0627\u062f \u0648\u0627\u062d\u062f \u0644\u0643\u0644 \u0639\u0645\u064a\u0644. \u064a\u062e\u0636\u0639 \u0627\u0644\u0639\u0631\u0636 \u0644\u0634\u0631\u0648\u0637 \u0627\u0644\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u062a\u062c\u0627\u0631\u064a\u0629. \u062d\u062a\u0649 \u0646\u0641\u0627\u0630 \u0627\u0644\u0643\u0645\u064a\u0629.  <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n    <div class=\"cap\" id=\"cap\">\u0627\u0645\u0633\u062d \u0631\u0645\u0632 \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0629 \u0627\u0644\u0633\u0631\u064a\u0639\u0629 \u0644\u0644\u0627\u0633\u062a\u0631\u062f\u0627\u062f - \u0634\u0627\u0631\u0643 \u0644\u0646\u0634\u0631 \u0627\u0644\u0639\u0631\u0636<\/div>\r\n  <\/div>\r\n\r\n  <div class=\"toast\" id=\"toast\"><\/div>\r\n\r\n<script>\r\n\/* =========================================================================\r\n   CONFIG \u2014 the ONLY thing you edit per brand.\r\n   Copy this file, change these values, swap the logo \u2192 new brand ticket.\r\n   ========================================================================= *\/\r\nconst CONFIG = {\r\n  brandName:      \"Websitek\",\r\n  rathaName:      \"RATHA\",\r\n  codePrefix:     \"RTH\",                                   \/\/ ticket serial prefix\r\n\r\n  \/\/ === Bilingual content. Auto-detected from the phone language; EN|\u0639 toggle + ?lang= override.\r\n  \/\/     Arabic marketing copy (tagline\/offer) is placeholder \u2014 have a native speaker + the brand approve it.\r\n  i18n: {\r\n    en: {\r\n      dir:\"ltr\",\r\n      rathaTag:\"Promoting local Kuwaiti brands\",\r\n      kind:\"Digital Ticket\", valid:\"VALID\", serialLabel:\"NO.\",\r\n      tagline:\"Digital Marketing \u00b7 Grow Your Brand\",\r\n      offerLabel:\"Your exclusive offer\",\r\n      offerHeadline:\"15% OFF\", offerSub:\"your first project\",\r\n      offerDetails:\"Websites, ads & social media.\",\r\n      qrHint:\"Scan to redeem\",\r\n      redeemBtn:\"Redeem on WhatsApp\",\r\n      shareBtn:\"\ud83c\udf81 Send this offer to a friend\",\r\n      instagramBtn:\"Follow on Instagram\",\r\n      appleWallet:\"Add to Apple Wallet\", googleWallet:\"Google Wallet\",\r\n      walletNote:\"Apple & Google Wallet \u2014 coming soon\",\r\n      saveBtn:\"\u2b07 Save as image\",\r\n      poweredBy:\"Powered by\",\r\n      terms:\"One redemption per customer. Offer subject to brand terms. While supplies last.\",\r\n      cap:\"Scan the QR to redeem \u00b7 Share to spread the offer\",\r\n      redeemMessage:\"Hi Websitek! I'd like to redeem my Ratha ticket \u2014 {offer} (code {code}).\",\r\n      shareMessage:\"I got a Websitek offer from Ratha \ud83d\udca7 \u2014 15% off websites, ads & social media.\"\r\n    },\r\n    ar: {\r\n      dir:\"rtl\",\r\n      rathaTag:\"\u0646\u0631\u0648\u0651\u062c \u0644\u0644\u0639\u0644\u0627\u0645\u0627\u062a \u0627\u0644\u0643\u0648\u064a\u062a\u064a\u0629 \u0627\u0644\u0645\u062d\u0644\u064a\u0629\",\r\n      kind:\"\u062a\u0630\u0643\u0631\u0629 \u0631\u0642\u0645\u064a\u0629\", valid:\"\u0635\u0627\u0644\u062d\u0629\", serialLabel:\"\u0631\u0642\u0645\",\r\n      tagline:\"\u062a\u0633\u0648\u064a\u0642 \u0631\u0642\u0645\u064a \u00b7 \u0646\u0645\u0650\u0651 \u0639\u0644\u0627\u0645\u062a\u0643\",\r\n      offerLabel:\"\u0639\u0631\u0636\u0643 \u0627\u0644\u062d\u0635\u0631\u064a\",\r\n      offerHeadline:\"\u062e\u0635\u0645 15%\", offerSub:\"\u0639\u0644\u0649 \u0623\u0648\u0644 \u0645\u0634\u0631\u0648\u0639\",\r\n      offerDetails:\"\u0645\u0648\u0627\u0642\u0639\u060c \u0625\u0639\u0644\u0627\u0646\u0627\u062a \u0648\u0633\u0648\u0634\u064a\u0627\u0644 \u0645\u064a\u062f\u064a\u0627.\",\r\n      qrHint:\"\u0627\u0645\u0633\u062d \u0627\u0644\u0631\u0645\u0632 \u0644\u0644\u0627\u0633\u062a\u0628\u062f\u0627\u0644\",\r\n      redeemBtn:\"\u0627\u0633\u062a\u0628\u062f\u0644 \u0639\u0628\u0631 \u0648\u0627\u062a\u0633\u0627\u0628\",\r\n      shareBtn:\"\ud83c\udf81 \u0623\u0631\u0633\u0644 \u0627\u0644\u0639\u0631\u0636 \u0625\u0644\u0649 \u0635\u062f\u064a\u0642\",\r\n      instagramBtn:\"\u062a\u0627\u0628\u0650\u0639\u0646\u0627 \u0639\u0644\u0649 \u0625\u0646\u0633\u062a\u063a\u0631\u0627\u0645\",\r\n      appleWallet:\"\u0623\u0636\u0641 \u0625\u0644\u0649 Apple Wallet\", googleWallet:\"Google Wallet\",\r\n      walletNote:\"\u0645\u062d\u0641\u0638\u0629 Apple \u0648 Google \u2014 \u0642\u0631\u064a\u0628\u0627\u064b\",\r\n      saveBtn:\"\u2b07 \u062d\u0641\u0638 \u0643\u0635\u0648\u0631\u0629\",\r\n      poweredBy:\"\u0645\u064f\u0642\u062f\u064e\u0651\u0645 \u0645\u0646\",\r\n      terms:\"\u0627\u0644\u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u0645\u0631\u0629 \u0648\u0627\u062d\u062f\u0629 \u0644\u0643\u0644 \u0639\u0645\u064a\u0644. \u064a\u062e\u0636\u0639 \u0627\u0644\u0639\u0631\u0636 \u0644\u0634\u0631\u0648\u0637 \u0627\u0644\u0639\u0644\u0627\u0645\u0629 \u0627\u0644\u062a\u062c\u0627\u0631\u064a\u0629. \u062d\u062a\u0649 \u0646\u0641\u0627\u062f \u0627\u0644\u0643\u0645\u064a\u0629.\",\r\n      cap:\"\u0627\u0645\u0633\u062d \u0627\u0644\u0631\u0645\u0632 \u0644\u0644\u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u00b7 \u0634\u0627\u0631\u0643 \u0627\u0644\u0639\u0631\u0636 \u0645\u0639 \u0623\u0635\u062f\u0642\u0627\u0626\u0643\",\r\n      redeemMessage:\"\u0627\u0644\u0633\u0644\u0627\u0645 \u0639\u0644\u064a\u0643\u0645 Websitek\u060c \u0623\u0631\u063a\u0628 \u0628\u0627\u0633\u062a\u0628\u062f\u0627\u0644 \u062a\u0630\u0643\u0631\u062a\u064a \u0645\u0646 \u0631\u0627\u062b\u0627 \u2014 {offer} (\u0643\u0648\u062f {code}).\",\r\n      shareMessage:\"\u062d\u0635\u0644\u062a \u0639\u0644\u0649 \u0639\u0631\u0636 \u0645\u0646 Websitek \u0639\u0628\u0631 \u0631\u0627\u062b\u0627 \ud83d\udca7 \u2014 \u062e\u0635\u0645 15% \u0639\u0644\u0649 \u0627\u0644\u0645\u0648\u0627\u0642\u0639 \u0648\u0627\u0644\u0625\u0639\u0644\u0627\u0646\u0627\u062a \u0648\u0627\u0644\u0633\u0648\u0634\u064a\u0627\u0644 \u0645\u064a\u062f\u064a\u0627.\"\r\n    }\r\n  },\r\n\r\n  \/\/ WhatsApp redeem (placeholder number \u2014 international format, digits only, no +)\r\n  whatsappNumber: \"96561006314\",\r\n  code:           \"RATHA15\",                               \/\/ universal Ratha code; rides in the WhatsApp message for tracking (not shown on the ticket)\r\n\r\n  \/\/ Links. pageUrl = where this ticket lives (the QR\/share destination).\r\n  pageUrl:        \"https:\/\/ratha.me\/websitek\/\",            \/\/ live page URL\r\n  qrLink:         \"https:\/\/dub.link\/websitek\",             \/\/ Dub short link the QR encodes (tracked)\r\n  redeemUrl:      \"\",                                      \/\/ optional brand site\/booking; blank = use pageUrl\r\n  redeemLink:     \"https:\/\/dub.sh\/WebsitekWhats\",                                      \/\/ optional Dub link for the Redeem button (counts redeem taps); blank = open WhatsApp directly\r\n  instagramUrl:   \"https:\/\/dub.sh\/WebsiteK\", \/\/ brand IG profile\r\n\r\n  \/\/ Share text + light referral attribution (Dub.co reads these params)\r\n  utm:            { source:\"share\", medium:\"social\", campaign:\"ratha_batch1\" },\r\n\r\n  \/\/ Wallet (Phase 2). Leave blank to show \"coming soon\"; fill to go live.\r\n  appleWalletUrl: \"\",\r\n  googleWalletUrl:\"\",\r\n\r\n  \/\/ Brand palette (sampled from logo). Overrides the CSS :root.\r\n  colors: { brand:\"#0A84FF\", brandGlow:\"#5FA8FF\", brandDeep:\"#0052B3\" },\r\n  logoPlate: false,                                        \/\/ true = white plate behind logo (for logos designed on white)\r\n\r\n  theme: { bg:\"#eef4ff\", bg2:\"#dde9ff\", surface:\"#ffffff\", surface2:\"#f7faff\", ink:\"#0f1b2d\", inkMuted:\"#6b7a90\", line:\"rgba(10,132,255,.20)\", offerTop:\"#0f1b2d\", offerBottom:\"#0A84FF\", accentInk:\"#0a6ad6\" },\r\n\r\n  \/\/ Logo: base64 data URI is injected here for a fully self-contained file.\r\n  \/\/ Falls back to the local file for preview if the placeholder isn't replaced.\r\n  logoDataUri: \"data:image\/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNjgiIGhlaWdodD0iMjQ5IiB2aWV3Qm94PSIwIDAgMzY4IDI0OSIgZmlsbD0ibm9uZSI+PHBhdGggZD0iTTIzMC43MTIgMTIyLjAxOEMyMjguMTA1IDEyMi4wMTggMjI1LjkzMiAxMjEuMTI5IDIyNC4xOTQgMTE5LjM1IDIyMi41MjMgMTE3LjU3MSAyMjEuNjg4IDExNS40NTEgMjIxLjY4OCAxMTIuOTg4IDIyMS42ODggMTEwLjU5NCAyMjIuNTIzIDEwOC41MDcgMjI0LjE5NCAxMDYuNzI5IDIyNS45MzIgMTA0Ljk1IDIyOC4xMDUgMTA0LjA2MSAyMzAuNzEyIDEwNC4wNjFTMjM1LjQ1OCAxMDQuOTUgMjM3LjEyOSAxMDYuNzI5QzIzOC44MDEgMTA4LjUwNyAyMzkuNjM2IDExMC41OTQgMjM5LjYzNiAxMTIuOTg4IDIzOS42MzYgMTE1LjQ1MSAyMzguODAxIDExNy41NzEgMjM3LjEyOSAxMTkuMzUgMjM1LjQ1OCAxMjEuMTI5IDIzMy4zMTkgMTIyLjAxOCAyMzAuNzEyIDEyMi4wMTh6IiBmaWxsPSIjMDAwIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMTQuNzQ2IDQzLjM3NDNDMjEzLjYyMyA0NC4xODAzIDIxMi42MjEgNDQuNzI4OCAyMTIuNTM3IDQ2LjA5NDUgMjEyLjQzOSA0Ny42ODI5IDIxOS40MiA2MC40NzI2IDIyMC4xMTggNjEuODgzNyAyMjAuOTEzIDYzLjQ5NTYgMjIxLjY5MSA2NC45NTUgMjIyLjQxNCA2Ni40MDU3IDIyMy4xOTIgNjcuOTY0OCAyMjMuNDU3IDY4LjQwOTkgMjI0LjE3MyA2OS45MTM0IDIyNC44OSA3MS40MTY4IDIyNC42MTQgNzAuOTcwMiAyMjcuNzQ5IDc2Ljk1NzUgMjI4LjU1MyA3OC40OTc1IDIyOS4zNDQgODAuMDk5MSAyMjkuNjg2IDgxLjc2NTIgMjMwLjU0MyA4NS45MzI2IDIyOC40NDYgODkuNDg2IDIyNi44MTQgOTIuMTAzMSAyMjUuMDIyIDk0Ljk3OTUgMjIzLjI4OCA5Ny43NzgyIDIyMS42NDYgMTAwLjQzMiAyMTguMTI5IDEwNi4xMTYgMjE0Ljk4OSAxMTEuNjUzIDIxMS4zOCAxMTcuMTYgMjA5LjA5OCAxMjEuMTQ3IDIwMi42NjcgMTIzLjY3NiAxOTcuNDUzIDEyMC43NDkgMTkzLjI2NyAxMTguMzk3IDE5MS4xNjggMTEzLjE3OSAxODguOTEgMTA5LjA0NyAxODQuMTQ4IDEwMC4zMjkgMTc5LjY1MiA5MS4yNTkgMTc0LjkxMiA4Mi41NTY1IDE3Mi41NDQgNzguMjA4OSAxNzAuMTc2IDczLjc3OTIgMTY3Ljk0NyA2OS4yNzc3IDE2NS43NDEgNjQuODEyOSAxNjMuMzI2IDYwLjQyMjcgMTYxLjA1OCA1NS45MjQyIDE1OS45MDQgNTMuNjM5OCAxNTguNTQ0IDUxLjQzNzQgMTU4LjQ3MyA0OC4zODgxIDE1OC4zMTQgNDEuNzk3MSAxNjIuOTU0IDM5LjQ0NTIgMTY3LjIzMSAzNi45IDE2OC43NjUgMzUuOTg3MSAxNzAuMzE3IDM1LjAyMjkgMTcyLjA0IDM0LjEwMTIgMTcyLjU0NiAzMy44MzE2IDE3My40MzEgMzMuMzIzMSAxNzMuODM1IDMzLjM4MzIgMTc0LjcgMzMuNTEyMSAxNzUuODU3IDM2LjYyMDEgMTc2LjI3NiAzNy40MDQgMTgwLjAxNCA0NC40MDk3IDE4My41ODcgNTEuMzU5OCAxODcuMjU5IDU4LjM2NTUgMTk0LjU5IDcyLjM1MiAyMDEuNjQzIDg2LjY1MDYgMjA5LjA4MiAxMDAuNDMzIDIwOS45MjMgMTAxLjU5NSAyMTAuNTU2IDEwMy43NTEgMjEyLjMxMyAxMDQuMDIyIDIxMy45MzkgMTA0LjI3NyAyMTUuMTAyIDEwMy4zMTkgMjE1LjMyOSAxMDEuODY5IDIxNS41NzYgMTAwLjI4MSAyMTQuMTg3IDk4LjMwMjggMjEzLjQ2MyA5Ni45MTUyIDIwOS40NDcgODkuMjIyMiAyMDUuNTY1IDgxLjgyMDkgMjAxLjU0NiA3NC4yMzA1IDE5OS45NjYgNzEuMjQ1NiAxOTguNTkzIDY4LjE1MjQgMTk2Ljg3OSA2NS4wNDE1IDE5Ni4wNTUgNjMuNTQ2OSAxOTUuMjc0IDYxLjk5MDcgMTk0LjUwOSA2MC40NDc3IDE5My43MiA1OC44NTM0IDE5My4xMjIgNTcuMDYxMyAxOTIuOTMxIDU1LjEzMjkgMTkyLjI4MiA0OC41NTA3IDE5Ni44MDQgNDQuNjM2MyAyMDEuMTMxIDQyLjM5IDIwNS42NDMgNDAuMDUxMyAyMDYuNzYxIDM5LjI5NzUgMjEwLjQyNyAzNy40MjM2IDIxNC43NDYgMzUuMjE1OCAyMTcuODUgMzMuMjk4MSAyMjEuMjA0IDMzLjAzNzQgMjIyLjUyOCAzMi45MzQ1IDIyMy44MTggMzMuMDM3NiAyMjUuMTgzIDMzLjQyNDEgMjI2LjU0NyAzMy44MTA1IDIyNi40NDIgMzUuMDU4MyAyMjUuNzYxIDM1LjYzNDIgMjI0LjcwOCAzNi41MjQgMjE5LjQ0MSA0MC4wMDY4IDIxNC43NDYgNDMuMzc0M3oiIGZpbGw9IiMwN2YiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE4NC4zMTMgMTExLjA1OUMxODMuNzMyIDExMy4yMjggMTgyLjM1MyAxMTUuMTcyIDE4MS4wODIgMTE2Ljk0NCAxNzkuNzkxIDExOC43NDYgMTc4LjI1OSAxMjAuMTkgMTc2LjIwMSAxMjEuMTA4IDE3MS4wMSAxMjMuNDMyIDE2NS44NTggMTIwLjkzNyAxNjMuMzUxIDExNy43MzQgMTYyLjA0NCAxMTYuMDYyIDE2MS4xMzIgMTEzLjg4NyAxNjAuMTIxIDExMS44NDYgMTU3LjIwMiAxMDUuOTYxIDE1My44NTcgOTkuNTk3NSAxNTAuOTMxIDkzLjg5ODggMTQ4Ljg5OCA4OS45NDEgMTQ2LjgxIDg1LjkwODQgMTQ0LjY4NSA4MS45ODQzIDE0Mi41NDQgNzguMDMyMyAxNDAuNjgyIDczLjk2NzUgMTM4LjU4NCA2OS45OTUgMTM2LjU1NyA2Ni4xNTc0IDEzNC42OTYgNjEuOTk1OSAxMzIuNDA5IDU4LjAwNTggMTMwLjQ4OSA1NC42NTQ2IDEyNy40NjkgNDkuNjA1MSAxMjkuMTA2IDQ0LjIyMyAxMzAuMDY5IDQxLjA1NzkgMTMyLjUwMyAzOS40NTE5IDEzNS4yMDkgMzcuNzYwOSAxMzcuMDc3IDM2LjU5MyAxMzkuMDQ3IDM1LjQwMDMgMTQxLjE2NyAzNC4yNDQxIDE0MS43OTkgMzMuODk4MyAxNDMuMDEyIDMyLjk2NzggMTQzLjM5MSAzMy4wMjUgMTQ0LjQwMyAzMy4xNzE1IDE0NS43OCAzNi43MzY2IDE0Ni4yNjMgMzcuNjE4OCAxNDkuODQzIDQ0LjEyMzMgMTUzIDUwLjY5ODIgMTU2LjQ1OCA1Ny4yMTc0IDE1Ny4zMzUgNTguODY4OSAxNTcuOTk2IDYwLjU4OTEgMTU4LjgyNiA2Mi4yNDM1IDE2My43MyA3MS45OTY3IDE2OS4wNyA4Mi4wMTY1IDE3NC4xMTggOTEuNTMyMyAxNzYuNzA3IDk2LjQxMTkgMTc5LjMyIDEwMS4xODYgMTgxLjg3MSAxMDYuMTA1IDE4Mi43MTYgMTA3LjczIDE4My42MzQgMTA5LjM0OCAxODQuMzEzIDExMS4wNTl6IiBmaWxsPSIjMDdmIi8+PHBhdGggZD0iTTMzMi4yODIgMjEzLjk2NkMzMzAuNTMyIDIxMy45NjYgMzI5LjA3NCAyMTMuMzY5IDMyNy45MDcgMjEyLjE3NSAzMjYuNzg1IDIxMC45ODEgMzI2LjIyNSAyMDkuNTU3IDMyNi4yMjUgMjA3LjkwNCAzMjYuMjI1IDIwNi4yOTcgMzI2Ljc4NSAyMDQuODk3IDMyNy45MDcgMjAzLjcwMyAzMjkuMDc0IDIwMi41MDkgMzMwLjUzMiAyMDEuOTEyIDMzMi4yODIgMjAxLjkxMlMzMzUuNDY4IDIwMi41MDkgMzM2LjU5IDIwMy43MDNDMzM3LjcxMSAyMDQuODk3IDMzOC4yNzIgMjA2LjI5NyAzMzguMjcyIDIwNy45MDQgMzM4LjI3MiAyMDkuNTU3IDMzNy43MTEgMjEwLjk4MSAzMzYuNTkgMjEyLjE3NSAzMzUuNDY4IDIxMy4zNjkgMzM0LjAzMiAyMTMuOTY2IDMzMi4yODIgMjEzLjk2NnoiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNMzI0LjM0OSAxNzQuMzg5QzMyMC44OSAxNzUuODA4IDMxNi42NjggMTc4LjAwOCAzMTIuOTQzIDE4MC4wNTMgMzEwLjA5OSAxODEuNjEzIDMwNi45NzQgMTgyLjc0OCAzMDYuOTc0IDE4NC4xMTYgMzA2Ljk3NCAxODUuNDg0IDMwOC4xNTYgMTg2LjE0NSAzMDkuMjk4IDE4Ni45ODcgMzEwLjQzNiAxODcuODI3IDMxMS41ODkgMTg4LjYyNiAzMTIuNjU1IDE4OS4zNjcgMzEzLjY1NCAxOTAuMDYyIDMxNC43MDcgMTkwLjc5NCAzMTUuNDM3IDE5MS4zODMgMzE3LjExIDE5Mi43MzIgMzE4LjkxNyAxOTQuNDI5IDMyMC4zNjggMTk2LjMwMyAzMjEuNzMzIDE5OC4wNjUgMzIzLjIzIDIwMC41NTEgMzIzLjM2NSAyMDMuNCAzMjMuNDM3IDIwNC45MzEgMzIzLjEwOSAyMDYuNTI5IDMyMi4yMTggMjA4LjAxMSAzMjEuMzQ1IDIwOS40NjMgMzIwLjA4NCAyMTAuNTU2IDMxOC42NjMgMjExLjM2NSAzMTUuOTQgMjEyLjkxNSAzMTIuMTU1IDIxMy42OTggMzA3LjQ0MyAyMTMuOTU2IDMwNy4zNjEgMjEzLjk2MSAzMDcuMjc4IDIxMy45NjMgMzA3LjE5NSAyMTMuOTYzSDI4OS4zMTRWMjA0LjkxOGgxNy43MDhDMzExLjIwMyAyMDQuNjgyIDMxMi40MzEgMjA0LjA5NSAzMTIuOTIyIDIwMy40IDMxMy4yMjkgMjAyLjkwOCAzMTMuMDk2IDIwMS44MTkgMzEyLjY1NSAyMDEuMjUgMzExLjc2NCAyMDAuMDk5IDMxMS4wNzcgMTk5LjQ4OCAzMDkuNzU5IDE5OC40MjUgMzA5LjMzOCAxOTguMDg1IDMwOC41OTYgMTk3LjU2MyAzMDcuNDkxIDE5Ni43OTQgMzA2LjQ1MiAxOTYuMDcyIDMwNS4xODcgMTk1LjE5NiAzMDMuOTI3IDE5NC4yNjYgMzAyLjY3MSAxOTMuMzM5IDMwMS4zNDQgMTkyLjMwMyAzMDAuMTY2IDE5MS4yMzMgMjk5LjAzNyAxOTAuMjA3IDI5Ny44MDMgMTg4LjkzNSAyOTYuOTU2IDE4Ny41MSAyOTYuMTUzIDE4Ni4xNiAyOTUuNzU5IDE4NC42NDkgMjk1Ljg5NCAxODMuMDkyIDI5Ni4wMjUgMTgxLjU4NSAyOTYuNjIgMTgwLjM2NyAyOTcuMjQ1IDE3OS40ODIgMjk4LjQxNiAxNzcuODI2IDMwMC4wMjIgMTc2Ljg1MiAzMDAuODUzIDE3Ni40MzYgMzAxLjgzMSAxNzUuOTQ3IDMwNC41OSAxNzQuMzE3IDMwOC41OTEgMTcyLjEyMiAzMTIuMzU5IDE3MC4wNTUgMzE2Ljk1NSAxNjcuNjQ2IDMyMC45MTQgMTY2LjAyMUwzMjQuMzQ5IDE3NC4zODl6IiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTI3Mi4wODcgMjEzLjk2NUMyNjguMDcxIDIxMy45NjUgMjY0LjUzMiAyMTMuMDM2IDI2MS40NyAyMTEuMTc5IDI1OC40MDggMjA5LjMyMiAyNTYuMDI0IDIwNi44NjIgMjU0LjMxNyAyMDMuOCAyNTIuNjYgMjAwLjY4NyAyNTEuODMyIDE5Ny4yNDkgMjUxLjgzMiAxOTMuNDg0IDI1MS44MzIgMTg5LjcxOSAyNTIuNzEgMTg2LjI4MSAyNTQuNDY3IDE4My4xNjggMjU2LjIyNCAxODAuMDA2IDI1OC42MDkgMTc3LjQ5NiAyNjEuNjIxIDE3NS42MzkgMjY0LjY4MyAxNzMuNzgxIDI2OC4xNzIgMTcyLjg1MyAyNzIuMDg3IDE3Mi44NTMgMjc2LjAwMiAxNzIuODUzIDI3OS40NDEgMTczLjc4MSAyODIuNDAzIDE3NS42MzkgMjg1LjQxNSAxNzcuNDk2IDI4Ny43NDkgMTgwLjAwNiAyODkuNDA1IDE4My4xNjggMjkxLjExMiAxODYuMjgxIDI5MS45NjUgMTg5LjcxOSAyOTEuOTY1IDE5My40ODQgMjkxLjk2NSAxOTQuMDM2IDI5MS45NCAxOTQuNjEzIDI5MS44OSAxOTUuMjE2IDI5MS44NCAxOTUuODE4IDI5MS43NjUgMTk2LjQ0NiAyOTEuNjY0IDE5Ny4wOThoLTI5LjI5QzI2Mi45MjYgMTk5LjQwNyAyNjQuMDMgMjAxLjI5IDI2NS42ODcgMjAyLjc0NiAyNjcuMzkzIDIwNC4yMDEgMjY5LjUyNyAyMDQuOTI5IDI3Mi4wODcgMjA0LjkyOWMyLjIwOS4wIDEwLjMyNy4wIDEwLjMyNy4wSDI4OS40MDV2OS4wMzZIMjgyLjQxNHMtNi40NjE5OTk5OTk5OTk5OS4wLTEwLjMyNy4wek0yNzEuOTM2IDE4MS41ODdDMjY5LjUyNyAxODEuNTg3IDI2Ny40NjkgMTgyLjMxNSAyNjUuNzYyIDE4My43NzEgMjY0LjA1NSAxODUuMjI2IDI2Mi45MjYgMTg3LjEzNCAyNjIuMzc0IDE4OS40OTNoMTkuMzUxQzI4MS4xNzMgMTg3LjMzNSAyODAuMDE4IDE4NS40NzcgMjc4LjI2MSAxODMuOTIxIDI3Ni41NTUgMTgyLjM2NSAyNzQuNDQ2IDE4MS41ODcgMjcxLjkzNiAxODEuNTg3eiIgZmlsbD0iIzAwMCIvPjxwYXRoIGQ9Ik0yNDQuNDkgMjEyLjk4OEMyNDAuNjI1IDIxMi45ODggMjM3LjY2NCAyMTIuMDM0IDIzNS42MDUgMjEwLjEyNyAyMzMuNTQ3IDIwOC4yMTkgMjMyLjUxOCAyMDUuMTMyIDIzMi41MTggMjAwLjg2NVYxODIuNDkzSDIyNy4wMjF2LTguNjZIMjMyLjUxOFYxNjUuOTI3bDEwLjE2NS0xLjA1NFYxNzMuODMzSDI1MC45NjZ2OC42NkgyNDIuNjgzdjE3Ljg0NWMwIDIuNDEgMS4wNTQgMy42MTQgMy4xNjMwMDAwMDAwMDAwMSAzLjYxNEgyNTAuMDYydjkuMDM2SDI0NC40OXoiIGZpbGw9IiMwMDAiLz48cGF0aCBkPSJNMjE4LjUzMyAxNzAuNTkyQzIxNi44MjYgMTcwLjU5MiAyMTUuMzcgMTcwLjAxNSAyMTQuMTY1IDE2OC44NjEgMjEzLjAxMSAxNjcuNjU2IDIxMi40MzQgMTY2LjIyNSAyMTIuNDM0IDE2NC41NjkgMjEyLjQzNCAxNjIuOTYyIDIxMy4wMTEgMTYxLjU4MiAyMTQuMTY1IDE2MC40MjcgMjE1LjM3IDE1OS4yMjIgMjE2LjgyNiAxNTguNjIgMjE4LjUzMyAxNTguNjIgMjIwLjI5IDE1OC42MiAyMjEuNzQ1IDE1OS4yMjIgMjIyLjkgMTYwLjQyN2MxLjE1NCAxLjE1NSAxLjczMiAyLjUzNSAxLjczMiA0LjE0MkMyMjQuNjMyIDE2Ni4yNzUgMjI0LjA1NCAxNjcuNzA2IDIyMi45IDE2OC44NjEgMjIxLjc0NSAxNzAuMDE1IDIyMC4yOSAxNzAuNTkyIDIxOC41MzMgMTcwLjU5MnpNMjEzLjQ4OCAyMTIuOTg1VjE3My44M2gxMC4xNjV2MzkuMTU1SDIxMy40ODh6IiBmaWxsPSIjMDdmIi8+PHBhdGggZD0iTTE5NC4zMTMgMjEzLjk2NUMxODcuNzM3IDIxMy45NjUgMTgyLjMxNiAyMTEuNjgxIDE3OC4wNDkgMjA3LjExM2w2Ljg1Mi02LjI1QzE4Ny43NjIgMjA0LjA3NiAxOTAuODI0IDIwNS42ODIgMTk0LjA4NyAyMDUuNjgyIDE5NS44NDQgMjA1LjY4MiAxOTcuMTc0IDIwNS4zMDYgMTk4LjA3OCAyMDQuNTUzIDE5OS4wMzIgMjAzLjc1IDE5OS41MDkgMjAyLjc3MSAxOTkuNTA5IDIwMS42MTYgMTk5LjUwOSAyMDAuOTEzIDE5OS4zMzMgMjAwLjMxMSAxOTguOTgxIDE5OS44MDkgMTk4LjY4IDE5OS4zMDcgMTk4LjAwMyAxOTguODMgMTk2Ljk0OCAxOTguMzc4IDE5NS45NDQgMTk3LjkyNyAxOTQuNDEzIDE5Ny40NzUgMTkyLjM1NSAxOTcuMDIzIDE4OC44NDEgMTk2LjE3IDE4Ni4yMzEgMTk1LjExNSAxODQuNTI0IDE5My44NiAxODIuODE4IDE5Mi42MDYgMTgxLjY4OCAxOTEuMiAxODEuMTM2IDE4OS42NDQgMTgwLjU4NCAxODguMDg4IDE4MC4zMDggMTg2LjQ4MSAxODAuMzA4IDE4NC44MjUgMTgwLjMwOCAxODEuNDExIDE4MS41ODggMTc4LjU3NSAxODQuMTQ4IDE3Ni4zMTYgMTg2Ljc1OCAxNzQuMDA3IDE5MC4zNDcgMTcyLjg1MyAxOTQuOTE1IDE3Mi44NTMgMTk4LjA3OCAxNzIuODUzIDIwMC43ODkgMTczLjMyOSAyMDMuMDQ4IDE3NC4yODMgMjA1LjMwNiAxNzUuMjM3IDIwNy40NCAxNzcuMDE5IDIwOS40NDggMTc5LjYyOUwyMDIuMDY5IDE4NS4yNzdDMjAxLjExNSAxODMuNzcxIDIwMC4wMzYgMTgyLjY5MSAxOTguODMxIDE4Mi4wMzkgMTk3LjY3NiAxODEuMzg2IDE5Ni40NDYgMTgxLjA2IDE5NS4xNDEgMTgxLjA2IDE5My43MzYgMTgxLjA2IDE5Mi41NTYgMTgxLjMzNiAxOTEuNjAyIDE4MS44ODggMTkwLjY5OSAxODIuNDQgMTkwLjI0NyAxODMuMzE5IDE5MC4yNDcgMTg0LjUyNCAxOTAuMjQ3IDE4NS4xNzYgMTkwLjU0OCAxODUuODI5IDE5MS4xNTEgMTg2LjQ4MSAxOTEuNzUzIDE4Ny4wODQgMTkzLjIwOSAxODcuNjg2IDE5NS41MTggMTg4LjI4OCAxOTkuMzMzIDE4OS4yNDIgMjAyLjI0NCAxOTAuMzcyIDIwNC4yNTIgMTkxLjY3NyAyMDYuMjYgMTkyLjkzMiAyMDcuNjQxIDE5NC4zNjIgMjA4LjM5NCAxOTUuOTY5IDIwOS4xNDcgMTk3LjU3NSAyMDkuNTIzIDE5OS4zNTcgMjA5LjUyMyAyMDEuMzE1IDIwOS41MjMgMjAzLjcyNCAyMDguODQ1IDIwNS44ODMgMjA3LjQ5IDIwNy43OSAyMDYuMTg1IDIwOS42OTggMjA0LjM3OCAyMTEuMjA0IDIwMi4wNjkgMjEyLjMwOCAxOTkuODEgMjEzLjQxMyAxOTcuMjI1IDIxMy45NjUgMTk0LjMxMyAyMTMuOTY1eiIgZmlsbD0iIzA3ZiIvPjxwYXRoIGQ9Ik0xNTcuODM2IDIxMy45NjRDMTU0LjMyMiAyMTMuOTY0IDE1MS41ODYgMjEzLjI4NyAxNDkuNjI5IDIxMS45MzEgMTQ3LjcyMSAyMTAuNTc2IDE0Ni4yNCAyMDguNzk0IDE0NS4xODYgMjA2LjU4NVYyMTIuOTg2aC05Ljg2NFYxNTguMDE5aDEwLjE2NXYyMS44MzZDMTQ2LjU0MiAxNzcuNzk3IDE0OC4wMjIgMTc2LjE0IDE0OS45MyAxNzQuODg1IDE1MS44MzcgMTczLjYzIDE1NC40NzMgMTczLjAwMyAxNTcuODM2IDE3My4wMDMgMTYwLjU0NyAxNzMuMDAzIDE2My4wNTcgMTczLjU1NSAxNjUuMzY2IDE3NC42NTkgMTY3LjcyNSAxNzUuNzEzIDE2OS43ODMgMTc3LjE5NCAxNzEuNTQgMTc5LjEwMiAxNzMuMjk3IDE4MC45NTkgMTc0LjY3OCAxODMuMTQzIDE3NS42ODIgMTg1LjY1MyAxNzYuNjg2IDE4OC4xMTIgMTc3LjE4OCAxOTAuNzQ4IDE3Ny4xODggMTkzLjU1OSAxNzcuMTg4IDE5Ny4zMjQgMTc2LjMwOSAyMDAuNzYyIDE3NC41NTIgMjAzLjg3NSAxNzIuODQ1IDIwNi45MzcgMTcwLjUzNiAyMDkuMzk2IDE2Ny42MjUgMjExLjI1NCAxNjQuNzEzIDIxMy4wNjEgMTYxLjQ1IDIxMy45NjQgMTU3LjgzNiAyMTMuOTY0ek0xNTYuMTggMjA0Ljc3OEMxNTguMzM4IDIwNC43NzggMTYwLjIyMSAyMDQuMjUxIDE2MS44MjcgMjAzLjE5NyAxNjMuNDgzIDIwMi4xNDMgMTY0Ljc2NCAyMDAuNzYyIDE2NS42NjcgMTk5LjA1NiAxNjYuNTcxIDE5Ny4yOTkgMTY3LjAyMiAxOTUuNDQxIDE2Ny4wMjIgMTkzLjQ4NCAxNjcuMDIyIDE5MS40MjUgMTY2LjU3MSAxODkuNTQzIDE2NS42NjcgMTg3LjgzNiAxNjQuNzY0IDE4Ni4xMyAxNjMuNDgzIDE4NC43NzQgMTYxLjgyNyAxODMuNzcgMTYwLjIyMSAxODIuNzE2IDE1OC4zMzggMTgyLjE4OSAxNTYuMTggMTgyLjE4OSAxNTMuOTcxIDE4Mi4xODkgMTUyLjAzOCAxODIuNzE2IDE1MC4zODIgMTgzLjc3IDE0OC43MjUgMTg0LjgyNCAxNDcuNDQ1IDE4Ni4yMDUgMTQ2LjU0MiAxODcuOTEyIDE0NS42MzggMTg5LjYxOCAxNDUuMTg2IDE5MS41MDEgMTQ1LjE4NiAxOTMuNTU5IDE0NS4xODYgMTk1LjU2NyAxNDUuNjM4IDE5Ny40MjQgMTQ2LjU0MiAxOTkuMTMxIDE0Ny40NDUgMjAwLjgzOCAxNDguNzI1IDIwMi4yMTggMTUwLjM4MiAyMDMuMjcyIDE1Mi4wMzggMjA0LjI3NiAxNTMuOTcxIDIwNC43NzggMTU2LjE4IDIwNC43Nzh6IiBmaWxsPSIjMDdmIi8+PHBhdGggZD0iTTExMC45NzQgMjEzLjk2NUMxMDYuOTU4IDIxMy45NjUgMTAzLjQxOSAyMTMuMDM2IDEwMC4zNTcgMjExLjE3OSA5Ny4yOTQ3IDIwOS4zMjIgOTQuOTEwMyAyMDYuODYyIDkzLjIwMzYgMjAzLjggOTEuNTQ3IDIwMC42ODcgOTAuNzE4OCAxOTcuMjQ5IDkwLjcxODggMTkzLjQ4NCA5MC43MTg4IDE4OS43MTkgOTEuNTk3MiAxODYuMjgxIDkzLjM1NDIgMTgzLjE2OCA5NS4xMTExIDE4MC4wMDYgOTcuNDk1NSAxNzcuNDk2IDEwMC41MDcgMTc1LjYzOWMzLjA2Mi0xLjg1OCA2LjU1MS0yLjc4NiAxMC40NjctMi43ODZDMTE0Ljg4OSAxNzIuODUzIDExOC4zMjggMTczLjc4MSAxMjEuMjg5IDE3NS42MzkgMTI0LjMwMSAxNzcuNDk2IDEyNi42MzYgMTgwLjAwNiAxMjguMjkyIDE4My4xNjggMTI5Ljk5OSAxODYuMjgxIDEzMC44NTIgMTg5LjcxOSAxMzAuODUyIDE5My40ODQgMTMwLjg1MiAxOTQuMDM2IDEzMC44MjcgMTk0LjYxMyAxMzAuNzc3IDE5NS4yMTYgMTMwLjcyNyAxOTUuODE4IDEzMC42NTEgMTk2LjQ0NiAxMzAuNTUxIDE5Ny4wOThIMTAxLjI2QzEwMS44MTMgMTk5LjQwNyAxMDIuOTE3IDIwMS4yOSAxMDQuNTczIDIwMi43NDYgMTA2LjI4IDIwNC4yMDEgMTA4LjQxNCAyMDQuOTI5IDExMC45NzQgMjA0LjkyOSAxMTMuMTgyIDIwNC45MjkgMTE1LjA5IDIwNC40MjcgMTE2LjY5NiAyMDMuNDIzIDExOC4zNTMgMjAyLjQxOSAxMTkuNjMzIDIwMS4xNjQgMTIwLjUzNiAxOTkuNjU4TDEyOC40NDMgMjA1LjYwN0MxMjYuODg3IDIwOC4wNjcgMTI0LjU1MiAyMTAuMDc1IDEyMS40NCAyMTEuNjMxIDExOC4zMjggMjEzLjE4NyAxMTQuODM5IDIxMy45NjUgMTEwLjk3NCAyMTMuOTY1ek0xMTAuODIzIDE4MS41ODdDMTA4LjQxNCAxODEuNTg3IDEwNi4zNTUgMTgyLjMxNSAxMDQuNjQ5IDE4My43NzEgMTAyLjk0MiAxODUuMjI2IDEwMS44MTMgMTg3LjEzNCAxMDEuMjYgMTg5LjQ5M2gxOS4zNTJDMTIwLjA2IDE4Ny4zMzUgMTE4LjkwNSAxODUuNDc3IDExNy4xNDggMTgzLjkyMSAxMTUuNDQxIDE4Mi4zNjUgMTEzLjMzMyAxODEuNTg3IDExMC44MjMgMTgxLjU4N3oiIGZpbGw9IiMwN2YiLz48cGF0aCBkPSJNNDIuMTk4MiAyMTIuOTg3IDMwIDE3My44MzJINDEuODk3bDUuMDQ0OSAyMi4yMTNDNDcuMTQyNyAxOTYuOTk4IDQ3LjM0MzUgMTk4LjAwMiA0Ny41NDQzIDE5OS4wNTcgNDcuNzk1MyAyMDAuMDYxIDQ3Ljk5NjEgMjAxLjAzOSA0OC4xNDY3IDIwMS45OTMgNDguNDQ3OCAxOTkuOTg1IDQ4Ljg3NDUgMTk3Ljk3NyA0OS40MjY3IDE5NS45NjlsNS43MjI2LTIyLjEzN0g2Ni44MjA0TDcyLjkxOTUgMTk1Ljk2OUM3My40NzE2IDE5Ny45NzcgNzMuODk4MyAxOTkuOTg1IDc0LjE5OTUgMjAxLjk5MyA3NC4zNTAxIDIwMS4wMzkgNzQuNTI1OCAyMDAuMDYxIDc0LjcyNjYgMTk5LjA1NyA3NC45Nzc2IDE5OC4wMDIgNzUuMjAzNSAxOTYuOTk4IDc1LjQwNDMgMTk2LjA0NUw4MC44MjU3IDE3My44MzJIOTEuODk0NEw3OS42OTYyIDIxMi45ODdINjguNzAyOEw2Mi4zMDI1IDE5MC42OTlDNjEuNzAwMiAxODguNzQxIDYxLjI0ODQgMTg2Ljc4MyA2MC45NDcyIDE4NC44MjUgNjAuNzk2NiAxODUuNzc5IDYwLjYyMDkgMTg2Ljc1OCA2MC40MjAxIDE4Ny43NjJTNTkuOTkzNCAxODkuNzQ1IDU5Ljc0MjQgMTkwLjY5OWwtNS44NzMyIDIyLjI4OEg0Mi4xOTgyeiIgZmlsbD0iIzA3ZiIvPjwvc3ZnPg==\",\r\n  logoFallback: \"websitek-logo.svg\"\r\n};\r\n\r\n\/* ----------------------------- apply config ----------------------------- *\/\r\nconst $ = (id) => document.getElementById(id);\r\nconst root = document.documentElement.style;\r\n\r\nfunction hexToRgb(h){\r\n  h = (h||'').replace('#','');\r\n  if(h.length===3) h = h.split('').map(c=>c+c).join('');\r\n  const n = parseInt(h,16);\r\n  return [(n>>16)&255,(n>>8)&255,n&255].join(',');\r\n}\r\nfunction applyColors(c){\r\n  if(!c) return;\r\n  if(c.brand){     root.setProperty('--brand', c.brand);          root.setProperty('--brand-rgb', hexToRgb(c.brand)); }\r\n  if(c.brandGlow)  root.setProperty('--brand-glow', c.brandGlow); root.setProperty('--offer-bottom', c.brandGlow); root.setProperty('--accent-ink', c.brandGlow);\r\n  if(c.brandDeep){ root.setProperty('--brand-deep', c.brandDeep); root.setProperty('--brand-deep-rgb', hexToRgb(c.brandDeep)); }\r\n}\r\n\r\nfunction applyTheme(t){ if(!t) return; const m={bg:'--bg',bg2:'--bg-2',surface:'--surface',surface2:'--surface-2',ink:'--ink',inkMuted:'--ink-muted',line:'--line',offerTop:'--offer-top',offerBottom:'--offer-bottom',accentInk:'--accent-ink'}; for(const k in m){ if(t[k]) root.setProperty(m[k], t[k]); } }\r\n\r\nfunction genSerial(prefix){\r\n  const n = Math.floor(100000 + Math.random()*899999);\r\n  return `${prefix}-${n}`;\r\n}\r\n\r\n\/* one ref token per visit, stable within the session, for share attribution *\/\r\nfunction getRef(){\r\n  let r = sessionStorage.getItem('ratha_ref');\r\n  if(!r){ r = Math.random().toString(36).slice(2,8).toUpperCase(); sessionStorage.setItem('ratha_ref', r); }\r\n  return r;\r\n}\r\n\r\n\/* append ref + utm to any url *\/\r\nfunction withTracking(rawUrl, sourceOverride){\r\n  try{\r\n    const u = new URL(rawUrl, location.href);\r\n    u.searchParams.set('ref', getRef());\r\n    u.searchParams.set('utm_source', sourceOverride || CONFIG.utm.source);\r\n    if(CONFIG.utm.medium)   u.searchParams.set('utm_medium', CONFIG.utm.medium);\r\n    if(CONFIG.utm.campaign) u.searchParams.set('utm_campaign', CONFIG.utm.campaign);\r\n    return u.toString();\r\n  }catch(e){ return rawUrl; }\r\n}\r\n\r\n\/* ----------------------- language (EN \/ AR) ----------------------------- *\/\r\nlet LANG = 'en';\r\n\r\nfunction fillConstants(){\r\n  const logo = $('brandLogo');\r\n  logo.alt = CONFIG.brandName + \" logo\";\r\n  logo.src = (CONFIG.logoDataUri && CONFIG.logoDataUri.indexOf('__') !== 0) ? CONFIG.logoDataUri : CONFIG.logoFallback;\r\n  \/\/ logos designed on a white background sit on a white \"plate\"; light\/transparent logos float\r\n  document.querySelector('.logo-badge').classList.toggle('plate', !!CONFIG.logoPlate);\r\n  $('serial').textContent = genSerial(CONFIG.codePrefix);\r\n}\r\n\r\n\/* set a button's label while preserving its leading SVG icon *\/\r\nfunction setBtnLabel(id, label){\r\n  const b = $(id); const svg = b.querySelector('svg');\r\n  b.textContent = '';\r\n  if(svg){ b.appendChild(svg); b.appendChild(document.createTextNode(' ' + label)); }\r\n  else { b.textContent = label; }\r\n}\r\n\r\nfunction detectLang(){\r\n  const q = new URLSearchParams(location.search).get('lang');\r\n  if(q === 'ar' || q === 'en') return q;                       \/\/ explicit URL override\r\n  const saved = localStorage.getItem('ratha_lang');\r\n  if(saved === 'ar' || saved === 'en') return saved;           \/\/ remembered choice\r\n  const nav = (((navigator.languages && navigator.languages[0]) || navigator.language || 'en')).toLowerCase();\r\n  return nav.indexOf('ar') === 0 ? 'ar' : 'en';                \/\/ phone language\r\n}\r\n\r\nfunction setLang(lang, persist){\r\n  LANG = (lang === 'ar') ? 'ar' : 'en';\r\n  const i = CONFIG.i18n[LANG];\r\n  document.documentElement.lang = LANG;\r\n  document.documentElement.dir  = i.dir;\r\n  document.body.classList.toggle('ar', LANG === 'ar');\r\n  $('rathaName').textContent  = CONFIG.rathaName;\r\n  $('rathaTag').textContent   = i.rathaTag;\r\n  $('kind').textContent       = i.kind;\r\n  $('serialLabel').textContent= i.serialLabel;\r\n  $('issued').textContent     = i.valid;\r\n  $('tagline').textContent    = i.tagline;\r\n  $('offerLabel').textContent = i.offerLabel;\r\n  $('offer').childNodes[0].nodeValue = i.offerHeadline + \" \";\r\n  $('offerSub').textContent   = i.offerSub;\r\n  $('offerDetails').textContent = i.offerDetails || '';\r\n  $('qrHint').textContent     = i.qrHint;\r\n  setBtnLabel('redeemBtn',   i.redeemBtn);\r\n  setBtnLabel('shareBtn',    i.shareBtn);\r\n  setBtnLabel('instaBtn',    i.instagramBtn);\r\n  setBtnLabel('saveBtn',     i.saveBtn);\r\n  $('poweredBy').innerHTML    = i.poweredBy + ' <b>' + CONFIG.rathaName + '<\/b>';\r\n  $('terms').textContent      = i.terms;\r\n  $('cap').textContent        = i.cap;\r\n  document.title = CONFIG.brandName + ' \u00d7 ' + CONFIG.rathaName;\r\n  $('langEn').classList.toggle('active', LANG === 'en');\r\n  $('langAr').classList.toggle('active', LANG === 'ar');\r\n  if(persist) localStorage.setItem('ratha_lang', LANG);\r\n}\r\n\r\n\/* QR routes through the Dub short link (so in-person\/screenshot scans are tracked).\r\n   Falls back to the page URL (with tracking params) if no Dub link is set. *\/\r\nfunction buildQR(){\r\n  const target = CONFIG.qrLink ? CONFIG.qrLink : withTracking(CONFIG.pageUrl, 'qr');\r\n  try{\r\n    new QRious({ element:$('qr'), value:target, size:560, level:'M',\r\n      background:'#ffffff', foreground:'#0a090f' });\r\n  }catch(e){ \/* lib offline *\/ }\r\n}\r\n\r\n\/* ------------------------------ toast ----------------------------------- *\/\r\nlet toastT;\r\nfunction toast(msg){\r\n  const el = $('toast'); el.textContent = msg; el.classList.add('show');\r\n  clearTimeout(toastT); toastT = setTimeout(()=>el.classList.remove('show'), 2200);\r\n}\r\n\r\n\/* --------------------------- copy helpers ------------------------------- *\/\r\nasync function copy(text){\r\n  try{ await navigator.clipboard.writeText(text); return true; }\r\n  catch(e){\r\n    const t=document.createElement('textarea'); t.value=text; document.body.appendChild(t);\r\n    t.select(); try{document.execCommand('copy');}catch(_){} t.remove(); return true;\r\n  }\r\n}\r\n\r\n\/* ---------------------------- redeem ------------------------------------ *\/\r\nfunction redeem(){\r\n  \/\/ If a Dub redeem link is set, open it so taps are counted (it should redirect to the wa.me message).\r\n  if(CONFIG.redeemLink){ window.open(CONFIG.redeemLink, '_blank'); return; }\r\n  const i = CONFIG.i18n[LANG];\r\n  const offer = `${i.offerHeadline} ${i.offerSub}`.trim();\r\n  const msg = i.redeemMessage.replace('{offer}', offer).replace('{code}', CONFIG.code);\r\n  const link = withTracking(CONFIG.redeemUrl || CONFIG.pageUrl, 'redeem');\r\n  const url = `https:\/\/wa.me\/${CONFIG.whatsappNumber}?text=${encodeURIComponent(msg)}`;\r\n  window.open(url, '_blank');\r\n}\r\n\r\n\/* ---------------------------- share ------------------------------------- *\/\r\nasync function renderTicketImage(){\r\n  const node = $('ticket');\r\n  const canvas = await html2canvas(node, { backgroundColor:'#0a090f', scale:2, useCORS:true, onclone:(d)=>{ const o=d.getElementById('offer'); if(o){ const c=getComputedStyle(document.documentElement).getPropertyValue('--offer-bottom').trim()||'#fff'; o.style.background='none'; o.style.webkitBackgroundClip='initial'; o.style.backgroundClip='initial'; o.style.color=c; o.style.webkitTextFillColor=c; } } });\r\n  return new Promise(res => canvas.toBlob(b => res(b), 'image\/png', 0.95));\r\n}\r\n\r\nasync function share(){\r\n  const i = CONFIG.i18n[LANG];\r\n  const isAr = LANG === 'ar';\r\n  const shareUrl = CONFIG.qrLink || withTracking(CONFIG.pageUrl, 'share');\r\n  const igUrl = CONFIG.instagramUrl;\r\n  const igLabel = isAr ? '\ud83d\udcf7 \u0625\u0646\u0633\u062a\u063a\u0631\u0627\u0645:' : '\ud83d\udcf7 IG:';\r\n  const redeemLabel = isAr ? '\ud83c\udfab \u0627\u0633\u062a\u062e\u062f\u0645\u0647:' : '\ud83c\udfab Redeem:';\r\n  const text = `${i.shareMessage}\\n${igLabel} ${igUrl}\\n${redeemLabel} ${shareUrl}`;\r\n\r\n  \/\/ Best path: native share sheet WITH the ticket image (iOS\/Android)\r\n  try{\r\n    const blob = await renderTicketImage();\r\n    const file = new File([blob], 'ratha-ticket.png', { type:'image\/png' });\r\n    if(navigator.canShare && navigator.canShare({ files:[file] })){\r\n      await navigator.share({ files:[file], text, title:`${CONFIG.brandName} \u00d7 Ratha` });\r\n      return;\r\n    }\r\n  }catch(e){ if(e && e.name==='AbortError') return; }\r\n\r\n  \/\/ Next: native share with text only\r\n  try{\r\n    if(navigator.share){\r\n      await navigator.share({ title:`${CONFIG.brandName} \u00d7 Ratha`, text, url:shareUrl });\r\n      return;\r\n    }\r\n  }catch(e){ if(e && e.name==='AbortError') return; }\r\n\r\n  \/\/ Desktop fallback: WhatsApp Web + copy link\r\n  await copy(shareUrl);\r\n  window.open(`https:\/\/wa.me\/?text=${encodeURIComponent(text)}`, '_blank');\r\n  toast(isAr ? '\u062a\u0645 \u0646\u0633\u062e \u0627\u0644\u0631\u0627\u0628\u0637 \u2014 \u062c\u0627\u0631\u064d \u0641\u062a\u062d \u0648\u0627\u062a\u0633\u0627\u0628' : 'Link copied \u2014 opening WhatsApp');\r\n}\r\n\r\n\/* ----------------------------- save image ------------------------------- *\/\r\nasync function saveImage(){\r\n  toast(LANG==='ar' ? '\u064a\u062a\u0645 \u062a\u062c\u0647\u064a\u0632 \u0627\u0644\u062a\u0630\u0643\u0631\u0629\u2026' : 'Preparing your ticket\u2026');\r\n  try{\r\n    const node = $('ticket');\r\n    const canvas = await html2canvas(node, { backgroundColor:'#0a090f', scale:2, useCORS:true, onclone:(d)=>{ const o=d.getElementById('offer'); if(o){ const c=getComputedStyle(document.documentElement).getPropertyValue('--offer-bottom').trim()||'#fff'; o.style.background='none'; o.style.webkitBackgroundClip='initial'; o.style.backgroundClip='initial'; o.style.color=c; o.style.webkitTextFillColor=c; } } });\r\n    const a = document.createElement('a');\r\n    a.download = `${CONFIG.brandName.replace(\/\\s+\/g,'-').toLowerCase()}-ratha-ticket.png`;\r\n    a.href = canvas.toDataURL('image\/png');\r\n    a.click();\r\n  }catch(e){ toast(LANG==='ar' ? '\u062a\u0639\u0630\u0651\u0631 \u0627\u0644\u062d\u0641\u0638' : 'Could not save'); }\r\n}\r\n\r\n\/* --------------------------- extra links -------------------------------- *\/\r\nfunction setupLinks(){\r\n  const insta = $('instaBtn');\r\n  if(CONFIG.instagramUrl){ insta.onclick = ()=>window.open(CONFIG.instagramUrl,'_blank'); insta.style.display=''; }\r\n  else { insta.style.display='none'; }\r\n}\r\n\r\n\/* ------------------------------ init ------------------------------------ *\/\r\napplyColors(CONFIG.colors);\r\napplyTheme(CONFIG.theme);\r\nfillConstants();\r\nbuildQR();\r\nsetupLinks();\r\nsetLang(detectLang(), false);\r\n\r\n$('redeemBtn').addEventListener('click', redeem);\r\n$('shareBtn').addEventListener('click', share);\r\n$('saveBtn').addEventListener('click', saveImage);\r\n$('langEn').addEventListener('click', ()=>setLang('en', true));\r\n$('langAr').addEventListener('click', ()=>setLang('ar', true));\r\n<\/script>\r\n\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u0627\u0633\u062a\u062e\u062f\u0645 \u0643\u0648\u062f Ratha15 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u062e\u0635\u0645 15% \u0645\u0648\u0642\u0639\u0643 \u0627\u0644\u0625\u0644\u0643\u062a\u0631\u0648\u0646\u064a \u00d7 \u0631\u0627\u062b\u0627 &#8211; \u062a\u0630\u0643\u0631\u062a\u0643 EN \u0639 \u0631\u0630\u0627\u0630\u0627\u0644\u062a\u0631\u0648\u064a\u062c \u0644\u0644\u0639\u0644\u0627\u0645\u0627\u062a \u0627\u0644\u062a\u062c\u0627\u0631\u064a\u0629 \u0627\u0644\u0643\u0648\u064a\u062a\u064a\u0629 \u0627\u0644\u0645\u062d\u0644\u064a\u0629<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-4333","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/ratha.me\/ar\/wp-json\/wp\/v2\/pages\/4333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ratha.me\/ar\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ratha.me\/ar\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ratha.me\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ratha.me\/ar\/wp-json\/wp\/v2\/comments?post=4333"}],"version-history":[{"count":56,"href":"https:\/\/ratha.me\/ar\/wp-json\/wp\/v2\/pages\/4333\/revisions"}],"predecessor-version":[{"id":5347,"href":"https:\/\/ratha.me\/ar\/wp-json\/wp\/v2\/pages\/4333\/revisions\/5347"}],"wp:attachment":[{"href":"https:\/\/ratha.me\/ar\/wp-json\/wp\/v2\/media?parent=4333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}