source: trunk/Source/WebCore/css/html.css @ 197704

Revision 196222, 79.9 KB checked in by zalan@apple.com, 4 weeks ago (diff)

Outline should contribute to visual overflow.
https://bugs.webkit.org/show_bug.cgi?id=153299

This patch eliminates the special outline handling (RenderView::setMaximalOutlineSize).
Now that outline is part of visual overflow, we don't have to inflate the layers to accomodate
outline borders.
This patch fixes several focusring related repaint issues. However when both the outline: auto
and the descendant renderer are composited, we still don't paint properly in certain cases. -not a regression.
(Also when parent renderer has overflow: hidden repaint does not take outline into account. -regression.)
It changes column behavior (see TestExpectations) since outline behaves now like any other visual overflow properties.

Reviewed by David Hyatt.

Source/WebCore:

Test: fast/repaint/focus-ring-repaint.html

fast/repaint/focus-ring-repaint-with-negative-offset.html

  • css/html.css: resetting to old behavior.

(:focus):
(input:focus, textarea:focus, isindex:focus, keygen:focus, select:focus):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::addToLine):
(WebCore::InlineFlowBox::addOutlineVisualOverflow):
(WebCore::InlineFlowBox::computeOverflow):
(WebCore::InlineFlowBox::paint): Deleted.

  • rendering/InlineFlowBox.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computeOverflow):
(WebCore::RenderBlock::outlineStyleForRepaint):
(WebCore::RenderBlock::paint): Deleted.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock): Deleted.
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren): Deleted.

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::addVisualEffectOverflow):
(WebCore::RenderBox::applyVisualEffectOverflow):
(WebCore::RenderBox::clippedOverflowRectForRepaint): Deleted.

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::paint): Deleted.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::insertChildInternal):
(WebCore::RenderElement::styleDidChange):
(WebCore::RenderElement::repaintAfterLayoutIfNeeded):
(WebCore::RenderElement::issueRepaintForOutlineAuto):
(WebCore::RenderElement::updateOutlineAutoAncestor):
(WebCore::RenderElement::computeMaxOutlineSize): Deleted.
(WebCore::RenderElement::styleWillChange): Deleted.

  • rendering/RenderElement.h:

(WebCore::RenderElement::hasContinuation):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::paintOutlineForLine): Deleted.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::anyLineIntersectsRect):
(WebCore::RenderLineBoxList::lineIntersectsDirtyRect):
(WebCore::RenderLineBoxList::paint):
(WebCore::isOutlinePhase): Deleted.

  • rendering/RenderLineBoxList.h:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::computePreferredLogicalWidths):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::paint): Deleted.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::propagateRepaintToParentWithOutlineAutoIfNeeded): The renderer with outline: auto is responsible for
painting focusring around the descendants. If we issued repaint only on the descendant when it changes,
the focusring would not refresh properly. We have to find the ancestor with outline: auto, inflate the repaint rect and
issue the repaint on the ancestor if we crossed repaint container.

(WebCore::RenderObject::repaintUsingContainer):
(WebCore::RenderObject::adjustRectForOutlineAndShadow):
(WebCore::RenderObject::setHasOutlineAutoAncestor):
(WebCore::RenderObject::adjustRectWithMaximumOutline): Deleted.

  • rendering/RenderObject.h: We mark the descendants of outline: auto so that

when a child renderer changes we can propagate the repaint to the ancestor with outline.

(WebCore::RenderObject::hasOutlineAutoAncestor):
(WebCore::RenderObject::RenderObjectRareData::RenderObjectRareData):

  • rendering/RenderRegion.cpp:

(WebCore::RenderRegion::overflowRectForFlowThreadPortion):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::shouldPaint): Deleted.
(WebCore::RenderReplaced::clippedOverflowRectForRepaint): Deleted.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::paint): Deleted.

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::clippedOverflowRectForRepaint): Deleted.
(WebCore::RenderTableCell::paintCollapsedBorders): Deleted.

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):
(WebCore::RenderTableRow::clippedOverflowRectForRepaint): Deleted.

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::layoutRows):
(WebCore::RenderTableSection::computeOverflowFromCells): Deleted.
(WebCore::RenderTableSection::paintObject): Deleted.

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::platformFocusRingWidth):

  • rendering/RenderView.cpp:

(WebCore::RenderView::setMaximalOutlineSize): Deleted.

  • rendering/RenderView.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeAffectsVisualOverflow):
(WebCore::RenderStyle::outlineWidth):

  • rendering/style/RenderStyle.h:

LayoutTests:

  • fast/repaint/focus-ring-repaint-expected.txt: Added.
  • fast/repaint/focus-ring-repaint.html: Added.
  • fast/repaint/focus-ring-repaint-expected-with-negative-offset.txt: Added.
  • fast/repaint/focus-ring-repaint-with-negative-offset.html: Added.
  • TestExpectations:
  • platform/mac/TestExpectations:
  • platform/mac/compositing/geometry/ancestor-overflow-change-expected.txt:
  • platform/mac/compositing/geometry/composited-in-columns-expected.txt:
  • platform/mac/compositing/layer-creation/overlap-animation-container-expected.txt:
  • platform/mac/compositing/layer-creation/stacking-context-overlap-nested-expected.txt:
  • platform/mac/compositing/visibility/visibility-image-layers-dynamic-expected.txt:
  • platform/mac/fast/clip/outline-overflowClip-expected.txt:
  • platform/mac/fast/inline/continuation-outlines-with-layers-expected.txt:
  • platform/mac/fast/repaint/4776765-expected.txt: Added.
  • platform/mac/fast/repaint/focus-ring-expected.txt: Added.
  • platform/mac/fast/repaint/layer-outline-expected.txt:
  • platform/mac/fast/repaint/layer-outline-horizontal-expected.txt:
  • platform/mac/svg/custom/focus-ring-expected.txt:
  • Property svn:eol-style set to native
