Gå direkt till sidans huvudinnehåll

Blekinge Tekniska Högskola

Webbplats: www.bth.se
Totalbetyg: 3.64 av 5
Kategori: Utbildning och forskning

Snittbetyg per kategori

Tillgänglighet: 3.75 av 5
Hastighet: 4.17 av 5
Webbstandard: 3.89 av 5
Integritet & säkerhet: 3.25 av 5

Är något konstigt med dessa värden? Kommentera gärna i vår Slack.


Hoppa till senast genomförda tester för Blekinge Tekniska Högskola:

Test­resultat

Tillgänglighetsredogörelse

Enligt DOS-lagen ska offentlig sektor och offentlig­finansierade organisationer ha en tillgänglighets­redogörelse. Den behöver vara lätt att hitta och ha ett innehåll för att vara korrekt.


Betyg: 1 av 5

- Testad webbadress: https://www.bth.se
- Ingen tillgänglighets­redogörelse hittad ( 1.00 betyg )

Tillgänglighet

- Ingen tillgänglighets­redogörelse hittad ( 1.00 betyg )

HTTP statuskod 404

Följer webbplatsen praxis för felsidan 404?


Betyg: 4.20 av 5

- Saknas text som beskriver att ett fel uppstått (på svenska, eller engelska för engelskspråkig webbplats)? ( 1.00 betyg )

Tillgänglighet

- Saknas text som beskriver att ett fel uppstått (på svenska, eller engelska för engelskspråkig webbplats)? ( 1.00 betyg )

Standardfiler

Letar efter standardfiler som robots.txt, security.txt, sitemaps och RSS-prenumerationer


Betyg: 3.82 av 5

- RSS-prenumeration saknas i HTML-kodens metadata. ( 4.50 betyg )

Webbstandard

- Sitemap är bra. ( 4.79 betyg )
- security.txt har inte förväntat innehåll. ( 1.00 betyg )

Integritet & säkerhet

- security.txt har inte förväntat innehåll. ( 1.00 betyg )

Validerar HTML

Kontrollerar HTML-koden mot W3C för att se om den har rätt syntax och följer webbstandard.


Betyg: 4.15 av 5

- Den testade sidan har 24 st fel i sin HTML-kod. Det är rätt ok ändå.

Webbstandard

- #1: Webbsida - Antal (grupperade fel): 14 ( 2.20 betyg )
- #1: Webbsida - Antal fel: 23 ( 2.70 betyg )
- Element X must not have attribute X unless attribute X is also specified or unless attribute X is specified with value X. (totalt 4 st)
- Bad value X for attribute X on element X. (totalt 4 st)
- Duplicate attribute X. (totalt 3 st)
- X in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value. (totalt 2 st)
- A X attribute on a X element found after the first 1024 bytes. (totalt 1 st)
- A X element with an X attribute whose value is X must have a X attribute with the value X. (totalt 1 st)
- Start tag X seen but an element of the same type was already open. (totalt 1 st)
- No space between attributes. (totalt 1 st)
- Saw X when expecting an attribute name. Probable cause: X missing immediately before. (totalt 1 st)
- Attribute X not allowed on element X at this point. (totalt 1 st)
- End tag X seen, but there were open elements. (totalt 1 st)
- Unclosed element X. (totalt 1 st)
- Stray end tag X. (totalt 1 st)
- Element X not allowed as child of element X in this context. (Suppressing further errors from this subtree.) (totalt 1 st)

Följs praxis enligt Google Lighthouse

Kollar om webbplatsen följer god praxis för webbutveckling, enligt Google Lighthouse kriterier.


Betyg: 3.75 av 5

- Genomsnittlig efterlevnad till god praxis.
- Använder tredjepartscookies ( 1.00 betyg )
- Webbläsarfel loggades i konsolen ( 1.00 betyg )
- Felen loggades i `Issues`-panelen i Chromes verktyg för programmerare ( 1.00 betyg )
- Det saknas källkartor för stor JavaScript från första part ( 1.00 betyg )

Integritet & säkerhet

- Felen loggades i `Issues`-panelen i Chromes verktyg för programmerare ( 1.00 betyg )

Kolla Lighthouse hos web.dev

Validerar CSS

Kontrollerar CSS-koden mot W3C för att se om den har rätt syntax och följer webbstandard.


Betyg: 4.50 av 5

- CSS är välbyggd!

Webbstandard

- `< link rel="stylesheet">` in: #1: Webbsida , antal grupperade fel: 7 ( 3.60 betyg )
- `< link rel="stylesheet">` in: #1: Webbsida , antal fel: 40 ( 1.00 betyg )
- CSS: X: Property X doesn't exist. (totalt 13 st)
- CSS: Parse Error. (totalt 10 st)
- CSS: X: X is not a X value. (totalt 9 st)
- CSS: X: Unknown dimension. (totalt 3 st)
- CSS: X: Parse Error. (totalt 2 st)
- CSS: X: only X can be a X. You must put a unit after your number. (totalt 2 st)
- CSS: X: The types are incompatible. (totalt 1 st)
- `< link rel="stylesheet">` in: #57: anchor, antal grupperade fel: 2 ( 4.60 betyg )
- `< link rel="stylesheet">` in: #57: anchor, antal fel: 2 ( 4.80 betyg )
- CSS: X: Property X doesn't exist. (totalt 1 st)
- CSS: X: Too many values or values are not recognized. (totalt 1 st)

Webbprestanda enligt Sitespeed.io

Kontroll av hur snabb webbplatsen är, genom opensource-verktyget Sitespeed.io.


Betyg: 4.94 av 5

Hastighet

- [desktop] TTFB (Time to First Byte): 153.00ms, ±24.00ms ( 5.00 betyg )
- [desktop] DOMContentLoaded: 526.67ms, ±26.33ms ( 4.95 betyg )
- [desktop] LCP (Largest Contentful Paint): 388.00ms, ±16.00ms ( 5.00 betyg )
- [desktop] Load: 939.67ms, ±34.33ms ( 4.12 betyg )
- [desktop] CLS (Cumulative Layout Shift): 0.00ms, ±0.00ms ( 5.00 betyg )
- [desktop] FirstVisualChange: 351.50ms, ±29.50ms ( 5.00 betyg )
- [desktop] SpeedIndex: 461.50ms, ±56.50ms ( 5.00 betyg )
- [desktop] VisualComplete85: 587.50ms, ±71.50ms ( 4.83 betyg )
- [desktop] FCP (First Contentful Paint): 354.00ms, ±0.00ms ( 5.00 betyg )
- [desktop] TBT (Total Blocking Time): 0.00ms, ±0.00ms ( 5.00 betyg )
- [desktop] firstPaint: 354.00ms, ±22.00ms
- [desktop] LastVisualChange: 587.50ms, ±71.50ms
- [mobile] TTFB (Time to First Byte): 132.00ms, ±0.00ms ( 5.00 betyg )
- [mobile] DOMContentLoaded: 506.67ms, ±12.33ms ( 5.00 betyg )
- [mobile] LCP (Largest Contentful Paint): 490.00ms, ±2.00ms ( 5.00 betyg )
- [mobile] Load: 1063.00ms, ±177.00ms ( 5.00 betyg )
- [mobile] FirstVisualChange: 335.00ms, ±2.00ms ( 5.00 betyg )
- [mobile] SpeedIndex: 455.00ms, ±18.00ms ( 5.00 betyg )
- [mobile] VisualComplete85: 486.00ms, ±20.00ms ( 5.00 betyg )
- [mobile] FCP (First Contentful Paint): 334.00ms, ±0.00ms ( 5.00 betyg )
- [mobile] CLS (Cumulative Layout Shift): 0.00ms, ±0.00ms ( 5.00 betyg )
- [mobile] TBT (Total Blocking Time): 0.00ms, ±0.00ms ( 5.00 betyg )
- [mobile] firstPaint: 334.00ms, ±2.00ms
- [mobile] LastVisualChange: 486.00ms, ±20.00ms

Sökmotoroptimering (SEO) enligt Google Lighthouse

Är webbplatsen bra på sökmotoroptimering/SEO? Alltså att nå ut via sökmotorer, enligt Google Lighthouse kriterier.


Betyg: 4.60 av 5

- Webbsidan kan ändå förbättras inom SEO.
- Länkarna är inte genomsökningsbara ( 1.00 betyg )

Kolla Lighthouse hos web.dev

Mjukvara

Alpha-versionen av vårt mjukvaratest. Kontrollerar om det finns utdaterade versioner av mjukvara eller ramverk. Det vill säga potentiella säkerhetsrisker.


Betyg: 2.39 av 5

- Innehållshanteringssystem: wordpress
- Webbserver: apache, nginx, tomcat
- Teknik: c, es6, js, mysql, php, sass, scss, typescript
- Licenser: apache-2.0, bsd-3-clause, gpl-3.0, mit
- Metadata: apple-touch-icon, canonical, dns-prefetch, icon, open-graph, viewport
- JS-ramverk/bibliotek: bootstrap, bun, chart.js, chartist, collapse-o-matic-javasctipt, core-js, deno, desandro-matches-selector, es5-shim, ev-emitter, fizzy-ui-utils, get-size, getsize, gutenberg, hammer.js, html, isotope, jed, jquery, jquery-migrate, jquery.countdown, js-cookie, masonry, masonry-layout, matomo, node, outlayer, proposal-array-grouping, proposal-change-array-by-copy, proposal-is-usv-string, proposal-promise-with-resolvers, requirejs, rhino, scrollmagic, secure-filters, sizzle, tag-manager, url, worker_threads
- Språk: en-us, sv, sv-se, sv_se, x-default
- Bildformat: jpeg, jpg, png

HTML

Kontrollerar HTML-koden mot Webperf-communityts egna HTML-test, för att se om det följer modern webbstandard.


Betyg: 4.53 av 5

- HTML är bra.

Webbstandard

- #1: Webbsida , antal grupperade fel: 4 ( 4.20 betyg )
- #1: Webbsida , antal fel: 6 ( 3.80 betyg )
- Attribute X duplicated (totalt 3 st)
- X attribute cannot be used on < link> in this context: X attribute must be X, X or X (totalt 1 st)
- No space between attributes (totalt 1 st)
- failed to tokenize X style=ba...X>X/>". (totalt 1 st)
- #55: cookiesharingif, antal grupperade fel: 2 ( 4.60 betyg )
- #55: cookiesharingif, antal fel: 2 ( 4.60 betyg )
- < html> is missing required X attribute (totalt 1 st)
- < head> element must have < title> as content (totalt 1 st)

Webbprestanda enligt Google Lighthouse

Ett hastighetstest från Google.


Betyg: 2.45 av 5

- Webbplatsen är ganska långsam.

