[{"data":1,"prerenderedAt":54},["ShallowReactive",2],{"i-lucide:menu":3,"i-lucide:grip":8,"i-lucide:chevron-right":10,"i-lucide:moon":12,"i-lucide:sun":14,"i-material-symbols:language":16,"i-lucide:chevron-down":18,"i-lucide:shield-check":20,"i-lucide:mail":22,"i-tabler:markdown":24,"i-lucide:code-xml":26,"i-lucide:film":28,"i-lucide:file-text":30,"i-lucide:box":32,"i-lucide:code-2":34,"i-lucide:image":35,"i-lucide:square-sigma":37,"i-lucide:gamepad-2":39,"i-lucide:sparkles":41,"i-lucide:graduation-cap":43,"blog-body-hash-salt-password-hashing-en":45,"i-lucide:cpu":46,"i-lucide:code":48,"i-lucide:fingerprint":50,"i-lucide:key-round":52},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"5\" r=\"1\"\u002F>\u003Ccircle cx=\"12\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"12\" r=\"1\"\u002F>\u003Ccircle cx=\"12\" cy=\"19\" r=\"1\"\u002F>\u003Ccircle cx=\"19\" cy=\"19\" r=\"1\"\u002F>\u003Ccircle cx=\"5\" cy=\"19\" r=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"currentColor\" d=\"M8.125 21.213q-1.825-.788-3.187-2.15t-2.15-3.188T2 11.988t.788-3.875t2.15-3.175t3.187-2.15T12.013 2t3.875.788t3.175 2.15t2.15 3.175t.787 3.875t-.787 3.887t-2.15 3.188t-3.175 2.15t-3.875.787t-3.888-.787M12 19.95q.65-.9 1.125-1.875T13.9 16h-3.8q.3 1.1.775 2.075T12 19.95m-2.6-.4q-.45-.825-.787-1.713T8.05 16H5.1q.725 1.25 1.813 2.175T9.4 19.55m5.2 0q1.4-.45 2.488-1.375T18.9 16h-2.95q-.225.95-.562 1.838T14.6 19.55M4.25 14h3.4q-.075-.5-.112-.987T7.5 12t.038-1.012T7.65 10h-3.4q-.125.5-.187.988T4 12t.063 1.013t.187.987m5.4 0h4.7q.075-.5.113-.987T14.5 12t-.038-1.012T14.35 10h-4.7q-.075.5-.112.988T9.5 12t.038 1.013t.112.987m6.7 0h3.4q.125-.5.188-.987T20 12t-.062-1.012T19.75 10h-3.4q.075.5.113.988T16.5 12t-.038 1.013t-.112.987m-.4-6h2.95q-.725-1.25-1.812-2.175T14.6 4.45q.45.825.788 1.713T15.95 8M10.1 8h3.8q-.3-1.1-.775-2.075T12 4.05q-.65.9-1.125 1.875T10.1 8m-5 0h2.95q.225-.95.563-1.838T9.4 4.45Q8 4.9 6.912 5.825T5.1 8\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"\u002F>\u003Cpath d=\"m9 12l2 2l4-4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":23},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":25},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\u002F>\u003Cpath d=\"M7 15V9l2 2l2-2v6m3-2l2 2l2-2m-2 2V9\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":27},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m18 16l4-4l-4-4M6 8l-4 4l4 4m8.5-12l-5 16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":29},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M7 3v18M3 7.5h4M3 12h18M3 16.5h4M17 3v18m0-13.5h4m-4 9h4\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":31},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"\u002F>\u003Cpath d=\"M14 2v5a1 1 0 0 0 1 1h5M10 9H8m8 4H8m8 4H8\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":33},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\"\u002F>\u003Cpath d=\"m3.3 7l8.7 5l8.7-5M12 22V12\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":27},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":36},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" ry=\"2\"\u002F>\u003Ccircle cx=\"9\" cy=\"9\" r=\"2\"\u002F>\u003Cpath d=\"m21 15l-3.086-3.086a2 2 0 0 0-2.828 0L6 21\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":38},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M16 8.9V7H8l4 5l-4 5h8v-1.9\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":40},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 11h4M8 9v4m7-1h.01M18 10h.01m-.69-5H6.68a4 4 0 0 0-3.978 3.59l-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258q-.01-.075-.017-.151A4 4 0 0 0 17.32 5\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":42},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4\"\u002F>\u003Ccircle cx=\"4\" cy=\"20\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":44},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0zM22 10v6\"\u002F>\u003Cpath d=\"M6 12.5V16a6 3 0 0 0 12 0v-3.5\"\u002F>\u003C\u002Fg>","\u003Cblockquote>\n\u003Cp>&quot;Encrypt passwords with MD5&quot; has two errors: MD5 isn't encryption, and it shouldn't store passwords. Hash, salt, and password hashing are often conflated but solve different problems. Clarifying the three layers shows which to use when—and why file checksums and password storage need opposite algorithms.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cimg src=\"\u002Fblog\u002Fhash-salt-password-hashing\u002Fcover.webp\" alt=\"Hash one-way, salt, slow password hashing compared\">\u003C\u002Fp>\n\u003Ch2>Hash Is Not Encryption—Start There\u003C\u002Fh2>\n\u003Cp>Hashing is \u003Cstrong>one-way\u003C\u002Fstrong>: any input maps to a fixed-length fingerprint; you can't recover the input from the fingerprint. Encryption is \u003Cstrong>two-way\u003C\u002Fstrong>: key encrypts and decrypts. &quot;MD5 encryption&quot; is a common misnomer—MD5 is a hash; there's no &quot;decryption.&quot;\u003C\u002Fp>\n\u003Cp>Two core properties define hash use:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Deterministic\u003C\u002Fstrong>: same input always yields same output—usable as a fingerprint for verification.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Collision-resistant\u003C\u002Fstrong>: hard to find two different inputs with the same hash—fingerprints are hard to forge.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>General hashes (MD5, SHA-1, SHA-256, SHA-512) add a third trait: \u003Cstrong>optimized for speed\u003C\u002Fstrong>. That &quot;fast&quot; helps file checks but is fatal for passwords—see below.\u003C\u002Fp>\n\u003Ch2>Why Can't General Hashes Store Passwords?\u003C\u002Fh2>\n\u003Cp>Because they're too fast. Conclusion first: \u003Cstrong>MD5\u002FSHA-256 can run billions of times per second on ordinary hardware—attackers with stolen hashes brute-force or table-lookup common passwords almost instantly.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Two attack patterns:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Rainbow tables\u003C\u002Fstrong>: precompute hashes of common passwords; lookup stolen hash directly. Hashes are deterministic—\u003Ccode>123456\u003C\u002Fcode>'s SHA-256 is always the same value.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Brute \u002F dictionary\u003C\u002Fstrong>: modern GPUs do billions of SHA-256 per second; weak passwords fall in seconds.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Speed is a feature elsewhere; for passwords it gives attackers a high-speed guessing target. Password storage needs the opposite—deliberately slow hashing.\u003C\u002Fp>\n\u003Ch2>Salt: Same Password No Longer Same Hash\u003C\u002Fh2>\n\u003Cp>Salt fixes \u003Cstrong>&quot;identical passwords → identical hashes.&quot;\u003C\u002Fstrong> Generate random salt per user, hash \u003Ccode>salt + password\u003C\u002Fcode>, store salt with the result.\u003C\u002Fp>\n\u003Cp>Two direct effects:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Rainbow tables fail\u003C\u002Fstrong>: tables target bare passwords; random salt changes every hash—no table hit.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Can't crack many accounts at once\u003C\u002Fstrong>: different salts mean same password hashes differently—attackers must crack one account at a time.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>But note: \u003Cstrong>salt stops bulk\u002Ftable attacks, not &quot;hash is too fast.&quot;\u003C\u002Fstrong> With one user's salt and hash, attackers still enumerate fast for that account. Fix the algorithm itself for that.\u003C\u002Fp>\n\u003Ch2>Password Hashing: Deliberately Slow and Memory-Hungry\u003C\u002Fh2>\n\u003Cp>To counter speed, password hashing algorithms—bcrypt, scrypt, Argon2—are \u003Cstrong>deliberately expensive\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Algorithm\u003C\u002Fth>\n\u003Cth>Key design\u003C\u002Fth>\n\u003Cth>Defends against\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>bcrypt\u003C\u002Ftd>\n\u003Ctd>Tunable work factor, exponential iteration growth\u003C\u002Ftd>\n\u003Ctd>CPU brute force\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>scrypt\u003C\u002Ftd>\n\u003Ctd>High memory use\u003C\u002Ftd>\n\u003Ctd>GPU\u002FASIC parallelism\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Argon2\u003C\u002Ftd>\n\u003Ctd>Tunable time + memory + parallelism\u003C\u002Ftd>\n\u003Ctd>Combined GPU\u002FASIC resistance; modern default\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>They embed salting and let you tune a \u003Cstrong>cost parameter\u003C\u002Fstrong>—single hash takes tens to hundreds of ms. Fine for login; for attackers, thousands of tries per second vs. billions. As hardware improves, raise the cost to maintain difficulty.\u003C\u002Fp>\n\u003Ch2>When Is SHA-256 the Right Tool?\u003C\u002Fh2>\n\u003Cp>General hashes aren't obsolete—\u003Cstrong>use them in the right place\u003C\u002Fstrong>: fast, stable fingerprints, not password storage.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>File integrity\u003C\u002Fstrong>: compute SHA-256 after download, compare to published value—detect tampering or transfer errors. Speed and determinism are the point.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Content addressing \u002F dedup\u003C\u002Fstrong>: hash as unique ID (Git objects, CDN cache keys).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Digital signature preprocessing\u003C\u002Fstrong>: hash then sign to shorten signed data.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>In these cases, MD5, SHA-1, SHA-256, SHA-512 on text or files produce comparable fingerprints—the goal is a stable fingerprint, not resisting password brute force. That's where &quot;fast&quot; pays off.\u003C\u002Fp>\n\u003Ch2>One Table: Which Need, Which Tool\u003C\u002Fh2>\n\u003Cp>Align layers with scenarios:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Need\u003C\u002Fth>\n\u003Cth>Use\u003C\u002Fth>\n\u003Cth>Don't use\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Verify file untampered\u003C\u002Ftd>\n\u003Ctd>SHA-256\u003C\u002Ftd>\n\u003Ctd>—\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Dedup \u002F unique ID\u003C\u002Ftd>\n\u003Ctd>SHA-256, etc.\u003C\u002Ftd>\n\u003Ctd>MD5 (collisions broken)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Store user passwords\u003C\u002Ftd>\n\u003Ctd>Argon2 \u002F bcrypt \u002F scrypt + salt\u003C\u002Ftd>\n\u003Ctd>MD5 \u002F SHA-256 bare hash\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Stop rainbow tables \u002F bulk crack\u003C\u002Ftd>\n\u003Ctd>Per-user random salt\u003C\u002Ftd>\n\u003Ctd>Global fixed salt or none\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>Simple rule: \u003Cstrong>fast fingerprint → general hash; resist brute force → password hash; stop bulk\u002Ftable → per-user random salt.\u003C\u002Fstrong> Wrong direction (fast hash for passwords, slow hash for large file checksums) is the real mistake.\u003C\u002Fp>\n\u003Ch2>Summary\u003C\u002Fh2>\n\u003Cp>Hashing isn't encryption; general hashes (MD5\u002FSHA-256) are built for speed—fine for file checks and dedup, but too fast for passwords—rainbow tables and GPU brute force break them easily. Salt stops same-password-same-hash and bulk attacks but not speed; real password storage uses bcrypt\u002Fscrypt\u002FArgon2—\u003Cstrong>deliberately slow and memory-heavy\u003C\u002Fstrong>—with tunable cost. Checksum files with SHA-256; store passwords with salted Argon2—don't swap them.\u003C\u002Fp>\n",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":47},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 20v2m0-20v2m5 16v2m0-20v2M2 12h2m-2 5h2M2 7h2m16 5h2m-2 5h2M20 7h2M7 20v2M7 2v2\"\u002F>\u003Crect width=\"16\" height=\"16\" x=\"4\" y=\"4\" rx=\"2\"\u002F>\u003Crect width=\"8\" height=\"8\" x=\"8\" y=\"8\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":49},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m16 18l6-6l-6-6M8 6l-6 6l6 6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":51},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4M14 13.12c0 2.38 0 6.38-1 8.88m4.29-.98c.12-.6.43-2.3.5-3.02M2 12a10 10 0 0 1 18-6M2 16h.01m19.79 0c.2-2 .131-5.354 0-6\"\u002F>\u003Cpath d=\"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2m2.31 12c.21-.66.45-1.32.57-2M9 6.8a6 6 0 0 1 9 5.2v2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":53},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z\"\u002F>\u003Ccircle cx=\"16.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"\u002F>\u003C\u002Fg>",1782539672759]