Line 
1/*
2 * The default style sheet used to render HTML.
3 *
4 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
5 * Copyright (C) 2003-2011, 2014 Apple Inc. All rights reserved.
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * Library General Public License for more details.
16 *
17 * You should have received a copy of the GNU Library General Public License
18 * along with this library; see the file COPYING.LIB.  If not, write to
19 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301, USA.
21 *
22 */
23
24@namespace "http://www.w3.org/1999/xhtml";
25
26html {
27    display: block;
28}
29
30/* children of the <head> element all have display:none */
31head, link, meta, script, style, title {
32    display: none;
33}
34
35/* generic block-level elements */
36
37body {
38    display: block;
39    margin: 8px;
40}
41
42p {
43    display: block;
44    -webkit-margin-before: 1__qem;
45    -webkit-margin-after: 1__qem;
46    -webkit-margin-start: 0;
47    -webkit-margin-end: 0;
48}
49
50address, article, aside, div, footer, header, hgroup, layer, main, nav, section {
51    display: block;
52}
53
54marquee {
55    display: inline-block;
56    overflow: -webkit-marquee;
57}
58
59blockquote {
60    display: block;
61    -webkit-margin-before: 1__qem;
62    -webkit-margin-after: 1em;
63    -webkit-margin-start: 40px;
64    -webkit-margin-end: 40px;
65}
66
67figcaption {
68    display: block;
69}
70
71figure {
72    display: block;
73    -webkit-margin-before: 1em;
74    -webkit-margin-after: 1em;
75    -webkit-margin-start: 40px;
76    -webkit-margin-end: 40px;
77}
78
79q {
80    display: inline;
81}
82
83q::before {
84    content: open-quote;
85}
86
87q::after {
88    content: close-quote;
89}
90
91center {
92    display: block;
93    /* special centering to be able to emulate the html4/netscape behaviour */
94    text-align: -webkit-center;
95}
96
97hr {
98    display: block;
99    -webkit-margin-before: 0.5em;
100    -webkit-margin-after: 0.5em;
101    -webkit-margin-start: auto;
102    -webkit-margin-end: auto;
103    border-style: inset;
104    border-width: 1px;
105}
106
107video {
108    object-fit: contain;
109#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS
110    -webkit-tap-highlight-color: transparent;
111#endif
112}
113
114/* heading elements */
115
116h1 {
117    display: block;
118    font-size: 2em;
119    -webkit-margin-before: 0.67__qem;
120    -webkit-margin-after: 0.67em;
121    -webkit-margin-start: 0;
122    -webkit-margin-end: 0;
123    font-weight: bold;
124}
125
126:matches(article, aside, nav, section) h1 {
127    font-size: 1.5em;
128    -webkit-margin-before: 0.83__qem;
129    -webkit-margin-after: 0.83em;
130}
131
132:matches(article, aside, nav, section) :matches(article, aside, nav, section) h1 {
133    font-size: 1.17em;
134    -webkit-margin-before: 1__qem;
135    -webkit-margin-after: 1em;
136}
137
138:matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) h1 {
139    font-size: 1.00em;
140    -webkit-margin-before: 1.33__qem;
141    -webkit-margin-after: 1.33em;
142}
143
144:matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) h1 {
145    font-size: .83em;
146    -webkit-margin-before: 1.67__qem;
147    -webkit-margin-after: 1.67em;
148}
149
150:matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) :matches(article, aside, nav, section) h1 {
151    font-size: .67em;
152    -webkit-margin-before: 2.33__qem;
153    -webkit-margin-after: 2.33em;
154}
155
156h2 {
157    display: block;
158    font-size: 1.5em;
159    -webkit-margin-before: 0.83__qem;
160    -webkit-margin-after: 0.83em;
161    -webkit-margin-start: 0;
162    -webkit-margin-end: 0;
163    font-weight: bold;
164}
165
166h3 {
167    display: block;
168    font-size: 1.17em;
169    -webkit-margin-before: 1__qem;
170    -webkit-margin-after: 1em;
171    -webkit-margin-start: 0;
172    -webkit-margin-end: 0;
173    font-weight: bold;
174}
175
176h4 {
177    display: block;
178    -webkit-margin-before: 1.33__qem;
179    -webkit-margin-after: 1.33em;
180    -webkit-margin-start: 0;
181    -webkit-margin-end: 0;
182    font-weight: bold;
183}
184
185h5 {
186    display: block;
187    font-size: .83em;
188    -webkit-margin-before: 1.67__qem;
189    -webkit-margin-after: 1.67em;
190    -webkit-margin-start: 0;
191    -webkit-margin-end: 0;
192    font-weight: bold;
193}
194
195h6 {
196    display: block;
197    font-size: .67em;
198    -webkit-margin-before: 2.33__qem;
199    -webkit-margin-after: 2.33em;
200    -webkit-margin-start: 0;
201    -webkit-margin-end: 0;
202    font-weight: bold;
203}
204
205/* tables */
206
207table {
208    display: table;
209    border-collapse: separate;
210    border-spacing: 2px;
211    border-color: gray;
212}
213
214thead {
215    display: table-header-group;
216    vertical-align: middle;
217    border-color: inherit;
218}
219
220tbody {
221    display: table-row-group;
222    vertical-align: middle;
223    border-color: inherit;
224}
225
226tfoot {
227    display: table-footer-group;
228    vertical-align: middle;
229    border-color: inherit;
230}
231
232/* for tables without table section elements (can happen with XHTML or dynamically created tables) */
233table > tr {
234    vertical-align: middle;
235}
236
237col {
238    display: table-column;
239}
240
241colgroup {
242    display: table-column-group;
243}
244
245tr {
246    display: table-row;
247    vertical-align: inherit;
248    border-color: inherit;
249}
250
251td, th {
252    display: table-cell;
253    vertical-align: inherit;
254}
255
256th {
257    font-weight: bold;
258}
259
260caption {
261    display: table-caption;
262    text-align: -webkit-center;
263}
264
265/* lists */
266
267ul, menu, dir {
268    display: block;
269    list-style-type: disc;
270    -webkit-margin-before: 1__qem;
271    -webkit-margin-after: 1em;
272    -webkit-margin-start: 0;
273    -webkit-margin-end: 0;
274    -webkit-padding-start: 40px;
275}
276
277ol {
278    display: block;
279    list-style-type: decimal;
280    -webkit-margin-before: 1__qem;
281    -webkit-margin-after: 1em;
282    -webkit-margin-start: 0;
283    -webkit-margin-end: 0;
284    -webkit-padding-start: 40px;
285}
286
287li {
288    display: list-item;
289    text-align: -webkit-match-parent;
290}
291
292ul ul, ol ul {
293    list-style-type: circle;
294}
295
296ol ol ul, ol ul ul, ul ol ul, ul ul ul {
297    list-style-type: square;
298}
299
300dd {
301    display: block;
302    -webkit-margin-start: 40px;
303}
304
305dl {
306    display: block;
307    -webkit-margin-before: 1__qem;
308    -webkit-margin-after: 1em;
309    -webkit-margin-start: 0;
310    -webkit-margin-end: 0;
311}
312
313dt {
314    display: block;
315}
316
317ol ul, ul ol, ul ul, ol ol {
318    -webkit-margin-before: 0;
319    -webkit-margin-after: 0;
320}
321
322/* form elements */
323
324form {
325    display: block;
326    margin-top: 0__qem;
327}
328
329label {
330    cursor: default;
331}
332
333legend {
334    display: block;
335    -webkit-padding-start: 2px;
336    -webkit-padding-end: 2px;
337    border: none;
338}
339
340fieldset {
341    display: block;
342    -webkit-margin-start: 2px;
343    -webkit-margin-end: 2px;
344    -webkit-padding-before: 0.35em;
345    -webkit-padding-start: 0.75em;
346    -webkit-padding-end: 0.75em;
347    -webkit-padding-after: 0.625em;
348    border: 2px groove ThreeDFace;
349    min-width: -webkit-min-content;
350}
351
352button {
353    -webkit-appearance: button;
354}
355
356/* Form controls don't go vertical. */
357input, textarea, keygen, select, button, isindex, meter, progress {
358    -webkit-writing-mode: horizontal-tb !important;
359}
360
361input, textarea, keygen, select, button, isindex {
362    margin: 0__qem;
363#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
364    font: -webkit-small-control;
365#endif
366    color: initial;
367    letter-spacing: normal;
368    word-spacing: normal;
369    line-height: normal;
370    text-transform: none;
371    text-indent: 0;
372    text-shadow: none;
373    display: inline-block;
374    text-align: start;
375}
376
377input[type="hidden"] {
378    display: none;
379}
380
381input,
382input:matches([type="password"], [type="search"]),
383#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS
384textarea,
385input[type="range"],
386#endif
387isindex {
388    -webkit-appearance: textfield;
389    background-color: white;
390#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS
391    border-radius: 5px;
392    font: 11px Helvetica, -webkit-pictograph;
393    border: 1px solid #4c4c4c;
394    padding: 0.2em 0.5em 0.3em 0.5em;
395#else
396    border: 2px inset;
397    padding: 1px;
398#endif
399    -webkit-rtl-ordering: logical;
400    -webkit-user-select: text;
401    cursor: auto;
402}
403
404input[type="search"] {
405    -webkit-appearance: searchfield;
406    box-sizing: border-box;
407}
408
409input::-webkit-textfield-decoration-container {
410    display: flex;
411    align-items: center;
412    content: none !important;
413}
414
415input[type="search"]::-webkit-textfield-decoration-container {
416    direction: ltr;
417}
418
419input::-webkit-clear-button {
420    -webkit-appearance: searchfield-cancel-button;
421    display: inline-block;
422    flex: none;
423    margin-left: 2px;
424}
425
426input[type="search"]::-webkit-search-cancel-button {
427    -webkit-appearance: searchfield-cancel-button;
428    display: block;
429    flex: none;
430    align-self: flex-start;
431    margin: auto 0;
432}
433
434input[type="search"]::-webkit-search-decoration {
435    -webkit-appearance: searchfield-decoration;
436    display: block;
437    flex: none;
438    align-self: flex-start;
439    margin: auto 0;
440}
441
442input[type="search"]::-webkit-search-results-decoration {
443    -webkit-appearance: searchfield-results-decoration;
444    display: block;
445    flex: none;
446    align-self: flex-start;
447    margin: auto 0;
448}
449
450input[type="search"]::-webkit-search-results-button {
451    -webkit-appearance: searchfield-results-button;
452    display: block;
453    flex: none;
454}
455
456#if defined(ENABLE_DATALIST_ELEMENT) && ENABLE_DATALIST_ELEMENT
457datalist {
458    display: none;
459}
460#endif
461
462#if defined(ENABLE_INPUT_TYPE_DATE) && ENABLE_INPUT_TYPE_DATE
463input[type="date"] {
464    align-items: center;
465    -webkit-appearance: menulist-button;
466    display: -webkit-inline-flex;
467    overflow: hidden;
468#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
469    width: 10em;
470#endif
471}
472#endif
473#if defined(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) && ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE
474input[type="datetime"] {
475    align-items: center;
476    -webkit-appearance: menulist-button;
477    display: -webkit-inline-flex;
478    overflow: hidden;
479#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
480    width: 10em;
481#endif
482}
483#endif
484#if defined(ENABLE_INPUT_TYPE_DATETIMELOCAL) && ENABLE_INPUT_TYPE_DATETIMELOCAL
485input[type="datetime-local"] {
486    align-items: center;
487    -webkit-appearance: menulist-button;
488    display: -webkit-inline-flex;
489    overflow: hidden;
490#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
491    width: 10em;
492#endif
493}
494#endif
495#if defined(ENABLE_INPUT_TYPE_MONTH) && ENABLE_INPUT_TYPE_MONTH
496input[type="month"] {
497    align-items: center;
498    -webkit-appearance: menulist-button;
499    display: -webkit-inline-flex;
500    overflow: hidden;
501#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
502    width: 10em;
503#endif
504}
505#endif
506#if defined(ENABLE_INPUT_TYPE_TIME) && ENABLE_INPUT_TYPE_TIME
507input[type="time"] {
508    align-items: center;
509    -webkit-appearance: menulist-button;
510    display: -webkit-inline-flex;
511    overflow: hidden;
512#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
513    width: 10em;
514#endif
515}
516#endif
517#if defined(ENABLE_INPUT_TYPE_WEEK) && ENABLE_INPUT_TYPE_WEEK
518#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
519input[type="week"] {
520    align-items: center;
521    -webkit-appearance: menulist-button;
522    display: -webkit-inline-flex;
523    overflow: hidden;
524    width: 10em;
525}
526#endif
527#endif
528
529input::-webkit-date-and-time-value {
530#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS
531    margin-right: 18px;
532#else
533    margin: 1px 24px 1px 4px;
534    white-space: pre;
535#endif
536}
537
538input::-webkit-inner-spin-button {
539    -webkit-appearance: inner-spin-button;
540    display: block;
541    position: relative;
542    cursor: default;
543    /* This height property is ignored for input type "number" and others which
544     * use RenderTextControlSingleLine as renderer which sets height of spin
545     * button in layout(). */
546    height: 1.5em;
547    vertical-align: top;
548    flex: none;
549    -webkit-user-select: none;
550}
551
552input::-webkit-credentials-auto-fill-button {
553    -webkit-mask-image: -webkit-image-set(url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAMCAYAAAC9QufkAAAAAXNSR0IB2cksfwAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAADyWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE1LTA0LTAzVDE2OjA2OjI1PC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoTWFjaW50b3NoKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNS0wNC0wM1QxNjowMzoxNjwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4xNTwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoz37ZdAAAA5ElEQVQoFY2RsQ5BQRBFd9EgEYXv8QlaEqVGpfUPao3oKXyEQiJI1ERESaGmwnPu2k2QJ2uS82Z2du7s7jyTJInBWnCABeygoXwM6kwN1GELFo7wgOo/4gmFEovzWzyMiTMUlyFYJQT4wlucGko8T90xZv0j/5EusVpCuLr8FPK6NraHPmT8Oks8gI2bKEEOZhAauEJf3PX5Eb4ImpEG2gni0NWJvwdFYRvuoIHeoOUa++56+wpSxb6myf4J6qG5VWCt1ckPvHsksf531HSiDJ1VV9n15eJfJ+YkvWcMF+jFZa+KJ554xIc+jempAAAAAElFTkSuQmCC") 1x, url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAYCAYAAADtaU2/AAAAAXNSR0IB2cksfwAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAADyWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE1LTA0LTAzVDE2OjA2OjIxPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoTWFjaW50b3NoKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNS0wNC0wM1QxNjowMzoyNTwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4yNDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpGMDB3AAAB8UlEQVRIDbVWO07DQBS0QSJUNJQcAloOQMEZ6InSUMEBkFJEQihQkQKJklQUlFBQQoH4SHAKJDokAgIz4+wLs5u15RjypOF9dvaN197dkCS/NodwC7gG3hxuXI1jUcuyLKkDa7aE4B7IHM7hCcs5Rs6Y1RHlHBpXo6JXeXX45xLOxB8QN2QsD+sKz2B2E1iRhqnEsxIvI96U/M8hv6mtyjxXehGpk+tZ3RVzdQOgcPN4KkPuvNbse2mtSsxXPYl9TkIu41L4rowQjD0Fee2UwqcTzA65/TRNB0CzSg/ygHegT34D4FGxjVXkHx0XbmQfiIzfKtto4LWEy3m58XLQs2zNzPPByAltGwXj0EfFUecbUd4O8pFxZ98CSrC4bNfvypxvxBu6cubAl3DaRSfBxNRjXtxckw5GjU+RXJweUNGOPRTqnrWRWQP1HkkTaRSK98CLioYr5vV4BqigxarlxSbsmu0XzO8qLxRmw/WCiRyLmjYEgTfhEWAPTM88VV4ozDP9HEyyBijHLdKQ4l2AR+YAGBMNhcFJVgETU8+xqIXCVXNtxm9cdJyU58VVhUKe/khwB+55XaeYqDC/zdoUtbzWFDPj7fQCLFjB+Vf4xaA2SvkK65iumLvwJNLkOFL79xJXfQhwlQTjsnu61r+2fEs/b4ZbzrEPMzEAAAAASUVORK5CYII=") 2x);
554    -webkit-mask-size: 15px 12px;
555    width: 15px;
556    height: 12px;
557    margin-left: 3px;
558    margin-right: 2px;
559    background-color: black;
560    flex: none;
561    -webkit-user-select: none;
562}
563
564input::-webkit-credentials-auto-fill-button:hover {
565    background-color: rgb(0, 122, 255);
566}
567
568input::-webkit-credentials-auto-fill-button:active {
569    background-color: rgb(0, 60, 219);
570}
571
572input::-webkit-contacts-auto-fill-button {
573    -webkit-mask-image: -webkit-image-set(url("data:image/png;base64,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dGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNi0wMS0xM1QxNzoxMDo0MC0wODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTYtMDEtMTNUMTc6MTA6NDAtMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHBob3Rvc2hvcDpJQ0NQcm9maWxlPkRpc3BsYXk8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjJjOGZlYmIwLTk3MTQtNDY5ZS1iNjQyLTAyNzY3NzVjZmQzYjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDoyYzhmZWJiMC05NzE0LTQ2OWUtYjY0Mi0wMjc2Nzc1Y2ZkM2I8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDoyYzhmZWJiMC05NzE0LTQ2OWUtYjY0Mi0wMjc2Nzc1Y2ZkM2I8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjJjOGZlYmIwLTk3MTQtNDY5ZS1iNjQyLTAyNzY3NzVjZmQzYjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wMS0xM1QxNzoxMDo0MC0wODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjI4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI4PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz63NHXRAAAAIGNIUk0AAG11AABzoAAA/N0AAINkAABw6AAA7GgAADA+AAAQkOTsmeoAAAJ+SURBVHjavJbPa9NgGMefLqOYZGTZWChlmxXyo6E4S6BQKNKuGTnLepTBPHnYxatehP0BPQ7PMsTl0ENPUrDYsk7UDj1IKelcurTDbjsUccWNJfX1JIxqm9e17oHn9D58Pzw/3ud9PQghwLVMJnM3m83eKxaL8bOzM0qSpFoqlcpomvZ6YWHhBEsEIeTqpmlSy8vLzwCgBQCo11mWra6trT3F0XINyOVydwRB2P4bqMdbGxsbqaGB8Xhcx4AhAEDhcDg3FHBvb2+CZdkqLnBmZuazaZrUIM0xtx4TBCHjDpXjOLdt2x4fFDMQSNP0D4Zh3uECKYr6SJLk+ZWBfr//59TUVBsXODs7+3V+fv7iykAAAJ/Pd4ILDAQCB0Pdw1KpJJAkWccdGoZhjN3d3bkrD8309HTb6/VewD8YTdOdoTaNpmmbuBmqqvrCTc+1h6qq5j0ezxFGckdLS0v5kezSZDL50i27RCKh42iN4fRFUZRPbjGRSKSMo4UFFEWx5hbD87w5sufJMAyG5/mdfuUMBALvq9UqO7KSSpL0fWVlZbPf+erq6nNZlr+NrKQAAMfHx/5+Z51OZwJXBxtYq9WEfmeGYQSxN4NbzS3L8m5tbS0OehcnJycNXdfjOD309H6iWq3WWKFQWCwWi4lKpRKyLOtWs9mM4Fx8SZJqgiB8CQaDRjQa/RCLxd7+8Xr8Jh8eHo6n0+n7oVAoj7vK3Jzn+Z319fWHl38BgBCCcrk8pyjKq1GBel2W5TelUklACAHU6/Ubo8yqn4uiuL2/v08RHMc90HX9Efxna7fbNzmOOyBs237SaDRCcA3mOM4F0e12H5+envqvA9jtds9/DQCsPB1nqFm3ggAAAABJRU5ErkJggg==") 1x, url("data:image/png;base64,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eG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTYtMDEtMTNUMTc6MDk6NDAtMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNi0wMS0xM1QxNzoxMToxOS0wODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTYtMDEtMTNUMTc6MTE6MTktMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHBob3Rvc2hvcDpJQ0NQcm9maWxlPkRpc3BsYXk8L3Bob3Rvc2hvcDpJQ0NQcm9maWxlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjYwYTIyOTY0LTI2OWQtNDYzMC1iOGRmLWMxMmJiMTQzM2E4NTwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo2MGEyMjk2NC0yNjlkLTQ2MzAtYjhkZi1jMTJiYjE0MzNhODU8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo2MGEyMjk2NC0yNjlkLTQ2MzAtYjhkZi1jMTJiYjE0MzNhODU8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjYwYTIyOTY0LTI2OWQtNDYzMC1iOGRmLWMxMmJiMTQzM2E4NTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wMS0xM1QxNzoxMToxOS0wODowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MTQ0MDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTQ0MDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTY8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+NTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Psf9uFoAAAAgY0hSTQAAbXUAAHOgAAD83QAAg2QAAHDoAADsaAAAMD4AABCQ5OyZ6gAABjhJREFUeNrc2m1MWlcYB/CDiDbSVk07o4OUFF8a0drWqLWtUN8QfGnRqbUFNWqsBtdGXZSlnbMuLo1Gu2qzdorzZUKsVVHGUgoENUycoyVgZbWCFcQOaRaajuhqdI3sy74s2dIol130//059/y4HM65zwVhs9nA/5H5+XnPpaWlw6urq/v27Nmz5ufn92tYWNgrR18X4UigwWBAq9XqCJFIRJNKpSkmk+nIxsYGQCKRwMfHx0ggEDRpaWk8MpksDAkJ+W3HABcWFvZ1dXV9zOPxLul0urD3XQOLxS7ExcVJEhISREQicRSPx//htEC5XH6ksrKyQ6lUErdTHxISorp+/fpndDpd5FTA5eVlF5lMllRTU/OVXq8PtmcsNBptHRgYSEpJSXnsFMDZ2dmDZWVlnImJCerm5iYkH1hsbKywr6/vnJ+f3ybswMLCwjs9PT1XoV7LbDb7wuXLlwdhBSqVSlxiYqLSarUehBpIoVBGRCLRR7ACW1paCiorK7sd8RMfEBDwy/j4+AksFvsONiCTyWxqa2urcgTwwIEDYHx83O/o0aOvYAMWFRXd6e7uvuoIoKenJ5BIJPioqCgDbMCqqqraW7dufeEIoJeXF5BIJPjIyEj4gA0NDcxr167d27Vf0ba2thwmk9nvCCAOh5uXyWTHcDjcGmzA/v7+JDqdLnbEmTY6Onp8amoqHtZtQiwWR9BotCfr6+uQA3Nzc7/hcDhlsAJnZmZ84+Pjza9fv4Yc2NjYWMpisdiwAk0mk2tycvKfGo0GUhwKhQIcDoeSk5MjgRV48eLFToFAULS2tgYp0MXFBWCx2HkOh0MjkUjPYQGazWYXEon09MWLF6GO6gpwOJzU3NxcIWx3kEqlDovF4gxH4FAoFBgZGTmdmpo6BRuwvr6+vLa2tsURQAwGYxgbGzsRFBRkhQ04NTUVSKFQFCsrK95QAxkMBpvL5ZbC/sAbHh7+k1qtPgU1sL29/UJJSckg7MDs7OzuoaGhAihxSCRy/dGjR6fJZLIKdqBQKIwqKyvjGo3GQIi2iHUGg9HV29tbZu9YkHXVpFLp8fPnz6uh2A8zMjK4w8PDeVDMCzKg2Wx2IZPJT549exbuDGsPciAAAGRlZX3H4/Hy7RnD3d0dPHz48ERCQsK00wFZLFZNU1NTvZ0Pua9kMtkxqN5VQApks9nZpaWlA/aMERoaqtRoNJFQzQlSoEKh8E9MTHyyurq67U2/qKiotbOzs8IpgQDY1+X28PCwCgSCWKjWn0OAOp3OMz8//3uFQnF2K3Wurq7g5s2bpdXV1Wwo5+OQ94PV1dW1zc3NW2olenl5gcnJyQ8IBILF6YF5eXn3uFwucys1e/fuBaOjo3Y1ef83IJFIFMvl8qSt1Li5uQE+n38yOTn5sVMD9Xo9OjY29unLly/9t1rb0dGRVVxczHNqoFwuP0KhUObevn27nYPC542NjV86NbC3tzetoKDgh+2Me+bMGalcLic7JdBsNruoVKqTLBbr69nZ2W0duJFI5Hp5eXkjk8lsDggIWIENaDKZXC0Wi4/RaDxsMBgC5+bmQlQqVeT09PTZjY0Nuyfl7+//nEQiSaOjoycCAwO1vr6+y/v37/8dg8G8cxhQr9ej5XJ53OjoKFWj0YQvLi6eevPmDXB0UCgU8Pb2BhgMZgqPx89HRET8HBMTMxYTE6OFBDgzM+P74MGDgqGhoUs6nS4MOEE8PDysUVFRk3Q6vYdCoQgOHTq0vmWgUqnEcbnc4sHBQcby8vJh4KQJDQ1V5uXldWRmZt739/dfeS/QbDa73L17t6q9vb3cYrF8CHZICASCqq6u7tPs7GzpfwKXlpbcKyoqvh0ZGckFOzBoNNra1NTEZDKZ9/8VyGAw2vv6+krADg4ajbZyudxz6enpE/8A/v1/lw4AgCvY4QkODp7m8/mxQUFBVoTNZgNardabQqEooOprOkNu3LjxSV1d3W2EzWYDra2tBRUVFd1gF4VAIKiEQmEMwmazARqN1icQCC7tJqCbmxsQCASRCKPR6J6UlPRYq9WGgV2W27dvFyKUSiWOSqUuWiyW3eYDV65caUBIpdLjKSkpaigOyc6WzMzMXgSfzyemp6f/CHZhiESi5K8BACc8Ebde4coyAAAAAElFTkSuQmCC") 2x);
574    -webkit-mask-size: 15px 12px;
575    width: 15px;
576    height: 12px;
577    margin-left: 3px;
578    margin-right: 2px;
579    background-color: black;
580    flex: none;
581    -webkit-user-select: none;
582}
583
584input::-webkit-contacts-auto-fill-button:hover {
585    background-color: rgb(0, 122, 255);
586}
587
588input::-webkit-contacts-auto-fill-button:active {
589    background-color: rgb(0, 60, 219);
590}
591
592input::-webkit-caps-lock-indicator {
593    -webkit-appearance: caps-lock-indicator;
594    content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="17" height="17"><path fill="black" fill-opacity="0.4" d="M12.5 0.5A 4 4 0 0 1 16.5 4.5L 16.5 12.5A 4 4 0 0 1 12.5 16.5L 4.5 16.5A 4 4 0 0 1 0.5 12.5L 0.5 4.5A 4 4 0 0 1 4.5 0.5L 12.5 0.5M 8.5 2L 4 7L 6.25 7L 6.25 10.25L 10.75 10.25L 10.75 7L 13 7L 8.5 2M 10.75 12L 6.25 12L 6.25 14.25L 10.75 14.25L 10.75 12"/></svg>');
595    align-self: stretch;
596    flex: none;
597    -webkit-user-select: none;
598}
599
600keygen, select {
601    border-radius: 5px;
602}
603
604keygen::-webkit-keygen-select {
605    margin: 0px;
606}
607
608textarea {
609    -webkit-appearance: textarea;
610#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
611    background-color: white;
612    border: 1px solid;
613    -webkit-rtl-ordering: logical;
614    -webkit-user-select: text;
615#else
616    -webkit-nbsp-mode: space;
617    -webkit-line-break: after-white-space;
618#endif
619    flex-direction: column;
620    resize: auto;
621    cursor: auto;
622    padding: 2px;
623    white-space: pre-wrap;
624    word-wrap: break-word;
625}
626
627::-webkit-input-placeholder {
628    -webkit-text-security: none;
629    color: darkGray;
630    pointer-events: none !important;
631}
632
633input::-webkit-input-placeholder, isindex::-webkit-input-placeholder {
634    white-space: pre;
635    word-wrap: normal;
636    overflow: hidden;
637}
638
639input[type="password"] {
640    -webkit-text-security: disc !important;
641}
642
643input:matches([type="hidden"], [type="image"], [type="file"]) {
644    -webkit-appearance: initial;
645    padding: initial;
646    background-color: initial;
647    border: initial;
648}
649
650input[type="file"] {
651    align-items: baseline;
652    color: inherit;
653    text-align: start !important;
654}
655
656input:-webkit-autofill {
657#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS
658    background-color: #F7EC87 !important;
659#else
660    background-color: #FAFFBD !important;
661#endif
662    background-image: none !important;
663    color: #000000 !important;
664}
665
666input:matches([type="radio"], [type="checkbox"]) {
667    margin: 3px 2px;
668#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS
669    border: 1px solid #4c4c4c;
670    box-sizing: border-box;
671#else
672    padding: initial;
673    background-color: initial;
674    border: initial;
675#endif
676}
677
678input:matches([type="button"], [type="submit"], [type="reset"]) {
679    -webkit-appearance: push-button;
680    white-space: pre;
681}
682
683input[type="file"]::-webkit-file-upload-button {
684    -webkit-appearance: push-button;
685    white-space: nowrap;
686    margin: 0;
687    font-size: inherit;
688}
689
690input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::-webkit-file-upload-button, button {
691    align-items: flex-start;
692    text-align: center;
693    cursor: default;
694    color: ButtonText;
695#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
696    padding: 2px 6px 3px 6px;
697    border: 2px outset ButtonFace;
698    background-color: ButtonFace;
699#else
700    padding: 0 1.0em;
701    border: 1px solid #4c4c4c;
702    /* We want to be as close to background-color:transparent as possible without actually being transparent. */
703    background-color: rgba(255, 255, 255, 0.01);
704    font: 11px Helvetica;
705#endif
706    box-sizing: border-box;
707}
708
709input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]::-webkit-file-upload-button:active, button:active {
710    color: ActiveButtonText;
711}
712
713input[type="range"] {
714    -webkit-appearance: slider-horizontal;
715    padding: initial;
716    border: initial;
717    margin: 2px;
718    color: #909090;
719}
720
721input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container {
722    flex: 1;
723    box-sizing: border-box;
724    display: flex;
725    align-contents: center;
726}
727
728input[type="range"]::-webkit-slider-runnable-track {
729    flex: 1;
730    align-self: center;
731
732    box-sizing: border-box;
733    display: block;
734}
735
736input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb {
737    -webkit-appearance: sliderthumb-horizontal;
738    box-sizing: border-box;
739    display: block;
740#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS
741    background-color: white;
742    border: 1px solid rgb(66, 66, 66);
743    padding: 0px;
744#endif
745}
746
747#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS
748input[type="range"]::-webkit-slider-thumb:active {
749    background-color: black;
750}
751
752input:disabled, textarea:disabled {
753    opacity: 0.4;
754}
755
756input[readonly], textarea[readonly] {
757    border-color: rgb(188, 188, 188);
758}
759
760textarea::-webkit-input-placeholder {
761    text-indent: 2px;
762}
763#endif
764
765input:matches([type="button"], [type="submit"], [type="reset"]):disabled,
766input[type="file"]:disabled::-webkit-file-upload-button, button:disabled,
767select:disabled, keygen:disabled, optgroup:disabled, option:disabled,
768select[disabled]>option {
769    color: GrayText;
770}
771
772#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
773input:matches([type="button"], [type="submit"], [type="reset"]):active, input[type="file"]:active::-webkit-file-upload-button, button:active {
774    border-style: inset;
775}
776
777input:matches([type="button"], [type="submit"], [type="reset"]):active:disabled,
778input[type="file"]:active:disabled::-webkit-file-upload-button, button:active:disabled {
779    border-style: outset;
780}
781#endif
782
783area, param {
784    display: none;
785}
786
787input[type="checkbox"] {
788    -webkit-appearance: checkbox;
789#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
790    box-sizing: border-box;
791#else
792    border-radius: 5px;
793    width: 16px;
794    height: 16px;
795    padding: 0px;
796    /* We want to be as close to background:transparent as possible without actually being transparent */
797    background-color: rgba(255, 255, 255, 0.01);
798#endif
799}
800
801#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS
802input[type="radio"] {
803    -webkit-appearance: radio;
804    border-radius: 8px;
805    width: 16px;
806    height: 16px;
807    padding: 0px;
808    /* We want to be as close to background:transparent as possible without actually being transparent */
809    background-color: rgba(255, 255, 255, 0.01);
810}
811
812input:matches([type="checkbox"], [type="radio"]):checked {
813    background: rgba(0, 0, 0, 0.8);
814    border-color: rgba(255, 255, 255, 0.0);
815}
816
817input:matches([type="checkbox"], [type="radio"]):checked:disabled {
818    opacity: 0.4;
819    background: rgba(0, 0, 0, 0.8);
820}
821#endif
822
823#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
824input[type="radio"] {
825    -webkit-appearance: radio;
826    box-sizing: border-box;
827}
828#endif
829
830#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS
831select:focus {
832    border-color: rgb(17, 46, 135);
833}
834#endif
835
836#if defined(ENABLE_INPUT_TYPE_COLOR) && ENABLE_INPUT_TYPE_COLOR
837
838input[type="color"] {
839    -webkit-appearance: square-button;
840    width: 44px;
841    height: 23px;
842}
843
844input[type="color"]::-webkit-color-swatch-wrapper {
845    display: flex;
846    padding: 4px 2px;
847    box-sizing: border-box;
848    width: 100%;
849    height: 100%;
850}
851
852input[type="color"]::-webkit-color-swatch {
853    background-color: #000000;
854    border: 1px solid #777777;
855    flex: 1;
856}
857
858#if defined(ENABLE_DATALIST_ELEMENT) && ENABLE_DATALIST_ELEMENT
859
860input[type="color"][list] {
861    -webkit-appearance: menulist;
862    width: 88px;
863    height: 23px;
864}
865
866input[type="color"][list]::-webkit-color-swatch-wrapper {
867    padding-left: 8px;
868    padding-right: 24px;
869}
870
871input[type="color"][list]::-webkit-color-swatch {
872    border-color: #000000;
873}
874
875#endif // defined(ENABLE_DATALIST_ELEMENT) && ENABLE_DATALIST_ELEMENT
876
877#endif // defined(ENABLE_INPUT_TYPE_COLOR) && ENABLE_INPUT_TYPE_COLOR
878
879select {
880    box-sizing: border-box;
881#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS
882    -webkit-appearance: menulist-button;
883    letter-spacing: normal;
884    word-spacing: normal;
885    line-height: normal;
886    border: 1px solid #4c4c4c;
887    /* We want to be as close to background:transparent as possible without actually being transparent */
888    background-color: rgba(255, 255, 255, 0.01);
889    font: 11px Helvetica;
890    padding: 0 0.4em 0 0.4em;
891#else
892    -webkit-appearance: menulist;
893    border: 1px solid;
894    color: black;
895    background-color: white;
896#endif
897    align-items: center;
898    white-space: pre;
899    -webkit-rtl-ordering: logical;
900    cursor: default;
901}
902
903#if !(defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS)
904select:matches([size], [multiple], [size][multiple]) {
905    -webkit-appearance: listbox;
906    align-items: flex-start;
907    border: 1px inset gray;
908    border-radius: initial;
909    white-space: initial;
910}
911
912select:matches([size="0"], [size="1"]) {
913    -webkit-appearance: menulist;
914    align-items: center;
915    border: 1px solid;
916    border-radius: 5px;
917    white-space: pre;
918}
919#endif
920
921optgroup {
922    font-weight: bolder;
923}
924
925option {
926    font-weight: normal;
927}
928
929output {
930    display: inline;
931}
932
933/* form validation message bubble */
934
935::-webkit-validation-bubble {
936    display: inline-block;
937    z-index: 2147483647;
938    position: absolute;
939    opacity: 0.95;
940    line-height: 0;
941    margin: 0;
942    -webkit-text-security: none;
943    transition: opacity 05.5s ease;
944}
945
946::-webkit-validation-bubble-message {
947    display: flex;
948    position: relative;
949    top: -4px;
950    font: message-box;
951    color: black;
952    min-width: 50px;
953    max-width: 200px;
954    border: solid 2px #400;
955    background: -webkit-gradient(linear, left top, left bottom, from(#f8ecec), to(#e8cccc));
956    padding: 8px;
957    border-radius: 8px;
958    -webkit-box-shadow: 4px 4px 4px rgba(100,100,100,0.6),
959        inset -2px -2px 1px #d0c4c4,
960        inset 2px 2px 1px white;
961    line-height: normal;
962    white-space: normal;
963    z-index: 2147483644;
964}
965
966::-webkit-validation-bubble-text-block {
967    flex: 1;
968}
969
970::-webkit-validation-bubble-heading {
971    font-weight: bold;
972}
973
974::-webkit-validation-bubble-arrow {
975    display: inline-block;
976    position: relative;
977    left: 32px;
978    width: 16px;
979    height: 16px;
980    background-color: #f8ecec;
981    border-width: 2px 0 0 2px;
982    border-style: solid;
983    border-color: #400;
984    box-shadow: inset 2px 2px 1px white;
985    -webkit-transform-origin: 0 0;
986    transform: rotate(45deg);
987    z-index: 2147483645;
988}
989
990::-webkit-validation-bubble-arrow-clipper {
991    display: block;
992    overflow: hidden;
993    height: 16px;
994}
995
996#if defined(ENABLE_METER_ELEMENT) && ENABLE_METER_ELEMENT
997/* meter */
998
999meter {
1000    -webkit-appearance: meter;
1001    box-sizing: border-box;
1002    display: inline-block;
1003    height: 1em;
1004    width: 5em;
1005    vertical-align: -0.2em;
1006}
1007
1008meter::-webkit-meter-inner-element {
1009    -webkit-appearance: inherit;
1010    box-sizing: inherit;
1011    height: 100%;
1012    width: 100%;
1013}
1014
1015meter::-webkit-meter-bar {
1016    background: -webkit-gradient(linear, left top, left bottom, from(#ddd), to(#ddd), color-stop(0.20, #eee), color-stop(0.45, #ccc), color-stop(0.55, #ccc));
1017    height: 100%;
1018    width: 100%;
1019    box-sizing: border-box;
1020}
1021
1022meter::-webkit-meter-optimum-value {
1023    background: -webkit-gradient(linear, left top, left bottom, from(#ad7), to(#ad7), color-stop(0.20, #cea), color-stop(0.45, #7a3), color-stop(0.55, #7a3));
1024    height: 100%;
1025    box-sizing: border-box;
1026}
1027
1028meter::-webkit-meter-suboptimum-value {
1029    background: -webkit-gradient(linear, left top, left bottom, from(#fe7), to(#fe7), color-stop(0.20, #ffc), color-stop(0.45, #db3), color-stop(0.55, #db3));
1030    height: 100%;
1031    box-sizing: border-box;
1032}
1033
1034meter::-webkit-meter-even-less-good-value {
1035    background: -webkit-gradient(linear, left top, left bottom, from(#f77), to(#f77), color-stop(0.20, #fcc), color-stop(0.45, #d44), color-stop(0.55, #d44));
1036    height: 100%;
1037    box-sizing: border-box;
1038}
1039#endif
1040
1041/* progress */
1042
1043progress {
1044    -webkit-appearance: progress-bar;
1045    box-sizing: border-box;
1046    display: inline-block;
1047    height: 1em;
1048    width: 10em;
1049    vertical-align: -0.2em;
1050}
1051
1052progress::-webkit-progress-inner-element {
1053    -webkit-appearance: inherit;
1054    box-sizing: inherit;
1055    height: 100%;
1056    width: 100%;
1057}
1058
1059progress::-webkit-progress-bar {
1060    background-color: gray;
1061    height: 100%;
1062    width: 100%;
1063    box-sizing: border-box;
1064}
1065
1066progress::-webkit-progress-value {
1067    background-color: green;
1068    height: 100%;
1069    width: 50%; /* should be removed later */
1070    box-sizing: border-box;
1071}
1072
1073/* inline elements */
1074
1075u, ins {
1076    text-decoration: underline;
1077}
1078
1079strong, b {
1080    font-weight: bold;
1081}
1082
1083i, cite, em, var, address, dfn {
1084    font-style: italic;
1085}
1086
1087tt, code, kbd, samp {
1088    font-family: monospace;
1089}
1090
1091pre, xmp, plaintext, listing {
1092    display: block;
1093    font-family: monospace;
1094    white-space: pre;
1095    margin: 1__qem 0;
1096}
1097
1098mark {
1099    background-color: yellow;
1100    color: black;
1101}
1102
1103big {
1104    font-size: larger;
1105}
1106
1107small {
1108    font-size: smaller;
1109}
1110
1111s, strike, del {
1112    text-decoration: line-through;
1113}
1114
1115sub {
1116    vertical-align: sub;
1117    font-size: smaller;
1118}
1119
1120sup {
1121    vertical-align: super;
1122    font-size: smaller;
1123}
1124
1125nobr {
1126    white-space: nowrap;
1127}
1128
1129/* states */
1130
1131:focus {
1132    outline: auto 5px -webkit-focus-ring-color;
1133}
1134
1135/* Read-only text fields do not show a focus ring but do still receive focus */
1136html:focus, body:focus, input[readonly]:focus, applet:focus, embed:focus, iframe:focus, object:focus {
1137    outline: none;
1138}
1139
1140input:focus, textarea:focus, isindex:focus, keygen:focus, select:focus {
1141    outline-offset: -2px;
1142}
1143
1144input:matches([type="button"], [type="checkbox"], [type="file"], [type="hidden"], [type="image"], [type="radio"], [type="reset"], [type="search"], [type="submit"]):focus,
1145input[type="file"]:focus::-webkit-file-upload-button {
1146    outline-offset: 0;
1147}
1148
1149a:any-link {
1150    color: -webkit-link;
1151    text-decoration: underline;
1152    cursor: auto;
1153}
1154
1155a:any-link:active {
1156    color: -webkit-activelink;
1157}
1158
1159/* HTML5 ruby elements */
1160
1161ruby, rt {
1162    text-indent: 0; /* blocks used for ruby rendering should not trigger this */
1163}
1164
1165rt {
1166    line-height: normal;
1167    -webkit-text-emphasis: none;
1168}
1169
1170ruby > rt {
1171    display: block;
1172    font-size: -webkit-ruby-text;
1173    text-align: start;
1174}
1175
1176ruby > rp {
1177    display: none;
1178}
1179
1180/* other elements */
1181
1182noframes {
1183    display: none;
1184}
1185
1186frameset, frame {
1187    display: block;
1188}
1189
1190frameset {
1191    border-color: inherit;
1192}
1193
1194iframe {
1195    border: 2px inset;
1196}
1197
1198details {
1199    display: block;
1200}
1201
1202summary {
1203    display: block;
1204}
1205
1206summary::-webkit-details-marker {
1207    display: inline-block;
1208    width: 0.66em;
1209    height: 0.66em;
1210    margin-right: 0.4em;
1211}
1212
1213#if defined(ENABLE_TEMPLATE_ELEMENT) && ENABLE_TEMPLATE_ELEMENT
1214template {
1215    display: none;
1216}
1217#endif
1218
1219bdi, output {
1220    unicode-bidi: -webkit-isolate;
1221}
1222
1223bdo {
1224    unicode-bidi: bidi-override;
1225}
1226
1227#if defined(WTF_PLATFORM_IOS) && WTF_PLATFORM_IOS
1228applet, embed, object, img {
1229    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
1230}
1231:any-link img {
1232    -webkit-tap-highlight-color: inherit;
1233}
1234#endif
1235
1236#if defined(ENABLE_ATTACHMENT_ELEMENT) && ENABLE_ATTACHMENT_ELEMENT
1237attachment {
1238    -webkit-appearance: attachment;
1239}
1240#endif
1241
1242/* page */
1243
1244@page {
1245    /* FIXME: Define the right default values for page properties. */
1246    size: auto;
1247    margin: auto;
1248    padding: 0px;
1249    border-width: 0px;
1250}
1251
1252/* noscript is handled internally, as it depends on settings. */
1253
Note: See TracBrowser for help on using the repository browser.