Webbstandard

- Aktivera textkomprimering ( 1.00 betyg )

Hastighet

- Largest Contentful Paint ( 1.00 betyg )
- Cumulative Layout Shift: 0,369 ( 1.45 betyg )
- First Contentful Paint: 3,2 s ( 2.10 betyg )
- Speed Index: 4,2 s ( 3.85 betyg )
- Minska serverns första svarstid ( 1.00 betyg )
- Föranslut till obligatoriska källor ( 1.00 betyg )
- Element som största uppritningen av innehåll gjordes för ( 1.00 betyg )
- Undvik större layoutförskjutningar ( 1.00 betyg )
- Ta bort resurser som blockerar renderingen ( 1.00 betyg )
- Minifiera CSS ( 1.00 betyg )
- Minifiera JavaScript ( 1.00 betyg )
- Reducera CSS som inte används ( 1.00 betyg )
- Reducera JavaScript som inte används ( 1.00 betyg )
- Skicka bilder i modernare bildformat ( 1.00 betyg )
- Koda bilder effektivt ( 1.00 betyg )
- Aktivera textkomprimering ( 1.00 betyg )
- Time to Interactive: 10,7 s ( 1.15 betyg )
- Alla bildelement har inte `width` och `height`: ( 2.50 betyg )
- Skicka statiska tillgångar med en effektiv cachelagringspolicy: 37 resurser hittades ( 2.50 betyg )
- Undvik att skicka äldre JavaScript till moderna webbläsare: Möjlig databesparing 0 Kibit ( 2.50 betyg )
- Undvik ett onödigt stort DOM-träd: 998 element ( 2.50 betyg )

Kolla Lighthouse hos web.dev

Energieffektivitet

Hur mycket koldioxid produceras genom en sidvisning och hur mycket energi går åt jämfört med andra webbplatser på Webperf?


Betyg: 1.55 av 5

- Webbsidan genererar en hel del koldioxid :/
- Koldioxid per sidvisning: 3.63 gram
- Webbsidan är grönare än 31 % av testade webbplatser på webperf.se (Referens uppdaterad: 2025-01-09).
- Nätverksstorlek: 5.74 MB
( 1.55 betyg )

Spårning och integritet

Kontrollerar om webbplatsen har tredjeparter och molntjänster utanför EU:s jurisdiktion, och om fingerprint-teknik används eller annat som äventyrar användarens integritet?


Betyg: 4.03 av 5

Integritet & säkerhet

##### Dataskyddsförordningen och Schrems II-domen ( 1.00 betyg )
Antal olika länder: 6
Sidan skickades från Sverige: Nej
Länder utan adekvat nivå av dataskydd: 1
US, 13 förfrågningar:
- #2: hammer.min.js
- #3: monsido-script.
- #13: all.css
- #15: v4-shims.css
- #21: uc.js
- Fler än 5 förfrågningar hittade, döljer resten
##### Spårning ( 4.61 betyg )
- #4: container-N5W0l - Spårning hittad ( 1.00 betyg )
- #29: matomo.js - Spårning hittad ( 1.00 betyg )
- #38: matomo.php - Spårning hittad ( 1.00 betyg )
- Fler än 5 spårnings­förfrågningar hittade, döljer resten ( 1.00 betyg )
- Hittade totalt 9 spårnings­förfrågningar.
Besökaranalys används:
- #1: Webbsida - Har referens till Matomo
- #1: Webbsida - Har referens till Monsido Statistics
- #1: Webbsida - Har referens till New Relic
- #3: monsido-script. - Har referens till Monsido Statistics
- #4: container-N5W0l - Har referens till Matomo
- #4: container-N5W0l - Har referens till Matomo Tag Manager
- #29: matomo.js - Har referens till Matomo
- #38: matomo.php - Har referens till Matomo
- #63: nr-spa-1.286.0. - Har referens till New Relic
- #64: heatmaps.js - Har referens till Monsido Statistics
##### Annonsörer ( 4.56 betyg )
- #29: matomo.js - Annonsörs­förfrågan hittad ( 1.00 betyg )
- #38: matomo.php - Annonsörs­förfrågan hittad ( 1.00 betyg )
- #40: cabl.json - Annonsörs­förfrågan hittad ( 1.00 betyg )
- Fler än 5 annonsörs­förfrågningar hittade, döljer resten ( 1.00 betyg )
- Hittade totalt 10 annonsörs­förfrågningar.

Javascript

Kontrollerar ifall Javascript-koden är korrekt enligt Webperf-communityts egna Javascript-test. Testet är ett "lint"-test för att avgöra om det är korrekt Javascript och följer webbstandard.


Betyg: 2.57 av 5

- JS är dålig.

Webbstandard

- `< script>` in: #1: Webbsida , antal grupperade fel: 1 ( 4.80 betyg )
- `< script>` in: #1: Webbsida , antal fel: 1 ( 4.80 betyg )
- Parsing error: Unexpected token : (totalt 1 st)
- `< script src="...">` in: #1: Webbsida , antal grupperade fel: 7 ( 3.60 betyg )
- `< script src="...">` in: #1: Webbsida , antal fel: 1401 ( 1.00 betyg )
- X is not defined. (totalt 887 st)
- X is defined but never used. (totalt 307 st)
- X is assigned a value but never used. (totalt 85 st)
- Unexpected console statement. (totalt 73 st)
- Definition for rule X was not found. (totalt 47 st)
- Rule "no-unused-expressions" is already configured by another configuration comment in the preceding code. This configuration is ignored. (totalt 1 st)
- Parsing error: Identifier X has already been declared (totalt 1 st)
- `< script>` in: #54: cookiesharingif, antal grupperade fel: 3 ( 4.40 betyg )
- `< script>` in: #54: cookiesharingif, antal fel: 8 ( 3.40 betyg )
- X is defined but never used. (totalt 3 st)
- Unexpected console statement. (totalt 3 st)
- X is not defined. (totalt 2 st)
- `< script>` in: #56: anchor, antal grupperade fel: 1 ( 4.80 betyg )
- `< script>` in: #56: anchor, antal fel: 1 ( 4.80 betyg )
- X is not defined. (totalt 1 st)
- `< script src="...">` in: #56: anchor, antal grupperade fel: 4 ( 4.20 betyg )
- `< script src="...">` in: #56: anchor, antal fel: 100 ( 1.00 betyg )
- X is defined but never used. (totalt 78 st)
- X is not defined. (totalt 17 st)
- Unexpected console statement. (totalt 3 st)
- X is assigned a value but never used. (totalt 2 st)
- `content-type=".*javascript.*"` in: #4: container-N5W0l, antal grupperade fel: 4 ( 4.20 betyg )
- `content-type=".*javascript.*"` in: #4: container-N5W0l, antal fel: 193 ( 1.00 betyg )
- X is not defined. (totalt 104 st)
- X is defined but never used. (totalt 60 st)
- Unexpected console statement. (totalt 16 st)
- X is assigned a value but never used. (totalt 13 st)
- `content-type=".*javascript.*"` in: #46: matomo.js, antal grupperade fel: 4 ( 4.20 betyg )
- `content-type=".*javascript.*"` in: #46: matomo.js, antal fel: 350 ( 1.00 betyg )
- X is not defined. (totalt 206 st)
- X is defined but never used. (totalt 93 st)
- Unexpected console statement. (totalt 28 st)
- X is assigned a value but never used. (totalt 23 st)
- `content-type=".*javascript.*"` in: #55: sv.js, antal grupperade fel: 4 ( 4.20 betyg )
- `content-type=".*javascript.*"` in: #55: sv.js, antal fel: 351 ( 1.00 betyg )
- X is not defined. (totalt 207 st)
- X is defined but never used. (totalt 93 st)
- Unexpected console statement. (totalt 28 st)
- X is assigned a value but never used. (totalt 23 st)
- `content-type=".*javascript.*"` in: #59: recaptcha--sv.j, antal grupperade fel: 4 ( 4.20 betyg )
- `content-type=".*javascript.*"` in: #59: recaptcha--sv.j, antal fel: 451 ( 1.00 betyg )
- X is not defined. (totalt 224 st)
- X is defined but never used. (totalt 171 st)
- Unexpected console statement. (totalt 31 st)
- X is assigned a value but never used. (totalt 25 st)
- `content-type=".*javascript.*"` in: #63: nr-spa-1.286.0., antal grupperade fel: 4 ( 4.20 betyg )
- `content-type=".*javascript.*"` in: #63: nr-spa-1.286.0., antal fel: 511 ( 1.00 betyg )
- X is defined but never used. (totalt 231 st)
- X is not defined. (totalt 224 st)
- Unexpected console statement. (totalt 31 st)
- X is assigned a value but never used. (totalt 25 st)
- `content-type=".*javascript.*"` in: #64: heatmaps.js, antal grupperade fel: 4 ( 4.20 betyg )
- `content-type=".*javascript.*"` in: #64: heatmaps.js, antal fel: 522 ( 1.00 betyg )
- X is defined but never used. (totalt 240 st)
- X is not defined. (totalt 224 st)
- Unexpected console statement. (totalt 33 st)
- X is assigned a value but never used. (totalt 25 st)
- `content-type=".*javascript.*"` in: #70: common.js, antal grupperade fel: 4 ( 4.20 betyg )
- `content-type=".*javascript.*"` in: #70: common.js, antal fel: 534 ( 1.00 betyg )
- X is defined but never used. (totalt 251 st)
- X is not defined. (totalt 225 st)
- Unexpected console statement. (totalt 33 st)
- X is assigned a value but never used. (totalt 25 st)
- `content-type=".*javascript.*"` in: #71: util.js, antal grupperade fel: 4 ( 4.20 betyg )
- `content-type=".*javascript.*"` in: #71: util.js, antal fel: 553 ( 1.00 betyg )
- X is defined but never used. (totalt 266 st)
- X is not defined. (totalt 226 st)
- Unexpected console statement. (totalt 34 st)
- X is assigned a value but never used. (totalt 27 st)

Integritet & säkerhet

