[{"data":1,"prerenderedAt":323},["ShallowReactive",2],{"i-feather:search":3,"i-feather:x":8,"i-feather:moon":10,"i-feather:sun":12,"i-lucide:house-heart":14,"i-fa-brands:youtube":16,"i-fa-brands:twitch":20,"i-fa-brands:github":22,"i-fa-brands:linkedin":25,"i-fa-brands:stack-overflow":28,"i-simple-icons:bluesky":31,"i-fa-brands:mastodon":33,"i-fa-regular:envelope":35,"i-fa-solid:rss":37,"post-\u002Fminifying-html-for-asp-net-mvc\u002F":39,"i-fa-solid:share-alt":307,"i-fa-brands:facebook":309,"i-fa-brands:twitter":311,"i-fa-brands:reddit":313,"i-fa-brands:patreon":315,"i-simple-icons:buymeacoffee":317,"i-fa-brands:paypal":319,"i-fa-regular:question-circle":321},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003Cpath d=\"m21 21l-4.35-4.35\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M18 6L6 18M6 6l12 12\"\u002F>",{"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=\"M21 12.79A9 9 0 1 1 11.21 3A7 7 0 0 0 21 12.79\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"5\"\u002F>\u003Cpath d=\"M12 1v2m0 18v2M4.22 4.22l1.42 1.42m12.72 12.72l1.42 1.42M1 12h2m18 0h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42\"\u002F>\u003C\u002Fg>",{"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\">\u003Cpath d=\"M8.62 13.8A2.25 2.25 0 1 1 12 10.836a2.25 2.25 0 1 1 3.38 2.966l-2.626 2.856a.998.998 0 0 1-1.507 0z\"\u002F>\u003Cpath d=\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":17,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":19},576,512,"\u003Cpath fill=\"currentColor\" d=\"M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597c-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821c11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305m-317.51 213.508V175.185l142.739 81.205z\"\u002F>",{"left":4,"top":4,"width":18,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cpath fill=\"currentColor\" d=\"M391.17 103.47h-38.63v109.7h38.63ZM285 103h-38.63v109.75H285ZM120.83 0L24.31 91.42v329.16h115.83V512l96.53-91.42h77.25L487.69 256V0Zm328.24 237.75l-77.22 73.12h-77.24l-67.6 64v-64h-86.87V36.58h308.93Z\"\u002F>",{"left":4,"top":4,"width":23,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":24},496,"\u003Cpath fill=\"currentColor\" d=\"M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2\"\u002F>",{"left":4,"top":4,"width":26,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":27},448,"\u003Cpath fill=\"currentColor\" d=\"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3M135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5c0 21.3-17.2 38.5-38.5 38.5m282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7c-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5c67.2 0 79.7 44.3 79.7 101.9z\"\u002F>",{"left":4,"top":4,"width":29,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":30},384,"\u003Cpath fill=\"currentColor\" d=\"M290.7 311L95 269.7L86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8l153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24l119.3 160.3l32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":32},"\u003Cpath fill=\"currentColor\" d=\"M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037c-.856 3.061-3.978 3.842-6.755 3.37c4.854.826 6.089 3.562 3.422 6.299c-5.065 5.196-7.28-1.304-7.847-2.97c-.104-.305-.152-.448-.153-.327c0-.121-.05.022-.153.327c-.568 1.666-2.782 8.166-7.847 2.97c-2.667-2.737-1.432-5.473 3.422-6.3c-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026\"\u002F>",{"left":4,"top":4,"width":26,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":34},"\u003Cpath fill=\"currentColor\" d=\"M433 179.11c0-97.2-63.71-125.7-63.71-125.7c-62.52-28.7-228.56-28.4-290.48 0c0 0-63.72 28.5-63.72 125.7c0 115.7-6.6 259.4 105.63 289.1c40.51 10.7 75.32 13 103.33 11.4c50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7c56.12-6.7 105-41.3 111.23-72.9c9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175c25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5l11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1c23.71 27.3 18.4 53 18.4 175z\"\u002F>",{"left":4,"top":4,"width":18,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":36},"\u003Cpath fill=\"currentColor\" d=\"M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48m0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49c-16.841 13.247-50.201 45.072-73.413 44.701c-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646c21.857 17.205 60.134 55.186 103.062 54.955c42.717.231 80.509-37.199 103.053-54.947c49.528-38.783 82.032-64.401 104.947-82.653V400z\"\u002F>",{"left":4,"top":4,"width":26,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":38},"\u003Cpath fill=\"currentColor\" d=\"M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041s64.04 28.673 64.04 64.041m175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018c111.832 7.284 201.473 96.702 208.772 208.772c.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79m144.249.288C439.596 229.677 251.465 40.445 16.503 32.01C7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999c191.179 7.839 344.627 161.316 352.465 352.465c.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504\"\u002F>",{"id":40,"title":41,"author":42,"body":43,"comments":229,"date":287,"dateModified":288,"description":289,"extension":290,"headings":291,"heroImage":296,"meta":297,"path":298,"permalink":298,"published":299,"stem":300,"tags":301,"timeToRead":306},"posts\u002Fposts\u002F2015\u002Fminifying-html-for-asp-net-mvc\u002Findex.md","Minifying HTML for ASP.NET MVC","Muhammad Rehan Saeed",{"type":44,"value":45,"toc":226},"minimark",[46,50,57,60,63,66,69,72,75,89,112,121,131,145,151,160,163,174,183,192,195,198,205,208,219,222],[47,48,49],"p",{},"Using Razor comments or blocks of code can cause extra carriage returns to appear in the generated HTML. This has been a problem in all versions if ASP.NET MVC for a while now.",[51,52],"pre",{"className":53,"language":54,"meta":55,"style":55,"html":56},"language-html shiki shiki-themes light-plus monokai","html","","\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">p\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Paragraph 1\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">p\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sjLUg\">@* Razor Comment *@\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">p\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Paragraph 2\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">p\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>",[47,58,59],{},"The above code generates the following HTML. You can imagine that with a lot of comments or code blocks you get a lot of ugly blank lines appearing in your mark-up.",[51,61],{"className":53,"language":54,"meta":55,"style":55,"html":62},"\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">p\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Paragraph 1\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">p\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan>\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">p\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Paragraph 2\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">p\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>",[47,64,65],{},"Ideally it should generate the HTML below without any blank lines. If you really wanted a blank line to appear, you could add one yourself before the comment.",[51,67],{"className":53,"language":54,"meta":55,"style":55,"html":68},"\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">p\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Paragraph 1\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">p\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>\u003Cspan class=\"line\">\u003Cspan class=\"sNflI\">&lt;\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">p\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\u003C\u002Fspan>\u003Cspan class=\"sjLUg\">Paragraph 2\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&lt;\u002F\u003C\u002Fspan>\u003Cspan class=\"sjbfc\">p\u003C\u002Fspan>\u003Cspan class=\"sNflI\">&gt;\n\u003C\u002Fspan>\u003C\u002Fspan>",[47,70,71],{},"The main problem with the above is that it makes your HTML look ugly and hard to follow. You often end up with several blank lines, which breaks up the flow of the mark-up.",[47,73,74],{},"Also, given that every ASP.NET MVC site on the internet has this problem and probably contains at least two Razor comments and maybe a for-loop in the code somewhere, that is a lot of wasted extra bandwidth.",[47,76,77,78,88],{},"So I made ",[79,80,87],"a",{"href":81,"rel":82,"target":86},"https:\u002F\u002Fgithub.com\u002Faspnet\u002FRazor\u002Fissues\u002F428",[83,84,85],"nofollow","noopener","noreferrer","_blank","this"," suggestion for the next version of ASP.NET Core, to change the behaviour to the expected one above and it got accepted!",[90,91,93,111],"h1",{"id":92},"how-much-bandwidth-was-saved",[79,94,97],{"href":95,"aria-hidden":96},"#how-much-bandwidth-was-saved","true",[98,99,105],"svg",{"xmlns":100,"xmlns:xlink":101,"viewBox":102,"version":103,"width":104,"height":104,"aria-hidden":96},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink","0 0 16 16","1.1",22,[106,107],"path",{"fill":108,"fill-rule":109,"d":110},"currentColor","evenodd","M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z","How Much Bandwidth Was Saved",[47,113,114,115,120],{},"So how much bandwidth has this single change saved the internet? That's the question I asked myself. According to the ",[79,116,119],{"href":117,"rel":118,"target":86},"http:\u002F\u002Fhttparchive.org\u002Ftrends.php",[83,84,85],"httparchive.org",", the average request is made up of around 57KB of HTML. If we assume that each page contains two comments and maybe a for-loop, that's six carriage returns (Two sets of), twelve characters or twelve bytes of wasted bandwidth. If we assume that all sites are using GZip compression, then we can make a conservative estimate of around six bytes of wasted bandwidth per request.",[47,122,123],{},[124,125],"img",{"alt":126,"src":127,"width":128,"height":129,"loading":130},"Average HTML Transfer Size Over a Request Chart","\u002Fcontent-images\u002Fposts\u002F2015\u002Fminifying-html-for-asp-net-mvc\u002Fimages\u002FAverage-HTML-Transfer-Size-Over-a-Request-Chart.png",600,300,"lazy",[47,132,133,138,139,144],{},[79,134,137],{"href":135,"rel":136,"target":86},"http:\u002F\u002Fwww.cisco.com\u002Fc\u002Fen\u002Fus\u002Fsolutions\u002Fcollateral\u002Fservice-provider\u002Fvisual-networking-index-vni\u002FVNI_Hyperconnectivity_WP.html",[83,84,85],"Cisco"," forecasts that global IP traffic will pass the Zettabyte (1000 Exabytes) threshold by the end of 2016. If the the average transfer size per request is ",[79,140,143],{"href":141,"rel":142,"target":86},"http:\u002F\u002Fhttparchive.org\u002Ftrends.php#numurls",[83,84,85],"2162 KB","; and only 57 KB is HTML, we can work out that 257465 Terabytes of of the worlds internet traffic per year is HTML.",[47,146,147],{},[124,148],{"alt":149,"src":150,"width":128,"height":129,"loading":130},"Average Total Transfer Size Over a Request Chart","\u002Fcontent-images\u002Fposts\u002F2015\u002Fminifying-html-for-asp-net-mvc\u002Fimages\u002FAverage-Total-Transfer-Size-Over-a-Request-Chart.png",[47,152,153,154,159],{},"According to ",[79,155,158],{"href":156,"rel":157,"target":86},"http:\u002F\u002Fw3techs.com\u002Ftechnologies\u002Fhistory_overview\u002Fprogramming_language",[83,84,85],"w3techs.com",", 16.7% of all sites on the internet use ASP.NET as of 1st August 2015, lets assume half of those (8.35%) will use ASP.NET Core in a few years time. So, we can say that very roughly 21498 Terabytes of the worlds bandwidth is consumed on ASP.NET HTML requests per year.",[47,161,162],{},"If the average wasted bandwidth is six bytes out of a total of 57 KB per HTML request, then we come to a grand total of around 2.3 Terabytes of bandwidth saved per year. I must admit, that's a lot of bandwidth but I still thought it would be a lot more than that.",[90,164,166,173],{"id":165},"html-minification",[79,167,169],{"href":168,"aria-hidden":96},"#html-minification",[98,170,171],{"xmlns":100,"xmlns:xlink":101,"viewBox":102,"version":103,"width":104,"height":104,"aria-hidden":96},[106,172],{"fill":108,"fill-rule":109,"d":110},"HTML Minification",[47,175,176,177,182],{},"An even better solution would be to minify the HTML. There are solutions like ",[79,178,181],{"href":179,"rel":180,"target":86},"http:\u002F\u002Fwebmarkupmin.codeplex.com\u002F",[83,84,85],"Web Markup Min"," for ASP.NET Core but it works at runtime and is a little involved to set up, so all but the most determined developers use this feature.",[47,184,185,186,191],{},"Then there is ",[79,187,190],{"href":188,"rel":189,"target":86},"http:\u002F\u002Fwww.deanhume.com\u002FHome\u002FBlogPost\u002Fa-simple-html-minifier-for-asp-net\u002F2097",[83,84,85],"Dean Hume's"," compile time minifier which sounded perfect. In Dean's post he gets savings of around 20-30% by minifying his HTML. If we applied a conservative 20% saving to all ASP.NET Core HTML requests, that would work out to be a 4300 Terabyte saving in global bandwidth per year!",[47,193,194],{},"So far, I've only mentioned the bandwidth saving but downloading smaller HTML files will also mean quicker page load times. HTML is the first thing a browser downloads before it can go off and download all the other CSS, JavaScript, fonts and images a site needs to display a page. Making this download smaller, is a small but effective way to get pages up quicker.",[47,196,197],{},"These days, MVC has things like CSS and JavaScript minification built in as standard. To squeeze out even more performance, HTML minification is the next logical step.",[47,199,77,200,204],{},[79,201,87],{"href":202,"rel":203,"target":86},"https:\u002F\u002Fgithub.com\u002Faspnet\u002FRazor\u002Fissues\u002F423",[83,84,85]," suggestion for ASP.NET Core to implement Dean's compile time minification of Razor views by default. So far, it's not been taken up but I live in hope and write this blog post to show how cool a feature it is.",[47,206,207],{},"Please do go and post your support for this feature. We don't necessarily need to use Dean's technique, minifying HTML could just as easily be a Grunt or Gulp task.",[90,209,211,218],{"id":210},"conclusions",[79,212,214],{"href":213,"aria-hidden":96},"#conclusions",[98,215,216],{"xmlns":100,"xmlns:xlink":101,"viewBox":102,"version":103,"width":104,"height":104,"aria-hidden":96},[106,217],{"fill":108,"fill-rule":109,"d":110},"Conclusions",[47,220,221],{},"This post contains huge leaps of guess work and estimation. I hope my maths is up to scratch but I would not be surprised if I was off by a decimal point or two. Still, we are talking huge numbers here and I hope I've convinced you that minifying HTML is worth the effort.",[223,224,225],"style",{},"html pre.shiki code .sNflI, html code.shiki .sNflI{--shiki-default:#800000;--shiki-dark:#F8F8F2}html pre.shiki code .sjbfc, html code.shiki .sjbfc{--shiki-default:#800000;--shiki-dark:#F92672}html pre.shiki code .sjLUg, html code.shiki .sjLUg{--shiki-default:#000000;--shiki-dark:#F8F8F2}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":55,"searchDepth":227,"depth":227,"links":228},2,[],{"issue":230,"comments":234},{"number":231,"title":232,"html_url":233},89,"[Comment] Minifying HTML for ASP.NET MVC","https:\u002F\u002Fgithub.com\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002F89",[235,247,255,263,271,279],{"id":236,"html_url":237,"body_html":238,"created_at":239,"updated_at":239,"author_association":240,"user":241,"reactions":245},627263670,"https:\u002F\u002Fgithub.com\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002F89#issuecomment-627263670","\n\u003Cp>\u003Ca target=\"_blank\" rel=\"nofollow noopener noreferrer\" href=\"https:\u002F\u002Fcamo.githubusercontent.com\u002F82b003e639a8c818ccaf603adf10ae20e8a1ff52099881d176ce35f6fc0b6294\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f34326562626436393463363666366530333030373862643031353066363838643f733d393626643d6d6d26723d67\">\u003Cimg alt=\"Josh Olson\" height=\"40\" width=\"40\" src=\"https:\u002F\u002Fcamo.githubusercontent.com\u002F82b003e639a8c818ccaf603adf10ae20e8a1ff52099881d176ce35f6fc0b6294\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f34326562626436393463363666366530333030373862643031353066363838643f733d393626643d6d6d26723d67\" \u002F>\u003C\u002Fa> \u003Cstrong>Josh Olson\u003C\u002Fstrong> commented on \u003Cstrong>2016-02-19 02:55:16\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>I'm pretty sure your conclusion is right: you're off by a decimal point or two. One reason is the arithmetic and another is conceptual.\u003C\u002Fp>\n\u003Cp>First, the arithmetic. Forgive me if I followed you incorrectly but this is what I'm seeing. We got 1 zettabyte (1000 exabytes) of traffic. Since we're using the SI zetta instead of the IEC zebi, I'll stick to that throughout. 1 zettabyte = 1,000,000,000 terabytes. Using your ratio of 57KB \u002F 2162KB, that's 26,364,477.3 terabytes. Compare that to your 257,465 terabytes. What am I missing? ... I don't think anything based on the information you're providing me. If I'm right, your methodology would conclude even more bandwidth would be wasted. However...\u003C\u002Fp>\n\u003Cp>Conceptually, you missed something huge. Global IP Traffic != Global HTTP Traffic. I highly doubt HTTP traffic comes anywhere close to BitTorrent traffic, Netflix, YouTube (HTTP but the ratio is probably closer to 57KB\u002F100MB), video games, etc.\u003C\u002Fp>\n\u003Cp>Regardless, I'm all for minifying. :-)\u003C\u002Fp>","2020-05-12T10:44:41Z","OWNER",{"login":242,"avatar_url":243,"html_url":244},"RehanSaeed","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2270364?v=4","https:\u002F\u002Fgithub.com\u002FRehanSaeed",{"url":246,"total_count":4,"+1":4,"-1":4,"laugh":4,"hooray":4,"confused":4,"heart":4,"rocket":4,"eyes":4},"https:\u002F\u002Fapi.github.com\u002Frepos\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002Fcomments\u002F627263670\u002Freactions",{"id":248,"html_url":249,"body_html":250,"created_at":251,"updated_at":251,"author_association":240,"user":252,"reactions":253},627263717,"https:\u002F\u002Fgithub.com\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002F89#issuecomment-627263717","\n\u003Cp>\u003Ca target=\"_blank\" rel=\"nofollow noopener noreferrer\" href=\"https:\u002F\u002Fcamo.githubusercontent.com\u002F8a07049df41b8a3839a3f4342f09ea8e6e7fa0065667687f04beca2d088a1dca\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f32623266393030653361633066353535316462646537323864336262343935343f733d393626643d6d6d26723d67\">\u003Cimg alt=\"Muhammad Rehan Saeed\" height=\"40\" width=\"40\" src=\"https:\u002F\u002Fcamo.githubusercontent.com\u002F8a07049df41b8a3839a3f4342f09ea8e6e7fa0065667687f04beca2d088a1dca\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f32623266393030653361633066353535316462646537323864336262343935343f733d393626643d6d6d26723d67\" \u002F>\u003C\u002Fa> \u003Cstrong>\u003Ca rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\u002F\u002Frehansaeed.com\u002F\">Muhammad Rehan Saeed\u003C\u002Fa>\u003C\u002Fstrong> commented on \u003Cstrong>2016-02-19 10:21:38\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>I'm pretty sure your conclusion is right: you're off by a decimal point or two. One reason is the arithmetic and another is conceptual.\u003C\u002Fp>\n\u003Cp>First, the arithmetic. Forgive me if I followed you incorrectly but this is what I'm seeing. We got 1 zettabyte (1000 exabytes) of traffic. Since we're using the SI zetta instead of the IEC zebi, I'll stick to that throughout. 1 zettabyte = 1,000,000,000 terabytes. Using your ratio of 57KB \u002F 2162KB, that's 26,364,477.3 terabytes. Compare that to your 257,465 terabytes. What am I missing? ... I don't think anything based on the information you're providing me. If I'm right, your methodology would conclude even more bandwidth would be wasted. However...\u003C\u002Fp>\n\u003Cp>Conceptually, you missed something huge. Global IP Traffic != Global HTTP Traffic. I highly doubt HTTP traffic comes anywhere close to BitTorrent traffic, Netflix, YouTube (HTTP but the ratio is probably closer to 57KB\u002F100MB), video games, etc.\u003C\u002Fp>\n\u003Cp>Regardless, I'm all for minifying. :-)\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Yes the numbers are \u003Cstrong>very\u003C\u002Fstrong> rough. I had to go out and discover certain basic facts which I could base my math on. It turns out that it's pretty hard to do and we just don't know what global internet usage really amounts to.\u003C\u002Fp>\n\u003Cp>My intention with this blog post was to spur the ASP.NET developers into action and show how amazing it would be to add a HTML minification feature, make it super easy to use and turn it on by default. So far, I haven't got any really good vibes but I'm hoping the next version will answer this question.\u003C\u002Fp>","2020-05-12T10:44:48Z",{"login":242,"avatar_url":243,"html_url":244},{"url":254,"total_count":4,"+1":4,"-1":4,"laugh":4,"hooray":4,"confused":4,"heart":4,"rocket":4,"eyes":4},"https:\u002F\u002Fapi.github.com\u002Frepos\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002Fcomments\u002F627263717\u002Freactions",{"id":256,"html_url":257,"body_html":258,"created_at":259,"updated_at":259,"author_association":240,"user":260,"reactions":261},627263757,"https:\u002F\u002Fgithub.com\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002F89#issuecomment-627263757","\n\u003Cp>\u003Ca target=\"_blank\" rel=\"nofollow noopener noreferrer\" href=\"https:\u002F\u002Fcamo.githubusercontent.com\u002Fa1130047cc2f6b11803094e8344179babf80a4dd9f2c8fe88a6db6986d9c256c\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f35383063353933336365653132396138343337613063363365333738626433353f733d393626643d6d6d26723d67\">\u003Cimg alt=\"Flo\" height=\"40\" width=\"40\" src=\"https:\u002F\u002Fcamo.githubusercontent.com\u002Fa1130047cc2f6b11803094e8344179babf80a4dd9f2c8fe88a6db6986d9c256c\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f35383063353933336365653132396138343337613063363365333738626433353f733d393626643d6d6d26723d67\" \u002F>\u003C\u002Fa> \u003Cstrong>\u003Ca rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"http:\u002F\u002Fkonto-erstellen.de\u002F\">Flo\u003C\u002Fa>\u003C\u002Fstrong> commented on \u003Cstrong>2016-03-08 11:41:37\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>How is guaranteed that these tools\u002Fplugins\u002Flibs\u002Fetc. are not breaking complex views, esp. Razor syntax can get very \"special\"?\u003Cbr \u002F>\nUsing such thingy without having it written on your own makes you testing the whole app\u002Fwebsite again, i'd say?\u003C\u002Fp>\n\u003Cp>Nontheless, the performance gains esp. for mobile sites are awesome...\u003C\u002Fp>","2020-05-12T10:44:55Z",{"login":242,"avatar_url":243,"html_url":244},{"url":262,"total_count":4,"+1":4,"-1":4,"laugh":4,"hooray":4,"confused":4,"heart":4,"rocket":4,"eyes":4},"https:\u002F\u002Fapi.github.com\u002Frepos\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002Fcomments\u002F627263757\u002Freactions",{"id":264,"html_url":265,"body_html":266,"created_at":267,"updated_at":267,"author_association":240,"user":268,"reactions":269},627263811,"https:\u002F\u002Fgithub.com\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002F89#issuecomment-627263811","\n\u003Cp>\u003Ca target=\"_blank\" rel=\"nofollow noopener noreferrer\" href=\"https:\u002F\u002Fcamo.githubusercontent.com\u002F8a07049df41b8a3839a3f4342f09ea8e6e7fa0065667687f04beca2d088a1dca\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f32623266393030653361633066353535316462646537323864336262343935343f733d393626643d6d6d26723d67\">\u003Cimg alt=\"Muhammad Rehan Saeed\" height=\"40\" width=\"40\" src=\"https:\u002F\u002Fcamo.githubusercontent.com\u002F8a07049df41b8a3839a3f4342f09ea8e6e7fa0065667687f04beca2d088a1dca\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f32623266393030653361633066353535316462646537323864336262343935343f733d393626643d6d6d26723d67\" \u002F>\u003C\u002Fa> \u003Cstrong>\u003Ca rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"https:\u002F\u002Frehansaeed.com\u002F\">Muhammad Rehan Saeed\u003C\u002Fa>\u003C\u002Fstrong> commented on \u003Cstrong>2016-03-08 12:10:59\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>How is guaranteed that these tools\u002Fplugins\u002Flibs\u002Fetc. are not breaking complex views, esp. Razor syntax can get very \"special\"?\u003Cbr \u002F>\nUsing such thingy without having it written on your own makes you testing the whole app\u002Fwebsite again, i'd say?\u003C\u002Fp>\n\u003Cp>Nontheless, the performance gains esp. for mobile sites are awesome...\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>That's why this feature is totally experimental. That said, it really is doing very little and does 80% of the minification work, while still not breaking anything in my testing. The minified razor is there for you to look at, so you could make your own adjustments to fix something if it was not quite right, although that is not ideal. There are a lot of other more complex things that can be done for HTML minification, such as changing \u003Ccode>checked=\"true\"\u003C\u002Fcode> to just \u003Ccode>checked\u003C\u002Fcode>.\u003C\u002Fp>","2020-05-12T10:45:01Z",{"login":242,"avatar_url":243,"html_url":244},{"url":270,"total_count":4,"+1":4,"-1":4,"laugh":4,"hooray":4,"confused":4,"heart":4,"rocket":4,"eyes":4},"https:\u002F\u002Fapi.github.com\u002Frepos\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002Fcomments\u002F627263811\u002Freactions",{"id":272,"html_url":273,"body_html":274,"created_at":275,"updated_at":275,"author_association":240,"user":276,"reactions":277},627263873,"https:\u002F\u002Fgithub.com\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002F89#issuecomment-627263873","\n\u003Cp>\u003Ca target=\"_blank\" rel=\"nofollow noopener noreferrer\" href=\"https:\u002F\u002Fcamo.githubusercontent.com\u002F12e061ff48015257c4c46f417f6f0ded43639b32ec8e68446ac5eb949dec08be\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f66386466323263373734653765643434393138393939373937313531623831323f733d393626643d6d6d26723d67\">\u003Cimg alt=\"Tom Pažourek\" height=\"40\" width=\"40\" src=\"https:\u002F\u002Fcamo.githubusercontent.com\u002F12e061ff48015257c4c46f417f6f0ded43639b32ec8e68446ac5eb949dec08be\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f66386466323263373734653765643434393138393939373937313531623831323f733d393626643d6d6d26723d67\" \u002F>\u003C\u002Fa> \u003Cstrong>Tom Pažourek\u003C\u002Fstrong> commented on \u003Cstrong>2017-11-17 08:36:00\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>I recently built a very trivial and tiny HTML minifier for Razor that's easy to set up (just change the factory in the Web.config file), works in compile-time, and doesn't do any special minification magic. It just basically replaces multiple spaces with one. From my testing, whitespace is the biggest issue in HTML files, and this fixes just that (so side-effects should be minimal). If anybody's interested in some easy-to-use and simple solution, check it out (it's literally less than 100 lines of code):\u003C\u002Fp>\n\u003Cp>\u003Ca target=\"_blank\" rel=\"nofollow noopener noreferrer\" href=\"https:\u002F\u002Fgithub.com\u002Ftompazourek\u002FRazorHtmlMinifier.Mvc5\">https:\u002F\u002Fgithub.com\u002Ftompazourek\u002FRazorHtmlMinifier.Mvc5\u003C\u002Fa>\u003C\u002Fp>","2020-05-12T10:45:08Z",{"login":242,"avatar_url":243,"html_url":244},{"url":278,"total_count":4,"+1":4,"-1":4,"laugh":4,"hooray":4,"confused":4,"heart":4,"rocket":4,"eyes":4},"https:\u002F\u002Fapi.github.com\u002Frepos\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002Fcomments\u002F627263873\u002Freactions",{"id":280,"html_url":281,"body_html":282,"created_at":283,"updated_at":283,"author_association":240,"user":284,"reactions":285},627263911,"https:\u002F\u002Fgithub.com\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002F89#issuecomment-627263911","\n\u003Cp>\u003Ca target=\"_blank\" rel=\"nofollow noopener noreferrer\" href=\"https:\u002F\u002Fcamo.githubusercontent.com\u002F1cda9f6a0500b25be5097d488549fa4cee70d1bc0076b8371656694c05fe1afe\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f32323333336364383334643338613364623234616361623261663031333838333f733d393626643d6d6d26723d67\">\u003Cimg alt=\"SEO\" height=\"40\" width=\"40\" src=\"https:\u002F\u002Fcamo.githubusercontent.com\u002F1cda9f6a0500b25be5097d488549fa4cee70d1bc0076b8371656694c05fe1afe\u002F68747470733a2f2f7777772e67726176617461722e636f6d2f6176617461722f32323333336364383334643338613364623234616361623261663031333838333f733d393626643d6d6d26723d67\" \u002F>\u003C\u002Fa> \u003Cstrong>\u003Ca rel=\"nofollow noopener noreferrer\" target=\"_blank\" href=\"http:\u002F\u002Fwww.tabnakit.com\u002F\">SEO\u003C\u002Fa>\u003C\u002Fstrong> commented on \u003Cstrong>2018-04-07 08:06:04\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Great, thank you for sharing this article.\u003C\u002Fp>","2020-05-12T10:45:15Z",{"login":242,"avatar_url":243,"html_url":244},{"url":286,"total_count":4,"+1":4,"-1":4,"laugh":4,"hooray":4,"confused":4,"heart":4,"rocket":4,"eyes":4},"https:\u002F\u002Fapi.github.com\u002Frepos\u002FRehanSaeed\u002Frehansaeed.github.io\u002Fissues\u002Fcomments\u002F627263911\u002Freactions","2015-08-06T00:00:00+00:00",null,"How much bandwidth does minifying HTML save. Minifying HTML in ASP.NET MVC 5 is hard work. Minifying HTML should be a built in feature of ASP.NET Core.","md",[292,294,295],{"depth":293,"value":111},1,{"depth":293,"value":173},{"depth":293,"value":218},"\u002Fimages\u002Fhero\u002FThe-Internet-Is-A-Series-Of-Tubes-1366x768.jpg",{},"\u002Fminifying-html-for-asp-net-mvc\u002F",true,"posts\u002F2015\u002Fminifying-html-for-asp-net-mvc\u002Findex",[302,303,304,305],"ASP.NET MVC","HTML","Minification","Razor",4,{"left":4,"top":4,"width":26,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":308},"\u003Cpath fill=\"currentColor\" d=\"M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.55 96.55 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.3 96.3 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96s-42.981-96-96-96\"\u002F>",{"left":4,"top":4,"width":18,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":310},"\u003Cpath fill=\"currentColor\" d=\"M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48c27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256\"\u002F>",{"left":4,"top":4,"width":18,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":312},"\u003Cpath fill=\"currentColor\" d=\"M459.37 151.716c.325 4.548.325 9.097.325 13.645c0 138.72-105.583 298.558-298.558 298.558c-59.452 0-114.68-17.219-161.137-47.106c8.447.974 16.568 1.299 25.34 1.299c49.055 0 94.213-16.568 130.274-44.832c-46.132-.975-84.792-31.188-98.112-72.772c6.498.974 12.995 1.624 19.818 1.624c9.421 0 18.843-1.3 27.614-3.573c-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319c-28.264-18.843-46.781-51.005-46.781-87.391c0-19.492 5.197-37.36 14.294-52.954c51.655 63.675 129.3 105.258 216.365 109.807c-1.624-7.797-2.599-15.918-2.599-24.04c0-57.828 46.782-104.934 104.934-104.934c30.213 0 57.502 12.67 76.67 33.137c23.715-4.548 46.456-13.32 66.599-25.34c-7.798 24.366-24.366 44.833-46.132 57.827c21.117-2.273 41.584-8.122 60.426-16.243c-14.292 20.791-32.161 39.308-52.628 54.253\"\u002F>",{"left":4,"top":4,"width":18,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":314},"\u003Cpath fill=\"currentColor\" d=\"M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6c0-13.8 11.1-24.9 24.9-24.9c13.6 0 24.6 11.1 24.6 24.9c0 13.6-11.1 24.6-24.6 24.6M504 256c0 137-111 248-248 248S8 393 8 256S119 8 256 8s248 111 248 248m-132.3-41.2c-9.4 0-17.7 3.9-23.8 10c-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3l55.4 12.5c0 13.6 11.1 24.6 24.6 24.6c13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8c-6.1-6.4-14.7-10.2-24.1-10.2c-34.9 0-46.3 46.9-14.4 62.8c-1.1 5-1.7 10.2-1.7 15.5c0 52.6 59.2 95.2 132 95.2c73.1 0 132.3-42.6 132.3-95.2c0-5.3-.6-10.8-1.9-15.8c31.3-16 19.8-62.5-14.9-62.5M302.8 331c-18.2 18.2-76.1 17.9-93.6 0c-2.2-2.2-6.1-2.2-8.3 0c-2.5 2.5-2.5 6.4 0 8.6c22.8 22.8 87.3 22.8 110.2 0c2.5-2.2 2.5-6.1 0-8.6c-2.2-2.2-6.1-2.2-8.3 0m7.7-75c-13.6 0-24.6 11.1-24.6 24.9c0 13.6 11.1 24.6 24.6 24.6c13.8 0 24.9-11.1 24.9-24.6c0-13.8-11-24.9-24.9-24.9\"\u002F>",{"left":4,"top":4,"width":18,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":316},"\u003Cpath fill=\"currentColor\" d=\"M512 194.8c0 101.3-82.4 183.8-183.8 183.8c-101.7 0-184.4-82.4-184.4-183.8c0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8M0 501.5h90v-491H0z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":318},"\u003Cpath fill=\"currentColor\" d=\"m20.216 6.415l-.132-.666c-.119-.598-.388-1.163-1.001-1.379c-.197-.069-.42-.098-.57-.241c-.152-.143-.196-.366-.231-.572c-.065-.378-.125-.756-.192-1.133c-.057-.325-.102-.69-.25-.987c-.195-.4-.597-.634-.996-.788a6 6 0 0 0-.626-.194c-1-.263-2.05-.36-3.077-.416a26 26 0 0 0-3.7.062c-.915.083-1.88.184-2.75.5c-.318.116-.646.256-.888.501c-.297.302-.393.77-.177 1.146c.154.267.415.456.692.58c.36.162.737.284 1.123.366c1.075.238 2.189.331 3.287.37q1.829.074 3.65-.118q.449-.05.896-.119c.352-.054.578-.513.474-.834c-.124-.383-.457-.531-.834-.473c-.466.074-.96.108-1.382.146q-1.767.12-3.536.006a22 22 0 0 1-1.157-.107c-.086-.01-.18-.025-.258-.036q-.364-.055-.724-.13c-.111-.027-.111-.185 0-.212h.005q.416-.09.838-.147h.002c.131-.009.263-.032.394-.048a25 25 0 0 1 3.426-.12q1.011.029 2.017.144l.228.031q.4.06.798.145c.392.085.895.113 1.07.542c.055.137.08.288.111.431l.319 1.484a.237.237 0 0 1-.199.284h-.003l-.112.015a37 37 0 0 1-4.743.295a37 37 0 0 1-4.699-.304c-.14-.017-.293-.042-.417-.06c-.326-.048-.649-.108-.973-.161c-.393-.065-.768-.032-1.123.161c-.29.16-.527.404-.675.701c-.154.316-.199.66-.267 1c-.069.34-.176.707-.135 1.056c.087.753.613 1.365 1.37 1.502a39.7 39.7 0 0 0 11.343.376a.483.483 0 0 1 .535.53l-.071.697l-1.018 9.907c-.041.41-.047.832-.125 1.237c-.122.637-.553 1.028-1.182 1.171q-.868.197-1.756.205c-.656.004-1.31-.025-1.966-.022c-.699.004-1.556-.06-2.095-.58c-.475-.458-.54-1.174-.605-1.793l-.731-7.013l-.322-3.094c-.037-.351-.286-.695-.678-.678c-.336.015-.718.3-.678.679l.228 2.185l.949 9.112c.147 1.344 1.174 2.068 2.446 2.272c.742.12 1.503.144 2.257.156c.966.016 1.942.053 2.892-.122c1.408-.258 2.465-1.198 2.616-2.657l1.024-9.995l.215-2.087a.48.48 0 0 1 .39-.426c.402-.078.787-.212 1.074-.518c.455-.488.546-1.124.385-1.766zm-1.478.772c-.145.137-.363.201-.578.233c-2.416.359-4.866.54-7.308.46c-1.748-.06-3.477-.254-5.207-.498c-.17-.024-.353-.055-.47-.18c-.22-.236-.111-.71-.054-.995c.052-.26.152-.609.463-.646c.484-.057 1.046.148 1.526.22q.865.132 1.737.212c2.48.226 5.002.19 7.472-.14q.675-.09 1.345-.21c.399-.072.84-.206 1.08.206c.166.281.188.657.162.974a.54.54 0 0 1-.169.364zm-6.159 3.9c-.862.37-1.84.788-3.109.788a6 6 0 0 1-1.569-.217l.877 9.004c.065.78.717 1.38 1.5 1.38c0 0 1.243.065 1.658.065c.447 0 1.786-.065 1.786-.065c.783 0 1.434-.6 1.499-1.38l.94-9.95a4 4 0 0 0-1.322-.238c-.826 0-1.491.284-2.26.613\"\u002F>",{"left":4,"top":4,"width":29,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":320},"\u003Cpath fill=\"currentColor\" d=\"M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134c-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9c152.3 0 165.1-3.7 204 11.4c60.1 23.3 65.6 79.5 44 140.3c-21.5 62.6-72.5 89.5-140.1 90.3c-43.4.7-69.5-7-75.3 24.2M357.1 152c-1.8-1.3-2.5-1.8-3 1.3c-2 11.4-5.1 22.5-8.8 33.6c-39.9 113.8-150.5 103.9-204.5 103.9c-6.1 0-10.1 3.3-10.9 9.4c-22.6 140.4-27.1 169.7-27.1 169.7c-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9c.7-5.4-1.1 6.1 14.4-91.3c4.6-22 14.3-19.7 29.3-19.7c71 0 126.4-28.8 142.9-112.3c6.5-34.8 4.6-71.4-23.8-92.6\"\u002F>",{"left":4,"top":4,"width":18,"height":18,"rotate":4,"vFlip":6,"hFlip":6,"body":322},"\u003Cpath fill=\"currentColor\" d=\"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8m0 448c-110.532 0-200-89.431-200-200c0-110.495 89.472-200 200-200c110.491 0 200 89.471 200 200c0 110.53-89.431 200-200 200m107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516c17.561-9.845 28.324-16.541 28.324-29.579c0-17.246-21.999-28.693-39.784-28.693c-23.189 0-33.894 10.977-48.942 29.969c-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8M298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42s18.841-42 42-42s42 18.841 42 42\"\u002F>",1793040631509]