CINXE.COM
Diving into Wikipedia’s ocean of errors – [[WM:TECHBLOG]]
<!doctype html> <html lang="en-US" class="no-js"> <head> <title>Diving into Wikipedia’s ocean of errors – [[WM:TECHBLOG]]</title> <meta name='robots' content='max-image-preview:large' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="profile" href="http://gmpg.org/xfn/11"> <link rel="pingback" href="https://techblog.wikimedia.org/xmlrpc.php"><meta name="theme-color" content="222222"><link rel="alternate" type="application/rss+xml" title="[[WM:TECHBLOG]] » Feed" href="https://techblog.wikimedia.org/feed/" /> <link rel="alternate" type="application/rss+xml" title="[[WM:TECHBLOG]] » Comments Feed" href="https://techblog.wikimedia.org/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="[[WM:TECHBLOG]] » Diving into Wikipedia’s ocean of errors Comments Feed" href="https://techblog.wikimedia.org/2020/09/28/diving-into-wikipedias-ocean-of-errors/feed/" /> <link rel='stylesheet' id='all-css-0' href='https://techblog.wikimedia.org/wp-includes/css/dist/block-library/style.min.css?m=1732206022g' type='text/css' media='all' /> <link rel='stylesheet' id='all-css-2' href='https://techblog.wikimedia.org/_static/??-eJzTLy/QzcxLzilNSS3WzyrWz01NyUxMzUnNTc0rQeEU5CRWphbp5qSmJyZX6uVm5uklFxfr6OPTDpRD5sM02efaGpobGxkZmBkYGQMARIMu1Q==' type='text/css' media='all' /> <style id='jetpack-sharing-buttons-style-inline-css'> .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em} </style> <style id='classic-theme-styles-inline-css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='all-css-8' href='https://techblog.wikimedia.org/_static/??/wp-content/plugins/techblog-fonts/assets/css/techblog-fonts.css,/wp-content/themes/modern/style.css?m=1720618861' type='text/css' media='all' /> <link rel='stylesheet' id='screen-css-8' href='https://techblog.wikimedia.org/_static/??-eJyNzLEOgzAQA9AfIlzDACyo34KCW5C4S4UPVf170pUFRsvPlu8npGwOc/EZCormCZvJSMIpr1JS3jBsS4EMhh3nXCeykqurgkTHxe7rtNOzBvpvBf+zpw6xax5t7Ps2HofoRg4=' type='text/css' media='screen' /> <style id='modern-inline-css'> .comments-link { clip: rect(1px, 1px, 1px, 1px); height: 1px; position: absolute; overflow: hidden; width: 1px; } /* START CSS variables */ :root { --color_accent: #14866d; --color_accent--a0: rgba(20,134,109,0); --color_header_background: #222222; --color_intro_background: #222222; --color_content_text: #54595d; --color_content_text--a20: rgba(84,89,93,0.2); --color_content_headings: #222222; --color_footer_background: #eaecf0; --color_footer_text: #54595d; --color_footer_text--a20: rgba(84,89,93,0.2); --color_footer_headings: #222222; } /* END CSS variables */:root {--background_color:#222222;--background_color--a0:rgba(34,34,34,0);} </style> <link rel='stylesheet' id='all-css-10' href='https://techblog.wikimedia.org/wp-content/themes/modern-child/style.css?m=1720618857g' type='text/css' media='all' /> <script type="text/javascript" src="https://techblog.wikimedia.org/wp-content/themes/modern/library/js/vendors/css-vars-ponyfill/css-vars-ponyfill.min.js?ver=2.3.1" id="css-vars-ponyfill-js"></script> <script type="text/javascript" id="css-vars-ponyfill-js-after"> /* <![CDATA[ */ window.onload = function() { cssVars( { onlyVars: true, exclude: 'link:not([href^="https://techblog.wikimedia.org/wp-content/themes"])' } ); }; /* ]]> */ </script> <script type="text/javascript" src="https://techblog.wikimedia.org/_static/??-eJyFi0EOwjAMwD5El9FJcEK8JZSoS9WkY0k17fcgtPtOPtiGbQmpqZM6LLVnVgOnNL9qywEV6+6cDNCM3KAYCHqTNhS7wG9lTbW/6W/Kp9O6HxiE9TQKwnlFpyN+yuN6n2Icb2Ocyhe+Eziu" ></script><link rel="https://api.w.org/" href="https://techblog.wikimedia.org/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://techblog.wikimedia.org/wp-json/wp/v2/posts/833" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://techblog.wikimedia.org/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.7.1" /> <link rel="canonical" href="https://techblog.wikimedia.org/2020/09/28/diving-into-wikipedias-ocean-of-errors/" /> <link rel='shortlink' href='https://techblog.wikimedia.org/?p=833' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://techblog.wikimedia.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Ftechblog.wikimedia.org%2F2020%2F09%2F28%2Fdiving-into-wikipedias-ocean-of-errors%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://techblog.wikimedia.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Ftechblog.wikimedia.org%2F2020%2F09%2F28%2Fdiving-into-wikipedias-ocean-of-errors%2F&format=xml" /> <style type="text/css" id="custom-background-css"> body.custom-background { background-color: #222222; } </style> <link rel="icon" href="https://techblog.wikimedia.org/wp-content/uploads/2020/03/cropped-600px-Wiki-tech-logo-hub.svg_-1.png?w=32" sizes="32x32" /> <link rel="icon" href="https://techblog.wikimedia.org/wp-content/uploads/2020/03/cropped-600px-Wiki-tech-logo-hub.svg_-1.png?w=192" sizes="192x192" /> <link rel="apple-touch-icon" href="https://techblog.wikimedia.org/wp-content/uploads/2020/03/cropped-600px-Wiki-tech-logo-hub.svg_-1.png?w=180" /> <meta name="msapplication-TileImage" content="https://techblog.wikimedia.org/wp-content/uploads/2020/03/cropped-600px-Wiki-tech-logo-hub.svg_-1.png?w=270" /> <style type="text/css" id="wp-custom-css"> /* Hide duplicate title on "home" page */ body.page-id-15 div.intro {display:none} /* T248129: Always show authors (only needed until we have 2+ authors on published posts) */ body:not(.group-blog) .entry-meta .author { display: inline; } /* Rounded All Post and Comment button in alignement with design style guide*/ a.button, element.style { border-radius: 4px; } form input[type=submit], form .main-navigation-container .button>a, .main-navigation-container form .button>a { margin-top: 0; margin-bottom: 0; border-radius: 4px; } /* Remove redundant "Posts" title from Posts page */ .page-header .page-title { float: left; max-width: 48%; display: none; } /* Remove background image from post navigation footer */ .post-navigation .nav-previous a { background-image: none !important; } .post-navigation .nav-next a { background-image: none !important; } </style> </head> <body class="comment-hidden custom-background group-blog has-intro has-masonry-footer has-navigation-mobile has-post-thumbnail has-posts-layout-equal-height is-singular jetpack-featured-images-archive-enabled jetpack-featured-images-page-enabled jetpack-featured-images-portfolio-enabled jetpack-featured-images-post-enabled no-js no-widgets-sidebar post-template-default postid-833 posts-layout-columns-3 single single-format-standard single-post"> <div id="page" class="site"> <ul class="skip-link-list"> <li class="skip-link-list-item"><a class="skip-link screen-reader-text" href="#site-navigation">Skip to main navigation</a></li><li class="skip-link-list-item"><a class="skip-link screen-reader-text" href="#content">Skip to main content</a></li><li class="skip-link-list-item"><a class="skip-link screen-reader-text" href="#colophon">Skip to footer</a></li></ul> <header id="masthead" class="site-header"> <div class="site-header-navigation"><div class="site-header-inner"> <nav id="site-navigation" class="main-navigation" aria-label="Primary Menu"> <button id="menu-toggle" class="menu-toggle" aria-controls="menu-primary" aria-expanded="false">Menu</button> <div id="site-navigation-container" class="main-navigation-container"> <div class="menu-search"><form role="search" method="get" class="search-form" action="https://techblog.wikimedia.org/"> <label> <span class="screen-reader-text">Search for:</span> <input type="search" class="search-field" placeholder="Search …" value="" name="s" /> </label> <input type="submit" class="search-submit" value="Search" /> </form></div><div class="menu"><ul id="menu-primary" class="menu-primary"><li id="menu-item-231" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home menu-item-231"><a href="https://techblog.wikimedia.org/">Home</a></li> <li id="menu-item-43" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-43"><a href="https://techblog.wikimedia.org/about/">About</a></li> <li id="menu-item-58" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-58"><a href="https://techblog.wikimedia.org/further-reading/">Further Reading</a></li> <li class="menu-toggle-skip-link-container"><a href="#menu-toggle" class="menu-toggle-skip-link">Skip to menu toggle button</a></li></ul></div> </div> </nav> </div></div> <div class="site-header-content"><div class="site-header-inner"> <div class="site-branding"> <div class="site-branding-text"> <p class="site-title"><a href="https://techblog.wikimedia.org/" class="site-title-text" rel="home">[[WM:TECHBLOG]]</a></p> <p class="site-description">Open Source for Open Knowledge</p> </div> </div> <nav class="social-links" aria-label="Social Menu"> </nav> </div></div> </header> <section id="intro-container" class="intro-container"> <div id="intro" class="intro"><div class="intro-inner"> </div></div> <div id="intro-media" class="intro-media"> <div id="wp-custom-header" class="wp-custom-header"><img src="https://techblog.wikimedia.org/wp-content/uploads/2020/09/1024px-Christoph_Wolff_12_years_scubadiving_at_Crystal_Bat_Nusa_Penida_Indonesia.jpg?w=1024&h=768&crop=1" width="1920" height="1080" alt="" decoding="async" /></div></div> </section> <div id="content" class="site-content"> <div class="site-content-inner"> <div id="primary" class="content-area"> <main id="main" class="site-main"> <article id="post-833" class="post-833 post type-post status-publish format-standard has-post-thumbnail hentry category-how-to tag-debugging tag-javascript tag-mobile entry"> <div class="entry-media"><figure class="post-thumbnail"><a href="https://techblog.wikimedia.org/wp-content/uploads/2020/09/1024px-Christoph_Wolff_12_years_scubadiving_at_Crystal_Bat_Nusa_Penida_Indonesia.jpg"><img width="1000" height="750" src="https://techblog.wikimedia.org/wp-content/uploads/2020/09/1024px-Christoph_Wolff_12_years_scubadiving_at_Crystal_Bat_Nusa_Penida_Indonesia.jpg?w=1000" class="attachment-large size-large wp-post-image" alt="https://commons.wikimedia.org/wiki/File:Christoph_Wolff,_12_years,_scubadiving_at_Crystal_Bat,_Nusa_Penida,_Indonesia.JPG" decoding="async" srcset="https://techblog.wikimedia.org/wp-content/uploads/2020/09/1024px-Christoph_Wolff_12_years_scubadiving_at_Crystal_Bat_Nusa_Penida_Indonesia.jpg 1024w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/1024px-Christoph_Wolff_12_years_scubadiving_at_Crystal_Bat_Nusa_Penida_Indonesia.jpg?resize=750,563 750w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/1024px-Christoph_Wolff_12_years_scubadiving_at_Crystal_Bat_Nusa_Penida_Indonesia.jpg?resize=768,576 768w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/1024px-Christoph_Wolff_12_years_scubadiving_at_Crystal_Bat_Nusa_Penida_Indonesia.jpg?resize=1000,750 1000w" sizes="(max-width: 1000px) 100vw, 1000px" data-attachment-id="834" data-permalink="https://techblog.wikimedia.org/2020/09/28/diving-into-wikipedias-ocean-of-errors/1024px-christoph_wolff_12_years_scubadiving_at_crystal_bat_nusa_penida_indonesia/" data-orig-file="https://techblog.wikimedia.org/wp-content/uploads/2020/09/1024px-Christoph_Wolff_12_years_scubadiving_at_Crystal_Bat_Nusa_Penida_Indonesia.jpg" data-orig-size="1024,768" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="1024px-Christoph_Wolff,_12_years,_scubadiving_at_Crystal_Bat,_Nusa_Penida,_Indonesia" data-image-description="<p>https://commons.wikimedia.org/wiki/File:Christoph_Wolff,_12_years,_scubadiving_at_Crystal_Bat,_Nusa_Penida,_Indonesia.JPG</p> " data-image-caption="<p>https://commons.wikimedia.org/wiki/File:Christoph_Wolff,_12_years,_scubadiving_at_Crystal_Bat,_Nusa_Penida,_Indonesia.JPG</p> " data-medium-file="https://techblog.wikimedia.org/wp-content/uploads/2020/09/1024px-Christoph_Wolff_12_years_scubadiving_at_Crystal_Bat_Nusa_Penida_Indonesia.jpg?w=750" data-large-file="https://techblog.wikimedia.org/wp-content/uploads/2020/09/1024px-Christoph_Wolff_12_years_scubadiving_at_Crystal_Bat_Nusa_Penida_Indonesia.jpg?w=1000" /></a></figure></div><div class="entry-content-container"><header class="entry-header"><h1 class="entry-title">Diving into Wikipedia’s ocean of errors</h1></header> <footer class="entry-meta entry-meta-top"> <span class="entry-meta-element entry-date posted-on"> <span class="entry-meta-description label-published"> Posted on: </span> <a href="https://techblog.wikimedia.org/2020/09/28/diving-into-wikipedias-ocean-of-errors/" rel="bookmark"> <time datetime="2020-09-28T15:57:39+00:00" class="published" title="Posted on: September 28, 2020"> September 28, 2020 </time> </a> <span class="entry-meta-description label-updated"> Last updated on: </span> <time class="updated" datetime="2020-10-01T22:58:36+00:00" title="Last updated on: October 1, 2020"> October 1, 2020 </time> </span> <span class="entry-meta-element comments-link"> <a href="https://techblog.wikimedia.org/2020/09/28/diving-into-wikipedias-ocean-of-errors/#comments" title="Comments: 0"> <span class="entry-meta-description"> Comments: </span> <span class="comments-count"> 0 </span> </a> </span> <span class="entry-meta-element cat-links"> <span class="entry-meta-description"> Categorized in: </span> <a href="https://techblog.wikimedia.org/category/how-to/" rel="category tag">Learning & How To</a></span> <a href="https://techblog.wikimedia.org/author/jon-robson/" title="Posts by Jon Robson" class="author url fn" rel="author">Jon Robson</a></footer> <div class="entry-content"><div class="entry-summary"> This blog post documents how we prioritized debugging an issue on mobile; how we went about implementing a solution; and what we learned from the experience. </div> <h3 class="wp-block-heading">How we went from an error counter to fixing our code</h3> <p>By Jon Robson, Staff Software Engineer, The Wikimedia Foundation</p> <p id="8899">A while back <a href="https://jdlrobson.com/posts/2019-02-11_we-re-going-on-a-bug-hunt--we-re-not-scared---b4057e4a91d2">I wrote about debugging an issue on mobile armed only with an error counter and referrer information</a>. Thankfully I’m pleased to report that we are now tracking and fixing client-side JavaScript errors for Wikimedia wikis which are providing more error-free experiences to our end users. In this blog post, I wanted to document what led us to prioritize it; how we went about implementing a solution; and what we learned from the experience. If you are planning to log client errors in your own project, you may find the summarizing section at the end of the article useful.</p> <h1 class="wp-block-heading" id="3607">Preparing for the voyage</h1> <p id="1e24">You may have recently heard about how <a href="https://phabricator.wikimedia.org/T241180">Wikipedia has made a recommendation to adopt Vue.js</a> or <a href="https://diff.wikimedia.org/2020/09/23/wikipedia-is-getting-a-new-look-for-the-first-time-in-10-years-heres-why/">how we are redesigning the desktop site</a>. As you can imagine migrating an entire front-end stack comes with certain challenges. We were diving into a large technical project with no knowledge of the existing landscape in which we were working. In fact, much of our code hadn’t been touched in some time. In addition to this our mobile error counting had also jumped from 10k a minute to 40k a minute with no obvious cause¹ signally we had introduced a bug somewhere. It was clear to the developers tasked with this work, that sophisticated error handling was a requirement for this project.</p> <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1200" height="900" data-attachment-id="840" data-permalink="https://techblog.wikimedia.org/2020/09/28/diving-into-wikipedias-ocean-of-errors/1200px-thistlegorm_deck_and_train_parts/" data-orig-file="https://techblog.wikimedia.org/wp-content/uploads/2020/09/1200px-Thistlegorm_deck_and_train_parts.jpg" data-orig-size="1200,900" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="1200px-Thistlegorm_deck_and_train_parts" data-image-description="" data-image-caption="" data-medium-file="https://techblog.wikimedia.org/wp-content/uploads/2020/09/1200px-Thistlegorm_deck_and_train_parts.jpg?w=750" data-large-file="https://techblog.wikimedia.org/wp-content/uploads/2020/09/1200px-Thistlegorm_deck_and_train_parts.jpg?w=1000" src="https://techblog.wikimedia.org/wp-content/uploads/2020/09/1200px-Thistlegorm_deck_and_train_parts.jpg?w=1000" alt="" class="wp-image-840" srcset="https://techblog.wikimedia.org/wp-content/uploads/2020/09/1200px-Thistlegorm_deck_and_train_parts.jpg 1200w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/1200px-Thistlegorm_deck_and_train_parts.jpg?resize=750,563 750w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/1200px-Thistlegorm_deck_and_train_parts.jpg?resize=768,576 768w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/1200px-Thistlegorm_deck_and_train_parts.jpg?resize=1000,750 1000w" sizes="auto, (max-width: 1200px) 100vw, 1200px" /><figcaption>We had little idea what we would uncover through our explorations of client-side errors. Image credit: <a href="https://commons.wikimedia.org/wiki/File:Thistlegorm_deck_and_train_parts.jpg">Thistlegorm deck and train parts.jpg</a>, <a href="https://commons.wikimedia.org/w/index.php?title=User:Woodym555&action=edit&redlink=1">Woodym555</a>, <a href="https://creativecommons.org/licenses/by-sa/3.0/deed.en">CC BY-SA 3.0</a></figcaption></figure> <p id="0444">Luckily this dovetailed nicely with <a href="https://www.mediawiki.org/wiki/Wikimedia_Product/Better_use_of_data/Event_Platform_Clients">the scaling up of our Event Platform</a> client and a global pandemic where our focus has shifted to site stability. Existing solutions such as <a href="https://ravenjs.com/">Raven</a> and <a href="https://sentry.io/welcome/">Sentry</a> were considered, but given the size of the client libraries comparatively to the rest of the software and out of a desire to minimize additional tools for developers, a decision was made to roll our own client code and <a href="https://phabricator.wikimedia.org/T217142">send unmodified errors and stacktraces to our existing Kafka-Logstash logging infrastructure</a>².</p> <p id="7f87">We had little idea what we would uncover through our explorations.</p> <h1 class="wp-block-heading" id="a4f7">Preparing for launch was just the start</h1> <p id="cfc5">Before I even got involved in the work, there was an amazing collaboration between the security, performance, operations, analytics, and product infrastructure to get everything in place. <a href="https://phabricator.wikimedia.org/T241180">This effort is tracked on our public task management system for those that are interested in the details</a>.</p> <p id="e67d">Thanks to the collaboration and planning of these teams, the code for catching errors and sending them to the server ended up <a href="https://phabricator.wikimedia.org/T235189">being relatively small</a>. This effort culminated <a href="https://phabricator.wikimedia.org/T246030">in the launch on Hawaiian Wikipedia</a>, one of our less often visited wikis. The challenge now became how to do this at scale.</p> <h1 class="wp-block-heading" id="5ab4">Diving into the unknown</h1> <p id="5dbc">We maintain <a href="https://meta.wikimedia.org/wiki/Our_projects">multiple projects</a> and our biggest Wikipedia alone has 293 languages. It’s an understatement to say that our ecosystem is complex. You’ve likely read about <a href="https://www.vice.com/en_us/article/4agamm/the-worlds-second-largest-wikipedia-is-written-almost-entirely-by-one-bot">how bots are widely used in Wikipedia</a>, but many of our users all rely on bespoke tooling to manage a variety of editing activities that are provided by browser extensions and <a href="https://www.mediawiki.org/wiki/Extension:Gadgets">user gadgets</a> (special wiki pages that allow users to write and run their own JavaScript).³</p> <p id="fb61">To roll out further, we had to ensure that bugs were getting fixed, the information we didn’t care about from user gadgets and scripts did not drown the signals we got from more important errors, and most importantly the traffic to the end point was low such that it wouldn’t bring down our services.</p> <p id="91f0">We started small on a small wiki for the software that runs our sites: <a href="http://mediawiki.org/">mediawiki.org</a>. From a product perspective, even though the audience was low, it gave us a hint about what to expect as we rolled out further. The errors logged were a good way to capture very prominent errors e.g. errors occurring on every page view. Many of these errors had very actionable stack traces meaning we could file bugs and fix them, which we did, however others were more cryptic. “<a href="https://sentry.io/answers/javascript-script-error/">Script error</a>.” was one of the most prominent and the most unclear to fix.</p> <p id="ee63">The reason we were getting “Script error” was due to the fact that code was being loaded from across our websites. Many of our users were loading gadgets from other wikis. So while this could be explained, it was not very actionable without a stack trace. However, it did provide the file which caused the error which could be linked to the associated wiki page. Similar <a href="https://jdlrobson.com/posts/2019-02-11_we-re-going-on-a-bug-hunt--we-re-not-scared---b4057e4a91d2">to my bug hunting adventures in my previous blog post</a>, it could be used to manually reproduce those errors in exploratory testing.</p> <p id="f745">However, the errors we were seeing on <a href="http://mediawiki.org/">mediawiki.org</a> represented a small drop in a large ocean of errors for our projects. Despite the rate of errors for these smaller wikis being sufficiently low, we knew that there were more errors out there waiting to be explored, the kind that only come from really stretching the use our software — for example editing a wiki page with complicated markup or copying and pasting a table with thousands of rows! We needed to roll out to larger wikis to help prioritize bug fixing in our product workflow by identifying where in our complex code ecosystem our users were commonly hitting problems in our code. But where to begin?</p> <p id="67c4">We looked at traffic first to guide us. We wanted wikis bigger than our current wikis, but not too big. <a href="https://jdlrobson.com/posts/2019-02-11_we-re-going-on-a-bug-hunt--we-re-not-scared---b4057e4a91d2">Thanks to the error counter we introduced in our mobile site</a> we were able to get guesstimates of the actual error rates on mobile for possible wikis by looking at referrer traffic. Combining this information with the actual error rates being ingested for Hawaiian Wikipedia and mediawiki.org for all our traffic and the traffic for all our wikis, we were able to predict the volume of errors for our candidate wikis on desktop too. We choose a wiki that would inform us more about the errors our users were actually facing without overwhelming our event platform. <a href="https://phabricator.wikimedia.org/T258073">We decided to enable on our Catalan language Wikipedia</a>.</p> <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="2394" height="1494" data-attachment-id="842" data-permalink="https://techblog.wikimedia.org/2020/09/28/diving-into-wikipedias-ocean-of-errors/jr-screenshot-1/" data-orig-file="https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-1.png" data-orig-size="2394,1494" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="JR-Screenshot-1" data-image-description="" data-image-caption="" data-medium-file="https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-1.png?w=750" data-large-file="https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-1.png?w=1000" src="https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-1.png?w=1000" alt="" class="wp-image-842" srcset="https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-1.png 2394w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-1.png?resize=750,468 750w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-1.png?resize=768,479 768w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-1.png?resize=1000,624 1000w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-1.png?resize=1536,959 1536w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-1.png?resize=2048,1278 2048w" sizes="auto, (max-width: 2394px) 100vw, 2394px" /><figcaption>A JavaScript error occurs for an end-user deep down inside the developer console, hidden away from the user’s view and previously not seen by our engineers. <br>Image credit: Screenshot own work, Jon Robson, <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a></figcaption></figure> <h1 class="wp-block-heading" id="a9d0">Lesson one: Not all user errors are equal</h1> <p id="7888">Running the client-side error tracking on Catalan Wikipedia was really helpful for prioritizing roll out. Due to the larger volume of traffic, we went from around 2,000 errors a day to 40,000, however, this taught us a lot. Certain errors we were seeing in the same software on our smaller websites were now occurring more frequently which helped us prioritize them.</p> <p id="ca55">What became apparent however was certain errors were being repeated by a single IP. We hadn’t been able to notice that with such low traffic. At one point 38,830 of 48,175 errors in a 12 hr period logged to Catalan Wikipedia came from a single IP address who was running some badly maintained gadgets that they had included almost a decade ago.</p> <p id="18db">In another interesting development, from the stack traces, <a href="https://phabricator.wikimedia.org/T257872">we identified a bug related to our map feature which was only occurring on slow connections</a>. When the bug occurred unfortunately it got executed in an interval timer so appeared in high volumes. A patch was provided and that bug was squashed. It turned out this accounted for 50% of our errors on mobile and our error counting graph adjusted accordingly.</p> <p id="aa0c">As for other bugs, many of them came from faulty and forgotten scripts that users were running. After reaching out to those users, we managed to clean those up.</p> <figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="2602" height="958" data-attachment-id="843" data-permalink="https://techblog.wikimedia.org/2020/09/28/diving-into-wikipedias-ocean-of-errors/jr-screenshot-2-1/" data-orig-file="https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-2-1.png" data-orig-size="2602,958" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="JR-Screenshot-2-1" data-image-description="" data-image-caption="" data-medium-file="https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-2-1.png?w=750" data-large-file="https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-2-1.png?w=1000" src="https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-2-1.png?w=1000" alt="" class="wp-image-843" srcset="https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-2-1.png 2602w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-2-1.png?resize=750,276 750w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-2-1.png?resize=768,283 768w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-2-1.png?resize=1000,368 1000w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-2-1.png?resize=1536,566 1536w, https://techblog.wikimedia.org/wp-content/uploads/2020/09/JR-Screenshot-2-1.png?resize=2048,754 2048w" sizes="auto, (max-width: 2602px) 100vw, 2602px" /><figcaption>Over the course of 7 days we went from 30,000 errors per 3hrs to a manageable 735<br>Image credit: Screenshot own work, Jon Robson, <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a></figcaption></figure> <p id="2c51">These two incidents once fixed got the error rate down to a very manageable and respectable rate of 735 errors ever 3hrs. A lesson was learned and we began to limit the number of bugs we logged from the same user session to five. With that obstacle out of the way, we felt confident to roll out further.</p> <h1 class="wp-block-heading" id="48b4">Lesson Two: Not all page JavaScript is equal</h1> <p id="9cb0">With errors limited, the list of errors was much more manageable, however, it was clear that many of the stack traces were not useful. In certain cases, the code was clearly coming from places outside of our control. Interestingly we also saw a lot of bugs from browser extensions and non-Wikimedia domains — <a href="https://en.wikipedia.org/wiki/Google_Translate">Google Translate</a> for example and browser extensions like <a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/">GreaseMonkey</a> that allow the running of locally written JavaScript. Some of these errors did not have any information about stack traces or the source of the error. The noise of this unfortunately made it difficult to identify real errors, so we decided to exclude any errors without information on their origin. <a href="https://en.wikipedia.org/wiki/If_a_tree_falls_in_a_forest">If a bug falls and nobody knows what file it came from</a>, is it really a bug?</p> <p id="0145">We however decided to defer the filtering of browser extensions and non-Wikimedia sites as this could be taken care of using logstash filtering if needed and it was useful to know, however,<a href="https://phabricator.wikimedia.org/T259383"> a bug has been filed about reconsidering that in the future</a>, potentially sending them to a different channel.</p> <h1 class="wp-block-heading" id="3897">Lesson Three: Some errors are the same</h1> <p id="0f0a">The end-users for the mediawiki.org and Catalan Wikipedia were not fully representative of all our users so a logic next step was to enable bug tracking on one of our larger language projects written in a right to left text script. Hebrew was an obvious choice, as the community there had previously volunteered for <a href="https://wikitech.wikimedia.org/wiki/Heterogeneous_deployment/Train_deploys#Weekly_steps">earlier deployments</a> to help us catch errors before they reach production meaning if we saw client errors there we would have time to block the bug before it could impact other projects.</p> <p id="755e">When we enabled the error tracking on Hebrew Wikipedia, the bump in errors was not as significant as it might have been. We didn’t learn much from this deployment, other than we were getting closer to the finish line. Sometimes a deployment just gives you the validation you need to continue.</p> <p id="1370">After this, we expanded coverage further to Wikimedia Commons, our site for uploading images. As we’ve rolled out further we’ve benefited more from our scale, <a href="https://phabricator.wikimedia.org/T262627">we noticed problems in our post-processing normalization</a>. Some errors are prefixed with “Uncaught” and some are not. For example, the error <code>TypeError: $submitButton.submitOnEnter is not a function</code> is the same as <code>Uncaught TypeError: $submitButton.submitOnEnter is not a function</code> . This meant that similar errors were not being grouped.</p> <p id="26e2">After a month of roll out a significant milestone was reached when our infrastructure surfaced our first deployment blocker not reported by an end-user which was swiftly fixed. Hurray!</p> <h1 class="wp-block-heading" id="a99b">Future voyages</h1> <p id="ae32">The majority of the issues that we are now surfacing relate to user gadgets. User gadgets are a historic artifact of the wiki ecosystem that predates browser extensions which have allowed many editors to self-serve and many of our editors depend on them. Some of these user-written<a href="https://www.mediawiki.org/wiki/Extension:Gadgets#Usage"> gadgets</a> are defaulted to run for all users, including anonymous users, so we have to be careful that as we roll out further we address or communicate with our editors to get those fixes.</p> <p id="5e3a"><a href="https://phabricator.wikimedia.org/T255585">We’ll continue this approach with further wikis, but this will take time.</a> At the time of writing, we are seeing about 60,000 errors a day from 10 <a href="https://meta.wikimedia.org/wiki/Special:SiteMatrix">of the ~1000 sites we maintain</a>.</p> <p id="271d">While hopefully obvious, one thing that’s important is that now we have the ability to identify client-side errors that we use this information to fix bugs and to block deployments where necessary. Just adding the tool is not enough. This requires a lot of socializing the change, which is partly why I am writing this blog post. I have also started attending a weekly triage meeting and including consideration of these errors in our existing triaging processes. My hope is that all teams working on software for our projects will have a workflow for triaging and addressing such bugs without my assistance.</p> <h1 class="wp-block-heading" id="f5bc">Before you jump in on your own project</h1> <p id="b7fa">I’ve linked to the associated tasks for these takeaways so you can see further discussion and implementation details if you are interested.</p> <ul class="wp-block-list"><li>If you are not sure of the number of errors your site will generate, allow yourself an educated guess by counting errors first to get an idea. You could also use page views to restrict the error ingesting to only certain pages.</li><li>Limit the number of errors you track on a single IP. One faulty script from one power user could mislead you and overwhelming your data collection— particularly if it’s in run regularly e.g. using setInterval or a scroll event handler!</li><li><a href="https://phabricator.wikimedia.org/T259383">Make sure you only track errors from domains you care about</a> and consider checking the stack trace for hints that the script originated from Firefox and Chrome extensions or user scripts while logging or post-processing.</li><li>Remember when grouping and filtering errors that some errors may be prefixed with “Uncaught.” <a href="https://phabricator.wikimedia.org/T262627">Normalize your messages</a> before grouping and displaying them in a developer tool.</li><li>Some user scripts will have no associated file URI or stack trace. In my opinion, these are not worth caring about <a href="https://phabricator.wikimedia.org/T259369">so avoid logging them</a>.</li><li>If you load code from external domains these will be anonymized with “<a href="https://sentry.io/answers/javascript-script-error/">Script error</a>”. Try to replicate those issues through exploratory testing or if possible run local mirrors. It may even make sense to filter out those errors.</li><li>Make sure your engineers have workflows for triaging new errors during and after deployments and ensure fixing and slowing down is part of your workflow.</li></ul> <h1 class="wp-block-heading" id="01cd">How volunteers can help</h1> <ul class="wp-block-list"><li>If you are a Wikimedia staff member or volunteer and have sufficient permissions you can use <a href="https://logstash.wikimedia.org/goto/d9d5e96db698692811f64a7a4ca83860">our JavaScript dashboard to help identify and fix bugs</a> caused by gadgets or your own code.</li><li>If you are an editor, you can help make sure errors get the attention they need by doing your part. Please review your <a href="https://www.mediawiki.org/wiki/Manual:Interface/JavaScript#Personal_scripts">user scripts</a> that live on the wikis you frequent. Please blank them if you are not using them, use gadgets if you can, and ensure they are not throwing errors on every page you view.</li></ul> <hr class="wp-block-separator"/> <h2 class="wp-block-heading" id="4e5f">Footnotes</h2> <p id="74f2">¹ for those interested, we eventually diagnosed the increase to relate to a bug in some incorrectly configured code using the <a href="https://en.wikipedia.org/wiki/Mapbox">mapbox library</a> which triggered on slow connections leading errors to be thrown inside a setInterval function in high quantities. The full bug report can be read on https://phabricator.wikimedia.org/T257872<br>² The meeting notes can be found on the Wikimedia etherpad for those interested: https://etherpad.wikimedia.org/p/clients-error-logging<br>³ An example of a gadget that allows users to place comments <em>onto</em> images shown on file description pages can be viewed at <a href="https://commons.wikimedia.org/wiki/Help:Gadget-ImageAnnotator">https://commons.wikimedia.org/wiki/Help:Gadget-ImageAnnotator</a>. The code lives at <a href="https://commons.wikimedia.org/wiki/MediaWiki:Gadget-ImageAnnotator.js">https://commons.wikimedia.org/wiki/MediaWiki:Gadget-ImageAnnotator.js</a></p> <h2 class="wp-block-heading">About this post</h2> <p>This post also appeared on <a href="https://jdlrobson.com/posts/">https://jdlrobson.com/posts/</a></p> <p><strong><em>Featured image credit:</em></strong> <a href="https://commons.wikimedia.org/wiki/File:Christoph_Wolff,_12_years,_scubadiving_at_Crystal_Bat,_Nusa_Penida,_Indonesia.JPG">Christoph Wolff, son of Dr. Michael Wolff, scubadiving at Crystal Bat, Nusa Penida, Indonesia at the age of 12</a>, HenryHiggens, <a href="https://creativecommons.org/licenses/by-sa/3.0/deed.en">CC BY-SA 3.0</a></p> </div> <footer class="entry-meta entry-meta-bottom"> <span class="entry-meta-element tags-links"> <span class="entry-meta-description"> Tagged as: </span> <a href="https://techblog.wikimedia.org/tag/debugging/" rel="tag">debugging</a> <a href="https://techblog.wikimedia.org/tag/javascript/" rel="tag">javascript</a> <a href="https://techblog.wikimedia.org/tag/mobile/" rel="tag">mobile</a></span> </footer> <a class="skip-link screen-reader-text focus-position-static" href="#site-navigation">Skip back to main navigation</a></div> </article> <div id="comments" class="comments-area"> <div class="comments-area-inner"> <div id="respond" class="comment-respond"> <h3 id="reply-title" class="comment-reply-title">Leave a Reply <small><a rel="nofollow" id="cancel-comment-reply-link" href="/2020/09/28/diving-into-wikipedias-ocean-of-errors/#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://techblog.wikimedia.org/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><p class="comment-notes"><span id="email-notes">Your email address will not be published.</span> <span class="required-field-message">Required fields are marked <span class="required">*</span></span></p><p class="comment-form-comment"><label for="comment">Comment <span class="required">*</span></label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required></textarea></p><p class="comment-form-author"><label for="author">Name <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" autocomplete="name" required /></p> <p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required /></p> <p class="comment-form-url"><label for="url">Website</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" autocomplete="url" /></p> <p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Save my name, email, and website in this browser for the next time I comment.</label></p> <p class="comment-subscription-form"><input type="checkbox" name="subscribe_comments" id="subscribe_comments" value="subscribe" style="width: auto; -moz-appearance: checkbox; -webkit-appearance: checkbox;" /> <label class="subscribe-label" id="subscribe-label" for="subscribe_comments">Notify me of follow-up comments by email.</label></p><p class="comment-subscription-form"><input type="checkbox" name="subscribe_blog" id="subscribe_blog" value="subscribe" style="width: auto; -moz-appearance: checkbox; -webkit-appearance: checkbox;" /> <label class="subscribe-label" id="subscribe-blog-label" for="subscribe_blog">Notify me of new posts by email.</label></p><p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='833' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="70dbee428a" /></p><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="161"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div><!-- #respond --> </div> </div><!-- #comments --> <nav class="navigation post-navigation" aria-label="Post navigation"> <h2 class="screen-reader-text">Post navigation</h2> <div class="nav-links"><div class="nav-previous"><a href="https://techblog.wikimedia.org/2020/09/24/wikimedias-event-data-platform-event-intake/" rel="prev"><span class="label">Previous Post</span> <span class="title">Wikimedia’s Event Data Platform – Event Intake</span></a></div><div class="nav-next"><a href="https://techblog.wikimedia.org/2020/09/29/one-year-of-small-wiki-toolkits-initiative-and-more-to-come/" rel="next"><span class="label">Next Post</span> <span class="title">One year of Small Wiki Toolkits initiative–and more to come!</span></a></div></div> </nav><style id="post-navigation-css" type="text/css">.post-navigation .nav-previous a { background-image: url("https://techblog.wikimedia.org/wp-content/uploads/2020/09/1024px-Arreton_Down_stile.jpg?w=1000"); }.post-navigation .nav-next a { background-image: url("https://techblog.wikimedia.org/wp-content/uploads/2020/09/1200px-WikiArabia_19_341.jpg?w=1000"); }</style> </main><!-- /#main --> </div><!-- /#primary --> </div><!-- /.site-content-inner --> </div><!-- /#content --> <footer id="colophon" class="site-footer"> <div class="site-footer-area footer-area-footer-widgets"> <div class="footer-widgets-inner site-footer-area-inner"> <aside id="footer-widgets" class="widget-area footer-widgets" aria-label="Footer widgets"> <section id="media_image-3" class="widget widget_media_image"><a href="https://wikimediafoundation.org/"><img width="128" height="96" src="https://techblog.wikimedia.org/wp-content/uploads/2020/03/128px-Wikimedia_Foundation_logo_-_vertical.svg_.png?w=128" class="image wp-image-136 attachment-128x96 size-128x96" alt="Wikimedia Foundation Logo" style="max-width: 100%; height: auto;" decoding="async" loading="lazy" data-attachment-id="136" data-permalink="https://techblog.wikimedia.org/128px-wikimedia_foundation_logo_-_vertical-svg/" data-orig-file="https://techblog.wikimedia.org/wp-content/uploads/2020/03/128px-Wikimedia_Foundation_logo_-_vertical.svg_.png" data-orig-size="128,96" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="128px-Wikimedia_Foundation_logo_-_vertical.svg" data-image-description="" data-image-caption="" data-medium-file="https://techblog.wikimedia.org/wp-content/uploads/2020/03/128px-Wikimedia_Foundation_logo_-_vertical.svg_.png?w=128" data-large-file="https://techblog.wikimedia.org/wp-content/uploads/2020/03/128px-Wikimedia_Foundation_logo_-_vertical.svg_.png?w=128" /></a></section><section id="text-6" class="widget widget_text"> <div class="textwidget"><p><a href="https://wikimediafoundation.org/privacy-policy/">Privacy Policy</a> | <a href="https://techblog.wikimedia.org/about/">About</a></p> </div> </section><section id="text-11" class="widget widget_text"> <div class="textwidget"><p><a class="footer-text-link" href="https://en.wikipedia.org/wiki/Wikipedia:About">Wikipedia®</a> and other Wikimedia project names and logos are <a class="footer-text-link" href="https://wikimediafoundation.org/wiki/Trademark_policy">registered trademarks of the Wikimedia Foundation</a>, a non-profit organization.</p> </div> </section><section id="text-8" class="widget widget_text"> <div class="textwidget"><p>Unless otherwise stated content is licensed under a <a href="https://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0 international license</a>.</p> </div> </section><section id="text-9" class="widget widget_text"> <div class="textwidget"><p>Powered by <a class="powered-by-wpcom" href="https://wpvip.com/?utm_source=vip_powered_wpcom&utm_medium=web&utm_campaign=VIP%20Footer%20Credit&utm_term=policy.wikimedia.org" rel="generator nofollow">WordPress.com VIP</a>, <a class="footer-text-link" href="https://automattic.com/privacy-notice/">Automattic Privacy Notice</a>.</p> </div> </section><section id="text-7" class="widget widget_text"> <div class="textwidget"><p>Learn more about the<br /> <a class="footer-text-link" href="https://wikimediafoundation.org/wiki/Home">Wikimedia Foundation</a></p> </div> </section><section id="custom_html-3" class="widget_text widget widget_custom_html"><div class="textwidget custom-html-widget"><a href="http://twitter.com/wikimediatech">Follow us on Twitter @wikimediatech</a> </div></section> </aside> </div> </div> </footer> </div><!-- /#page --> <div id="jp-carousel-loading-overlay"> <div id="jp-carousel-loading-wrapper"> <span id="jp-carousel-library-loading"> </span> </div> </div> <div class="jp-carousel-overlay" style="display: none;"> <div class="jp-carousel-container"> <!-- The Carousel Swiper --> <div class="jp-carousel-wrap swiper-container jp-carousel-swiper-container jp-carousel-transitions" itemscope itemtype="https://schema.org/ImageGallery"> <div class="jp-carousel swiper-wrapper"></div> <div class="jp-swiper-button-prev swiper-button-prev"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskPrev" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="9" height="12"> <path d="M16.2072 16.59L11.6496 12L16.2072 7.41L14.8041 6L8.8335 12L14.8041 18L16.2072 16.59Z" fill="white"/> </mask> <g mask="url(#maskPrev)"> <rect x="0.579102" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> </div> <div class="jp-swiper-button-next swiper-button-next"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskNext" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="8" height="12"> <path d="M8.59814 16.59L13.1557 12L8.59814 7.41L10.0012 6L15.9718 12L10.0012 18L8.59814 16.59Z" fill="white"/> </mask> <g mask="url(#maskNext)"> <rect x="0.34375" width="23.8822" height="24" fill="#FFFFFF"/> </g> </svg> </div> </div> <!-- The main close buton --> <div class="jp-carousel-close-hint"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskClose" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="5" width="15" height="14"> <path d="M19.3166 6.41L17.9135 5L12.3509 10.59L6.78834 5L5.38525 6.41L10.9478 12L5.38525 17.59L6.78834 19L12.3509 13.41L17.9135 19L19.3166 17.59L13.754 12L19.3166 6.41Z" fill="white"/> </mask> <g mask="url(#maskClose)"> <rect x="0.409668" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> </div> <!-- Image info, comments and meta --> <div class="jp-carousel-info"> <div class="jp-carousel-info-footer"> <div class="jp-carousel-pagination-container"> <div class="jp-swiper-pagination swiper-pagination"></div> <div class="jp-carousel-pagination"></div> </div> <div class="jp-carousel-photo-title-container"> <h2 class="jp-carousel-photo-caption"></h2> </div> <div class="jp-carousel-photo-icons-container"> <a href="#" class="jp-carousel-icon-btn jp-carousel-icon-info" aria-label="Toggle photo metadata visibility"> <span class="jp-carousel-icon"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskInfo" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12.7537 2C7.26076 2 2.80273 6.48 2.80273 12C2.80273 17.52 7.26076 22 12.7537 22C18.2466 22 22.7046 17.52 22.7046 12C22.7046 6.48 18.2466 2 12.7537 2ZM11.7586 7V9H13.7488V7H11.7586ZM11.7586 11V17H13.7488V11H11.7586ZM4.79292 12C4.79292 16.41 8.36531 20 12.7537 20C17.142 20 20.7144 16.41 20.7144 12C20.7144 7.59 17.142 4 12.7537 4C8.36531 4 4.79292 7.59 4.79292 12Z" fill="white"/> </mask> <g mask="url(#maskInfo)"> <rect x="0.8125" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> </span> </a> </div> </div> <div class="jp-carousel-info-extra"> <div class="jp-carousel-info-content-wrapper"> <div class="jp-carousel-photo-title-container"> <h2 class="jp-carousel-photo-title"></h2> </div> <div class="jp-carousel-comments-wrapper"> </div> <div class="jp-carousel-image-meta"> <div class="jp-carousel-title-and-caption"> <div class="jp-carousel-photo-info"> <h3 class="jp-carousel-caption" itemprop="caption description"></h3> </div> <div class="jp-carousel-photo-description"></div> </div> <ul class="jp-carousel-image-exif" style="display: none;"></ul> <a class="jp-carousel-image-download" href="#" target="_blank" style="display: none;"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="19" height="18"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.84615 5V19H19.7775V12H21.7677V19C21.7677 20.1 20.8721 21 19.7775 21H5.84615C4.74159 21 3.85596 20.1 3.85596 19V5C3.85596 3.9 4.74159 3 5.84615 3H12.8118V5H5.84615ZM14.802 5V3H21.7677V10H19.7775V6.41L9.99569 16.24L8.59261 14.83L18.3744 5H14.802Z" fill="white"/> </mask> <g mask="url(#mask0)"> <rect x="0.870605" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> <span class="jp-carousel-download-text"></span> </a> <div class="jp-carousel-image-map" style="display: none;"></div> </div> </div> </div> </div> </div> </div> <link rel='stylesheet' id='all-css-0' href='https://techblog.wikimedia.org/_static/??-eJydzE0KgCAQQOELpZMpRovoLGZDWP7ROHT9aNEF2r4HH9xV+JIb5gaJRY28h0xwYKvOn0IZ2UMqG0ck8O4qTBiB7lDxEivnLaL0RB38Yb77hVda0qxGPVhj9aQe4oQ4gg==' type='text/css' media='all' /> <script type="text/javascript" id="jetpack-portfolio-theme-supports-js-after"> /* <![CDATA[ */ const jetpack_portfolio_theme_supports = false /* ]]> */ </script> <script type="text/javascript" id="modern-skip-link-focus-fix-js-extra"> /* <![CDATA[ */ var $modernBreakpoints = {"s":"448","m":"672","l":"880","xl":"1280","xxl":"1600","xxxl":"1920","xxxxl":"2560"}; /* ]]> */ </script> <script type="text/javascript" id="jetpack-carousel-js-extra"> /* <![CDATA[ */ var jetpackSwiperLibraryPath = {"url":"https:\/\/techblog.wikimedia.org\/wp-content\/mu-plugins\/jetpack-14.0\/_inc\/build\/carousel\/swiper-bundle.min.js"}; var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"https:\/\/techblog.wikimedia.org\/wp-admin\/admin-ajax.php","nonce":"76e282cc7d","display_exif":"1","display_comments":"0","single_image_gallery":"1","single_image_gallery_media_file":"","background_color":"black","comment":"Comment","post_comment":"Post Comment","write_comment":"Write a Comment...","loading_comments":"Loading Comments...","image_label":"Open image in full-screen.","download_original":"View full size <span class=\"photo-size\">{0}<span class=\"photo-size-times\">\u00d7<\/span>{1}<\/span>","no_comment_text":"Please be sure to submit some text with your comment.","no_comment_email":"Please provide an email address to comment.","no_comment_author":"Please provide your name to comment.","comment_post_error":"Sorry, but there was an error posting your comment. Please try again later.","comment_approved":"Your comment was approved.","comment_unapproved":"Your comment is in moderation.","camera":"Camera","aperture":"Aperture","shutter_speed":"Shutter Speed","focal_length":"Focal Length","copyright":"Copyright","comment_registration":"0","require_name_email":"1","login_url":"https:\/\/techblog.wikimedia.org\/wp-login.php?redirect_to=https%3A%2F%2Ftechblog.wikimedia.org%2F2020%2F09%2F28%2Fdiving-into-wikipedias-ocean-of-errors%2F","blog_id":"1","meta_data":["camera","aperture","shutter_speed","focal_length","copyright"]}; /* ]]> */ </script> <script type="text/javascript" src="https://techblog.wikimedia.org/_static/??-eJylj9FOwzAMRX+INJRNQzwgPgW5iVvcxnGIE6B/v2pbEUKdNMRT5Pica9t+JuMkFozFljdkVMviMUcLqljUjmp1omQCxcn04qqanr6aUe/sLarLlIqaCB80QCGJBpxDVeooUJn/kcOyROAaQNGF6vEEE8OAGgQ8+oYpbjEMKjHP19rje8U8X55mA7514VX9ozYE6SD8triaFOpAcWGxJHCTaffNvX1dVrddpeCtgyxVMXwD68e1S50wL9kmYwqbF/4YChMpYznPuxSmzyfQL94LP7ePu4fD/rB7ascj0ZniIg==" ></script><svg style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" > <defs> <symbol id="social-icon-behance" viewBox="0 0 37 32"> <path d="M33 6.054h-9.125v2.214h9.125v-2.214zM28.5 13.661q-1.607 0-2.607 0.938t-1.107 2.545h7.286q-0.321-3.482-3.571-3.482zM28.786 24.107q1.125 0 2.179-0.571t1.357-1.554h3.946q-1.786 5.482-7.625 5.482-3.821 0-6.080-2.357t-2.259-6.196q0-3.714 2.33-6.17t6.009-2.455q2.464 0 4.295 1.214t2.732 3.196 0.902 4.429q0 0.304-0.036 0.839h-11.75q0 1.982 1.027 3.063t2.973 1.080zM4.946 23.214h5.286q3.661 0 3.661-2.982 0-3.214-3.554-3.214h-5.393v6.196zM4.946 13.625h5.018q1.393 0 2.205-0.652t0.813-2.027q0-2.571-3.393-2.571h-4.643v5.25zM0 4.536h10.607q1.554 0 2.768 0.25t2.259 0.848 1.607 1.723 0.563 2.75q0 3.232-3.071 4.696 2.036 0.571 3.071 2.054t1.036 3.643q0 1.339-0.438 2.438t-1.179 1.848-1.759 1.268-2.161 0.75-2.393 0.232h-10.911v-22.5z"></path> </symbol> <symbol id="social-icon-bitbucket" viewBox="0 0 22 28"> <path d="M12.734 13.422c0.172 1.312-1.422 2.344-2.531 1.672-1.25-0.547-1.25-2.531-0.031-3.094 1.047-0.641 2.562 0.203 2.562 1.422zM14.469 13.094c-0.281-2.219-2.797-3.687-4.844-2.766-1.297 0.578-2.172 1.953-2.109 3.406 0.078 1.906 1.891 3.469 3.797 3.297s3.391-2.031 3.156-3.938zM18.203 4.625c-0.688-0.906-1.859-1.062-2.891-1.234-2.922-0.469-5.922-0.484-8.844 0.031-0.969 0.156-2.063 0.328-2.672 1.203 1 0.938 2.422 1.078 3.703 1.234 2.312 0.297 4.688 0.313 7 0.016 1.297-0.156 2.734-0.281 3.703-1.25zM19.094 20.797c-0.438 1.531-0.187 3.594-1.813 4.484-2.797 1.547-6.188 1.719-9.266 1.172-1.625-0.297-3.531-0.812-4.422-2.344-0.391-1.5-0.641-3.031-0.891-4.562l0.094-0.25 0.281-0.141c4.656 3.078 11.172 3.078 15.844 0 0.734 0.219 0.187 1.109 0.172 1.641zM21.922 5.781c-0.531 3.422-1.141 6.828-1.734 10.234-0.172 1-1.141 1.563-1.953 1.984-2.922 1.469-6.328 1.719-9.531 1.375-2.172-0.234-4.391-0.812-6.156-2.172-0.828-0.641-0.828-1.734-0.984-2.656-0.547-3.203-1.172-6.406-1.563-9.641 0.187-1.406 1.766-2.016 2.938-2.453 1.563-0.578 3.234-0.844 4.891-1 3.531-0.344 7.141-0.219 10.563 0.781 1.219 0.359 2.531 0.859 3.359 1.906 0.375 0.484 0.25 1.094 0.172 1.641z"></path> </symbol> <symbol id="social-icon-chain" viewBox="0 0 30 32"> <path d="M26 21.714q0-0.714-0.5-1.214l-3.714-3.714q-0.5-0.5-1.214-0.5-0.75 0-1.286 0.571 0.054 0.054 0.339 0.33t0.384 0.384 0.268 0.339 0.232 0.455 0.063 0.491q0 0.714-0.5 1.214t-1.214 0.5q-0.268 0-0.491-0.063t-0.455-0.232-0.339-0.268-0.384-0.384-0.33-0.339q-0.589 0.554-0.589 1.304 0 0.714 0.5 1.214l3.679 3.696q0.482 0.482 1.214 0.482 0.714 0 1.214-0.464l2.625-2.607q0.5-0.5 0.5-1.196zM13.446 9.125q0-0.714-0.5-1.214l-3.679-3.696q-0.5-0.5-1.214-0.5-0.696 0-1.214 0.482l-2.625 2.607q-0.5 0.5-0.5 1.196 0 0.714 0.5 1.214l3.714 3.714q0.482 0.482 1.214 0.482 0.75 0 1.286-0.554-0.054-0.054-0.339-0.33t-0.384-0.384-0.268-0.339-0.232-0.455-0.063-0.491q0-0.714 0.5-1.214t1.214-0.5q0.268 0 0.491 0.063t0.455 0.232 0.339 0.268 0.384 0.384 0.33 0.339q0.589-0.554 0.589-1.304zM29.429 21.714q0 2.143-1.518 3.625l-2.625 2.607q-1.482 1.482-3.625 1.482-2.161 0-3.643-1.518l-3.679-3.696q-1.482-1.482-1.482-3.625 0-2.196 1.571-3.732l-1.571-1.571q-1.536 1.571-3.714 1.571-2.143 0-3.643-1.5l-3.714-3.714q-1.5-1.5-1.5-3.643t1.518-3.625l2.625-2.607q1.482-1.482 3.625-1.482 2.161 0 3.643 1.518l3.679 3.696q1.482 1.482 1.482 3.625 0 2.196-1.571 3.732l1.571 1.571q1.536-1.571 3.714-1.571 2.143 0 3.643 1.5l3.714 3.714q1.5 1.5 1.5 3.643z"></path> </symbol> <symbol id="social-icon-codepen" viewBox="0 0 32 32"> <path d="M3.857 20.875l10.768 7.179v-6.411l-5.964-3.982zM2.75 18.304l3.446-2.304-3.446-2.304v4.607zM17.375 28.054l10.768-7.179-4.804-3.214-5.964 3.982v6.411zM16 19.25l4.857-3.25-4.857-3.25-4.857 3.25zM8.661 14.339l5.964-3.982v-6.411l-10.768 7.179zM25.804 16l3.446 2.304v-4.607zM23.339 14.339l4.804-3.214-10.768-7.179v6.411zM32 11.125v9.75q0 0.732-0.607 1.143l-14.625 9.75q-0.375 0.232-0.768 0.232t-0.768-0.232l-14.625-9.75q-0.607-0.411-0.607-1.143v-9.75q0-0.732 0.607-1.143l14.625-9.75q0.375-0.232 0.768-0.232t0.768 0.232l14.625 9.75q0.607 0.411 0.607 1.143z"></path> </symbol> <symbol id="social-icon-deviantart" viewBox="0 0 18 32"> <path d="M18.286 5.411l-5.411 10.393 0.429 0.554h4.982v7.411h-9.054l-0.786 0.536-2.536 4.875-0.536 0.536h-5.375v-5.411l5.411-10.411-0.429-0.536h-4.982v-7.411h9.054l0.786-0.536 2.536-4.875 0.536-0.536h5.375v5.411z"></path> </symbol> <symbol id="social-icon-digg" viewBox="0 0 37 32"> <path d="M5.857 5.036h3.643v17.554h-9.5v-12.446h5.857v-5.107zM5.857 19.661v-6.589h-2.196v6.589h2.196zM10.964 10.143v12.446h3.661v-12.446h-3.661zM10.964 5.036v3.643h3.661v-3.643h-3.661zM16.089 10.143h9.518v16.821h-9.518v-2.911h5.857v-1.464h-5.857v-12.446zM21.946 19.661v-6.589h-2.196v6.589h2.196zM27.071 10.143h9.5v16.821h-9.5v-2.911h5.839v-1.464h-5.839v-12.446zM32.911 19.661v-6.589h-2.196v6.589h2.196z"></path> </symbol> <symbol id="social-icon-dockerhub" viewBox="0 0 24 28"> <path d="M1.597 10.257h2.911v2.83H1.597v-2.83zm3.573 0h2.91v2.83H5.17v-2.83zm0-3.627h2.91v2.829H5.17V6.63zm3.57 3.627h2.912v2.83H8.74v-2.83zm0-3.627h2.912v2.829H8.74V6.63zm3.573 3.627h2.911v2.83h-2.911v-2.83zm0-3.627h2.911v2.829h-2.911V6.63zm3.572 3.627h2.911v2.83h-2.911v-2.83zM12.313 3h2.911v2.83h-2.911V3zm-6.65 14.173c-.449 0-.812.354-.812.788 0 .435.364.788.812.788.447 0 .811-.353.811-.788 0-.434-.363-.788-.811-.788"></path> <path d="M28.172 11.721c-.978-.549-2.278-.624-3.388-.306-.136-1.146-.91-2.149-1.83-2.869l-.366-.286-.307.345c-.618.692-.8 1.845-.718 2.73.063.651.273 1.312.685 1.834-.313.183-.668.328-.985.434-.646.212-1.347.33-2.028.33H.083l-.042.429c-.137 1.432.065 2.866.674 4.173l.262.519.03.048c1.8 2.973 4.963 4.225 8.41 4.225 6.672 0 12.174-2.896 14.702-9.015 1.689.085 3.417-.4 4.243-1.968l.211-.4-.401-.223zM5.664 19.458c-.85 0-1.542-.671-1.542-1.497 0-.825.691-1.498 1.541-1.498.849 0 1.54.672 1.54 1.497s-.69 1.498-1.539 1.498z"></path> </symbol> <symbol id="social-icon-dribbble" viewBox="0 0 27 32"> <path d="M18.286 26.786q-0.75-4.304-2.5-8.893h-0.036l-0.036 0.018q-0.286 0.107-0.768 0.295t-1.804 0.875-2.446 1.464-2.339 2.045-1.839 2.643l-0.268-0.196q3.286 2.679 7.464 2.679 2.357 0 4.571-0.929zM14.982 15.946q-0.375-0.875-0.946-1.982-5.554 1.661-12.018 1.661-0.018 0.125-0.018 0.375 0 2.214 0.786 4.223t2.214 3.598q0.893-1.589 2.205-2.973t2.545-2.223 2.33-1.446 1.777-0.857l0.661-0.232q0.071-0.018 0.232-0.063t0.232-0.080zM13.071 12.161q-2.143-3.804-4.357-6.75-2.464 1.161-4.179 3.321t-2.286 4.857q5.393 0 10.821-1.429zM25.286 17.857q-3.75-1.071-7.304-0.518 1.554 4.268 2.286 8.375 1.982-1.339 3.304-3.384t1.714-4.473zM10.911 4.625q-0.018 0-0.036 0.018 0.018-0.018 0.036-0.018zM21.446 7.214q-3.304-2.929-7.732-2.929-1.357 0-2.768 0.339 2.339 3.036 4.393 6.821 1.232-0.464 2.321-1.080t1.723-1.098 1.17-1.018 0.67-0.723zM25.429 15.875q-0.054-4.143-2.661-7.321l-0.018 0.018q-0.161 0.214-0.339 0.438t-0.777 0.795-1.268 1.080-1.786 1.161-2.348 1.152q0.446 0.946 0.786 1.696 0.036 0.107 0.116 0.313t0.134 0.295q0.643-0.089 1.33-0.125t1.313-0.036 1.232 0.027 1.143 0.071 1.009 0.098 0.857 0.116 0.652 0.107 0.446 0.080zM27.429 16q0 3.732-1.839 6.884t-4.991 4.991-6.884 1.839-6.884-1.839-4.991-4.991-1.839-6.884 1.839-6.884 4.991-4.991 6.884-1.839 6.884 1.839 4.991 4.991 1.839 6.884z"></path> </symbol> <symbol id="social-icon-dropbox" viewBox="0 0 32 32"> <path d="M7.179 12.625l8.821 5.446-6.107 5.089-8.75-5.696zM24.786 22.536v1.929l-8.75 5.232v0.018l-0.018-0.018-0.018 0.018v-0.018l-8.732-5.232v-1.929l2.625 1.714 6.107-5.071v-0.036l0.018 0.018 0.018-0.018v0.036l6.125 5.071zM9.893 2.107l6.107 5.089-8.821 5.429-6.036-4.821zM24.821 12.625l6.036 4.839-8.732 5.696-6.125-5.089zM22.125 2.107l8.732 5.696-6.036 4.821-8.821-5.429z"></path> </symbol> <symbol id="social-icon-envelope" viewBox="0 0 32 32"> <path d="M29.714 26.857v-13.714q-0.571 0.643-1.232 1.179-4.786 3.679-7.607 6.036-0.911 0.768-1.482 1.196t-1.545 0.866-1.83 0.438h-0.036q-0.857 0-1.83-0.438t-1.545-0.866-1.482-1.196q-2.821-2.357-7.607-6.036-0.661-0.536-1.232-1.179v13.714q0 0.232 0.17 0.402t0.402 0.17h26.286q0.232 0 0.402-0.17t0.17-0.402zM29.714 8.089v-0.438t-0.009-0.232-0.054-0.223-0.098-0.161-0.161-0.134-0.25-0.045h-26.286q-0.232 0-0.402 0.17t-0.17 0.402q0 3 2.625 5.071 3.446 2.714 7.161 5.661 0.107 0.089 0.625 0.527t0.821 0.67 0.795 0.563 0.902 0.491 0.768 0.161h0.036q0.357 0 0.768-0.161t0.902-0.491 0.795-0.563 0.821-0.67 0.625-0.527q3.714-2.946 7.161-5.661 0.964-0.768 1.795-2.063t0.83-2.348zM32 7.429v19.429q0 1.179-0.839 2.018t-2.018 0.839h-26.286q-1.179 0-2.018-0.839t-0.839-2.018v-19.429q0-1.179 0.839-2.018t2.018-0.839h26.286q1.179 0 2.018 0.839t0.839 2.018z"></path> </symbol> <symbol id="social-icon-facebook" viewBox="0 0 19 32"> <path d="M17.125 0.214v4.714h-2.804q-1.536 0-2.071 0.643t-0.536 1.929v3.375h5.232l-0.696 5.286h-4.536v13.554h-5.464v-13.554h-4.554v-5.286h4.554v-3.893q0-3.321 1.857-5.152t4.946-1.83q2.625 0 4.071 0.214z"></path> </symbol> <symbol id="social-icon-flickr" viewBox="0 0 27 32"> <path d="M22.286 2.286q2.125 0 3.634 1.509t1.509 3.634v17.143q0 2.125-1.509 3.634t-3.634 1.509h-17.143q-2.125 0-3.634-1.509t-1.509-3.634v-17.143q0-2.125 1.509-3.634t3.634-1.509h17.143zM12.464 16q0-1.571-1.107-2.679t-2.679-1.107-2.679 1.107-1.107 2.679 1.107 2.679 2.679 1.107 2.679-1.107 1.107-2.679zM22.536 16q0-1.571-1.107-2.679t-2.679-1.107-2.679 1.107-1.107 2.679 1.107 2.679 2.679 1.107 2.679-1.107 1.107-2.679z"></path> </symbol> <symbol id="social-icon-foursquare" viewBox="0 0 23 32"> <path d="M17.857 7.75l0.661-3.464q0.089-0.411-0.161-0.714t-0.625-0.304h-12.714q-0.411 0-0.688 0.304t-0.277 0.661v19.661q0 0.125 0.107 0.018l5.196-6.286q0.411-0.464 0.679-0.598t0.857-0.134h4.268q0.393 0 0.661-0.259t0.321-0.527q0.429-2.321 0.661-3.411 0.071-0.375-0.205-0.714t-0.652-0.339h-5.25q-0.518 0-0.857-0.339t-0.339-0.857v-0.75q0-0.518 0.339-0.848t0.857-0.33h6.179q0.321 0 0.625-0.241t0.357-0.527zM21.911 3.786q-0.268 1.304-0.955 4.759t-1.241 6.25-0.625 3.098q-0.107 0.393-0.161 0.58t-0.25 0.58-0.438 0.589-0.688 0.375-1.036 0.179h-4.839q-0.232 0-0.393 0.179-0.143 0.161-7.607 8.821-0.393 0.446-1.045 0.509t-0.866-0.098q-0.982-0.393-0.982-1.75v-25.179q0-0.982 0.679-1.83t2.143-0.848h15.857q1.696 0 2.268 0.946t0.179 2.839zM21.911 3.786l-2.821 14.107q0.071-0.304 0.625-3.098t1.241-6.25 0.955-4.759z"></path> </symbol> <symbol id="social-icon-get-pocket" viewBox="0 0 31 32"> <path d="M27.946 2.286q1.161 0 1.964 0.813t0.804 1.973v9.268q0 3.143-1.214 6t-3.259 4.911-4.893 3.259-5.973 1.205q-3.143 0-5.991-1.205t-4.902-3.259-3.268-4.911-1.214-6v-9.268q0-1.143 0.821-1.964t1.964-0.821h25.161zM15.375 21.286q0.839 0 1.464-0.589l7.214-6.929q0.661-0.625 0.661-1.518 0-0.875-0.616-1.491t-1.491-0.616q-0.839 0-1.464 0.589l-5.768 5.536-5.768-5.536q-0.625-0.589-1.446-0.589-0.875 0-1.491 0.616t-0.616 1.491q0 0.911 0.643 1.518l7.232 6.929q0.589 0.589 1.446 0.589z"></path> </symbol> <symbol id="social-icon-github" viewBox="0 0 27 32"> <path d="M13.714 2.286q3.732 0 6.884 1.839t4.991 4.991 1.839 6.884q0 4.482-2.616 8.063t-6.759 4.955q-0.482 0.089-0.714-0.125t-0.232-0.536q0-0.054 0.009-1.366t0.009-2.402q0-1.732-0.929-2.536 1.018-0.107 1.83-0.321t1.679-0.696 1.446-1.188 0.946-1.875 0.366-2.688q0-2.125-1.411-3.679 0.661-1.625-0.143-3.643-0.5-0.161-1.446 0.196t-1.643 0.786l-0.679 0.429q-1.661-0.464-3.429-0.464t-3.429 0.464q-0.286-0.196-0.759-0.482t-1.491-0.688-1.518-0.241q-0.804 2.018-0.143 3.643-1.411 1.554-1.411 3.679 0 1.518 0.366 2.679t0.938 1.875 1.438 1.196 1.679 0.696 1.83 0.321q-0.696 0.643-0.875 1.839-0.375 0.179-0.804 0.268t-1.018 0.089-1.17-0.384-0.991-1.116q-0.339-0.571-0.866-0.929t-0.884-0.429l-0.357-0.054q-0.375 0-0.518 0.080t-0.089 0.205 0.161 0.25 0.232 0.214l0.125 0.089q0.393 0.179 0.777 0.679t0.563 0.911l0.179 0.411q0.232 0.679 0.786 1.098t1.196 0.536 1.241 0.125 0.991-0.063l0.411-0.071q0 0.679 0.009 1.58t0.009 0.973q0 0.321-0.232 0.536t-0.714 0.125q-4.143-1.375-6.759-4.955t-2.616-8.063q0-3.732 1.839-6.884t4.991-4.991 6.884-1.839zM5.196 21.982q0.054-0.125-0.125-0.214-0.179-0.054-0.232 0.036-0.054 0.125 0.125 0.214 0.161 0.107 0.232-0.036zM5.75 22.589q0.125-0.089-0.036-0.286-0.179-0.161-0.286-0.054-0.125 0.089 0.036 0.286 0.179 0.179 0.286 0.054zM6.286 23.393q0.161-0.125 0-0.339-0.143-0.232-0.304-0.107-0.161 0.089 0 0.321t0.304 0.125zM7.036 24.143q0.143-0.143-0.071-0.339-0.214-0.214-0.357-0.054-0.161 0.143 0.071 0.339 0.214 0.214 0.357 0.054zM8.054 24.589q0.054-0.196-0.232-0.286-0.268-0.071-0.339 0.125t0.232 0.268q0.268 0.107 0.339-0.107zM9.179 24.679q0-0.232-0.304-0.196-0.286 0-0.286 0.196 0 0.232 0.304 0.196 0.286 0 0.286-0.196zM10.214 24.5q-0.036-0.196-0.321-0.161-0.286 0.054-0.25 0.268t0.321 0.143 0.25-0.25z"></path> </symbol> <symbol id="social-icon-google" viewBox="0 0 27 32"> <path d="M13.714 14.036h12.946c0.125 0.696 0.214 1.375 0.214 2.286 0 7.821-5.25 13.393-13.161 13.393-7.589 0-13.714-6.125-13.714-13.714s6.125-13.714 13.714-13.714c3.696 0 6.804 1.357 9.196 3.589l-3.732 3.589c-1.018-0.982-2.804-2.125-5.464-2.125-4.679 0-8.5 3.875-8.5 8.661s3.821 8.661 8.5 8.661c5.429 0 7.464-3.893 7.786-5.911h-7.786v-4.714z"></path> </symbol> <symbol id="social-icon-google-plus" viewBox="0 0 41 32"> <path d="M25.661 16.304q0 3.714-1.554 6.616t-4.429 4.536-6.589 1.634q-2.661 0-5.089-1.036t-4.179-2.786-2.786-4.179-1.036-5.089 1.036-5.089 2.786-4.179 4.179-2.786 5.089-1.036q5.107 0 8.768 3.429l-3.554 3.411q-2.089-2.018-5.214-2.018-2.196 0-4.063 1.107t-2.955 3.009-1.089 4.152 1.089 4.152 2.955 3.009 4.063 1.107q1.482 0 2.723-0.411t2.045-1.027 1.402-1.402 0.875-1.482 0.384-1.321h-7.429v-4.5h12.357q0.214 1.125 0.214 2.179zM41.143 14.125v3.75h-3.732v3.732h-3.75v-3.732h-3.732v-3.75h3.732v-3.732h3.75v3.732h3.732z"></path> </symbol> <symbol id="social-icon-instagram" viewBox="0 0 27 32"> <path d="M18.286 16q0-1.893-1.339-3.232t-3.232-1.339-3.232 1.339-1.339 3.232 1.339 3.232 3.232 1.339 3.232-1.339 1.339-3.232zM20.75 16q0 2.929-2.054 4.982t-4.982 2.054-4.982-2.054-2.054-4.982 2.054-4.982 4.982-2.054 4.982 2.054 2.054 4.982zM22.679 8.679q0 0.679-0.482 1.161t-1.161 0.482-1.161-0.482-0.482-1.161 0.482-1.161 1.161-0.482 1.161 0.482 0.482 1.161zM13.714 4.75q-0.125 0-1.366-0.009t-1.884 0-1.723 0.054-1.839 0.179-1.277 0.33q-0.893 0.357-1.571 1.036t-1.036 1.571q-0.196 0.518-0.33 1.277t-0.179 1.839-0.054 1.723 0 1.884 0.009 1.366-0.009 1.366 0 1.884 0.054 1.723 0.179 1.839 0.33 1.277q0.357 0.893 1.036 1.571t1.571 1.036q0.518 0.196 1.277 0.33t1.839 0.179 1.723 0.054 1.884 0 1.366-0.009 1.366 0.009 1.884 0 1.723-0.054 1.839-0.179 1.277-0.33q0.893-0.357 1.571-1.036t1.036-1.571q0.196-0.518 0.33-1.277t0.179-1.839 0.054-1.723 0-1.884-0.009-1.366 0.009-1.366 0-1.884-0.054-1.723-0.179-1.839-0.33-1.277q-0.357-0.893-1.036-1.571t-1.571-1.036q-0.518-0.196-1.277-0.33t-1.839-0.179-1.723-0.054-1.884 0-1.366 0.009zM27.429 16q0 4.089-0.089 5.661-0.179 3.714-2.214 5.75t-5.75 2.214q-1.571 0.089-5.661 0.089t-5.661-0.089q-3.714-0.179-5.75-2.214t-2.214-5.75q-0.089-1.571-0.089-5.661t0.089-5.661q0.179-3.714 2.214-5.75t5.75-2.214q1.571-0.089 5.661-0.089t5.661 0.089q3.714 0.179 5.75 2.214t2.214 5.75q0.089 1.571 0.089 5.661z"></path> </symbol> <symbol id="social-icon-linkedin" viewBox="0 0 27 32"> <path d="M6.232 11.161v17.696h-5.893v-17.696h5.893zM6.607 5.696q0.018 1.304-0.902 2.179t-2.42 0.875h-0.036q-1.464 0-2.357-0.875t-0.893-2.179q0-1.321 0.92-2.188t2.402-0.866 2.375 0.866 0.911 2.188zM27.429 18.714v10.143h-5.875v-9.464q0-1.875-0.723-2.938t-2.259-1.063q-1.125 0-1.884 0.616t-1.134 1.527q-0.196 0.536-0.196 1.446v9.875h-5.875q0.036-7.125 0.036-11.554t-0.018-5.286l-0.018-0.857h5.875v2.571h-0.036q0.357-0.571 0.732-1t1.009-0.929 1.554-0.777 2.045-0.277q3.054 0 4.911 2.027t1.857 5.938z"></path> </symbol> <symbol id="social-icon-medium" viewBox="0 0 32 32"> <path d="M10.661 7.518v20.946q0 0.446-0.223 0.759t-0.652 0.313q-0.304 0-0.589-0.143l-8.304-4.161q-0.375-0.179-0.634-0.598t-0.259-0.83v-20.357q0-0.357 0.179-0.607t0.518-0.25q0.25 0 0.786 0.268l9.125 4.571q0.054 0.054 0.054 0.089zM11.804 9.321l9.536 15.464-9.536-4.75v-10.714zM32 9.643v18.821q0 0.446-0.25 0.723t-0.679 0.277-0.839-0.232l-7.875-3.929zM31.946 7.5q0 0.054-4.58 7.491t-5.366 8.705l-6.964-11.321 5.786-9.411q0.304-0.5 0.929-0.5 0.25 0 0.464 0.107l9.661 4.821q0.071 0.036 0.071 0.107z"></path> </symbol> <symbol id="social-icon-paypal" viewBox="0 0 24 28"> <path d="M23.734 10.094v0c0.203 0.938 0.156 2.016-0.063 3.187-1.016 5.156-4.438 6.937-8.828 6.937h-0.688c-0.531 0-0.969 0.391-1.062 0.922l-0.063 0.297-0.859 5.406-0.031 0.234c-0.109 0.531-0.547 0.922-1.078 0.922h-3.922c-0.438 0-0.719-0.359-0.656-0.797 0.281-1.75 0.547-3.5 0.828-5.25s0.562-3.484 0.844-5.234c0.047-0.375 0.297-0.578 0.672-0.578 0.625 0 1.25-0.016 2.047 0 1.125 0.016 2.422-0.047 3.687-0.328 1.687-0.375 3.219-1.062 4.484-2.25 1.141-1.062 1.906-2.375 2.422-3.844 0.234-0.688 0.422-1.375 0.547-2.078 0.031-0.187 0.078-0.156 0.187-0.078 0.859 0.641 1.344 1.5 1.531 2.531zM21.047 5.688c0 1.281-0.297 2.5-0.719 3.687-0.812 2.359-2.344 4.047-4.719 4.922-1.266 0.453-2.594 0.641-3.938 0.656-0.938 0.016-1.875 0-2.812 0-1.016 0-1.656 0.5-1.844 1.5-0.219 1.188-1.078 6.719-1.328 8.281-0.016 0.109-0.063 0.156-0.187 0.156h-4.609c-0.469 0-0.812-0.406-0.75-0.859l3.625-22.984c0.094-0.594 0.625-1.047 1.234-1.047h9.344c0.672 0 2.219 0.297 3.266 0.703 2.219 0.859 3.437 2.609 3.437 4.984z"></path> </symbol> <symbol id="social-icon-periscope" viewBox="0 0 24 28"> <path d="M12.285,1C6.696,1,2.277,5.643,2.277,11.243c0,5.851,7.77,14.578,10.007,14.578c1.959,0,9.729-8.728,9.729-14.578 C22.015,5.643,17.596,1,12.285,1z M12.317,16.551c-3.473,0-6.152-2.611-6.152-5.664c0-1.292,0.39-2.472,1.065-3.438 c0.206,1.084,1.18,1.906,2.352,1.906c1.322,0,2.393-1.043,2.393-2.333c0-0.832-0.447-1.561-1.119-1.975 c0.467-0.105,0.955-0.161,1.46-0.161c3.133,0,5.81,2.611,5.81,5.998C18.126,13.94,15.449,16.551,12.317,16.551z"></path> </symbol> <symbol id="social-icon-phone" viewBox="0 0 16 16"> <path d="M10,1H6C4.9,1,4,1.9,4,3v10c0,1.1,0.9,2,2,2h4c1.1,0,2-0.9,2-2V3C12,1.9,11.1,1,10,1z M8.5,14h-1 C7.2,14,7,13.8,7,13.5S7.2,13,7.5,13h1C8.8,13,9,13.2,9,13.5S8.8,14,8.5,14z M11,12H5V3h6V12z"/> </symbol> <symbol id="social-icon-pinterest" viewBox="0 0 23 32"> <path d="M0 10.661q0-1.929 0.67-3.634t1.848-2.973 2.714-2.196 3.304-1.393 3.607-0.464q2.821 0 5.25 1.188t3.946 3.455 1.518 5.125q0 1.714-0.339 3.357t-1.071 3.161-1.786 2.67-2.589 1.839-3.375 0.688q-1.214 0-2.411-0.571t-1.714-1.571q-0.179 0.696-0.5 2.009t-0.42 1.696-0.366 1.268-0.464 1.268-0.571 1.116-0.821 1.384-1.107 1.545l-0.25 0.089-0.161-0.179q-0.268-2.804-0.268-3.357 0-1.643 0.384-3.688t1.188-5.134 0.929-3.625q-0.571-1.161-0.571-3.018 0-1.482 0.929-2.786t2.357-1.304q1.089 0 1.696 0.723t0.607 1.83q0 1.179-0.786 3.411t-0.786 3.339q0 1.125 0.804 1.866t1.946 0.741q0.982 0 1.821-0.446t1.402-1.214 1-1.696 0.679-1.973 0.357-1.982 0.116-1.777q0-3.089-1.955-4.813t-5.098-1.723q-3.571 0-5.964 2.313t-2.393 5.866q0 0.786 0.223 1.518t0.482 1.161 0.482 0.813 0.223 0.545q0 0.5-0.268 1.304t-0.661 0.804q-0.036 0-0.304-0.054-0.911-0.268-1.616-1t-1.089-1.688-0.58-1.929-0.196-1.902z"></path> </symbol> <symbol id="social-icon-reddit" viewBox="0 0 32 32"> <path d="M32 15.107q0 1.036-0.527 1.884t-1.42 1.295q0.214 0.821 0.214 1.714 0 2.768-1.902 5.125t-5.188 3.723-7.143 1.366-7.134-1.366-5.179-3.723-1.902-5.125q0-0.839 0.196-1.679-0.911-0.446-1.464-1.313t-0.554-1.902q0-1.464 1.036-2.509t2.518-1.045q1.518 0 2.589 1.125 3.893-2.714 9.196-2.893l2.071-9.304q0.054-0.232 0.268-0.375t0.464-0.089l6.589 1.446q0.321-0.661 0.964-1.063t1.411-0.402q1.107 0 1.893 0.777t0.786 1.884-0.786 1.893-1.893 0.786-1.884-0.777-0.777-1.884l-5.964-1.321-1.857 8.429q5.357 0.161 9.268 2.857 1.036-1.089 2.554-1.089 1.482 0 2.518 1.045t1.036 2.509zM7.464 18.661q0 1.107 0.777 1.893t1.884 0.786 1.893-0.786 0.786-1.893-0.786-1.884-1.893-0.777q-1.089 0-1.875 0.786t-0.786 1.875zM21.929 25q0.196-0.196 0.196-0.464t-0.196-0.464q-0.179-0.179-0.446-0.179t-0.464 0.179q-0.732 0.75-2.161 1.107t-2.857 0.357-2.857-0.357-2.161-1.107q-0.196-0.179-0.464-0.179t-0.446 0.179q-0.196 0.179-0.196 0.455t0.196 0.473q0.768 0.768 2.116 1.214t2.188 0.527 1.625 0.080 1.625-0.080 2.188-0.527 2.116-1.214zM21.875 21.339q1.107 0 1.884-0.786t0.777-1.893q0-1.089-0.786-1.875t-1.875-0.786q-1.107 0-1.893 0.777t-0.786 1.884 0.786 1.893 1.893 0.786z"></path> </symbol> <symbol id="social-icon-rss" viewBox="0 0 25 32"> <path d="M6.857 24c0 1.893-1.536 3.429-3.429 3.429s-3.429-1.536-3.429-3.429 1.536-3.429 3.429-3.429 3.429 1.536 3.429 3.429zM16 26.196c0.018 0.321-0.089 0.625-0.304 0.857-0.214 0.25-0.518 0.375-0.839 0.375h-2.411c-0.589 0-1.071-0.446-1.125-1.036-0.518-5.446-4.839-9.768-10.286-10.286-0.589-0.054-1.036-0.536-1.036-1.125v-2.411c0-0.321 0.125-0.625 0.375-0.839 0.196-0.196 0.482-0.304 0.768-0.304h0.089c3.804 0.304 7.393 1.964 10.089 4.679 2.714 2.696 4.375 6.286 4.679 10.089zM25.143 26.232c0.018 0.304-0.089 0.607-0.321 0.839-0.214 0.232-0.5 0.357-0.821 0.357h-2.554c-0.607 0-1.107-0.464-1.143-1.071-0.589-10.375-8.857-18.643-19.232-19.25-0.607-0.036-1.071-0.536-1.071-1.125v-2.554c0-0.321 0.125-0.607 0.357-0.821 0.214-0.214 0.5-0.321 0.786-0.321h0.054c6.25 0.321 12.125 2.946 16.554 7.393 4.446 4.429 7.071 10.304 7.393 16.554z"></path> </symbol> <symbol id="social-icon-skype" viewBox="0 0 27 32"> <path d="M20.946 18.982q0-0.893-0.348-1.634t-0.866-1.223-1.304-0.875-1.473-0.607-1.563-0.411l-1.857-0.429q-0.536-0.125-0.786-0.188t-0.625-0.205-0.536-0.286-0.295-0.375-0.134-0.536q0-1.375 2.571-1.375 0.768 0 1.375 0.214t0.964 0.509 0.679 0.598 0.714 0.518 0.857 0.214q0.839 0 1.348-0.571t0.509-1.375q0-0.982-1-1.777t-2.536-1.205-3.25-0.411q-1.214 0-2.357 0.277t-2.134 0.839-1.589 1.554-0.598 2.295q0 1.089 0.339 1.902t1 1.348 1.429 0.866 1.839 0.58l2.607 0.643q1.607 0.393 2 0.643 0.571 0.357 0.571 1.071 0 0.696-0.714 1.152t-1.875 0.455q-0.911 0-1.634-0.286t-1.161-0.688-0.813-0.804-0.821-0.688-0.964-0.286q-0.893 0-1.348 0.536t-0.455 1.339q0 1.643 2.179 2.813t5.196 1.17q1.304 0 2.5-0.33t2.188-0.955 1.58-1.67 0.589-2.348zM27.429 22.857q0 2.839-2.009 4.848t-4.848 2.009q-2.321 0-4.179-1.429-1.375 0.286-2.679 0.286-2.554 0-4.884-0.991t-4.018-2.679-2.679-4.018-0.991-4.884q0-1.304 0.286-2.679-1.429-1.857-1.429-4.179 0-2.839 2.009-4.848t4.848-2.009q2.321 0 4.179 1.429 1.375-0.286 2.679-0.286 2.554 0 4.884 0.991t4.018 2.679 2.679 4.018 0.991 4.884q0 1.304-0.286 2.679 1.429 1.857 1.429 4.179z"></path> </symbol> <symbol id="social-icon-slack" viewBox="0 0 26 28"> <path d="M23.734 12.125c1.281 0 2.266 0.938 2.266 2.219 0 1-0.516 1.703-1.453 2.031l-2.688 0.922 0.875 2.609c0.078 0.234 0.109 0.484 0.109 0.734 0 1.234-1 2.266-2.234 2.266-0.984 0-1.859-0.609-2.172-1.547l-0.859-2.578-4.844 1.656 0.859 2.562c0.078 0.234 0.125 0.484 0.125 0.734 0 1.219-1 2.266-2.25 2.266-0.984 0-1.844-0.609-2.156-1.547l-0.859-2.547-2.391 0.828c-0.25 0.078-0.516 0.141-0.781 0.141-1.266 0-2.219-0.938-2.219-2.203 0-0.969 0.625-1.844 1.547-2.156l2.438-0.828-1.641-4.891-2.438 0.844c-0.25 0.078-0.5 0.125-0.75 0.125-1.25 0-2.219-0.953-2.219-2.203 0-0.969 0.625-1.844 1.547-2.156l2.453-0.828-0.828-2.484c-0.078-0.234-0.125-0.484-0.125-0.734 0-1.234 1-2.266 2.25-2.266 0.984 0 1.844 0.609 2.156 1.547l0.844 2.5 4.844-1.641-0.844-2.5c-0.078-0.234-0.125-0.484-0.125-0.734 0-1.234 1.016-2.266 2.25-2.266 0.984 0 1.859 0.625 2.172 1.547l0.828 2.516 2.531-0.859c0.219-0.063 0.438-0.094 0.672-0.094 1.219 0 2.266 0.906 2.266 2.156 0 0.969-0.75 1.781-1.625 2.078l-2.453 0.844 1.641 4.937 2.562-0.875c0.234-0.078 0.484-0.125 0.719-0.125zM11.328 16.219l4.844-1.641-1.641-4.922-4.844 1.672z"></path> </symbol> <symbol id="social-icon-slideshare" viewBox="0 0 32 32"> <path d="M15.589 13.214q0 1.482-1.134 2.545t-2.723 1.063-2.723-1.063-1.134-2.545q0-1.5 1.134-2.554t2.723-1.054 2.723 1.054 1.134 2.554zM24.554 13.214q0 1.482-1.125 2.545t-2.732 1.063q-1.589 0-2.723-1.063t-1.134-2.545q0-1.5 1.134-2.554t2.723-1.054q1.607 0 2.732 1.054t1.125 2.554zM28.571 16.429v-11.911q0-1.554-0.571-2.205t-1.982-0.652h-19.857q-1.482 0-2.009 0.607t-0.527 2.25v12.018q0.768 0.411 1.58 0.714t1.446 0.5 1.446 0.33 1.268 0.196 1.25 0.071 1.045 0.009 1.009-0.036 0.795-0.036q1.214-0.018 1.696 0.482 0.107 0.107 0.179 0.161 0.464 0.446 1.089 0.911 0.125-1.625 2.107-1.554 0.089 0 0.652 0.027t0.768 0.036 0.813 0.018 0.946-0.018 0.973-0.080 1.089-0.152 1.107-0.241 1.196-0.348 1.205-0.482 1.286-0.616zM31.482 16.339q-2.161 2.661-6.643 4.5 1.5 5.089-0.411 8.304-1.179 2.018-3.268 2.643-1.857 0.571-3.25-0.268-1.536-0.911-1.464-2.929l-0.018-5.821v-0.018q-0.143-0.036-0.438-0.107t-0.42-0.089l-0.018 6.036q0.071 2.036-1.482 2.929-1.411 0.839-3.268 0.268-2.089-0.643-3.25-2.679-1.875-3.214-0.393-8.268-4.482-1.839-6.643-4.5-0.446-0.661-0.071-1.125t1.071 0.018q0.054 0.036 0.196 0.125t0.196 0.143v-12.393q0-1.286 0.839-2.196t2.036-0.911h22.446q1.196 0 2.036 0.911t0.839 2.196v12.393l0.375-0.268q0.696-0.482 1.071-0.018t-0.071 1.125z"></path> </symbol> <symbol id="social-icon-snapchat" viewBox="0 0 30 32"> <path d="M15.143 2.286q2.393-0.018 4.295 1.223t2.92 3.438q0.482 1.036 0.482 3.196 0 0.839-0.161 3.411 0.25 0.125 0.5 0.125 0.321 0 0.911-0.241t0.911-0.241q0.518 0 1 0.321t0.482 0.821q0 0.571-0.563 0.964t-1.232 0.563-1.232 0.518-0.563 0.848q0 0.268 0.214 0.768 0.661 1.464 1.83 2.679t2.58 1.804q0.5 0.214 1.429 0.411 0.5 0.107 0.5 0.625 0 1.25-3.911 1.839-0.125 0.196-0.196 0.696t-0.25 0.83-0.589 0.33q-0.357 0-1.107-0.116t-1.143-0.116q-0.661 0-1.107 0.089-0.571 0.089-1.125 0.402t-1.036 0.679-1.036 0.723-1.357 0.598-1.768 0.241q-0.929 0-1.723-0.241t-1.339-0.598-1.027-0.723-1.036-0.679-1.107-0.402q-0.464-0.089-1.125-0.089-0.429 0-1.17 0.134t-1.045 0.134q-0.446 0-0.625-0.33t-0.25-0.848-0.196-0.714q-3.911-0.589-3.911-1.839 0-0.518 0.5-0.625 0.929-0.196 1.429-0.411 1.393-0.571 2.58-1.804t1.83-2.679q0.214-0.5 0.214-0.768 0-0.5-0.563-0.848t-1.241-0.527-1.241-0.563-0.563-0.938q0-0.482 0.464-0.813t0.982-0.33q0.268 0 0.857 0.232t0.946 0.232q0.321 0 0.571-0.125-0.161-2.536-0.161-3.393 0-2.179 0.482-3.214 1.143-2.446 3.071-3.536t4.714-1.125z"></path> </symbol> <symbol id="social-icon-soundcloud" viewBox="0 0 41 32"> <path d="M14 24.5l0.286-4.304-0.286-9.339q-0.018-0.179-0.134-0.304t-0.295-0.125q-0.161 0-0.286 0.125t-0.125 0.304l-0.25 9.339 0.25 4.304q0.018 0.179 0.134 0.295t0.277 0.116q0.393 0 0.429-0.411zM19.286 23.982l0.196-3.768-0.214-10.464q0-0.286-0.232-0.429-0.143-0.089-0.286-0.089t-0.286 0.089q-0.232 0.143-0.232 0.429l-0.018 0.107-0.179 10.339q0 0.018 0.196 4.214v0.018q0 0.179 0.107 0.304 0.161 0.196 0.411 0.196 0.196 0 0.357-0.161 0.161-0.125 0.161-0.357zM0.625 17.911l0.357 2.286-0.357 2.25q-0.036 0.161-0.161 0.161t-0.161-0.161l-0.304-2.25 0.304-2.286q0.036-0.161 0.161-0.161t0.161 0.161zM2.161 16.5l0.464 3.696-0.464 3.625q-0.036 0.161-0.179 0.161-0.161 0-0.161-0.179l-0.411-3.607 0.411-3.696q0-0.161 0.161-0.161 0.143 0 0.179 0.161zM3.804 15.821l0.446 4.375-0.446 4.232q0 0.196-0.196 0.196-0.179 0-0.214-0.196l-0.375-4.232 0.375-4.375q0.036-0.214 0.214-0.214 0.196 0 0.196 0.214zM5.482 15.696l0.411 4.5-0.411 4.357q-0.036 0.232-0.25 0.232-0.232 0-0.232-0.232l-0.375-4.357 0.375-4.5q0-0.232 0.232-0.232 0.214 0 0.25 0.232zM7.161 16.018l0.375 4.179-0.375 4.393q-0.036 0.286-0.286 0.286-0.107 0-0.188-0.080t-0.080-0.205l-0.357-4.393 0.357-4.179q0-0.107 0.080-0.188t0.188-0.080q0.25 0 0.286 0.268zM8.839 13.411l0.375 6.786-0.375 4.393q0 0.125-0.089 0.223t-0.214 0.098q-0.286 0-0.321-0.321l-0.321-4.393 0.321-6.786q0.036-0.321 0.321-0.321 0.125 0 0.214 0.098t0.089 0.223zM10.518 11.875l0.339 8.357-0.339 4.357q0 0.143-0.098 0.241t-0.241 0.098q-0.321 0-0.357-0.339l-0.286-4.357 0.286-8.357q0.036-0.339 0.357-0.339 0.143 0 0.241 0.098t0.098 0.241zM12.268 11.161l0.321 9.036-0.321 4.321q-0.036 0.375-0.393 0.375-0.339 0-0.375-0.375l-0.286-4.321 0.286-9.036q0-0.161 0.116-0.277t0.259-0.116q0.161 0 0.268 0.116t0.125 0.277zM19.268 24.411v0 0zM15.732 11.089l0.268 9.107-0.268 4.268q0 0.179-0.134 0.313t-0.313 0.134-0.304-0.125-0.143-0.321l-0.25-4.268 0.25-9.107q0-0.196 0.134-0.321t0.313-0.125 0.313 0.125 0.134 0.321zM17.5 11.429l0.25 8.786-0.25 4.214q0 0.196-0.143 0.339t-0.339 0.143-0.339-0.143-0.161-0.339l-0.214-4.214 0.214-8.786q0.018-0.214 0.161-0.357t0.339-0.143 0.33 0.143 0.152 0.357zM21.286 20.214l-0.25 4.125q0 0.232-0.161 0.393t-0.393 0.161-0.393-0.161-0.179-0.393l-0.107-2.036-0.107-2.089 0.214-11.357v-0.054q0.036-0.268 0.214-0.429 0.161-0.125 0.357-0.125 0.143 0 0.268 0.089 0.25 0.143 0.286 0.464zM41.143 19.875q0 2.089-1.482 3.563t-3.571 1.473h-14.036q-0.232-0.036-0.393-0.196t-0.161-0.393v-16.054q0-0.411 0.5-0.589 1.518-0.607 3.232-0.607 3.482 0 6.036 2.348t2.857 5.777q0.946-0.393 1.964-0.393 2.089 0 3.571 1.482t1.482 3.589z"></path> </symbol> <symbol id="social-icon-spotify" viewBox="0 0 27 32"> <path d="M20.125 21.607q0-0.571-0.536-0.911-3.446-2.054-7.982-2.054-2.375 0-5.125 0.607-0.75 0.161-0.75 0.929 0 0.357 0.241 0.616t0.634 0.259q0.089 0 0.661-0.143 2.357-0.482 4.339-0.482 4.036 0 7.089 1.839 0.339 0.196 0.589 0.196 0.339 0 0.589-0.241t0.25-0.616zM21.839 17.768q0-0.714-0.625-1.089-4.232-2.518-9.786-2.518-2.732 0-5.411 0.75-0.857 0.232-0.857 1.143 0 0.446 0.313 0.759t0.759 0.313q0.125 0 0.661-0.143 2.179-0.589 4.482-0.589 4.982 0 8.714 2.214 0.429 0.232 0.679 0.232 0.446 0 0.759-0.313t0.313-0.759zM23.768 13.339q0-0.839-0.714-1.25-2.25-1.304-5.232-1.973t-6.125-0.67q-3.643 0-6.5 0.839-0.411 0.125-0.688 0.455t-0.277 0.866q0 0.554 0.366 0.929t0.92 0.375q0.196 0 0.714-0.143 2.375-0.661 5.482-0.661 2.839 0 5.527 0.607t4.527 1.696q0.375 0.214 0.714 0.214 0.518 0 0.902-0.366t0.384-0.92zM27.429 16q0 3.732-1.839 6.884t-4.991 4.991-6.884 1.839-6.884-1.839-4.991-4.991-1.839-6.884 1.839-6.884 4.991-4.991 6.884-1.839 6.884 1.839 4.991 4.991 1.839 6.884z"></path> </symbol> <symbol id="social-icon-stack-overflow" viewBox="0 0 24 28"> <path d="M20.141 25.5h-17.469v-7.5h-2.5v10h22.469v-10h-2.5v7.5zM5.422 17.313l0.516-2.453 12.234 2.578-0.516 2.438zM7.031 11.469l1.047-2.281 11.328 5.297-1.047 2.266zM10.172 5.906l1.594-1.922 9.594 8.016-1.594 1.922zM16.375 0l7.453 10.016-2 1.5-7.453-10.016zM5.156 22.984v-2.484h12.5v2.484h-12.5z"></path> </symbol> <symbol id="social-icon-stumbleupon" viewBox="0 0 34 32"> <path d="M18.964 12.714v-2.107q0-0.75-0.536-1.286t-1.286-0.536-1.286 0.536-0.536 1.286v10.929q0 3.125-2.25 5.339t-5.411 2.214q-3.179 0-5.42-2.241t-2.241-5.42v-4.75h5.857v4.679q0 0.768 0.536 1.295t1.286 0.527 1.286-0.527 0.536-1.295v-11.071q0-3.054 2.259-5.214t5.384-2.161q3.143 0 5.393 2.179t2.25 5.25v2.429l-3.482 1.036zM28.429 16.679h5.857v4.75q0 3.179-2.241 5.42t-5.42 2.241q-3.161 0-5.411-2.223t-2.25-5.366v-4.786l2.339 1.089 3.482-1.036v4.821q0 0.75 0.536 1.277t1.286 0.527 1.286-0.527 0.536-1.277v-4.911z"></path> </symbol> <symbol id="social-icon-trello" viewBox="0 0 24 28"> <path d="M11 21v-16c0-0.281-0.219-0.5-0.5-0.5h-7.5c-0.281 0-0.5 0.219-0.5 0.5v16c0 0.281 0.219 0.5 0.5 0.5h7.5c0.281 0 0.5-0.219 0.5-0.5zM21.5 15v-10c0-0.281-0.219-0.5-0.5-0.5h-7.5c-0.281 0-0.5 0.219-0.5 0.5v10c0 0.281 0.219 0.5 0.5 0.5h7.5c0.281 0 0.5-0.219 0.5-0.5zM24 3v22c0 0.547-0.453 1-1 1h-22c-0.547 0-1-0.453-1-1v-22c0-0.547 0.453-1 1-1h22c0.547 0 1 0.453 1 1z"></path> </symbol> <symbol id="social-icon-tripadvisor" viewBox="0 0 36 28"> <path d="M10.172 15.578c0 0.812-0.656 1.469-1.453 1.469-0.812 0-1.469-0.656-1.469-1.469 0-0.797 0.656-1.453 1.469-1.453 0.797 0 1.453 0.656 1.453 1.453zM28.203 15.563c0 0.812-0.656 1.469-1.469 1.469s-1.469-0.656-1.469-1.469 0.656-1.453 1.469-1.453 1.469 0.641 1.469 1.453zM11.953 15.578c0-1.656-1.359-3.016-3.016-3.016-1.672 0-3.016 1.359-3.016 3.016 0 1.672 1.344 3.016 3.016 3.016 1.656 0 3.016-1.344 3.016-3.016zM29.969 15.563c0-1.656-1.344-3.016-3.016-3.016-1.656 0-3.016 1.359-3.016 3.016 0 1.672 1.359 3.016 3.016 3.016 1.672 0 3.016-1.344 3.016-3.016zM13.281 15.578c0 2.406-1.937 4.359-4.344 4.359s-4.359-1.953-4.359-4.359c0-2.391 1.953-4.344 4.359-4.344s4.344 1.953 4.344 4.344zM31.313 15.563c0 2.406-1.953 4.344-4.359 4.344-2.391 0-4.344-1.937-4.344-4.344s1.953-4.344 4.344-4.344c2.406 0 4.359 1.937 4.359 4.344zM16.25 15.609c0-3.984-3.234-7.219-7.219-7.219-3.969 0-7.203 3.234-7.203 7.219s3.234 7.219 7.203 7.219c3.984 0 7.219-3.234 7.219-7.219zM26.688 6.656c-2.578-1.125-5.484-1.734-8.687-1.734s-6.391 0.609-8.953 1.719c4.953 0.016 8.953 4.016 8.953 8.969 0-4.859 3.859-8.813 8.687-8.953zM34.172 15.609c0-3.984-3.219-7.219-7.203-7.219s-7.219 3.234-7.219 7.219 3.234 7.219 7.219 7.219 7.203-3.234 7.203-7.219zM30.016 6.766h5.984c-0.938 1.094-1.625 2.562-1.797 3.578 1.078 1.484 1.719 3.297 1.719 5.266 0 4.953-4.016 8.953-8.953 8.953-2.812 0-5.313-1.281-6.953-3.297 0 0-0.734 0.875-2.016 2.797-0.219-0.453-1.328-2.031-2-2.812-1.641 2.031-4.156 3.313-6.969 3.313-4.937 0-8.953-4-8.953-8.953 0-1.969 0.641-3.781 1.719-5.266-0.172-1.016-0.859-2.484-1.797-3.578h5.703c3.063-2.047 7.516-3.328 12.297-3.328s8.953 1.281 12.016 3.328z"></path> </symbol> <symbol id="social-icon-tumblr" viewBox="0 0 19 32"> <path d="M16.857 23.732l1.429 4.232q-0.411 0.625-1.982 1.179t-3.161 0.571q-1.857 0.036-3.402-0.464t-2.545-1.321-1.696-1.893-0.991-2.143-0.295-2.107v-9.714h-3v-3.839q1.286-0.464 2.304-1.241t1.625-1.607 1.036-1.821 0.607-1.768 0.268-1.58q0.018-0.089 0.080-0.152t0.134-0.063h4.357v7.571h5.946v4.5h-5.964v9.25q0 0.536 0.116 1t0.402 0.938 0.884 0.741 1.455 0.25q1.393-0.036 2.393-0.518z"></path> </symbol> <symbol id="social-icon-twitch" viewBox="0 0 32 32"> <path d="M16 7.75v7.75h-2.589v-7.75h2.589zM23.107 7.75v7.75h-2.589v-7.75h2.589zM23.107 21.321l4.518-4.536v-14.196h-21.321v18.732h5.821v3.875l3.875-3.875h7.107zM30.214 0v18.089l-7.75 7.75h-5.821l-3.875 3.875h-3.875v-3.875h-7.107v-20.679l1.946-5.161h26.482z"></path> </symbol> <symbol id="social-icon-twitter" viewBox="0 0 30 32"> <path d="M28.929 7.286q-1.196 1.75-2.893 2.982 0.018 0.25 0.018 0.75 0 2.321-0.679 4.634t-2.063 4.437-3.295 3.759-4.607 2.607-5.768 0.973q-4.839 0-8.857-2.589 0.625 0.071 1.393 0.071 4.018 0 7.161-2.464-1.875-0.036-3.357-1.152t-2.036-2.848q0.589 0.089 1.089 0.089 0.768 0 1.518-0.196-2-0.411-3.313-1.991t-1.313-3.67v-0.071q1.214 0.679 2.607 0.732-1.179-0.786-1.875-2.054t-0.696-2.75q0-1.571 0.786-2.911 2.161 2.661 5.259 4.259t6.634 1.777q-0.143-0.679-0.143-1.321 0-2.393 1.688-4.080t4.080-1.688q2.5 0 4.214 1.821 1.946-0.375 3.661-1.393-0.661 2.054-2.536 3.179 1.661-0.179 3.321-0.893z"></path> </symbol> <symbol id="social-icon-vimeo" viewBox="0 0 32 32"> <path d="M30.518 9.25q-0.179 4.214-5.929 11.625-5.946 7.696-10.036 7.696-2.536 0-4.286-4.696-0.786-2.857-2.357-8.607-1.286-4.679-2.804-4.679-0.321 0-2.268 1.357l-1.375-1.75q0.429-0.375 1.929-1.723t2.321-2.063q2.786-2.464 4.304-2.607 1.696-0.161 2.732 0.991t1.446 3.634q0.786 5.125 1.179 6.661 0.982 4.446 2.143 4.446 0.911 0 2.75-2.875 1.804-2.875 1.946-4.393 0.232-2.482-1.946-2.482-1.018 0-2.161 0.464 2.143-7.018 8.196-6.821 4.482 0.143 4.214 5.821z"></path> </symbol> <symbol id="social-icon-vine" viewBox="0 0 27 32"> <path d="M26.732 14.768v3.536q-1.804 0.411-3.536 0.411-1.161 2.429-2.955 4.839t-3.241 3.848-2.286 1.902q-1.429 0.804-2.893-0.054-0.5-0.304-1.080-0.777t-1.518-1.491-1.83-2.295-1.92-3.286-1.884-4.357-1.634-5.616-1.259-6.964h5.054q0.464 3.893 1.25 7.116t1.866 5.661 2.17 4.205 2.5 3.482q3.018-3.018 5.125-7.25-2.536-1.286-3.982-3.929t-1.446-5.946q0-3.429 1.857-5.616t5.071-2.188q3.179 0 4.875 1.884t1.696 5.313q0 2.839-1.036 5.107-0.125 0.018-0.348 0.054t-0.821 0.036-1.125-0.107-1.107-0.455-0.902-0.92q0.554-1.839 0.554-3.286 0-1.554-0.518-2.357t-1.411-0.804q-0.946 0-1.518 0.884t-0.571 2.509q0 3.321 1.875 5.241t4.768 1.92q1.107 0 2.161-0.25z"></path> </symbol> <symbol id="social-icon-vk" viewBox="0 0 35 32"> <path d="M34.232 9.286q0.411 1.143-2.679 5.25-0.429 0.571-1.161 1.518-1.393 1.786-1.607 2.339-0.304 0.732 0.25 1.446 0.304 0.375 1.446 1.464h0.018l0.071 0.071q2.518 2.339 3.411 3.946 0.054 0.089 0.116 0.223t0.125 0.473-0.009 0.607-0.446 0.491-1.054 0.223l-4.571 0.071q-0.429 0.089-1-0.089t-0.929-0.393l-0.357-0.214q-0.536-0.375-1.25-1.143t-1.223-1.384-1.089-1.036-1.009-0.277q-0.054 0.018-0.143 0.063t-0.304 0.259-0.384 0.527-0.304 0.929-0.116 1.384q0 0.268-0.063 0.491t-0.134 0.33l-0.071 0.089q-0.321 0.339-0.946 0.393h-2.054q-1.268 0.071-2.607-0.295t-2.348-0.946-1.839-1.179-1.259-1.027l-0.446-0.429q-0.179-0.179-0.491-0.536t-1.277-1.625-1.893-2.696-2.188-3.768-2.33-4.857q-0.107-0.286-0.107-0.482t0.054-0.286l0.071-0.107q0.268-0.339 1.018-0.339l4.893-0.036q0.214 0.036 0.411 0.116t0.286 0.152l0.089 0.054q0.286 0.196 0.429 0.571 0.357 0.893 0.821 1.848t0.732 1.455l0.286 0.518q0.518 1.071 1 1.857t0.866 1.223 0.741 0.688 0.607 0.25 0.482-0.089q0.036-0.018 0.089-0.089t0.214-0.393 0.241-0.839 0.17-1.446 0-2.232q-0.036-0.714-0.161-1.304t-0.25-0.821l-0.107-0.214q-0.446-0.607-1.518-0.768-0.232-0.036 0.089-0.429 0.304-0.339 0.679-0.536 0.946-0.464 4.268-0.429 1.464 0.018 2.411 0.232 0.357 0.089 0.598 0.241t0.366 0.429 0.188 0.571 0.063 0.813-0.018 0.982-0.045 1.259-0.027 1.473q0 0.196-0.018 0.75t-0.009 0.857 0.063 0.723 0.205 0.696 0.402 0.438q0.143 0.036 0.304 0.071t0.464-0.196 0.679-0.616 0.929-1.196 1.214-1.92q1.071-1.857 1.911-4.018 0.071-0.179 0.179-0.313t0.196-0.188l0.071-0.054 0.089-0.045t0.232-0.054 0.357-0.009l5.143-0.036q0.696-0.089 1.143 0.045t0.554 0.295z"></path> </symbol> <symbol id="social-icon-whatsapp" viewBox="0 0 27 32"> <path d="M17.589 17.393c0.304 0 3.214 1.518 3.339 1.732 0.036 0.089 0.036 0.196 0.036 0.268 0 0.446-0.143 0.946-0.304 1.357-0.411 1-2.071 1.643-3.089 1.643-0.857 0-2.625-0.75-3.393-1.107-2.554-1.161-4.143-3.143-5.679-5.411-0.679-1-1.286-2.232-1.268-3.464v-0.143c0.036-1.179 0.464-2.018 1.321-2.821 0.268-0.25 0.554-0.393 0.929-0.393 0.214 0 0.429 0.054 0.661 0.054 0.482 0 0.571 0.143 0.75 0.607 0.125 0.304 1.036 2.732 1.036 2.911 0 0.679-1.232 1.446-1.232 1.857 0 0.089 0.036 0.179 0.089 0.268 0.393 0.839 1.143 1.804 1.821 2.446 0.821 0.786 1.696 1.304 2.696 1.804 0.125 0.071 0.25 0.125 0.393 0.125 0.536 0 1.429-1.732 1.893-1.732zM13.964 26.857c6.179 0 11.214-5.036 11.214-11.214s-5.036-11.214-11.214-11.214-11.214 5.036-11.214 11.214c0 2.357 0.75 4.661 2.143 6.571l-1.411 4.161 4.321-1.375c1.821 1.196 3.982 1.857 6.161 1.857zM13.964 2.179c7.429 0 13.464 6.036 13.464 13.464s-6.036 13.464-13.464 13.464c-2.268 0-4.518-0.571-6.518-1.679l-7.446 2.393 2.429-7.232c-1.268-2.089-1.929-4.5-1.929-6.946 0-7.429 6.036-13.464 13.464-13.464z"></path> </symbol> <symbol id="social-icon-wordpress" viewBox="0 0 32 32"> <path d="M2.268 16q0-2.911 1.196-5.589l6.554 17.946q-3.5-1.696-5.625-5.018t-2.125-7.339zM25.268 15.304q0 0.339-0.045 0.688t-0.179 0.884-0.205 0.786-0.313 1.054-0.313 1.036l-1.357 4.571-4.964-14.75q0.821-0.054 1.571-0.143 0.339-0.036 0.464-0.33t-0.045-0.554-0.509-0.241l-3.661 0.179q-1.339-0.018-3.607-0.179-0.214-0.018-0.366 0.089t-0.205 0.268-0.027 0.33 0.161 0.295 0.348 0.143l1.429 0.143 2.143 5.857-3 9-5-14.857q0.821-0.054 1.571-0.143 0.339-0.036 0.464-0.33t-0.045-0.554-0.509-0.241l-3.661 0.179q-0.125 0-0.411-0.009t-0.464-0.009q1.875-2.857 4.902-4.527t6.563-1.67q2.625 0 5.009 0.946t4.259 2.661h-0.179q-0.982 0-1.643 0.723t-0.661 1.705q0 0.214 0.036 0.429t0.071 0.384 0.143 0.411 0.161 0.375 0.214 0.402 0.223 0.375 0.259 0.429 0.25 0.411q1.125 1.911 1.125 3.786zM16.232 17.196l4.232 11.554q0.018 0.107 0.089 0.196-2.25 0.786-4.554 0.786-2 0-3.875-0.571zM28.036 9.411q1.696 3.107 1.696 6.589 0 3.732-1.857 6.884t-4.982 4.973l4.196-12.107q1.054-3.018 1.054-4.929 0-0.75-0.107-1.411zM16 0q3.25 0 6.214 1.268t5.107 3.411 3.411 5.107 1.268 6.214-1.268 6.214-3.411 5.107-5.107 3.411-6.214 1.268-6.214-1.268-5.107-3.411-3.411-5.107-1.268-6.214 1.268-6.214 3.411-5.107 5.107-3.411 6.214-1.268zM16 31.268q3.089 0 5.92-1.214t4.875-3.259 3.259-4.875 1.214-5.92-1.214-5.92-3.259-4.875-4.875-3.259-5.92-1.214-5.92 1.214-4.875 3.259-3.259 4.875-1.214 5.92 1.214 5.92 3.259 4.875 4.875 3.259 5.92 1.214z"></path> </symbol> <symbol id="social-icon-xing" viewBox="0 0 25 32"> <path d="M10.661 11.911c0 0-0.179 0.304-4.589 8.143-0.232 0.393-0.536 0.821-1.161 0.821h-4.268c-0.25 0-0.446-0.125-0.554-0.304s-0.125-0.411 0-0.643l4.518-8c0.018 0 0.018 0 0-0.018l-2.875-4.982c-0.125-0.232-0.143-0.482-0.018-0.661 0.107-0.179 0.321-0.268 0.571-0.268h4.268c0.643 0 0.964 0.429 1.179 0.804 2.911 5.089 2.929 5.107 2.929 5.107zM25.054 0.446c0.125 0.179 0.125 0.429 0 0.661l-9.429 16.679c-0.018 0-0.018 0.018 0 0.018l6 10.982c0.125 0.232 0.125 0.482 0.018 0.661-0.125 0.179-0.321 0.268-0.571 0.268h-4.268c-0.643 0-0.982-0.429-1.179-0.804-6.054-11.089-6.054-11.107-6.054-11.107s0.304-0.536 9.482-16.821c0.232-0.411 0.5-0.804 1.143-0.804h4.304c0.25 0 0.446 0.089 0.554 0.268z"></path> </symbol> <symbol id="social-icon-yelp" viewBox="0 0 27 32"> <path d="M13.804 23.554v2.268q-0.018 5.214-0.107 5.446-0.214 0.571-0.911 0.714-0.964 0.161-3.241-0.679t-2.902-1.589q-0.232-0.268-0.304-0.643-0.018-0.214 0.071-0.464 0.071-0.179 0.607-0.839t3.232-3.857q0.018 0 1.071-1.25 0.268-0.339 0.705-0.438t0.884 0.063q0.429 0.179 0.67 0.518t0.223 0.75zM11.143 19.071q-0.054 0.982-0.929 1.25l-2.143 0.696q-4.911 1.571-5.214 1.571-0.625-0.036-0.964-0.643-0.214-0.446-0.304-1.339-0.143-1.357 0.018-2.973t0.536-2.223 1-0.571q0.232 0 3.607 1.375 1.25 0.518 2.054 0.839l1.5 0.607q0.411 0.161 0.634 0.545t0.205 0.866zM25.893 24.375q-0.125 0.964-1.634 2.875t-2.42 2.268q-0.661 0.25-1.125-0.125-0.25-0.179-3.286-5.125l-0.839-1.375q-0.25-0.375-0.205-0.821t0.348-0.821q0.625-0.768 1.482-0.464 0.018 0.018 2.125 0.714 3.625 1.179 4.321 1.42t0.839 0.366q0.5 0.393 0.393 1.089zM13.893 13.089q0.089 1.821-0.964 2.179-1.036 0.304-2.036-1.268l-6.75-10.679q-0.143-0.625 0.339-1.107 0.732-0.768 3.705-1.598t4.009-0.563q0.714 0.179 0.875 0.804 0.054 0.321 0.393 5.455t0.429 6.777zM25.714 15.018q0.054 0.696-0.464 1.054-0.268 0.179-5.875 1.536-1.196 0.268-1.625 0.411l0.018-0.036q-0.411 0.107-0.821-0.071t-0.661-0.571q-0.536-0.839 0-1.554 0.018-0.018 1.339-1.821 2.232-3.054 2.679-3.643t0.607-0.696q0.5-0.339 1.161-0.036 0.857 0.411 2.196 2.384t1.446 2.991v0.054z"></path> </symbol> <symbol id="social-icon-youtube" viewBox="0 0 27 32"> <path d="M17.339 22.214v3.768q0 1.196-0.696 1.196-0.411 0-0.804-0.393v-5.375q0.393-0.393 0.804-0.393 0.696 0 0.696 1.196zM23.375 22.232v0.821h-1.607v-0.821q0-1.214 0.804-1.214t0.804 1.214zM6.125 18.339h1.911v-1.679h-5.571v1.679h1.875v10.161h1.786v-10.161zM11.268 28.5h1.589v-8.821h-1.589v6.75q-0.536 0.75-1.018 0.75-0.321 0-0.375-0.375-0.018-0.054-0.018-0.625v-6.5h-1.589v6.982q0 0.875 0.143 1.304 0.214 0.661 1.036 0.661 0.857 0 1.821-1.089v0.964zM18.929 25.857v-3.518q0-1.304-0.161-1.768-0.304-1-1.268-1-0.893 0-1.661 0.964v-3.875h-1.589v11.839h1.589v-0.857q0.804 0.982 1.661 0.982 0.964 0 1.268-0.982 0.161-0.482 0.161-1.786zM24.964 25.679v-0.232h-1.625q0 0.911-0.036 1.089-0.125 0.643-0.714 0.643-0.821 0-0.821-1.232v-1.554h3.196v-1.839q0-1.411-0.482-2.071-0.696-0.911-1.893-0.911-1.214 0-1.911 0.911-0.5 0.661-0.5 2.071v3.089q0 1.411 0.518 2.071 0.696 0.911 1.929 0.911 1.286 0 1.929-0.946 0.321-0.482 0.375-0.964 0.036-0.161 0.036-1.036zM14.107 9.375v-3.75q0-1.232-0.768-1.232t-0.768 1.232v3.75q0 1.25 0.768 1.25t0.768-1.25zM26.946 22.786q0 4.179-0.464 6.25-0.25 1.054-1.036 1.768t-1.821 0.821q-3.286 0.375-9.911 0.375t-9.911-0.375q-1.036-0.107-1.83-0.821t-1.027-1.768q-0.464-2-0.464-6.25 0-4.179 0.464-6.25 0.25-1.054 1.036-1.768t1.839-0.839q3.268-0.357 9.893-0.357t9.911 0.357q1.036 0.125 1.83 0.839t1.027 1.768q0.464 2 0.464 6.25zM9.125 0h1.821l-2.161 7.125v4.839h-1.786v-4.839q-0.25-1.321-1.089-3.786-0.661-1.839-1.161-3.339h1.893l1.268 4.696zM15.732 5.946v3.125q0 1.446-0.5 2.107-0.661 0.911-1.893 0.911-1.196 0-1.875-0.911-0.5-0.679-0.5-2.107v-3.125q0-1.429 0.5-2.089 0.679-0.911 1.875-0.911 1.232 0 1.893 0.911 0.5 0.661 0.5 2.089zM21.714 3.054v8.911h-1.625v-0.982q-0.946 1.107-1.839 1.107-0.821 0-1.054-0.661-0.143-0.429-0.143-1.339v-7.036h1.625v6.554q0 0.589 0.018 0.625 0.054 0.393 0.375 0.393 0.482 0 1.018-0.768v-6.804h1.625z"></path> </symbol> </defs> </svg> </body> </html>