- `< script>` in: #1: Webbsida , antal grupperade fel: 1 ( 4.80 betyg )
- `< script>` in: #1: Webbsida , antal fel: 1 ( 4.80 betyg )
- Parsing error: Unexpected token : (totalt 1 st)
- `< script src="...">` in: #1: Webbsida , antal grupperade fel: 29 ( 1.00 betyg )
- `< script src="...">` in: #1: Webbsida , antal fel: 3236 ( 1.00 betyg )
- Expected an assignment or function call and instead saw an expression. (totalt 1604 st)
- Expected X and instead saw X. (totalt 1239 st)
- X is assigned to itself. (totalt 224 st)
- Do not access Object.prototype method X from target object. (totalt 49 st)
- Definition for rule X was not found. (totalt 47 st)
- Unnecessary X. (totalt 16 st)
- Unnecessary escape character: \/. (totalt 9 st)
- Unexpected string concatenation of literals. (totalt 7 st)
- Unnecessary escape character: \-. (totalt 6 st)
- Unnecessary escape character: \!. (totalt 4 st)
- Unnecessary escape character: \(. (totalt 3 st)
- X is not modified in this loop. (totalt 3 st)
- Unnecessary escape character: \[. (totalt 3 st)
- Unnecessary escape character: \). (totalt 3 st)
- Comparing to itself is potentially pointless. (totalt 2 st)
- Unnecessary escape character: \.. (totalt 2 st)
- The Function constructor is eval. (totalt 2 st)
- Unnecessary escape character: \:. (totalt 2 st)
- Rule "no-unused-expressions" is already configured by another configuration comment in the preceding code. This configuration is ignored. (totalt 1 st)
- Script URL is a form of eval. (totalt 1 st)
- Unsafe usage of ThrowStatement. (totalt 1 st)
- Async arrow function has no X expression. (totalt 1 st)
- Unnecessary escape character: \^. (totalt 1 st)
- Unnecessary escape character: \?. (totalt 1 st)
- Unnecessary escape character: \'. (totalt 1 st)
- Unnecessary escape character: \{. (totalt 1 st)
- Unnecessary escape character: \,. (totalt 1 st)
- Unnecessary escape character: \%. (totalt 1 st)
- Parsing error: Identifier X has already been declared (totalt 1 st)
- `< script>` in: #54: cookiesharingif, antal grupperade fel: 2 ( 4.60 betyg )
- `< script>` in: #54: cookiesharingif, antal fel: 80 ( 1.00 betyg )
- Expected X and instead saw X. (totalt 47 st)
- Expected an assignment or function call and instead saw an expression. (totalt 33 st)
- `< script src="...">` in: #56: anchor, antal grupperade fel: 18 ( 1.40 betyg )
- `< script src="...">` in: #56: anchor, antal fel: 2265 ( 1.00 betyg )
- Expected X and instead saw X. (totalt 1641 st)
- Expected an assignment or function call and instead saw an expression. (totalt 574 st)
- Unnecessary escape character: \/. (totalt 9 st)
- X is assigned to itself. (totalt 6 st)
- Unnecessary escape character: \). (totalt 5 st)
- Do not access Object.prototype method X from target object. (totalt 4 st)
- Unnecessary escape character: \?. (totalt 4 st)
- Comparing to itself is potentially pointless. (totalt 4 st)
- Unnecessary escape character: \^. (totalt 3 st)
- Unnecessary escape character: \-. (totalt 3 st)
- Unnecessary escape character: \.. (totalt 3 st)
- Unnecessary escape character: \(. (totalt 2 st)
- eval can be harmful. (totalt 2 st)
- Unnecessary escape character: \+. (totalt 1 st)
- X is not modified in this loop. (totalt 1 st)
- Unnecessary escape character: \[. (totalt 1 st)
- Unnecessary X. (totalt 1 st)
- Unnecessary escape character: \{. (totalt 1 st)
- `content-type=".*javascript.*"` in: #4: container-N5W0l, antal grupperade fel: 6 ( 3.80 betyg )
- `content-type=".*javascript.*"` in: #4: container-N5W0l, antal fel: 109 ( 1.00 betyg )
- Unnecessary escape character: \/. (totalt 84 st)
- Expected X and instead saw X. (totalt 16 st)
- Do not access Object.prototype method X from target object. (totalt 5 st)
- Unnecessary escape character: \[. (totalt 2 st)
- Unnecessary X. (totalt 1 st)
- Unnecessary escape character: \.. (totalt 1 st)
- `content-type=".*javascript.*"` in: #46: matomo.js, antal grupperade fel: 6 ( 3.80 betyg )
- `content-type=".*javascript.*"` in: #46: matomo.js, antal fel: 123 ( 1.00 betyg )
- Unnecessary escape character: \/. (totalt 84 st)
- Expected X and instead saw X. (totalt 26 st)
- Do not access Object.prototype method X from target object. (totalt 8 st)
- Unnecessary X. (totalt 2 st)
- Unnecessary escape character: \[. (totalt 2 st)
- Unnecessary escape character: \.. (totalt 1 st)
- `content-type=".*javascript.*"` in: #55: sv.js, antal grupperade fel: 6 ( 3.80 betyg )
- `content-type=".*javascript.*"` in: #55: sv.js, antal fel: 123 ( 1.00 betyg )
- Unnecessary escape character: \/. (totalt 84 st)
- Expected X and instead saw X. (totalt 26 st)
- Do not access Object.prototype method X from target object. (totalt 8 st)
- Unnecessary X. (totalt 2 st)
- Unnecessary escape character: \[. (totalt 2 st)
- Unnecessary escape character: \.. (totalt 1 st)
- `content-type=".*javascript.*"` in: #59: recaptcha--sv.j, antal grupperade fel: 18 ( 1.40 betyg )
- `content-type=".*javascript.*"` in: #59: recaptcha--sv.j, antal fel: 2388 ( 1.00 betyg )
- Expected X and instead saw X. (totalt 1667 st)
- Expected an assignment or function call and instead saw an expression. (totalt 574 st)
- Unnecessary escape character: \/. (totalt 93 st)
- Do not access Object.prototype method X from target object. (totalt 12 st)
- X is assigned to itself. (totalt 6 st)
- Unnecessary escape character: \). (totalt 5 st)
- Unnecessary escape character: \.. (totalt 4 st)
- Unnecessary escape character: \?. (totalt 4 st)
- Comparing to itself is potentially pointless. (totalt 4 st)
- Unnecessary X. (totalt 3 st)
- Unnecessary escape character: \[. (totalt 3 st)
- Unnecessary escape character: \^. (totalt 3 st)
- Unnecessary escape character: \-. (totalt 3 st)
- Unnecessary escape character: \(. (totalt 2 st)
- eval can be harmful. (totalt 2 st)
- Unnecessary escape character: \+. (totalt 1 st)
- X is not modified in this loop. (totalt 1 st)
- Unnecessary escape character: \{. (totalt 1 st)
- `content-type=".*javascript.*"` in: #63: nr-spa-1.286.0., antal grupperade fel: 18 ( 1.40 betyg )
- `content-type=".*javascript.*"` in: #63: nr-spa-1.286.0., antal fel: 2822 ( 1.00 betyg )
- Expected X and instead saw X. (totalt 1740 st)
- Expected an assignment or function call and instead saw an expression. (totalt 934 st)
- Unnecessary escape character: \/. (totalt 93 st)
- Do not access Object.prototype method X from target object. (totalt 12 st)
- X is assigned to itself. (totalt 6 st)
- Unnecessary escape character: \). (totalt 5 st)
- Unnecessary escape character: \.. (totalt 4 st)
- Unnecessary escape character: \?. (totalt 4 st)
- Comparing to itself is potentially pointless. (totalt 4 st)
- Unnecessary X. (totalt 3 st)
- Unnecessary escape character: \[. (totalt 3 st)
- Unnecessary escape character: \^. (totalt 3 st)
- Unnecessary escape character: \-. (totalt 3 st)
- Unnecessary escape character: \(. (totalt 2 st)
- eval can be harmful. (totalt 2 st)
- X is not modified in this loop. (totalt 2 st)
- Unnecessary escape character: \+. (totalt 1 st)
- Unnecessary escape character: \{. (totalt 1 st)
- `content-type=".*javascript.*"` in: #64: heatmaps.js, antal grupperade fel: 18 ( 1.40 betyg )
- `content-type=".*javascript.*"` in: #64: heatmaps.js, antal fel: 2859 ( 1.00 betyg )
- Expected X and instead saw X. (totalt 1754 st)
- Expected an assignment or function call and instead saw an expression. (totalt 957 st)
- Unnecessary escape character: \/. (totalt 93 st)
- Do not access Object.prototype method X from target object. (totalt 12 st)
- X is assigned to itself. (totalt 6 st)
- Unnecessary escape character: \). (totalt 5 st)
- Unnecessary escape character: \.. (totalt 4 st)
- Unnecessary escape character: \?. (totalt 4 st)
- Comparing to itself is potentially pointless. (totalt 4 st)
- Unnecessary X. (totalt 3 st)
- Unnecessary escape character: \[. (totalt 3 st)
- Unnecessary escape character: \^. (totalt 3 st)
- Unnecessary escape character: \-. (totalt 3 st)
- Unnecessary escape character: \(. (totalt 2 st)
- eval can be harmful. (totalt 2 st)
- X is not modified in this loop. (totalt 2 st)
- Unnecessary escape character: \+. (totalt 1 st)
- Unnecessary escape character: \{. (totalt 1 st)
- `content-type=".*javascript.*"` in: #70: common.js, antal grupperade fel: 20 ( 1.00 betyg )
- `content-type=".*javascript.*"` in: #70: common.js, antal fel: 3296 ( 1.00 betyg )
- Expected X and instead saw X. (totalt 1838 st)
- Expected an assignment or function call and instead saw an expression. (totalt 1299 st)
- Unnecessary escape character: \/. (totalt 94 st)
- Do not access Object.prototype method X from target object. (totalt 14 st)
- Unnecessary escape character: \?. (totalt 8 st)
- X is assigned to itself. (totalt 6 st)
- Unnecessary escape character: \). (totalt 5 st)
- Unnecessary X. (totalt 4 st)
- Unnecessary escape character: \.. (totalt 4 st)
- Comparing to itself is potentially pointless. (totalt 4 st)
- Unnecessary escape character: \[. (totalt 3 st)
- Unnecessary escape character: \^. (totalt 3 st)
- Unnecessary escape character: \-. (totalt 3 st)
- Unnecessary escape character: \(. (totalt 2 st)
- eval can be harmful. (totalt 2 st)
- X is not modified in this loop. (totalt 2 st)
- Unexpected string concatenation of literals. (totalt 2 st)
- Unnecessary escape character: \+. (totalt 1 st)
- Unnecessary escape character: \{. (totalt 1 st)
- Async method X has no X expression. (totalt 1 st)
- `content-type=".*javascript.*"` in: #71: util.js, antal grupperade fel: 22 ( 1.00 betyg )
- `content-type=".*javascript.*"` in: #71: util.js, antal fel: 4662 ( 1.00 betyg )
- Expected X and instead saw X. (totalt 2551 st)
- Expected an assignment or function call and instead saw an expression. (totalt 1928 st)
- Unnecessary escape character: \/. (totalt 94 st)
- Do not access Object.prototype method X from target object. (totalt 24 st)
- X is assigned to itself. (totalt 12 st)
- Unnecessary escape character: \?. (totalt 8 st)
- Unnecessary X. (totalt 6 st)
- Unnecessary escape character: \). (totalt 5 st)
- Unnecessary escape character: \.. (totalt 4 st)
- X is not modified in this loop. (totalt 4 st)
- Comparing to itself is potentially pointless. (totalt 4 st)
- Unnecessary escape character: \[. (totalt 3 st)
- Unnecessary escape character: \(. (totalt 3 st)
- Unnecessary escape character: \^. (totalt 3 st)
- Unnecessary escape character: \-. (totalt 3 st)
- eval can be harmful. (totalt 2 st)
- Unexpected string concatenation of literals. (totalt 2 st)
- Unnecessary escape character: \$. (totalt 2 st)
- Unnecessary escape character: \+. (totalt 1 st)
- Unnecessary escape character: \{. (totalt 1 st)
- Async method X has no X expression. (totalt 1 st)
- The Function constructor is eval. (totalt 1 st)

Integritetstest med Webbkoll

5 juli-stiftelsens tjänst Webbkoll kollar hur mycket som gjorts för att skydda besökarnas integritet. Betyg och bedömning är Webperfs.


Betyg: 3.19 av 5

- Ok integritet men borde nog bli bättre.

Integritet & säkerhet

- Strict Transport Security är dåligt. ( 1.00 betyg )
- Content Security Policy är dåligt. ( 1.00 betyg )
- Subresource Integrity SRI är dåligt. ( 1.00 betyg )
- HTTP-headers är ok, men har 1 fel och 0 varning(ar). ( 4.50 betyg )
- Kakor är ok, men har 4 fel och 0 varning(ar). ( 3.00 betyg )

E-post

Beta-version av e-postkollen. Utvärderar inställningar som SPF, DNS, MX och mycket mer.
Obs! Detta test ingår inte i totalbetyget, däremot i delbetyget Integritet & säkerhet.


Betyg: 3.67 av 5

Webbstandard

- MTA-STS DNS-post hittades inte ( 1.00 betyg )
- MTA-STS TXT hittades inte ( 1.00 betyg )
- SPF DNS-post hittades inte ( 1.00 betyg )
- DMARC DNS-postens underpolicy motsvarar policy, underpolicy är överflödig ( 3.00 betyg )
- DMARC DNS-post använde standardvärdet för PCT, det är överflödigt ( 3.00 betyg )

Integritet & säkerhet

- MTA-STS DNS-post hittades inte ( 1.00 betyg )
- MTA-STS TXT hittades inte ( 1.00 betyg )
- SPF DNS-post hittades inte ( 1.00 betyg )

CSS

Kontrollerar CSS-koden mot Webperf-communityts egna CSS-test, för att se om det följer modern webbstandard.


Betyg: 4.10 av 5

- CSS är bra.

Webbstandard

- `< link rel="stylesheet">` in: #1: Webbsida , antal grupperade fel: 50 ( 1.00 betyg )
- `< link rel="stylesheet">` in: #1: Webbsida , antal fel: 149 ( 1.00 betyg )
- Oväntat okänt värde “display” för egenskap “-ms-flexbox” (totalt 52 st)
- Unexpected deprecated keyword X for property X (declaration-property-value-keyword-no-deprecated) (totalt 10 st)
- Oväntad okänd funktion “alpha” (totalt 6 st)
- Oväntat okänt värde “-ms-flex-pack” för egenskap “flex-start” (totalt 6 st)
- Oväntad okänd anpassad egenskap “--wp--style--block-gap” (totalt 5 st)
- Oväntat okänt värde “-ms-flex-align” för egenskap “flex-end” (totalt 5 st)
- Oväntat okänt värde “-ms-flex-align” för egenskap “flex-start” (totalt 3 st)
- Oväntat okänt värde “padding-right” för egenskap “auto” (totalt 3 st)
- Oväntad okänd anpassad egenskap “--wp--lightbox-image-height” (totalt 2 st)
- Oväntad okänd anpassad egenskap “--wp--lightbox-image-width” (totalt 2 st)
- Oväntad okänd anpassad egenskap “--wp--lightbox-scrollbar-width” (totalt 2 st)
- Oväntad okänd anpassad egenskap “--wp--lightbox-initial-left-position” (totalt 2 st)
- Oväntad okänd anpassad egenskap “--wp--lightbox-initial-top-position” (totalt 2 st)
- Oväntad okänd anpassad egenskap “--wp--lightbox-scale” (totalt 2 st)
- Expected X to be X (declaration-property-value-keyword-no-deprecated) (totalt 2 st)
- Oväntat okänt värde “filter” för egenskap “alpha(opacity=80)” (totalt 2 st)
- Oväntat okänt värde “width” för egenskap “7ch\0 ” (totalt 2 st)
- Oväntad okänd anpassad egenskap “--bs-border-color-translucent” (totalt 2 st)
- Oväntad okänd enhet “ch�” (totalt 2 st)
- Oväntat okänt värde “filter” för egenskap “alpha(opacity=65)” (totalt 2 st)
- Oväntat okänt värde “filter” för egenskap “alpha(opacity=100)” (totalt 2 st)
- Oväntat okänt värde “-ms-flex-pack” för egenskap “flex-end” (totalt 2 st)
- Oväntat okänt värde “text-shadow” för egenskap “3” (totalt 2 st)
- Oväntat okänt värde “padding-left” för egenskap “auto” (totalt 2 st)
- Oväntad okänd typselektor “_” (totalt 2 st)
- Oväntad okänd anpassad egenskap “--wp--lightbox-container-height” (totalt 1 st)
- Oväntad okänd anpassad egenskap “--wp--lightbox-container-width” (totalt 1 st)
- Oväntad okänd anpassad egenskap “--wp--style--root--padding-top” (totalt 1 st)
- Oväntad okänd anpassad egenskap “--wp--style--root--padding-right” (totalt 1 st)
- Oväntad okänd anpassad egenskap “--wp--style--root--padding-bottom” (totalt 1 st)
- Oväntad okänd anpassad egenskap “--wp--style--root--padding-left” (totalt 1 st)
- Oväntat okänt värde “vertical-align” för egenskap “center” (totalt 1 st)
- Oväntad okänd anpassad egenskap “--meta-dashicons” (totalt 1 st)
- Oväntad okänd anpassad egenskap “--event-text-color” (totalt 1 st)
- Oväntad okänd anpassad egenskap “--view-grid-width” (totalt 1 st)
- Oväntad okänd anpassad egenskap “--a-color-1” (totalt 1 st)
- Oväntad okänd egenskap “font-smoothing” (totalt 1 st)
- Oväntad okänd egenskap “overflow-scrolling” (totalt 1 st)
- Oväntad ogiltig inledning “@-moz-document” för at-regel “url-prefix()” (totalt 1 st)
- Unexpected empty block (block-no-empty) (totalt 1 st)
- Oväntat okänt värde “padding-bottom” för egenskap “1e” (totalt 1 st)
- Oväntat okänt värde “transition” för egenskap “.3” (totalt 1 st)
- Oväntat okänt värde “-webkit-touch-callout” för egenskap “text” (totalt 1 st)
- Oväntat okänt värde “padding-top” för egenskap “auto” (totalt 1 st)
- Oväntat okänt värde “padding” för egenskap “auto” (totalt 1 st)
- Oväntad okänd media-funktion “transform-3d” (totalt 1 st)
- Oväntat okänt animationsnamn “slide” (totalt 1 st)
- Oväntad okänd pseudo-klass selektor “:first” (totalt 1 st)
- Oväntad okänd enhet “e” (totalt 1 st)
- Unknown word LyogLy8gQm9vayBJdGFsaWMgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdmcmVpZ2h0c2Fuc3Bybyc7CiAgc3JjOiB1cmwoJy4uL3dlYmZvbnRzL0ZTUGJpLmVvdCcpOwogIHNyYzogdXJsKCcuLi93ZWJmb250cy9GU1BiaS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLAogIHVybCgnLi4vd2ViZm9udHMvRlNQYmkud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksCiAgdXJsKCcuLi93ZWJmb250cy9GU1BiaS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksCiAgdXJsKCcuLi93ZWJmb250cy9GU1BiaS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwp9CgoKCi8qIC8vIEJvb2sgcmVndWxhciAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ2ZyZWlnaHRzYW5zcHJvJzsKICBzcmM6IHVybCgnLi4vd2ViZm9udHMvRlNQYi5lb3QnKTsKICBzcmM6IHVybCgnLi4vd2ViZm9udHMvRlNQYi5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLAogIHVybCgnLi4vd2ViZm9udHMvRlNQYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwKICB1cmwoJy4uL3dlYmZvbnRzL0ZTUGIud29mZicpIGZvcm1hdCgnd29mZicpLAogIHVybCgnLi4vd2ViZm9udHMvRlNQYi50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwp9CgovKiAvLyBTZW1pYm9sZCByZWd1bGFyICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnZnJlaWdodHNhbnNwcm8nOwogIHNyYzogdXJsKCcuLi93ZWJmb250cy9GU1BzYi5lb3QnKTsKICBzcmM6IHVybCgnLi4vd2ViZm9udHMvRlNQc2IuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwKICB1cmwoJy4uL3dlYmZvbnRzL0ZTUHNiLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLAogIHVybCgnLi4vd2ViZm9udHMvRlNQc2Iud29mZicpIGZvcm1hdCgnd29mZicpLAogIHVybCgnLi4vd2ViZm9udHMvRlNQc2IudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtZGlzcGxheTogc3dhcDsKfQoKQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdsZW1vbnllbGxvd3N1bic7CiAgc3JjOiB1cmwoJy4uL3dlYmZvbnRzL0xZUy5lb3QnKTsKICBzcmM6IHVybCgnLi4vd2ViZm9udHMvTFlTLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksCiAgdXJsKCcuLi93ZWJmb250cy9MWVMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksCiAgdXJsKCcuLi93ZWJmb250cy9MWVMud29mZicpIGZvcm1hdCgnd29mZicpLAogIHVybCgnLi4vd2ViZm9udHMvTFlTLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsKICBmb250LXdlaWdodDogMzAwOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LWRpc3BsYXk6IHN3YXA7Cn0KCkBmb250LWZhY2UgewogICAgZm9udC1mYW1pbHk6ICdvc3dhbGRyZWd1bGFyJzsKICAgIHNyYzogdXJsKCcuLi93ZWJmb250cy9Pc3dhbGQtUmVndWxhci5lb3QnKTsKICAgIHNyYzogdXJsKCcuLi93ZWJmb250cy9Pc3dhbGQtUmVndWxhci5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLAogICAgICAgICB1cmwoJy4uL3dlYmZvbnRzL09zd2FsZC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLAogICAgICAgICB1cmwoJy4uL3dlYmZvbnRzL09zd2FsZC1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwKICAgICAgICAgdXJsKCcuLi93ZWJmb250cy9Pc3dhbGQtUmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgZm9udC1kaXNwbGF5OiBzd2FwOwp9CgpAZm9udC1mYWNlIHsKICAgIGZvbnQtZmFtaWx5OiAndGhlaGFuZGJsYWNrdXBsb2FkZWRfZmlsZSc7CiAgICBzcmM6IHVybCgnLi4vd2ViZm9udHMvVGhlSGFuZEJsYWNrLzJmM2IxYV80XzAtd2ViZm9udC5lb3QnKTsKICAgIHNyYzogdXJsKCcuLi93ZWJmb250cy9UaGVIYW5kQmxhY2svMmYzYjFhXzRfMC13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksCiAgICAgICAgIHVybCgnLi4vd2ViZm9udHMvVGhlSGFuZEJsYWNrLzJmM2IxYV80XzAtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwKICAgICAgICAgdXJsKCcuLi93ZWJmb250cy9UaGVIYW5kQmxhY2svMmYzYjFhXzRfMC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwKICAgICAgICAgdXJsKCcuLi93ZWJmb250cy9UaGVIYW5kQmxhY2svMmYzYjFhXzRfMC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwKICAgICAgICAgdXJsKCcuLi93ZWJmb250cy9UaGVIYW5kQmxhY2svMmYzYjFhXzRfMC13ZWJmb250LnN2ZyN0aGVoYW5kYmxhY2t1cGxvYWRlZF9maWxlJykgZm9ybWF0KCdzdmcnKTsKICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBmb250LWRpc3BsYXk6IHN3YXA7Cn0KCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnQXZlcnRhJzsKICBzcmM6IHVybCgnLi4vd2ViZm9udHMvQXZlcnRhLVJlZ3VsYXIuZW90Jyk7CiAgc3JjOiB1cmwoJy4uL3dlYmZvbnRzL0F2ZXJ0YS1SZWd1bGFyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksCiAgICAgICB1cmwoJy4uL3dlYmZvbnRzL0F2ZXJ0YS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLAogICAgICAgdXJsKCcuLi93ZWJmb250cy9BdmVydGEtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksCiAgICAgICB1cmwoJy4uL3dlYmZvbnRzL0F2ZXJ0YS1SZWd1bGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsKCiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwp9CgpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0F2ZXJ0YS1Cb2xkJzsKICBzcmM6IHVybCgnLi4vd2ViZm9udHMvQXZlcnRhLUJvbGQuZW90Jyk7CiAgc3JjOiB1cmwoJy4uL3dlYmZvbnRzL0F2ZXJ0YS1Cb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksCiAgICAgICB1cmwoJy4uL3dlYmZvbnRzL0F2ZXJ0YS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLAogICAgICAgdXJsKCcuLi93ZWJmb250cy9BdmVydGEtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksCiAgICAgICB1cmwoJy4uL3dlYmZvbnRzL0F2ZXJ0YS1Cb2xkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsKCiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwp9CgoKCi8qKgogKiBAbGljZW5zZQogKiBNeUZvbnRzIFdlYmZvbnQgQnVpbGQgSUQgMzAwMDI3MSwgMjAxNS0wMy0zMFQxMDozMzo1Ni0wNDAwCiAqCiAqIFRoZSBmb250cyBsaXN0ZWQgaW4gdGhpcyBub3RpY2UgYXJlIHN1YmplY3QgdG8gdGhlIEVuZCBVc2VyIExpY2Vuc2UKICogQWdyZWVtZW50KHMpIGVudGVyZWQgaW50byBieSB0aGUgd2Vic2l0ZSBvd25lci4gQWxsIG90aGVyIHBhcnRpZXMgYXJlCiAqIGV4cGxpY2l0bHkgcmVzdHJpY3RlZCBmcm9tIHVzaW5nIHRoZSBMaWNlbnNlZCBXZWJmb250cyhzKS4KICoKICogWW91IG1heSBvYnRhaW4gYSB2YWxpZCBsaWNlbnNlIGF0IHRoZSBVUkxzIGJlbG93LgogKgogKiBXZWJmb250OiBGcmVpZ2h0U2Fuc1Byb0Jvb2stSXRhbGljIGJ5IEdhcmFnZUZvbnRzCiAqIFVSTDogaHR0cDovL3d3dy5teWZvbnRzLmNvbS9mb250cy9nYXJhZ2Vmb250cy9mcmVpZ2h0LXNhbnMtcHJvL2Jvb2staXRhbGljLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9CbGFjay1JdGFsaWMgYnkgR2FyYWdlRm9udHMKICogVVJMOiBodHRwOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2dhcmFnZWZvbnRzL2ZyZWlnaHQtc2Fucy1wcm8vYmxhY2staXRhbGljLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9Cb2xkLUl0YWxpYyBieSBHYXJhZ2VGb250cwogKiBVUkw6IGh0dHA6Ly93d3cubXlmb250cy5jb20vZm9udHMvZ2FyYWdlZm9udHMvZnJlaWdodC1zYW5zLXByby9ib2xkLWl0YWxpYy8KICogQ29weXJpZ2h0OiBDb3B5cmlnaHQgJiN4MDBBOTsgMjAwNC0yMDA5LCBKb3NodWEgRGFyZGVuICZhbXA7IFBoaWwncyBGb250cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBQdWJsaXNoZWQgYnkgR2FyYWdlZm9udHMgVVNBIDMwMS04NzktOTIyMiB3d3cuZ2FyYWdlZm9udHMuY29tCiAqCiAqIFdlYmZvbnQ6IEZyZWlnaHRTYW5zUHJvU2VtaWJvbGQtSXRhbGljIGJ5IEdhcmFnZUZvbnRzCiAqIFVSTDogaHR0cDovL3d3dy5teWZvbnRzLmNvbS9mb250cy9nYXJhZ2Vmb250cy9mcmVpZ2h0LXNhbnMtcHJvL3NlbWlib2xkLWl0YWxpYy8KICogQ29weXJpZ2h0OiBDb3B5cmlnaHQgJiN4MDBBOTsgMjAwNC0yMDA5LCBKb3NodWEgRGFyZGVuICZhbXA7IFBoaWwncyBGb250cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBQdWJsaXNoZWQgYnkgR2FyYWdlZm9udHMgVVNBIDMwMS04NzktOTIyMiB3d3cuZ2FyYWdlZm9udHMuY29tCiAqCiAqIFdlYmZvbnQ6IEZyZWlnaHRTYW5zUHJvTWVkaXVtLUl0YWxpYyBieSBHYXJhZ2VGb250cwogKiBVUkw6IGh0dHA6Ly93d3cubXlmb250cy5jb20vZm9udHMvZ2FyYWdlZm9udHMvZnJlaWdodC1zYW5zLXByby9tZWRpdW0taXRhbGljLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9MaWdodC1JdGFsaWMgYnkgR2FyYWdlRm9udHMKICogVVJMOiBodHRwOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2dhcmFnZWZvbnRzL2ZyZWlnaHQtc2Fucy1wcm8vbGlnaHQtaXRhbGljLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9TZW1pYm9sZC1SZWd1bGFyIGJ5IEdhcmFnZUZvbnRzCiAqIFVSTDogaHR0cDovL3d3dy5teWZvbnRzLmNvbS9mb250cy9nYXJhZ2Vmb250cy9mcmVpZ2h0LXNhbnMtcHJvL3NlbWlib2xkLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9MaWdodC1SZWd1bGFyIGJ5IEdhcmFnZUZvbnRzCiAqIFVSTDogaHR0cDovL3d3dy5teWZvbnRzLmNvbS9mb250cy9nYXJhZ2Vmb250cy9mcmVpZ2h0LXNhbnMtcHJvL2xpZ2h0LwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9CbGFjay1SZWd1bGFyIGJ5IEdhcmFnZUZvbnRzCiAqIFVSTDogaHR0cDovL3d3dy5teWZvbnRzLmNvbS9mb250cy9nYXJhZ2Vmb250cy9mcmVpZ2h0LXNhbnMtcHJvL2JsYWNrLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9Cb2xkLVJlZ3VsYXIgYnkgR2FyYWdlRm9udHMKICogVVJMOiBodHRwOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2dhcmFnZWZvbnRzL2ZyZWlnaHQtc2Fucy1wcm8vYm9sZC8KICogQ29weXJpZ2h0OiBDb3B5cmlnaHQgJiN4MDBBOTsgMjAwNC0yMDA5LCBKb3NodWEgRGFyZGVuICZhbXA7IFBoaWwncyBGb250cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBQdWJsaXNoZWQgYnkgR2FyYWdlZm9udHMgVVNBIDMwMS04NzktOTIyMiB3d3cuZ2FyYWdlZm9udHMuY29tCiAqCiAqIFdlYmZvbnQ6IEZyZWlnaHRTYW5zUHJvTWVkaXVtLVJlZ3VsYXIgYnkgR2FyYWdlRm9udHMKICogVVJMOiBodHRwOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2dhcmFnZWZvbnRzL2ZyZWlnaHQtc2Fucy1wcm8vbWVkaXVtLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9Cb29rLVJlZ3VsYXIgYnkgR2FyYWdlRm9udHMKICogVVJMOiBodHRwOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2dhcmFnZWZvbnRzL2ZyZWlnaHQtc2Fucy1wcm8vYm9vay8KICogQ29weXJpZ2h0OiBDb3B5cmlnaHQgJiN4MDBBOTsgMjAwNC0yMDEwLCBKb3NodWEgRGFyZGVuICZhbXA7IFBoaWwncyBGb250cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBQdWJsaXNoZWQgYnkgR2FyYWdlZm9udHMgVVNBIDMwMS04NzktOTIyMiB3d3cuZ2FyYWdlZm9udHMuY29tCiAqCiAqIFdlYmZvbnQ6IExlbW9uWWVsbG93U3VuIGJ5IEhhbm9kZWQKICogVVJMOiBodHRwOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2hhbm9kZWQvbGVtb24teWVsbG93LXN1bi9yZWd1bGFyLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAoYykgMjAxNCBieSBEYXZpZCBLZXJraG9mZi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICoKICogTGljZW5zZTogaHR0cDovL3d3dy5teWZvbnRzLmNvbS92aWV3bGljZW5zZT90eXBlPXdlYiZidWlsZGlkPTMwMDAyNzEKICogTGljZW5zZWQgcGFnZXZpZXdzOiAxMCwwMDAKICoKICogwqkgMjAxNSBNeUZvbnRzIEluYwoqLwoKLyogQGltcG9ydCBtdXN0IGJlIGF0IHRvcCBvZiBmaWxlLCBvdGhlcndpc2UgQ1NTIHdpbGwgbm90IHdvcmsgKi8KLyogQGltcG9ydCB1cmwoIi8vaGVsbG8ubXlmb250cy5uZXQvY291bnQvMmRjN2NmIik7ICovCgoKQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6ICdGcmVpZ2h0U2Fuc1Byb0Jvb2stSXRhbGljJztzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzBfMC5lb3QnKTtzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzBfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzBfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl8wXzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzBfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC1kaXNwbGF5OiBzd2FwO30KCgpAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0ZyZWlnaHRTYW5zUHJvQmxhY2stSXRhbGljJztzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzFfMC5lb3QnKTtzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzFfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzFfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl8xXzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzFfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC1kaXNwbGF5OiBzd2FwO30KCgpAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0ZyZWlnaHRTYW5zUHJvQm9sZC1JdGFsaWMnO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfMl8wLmVvdCcpO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfMl8wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfMl8wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzJfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfMl8wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LWRpc3BsYXk6IHN3YXA7fQoKCkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnRnJlaWdodFNhbnNQcm9TZW1pYm9sZC1JdGFsaWMnO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfM18wLmVvdCcpO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfM18wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfM18wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzNfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfM18wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LWRpc3BsYXk6IHN3YXA7fQoKCkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnRnJlaWdodFNhbnNQcm9NZWRpdW0tSXRhbGljJztzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzRfMC5lb3QnKTtzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzRfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzRfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl80XzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzRfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC1kaXNwbGF5OiBzd2FwO30KCgpAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0ZyZWlnaHRTYW5zUHJvTGlnaHQtSXRhbGljJztzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzVfMC5lb3QnKTtzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzVfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzVfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl81XzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzVfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC1kaXNwbGF5OiBzd2FwO30KCgpAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0ZyZWlnaHRTYW5zUHJvU2VtaWJvbGQtUmVndWxhcic7c3JjOiB1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl82XzAuZW90Jyk7c3JjOiB1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl82XzAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl82XzAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfNl8wLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl82XzAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO2ZvbnQtZGlzcGxheTogc3dhcDt9CgoKQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6ICdGcmVpZ2h0U2Fuc1Byb0xpZ2h0LVJlZ3VsYXInO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfN18wLmVvdCcpO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfN18wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfN18wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzdfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfN18wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LWRpc3BsYXk6IHN3YXA7fQoKCkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnRnJlaWdodFNhbnNQcm9CbGFjay1SZWd1bGFyJztzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzhfMC5lb3QnKTtzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzhfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzhfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl84XzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzhfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC1kaXNwbGF5OiBzd2FwO30KCgpAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0ZyZWlnaHRTYW5zUHJvQm9sZC1SZWd1bGFyJztzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzlfMC5lb3QnKTtzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzlfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzlfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl85XzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzlfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC1kaXNwbGF5OiBzd2FwO30KCgpAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0ZyZWlnaHRTYW5zUHJvTWVkaXVtLVJlZ3VsYXInO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQV8wLmVvdCcpO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQV8wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQV8wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGX0FfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQV8wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LWRpc3BsYXk6IHN3YXA7fQoKCkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnRnJlaWdodFNhbnNQcm9Cb29rLVJlZ3VsYXInO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQl8wLmVvdCcpO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQl8wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQl8wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGX0JfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQl8wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LWRpc3BsYXk6IHN3YXA7fQoKCkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnTGVtb25ZZWxsb3dTdW4nO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQ18wLmVvdCcpO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQ18wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQ18wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGX0NfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQ18wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LWRpc3BsYXk6IHN3YXA7fQo= (CssSyntaxError) (totalt 1 st)
- `< link rel="stylesheet">` in: #58: anchor, antal grupperade fel: 5 ( 4.00 betyg )
- `< link rel="stylesheet">` in: #58: anchor, antal fel: 7 ( 3.60 betyg )
- Oväntat okänt värde “display” för egenskap “-ms-flexbox” (totalt 3 st)
- Unexpected empty block (block-no-empty) (totalt 1 st)
- Oväntat okänt värde “box-shadow” för egenskap “,” (totalt 1 st)
- Oväntad okänd egenskap “box-flex” (totalt 1 st)
- Oväntad okänd typselektor “sentinel” (totalt 1 st)
- `content-type=".*css.*"` in: #20: webfonts.css, antal grupperade fel: 1 ( 4.80 betyg )
- `content-type=".*css.*"` in: #20: webfonts.css, antal fel: 1 ( 4.80 betyg )
- Unknown word LyogLy8gQm9vayBJdGFsaWMgKi8KQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdmcmVpZ2h0c2Fuc3Bybyc7CiAgc3JjOiB1cmwoJy4uL3dlYmZvbnRzL0ZTUGJpLmVvdCcpOwogIHNyYzogdXJsKCcuLi93ZWJmb250cy9GU1BiaS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLAogIHVybCgnLi4vd2ViZm9udHMvRlNQYmkud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksCiAgdXJsKCcuLi93ZWJmb250cy9GU1BiaS53b2ZmJykgZm9ybWF0KCd3b2ZmJyksCiAgdXJsKCcuLi93ZWJmb250cy9GU1BiaS50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBmb250LXN0eWxlOiBpdGFsaWM7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwp9CgoKCi8qIC8vIEJvb2sgcmVndWxhciAqLwpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ2ZyZWlnaHRzYW5zcHJvJzsKICBzcmM6IHVybCgnLi4vd2ViZm9udHMvRlNQYi5lb3QnKTsKICBzcmM6IHVybCgnLi4vd2ViZm9udHMvRlNQYi5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLAogIHVybCgnLi4vd2ViZm9udHMvRlNQYi53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwKICB1cmwoJy4uL3dlYmZvbnRzL0ZTUGIud29mZicpIGZvcm1hdCgnd29mZicpLAogIHVybCgnLi4vd2ViZm9udHMvRlNQYi50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7CiAgZm9udC13ZWlnaHQ6IDMwMDsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwp9CgovKiAvLyBTZW1pYm9sZCByZWd1bGFyICovCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnZnJlaWdodHNhbnNwcm8nOwogIHNyYzogdXJsKCcuLi93ZWJmb250cy9GU1BzYi5lb3QnKTsKICBzcmM6IHVybCgnLi4vd2ViZm9udHMvRlNQc2IuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSwKICB1cmwoJy4uL3dlYmZvbnRzL0ZTUHNiLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLAogIHVybCgnLi4vd2ViZm9udHMvRlNQc2Iud29mZicpIGZvcm1hdCgnd29mZicpLAogIHVybCgnLi4vd2ViZm9udHMvRlNQc2IudHRmJykgZm9ybWF0KCd0cnVldHlwZScpOwogIGZvbnQtd2VpZ2h0OiA2MDA7CiAgZm9udC1zdHlsZTogbm9ybWFsOwogIGZvbnQtZGlzcGxheTogc3dhcDsKfQoKQGZvbnQtZmFjZSB7CiAgZm9udC1mYW1pbHk6ICdsZW1vbnllbGxvd3N1bic7CiAgc3JjOiB1cmwoJy4uL3dlYmZvbnRzL0xZUy5lb3QnKTsKICBzcmM6IHVybCgnLi4vd2ViZm9udHMvTFlTLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksCiAgdXJsKCcuLi93ZWJmb250cy9MWVMud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksCiAgdXJsKCcuLi93ZWJmb250cy9MWVMud29mZicpIGZvcm1hdCgnd29mZicpLAogIHVybCgnLi4vd2ViZm9udHMvTFlTLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsKICBmb250LXdlaWdodDogMzAwOwogIGZvbnQtc3R5bGU6IG5vcm1hbDsKICBmb250LWRpc3BsYXk6IHN3YXA7Cn0KCkBmb250LWZhY2UgewogICAgZm9udC1mYW1pbHk6ICdvc3dhbGRyZWd1bGFyJzsKICAgIHNyYzogdXJsKCcuLi93ZWJmb250cy9Pc3dhbGQtUmVndWxhci5lb3QnKTsKICAgIHNyYzogdXJsKCcuLi93ZWJmb250cy9Pc3dhbGQtUmVndWxhci5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLAogICAgICAgICB1cmwoJy4uL3dlYmZvbnRzL09zd2FsZC1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLAogICAgICAgICB1cmwoJy4uL3dlYmZvbnRzL09zd2FsZC1SZWd1bGFyLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwKICAgICAgICAgdXJsKCcuLi93ZWJmb250cy9Pc3dhbGQtUmVndWxhci50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7CiAgICBmb250LXdlaWdodDogNjAwOwogICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgZm9udC1kaXNwbGF5OiBzd2FwOwp9CgpAZm9udC1mYWNlIHsKICAgIGZvbnQtZmFtaWx5OiAndGhlaGFuZGJsYWNrdXBsb2FkZWRfZmlsZSc7CiAgICBzcmM6IHVybCgnLi4vd2ViZm9udHMvVGhlSGFuZEJsYWNrLzJmM2IxYV80XzAtd2ViZm9udC5lb3QnKTsKICAgIHNyYzogdXJsKCcuLi93ZWJmb250cy9UaGVIYW5kQmxhY2svMmYzYjFhXzRfMC13ZWJmb250LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksCiAgICAgICAgIHVybCgnLi4vd2ViZm9udHMvVGhlSGFuZEJsYWNrLzJmM2IxYV80XzAtd2ViZm9udC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSwKICAgICAgICAgdXJsKCcuLi93ZWJmb250cy9UaGVIYW5kQmxhY2svMmYzYjFhXzRfMC13ZWJmb250LndvZmYnKSBmb3JtYXQoJ3dvZmYnKSwKICAgICAgICAgdXJsKCcuLi93ZWJmb250cy9UaGVIYW5kQmxhY2svMmYzYjFhXzRfMC13ZWJmb250LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSwKICAgICAgICAgdXJsKCcuLi93ZWJmb250cy9UaGVIYW5kQmxhY2svMmYzYjFhXzRfMC13ZWJmb250LnN2ZyN0aGVoYW5kYmxhY2t1cGxvYWRlZF9maWxlJykgZm9ybWF0KCdzdmcnKTsKICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBmb250LWRpc3BsYXk6IHN3YXA7Cn0KCkBmb250LWZhY2UgewogIGZvbnQtZmFtaWx5OiAnQXZlcnRhJzsKICBzcmM6IHVybCgnLi4vd2ViZm9udHMvQXZlcnRhLVJlZ3VsYXIuZW90Jyk7CiAgc3JjOiB1cmwoJy4uL3dlYmZvbnRzL0F2ZXJ0YS1SZWd1bGFyLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksCiAgICAgICB1cmwoJy4uL3dlYmZvbnRzL0F2ZXJ0YS1SZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLAogICAgICAgdXJsKCcuLi93ZWJmb250cy9BdmVydGEtUmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyksCiAgICAgICB1cmwoJy4uL3dlYmZvbnRzL0F2ZXJ0YS1SZWd1bGFyLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsKCiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwp9CgpAZm9udC1mYWNlIHsKICBmb250LWZhbWlseTogJ0F2ZXJ0YS1Cb2xkJzsKICBzcmM6IHVybCgnLi4vd2ViZm9udHMvQXZlcnRhLUJvbGQuZW90Jyk7CiAgc3JjOiB1cmwoJy4uL3dlYmZvbnRzL0F2ZXJ0YS1Cb2xkLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksCiAgICAgICB1cmwoJy4uL3dlYmZvbnRzL0F2ZXJ0YS1Cb2xkLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLAogICAgICAgdXJsKCcuLi93ZWJmb250cy9BdmVydGEtQm9sZC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksCiAgICAgICB1cmwoJy4uL3dlYmZvbnRzL0F2ZXJ0YS1Cb2xkLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTsKCiAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKICBmb250LXN0eWxlOiBub3JtYWw7CiAgZm9udC1kaXNwbGF5OiBzd2FwOwp9CgoKCi8qKgogKiBAbGljZW5zZQogKiBNeUZvbnRzIFdlYmZvbnQgQnVpbGQgSUQgMzAwMDI3MSwgMjAxNS0wMy0zMFQxMDozMzo1Ni0wNDAwCiAqCiAqIFRoZSBmb250cyBsaXN0ZWQgaW4gdGhpcyBub3RpY2UgYXJlIHN1YmplY3QgdG8gdGhlIEVuZCBVc2VyIExpY2Vuc2UKICogQWdyZWVtZW50KHMpIGVudGVyZWQgaW50byBieSB0aGUgd2Vic2l0ZSBvd25lci4gQWxsIG90aGVyIHBhcnRpZXMgYXJlCiAqIGV4cGxpY2l0bHkgcmVzdHJpY3RlZCBmcm9tIHVzaW5nIHRoZSBMaWNlbnNlZCBXZWJmb250cyhzKS4KICoKICogWW91IG1heSBvYnRhaW4gYSB2YWxpZCBsaWNlbnNlIGF0IHRoZSBVUkxzIGJlbG93LgogKgogKiBXZWJmb250OiBGcmVpZ2h0U2Fuc1Byb0Jvb2stSXRhbGljIGJ5IEdhcmFnZUZvbnRzCiAqIFVSTDogaHR0cDovL3d3dy5teWZvbnRzLmNvbS9mb250cy9nYXJhZ2Vmb250cy9mcmVpZ2h0LXNhbnMtcHJvL2Jvb2staXRhbGljLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9CbGFjay1JdGFsaWMgYnkgR2FyYWdlRm9udHMKICogVVJMOiBodHRwOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2dhcmFnZWZvbnRzL2ZyZWlnaHQtc2Fucy1wcm8vYmxhY2staXRhbGljLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9Cb2xkLUl0YWxpYyBieSBHYXJhZ2VGb250cwogKiBVUkw6IGh0dHA6Ly93d3cubXlmb250cy5jb20vZm9udHMvZ2FyYWdlZm9udHMvZnJlaWdodC1zYW5zLXByby9ib2xkLWl0YWxpYy8KICogQ29weXJpZ2h0OiBDb3B5cmlnaHQgJiN4MDBBOTsgMjAwNC0yMDA5LCBKb3NodWEgRGFyZGVuICZhbXA7IFBoaWwncyBGb250cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBQdWJsaXNoZWQgYnkgR2FyYWdlZm9udHMgVVNBIDMwMS04NzktOTIyMiB3d3cuZ2FyYWdlZm9udHMuY29tCiAqCiAqIFdlYmZvbnQ6IEZyZWlnaHRTYW5zUHJvU2VtaWJvbGQtSXRhbGljIGJ5IEdhcmFnZUZvbnRzCiAqIFVSTDogaHR0cDovL3d3dy5teWZvbnRzLmNvbS9mb250cy9nYXJhZ2Vmb250cy9mcmVpZ2h0LXNhbnMtcHJvL3NlbWlib2xkLWl0YWxpYy8KICogQ29weXJpZ2h0OiBDb3B5cmlnaHQgJiN4MDBBOTsgMjAwNC0yMDA5LCBKb3NodWEgRGFyZGVuICZhbXA7IFBoaWwncyBGb250cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBQdWJsaXNoZWQgYnkgR2FyYWdlZm9udHMgVVNBIDMwMS04NzktOTIyMiB3d3cuZ2FyYWdlZm9udHMuY29tCiAqCiAqIFdlYmZvbnQ6IEZyZWlnaHRTYW5zUHJvTWVkaXVtLUl0YWxpYyBieSBHYXJhZ2VGb250cwogKiBVUkw6IGh0dHA6Ly93d3cubXlmb250cy5jb20vZm9udHMvZ2FyYWdlZm9udHMvZnJlaWdodC1zYW5zLXByby9tZWRpdW0taXRhbGljLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9MaWdodC1JdGFsaWMgYnkgR2FyYWdlRm9udHMKICogVVJMOiBodHRwOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2dhcmFnZWZvbnRzL2ZyZWlnaHQtc2Fucy1wcm8vbGlnaHQtaXRhbGljLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9TZW1pYm9sZC1SZWd1bGFyIGJ5IEdhcmFnZUZvbnRzCiAqIFVSTDogaHR0cDovL3d3dy5teWZvbnRzLmNvbS9mb250cy9nYXJhZ2Vmb250cy9mcmVpZ2h0LXNhbnMtcHJvL3NlbWlib2xkLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9MaWdodC1SZWd1bGFyIGJ5IEdhcmFnZUZvbnRzCiAqIFVSTDogaHR0cDovL3d3dy5teWZvbnRzLmNvbS9mb250cy9nYXJhZ2Vmb250cy9mcmVpZ2h0LXNhbnMtcHJvL2xpZ2h0LwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9CbGFjay1SZWd1bGFyIGJ5IEdhcmFnZUZvbnRzCiAqIFVSTDogaHR0cDovL3d3dy5teWZvbnRzLmNvbS9mb250cy9nYXJhZ2Vmb250cy9mcmVpZ2h0LXNhbnMtcHJvL2JsYWNrLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9Cb2xkLVJlZ3VsYXIgYnkgR2FyYWdlRm9udHMKICogVVJMOiBodHRwOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2dhcmFnZWZvbnRzL2ZyZWlnaHQtc2Fucy1wcm8vYm9sZC8KICogQ29weXJpZ2h0OiBDb3B5cmlnaHQgJiN4MDBBOTsgMjAwNC0yMDA5LCBKb3NodWEgRGFyZGVuICZhbXA7IFBoaWwncyBGb250cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBQdWJsaXNoZWQgYnkgR2FyYWdlZm9udHMgVVNBIDMwMS04NzktOTIyMiB3d3cuZ2FyYWdlZm9udHMuY29tCiAqCiAqIFdlYmZvbnQ6IEZyZWlnaHRTYW5zUHJvTWVkaXVtLVJlZ3VsYXIgYnkgR2FyYWdlRm9udHMKICogVVJMOiBodHRwOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2dhcmFnZWZvbnRzL2ZyZWlnaHQtc2Fucy1wcm8vbWVkaXVtLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAmI3gwMEE5OyAyMDA0LTIwMDksIEpvc2h1YSBEYXJkZW4gJmFtcDsgUGhpbCdzIEZvbnRzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFB1Ymxpc2hlZCBieSBHYXJhZ2Vmb250cyBVU0EgMzAxLTg3OS05MjIyIHd3dy5nYXJhZ2Vmb250cy5jb20KICoKICogV2ViZm9udDogRnJlaWdodFNhbnNQcm9Cb29rLVJlZ3VsYXIgYnkgR2FyYWdlRm9udHMKICogVVJMOiBodHRwOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2dhcmFnZWZvbnRzL2ZyZWlnaHQtc2Fucy1wcm8vYm9vay8KICogQ29weXJpZ2h0OiBDb3B5cmlnaHQgJiN4MDBBOTsgMjAwNC0yMDEwLCBKb3NodWEgRGFyZGVuICZhbXA7IFBoaWwncyBGb250cywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBQdWJsaXNoZWQgYnkgR2FyYWdlZm9udHMgVVNBIDMwMS04NzktOTIyMiB3d3cuZ2FyYWdlZm9udHMuY29tCiAqCiAqIFdlYmZvbnQ6IExlbW9uWWVsbG93U3VuIGJ5IEhhbm9kZWQKICogVVJMOiBodHRwOi8vd3d3Lm15Zm9udHMuY29tL2ZvbnRzL2hhbm9kZWQvbGVtb24teWVsbG93LXN1bi9yZWd1bGFyLwogKiBDb3B5cmlnaHQ6IENvcHlyaWdodCAoYykgMjAxNCBieSBEYXZpZCBLZXJraG9mZi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICoKICogTGljZW5zZTogaHR0cDovL3d3dy5teWZvbnRzLmNvbS92aWV3bGljZW5zZT90eXBlPXdlYiZidWlsZGlkPTMwMDAyNzEKICogTGljZW5zZWQgcGFnZXZpZXdzOiAxMCwwMDAKICoKICogwqkgMjAxNSBNeUZvbnRzIEluYwoqLwoKLyogQGltcG9ydCBtdXN0IGJlIGF0IHRvcCBvZiBmaWxlLCBvdGhlcndpc2UgQ1NTIHdpbGwgbm90IHdvcmsgKi8KLyogQGltcG9ydCB1cmwoIi8vaGVsbG8ubXlmb250cy5uZXQvY291bnQvMmRjN2NmIik7ICovCgoKQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6ICdGcmVpZ2h0U2Fuc1Byb0Jvb2stSXRhbGljJztzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzBfMC5lb3QnKTtzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzBfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzBfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl8wXzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzBfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC1kaXNwbGF5OiBzd2FwO30KCgpAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0ZyZWlnaHRTYW5zUHJvQmxhY2stSXRhbGljJztzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzFfMC5lb3QnKTtzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzFfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzFfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl8xXzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzFfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC1kaXNwbGF5OiBzd2FwO30KCgpAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0ZyZWlnaHRTYW5zUHJvQm9sZC1JdGFsaWMnO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfMl8wLmVvdCcpO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfMl8wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfMl8wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzJfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfMl8wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LWRpc3BsYXk6IHN3YXA7fQoKCkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnRnJlaWdodFNhbnNQcm9TZW1pYm9sZC1JdGFsaWMnO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfM18wLmVvdCcpO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfM18wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfM18wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzNfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfM18wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LWRpc3BsYXk6IHN3YXA7fQoKCkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnRnJlaWdodFNhbnNQcm9NZWRpdW0tSXRhbGljJztzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzRfMC5lb3QnKTtzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzRfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzRfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl80XzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzRfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC1kaXNwbGF5OiBzd2FwO30KCgpAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0ZyZWlnaHRTYW5zUHJvTGlnaHQtSXRhbGljJztzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzVfMC5lb3QnKTtzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzVfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzVfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl81XzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzVfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC1kaXNwbGF5OiBzd2FwO30KCgpAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0ZyZWlnaHRTYW5zUHJvU2VtaWJvbGQtUmVndWxhcic7c3JjOiB1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl82XzAuZW90Jyk7c3JjOiB1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl82XzAuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl82XzAud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfNl8wLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl82XzAudHRmJykgZm9ybWF0KCd0cnVldHlwZScpO2ZvbnQtZGlzcGxheTogc3dhcDt9CgoKQGZvbnQtZmFjZSB7Zm9udC1mYW1pbHk6ICdGcmVpZ2h0U2Fuc1Byb0xpZ2h0LVJlZ3VsYXInO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfN18wLmVvdCcpO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfN18wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfN18wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzdfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfN18wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LWRpc3BsYXk6IHN3YXA7fQoKCkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnRnJlaWdodFNhbnNQcm9CbGFjay1SZWd1bGFyJztzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzhfMC5lb3QnKTtzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzhfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzhfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl84XzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzhfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC1kaXNwbGF5OiBzd2FwO30KCgpAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0ZyZWlnaHRTYW5zUHJvQm9sZC1SZWd1bGFyJztzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzlfMC5lb3QnKTtzcmM6IHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzlfMC5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzlfMC53b2ZmMicpIGZvcm1hdCgnd29mZjInKSx1cmwoJy4uL3dlYmZvbnRzL2ZyZWlnaHRzYW5zcHJvL3dlYmZvbnRzLzJEQzdDRl85XzAud29mZicpIGZvcm1hdCgnd29mZicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGXzlfMC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC1kaXNwbGF5OiBzd2FwO30KCgpAZm9udC1mYWNlIHtmb250LWZhbWlseTogJ0ZyZWlnaHRTYW5zUHJvTWVkaXVtLVJlZ3VsYXInO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQV8wLmVvdCcpO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQV8wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQV8wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGX0FfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQV8wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LWRpc3BsYXk6IHN3YXA7fQoKCkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnRnJlaWdodFNhbnNQcm9Cb29rLVJlZ3VsYXInO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQl8wLmVvdCcpO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQl8wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQl8wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGX0JfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQl8wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LWRpc3BsYXk6IHN3YXA7fQoKCkBmb250LWZhY2Uge2ZvbnQtZmFtaWx5OiAnTGVtb25ZZWxsb3dTdW4nO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQ18wLmVvdCcpO3NyYzogdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQ18wLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQ18wLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLHVybCgnLi4vd2ViZm9udHMvZnJlaWdodHNhbnNwcm8vd2ViZm9udHMvMkRDN0NGX0NfMC53b2ZmJykgZm9ybWF0KCd3b2ZmJyksdXJsKCcuLi93ZWJmb250cy9mcmVpZ2h0c2Fuc3Byby93ZWJmb250cy8yREM3Q0ZfQ18wLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LWRpc3BsYXk6IHN3YXA7fQo= (CssSyntaxError) (totalt 1 st)

Tillgänglighet enligt Pa11y

Tillgänglighetstest av webbplatsen för att kolla upp följsamhet till tillgänglighets­riktlinjerna WCAG (Web Content Accessibility Guidelines). Pa11y testar upp till och med nivå AAA av WCAG, vilket är högre än kravet i DOS-lagen.


Betyg: 4.25 av 5

- Webbplatsen kan bli mer tillgänglig, men är ganska ok.

Tillgänglighet

- Antal grupperade fel: 5 ( 4.00 betyg )
- Antal fel: 5 ( 4.50 betyg )

##### Problem:
- A form field should be labelled in some way. Use the label element (either with a "for" attribute or wrapped around the form field), or "title", "aria-label" or "aria-labelledby" attributes as appropriate.
- A textarea element does not have a name available to an accessibility API. Valid names are: label element, title undefined, aria-label undefined, aria-labelledby undefined.
- Img element is the only content of the link, but is missing alt text. The alt text should describe the purpose of the link.
- Iframe element requires a non-empty title attribute that identifies the frame.
- Heading tag found with no content. Text that is not intended as a heading should not be marked up with heading tags.

Kvalitet på frontend

Har webbplatsen bra frontendkod och frontend-prestanda enligt Yellow Lab Tools?


Betyg: 3.80 av 5

- Helt ok och ganska genomsnittligt.
( 3.80 betyg )
- Network ( 3.30 betyg )
- Images ( 3.45 betyg )
- Sidans DOM-komplexitet ( 4.75 betyg )
- Sidans Javascript-komplexitet ( 4.50 betyg )
- Sidans användning av dålig Javascript ( 4.30 betyg )
- Sidans användning av jQuery ( 5.00 betyg )
- Sidans CSS-komplexitet ( 1.00 betyg )
- Sidans användning av dålig CSS ( 2.15 betyg )
- Sidans användning av webbtypsnitt ( 3.65 betyg )
- Server­konfiguration ( 4.95 betyg )

Webbstandard

- CSS-syntax är fel ( 1.00 betyg )
- Gzip/Brotli-komprimering ( 1.65 betyg )

Hastighet

- Exekveringstid för Javascript ( 4.65 betyg )
- Händelser knutna till scroll ( 2.85 betyg )
- Antal regler ( 1.00 betyg )
- Total vikt ( 4.20 betyg )
- Gzip/Brotli-komprimering ( 1.65 betyg )
- Filminifiering ( 1.00 betyg )
- Olika domäner ( 4.15 betyg )
- Identiskt innehåll ( 4.00 betyg )
- Below the fold images ( 3.65 betyg )
- Webfonts number ( 3.75 betyg )
- Overweighted webfonts ( 2.10 betyg )
- Caching too short ( 4.50 betyg )

HTTP & tekniktest

Kontrollerar om webbplatsen stödjer IPv6, säkerhets­standarden TLS och vilka versioner av HTTP.


Betyg: 4.44 av 5

Webbstandard

- Inget stöd för HTTPv3 ( 1.00 betyg )
- bth.se, använder inte HSTS ( 1.00 betyg )
- Inget stöd för HTTPv3 ( 1.00 betyg )
- www.bth.se, använder inte HSTS ( 1.00 betyg )
- www.bth.se, innehållssäkerhetspolicy (CSP) ( 4.73 betyg )
- www.bth.se, Subresource Integrity (SRI) används på felaktigt sätt ( 3.00 betyg )
- Inget stöd för HTTPv3 ( 1.00 betyg )
- hammerjs.github.io, använder inte HSTS ( 1.00 betyg )
- Inget stöd för HTTPv3 ( 1.00 betyg )
- app-script.monsido.com, använder inte HSTS ( 1.00 betyg )
- Inget stöd för HTTPv3 ( 1.00 betyg )
- use.fontawesome.com, använder inte HSTS ( 1.00 betyg )
- Inget stöd för HTTPv3 ( 1.00 betyg )
- policy.app.cookieinformation.com, använder inte HSTS ( 1.00 betyg )
- maps.googleapis.com, använder inte HSTS ( 1.00 betyg )
- www.google.com, använder inte HSTS ( 1.00 betyg )
- Inget stöd för HTTPv3 ( 1.00 betyg )
- Inget IPv6 stöd ( 1.00 betyg )
- www.gstatic.com, använder inte HSTS ( 1.00 betyg )
- fonts.gstatic.com, använder inte HSTS ( 1.00 betyg )
- Inget stöd för HTTPv3 ( 1.00 betyg )
- heatmaps.monsido.com, använder inte HSTS ( 1.00 betyg )
- Inget stöd för HTTPv3 ( 1.00 betyg )
- tracking.monsido.com, använder inte HSTS ( 1.00 betyg )
- Inget stöd för HTTPv2 ( 1.00 betyg )
- Inget stöd för HTTPv3 ( 1.00 betyg )
- bam.eu01.nr-data.net, använder inte HSTS ( 1.00 betyg )

Integritet & säkerhet

- bth.se, använder inte HSTS ( 1.00 betyg )
- www.bth.se, använder inte HSTS ( 1.00 betyg )
- www.bth.se, innehållssäkerhetspolicy (CSP) ( 2.17 betyg )
- hammerjs.github.io, använder inte HSTS ( 1.00 betyg )
- app-script.monsido.com, använder inte HSTS ( 1.00 betyg )
- use.fontawesome.com, använder inte HSTS ( 1.00 betyg )
- policy.app.cookieinformation.com, använder inte HSTS ( 1.00 betyg )
- maps.googleapis.com, använder inte HSTS ( 1.00 betyg )
- www.google.com, använder inte HSTS ( 1.00 betyg )
- www.gstatic.com, använder inte HSTS ( 1.00 betyg )
- fonts.gstatic.com, använder inte HSTS ( 1.00 betyg )
- js-agent.newrelic.com, 'max-age' i HSTS är mindre än 1 månad ( 2.00 betyg )
- heatmaps.monsido.com, använder inte HSTS ( 1.00 betyg )
- tracking.monsido.com, använder inte HSTS ( 1.00 betyg )
- bam.eu01.nr-data.net, använder inte HSTS ( 1.00 betyg )

Tillgänglighet enligt Axe

Tillgänglighetstest genom Google Lighthouse om webbplatsen är utformad på ett tillgängligt sätt för funktionsvarierade användare. Mäter med en mobil­användares preferenser.


Betyg: 4.45 av 5

- Webbplatsen kan bli mer tillgänglig, men är ganska ok.

Tillgänglighet

- `[user-scalable="no"]` används i elementet `< meta name="viewport">`, eller också är värdet på attributet `[maximum-scale]` mindre än 5. ( 1.00 betyg )
- Förbjudna ARIA-attribut används i elementen ( 1.00 betyg )
- Vissa länkar har inte ett igenkännligt namn ( 1.00 betyg )
- Element med synliga textetiketter har inte matchande maskinläsbara etiketter. ( 1.00 betyg )

Pssst!