{"id":38613,"date":"2026-04-29T14:29:28","date_gmt":"2026-04-29T07:29:28","guid":{"rendered":"https:\/\/dps.media\/?page_id=38613"},"modified":"2026-04-29T16:46:14","modified_gmt":"2026-04-29T09:46:14","slug":"sticker-cutter-tool-automatic-background-remover-sticker-splitter","status":"publish","type":"page","link":"https:\/\/dps.media\/en\/sticker-cutter-tool-automatic-background-remover-sticker-splitter\/","title":{"rendered":"Automatic Sticker Cutting &amp; Background Removal Tool (Sticker Splitter)"},"content":{"rendered":"<div id=\"dps-isolated-root\">\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jszip\/3.10.1\/jszip.min.js\"><\/script>\n  <style>\n    \n@import url('https:\/\/fonts.googleapis.com\/css2?family=Nunito:wght@700;800;900&family=DM+Sans:wght@400;500;700&display=swap');\n#dps-isolated-root * { margin: 0; padding: 0; box-sizing: border-box; font-family: inherit; }\n\n\n#dps-isolated-root *,#dps-isolated-root *::before,#dps-isolated-root *::after{ box-sizing: border-box; margin: 0; padding: 0; }\n:root {\n  --bg: #f8fafc;\n  --surface: #ffffff;\n  --primary: #4f46e5;\n  --primary-hover: #4338ca;\n  --primary-light: #eef2ff;\n  --accent: #ec4899;\n  --text-main: #0f172a;\n  --text-muted: #64748b;\n  --border: #e2e8f0;\n  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n  --shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n  --shadow-glow: 0 0 20px rgba(79, 70, 229, 0.15);\n  --radius: 20px;\n}\n\n#dps-isolated-root{\n  background: var(--bg);\n  color: var(--text-main);\n  font-family: 'DM Sans', sans-serif;\n  min-height: 100vh;\n  line-height: 1.5;\n  position: relative;\n  overflow-x: hidden;\n}\n\n\n#dps-isolated-root::before,#dps-isolated-root::after{\n  content: ''; position: fixed; border-radius: 50%; filter: blur(80px); z-index: -1; pointer-events: none;\n}\n#dps-isolated-root::before{ top: -10%; left: -10%; width: 50vw; height: 50vw; background: rgba(79, 70, 229, 0.07); }\n#dps-isolated-root::after{ bottom: -10%; right: -10%; width: 50vw; height: 50vw; background: rgba(236, 72, 153, 0.07); }\n\n#dps-isolated-root .dps-i-wrap{ max-width: 900px; margin: 0 auto; padding: 48px 20px 80px; position: relative; z-index: 1; }\n\n\n#dps-isolated-root .dps-i-header{ text-align: center; margin-bottom: 40px; }\n#dps-isolated-root .dps-i-badge{\n  display: inline-flex; align-items: center; gap: 8px;\n  background: var(--surface); border: 1px solid var(--border); box-shadow: var(--shadow-sm);\n  border-radius: 100px; padding: 6px 16px;\n  font-size: 12px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--primary);\n  margin-bottom: 16px;\n}\n#dps-isolated-root .dps-i-badge .dps-i-dot{ width: 8px; height: 8px; background: var(--primary); border-radius: 50%; box-shadow: 0 0 8px var(--primary); animation: pulse 2s infinite; }\n@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(79,70,229,0.4); } 70% { box-shadow: 0 0 0 6px rgba(79,70,229,0); } 100% { box-shadow: 0 0 0 0 rgba(79,70,229,0); } }\n\n#dps-isolated-root .dps-i-h1{\n  font-family: 'Nunito', sans-serif; font-size: clamp(32px, 6vw, 48px); font-weight: 900;\n  color: var(--text-main); line-height: 1.2; margin-bottom: 12px;\n}\n#dps-isolated-root .dps-i-h1 span{\n  background: linear-gradient(135deg, var(--primary), var(--accent));\n  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;\n}\n#dps-isolated-root .dps-i-sub{ color: var(--text-muted); font-size: 16px; max-width: 500px; margin: 0 auto; }\n\n\n#dps-isolated-root .dps-i-panel{\n  background: var(--surface); border: 1px solid var(--border); box-shadow: var(--shadow);\n  border-radius: var(--radius); padding: 32px; margin-bottom: 24px; transition: all 0.3s ease;\n}\n\n\n#dps-isolated-root .dps-i-upload-zone{\n  border: 2px dashed #cbd5e1; background: #f8fafc;\n  text-align: center; cursor: pointer; padding: 56px 32px;\n}\n#dps-isolated-root .dps-i-upload-zone:hover,#dps-isolated-root .dps-i-upload-zone.over{\n  border-color: var(--primary); background: var(--primary-light);\n}\n#dps-isolated-root .dps-i-upload-zone .dps-i-ico{ font-size: 56px; display: block; margin-bottom: 16px; transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); }\n#dps-isolated-root .dps-i-upload-zone:hover .dps-i-ico{ transform: scale(1.1) translateY(-4px); }\n#dps-isolated-root .dps-i-upload-zone h3{ font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 20px; color: var(--text-main); margin-bottom: 8px; }\n#dps-isolated-root .dps-i-upload-zone p{ color: var(--text-muted); font-size: 14px; }\n#dps-isolated-root #fileInput{ display: none; }\n\n\n#dps-isolated-root .dps-i-preview-row{ display: flex; align-items: center; gap: 20px; margin-bottom: 32px; padding-bottom: 24px; border-bottom: 1px solid var(--border); }\n#dps-isolated-root .dps-i-preview-row img{ width: 90px; height: 90px; object-fit: contain; border-radius: 12px; background: #f1f5f9; border: 1px solid var(--border); flex-shrink: 0; }\n#dps-isolated-root .dps-i-preview-info h4{ font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 18px; color: var(--text-main); margin-bottom: 4px; }\n#dps-isolated-root .dps-i-preview-info p{ font-size: 14px; color: var(--text-muted); }\n\n\n#dps-isolated-root .dps-i-grid-section{ margin-bottom: 28px; }\n#dps-isolated-root .dps-i-section-label{\n  font-size: 13px; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;\n  color: var(--text-muted); margin-bottom: 16px; display: block;\n}\n#dps-isolated-root .dps-i-grid-presets{ display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }\n#dps-isolated-root .dps-i-preset-btn{\n  padding: 8px 20px; border-radius: 12px; border: 1px solid var(--border);\n  background: var(--surface); color: var(--text-muted); font-family: 'DM Sans', sans-serif;\n  font-weight: 700; font-size: 15px; cursor: pointer; transition: all 0.2s ease;\n}\n#dps-isolated-root .dps-i-preset-btn:hover{ border-color: var(--primary); color: var(--primary); background: var(--primary-light); }\n#dps-isolated-root .dps-i-preset-btn.dps-i-active{ border-color: var(--primary); background: var(--primary); color: white; box-shadow: var(--shadow-glow); }\n\n#dps-isolated-root .dps-i-grid-custom{ display: inline-flex; align-items: center; gap: 12px; background: #f8fafc; padding: 8px 16px; border-radius: 14px; border: 1px solid var(--border); }\n#dps-isolated-root .dps-i-grid-custom input{\n  width: 60px; padding: 8px; border-radius: 8px; border: 1px solid var(--border); background: var(--surface);\n  color: var(--text-main); font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 18px; text-align: center; outline: none; transition: all 0.2s;\n}\n#dps-isolated-root .dps-i-grid-custom input:focus{ border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-light); }\n#dps-isolated-root .dps-i-grid-custom span{ color: var(--text-muted); font-weight: 500; font-size: 15px; }\n#dps-isolated-root .dps-i-grid-custom .dps-i-times{ font-size: 18px; font-weight: 700; color: #cbd5e1; }\n#dps-isolated-root .dps-i-grid-info{ font-size: 14px; color: var(--primary); margin-top: 12px; font-weight: 500; display: flex; align-items: center; gap: 6px; }\n#dps-isolated-root .dps-i-grid-info strong{ font-weight: 800; }\n\n\n#dps-isolated-root .dps-i-toggle-row{\n  display: flex; align-items: center; justify-content: space-between;\n  padding: 20px 0 0; border-top: 1px solid var(--border);\n}\n#dps-isolated-root .dps-i-toggle-label{ font-size: 16px; font-weight: 700; color: var(--text-main); }\n#dps-isolated-root .dps-i-toggle-label small{ display: block; font-size: 13px; color: var(--text-muted); font-weight: 400; margin-top: 4px; }\n#dps-isolated-root .dps-i-toggle{ position: relative; width: 50px; height: 28px; }\n#dps-isolated-root .dps-i-toggle input{ opacity: 0; width: 0; height: 0; }\n#dps-isolated-root .dps-i-toggle-track{\n  position: absolute; inset: 0; border-radius: 100px;\n  background: #cbd5e1; cursor: pointer; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n#dps-isolated-root .dps-i-toggle-track::after{\n  content: ''; position: absolute; left: 4px; top: 4px;\n  width: 20px; height: 20px; border-radius: 50%;\n  background: white; box-shadow: 0 2px 4px rgba(0,0,0,0.2); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n#dps-isolated-root .dps-i-toggle input:checked + .dps-i-toggle-track{ background: var(--primary); }\n#dps-isolated-root .dps-i-toggle input:checked + .dps-i-toggle-track::after{ transform: translateX(22px); }\n\n\n#dps-isolated-root .dps-i-guide-box{\n  margin-top: 24px;\n  padding: 16px;\n  background: #f8fafc;\n  border: 1px solid var(--border);\n  border-radius: 12px;\n}\n#dps-isolated-root .dps-i-guide-box h4{\n  margin: 0 0 8px 0;\n  color: var(--primary);\n  font-size: 15px;\n  display: flex;\n  align-items: center;\n  gap: 6px;\n}\n#dps-isolated-root .dps-i-guide-box p{\n  font-size: 13px;\n  color: var(--text-muted);\n  margin: 0 0 12px 0;\n  line-height: 1.4;\n}\n#dps-isolated-root .dps-i-prompt-text{\n  background: #fff;\n  border: 1px solid var(--border);\n  padding: 12px;\n  border-radius: 8px;\n  font-size: 12px;\n  color: var(--text);\n  max-height: 100px;\n  overflow-y: auto;\n  line-height: 1.5;\n  white-space: pre-wrap;\n  user-select: all;\n}\n\n\n#dps-isolated-root .dps-i-thresh-row{\n  display: flex; align-items: center; gap: 16px;\n  padding-top: 16px; margin-top: 16px; border-top: 1px dashed var(--border);\n}\n#dps-isolated-root .dps-i-thresh-row label{ font-size: 14px; font-weight: 500; color: var(--text-muted); white-space: nowrap; }\n#dps-isolated-root .dps-i-thresh-row input[type=range]{\n  flex: 1; -webkit-appearance: none; height: 6px;\n  background: #e2e8f0; border-radius: 100px; outline: none;\n}\n#dps-isolated-root .dps-i-thresh-row input[type=range]::-webkit-slider-thumb{\n  -webkit-appearance: none; width: 20px; height: 20px; border-radius: 50%;\n  background: white; border: 2px solid var(--primary); cursor: pointer; box-shadow: 0 2px 6px rgba(0,0,0,0.1);\n  transition: transform 0.1s;\n}\n#dps-isolated-root .dps-i-thresh-row input[type=range]::-webkit-slider-thumb:hover{ transform: scale(1.1); }\n#dps-isolated-root .dps-i-thresh-val{ font-size: 14px; color: var(--primary); font-weight: 800; width: 36px; text-align: right; background: var(--primary-light); padding: 4px 8px; border-radius: 6px; }\n\n\n#dps-isolated-root .dps-i-action-row{ display: flex; gap: 16px; flex-wrap: wrap; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--border); }\n#dps-isolated-root .dps-i-btn{\n  display: inline-flex; align-items: center; justify-content: center; gap: 8px;\n  padding: 14px 28px; border: none; border-radius: 12px;\n  font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 16px;\n  cursor: pointer; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n}\n#dps-isolated-root .dps-i-btn-primary{ background: var(--primary); color: #fff; box-shadow: 0 4px 12px rgba(79, 70, 229, 0.3); flex: 1; min-width: 200px; }\n#dps-isolated-root .dps-i-btn-primary:hover{ transform: translateY(-2px); box-shadow: 0 6px 16px rgba(79, 70, 229, 0.4); background: var(--primary-hover); }\n#dps-isolated-root .dps-i-btn-primary:active{ transform: translateY(0); }\n#dps-isolated-root .dps-i-btn-primary:disabled{ opacity: 0.6; cursor: not-allowed; transform: none; box-shadow: none; }\n#dps-isolated-root .dps-i-btn-secondary{ background: var(--surface); border: 2px solid var(--border); color: var(--text-main); }\n#dps-isolated-root .dps-i-btn-secondary:hover{ border-color: #cbd5e1; background: #f8fafc; }\n#dps-isolated-root .dps-i-btn-success{ background: #10b981; color: white; box-shadow: 0 4px 12px rgba(16, 185, 129, 0.2); }\n#dps-isolated-root .dps-i-btn-success:hover{ background: #059669; transform: translateY(-2px); box-shadow: 0 6px 16px rgba(16, 185, 129, 0.3); }\n#dps-isolated-root .dps-i-btn-sm{ padding: 8px 16px; font-size: 13px; border-radius: 8px; }\n#dps-isolated-root .dps-i-btn-outline-primary{ background: white; border: 1px solid var(--primary); color: var(--primary); }\n#dps-isolated-root .dps-i-btn-outline-primary:hover{ background: var(--primary-light); }\n\n\n#dps-isolated-root .dps-i-progress-panel{ text-align: center; }\n#dps-isolated-root .dps-i-spinner{ \n  width: 48px; height: 48px; margin: 0 auto 20px; \n  border: 4px solid var(--primary-light); border-top-color: var(--primary); \n  border-radius: 50%; animation: spin 1s cubic-bezier(0.55, 0.15, 0.45, 0.85) infinite; \n}\n@keyframes spin { to { transform: rotate(360deg); } }\n#dps-isolated-root .dps-i-progress-title{ font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 20px; color: var(--text-main); margin-bottom: 16px; }\n#dps-isolated-root .dps-i-track{ height: 8px; background: var(--primary-light); border-radius: 100px; overflow: hidden; margin-bottom: 12px; }\n#dps-isolated-root .dps-i-fill{ height: 100%; border-radius: 100px; background: var(--primary); transition: width 0.3s ease; }\n#dps-isolated-root .dps-i-progress-detail{ font-size: 14px; color: var(--text-muted); font-weight: 500; }\n\n\n#dps-isolated-root .dps-i-alert{ border-radius: 12px; padding: 16px 20px; font-size: 15px; margin-bottom: 24px; display: flex; align-items: center; gap: 12px; font-weight: 500; }\n#dps-isolated-root .dps-i-alert-error{ background: #fef2f2; border: 1px solid #fca5a5; color: #b91c1c; }\n#dps-isolated-root .dps-i-alert-success{ background: #f0fdf4; border: 1px solid #86efac; color: #15803d; }\n\n\n#dps-isolated-root .dps-i-results-header{\n  display: flex; align-items: center; justify-content: space-between;\n  flex-wrap: wrap; gap: 16px; margin-bottom: 24px;\n}\n#dps-isolated-root .dps-i-results-title{ font-family: 'Nunito', sans-serif; font-weight: 900; font-size: 24px; color: var(--text-main); display: flex; align-items: center; gap: 12px; }\n#dps-isolated-root .dps-i-chip{ font-size: 13px; padding: 4px 12px; border-radius: 100px; font-weight: 800; background: var(--primary-light); color: var(--primary); }\n\n\n#dps-isolated-root .dps-i-sticker-grid{ display: grid; gap: 20px; margin-bottom: 32px; }\n#dps-isolated-root .dps-i-sticker-card{\n  background: var(--surface); border: 1px solid var(--border); border-radius: 16px;\n  overflow: hidden; transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n  box-shadow: var(--shadow-sm);\n  animation: popUp 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;\n}\n@keyframes popUp { from { opacity: 0; transform: scale(0.9) translateY(10px); } to { opacity: 1; transform: scale(1) translateY(0); } }\n#dps-isolated-root .dps-i-sticker-card:hover{ border-color: var(--primary); transform: translateY(-4px); box-shadow: var(--shadow-lg); }\n#dps-isolated-root .dps-i-s-preview{\n  background: \n    linear-gradient(45deg, #f1f5f9 25%, transparent 25%, transparent 75%, #f1f5f9 75%, #f1f5f9), \n    linear-gradient(45deg, #f1f5f9 25%, transparent 25%, transparent 75%, #f1f5f9 75%, #f1f5f9);\n  background-color: #ffffff; background-size: 20px 20px; background-position: 0 0, 10px 10px;\n  display: flex; align-items: center; justify-content: center;\n  min-height: 160px; padding: 20px; position: relative;\n}\n#dps-isolated-root .dps-i-s-preview::after{\n  content: ''; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(0,0,0,0.03); pointer-events: none;\n}\n#dps-isolated-root .dps-i-s-preview img{ max-width: 100%; max-height: 140px; object-fit: contain; filter: drop-shadow(0 4px 12px rgba(0,0,0,0.15)); transition: transform 0.3s ease; }\n#dps-isolated-root .dps-i-sticker-card:hover .dps-i-s-preview img{ transform: scale(1.05); }\n#dps-isolated-root .dps-i-s-footer{ padding: 12px 16px; border-top: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; background: #f8fafc; }\n#dps-isolated-root .dps-i-s-label{ font-family: 'DM Sans', sans-serif; font-weight: 700; font-size: 13px; color: var(--text-muted); }\n\n#dps-isolated-root .dps-i-hidden{ display: none !important; }\n\n\n@media(max-width: 640px) { \n#dps-isolated-root .dps-i-wrap{ padding: 24px 16px 60px; }\n#dps-isolated-root .dps-i-panel{ padding: 24px 20px; }\n#dps-isolated-root .dps-i-action-row{ flex-direction: column; }\n#dps-isolated-root .dps-i-btn{ width: 100%; }\n#dps-isolated-root .dps-i-grid-presets{ gap: 8px; }\n#dps-isolated-root .dps-i-preset-btn{ padding: 8px 16px; flex: 1; text-align: center; min-width: calc(33% - 8px); }\n#dps-isolated-root .dps-i-preview-row{ flex-direction: column; text-align: center; }\n#dps-isolated-root .dps-i-toggle-row{ flex-direction: column; align-items: flex-start; gap: 16px; }\n#dps-isolated-root .dps-i-toggle{ align-self: flex-end; margin-top: -36px; }\n}\n\n  <\/style>\n\n  \n<div class=\"dps-i-wrap\">\n\n<div class=\"dps-i-header\">\n  <div class=\"dps-i-badge\"><span class=\"dps-i-dot\"><\/span> Smart Tool<\/div>\n  <div class=\"dps-i-h1\">Sticker <span>Splitter<\/span><\/div>\n  <div  class=\"dps-i-p dps-i-sub\">Upload a sticker grid image file, the tool will automatically cut and remove the background to give you perfect transparent PNG files.<\/div>\n<\/div>\n\n<!-- Upload -->\n<div class=\"dps-i-panel dps-i-upload-zone\" id=\"uploadZone\">\n  <input type=\"file\" id=\"fileInput\" accept=\"image\/*\">\n  <span class=\"dps-i-ico\">\u2728<\/span>\n  <div class=\"dps-i-h3\">Drag and drop or click to select an image<\/div>\n  <div class=\"dps-i-p\">Supports JPG, PNG, WebP formats<\/div>\n<\/div>\n\n<div class=\"dps-i-guide-box\" id=\"guideBox\" style=\"margin-bottom: 24px; margin-top: 0;\">\n  <div class=\"dps-i-h4\">\ud83d\udca1 Sample Sticker Prompt<\/div>\n  <div class=\"dps-i-p\">For the best cutting results, use the prompt below:<\/div>\n  <div class=\"dps-i-prompt-text\">Create a cute Vietnamese Zalo sticker pack in a 3\u00d73 grid layout on a white background. The canvas is square. Divide it into a strict 3\u00d73 grid where each cell occupies exactly 1\/3 of the total width and 1\/3 of the total height. Each sticker must be fully contained within its own cell \u2014 nothing may cross cell boundaries or overlap into adjacent cells. Within each cell: Kabot\u2019s character takes up the top 70% of the cell height, and the Vietnamese caption takes up the bottom 30% of the cell height. All elements including decorative doodles must stay strictly within the cell\u2019s boundaries. Use the robot mascot \u201cKabot\u201d from DPS Media consistently across all 9 stickers. Kabot\u2019s design: round dark blue oval head, two light blue circular eye highlights, small blue antenna on top, expressive curved mouth, white and dark blue body suit with the DPS logo badge on the chest, short rounded limbs, friendly chibi proportion. Sticker list (left to right, top to bottom): Flexing confidently with big grin \u2014 \u201cChill, \u0111\u1ec3 DPS lo!\u201d Holding phone showing graph going up \u2014 \u201cReach t\u0103ng v\u00f9 v\u00f9!\u201d Panicking with sweat drops holding laptop \u2014 \u201cDeadline h\u00f4m nay r\u1ed3i!\u201d Winking doing finger guns \u2014 \u201cB\u1eaft trend nhanh h\u01a1n s\u00e1ng nay!\u201d Pointing at glowing lightbulb above head \u2014 \u201c\u00dd t\u01b0\u1edfng hay \u0111\u00e2y!\u201d Typing furiously on tiny keyboard \u2014 \u201cContent \u0111ang ch\u1ea1y!\u201d Arms crossed cool pose with sunglasses \u2014 \u201cViral l\u00e0 chuy\u1ec7n nh\u1ecf!\u201d Jumping in joy with confetti \u2014 \u201cKPI \u0111\u1ea1t r\u1ed3i anh \u01a1i!\u201d Waving both hands cheerfully \u2014 \u201cH\u1ee3p t\u00e1c v\u1edbi DPS nha!\u201d Add small colorful doodles (lightning bolts, sparkles, stars, hearts, arrows) inside each cell, strictly within bounds. Style: cute chibi robot, Zalo sticker style, vibrant Gen Z colors (electric blue, coral, yellow, mint green), bold colorful gradient captions with thick white outline, high resolution, 1:1 square canvas.<\/div>\n  <div role=\"button\" tabindex=\"0\" class=\"dps-i-btn dps-i-btn-secondary\" style=\"margin-top: 12px; width: 100%; display: flex; justify-content: center; gap: 8px;\" onclick=\"navigator.clipboard.writeText(document.querySelector('.dps-i-prompt-text').innerText); const icon = this.innerHTML; this.innerHTML='<span style=\\'font-size:16px\\'>\u2713<\/span> \u0110\u00e3 copy&#8217;; setTimeout(()=>this.innerHTML=icon, 2000);&#8221;>    <span style=\"font-size: 16px;\">\ud83d\udccb<\/span> Copy Prompt\n  <\/div>\n<\/div>\n\n<!-- Config -->\n<div class=\"dps-i-panel dps-i-config-panel dps-i-hidden\" id=\"configPanel\">\n  <div class=\"dps-i-preview-row\">\n    <img id=\"origThumb\" alt=\"Thumbnail\">\n    <div class=\"dps-i-preview-info\">\n      <div class=\"dps-i-h4\" id=\"origName\">filename.png<\/div>\n      <div class=\"dps-i-p\" id=\"origMeta\">1024 \u00d7 1024px \u00b7 1.5 MB<\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"dps-i-grid-section\">\n    <span class=\"dps-i-section-label\">\ud83d\udcd0 Grid Size<\/span>\n    <div class=\"dps-i-grid-presets\">\n      <div role=\"button\" tabindex=\"0\" class=\"dps-i-preset-btn\" data-c=\"2\" data-r=\"2\">2\u00d72<\/div>\n      <div role=\"button\" tabindex=\"0\" class=\"dps-i-preset-btn dps-i-active\" data-c=\"3\" data-r=\"3\">3\u00d73<\/div>\n      <div role=\"button\" tabindex=\"0\" class=\"dps-i-preset-btn\" data-c=\"4\" data-r=\"4\">4\u00d74<\/div>\n      <div role=\"button\" tabindex=\"0\" class=\"dps-i-preset-btn\" data-c=\"2\" data-r=\"3\">2\u00d73<\/div>\n      <div role=\"button\" tabindex=\"0\" class=\"dps-i-preset-btn\" data-c=\"3\" data-r=\"2\">3\u00d72<\/div>\n      <div role=\"button\" tabindex=\"0\" class=\"dps-i-preset-btn\" data-c=\"4\" data-r=\"3\">4\u00d73<\/div>\n    <\/div>\n    <div class=\"dps-i-grid-custom\">\n      <input type=\"number\" id=\"gridCols\" value=\"3\" min=\"1\" max=\"20\">\n      <span class=\"dps-i-times\">\u00d7<\/span>\n      <input type=\"number\" id=\"gridRows\" value=\"3\" min=\"1\" max=\"20\">\n    <\/div>\n    <div class=\"dps-i-grid-info\" id=\"gridInfo\">\ud83c\udf89 Will cut into <span class=\"dps-i-strong\">9<\/span> stickers<\/div>\n  <\/div>\n\n  <div class=\"dps-i-toggle-row\">\n    <div class=\"dps-i-toggle-label\">\n      \ud83e\ude84 Remove white background\n      <span class=\"dps-i-small\">Automatically detect and make the surrounding white background transparent<\/span>\n    <\/div>\n    <label  class=\"dps-i-label dps-i-toggle\">\n      <input type=\"checkbox\" id=\"removeBg\">\n      <span class=\"dps-i-toggle-track\"><\/span>\n    <\/label>\n  <\/div>\n\n  <div class=\"dps-i-thresh-row dps-i-hidden\" id=\"threshRow\">\n    <label class=\"dps-i-label\">White color sensitivity<\/label>\n    <input type=\"range\" id=\"bgThresh\" min=\"200\" max=\"255\" value=\"240\">\n    <span class=\"dps-i-thresh-val\" id=\"threshVal\">240<\/span>\n  <\/div>\n\n  <div class=\"dps-i-thresh-row dps-i-hidden\" id=\"shiftRow\" style=\"margin-top: 12px; border-top: none; padding-top: 0;\">\n    <label class=\"dps-i-label\">Expand \/ Shrink edge (px)<\/label>\n    <input type=\"range\" id=\"edgeShift\" min=\"-5\" max=\"5\" value=\"-1\">\n    <span class=\"dps-i-thresh-val\" id=\"shiftVal\">-1<\/span>\n  <\/div>\n\n  <div class=\"dps-i-toggle-row\" style=\"padding-top: 16px; margin-top: 16px; border-top: 1px dashed var(--border);\">\n    <div class=\"dps-i-toggle-label\">\n      \ud83d\udca7 Smooth edges (Anti-alias)\n      <span class=\"dps-i-small\">Reduce jagged edges, recommended to avoid image clipping<\/span>\n    <\/div>\n    <label  class=\"dps-i-label dps-i-toggle\">\n      <input type=\"checkbox\" id=\"smoothEdgeCb\" checked>\n      <span class=\"dps-i-toggle-track\"><\/span>\n    <\/label>\n  <\/div>\n\n  <div class=\"dps-i-toggle-row\" style=\"padding-top: 16px; margin-top: 16px; border-top: 1px dashed var(--border);\">\n    <div class=\"dps-i-toggle-label\">\n      \u2702\ufe0f Crop\n      <span class=\"dps-i-small\">Crop inward to remove grid lines<\/span>\n    <\/div>\n    <div style=\"display: flex; align-items: center; gap: 8px;\">\n      <input type=\"number\" id=\"cropPx\" value=\"3\" min=\"0\" max=\"50\" style=\"width: 60px; padding: 6px; border-radius: 8px; border: 1px solid var(--border); text-align: center; font-weight: bold; outline: none; font-family: 'Nunito', sans-serif;\">\n      <span style=\"font-size: 14px; color: var(--text-muted); font-weight: 500;\">px<\/span>\n    <\/div>\n  <\/div>\n\n  <div class=\"dps-i-toggle-row\" style=\"padding-top: 16px; margin-top: 16px; border-top: 1px dashed var(--border);\">\n    <div class=\"dps-i-toggle-label\">\n      \ud83c\udfaf Auto center\n      <span class=\"dps-i-small\">Trim excess space and place the sticker in the center of the frame<\/span>\n    <\/div>\n    <label  class=\"dps-i-label dps-i-toggle\">\n      <input type=\"checkbox\" id=\"autoCenterCb\" checked>\n      <span class=\"dps-i-toggle-track\"><\/span>\n    <\/label>\n  <\/div>\n\n  <div class=\"dps-i-action-row\">\n    <div role=\"button\" tabindex=\"0\" class=\"dps-i-btn dps-i-btn-primary\" id=\"processBtn\">\u26a1 Cut Stickers Now<\/div>\n    <div role=\"button\" tabindex=\"0\" class=\"dps-i-btn dps-i-btn-secondary\" id=\"resetBtn\">\u21ba Change image<\/div>\n  <\/div>\n<\/div>\n\n<!-- Progress -->\n<div class=\"dps-i-panel dps-i-progress-panel dps-i-hidden\" id=\"progressPanel\">\n  <div class=\"dps-i-spinner\"><\/div>\n  <div class=\"dps-i-progress-title\" id=\"progressTitle\">Processing\u2026<\/div>\n  <div class=\"dps-i-track\"><div class=\"dps-i-fill\" id=\"progressFill\" style=\"width:0%\"><\/div><\/div>\n  <div class=\"dps-i-progress-detail\" id=\"progressDetail\">Please wait a moment<\/div>\n<\/div>\n\n<!-- Alert -->\n<div class=\"dps-i-hidden\" id=\"alertBox\"><\/div>\n\n<!-- Results -->\n<div class=\"dps-i-hidden\" id=\"resultsWrap\">\n  <div class=\"dps-i-results-header\">\n    <div class=\"dps-i-results-title\">\ud83c\udfa8 Result <span class=\"dps-i-chip\" id=\"countChip\">0<\/span><\/div>\n    <div role=\"button\" tabindex=\"0\" class=\"dps-i-btn dps-i-btn-success\" id=\"downloadAllBtn\">\ud83d\udce6 Download all (ZIP)<\/div>\n  <\/div>\n  <div class=\"dps-i-sticker-grid\" id=\"stickerGrid\"><\/div>\n<\/div>\n\n<\/div>\n\n\n\n\n  <script>\n    \n  document.getElementById('dps-isolated-root').addEventListener('keydown', function(e) {\n    if (['Enter', ' '].includes(e.key)) {\n      if (e.target.getAttribute('role') === 'button') {\n        e.preventDefault();\n        e.target.click();\n      }\n    }\n  });\n\n    \n  const enc = \"Ci8vIOKUgOKUgCBTdGF0ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKbGV0IGZpbGVEYXRhVVJMID0gbnVsbDsKbGV0IGltZ1cgPSAwLCBpbWdIID0gMDsKbGV0IHN0aWNrZXJVUkxzID0gW107CmxldCBvcmlnRmlsZU5hbWUgPSAnc3RpY2tlcic7CgovLyDilIDilIAgRWxlbWVudHMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACmNvbnN0IHVwbG9hZFpvbmUgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1cGxvYWRab25lJyk7CmNvbnN0IGZpbGVJbnB1dCAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlSW5wdXQnKTsKY29uc3QgY29uZmlnUGFuZWwgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbmZpZ1BhbmVsJyk7CmNvbnN0IHByb2Nlc3NCdG4gICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9jZXNzQnRuJyk7CmNvbnN0IHJlc2V0QnRuICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldEJ0bicpOwpjb25zdCBwcm9ncmVzc1BhbmVsPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZ3Jlc3NQYW5lbCcpOwpjb25zdCBhbGVydEJveCAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWxlcnRCb3gnKTsKY29uc3QgcmVzdWx0c1dyYXAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHNXcmFwJyk7CmNvbnN0IHN0aWNrZXJHcmlkICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdGlja2VyR3JpZCcpOwpjb25zdCBkb3dubG9hZEFsbEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkb3dubG9hZEFsbEJ0bicpOwpjb25zdCBjb2xzSW5wdXQgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3JpZENvbHMnKTsKY29uc3Qgcm93c0lucHV0ICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyaWRSb3dzJyk7CmNvbnN0IGdyaWRJbmZvICAgICA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdncmlkSW5mbycpOwpjb25zdCByZW1vdmVCZ0NiICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3ZlQmcnKTsKY29uc3QgdGhyZXNoUm93ICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVzaFJvdycpOwpjb25zdCB0aHJlc2hTbGlkZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmdUaHJlc2gnKTsKY29uc3QgdGhyZXNoVmFsICAgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RocmVzaFZhbCcpOwpjb25zdCBzaGlmdFJvdyAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hpZnRSb3cnKTsKY29uc3Qgc2hpZnRTbGlkZXIgID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VkZ2VTaGlmdCcpOwpjb25zdCBzaGlmdFZhbCAgICAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hpZnRWYWwnKTsKY29uc3Qgc21vb3RoRWRnZUNiID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Ntb290aEVkZ2VDYicpOwpjb25zdCBjcm9wUHhJbnB1dCAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3JvcFB4Jyk7CmNvbnN0IGF1dG9DZW50ZXJDYiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdXRvQ2VudGVyQ2InKTsKCi8vIOKUgOKUgCBHcmlkIHBpY2tlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKZnVuY3Rpb24gdXBkYXRlR3JpZEluZm8oKSB7CiAgY29uc3QgYyA9IHBhcnNlSW50KGNvbHNJbnB1dC52YWx1ZSkgfHwgMTsKICBjb25zdCByID0gcGFyc2VJbnQocm93c0lucHV0LnZhbHVlKSB8fCAxOwogIGdyaWRJbmZvLmlubmVySFRNTCA9ICfwn46JIFPhur0gY+G6r3QgcmEgPHN0cm9uZz4nICsgKGMqcikgKyAnPC9zdHJvbmc+IHN0aWNrZXJzJzsKfQoKZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnByZXNldC1idG4nKS5mb3JFYWNoKGJ0biA9PiB7CiAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gewogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnByZXNldC1idG4nKS5mb3JFYWNoKGIgPT4gYi5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKSk7CiAgICBidG4uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICBjb2xzSW5wdXQudmFsdWUgPSBidG4uZGF0YXNldC5jOwogICAgcm93c0lucHV0LnZhbHVlID0gYnRuLmRhdGFzZXQucjsKICAgIHVwZGF0ZUdyaWRJbmZvKCk7CiAgfSk7Cn0pOwoKW2NvbHNJbnB1dCwgcm93c0lucHV0XS5mb3JFYWNoKGVsID0+IHsKICBlbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsICgpID0+IHsKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wcmVzZXQtYnRuJykuZm9yRWFjaChiID0+IGIuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJykpOwogICAgdXBkYXRlR3JpZEluZm8oKTsKICB9KTsKfSk7CgpyZW1vdmVCZ0NiLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHsKICB0aHJlc2hSb3cuY2xhc3NMaXN0LnRvZ2dsZSgnaGlkZGVuJywgIXJlbW92ZUJnQ2IuY2hlY2tlZCk7CiAgc2hpZnRSb3cuY2xhc3NMaXN0LnRvZ2dsZSgnaGlkZGVuJywgIXJlbW92ZUJnQ2IuY2hlY2tlZCk7Cn0pOwoKdGhyZXNoU2xpZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4gewogIHRocmVzaFZhbC50ZXh0Q29udGVudCA9IHRocmVzaFNsaWRlci52YWx1ZTsKfSk7CgpzaGlmdFNsaWRlci5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsICgpID0+IHsKICBzaGlmdFZhbC50ZXh0Q29udGVudCA9IHNoaWZ0U2xpZGVyLnZhbHVlOwp9KTsKCi8vIOKUgOKUgCBVcGxvYWQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACnVwbG9hZFpvbmUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBmaWxlSW5wdXQuY2xpY2soKSk7CnVwbG9hZFpvbmUuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBlID0+IHsgZS5wcmV2ZW50RGVmYXVsdCgpOyB1cGxvYWRab25lLmNsYXNzTGlzdC5hZGQoJ292ZXInKTsgfSk7CnVwbG9hZFpvbmUuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2xlYXZlJywgKCkgPT4gdXBsb2FkWm9uZS5jbGFzc0xpc3QucmVtb3ZlKCdvdmVyJykpOwp1cGxvYWRab25lLmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBlID0+IHsKICBlLnByZXZlbnREZWZhdWx0KCk7IHVwbG9hZFpvbmUuY2xhc3NMaXN0LnJlbW92ZSgnb3ZlcicpOwogIGNvbnN0IGYgPSBlLmRhdGFUcmFuc2Zlci5maWxlc1swXTsKICBpZiAoZiAmJiBmLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpIGxvYWRGaWxlKGYpOwp9KTsKZmlsZUlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHsgaWYgKGZpbGVJbnB1dC5maWxlc1swXSkgbG9hZEZpbGUoZmlsZUlucHV0LmZpbGVzWzBdKTsgfSk7CgpmdW5jdGlvbiBsb2FkRmlsZShmaWxlKSB7CiAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICByZWFkZXIub25sb2FkID0gZSA9PiB7CiAgICBmaWxlRGF0YVVSTCA9IGUudGFyZ2V0LnJlc3VsdDsKICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpOwogICAgaW1nLm9ubG9hZCA9ICgpID0+IHsKICAgICAgaW1nVyA9IGltZy5uYXR1cmFsV2lkdGg7IGltZ0ggPSBpbWcubmF0dXJhbEhlaWdodDsKICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29yaWdUaHVtYicpLnNyYyA9IGZpbGVEYXRhVVJMOwogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3JpZ05hbWUnKS50ZXh0Q29udGVudCA9IGZpbGUubmFtZTsKICAgICAgb3JpZ0ZpbGVOYW1lID0gZmlsZS5uYW1lLnJlcGxhY2UoL1wuW14vLl0rJC8sICIiKSB8fCAnc3RpY2tlcic7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvcmlnTWV0YScpLnRleHRDb250ZW50ID0KICAgICAgICBpbWdXICsgJyDDlyAnICsgaW1nSCArICdweCDCtyAnICsgKGZpbGUuc2l6ZS8xMDI0LzEwMjQpLnRvRml4ZWQoMikgKyAnIE1CJzsKICAgICAgdXBkYXRlR3JpZEluZm8oKTsKICAgIH07CiAgICBpbWcuc3JjID0gZmlsZURhdGFVUkw7CiAgfTsKICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTsKCiAgdXBsb2FkWm9uZS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ3VpZGVCb3gnKS5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsKICBjb25maWdQYW5lbC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsKICByZXN1bHRzV3JhcC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsKICBhbGVydEJveC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsKICBzdGlja2VyVVJMcyA9IFtdOwp9CgpyZXNldEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHsKICBmaWxlRGF0YVVSTCA9IG51bGw7IGZpbGVJbnB1dC52YWx1ZSA9ICcnOwogIHVwbG9hZFpvbmUuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2d1aWRlQm94JykuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7CiAgY29uZmlnUGFuZWwuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CiAgcmVzdWx0c1dyYXAuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CiAgYWxlcnRCb3guY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CiAgcHJvZ3Jlc3NQYW5lbC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsKICBzdGlja2VyR3JpZC5pbm5lckhUTUwgPSAnJzsKfSk7CgovLyDilIDilIAgUHJvY2VzcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKcHJvY2Vzc0J0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGFzeW5jICgpID0+IHsKICBpZiAoIWZpbGVEYXRhVVJMKSByZXR1cm47CgogIGNvbnN0IGNvbHMgPSBNYXRoLm1heCgxLCBwYXJzZUludChjb2xzSW5wdXQudmFsdWUpIHx8IDMpOwogIGNvbnN0IHJvd3MgPSBNYXRoLm1heCgxLCBwYXJzZUludChyb3dzSW5wdXQudmFsdWUpIHx8IDMpOwogIGNvbnN0IGRvUmVtb3ZlQmcgPSByZW1vdmVCZ0NiLmNoZWNrZWQ7CiAgY29uc3QgZG9BdXRvQ2VudGVyID0gYXV0b0NlbnRlckNiLmNoZWNrZWQ7CiAgY29uc3QgY3JvcEFtdCA9IHBhcnNlSW50KGNyb3BQeElucHV0LnZhbHVlKSB8fCAwOwogIGNvbnN0IHRocmVzaCA9IHBhcnNlSW50KHRocmVzaFNsaWRlci52YWx1ZSk7CiAgY29uc3Qgc2hpZnRBbXQgPSBwYXJzZUludChzaGlmdFNsaWRlci52YWx1ZSk7CgogIHByb2Nlc3NCdG4uZGlzYWJsZWQgPSB0cnVlOwogIGFsZXJ0Qm94LmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOwogIHByb2dyZXNzUGFuZWwuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7CiAgcmVzdWx0c1dyYXAuY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7CgogIHRyeSB7CiAgICBzZXRQcm9ncmVzcyg1LCAnxJBhbmcgdOG6o2kg4bqjbmguLi4nLCAnJyk7CgogICAgLy8gRHJhdyBvcmlnaW5hbCB0byBjYW52YXMKICAgIGNvbnN0IGltZyA9IGF3YWl0IGxvYWRJbWcoZmlsZURhdGFVUkwpOwogICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7CiAgICBjYW52YXMud2lkdGggPSBpbWcubmF0dXJhbFdpZHRoOwogICAgY2FudmFzLmhlaWdodCA9IGltZy5uYXR1cmFsSGVpZ2h0OwogICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CiAgICBjdHguZHJhd0ltYWdlKGltZywgMCwgMCk7CgogICAgc2V0UHJvZ3Jlc3MoMTUsICfEkGFuZyB44butIGzDvSBwaMOibiBt4bqjbmguLi4nLCAnJyk7CiAgICBhd2FpdCB0aWNrKCk7CgogICAgY29uc3QgY2VsbFcgPSBNYXRoLmZsb29yKGNhbnZhcy53aWR0aCAvIGNvbHMpOwogICAgY29uc3QgY2VsbEggPSBNYXRoLmZsb29yKGNhbnZhcy5oZWlnaHQgLyByb3dzKTsKICAgIGNvbnN0IHRvdGFsID0gY29scyAqIHJvd3M7CiAgICBjb25zdCByZXN1bHRzID0gW107CgogICAgZm9yIChsZXQgciA9IDA7IHIgPCByb3dzOyByKyspIHsKICAgICAgZm9yIChsZXQgYyA9IDA7IGMgPCBjb2xzOyBjKyspIHsKICAgICAgICBsZXQgeCA9IGMgKiBjZWxsVzsKICAgICAgICBsZXQgeSA9IHIgKiBjZWxsSDsKICAgICAgICAvLyBMYXN0IGNvbC9yb3cgZ2V0cyByZW1haW5pbmcgcGl4ZWxzCiAgICAgICAgbGV0IHcgPSAoYyA9PT0gY29scyAtIDEpID8gY2FudmFzLndpZHRoIC0geCA6IGNlbGxXOwogICAgICAgIGxldCBoID0gKHIgPT09IHJvd3MgLSAxKSA\/IGNhbnZhcy5oZWlnaHQgLSB5IDogY2VsbEg7CiAgICAgICAgCiAgICAgICAgLy8gQXBwbHkgY3JvcCBtYXJnaW4KICAgICAgICBpZiAoY3JvcEFtdCA+IDAgJiYgdyA+IGNyb3BBbXQgKiAyICYmIGggPiBjcm9wQW10ICogMikgewogICAgICAgICAgeCArPSBjcm9wQW10OwogICAgICAgICAgeSArPSBjcm9wQW10OwogICAgICAgICAgdyAtPSBjcm9wQW10ICogMjsKICAgICAgICAgIGggLT0gY3JvcEFtdCAqIDI7CiAgICAgICAgfQoKICAgICAgICBjb25zdCBzdWIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKICAgICAgICBzdWIud2lkdGggPSB3OyBzdWIuaGVpZ2h0ID0gaDsKICAgICAgICBjb25zdCBzQ3R4ID0gc3ViLmdldENvbnRleHQoJzJkJyk7CiAgICAgICAgc0N0eC5kcmF3SW1hZ2UoY2FudmFzLCB4LCB5LCB3LCBoLCAwLCAwLCB3LCBoKTsKCiAgICAgICAgbGV0IGZpbmFsQ2FudmFzID0gc3ViOwoKICAgICAgICBpZiAoZG9SZW1vdmVCZykgewogICAgICAgICAgY29uc3QgaW1nRGF0YSA9IHNDdHguZ2V0SW1hZ2VEYXRhKDAsIDAsIHcsIGgpOwogICAgICAgICAgbGV0IGNsZWFuZWQgPSBmbG9vZEZpbGxCZyhpbWdEYXRhLCB0aHJlc2gpOwogICAgICAgICAgaWYgKHNoaWZ0QW10ICE9PSAwKSB7CiAgICAgICAgICAgIGNsZWFuZWQgPSBzaGlmdE1hc2soY2xlYW5lZCwgc2hpZnRBbXQpOwogICAgICAgICAgfQogICAgICAgICAgY2xlYW5lZCA9IHJlbW92ZUVkZ2VOb2lzZShjbGVhbmVkKTsKICAgICAgICAgIGlmIChzbW9vdGhFZGdlQ2IuY2hlY2tlZCkgewogICAgICAgICAgICBjbGVhbmVkID0gcHJvY2Vzc0FudGlBbGlhc2luZyhjbGVhbmVkLCAyKTsKICAgICAgICAgIH0KICAgICAgICAgIHNDdHgucHV0SW1hZ2VEYXRhKGNsZWFuZWQsIDAsIDApOwogICAgICAgIH0KCiAgICAgICAgaWYgKGRvQXV0b0NlbnRlcikgewogICAgICAgICAgY29uc3QgdHJpbW1lZCA9IHRyaW1DYW52YXMoZmluYWxDYW52YXMpOwogICAgICAgICAgaWYgKHRyaW1tZWQpIHsKICAgICAgICAgICAgY29uc3QgY2VudGVyZWQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKICAgICAgICAgICAgY2VudGVyZWQud2lkdGggPSA0NjU7CiAgICAgICAgICAgIGNlbnRlcmVkLmhlaWdodCA9IDQ2NTsKICAgICAgICAgICAgY29uc3QgY0N0eCA9IGNlbnRlcmVkLmdldENvbnRleHQoJzJkJyk7CiAgICAgICAgICAgIGNvbnN0IGR4ID0gTWF0aC5mbG9vcigoNDY1IC0gdHJpbW1lZC53aWR0aCkgLyAyKTsKICAgICAgICAgICAgY29uc3QgZHkgPSBNYXRoLmZsb29yKCg0NjUgLSB0cmltbWVkLmhlaWdodCkgLyAyKTsKICAgICAgICAgICAgY0N0eC5kcmF3SW1hZ2UodHJpbW1lZCwgZHgsIGR5KTsKICAgICAgICAgICAgZmluYWxDYW52YXMgPSBjZW50ZXJlZDsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJlc3VsdHMucHVzaChmaW5hbENhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL3BuZycpKTsKICAgICAgICBjb25zdCBpZHggPSByICogY29scyArIGMgKyAxOwogICAgICAgIHNldFByb2dyZXNzKDE1ICsgTWF0aC5yb3VuZCgoaWR4IC8gdG90YWwpICogODIpLAogICAgICAgICAgJ1N0aWNrZXIgJyArIGlkeCArICcvJyArIHRvdGFsLAogICAgICAgICAgJ0jDoG5nICcgKyAocisxKSArICcgwrcgQ+G7mXQgJyArIChjKzEpKTsKICAgICAgICBhd2FpdCB0aWNrKCk7CiAgICAgIH0KICAgIH0KCiAgICBzdGlja2VyVVJMcyA9IHJlc3VsdHM7CiAgICByZW5kZXJSZXN1bHRzKHJlc3VsdHMsIGNvbHMpOwogICAgcHJvZ3Jlc3NQYW5lbC5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTsKICAgIHByb2Nlc3NCdG4uZGlzYWJsZWQgPSBmYWxzZTsKCiAgfSBjYXRjaChlcnIpIHsKICAgIHNob3dBbGVydCgnZXJyb3InLCAn4p2MICcgKyBlcnIubWVzc2FnZSk7CiAgICBwcm9ncmVzc1BhbmVsLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpOwogICAgcHJvY2Vzc0J0bi5kaXNhYmxlZCA9IGZhbHNlOwogIH0KfSk7CgovLyDilIDilIAgRmxvb2QgZmlsbCBiYWNrZ3JvdW5kIHJlbW92YWwg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACmZ1bmN0aW9uIGZsb29kRmlsbEJnKGltYWdlRGF0YSwgdGhyZXNoKSB7CiAgY29uc3QgeyBkYXRhLCB3aWR0aCwgaGVpZ2h0IH0gPSBpbWFnZURhdGE7CiAgY29uc3QgcmVzdWx0ID0gbmV3IEltYWdlRGF0YShuZXcgVWludDhDbGFtcGVkQXJyYXkoZGF0YSksIHdpZHRoLCBoZWlnaHQpOwogIGNvbnN0IHZpc2l0ZWQgPSBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCk7CiAgLy8gVXNlIGEgdHlwZWQgYXJyYXkgYXMgYSBmYXN0IHF1ZXVlCiAgY29uc3QgcXVldWUgPSBuZXcgSW50MzJBcnJheSh3aWR0aCAqIGhlaWdodCk7CiAgbGV0IGhlYWQgPSAwLCB0YWlsID0gMDsKCiAgY29uc3QgaXNMaWdodCA9IHBvcyA9PiB7CiAgICBjb25zdCBiID0gcG9zICogNDsKICAgIHJldHVybiByZXN1bHQuZGF0YVtiXSA+IHRocmVzaCAmJiByZXN1bHQuZGF0YVtiKzFdID4gdGhyZXNoICYmIHJlc3VsdC5kYXRhW2IrMl0gPiB0aHJlc2g7CiAgfTsKICBjb25zdCBwdXNoID0gcG9zID0+IHsKICAgIGlmICghdmlzaXRlZFtwb3NdICYmIGlzTGlnaHQocG9zKSkgeyB2aXNpdGVkW3Bvc10gPSAxOyBxdWV1ZVt0YWlsKytdID0gcG9zOyB9CiAgfTsKCiAgZm9yIChsZXQgeCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7IHB1c2goeCk7IHB1c2goKGhlaWdodC0xKSp3aWR0aCt4KTsgfQogIGZvciAobGV0IHkgPSAxOyB5IDwgaGVpZ2h0LTE7IHkrKykgeyBwdXNoKHkqd2lkdGgpOyBwdXNoKHkqd2lkdGgrd2lkdGgtMSk7IH0KCiAgd2hpbGUgKGhlYWQgPCB0YWlsKSB7CiAgICBjb25zdCBwID0gcXVldWVbaGVhZCsrXTsKICAgIHJlc3VsdC5kYXRhW3AqNCszXSA9IDA7CiAgICBjb25zdCB4ID0gcCAlIHdpZHRoLCB5ID0gKHAvd2lkdGgpfDA7CiAgICBpZiAoeCA+IDApICAgICAgICBwdXNoKHAtMSk7CiAgICBpZiAoeCA8IHdpZHRoLTEpICBwdXNoKHArMSk7CiAgICBpZiAoeSA+IDApICAgICAgICBwdXNoKHAtd2lkdGgpOwogICAgaWYgKHkgPCBoZWlnaHQtMSkgcHVzaChwK3dpZHRoKTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQoKLy8g4pSA4pSAIFRyaW0gdHJhbnNwYXJlbnQgcGl4ZWxzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApmdW5jdGlvbiB0cmltQ2FudmFzKGNhbnZhcykgewogIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwogIGNvbnN0IHdpZHRoID0gY2FudmFzLndpZHRoOwogIGNvbnN0IGhlaWdodCA9IGNhbnZhcy5oZWlnaHQ7CiAgY29uc3QgaW1nRGF0YSA9IGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgd2lkdGgsIGhlaWdodCk7CiAgY29uc3QgZGF0YSA9IGltZ0RhdGEuZGF0YTsKCiAgbGV0IHRvcCA9IG51bGwsIGJvdHRvbSA9IG51bGwsIGxlZnQgPSBudWxsLCByaWdodCA9IG51bGw7CgogIGZvciAobGV0IHkgPSAwOyB5IDwgaGVpZ2h0OyB5KyspIHsKICAgIGZvciAobGV0IHggPSAwOyB4IDwgd2lkdGg7IHgrKykgewogICAgICBpZiAoZGF0YVsoeSAqIHdpZHRoICsgeCkgKiA0ICsgM10gPiAwKSB7CiAgICAgICAgaWYgKHRvcCA9PT0gbnVsbCkgdG9wID0geTsKICAgICAgICBpZiAoYm90dG9tID09PSBudWxsIHx8IHkgPiBib3R0b20pIGJvdHRvbSA9IHk7CiAgICAgICAgaWYgKGxlZnQgPT09IG51bGwgfHwgeCA8IGxlZnQpIGxlZnQgPSB4OwogICAgICAgIGlmIChyaWdodCA9PT0gbnVsbCB8fCB4ID4gcmlnaHQpIHJpZ2h0ID0geDsKICAgICAgfQogICAgfQogIH0KCiAgaWYgKHRvcCA9PT0gbnVsbCkgcmV0dXJuIG51bGw7CgogIGNvbnN0IHRyaW1tZWRXID0gcmlnaHQgLSBsZWZ0ICsgMTsKICBjb25zdCB0cmltbWVkSCA9IGJvdHRvbSAtIHRvcCArIDE7CiAgY29uc3QgdHJpbW1lZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpOwogIHRyaW1tZWQud2lkdGggPSB0cmltbWVkVzsKICB0cmltbWVkLmhlaWdodCA9IHRyaW1tZWRIOwogIHRyaW1tZWQuZ2V0Q29udGV4dCgnMmQnKS5kcmF3SW1hZ2UoY2FudmFzLCBsZWZ0LCB0b3AsIHRyaW1tZWRXLCB0cmltbWVkSCwgMCwgMCwgdHJpbW1lZFcsIHRyaW1tZWRIKTsKICByZXR1cm4gdHJpbW1lZDsKfQoKLy8g4pSA4pSAIFJlbW92ZSBzdHJheSBub2lzZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKZnVuY3Rpb24gcmVtb3ZlRWRnZU5vaXNlKGltYWdlRGF0YSkgewogIGNvbnN0IHsgZGF0YSwgd2lkdGgsIGhlaWdodCB9ID0gaW1hZ2VEYXRhOwogIGNvbnN0IHJlc3VsdCA9IG5ldyBJbWFnZURhdGEobmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGRhdGEpLCB3aWR0aCwgaGVpZ2h0KTsKICBjb25zdCB2aXNpdGVkID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQpOwogIGNvbnN0IHF1ZXVlID0gbmV3IEludDMyQXJyYXkod2lkdGggKiBoZWlnaHQpOwogIAogIGxldCBtYXhDb21wU2l6ZSA9IDA7CiAgbGV0IG1heENvbXBJZCA9IDA7CiAgbGV0IGN1cnJlbnRDb21wSWQgPSAxOwogIGNvbnN0IHBpeGVsQ29tcCA9IG5ldyBJbnQzMkFycmF5KHdpZHRoICogaGVpZ2h0KTsKICBjb25zdCBjb21wVG91Y2hlc0VkZ2UgPSB7fTsKICBjb25zdCBjb21wU2l6ZXMgPSB7fTsKCiAgZm9yIChsZXQgaSA9IDA7IGkgPCB3aWR0aCAqIGhlaWdodDsgaSsrKSB7CiAgICBpZiAocmVzdWx0LmRhdGFbaSAqIDQgKyAzXSA+IDAgJiYgIXZpc2l0ZWRbaV0pIHsKICAgICAgbGV0IGhlYWQgPSAwLCB0YWlsID0gMDsKICAgICAgcXVldWVbdGFpbCsrXSA9IGk7CiAgICAgIHZpc2l0ZWRbaV0gPSAxOwogICAgICBsZXQgY29tcFNpemUgPSAwOwogICAgICBsZXQgdG91Y2hlc0VkZ2UgPSBmYWxzZTsKCiAgICAgIHdoaWxlIChoZWFkIDwgdGFpbCkgewogICAgICAgIGNvbnN0IHAgPSBxdWV1ZVtoZWFkKytdOwogICAgICAgIHBpeGVsQ29tcFtwXSA9IGN1cnJlbnRDb21wSWQ7CiAgICAgICAgY29tcFNpemUrKzsKICAgICAgICAKICAgICAgICBjb25zdCB4ID0gcCAlIHdpZHRoLCB5ID0gKHAgLyB3aWR0aCkgfCAwOwogICAgICAgIGlmICh4ID09PSAwIHx8IHggPT09IHdpZHRoIC0gMSB8fCB5ID09PSAwIHx8IHkgPT09IGhlaWdodCAtIDEpIHsKICAgICAgICAgIHRvdWNoZXNFZGdlID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZm9yIChsZXQgZHkgPSAtMTsgZHkgPD0gMTsgZHkrKykgewogICAgICAgICAgZm9yIChsZXQgZHggPSAtMTsgZHggPD0gMTsgZHgrKykgewogICAgICAgICAgICBpZiAoZHggPT09IDAgJiYgZHkgPT09IDApIGNvbnRpbnVlOwogICAgICAgICAgICBjb25zdCBueCA9IHggKyBkeDsKICAgICAgICAgICAgY29uc3QgbnkgPSB5ICsgZHk7CiAgICAgICAgICAgIGlmIChueCA+PSAwICYmIG54IDwgd2lkdGggJiYgbnkgPj0gMCAmJiBueSA8IGhlaWdodCkgewogICAgICAgICAgICAgIGNvbnN0IG5wID0gbnkgKiB3aWR0aCArIG54OwogICAgICAgICAgICAgIGlmIChyZXN1bHQuZGF0YVtucCAqIDQgKyAzXSA+IDAgJiYgIXZpc2l0ZWRbbnBdKSB7CiAgICAgICAgICAgICAgICB2aXNpdGVkW25wXSA9IDE7CiAgICAgICAgICAgICAgICBxdWV1ZVt0YWlsKytdID0gbnA7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBjb21wVG91Y2hlc0VkZ2VbY3VycmVudENvbXBJZF0gPSB0b3VjaGVzRWRnZTsKICAgICAgY29tcFNpemVzW2N1cnJlbnRDb21wSWRdID0gY29tcFNpemU7CgogICAgICBpZiAoY29tcFNpemUgPiBtYXhDb21wU2l6ZSkgewogICAgICAgIG1heENvbXBTaXplID0gY29tcFNpemU7CiAgICAgICAgbWF4Q29tcElkID0gY3VycmVudENvbXBJZDsKICAgICAgfQogICAgICBjdXJyZW50Q29tcElkKys7CiAgICB9CiAgfQoKICBmb3IgKGxldCBpID0gMDsgaSA8IHdpZHRoICogaGVpZ2h0OyBpKyspIHsKICAgIGNvbnN0IGNJZCA9IHBpeGVsQ29tcFtpXTsKICAgIGlmIChjSWQgIT09IDAgJiYgY0lkICE9PSBtYXhDb21wSWQpIHsKICAgICAgLy8gRGVsZXRlIGlmIGl0IHRvdWNoZXMgZWRnZSwgb3IgaWYgaXQncyBzbWFsbGVyIHRoYW4gMTAgcGl4ZWxzICh0aW55IG5vaXNlKQogICAgICBpZiAoY29tcFRvdWNoZXNFZGdlW2NJZF0gfHwgY29tcFNpemVzW2NJZF0gPCAxMCkgewogICAgICAgIHJlc3VsdC5kYXRhW2kgKiA0ICsgM10gPSAwOwogICAgICAgIHJlc3VsdC5kYXRhW2kgKiA0ICsgMF0gPSAwOwogICAgICAgIHJlc3VsdC5kYXRhW2kgKiA0ICsgMV0gPSAwOwogICAgICAgIHJlc3VsdC5kYXRhW2kgKiA0ICsgMl0gPSAwOwogICAgICB9CiAgICB9CiAgfQoKICByZXR1cm4gcmVzdWx0Owp9CgovLyDilIDilIAgU2hpZnQgTWFzayAoRXJvZGUgLyBEaWxhdGUpIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApmdW5jdGlvbiBzaGlmdE1hc2soaW1hZ2VEYXRhLCBzaGlmdEFtb3VudCkgewogIGlmIChzaGlmdEFtb3VudCA9PT0gMCkgcmV0dXJuIGltYWdlRGF0YTsKICBjb25zdCB7IGRhdGEsIHdpZHRoLCBoZWlnaHQgfSA9IGltYWdlRGF0YTsKICBjb25zdCBhbHBoYSA9IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0KTsKICBmb3IgKGxldCBpID0gMDsgaSA8IHdpZHRoICogaGVpZ2h0OyBpKyspIHsKICAgIGFscGhhW2ldID0gZGF0YVtpICogNCArIDNdID4gMCA\/IDEgOiAwOwogIH0KICAKICBjb25zdCB0ZW1wID0gbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQpOwogIGNvbnN0IGl0ZXJzID0gTWF0aC5hYnMoc2hpZnRBbW91bnQpOwogIGNvbnN0IGRpbGF0ZSA9IHNoaWZ0QW1vdW50ID4gMDsKICAKICBmb3IgKGxldCByID0gMDsgciA8IGl0ZXJzOyByKyspIHsKICAgIHRlbXAuc2V0KGFscGhhKTsKICAgIGZvciAobGV0IHkgPSAwOyB5IDwgaGVpZ2h0OyB5KyspIHsKICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7CiAgICAgICAgY29uc3QgaSA9IHkgKiB3aWR0aCArIHg7CiAgICAgICAgaWYgKGRpbGF0ZSkgewogICAgICAgICAgaWYgKGFscGhhW2ldID09PSAwKSB7CiAgICAgICAgICAgIGxldCBoYXNGZyA9IGZhbHNlOwogICAgICAgICAgICBmb3IobGV0IGR5PS0xOyBkeTw9MSAmJiAhaGFzRmc7IGR5KyspIHsKICAgICAgICAgICAgICBmb3IobGV0IGR4PS0xOyBkeDw9MSAmJiAhaGFzRmc7IGR4KyspIHsKICAgICAgICAgICAgICAgICBpZihkeD09PTAgJiYgZHk9PT0wKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICBjb25zdCBueD14K2R4LCBueT15K2R5OwogICAgICAgICAgICAgICAgIGlmKG54Pj0wICYmIG54PHdpZHRoICYmIG55Pj0wICYmIG55PGhlaWdodCAmJiBhbHBoYVtueSp3aWR0aCtueF0pIGhhc0ZnPXRydWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChoYXNGZykgdGVtcFtpXSA9IDE7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlmIChhbHBoYVtpXSA9PT0gMSkgewogICAgICAgICAgICBsZXQgaGFzQmcgPSBmYWxzZTsKICAgICAgICAgICAgZm9yKGxldCBkeT0tMTsgZHk8PTEgJiYgIWhhc0JnOyBkeSsrKSB7CiAgICAgICAgICAgICAgZm9yKGxldCBkeD0tMTsgZHg8PTEgJiYgIWhhc0JnOyBkeCsrKSB7CiAgICAgICAgICAgICAgICAgaWYoZHg9PT0wICYmIGR5PT09MCkgY29udGludWU7CiAgICAgICAgICAgICAgICAgY29uc3Qgbng9eCtkeCwgbnk9eStkeTsKICAgICAgICAgICAgICAgICBpZihueDwwIHx8IG54Pj13aWR0aCB8fCBueTwwIHx8IG55Pj1oZWlnaHQpIHsKICAgICAgICAgICAgICAgICAgIGhhc0JnID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYoYWxwaGFbbnkqd2lkdGgrbnhdPT09MCkgewogICAgICAgICAgICAgICAgICAgaGFzQmcgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGhhc0JnKSB0ZW1wW2ldID0gMDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGFscGhhLnNldCh0ZW1wKTsKICB9CiAgCiAgZm9yIChsZXQgaSA9IDA7IGkgPCB3aWR0aCAqIGhlaWdodDsgaSsrKSB7CiAgICBpZiAoYWxwaGFbaV0gPT09IDApIHsKICAgICAgZGF0YVtpICogNCArIDNdID0gMDsKICAgIH0gZWxzZSBpZiAoZGF0YVtpICogNCArIDNdID09PSAwKSB7CiAgICAgIGRhdGFbaSAqIDQgKyAzXSA9IDI1NTsKICAgIH0KICB9CiAgcmV0dXJuIGltYWdlRGF0YTsKfQoKLy8g4pSA4pSAIEFudGktYWxpYXNpbmcgKFNtb290aCBlZGdlcykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACmZ1bmN0aW9uIHByb2Nlc3NBbnRpQWxpYXNpbmcoaW1hZ2VEYXRhLCByYWRpdXMgPSAxKSB7CiAgY29uc3QgeyBkYXRhLCB3aWR0aCwgaGVpZ2h0IH0gPSBpbWFnZURhdGE7CiAgCiAgLy8gMS4gQmxlZWQgY29sb3JzCiAgbGV0IGN1cnJlbnREYXRhID0gbmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGRhdGEpOwogIGZvciAobGV0IHIgPSAwOyByIDwgcmFkaXVzOyByKyspIHsKICAgIGNvbnN0IG5leHREYXRhID0gbmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGN1cnJlbnREYXRhKTsKICAgIGZvciAobGV0IHkgPSAwOyB5IDwgaGVpZ2h0OyB5KyspIHsKICAgICAgZm9yIChsZXQgeCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7CiAgICAgICAgY29uc3QgaSA9ICh5ICogd2lkdGggKyB4KSAqIDQ7CiAgICAgICAgaWYgKGN1cnJlbnREYXRhW2kgKyAzXSA9PT0gMCkgewogICAgICAgICAgbGV0IHJTdW0gPSAwLCBnU3VtID0gMCwgYlN1bSA9IDAsIGNvdW50ID0gMDsKICAgICAgICAgIGZvciAobGV0IGR5ID0gLTE7IGR5IDw9IDE7IGR5KyspIHsKICAgICAgICAgICAgZm9yIChsZXQgZHggPSAtMTsgZHggPD0gMTsgZHgrKykgewogICAgICAgICAgICAgIGlmIChkeCA9PT0gMCAmJiBkeSA9PT0gMCkgY29udGludWU7CiAgICAgICAgICAgICAgY29uc3QgbnkgPSB5ICsgZHksIG54ID0geCArIGR4OwogICAgICAgICAgICAgIGlmIChueCA+PSAwICYmIG54IDwgd2lkdGggJiYgbnkgPj0gMCAmJiBueSA8IGhlaWdodCkgewogICAgICAgICAgICAgICAgY29uc3QgbmkgPSAobnkgKiB3aWR0aCArIG54KSAqIDQ7CiAgICAgICAgICAgICAgICBpZiAoY3VycmVudERhdGFbbmkgKyAzXSA+IDApIHsKICAgICAgICAgICAgICAgICAgclN1bSArPSBjdXJyZW50RGF0YVtuaV07CiAgICAgICAgICAgICAgICAgIGdTdW0gKz0gY3VycmVudERhdGFbbmkgKyAxXTsKICAgICAgICAgICAgICAgICAgYlN1bSArPSBjdXJyZW50RGF0YVtuaSArIDJdOwogICAgICAgICAgICAgICAgICBjb3VudCsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGNvdW50ID4gMCkgewogICAgICAgICAgICBuZXh0RGF0YVtpXSA9IHJTdW0gLyBjb3VudDsKICAgICAgICAgICAgbmV4dERhdGFbaSArIDFdID0gZ1N1bSAvIGNvdW50OwogICAgICAgICAgICBuZXh0RGF0YVtpICsgMl0gPSBiU3VtIC8gY291bnQ7CiAgICAgICAgICAgIG5leHREYXRhW2kgKyAzXSA9IDE7IC8vIG1hcmtlcgogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogICAgY3VycmVudERhdGEgPSBuZXh0RGF0YTsKICB9CiAgCiAgLy8gYXBwbHkgYmxlZCBjb2xvcnMgYmFjaywgcmVzZXQgYWxwaGEgbWFya2VyCiAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSArPSA0KSB7CiAgICBpZiAoY3VycmVudERhdGFbaSArIDNdID09PSAxKSB7CiAgICAgIGRhdGFbaV0gPSBjdXJyZW50RGF0YVtpXTsKICAgICAgZGF0YVtpICsgMV0gPSBjdXJyZW50RGF0YVtpICsgMV07CiAgICAgIGRhdGFbaSArIDJdID0gY3VycmVudERhdGFbaSArIDJdOwogICAgICAvLyBhbHBoYSByZW1haW5zIDAgaW4gJ2RhdGEnCiAgICB9CiAgfQoKICAvLyAyLiBCbHVyIEFscGhhCiAgY29uc3QgbmV3QWxwaGEgPSBuZXcgVWludDhDbGFtcGVkQXJyYXkod2lkdGggKiBoZWlnaHQpOwogIGZvciAobGV0IGkgPSAwOyBpIDwgd2lkdGggKiBoZWlnaHQ7IGkrKykgewogICAgbmV3QWxwaGFbaV0gPSBkYXRhW2kgKiA0ICsgM107CiAgfQogIAogIGZvciAobGV0IHIgPSAwOyByIDwgcmFkaXVzOyByKyspIHsKICAgIGNvbnN0IHRlbXBBbHBoYSA9IG5ldyBVaW50OENsYW1wZWRBcnJheShuZXdBbHBoYSk7CiAgICBmb3IgKGxldCB5ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7CiAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgd2lkdGg7IHgrKykgewogICAgICAgIGxldCBzdW0gPSAwLCBjb3VudCA9IDA7CiAgICAgICAgZm9yIChsZXQgZHkgPSAtMTsgZHkgPD0gMTsgZHkrKykgewogICAgICAgICAgZm9yIChsZXQgZHggPSAtMTsgZHggPD0gMTsgZHgrKykgewogICAgICAgICAgICBjb25zdCBueSA9IHkgKyBkeSwgbnggPSB4ICsgZHg7CiAgICAgICAgICAgIGlmIChueCA+PSAwICYmIG54IDwgd2lkdGggJiYgbnkgPj0gMCAmJiBueSA8IGhlaWdodCkgewogICAgICAgICAgICAgIHN1bSArPSB0ZW1wQWxwaGFbbnkgKiB3aWR0aCArIG54XTsKICAgICAgICAgICAgICBjb3VudCsrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG5ld0FscGhhW3kgKiB3aWR0aCArIHhdID0gc3VtIC8gY291bnQ7CiAgICAgIH0KICAgIH0KICB9CiAgCiAgZm9yIChsZXQgaSA9IDA7IGkgPCB3aWR0aCAqIGhlaWdodDsgaSsrKSB7CiAgICBkYXRhW2kgKiA0ICsgM10gPSBuZXdBbHBoYVtpXTsKICB9CiAgCiAgcmV0dXJuIGltYWdlRGF0YTsKfQoKLy8g4pSA4pSAIFJlbmRlciDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIAKZnVuY3Rpb24gcmVuZGVyUmVzdWx0cyh1cmxzLCBjb2xzKSB7CiAgc3RpY2tlckdyaWQuaW5uZXJIVE1MID0gJyc7CiAgLy8gUmVzcG9uc2l2ZSBncmlkIGFkanVzdGluZyBiYXNlZCBvbiBjb2xzIHJlcXVlc3RlZCBidXQgYm91bmRlZAogIGNvbnN0IGRpc3BsYXlDb2xzID0gTWF0aC5taW4oY29scywgd2luZG93LmlubmVyV2lkdGggPCA2NDAgPyAyIDogd2luZG93LmlubmVyV2lkdGggPCA5MDAgPyAzIDogNCk7CiAgc3RpY2tlckdyaWQuc3R5bGUuZ3JpZFRlbXBsYXRlQ29sdW1ucyA9ICdyZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTgwcHgsIDFmcikpJzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY291bnRDaGlwJykudGV4dENvbnRlbnQgPSB1cmxzLmxlbmd0aDsKCiAgdXJscy5mb3JFYWNoKCh1cmwsIGkpID0+IHsKICAgIGNvbnN0IGNhcmQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGNhcmQuY2xhc3NOYW1lID0gJ2Rwcy1pLXN0aWNrZXItY2FyZCc7CiAgICBjYXJkLnN0eWxlLmFuaW1hdGlvbkRlbGF5ID0gKGkgKiA1MCkgKyAnbXMnOwogICAgY2FyZC5pbm5lckhUTUwgPQogICAgICAnPGRpdiBjbGFzcz0iZHBzLWktcy1wcmV2aWV3Ij48aW1nIHNyYz0iJyArIHVybCArICciIGxvYWRpbmc9ImxhenkiPjwvZGl2PicgKwogICAgICAnPGRpdiBjbGFzcz0iZHBzLWktcy1mb290ZXIiPicgKwogICAgICAgICc8c3BhbiBjbGFzcz0iZHBzLWktcy1sYWJlbCI+U3RpY2tlciAnICsgU3RyaW5nKGkrMSkucGFkU3RhcnQoMiwnMCcpICsgJzwvc3Bhbj4nICsKICAgICAgICAnPGJ1dHRvbiBjbGFzcz0iZHBzLWktYnRuIGRwcy1pLWJ0bi1zbSBkcHMtaS1idG4tb3V0bGluZS1wcmltYXJ5IiBkYXRhLWk9IicgKyBpICsgJyI+4oaTIFThuqNpIFBORzwvYnV0dG9uPicgKwogICAgICAnPC9kaXY+JzsKICAgIHN0aWNrZXJHcmlkLmFwcGVuZENoaWxkKGNhcmQpOwogIH0pOwoKICByZXN1bHRzV3JhcC5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTsKICAKICAvLyBzbW9vdGggc2Nyb2xsIHRvIHJlc3VsdHMKICBzZXRUaW1lb3V0KCgpID0+IHsKICAgIHJlc3VsdHNXcmFwLnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ3N0YXJ0JyB9KTsKICB9LCAxMDApOwp9CgovLyDilIDilIAgRG93bmxvYWQgWklQIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApkb3dubG9hZEFsbEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGFzeW5jICgpID0+IHsKICBpZiAoIXN0aWNrZXJVUkxzLmxlbmd0aCkgcmV0dXJuOwogIGRvd25sb2FkQWxsQnRuLmRpc2FibGVkID0gdHJ1ZTsKICBkb3dubG9hZEFsbEJ0bi5pbm5lckhUTUwgPSAn4o+zIMSQYW5nIMSRw7NuZyBnw7NpIFpJUC4uLic7CiAgY29uc3QgemlwID0gbmV3IEpTWmlwKCk7CiAgc3RpY2tlclVSTHMuZm9yRWFjaCgodXJsLCBpKSA9PiB7CiAgICB6aXAuZmlsZShvcmlnRmlsZU5hbWUgKyAnXycgKyBTdHJpbmcoaSsxKS5wYWRTdGFydCgyLCcwJykgKyAnLnBuZycsIHVybC5zcGxpdCgnLCcpWzFdLCB7YmFzZTY0OnRydWV9KTsKICB9KTsKICBjb25zdCBibG9iID0gYXdhaXQgemlwLmdlbmVyYXRlQXN5bmMoe3R5cGU6J2Jsb2InLCBjb21wcmVzc2lvbjonREVGTEFURSd9KTsKICBkbEZpbGUoVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSwgb3JpZ0ZpbGVOYW1lICsgJ19zdGlja2Vycy56aXAnKTsKICBkb3dubG9hZEFsbEJ0bi5kaXNhYmxlZCA9IGZhbHNlOwogIGRvd25sb2FkQWxsQnRuLmlubmVySFRNTCA9ICfwn5OmIFThuqNpIHbhu4EgdOG6pXQgY+G6oyAoWklQKSc7Cn0pOwoKc3RpY2tlckdyaWQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBlID0+IHsKICBjb25zdCBidG4gPSBlLnRhcmdldC5jbG9zZXN0KCdbZGF0YS1pXScpOwogIGlmICghYnRuKSByZXR1cm47CiAgZGxGaWxlKHN0aWNrZXJVUkxzWytidG4uZGF0YXNldC5pXSwgb3JpZ0ZpbGVOYW1lICsgJ18nICsgU3RyaW5nKCtidG4uZGF0YXNldC5pKzEpLnBhZFN0YXJ0KDIsJzAnKSArICcucG5nJyk7Cn0pOwoKLy8g4pSA4pSAIFV0aWxzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApmdW5jdGlvbiBzZXRQcm9ncmVzcyhwY3QsIHRpdGxlLCBkZXRhaWwpIHsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZ3Jlc3NGaWxsJykuc3R5bGUud2lkdGggPSBwY3QgKyAnJSc7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2dyZXNzVGl0bGUnKS50ZXh0Q29udGVudCA9IHRpdGxlOwogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9ncmVzc0RldGFpbCcpLnRleHRDb250ZW50ID0gZGV0YWlsOwp9CmZ1bmN0aW9uIHNob3dBbGVydCh0eXBlLCBtc2cpIHsKICBhbGVydEJveC5jbGFzc05hbWUgPSAnZHBzLWktYWxlcnQgZHBzLWktYWxlcnQtJyArIHR5cGU7CiAgYWxlcnRCb3guaW5uZXJIVE1MID0gbXNnOwogIGFsZXJ0Qm94LmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpOwp9CmZ1bmN0aW9uIGxvYWRJbWcoc3JjKSB7CiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMsIHJlaikgPT4gewogICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7CiAgICBpbWcub25sb2FkID0gKCkgPT4gcmVzKGltZyk7CiAgICBpbWcub25lcnJvciA9ICgpID0+IHJlaihuZXcgRXJyb3IoJ0tow7RuZyBsb2FkIMSRxrDhu6NjIOG6o25oJykpOwogICAgaW1nLnNyYyA9IHNyYzsKICB9KTsKfQpmdW5jdGlvbiBkbEZpbGUodXJsLCBuYW1lKSB7CiAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsgYS5ocmVmID0gdXJsOyBhLmRvd25sb2FkID0gbmFtZTsgYS5jbGljaygpOwp9CmZ1bmN0aW9uIHRpY2soKSB7IHJldHVybiBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgMCkpOyB9Cg==\";\n  let code = decodeURIComponent(escape(atob(enc)));\n  \n  const classesToPrefix = [\"wrap\",\"badge\",\"dot\",\"sub\",\"panel\",\"upload-zone\",\"ico\",\"hidden\",\"config-panel\",\"preview-row\",\"preview-info\",\"grid-section\",\"section-label\",\"grid-presets\",\"preset-btn\",\"active\",\"grid-custom\",\"times\",\"grid-info\",\"toggle-row\",\"toggle-label\",\"toggle\",\"toggle-track\",\"thresh-row\",\"thresh-val\",\"action-row\",\"btn\",\"btn-primary\",\"btn-secondary\",\"btn-success\",\"btn-sm\",\"btn-outline-primary\",\"guide-box\",\"prompt-text\",\"progress-panel\",\"spinner\",\"progress-title\",\"track\",\"fill\",\"progress-detail\",\"alert\",\"alert-error\",\"alert-success\",\"results-header\",\"results-title\",\"chip\",\"sticker-grid\",\"sticker-card\",\"s-preview\",\"s-footer\",\"s-label\"];\n  classesToPrefix.forEach(cls => {\n    code = code.replace(new RegExp(`classList\\\\.add\\\\(['\\\\\"]${cls}['\\\\\"]\\\\)`, 'g'), `classList.add('dps-i-${cls}')`);\n    code = code.replace(new RegExp(`classList\\\\.remove\\\\(['\\\\\"]${cls}['\\\\\"]\\\\)`, 'g'), `classList.remove('dps-i-${cls}')`);\n    code = code.replace(new RegExp(`classList\\\\.toggle\\\\(['\\\\\"]${cls}['\\\\\"]`, 'g'), `classList.toggle('dps-i-${cls}'`);\n    \n    code = code.replace(new RegExp(`querySelectorAll\\\\(['\\\\\"]\\\\.${cls}['\\\\\"]\\\\)`, 'g'), `querySelectorAll('.dps-i-${cls}')`);\n    code = code.replace(new RegExp(`querySelector\\\\(['\\\\\"]\\\\.${cls}['\\\\\"]\\\\)`, 'g'), `querySelector('.dps-i-${cls}')`);\n  });\n  \n  new Function(code)();\n\n  <\/script>\n<\/div>\n\n\n\n\n<h1 class=\"wp-block-heading\" id=\"user-content--h\u01b0\u1edbng-d\u1eabn-s\u1eed-d\u1ee5ng-c\u00f4ng-c\u1ee5-c\u1eaft-sticker--x\u00f3a-n\u1ec1n-t\u1ef1-\u0111\u1ed9ng-sticker-splitter\">\ud83e\ude84 Guide to Using the Automatic Sticker Cutting &amp; Background Removal Tool (Sticker Splitter)<\/h1>\n\n\n\n<p>You\u2019ve just created a beautiful sticker set on Midjourney, DALL-E, or Canva, but they are stuck together in a single grid image (2\u00d72, 3\u00d73\u2026)? Want to separate each image, remove the white background, and center them automatically in just seconds?<\/p>\n\n\n\n<p>Don\u2019t worry, the tool&nbsp;<strong>Sticker Splitter<\/strong>&nbsp;will completely solve this problem for you with just a few clicks!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"user-content--c\u00e1c-t\u00ednh-n\u0103ng-n\u1ed5i-b\u1eadt\">\ud83c\udf1f Key Features<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Automatic grid cutting:<\/strong>&nbsp;Supports cutting images in popular grid formats (2\u00d72, 3\u00d73, 4\u00d74,\u2026) quickly.<\/li>\n\n\n\n<li><strong>Smart white background removal (AI-like):<\/strong>&nbsp;Automatically detects and makes the white background around stickers transparent.<\/li>\n\n\n\n<li><strong>Crop (trim edges):<\/strong>&nbsp;Completely removes black\/white lines separating cells.<\/li>\n\n\n\n<li><strong>Auto center:<\/strong>&nbsp;Automatically trims excess space and places the sticker in the center of a standard 465x465px square frame (Zalo\/Telegram standard).<\/li>\n\n\n\n<li><strong>Bulk download:<\/strong>&nbsp;Package all stickers into one file&nbsp;<code>.ZIP<\/code>&nbsp;or download each image individually in transparent PNG format.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"user-content--h\u01b0\u1edbng-d\u1eabn-s\u1eed-d\u1ee5ng-t\u1eebng-b\u01b0\u1edbc\">\ud83d\udcdd Step-by-Step Guide<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"user-content-b\u01b0\u1edbc-1-t\u1ea1o-\u1ea3nh-sticker-n\u1ebfu-b\u1ea1n-ch\u01b0a-c\u00f3\">Step 1: Create Sticker Image (If you don\u2019t have one yet)<\/h3>\n\n\n\n<p>If you use Midjourney or DALL-E, try copying the sample prompt suggested in our tool (by clicking the button&nbsp;<code>\ud83d\udccb Copy Prompt<\/code>). The AI will generate an image containing multiple stickers arranged on a white grid.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"user-content-b\u01b0\u1edbc-2-t\u1ea3i-\u1ea3nh-l\u00ean-c\u00f4ng-c\u1ee5\">Step 2: Upload image to the tool<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Access the tool&nbsp;<strong>Sticker Splitter<\/strong>.<\/li>\n\n\n\n<li>Click on the area&nbsp;<strong>\u201cClick or Drag and drop image here\u201d<\/strong>&nbsp;or paste (Ctrl+V) your grid sticker image.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"user-content-b\u01b0\u1edbc-3-t\u00f9y-ch\u1ec9nh-th\u00f4ng-s\u1ed1-c\u1eaft\">Step 3: Adjust cutting parameters<\/h3>\n\n\n\n<p>Immediately after uploading, the control panel will appear. Here, set the following parameters:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\ud83d\udcd0 Grid Size:<\/strong>&nbsp;Choose the number of columns and rows matching your image. Example: If your image has 9 stickers (3 rows, 3 columns), select&nbsp;<strong>3\u00d73<\/strong>.<\/li>\n\n\n\n<li><strong>\ud83e\ude84 Remove white background:<\/strong>&nbsp;Turn this on if your image has a white background. The tool will automatically convert it to a transparent background. You can adjust the slider&nbsp;<strong>\u201cWhite color sensitivity\u201d<\/strong>&nbsp;\u2702\ufe0f Crop:.<\/li>\n\n\n\n<li><strong>If your image has grid lines, increase this value (e.g.,<\/strong>&nbsp;3px&nbsp;<code>or<\/code>&nbsp;5px&nbsp;<code>) to crop inward and remove unwanted borders.<\/code>\ud83c\udfaf Auto center:.<\/li>\n\n\n\n<li><strong>Recommended! This feature tightly fits the character and places it perfectly centered in a square frame.<\/strong>&nbsp;Step 4: Process and Download.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"user-content-b\u01b0\u1edbc-4-x\u1eed-l\u00fd-v\u00e0-t\u1ea3i-v\u1ec1\">After adjusting parameters, click the button<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u201c\ud83d\ude80 Start Cutting Stickers\u201d&nbsp;<strong>\u201cWait about 1\u20132 seconds for processing.\u201d<\/strong>.<\/li>\n\n\n\n<li>Result.<\/li>\n\n\n\n<li>Scroll down to the section&nbsp;<strong>, you will see the stickers separated and with transparent backgrounds.<\/strong>, You can click.<\/li>\n\n\n\n<li>\u201c\u2193 Download PNG\u201d&nbsp;<strong>\u201cunder each image to download individually, or click the green button\u201d<\/strong>&nbsp;\u201c\ud83d\udce6 Download all (ZIP)\u201d&nbsp;<strong>\u201cto download everything instantly!\u201d<\/strong>&nbsp;\ud83d\udca1 Tips for perfect results<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"user-content--m\u1eb9o-nh\u1ecf-\u0111\u1ec3-c\u00f3-k\u1ebft-qu\u1ea3-ho\u00e0n-h\u1ea3o\">Image prompt:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Always add the keyword<\/strong>&nbsp;white background&nbsp;<code>to your Midjourney\/DALL-E prompt so the background removal works most accurately.<\/code>&nbsp;The sharper the image and the less anti-aliasing blur, the cleaner the cut with no tiny white edges.<\/li>\n\n\n\n<li><strong>Image quality:<\/strong>&nbsp;The downloaded file name will automatically.<\/li>\n\n\n\n<li>remain the same as the original file name&nbsp;<strong>(e.g.,<\/strong>&nbsp;hoat-hinh_01.png&nbsp;<code>helping-you-manage-files-more-easily<\/code>Hope you create unique and fun sticker sets! If you have any questions, feel free to leave a comment below.<\/li>\n<\/ul>\n\n\n\n<p>Automatic Sticker Cutting &amp;Amp; Background Removal Tool (Sticker Splitter).<\/p>","protected":false},"excerpt":{"rendered":"<p>Smart Tool Sticker Splitter T\u1ea3i l\u00ean file \u1ea3nh sticker grid, c\u00f4ng c\u1ee5 s\u1ebd t\u1ef1 \u0111\u1ed9ng c\u1eaft v\u00e0 x\u00f3a n\u1ec1n gi\u00fap b\u1ea1n c\u00f3 nh\u1eefng file PNG trong su\u1ed1t ho\u00e0n h\u1ea3o. \u2728 K\u00e9o th\u1ea3 ho\u1eb7c nh\u1ea5n \u0111\u1ec3 ch\u1ecdn \u1ea3nh H\u1ed7 tr\u1ee3 \u0111\u1ecbnh d\u1ea1ng JPG, PNG, WebP \ud83d\udca1 Prompt t\u1ea1o Sticker m\u1eabu \u0110\u1ec3 k\u1ebft qu\u1ea3 c\u1eaft ho\u00e0n h\u1ea3o [&hellip;]<\/p>","protected":false},"author":1,"featured_media":38619,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-38613","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"rankmath_keywords":{"primary":"","secondary":[""]},"yoast_keywords":{"primary":"","secondary":[]},"yoast_focuskw":"","rankmath_focuskw":"","seo_keywords":{"primary":"","secondary":[""]},"_links":{"self":[{"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/pages\/38613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/comments?post=38613"}],"version-history":[{"count":6,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/pages\/38613\/revisions"}],"predecessor-version":[{"id":38623,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/pages\/38613\/revisions\/38623"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/media\/38619"}],"wp:attachment":[{"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/media?parent=38613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}