PageSourceSearch

https://www.intel.co.jp/etc.clientlibs/settings/wcm/designs/ver/260203/intel/externallibs/modernizr.min.js

js intel.co.jp collected 2026-09-24 08:41:25 UTC 29,317 bytes, 531 lines download raw bytes

1/*
2 modernizr v3.13.0
3 Build https://modernizr.com/download?-applicationcache-audio-backgroundsize-borderimage-borderradius-boxshadow-canvas-canvastext-cssanimations-csscolumns-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-flexbox-flexboxlegacy-fontface-forcetouch-generatedcontent-geolocation-hashchange-history-hsla-indexeddb-inlinesvg-localstorage-multiplebgs-opacity-postmessage-rgba-sessionstorage-smil-svg-svgclippaths-textshadow-touchevents-video-webgl-websockets-websqldatabase-webworkers-setclasses-dontmin
4
5 Copyright (c)
6  Faruk Ates
7  Paul Irish
8  Alex Sexton
9  Ryan Seddon
10  Patrick Kettner
11  Stu Cox
12  Richard Herrera
13  Veeck
14
15 MIT License
16 {
17      "name": "Application Cache",
18      "property": "applicationcache",
19      "caniuse": "offline-apps",
20      "tags": ["storage", "offline"],
21      "notes": [{
22        "name": "MDN Docs",
23        "href": "https://developer.mozilla.org/en/docs/HTML/Using_the_application_cache"
24      }],
25      "polyfills": ["html5gears"]
26    }
27    ! {
28      "name": "HTML5 Audio Element",
29      "property": "audio",
30      "caniuse": "audio",
31      "tags": ["html5", "audio", "media"],
32      "notes": [{
33        "name": "MDN Docs",
34        "href": "https://developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements"
35      }]
36    }
37    ! {
38      "name": "Canvas",
39      "property": "canvas",
40      "caniuse": "canvas",
41      "tags": ["canvas", "graphics"],
42      "polyfills": ["flashcanvas", "excanvas", "slcanvas", "fxcanvas"]
43    }
44    ! {
45      "name": "Canvas text",
46      "property": "canvastext",
47      "caniuse": "canvas-text",
48      "tags": ["canvas", "graphics"],
49      "polyfills": ["canvastext"]
50    }
51    ! {
52      "name": "Force Touch Events",
53      "property": "forcetouch",
54      "authors": ["Kraig Walker"],
55      "notes": [{
56        "name": "Responding to Force Touch Events from JavaScript",
57        "href": "https://developer.apple.com/library/archive/documentation/AppleApplications/Conceptual/SafariJSProgTopics/RespondingtoForceTouchEventsfromJavaScript.html"
58      }]
59    }
60    ! {
61      "name": "Geolocation API",
62      "property": "geolocation",
63      "caniuse": "geolocation",
64      "tags": ["media"],
65      "notes": [{
66        "name": "MDN Docs",
67        "href": "https://developer.mozilla.org/en-US/docs/WebAPI/Using_geolocation"
68      }],
69      "polyfills": [
70        "joshuabell-polyfill",
71        "webshims",
72        "geo-location-javascript",
73        "geolocation-api-polyfill"
74      ]
75    }
76    ! {
77      "name": "Hashchange event",
78      "property": "hashchange",
79      "caniuse": "hashchange",
80      "tags": ["history"],
81      "notes": [{
82        "name": "MDN Docs",
83        "href": "https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onhashchange"
84      }],
85      "polyfills": [
86        "jquery-hashchange",
87        "moo-historymanager",
88        "jquery-ajaxy",
89        "hasher",
90        "shistory"
91      ]
92    }
93    ! {
94      "name": "History API",
95      "property": "history",
96      "caniuse": "history",
97      "tags": ["history"],
98      "authors": ["Hay Kranen", "Alexander Farkas"],
99      "notes": [{
100        "name": "W3C Spec",
101        "href": "https://www.w3.org/TR/html51/browsers.html#the-history-interface"
102      }, {
103        "name": "MDN Docs",
104        "href": "https://developer.mozilla.org/en-US/docs/Web/API/window.history"
105      }],
106      "polyfills": ["historyjs", "html5historyapi"]
107    }
108    ! {
109      "name": "IndexedDB",
110      "property": "indexeddb",
111      "caniuse": "indexeddb",
112      "tags": ["storage"],
113      "polyfills": ["indexeddb"],
114      "async": true
115    }
116    ! {
117      "name": "postMessage",
118      "property": "postmessage",
119      "caniuse": "x-doc-messaging",
120      "notes": [{
121        "name": "W3C Spec",
122        "href": "https://www.w3.org/TR/webmessaging/#crossDocumentMessages"
123      }],
124      "polyfills": ["easyxdm", "postmessage-jquery"],
125      "knownBugs": ["structuredclones - Android 2&3 can not send a structured clone of dates, filelists or regexps"],
126      "warnings": ["Some old WebKit versions have bugs. Stick with object, array, number and pixeldata to be safe."]
127    }
128    ! {
129      "name": "SVG",
130      "property": "svg",
131      "caniuse": "svg",
132      "tags": ["svg"],
133      "authors": ["Erik Dahlstrom"],
134      "polyfills": [
135        "svgweb",
136        "raphael",
137        "amplesdk",
138        "canvg",
139        "svg-boilerplate",
140        "sie",
141        "dojogfx",
142        "fabricjs"
143      ]
144    }
145    ! {
146      "name": "Touch Events",
147      "property": "touchevents",
148      "caniuse": "touch",
149      "tags": ["media", "attribute"],
150      "notes": [{
151        "name": "Touch Events spec",
152        "href": "https://www.w3.org/TR/2013/WD-touch-events-20130124/"
153      }],
154      "warnings": [
155        "** DEPRECATED see https://github.com/Modernizr/Modernizr/pull/2432 **",
156        "Indicates if the browser supports the Touch Events spec, and does not necessarily reflect a touchscreen device"
157      ],
158      "knownBugs": [
159        "False-positive on some configurations of Nokia N900",
160        "False-positive on some BlackBerry 6.0 builds – https://github.com/Modernizr/Modernizr/issues/372#issuecomment-3112695"
161      ]
162    }
163    ! {
164      "name": "HTML5 Video",
165      "property": "video",
166      "caniuse": "video",
167      "tags": ["html5", "video", "media"],
168      "knownBugs": ["Without QuickTime, `Modernizr.video.h264` will be `undefined`; https://github.com/Modernizr/Modernizr/issues/546"],
169      "polyfills": [
170        "html5media",
171        "mediaelementjs",
172        "sublimevideo",
173        "videojs",
174        "leanbackplayer",
175        "videoforeverybody"
176      ]
177    }
178    ! {
179      "name": "WebGL",
180      "property": "webgl",
181      "caniuse": "webgl",
182      "tags": ["webgl", "graphics"],
183      "polyfills": ["jebgl", "cwebgl", "iewebgl"]
184    }
185    ! {
186      "name": "WebSockets Support",
187      "property": "websockets",
188      "authors": ["Phread (@fearphage)", "Mike Sherov (@mikesherov)", "Burak Yigit Kaya (@BYK)"],
189      "caniuse": "websockets",
190      "tags": ["html5"],
191      "warnings": [
192        "This test will reject any old version of WebSockets even if it is not prefixed such as in Safari 5.1"
193      ],
194      "notes": [{
195        "name": "CLOSING State and Spec",
196        "href": "https://www.w3.org/TR/websockets/#the-websocket-interface"
197      }],
198      "polyfills": [
199        "sockjs",
200        "socketio",
201        "kaazing-websocket-gateway",
202        "websocketjs",
203        "atmosphere",
204        "graceful-websocket",
205        "portal",
206        "datachannel"
207      ]
208    }
209    ! {
210      "name": "CSS Animations",
211      "property": "cssanimations",
212      "caniuse": "css-animation",
213      "polyfills": ["transformie", "csssandpaper"],
214      "tags": ["css"],
215      "warnings": ["Android < 4 will pass this test, but can only animate a single property at a time"],
216      "notes": [{
217        "name": "Article: 'Dispelling the Android CSS animation myths'",
218        "href": "https://web.archive.org/web/20180602074607/https://daneden.me/2011/12/14/putting-up-with-androids-bullshit/"
219      }]
220    }
221    ! {
222      "name": "Background Size",
223      "property": "backgroundsize",
224      "tags": ["css"],
225      "knownBugs": ["This will false positive in Opera Mini - https://github.com/Modernizr/Modernizr/issues/396"],
226      "notes": [{
227        "name": "Related Issue",
228        "href": "https://github.com/Modernizr/Modernizr/issues/396"
229      }]
230    }
231    ! {
232      "name": "Border Image",
233      "property": "borderimage",
234      "caniuse": "border-image",
235      "polyfills": ["css3pie"],
236      "knownBugs": ["Android < 2.0 is true, but has a broken implementation"],
237      "tags": ["css"]
238    }
239    ! {
240      "name": "Border Radius",
241      "property": "borderradius",
242      "caniuse": "border-radius",
243      "polyfills": ["css3pie"],
244      "tags": ["css"],
245      "notes": [{
246        "name": "Comprehensive Compat Chart",
247        "href": "https://muddledramblings.com/table-of-css3-border-radius-compliance"
248      }]
249    }
250    ! {
251      "name": "Box Shadow",
252      "property": "boxshadow",
253      "caniuse": "css-boxshadow",
254      "tags": ["css"],
255      "knownBugs": [
256        "WebOS false positives on this test.",
257        "The Kindle Silk browser false positives"
258      ]
259    }
260    ! {
261      "name": "CSS Columns",
262      "property": "csscolumns",
263      "caniuse": "multicolumn",
264      "polyfills": ["css3multicolumnjs"],
265      "tags": ["css"]
266    }
267    ! {
268      "name": "Flexbox",
269      "property": "flexbox",
270      "caniuse": "flexbox",
271      "tags": ["css"],
272      "notes": [{
273        "name": "The _new_ flexbox",
274        "href": "https://www.w3.org/TR/css-flexbox-1/"
275      }],
276      "warnings": [
277        "A `true` result for this detect does not imply that the `flex-wrap` property is supported; see the `flexwrap` detect."
278      ]
279    }
280    ! {
281      "name": "Flexbox (legacy)",
282      "property": "flexboxlegacy",
283      "tags": ["css"],
284      "polyfills": ["flexie"],
285      "notes": [{
286        "name": "The _old_ flexbox",
287        "href": "https://www.w3.org/TR/2009/WD-css3-flexbox-20090723/"
288      }]
289    }
290    ! {
291      "name": "@font-face",
292      "property": "fontface",
293      "authors": ["Diego Perini", "Mat Marquis"],
294      "tags": ["css"],
295      "knownBugs": [
296        "False Positive: WebOS https://github.com/Modernizr/Modernizr/issues/342",
297        "False Positive: WP7 https://github.com/Modernizr/Modernizr/issues/538"
298      ],
299      "notes": [{
300        "name": "@font-face detection routine by Diego Perini",
301        "href": "http://javascript.nwbox.com/CSSSupport/"
302      }, {
303        "name": "Filament Group @font-face compatibility research",
304        "href": "https://docs.google.com/presentation/d/1n4NyG4uPRjAA8zn_pSQ_Ket0RhcWC6QlZ6LMjKeECo0/edit#slide=id.p"
305      }, {
306        "name": "Filament Grunticon/@font-face device testing results",
307        "href": "https://docs.google.com/spreadsheet/ccc?key=0Ag5_yGvxpINRdHFYeUJPNnZMWUZKR2ItMEpRTXZPdUE#gid=0"
308      }, {
309        "name": "CSS fonts on Android",
310        "href": "https://stackoverflow.com/questions/3200069/css-fonts-on-android"
311      }, {
312        "name": "@font-face and Android",
313        "href": "http://archivist.incutio.com/viewlist/css-discuss/115960"
314      }]
315    }
316    ! {
317      "name": "CSS Generated Content",
318      "property": "generatedcontent",
319      "tags": ["css"],
320      "warnings": ["Android won't return correct height for anything below 7px #738"],
321      "notes": [{
322        "name": "W3C Spec",
323        "href": "https://www.w3.org/TR/css3-selectors/#gen-content"
324      }, {
325        "name": "MDN Docs on :before",
326        "href": "https://developer.mozilla.org/en-US/docs/Web/CSS/::before"
327      }, {
328        "name": "MDN Docs on :after",
329        "href": "https://developer.mozilla.org/en-US/docs/Web/CSS/::after"
330      }]
331    }
332    ! {
333      "name": "CSS Gradients",
334      "caniuse": "css-gradients",
335      "property": "cssgradients",
336      "tags": ["css"],
337      "knownBugs": ["False-positives on webOS (https://github.com/Modernizr/Modernizr/issues/202)"],
338      "notes": [{
339        "name": "Webkit Gradient Syntax",
340        "href": "https://webkit.org/blog/175/introducing-css-gradients/"
341      }, {
342        "name": "Linear Gradient Syntax",
343        "href": "https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient"
344      }, {
345        "name": "W3C Spec",
346        "href": "https://drafts.csswg.org/css-images-3/#gradients"
347      }]
348    }
349    ! {
350      "name": "CSS HSLA Colors",
351      "caniuse": "css3-colors",
352      "property": "hsla",
353      "tags": ["css"]
354    }
355    ! {
356      "name": "CSS Multiple Backgrounds",
357      "caniuse": "multibackgrounds",
358      "property": "multiplebgs",
359      "tags": ["css"]
360    }
361    ! {
362      "name": "CSS Opacity",
363      "caniuse": "css-opacity",
364      "property": "opacity",
365      "tags": ["css"]
366    }
367    ! {
368      "name": "CSS Reflections",
369      "caniuse": "css-reflections",
370      "property": "cssreflections",
371      "tags": ["css"]
372    }
373    ! {
374      "name": "CSS rgba",
375      "caniuse": "css3-colors",
376      "property": "rgba",
377      "tags": ["css"],
378      "notes": [{
379        "name": "CSSTricks Tutorial",
380        "href": "https://css-tricks.com/rgba-browser-support/"
381      }]
382    }
383    ! {
384      "name": "CSS textshadow",
385      "property": "textshadow",
386      "caniuse": "css-textshadow",
387      "tags": ["css"],
388      "knownBugs": ["FF3.0 will false positive on this test"]
389    }
390    ! {
391      "name": "CSS Transforms",
392      "property": "csstransforms",
393      "caniuse": "transforms2d",
394      "tags": ["css"]
395    }
396    ! {
397      "name": "CSS Supports",
398      "property": "supports",
399      "caniuse": "css-featurequeries",
400      "tags": ["css"],
401      "builderAliases": ["css_supports"],
402      "notes": [{
403        "name": "W3C Spec (The @supports rule)",
404        "href": "https://dev.w3.org/csswg/css3-conditional/#at-supports"
405      }, {
406        "name": "Related Github Issue",
407        "href": "https://github.com/Modernizr/Modernizr/issues/648"
408      }, {
409        "name": "W3C Spec (The CSSSupportsRule interface)",
410        "href": "https://dev.w3.org/csswg/css3-conditional/#the-csssupportsrule-interface"
411      }]
412    }
413    ! {
414      "name": "CSS Transforms 3D",
415      "property": "csstransforms3d",
416      "caniuse": "transforms3d",
417      "tags": ["css"],
418      "warnings": [
419        "Chrome may occasionally fail this test on some systems; more info: https://bugs.chromium.org/p/chromium/issues/detail?id=129004"
420      ]
421    }
422    ! {
423      "name": "CSS Transitions",
424      "property": "csstransitions",
425      "caniuse": "css-transitions",
426      "tags": ["css"]
427    }
428    ! {
429      "name": "Local Storage",
430      "property": "localstorage",
431      "caniuse": "namevalue-storage",
432      "tags": ["storage"],
433      "polyfills": [
434        "joshuabell-polyfill",
435        "cupcake",
436        "storagepolyfill",
437        "amplifyjs",
438        "yui-cacheoffline"
439      ]
440    }
441    ! {
442      "name": "Session Storage",
443      "property": "sessionstorage",
444      "tags": ["storage"],
445      "polyfills": ["joshuabell-polyfill", "cupcake", "sessionstorage"]
446    }
447    ! {
448      "name": "Web SQL Database",
449      "property": "websqldatabase",
450      "caniuse": "sql-storage",
451      "tags": ["storage"]
452    }
453    ! {
454      "name": "SVG clip paths",
455      "property": "svgclippaths",
456      "tags": ["svg"],
457      "notes": [{
458        "name": "Demo",
459        "href": "http://srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg"
460      }]
461    }
462    ! {
463      "name": "Inline SVG",
464      "property": "inlinesvg",
465      "caniuse": "svg-html5",
466      "tags": ["svg"],
467      "notes": [{
468        "name": "Test page",
469        "href": "https://paulirish.com/demo/inline-svg"
470      }, {
471        "name": "Test page and results",
472        "href": "https://codepen.io/eltonmesquita/full/GgXbvo/"
473      }],
474      "polyfills": ["inline-svg-polyfill"],
475      "knownBugs": ["False negative on some Chromia browsers."]
476    }
477    ! {
478      "name": "SVG SMIL animation",
479      "property": "smil",
480      "caniuse": "svg-smil",
481      "tags": ["svg"],
482      "notes": [{
483      "name": "W3C Spec",
484      "href": "https://www.w3.org/AudioVideo/"
485      }]
486    }
487    ! {
488      "name": "Web Workers",
489      "property": "webworkers",
490      "caniuse": "webworkers",
491      "tags": ["performance", "workers"],
492      "notes": [{
493        "name": "W3C Spec",
494        "href": "https://www.w3.org/TR/workers/"
495      }, {
496        "name": "HTML5 Rocks Tutorial",
497        "href": "https://www.html5rocks.com/en/tutorials/workers/basics/"
498      }, {
499        "name": "MDN Docs",
500        "href": "https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers"
501      }],
502      "polyfills": ["fakeworker", "html5shims"]
503    }
504    !*/
505(function(V,h,l,v){function p(a,b){return typeof a===b}function F(a){var b=u.className,c=d._config.classPrefix||"";B&&(b=b.baseVal);d._config.enableJSClass&&(b=b.replace(new RegExp("(^|\\s)"+c+"no-js(\\s|$)"),"$1"+c+"js$2"));d._config.enableClasses&&(0<a.length&&(b+=" "+c+a.join(" "+c)),B?u.className.baseVal=b:u.className=b)}function m(){return"function"!==typeof l.createElement?l.createElement(arguments[0]):B?l.createElementNS.call(l,"http://www.w3.org/2000/svg",arguments[0]):l.createElement.apply(l,
506arguments)}function D(a,b,c,e){var f=m("div");var g=l.body;g||(g=m(B?"svg":"body"),g.fake=!0);if(parseInt(c,10))for(;c--;){var w=m("div");w.id=e?e[c]:"modernizr"+(c+1);f.appendChild(w)}c=m("style");c.type="text/css";c.id="smodernizr";(g.fake?g:f).appendChild(c);g.appendChild(f);c.styleSheet?c.styleSheet.cssText=a:c.appendChild(l.createTextNode(a));f.id="modernizr";if(g.fake){g.style.background="";g.style.overflow="hidden";var q=u.style.overflow;u.style.overflow="hidden";u.appendChild(g)}a=b(f,a);
507g.fake&&g.parentNode?(g.parentNode.removeChild(g),u.style.overflow=q,u.offsetHeight):f.parentNode.removeChild(f);return!!a}function G(a){return a.replace(/([A-Z])/g,function(b,c){return"-"+c.toLowerCase()}).replace(/^ms-/,"-ms-")}function H(a,b,c){"getComputedStyle"in h?(a=getComputedStyle.call(h,a,b),b=h.c
507onsole,null!==a?c&&(a=a.getPropertyValue(c)):b&&b[b.error?"error":"log"].call(b,"getComputedStyle returning null, its possible modernizr test results are inaccurate")):a=!b&&a.currentStyle&&a.currentStyle[c];
508return a}function W(a,b){var c=a.length;if("CSS"in h&&"supports"in h.CSS){for(;c--;)if(h.CSS.supports(G(a[c]),b))return!0;return!1}if("CSSSupportsRule"in h){for(var e=[];c--;)e.push("("+G(a[c])+":"+b+")");e=e.join(" or ");return D("@supports ("+e+") { #modernizr { position: absolute; } }",function(f){return"absolute"===H(f,null,"position")})}return v}function I(a){return a.replace(/([a-z])-([a-z])/g,function(b,c,e){return c+e.toUpperCase()}).replace(/^-/,"")}function J(a,b,c,e){function f(){w&&(delete r.style,
509delete r.modElem)}e=p(e,"undefined")?!1:e;if(!p(c,"undefined")){var g=W(a,c);if(!p(g,"undefined"))return g}for(g=["modernizr","tspan","samp"];!r.style&&g.length;){var w=!0;r.modElem=m(g.shift());r.style=r.modElem.style}var q=a.length;for(g=0;g<q;g++){var x=a[g];var X=r.style[x];~(""+x).indexOf("-")&&(x=I(x));if(r.style[x]!==v){if(e||p(c,"undefined"))return f(),"pfx"===b?x:!0;try{r.style[x]=c}catch(Z){}if(r.style[x]!==X)return f(),"pfx"===b?x:!0}}f();return!1}function Y(a,b){return function(){return a.apply(b,
510arguments)}}function C(a,b,c,e,f){var g=a.charAt(0).toUpperCase()+a.slice(1),w=(a+" "+K.join(g+" ")+g).split(" ");if(p(b,"string")||p(b,"undefined"))return J(w,b,e,f);w=(a+" "+L.join(g+" ")+g).split(" ");a:{a=w;for(var q in a)if(a[q]in b){if(!1===c){b=a[q];break a}q=b[a[q]];if(p(q,"function")){b=Y(q,c||b);break a}b=q;break a}b=!1}return b}function y(a,b){if("object"===typeof a)for(var c in a)M(a,c)&&y(c,a[c]);else{a=a.toLowerCase();c=a.split(".");var e=d[c[0]];2===c.length&&(e=e[c[1]]);if("undefined"!==
511typeof e)return d;b="function"===typeof b?b():b;1===c.length?d[c[0]]=b:(!d[c[0]]||d[c[0]]instanceof Boolean||(d[c[0]]=new Boolean(d[c[0]])),d[c[0]][c[1]]=b);F([(b&&!1!==b?"":"no-")+c.join("-")]);d._trigger(a,b)}return d}function N(a,b){a=a.deleteDatabase(b);a.onsuccess=function(){y("indexeddb.deletedatabase",!0)};a.onerror=function(){y("indexeddb.deletedatabase",!1)}}function n(a,b,c){return C(a,v,v,b,c)}var A=[],k={_version:"3.13.0",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},
512_q:[],on:function(a,b){var c=this;setTimeout(function(){b(c[a])},0)},addTest:function(a,b,c){A.push({name:a,fn:b,options:c})},addAsyncTest:function(a){A.push({name:null,fn:a})}},d=function(){};d.prototype=k;d=new d;var O=[],u=l.documentElement,B="svg"===u.nodeName.toLowerCase();d.addTest("applicationcache","applicationCache"in h);(function(){var a=m("audio");d.addTest("audio",function(){var b=!1;try{(b=!!a.canPlayType)&&(b=new Boolean(b))}catch(c){}return b});try{a.canPlayType&&(d.addTest("audio.ogg",
513a.canPlayType('audio/ogg; codecs\x3d"vorbis"').replace(/^no$/,"")),d.addTest("audio.mp3",a.canPlayType('audio/mpeg; codecs\x3d"mp3"').replace(/^no$/,"")),d.addTest("audio.opus",a.canPlayType('audio/ogg; codecs\x3d"opus"')||a.canPlayType('audio/webm; codecs\x3d"opus"').replace(/^no$/,"")),d.addTest("audio.wav",a.canPlayType('audio/wav; codecs\x3d"1"').replace(/^no$/,"")),d.addTest("audio.m4a",(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")))}catch(b){}})();d.addTest("canvas",
514function(){var a=m("canvas");return!(!a.getContext||!a.getContext("2d"))});d.addTest("canvastext",function(){return!1===d.canvas?!1:"function"===typeof m("canvas").getContext("2d").fillText});var E=function(){var a=!("onblur"in u);return function(b,c){if(!b)return!1;c&&"string"!==typeof c||(c=m(c||"div"));b="on"+b;var e=b in c;!e&&a&&(c.setAttribute||(c=m("div")),c.setAttribute(b,""),e="function"===typeof c[b],c[b]!==v&&(c[b]=v),c.removeAttribute(b));return e}}();k.hasEvent=E;var K=k._config.usePrefixes?
515["Moz","O","ms","Webkit"]:[];k._cssomPrefixes=K;var P={elem:m("modernizr")};d._q.push(function(){delete P.elem});var r={style:P.elem.style};d._q.unshift(function(){delete r.style});var L=k._config.usePrefixes?["moz","o","ms","webkit"]:[];k._domPrefixes=L;k.testAllProps=C;var Q=function(a){var b=z.length,c=h.CSSRule;if("undefined"===typeof c)return v;if(!a)return!1;a=a.replace(/^@/,"");var e=a.replace(/-/g,"_").toUpperCase()+"_RULE";if(e in c)return"@"+a;for(var f=0;f<b;f++){var g=z[f];if(g.toUpperCase()+
516"_"+e in c)return"@-"+g.toLowerCase()+"-"+a}return!1};k.atRule=Q;var R=k.prefixed=function(a,b,c){if(0===a.indexOf("@"))return Q(a);-1!==a.indexOf("-")&&(a=I(a));return b?C(a,b,c):C(a,"pfx")};d.addTest("forcetouch",function(){return E(R("mouseforcewillbegin",h,!1),h)?MouseEvent.WEBKIT_FORCE_AT_MOUSE_DOWN&&MouseEvent.WEBKIT_FORCE_AT_FORCE_MOUSE_DOWN:!1});d.addTest("geolocation","geolocation"in navigator);d.addTest("hashchange",function(){return!1===E("hashchange",h)?!1:l.documentMode===v||7<l.documentMode});
517d.addTest("history",function(){var a=navigator.userAgent;return a&&(-1===a.indexOf("Android 2.")&&-1===a.indexOf("Android 4.0")||-1===a.indexOf("Mobile Safari")||-1!==a.indexOf("Chrome")||-1!==a.indexOf("Windows Phone")||"file:"===location.protocol)?h.history&&"pushState"in h.history:!1});var M;(function(){var a={}.hasOwnProperty;M=p(a,"undefined")||p(a.call,"undefined")?function(b,c){return c in b&&p(b.constructor.prototype[c],"undefined")}:function(b,c){return a.call(b,c)}})();k._l={};k.on=function(a,
518b){this._l[a]||(this._l[a]=[]);this._l[a].push(b);d.hasOwnProperty(a)&&setTimeout(function(){d._trigger(a,d[a])},0)};k._trigger=function(a,b){if(this._l[a]){var c=this._l[a];setTimeout(function(){var e;
518for(e=0;e<c.length;e++){var f=c[e];f(b)}},0);delete this._l[a]}};d._q.push(function(){k.addTest=y});d.addAsyncTest(function(){try{var a=R("indexedDB",h)}catch(e){}if(a){var b="modernizr-"+Math.random();try{var c=a.open(b)}catch(e){y("indexeddb",!1);return}c.onerror=function(e){!c.error||"InvalidStateError"!==
519c.error.name&&"UnknownError"!==c.error.name?(y("indexeddb",!0),N(a,b)):(y("indexeddb",!1),e.preventDefault())};c.onsuccess=function(){y("indexeddb",!0);N(a,b)}}else y("indexeddb",!1)});var S=!0;try{h.postMessage({toString:function(){S=!1}},"*")}catch(a){}d.addTest("postmessage",new Boolean("postMessage"in h));d.addTest("postmessage.structuredclones",S);d.addTest("svg",!!l.createElementNS&&!!l.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect);var z=k._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):
520["",""];k._prefixes=z;var T=function(){var a=h.matchMedia||h.msMatchMedia;return a?function(b){return(b=a(b))&&b.matches||!1}:function(b){var c=!1;D("@media "+b+" { #modernizr { position: absolute; } }",function(e){c="absolute"===H(e,null,"position")});return c}}();k.mq=T;d.addTest("touchevents",function(){if("ontouchstart"in h||h.TouchEvent||h.DocumentTouch&&l instanceof DocumentTouch)return!0;var a=["(",z.join("touch-enabled),("),"heartz)"].join("");return T(a)});(function(){var a=m("video");d.addTest("video",
521function(){var b=!1;try{(b=!!a.canPlayType)&&(b=new Boolean(b))}catch(c){}return b});try{a.canPlayType&&(d.addTest("video.ogg",a.canPlayType('video/ogg; codecs\x3d"theora"').replace(/^no$/,"")),d.addTest("video.h264",a.canPlayType('video/mp4; codecs\x3d"avc1.42E01E"').replace(/^no$/,"")),d.addTest("video.h265",a.canPlayType('video/mp4; codecs\x3d"hev1"').replace(/^no$/,"")),d.addTest("video.webm",a.canPlayType('video/webm; codecs\x3d"vp8, vorbis"').replace(/^no$/,"")),d.addTest("video.vp9",a.canPlayType('video/webm; codecs\x3d"vp9"').replace(/^no$/,
522"")),d.addTest("video.hls",a.canPlayType('application/x-mpegURL; codecs\x3d"avc1.42E01E"').replace(/^no$/,"")),d.addTest("video.av1",a.canPlayType('video/mp4; codecs\x3d"av01"').replace(/^no$/,"")))}catch(b){}})();d.addTest("webgl",function(){return"WebGLRenderingContext"in h});var t=!1;try{t="WebSocket"in h&&2===h.WebSocket.CLOSING}catch(a){}d.addTest("websockets",t);k.testAllProps=n;d.addTest("cssanimations",n("animationName","a",!0));d.addTest("backgroundsize",n("backgroundSize","100%",!0));d.addTest("borderimage",
523n("borderImage","url() 1",!0));d.addTest("borderradius",n("borderRadius","0px",!0));d.addTest("boxshadow",n("boxShadow","1px 1px",!0));(function(){d.addTest("csscolumns",function(){var f=!1,g=n("columnCount");try{(f=!!g)&&(f=new Boolean(f))}catch(w){}return f});for(var a="Width Span Fill Gap Rule RuleColor RuleStyle RuleWidth BreakBefore BreakAfter BreakInside".split(" "),b,c,e=0;e<a.length;e++){b=a[e].toLowerCase();c=n("column"+a[e]);if("breakbefore"===b||"breakafter"===b||"breakinside"===b)c=c||
524n(a[e]);d.addTest("csscolumns."+b,c)}})();d.addTest("flexbox",n("flexBasis","1px",!0));d.addTest("flexboxlegacy",n("boxDirection","reverse",!0));t=k.testStyles=D;(function(){var a=navigator.userAgent,b=a.match(/w(eb)?osbrowser/gi);a=a.match(/windows phone/gi)&&a.match(/iemobile\/([0-9])+/gi)&&9<=parseFloat(RegExp.$1);return b||a})()?d.addTest("fontface",!1):t('@font-face {font-family:"font";src:url("https://")}',function(a,b){a=l.getElementById("smodernizr");a=(a=a.sheet||a.styleSheet)?a.cssRules&&
525a.cssRules[0]?a.cssRules[0].cssText:a.cssText||"":"";b=/src/i.test(a)&&0===a.indexOf(b.split(" ")[0]);d.addTest("fontface",b)});t('#modernizr{font:0/0 a}#modernizr:after{content:":)";visibility:hidden;font:7px/1 a}',function(a){d.addTest("generatedcontent",6<=a.offsetHeight)});d.addTest("cssgradients",function(){for(var a="",b,c=0,e=z.length-1;c<e;c++)b=0===c?"to ":"",a+="background-image:"+z[c]+"linear-gradient("+b+"left top, #9f9, white);";d._config.usePrefixes&&(a+="background-image:-webkit-gradient(linear,left top,right bottom,from(#9f9),to(white));");
526b=m("a").style;b.cssText=a;return-1<(""+b.backgroundImage).indexOf("gradient")});d.addTest("hsla",function(){var a=m("a").style;a.cssText="background-color:hsla(120,40%,100%,.5)";return!!~(""+a.backgroundColor).indexOf("rgba")||!!~(""+a.backgroundColor).indexOf("hsla")});d.addTest("multiplebgs",function(){var a=m("a").style;a.cssText="background:url(https://),url(https://),red url(https://)";return/(url\s*\(.*?){3}/.test(a.background)});d.addTest("opacity",function(){var a=m("a").style;a.cssText=
527z.join("opacity:.55;");return/^0.55$/.test(a.opacity)});d.addTest("cssreflections",n("boxReflect","above",!0));d.addTest("rgba",function(){var a=m("a").style;a.cssText="background-color:rgba(150,255,150,.5)";return-1<(""+a.backgroundColor).indexOf("rgba")});t=k.testProp=function(a,b,c){return J([a],v,b,c)};d.addTest("textshadow",t("textShadow","1px 1px"));d.addTest("csstransforms",function(){return-1===navigator.userAgent.indexOf("Android 2.")&&n("transform","scale(1)",!0)});d.addTest("supports",
528"CSS"in h&&"supports"in h.CSS||"supportsCSS"in h);d.addTest("csstransforms3d",function(){return!!n("perspective","1px",!0)});d.addTest("csstransitions",n("transition","all",!0));d.addTest("localstorage",function(){try{return localStorage.setItem("modernizr","modernizr"),localStorage.removeItem("modernizr"),!0}catch(a){return!1}});d.addTest("sessionstorage",function(){try{return sessionStorage.setItem("modernizr","modernizr"),sessionStorage.removeItem("modernizr"),!0}catch(a){return!1}});d.addTest("websqldatabase",
529"openDatabase"in h);var U={}.toString;d.addTest("svgclippaths",function(){return!!l.createElementNS&&/SVGClipPath/.test(U.call(l.createElementNS("http://www.w3.org/2000/svg","clipPath")))});d.addTest("inlinesvg",function(){var a=m("div");a.innerHTML="\x3csvg/\x3e";return"http://www.w3.org/2000/svg"===("undefined"!==typeof SVGRect&&a.firstChild&&a.firstChild.namespaceURI)});d.addTest("smil",function(){return!!l.createElementNS&&/SVGAnimate/.test(U.call(l.createElementNS("http://www.w3.org/2000/svg",
530"animate")))});
530d.addTest("webworkers","Worker"in h);(function(){var a,b;for(b in A)if(A.hasOwnProperty(b)){var c=[];var e=A[b];if(e.name&&(c.push(e.name.toLowerCase()),e.options&&e.options.aliases&&e.options.aliases.length))for(a=0;a<e.options.aliases.length;a++)c.push(e.options.aliases[a].toLowerCase());e=p(e.fn,"function")?e.fn():e.fn;for(a=0;a<c.length;a++){var f=c[a];f=f.split(".");1===f.length?d[f[0]]=e:(d[f[0]]&&(!d[f[0]]||d[f[0]]instanceof Boolean)||(d[f[0]]=new Boolean(d[f[0]])),d[f[0]][f[1]]=
531e);O.push((e?"":"no-")+f.join("-"))}}})();F(O);delete k.addTest;delete k.addAsyncTest;for(t=0;t<d._q.length;t++)d._q[t]();V.Modernizr=d})(window,window,document);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.