<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[211349] trunk/LayoutTests</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/211349">211349</a></dd>
<dt>Author</dt> <dd>ddkilzer@apple.com</dd>
<dt>Date</dt> <dd>2017-01-28 23:30:39 -0800 (Sat, 28 Jan 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Migrate 97 *-disabled tests to use TestExpectations
&lt;https://webkit.org/b/167537&gt;

Reviewed by Darin Adler.

* TestExpectations: Skip renamed tests.

* fast/dom/HTMLDataGridElement/DataGridColumns-basic-expected.txt: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-basic.html-disabled: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes-expected.txt: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html-disabled: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-dom-expected.txt: Removed.
* fast/dom/HTMLDataGridElement/DataGridColumns-dom.html-disabled: Removed.
* fast/dom/HTMLDataGridElement/DataGridDataSource-basic-expected.txt: Removed.
* fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html-disabled: Removed.
- Tests disabled in <a href="http://trac.webkit.org/projects/webkit/changeset/52512">r52512</a>. DataGrid feature removed in <a href="http://trac.webkit.org/projects/webkit/changeset/84991">r84991</a>.

* http/tests/appcache/dynamic-entries-no-cache-expected.txt: Removed.
* http/tests/appcache/dynamic-entries-no-cache.html-disabled: Removed.
- Test disabled in <a href="http://trac.webkit.org/projects/webkit/changeset/39816">r39816</a>. AppCache dynamic entry feature removed in <a href="http://trac.webkit.org/projects/webkit/changeset/95486">r95486</a>.

* svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled: Removed.
- Unused. Same as LayoutTests/svg/W3C-SVG-1.1/filters-comptran-01-b.svg.

* animations/font-size-using-ems.html: Renamed from LayoutTests/animations/font-size-using-ems.html-disabled.
* compositing/objects/composited-object-alignment.html: Renamed from LayoutTests/compositing/objects/composited-object-alignment.html-disabled.
* compositing/tiling/huge-layer-resize.html: Renamed from LayoutTests/compositing/tiling/huge-layer-resize.html-disabled.
* compositing/tiling/huge-layer.html: Renamed from LayoutTests/compositing/tiling/huge-layer.html-disabled.
* css2.1/t1202-counter-10-b.html: Renamed from LayoutTests/css2.1/t1202-counter-10-b.html-disabled.
* css2.1/t1202-counters-10-b.html: Renamed from LayoutTests/css2.1/t1202-counters-10-b.html-disabled.
* css2.1/t1204-increment-00-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled.
* css2.1/t1204-increment-01-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled.
* css2.1/t1204-increment-02-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled.
* css2.1/t1204-reset-00-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled.
* css2.1/t1204-reset-01-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled.
* css2.1/t1204-reset-02-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled.
* dom/xhtml/level2/html/HTMLFrameElement09.xhtml: Renamed from LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled.
* dom/xhtml/level3/core/documentadoptnode22.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled.
* dom/xhtml/level3/core/documentnormalizedocument06.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled.
* dom/xhtml/level3/core/documentsetdocumenturi01.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled.
* dom/xhtml/level3/core/documentsetdocumenturi02.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled.
* dom/xhtml/level3/core/domimplementationregistry12.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled.
* dom/xhtml/level3/core/domimplementationregistry23.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled.
* dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled.
* dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled.
* dom/xhtml/level3/core/noderemovechild03.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled.
* dom/xhtml/level3/core/nodereplacechild06.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled.
* dom/xhtml/level3/core/nodereplacechild07.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled.
* dom/xhtml/level3/core/nodereplacechild08.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled.
* editing/execCommand/create-list-1.html: Renamed from LayoutTests/editing/execCommand/create-list-1.html-disabled.
* editing/input/attributed-substring-from-range-lines.html: Renamed from LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled.
* editing/pasteboard/paste-empty-startcontainer.html: Renamed from LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled.
* editing/selection/inconsistent-in-removeChildNode.html: Renamed from LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled.
* editing/style/5091898.html: Renamed from LayoutTests/editing/style/5091898.html-disabled.
* fast/css/css2-system-color.html: Renamed from LayoutTests/fast/css/css2-system-color.html-disabled.
* fast/css/font-face-in-shadow-DOM.html: Renamed from LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled.
* fast/css/limited-vendor-prefix-behavior.html: Renamed from LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled.
* fast/dom/Window/timeout-released-on-close.html: Renamed from LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled.
* fast/dom/Window/window-resize-nan.html: Renamed from LayoutTests/fast/dom/Window/window-resize-nan.html-disabled.
* fast/dom/gc-8.html: Renamed from LayoutTests/fast/dom/gc-8.html-disabled.
* fast/dynamic/crash-paint-no-documentElement-renderer.html: Renamed from LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled.
* fast/events/destroyed-atomic-string.html: Renamed from LayoutTests/fast/events/destroyed-atomic-string.html-disabled.
* fast/events/key-events-in-frame.html: Renamed from LayoutTests/fast/events/key-events-in-frame.html-disabled.
* fast/frames/iframe-scroll-page-up-down.html: Renamed from LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled.
* fast/html/marquee-alternate.html: Renamed from LayoutTests/fast/html/marquee-alternate.html-disabled.
* fast/leaks/003.html: Renamed from LayoutTests/fast/leaks/003.html-disabled.
* fast/loader/api-test-go-to-current-back-forward-item.html: Renamed from LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled.
* fast/loader/api-test-new-window-data-load-base-url.html: Renamed from LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled.
* fast/loader/form-events-back-forward.html: Renamed from LayoutTests/fast/loader/form-events-back-forward.html-disabled.
* fast/notifications/notifications-event-stop-propagation.html: Renamed from LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled.
* fast/notifications/notifications-multi-events.html: Renamed from LayoutTests/fast/notifications/notifications-multi-events.html-disabled.
* fast/ruby/after-block-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled.
* fast/ruby/after-table-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled.
* fast/ruby/generated-after-counter-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled.
* fast/ruby/generated-before-and-after-counter-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled.
* fast/shadow-dom/copy-shadow-tree.html: Renamed from LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled.
* fast/table/double-height-table-no-tbody.html: Renamed from LayoutTests/fast/table/double-height-table-no-tbody.html-disabled.
* fast/text/large-text-composed-char-dos.html: Renamed from LayoutTests/fast/text/large-text-composed-char-dos.html-disabled.
* http/tests/multipart/win-boundary-crash.html: Renamed from LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled.
* http/tests/navigation/post-goback-repost-policy.html: Renamed from LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled.
* http/tests/navigation/success200-frames-goback.html: Renamed from LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled.
* http/tests/navigation/success200-frames-reload.html: Renamed from LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled.
* http/tests/navigation/success200-subframeload-goback.html: Renamed from LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled.
* java/lc3/ArrayMethods/object-001.html: Renamed from LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled.
* java/lc3/forin/array-001.html: Renamed from LayoutTests/java/lc3/forin/array-001.html-disabled.
* jquery/effects.html: Renamed from LayoutTests/jquery/effects.html-disabled.
* js/garbage-collect-after-string-appends.html: Renamed from LayoutTests/js/garbage-collect-after-string-appends.html-disabled.
* js/kde/Date.html: Renamed from LayoutTests/js/kde/Date.html-disabled.
* js/resources/garbage-collect-after-string-appends.js: Renamed from LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled.
* js/string-concatenate-outofmemory.html: Renamed from LayoutTests/js/string-concatenate-outofmemory.html-disabled.
* media/video-canvas.html: Renamed from LayoutTests/media/video-canvas.html-disabled.
* platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html: Renamed from LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled.
* sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled.
* sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_218/S7.6_A3.1.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled.
* sputnik/Unicode/Unicode_218/S7.6_A3.2.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled.
* sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled.
* sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled.
* sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled.
* sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled.
* sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled.
* sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled.
* svg/batik/text/textBiDi.svg: Renamed from LayoutTests/svg/batik/text/textBiDi.svg-disabled.
* svg/custom/filter-source-alpha.svg: Renamed from LayoutTests/svg/custom/filter-source-alpha.svg-disabled.
* svg/custom/font-face-fallback.svg: Renamed from LayoutTests/svg/custom/font-face-fallback.svg-disabled.
* svg/custom/js-font-test.svg: Renamed from LayoutTests/svg/custom/js-font-test.svg-disabled.
* svg/zoom/page/zoom-svg-through-object-with-text.xhtml: Renamed from LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled.
- Renamed disabled tests now that they're skipped in TestExpectations.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsTestExpectations">trunk/LayoutTests/TestExpectations</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsanimationsfontsizeusingemshtml">trunk/LayoutTests/animations/font-size-using-ems.html</a></li>
<li><a href="#trunkLayoutTestscompositingobjectscompositedobjectalignmenthtml">trunk/LayoutTests/compositing/objects/composited-object-alignment.html</a></li>
<li><a href="#trunkLayoutTestscompositingtilinghugelayerresizehtml">trunk/LayoutTests/compositing/tiling/huge-layer-resize.html</a></li>
<li><a href="#trunkLayoutTestscompositingtilinghugelayerhtml">trunk/LayoutTests/compositing/tiling/huge-layer.html</a></li>
<li><a href="#trunkLayoutTestscss21t1202counter10bhtml">trunk/LayoutTests/css2.1/t1202-counter-10-b.html</a></li>
<li><a href="#trunkLayoutTestscss21t1202counters10bhtml">trunk/LayoutTests/css2.1/t1202-counters-10-b.html</a></li>
<li><a href="#trunkLayoutTestscss21t1204increment00cohtml">trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html</a></li>
<li><a href="#trunkLayoutTestscss21t1204increment01cohtml">trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html</a></li>
<li><a href="#trunkLayoutTestscss21t1204increment02cohtml">trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html</a></li>
<li><a href="#trunkLayoutTestscss21t1204reset00cohtml">trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html</a></li>
<li><a href="#trunkLayoutTestscss21t1204reset01cohtml">trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html</a></li>
<li><a href="#trunkLayoutTestscss21t1204reset02cohtml">trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel2htmlHTMLFrameElement09xhtml">trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentadoptnode22xhtml">trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentnormalizedocument06xhtml">trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi01xhtml">trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi02xhtml">trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry12xhtml">trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry23xhtml">trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition14xhtml">trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition15xhtml">trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenoderemovechild03xhtml">trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodereplacechild06xhtml">trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodereplacechild07xhtml">trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodereplacechild08xhtml">trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml</a></li>
<li><a href="#trunkLayoutTestseditingexecCommandcreatelist1html">trunk/LayoutTests/editing/execCommand/create-list-1.html</a></li>
<li><a href="#trunkLayoutTestseditinginputattributedsubstringfromrangelineshtml">trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html</a></li>
<li><a href="#trunkLayoutTestseditingpasteboardpasteemptystartcontainerhtml">trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html</a></li>
<li><a href="#trunkLayoutTestseditingselectioninconsistentinremoveChildNodehtml">trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html</a></li>
<li><a href="#trunkLayoutTestseditingstyle5091898html">trunk/LayoutTests/editing/style/5091898.html</a></li>
<li><a href="#trunkLayoutTestsfastcsscss2systemcolorhtml">trunk/LayoutTests/fast/css/css2-system-color.html</a></li>
<li><a href="#trunkLayoutTestsfastcssfontfaceinshadowDOMhtml">trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html</a></li>
<li><a href="#trunkLayoutTestsfastcsslimitedvendorprefixbehaviorhtml">trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowtimeoutreleasedonclosehtml">trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowwindowresizenanhtml">trunk/LayoutTests/fast/dom/Window/window-resize-nan.html</a></li>
<li><a href="#trunkLayoutTestsfastdomgc8html">trunk/LayoutTests/fast/dom/gc-8.html</a></li>
<li><a href="#trunkLayoutTestsfastdynamiccrashpaintnodocumentElementrendererhtml">trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html</a></li>
<li><a href="#trunkLayoutTestsfasteventsdestroyedatomicstringhtml">trunk/LayoutTests/fast/events/destroyed-atomic-string.html</a></li>
<li><a href="#trunkLayoutTestsfasteventskeyeventsinframehtml">trunk/LayoutTests/fast/events/key-events-in-frame.html</a></li>
<li><a href="#trunkLayoutTestsfastframesiframescrollpageupdownhtml">trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html</a></li>
<li><a href="#trunkLayoutTestsfasthtmlmarqueealternatehtml">trunk/LayoutTests/fast/html/marquee-alternate.html</a></li>
<li><a href="#trunkLayoutTestsfastleaks003html">trunk/LayoutTests/fast/leaks/003.html</a></li>
<li><a href="#trunkLayoutTestsfastloaderapitestgotocurrentbackforwarditemhtml">trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html</a></li>
<li><a href="#trunkLayoutTestsfastloaderapitestnewwindowdataloadbaseurlhtml">trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html</a></li>
<li><a href="#trunkLayoutTestsfastloaderformeventsbackforwardhtml">trunk/LayoutTests/fast/loader/form-events-back-forward.html</a></li>
<li><a href="#trunkLayoutTestsfastnotificationsnotificationseventstoppropagationhtml">trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html</a></li>
<li><a href="#trunkLayoutTestsfastnotificationsnotificationsmultieventshtml">trunk/LayoutTests/fast/notifications/notifications-multi-events.html</a></li>
<li><a href="#trunkLayoutTestsfastrubyafterblockdoesntcrashhtml">trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html</a></li>
<li><a href="#trunkLayoutTestsfastrubyaftertabledoesntcrashhtml">trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html</a></li>
<li><a href="#trunkLayoutTestsfastrubygeneratedaftercounterdoesntcrashhtml">trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html</a></li>
<li><a href="#trunkLayoutTestsfastrubygeneratedbeforeandaftercounterdoesntcrashhtml">trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html</a></li>
<li><a href="#trunkLayoutTestsfastshadowdomcopyshadowtreehtml">trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html</a></li>
<li><a href="#trunkLayoutTestsfasttabledoubleheighttablenotbodyhtml">trunk/LayoutTests/fast/table/double-height-table-no-tbody.html</a></li>
<li><a href="#trunkLayoutTestsfasttextlargetextcomposedchardoshtml">trunk/LayoutTests/fast/text/large-text-composed-char-dos.html</a></li>
<li><a href="#trunkLayoutTestshttptestsmultipartwinboundarycrashhtml">trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationpostgobackrepostpolicyhtml">trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationsuccess200framesgobackhtml">trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationsuccess200framesreloadhtml">trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationsuccess200subframeloadgobackhtml">trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html</a></li>
<li><a href="#trunkLayoutTestsjavalc3ArrayMethodsobject001html">trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html</a></li>
<li><a href="#trunkLayoutTestsjavalc3forinarray001html">trunk/LayoutTests/java/lc3/forin/array-001.html</a></li>
<li><a href="#trunkLayoutTestsjqueryeffectshtml">trunk/LayoutTests/jquery/effects.html</a></li>
<li><a href="#trunkLayoutTestsjsgarbagecollectafterstringappendshtml">trunk/LayoutTests/js/garbage-collect-after-string-appends.html</a></li>
<li><a href="#trunkLayoutTestsjskdeDatehtml">trunk/LayoutTests/js/kde/Date.html</a></li>
<li><a href="#trunkLayoutTestsjsresourcesgarbagecollectafterstringappendsjs">trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js</a></li>
<li><a href="#trunkLayoutTestsjsstringconcatenateoutofmemoryhtml">trunk/LayoutTests/js/string-concatenate-outofmemory.html</a></li>
<li><a href="#trunkLayoutTestsmediavideocanvashtml">trunk/LayoutTests/media/video-canvas.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacpluginspluginDocumentViewdeallocateddataSourcehtml">trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315131_decodeURIS15131_A25_T1html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315132_decodeURIComponentS15132_A25_T1html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T1html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T2html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T3html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T4html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T5html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T6html">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A11_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A31html">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A32html">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A52_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_320S76_A11_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_320S76_A52_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_410S76_A11_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_410S76_A52_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_500S76_A11_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_500S76_A52_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_510S76_A11_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_510S76_A52_T5html">trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html</a></li>
<li><a href="#trunkLayoutTestssvgbatiktexttextBiDisvg">trunk/LayoutTests/svg/batik/text/textBiDi.svg</a></li>
<li><a href="#trunkLayoutTestssvgcustomfiltersourcealphasvg">trunk/LayoutTests/svg/custom/filter-source-alpha.svg</a></li>
<li><a href="#trunkLayoutTestssvgcustomfontfacefallbacksvg">trunk/LayoutTests/svg/custom/font-face-fallback.svg</a></li>
<li><a href="#trunkLayoutTestssvgcustomjsfonttestsvg">trunk/LayoutTests/svg/custom/js-font-test.svg</a></li>
<li><a href="#trunkLayoutTestssvgzoompagezoomsvgthroughobjectwithtextxhtml">trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsanimationsfontsizeusingemshtmldisabled">trunk/LayoutTests/animations/font-size-using-ems.html-disabled</a></li>
<li><a href="#trunkLayoutTestscompositingobjectscompositedobjectalignmenthtmldisabled">trunk/LayoutTests/compositing/objects/composited-object-alignment.html-disabled</a></li>
<li><a href="#trunkLayoutTestscompositingtilinghugelayerresizehtmldisabled">trunk/LayoutTests/compositing/tiling/huge-layer-resize.html-disabled</a></li>
<li><a href="#trunkLayoutTestscompositingtilinghugelayerhtmldisabled">trunk/LayoutTests/compositing/tiling/huge-layer.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1202counter10bhtmldisabled">trunk/LayoutTests/css2.1/t1202-counter-10-b.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1202counters10bhtmldisabled">trunk/LayoutTests/css2.1/t1202-counters-10-b.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1204increment00cohtmldisabled">trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1204increment01cohtmldisabled">trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1204increment02cohtmldisabled">trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1204reset00cohtmldisabled">trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1204reset01cohtmldisabled">trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled</a></li>
<li><a href="#trunkLayoutTestscss21t1204reset02cohtmldisabled">trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel2htmlHTMLFrameElement09xhtmldisabled">trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentadoptnode22xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentnormalizedocument06xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi01xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi02xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry12xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry23xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition14xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition15xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenoderemovechild03xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodereplacechild06xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodereplacechild07xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestsdomxhtmllevel3corenodereplacechild08xhtmldisabled">trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled</a></li>
<li><a href="#trunkLayoutTestseditingexecCommandcreatelist1htmldisabled">trunk/LayoutTests/editing/execCommand/create-list-1.html-disabled</a></li>
<li><a href="#trunkLayoutTestseditinginputattributedsubstringfromrangelineshtmldisabled">trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled</a></li>
<li><a href="#trunkLayoutTestseditingpasteboardpasteemptystartcontainerhtmldisabled">trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled</a></li>
<li><a href="#trunkLayoutTestseditingselectioninconsistentinremoveChildNodehtmldisabled">trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled</a></li>
<li><a href="#trunkLayoutTestseditingstyle5091898htmldisabled">trunk/LayoutTests/editing/style/5091898.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastcsscss2systemcolorhtmldisabled">trunk/LayoutTests/fast/css/css2-system-color.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastcssfontfaceinshadowDOMhtmldisabled">trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastcsslimitedvendorprefixbehaviorhtmldisabled">trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled</a></li>
<li>trunk/LayoutTests/fast/dom/HTMLDataGridElement/</li>
<li><a href="#trunkLayoutTestsfastdomWindowtimeoutreleasedonclosehtmldisabled">trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastdomWindowwindowresizenanhtmldisabled">trunk/LayoutTests/fast/dom/Window/window-resize-nan.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastdomgc8htmldisabled">trunk/LayoutTests/fast/dom/gc-8.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastdynamiccrashpaintnodocumentElementrendererhtmldisabled">trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventsdestroyedatomicstringhtmldisabled">trunk/LayoutTests/fast/events/destroyed-atomic-string.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasteventskeyeventsinframehtmldisabled">trunk/LayoutTests/fast/events/key-events-in-frame.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastframesiframescrollpageupdownhtmldisabled">trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasthtmlmarqueealternatehtmldisabled">trunk/LayoutTests/fast/html/marquee-alternate.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastleaks003htmldisabled">trunk/LayoutTests/fast/leaks/003.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastloaderapitestgotocurrentbackforwarditemhtmldisabled">trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastloaderapitestnewwindowdataloadbaseurlhtmldisabled">trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastloaderformeventsbackforwardhtmldisabled">trunk/LayoutTests/fast/loader/form-events-back-forward.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastnotificationsnotificationseventstoppropagationhtmldisabled">trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastnotificationsnotificationsmultieventshtmldisabled">trunk/LayoutTests/fast/notifications/notifications-multi-events.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastrubyafterblockdoesntcrashhtmldisabled">trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastrubyaftertabledoesntcrashhtmldisabled">trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastrubygeneratedaftercounterdoesntcrashhtmldisabled">trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastrubygeneratedbeforeandaftercounterdoesntcrashhtmldisabled">trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfastshadowdomcopyshadowtreehtmldisabled">trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasttabledoubleheighttablenotbodyhtmldisabled">trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled</a></li>
<li><a href="#trunkLayoutTestsfasttextlargetextcomposedchardoshtmldisabled">trunk/LayoutTests/fast/text/large-text-composed-char-dos.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestsappcachedynamicentriesnocacheexpectedtxt">trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache-expected.txt</a></li>
<li><a href="#trunkLayoutTestshttptestsappcachedynamicentriesnocachehtmldisabled">trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestsmultipartwinboundarycrashhtmldisabled">trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationpostgobackrepostpolicyhtmldisabled">trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationsuccess200framesgobackhtmldisabled">trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationsuccess200framesreloadhtmldisabled">trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled</a></li>
<li><a href="#trunkLayoutTestshttptestsnavigationsuccess200subframeloadgobackhtmldisabled">trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled</a></li>
<li><a href="#trunkLayoutTestsjavalc3ArrayMethodsobject001htmldisabled">trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled</a></li>
<li><a href="#trunkLayoutTestsjavalc3forinarray001htmldisabled">trunk/LayoutTests/java/lc3/forin/array-001.html-disabled</a></li>
<li><a href="#trunkLayoutTestsjqueryeffectshtmldisabled">trunk/LayoutTests/jquery/effects.html-disabled</a></li>
<li><a href="#trunkLayoutTestsjsgarbagecollectafterstringappendshtmldisabled">trunk/LayoutTests/js/garbage-collect-after-string-appends.html-disabled</a></li>
<li><a href="#trunkLayoutTestsjskdeDatehtmldisabled">trunk/LayoutTests/js/kde/Date.html-disabled</a></li>
<li><a href="#trunkLayoutTestsjsresourcesgarbagecollectafterstringappendsjsdisabled">trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled</a></li>
<li><a href="#trunkLayoutTestsjsstringconcatenateoutofmemoryhtmldisabled">trunk/LayoutTests/js/string-concatenate-outofmemory.html-disabled</a></li>
<li><a href="#trunkLayoutTestsmediavideocanvashtmldisabled">trunk/LayoutTests/media/video-canvas.html-disabled</a></li>
<li><a href="#trunkLayoutTestsplatformmacpluginspluginDocumentViewdeallocateddataSourcehtmldisabled">trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315131_decodeURIS15131_A25_T1htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315132_decodeURIComponentS15132_A25_T1htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T1htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T2htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T3htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T4htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T5htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T6htmldisabled">trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A11_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A31htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A32htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_218S76_A52_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_320S76_A11_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_320S76_A52_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_410S76_A11_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_410S76_A52_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_500S76_A11_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_500S76_A52_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_510S76_A11_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssputnikUnicodeUnicode_510S76_A52_T5htmldisabled">trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled</a></li>
<li><a href="#trunkLayoutTestssvgW3CSVG11resourcesfilterscomptran01fsvgdisabled">trunk/LayoutTests/svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled</a></li>
<li><a href="#trunkLayoutTestssvgbatiktexttextBiDisvgdisabled">trunk/LayoutTests/svg/batik/text/textBiDi.svg-disabled</a></li>
<li><a href="#trunkLayoutTestssvgcustomfiltersourcealphasvgdisabled">trunk/LayoutTests/svg/custom/filter-source-alpha.svg-disabled</a></li>
<li><a href="#trunkLayoutTestssvgcustomfontfacefallbacksvgdisabled">trunk/LayoutTests/svg/custom/font-face-fallback.svg-disabled</a></li>
<li><a href="#trunkLayoutTestssvgcustomjsfonttestsvgdisabled">trunk/LayoutTests/svg/custom/js-font-test.svg-disabled</a></li>
<li><a href="#trunkLayoutTestssvgzoompagezoomsvgthroughobjectwithtextxhtmldisabled">trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/ChangeLog        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,3 +1,124 @@
</span><ins>+2017-01-28  David Kilzer  &lt;ddkilzer@apple.com&gt;
+
+        Migrate 97 *-disabled tests to use TestExpectations
+        &lt;https://webkit.org/b/167537&gt;
+
+        Reviewed by Darin Adler.
+
+        * TestExpectations: Skip renamed tests.
+
+        * fast/dom/HTMLDataGridElement/DataGridColumns-basic-expected.txt: Removed.
+        * fast/dom/HTMLDataGridElement/DataGridColumns-basic.html-disabled: Removed.
+        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes-expected.txt: Removed.
+        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-attributes.html-disabled: Removed.
+        * fast/dom/HTMLDataGridElement/DataGridColumns-dom-expected.txt: Removed.
+        * fast/dom/HTMLDataGridElement/DataGridColumns-dom.html-disabled: Removed.
+        * fast/dom/HTMLDataGridElement/DataGridDataSource-basic-expected.txt: Removed.
+        * fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html-disabled: Removed.
+        - Tests disabled in r52512. DataGrid feature removed in r84991.
+
+        * http/tests/appcache/dynamic-entries-no-cache-expected.txt: Removed.
+        * http/tests/appcache/dynamic-entries-no-cache.html-disabled: Removed.
+        - Test disabled in r39816. AppCache dynamic entry feature removed in r95486.
+
+        * svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled: Removed.
+        - Unused. Same as LayoutTests/svg/W3C-SVG-1.1/filters-comptran-01-b.svg.
+
+        * animations/font-size-using-ems.html: Renamed from LayoutTests/animations/font-size-using-ems.html-disabled.
+        * compositing/objects/composited-object-alignment.html: Renamed from LayoutTests/compositing/objects/composited-object-alignment.html-disabled.
+        * compositing/tiling/huge-layer-resize.html: Renamed from LayoutTests/compositing/tiling/huge-layer-resize.html-disabled.
+        * compositing/tiling/huge-layer.html: Renamed from LayoutTests/compositing/tiling/huge-layer.html-disabled.
+        * css2.1/t1202-counter-10-b.html: Renamed from LayoutTests/css2.1/t1202-counter-10-b.html-disabled.
+        * css2.1/t1202-counters-10-b.html: Renamed from LayoutTests/css2.1/t1202-counters-10-b.html-disabled.
+        * css2.1/t1204-increment-00-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled.
+        * css2.1/t1204-increment-01-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled.
+        * css2.1/t1204-increment-02-c-o.html: Renamed from LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled.
+        * css2.1/t1204-reset-00-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled.
+        * css2.1/t1204-reset-01-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled.
+        * css2.1/t1204-reset-02-c-o.html: Renamed from LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled.
+        * dom/xhtml/level2/html/HTMLFrameElement09.xhtml: Renamed from LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled.
+        * dom/xhtml/level3/core/documentadoptnode22.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled.
+        * dom/xhtml/level3/core/documentnormalizedocument06.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled.
+        * dom/xhtml/level3/core/documentsetdocumenturi01.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled.
+        * dom/xhtml/level3/core/documentsetdocumenturi02.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled.
+        * dom/xhtml/level3/core/domimplementationregistry12.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled.
+        * dom/xhtml/level3/core/domimplementationregistry23.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled.
+        * dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled.
+        * dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled.
+        * dom/xhtml/level3/core/noderemovechild03.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled.
+        * dom/xhtml/level3/core/nodereplacechild06.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled.
+        * dom/xhtml/level3/core/nodereplacechild07.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled.
+        * dom/xhtml/level3/core/nodereplacechild08.xhtml: Renamed from LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled.
+        * editing/execCommand/create-list-1.html: Renamed from LayoutTests/editing/execCommand/create-list-1.html-disabled.
+        * editing/input/attributed-substring-from-range-lines.html: Renamed from LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled.
+        * editing/pasteboard/paste-empty-startcontainer.html: Renamed from LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled.
+        * editing/selection/inconsistent-in-removeChildNode.html: Renamed from LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled.
+        * editing/style/5091898.html: Renamed from LayoutTests/editing/style/5091898.html-disabled.
+        * fast/css/css2-system-color.html: Renamed from LayoutTests/fast/css/css2-system-color.html-disabled.
+        * fast/css/font-face-in-shadow-DOM.html: Renamed from LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled.
+        * fast/css/limited-vendor-prefix-behavior.html: Renamed from LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled.
+        * fast/dom/Window/timeout-released-on-close.html: Renamed from LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled.
+        * fast/dom/Window/window-resize-nan.html: Renamed from LayoutTests/fast/dom/Window/window-resize-nan.html-disabled.
+        * fast/dom/gc-8.html: Renamed from LayoutTests/fast/dom/gc-8.html-disabled.
+        * fast/dynamic/crash-paint-no-documentElement-renderer.html: Renamed from LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled.
+        * fast/events/destroyed-atomic-string.html: Renamed from LayoutTests/fast/events/destroyed-atomic-string.html-disabled.
+        * fast/events/key-events-in-frame.html: Renamed from LayoutTests/fast/events/key-events-in-frame.html-disabled.
+        * fast/frames/iframe-scroll-page-up-down.html: Renamed from LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled.
+        * fast/html/marquee-alternate.html: Renamed from LayoutTests/fast/html/marquee-alternate.html-disabled.
+        * fast/leaks/003.html: Renamed from LayoutTests/fast/leaks/003.html-disabled.
+        * fast/loader/api-test-go-to-current-back-forward-item.html: Renamed from LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled.
+        * fast/loader/api-test-new-window-data-load-base-url.html: Renamed from LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled.
+        * fast/loader/form-events-back-forward.html: Renamed from LayoutTests/fast/loader/form-events-back-forward.html-disabled.
+        * fast/notifications/notifications-event-stop-propagation.html: Renamed from LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled.
+        * fast/notifications/notifications-multi-events.html: Renamed from LayoutTests/fast/notifications/notifications-multi-events.html-disabled.
+        * fast/ruby/after-block-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled.
+        * fast/ruby/after-table-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled.
+        * fast/ruby/generated-after-counter-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled.
+        * fast/ruby/generated-before-and-after-counter-doesnt-crash.html: Renamed from LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled.
+        * fast/shadow-dom/copy-shadow-tree.html: Renamed from LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled.
+        * fast/table/double-height-table-no-tbody.html: Renamed from LayoutTests/fast/table/double-height-table-no-tbody.html-disabled.
+        * fast/text/large-text-composed-char-dos.html: Renamed from LayoutTests/fast/text/large-text-composed-char-dos.html-disabled.
+        * http/tests/multipart/win-boundary-crash.html: Renamed from LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled.
+        * http/tests/navigation/post-goback-repost-policy.html: Renamed from LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled.
+        * http/tests/navigation/success200-frames-goback.html: Renamed from LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled.
+        * http/tests/navigation/success200-frames-reload.html: Renamed from LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled.
+        * http/tests/navigation/success200-subframeload-goback.html: Renamed from LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled.
+        * java/lc3/ArrayMethods/object-001.html: Renamed from LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled.
+        * java/lc3/forin/array-001.html: Renamed from LayoutTests/java/lc3/forin/array-001.html-disabled.
+        * jquery/effects.html: Renamed from LayoutTests/jquery/effects.html-disabled.
+        * js/garbage-collect-after-string-appends.html: Renamed from LayoutTests/js/garbage-collect-after-string-appends.html-disabled.
+        * js/kde/Date.html: Renamed from LayoutTests/js/kde/Date.html-disabled.
+        * js/resources/garbage-collect-after-string-appends.js: Renamed from LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled.
+        * js/string-concatenate-outofmemory.html: Renamed from LayoutTests/js/string-concatenate-outofmemory.html-disabled.
+        * media/video-canvas.html: Renamed from LayoutTests/media/video-canvas.html-disabled.
+        * platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html: Renamed from LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled.
+        * sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled.
+        * sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled.
+        * sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled.
+        * sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled.
+        * sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled.
+        * sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled.
+        * sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled.
+        * sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html: Renamed from LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled.
+        * sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled.
+        * sputnik/Unicode/Unicode_218/S7.6_A3.1.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled.
+        * sputnik/Unicode/Unicode_218/S7.6_A3.2.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled.
+        * sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled.
+        * sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled.
+        * sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled.
+        * sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled.
+        * sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled.
+        * sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled.
+        * sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled.
+        * sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled.
+        * sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html: Renamed from LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled.
+        * svg/batik/text/textBiDi.svg: Renamed from LayoutTests/svg/batik/text/textBiDi.svg-disabled.
+        * svg/custom/filter-source-alpha.svg: Renamed from LayoutTests/svg/custom/filter-source-alpha.svg-disabled.
+        * svg/custom/font-face-fallback.svg: Renamed from LayoutTests/svg/custom/font-face-fallback.svg-disabled.
+        * svg/custom/js-font-test.svg: Renamed from LayoutTests/svg/custom/js-font-test.svg-disabled.
+        * svg/zoom/page/zoom-svg-through-object-with-text.xhtml: Renamed from LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled.
+        - Renamed disabled tests now that they're skipped in TestExpectations.
+
</ins><span class="cx"> 2017-01-28  Matt Baker  &lt;mattbaker@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: Need some limit on Async Call Stacks for async loops (rAF loops)
</span></span></pre></div>
<a id="trunkLayoutTestsTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/TestExpectations (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/TestExpectations        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/TestExpectations        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1002,3 +1002,142 @@
</span><span class="cx"> webkit.org/b/166911 fast/dom/Window/window-properties-performance-resource-timing.html [ Pass Failure ]
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/167428 fast/backgrounds/background-repeat-x-y-parse.html [ Failure ]
</span><ins>+
+########################################
+### START OF -disabled tests
+
+webkit.org/b/20871 js/garbage-collect-after-string-appends.html [ Skip ]
+webkit.org/b/58323 compositing/objects/composited-object-alignment.html [ Skip ]
+webkit.org/b/48454 compositing/tiling/huge-layer-resize.html [ Skip ]
+webkit.org/b/48454 compositing/tiling/huge-layer.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-increment-00-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-increment-01-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-increment-02-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-reset-00-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-reset-01-c-o.html [ Skip ]
+webkit.org/b/17557 css2.1/t1204-reset-02-c-o.html [ Skip ]
+webkit.org/b/19581 dom/xhtml/level2/html/HTMLFrameElement09.xhtml [ Skip ]
+webkit.org/b/65187 dom/xhtml/level3/core/documentsetdocumenturi01.xhtml [ Skip ]
+webkit.org/b/65187 dom/xhtml/level3/core/documentsetdocumenturi02.xhtml [ Skip ]
+webkit.org/b/10993 editing/execCommand/create-list-1.html [ Skip ]
+webkit.org/b/9640 editing/input/attributed-substring-from-range-lines.html [ Skip ]
+webkit.org/b/7899 editing/pasteboard/paste-empty-startcontainer.html [ Skip ]
+webkit.org/b/72503 fast/css/font-face-in-shadow-DOM.html [ Skip ]
+webkit.org/b/23650 fast/dom/Window/timeout-released-on-close.html [ Skip ]
+webkit.org/b/79333 fast/dynamic/crash-paint-no-documentElement-renderer.html [ Skip ]
+webkit.org/b/18057 fast/events/key-events-in-frame.html [ Skip ]
+webkit.org/b/17391 fast/frames/iframe-scroll-page-up-down.html [ Skip ]
+webkit.org/b/94130 fast/html/marquee-alternate.html [ Skip ]
+webkit.org/b/12930 fast/leaks/003.html [ Skip ]
+webkit.org/b/36425 fast/loader/api-test-go-to-current-back-forward-item.html [ Skip ]
+webkit.org/b/35594 fast/loader/api-test-new-window-data-load-base-url.html [ Skip ]
+webkit.org/b/67007 fast/ruby/after-block-doesnt-crash.html [ Skip ]
+webkit.org/b/67007 fast/ruby/after-table-doesnt-crash.html [ Skip ]
+webkit.org/b/67007 fast/ruby/generated-after-counter-doesnt-crash.html [ Skip ]
+webkit.org/b/67007 fast/ruby/generated-before-and-after-counter-doesnt-crash.html [ Skip ]
+webkit.org/b/164888 fast/shadow-dom/copy-shadow-tree.html [ Skip ]
+webkit.org/b/81826 fast/table/double-height-table-no-tbody.html [ Skip ]
+webkit.org/b/56140 fast/text/large-text-composed-char-dos.html [ Skip ]
+webkit.org/b/63268 http/tests/multipart/win-boundary-crash.html [ Skip ]
+webkit.org/b/35700 java/lc3/ArrayMethods/object-001.html [ Skip ]
+webkit.org/b/35700 java/lc3/forin/array-001.html [ Skip ]
+webkit.org/b/56080 jquery/effects.html [ Skip ]
+webkit.org/b/6547 js/kde/Date.html [ Skip ]
+webkit.org/b/15046 js/string-concatenate-outofmemory.html [ Skip ]
+webkit.org/b/24690 platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html [ Skip ]
+webkit.org/b/42625 sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html [ Skip ]
+webkit.org/b/17392 svg/batik/text/textBiDi.svg [ Skip ]
+webkit.org/b/11662 svg/custom/js-font-test.svg [ Skip ]
+webkit.org/b/63186 svg/zoom/page/zoom-svg-through-object-with-text.xhtml [ Skip ]
+
+# Test disabled in r37513 for causing next test to hang
+animations/font-size-using-ems.html [ Skip ]
+
+# Tests disabled in r18642 due to font-dependent issue with Armenian numbering
+css2.1/t1202-counter-10-b.html [ Skip ]
+css2.1/t1202-counters-10-b.html [ Skip ]
+
+# Test disabled in r11286 since it removes entire document tree so is hard to show results
+dom/xhtml/level3/core/documentadoptnode22.xhtml [ Skip ]
+
+# Tests landed disabled in r10628 for webkit.org/b/4907
+dom/xhtml/level3/core/documentnormalizedocument06.xhtml [ Skip ]
+dom/xhtml/level3/core/domimplementationregistry12.xhtml [ Skip ]
+dom/xhtml/level3/core/domimplementationregistry23.xhtml [ Skip ]
+dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml [ Skip ]
+dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml [ Skip ]
+dom/xhtml/level3/core/noderemovechild03.xhtml [ Skip ]
+dom/xhtml/level3/core/nodereplacechild06.xhtml [ Skip ]
+dom/xhtml/level3/core/nodereplacechild07.xhtml [ Skip ]
+dom/xhtml/level3/core/nodereplacechild08.xhtml [ Skip ]
+
+# Test disabled in r30326
+editing/selection/inconsistent-in-removeChildNode.html [ Skip ]
+
+# Test disabled in r29882 after it mysteriously started passing
+editing/style/5091898.html [ Skip ]
+
+# Test disabled in r28820 since it has different results per hardware
+fast/css/css2-system-color.html [ Skip ]
+
+# Test disabled in r64074 after dropping -khtml prefix support
+fast/css/limited-vendor-prefix-behavior.html [ Skip ]
+
+# Test disabled in r42420 since it hits test-only release assert
+fast/dom/gc-8.html [ Skip ]
+
+# Test disabled in r27657
+fast/dom/Window/window-resize-nan.html [ Skip ]
+
+# Tests disabled in r38547 for webkit.org/b/22306
+fast/events/destroyed-atomic-string.html [ Skip ]
+
+# Test disabled in r12843
+fast/loader/form-events-back-forward.html [ Skip ]
+
+# Tests landed disabled in r47056 for webkit.org/b/25463; never enabled
+fast/notifications/notifications-event-stop-propagation.html [ Skip ]
+fast/notifications/notifications-multi-events.html [ Skip ]
+
+# Test disabled in r42628
+http/tests/navigation/post-goback-repost-policy.html [ Skip ]
+
+# Tests landed disabled in r15970; never enabled
+http/tests/navigation/success200-frames-goback.html [ Skip ]
+http/tests/navigation/success200-frames-reload.html [ Skip ]
+http/tests/navigation/success200-subframeload-goback.html [ Skip ]
+
+# Test disabled in r45078
+media/video-canvas.html [ Skip ]
+
+# Tests disabled in r59504 for taking over 10 seconds to run
+sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html [ Skip ]
+sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html [ Skip ]
+sputnik/Unicode/Unicode_218/S7.6_A3.1.html [ Skip ]
+sputnik/Unicode/Unicode_218/S7.6_A3.2.html [ Skip ]
+
+# Tests landed disabled in r58534; never enabled
+sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html [ Skip ]
+sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html [ Skip ]
+sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html [ Skip ]
+sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html [ Skip ]
+sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html [ Skip ]
+sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html [ Skip ]
+
+# Test disabled in r42921 for flaky failure
+svg/custom/filter-source-alpha.svg [ Skip ]
+
+# Test landed disabled in r26904; never enabled
+svg/custom/font-face-fallback.svg [ Skip ]
+
+### END OF -disabled tests
+########################################
</ins></span></pre></div>
<a id="trunkLayoutTestsanimationsfontsizeusingemshtmlfromrev211348trunkLayoutTestsanimationsfontsizeusingemshtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/animations/font-size-using-ems.html (from rev 211348, trunk/LayoutTests/animations/font-size-using-ems.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/animations/font-size-using-ems.html                                (rev 0)
+++ trunk/LayoutTests/animations/font-size-using-ems.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,83 @@
</span><ins>+&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;
+   &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;
+
+&lt;html lang=&quot;en&quot;&gt;
+&lt;head&gt;
+  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
+  &lt;title&gt;Test of font-size Animation Using em Units&lt;/title&gt;
+  &lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
+    body {
+        font-family: &quot;arial&quot;;
+        font-size: 10px;    
+    }
+    
+    #box {
+        position: absolute;
+        left: 0;
+        top: 100px;
+        height: 250px;
+        width: 400px;
+        border: 1px solid black;
+        -webkit-animation-duration: 1s;
+        -webkit-animation-timing-function: linear;
+        -webkit-animation-name: &quot;anim&quot;;
+    }
+    @-webkit-keyframes &quot;anim&quot; {
+        from { font-size: 1em; }
+        to   { font-size: 2em; }
+    }
+    &lt;/style&gt;
+    &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
+    if (window.testRunner) {
+        testRunner.dumpAsText();
+        testRunner.waitUntilDone();
+    }
+    
+    result = &quot;PASS&quot;;
+    const defaultTolerance = 1;
+    
+    function isEqual(actual, desired, tolerance)
+    {
+        if (tolerance == undefined || tolerance == 0)
+            tolerance = defaultTolerance;
+        var diff = Math.abs(actual - desired);
+        return diff &lt; tolerance;
+    }
+    
+    function snapshot(expected)
+    {
+        if (result != &quot;PASS&quot;)
+            return;
+            
+        var fontSize = parseInt(window.getComputedStyle(document.getElementById('box')).fontSize);
+        if (!isEqual(fontSize, expected)) {
+            result = &quot;FAIL(was:&quot;+fontSize+&quot;, expected:&quot;+expected+&quot;)&quot;;
+        }
+    }
+
+    function start()
+    {
+        setTimeout(&quot;snapshot(13)&quot;, 333);
+        
+        window.setTimeout(function() {
+            document.getElementById('result').innerHTML = result;
+            if (window.testRunner)
+                testRunner.notifyDone();
+        }, 400);
+    }
+    
+    document.addEventListener('webkitAnimationStart', start, false);
+    
+  &lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+This test performs an animation of the font-size property using 'em' units. It tests whether or not we are properly 
+getting the default font-size.
+&lt;div id=&quot;box&quot;&gt;
+Here is some text. Here is some text. Here is some text. Here is some text. Here is some text. Here is some text. 
+Here is some text. Here is some text. Here is some text. Here is some text. Here is some text. Here is some text. 
+&lt;/div&gt;
+&lt;div id=&quot;result&quot;&gt;
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsanimationsfontsizeusingemshtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/animations/font-size-using-ems.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/animations/font-size-using-ems.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/animations/font-size-using-ems.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,83 +0,0 @@
</span><del>-&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;
-   &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt;
-
-&lt;html lang=&quot;en&quot;&gt;
-&lt;head&gt;
-  &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt;
-  &lt;title&gt;Test of font-size Animation Using em Units&lt;/title&gt;
-  &lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
-    body {
-        font-family: &quot;arial&quot;;
-        font-size: 10px;    
-    }
-    
-    #box {
-        position: absolute;
-        left: 0;
-        top: 100px;
-        height: 250px;
-        width: 400px;
-        border: 1px solid black;
-        -webkit-animation-duration: 1s;
-        -webkit-animation-timing-function: linear;
-        -webkit-animation-name: &quot;anim&quot;;
-    }
-    @-webkit-keyframes &quot;anim&quot; {
-        from { font-size: 1em; }
-        to   { font-size: 2em; }
-    }
-    &lt;/style&gt;
-    &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
-    if (window.testRunner) {
-        testRunner.dumpAsText();
-        testRunner.waitUntilDone();
-    }
-    
-    result = &quot;PASS&quot;;
-    const defaultTolerance = 1;
-    
-    function isEqual(actual, desired, tolerance)
-    {
-        if (tolerance == undefined || tolerance == 0)
-            tolerance = defaultTolerance;
-        var diff = Math.abs(actual - desired);
-        return diff &lt; tolerance;
-    }
-    
-    function snapshot(expected)
-    {
-        if (result != &quot;PASS&quot;)
-            return;
-            
-        var fontSize = parseInt(window.getComputedStyle(document.getElementById('box')).fontSize);
-        if (!isEqual(fontSize, expected)) {
-            result = &quot;FAIL(was:&quot;+fontSize+&quot;, expected:&quot;+expected+&quot;)&quot;;
-        }
-    }
-
-    function start()
-    {
-        setTimeout(&quot;snapshot(13)&quot;, 333);
-        
-        window.setTimeout(function() {
-            document.getElementById('result').innerHTML = result;
-            if (window.testRunner)
-                testRunner.notifyDone();
-        }, 400);
-    }
-    
-    document.addEventListener('webkitAnimationStart', start, false);
-    
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-This test performs an animation of the font-size property using 'em' units. It tests whether or not we are properly 
-getting the default font-size.
-&lt;div id=&quot;box&quot;&gt;
-Here is some text. Here is some text. Here is some text. Here is some text. Here is some text. Here is some text. 
-Here is some text. Here is some text. Here is some text. Here is some text. Here is some text. Here is some text. 
-&lt;/div&gt;
-&lt;div id=&quot;result&quot;&gt;
-&lt;/div&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestscompositingobjectscompositedobjectalignmenthtmlfromrev211348trunkLayoutTestscompositingobjectscompositedobjectalignmenthtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/compositing/objects/composited-object-alignment.html (from rev 211348, trunk/LayoutTests/compositing/objects/composited-object-alignment.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/objects/composited-object-alignment.html                                (rev 0)
+++ trunk/LayoutTests/compositing/objects/composited-object-alignment.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+  &lt;title&gt;Composited iframe test&lt;/title&gt;
+  &lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
+    object {
+        position: absolute;
+        left:100px;
+        top:100px;
+        padding: 0;
+        height: 300px;
+        width: 400px;
+    }
+    .testbox {
+        height: 200px;
+        width: 200px;
+        margin: 110px;
+        background-color: red;
+    }
+  &lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+    &lt;div class=&quot;testbox&quot;&gt;&lt;/div&gt;
+    &lt;object type=&quot;text/html&quot; data=&quot;resources/composited-subframe.html&quot;&gt;&lt;/object&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscompositingobjectscompositedobjectalignmenthtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/compositing/objects/composited-object-alignment.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/objects/composited-object-alignment.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/compositing/objects/composited-object-alignment.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,26 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;title&gt;Composited iframe test&lt;/title&gt;
-  &lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
-    object {
-        position: absolute;
-        left:100px;
-        top:100px;
-        padding: 0;
-        height: 300px;
-        width: 400px;
-    }
-    .testbox {
-        height: 200px;
-        width: 200px;
-        margin: 110px;
-        background-color: red;
-    }
-  &lt;/style&gt;
-&lt;/head&gt;
-&lt;body&gt;
-    &lt;div class=&quot;testbox&quot;&gt;&lt;/div&gt;
-    &lt;object type=&quot;text/html&quot; data=&quot;resources/composited-subframe.html&quot;&gt;&lt;/object&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestscompositingtilinghugelayerresizehtmlfromrev211348trunkLayoutTestscompositingtilinghugelayerresizehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/compositing/tiling/huge-layer-resize.html (from rev 211348, trunk/LayoutTests/compositing/tiling/huge-layer-resize.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/tiling/huge-layer-resize.html                                (rev 0)
+++ trunk/LayoutTests/compositing/tiling/huge-layer-resize.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,76 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;title&gt;Test of very large layer resizing&lt;/title&gt;
+
+    &lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
+
+    #container {
+      width: 500px;
+      height: 500px;
+      border: 1px solid black;
+      background-color: yellow;
+      -webkit-transform:translateZ(0);
+    }
+    
+    .box {
+        position: absolute;
+        left:50px;
+        width: 200px;
+        height: 200px;
+    }
+    
+    .at-the-top {
+        top: 100px;
+        background-color: red;
+    }
+    &lt;/style&gt;
+    &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
+        if (window.testRunner)
+            testRunner.dumpAsText();
+        
+        function testOnLoad()
+        {
+            // Small layer first
+            var result = recordLayerTree(&quot;First (small layer):&lt;br&gt;&quot;);
+
+            // Huge layer second
+            document.getElementById('container').style.height = &quot;5000px&quot;;
+            result += recordLayerTree(&quot;&lt;br&gt;&lt;br&gt;Second (huge layer):&lt;br&gt;&quot;);
+
+            // Small layer third
+            document.getElementById('container').style.height = &quot;500px&quot;;
+            result += recordLayerTree(&quot;&lt;br&gt;&lt;br&gt;Third (small layer):&lt;br&gt;&quot;);
+
+            document.getElementById('layers').innerHTML = result;
+        }
+
+        function recordLayerTree(messagePrefix)
+        {
+            if (!window.testRunner)
+                return &quot;&quot;;
+
+            // Force a layout and a paint to make sure the compositing layers
+            // have been updated.
+            document.body.offsetLeft;
+            testRunner.display();
+
+            return messagePrefix + window.internals.layerTreeAsText(document);
+        }
+      
+        window.addEventListener('load', testOnLoad, false);
+    &lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+      &lt;p&gt;
+        The yellow box should be 500 x 500 on startup. Then it should 
+        stretch to be 500 x 5000, then shrink back down to 500 x 500. 
+        This tests that we can resize to a huge layer and back again
+        and still maintain integrity of the layer tree.
+      &lt;/p&gt;
+        &lt;div id=&quot;container&quot;&gt;
+          &lt;div class=&quot;box at-the-top&quot;&gt;&lt;/div&gt;
+        &lt;/div&gt;
+        &lt;pre id=&quot;layers&quot;&gt;Layer tree appears here in DRT.&lt;/pre&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscompositingtilinghugelayerresizehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/compositing/tiling/huge-layer-resize.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/tiling/huge-layer-resize.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/compositing/tiling/huge-layer-resize.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,76 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-  &lt;head&gt;
-    &lt;title&gt;Test of very large layer resizing&lt;/title&gt;
-
-    &lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
-
-    #container {
-      width: 500px;
-      height: 500px;
-      border: 1px solid black;
-      background-color: yellow;
-      -webkit-transform:translateZ(0);
-    }
-    
-    .box {
-        position: absolute;
-        left:50px;
-        width: 200px;
-        height: 200px;
-    }
-    
-    .at-the-top {
-        top: 100px;
-        background-color: red;
-    }
-    &lt;/style&gt;
-    &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
-        if (window.testRunner)
-            testRunner.dumpAsText();
-        
-        function testOnLoad()
-        {
-            // Small layer first
-            var result = recordLayerTree(&quot;First (small layer):&lt;br&gt;&quot;);
-
-            // Huge layer second
-            document.getElementById('container').style.height = &quot;5000px&quot;;
-            result += recordLayerTree(&quot;&lt;br&gt;&lt;br&gt;Second (huge layer):&lt;br&gt;&quot;);
-
-            // Small layer third
-            document.getElementById('container').style.height = &quot;500px&quot;;
-            result += recordLayerTree(&quot;&lt;br&gt;&lt;br&gt;Third (small layer):&lt;br&gt;&quot;);
-
-            document.getElementById('layers').innerHTML = result;
-        }
-
-        function recordLayerTree(messagePrefix)
-        {
-            if (!window.testRunner)
-                return &quot;&quot;;
-
-            // Force a layout and a paint to make sure the compositing layers
-            // have been updated.
-            document.body.offsetLeft;
-            testRunner.display();
-
-            return messagePrefix + window.internals.layerTreeAsText(document);
-        }
-      
-        window.addEventListener('load', testOnLoad, false);
-    &lt;/script&gt;
-  &lt;/head&gt;
-  &lt;body&gt;
-      &lt;p&gt;
-        The yellow box should be 500 x 500 on startup. Then it should 
-        stretch to be 500 x 5000, then shrink back down to 500 x 500. 
-        This tests that we can resize to a huge layer and back again
-        and still maintain integrity of the layer tree.
-      &lt;/p&gt;
-        &lt;div id=&quot;container&quot;&gt;
-          &lt;div class=&quot;box at-the-top&quot;&gt;&lt;/div&gt;
-        &lt;/div&gt;
-        &lt;pre id=&quot;layers&quot;&gt;Layer tree appears here in DRT.&lt;/pre&gt;
-  &lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestscompositingtilinghugelayerhtmlfromrev211348trunkLayoutTestscompositingtilinghugelayerhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/compositing/tiling/huge-layer.html (from rev 211348, trunk/LayoutTests/compositing/tiling/huge-layer.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/tiling/huge-layer.html                                (rev 0)
+++ trunk/LayoutTests/compositing/tiling/huge-layer.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,68 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;title&gt;Test of very large layer&lt;/title&gt;
+
+    &lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
+
+    #container {
+      width: 500px;
+      height: 5000px;
+      border: 1px solid black;
+      background-color: yellow;
+      -webkit-transform:translateZ(0);
+    }
+    
+    .box {
+        position: absolute;
+        left:50px;
+        width: 200px;
+        height: 200px;
+    }
+    
+    .at-the-top {
+        top: 100px;
+        background-color: red;
+    }
+    
+    .at-the-bottom {
+        top:4700px;
+        background-color: blue;
+    }   
+    &lt;/style&gt;
+    &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
+        if (window.testRunner) {
+            testRunner.dumpAsText();
+            testRunner.waitUntilDone();
+        }
+
+        function testOnLoad()
+        {
+            // Wait for a layer update and the tiled layer to fill in.
+            window.setTimeout(function() {
+                window.setTimeout(function() {
+                    if (window.testRunner) {
+                        document.getElementById('layers').innerHTML = window.internals.layerTreeAsText(document);
+                        testRunner.notifyDone();
+                    }
+                }, 0);
+            }, 0);
+        }
+      
+        window.addEventListener('load', testOnLoad, false);
+    &lt;/script&gt;
+  &lt;/head&gt;
+  &lt;body&gt;
+      &lt;p&gt;
+        The yellow box should be large enough to scroll off the bottom.
+        There should be a red box on the first page and a blue box
+        near the bottom of the yellow box. This tests that we can support
+        very large compositing layers.
+      &lt;/p&gt;
+        &lt;div id=&quot;container&quot;&gt;
+          &lt;div class=&quot;box at-the-top&quot;&gt;&lt;/div&gt;
+          &lt;div class=&quot;box at-the-bottom&quot;&gt;&lt;/div&gt;
+        &lt;/div&gt;
+        &lt;pre id=&quot;layers&quot;&gt;Layer tree appears here in DRT.&lt;/pre&gt;
+  &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestscompositingtilinghugelayerhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/compositing/tiling/huge-layer.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/compositing/tiling/huge-layer.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/compositing/tiling/huge-layer.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,68 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-  &lt;head&gt;
-    &lt;title&gt;Test of very large layer&lt;/title&gt;
-
-    &lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
-
-    #container {
-      width: 500px;
-      height: 5000px;
-      border: 1px solid black;
-      background-color: yellow;
-      -webkit-transform:translateZ(0);
-    }
-    
-    .box {
-        position: absolute;
-        left:50px;
-        width: 200px;
-        height: 200px;
-    }
-    
-    .at-the-top {
-        top: 100px;
-        background-color: red;
-    }
-    
-    .at-the-bottom {
-        top:4700px;
-        background-color: blue;
-    }   
-    &lt;/style&gt;
-    &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
-        if (window.testRunner) {
-            testRunner.dumpAsText();
-            testRunner.waitUntilDone();
-        }
-
-        function testOnLoad()
-        {
-            // Wait for a layer update and the tiled layer to fill in.
-            window.setTimeout(function() {
-                window.setTimeout(function() {
-                    if (window.testRunner) {
-                        document.getElementById('layers').innerHTML = window.internals.layerTreeAsText(document);
-                        testRunner.notifyDone();
-                    }
-                }, 0);
-            }, 0);
-        }
-      
-        window.addEventListener('load', testOnLoad, false);
-    &lt;/script&gt;
-  &lt;/head&gt;
-  &lt;body&gt;
-      &lt;p&gt;
-        The yellow box should be large enough to scroll off the bottom.
-        There should be a red box on the first page and a blue box
-        near the bottom of the yellow box. This tests that we can support
-        very large compositing layers.
-      &lt;/p&gt;
-        &lt;div id=&quot;container&quot;&gt;
-          &lt;div class=&quot;box at-the-top&quot;&gt;&lt;/div&gt;
-          &lt;div class=&quot;box at-the-bottom&quot;&gt;&lt;/div&gt;
-        &lt;/div&gt;
-        &lt;pre id=&quot;layers&quot;&gt;Layer tree appears here in DRT.&lt;/pre&gt;
-  &lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestscss21t1202counter10bhtmlfromrev211348trunkLayoutTestscss21t1202counter10bhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1202-counter-10-b.html (from rev 211348, trunk/LayoutTests/css2.1/t1202-counter-10-b.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1202-counter-10-b.html                                (rev 0)
+++ trunk/LayoutTests/css2.1/t1202-counter-10-b.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,109 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
+&lt;html&gt;
+ &lt;head&gt;
+  &lt;title&gt;CSS 2.1 Test Suite: content: counter(c, armenian)&lt;/title&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counter-styles&quot;&gt;
+  &lt;meta http-equiv=&quot;Content-Style-Type&quot; content=&quot;text/css&quot;&gt;&lt;/meta&gt;
+  &lt;style type=&quot;text/css&quot;&gt;
+
+  body { white-space: nowrap; }
+
+
+  #test { counter-reset: c; }
+  #test span { counter-increment: c; }
+  #test span:before { content: counter(c, armenian); }
+
+  &lt;/style&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+
+ &lt;p&gt;The following two lines should look the same:&lt;/p&gt;
+
+ &lt;div id=&quot;test&quot;&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 19&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 29&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 39&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 49&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 59&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 69&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 79&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 89&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 99&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 199&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 299&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 399&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 499&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 599&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 699&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 799&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 899&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 1999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 2999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 3999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 4999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 5999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 6999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 7999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 8999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 9998&quot;&gt;&lt;/span&gt;
+ &lt;/div&gt;
+
+ &lt;div&gt;
+   Ա
+   Բ
+   Գ
+   Դ
+   Ե
+   Զ
+   Է
+   Ը
+   Թ
+   Ժ
+   ԺԱ
+   ԺԲ
+   Ի
+   Լ
+   Խ
+   Ծ
+   Կ
+   Հ
+   Ձ
+   Ղ
+   Ճ
+   Մ
+   Յ
+   Ն
+   Շ
+   Ո
+   Չ
+   Պ
+   Ջ
+   Ռ
+   Ս
+   Վ
+   Տ
+   Ր
+   Ց
+   ՈՒ
+   Փ
+   Ք
+   ՔՋՂԹ
+ &lt;/div&gt;
+
+ &lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1202counter10bhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1202-counter-10-b.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1202-counter-10-b.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1202-counter-10-b.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,109 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
-&lt;html&gt;
- &lt;head&gt;
-  &lt;title&gt;CSS 2.1 Test Suite: content: counter(c, armenian)&lt;/title&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counter-styles&quot;&gt;
-  &lt;meta http-equiv=&quot;Content-Style-Type&quot; content=&quot;text/css&quot;&gt;&lt;/meta&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-
-  body { white-space: nowrap; }
-
-
-  #test { counter-reset: c; }
-  #test span { counter-increment: c; }
-  #test span:before { content: counter(c, armenian); }
-
-  &lt;/style&gt;
- &lt;/head&gt;
- &lt;body&gt;
-
- &lt;p&gt;The following two lines should look the same:&lt;/p&gt;
-
- &lt;div id=&quot;test&quot;&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 19&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 29&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 39&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 49&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 59&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 69&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 79&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 89&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 99&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 199&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 299&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 399&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 499&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 599&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 699&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 799&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 899&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 1999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 2999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 3999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 4999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 5999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 6999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 7999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 8999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 9998&quot;&gt;&lt;/span&gt;
- &lt;/div&gt;
-
- &lt;div&gt;
-   Ա
-   Բ
-   Գ
-   Դ
-   Ե
-   Զ
-   Է
-   Ը
-   Թ
-   Ժ
-   ԺԱ
-   ԺԲ
-   Ի
-   Լ
-   Խ
-   Ծ
-   Կ
-   Հ
-   Ձ
-   Ղ
-   Ճ
-   Մ
-   Յ
-   Ն
-   Շ
-   Ո
-   Չ
-   Պ
-   Ջ
-   Ռ
-   Ս
-   Վ
-   Տ
-   Ր
-   Ց
-   ՈՒ
-   Փ
-   Ք
-   ՔՋՂԹ
- &lt;/div&gt;
-
- &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1202counters10bhtmlfromrev211348trunkLayoutTestscss21t1202counters10bhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1202-counters-10-b.html (from rev 211348, trunk/LayoutTests/css2.1/t1202-counters-10-b.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1202-counters-10-b.html                                (rev 0)
+++ trunk/LayoutTests/css2.1/t1202-counters-10-b.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,109 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
+&lt;html&gt;
+ &lt;head&gt;
+  &lt;title&gt;CSS 2.1 Test Suite: content: counters(c, &amp;quot;.&quot;, armenian)&lt;/title&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counter-styles&quot;&gt;
+  &lt;meta http-equiv=&quot;Content-Style-Type&quot; content=&quot;text/css&quot;&gt;&lt;/meta&gt;
+  &lt;style type=&quot;text/css&quot;&gt;
+
+  body { white-space: nowrap; }
+
+
+  body, #test span:first-child { counter-reset: c; }
+  p, #test span { counter-increment: c; }
+  #test span:before { content: counters(c, &quot;.&quot;, armenian); }
+
+  &lt;/style&gt;
+ &lt;/head&gt;
+ &lt;body&gt;
+
+ &lt;p&gt;The following two lines should look the same:&lt;/p&gt;
+
+ &lt;div id=&quot;test&quot;&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 19&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 29&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 39&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 49&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 59&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 69&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 79&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 89&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 99&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 199&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 299&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 399&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 499&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 599&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 699&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 799&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 899&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 1999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 2999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 3999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 4999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 5999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 6999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 7999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 8999&quot;&gt;&lt;/span&gt;
+   &lt;span style=&quot;counter-reset: c 9998&quot;&gt;&lt;/span&gt;
+ &lt;/div&gt;
+
+ &lt;div&gt;
+   Ա.Ա
+   Ա.Բ
+   Ա.Գ
+   Ա.Դ
+   Ա.Ե
+   Ա.Զ
+   Ա.Է
+   Ա.Ը
+   Ա.Թ
+   Ա.Ժ
+   Ա.ԺԱ
+   Ա.ԺԲ
+   Ա.Ի
+   Ա.Լ
+   Ա.Խ
+   Ա.Ծ
+   Ա.Կ
+   Ա.Հ
+   Ա.Ձ
+   Ա.Ղ
+   Ա.Ճ
+   Ա.Մ
+   Ա.Յ
+   Ա.Ն
+   Ա.Շ
+   Ա.Ո
+   Ա.Չ
+   Ա.Պ
+   Ա.Ջ
+   Ա.Ռ
+   Ա.Ս
+   Ա.Վ
+   Ա.Տ
+   Ա.Ր
+   Ա.Ց
+   Ա.ՈՒ
+   Ա.Փ
+   Ա.Ք
+   Ա.ՔՋՂԹ
+ &lt;/div&gt;
+
+ &lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1202counters10bhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1202-counters-10-b.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1202-counters-10-b.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1202-counters-10-b.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,109 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
-&lt;html&gt;
- &lt;head&gt;
-  &lt;title&gt;CSS 2.1 Test Suite: content: counters(c, &amp;quot;.&quot;, armenian)&lt;/title&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counter-styles&quot;&gt;
-  &lt;meta http-equiv=&quot;Content-Style-Type&quot; content=&quot;text/css&quot;&gt;&lt;/meta&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-
-  body { white-space: nowrap; }
-
-
-  body, #test span:first-child { counter-reset: c; }
-  p, #test span { counter-increment: c; }
-  #test span:before { content: counters(c, &quot;.&quot;, armenian); }
-
-  &lt;/style&gt;
- &lt;/head&gt;
- &lt;body&gt;
-
- &lt;p&gt;The following two lines should look the same:&lt;/p&gt;
-
- &lt;div id=&quot;test&quot;&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 19&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 29&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 39&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 49&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 59&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 69&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 79&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 89&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 99&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 199&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 299&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 399&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 499&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 599&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 699&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 799&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 899&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 1999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 2999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 3999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 4999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 5999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 6999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 7999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 8999&quot;&gt;&lt;/span&gt;
-   &lt;span style=&quot;counter-reset: c 9998&quot;&gt;&lt;/span&gt;
- &lt;/div&gt;
-
- &lt;div&gt;
-   Ա.Ա
-   Ա.Բ
-   Ա.Գ
-   Ա.Դ
-   Ա.Ե
-   Ա.Զ
-   Ա.Է
-   Ա.Ը
-   Ա.Թ
-   Ա.Ժ
-   Ա.ԺԱ
-   Ա.ԺԲ
-   Ա.Ի
-   Ա.Լ
-   Ա.Խ
-   Ա.Ծ
-   Ա.Կ
-   Ա.Հ
-   Ա.Ձ
-   Ա.Ղ
-   Ա.Ճ
-   Ա.Մ
-   Ա.Յ
-   Ա.Ն
-   Ա.Շ
-   Ա.Ո
-   Ա.Չ
-   Ա.Պ
-   Ա.Ջ
-   Ա.Ռ
-   Ա.Ս
-   Ա.Վ
-   Ա.Տ
-   Ա.Ր
-   Ա.Ց
-   Ա.ՈՒ
-   Ա.Փ
-   Ա.Ք
-   Ա.ՔՋՂԹ
- &lt;/div&gt;
-
- &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204increment00cohtmlfromrev211348trunkLayoutTestscss21t1204increment00cohtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html (from rev 211348, trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html                                (rev 0)
+++ trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
+&lt;html&gt;
+ &lt;head&gt;
+  &lt;title&gt;CSS 2.1 Test Suite: dynamic changes to 'counter-increment'&lt;/title&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counters&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
+  &lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;&lt;/meta&gt;
+  &lt;style type=&quot;text/css&quot;&gt;
+
+  body { white-space: nowrap; }
+
+
+  #test, .reset { counter-reset: c; }
+  .increment:before { content: counters(c, &quot;.&quot;) &quot;-&quot;; }
+  .increment { counter-increment: c; }
+
+  &lt;/style&gt;
+  &lt;script type=&quot;text/javascript&quot;&gt;
+
+  function run() {
+        var t = document.getElementById(&quot;test&quot;);
+        var s = document.createElement(&quot;span&quot;);
+        s.setAttribute(&quot;class&quot;, &quot;increment&quot;);
+        s.appendChild(document.createTextNode(&quot;new-&quot;));
+        t.insertBefore(s, t.childNodes.item(1));
+  }
+
+  &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body onload=&quot;setTimeout('run()', 0)&quot;&gt;
+
+ &lt;p&gt;The following two lines should be the same:&lt;/p&gt;
+
+ &lt;div id=&quot;test&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/div&gt;
+
+ &lt;div id=&quot;reference&quot;&gt;1-2-new-3-4-&lt;/div&gt;
+
+ &lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204increment00cohtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1204-increment-00-c-o.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,40 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
-&lt;html&gt;
- &lt;head&gt;
-  &lt;title&gt;CSS 2.1 Test Suite: dynamic changes to 'counter-increment'&lt;/title&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counters&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
-  &lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;&lt;/meta&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-
-  body { white-space: nowrap; }
-
-
-  #test, .reset { counter-reset: c; }
-  .increment:before { content: counters(c, &quot;.&quot;) &quot;-&quot;; }
-  .increment { counter-increment: c; }
-
-  &lt;/style&gt;
-  &lt;script type=&quot;text/javascript&quot;&gt;
-
-  function run() {
-        var t = document.getElementById(&quot;test&quot;);
-        var s = document.createElement(&quot;span&quot;);
-        s.setAttribute(&quot;class&quot;, &quot;increment&quot;);
-        s.appendChild(document.createTextNode(&quot;new-&quot;));
-        t.insertBefore(s, t.childNodes.item(1));
-  }
-
-  &lt;/script&gt;
- &lt;/head&gt;
- &lt;body onload=&quot;setTimeout('run()', 0)&quot;&gt;
-
- &lt;p&gt;The following two lines should be the same:&lt;/p&gt;
-
- &lt;div id=&quot;test&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/div&gt;
-
- &lt;div id=&quot;reference&quot;&gt;1-2-new-3-4-&lt;/div&gt;
-
- &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204increment01cohtmlfromrev211348trunkLayoutTestscss21t1204increment01cohtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html (from rev 211348, trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html                                (rev 0)
+++ trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
+&lt;html&gt;
+ &lt;head&gt;
+  &lt;title&gt;CSS 2.1 Test Suite: dynamic changes to 'counter-increment'&lt;/title&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counters&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
+  &lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;&lt;/meta&gt;
+  &lt;style type=&quot;text/css&quot;&gt;
+
+  body { white-space: nowrap; }
+
+
+  #test, .reset { counter-reset: c; }
+  .increment:before { content: counters(c, &quot;.&quot;) &quot;-&quot;; }
+  .increment { counter-increment: c; }
+
+  &lt;/style&gt;
+  &lt;script type=&quot;text/javascript&quot;&gt;
+
+  function run() {
+        var t = document.getElementById(&quot;test&quot;);
+        t.removeChild(t.childNodes.item(1));
+  }
+
+  &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body onload=&quot;setTimeout('run()', 0)&quot;&gt;
+
+ &lt;p&gt;The following two lines should be the same:&lt;/p&gt;
+
+ &lt;div id=&quot;test&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;FAIL-&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/div&gt;
+
+ &lt;div id=&quot;reference&quot;&gt;1-2-3-&lt;/div&gt;
+
+ &lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204increment01cohtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1204-increment-01-c-o.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,37 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
-&lt;html&gt;
- &lt;head&gt;
-  &lt;title&gt;CSS 2.1 Test Suite: dynamic changes to 'counter-increment'&lt;/title&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counters&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
-  &lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;&lt;/meta&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-
-  body { white-space: nowrap; }
-
-
-  #test, .reset { counter-reset: c; }
-  .increment:before { content: counters(c, &quot;.&quot;) &quot;-&quot;; }
-  .increment { counter-increment: c; }
-
-  &lt;/style&gt;
-  &lt;script type=&quot;text/javascript&quot;&gt;
-
-  function run() {
-        var t = document.getElementById(&quot;test&quot;);
-        t.removeChild(t.childNodes.item(1));
-  }
-
-  &lt;/script&gt;
- &lt;/head&gt;
- &lt;body onload=&quot;setTimeout('run()', 0)&quot;&gt;
-
- &lt;p&gt;The following two lines should be the same:&lt;/p&gt;
-
- &lt;div id=&quot;test&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;FAIL-&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/div&gt;
-
- &lt;div id=&quot;reference&quot;&gt;1-2-3-&lt;/div&gt;
-
- &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204increment02cohtmlfromrev211348trunkLayoutTestscss21t1204increment02cohtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html (from rev 211348, trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html                                (rev 0)
+++ trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,39 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
+&lt;html&gt;
+ &lt;head&gt;
+  &lt;title&gt;CSS 2.1 Test Suite: dynamic changes to 'counter-increment'&lt;/title&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counters&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
+  &lt;meta http-equiv=&quot;Content-Style-Type&quot; content=&quot;text/css&quot;&gt;&lt;/meta&gt;
+  &lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;&lt;/meta&gt;
+  &lt;style type=&quot;text/css&quot;&gt;
+
+  body { white-space: nowrap; }
+
+
+  #test, .reset { counter-reset: c; }
+  .increment:before, .use:before { content: counters(c, &quot;.&quot;) &quot;-&quot;; }
+  .increment { counter-increment: c; }
+
+  &lt;/style&gt;
+  &lt;script type=&quot;text/javascript&quot;&gt;
+
+  function run() {
+    document.getElementById(&quot;one&quot;).removeAttribute(&quot;class&quot;);
+        document.getElementById(&quot;two&quot;).setAttribute(&quot;class&quot;, &quot;increment&quot;);
+        document.getElementById(&quot;three&quot;).setAttribute(&quot;style&quot;, &quot;counter-increment: c&quot;);
+  }
+
+  &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body onload=&quot;setTimeout('run()', 0)&quot;&gt;
+
+ &lt;p&gt;The following two lines should be the same:&lt;/p&gt;
+
+ &lt;div id=&quot;test&quot;&gt;&lt;span class=&quot;increment&quot; id=&quot;one&quot;&gt;&lt;/span&gt;&lt;span&gt;&lt;span class=&quot;reset&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot; id=&quot;two&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;use&quot; id=&quot;three&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/div&gt;
+
+ &lt;div id=&quot;reference&quot;&gt;0.1-0.2-1-2-&lt;/div&gt;
+
+ &lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204increment02cohtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1204-increment-02-c-o.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,39 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
-&lt;html&gt;
- &lt;head&gt;
-  &lt;title&gt;CSS 2.1 Test Suite: dynamic changes to 'counter-increment'&lt;/title&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counters&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
-  &lt;meta http-equiv=&quot;Content-Style-Type&quot; content=&quot;text/css&quot;&gt;&lt;/meta&gt;
-  &lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;&lt;/meta&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-
-  body { white-space: nowrap; }
-
-
-  #test, .reset { counter-reset: c; }
-  .increment:before, .use:before { content: counters(c, &quot;.&quot;) &quot;-&quot;; }
-  .increment { counter-increment: c; }
-
-  &lt;/style&gt;
-  &lt;script type=&quot;text/javascript&quot;&gt;
-
-  function run() {
-    document.getElementById(&quot;one&quot;).removeAttribute(&quot;class&quot;);
-        document.getElementById(&quot;two&quot;).setAttribute(&quot;class&quot;, &quot;increment&quot;);
-        document.getElementById(&quot;three&quot;).setAttribute(&quot;style&quot;, &quot;counter-increment: c&quot;);
-  }
-
-  &lt;/script&gt;
- &lt;/head&gt;
- &lt;body onload=&quot;setTimeout('run()', 0)&quot;&gt;
-
- &lt;p&gt;The following two lines should be the same:&lt;/p&gt;
-
- &lt;div id=&quot;test&quot;&gt;&lt;span class=&quot;increment&quot; id=&quot;one&quot;&gt;&lt;/span&gt;&lt;span&gt;&lt;span class=&quot;reset&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot; id=&quot;two&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;use&quot; id=&quot;three&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/div&gt;
-
- &lt;div id=&quot;reference&quot;&gt;0.1-0.2-1-2-&lt;/div&gt;
-
- &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204reset00cohtmlfromrev211348trunkLayoutTestscss21t1204reset00cohtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html (from rev 211348, trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html                                (rev 0)
+++ trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,39 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
+&lt;html&gt;
+ &lt;head&gt;
+  &lt;title&gt;CSS 2.1 Test Suite: dynamic changes to 'counter-increment'&lt;/title&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counters&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
+  &lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;&lt;/meta&gt;
+  &lt;style type=&quot;text/css&quot;&gt;
+
+  body { white-space: nowrap; }
+
+
+  #test, .reset { counter-reset: c; }
+  .increment:before { content: counters(c, &quot;.&quot;) &quot;-&quot;; }
+  .increment { counter-increment: c; }
+
+  &lt;/style&gt;
+  &lt;script type=&quot;text/javascript&quot;&gt;
+
+  function run() {
+        var t = document.getElementById(&quot;test&quot;);
+        var s = document.createElement(&quot;span&quot;);
+        s.setAttribute(&quot;class&quot;, &quot;reset&quot;);
+        t.insertBefore(s, t.childNodes.item(1));
+  }
+
+  &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body onload=&quot;setTimeout('run()', 0)&quot;&gt;
+
+ &lt;p&gt;The following two lines should be the same:&lt;/p&gt;
+
+ &lt;div id=&quot;test&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/div&gt;
+
+ &lt;div id=&quot;reference&quot;&gt;1-1.1-1.2-&lt;/div&gt;
+
+ &lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204reset00cohtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1204-reset-00-c-o.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,39 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
-&lt;html&gt;
- &lt;head&gt;
-  &lt;title&gt;CSS 2.1 Test Suite: dynamic changes to 'counter-increment'&lt;/title&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counters&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
-  &lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;&lt;/meta&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-
-  body { white-space: nowrap; }
-
-
-  #test, .reset { counter-reset: c; }
-  .increment:before { content: counters(c, &quot;.&quot;) &quot;-&quot;; }
-  .increment { counter-increment: c; }
-
-  &lt;/style&gt;
-  &lt;script type=&quot;text/javascript&quot;&gt;
-
-  function run() {
-        var t = document.getElementById(&quot;test&quot;);
-        var s = document.createElement(&quot;span&quot;);
-        s.setAttribute(&quot;class&quot;, &quot;reset&quot;);
-        t.insertBefore(s, t.childNodes.item(1));
-  }
-
-  &lt;/script&gt;
- &lt;/head&gt;
- &lt;body onload=&quot;setTimeout('run()', 0)&quot;&gt;
-
- &lt;p&gt;The following two lines should be the same:&lt;/p&gt;
-
- &lt;div id=&quot;test&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/div&gt;
-
- &lt;div id=&quot;reference&quot;&gt;1-1.1-1.2-&lt;/div&gt;
-
- &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204reset01cohtmlfromrev211348trunkLayoutTestscss21t1204reset01cohtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html (from rev 211348, trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html                                (rev 0)
+++ trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
+&lt;html&gt;
+ &lt;head&gt;
+  &lt;title&gt;CSS 2.1 Test Suite: dynamic changes to 'counter-increment'&lt;/title&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counters&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
+  &lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;&lt;/meta&gt;
+  &lt;style type=&quot;text/css&quot;&gt;
+
+  body { white-space: nowrap; }
+
+
+  #test, .reset { counter-reset: c; }
+  .increment:before { content: counters(c, &quot;.&quot;) &quot;-&quot;; }
+  .increment { counter-increment: c; }
+
+  &lt;/style&gt;
+  &lt;script type=&quot;text/javascript&quot;&gt;
+
+  function run() {
+        var t = document.getElementById(&quot;test&quot;);
+        t.removeChild(t.childNodes.item(1));
+  }
+
+  &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body onload=&quot;setTimeout('run()', 0)&quot;&gt;
+
+ &lt;p&gt;The following two lines should be the same:&lt;/p&gt;
+
+ &lt;div id=&quot;test&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;reset&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/div&gt;
+
+ &lt;div id=&quot;reference&quot;&gt;1-2-3-&lt;/div&gt;
+
+ &lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204reset01cohtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1204-reset-01-c-o.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,37 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
-&lt;html&gt;
- &lt;head&gt;
-  &lt;title&gt;CSS 2.1 Test Suite: dynamic changes to 'counter-increment'&lt;/title&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counters&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
-  &lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;&lt;/meta&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-
-  body { white-space: nowrap; }
-
-
-  #test, .reset { counter-reset: c; }
-  .increment:before { content: counters(c, &quot;.&quot;) &quot;-&quot;; }
-  .increment { counter-increment: c; }
-
-  &lt;/style&gt;
-  &lt;script type=&quot;text/javascript&quot;&gt;
-
-  function run() {
-        var t = document.getElementById(&quot;test&quot;);
-        t.removeChild(t.childNodes.item(1));
-  }
-
-  &lt;/script&gt;
- &lt;/head&gt;
- &lt;body onload=&quot;setTimeout('run()', 0)&quot;&gt;
-
- &lt;p&gt;The following two lines should be the same:&lt;/p&gt;
-
- &lt;div id=&quot;test&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;reset&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/div&gt;
-
- &lt;div id=&quot;reference&quot;&gt;1-2-3-&lt;/div&gt;
-
- &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204reset02cohtmlfromrev211348trunkLayoutTestscss21t1204reset02cohtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html (from rev 211348, trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html                                (rev 0)
+++ trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
+&lt;html&gt;
+ &lt;head&gt;
+  &lt;title&gt;CSS 2.1 Test Suite: dynamic changes to 'counter-increment'&lt;/title&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counters&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
+  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
+  &lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;&lt;/meta&gt;
+  &lt;style type=&quot;text/css&quot;&gt;
+
+  body { white-space: nowrap; }
+
+
+  #test, .reset { counter-reset: c; }
+  .increment:before { content: counters(c, &quot;.&quot;) &quot;-&quot;; }
+  .increment { counter-increment: c; }
+
+  &lt;/style&gt;
+  &lt;script type=&quot;text/javascript&quot;&gt;
+
+  function run() {
+        document.getElementById(&quot;one&quot;).setAttribute(&quot;class&quot;, &quot;reset&quot;);
+    document.getElementById(&quot;two&quot;).removeAttribute(&quot;class&quot;);
+  }
+
+  &lt;/script&gt;
+ &lt;/head&gt;
+ &lt;body onload=&quot;setTimeout('run()', 0)&quot;&gt;
+
+ &lt;p&gt;The following two lines should be the same:&lt;/p&gt;
+
+ &lt;div id=&quot;test&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span&gt;&lt;span id=&quot;one&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span&gt;&lt;span class=&quot;reset&quot; id=&quot;two&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/div&gt;
+
+ &lt;div id=&quot;reference&quot;&gt;1-1.1-2-3-4-&lt;/div&gt;
+
+ &lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestscss21t1204reset02cohtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/css2.1/t1204-reset-02-c-o.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,37 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;&gt;
-&lt;html&gt;
- &lt;head&gt;
-  &lt;title&gt;CSS 2.1 Test Suite: dynamic changes to 'counter-increment'&lt;/title&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#counters&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/generate.html#propdef-content&quot;&gt;
-  &lt;link rel=&quot;help&quot; href=&quot;http://www.w3.org/TR/CSS21/syndata.html#counter&quot;&gt;
-  &lt;meta http-equiv=&quot;Content-Script-Type&quot; content=&quot;text/javascript&quot;&gt;&lt;/meta&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-
-  body { white-space: nowrap; }
-
-
-  #test, .reset { counter-reset: c; }
-  .increment:before { content: counters(c, &quot;.&quot;) &quot;-&quot;; }
-  .increment { counter-increment: c; }
-
-  &lt;/style&gt;
-  &lt;script type=&quot;text/javascript&quot;&gt;
-
-  function run() {
-        document.getElementById(&quot;one&quot;).setAttribute(&quot;class&quot;, &quot;reset&quot;);
-    document.getElementById(&quot;two&quot;).removeAttribute(&quot;class&quot;);
-  }
-
-  &lt;/script&gt;
- &lt;/head&gt;
- &lt;body onload=&quot;setTimeout('run()', 0)&quot;&gt;
-
- &lt;p&gt;The following two lines should be the same:&lt;/p&gt;
-
- &lt;div id=&quot;test&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span&gt;&lt;span id=&quot;one&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;span&gt;&lt;span class=&quot;reset&quot; id=&quot;two&quot;&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;increment&quot;&gt;&lt;/span&gt;&lt;/div&gt;
-
- &lt;div id=&quot;reference&quot;&gt;1-1.1-2-3-4-&lt;/div&gt;
-
- &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel2htmlHTMLFrameElement09xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel2htmlHTMLFrameElement09xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!DOCTYPE html
+   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Frameset//EN&quot;
+   &quot;xhtml1-frameset.dtd&quot;&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
+&lt;head&gt;
+&lt;title&gt;NIST DOM HTML Test - FRAME2&lt;/title&gt;
+&lt;!--  required by frame contents  --&gt;
+&lt;script type=&quot;text/javascript&quot;&gt;function loadComplete() { }&lt;/script&gt;
+&lt;script type='text/javascript' src='selfxhtml.js'&gt;&lt;/script&gt;&lt;script charset='UTF-8' type='text/javascript' src='HTMLFrameElement09.js'&gt;&lt;/script&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;
+&lt;frameset cols=&quot;20, 80&quot;  onload=&quot;loadComplete()&quot;&gt;
+&lt;frameset rows=&quot;100, 200&quot;&gt;
+&lt;frame id=&quot;Frame1&quot; name=&quot;Frame1&quot; src=&quot;resources/frame.xhtml&quot;/&gt;
+&lt;/frameset&gt;
+&lt;frame id=&quot;Frame2&quot; name=&quot;Frame2&quot; src=&quot;resources/iframe.xhtml&quot;/&gt;
+&lt;/frameset&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel2htmlHTMLFrameElement09xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level2/html/HTMLFrameElement09.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,17 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
-&lt;!DOCTYPE html
-   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Frameset//EN&quot;
-   &quot;xhtml1-frameset.dtd&quot;&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
-&lt;head&gt;
-&lt;title&gt;NIST DOM HTML Test - FRAME2&lt;/title&gt;
-&lt;!--  required by frame contents  --&gt;
-&lt;script type=&quot;text/javascript&quot;&gt;function loadComplete() { }&lt;/script&gt;
-&lt;script type='text/javascript' src='selfxhtml.js'&gt;&lt;/script&gt;&lt;script charset='UTF-8' type='text/javascript' src='HTMLFrameElement09.js'&gt;&lt;/script&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;
-&lt;frameset cols=&quot;20, 80&quot;  onload=&quot;loadComplete()&quot;&gt;
-&lt;frameset rows=&quot;100, 200&quot;&gt;
-&lt;frame id=&quot;Frame1&quot; name=&quot;Frame1&quot; src=&quot;resources/frame.xhtml&quot;/&gt;
-&lt;/frameset&gt;
-&lt;frame id=&quot;Frame2&quot; name=&quot;Frame2&quot; src=&quot;resources/iframe.xhtml&quot;/&gt;
-&lt;/frameset&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentadoptnode22xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3coredocumentadoptnode22xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
+&lt;!DOCTYPE html
+   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
+   &quot;xhtml1-strict.dtd&quot; [
+   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
+   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
+   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
+   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
+   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
+   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
+   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
+   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
+   &lt;!ATTLIST p
+        dir CDATA 'rtl'
+        xmlns:dmstc CDATA #IMPLIED
+        xmlns:nm CDATA #IMPLIED
+        xmlns:emp2 CDATA #IMPLIED&gt;
+   &lt;!ATTLIST html
+                   xmlns:xsi CDATA #IMPLIED
+                   xsi:schemaLocation CDATA #IMPLIED&gt;
+   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
+   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
+   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
+]&gt;
+&lt;!-- This is comment number 1.--&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'
+        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;documentadoptnode22.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0001&lt;/em&gt;
+  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
+  &lt;code&gt;Accountant&lt;/code&gt;
+  &lt;sup&gt;56,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0002&lt;/em&gt;
+  &lt;strong&gt;Martha Raynolds
+&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
+&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
+  &lt;code&gt;Secretary&lt;/code&gt;
+  &lt;sup&gt;35,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
+ 98554&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
+  &lt;em&gt;EMP0003&lt;/em&gt;
+  &lt;strong&gt;Roger
+ Jones&lt;/strong&gt;
+  &lt;code&gt;Department Manager&lt;/code&gt;
+  &lt;sup&gt;100,000&lt;/sup&gt;
+  &lt;var&gt;&amp;ent4;&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
+  &lt;em&gt;EMP0004&lt;/em&gt;
+  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
+  &lt;code&gt;Personnel Director&lt;/code&gt;
+  &lt;sup&gt;95,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
+  &lt;em&gt;EMP0005&lt;/em&gt;
+  &lt;strong&gt;Robert Myers&lt;/strong&gt;
+  &lt;code&gt;Computer Specialist&lt;/code&gt;
+  &lt;sup&gt;90,000&lt;/sup&gt;
+  &lt;var&gt;male&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
+ &lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentadoptnode22xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentadoptnode22.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
-&lt;!DOCTYPE html
-   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
-   &quot;xhtml1-strict.dtd&quot; [
-   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
-   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
-   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
-   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
-   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
-   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
-   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
-   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
-   &lt;!ATTLIST p
-        dir CDATA 'rtl'
-        xmlns:dmstc CDATA #IMPLIED
-        xmlns:nm CDATA #IMPLIED
-        xmlns:emp2 CDATA #IMPLIED&gt;
-   &lt;!ATTLIST html
-                   xmlns:xsi CDATA #IMPLIED
-                   xsi:schemaLocation CDATA #IMPLIED&gt;
-   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
-   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
-   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
-]&gt;
-&lt;!-- This is comment number 1.--&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'
-        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;documentadoptnode22.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0001&lt;/em&gt;
-  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
-  &lt;code&gt;Accountant&lt;/code&gt;
-  &lt;sup&gt;56,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0002&lt;/em&gt;
-  &lt;strong&gt;Martha Raynolds
-&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
-&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
-  &lt;code&gt;Secretary&lt;/code&gt;
-  &lt;sup&gt;35,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
- 98554&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
-  &lt;em&gt;EMP0003&lt;/em&gt;
-  &lt;strong&gt;Roger
- Jones&lt;/strong&gt;
-  &lt;code&gt;Department Manager&lt;/code&gt;
-  &lt;sup&gt;100,000&lt;/sup&gt;
-  &lt;var&gt;&amp;ent4;&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
-  &lt;em&gt;EMP0004&lt;/em&gt;
-  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
-  &lt;code&gt;Personnel Director&lt;/code&gt;
-  &lt;sup&gt;95,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
-  &lt;em&gt;EMP0005&lt;/em&gt;
-  &lt;strong&gt;Robert Myers&lt;/strong&gt;
-  &lt;code&gt;Computer Specialist&lt;/code&gt;
-  &lt;sup&gt;90,000&lt;/sup&gt;
-  &lt;var&gt;male&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
- &lt;/p&gt;
-&lt;/body&gt;&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentnormalizedocument06xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3coredocumentnormalizedocument06xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+&lt;!DOCTYPE html [
+&lt;!ENTITY ent1 'foo'&gt;
+&lt;!ENTITY ent2 'foo&lt;br/&gt;'&gt;
+&lt;!ELEMENT html (head, body)&gt;
+&lt;!ATTLIST html xmlns CDATA #IMPLIED&gt;
+&lt;!ELEMENT head (title,script*)&gt;
+&lt;!ELEMENT script (#PCDATA)&gt;
+&lt;!ATTLIST script 
+     src CDATA #IMPLIED
+     type CDATA #IMPLIED
+     charset CDATA #IMPLIED&gt;
+&lt;!ELEMENT title (#PCDATA)&gt;
+&lt;!ELEMENT body (p)&gt;
+&lt;!ATTLIST body onload CDATA #IMPLIED&gt;
+&lt;!ELEMENT p (#PCDATA|br)*&gt;
+&lt;!ELEMENT br EMPTY&gt;
+]&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
+&lt;head&gt;
+&lt;title&gt;replaceWholeText sample&lt;/title&gt;
+&lt;script type='text/javascript' src='selfxhtml.js'&gt;&lt;/script&gt;&lt;script charset='UTF-8' type='text/javascript' src='documentnormalizedocument06.js'&gt;&lt;/script&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;
+&lt;body onload=&quot;loadComplete()&quot;&gt;
+&lt;p&gt;bar&lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentnormalizedocument06xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentnormalizedocument06.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,25 +0,0 @@
</span><del>-&lt;!DOCTYPE html [
-&lt;!ENTITY ent1 'foo'&gt;
-&lt;!ENTITY ent2 'foo&lt;br/&gt;'&gt;
-&lt;!ELEMENT html (head, body)&gt;
-&lt;!ATTLIST html xmlns CDATA #IMPLIED&gt;
-&lt;!ELEMENT head (title,script*)&gt;
-&lt;!ELEMENT script (#PCDATA)&gt;
-&lt;!ATTLIST script 
-     src CDATA #IMPLIED
-     type CDATA #IMPLIED
-     charset CDATA #IMPLIED&gt;
-&lt;!ELEMENT title (#PCDATA)&gt;
-&lt;!ELEMENT body (p)&gt;
-&lt;!ATTLIST body onload CDATA #IMPLIED&gt;
-&lt;!ELEMENT p (#PCDATA|br)*&gt;
-&lt;!ELEMENT br EMPTY&gt;
-]&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
-&lt;head&gt;
-&lt;title&gt;replaceWholeText sample&lt;/title&gt;
-&lt;script type='text/javascript' src='selfxhtml.js'&gt;&lt;/script&gt;&lt;script charset='UTF-8' type='text/javascript' src='documentnormalizedocument06.js'&gt;&lt;/script&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;
-&lt;body onload=&quot;loadComplete()&quot;&gt;
-&lt;p&gt;bar&lt;/p&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi01xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi01xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
+&lt;!DOCTYPE html
+   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
+   &quot;xhtml1-strict.dtd&quot; [
+   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
+   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
+   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
+   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
+   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
+   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
+   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
+   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
+   &lt;!ATTLIST p
+        dir CDATA 'rtl'
+        xmlns:dmstc CDATA #IMPLIED
+        xmlns:nm CDATA #IMPLIED
+        xmlns:emp2 CDATA #IMPLIED&gt;
+   &lt;!ATTLIST html
+                   xmlns:xsi CDATA #IMPLIED
+                   xsi:schemaLocation CDATA #IMPLIED&gt;
+   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
+   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
+   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
+]&gt;
+&lt;!-- This is comment number 1.--&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'
+        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;documentsetdocumenturi01.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0001&lt;/em&gt;
+  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
+  &lt;code&gt;Accountant&lt;/code&gt;
+  &lt;sup&gt;56,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0002&lt;/em&gt;
+  &lt;strong&gt;Martha Raynolds
+&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
+&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
+  &lt;code&gt;Secretary&lt;/code&gt;
+  &lt;sup&gt;35,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
+ 98554&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
+  &lt;em&gt;EMP0003&lt;/em&gt;
+  &lt;strong&gt;Roger
+ Jones&lt;/strong&gt;
+  &lt;code&gt;Department Manager&lt;/code&gt;
+  &lt;sup&gt;100,000&lt;/sup&gt;
+  &lt;var&gt;&amp;ent4;&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
+  &lt;em&gt;EMP0004&lt;/em&gt;
+  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
+  &lt;code&gt;Personnel Director&lt;/code&gt;
+  &lt;sup&gt;95,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
+  &lt;em&gt;EMP0005&lt;/em&gt;
+  &lt;strong&gt;Robert Myers&lt;/strong&gt;
+  &lt;code&gt;Computer Specialist&lt;/code&gt;
+  &lt;sup&gt;90,000&lt;/sup&gt;
+  &lt;var&gt;male&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
+ &lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi01xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi01.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
-&lt;!DOCTYPE html
-   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
-   &quot;xhtml1-strict.dtd&quot; [
-   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
-   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
-   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
-   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
-   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
-   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
-   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
-   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
-   &lt;!ATTLIST p
-        dir CDATA 'rtl'
-        xmlns:dmstc CDATA #IMPLIED
-        xmlns:nm CDATA #IMPLIED
-        xmlns:emp2 CDATA #IMPLIED&gt;
-   &lt;!ATTLIST html
-                   xmlns:xsi CDATA #IMPLIED
-                   xsi:schemaLocation CDATA #IMPLIED&gt;
-   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
-   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
-   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
-]&gt;
-&lt;!-- This is comment number 1.--&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'
-        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;documentsetdocumenturi01.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0001&lt;/em&gt;
-  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
-  &lt;code&gt;Accountant&lt;/code&gt;
-  &lt;sup&gt;56,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0002&lt;/em&gt;
-  &lt;strong&gt;Martha Raynolds
-&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
-&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
-  &lt;code&gt;Secretary&lt;/code&gt;
-  &lt;sup&gt;35,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
- 98554&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
-  &lt;em&gt;EMP0003&lt;/em&gt;
-  &lt;strong&gt;Roger
- Jones&lt;/strong&gt;
-  &lt;code&gt;Department Manager&lt;/code&gt;
-  &lt;sup&gt;100,000&lt;/sup&gt;
-  &lt;var&gt;&amp;ent4;&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
-  &lt;em&gt;EMP0004&lt;/em&gt;
-  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
-  &lt;code&gt;Personnel Director&lt;/code&gt;
-  &lt;sup&gt;95,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
-  &lt;em&gt;EMP0005&lt;/em&gt;
-  &lt;strong&gt;Robert Myers&lt;/strong&gt;
-  &lt;code&gt;Computer Specialist&lt;/code&gt;
-  &lt;sup&gt;90,000&lt;/sup&gt;
-  &lt;var&gt;male&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
- &lt;/p&gt;
-&lt;/body&gt;&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi02xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi02xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
+&lt;!DOCTYPE html
+   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
+   &quot;xhtml1-strict.dtd&quot; [
+   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
+   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
+   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
+   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
+   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
+   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
+   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
+   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
+   &lt;!ATTLIST p
+        dir CDATA 'rtl'
+        xmlns:dmstc CDATA #IMPLIED
+        xmlns:nm CDATA #IMPLIED
+        xmlns:emp2 CDATA #IMPLIED&gt;
+   &lt;!ATTLIST html
+                   xmlns:xsi CDATA #IMPLIED
+                   xsi:schemaLocation CDATA #IMPLIED&gt;
+   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
+   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
+   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
+]&gt;
+&lt;!-- This is comment number 1.--&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'
+        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;documentsetdocumenturi02.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0001&lt;/em&gt;
+  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
+  &lt;code&gt;Accountant&lt;/code&gt;
+  &lt;sup&gt;56,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0002&lt;/em&gt;
+  &lt;strong&gt;Martha Raynolds
+&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
+&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
+  &lt;code&gt;Secretary&lt;/code&gt;
+  &lt;sup&gt;35,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
+ 98554&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
+  &lt;em&gt;EMP0003&lt;/em&gt;
+  &lt;strong&gt;Roger
+ Jones&lt;/strong&gt;
+  &lt;code&gt;Department Manager&lt;/code&gt;
+  &lt;sup&gt;100,000&lt;/sup&gt;
+  &lt;var&gt;&amp;ent4;&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
+  &lt;em&gt;EMP0004&lt;/em&gt;
+  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
+  &lt;code&gt;Personnel Director&lt;/code&gt;
+  &lt;sup&gt;95,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
+  &lt;em&gt;EMP0005&lt;/em&gt;
+  &lt;strong&gt;Robert Myers&lt;/strong&gt;
+  &lt;code&gt;Computer Specialist&lt;/code&gt;
+  &lt;sup&gt;90,000&lt;/sup&gt;
+  &lt;var&gt;male&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
+ &lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredocumentsetdocumenturi02xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/documentsetdocumenturi02.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
-&lt;!DOCTYPE html
-   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
-   &quot;xhtml1-strict.dtd&quot; [
-   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
-   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
-   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
-   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
-   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
-   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
-   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
-   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
-   &lt;!ATTLIST p
-        dir CDATA 'rtl'
-        xmlns:dmstc CDATA #IMPLIED
-        xmlns:nm CDATA #IMPLIED
-        xmlns:emp2 CDATA #IMPLIED&gt;
-   &lt;!ATTLIST html
-                   xmlns:xsi CDATA #IMPLIED
-                   xsi:schemaLocation CDATA #IMPLIED&gt;
-   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
-   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
-   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
-]&gt;
-&lt;!-- This is comment number 1.--&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'
-        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;documentsetdocumenturi02.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0001&lt;/em&gt;
-  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
-  &lt;code&gt;Accountant&lt;/code&gt;
-  &lt;sup&gt;56,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0002&lt;/em&gt;
-  &lt;strong&gt;Martha Raynolds
-&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
-&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
-  &lt;code&gt;Secretary&lt;/code&gt;
-  &lt;sup&gt;35,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
- 98554&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
-  &lt;em&gt;EMP0003&lt;/em&gt;
-  &lt;strong&gt;Roger
- Jones&lt;/strong&gt;
-  &lt;code&gt;Department Manager&lt;/code&gt;
-  &lt;sup&gt;100,000&lt;/sup&gt;
-  &lt;var&gt;&amp;ent4;&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
-  &lt;em&gt;EMP0004&lt;/em&gt;
-  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
-  &lt;code&gt;Personnel Director&lt;/code&gt;
-  &lt;sup&gt;95,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
-  &lt;em&gt;EMP0005&lt;/em&gt;
-  &lt;strong&gt;Robert Myers&lt;/strong&gt;
-  &lt;code&gt;Computer Specialist&lt;/code&gt;
-  &lt;sup&gt;90,000&lt;/sup&gt;
-  &lt;var&gt;male&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
- &lt;/p&gt;
-&lt;/body&gt;&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry12xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry12xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!DOCTYPE html
+   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
+   &quot;xhtml1-strict.dtd&quot;&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
+&lt;!--
+Copyright(c) 2001-2004 World Wide Web Consortium, 
+(Massachusetts Institute of Technology, European Research Consortium 
+for Informatics and Mathematics, Keio University). All 
+Rights Reserved. This work is distributed under the W3C(r) Software License [1] in the 
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+
+[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+--&gt;
+        &lt;head&gt;
+                &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;
+                &lt;title&gt;implementation&lt;/title&gt;
+                &lt;script type='text/javascript' src='selfxhtml.js'&gt;&lt;/script&gt;
+                &lt;script type='text/javascript' charset='UTF-8' src='domimplementationregistry12.js'&gt;&lt;/script&gt;
+                &lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;
+        &lt;/head&gt;
+        &lt;body onload=&quot;loadComplete()&quot;&gt;
+        &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry12xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry12.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,25 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
-&lt;!DOCTYPE html
-   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
-   &quot;xhtml1-strict.dtd&quot;&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
-&lt;!--
-Copyright(c) 2001-2004 World Wide Web Consortium, 
-(Massachusetts Institute of Technology, European Research Consortium 
-for Informatics and Mathematics, Keio University). All 
-Rights Reserved. This work is distributed under the W3C(r) Software License [1] in the 
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even 
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
-
-[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
---&gt;
-        &lt;head&gt;
-                &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;
-                &lt;title&gt;implementation&lt;/title&gt;
-                &lt;script type='text/javascript' src='selfxhtml.js'&gt;&lt;/script&gt;
-                &lt;script type='text/javascript' charset='UTF-8' src='domimplementationregistry12.js'&gt;&lt;/script&gt;
-                &lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;
-        &lt;/head&gt;
-        &lt;body onload=&quot;loadComplete()&quot;&gt;
-        &lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry23xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry23xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!DOCTYPE html
+   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
+   &quot;xhtml1-strict.dtd&quot;&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
+&lt;!--
+Copyright(c) 2001-2004 World Wide Web Consortium, 
+(Massachusetts Institute of Technology, European Research Consortium 
+for Informatics and Mathematics, Keio University). All 
+Rights Reserved. This work is distributed under the W3C(r) Software License [1] in the 
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even 
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+
+[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+--&gt;
+        &lt;head&gt;
+                &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;
+                &lt;title&gt;implementation&lt;/title&gt;
+                &lt;script type='text/javascript' src='selfxhtml.js'&gt;&lt;/script&gt;
+                &lt;script type='text/javascript' charset='UTF-8' src='domimplementationregistry23.js'&gt;&lt;/script&gt;
+                &lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;
+        &lt;/head&gt;
+        &lt;body onload=&quot;loadComplete()&quot;&gt;
+        &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3coredomimplementationregistry23xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/domimplementationregistry23.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,25 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
-&lt;!DOCTYPE html
-   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
-   &quot;xhtml1-strict.dtd&quot;&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
-&lt;!--
-Copyright(c) 2001-2004 World Wide Web Consortium, 
-(Massachusetts Institute of Technology, European Research Consortium 
-for Informatics and Mathematics, Keio University). All 
-Rights Reserved. This work is distributed under the W3C(r) Software License [1] in the 
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even 
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
-
-[1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
---&gt;
-        &lt;head&gt;
-                &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;
-                &lt;title&gt;implementation&lt;/title&gt;
-                &lt;script type='text/javascript' src='selfxhtml.js'&gt;&lt;/script&gt;
-                &lt;script type='text/javascript' charset='UTF-8' src='domimplementationregistry23.js'&gt;&lt;/script&gt;
-                &lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;
-        &lt;/head&gt;
-        &lt;body onload=&quot;loadComplete()&quot;&gt;
-        &lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition14xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition14xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
+&lt;!DOCTYPE html
+   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
+   &quot;xhtml1-strict.dtd&quot; [
+   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
+   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
+   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
+   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
+   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
+   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
+   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
+   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
+   &lt;!ATTLIST p
+        dir CDATA 'rtl'
+        xmlns:dmstc CDATA #IMPLIED
+        xmlns:nm CDATA #IMPLIED
+        xmlns:emp2 CDATA #IMPLIED&gt;
+   &lt;!ATTLIST html
+                   xmlns:xsi CDATA #IMPLIED
+                   xsi:schemaLocation CDATA #IMPLIED&gt;
+   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
+   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
+   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
+]&gt;
+&lt;!-- This is comment number 1.--&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'
+        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;nodecomparedocumentposition14.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0001&lt;/em&gt;
+  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
+  &lt;code&gt;Accountant&lt;/code&gt;
+  &lt;sup&gt;56,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0002&lt;/em&gt;
+  &lt;strong&gt;Martha Raynolds
+&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
+&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
+  &lt;code&gt;Secretary&lt;/code&gt;
+  &lt;sup&gt;35,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
+ 98554&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
+  &lt;em&gt;EMP0003&lt;/em&gt;
+  &lt;strong&gt;Roger
+ Jones&lt;/strong&gt;
+  &lt;code&gt;Department Manager&lt;/code&gt;
+  &lt;sup&gt;100,000&lt;/sup&gt;
+  &lt;var&gt;&amp;ent4;&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
+  &lt;em&gt;EMP0004&lt;/em&gt;
+  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
+  &lt;code&gt;Personnel Director&lt;/code&gt;
+  &lt;sup&gt;95,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
+  &lt;em&gt;EMP0005&lt;/em&gt;
+  &lt;strong&gt;Robert Myers&lt;/strong&gt;
+  &lt;code&gt;Computer Specialist&lt;/code&gt;
+  &lt;sup&gt;90,000&lt;/sup&gt;
+  &lt;var&gt;male&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
+ &lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition14xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition14.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
-&lt;!DOCTYPE html
-   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
-   &quot;xhtml1-strict.dtd&quot; [
-   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
-   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
-   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
-   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
-   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
-   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
-   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
-   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
-   &lt;!ATTLIST p
-        dir CDATA 'rtl'
-        xmlns:dmstc CDATA #IMPLIED
-        xmlns:nm CDATA #IMPLIED
-        xmlns:emp2 CDATA #IMPLIED&gt;
-   &lt;!ATTLIST html
-                   xmlns:xsi CDATA #IMPLIED
-                   xsi:schemaLocation CDATA #IMPLIED&gt;
-   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
-   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
-   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
-]&gt;
-&lt;!-- This is comment number 1.--&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'
-        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;nodecomparedocumentposition14.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0001&lt;/em&gt;
-  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
-  &lt;code&gt;Accountant&lt;/code&gt;
-  &lt;sup&gt;56,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0002&lt;/em&gt;
-  &lt;strong&gt;Martha Raynolds
-&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
-&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
-  &lt;code&gt;Secretary&lt;/code&gt;
-  &lt;sup&gt;35,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
- 98554&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
-  &lt;em&gt;EMP0003&lt;/em&gt;
-  &lt;strong&gt;Roger
- Jones&lt;/strong&gt;
-  &lt;code&gt;Department Manager&lt;/code&gt;
-  &lt;sup&gt;100,000&lt;/sup&gt;
-  &lt;var&gt;&amp;ent4;&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
-  &lt;em&gt;EMP0004&lt;/em&gt;
-  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
-  &lt;code&gt;Personnel Director&lt;/code&gt;
-  &lt;sup&gt;95,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
-  &lt;em&gt;EMP0005&lt;/em&gt;
-  &lt;strong&gt;Robert Myers&lt;/strong&gt;
-  &lt;code&gt;Computer Specialist&lt;/code&gt;
-  &lt;sup&gt;90,000&lt;/sup&gt;
-  &lt;var&gt;male&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
- &lt;/p&gt;
-&lt;/body&gt;&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition15xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition15xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
+&lt;!DOCTYPE html
+   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
+   &quot;xhtml1-strict.dtd&quot; [
+   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
+   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
+   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
+   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
+   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
+   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
+   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
+   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
+   &lt;!ATTLIST p
+        dir CDATA 'rtl'
+        xmlns:dmstc CDATA #IMPLIED
+        xmlns:nm CDATA #IMPLIED
+        xmlns:emp2 CDATA #IMPLIED&gt;
+   &lt;!ATTLIST html
+                   xmlns:xsi CDATA #IMPLIED
+                   xsi:schemaLocation CDATA #IMPLIED&gt;
+   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
+   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
+   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
+]&gt;
+&lt;!-- This is comment number 1.--&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'
+        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;nodecomparedocumentposition15.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0001&lt;/em&gt;
+  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
+  &lt;code&gt;Accountant&lt;/code&gt;
+  &lt;sup&gt;56,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0002&lt;/em&gt;
+  &lt;strong&gt;Martha Raynolds
+&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
+&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
+  &lt;code&gt;Secretary&lt;/code&gt;
+  &lt;sup&gt;35,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
+ 98554&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
+  &lt;em&gt;EMP0003&lt;/em&gt;
+  &lt;strong&gt;Roger
+ Jones&lt;/strong&gt;
+  &lt;code&gt;Department Manager&lt;/code&gt;
+  &lt;sup&gt;100,000&lt;/sup&gt;
+  &lt;var&gt;&amp;ent4;&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
+  &lt;em&gt;EMP0004&lt;/em&gt;
+  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
+  &lt;code&gt;Personnel Director&lt;/code&gt;
+  &lt;sup&gt;95,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
+  &lt;em&gt;EMP0005&lt;/em&gt;
+  &lt;strong&gt;Robert Myers&lt;/strong&gt;
+  &lt;code&gt;Computer Specialist&lt;/code&gt;
+  &lt;sup&gt;90,000&lt;/sup&gt;
+  &lt;var&gt;male&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
+ &lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodecomparedocumentposition15xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodecomparedocumentposition15.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
-&lt;!DOCTYPE html
-   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
-   &quot;xhtml1-strict.dtd&quot; [
-   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
-   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
-   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
-   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
-   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
-   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
-   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
-   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
-   &lt;!ATTLIST p
-        dir CDATA 'rtl'
-        xmlns:dmstc CDATA #IMPLIED
-        xmlns:nm CDATA #IMPLIED
-        xmlns:emp2 CDATA #IMPLIED&gt;
-   &lt;!ATTLIST html
-                   xmlns:xsi CDATA #IMPLIED
-                   xsi:schemaLocation CDATA #IMPLIED&gt;
-   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
-   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
-   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
-]&gt;
-&lt;!-- This is comment number 1.--&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'
-        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;nodecomparedocumentposition15.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0001&lt;/em&gt;
-  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
-  &lt;code&gt;Accountant&lt;/code&gt;
-  &lt;sup&gt;56,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0002&lt;/em&gt;
-  &lt;strong&gt;Martha Raynolds
-&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
-&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
-  &lt;code&gt;Secretary&lt;/code&gt;
-  &lt;sup&gt;35,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
- 98554&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
-  &lt;em&gt;EMP0003&lt;/em&gt;
-  &lt;strong&gt;Roger
- Jones&lt;/strong&gt;
-  &lt;code&gt;Department Manager&lt;/code&gt;
-  &lt;sup&gt;100,000&lt;/sup&gt;
-  &lt;var&gt;&amp;ent4;&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
-  &lt;em&gt;EMP0004&lt;/em&gt;
-  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
-  &lt;code&gt;Personnel Director&lt;/code&gt;
-  &lt;sup&gt;95,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
-  &lt;em&gt;EMP0005&lt;/em&gt;
-  &lt;strong&gt;Robert Myers&lt;/strong&gt;
-  &lt;code&gt;Computer Specialist&lt;/code&gt;
-  &lt;sup&gt;90,000&lt;/sup&gt;
-  &lt;var&gt;male&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
- &lt;/p&gt;
-&lt;/body&gt;&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenoderemovechild03xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3corenoderemovechild03xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
+&lt;!DOCTYPE html
+   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
+   &quot;xhtml1-strict.dtd&quot; [
+   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
+   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
+   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
+   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
+   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
+   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
+   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
+   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
+   &lt;!ATTLIST p
+        dir CDATA 'rtl'
+        xmlns:dmstc CDATA #IMPLIED
+        xmlns:nm CDATA #IMPLIED
+        xmlns:emp2 CDATA #IMPLIED&gt;
+   &lt;!ATTLIST html
+                   xmlns:xsi CDATA #IMPLIED
+                   xsi:schemaLocation CDATA #IMPLIED&gt;
+   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
+   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
+   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
+]&gt;
+&lt;!-- This is comment number 1.--&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'
+        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;noderemovechild03.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0001&lt;/em&gt;
+  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
+  &lt;code&gt;Accountant&lt;/code&gt;
+  &lt;sup&gt;56,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0002&lt;/em&gt;
+  &lt;strong&gt;Martha Raynolds
+&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
+&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
+  &lt;code&gt;Secretary&lt;/code&gt;
+  &lt;sup&gt;35,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
+ 98554&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
+  &lt;em&gt;EMP0003&lt;/em&gt;
+  &lt;strong&gt;Roger
+ Jones&lt;/strong&gt;
+  &lt;code&gt;Department Manager&lt;/code&gt;
+  &lt;sup&gt;100,000&lt;/sup&gt;
+  &lt;var&gt;&amp;ent4;&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
+  &lt;em&gt;EMP0004&lt;/em&gt;
+  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
+  &lt;code&gt;Personnel Director&lt;/code&gt;
+  &lt;sup&gt;95,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
+  &lt;em&gt;EMP0005&lt;/em&gt;
+  &lt;strong&gt;Robert Myers&lt;/strong&gt;
+  &lt;code&gt;Computer Specialist&lt;/code&gt;
+  &lt;sup&gt;90,000&lt;/sup&gt;
+  &lt;var&gt;male&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
+ &lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenoderemovechild03xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/noderemovechild03.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
-&lt;!DOCTYPE html
-   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
-   &quot;xhtml1-strict.dtd&quot; [
-   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
-   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
-   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
-   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
-   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
-   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
-   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
-   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
-   &lt;!ATTLIST p
-        dir CDATA 'rtl'
-        xmlns:dmstc CDATA #IMPLIED
-        xmlns:nm CDATA #IMPLIED
-        xmlns:emp2 CDATA #IMPLIED&gt;
-   &lt;!ATTLIST html
-                   xmlns:xsi CDATA #IMPLIED
-                   xsi:schemaLocation CDATA #IMPLIED&gt;
-   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
-   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
-   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
-]&gt;
-&lt;!-- This is comment number 1.--&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'
-        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;noderemovechild03.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0001&lt;/em&gt;
-  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
-  &lt;code&gt;Accountant&lt;/code&gt;
-  &lt;sup&gt;56,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0002&lt;/em&gt;
-  &lt;strong&gt;Martha Raynolds
-&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
-&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
-  &lt;code&gt;Secretary&lt;/code&gt;
-  &lt;sup&gt;35,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
- 98554&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
-  &lt;em&gt;EMP0003&lt;/em&gt;
-  &lt;strong&gt;Roger
- Jones&lt;/strong&gt;
-  &lt;code&gt;Department Manager&lt;/code&gt;
-  &lt;sup&gt;100,000&lt;/sup&gt;
-  &lt;var&gt;&amp;ent4;&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
-  &lt;em&gt;EMP0004&lt;/em&gt;
-  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
-  &lt;code&gt;Personnel Director&lt;/code&gt;
-  &lt;sup&gt;95,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
-  &lt;em&gt;EMP0005&lt;/em&gt;
-  &lt;strong&gt;Robert Myers&lt;/strong&gt;
-  &lt;code&gt;Computer Specialist&lt;/code&gt;
-  &lt;sup&gt;90,000&lt;/sup&gt;
-  &lt;var&gt;male&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
- &lt;/p&gt;
-&lt;/body&gt;&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodereplacechild06xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3corenodereplacechild06xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
+&lt;!DOCTYPE html
+   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
+   &quot;xhtml1-strict.dtd&quot; [
+   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
+   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
+   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
+   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
+   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
+   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
+   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
+   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
+   &lt;!ATTLIST p
+        dir CDATA 'rtl'
+        xmlns:dmstc CDATA #IMPLIED
+        xmlns:nm CDATA #IMPLIED
+        xmlns:emp2 CDATA #IMPLIED&gt;
+   &lt;!ATTLIST html
+                   xmlns:xsi CDATA #IMPLIED
+                   xsi:schemaLocation CDATA #IMPLIED&gt;
+   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
+   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
+   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
+]&gt;
+&lt;!-- This is comment number 1.--&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'
+        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;nodereplacechild06.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0001&lt;/em&gt;
+  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
+  &lt;code&gt;Accountant&lt;/code&gt;
+  &lt;sup&gt;56,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0002&lt;/em&gt;
+  &lt;strong&gt;Martha Raynolds
+&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
+&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
+  &lt;code&gt;Secretary&lt;/code&gt;
+  &lt;sup&gt;35,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
+ 98554&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
+  &lt;em&gt;EMP0003&lt;/em&gt;
+  &lt;strong&gt;Roger
+ Jones&lt;/strong&gt;
+  &lt;code&gt;Department Manager&lt;/code&gt;
+  &lt;sup&gt;100,000&lt;/sup&gt;
+  &lt;var&gt;&amp;ent4;&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
+  &lt;em&gt;EMP0004&lt;/em&gt;
+  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
+  &lt;code&gt;Personnel Director&lt;/code&gt;
+  &lt;sup&gt;95,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
+  &lt;em&gt;EMP0005&lt;/em&gt;
+  &lt;strong&gt;Robert Myers&lt;/strong&gt;
+  &lt;code&gt;Computer Specialist&lt;/code&gt;
+  &lt;sup&gt;90,000&lt;/sup&gt;
+  &lt;var&gt;male&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
+ &lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodereplacechild06xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild06.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
-&lt;!DOCTYPE html
-   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
-   &quot;xhtml1-strict.dtd&quot; [
-   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
-   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
-   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
-   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
-   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
-   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
-   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
-   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
-   &lt;!ATTLIST p
-        dir CDATA 'rtl'
-        xmlns:dmstc CDATA #IMPLIED
-        xmlns:nm CDATA #IMPLIED
-        xmlns:emp2 CDATA #IMPLIED&gt;
-   &lt;!ATTLIST html
-                   xmlns:xsi CDATA #IMPLIED
-                   xsi:schemaLocation CDATA #IMPLIED&gt;
-   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
-   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
-   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
-]&gt;
-&lt;!-- This is comment number 1.--&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'
-        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;nodereplacechild06.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0001&lt;/em&gt;
-  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
-  &lt;code&gt;Accountant&lt;/code&gt;
-  &lt;sup&gt;56,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0002&lt;/em&gt;
-  &lt;strong&gt;Martha Raynolds
-&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
-&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
-  &lt;code&gt;Secretary&lt;/code&gt;
-  &lt;sup&gt;35,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
- 98554&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
-  &lt;em&gt;EMP0003&lt;/em&gt;
-  &lt;strong&gt;Roger
- Jones&lt;/strong&gt;
-  &lt;code&gt;Department Manager&lt;/code&gt;
-  &lt;sup&gt;100,000&lt;/sup&gt;
-  &lt;var&gt;&amp;ent4;&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
-  &lt;em&gt;EMP0004&lt;/em&gt;
-  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
-  &lt;code&gt;Personnel Director&lt;/code&gt;
-  &lt;sup&gt;95,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
-  &lt;em&gt;EMP0005&lt;/em&gt;
-  &lt;strong&gt;Robert Myers&lt;/strong&gt;
-  &lt;code&gt;Computer Specialist&lt;/code&gt;
-  &lt;sup&gt;90,000&lt;/sup&gt;
-  &lt;var&gt;male&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
- &lt;/p&gt;
-&lt;/body&gt;&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodereplacechild07xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3corenodereplacechild07xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,73 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
+&lt;!DOCTYPE html
+   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
+   &quot;xhtml1-strict.dtd&quot; [
+   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
+   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
+   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
+   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
+   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
+   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
+   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
+   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
+   &lt;!ATTLIST p
+        dir CDATA 'rtl'
+        xmlns:dmstc CDATA #IMPLIED
+        xmlns:nm CDATA #IMPLIED
+        xmlns:emp2 CDATA #IMPLIED&gt;
+   &lt;!ATTLIST html
+                   xmlns:xsi CDATA #IMPLIED
+                   xsi:schemaLocation CDATA #IMPLIED&gt;
+   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
+   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
+   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
+]&gt;
+&lt;!-- This is comment number 1.--&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'
+        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;nodereplacechild07.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0001&lt;/em&gt;
+  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
+  &lt;code&gt;Accountant&lt;/code&gt;
+  &lt;sup&gt;56,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
+  &lt;em&gt;EMP0002&lt;/em&gt;
+  &lt;strong&gt;Martha Raynolds
+&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
+&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
+  &lt;code&gt;Secretary&lt;/code&gt;
+  &lt;sup&gt;35,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
+ 98554&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
+  &lt;em&gt;EMP0003&lt;/em&gt;
+  &lt;strong&gt;Roger
+ Jones&lt;/strong&gt;
+  &lt;code&gt;Department Manager&lt;/code&gt;
+  &lt;sup&gt;100,000&lt;/sup&gt;
+  &lt;var&gt;&amp;ent4;&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
+  &lt;em&gt;EMP0004&lt;/em&gt;
+  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
+  &lt;code&gt;Personnel Director&lt;/code&gt;
+  &lt;sup&gt;95,000&lt;/sup&gt;
+  &lt;var&gt;Female&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
+ &lt;/p&gt;
+ &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
+  &lt;em&gt;EMP0005&lt;/em&gt;
+  &lt;strong&gt;Robert Myers&lt;/strong&gt;
+  &lt;code&gt;Computer Specialist&lt;/code&gt;
+  &lt;sup&gt;90,000&lt;/sup&gt;
+  &lt;var&gt;male&lt;/var&gt;
+  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
+ &lt;/p&gt;
+&lt;/body&gt;&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodereplacechild07xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild07.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,73 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot;?&gt;&lt;?TEST-STYLE PIDATA?&gt;
-&lt;!DOCTYPE html
-   PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
-   &quot;xhtml1-strict.dtd&quot; [
-   &lt;!ENTITY alpha &quot;&amp;#945;&quot;&gt;
-   &lt;!ENTITY beta &quot;&amp;#946;&quot;&gt;
-   &lt;!ENTITY gamma &quot;&amp;#947;&quot;&gt;
-   &lt;!ENTITY delta &quot;&amp;#948;&quot;&gt;
-   &lt;!ENTITY epsilon &quot;&amp;#949;&quot;&gt;
-   &lt;!ENTITY alpha &quot;&amp;#950;&quot;&gt;
-   &lt;!NOTATION notation1 PUBLIC &quot;notation1File&quot;&gt;
-   &lt;!NOTATION notation2 SYSTEM &quot;notation2File&quot;&gt;
-   &lt;!ATTLIST p
-        dir CDATA 'rtl'
-        xmlns:dmstc CDATA #IMPLIED
-        xmlns:nm CDATA #IMPLIED
-        xmlns:emp2 CDATA #IMPLIED&gt;
-   &lt;!ATTLIST html
-                   xmlns:xsi CDATA #IMPLIED
-                   xsi:schemaLocation CDATA #IMPLIED&gt;
-   &lt;!ATTLIST acronym xsi:noNamespaceSchemaLocation CDATA #IMPLIED&gt;
-   &lt;!ENTITY ent4 &quot;&lt;span xmlns='http://www.w3.org/1999/xhtml'&gt;Element data&lt;/span&gt;&lt;?PItarget PIdata?&gt;&quot;&gt;
-   &lt;!ATTLIST span xmlns CDATA #IMPLIED&gt;
-]&gt;
-&lt;!-- This is comment number 1.--&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'
-        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-        xsi:schemaLocation=&quot;http://www.w3.org/1999/xhtml hc_staff.xsd&quot;&gt;&lt;head&gt;&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&gt;&lt;title&gt;hc_staff&lt;/title&gt;&lt;script type=&quot;text/javascript&quot; src=&quot;selfxhtml.js&quot;/&gt;&lt;script charset=&quot;UTF-8&quot; type=&quot;text/javascript&quot; src=&quot;nodereplacechild07.js&quot;/&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;loadComplete()&quot;&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0001&lt;/em&gt;
-  &lt;strong&gt;Margaret Martin&lt;/strong&gt;
-  &lt;code&gt;Accountant&lt;/code&gt;
-  &lt;sup&gt;56,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1230 North Ave. Dallas, Texas 98551&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.usa.com&quot;&gt;
-  &lt;em&gt;EMP0002&lt;/em&gt;
-  &lt;strong&gt;Martha Raynolds
-&lt;![CDATA[This is a CDATASection with EntityReference number 2 &amp;ent2;]]&gt;
-&lt;![CDATA[This is an adjacent CDATASection with a reference to a tab &amp;tab;]]&gt;&lt;/strong&gt;
-  &lt;code&gt;Secretary&lt;/code&gt;
-  &lt;sup&gt;35,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;&amp;beta; Dallas, &amp;gamma;
- 98554&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:dmstc=&quot;http://www.netzero.com&quot;&gt;
-  &lt;em&gt;EMP0003&lt;/em&gt;
-  &lt;strong&gt;Roger
- Jones&lt;/strong&gt;
-  &lt;code&gt;Department Manager&lt;/code&gt;
-  &lt;sup&gt;100,000&lt;/sup&gt;
-  &lt;var&gt;&amp;ent4;&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;No&quot; id=&quot;_98553&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;PO Box 27 Irving, texas 98553&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:nm=&quot;http://www.altavista.com&quot;&gt;
-  &lt;em&gt;EMP0004&lt;/em&gt;
-  &lt;strong&gt;Jeny Oconnor&lt;/strong&gt;
-  &lt;code&gt;Personnel Director&lt;/code&gt;
-  &lt;sup&gt;95,000&lt;/sup&gt;
-  &lt;var&gt;Female&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Y&amp;alpha;&quot; id=&quot;_98556&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;27 South Road. Dallas, Texas 98556&lt;/acronym&gt;
- &lt;/p&gt;
- &lt;p xmlns:emp2=&quot;http://www.nist.gov&quot;&gt;
-  &lt;em&gt;EMP0005&lt;/em&gt;
-  &lt;strong&gt;Robert Myers&lt;/strong&gt;
-  &lt;code&gt;Computer Specialist&lt;/code&gt;
-  &lt;sup&gt;90,000&lt;/sup&gt;
-  &lt;var&gt;male&lt;/var&gt;
-  &lt;acronym title=&quot;Yes&quot; class=&quot;Yes&quot; xsi:noNamespaceSchemaLocation=&quot;Yes&quot;&gt;1821 Nordic. Road, Irving Texas 98558&lt;/acronym&gt;
- &lt;/p&gt;
-&lt;/body&gt;&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodereplacechild08xhtmlfromrev211348trunkLayoutTestsdomxhtmllevel3corenodereplacechild08xhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml (from rev 211348, trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml                                (rev 0)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+&lt;!DOCTYPE html [
+&lt;!ENTITY ent1 'foo'&gt;
+&lt;!ENTITY ent2 'foo&lt;br/&gt;'&gt;
+&lt;!ELEMENT html (head, body)&gt;
+&lt;!ATTLIST html xmlns CDATA #IMPLIED&gt;
+&lt;!ELEMENT head (title,script*)&gt;
+&lt;!ELEMENT script (#PCDATA)&gt;
+&lt;!ATTLIST script 
+     src CDATA #IMPLIED
+     type CDATA #IMPLIED
+     charset CDATA #IMPLIED&gt;
+&lt;!ELEMENT title (#PCDATA)&gt;
+&lt;!ELEMENT body (p)&gt;
+&lt;!ATTLIST body onload CDATA #IMPLIED&gt;
+&lt;!ELEMENT p (#PCDATA|br)*&gt;
+&lt;!ELEMENT br EMPTY&gt;
+]&gt;
+&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
+&lt;head&gt;
+&lt;title&gt;replaceWholeText sample&lt;/title&gt;
+&lt;script type='text/javascript' src='selfxhtml.js'&gt;&lt;/script&gt;&lt;script charset='UTF-8' type='text/javascript' src='nodereplacechild08.js'&gt;&lt;/script&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;
+&lt;body onload=&quot;loadComplete()&quot;&gt;
+&lt;p&gt;bar&lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsdomxhtmllevel3corenodereplacechild08xhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/dom/xhtml/level3/core/nodereplacechild08.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,25 +0,0 @@
</span><del>-&lt;!DOCTYPE html [
-&lt;!ENTITY ent1 'foo'&gt;
-&lt;!ENTITY ent2 'foo&lt;br/&gt;'&gt;
-&lt;!ELEMENT html (head, body)&gt;
-&lt;!ATTLIST html xmlns CDATA #IMPLIED&gt;
-&lt;!ELEMENT head (title,script*)&gt;
-&lt;!ELEMENT script (#PCDATA)&gt;
-&lt;!ATTLIST script 
-     src CDATA #IMPLIED
-     type CDATA #IMPLIED
-     charset CDATA #IMPLIED&gt;
-&lt;!ELEMENT title (#PCDATA)&gt;
-&lt;!ELEMENT body (p)&gt;
-&lt;!ATTLIST body onload CDATA #IMPLIED&gt;
-&lt;!ELEMENT p (#PCDATA|br)*&gt;
-&lt;!ELEMENT br EMPTY&gt;
-]&gt;
-&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
-&lt;head&gt;
-&lt;title&gt;replaceWholeText sample&lt;/title&gt;
-&lt;script type='text/javascript' src='selfxhtml.js'&gt;&lt;/script&gt;&lt;script charset='UTF-8' type='text/javascript' src='nodereplacechild08.js'&gt;&lt;/script&gt;&lt;script type='text/javascript'&gt;function loadComplete() { startTest(); }&lt;/script&gt;&lt;/head&gt;
-&lt;body onload=&quot;loadComplete()&quot;&gt;
-&lt;p&gt;bar&lt;/p&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestseditingexecCommandcreatelist1htmlfromrev211348trunkLayoutTestseditingexecCommandcreatelist1htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/editing/execCommand/create-list-1.html (from rev 211348, trunk/LayoutTests/editing/execCommand/create-list-1.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/execCommand/create-list-1.html                                (rev 0)
+++ trunk/LayoutTests/editing/execCommand/create-list-1.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+&lt;p&gt;This tests list creation in an empty line.  The caret should end up in the empty list item.&lt;/p&gt;
+&lt;div contenteditable=&quot;true&quot; id=&quot;div&quot;&gt;Paragraph One.&lt;br&gt;&lt;br&gt;Paragraph Two.&lt;/div&gt;
+
+&lt;script&gt;
+var div = document.getElementById(&quot;div&quot;);
+var sel = window.getSelection();
+
+sel.setPosition(div, 0);
+sel.modify(&quot;move&quot;, &quot;forward&quot;, &quot;line&quot;);
+document.execCommand(&quot;InsertOrderedList&quot;);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestseditingexecCommandcreatelist1htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/editing/execCommand/create-list-1.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/execCommand/create-list-1.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/editing/execCommand/create-list-1.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,11 +0,0 @@
</span><del>-&lt;p&gt;This tests list creation in an empty line.  The caret should end up in the empty list item.&lt;/p&gt;
-&lt;div contenteditable=&quot;true&quot; id=&quot;div&quot;&gt;Paragraph One.&lt;br&gt;&lt;br&gt;Paragraph Two.&lt;/div&gt;
-
-&lt;script&gt;
-var div = document.getElementById(&quot;div&quot;);
-var sel = window.getSelection();
-
-sel.setPosition(div, 0);
-sel.modify(&quot;move&quot;, &quot;forward&quot;, &quot;line&quot;);
-document.execCommand(&quot;InsertOrderedList&quot;);
-&lt;/script&gt;
</del></span></pre></div>
<a id="trunkLayoutTestseditinginputattributedsubstringfromrangelineshtmlfromrev211348trunkLayoutTestseditinginputattributedsubstringfromrangelineshtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html (from rev 211348, trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html                                (rev 0)
+++ trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,130 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+.editing { 
+    margin: 10; padding: 0; 
+}
+&lt;/style&gt;
+&lt;script src=../editing.js language=&quot;JavaScript&quot; type=&quot;text/JavaScript&quot; &gt;&lt;/script&gt;
+
+&lt;script&gt;
+
+function editingTest() {
+    typeCharacterCommand('1');
+    typeCharacterCommand('2');
+    boldCommand();
+    typeCharacterCommand('3');
+    italicCommand();
+    typeCharacterCommand('4');
+    typeCharacterCommand('5');
+    typeCharacterCommand('6');
+    italicCommand();
+    boldCommand();
+    insertParagraphCommand();
+    typeCharacterCommand('l');
+    typeCharacterCommand('i');
+    typeCharacterCommand('n');
+    typeCharacterCommand('e');
+    typeCharacterCommand(' ');
+    typeCharacterCommand('t');
+    typeCharacterCommand('w');
+    typeCharacterCommand('o');
+    insertLineBreakCommand();
+    insertLineBreakCommand();
+    typeCharacterCommand('a');
+    typeCharacterCommand('n');
+    typeCharacterCommand('d');
+    typeCharacterCommand(' ');
+    fontSizeCommand(&quot;6&quot;);
+    underlineCommand();
+    typeCharacterCommand('t');
+    typeCharacterCommand('h');
+    typeCharacterCommand('r');
+    typeCharacterCommand('e');
+    typeCharacterCommand('e');
+    typeCharacterCommand(' ');
+    typeCharacterCommand(' ');
+    typeCharacterCommand(' ');
+    underlineCommand();
+    insertLineBreakCommand();
+}
+
+&lt;/script&gt;
+
+&lt;title&gt;Attributed String Test&lt;/title&gt; 
+&lt;/head&gt;
+&lt;body contenteditable id=&quot;root&quot;&gt;
+&lt;div id=&quot;wrapper&quot;&gt;
+&lt;div class=&quot;editing&quot; id=&quot;test&quot;&gt;&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;script&gt;
+runEditingTest();
+&lt;/script&gt;
+
+&lt;script type=&quot;text/javascript&quot;&gt;
+
+    var console_messages = document.createElement(&quot;ol&quot;);
+    
+    function log(message)
+    {
+        var item = document.createElement(&quot;li&quot;);
+        item.appendChild(document.createTextNode(String(message).replace(/0x[0-9a-fA-F]{8}/g, &quot;0xXXXXXXXX&quot;)));
+        console_messages.appendChild(item);
+    }
+    
+    if (window.testRunner) {
+        
+        try {
+        
+            testRunner.dumpAsText();
+        
+            log(&quot;Actual HTML:&quot;);
+            log(&quot;&lt;pre&gt;&quot; + document.getElementById(&quot;wrapper&quot;).innerHTML + &quot;&lt;/pre&gt;&quot;);
+            window.getSelection().setPosition(document.body, 0);
+
+            log(&quot;(0, 0): &quot; + textInputController.attributedSubstringFromRange(0, 0));
+            log(&quot;(0, 0) length: &quot; + textInputController.attributedSubstringFromRange(0, 0).length());
+            log(&quot;(0, 2): &quot; + textInputController.attributedSubstringFromRange(0, 2));
+            log(&quot;(0, 2) length: &quot; + textInputController.attributedSubstringFromRange(0, 2).length());
+            log(&quot;(1, 2): &quot; + textInputController.attributedSubstringFromRange(1, 2));
+            log(&quot;(1, 2) length: &quot; + textInputController.attributedSubstringFromRange(1, 2).length());
+            log(&quot;(0, 3): &quot; + textInputController.attributedSubstringFromRange(0, 3));
+            log(&quot;(0, 3) length: &quot; + textInputController.attributedSubstringFromRange(0, 3).length());
+            log(&quot;(0, 6): &quot; + textInputController.attributedSubstringFromRange(0, 6));
+            log(&quot;(0, 6) length: &quot; + textInputController.attributedSubstringFromRange(0, 6).length());
+            log(&quot;(0, 7): &quot; + textInputController.attributedSubstringFromRange(0, 7));
+            log(&quot;(0, 7) length: &quot; + textInputController.attributedSubstringFromRange(0, 7).length()); // should be 7 characters!
+            log(&quot;(0, 31): &quot; + textInputController.attributedSubstringFromRange(0, 31));
+            log(&quot;(0, 31) length: &quot; + textInputController.attributedSubstringFromRange(0, 31).length()); // actual length IS 31
+            log(&quot;(0, 100): &quot; + textInputController.attributedSubstringFromRange(0, 100));
+            log(&quot;(0, 100) length: &quot; + textInputController.attributedSubstringFromRange(0, 100).length()); // should be 31 characters!
+            log(&quot;(1, 100): &quot; + textInputController.attributedSubstringFromRange(1, 100));
+            log(&quot;(1, 100) length: &quot; + textInputController.attributedSubstringFromRange(1, 100).length()); // should be 30 characters!
+            log(&quot;(2, 3): &quot; + textInputController.attributedSubstringFromRange(2, 3));
+            log(&quot;(2, 3) length: &quot; + textInputController.attributedSubstringFromRange(2, 3).length());
+            log(&quot;(5, 1): &quot; + textInputController.attributedSubstringFromRange(5, 1));
+            log(&quot;(5, 1) length: &quot; + textInputController.attributedSubstringFromRange(5, 1).length());
+            log(&quot;(5, 2): &quot; + textInputController.attributedSubstringFromRange(5, 2));
+            log(&quot;(5, 2) length: &quot; + textInputController.attributedSubstringFromRange(5, 2).length());
+            log(&quot;(5, 5): &quot; + textInputController.attributedSubstringFromRange(5, 5));
+            log(&quot;(5, 5) length: &quot; + textInputController.attributedSubstringFromRange(5, 5).length());
+            log(&quot;(15, 14): &quot; + textInputController.attributedSubstringFromRange(15, 14));
+            log(&quot;(15, 14) length: &quot; + textInputController.attributedSubstringFromRange(15, 14).length()); // should be 14 characters!
+            log(&quot;(100, 0): &quot; + textInputController.attributedSubstringFromRange(100, 0)); // should be undefined
+            log(&quot;(100, 100): &quot; + textInputController.attributedSubstringFromRange(100, 100)); // should be undefined
+            
+        } catch (ex) {
+            log(&quot;Exception: &quot; + ex.description);
+        }
+        
+        var console = document.createElement(&quot;p&quot;);
+        console.appendChild(console_messages);
+        document.body.appendChild(console);
+        
+    } else {
+        document.write(&quot;(cannot run interactively)&quot;);
+    }
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestseditinginputattributedsubstringfromrangelineshtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/editing/input/attributed-substring-from-range-lines.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,130 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-.editing { 
-    margin: 10; padding: 0; 
-}
-&lt;/style&gt;
-&lt;script src=../editing.js language=&quot;JavaScript&quot; type=&quot;text/JavaScript&quot; &gt;&lt;/script&gt;
-
-&lt;script&gt;
-
-function editingTest() {
-    typeCharacterCommand('1');
-    typeCharacterCommand('2');
-    boldCommand();
-    typeCharacterCommand('3');
-    italicCommand();
-    typeCharacterCommand('4');
-    typeCharacterCommand('5');
-    typeCharacterCommand('6');
-    italicCommand();
-    boldCommand();
-    insertParagraphCommand();
-    typeCharacterCommand('l');
-    typeCharacterCommand('i');
-    typeCharacterCommand('n');
-    typeCharacterCommand('e');
-    typeCharacterCommand(' ');
-    typeCharacterCommand('t');
-    typeCharacterCommand('w');
-    typeCharacterCommand('o');
-    insertLineBreakCommand();
-    insertLineBreakCommand();
-    typeCharacterCommand('a');
-    typeCharacterCommand('n');
-    typeCharacterCommand('d');
-    typeCharacterCommand(' ');
-    fontSizeCommand(&quot;6&quot;);
-    underlineCommand();
-    typeCharacterCommand('t');
-    typeCharacterCommand('h');
-    typeCharacterCommand('r');
-    typeCharacterCommand('e');
-    typeCharacterCommand('e');
-    typeCharacterCommand(' ');
-    typeCharacterCommand(' ');
-    typeCharacterCommand(' ');
-    underlineCommand();
-    insertLineBreakCommand();
-}
-
-&lt;/script&gt;
-
-&lt;title&gt;Attributed String Test&lt;/title&gt; 
-&lt;/head&gt;
-&lt;body contenteditable id=&quot;root&quot;&gt;
-&lt;div id=&quot;wrapper&quot;&gt;
-&lt;div class=&quot;editing&quot; id=&quot;test&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;script&gt;
-runEditingTest();
-&lt;/script&gt;
-
-&lt;script type=&quot;text/javascript&quot;&gt;
-
-    var console_messages = document.createElement(&quot;ol&quot;);
-    
-    function log(message)
-    {
-        var item = document.createElement(&quot;li&quot;);
-        item.appendChild(document.createTextNode(String(message).replace(/0x[0-9a-fA-F]{8}/g, &quot;0xXXXXXXXX&quot;)));
-        console_messages.appendChild(item);
-    }
-    
-    if (window.testRunner) {
-        
-        try {
-        
-            testRunner.dumpAsText();
-        
-            log(&quot;Actual HTML:&quot;);
-            log(&quot;&lt;pre&gt;&quot; + document.getElementById(&quot;wrapper&quot;).innerHTML + &quot;&lt;/pre&gt;&quot;);
-            window.getSelection().setPosition(document.body, 0);
-
-            log(&quot;(0, 0): &quot; + textInputController.attributedSubstringFromRange(0, 0));
-            log(&quot;(0, 0) length: &quot; + textInputController.attributedSubstringFromRange(0, 0).length());
-            log(&quot;(0, 2): &quot; + textInputController.attributedSubstringFromRange(0, 2));
-            log(&quot;(0, 2) length: &quot; + textInputController.attributedSubstringFromRange(0, 2).length());
-            log(&quot;(1, 2): &quot; + textInputController.attributedSubstringFromRange(1, 2));
-            log(&quot;(1, 2) length: &quot; + textInputController.attributedSubstringFromRange(1, 2).length());
-            log(&quot;(0, 3): &quot; + textInputController.attributedSubstringFromRange(0, 3));
-            log(&quot;(0, 3) length: &quot; + textInputController.attributedSubstringFromRange(0, 3).length());
-            log(&quot;(0, 6): &quot; + textInputController.attributedSubstringFromRange(0, 6));
-            log(&quot;(0, 6) length: &quot; + textInputController.attributedSubstringFromRange(0, 6).length());
-            log(&quot;(0, 7): &quot; + textInputController.attributedSubstringFromRange(0, 7));
-            log(&quot;(0, 7) length: &quot; + textInputController.attributedSubstringFromRange(0, 7).length()); // should be 7 characters!
-            log(&quot;(0, 31): &quot; + textInputController.attributedSubstringFromRange(0, 31));
-            log(&quot;(0, 31) length: &quot; + textInputController.attributedSubstringFromRange(0, 31).length()); // actual length IS 31
-            log(&quot;(0, 100): &quot; + textInputController.attributedSubstringFromRange(0, 100));
-            log(&quot;(0, 100) length: &quot; + textInputController.attributedSubstringFromRange(0, 100).length()); // should be 31 characters!
-            log(&quot;(1, 100): &quot; + textInputController.attributedSubstringFromRange(1, 100));
-            log(&quot;(1, 100) length: &quot; + textInputController.attributedSubstringFromRange(1, 100).length()); // should be 30 characters!
-            log(&quot;(2, 3): &quot; + textInputController.attributedSubstringFromRange(2, 3));
-            log(&quot;(2, 3) length: &quot; + textInputController.attributedSubstringFromRange(2, 3).length());
-            log(&quot;(5, 1): &quot; + textInputController.attributedSubstringFromRange(5, 1));
-            log(&quot;(5, 1) length: &quot; + textInputController.attributedSubstringFromRange(5, 1).length());
-            log(&quot;(5, 2): &quot; + textInputController.attributedSubstringFromRange(5, 2));
-            log(&quot;(5, 2) length: &quot; + textInputController.attributedSubstringFromRange(5, 2).length());
-            log(&quot;(5, 5): &quot; + textInputController.attributedSubstringFromRange(5, 5));
-            log(&quot;(5, 5) length: &quot; + textInputController.attributedSubstringFromRange(5, 5).length());
-            log(&quot;(15, 14): &quot; + textInputController.attributedSubstringFromRange(15, 14));
-            log(&quot;(15, 14) length: &quot; + textInputController.attributedSubstringFromRange(15, 14).length()); // should be 14 characters!
-            log(&quot;(100, 0): &quot; + textInputController.attributedSubstringFromRange(100, 0)); // should be undefined
-            log(&quot;(100, 100): &quot; + textInputController.attributedSubstringFromRange(100, 100)); // should be undefined
-            
-        } catch (ex) {
-            log(&quot;Exception: &quot; + ex.description);
-        }
-        
-        var console = document.createElement(&quot;p&quot;);
-        console.appendChild(console_messages);
-        document.body.appendChild(console);
-        
-    } else {
-        document.write(&quot;(cannot run interactively)&quot;);
-    }
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestseditingpasteboardpasteemptystartcontainerhtmlfromrev211348trunkLayoutTestseditingpasteboardpasteemptystartcontainerhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html (from rev 211348, trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html                                (rev 0)
+++ trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,55 @@
</span><ins>+&lt;html&gt; 
+&lt;head&gt;
+
+&lt;style&gt;
+.editing { 
+    border: 2px solid red; 
+    padding: 12px; 
+    font-size: 24px; 
+}
+&lt;/style&gt;
+&lt;script src=../editing.js language=&quot;JavaScript&quot; type=&quot;text/JavaScript&quot; &gt;&lt;/script&gt;
+
+&lt;script&gt;
+
+function editingTest() {
+   extendSelectionForwardByLineCommand();
+   copyCommand();
+   moveSelectionForwardByLineCommand();
+   pasteCommand();
+}
+
+&lt;/script&gt;
+
+&lt;title&gt;Editing Test&lt;/title&gt; 
+&lt;/head&gt; 
+&lt;body&gt;
+
+&lt;div class=&quot;explanation&quot;&gt;
+&lt;div class=&quot;scenario&quot;&gt;
+Tests: 
+&lt;br&gt;
+Fix for this bug: 
+&lt;a href=&quot;rdar://problem/4423922&quot;&gt;&amp;lt;rdar://problem/4045511&amp;gt;&lt;/a&gt; TOT REGRESSION (r12358): second iframe in pair fails to copy
+&lt;/div&gt;
+&lt;div class=&quot;expected-results&quot;&gt;
+Expected Results:
+&lt;br&gt;
+Should see four blank iframes
+&lt;br&gt;
+&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;div contenteditable id=&quot;root&quot; class=&quot;editing&quot;&gt;
+&lt;div id=&quot;test&quot;&gt;
+&lt;iframe style=&quot;border:solid blue 2px&quot;&gt;&lt;/iframe&gt;
+&lt;iframe style=&quot;border:solid green 2px&quot;;&quot;&gt;&lt;/iframe&gt;
+&lt;/DIV&gt;
+&lt;/div&gt;
+
+&lt;script&gt;
+runEditingTest();
+&lt;/script&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestseditingpasteboardpasteemptystartcontainerhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/editing/pasteboard/paste-empty-startcontainer.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,55 +0,0 @@
</span><del>-&lt;html&gt; 
-&lt;head&gt;
-
-&lt;style&gt;
-.editing { 
-    border: 2px solid red; 
-    padding: 12px; 
-    font-size: 24px; 
-}
-&lt;/style&gt;
-&lt;script src=../editing.js language=&quot;JavaScript&quot; type=&quot;text/JavaScript&quot; &gt;&lt;/script&gt;
-
-&lt;script&gt;
-
-function editingTest() {
-   extendSelectionForwardByLineCommand();
-   copyCommand();
-   moveSelectionForwardByLineCommand();
-   pasteCommand();
-}
-
-&lt;/script&gt;
-
-&lt;title&gt;Editing Test&lt;/title&gt; 
-&lt;/head&gt; 
-&lt;body&gt;
-
-&lt;div class=&quot;explanation&quot;&gt;
-&lt;div class=&quot;scenario&quot;&gt;
-Tests: 
-&lt;br&gt;
-Fix for this bug: 
-&lt;a href=&quot;rdar://problem/4423922&quot;&gt;&amp;lt;rdar://problem/4045511&amp;gt;&lt;/a&gt; TOT REGRESSION (r12358): second iframe in pair fails to copy
-&lt;/div&gt;
-&lt;div class=&quot;expected-results&quot;&gt;
-Expected Results:
-&lt;br&gt;
-Should see four blank iframes
-&lt;br&gt;
-&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;div contenteditable id=&quot;root&quot; class=&quot;editing&quot;&gt;
-&lt;div id=&quot;test&quot;&gt;
-&lt;iframe style=&quot;border:solid blue 2px&quot;&gt;&lt;/iframe&gt;
-&lt;iframe style=&quot;border:solid green 2px&quot;;&quot;&gt;&lt;/iframe&gt;
-&lt;/DIV&gt;
-&lt;/div&gt;
-
-&lt;script&gt;
-runEditingTest();
-&lt;/script&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestseditingselectioninconsistentinremoveChildNodehtmlfromrev211348trunkLayoutTestseditingselectioninconsistentinremoveChildNodehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html (from rev 211348, trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html                                (rev 0)
+++ trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,18 @@
</span><ins>+&lt;p&gt;
+    Test for &lt;a href=&quot;rdar://problem/5645813&quot;&gt;rdar://problem/5645813&lt;/a&gt;.
+&lt;/p&gt;
+&lt;div id=&quot;d1&quot;&gt;
+    Selected text
+&lt;/div&gt;
+&lt;div id=&quot;d2&quot;&gt;
+    YOU SHOULD NOT SEE THIS TEXT
+&lt;/div&gt;
+&lt;div id=&quot;d3&quot; style=&quot;background: red; width: 50px; height: 50px;&quot;&gt;
+&lt;/div&gt;
+&lt;script&gt;
+    getSelection().setBaseAndExtent(d1, 0, d2.firstChild, 6);
+    d2.style.display = &quot;none&quot;;
+    document.body.offsetTop;
+    d3.style.display = &quot;none&quot;;
+    d3.parentNode.removeChild(d3);
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestseditingselectioninconsistentinremoveChildNodehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/editing/selection/inconsistent-in-removeChildNode.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-&lt;p&gt;
-    Test for &lt;a href=&quot;rdar://problem/5645813&quot;&gt;rdar://problem/5645813&lt;/a&gt;.
-&lt;/p&gt;
-&lt;div id=&quot;d1&quot;&gt;
-    Selected text
-&lt;/div&gt;
-&lt;div id=&quot;d2&quot;&gt;
-    YOU SHOULD NOT SEE THIS TEXT
-&lt;/div&gt;
-&lt;div id=&quot;d3&quot; style=&quot;background: red; width: 50px; height: 50px;&quot;&gt;
-&lt;/div&gt;
-&lt;script&gt;
-    getSelection().setBaseAndExtent(d1, 0, d2.firstChild, 6);
-    d2.style.display = &quot;none&quot;;
-    document.body.offsetTop;
-    d3.style.display = &quot;none&quot;;
-    d3.parentNode.removeChild(d3);
-&lt;/script&gt;
</del></span></pre></div>
<a id="trunkLayoutTestseditingstyle5091898htmlfromrev211348trunkLayoutTestseditingstyle5091898htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/editing/style/5091898.html (from rev 211348, trunk/LayoutTests/editing/style/5091898.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/style/5091898.html                                (rev 0)
+++ trunk/LayoutTests/editing/style/5091898.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+&lt;html style=&quot;font-family: Times New Roman; font-size: 13px;&quot;&gt;
+&lt;body contenteditable=&quot;true&quot; style=&quot;font-family: Arial; font-weight: bold;&quot;&gt;This text should be Arial bold.&lt;/body&gt;
+&lt;script&gt;
+document.body.focus();
+document.execCommand(&quot;SelectAll&quot;);
+document.execCommand(&quot;Underline&quot;);
+document.execCommand(&quot;Copy&quot;);
+window.getSelection().modify(&quot;move&quot;, &quot;forward&quot;, &quot;character&quot;);
+document.execCommand(&quot;Paste&quot;);
+&lt;/script&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestseditingstyle5091898htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/editing/style/5091898.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/editing/style/5091898.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/editing/style/5091898.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,11 +0,0 @@
</span><del>-&lt;html style=&quot;font-family: Times New Roman; font-size: 13px;&quot;&gt;
-&lt;body contenteditable=&quot;true&quot; style=&quot;font-family: Arial; font-weight: bold;&quot;&gt;This text should be Arial bold.&lt;/body&gt;
-&lt;script&gt;
-document.body.focus();
-document.execCommand(&quot;SelectAll&quot;);
-document.execCommand(&quot;Underline&quot;);
-document.execCommand(&quot;Copy&quot;);
-window.getSelection().modify(&quot;move&quot;, &quot;forward&quot;, &quot;character&quot;);
-document.execCommand(&quot;Paste&quot;);
-&lt;/script&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastcsscss2systemcolorhtmlfromrev211348trunkLayoutTestsfastcsscss2systemcolorhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/css/css2-system-color.html (from rev 211348, trunk/LayoutTests/fast/css/css2-system-color.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/css2-system-color.html                                (rev 0)
+++ trunk/LayoutTests/fast/css/css2-system-color.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,60 @@
</span><ins>+&lt;html&gt;&lt;head&gt;&lt;title&gt;Color Test&lt;/title&gt;
+&lt;style&gt;
+    html { text-align: center; font-size: 10px; font-family: verdana; }
+    .content {
+        border: 1px solid black;
+        margin: 0 auto;
+        text-align: left;
+        width: 750px;
+        padding: 2px 2px 1px 2px;
+    }
+    .box { width: 100%; margin-bottom: 1px; }
+    .box:after {
+        content: &quot; &quot;;
+        display: block;
+        visibility: hidden;
+        clear: both;
+        height: 0.1px;
+        font-size: 0.1em;
+        line-height: 0;
+    }
+    * html .box { display: inline-block; }
+    * html .box { height: 1%; }
+    .box { display: block; }
+    
+    .inner { width: 620px; float: right; }
+    .text { float: left; }
+&lt;/style&gt;
+&lt;/head&gt;&lt;body&gt;
+
+&lt;div class=&quot;content&quot;&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ActiveBorder&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ActiveBorder&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ActiveCaption&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ActiveCaption&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;AppWorkspace&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: AppWorkspace&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;Background&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: Background&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ButtonFace&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ButtonFace&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ButtonHighlight&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ButtonHighlight&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ButtonShadow&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ButtonShadow&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ButtonText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ButtonText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;CaptionText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: CaptionText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;GrayText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: GrayText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;Highlight&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: Highlight&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;HighlightText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: HighlightText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;InactiveBorder&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: InactiveBorder&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;InactiveCaption&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: InactiveCaption&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;InactiveCaptionText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: InactiveCaptionText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;InfoBackground&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: InfoBackground&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;InfoText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: InfoText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;Menu&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: Menu&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;MenuText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: MenuText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;Scrollbar&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: Scrollbar&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ThreeDDarkShadow&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ThreeDDarkShadow&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ThreeDFace&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ThreeDFace&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ThreeDHighlight&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ThreeDHighlight&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ThreeDLightShadow&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ThreeDLightShadow&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ThreeDShadow&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ThreeDShadow&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;Window&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: Window&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;WindowFrame&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: WindowFrame&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;WindowText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: WindowText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
+&lt;/div&gt;
+&lt;/body&gt;&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastcsscss2systemcolorhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/css/css2-system-color.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/css2-system-color.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/css/css2-system-color.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,60 +0,0 @@
</span><del>-&lt;html&gt;&lt;head&gt;&lt;title&gt;Color Test&lt;/title&gt;
-&lt;style&gt;
-    html { text-align: center; font-size: 10px; font-family: verdana; }
-    .content {
-        border: 1px solid black;
-        margin: 0 auto;
-        text-align: left;
-        width: 750px;
-        padding: 2px 2px 1px 2px;
-    }
-    .box { width: 100%; margin-bottom: 1px; }
-    .box:after {
-        content: &quot; &quot;;
-        display: block;
-        visibility: hidden;
-        clear: both;
-        height: 0.1px;
-        font-size: 0.1em;
-        line-height: 0;
-    }
-    * html .box { display: inline-block; }
-    * html .box { height: 1%; }
-    .box { display: block; }
-    
-    .inner { width: 620px; float: right; }
-    .text { float: left; }
-&lt;/style&gt;
-&lt;/head&gt;&lt;body&gt;
-
-&lt;div class=&quot;content&quot;&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ActiveBorder&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ActiveBorder&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ActiveCaption&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ActiveCaption&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;AppWorkspace&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: AppWorkspace&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;Background&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: Background&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ButtonFace&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ButtonFace&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ButtonHighlight&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ButtonHighlight&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ButtonShadow&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ButtonShadow&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ButtonText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ButtonText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;CaptionText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: CaptionText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;GrayText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: GrayText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;Highlight&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: Highlight&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;HighlightText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: HighlightText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;InactiveBorder&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: InactiveBorder&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;InactiveCaption&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: InactiveCaption&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;InactiveCaptionText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: InactiveCaptionText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;InfoBackground&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: InfoBackground&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;InfoText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: InfoText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;Menu&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: Menu&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;MenuText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: MenuText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;Scrollbar&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: Scrollbar&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ThreeDDarkShadow&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ThreeDDarkShadow&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ThreeDFace&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ThreeDFace&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ThreeDHighlight&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ThreeDHighlight&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ThreeDLightShadow&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ThreeDLightShadow&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;ThreeDShadow&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: ThreeDShadow&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;Window&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: Window&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;WindowFrame&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: WindowFrame&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-    &lt;div class=&quot;box&quot;&gt;&lt;div class=&quot;text&quot;&gt;WindowText&lt;/div&gt;&lt;div class=&quot;inner&quot; style=&quot;background-color: WindowText&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
-&lt;/div&gt;
-&lt;/body&gt;&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfastcssfontfaceinshadowDOMhtmlfromrev211348trunkLayoutTestsfastcssfontfaceinshadowDOMhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html (from rev 211348, trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html                                (rev 0)
+++ trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+&lt;style&gt;
+    /* a descendant rule */
+    p &gt; p { }
+    @font-face {
+        font-family: 'remote';
+        src: url(../../resources/Ahem.ttf);
+    }
+&lt;/style&gt;
+&lt;textarea style=&quot;width: 108px; height: 102px; font-family: remote; font-size: 100px; color: green; background-color: red; padding: 0;&quot;&gt;A&lt;/textarea&gt;
+&lt;script&gt;
+    document.body.offsetTop;
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcssfontfaceinshadowDOMhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/css/font-face-in-shadow-DOM.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,12 +0,0 @@
</span><del>-&lt;style&gt;
-    /* a descendant rule */
-    p &gt; p { }
-    @font-face {
-        font-family: 'remote';
-        src: url(../../resources/Ahem.ttf);
-    }
-&lt;/style&gt;
-&lt;textarea style=&quot;width: 108px; height: 102px; font-family: remote; font-size: 100px; color: green; background-color: red; padding: 0;&quot;&gt;A&lt;/textarea&gt;
-&lt;script&gt;
-    document.body.offsetTop;
-&lt;/script&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastcsslimitedvendorprefixbehaviorhtmlfromrev211348trunkLayoutTestsfastcsslimitedvendorprefixbehaviorhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html (from rev 211348, trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html                                (rev 0)
+++ trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt; 
+&lt;html&gt; 
+&lt;head&gt; 
+&lt;style type=&quot;text/css&quot;&gt;&lt;/style&gt; 
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt; 
+&lt;/head&gt; 
+&lt;body&gt;
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;test-no-khtml&quot; style=&quot;-khtml-line-clamp: 10%; -khtml-user-drag: none&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;test-limited-apple&quot; style=&quot;-apple-line-clamp: 10%; -apple-user-drag: none;&quot;&gt;&lt;/div&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt; 
+&lt;script&gt;
+description(&quot;Testing updated vendor-prefix behavior (bug 42093), removal of -khtml and limitation of -apple.&quot;);
+
+shouldBe(&quot;document.getElementById('test-no-khtml').style.getPropertyValue('-khtml-line-clamp')&quot;, &quot;null&quot;);
+shouldBe(&quot;document.getElementById('test-no-khtml').style.getPropertyValue('-webkit-line-clamp')&quot;, &quot;null&quot;);
+shouldBe(&quot;document.getElementById('test-no-khtml').style.getPropertyValue('-khtml-user-drag')&quot;, &quot;null&quot;);
+shouldBe(&quot;document.getElementById('test-no-khtml').style.getPropertyValue('-webkit-user-drag')&quot;, &quot;null&quot;);
+
+shouldBe(&quot;document.getElementById('test-no-khtml').style.khtmlLineClamp&quot;, &quot;undefined&quot;);
+shouldBe(&quot;document.getElementById('test-no-khtml').style.khtmlUserDrag&quot;, &quot;undefined&quot;);
+shouldBe(&quot;document.getElementById('test-no-khtml').style.lineClamp&quot;, &quot;undefined&quot;);
+shouldBe(&quot;document.getElementById('test-no-khtml').style.userDrag&quot;, &quot;undefined&quot;);
+
+shouldBe(&quot;document.getElementById('test-limited-apple').style.getPropertyValue('-apple-line-clamp')&quot;, &quot;'10%'&quot;);
+shouldBe(&quot;document.getElementById('test-limited-apple').style.getPropertyValue('-webkit-line-clamp')&quot;, &quot;'10%'&quot;);
+shouldBe(&quot;document.getElementById('test-limited-apple').style.getPropertyValue('-apple-user-drag')&quot;, &quot;null&quot;);
+shouldBe(&quot;document.getElementById('test-limited-apple').style.getPropertyValue('-webkit-user-drag')&quot;, &quot;null&quot;);
+
+shouldBe(&quot;document.getElementById('test-limited-apple').style.appleLineClamp&quot;, &quot;'10%'&quot;);
+shouldBe(&quot;document.getElementById('test-limited-apple').style.appleUserDrag&quot;, &quot;undefined&quot;);
+&lt;/script&gt;
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt; 
+&lt;/body&gt; 
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastcsslimitedvendorprefixbehaviorhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/css/limited-vendor-prefix-behavior.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,35 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt; 
-&lt;html&gt; 
-&lt;head&gt; 
-&lt;style type=&quot;text/css&quot;&gt;&lt;/style&gt; 
-&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt; 
-&lt;/head&gt; 
-&lt;body&gt;
-&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
-&lt;div id=&quot;test-no-khtml&quot; style=&quot;-khtml-line-clamp: 10%; -khtml-user-drag: none&quot;&gt;&lt;/div&gt;
-&lt;div id=&quot;test-limited-apple&quot; style=&quot;-apple-line-clamp: 10%; -apple-user-drag: none;&quot;&gt;&lt;/div&gt;
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt; 
-&lt;script&gt;
-description(&quot;Testing updated vendor-prefix behavior (bug 42093), removal of -khtml and limitation of -apple.&quot;);
-
-shouldBe(&quot;document.getElementById('test-no-khtml').style.getPropertyValue('-khtml-line-clamp')&quot;, &quot;null&quot;);
-shouldBe(&quot;document.getElementById('test-no-khtml').style.getPropertyValue('-webkit-line-clamp')&quot;, &quot;null&quot;);
-shouldBe(&quot;document.getElementById('test-no-khtml').style.getPropertyValue('-khtml-user-drag')&quot;, &quot;null&quot;);
-shouldBe(&quot;document.getElementById('test-no-khtml').style.getPropertyValue('-webkit-user-drag')&quot;, &quot;null&quot;);
-
-shouldBe(&quot;document.getElementById('test-no-khtml').style.khtmlLineClamp&quot;, &quot;undefined&quot;);
-shouldBe(&quot;document.getElementById('test-no-khtml').style.khtmlUserDrag&quot;, &quot;undefined&quot;);
-shouldBe(&quot;document.getElementById('test-no-khtml').style.lineClamp&quot;, &quot;undefined&quot;);
-shouldBe(&quot;document.getElementById('test-no-khtml').style.userDrag&quot;, &quot;undefined&quot;);
-
-shouldBe(&quot;document.getElementById('test-limited-apple').style.getPropertyValue('-apple-line-clamp')&quot;, &quot;'10%'&quot;);
-shouldBe(&quot;document.getElementById('test-limited-apple').style.getPropertyValue('-webkit-line-clamp')&quot;, &quot;'10%'&quot;);
-shouldBe(&quot;document.getElementById('test-limited-apple').style.getPropertyValue('-apple-user-drag')&quot;, &quot;null&quot;);
-shouldBe(&quot;document.getElementById('test-limited-apple').style.getPropertyValue('-webkit-user-drag')&quot;, &quot;null&quot;);
-
-shouldBe(&quot;document.getElementById('test-limited-apple').style.appleLineClamp&quot;, &quot;'10%'&quot;);
-shouldBe(&quot;document.getElementById('test-limited-apple').style.appleUserDrag&quot;, &quot;undefined&quot;);
-&lt;/script&gt;
-&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt; 
-&lt;/body&gt; 
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowtimeoutreleasedonclosehtmlfromrev211348trunkLayoutTestsfastdomWindowtimeoutreleasedonclosehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html (from rev 211348, trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html                                (rev 0)
+++ trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+&lt;script&gt;
+// The test works by first navigating iframe to a page that allocates a lot of JS objects
+// and then creates a long timeout. Then iframe is navigated to about:blank and the number of JS
+// objects is verified - there should be a significant drop in their number.
+
+var objectCountBefore;
+function start() {
+    if (window.testRunner &amp;&amp; window.GCController) {
+        testRunner.dumpAsText();
+        testRunner.waitUntilDone();
+        window.GCController.collect();
+        objectCountBefore = window.GCController.getJSObjectCount();
+        var iframeElement = document.getElementById(&quot;iframe&quot;);
+        iframeElement.setAttribute(&quot;onload&quot;, &quot;loadBlank()&quot;);
+        iframeElement.src = &quot;resources/long_timeout.html&quot;;
+    }
+}
+
+var objectCountAfterLoad;
+function loadBlank() {
+    window.GCController.collect();
+    objectCountAfterLoad = window.GCController.getJSObjectCount();
+    var iframeElement = document.getElementById(&quot;iframe&quot;);
+    iframeElement.setAttribute(&quot;onload&quot;, &quot;verify()&quot;);
+    iframeElement.src = &quot;about:blank&quot;;
+}
+
+function verify()
+{
+  var allocatedObjects = 1000; // Number of allocated objects in &quot;resources/long_timeout.html&quot;.
+  var threshold = allocatedObjects / 2;
+
+    window.GCController.collect();
+    var objectCountAfter = window.GCController.getJSObjectCount();
+    // Some number of objects is still not released (possibly related to execution of this script).
+    // Use a threshold which is less then the numebr of allocated objects in &quot;resources/long_timeout.html&quot; to account for this.
+    var success = (objectCountAfter - objectCountBefore) &lt; threshold;
+    document.getElementById(&quot;result&quot;).innerText = (success ? &quot;PASS&quot; : &quot;FAIL&quot; +
+                                                                      &quot;, before: &quot; +  objectCountBefore +
+                                                                      &quot;, after load: &quot; + objectCountAfterLoad +
+                                                                      &quot;, after: &quot; + objectCountAfter);
+    testRunner.notifyDone();
+}
+&lt;/script&gt;
+&lt;body onload=&quot;start()&quot;&gt;
+&lt;p&gt;This test verifies that an active timeout that didn't yet fire does not prevent a Document from releasing (bug https://bugs.webkit.org/show_bug.cgi?id=22710). Test can only run in DumpRenderTree since it needs GCController. Test is successful if it prints 'PASS'.&lt;/p&gt;
+&lt;div id=&quot;result&quot;&gt;&lt;/div&gt;
+&lt;iframe id=&quot;iframe&quot;&gt;&lt;/iframe&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowtimeoutreleasedonclosehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/dom/Window/timeout-released-on-close.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,49 +0,0 @@
</span><del>-&lt;script&gt;
-// The test works by first navigating iframe to a page that allocates a lot of JS objects
-// and then creates a long timeout. Then iframe is navigated to about:blank and the number of JS
-// objects is verified - there should be a significant drop in their number.
-
-var objectCountBefore;
-function start() {
-    if (window.testRunner &amp;&amp; window.GCController) {
-        testRunner.dumpAsText();
-        testRunner.waitUntilDone();
-        window.GCController.collect();
-        objectCountBefore = window.GCController.getJSObjectCount();
-        var iframeElement = document.getElementById(&quot;iframe&quot;);
-        iframeElement.setAttribute(&quot;onload&quot;, &quot;loadBlank()&quot;);
-        iframeElement.src = &quot;resources/long_timeout.html&quot;;
-    }
-}
-
-var objectCountAfterLoad;
-function loadBlank() {
-    window.GCController.collect();
-    objectCountAfterLoad = window.GCController.getJSObjectCount();
-    var iframeElement = document.getElementById(&quot;iframe&quot;);
-    iframeElement.setAttribute(&quot;onload&quot;, &quot;verify()&quot;);
-    iframeElement.src = &quot;about:blank&quot;;
-}
-
-function verify()
-{
-  var allocatedObjects = 1000; // Number of allocated objects in &quot;resources/long_timeout.html&quot;.
-  var threshold = allocatedObjects / 2;
-
-    window.GCController.collect();
-    var objectCountAfter = window.GCController.getJSObjectCount();
-    // Some number of objects is still not released (possibly related to execution of this script).
-    // Use a threshold which is less then the numebr of allocated objects in &quot;resources/long_timeout.html&quot; to account for this.
-    var success = (objectCountAfter - objectCountBefore) &lt; threshold;
-    document.getElementById(&quot;result&quot;).innerText = (success ? &quot;PASS&quot; : &quot;FAIL&quot; +
-                                                                      &quot;, before: &quot; +  objectCountBefore +
-                                                                      &quot;, after load: &quot; + objectCountAfterLoad +
-                                                                      &quot;, after: &quot; + objectCountAfter);
-    testRunner.notifyDone();
-}
-&lt;/script&gt;
-&lt;body onload=&quot;start()&quot;&gt;
-&lt;p&gt;This test verifies that an active timeout that didn't yet fire does not prevent a Document from releasing (bug https://bugs.webkit.org/show_bug.cgi?id=22710). Test can only run in DumpRenderTree since it needs GCController. Test is successful if it prints 'PASS'.&lt;/p&gt;
-&lt;div id=&quot;result&quot;&gt;&lt;/div&gt;
-&lt;iframe id=&quot;iframe&quot;&gt;&lt;/iframe&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowwindowresizenanhtmlfromrev211348trunkLayoutTestsfastdomWindowwindowresizenanhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/dom/Window/window-resize-nan.html (from rev 211348, trunk/LayoutTests/fast/dom/Window/window-resize-nan.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/window-resize-nan.html                                (rev 0)
+++ trunk/LayoutTests/fast/dom/Window/window-resize-nan.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,151 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+    &lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;script language=&quot;JavaScript&quot; type=&quot;text/javascript&quot;&gt;
+        // FIXME Disabled because of &lt;rdar://problem/5569119&gt;
+
+    if (window.testRunner)
+        testRunner.dumpAsText();
+
+    window.moveTo(0, 0);
+
+    description(&quot;This test makes sure that we cannot set the parameter of a \
+    window to NaN, causing unpredicable results&quot;);
+
+    var result;
+    var testName;
+    var x;
+    var y;
+    var badNum = &quot;NaN&quot;;
+    var defaultSize = 500;
+    var defaultLocation = 0;
+
+    // initialize window to a known size
+    x = defaultSize;
+    y = defaultSize;
+    window.resizeTo(x, y);
+
+    // resizeTo /////////////////////////
+    debug('');
+    debug('window.resizeTo Tests');
+    debug('');
+
+    x = badNum;
+    y = defaultSize;
+    window.resizeTo(x, y);
+    debug(&quot;Testing - resizeTo: Bad width input&quot;);
+    shouldBe('window.outerWidth', 'defaultSize');
+    shouldBe('window.outerHeight', 'defaultSize');
+
+    debug('');
+
+    x = defaultSize;
+    y = badNum;
+    window.resizeTo(x, y);
+    debug(&quot;Testing - resizeTo: Bad height input&quot;);
+    shouldBe('window.outerWidth', 'defaultSize');
+    shouldBe('window.outerHeight', 'defaultSize');
+    
+    debug('');
+
+    x = badNum;
+    y = badNum;
+    window.resizeTo(x, y);
+    debug(&quot;Testing - resizeTo: Bad width and height input&quot;);
+    shouldBe('window.outerWidth', 'defaultSize');
+    shouldBe('window.outerHeight', 'defaultSize');
+
+    // resizeBy /////////////////////////
+    debug('');
+    debug('window.resizeBy Tests');
+    debug('');
+
+    x = badNum;
+    y = 100;
+    window.resizeBy(x, y);
+    debug(&quot;Testing - resizeBy: Bad width input&quot;);
+    shouldBe('window.outerWidth', 'defaultSize');
+    shouldBe('window.outerHeight', 'defaultSize + y');
+
+    debug('');
+    window.resizeTo(defaultSize, defaultSize);
+
+    x = 100;
+    y = badNum;
+    window.resizeBy(x, y);
+    debug(&quot;Testing - resizeBy: Bad height input&quot;);
+    shouldBe('window.outerWidth', 'defaultSize + x');
+    shouldBe('window.outerHeight', 'defaultSize');
+
+    // moveTo /////////////////////////
+    debug('');
+    debug('window.moveTo Tests');
+    debug('');
+    window.moveTo(screen.availLeft, screen.availTop);
+
+    x = badNum;
+    y = screen.availTop + 100;
+    window.moveTo(x, y);
+    debug(&quot;Testing - moveTo: Bad x input&quot;);
+    shouldBe('window.screenY', 'y + (screen.availTop * 2)'); // FIXME this should be just y
+    shouldBe('window.screenX', 'screen.availLeft');
+
+    debug('');
+    window.moveTo(screen.availLeft, screen.availTop);
+
+    x = screen.availLeft + 100;
+    y = badNum;
+    window.moveTo(x, y);
+    debug(&quot;Testing - moveTo: Bad y input&quot;);
+    shouldBe('window.screenY', 'screen.availTop * 2'); // FIXME this should just be screen.availTop
+    shouldBe('window.screenX', 'x');
+
+    debug('');
+    window.moveTo(screen.availLeft, screen.availTop);
+
+    x = badNum;
+    y = badNum;
+    window.moveTo(x, y);
+    debug(&quot;Testing - moveTo: Bad x and y input&quot;);
+    shouldBe('window.screenY', 'screen.availTop * 2'); // FIXME this should just be screen.availTop
+    shouldBe('window.screenX', 'screen.availLeft');
+
+    // moveBy /////////////////////////
+    debug('');
+    debug('window.moveBy Tests');
+    debug('');
+    window.moveTo(screen.availLeft, screen.availTop);
+
+    x = badNum;
+    y = 100;
+    window.moveBy(x, y);
+    debug(&quot;Testing - moveBy: Bad x input&quot;);
+    shouldBe('window.screenY', '(screen.availTop * 4) + y'); // FIXME this should just be screen.availTop + y
+    shouldBe('window.screenX', 'screen.availLeft');
+
+    debug('');
+    window.moveTo(screen.availLeft, screen.availTop);
+
+    x = 100;
+    y = badNum;
+    window.moveBy(x, y);
+    debug(&quot;Testing - moveBy: Bad y input&quot;);
+    shouldBe('window.screenY', 'screen.availTop * 4'); // FIXME this should just be screen.availTop
+    shouldBe('window.screenX', 'screen.availLeft + x');
+
+    debug('');
+    window.moveTo(screen.availLeft, screen.availTop);
+
+    x = badNum;
+    y = badNum;
+    window.moveBy(x, y);
+    debug(&quot;Testing - moveBy: Bad x and y input&quot;);
+    shouldBe('window.screenY', 'screen.availTop * 4'); // FIXME this should just be screen.availTop
+    shouldBe('window.screenX', 'screen.availLeft');
+&lt;/script&gt;
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomWindowwindowresizenanhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/Window/window-resize-nan.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/Window/window-resize-nan.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/dom/Window/window-resize-nan.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,151 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
-&lt;html&gt;
-&lt;head&gt;
-    &lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;script language=&quot;JavaScript&quot; type=&quot;text/javascript&quot;&gt;
-        // FIXME Disabled because of &lt;rdar://problem/5569119&gt;
-
-    if (window.testRunner)
-        testRunner.dumpAsText();
-
-    window.moveTo(0, 0);
-
-    description(&quot;This test makes sure that we cannot set the parameter of a \
-    window to NaN, causing unpredicable results&quot;);
-
-    var result;
-    var testName;
-    var x;
-    var y;
-    var badNum = &quot;NaN&quot;;
-    var defaultSize = 500;
-    var defaultLocation = 0;
-
-    // initialize window to a known size
-    x = defaultSize;
-    y = defaultSize;
-    window.resizeTo(x, y);
-
-    // resizeTo /////////////////////////
-    debug('');
-    debug('window.resizeTo Tests');
-    debug('');
-
-    x = badNum;
-    y = defaultSize;
-    window.resizeTo(x, y);
-    debug(&quot;Testing - resizeTo: Bad width input&quot;);
-    shouldBe('window.outerWidth', 'defaultSize');
-    shouldBe('window.outerHeight', 'defaultSize');
-
-    debug('');
-
-    x = defaultSize;
-    y = badNum;
-    window.resizeTo(x, y);
-    debug(&quot;Testing - resizeTo: Bad height input&quot;);
-    shouldBe('window.outerWidth', 'defaultSize');
-    shouldBe('window.outerHeight', 'defaultSize');
-    
-    debug('');
-
-    x = badNum;
-    y = badNum;
-    window.resizeTo(x, y);
-    debug(&quot;Testing - resizeTo: Bad width and height input&quot;);
-    shouldBe('window.outerWidth', 'defaultSize');
-    shouldBe('window.outerHeight', 'defaultSize');
-
-    // resizeBy /////////////////////////
-    debug('');
-    debug('window.resizeBy Tests');
-    debug('');
-
-    x = badNum;
-    y = 100;
-    window.resizeBy(x, y);
-    debug(&quot;Testing - resizeBy: Bad width input&quot;);
-    shouldBe('window.outerWidth', 'defaultSize');
-    shouldBe('window.outerHeight', 'defaultSize + y');
-
-    debug('');
-    window.resizeTo(defaultSize, defaultSize);
-
-    x = 100;
-    y = badNum;
-    window.resizeBy(x, y);
-    debug(&quot;Testing - resizeBy: Bad height input&quot;);
-    shouldBe('window.outerWidth', 'defaultSize + x');
-    shouldBe('window.outerHeight', 'defaultSize');
-
-    // moveTo /////////////////////////
-    debug('');
-    debug('window.moveTo Tests');
-    debug('');
-    window.moveTo(screen.availLeft, screen.availTop);
-
-    x = badNum;
-    y = screen.availTop + 100;
-    window.moveTo(x, y);
-    debug(&quot;Testing - moveTo: Bad x input&quot;);
-    shouldBe('window.screenY', 'y + (screen.availTop * 2)'); // FIXME this should be just y
-    shouldBe('window.screenX', 'screen.availLeft');
-
-    debug('');
-    window.moveTo(screen.availLeft, screen.availTop);
-
-    x = screen.availLeft + 100;
-    y = badNum;
-    window.moveTo(x, y);
-    debug(&quot;Testing - moveTo: Bad y input&quot;);
-    shouldBe('window.screenY', 'screen.availTop * 2'); // FIXME this should just be screen.availTop
-    shouldBe('window.screenX', 'x');
-
-    debug('');
-    window.moveTo(screen.availLeft, screen.availTop);
-
-    x = badNum;
-    y = badNum;
-    window.moveTo(x, y);
-    debug(&quot;Testing - moveTo: Bad x and y input&quot;);
-    shouldBe('window.screenY', 'screen.availTop * 2'); // FIXME this should just be screen.availTop
-    shouldBe('window.screenX', 'screen.availLeft');
-
-    // moveBy /////////////////////////
-    debug('');
-    debug('window.moveBy Tests');
-    debug('');
-    window.moveTo(screen.availLeft, screen.availTop);
-
-    x = badNum;
-    y = 100;
-    window.moveBy(x, y);
-    debug(&quot;Testing - moveBy: Bad x input&quot;);
-    shouldBe('window.screenY', '(screen.availTop * 4) + y'); // FIXME this should just be screen.availTop + y
-    shouldBe('window.screenX', 'screen.availLeft');
-
-    debug('');
-    window.moveTo(screen.availLeft, screen.availTop);
-
-    x = 100;
-    y = badNum;
-    window.moveBy(x, y);
-    debug(&quot;Testing - moveBy: Bad y input&quot;);
-    shouldBe('window.screenY', 'screen.availTop * 4'); // FIXME this should just be screen.availTop
-    shouldBe('window.screenX', 'screen.availLeft + x');
-
-    debug('');
-    window.moveTo(screen.availLeft, screen.availTop);
-
-    x = badNum;
-    y = badNum;
-    window.moveBy(x, y);
-    debug(&quot;Testing - moveBy: Bad x and y input&quot;);
-    shouldBe('window.screenY', 'screen.availTop * 4'); // FIXME this should just be screen.availTop
-    shouldBe('window.screenX', 'screen.availLeft');
-&lt;/script&gt;
-&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastdomgc8htmlfromrev211348trunkLayoutTestsfastdomgc8htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/dom/gc-8.html (from rev 211348, trunk/LayoutTests/fast/dom/gc-8.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/gc-8.html                                (rev 0)
+++ trunk/LayoutTests/fast/dom/gc-8.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,46 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;script&gt;
+function print(message, color) 
+{
+    var paragraph = document.createElement(&quot;div&quot;);
+    paragraph.appendChild(document.createTextNode(message));
+    paragraph.style.fontFamily = &quot;monospace&quot;;
+    if (color)
+        paragraph.style.color = color;
+    document.getElementById(&quot;console&quot;).appendChild(paragraph);
+}
+
+function test() 
+{
+    if (!window.testRunner) {
+        print(&quot;FAIL: This test can only run from inside DumpRenderTree.&quot;, &quot;red&quot;);
+        return;
+    }
+
+    testRunner.dumpAsText();
+    testRunner.waitUntilDone();
+    
+    document.body.style.myCustomProperty = new String(&quot;1&quot;);
+    new Date(); // allocate another object to create heap entropy
+    // Collecting on a timeout seems to make the crash more reproducible -- not exactly sure why
+    setTimeout('GCController.collectOnAlternateThread(true);', 0);
+    setTimeout('document.body.style.myCustomProperty; print(&quot;PASS: you didn\'t crash&quot;); testRunner.notifyDone();', 1);
+    
+    // fail-safe
+    setTimeout('print(&quot;FAIL: Test hung -- bailing out&quot;); testRunner.notifyDone();', 2);
+}
+
+&lt;/script&gt;
+&lt;/head&gt;
+
+&lt;body onload=&quot;test();&quot;&gt;
+&lt;p&gt;This page tests for a crash when accessing a custom property on a DOM object after the garbage collector
+   has run on an alternate thread.&lt;/p&gt;
+&lt;p&gt;If the test passes, you'll see a 'PASS' message below.&lt;/p&gt;
+&lt;hr&gt;
+
+&lt;div id='console'&gt;&lt;/div&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdomgc8htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dom/gc-8.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/gc-8.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/dom/gc-8.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,46 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;script&gt;
-function print(message, color) 
-{
-    var paragraph = document.createElement(&quot;div&quot;);
-    paragraph.appendChild(document.createTextNode(message));
-    paragraph.style.fontFamily = &quot;monospace&quot;;
-    if (color)
-        paragraph.style.color = color;
-    document.getElementById(&quot;console&quot;).appendChild(paragraph);
-}
-
-function test() 
-{
-    if (!window.testRunner) {
-        print(&quot;FAIL: This test can only run from inside DumpRenderTree.&quot;, &quot;red&quot;);
-        return;
-    }
-
-    testRunner.dumpAsText();
-    testRunner.waitUntilDone();
-    
-    document.body.style.myCustomProperty = new String(&quot;1&quot;);
-    new Date(); // allocate another object to create heap entropy
-    // Collecting on a timeout seems to make the crash more reproducible -- not exactly sure why
-    setTimeout('GCController.collectOnAlternateThread(true);', 0);
-    setTimeout('document.body.style.myCustomProperty; print(&quot;PASS: you didn\'t crash&quot;); testRunner.notifyDone();', 1);
-    
-    // fail-safe
-    setTimeout('print(&quot;FAIL: Test hung -- bailing out&quot;); testRunner.notifyDone();', 2);
-}
-
-&lt;/script&gt;
-&lt;/head&gt;
-
-&lt;body onload=&quot;test();&quot;&gt;
-&lt;p&gt;This page tests for a crash when accessing a custom property on a DOM object after the garbage collector
-   has run on an alternate thread.&lt;/p&gt;
-&lt;p&gt;If the test passes, you'll see a 'PASS' message below.&lt;/p&gt;
-&lt;hr&gt;
-
-&lt;div id='console'&gt;&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastdynamiccrashpaintnodocumentElementrendererhtmlfromrev211348trunkLayoutTestsfastdynamiccrashpaintnodocumentElementrendererhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html (from rev 211348, trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html                                (rev 0)
+++ trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,20 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;body onload=&quot;go()&quot;&gt;
+&lt;p&gt;Bug 64284: Crash in RenderBox::paintBoxDecorations when documentElement has no renderer&lt;/p&gt;
+&lt;p&gt;For this test to PASS, it should not ASSERT or CRASH.&lt;/p&gt;
+&lt;script&gt;
+    if (window.testRunner)
+        testRunner.dumpAsText();
+
+    function go() {
+        document.open();
+        var oUElement = document.createElement(&quot;U&quot;);
+        oUElement.hidden=true;
+        oUElement.innerHTML=&quot;&lt;style&gt;*{-webkit-border-before-style:groove}&quot;;
+        document.appendChild(oUElement);
+        document.close();
+    }
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastdynamiccrashpaintnodocumentElementrendererhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/dynamic/crash-paint-no-documentElement-renderer.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,20 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;body onload=&quot;go()&quot;&gt;
-&lt;p&gt;Bug 64284: Crash in RenderBox::paintBoxDecorations when documentElement has no renderer&lt;/p&gt;
-&lt;p&gt;For this test to PASS, it should not ASSERT or CRASH.&lt;/p&gt;
-&lt;script&gt;
-    if (window.testRunner)
-        testRunner.dumpAsText();
-
-    function go() {
-        document.open();
-        var oUElement = document.createElement(&quot;U&quot;);
-        oUElement.hidden=true;
-        oUElement.innerHTML=&quot;&lt;style&gt;*{-webkit-border-before-style:groove}&quot;;
-        document.appendChild(oUElement);
-        document.close();
-    }
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventsdestroyedatomicstringhtmlfromrev211348trunkLayoutTestsfasteventsdestroyedatomicstringhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/destroyed-atomic-string.html (from rev 211348, trunk/LayoutTests/fast/events/destroyed-atomic-string.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/destroyed-atomic-string.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/destroyed-atomic-string.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,84 @@
</span><ins>+&lt;body&gt;
+&lt;p&gt;Test that adding an event listener for an event with a unique name works correctly (this used to corrupt event listener map after GC).&lt;/p&gt;
+&lt;pre id=log&gt;&lt;/pre&gt;
+
+&lt;script&gt;
+function gc()
+{
+    if (window.GCController)
+        return GCController.collect();
+
+    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
+        var s = new String(&quot;abc&quot;);
+    }
+}
+
+function log(message)
+{
+    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+}
+
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+var listenerCallCount = 0;
+var expectedListenerCallCount = 0;
+function listener()
+{
+    ++listenerCallCount;
+}
+
+function addListener(targetName, name)
+{
+    var target;
+    try {
+        target = eval(targetName);
+        eval(target).addEventListener(name, listener, true);
+        ++expectedListenerCallCount;
+    } catch (ex) {
+        log((target ? target : targetName) + &quot; is not supported, or cannot be used to register arbitrary event handlers.&quot;);
+    }
+}
+
+function dispatchEvent(target, name)
+{
+    try {
+        var evt = document.createEvent(&quot;MessageEvent&quot;);
+        evt.initMessageEvent(name);
+        eval(target).dispatchEvent(evt);
+    } catch (ex) {
+    }
+}
+
+var xhr = new XMLHttpRequest;
+addListener(&quot;xhr&quot;, &quot;foo1&quot;);
+addListener(&quot;xhr.upload&quot;, &quot;foo2&quot;);
+addListener(&quot;window.applicationCache&quot;, &quot;foo3&quot;);
+var channel;
+try {
+    channel = new MessageChannel;
+    channel.port1.addEventListener(&quot;foo4&quot;, listener, true);
+    ++expectedListenerCallCount;
+} catch (ex) {
+    log(&quot;MessageChannel is not supported, or cannot be used to register arbitrary event handlers.&quot;);
+}
+// window.dispatchEvent is currently unimplemented.
+// window.addEventListener(&quot;foo5&quot;, listener, true);
+// ++expectedListenerCallCount;
+document.body.addEventListener(&quot;foo6&quot;, listener, true);
+++expectedListenerCallCount;
+
+gc();
+
+dispatchEvent(&quot;xhr&quot;, &quot;foo1&quot;);
+dispatchEvent(&quot;xhr.upload&quot;, &quot;foo2&quot;);
+dispatchEvent(&quot;window.applicationCache&quot;, &quot;foo3&quot;);
+dispatchEvent(&quot;channel.port1&quot;, &quot;foo4&quot;);
+dispatchEvent(&quot;window&quot;, &quot;foo5&quot;);
+dispatchEvent(&quot;document.body&quot;, &quot;foo6&quot;);
+
+gc();
+
+log((listenerCallCount == expectedListenerCallCount) ? &quot;PASS&quot; : &quot;FAIL&quot;);
+&lt;/script&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventsdestroyedatomicstringhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/destroyed-atomic-string.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/destroyed-atomic-string.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/events/destroyed-atomic-string.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,84 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test that adding an event listener for an event with a unique name works correctly (this used to corrupt event listener map after GC).&lt;/p&gt;
-&lt;pre id=log&gt;&lt;/pre&gt;
-
-&lt;script&gt;
-function gc()
-{
-    if (window.GCController)
-        return GCController.collect();
-
-    for (var i = 0; i &lt; 10000; i++) { // &gt; force garbage collection (FF requires about 9K allocations before a collect)
-        var s = new String(&quot;abc&quot;);
-    }
-}
-
-function log(message)
-{
-    document.getElementById(&quot;log&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-var listenerCallCount = 0;
-var expectedListenerCallCount = 0;
-function listener()
-{
-    ++listenerCallCount;
-}
-
-function addListener(targetName, name)
-{
-    var target;
-    try {
-        target = eval(targetName);
-        eval(target).addEventListener(name, listener, true);
-        ++expectedListenerCallCount;
-    } catch (ex) {
-        log((target ? target : targetName) + &quot; is not supported, or cannot be used to register arbitrary event handlers.&quot;);
-    }
-}
-
-function dispatchEvent(target, name)
-{
-    try {
-        var evt = document.createEvent(&quot;MessageEvent&quot;);
-        evt.initMessageEvent(name);
-        eval(target).dispatchEvent(evt);
-    } catch (ex) {
-    }
-}
-
-var xhr = new XMLHttpRequest;
-addListener(&quot;xhr&quot;, &quot;foo1&quot;);
-addListener(&quot;xhr.upload&quot;, &quot;foo2&quot;);
-addListener(&quot;window.applicationCache&quot;, &quot;foo3&quot;);
-var channel;
-try {
-    channel = new MessageChannel;
-    channel.port1.addEventListener(&quot;foo4&quot;, listener, true);
-    ++expectedListenerCallCount;
-} catch (ex) {
-    log(&quot;MessageChannel is not supported, or cannot be used to register arbitrary event handlers.&quot;);
-}
-// window.dispatchEvent is currently unimplemented.
-// window.addEventListener(&quot;foo5&quot;, listener, true);
-// ++expectedListenerCallCount;
-document.body.addEventListener(&quot;foo6&quot;, listener, true);
-++expectedListenerCallCount;
-
-gc();
-
-dispatchEvent(&quot;xhr&quot;, &quot;foo1&quot;);
-dispatchEvent(&quot;xhr.upload&quot;, &quot;foo2&quot;);
-dispatchEvent(&quot;window.applicationCache&quot;, &quot;foo3&quot;);
-dispatchEvent(&quot;channel.port1&quot;, &quot;foo4&quot;);
-dispatchEvent(&quot;window&quot;, &quot;foo5&quot;);
-dispatchEvent(&quot;document.body&quot;, &quot;foo6&quot;);
-
-gc();
-
-log((listenerCallCount == expectedListenerCallCount) ? &quot;PASS&quot; : &quot;FAIL&quot;);
-&lt;/script&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasteventskeyeventsinframehtmlfromrev211348trunkLayoutTestsfasteventskeyeventsinframehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/events/key-events-in-frame.html (from rev 211348, trunk/LayoutTests/fast/events/key-events-in-frame.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/key-events-in-frame.html                                (rev 0)
+++ trunk/LayoutTests/fast/events/key-events-in-frame.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+&lt;div&gt;
+    This tests that key events targeting a frame do not propagate up the frame tree.  This will only produce output if the test fails.
+    &lt;br /&gt;
+    To test manually click in the empty frame and press any key. If you receive any output the test has failed.
+&lt;/div&gt;
+&lt;pre id=&quot;log&quot;&gt;&lt;/pre&gt;
+&lt;iframe id=&quot;targetFrame&quot; src=&quot;data:text/html,&quot;&gt;&lt;/iframe&gt;
+&lt;script&gt;
+onkeydown=function(){document.getElementById(&quot;log&quot;).innerHTML += 'FAIL: outerFrame received keydown\n'; };
+onkeypress=function(){document.getElementById(&quot;log&quot;).innerHTML += 'FAIL: outerFrame received keypress\n'; };
+onkeyup=function(){document.getElementById(&quot;log&quot;).innerHTML += 'FAIL: outerFrame received keyup\n'; };
+document.getElementById(&quot;targetFrame&quot;).focus();
+if (window.testRunner) {
+    testRunner.dumpAsText();
+    eventSender.keyDown(&quot;a&quot;);
+}
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasteventskeyeventsinframehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/events/key-events-in-frame.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/events/key-events-in-frame.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/events/key-events-in-frame.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,17 +0,0 @@
</span><del>-&lt;div&gt;
-    This tests that key events targeting a frame do not propagate up the frame tree.  This will only produce output if the test fails.
-    &lt;br /&gt;
-    To test manually click in the empty frame and press any key. If you receive any output the test has failed.
-&lt;/div&gt;
-&lt;pre id=&quot;log&quot;&gt;&lt;/pre&gt;
-&lt;iframe id=&quot;targetFrame&quot; src=&quot;data:text/html,&quot;&gt;&lt;/iframe&gt;
-&lt;script&gt;
-onkeydown=function(){document.getElementById(&quot;log&quot;).innerHTML += 'FAIL: outerFrame received keydown\n'; };
-onkeypress=function(){document.getElementById(&quot;log&quot;).innerHTML += 'FAIL: outerFrame received keypress\n'; };
-onkeyup=function(){document.getElementById(&quot;log&quot;).innerHTML += 'FAIL: outerFrame received keyup\n'; };
-document.getElementById(&quot;targetFrame&quot;).focus();
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    eventSender.keyDown(&quot;a&quot;);
-}
-&lt;/script&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastframesiframescrollpageupdownhtmlfromrev211348trunkLayoutTestsfastframesiframescrollpageupdownhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html (from rev 211348, trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html                                (rev 0)
+++ trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,69 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;script&gt;
+function test() 
+{
+    if (!window.testRunner)
+        return;
+
+    if (window.testRunner)
+        testRunner.dumpAsText();
+
+    // 1st test: iframes scrolled to top, top level document scrolled to bottom
+    // pageup in innermost iframe should scroll top level document up
+    window[0][0].scrollTo(0,0);
+    window[0].scrollTo(0,0);
+    window.scrollTo(0, document.body.offsetHeight);
+    var oldScrollTop = document.body.scrollTop;
+    var focus1 = window[0][0].document.getElementById(&quot;focus1&quot;);
+    focus1.focus();    
+    eventSender.keyDown(&quot;pageUp&quot;);
+    var test1Passed = false;
+    if (document.body.scrollTop &lt; oldScrollTop)
+        test1Passed = true;
+
+    // 2nd test: iframes scrolled to bottom, top level document scrolled to top
+    // pagedown in innermost iframe should scroll top level document down
+    window[0][0].scrollTo(0,window[0][0].document.body.offsetHeight);
+    window[0].scrollTo(0,window[0].document.body.offsetHeight);
+    window.scrollTo(0, 0);
+    oldScrollTop = document.body.scrollTop
+    var focus2 = window[0][0].document.getElementById(&quot;focus2&quot;);
+    focus2.focus();
+    eventSender.keyDown(&quot;pageDown&quot;);
+    var test2Passed = false;
+    if (document.body.scrollTop &gt; oldScrollTop)
+        test2Passed = true;
+
+    printResults(test1Passed, test2Passed);
+}
+
+function printResults(test1Passed, test2Passed) 
+{
+    var console = document.createElement(&quot;div&quot;);
+    if (test1Passed)
+        console.innerHTML = &quot;PASSED test 1&quot;;
+    else
+        console.innerHTML = &quot;FAILED test 1&quot;;
+    console.innerHTML += &quot;&lt;br&gt;&quot;;
+    if (test2Passed)
+        console.innerHTML += &quot;PASSED test 2&quot;;
+    else
+        console.innerHTML += &quot;FAILED test 2&quot;;
+
+    document.body.appendChild(console);
+        
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;window.resizeTo(500,587); test();&quot;&gt;
+&lt;div id=&quot;testDiv&quot;&gt;
+top
+&lt;br&gt;
+&lt;div style=&quot;height:200px&quot;&gt;&lt;/div&gt;
+&lt;iframe id=&quot;frame&quot; width=&quot;450px&quot; height=&quot;235px&quot; src=&quot;./resources/iframe-scroll-page-up-down-1.html&quot;&gt;&lt;/iframe&gt;
+&lt;div style=&quot;height:200px&quot;&gt;&lt;/div&gt;
+bottom
+&lt;/div&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastframesiframescrollpageupdownhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/frames/iframe-scroll-page-up-down.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,69 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;script&gt;
-function test() 
-{
-    if (!window.testRunner)
-        return;
-
-    if (window.testRunner)
-        testRunner.dumpAsText();
-
-    // 1st test: iframes scrolled to top, top level document scrolled to bottom
-    // pageup in innermost iframe should scroll top level document up
-    window[0][0].scrollTo(0,0);
-    window[0].scrollTo(0,0);
-    window.scrollTo(0, document.body.offsetHeight);
-    var oldScrollTop = document.body.scrollTop;
-    var focus1 = window[0][0].document.getElementById(&quot;focus1&quot;);
-    focus1.focus();    
-    eventSender.keyDown(&quot;pageUp&quot;);
-    var test1Passed = false;
-    if (document.body.scrollTop &lt; oldScrollTop)
-        test1Passed = true;
-
-    // 2nd test: iframes scrolled to bottom, top level document scrolled to top
-    // pagedown in innermost iframe should scroll top level document down
-    window[0][0].scrollTo(0,window[0][0].document.body.offsetHeight);
-    window[0].scrollTo(0,window[0].document.body.offsetHeight);
-    window.scrollTo(0, 0);
-    oldScrollTop = document.body.scrollTop
-    var focus2 = window[0][0].document.getElementById(&quot;focus2&quot;);
-    focus2.focus();
-    eventSender.keyDown(&quot;pageDown&quot;);
-    var test2Passed = false;
-    if (document.body.scrollTop &gt; oldScrollTop)
-        test2Passed = true;
-
-    printResults(test1Passed, test2Passed);
-}
-
-function printResults(test1Passed, test2Passed) 
-{
-    var console = document.createElement(&quot;div&quot;);
-    if (test1Passed)
-        console.innerHTML = &quot;PASSED test 1&quot;;
-    else
-        console.innerHTML = &quot;FAILED test 1&quot;;
-    console.innerHTML += &quot;&lt;br&gt;&quot;;
-    if (test2Passed)
-        console.innerHTML += &quot;PASSED test 2&quot;;
-    else
-        console.innerHTML += &quot;FAILED test 2&quot;;
-
-    document.body.appendChild(console);
-        
-}
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;window.resizeTo(500,587); test();&quot;&gt;
-&lt;div id=&quot;testDiv&quot;&gt;
-top
-&lt;br&gt;
-&lt;div style=&quot;height:200px&quot;&gt;&lt;/div&gt;
-&lt;iframe id=&quot;frame&quot; width=&quot;450px&quot; height=&quot;235px&quot; src=&quot;./resources/iframe-scroll-page-up-down-1.html&quot;&gt;&lt;/iframe&gt;
-&lt;div style=&quot;height:200px&quot;&gt;&lt;/div&gt;
-bottom
-&lt;/div&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasthtmlmarqueealternatehtmlfromrev211348trunkLayoutTestsfasthtmlmarqueealternatehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/html/marquee-alternate.html (from rev 211348, trunk/LayoutTests/fast/html/marquee-alternate.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/html/marquee-alternate.html                                (rev 0)
+++ trunk/LayoutTests/fast/html/marquee-alternate.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,64 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script type=&quot;text/javascript&quot;&gt;
+window.jsTestIsAsync = true;
+var initialPosition = 1;
+var halfAnimationPeriod = 63;
+var fullAnimationPeriod = 123;
+function scrollOffsetInitial()
+{
+  var section1 = document.getElementById('marquee');
+  if (section1.scrollLeft == -initialPosition) {
+      debug(&quot;PASS on initial position&quot;);
+  } else {
+      debug(&quot;FAIL&quot;);
+      debug(&quot;ScrollLeft = &quot; + section1.scrollLeft);
+      debug(&quot;ScrollWidth = &quot; + section1.scrollWidth);
+      finishJSTest();
+  }
+}
+
+function scrollOffsetCompleteCycle()
+{
+  var section1 = document.getElementById('marquee');
+  if (section1.scrollLeft == -initialPosition) {
+      debug(&quot;PASS on after full cycle completion&quot;);
+  } else {
+      debug(&quot;FAIL&quot;);
+      debug(&quot;ScrollLeft = &quot; + section1.scrollLeft);
+      debug(&quot;ScrollWidth = &quot; + section1.scrollWidth);
+  }
+  finishJSTest();
+}
+
+function scrollOffsetMidCycle()
+{
+  var section1 = document.getElementById('marquee');
+  if (section1.scrollLeft == 0 ) {
+      debug(&quot;PASS on after half cycle completion&quot;);
+  } else {
+      debug(&quot;FAIL&quot;);
+      debug(&quot;ScrollLeft = &quot; + section1.scrollLeft);
+      debug(&quot;ScrollWidth = &quot; + section1.scrollWidth);
+      finishJSTest();
+  }
+}
+
+function dump() {
+  var t=setTimeout(&quot;scrollOffsetInitial()&quot;,0);
+  var t=setTimeout(&quot;scrollOffsetMidCycle()&quot;,halfAnimationPeriod);
+  var t=setTimeout(&quot;scrollOffsetCompleteCycle()&quot;,fullAnimationPeriod);
+}
+successfullyParsed = true;
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload = dump() &gt;
+&lt;marquee id=&quot;marquee&quot; width=30 behavior=&quot;alternate&quot; scrollamount=1 scrolldelay=1&gt;&lt;img src=&quot;resources/images/lime.png&quot; width=&quot;29&quot; height=&quot;29&quot; alt=&quot;lime&quot;&gt;&lt;/marquee&gt;
+&lt;pre id=&quot;console&quot;&gt;&lt;/pre&gt;
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasthtmlmarqueealternatehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/html/marquee-alternate.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/html/marquee-alternate.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/html/marquee-alternate.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,64 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset=&quot;utf-8&quot;&gt;
-&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;script type=&quot;text/javascript&quot;&gt;
-window.jsTestIsAsync = true;
-var initialPosition = 1;
-var halfAnimationPeriod = 63;
-var fullAnimationPeriod = 123;
-function scrollOffsetInitial()
-{
-  var section1 = document.getElementById('marquee');
-  if (section1.scrollLeft == -initialPosition) {
-      debug(&quot;PASS on initial position&quot;);
-  } else {
-      debug(&quot;FAIL&quot;);
-      debug(&quot;ScrollLeft = &quot; + section1.scrollLeft);
-      debug(&quot;ScrollWidth = &quot; + section1.scrollWidth);
-      finishJSTest();
-  }
-}
-
-function scrollOffsetCompleteCycle()
-{
-  var section1 = document.getElementById('marquee');
-  if (section1.scrollLeft == -initialPosition) {
-      debug(&quot;PASS on after full cycle completion&quot;);
-  } else {
-      debug(&quot;FAIL&quot;);
-      debug(&quot;ScrollLeft = &quot; + section1.scrollLeft);
-      debug(&quot;ScrollWidth = &quot; + section1.scrollWidth);
-  }
-  finishJSTest();
-}
-
-function scrollOffsetMidCycle()
-{
-  var section1 = document.getElementById('marquee');
-  if (section1.scrollLeft == 0 ) {
-      debug(&quot;PASS on after half cycle completion&quot;);
-  } else {
-      debug(&quot;FAIL&quot;);
-      debug(&quot;ScrollLeft = &quot; + section1.scrollLeft);
-      debug(&quot;ScrollWidth = &quot; + section1.scrollWidth);
-      finishJSTest();
-  }
-}
-
-function dump() {
-  var t=setTimeout(&quot;scrollOffsetInitial()&quot;,0);
-  var t=setTimeout(&quot;scrollOffsetMidCycle()&quot;,halfAnimationPeriod);
-  var t=setTimeout(&quot;scrollOffsetCompleteCycle()&quot;,fullAnimationPeriod);
-}
-successfullyParsed = true;
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload = dump() &gt;
-&lt;marquee id=&quot;marquee&quot; width=30 behavior=&quot;alternate&quot; scrollamount=1 scrolldelay=1&gt;&lt;img src=&quot;resources/images/lime.png&quot; width=&quot;29&quot; height=&quot;29&quot; alt=&quot;lime&quot;&gt;&lt;/marquee&gt;
-&lt;pre id=&quot;console&quot;&gt;&lt;/pre&gt;
-&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastleaks003htmlfromrev211348trunkLayoutTestsfastleaks003htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/leaks/003.html (from rev 211348, trunk/LayoutTests/fast/leaks/003.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/leaks/003.html                                (rev 0)
+++ trunk/LayoutTests/fast/leaks/003.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,61 @@
</span><ins>+&lt;p&gt;This test verifies that garbage collection successfully cleans up after the destruction
+of a frame containing a JavaScript interpreter. If the test passes, you'll see a PASS message below.&lt;/p&gt;
+&lt;hr&gt;
+&lt;pre id=&quot;log&quot;&gt;&lt;/pre&gt;
+
+&lt;!-- The test: --&gt;
+&lt;iframe id=&quot;iframe&quot; src=&quot;data:text/html,&lt;script&gt;;&lt;/script&gt;&quot; style=&quot;display:none&quot;&gt;&lt;/iframe&gt;
+&lt;script&gt;
+function log(s)
+{
+    document.getElementById(&quot;log&quot;).appendChild(document.createTextNode(s));
+}
+
+var wiggleRoom = 20;
+
+window.onload = function main()
+{
+    if (!window.testRunner || !window.GCController) {
+        log(&quot;FAIL: This test uses the testRunner and the GCController, so it can only run in DumpRenderTree.\n&quot;);
+        return;
+    }
+    
+    testRunner.dumpAsText();
+    testRunner.waitUntilDone();
+
+    // Start with no garbage, so GC doesn't run automatically during the test.
+    GCController.collect();
+    
+    // Create a little garbage, so we can detect failure in the case where the 
+    // test doesn't produce any garbage because it fails to destroy the frame.
+    var garbage = [ { }, { }, { }, { }, { }, { }, { }, { }, { }, { } ];
+    garbage = null;
+
+    // Destroy a frame that has a JavaScript interpreter.
+    var iframe = document.getElementById(&quot;iframe&quot;);
+    iframe.parentNode.removeChild(iframe);
+
+    // Finish the test on a time-out, to allow the Frame keepAlive timer to fire
+    // and release the frame before we generate results.
+    var continueTest = function continueTest()
+    {
+        // Measure how many garbage JS objects are still around.
+        var jsObjectCountStart = GCController.getJSObjectCount();
+        GCController.collect();
+        var jsObjectCountDelta = jsObjectCountStart - GCController.getJSObjectCount();
+        var garbageCount = jsObjectCountDelta &gt; 0 ? jsObjectCountDelta : 0;
+        
+        // Fail if a lot of garbage was left behind. This can mean one of many things:
+        // the frame was not destroyed; the frame destruction did not trigger GC; or
+        // GC was not effective.
+        if (garbageCount &gt; wiggleRoom) {
+            log(&quot;FAIL: &quot; + garbageCount + &quot; garbage JS objects left uncollected.\n&quot;);
+        } else {
+            log(&quot;PASS: &quot; + wiggleRoom + &quot; garbage JS objects or fewer left uncollected after destroying a frame.\n&quot;);
+        }
+
+        testRunner.notifyDone();
+    }
+    setTimeout(continueTest, 10);
+}
+&lt;/script&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastleaks003htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/leaks/003.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/leaks/003.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/leaks/003.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,61 +0,0 @@
</span><del>-&lt;p&gt;This test verifies that garbage collection successfully cleans up after the destruction
-of a frame containing a JavaScript interpreter. If the test passes, you'll see a PASS message below.&lt;/p&gt;
-&lt;hr&gt;
-&lt;pre id=&quot;log&quot;&gt;&lt;/pre&gt;
-
-&lt;!-- The test: --&gt;
-&lt;iframe id=&quot;iframe&quot; src=&quot;data:text/html,&lt;script&gt;;&lt;/script&gt;&quot; style=&quot;display:none&quot;&gt;&lt;/iframe&gt;
-&lt;script&gt;
-function log(s)
-{
-    document.getElementById(&quot;log&quot;).appendChild(document.createTextNode(s));
-}
-
-var wiggleRoom = 20;
-
-window.onload = function main()
-{
-    if (!window.testRunner || !window.GCController) {
-        log(&quot;FAIL: This test uses the testRunner and the GCController, so it can only run in DumpRenderTree.\n&quot;);
-        return;
-    }
-    
-    testRunner.dumpAsText();
-    testRunner.waitUntilDone();
-
-    // Start with no garbage, so GC doesn't run automatically during the test.
-    GCController.collect();
-    
-    // Create a little garbage, so we can detect failure in the case where the 
-    // test doesn't produce any garbage because it fails to destroy the frame.
-    var garbage = [ { }, { }, { }, { }, { }, { }, { }, { }, { }, { } ];
-    garbage = null;
-
-    // Destroy a frame that has a JavaScript interpreter.
-    var iframe = document.getElementById(&quot;iframe&quot;);
-    iframe.parentNode.removeChild(iframe);
-
-    // Finish the test on a time-out, to allow the Frame keepAlive timer to fire
-    // and release the frame before we generate results.
-    var continueTest = function continueTest()
-    {
-        // Measure how many garbage JS objects are still around.
-        var jsObjectCountStart = GCController.getJSObjectCount();
-        GCController.collect();
-        var jsObjectCountDelta = jsObjectCountStart - GCController.getJSObjectCount();
-        var garbageCount = jsObjectCountDelta &gt; 0 ? jsObjectCountDelta : 0;
-        
-        // Fail if a lot of garbage was left behind. This can mean one of many things:
-        // the frame was not destroyed; the frame destruction did not trigger GC; or
-        // GC was not effective.
-        if (garbageCount &gt; wiggleRoom) {
-            log(&quot;FAIL: &quot; + garbageCount + &quot; garbage JS objects left uncollected.\n&quot;);
-        } else {
-            log(&quot;PASS: &quot; + wiggleRoom + &quot; garbage JS objects or fewer left uncollected after destroying a frame.\n&quot;);
-        }
-
-        testRunner.notifyDone();
-    }
-    setTimeout(continueTest, 10);
-}
-&lt;/script&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastloaderapitestgotocurrentbackforwarditemhtmlfromrev211348trunkLayoutTestsfastloaderapitestgotocurrentbackforwarditemhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html (from rev 211348, trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html                                (rev 0)
+++ trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+&lt;script&gt;
+if (window.testRunner) {
+    testRunner.waitUntilDone();
+    testRunner.dumpAsText();
+    testRunner.dumpFrameLoadCallbacks();
+    if (sessionStorage.api_goto_current_bf_item) {
+        delete sessionStorage.api_goto_current_bf_item;
+        testRunner.notifyDone();
+    }
+}
+
+function loaded()
+{
+    if (window.testRunner) {
+        sessionStorage.api_goto_current_bf_item = true;
+        testRunner.apiTestGoToCurrentBackForwardItem();
+    }
+}
+
+&lt;/script&gt;
+&lt;body onload=&quot;setTimeout('loaded();', 0);&quot;&gt;
+&lt;pre&gt;This is an API test that will only work under DumpRenderTree. It tests using the WebKit api [WebView goToBackForwardItem:] to go to the current item. This needs to actually perform a &quot;real&quot; load, and not be treated as a same-document navigation.&lt;/pre&gt;
+&lt;/body&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastloaderapitestgotocurrentbackforwarditemhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/loader/api-test-go-to-current-back-forward-item.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-&lt;script&gt;
-if (window.testRunner) {
-    testRunner.waitUntilDone();
-    testRunner.dumpAsText();
-    testRunner.dumpFrameLoadCallbacks();
-    if (sessionStorage.api_goto_current_bf_item) {
-        delete sessionStorage.api_goto_current_bf_item;
-        testRunner.notifyDone();
-    }
-}
-
-function loaded()
-{
-    if (window.testRunner) {
-        sessionStorage.api_goto_current_bf_item = true;
-        testRunner.apiTestGoToCurrentBackForwardItem();
-    }
-}
-
-&lt;/script&gt;
-&lt;body onload=&quot;setTimeout('loaded();', 0);&quot;&gt;
-&lt;pre&gt;This is an API test that will only work under DumpRenderTree. It tests using the WebKit api [WebView goToBackForwardItem:] to go to the current item. This needs to actually perform a &quot;real&quot; load, and not be treated as a same-document navigation.&lt;/pre&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastloaderapitestnewwindowdataloadbaseurlhtmlfromrev211348trunkLayoutTestsfastloaderapitestnewwindowdataloadbaseurlhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html (from rev 211348, trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html                                (rev 0)
+++ trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+&lt;script&gt;
+if (window.testRunner) {
+    testRunner.dumpAsText();
+
+    var dataURL = &quot;&lt;a id='anchor' href='#foo'&gt;Hello&lt;/a&gt;&lt;br&gt;&lt;div id='foo'&gt;&lt;/div&gt;&lt;s&quot; + &quot;cript&gt;&quot; +
+                  &quot;var evt = document.createEvent('MouseEvent');&quot; +
+                  &quot;evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);&quot; + 
+                  &quot;document.getElementById('anchor').dispatchEvent(evt);&quot; +
+                  &quot;&lt;/s&quot; + &quot;cript&gt;&quot;;
+    
+    testRunner.apiTestNewWindowDataLoadBaseURL(dataURL, &quot;http://example.com/example.html&quot;);
+}
+&lt;/script&gt;
+&lt;body&gt;
+&lt;pre&gt;This test only runs in DRT.
+It creates a new WebView using WebKit API, populates it using &quot;loadData&quot; and gives it a base URL, then clicks on a fragment anchor within it.
+If it doesn't crash, it passed.&lt;/pre&gt;
+&lt;/body&gt;
+
+
+
+
+
</ins></span></pre></div>
<a id="trunkLayoutTestsfastloaderapitestnewwindowdataloadbaseurlhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/loader/api-test-new-window-data-load-base-url.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-&lt;script&gt;
-if (window.testRunner) {
-    testRunner.dumpAsText();
-
-    var dataURL = &quot;&lt;a id='anchor' href='#foo'&gt;Hello&lt;/a&gt;&lt;br&gt;&lt;div id='foo'&gt;&lt;/div&gt;&lt;s&quot; + &quot;cript&gt;&quot; +
-                  &quot;var evt = document.createEvent('MouseEvent');&quot; +
-                  &quot;evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);&quot; + 
-                  &quot;document.getElementById('anchor').dispatchEvent(evt);&quot; +
-                  &quot;&lt;/s&quot; + &quot;cript&gt;&quot;;
-    
-    testRunner.apiTestNewWindowDataLoadBaseURL(dataURL, &quot;http://example.com/example.html&quot;);
-}
-&lt;/script&gt;
-&lt;body&gt;
-&lt;pre&gt;This test only runs in DRT.
-It creates a new WebView using WebKit API, populates it using &quot;loadData&quot; and gives it a base URL, then clicks on a fragment anchor within it.
-If it doesn't crash, it passed.&lt;/pre&gt;
-&lt;/body&gt;
-
-
-
-
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastloaderformeventsbackforwardhtmlfromrev211348trunkLayoutTestsfastloaderformeventsbackforwardhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/loader/form-events-back-forward.html (from rev 211348, trunk/LayoutTests/fast/loader/form-events-back-forward.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/loader/form-events-back-forward.html                                (rev 0)
+++ trunk/LayoutTests/fast/loader/form-events-back-forward.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,50 @@
</span><ins>+&lt;html&gt;
+    &lt;head&gt;
+        &lt;script&gt;
+            function test()
+            {
+                if (window.testRunner) {
+                    testRunner.dumpAsText();
+                    testRunner.waitUntilDone();
+                }
+                    
+                if (window.navigationController)
+                    navigationController.evalAfterBackForwardNavigation(&quot;continueTestAfterNavigation()&quot;);
+            }
+            
+            function continueTestAfterNavigation()
+            {
+                var e = document.createEvent(&quot;MouseEvents&quot;);
+                e.initEvent(&quot;click&quot;, true, false);
+                document.getElementById('button').dispatchEvent(e);
+                
+                if (window.testRunner)
+                    testRunner.notifyDone();
+            }
+
+            function button_onClick()
+            {
+                print('PASS: click event sent to button');
+            }
+            
+            function print(message) {
+                var paragraph = document.createElement(&quot;p&quot;);
+                paragraph.appendChild(document.createTextNode(message));
+                document.getElementById(&quot;console&quot;).appendChild(paragraph);
+            }
+        &lt;/script&gt;
+    &lt;/head&gt;
+
+    &lt;body onload=&quot;test()&quot;&gt;
+        &lt;p&gt;Bug: &lt;a href=&quot;http://bugzilla.opendarwin.org/show_bug.cgi?id=6331&quot;&gt;REGRESSION: form events don't fire after back/forward navigation, due to inconsistent load state&lt;/a&gt;&lt;/p&gt; 
+        &lt;p&gt;To run this test in Safari:&lt;/p&gt;
+        &lt;ol&gt;
+            &lt;li&gt;&lt;a href=&quot;go-back.html&quot;&gt;Click here to do a back/forward navigation.&lt;/a&gt;&lt;/li&gt;
+            &lt;li&gt;&lt;a href=&quot;&quot; onclick=&quot;continueTestAfterNavigation(); return false;&quot;&gt;Click here to test form events.&lt;/a&gt;&lt;/li&gt;
+        &lt;/ol&gt;
+        &lt;p&gt;If this test passes, you'll see a PASS message below.&lt;/p&gt;
+        &lt;hr&gt;
+        &lt;input type=hidden id=&quot;button&quot; onclick=&quot;button_onClick()&quot;&gt;
+        &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+    &lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastloaderformeventsbackforwardhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/loader/form-events-back-forward.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/loader/form-events-back-forward.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/loader/form-events-back-forward.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,50 +0,0 @@
</span><del>-&lt;html&gt;
-    &lt;head&gt;
-        &lt;script&gt;
-            function test()
-            {
-                if (window.testRunner) {
-                    testRunner.dumpAsText();
-                    testRunner.waitUntilDone();
-                }
-                    
-                if (window.navigationController)
-                    navigationController.evalAfterBackForwardNavigation(&quot;continueTestAfterNavigation()&quot;);
-            }
-            
-            function continueTestAfterNavigation()
-            {
-                var e = document.createEvent(&quot;MouseEvents&quot;);
-                e.initEvent(&quot;click&quot;, true, false);
-                document.getElementById('button').dispatchEvent(e);
-                
-                if (window.testRunner)
-                    testRunner.notifyDone();
-            }
-
-            function button_onClick()
-            {
-                print('PASS: click event sent to button');
-            }
-            
-            function print(message) {
-                var paragraph = document.createElement(&quot;p&quot;);
-                paragraph.appendChild(document.createTextNode(message));
-                document.getElementById(&quot;console&quot;).appendChild(paragraph);
-            }
-        &lt;/script&gt;
-    &lt;/head&gt;
-
-    &lt;body onload=&quot;test()&quot;&gt;
-        &lt;p&gt;Bug: &lt;a href=&quot;http://bugzilla.opendarwin.org/show_bug.cgi?id=6331&quot;&gt;REGRESSION: form events don't fire after back/forward navigation, due to inconsistent load state&lt;/a&gt;&lt;/p&gt; 
-        &lt;p&gt;To run this test in Safari:&lt;/p&gt;
-        &lt;ol&gt;
-            &lt;li&gt;&lt;a href=&quot;go-back.html&quot;&gt;Click here to do a back/forward navigation.&lt;/a&gt;&lt;/li&gt;
-            &lt;li&gt;&lt;a href=&quot;&quot; onclick=&quot;continueTestAfterNavigation(); return false;&quot;&gt;Click here to test form events.&lt;/a&gt;&lt;/li&gt;
-        &lt;/ol&gt;
-        &lt;p&gt;If this test passes, you'll see a PASS message below.&lt;/p&gt;
-        &lt;hr&gt;
-        &lt;input type=hidden id=&quot;button&quot; onclick=&quot;button_onClick()&quot;&gt;
-        &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-    &lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastnotificationsnotificationseventstoppropagationhtmlfromrev211348trunkLayoutTestsfastnotificationsnotificationseventstoppropagationhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html (from rev 211348, trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html                                (rev 0)
+++ trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,38 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+    &lt;script type=&quot;text/javascript&quot;&gt;
+        function log(message)
+        {
+            document.getElementById(&quot;result&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+        }
+        
+        function runTests()
+        {
+            if (window.testRunner) {
+                testRunner.grantWebNotificationPermission(&quot;file://&quot;);
+                testRunner.dumpAsText();
+            }
+
+            if (!window.webkitNotifications) {
+                log(&quot;FAIL: No webkitNotifications interface!&quot;);
+            }
+            
+            var N = window.webkitNotifications.createNotification(&quot;http://localhost/my_icon.png&quot;, &quot;New E-mail&quot;, &quot;Meet me tonight at 8!&quot;);
+            N.addEventListener(&quot;display&quot;, function(e) { log(&quot;PASS: addEventListener(display) non-capture callback invoked&quot;); });
+            N.ondisplay =                 function(e) { log(&quot;PASS: ondisplay attribute event callback invoked.&quot;); }
+            N.addEventListener(&quot;display&quot;, function(e) { log(&quot;PASS: addEventListener(display) capture callback invoked&quot;); e.stopPropagation(); }, true );
+            N.show();
+            N.cancel();
+        }
+    &lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;Sending notifications with permission...&lt;/p&gt;
+&lt;div id=&quot;result&quot;&gt;&lt;/div&gt;    
+    
+&lt;script type=&quot;text/javascript&quot;&gt;
+runTests();
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastnotificationsnotificationseventstoppropagationhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/notifications/notifications-event-stop-propagation.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,38 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-    &lt;script type=&quot;text/javascript&quot;&gt;
-        function log(message)
-        {
-            document.getElementById(&quot;result&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-        }
-        
-        function runTests()
-        {
-            if (window.testRunner) {
-                testRunner.grantWebNotificationPermission(&quot;file://&quot;);
-                testRunner.dumpAsText();
-            }
-
-            if (!window.webkitNotifications) {
-                log(&quot;FAIL: No webkitNotifications interface!&quot;);
-            }
-            
-            var N = window.webkitNotifications.createNotification(&quot;http://localhost/my_icon.png&quot;, &quot;New E-mail&quot;, &quot;Meet me tonight at 8!&quot;);
-            N.addEventListener(&quot;display&quot;, function(e) { log(&quot;PASS: addEventListener(display) non-capture callback invoked&quot;); });
-            N.ondisplay =                 function(e) { log(&quot;PASS: ondisplay attribute event callback invoked.&quot;); }
-            N.addEventListener(&quot;display&quot;, function(e) { log(&quot;PASS: addEventListener(display) capture callback invoked&quot;); e.stopPropagation(); }, true );
-            N.show();
-            N.cancel();
-        }
-    &lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;Sending notifications with permission...&lt;/p&gt;
-&lt;div id=&quot;result&quot;&gt;&lt;/div&gt;    
-    
-&lt;script type=&quot;text/javascript&quot;&gt;
-runTests();
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastnotificationsnotificationsmultieventshtmlfromrev211348trunkLayoutTestsfastnotificationsnotificationsmultieventshtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/notifications/notifications-multi-events.html (from rev 211348, trunk/LayoutTests/fast/notifications/notifications-multi-events.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/notifications/notifications-multi-events.html                                (rev 0)
+++ trunk/LayoutTests/fast/notifications/notifications-multi-events.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,40 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+    &lt;script type=&quot;text/javascript&quot;&gt;
+        function log(message)
+        {
+            document.getElementById(&quot;result&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
+        }
+        
+        function runTests()
+        {
+            if (window.testRunner) {
+                testRunner.grantWebNotificationPermission(&quot;file://&quot;);
+                testRunner.dumpAsText();
+            }
+
+            if (!window.webkitNotifications) {
+                log(&quot;FAIL: No webkitNotifications interface!&quot;);
+            }
+            
+            var N = window.webkitNotifications.createNotification(&quot;http://localhost/my_icon.png&quot;, &quot;New E-mail&quot;, &quot;Meet me tonight at 8!&quot;);
+            N.addEventListener(&quot;close&quot;, function() { log(&quot;PASS: addEventListener(close) callback #1 invoked&quot;); });
+            N.onclose =                 function() { log(&quot;PASS: onclose attribute event callback invoked.&quot;); }
+            N.addEventListener(&quot;close&quot;, function() { log(&quot;PASS: addEventListener(close) capture callback #1 invoked&quot;); }, true );
+            N.addEventListener(&quot;close&quot;, function() { log(&quot;PASS: addEventListener(close) capture callback #2 invoked&quot;); }, true );
+            N.addEventListener(&quot;close&quot;, function() { log(&quot;PASS: addEventListener(close) callback #3 invoked&quot;); });
+            N.show();
+            N.cancel();
+        }
+    &lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;Sending notifications with permission...&lt;/p&gt;
+&lt;div id=&quot;result&quot;&gt;&lt;/div&gt;    
+    
+&lt;script type=&quot;text/javascript&quot;&gt;
+runTests();
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastnotificationsnotificationsmultieventshtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/notifications/notifications-multi-events.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/notifications/notifications-multi-events.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/notifications/notifications-multi-events.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,40 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-    &lt;script type=&quot;text/javascript&quot;&gt;
-        function log(message)
-        {
-            document.getElementById(&quot;result&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-        }
-        
-        function runTests()
-        {
-            if (window.testRunner) {
-                testRunner.grantWebNotificationPermission(&quot;file://&quot;);
-                testRunner.dumpAsText();
-            }
-
-            if (!window.webkitNotifications) {
-                log(&quot;FAIL: No webkitNotifications interface!&quot;);
-            }
-            
-            var N = window.webkitNotifications.createNotification(&quot;http://localhost/my_icon.png&quot;, &quot;New E-mail&quot;, &quot;Meet me tonight at 8!&quot;);
-            N.addEventListener(&quot;close&quot;, function() { log(&quot;PASS: addEventListener(close) callback #1 invoked&quot;); });
-            N.onclose =                 function() { log(&quot;PASS: onclose attribute event callback invoked.&quot;); }
-            N.addEventListener(&quot;close&quot;, function() { log(&quot;PASS: addEventListener(close) capture callback #1 invoked&quot;); }, true );
-            N.addEventListener(&quot;close&quot;, function() { log(&quot;PASS: addEventListener(close) capture callback #2 invoked&quot;); }, true );
-            N.addEventListener(&quot;close&quot;, function() { log(&quot;PASS: addEventListener(close) callback #3 invoked&quot;); });
-            N.show();
-            N.cancel();
-        }
-    &lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;Sending notifications with permission...&lt;/p&gt;
-&lt;div id=&quot;result&quot;&gt;&lt;/div&gt;    
-    
-&lt;script type=&quot;text/javascript&quot;&gt;
-runTests();
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfastrubyafterblockdoesntcrashhtmlfromrev211348trunkLayoutTestsfastrubyafterblockdoesntcrashhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html (from rev 211348, trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html                                (rev 0)
+++ trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+&lt;meta http-equiv=&quot;refresh&quot; content=&quot;1;url=&quot; /&gt;
+&lt;style&gt;
+    ruby::after {
+        display: block;
+        content: url(&quot;http://yy&quot;);
+    }
+&lt;/style&gt;
+&lt;ruby&gt;
+    &lt;ruby&gt;
+        &lt;ruby&gt;
+            &lt;style&gt;
+                ruby {
+                    float: right;        
+                }
+            &lt;/style&gt;
+        &lt;/ruby&gt;
+    &lt;/ruby&gt;
+&lt;/ruby&gt;
+&lt;script&gt;
+    if (window.testRunner)
+        testRunner.dumpAsText();
+&lt;/script&gt;
+This test passes if it doesn't crash.
</ins></span></pre></div>
<a id="trunkLayoutTestsfastrubyafterblockdoesntcrashhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/ruby/after-block-doesnt-crash.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-&lt;meta http-equiv=&quot;refresh&quot; content=&quot;1;url=&quot; /&gt;
-&lt;style&gt;
-    ruby::after {
-        display: block;
-        content: url(&quot;http://yy&quot;);
-    }
-&lt;/style&gt;
-&lt;ruby&gt;
-    &lt;ruby&gt;
-        &lt;ruby&gt;
-            &lt;style&gt;
-                ruby {
-                    float: right;        
-                }
-            &lt;/style&gt;
-        &lt;/ruby&gt;
-    &lt;/ruby&gt;
-&lt;/ruby&gt;
-&lt;script&gt;
-    if (window.testRunner)
-        testRunner.dumpAsText();
-&lt;/script&gt;
-This test passes if it doesn't crash.
</del></span></pre></div>
<a id="trunkLayoutTestsfastrubyaftertabledoesntcrashhtmlfromrev211348trunkLayoutTestsfastrubyaftertabledoesntcrashhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html (from rev 211348, trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html                                (rev 0)
+++ trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+&lt;meta http-equiv=&quot;refresh&quot; content=&quot;1;url=&quot; /&gt;
+&lt;style&gt;
+    ruby::after {
+        display: table;
+        content: url(&quot;http://yy&quot;);
+    }
+&lt;/style&gt;
+&lt;ruby&gt;
+    &lt;ruby&gt;
+        &lt;ruby&gt;
+            &lt;style&gt;
+                ruby {
+                    float: right;        
+                }
+            &lt;/style&gt;
+        &lt;/ruby&gt;
+    &lt;/ruby&gt;
+&lt;/ruby&gt;
+&lt;script&gt;
+    if (window.testRunner)
+        testRunner.dumpAsText();
+&lt;/script&gt;
+This test passes if it doesn't crash.
</ins></span></pre></div>
<a id="trunkLayoutTestsfastrubyaftertabledoesntcrashhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/ruby/after-table-doesnt-crash.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-&lt;meta http-equiv=&quot;refresh&quot; content=&quot;1;url=&quot; /&gt;
-&lt;style&gt;
-    ruby::after {
-        display: table;
-        content: url(&quot;http://yy&quot;);
-    }
-&lt;/style&gt;
-&lt;ruby&gt;
-    &lt;ruby&gt;
-        &lt;ruby&gt;
-            &lt;style&gt;
-                ruby {
-                    float: right;        
-                }
-            &lt;/style&gt;
-        &lt;/ruby&gt;
-    &lt;/ruby&gt;
-&lt;/ruby&gt;
-&lt;script&gt;
-    if (window.testRunner)
-        testRunner.dumpAsText();
-&lt;/script&gt;
-This test passes if it doesn't crash.
</del></span></pre></div>
<a id="trunkLayoutTestsfastrubygeneratedaftercounterdoesntcrashhtmlfromrev211348trunkLayoutTestsfastrubygeneratedaftercounterdoesntcrashhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html (from rev 211348, trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html                                (rev 0)
+++ trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+&lt;html&gt;
+&lt;script&gt;
+    if (window.testRunner)
+        testRunner.dumpAsText();
+&lt;/script&gt;
+&lt;style type=&quot;text/css&quot;&gt;
+
+ruby:after{
+        counter-reset: g -2532653 K -48696899414062 ll -48202514648437 rr -1821899414062;
+}
+ruby::after{
+        display: table;
+        content: url(&quot;http://xx&quot;);
+}
+
+&lt;/style&gt;
+        &lt;ruby&gt;
+                &lt;ruby&gt;
+                        &lt;ruby&gt;
+&lt;style type=&quot;text/css&quot;&gt;
+ruby{
+        float: left;
+}
+&lt;/style&gt;
+        &lt;ruby&gt;
+This test passes if it doesn't crash.
</ins></span></pre></div>
<a id="trunkLayoutTestsfastrubygeneratedaftercounterdoesntcrashhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/ruby/generated-after-counter-doesnt-crash.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,26 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;script&gt;
-    if (window.testRunner)
-        testRunner.dumpAsText();
-&lt;/script&gt;
-&lt;style type=&quot;text/css&quot;&gt;
-
-ruby:after{
-        counter-reset: g -2532653 K -48696899414062 ll -48202514648437 rr -1821899414062;
-}
-ruby::after{
-        display: table;
-        content: url(&quot;http://xx&quot;);
-}
-
-&lt;/style&gt;
-        &lt;ruby&gt;
-                &lt;ruby&gt;
-                        &lt;ruby&gt;
-&lt;style type=&quot;text/css&quot;&gt;
-ruby{
-        float: left;
-}
-&lt;/style&gt;
-        &lt;ruby&gt;
-This test passes if it doesn't crash.
</del></span></pre></div>
<a id="trunkLayoutTestsfastrubygeneratedbeforeandaftercounterdoesntcrashhtmlfromrev211348trunkLayoutTestsfastrubygeneratedbeforeandaftercounterdoesntcrashhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html (from rev 211348, trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html                                (rev 0)
+++ trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+&lt;html&gt;
+&lt;script&gt;
+    if (window.testRunner)
+        testRunner.dumpAsText();
+&lt;/script&gt;
+&lt;style type=&quot;text/css&quot;&gt;
+
+ruby:before{
+        counter-reset: g -2532653 K -48696899414062 ll -48202514648437 rr -1821899414062;
+}
+ruby::before{
+        display: table;
+        content: url(&quot;http://xx&quot;);
+}
+ruby:after{
+        counter-reset: g -2532653 K -48696899414062 ll -48202514648437 rr -1821899414062;
+}
+ruby::after{
+        display: table;
+        content: url(&quot;http://yy&quot;);
+}
+
+&lt;/style&gt;
+        &lt;ruby&gt;
+                &lt;ruby&gt;
+                        &lt;ruby&gt;
+&lt;style type=&quot;text/css&quot;&gt;
+ruby{
+        float: left;
+}
+&lt;/style&gt;
+        &lt;ruby&gt;
+This test passes if it doesn't crash.
</ins></span></pre></div>
<a id="trunkLayoutTestsfastrubygeneratedbeforeandaftercounterdoesntcrashhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/ruby/generated-before-and-after-counter-doesnt-crash.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,33 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;script&gt;
-    if (window.testRunner)
-        testRunner.dumpAsText();
-&lt;/script&gt;
-&lt;style type=&quot;text/css&quot;&gt;
-
-ruby:before{
-        counter-reset: g -2532653 K -48696899414062 ll -48202514648437 rr -1821899414062;
-}
-ruby::before{
-        display: table;
-        content: url(&quot;http://xx&quot;);
-}
-ruby:after{
-        counter-reset: g -2532653 K -48696899414062 ll -48202514648437 rr -1821899414062;
-}
-ruby::after{
-        display: table;
-        content: url(&quot;http://yy&quot;);
-}
-
-&lt;/style&gt;
-        &lt;ruby&gt;
-                &lt;ruby&gt;
-                        &lt;ruby&gt;
-&lt;style type=&quot;text/css&quot;&gt;
-ruby{
-        float: left;
-}
-&lt;/style&gt;
-        &lt;ruby&gt;
-This test passes if it doesn't crash.
</del></span></pre></div>
<a id="trunkLayoutTestsfastshadowdomcopyshadowtreehtmlfromrev211348trunkLayoutTestsfastshadowdomcopyshadowtreehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html (from rev 211348, trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html                                (rev 0)
+++ trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;body&gt;
+&lt;p&gt;This tests copying the content inside a shadow tree.&lt;br&gt;
+To manually test, copy the selected content and paste it below:&lt;/p&gt;
+&lt;style&gt;
+#source, #destination {
+    border: solid 1px #666;
+    margin: 1rem 0;
+}
+&lt;/style&gt;
+&lt;div id=&quot;source&quot;&gt;
+    &lt;b&gt;hello,
+        &lt;span id=&quot;host&quot;&gt;&lt;span slot=&quot;webkit&quot;&gt;WebKit&lt;/span&gt; &lt;span slot=&quot;others&quot;&gt;and other engines&lt;/slot&gt;&lt;/span&gt;
+    &lt;/b&gt;
+    &lt;i&gt;rocks&lt;/i&gt;
+&lt;/div&gt;
+&lt;div id=&quot;destination&quot; contenteditable&gt;&lt;br&gt;&lt;/div&gt;
+&lt;script&gt;
+
+document.getElementById('host').attachShadow({mode: 'closed'}).innerHTML = 'world &lt;slot name=&quot;webkit&quot;&gt;&lt;/slot&gt;';
+getSelection().selectAllChildren(document.getElementById('source'));
+
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfastshadowdomcopyshadowtreehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/shadow-dom/copy-shadow-tree.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,26 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;body&gt;
-&lt;p&gt;This tests copying the content inside a shadow tree.&lt;br&gt;
-To manually test, copy the selected content and paste it below:&lt;/p&gt;
-&lt;style&gt;
-#source, #destination {
-    border: solid 1px #666;
-    margin: 1rem 0;
-}
-&lt;/style&gt;
-&lt;div id=&quot;source&quot;&gt;
-    &lt;b&gt;hello,
-        &lt;span id=&quot;host&quot;&gt;&lt;span slot=&quot;webkit&quot;&gt;WebKit&lt;/span&gt; &lt;span slot=&quot;others&quot;&gt;and other engines&lt;/slot&gt;&lt;/span&gt;
-    &lt;/b&gt;
-    &lt;i&gt;rocks&lt;/i&gt;
-&lt;/div&gt;
-&lt;div id=&quot;destination&quot; contenteditable&gt;&lt;br&gt;&lt;/div&gt;
-&lt;script&gt;
-
-document.getElementById('host').attachShadow({mode: 'closed'}).innerHTML = 'world &lt;slot name=&quot;webkit&quot;&gt;&lt;/slot&gt;';
-getSelection().selectAllChildren(document.getElementById('source'));
-
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasttabledoubleheighttablenotbodyhtmlfromrev211348trunkLayoutTestsfasttabledoubleheighttablenotbodyhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/table/double-height-table-no-tbody.html (from rev 211348, trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/table/double-height-table-no-tbody.html                                (rev 0)
+++ trunk/LayoutTests/fast/table/double-height-table-no-tbody.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,63 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;style&gt;
+    body { font-size: 13px; font-family: serif; }
+    table { border: 1px solid red; border-spacing: 0px; padding: 0px; }
+    th { border: 1px solid red; width: 125px; }
+    .height20px { height: 20px; }
+    .height19px { height: 19px; }
+    .smallerFont { font-size: 10px; }
+&lt;/style&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;Bug &lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=37244&quot;&gt;37244&lt;/a&gt;: thead in table without tbody causes table height doubling&lt;/p&gt;
+&lt;p&gt;There should not be any gap between the tables' border and the rows'.&lt;/p&gt;
+&lt;h1&gt;height = 20px&lt;/h1&gt;
+&lt;table class=&quot;height20px&quot;&gt;
+&lt;thead&gt;
+&lt;tr&gt;
+    &lt;th&gt;A&lt;/th&gt;
+    &lt;th&gt;B&lt;/th&gt;
+    &lt;th&gt;C&lt;/th&gt;
+    &lt;th&gt;D&lt;/th&gt;
+&lt;/tr&gt;
+&lt;/thead&gt;
+&lt;/table&gt;
+&lt;br&gt;
+&lt;table class=&quot;height20px&quot;&gt;
+&lt;tfoot&gt;
+&lt;tr&gt;
+    &lt;th&gt;A&lt;/th&gt;
+    &lt;th&gt;B&lt;/th&gt;
+    &lt;th&gt;C&lt;/th&gt;
+    &lt;th&gt;D&lt;/th&gt;
+&lt;/tr&gt;
+&lt;/tfoot&gt;
+&lt;/table&gt;
+
+&lt;h1&gt;height = 19px, font-size = 10px&lt;/h1&gt;
+&lt;table class=&quot;height19px smallerFont&quot;&gt;
+&lt;thead&gt;
+&lt;tr&gt;
+    &lt;th&gt;A&lt;/th&gt;
+    &lt;th&gt;B&lt;/th&gt;
+    &lt;th&gt;C&lt;/th&gt;
+    &lt;th&gt;D&lt;/th&gt;
+&lt;/tr&gt;
+&lt;/thead&gt;
+&lt;/table&gt;
+&lt;br&gt;
+&lt;table class=&quot;height19px smallerFont&quot;&gt;
+&lt;tfoot&gt;
+&lt;tr&gt;
+    &lt;th&gt;A&lt;/th&gt;
+    &lt;th&gt;B&lt;/th&gt;
+    &lt;th&gt;C&lt;/th&gt;
+    &lt;th&gt;D&lt;/th&gt;
+&lt;/tr&gt;
+&lt;/tfoot&gt;
+&lt;/table&gt;
+
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsfasttabledoubleheighttablenotbodyhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/table/double-height-table-no-tbody.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,63 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;style&gt;
-    body { font-size: 13px; font-family: serif; }
-    table { border: 1px solid red; border-spacing: 0px; padding: 0px; }
-    th { border: 1px solid red; width: 125px; }
-    .height20px { height: 20px; }
-    .height19px { height: 19px; }
-    .smallerFont { font-size: 10px; }
-&lt;/style&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;Bug &lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=37244&quot;&gt;37244&lt;/a&gt;: thead in table without tbody causes table height doubling&lt;/p&gt;
-&lt;p&gt;There should not be any gap between the tables' border and the rows'.&lt;/p&gt;
-&lt;h1&gt;height = 20px&lt;/h1&gt;
-&lt;table class=&quot;height20px&quot;&gt;
-&lt;thead&gt;
-&lt;tr&gt;
-    &lt;th&gt;A&lt;/th&gt;
-    &lt;th&gt;B&lt;/th&gt;
-    &lt;th&gt;C&lt;/th&gt;
-    &lt;th&gt;D&lt;/th&gt;
-&lt;/tr&gt;
-&lt;/thead&gt;
-&lt;/table&gt;
-&lt;br&gt;
-&lt;table class=&quot;height20px&quot;&gt;
-&lt;tfoot&gt;
-&lt;tr&gt;
-    &lt;th&gt;A&lt;/th&gt;
-    &lt;th&gt;B&lt;/th&gt;
-    &lt;th&gt;C&lt;/th&gt;
-    &lt;th&gt;D&lt;/th&gt;
-&lt;/tr&gt;
-&lt;/tfoot&gt;
-&lt;/table&gt;
-
-&lt;h1&gt;height = 19px, font-size = 10px&lt;/h1&gt;
-&lt;table class=&quot;height19px smallerFont&quot;&gt;
-&lt;thead&gt;
-&lt;tr&gt;
-    &lt;th&gt;A&lt;/th&gt;
-    &lt;th&gt;B&lt;/th&gt;
-    &lt;th&gt;C&lt;/th&gt;
-    &lt;th&gt;D&lt;/th&gt;
-&lt;/tr&gt;
-&lt;/thead&gt;
-&lt;/table&gt;
-&lt;br&gt;
-&lt;table class=&quot;height19px smallerFont&quot;&gt;
-&lt;tfoot&gt;
-&lt;tr&gt;
-    &lt;th&gt;A&lt;/th&gt;
-    &lt;th&gt;B&lt;/th&gt;
-    &lt;th&gt;C&lt;/th&gt;
-    &lt;th&gt;D&lt;/th&gt;
-&lt;/tr&gt;
-&lt;/tfoot&gt;
-&lt;/table&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsfasttextlargetextcomposedchardoshtmlfromrev211348trunkLayoutTestsfasttextlargetextcomposedchardoshtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/fast/text/large-text-composed-char-dos.html (from rev 211348, trunk/LayoutTests/fast/text/large-text-composed-char-dos.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/text/large-text-composed-char-dos.html                                (rev 0)
+++ trunk/LayoutTests/fast/text/large-text-composed-char-dos.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;head&gt;
+&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html;charset=utf-8&quot;&gt;
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+&lt;/script&gt;
+&lt;body&gt;
+é́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsfasttextlargetextcomposedchardoshtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/text/large-text-composed-char-dos.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/text/large-text-composed-char-dos.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/fast/text/large-text-composed-char-dos.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,8 +0,0 @@
</span><del>-&lt;head&gt;
-&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html;charset=utf-8&quot;&gt;
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-&lt;/script&gt;
-&lt;body&gt;
-é́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
 ́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́́
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestshttptestsappcachedynamicentriesnocacheexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache-expected.txt (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache-expected.txt        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache-expected.txt        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,27 +0,0 @@
</span><del>-Test the behavior of DOMApplicationCache methods related to dynamic entries when the context is not associated with any cache.
-
-PASS: applicationCache.items.length is 0
-PASS: applicationCache.items.item(0) is null
-PASS: applicationCache.items.item(1) is null
-PASS: applicationCache.items.item(0xffffffff) is null
-PASS: applicationCache.items.item(0xfffffffe) is null
-PASS: applicationCache.items.item(-1) is null
-PASS: applicationCache.items.item(-2) is null
-PASS: applicationCache.items[0xfffffffe] is undefined
-PASS: applicationCache.items[0xffffffff] is undefined
-PASS: applicationCache.items['0'] is undefined
-PASS: applicationCache.items[''] is undefined
-PASS: applicationCache.items[0] is undefined
-PASS: applicationCache.items[1] is undefined
-PASS: applicationCache.items[-1] is undefined
-PASS: applicationCache.items[-2] is undefined
-PASS: applicationCache.items[100] is undefined
-PASS: applicationCache.items['100'] is undefined
-PASS: applicationCache.items['foo'] is undefined
-PASS: applicationCache.items[0.1] is undefined
-PASS: hasItem raised INVALID_STATE_ERR
-PASS: add raised INVALID_STATE_ERR
-PASS: remove raised INVALID_STATE_ERR
-PASS: applicationCache.items.length is 0
-DONE
-
</del></span></pre></div>
<a id="trunkLayoutTestshttptestsappcachedynamicentriesnocachehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/appcache/dynamic-entries-no-cache.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,119 +0,0 @@
</span><del>-&lt;body&gt;
-&lt;p&gt;Test the behavior of DOMApplicationCache methods related to dynamic entries when the context
-is not associated with any cache.&lt;/p&gt;
-&lt;div id=&quot;result&quot;&gt;&lt;/div&gt;
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function log(message)
-{
-    document.getElementById(&quot;result&quot;).innerHTML += message + &quot;&lt;br&gt;&quot;;
-}
-
-
-function isResultCorrect(_actual, _expected)
-{
-    if (_expected === 0)
-        return _actual === _expected &amp;&amp; (1/_actual) === (1/_expected);
-    if (_actual === _expected)
-        return true;
-    if (typeof(_expected) == &quot;number&quot; &amp;&amp; isNaN(_expected))
-        return typeof(_actual) == &quot;number&quot; &amp;&amp; isNaN(_actual);
-    if (Object.prototype.toString.call(_expected) == Object.prototype.toString.call([])) {
-        log(&quot;Array comparison is not supported&quot;);
-        return false;
-    }
-    return false;
-}
-
-function shouldBe(_a, _b)
-{
-  if (typeof _a != &quot;string&quot; || typeof _b != &quot;string&quot;)
-    log(&quot;WARN: shouldBe() expects string arguments&quot;);
-  var exception;
-  var _av;
-  try {
-     _av = eval(_a);
-  } catch (e) {
-     exception = e;
-  }
-  var _bv = eval(_b);
-
-  if (exception)
-    log(&quot;FAIL: &quot; + _a + &quot; should be &quot; + _bv + &quot;. Threw exception &quot; + exception);
-  else if (isResultCorrect(_av, _bv))
-    log(&quot;PASS: &quot; + _a + &quot; is &quot; + _b);
-  else if (typeof(_av) == typeof(_bv))
-    log(&quot;FAIL: &quot; + _a + &quot; should be &quot; + _bv + &quot;. Was &quot; + stringify(_av) + &quot;.&quot;);
-  else
-    log(&quot;FAIL: &quot; + _a + &quot; should be &quot; + _bv + &quot; (of type &quot; + typeof _bv + &quot;). Was &quot; + _av + &quot; (of type &quot; + typeof _av + &quot;).&quot;);
-}
-
-
-shouldBe(&quot;applicationCache.items.length&quot;, &quot;0&quot;);
-shouldBe(&quot;applicationCache.items.item(0)&quot;, &quot;null&quot;);
-shouldBe(&quot;applicationCache.items.item(1)&quot;, &quot;null&quot;);
-shouldBe(&quot;applicationCache.items.item(0xffffffff)&quot;, &quot;null&quot;);
-shouldBe(&quot;applicationCache.items.item(0xfffffffe)&quot;, &quot;null&quot;);
-shouldBe(&quot;applicationCache.items.item(-1)&quot;, &quot;null&quot;);
-shouldBe(&quot;applicationCache.items.item(-2)&quot;, &quot;null&quot;);
-
-shouldBe(&quot;applicationCache.items[0xfffffffe]&quot;, &quot;undefined&quot;);
-shouldBe(&quot;applicationCache.items[0xffffffff]&quot;, &quot;undefined&quot;);
-
-// The below index access tests give different results in WebKit and Firefox 3.1b2 (undefined vs. empty string).
-shouldBe(&quot;applicationCache.items['0']&quot;, &quot;undefined&quot;);
-shouldBe(&quot;applicationCache.items['']&quot;, &quot;undefined&quot;);
-shouldBe(&quot;applicationCache.items[0]&quot;, &quot;undefined&quot;);
-shouldBe(&quot;applicationCache.items[1]&quot;, &quot;undefined&quot;);
-shouldBe(&quot;applicationCache.items[-1]&quot;, &quot;undefined&quot;);
-shouldBe(&quot;applicationCache.items[-2]&quot;, &quot;undefined&quot;);
-applicationCache.items[100] = &quot;foobar&quot;;
-applicationCache.items['100'] = &quot;foobar&quot;;
-applicationCache.items['foo'] = &quot;bar&quot;;
-shouldBe(&quot;applicationCache.items[100]&quot;, &quot;undefined&quot;);
-shouldBe(&quot;applicationCache.items['100']&quot;, &quot;undefined&quot;);
-
-shouldBe(&quot;applicationCache.items['foo']&quot;, &quot;undefined&quot;);
-shouldBe(&quot;applicationCache.items[0.1]&quot;, &quot;undefined&quot;);
-
-try {
-    applicationCache.hasItem('foo');
-    log(&quot;FAIL: hasItem didn't raise an exception&quot;);
-} catch (ex) {
-    if (ex.code == 11)
-        log(&quot;PASS: hasItem raised INVALID_STATE_ERR&quot;);
-    else
-        log(&quot;FAIL: hasItem raised unexpected exception &quot; + ex);
-}
-
-try {
-    applicationCache.add('foo');
-    log(&quot;FAIL: add didn't raise an exception&quot;);
-} catch (ex) {
-    if (ex.code == 11)
-        log(&quot;PASS: add raised INVALID_STATE_ERR&quot;);
-    else
-        log(&quot;FAIL: add raised unexpected exception &quot; + ex);
-}
-
-try {
-    applicationCache.remove('bar');
-    log(&quot;FAIL: remove didn't raise an exception&quot;);
-} catch (ex) {
-    if (ex.code == 11)
-        log(&quot;PASS: remove raised INVALID_STATE_ERR&quot;);
-    else
-        log(&quot;FAIL: remove raised unexpected exception &quot; + ex);
-}
-
-shouldBe(&quot;applicationCache.items.length&quot;, &quot;0&quot;);
-
-
-
-log(&quot;DONE&quot;);
-
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;/body&gt;
</del></span></pre></div>
<a id="trunkLayoutTestshttptestsmultipartwinboundarycrashhtmlfromrev211348trunkLayoutTestshttptestsmultipartwinboundarycrashhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html (from rev 211348, trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html                                (rev 0)
+++ trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;script&gt;
+    if (window.testRunner)
+        testRunner.dumpAsText();
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;Test for &lt;i&gt;&lt;a href=&quot;http://bugs.webkit.org/show_bug.cgi?id=14516&quot;&gt;http://bugs.webkit.org/show_bug.cgi?id=14516&lt;/a&gt;
+crash loading multipart/x-mixed-replace data on windows safari&lt;/i&gt;&lt;/p&gt;
+&lt;p&gt;If WebKit does not crash when loading this img, then it passed.&lt;/p&gt;
+&lt;img src=&quot;resources/multipart-nodashes.php&quot; /&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestshttptestsmultipartwinboundarycrashhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/multipart/win-boundary-crash.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;script&gt;
-    if (window.testRunner)
-        testRunner.dumpAsText();
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;Test for &lt;i&gt;&lt;a href=&quot;http://bugs.webkit.org/show_bug.cgi?id=14516&quot;&gt;http://bugs.webkit.org/show_bug.cgi?id=14516&lt;/a&gt;
-crash loading multipart/x-mixed-replace data on windows safari&lt;/i&gt;&lt;/p&gt;
-&lt;p&gt;If WebKit does not crash when loading this img, then it passed.&lt;/p&gt;
-&lt;img src=&quot;resources/multipart-nodashes.php&quot; /&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationpostgobackrepostpolicyhtmlfromrev211348trunkLayoutTestshttptestsnavigationpostgobackrepostpolicyhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html (from rev 211348, trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html                                (rev 0)
+++ trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;script&gt;
+    
+if (window.testRunner) {
+    testRunner.dumpAsText();
+    testRunner.waitUntilDone();
+}
+    
+function loaded()
+{    
+    document.getElementById(&quot;testform&quot;).submit();
+}
+
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;loaded();&quot;&gt;
+
+&lt;form id=&quot;testform&quot; action=&quot;resources/post-target-policy-test.php&quot; method=&quot;post&quot;&gt;
+&lt;input id=&quot;somefield&quot; type=&quot;text&quot; value=&quot;form data&quot;&gt;
+&lt;/form&gt;
+
+https://bugs.webkit.org/show_bug.cgi?id=22194 - Should be no &quot;form resubmission&quot; nag after navigating back in some cases.&lt;br&gt;
+This test does some form posts then navigates back.  There should be no form resubmission nag at the last step.
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationpostgobackrepostpolicyhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/navigation/post-goback-repost-policy.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,26 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;script&gt;
-    
-if (window.testRunner) {
-    testRunner.dumpAsText();
-    testRunner.waitUntilDone();
-}
-    
-function loaded()
-{    
-    document.getElementById(&quot;testform&quot;).submit();
-}
-
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;loaded();&quot;&gt;
-
-&lt;form id=&quot;testform&quot; action=&quot;resources/post-target-policy-test.php&quot; method=&quot;post&quot;&gt;
-&lt;input id=&quot;somefield&quot; type=&quot;text&quot; value=&quot;form data&quot;&gt;
-&lt;/form&gt;
-
-https://bugs.webkit.org/show_bug.cgi?id=22194 - Should be no &quot;form resubmission&quot; nag after navigating back in some cases.&lt;br&gt;
-This test does some form posts then navigates back.  There should be no form resubmission nag at the last step.
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationsuccess200framesgobackhtmlfromrev211348trunkLayoutTestshttptestsnavigationsuccess200framesgobackhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html (from rev 211348, trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html                                (rev 0)
+++ trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+&lt;script type=&quot;text/javascript&quot; src=&quot;resources/testcode.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+    runBackTest(&quot;resources/frameset.pl?frameURL=success200.html&quot;, 1, &quot;none&quot;);
+&lt;/script&gt;
+This page just kicks off a test, and should not appear in the expected test output.
+
+&lt;br&gt; 
+DISABLED due to http://bugzilla.opendarwin.org/show_bug.cgi?id=10161
+It probably make sense to add variants for some of the other nav techniques,
+like the various redirects, once this gets fixed.
+
</ins></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationsuccess200framesgobackhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/navigation/success200-frames-goback.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,11 +0,0 @@
</span><del>-&lt;script type=&quot;text/javascript&quot; src=&quot;resources/testcode.js&quot;&gt;&lt;/script&gt;
-&lt;script&gt;
-    runBackTest(&quot;resources/frameset.pl?frameURL=success200.html&quot;, 1, &quot;none&quot;);
-&lt;/script&gt;
-This page just kicks off a test, and should not appear in the expected test output.
-
-&lt;br&gt; 
-DISABLED due to http://bugzilla.opendarwin.org/show_bug.cgi?id=10161
-It probably make sense to add variants for some of the other nav techniques,
-like the various redirects, once this gets fixed.
-
</del></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationsuccess200framesreloadhtmlfromrev211348trunkLayoutTestshttptestsnavigationsuccess200framesreloadhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html (from rev 211348, trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html                                (rev 0)
+++ trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+&lt;script type=&quot;text/javascript&quot; src=&quot;resources/testcode.js&quot;/&gt;
+&lt;script&gt;
+    runReloadTest(&quot;resources/frameset.pl?frameURL=success200.html&quot;, &quot;none&quot;);
+&lt;/script&gt;
+This page just kicks off a test, and should not appear in the expected test output.
+
+&lt;br&gt;
+DISABLED due to http://bugzilla.opendarwin.org/show_bug.cgi?id=10223
</ins></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationsuccess200framesreloadhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/navigation/success200-frames-reload.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,8 +0,0 @@
</span><del>-&lt;script type=&quot;text/javascript&quot; src=&quot;resources/testcode.js&quot;/&gt;
-&lt;script&gt;
-    runReloadTest(&quot;resources/frameset.pl?frameURL=success200.html&quot;, &quot;none&quot;);
-&lt;/script&gt;
-This page just kicks off a test, and should not appear in the expected test output.
-
-&lt;br&gt;
-DISABLED due to http://bugzilla.opendarwin.org/show_bug.cgi?id=10223
</del></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationsuccess200subframeloadgobackhtmlfromrev211348trunkLayoutTestshttptestsnavigationsuccess200subframeloadgobackhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html (from rev 211348, trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html                                (rev 0)
+++ trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+&lt;script type=&quot;text/javascript&quot; src=&quot;resources/testcode.js&quot;/&gt;
+&lt;script&gt;
+    runLoadChildFrameBackTest(&quot;resources/success200.html&quot;, &quot;none&quot;);
+&lt;/script&gt;
+This page just kicks off a test, and should not appear in the expected test output.
+
+&lt;br&gt; 
+DISABLED due to http://bugzilla.opendarwin.org/show_bug.cgi?id=10161
+
</ins></span></pre></div>
<a id="trunkLayoutTestshttptestsnavigationsuccess200subframeloadgobackhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/http/tests/navigation/success200-subframeload-goback.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,9 +0,0 @@
</span><del>-&lt;script type=&quot;text/javascript&quot; src=&quot;resources/testcode.js&quot;/&gt;
-&lt;script&gt;
-    runLoadChildFrameBackTest(&quot;resources/success200.html&quot;, &quot;none&quot;);
-&lt;/script&gt;
-This page just kicks off a test, and should not appear in the expected test output.
-
-&lt;br&gt; 
-DISABLED due to http://bugzilla.opendarwin.org/show_bug.cgi?id=10161
-
</del></span></pre></div>
<a id="trunkLayoutTestsjavalc3ArrayMethodsobject001htmlfromrev211348trunkLayoutTestsjavalc3forinarray001htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html (from rev 211348, trunk/LayoutTests/java/lc3/forin/array-001.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html                                (rev 0)
+++ trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,115 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+if (window.testRunner) {
+    testRunner.overridePreference(&quot;WebKitJavaEnabled&quot;, &quot;1&quot;);
+    testRunner.waitUntilDone();
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;onload()&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;object
+  classid=&quot;clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA&quot;
+  width=500
+  height=200
+  &lt;param name=&quot;codebase&quot; value=&quot;../../../java&quot;&gt;
+  &lt;param name=&quot;code&quot; value=&quot;lc3.class&quot;&gt;
+  &lt;param name=&quot;archive&quot; value=&quot;jstests.jar&quot;&gt;
+  &lt;comment&gt;
+    &lt;embed
+      code=&quot;lc3.class&quot;
+      codebase=&quot;../../../java&quot;
+      archive=&quot;jstests.jar&quot;
+      type=&quot;application/x-java-applet&quot;
+      width=500
+      height=200&gt;
+    &lt;noembed&gt;
+      No Java Support.
+    &lt;/noembed&gt;
+  &lt;/comment&gt;
+&lt;/object&gt;
+
+
+&lt;script&gt;
+function startTest()
+{
+    window.applet = document.getElementsByTagName(&quot;embed&quot;)[0];
+    if (!applet.createQAObject)
+        window.applet = document.getElementsByTagName(&quot;object&quot;)[0];
+
+    debug(TITLE + &quot;\n&quot;);
+}
+
+function shouldBeWithErrorCheck(_a, _b)
+{
+    // Don't want full stack traces from Java exceptions.
+    if (window.testRunner) {
+        try {
+            eval(_a);
+        } catch (ex) {
+            if (/Caused by: /.test(ex)) {
+                testFailed(_a + &quot;: Exception raised&quot;);
+                return;
+            }
+        }
+    }
+
+    var b_eval;
+    try {
+        b_eval = eval(_b);
+    } catch (ex) {
+        testFailed(_b + &quot;: &quot; + ex);
+        return;
+    }
+
+    if (b_eval == &quot;error&quot;)
+        shouldThrow(_a);
+    else
+        shouldBe(_a, _b);
+}
+
+function wkTestStringToJavaByteArray(string)
+{
+    return applet.stringToByteArray(string);
+}
+
+function appendScript(text)
+{
+    var el = document.createElement(&quot;script&quot;)
+    el.appendChild = document.createTextNode(text);
+    document.body.appendChild(el);
+}
+
+function onload()
+{
+    try {
+        var req = new XMLHttpRequest();
+        req.open(&quot;GET&quot;, window.location.pathname.replace(/html$/, &quot;js&quot;), false);
+        if (req.overrideMimeType)
+            req.overrideMimeType(&quot;text/plain&quot;);
+        req.send();
+
+        if (!req.responseText.length)
+            throw &quot;could not load test script&quot;;
+
+        var scriptElement = document.createElement(&quot;script&quot;)
+        scriptElement.appendChild(document.createTextNode(
+            req.responseText + &quot;\n&quot;));
+        document.body.appendChild(scriptElement);
+    } catch (ex) {
+        testFailed(&quot;Could not run test: &quot; + ex);
+    }
+
+    scriptElement = document.createElement(&quot;script&quot;)
+    scriptElement.src = '../../../resources/js-test-post-async.js'
+    document.body.appendChild(scriptElement);
+}
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsjavalc3ArrayMethodsobject001htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,115 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset=&quot;utf-8&quot;&gt;
-&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;script&gt;
-if (window.testRunner) {
-    testRunner.overridePreference(&quot;WebKitJavaEnabled&quot;, &quot;1&quot;);
-    testRunner.waitUntilDone();
-}
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;onload()&quot;&gt;
-
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-
-&lt;object
-  classid=&quot;clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA&quot;
-  width=500
-  height=200
-  &lt;param name=&quot;codebase&quot; value=&quot;../../../java&quot;&gt;
-  &lt;param name=&quot;code&quot; value=&quot;lc3.class&quot;&gt;
-  &lt;param name=&quot;archive&quot; value=&quot;jstests.jar&quot;&gt;
-  &lt;comment&gt;
-    &lt;embed
-      code=&quot;lc3.class&quot;
-      codebase=&quot;../../../java&quot;
-      archive=&quot;jstests.jar&quot;
-      type=&quot;application/x-java-applet&quot;
-      width=500
-      height=200&gt;
-    &lt;noembed&gt;
-      No Java Support.
-    &lt;/noembed&gt;
-  &lt;/comment&gt;
-&lt;/object&gt;
-
-
-&lt;script&gt;
-function startTest()
-{
-    window.applet = document.getElementsByTagName(&quot;embed&quot;)[0];
-    if (!applet.createQAObject)
-        window.applet = document.getElementsByTagName(&quot;object&quot;)[0];
-
-    debug(TITLE + &quot;\n&quot;);
-}
-
-function shouldBeWithErrorCheck(_a, _b)
-{
-    // Don't want full stack traces from Java exceptions.
-    if (window.testRunner) {
-        try {
-            eval(_a);
-        } catch (ex) {
-            if (/Caused by: /.test(ex)) {
-                testFailed(_a + &quot;: Exception raised&quot;);
-                return;
-            }
-        }
-    }
-
-    var b_eval;
-    try {
-        b_eval = eval(_b);
-    } catch (ex) {
-        testFailed(_b + &quot;: &quot; + ex);
-        return;
-    }
-
-    if (b_eval == &quot;error&quot;)
-        shouldThrow(_a);
-    else
-        shouldBe(_a, _b);
-}
-
-function wkTestStringToJavaByteArray(string)
-{
-    return applet.stringToByteArray(string);
-}
-
-function appendScript(text)
-{
-    var el = document.createElement(&quot;script&quot;)
-    el.appendChild = document.createTextNode(text);
-    document.body.appendChild(el);
-}
-
-function onload()
-{
-    try {
-        var req = new XMLHttpRequest();
-        req.open(&quot;GET&quot;, window.location.pathname.replace(/html$/, &quot;js&quot;), false);
-        if (req.overrideMimeType)
-            req.overrideMimeType(&quot;text/plain&quot;);
-        req.send();
-
-        if (!req.responseText.length)
-            throw &quot;could not load test script&quot;;
-
-        var scriptElement = document.createElement(&quot;script&quot;)
-        scriptElement.appendChild(document.createTextNode(
-            req.responseText + &quot;\n&quot;));
-        document.body.appendChild(scriptElement);
-    } catch (ex) {
-        testFailed(&quot;Could not run test: &quot; + ex);
-    }
-
-    scriptElement = document.createElement(&quot;script&quot;)
-    scriptElement.src = '../../../resources/js-test-post-async.js'
-    document.body.appendChild(scriptElement);
-}
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsjavalc3forinarray001htmlfromrev211348trunkLayoutTestsjavalc3ArrayMethodsobject001htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/java/lc3/forin/array-001.html (from rev 211348, trunk/LayoutTests/java/lc3/ArrayMethods/object-001.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/java/lc3/forin/array-001.html                                (rev 0)
+++ trunk/LayoutTests/java/lc3/forin/array-001.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,115 @@
</span><ins>+&lt;!DOCTYPE html&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset=&quot;utf-8&quot;&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;script&gt;
+if (window.testRunner) {
+    testRunner.overridePreference(&quot;WebKitJavaEnabled&quot;, &quot;1&quot;);
+    testRunner.waitUntilDone();
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;onload()&quot;&gt;
+
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;object
+  classid=&quot;clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA&quot;
+  width=500
+  height=200
+  &lt;param name=&quot;codebase&quot; value=&quot;../../../java&quot;&gt;
+  &lt;param name=&quot;code&quot; value=&quot;lc3.class&quot;&gt;
+  &lt;param name=&quot;archive&quot; value=&quot;jstests.jar&quot;&gt;
+  &lt;comment&gt;
+    &lt;embed
+      code=&quot;lc3.class&quot;
+      codebase=&quot;../../../java&quot;
+      archive=&quot;jstests.jar&quot;
+      type=&quot;application/x-java-applet&quot;
+      width=500
+      height=200&gt;
+    &lt;noembed&gt;
+      No Java Support.
+    &lt;/noembed&gt;
+  &lt;/comment&gt;
+&lt;/object&gt;
+
+
+&lt;script&gt;
+function startTest()
+{
+    window.applet = document.getElementsByTagName(&quot;embed&quot;)[0];
+    if (!applet.createQAObject)
+        window.applet = document.getElementsByTagName(&quot;object&quot;)[0];
+
+    debug(TITLE + &quot;\n&quot;);
+}
+
+function shouldBeWithErrorCheck(_a, _b)
+{
+    // Don't want full stack traces from Java exceptions.
+    if (window.testRunner) {
+        try {
+            eval(_a);
+        } catch (ex) {
+            if (/Caused by: /.test(ex)) {
+                testFailed(_a + &quot;: Exception raised&quot;);
+                return;
+            }
+        }
+    }
+
+    var b_eval;
+    try {
+        b_eval = eval(_b);
+    } catch (ex) {
+        testFailed(_b + &quot;: &quot; + ex);
+        return;
+    }
+
+    if (b_eval == &quot;error&quot;)
+        shouldThrow(_a);
+    else
+        shouldBe(_a, _b);
+}
+
+function wkTestStringToJavaByteArray(string)
+{
+    return applet.stringToByteArray(string);
+}
+
+function appendScript(text)
+{
+    var el = document.createElement(&quot;script&quot;)
+    el.appendChild = document.createTextNode(text);
+    document.body.appendChild(el);
+}
+
+function onload()
+{
+    try {
+        var req = new XMLHttpRequest();
+        req.open(&quot;GET&quot;, window.location.pathname.replace(/html$/, &quot;js&quot;), false);
+        if (req.overrideMimeType)
+            req.overrideMimeType(&quot;text/plain&quot;);
+        req.send();
+
+        if (!req.responseText.length)
+            throw &quot;could not load test script&quot;;
+
+        var scriptElement = document.createElement(&quot;script&quot;)
+        scriptElement.appendChild(document.createTextNode(
+            req.responseText + &quot;\n&quot;));
+        document.body.appendChild(scriptElement);
+    } catch (ex) {
+        testFailed(&quot;Could not run test: &quot; + ex);
+    }
+
+    scriptElement = document.createElement(&quot;script&quot;)
+    scriptElement.src = '../../../resources/js-test-post-async.js'
+    document.body.appendChild(scriptElement);
+}
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsjavalc3forinarray001htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/java/lc3/forin/array-001.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/java/lc3/forin/array-001.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/java/lc3/forin/array-001.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,115 +0,0 @@
</span><del>-&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset=&quot;utf-8&quot;&gt;
-&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;script&gt;
-if (window.testRunner) {
-    testRunner.overridePreference(&quot;WebKitJavaEnabled&quot;, &quot;1&quot;);
-    testRunner.waitUntilDone();
-}
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;onload()&quot;&gt;
-
-&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
-
-&lt;object
-  classid=&quot;clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA&quot;
-  width=500
-  height=200
-  &lt;param name=&quot;codebase&quot; value=&quot;../../../java&quot;&gt;
-  &lt;param name=&quot;code&quot; value=&quot;lc3.class&quot;&gt;
-  &lt;param name=&quot;archive&quot; value=&quot;jstests.jar&quot;&gt;
-  &lt;comment&gt;
-    &lt;embed
-      code=&quot;lc3.class&quot;
-      codebase=&quot;../../../java&quot;
-      archive=&quot;jstests.jar&quot;
-      type=&quot;application/x-java-applet&quot;
-      width=500
-      height=200&gt;
-    &lt;noembed&gt;
-      No Java Support.
-    &lt;/noembed&gt;
-  &lt;/comment&gt;
-&lt;/object&gt;
-
-
-&lt;script&gt;
-function startTest()
-{
-    window.applet = document.getElementsByTagName(&quot;embed&quot;)[0];
-    if (!applet.createQAObject)
-        window.applet = document.getElementsByTagName(&quot;object&quot;)[0];
-
-    debug(TITLE + &quot;\n&quot;);
-}
-
-function shouldBeWithErrorCheck(_a, _b)
-{
-    // Don't want full stack traces from Java exceptions.
-    if (window.testRunner) {
-        try {
-            eval(_a);
-        } catch (ex) {
-            if (/Caused by: /.test(ex)) {
-                testFailed(_a + &quot;: Exception raised&quot;);
-                return;
-            }
-        }
-    }
-
-    var b_eval;
-    try {
-        b_eval = eval(_b);
-    } catch (ex) {
-        testFailed(_b + &quot;: &quot; + ex);
-        return;
-    }
-
-    if (b_eval == &quot;error&quot;)
-        shouldThrow(_a);
-    else
-        shouldBe(_a, _b);
-}
-
-function wkTestStringToJavaByteArray(string)
-{
-    return applet.stringToByteArray(string);
-}
-
-function appendScript(text)
-{
-    var el = document.createElement(&quot;script&quot;)
-    el.appendChild = document.createTextNode(text);
-    document.body.appendChild(el);
-}
-
-function onload()
-{
-    try {
-        var req = new XMLHttpRequest();
-        req.open(&quot;GET&quot;, window.location.pathname.replace(/html$/, &quot;js&quot;), false);
-        if (req.overrideMimeType)
-            req.overrideMimeType(&quot;text/plain&quot;);
-        req.send();
-
-        if (!req.responseText.length)
-            throw &quot;could not load test script&quot;;
-
-        var scriptElement = document.createElement(&quot;script&quot;)
-        scriptElement.appendChild(document.createTextNode(
-            req.responseText + &quot;\n&quot;));
-        document.body.appendChild(scriptElement);
-    } catch (ex) {
-        testFailed(&quot;Could not run test: &quot; + ex);
-    }
-
-    scriptElement = document.createElement(&quot;script&quot;)
-    scriptElement.src = '../../../resources/js-test-post-async.js'
-    document.body.appendChild(scriptElement);
-}
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsjqueryeffectshtmlfromrev211348trunkLayoutTestsjqueryeffectshtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/jquery/effects.html (from rev 211348, trunk/LayoutTests/jquery/effects.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/jquery/effects.html                                (rev 0)
+++ trunk/LayoutTests/jquery/effects.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,2 @@
</span><ins>+&lt;script src=&quot;resources/helper.js&quot;&gt;&lt;/script&gt;
+&lt;iframe src=&quot;resources/test/index.html?effects&quot;&gt;&lt;/iframe&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsjqueryeffectshtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/jquery/effects.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/jquery/effects.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/jquery/effects.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,2 +0,0 @@
</span><del>-&lt;script src=&quot;resources/helper.js&quot;&gt;&lt;/script&gt;
-&lt;iframe src=&quot;resources/test/index.html?effects&quot;&gt;&lt;/iframe&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsjsgarbagecollectafterstringappendshtmlfromrev211348trunkLayoutTestsjsgarbagecollectafterstringappendshtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/js/garbage-collect-after-string-appends.html (from rev 211348, trunk/LayoutTests/js/garbage-collect-after-string-appends.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/garbage-collect-after-string-appends.html                                (rev 0)
+++ trunk/LayoutTests/js/garbage-collect-after-string-appends.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;script src=&quot;resources/garbage-collect-after-string-appends.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsjsgarbagecollectafterstringappendshtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/garbage-collect-after-string-appends.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/garbage-collect-after-string-appends.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/js/garbage-collect-after-string-appends.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,10 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;script src=&quot;resources/garbage-collect-after-string-appends.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsjskdeDatehtmlfromrev211348trunkLayoutTestsjskdeDatehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/js/kde/Date.html (from rev 211348, trunk/LayoutTests/js/kde/Date.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/kde/Date.html                                (rev 0)
+++ trunk/LayoutTests/js/kde/Date.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;script&gt;
+description(&quot;KDE JS Test&quot;);
+&lt;/script&gt;
+&lt;script src=&quot;resources/Date.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsjskdeDatehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/kde/Date.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/kde/Date.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/js/kde/Date.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,13 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;script src=&quot;../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;script&gt;
-description(&quot;KDE JS Test&quot;);
-&lt;/script&gt;
-&lt;script src=&quot;resources/Date.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsjsresourcesgarbagecollectafterstringappendsjsfromrev211348trunkLayoutTestsjsresourcesgarbagecollectafterstringappendsjsdisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js (from rev 211348, trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js                                (rev 0)
+++ trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,37 @@
</span><ins>+description(
+&quot;This test checks whether the GC collects after string appends.&quot;
+);
+
+// FIXME: This test appears to be highly tied to the details of how JS strings report memory
+// cost to the garbage collector.  It should be improved to be less tied to these implementation details.
+// &lt;https://bugs.webkit.org/show_bug.cgi?id=20871&gt;
+
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+if (window.GCController)
+    GCController.collect();
+
+
+// str has 150 chars in it (which is greater than the limit of the GC to ignore which I believe is at 128).
+var str = &quot;123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890&quot;;
+var count = 500;
+for (var i = 0; i &lt; count; ++i) {
+    str += &quot;b&quot;;
+}
+
+// str has 128 chars in it.
+str = &quot;123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890&quot;;
+count = 10;
+for (var i = 0; i &lt; count; ++i) {
+    str += str;
+}
+
+var jsObjCount = 0;
+if (window.GCController)
+    jsObjCount = GCController.getJSObjectCount();
+
+if (jsObjCount &lt;= 500 &amp;&amp; jsObjCount &gt; 0)
+    testPassed(&quot;Garbage Collector triggered&quot;)
+else
+    testFailed(&quot;Garbage Collector NOT triggered. Number of JSObjects: &quot; + jsObjCount);
</ins></span></pre></div>
<a id="trunkLayoutTestsjsresourcesgarbagecollectafterstringappendsjsdisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/js/resources/garbage-collect-after-string-appends.js-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,37 +0,0 @@
</span><del>-description(
-&quot;This test checks whether the GC collects after string appends.&quot;
-);
-
-// FIXME: This test appears to be highly tied to the details of how JS strings report memory
-// cost to the garbage collector.  It should be improved to be less tied to these implementation details.
-// &lt;https://bugs.webkit.org/show_bug.cgi?id=20871&gt;
-
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-if (window.GCController)
-    GCController.collect();
-
-
-// str has 150 chars in it (which is greater than the limit of the GC to ignore which I believe is at 128).
-var str = &quot;123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890&quot;;
-var count = 500;
-for (var i = 0; i &lt; count; ++i) {
-    str += &quot;b&quot;;
-}
-
-// str has 128 chars in it.
-str = &quot;123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890&quot;;
-count = 10;
-for (var i = 0; i &lt; count; ++i) {
-    str += str;
-}
-
-var jsObjCount = 0;
-if (window.GCController)
-    jsObjCount = GCController.getJSObjectCount();
-
-if (jsObjCount &lt;= 500 &amp;&amp; jsObjCount &gt; 0)
-    testPassed(&quot;Garbage Collector triggered&quot;)
-else
-    testFailed(&quot;Garbage Collector NOT triggered. Number of JSObjects: &quot; + jsObjCount);
</del></span></pre></div>
<a id="trunkLayoutTestsjsstringconcatenateoutofmemoryhtmlfromrev211348trunkLayoutTestsjsstringconcatenateoutofmemoryhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/js/string-concatenate-outofmemory.html (from rev 211348, trunk/LayoutTests/js/string-concatenate-outofmemory.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/string-concatenate-outofmemory.html                                (rev 0)
+++ trunk/LayoutTests/js/string-concatenate-outofmemory.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,10 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body&gt;
+&lt;script src=&quot;resources/string-concatenate-outofmemory.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsjsstringconcatenateoutofmemoryhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/js/string-concatenate-outofmemory.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/js/string-concatenate-outofmemory.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/js/string-concatenate-outofmemory.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,10 +0,0 @@
</span><del>-&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
-&lt;html&gt;
-&lt;head&gt;
-&lt;script src=&quot;../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
-&lt;/head&gt;
-&lt;body&gt;
-&lt;script src=&quot;resources/string-concatenate-outofmemory.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestsmediavideocanvashtmlfromrev211348trunkLayoutTestsmediavideocanvashtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/media/video-canvas.html (from rev 211348, trunk/LayoutTests/media/video-canvas.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/video-canvas.html                                (rev 0)
+++ trunk/LayoutTests/media/video-canvas.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,85 @@
</span><ins>+&lt;html&gt;
+    &lt;head&gt;
+        &lt;title&gt;drawing &amp;lt;video&amp;gt; to &amp;lt;canvas&amp;gt;&lt;/title&gt;
+        &lt;script src=../http/tests/media/video-test.js&gt;&lt;/script&gt;
+
+        &lt;script&gt;
+            var ctx;
+            var results = {
+                current: 0,
+                values: [
+                    { time:0, r:255, g:255, b:0 },
+                    { time:2, r:8, g:0, b:226 },
+                    { time:4, r:0, g:24, b:197 },
+                    { time:6, r:0, g:46, b:166 },
+                    { time:8, r:0, g:66, b:136 },
+                    { time:10, r:0, g:85, b:112 },
+                ]
+            };
+
+            var width;
+            var height;
+
+            function testPixel()
+            {
+                var expected = results.values[results.current];
+                if (expected.time) 
+                    ctx.drawImage(video, 0, 0, width, height);
+
+                var frame = ctx.getImageData(0, 0, width, height);
+                r = frame.data[4 * 2 * width + 16 + 0];
+                g = frame.data[4 * 2 * width + 16 + 1];
+                b = frame.data[4 * 2 * width + 16 + 2];
+
+                testExpected(&quot;r&quot;, expected.r);
+                testExpected(&quot;g&quot;, expected.g);
+                testExpected(&quot;b&quot;, expected.b);
+
+                if (++results.current &gt;= results.values.length)
+                    endTest();
+                else
+                    setTimeout(testFrame, 0);
+            }
+
+            function testFrame()
+            {
+                video.pause();
+                consoleWrite(&quot;&quot;);
+                var expected = results.values[results.current];
+                if (expected.time) 
+                    run(&quot;video.currentTime = &quot; + expected.time);
+                setTimeout(testPixel, 100);
+            }
+
+            function loadedmetadata()
+            {
+                width = video.videoWidth / 2;
+                height = video.videoHeight / 2;
+
+                ctx = canvas.getContext(&quot;2d&quot;);
+                ctx.fillStyle = 'yellow'; 
+                ctx.fillRect(0, 0, width, height);
+                testFrame();
+            }
+
+            function start()
+            {
+                findMediaElement();
+                canvas = document.getElementsByTagName('canvas')[0];
+                waitForEvent('loadedmetadata', loadedmetadata);
+                run(&quot;video.src = 'content/counting.mp4'&quot;);
+            }
+        &lt;/script&gt;
+    &lt;/head&gt;
+
+    &lt;body onload=&quot;start()&quot; &gt;
+
+    &lt;div&gt;
+        &lt;video controls&gt;&lt;/video&gt;
+        &lt;canvas width=&quot;160&quot; height=&quot;120&quot; &gt;&lt;/canvas&gt;
+    &lt;/div&gt;
+
+    &lt;p&gt;Test &amp;lt;video&amp;gt; as a source for &amp;lt;canvas&amp;gt;.&lt;/p&gt;
+    
+    &lt;/body&gt;
+&lt;/html&gt;
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsmediavideocanvashtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/media/video-canvas.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/media/video-canvas.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/media/video-canvas.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,85 +0,0 @@
</span><del>-&lt;html&gt;
-    &lt;head&gt;
-        &lt;title&gt;drawing &amp;lt;video&amp;gt; to &amp;lt;canvas&amp;gt;&lt;/title&gt;
-        &lt;script src=../http/tests/media/video-test.js&gt;&lt;/script&gt;
-
-        &lt;script&gt;
-            var ctx;
-            var results = {
-                current: 0,
-                values: [
-                    { time:0, r:255, g:255, b:0 },
-                    { time:2, r:8, g:0, b:226 },
-                    { time:4, r:0, g:24, b:197 },
-                    { time:6, r:0, g:46, b:166 },
-                    { time:8, r:0, g:66, b:136 },
-                    { time:10, r:0, g:85, b:112 },
-                ]
-            };
-
-            var width;
-            var height;
-
-            function testPixel()
-            {
-                var expected = results.values[results.current];
-                if (expected.time) 
-                    ctx.drawImage(video, 0, 0, width, height);
-
-                var frame = ctx.getImageData(0, 0, width, height);
-                r = frame.data[4 * 2 * width + 16 + 0];
-                g = frame.data[4 * 2 * width + 16 + 1];
-                b = frame.data[4 * 2 * width + 16 + 2];
-
-                testExpected(&quot;r&quot;, expected.r);
-                testExpected(&quot;g&quot;, expected.g);
-                testExpected(&quot;b&quot;, expected.b);
-
-                if (++results.current &gt;= results.values.length)
-                    endTest();
-                else
-                    setTimeout(testFrame, 0);
-            }
-
-            function testFrame()
-            {
-                video.pause();
-                consoleWrite(&quot;&quot;);
-                var expected = results.values[results.current];
-                if (expected.time) 
-                    run(&quot;video.currentTime = &quot; + expected.time);
-                setTimeout(testPixel, 100);
-            }
-
-            function loadedmetadata()
-            {
-                width = video.videoWidth / 2;
-                height = video.videoHeight / 2;
-
-                ctx = canvas.getContext(&quot;2d&quot;);
-                ctx.fillStyle = 'yellow'; 
-                ctx.fillRect(0, 0, width, height);
-                testFrame();
-            }
-
-            function start()
-            {
-                findMediaElement();
-                canvas = document.getElementsByTagName('canvas')[0];
-                waitForEvent('loadedmetadata', loadedmetadata);
-                run(&quot;video.src = 'content/counting.mp4'&quot;);
-            }
-        &lt;/script&gt;
-    &lt;/head&gt;
-
-    &lt;body onload=&quot;start()&quot; &gt;
-
-    &lt;div&gt;
-        &lt;video controls&gt;&lt;/video&gt;
-        &lt;canvas width=&quot;160&quot; height=&quot;120&quot; &gt;&lt;/canvas&gt;
-    &lt;/div&gt;
-
-    &lt;p&gt;Test &amp;lt;video&amp;gt; as a source for &amp;lt;canvas&amp;gt;.&lt;/p&gt;
-    
-    &lt;/body&gt;
-&lt;/html&gt;
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacpluginspluginDocumentViewdeallocateddataSourcehtmlfromrev211348trunkLayoutTestsplatformmacpluginspluginDocumentViewdeallocateddataSourcehtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html (from rev 211348, trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html                                (rev 0)
+++ trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,45 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;script&gt;
+function finishTest()
+{
+    document.getElementById('plugin').src = 'about:blank';
+    if (window.testRunner)
+        testRunner.notifyDone();
+}
+
+function test()
+{
+    if (window.testRunner) {
+        testRunner.waitUntilDone();
+        testRunner.dumpAsText();
+    }
+
+    var i = 0;
+    var found = false;
+    while (!found &amp;&amp; i &lt; navigator.plugins.length) {
+        if (navigator.plugins[i].filename == &quot;QuickTime Plugin.webplugin&quot;)
+            found = true;
+        i++;
+    }
+    if (!found) {
+        document.getElementById(&quot;result&quot;).innerText = &quot;Test cannot run: QuickTime Plugin.webplugin missing.&quot;;
+        if (window.testRunner)
+            testRunner.notifyDone();
+        return;
+    }
+    setTimeout(finishTest, 0);
+}
+&lt;/script&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;test();&quot;&gt;
+&lt;p&gt;
+    Test for regression against &lt;i&gt;&lt;a href=&quot;http://bugzilla.opendarwin.org/show_bug.cgi?id=8594&quot;&gt;http://bugzilla.opendarwin.org/show_bug.cgi?id=8594&lt;/a&gt;
+    REGRESSION: Exception on closing a page containing (just) an mp3&lt;/i&gt;.
+&lt;/p&gt;
+&lt;p id=&quot;result&quot;&gt;
+    No crash (or exception) means PASS.
+&lt;/p&gt;
+&lt;iframe id=&quot;plugin&quot; src=&quot;resources/orange.mov&quot;&gt;&lt;/iframe&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacpluginspluginDocumentViewdeallocateddataSourcehtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/platform/mac/plugins/pluginDocumentView-deallocated-dataSource.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,45 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;script&gt;
-function finishTest()
-{
-    document.getElementById('plugin').src = 'about:blank';
-    if (window.testRunner)
-        testRunner.notifyDone();
-}
-
-function test()
-{
-    if (window.testRunner) {
-        testRunner.waitUntilDone();
-        testRunner.dumpAsText();
-    }
-
-    var i = 0;
-    var found = false;
-    while (!found &amp;&amp; i &lt; navigator.plugins.length) {
-        if (navigator.plugins[i].filename == &quot;QuickTime Plugin.webplugin&quot;)
-            found = true;
-        i++;
-    }
-    if (!found) {
-        document.getElementById(&quot;result&quot;).innerText = &quot;Test cannot run: QuickTime Plugin.webplugin missing.&quot;;
-        if (window.testRunner)
-            testRunner.notifyDone();
-        return;
-    }
-    setTimeout(finishTest, 0);
-}
-&lt;/script&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;test();&quot;&gt;
-&lt;p&gt;
-    Test for regression against &lt;i&gt;&lt;a href=&quot;http://bugzilla.opendarwin.org/show_bug.cgi?id=8594&quot;&gt;http://bugzilla.opendarwin.org/show_bug.cgi?id=8594&lt;/a&gt;
-    REGRESSION: Exception on closing a page containing (just) an mp3&lt;/i&gt;.
-&lt;/p&gt;
-&lt;p id=&quot;result&quot;&gt;
-    No crash (or exception) means PASS.
-&lt;/p&gt;
-&lt;iframe id=&quot;plugin&quot; src=&quot;resources/orange.mov&quot;&gt;&lt;/iframe&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315131_decodeURIS15131_A25_T1htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315131_decodeURIS15131_A25_T1htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,173 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S15.1.3.1_A2.5_T1&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S15.1.3.1_A2.5_T1;
+ * @section: 15.1.3.1;
+ * @assertion: If B1 = 11110xxx ([0xF0 - 0x0F4]), B2, B3, B4 = 10xxxxxxx ([0x80 - 0xBF]), without [B1, B2] = [0xF0, 0x80 - 0x9F], [0xF4, 0x90 - 0xBF], return UTF8(B1, B2, B3, B4);
+ * @description: Complex tests, use RFC 3629;
+*/
+
+errorCount = 0;
+count = 0;
+var indexP;
+var indexO = 0;
+
+for (indexB1 = 0xF0; indexB1 &lt;= 0xF4; indexB1++) {     
+  var hexB1 = decimalToHexString(indexB1);
+  for (indexB2 = 0x80; indexB2 &lt;= 0xBF; indexB2++) {
+    if ((indexB1 === 0xF0) &amp;&amp; (indexB2 &lt;= 0x9F)) continue;            
+    if ((indexB1 === 0xF4) &amp;&amp; (indexB2 &gt;= 0x90)) continue;
+    var hexB2 = decimalToHexString(indexB2);
+    for (indexB3 = 0x80; indexB3 &lt;= 0xBF; indexB3++) {
+      var hexB3 = decimalToHexString(indexB3);
+      for (indexB4 = 0x80; indexB4 &lt;= 0xBF; indexB4++) {
+        var hexB4 = decimalToHexString(indexB4);
+        count++;
+        var index = (indexB1 &amp; 0x07) * 0x40000 + (indexB2 &amp; 0x3F) * 0x1000 + (indexB3 &amp; 0x3F) * 0x40 + (indexB4 &amp; 0x3F);
+        var L = ((index - 0x10000) &amp; 0x03FF) + 0xDC00;
+        var H = (((index - 0x10000) &gt;&gt; 10) &amp; 0x03FF) + 0xD800;  
+        try {
+          if (decodeURI(&quot;%&quot; + hexB1.substring(3) + &quot;%&quot; + hexB2.substring(3) + &quot;%&quot; + hexB3.substring(3) + &quot;%&quot; + hexB4.substring(3)) === String.fromCharCode(H) + String.fromCharCode(L)) continue;        
+        } catch (e) {}   
+        if (indexO === 0) { 
+          indexO = index;
+        } else {
+          if ((index - indexP) !== 1) {             
+            if ((indexP - indexO) !== 0) {
+              var hexP = decimalToHexString(indexP);
+              var hexO = decimalToHexString(indexO);
+              testFailed('#' + hexO + '-' + hexP + ' ');
+            } 
+            else {
+              var hexP = decimalToHexString(indexP);
+              testFailed('#' + hexP + ' ');
+            }  
+            indexO = index;
+          }         
+        }
+        indexP = index;
+        errorCount++;  
+      }
+    }     
+  }
+}
+
+if (errorCount &gt; 0) {
+  if ((indexP - indexO) !== 0) {
+    var hexP = decimalToHexString(indexP);
+    var hexO = decimalToHexString(indexO);
+    testFailed('#' + hexO + '-' + hexP + ' ');
+  } else {
+    var hexP = decimalToHexString(indexP);
+    testFailed('#' + hexP + ' ');
+  }     
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 4; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315131_decodeURIS15131_A25_T1htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.1_decodeURI/S15.1.3.1_A2.5_T1.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,173 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S15.1.3.1_A2.5_T1&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S15.1.3.1_A2.5_T1;
- * @section: 15.1.3.1;
- * @assertion: If B1 = 11110xxx ([0xF0 - 0x0F4]), B2, B3, B4 = 10xxxxxxx ([0x80 - 0xBF]), without [B1, B2] = [0xF0, 0x80 - 0x9F], [0xF4, 0x90 - 0xBF], return UTF8(B1, B2, B3, B4);
- * @description: Complex tests, use RFC 3629;
-*/
-
-errorCount = 0;
-count = 0;
-var indexP;
-var indexO = 0;
-
-for (indexB1 = 0xF0; indexB1 &lt;= 0xF4; indexB1++) {     
-  var hexB1 = decimalToHexString(indexB1);
-  for (indexB2 = 0x80; indexB2 &lt;= 0xBF; indexB2++) {
-    if ((indexB1 === 0xF0) &amp;&amp; (indexB2 &lt;= 0x9F)) continue;            
-    if ((indexB1 === 0xF4) &amp;&amp; (indexB2 &gt;= 0x90)) continue;
-    var hexB2 = decimalToHexString(indexB2);
-    for (indexB3 = 0x80; indexB3 &lt;= 0xBF; indexB3++) {
-      var hexB3 = decimalToHexString(indexB3);
-      for (indexB4 = 0x80; indexB4 &lt;= 0xBF; indexB4++) {
-        var hexB4 = decimalToHexString(indexB4);
-        count++;
-        var index = (indexB1 &amp; 0x07) * 0x40000 + (indexB2 &amp; 0x3F) * 0x1000 + (indexB3 &amp; 0x3F) * 0x40 + (indexB4 &amp; 0x3F);
-        var L = ((index - 0x10000) &amp; 0x03FF) + 0xDC00;
-        var H = (((index - 0x10000) &gt;&gt; 10) &amp; 0x03FF) + 0xD800;  
-        try {
-          if (decodeURI(&quot;%&quot; + hexB1.substring(3) + &quot;%&quot; + hexB2.substring(3) + &quot;%&quot; + hexB3.substring(3) + &quot;%&quot; + hexB4.substring(3)) === String.fromCharCode(H) + String.fromCharCode(L)) continue;        
-        } catch (e) {}   
-        if (indexO === 0) { 
-          indexO = index;
-        } else {
-          if ((index - indexP) !== 1) {             
-            if ((indexP - indexO) !== 0) {
-              var hexP = decimalToHexString(indexP);
-              var hexO = decimalToHexString(indexO);
-              testFailed('#' + hexO + '-' + hexP + ' ');
-            } 
-            else {
-              var hexP = decimalToHexString(indexP);
-              testFailed('#' + hexP + ' ');
-            }  
-            indexO = index;
-          }         
-        }
-        indexP = index;
-        errorCount++;  
-      }
-    }     
-  }
-}
-
-if (errorCount &gt; 0) {
-  if ((indexP - indexO) !== 0) {
-    var hexP = decimalToHexString(indexP);
-    var hexO = decimalToHexString(indexO);
-    testFailed('#' + hexO + '-' + hexP + ' ');
-  } else {
-    var hexP = decimalToHexString(indexP);
-    testFailed('#' + hexP + ' ');
-  }     
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 4; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315132_decodeURIComponentS15132_A25_T1htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315132_decodeURIComponentS15132_A25_T1htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,173 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S15.1.3.2_A2.5_T1&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S15.1.3.2_A2.5_T1;
+ * @section: 15.1.3.2;
+ * @assertion: If B1 = 11110xxx ([0xF0 - 0x0F4]), B2, B3, B4 = 10xxxxxxx ([0x80 - 0xBF]), without [B1, B2] = [0xF0, 0x80 - 0x9F], [0xF4, 0x90 - 0xBF], return UTF8(B1, B2, B3, B4);
+ * @description: Complex tests, use RFC 3629;
+*/
+
+errorCount = 0;
+count = 0;
+var indexP;
+var indexO = 0;
+
+for (indexB1 = 0xF0; indexB1 &lt;= 0xF4; indexB1++) {     
+  var hexB1 = decimalToHexString(indexB1);
+  for (indexB2 = 0x80; indexB2 &lt;= 0xBF; indexB2++) {
+    if ((indexB1 === 0xF0) &amp;&amp; (indexB2 &lt;= 0x9F)) continue;            
+    if ((indexB1 === 0xF4) &amp;&amp; (indexB2 &gt;= 0x90)) continue;
+    var hexB2 = decimalToHexString(indexB2);
+    for (indexB3 = 0x80; indexB3 &lt;= 0xBF; indexB3++) {
+      var hexB3 = decimalToHexString(indexB3);
+      for (indexB4 = 0x80; indexB4 &lt;= 0xBF; indexB4++) {
+        var hexB4 = decimalToHexString(indexB4);
+        count++;
+        var index = (indexB1 &amp; 0x07) * 0x40000 + (indexB2 &amp; 0x3F) * 0x1000 + (indexB3 &amp; 0x3F) * 0x40 + (indexB4 &amp; 0x3F);
+        var L = ((index - 0x10000) &amp; 0x03FF) + 0xDC00;
+        var H = (((index - 0x10000) &gt;&gt; 10) &amp; 0x03FF) + 0xD800;  
+        try {
+          if (decodeURIComponent(&quot;%&quot; + hexB1.substring(3) + &quot;%&quot; + hexB2.substring(3) + &quot;%&quot; + hexB3.substring(3) + &quot;%&quot; + hexB4.substring(3)) === String.fromCharCode(H) + String.fromCharCode(L)) continue;        
+        } catch (e) {}   
+        if (indexO === 0) { 
+          indexO = index;
+        } else {
+          if ((index - indexP) !== 1) {             
+            if ((indexP - indexO) !== 0) {
+              var hexP = decimalToHexString(indexP);
+              var hexO = decimalToHexString(indexO);
+              testFailed('#' + hexO + '-' + hexP + ' ');
+            } 
+            else {
+              var hexP = decimalToHexString(indexP);
+              testFailed('#' + hexP + ' ');
+            }  
+            indexO = index;
+          }         
+        }
+        indexP = index;
+        errorCount++;  
+      }
+    }     
+  }
+}
+
+if (errorCount &gt; 0) {
+  if ((indexP - indexO) !== 0) {
+    var hexP = decimalToHexString(indexP);
+    var hexO = decimalToHexString(indexO);
+    testFailed('#' + hexO + '-' + hexP + ' ');
+  } else {
+    var hexP = decimalToHexString(indexP);
+    testFailed('#' + hexP + ' ');
+  }     
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 4; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects151_The_Global_Object151315132_decodeURIComponentS15132_A25_T1htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.1_The_Global_Object/15.1.3/15.1.3.2_decodeURIComponent/S15.1.3.2_A2.5_T1.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,173 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S15.1.3.2_A2.5_T1&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S15.1.3.2_A2.5_T1;
- * @section: 15.1.3.2;
- * @assertion: If B1 = 11110xxx ([0xF0 - 0x0F4]), B2, B3, B4 = 10xxxxxxx ([0x80 - 0xBF]), without [B1, B2] = [0xF0, 0x80 - 0x9F], [0xF4, 0x90 - 0xBF], return UTF8(B1, B2, B3, B4);
- * @description: Complex tests, use RFC 3629;
-*/
-
-errorCount = 0;
-count = 0;
-var indexP;
-var indexO = 0;
-
-for (indexB1 = 0xF0; indexB1 &lt;= 0xF4; indexB1++) {     
-  var hexB1 = decimalToHexString(indexB1);
-  for (indexB2 = 0x80; indexB2 &lt;= 0xBF; indexB2++) {
-    if ((indexB1 === 0xF0) &amp;&amp; (indexB2 &lt;= 0x9F)) continue;            
-    if ((indexB1 === 0xF4) &amp;&amp; (indexB2 &gt;= 0x90)) continue;
-    var hexB2 = decimalToHexString(indexB2);
-    for (indexB3 = 0x80; indexB3 &lt;= 0xBF; indexB3++) {
-      var hexB3 = decimalToHexString(indexB3);
-      for (indexB4 = 0x80; indexB4 &lt;= 0xBF; indexB4++) {
-        var hexB4 = decimalToHexString(indexB4);
-        count++;
-        var index = (indexB1 &amp; 0x07) * 0x40000 + (indexB2 &amp; 0x3F) * 0x1000 + (indexB3 &amp; 0x3F) * 0x40 + (indexB4 &amp; 0x3F);
-        var L = ((index - 0x10000) &amp; 0x03FF) + 0xDC00;
-        var H = (((index - 0x10000) &gt;&gt; 10) &amp; 0x03FF) + 0xD800;  
-        try {
-          if (decodeURIComponent(&quot;%&quot; + hexB1.substring(3) + &quot;%&quot; + hexB2.substring(3) + &quot;%&quot; + hexB3.substring(3) + &quot;%&quot; + hexB4.substring(3)) === String.fromCharCode(H) + String.fromCharCode(L)) continue;        
-        } catch (e) {}   
-        if (indexO === 0) { 
-          indexO = index;
-        } else {
-          if ((index - indexP) !== 1) {             
-            if ((indexP - indexO) !== 0) {
-              var hexP = decimalToHexString(indexP);
-              var hexO = decimalToHexString(indexO);
-              testFailed('#' + hexO + '-' + hexP + ' ');
-            } 
-            else {
-              var hexP = decimalToHexString(indexP);
-              testFailed('#' + hexP + ' ');
-            }  
-            indexO = index;
-          }         
-        }
-        indexP = index;
-        errorCount++;  
-      }
-    }     
-  }
-}
-
-if (errorCount &gt; 0) {
-  if ((indexP - indexO) !== 0) {
-    var hexP = decimalToHexString(indexP);
-    var hexO = decimalToHexString(indexO);
-    testFailed('#' + hexO + '-' + hexP + ' ');
-  } else {
-    var hexP = decimalToHexString(indexP);
-    testFailed('#' + hexP + ' ');
-  }     
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 4; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T1htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T1htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,522 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S15.9.3.1_A5_T1&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S15.9.3.1_A5_T1;
+ * @section: 15.9.3.1;
+ * @assertion: The [[Value]] property of the newly constructed object 
+ * is set by following steps:
+ * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to 
+ * TimeClip(UTC(Result(11)));
+ * @description: 2 arguments, (year, month);
+ */
+
+var $DST_end_hour = 2;
+var $DST_end_minutes = 0;
+var $DST_end_month = 10;
+var $DST_end_sunday = 'first';
+var $DST_start_hour = 2;
+var $DST_start_minutes = 0;
+var $DST_start_month = 2;
+var $DST_start_sunday = 'first';
+var $LocalTZ = -8;
+function ToInteger(p) {
+  x = Number(p);
+
+  if(isNaN(x)){
+    return +0;
+  }
+  
+  if((x === +0) 
+  || (x === -0) 
+  || (x === Number.POSITIVE_INFINITY) 
+  || (x === Number.NEGATIVE_INFINITY)){
+     return x;
+  }
+
+  var sign = ( x &lt; 0 ) ? -1 : 1;
+
+  return (sign*Math.floor(Math.abs(x)));
+}
+
+
+var HoursPerDay = 24;
+var MinutesPerHour = 60;
+var SecondsPerMinute = 60;
+
+var msPerDay = 86400000;
+var msPerSecond = 1000;
+var msPerMinute = 60000;
+var msPerHour = 3600000;
+
+var date_1899_end = -2208988800001;
+var date_1900_start = -2208988800000;
+var date_1969_end = -1;
+var date_1970_start = 0;
+var date_1999_end = 946684799999;
+var date_2000_start = 946684800000;
+var date_2099_end = 4102444799999;
+var date_2100_start = 4102444800000;
+
+
+//15.9.1.2 Day Number and Time within Day
+function Day(t) {
+  return Math.floor(t/msPerDay);
+}
+
+function TimeWithinDay(t) {
+  return t%msPerDay;
+}
+
+//15.9.1.3 Year Number
+function DaysInYear(y){
+  if(y%4 != 0) return 365;
+  if(y%4 == 0 &amp;&amp; y%100 != 0) return 366;
+  if(y%100 == 0 &amp;&amp; y%400 != 0) return 365;
+  if(y%400 == 0) return 366;
+}
+
+function DayFromYear(y) {
+  return (365*(y-1970)
+          + Math.floor((y-1969)/4)
+          - Math.floor((y-1901)/100)
+          + Math.floor((y-1601)/400));
+}
+
+function TimeFromYear(y){
+  return msPerDay*DayFromYear(y);
+}
+
+function YearFromTime(t) {
+  t = Number(t);
+  var sign = ( t &lt; 0 ) ? -1 : 1;
+  var year = ( sign &lt; 0 ) ? 1969 : 1970;
+  
+  for(var time = 0;;year += sign){
+    time = TimeFromYear(year);
+    
+    if(sign &gt; 0 &amp;&amp; time &gt; t){
+      year -= sign;
+      break;
+    }
+    else if(sign &lt; 0 &amp;&amp; time &lt;= t){
+      break;
+    }
+  };
+  return year;
+}
+  
+function InLeapYear(t){
+  if(DaysInYear(YearFromTime(t)) == 365)
+    return 0;
+  
+  if(DaysInYear(YearFromTime(t)) == 366)
+    return 1;
+}
+
+function DayWithinYear(t) {
+  return Day(t)-DayFromYear(YearFromTime(t));
+}
+
+//15.9.1.4 Month Number
+function MonthFromTime(t){
+  var day = DayWithinYear(t);
+  var leap = InLeapYear(t);
+
+  if((0 &lt;= day) &amp;&amp; (day &lt; 31)) return 0;
+  if((31 &lt;= day) &amp;&amp; (day &lt; (59+leap))) return 1;
+  if(((59+leap) &lt;= day) &amp;&amp; (day &lt; (90+leap))) return 2;
+  if(((90+leap) &lt;= day) &amp;&amp; (day &lt; (120+leap))) return 3;
+  if(((120+leap) &lt;= day) &amp;&amp; (day &lt; (151+leap))) return 4;
+  if(((151+leap) &lt;= day) &amp;&amp; (day &lt; (181+leap))) return 5;
+  if(((181+leap) &lt;= day) &amp;&amp; (day &lt; (212+leap))) return 6;
+  if(((212+leap) &lt;= day) &amp;&amp; (day &lt; (243+leap))) return 7;
+  if(((243+leap) &lt;= day) &amp;&amp; (day &lt; (273+leap))) return 8;
+  if(((273+leap) &lt;= day) &amp;&amp; (day &lt; (304+leap))) return 9;
+  if(((304+leap) &lt;= day) &amp;&amp; (day &lt; (334+leap))) return 10;
+  if(((334+leap) &lt;= day) &amp;&amp; (day &lt; (365+leap))) return 11;
+}
+
+//15.9.1.5 Date Number
+function DateFromTime(t) {
+  var day = DayWithinYear(t);
+  var month = MonthFromTime(t);
+  var leap = InLeapYear(t);
+
+  if(month == 0) return day+1;
+  if(month == 1) return day-30;
+  if(month == 2) return day-58-leap;
+  if(month == 3) return day-89-leap;
+  if(month == 4) return day-119-leap;
+  if(month == 5) return day-150-leap;
+  if(month == 6) return day-180-leap;
+  if(month == 7) return day-211-leap;
+  if(month == 8) return day-242-leap;
+  if(month == 9) return day-272-leap;
+  if(month == 10) return day-303-leap;
+  if(month == 11) return day-333-leap;
+}
+
+//15.9.1.6 Week Day
+function WeekDay(t) {
+  var weekday = (Day(t)+4)%7;
+  return (weekday &lt; 0 ? 7+weekday : weekday);
+}
+
+//15.9.1.9 Daylight Saving Time Adjustment
+var LocalTZA = $LocalTZ*msPerHour;
+
+function DaysInMonth(m, leap) {
+  m = m%12;
+  
+  //April, June, Sept, Nov
+  if(m == 3 || m == 5 || m == 8 || m == 10 ) {
+    return 30;
+  }
+
+  //Jan, March, May, July, Aug, Oct, Dec
+  if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
+    return 31;
+  }
+
+  //Feb
+  return 28+leap;
+}
+
+function GetSundayInMonth(t, m, count){
+  var year = YearFromTime(t);
+  var leap = InLeapYear(t);
+  var day = 0;
+  
+  if(m &gt;= 1) day += DaysInMonth(0, leap);
+  if(m &gt;= 2) day += DaysInMonth(1, leap);
+  if(m &gt;= 3) day += DaysInMonth(2, leap);
+  if(m &gt;= 4) day += DaysInMonth(3, leap);
+  if(m &gt;= 5) day += DaysInMonth(4, leap);
+  if(m &gt;= 6) day += DaysInMonth(5, leap);
+  if(m &gt;= 7) day += DaysInMonth(6, leap);
+  if(m &gt;= 8) day += DaysInMonth(7, leap);
+  if(m &gt;= 9) day += DaysInMonth(8, leap);
+  if(m &gt;= 10) day += DaysInMonth(9, leap);
+  if(m &gt;= 11) day += DaysInMonth(10, leap);
+  
+  var month_start = TimeFromYear(year)+day*msPerDay;
+  var sunday = 0;
+  
+  if(count === &quot;last&quot;){
+    for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay; 
+      WeekDay(last_sunday)&gt;0;
+      last_sunday -= msPerDay
+    ){};
+    sunday = last_sunday;
+  }
+  else {
+    for(var first_sunday = month_start; 
+      WeekDay(first_sunday)&gt;0;
+      first_sunday += msPerDay
+    ){};
+    sunday = first_sunday+7*msPerDay*(count-1);
+  }
+  
+  return sunday;
+}
+
+function DaylightSavingTA(t) {
+  t = t-LocalTZA;
+
+  var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+                  +$DST_start_hour*msPerHour
+                  +$DST_start_minutes*msPerMinute;
+                  
+  var k = new Date(DST_start);
+  
+  var DST_end   = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+                  +$DST_end_hour*msPerHour
+                  +$DST_end_minutes*msPerMinute;
+
+  if ( t &gt;= DST_start &amp;&amp; t &lt; DST_end ) {
+    return msPerHour;
+  } else {
+    return 0;
+  }
+}
+
+//15.9.1.9 Local Time
+function LocalTime(t){
+  return t+LocalTZA+DaylightSavingTA(t);
+}
+
+function UTC(t) {
+  return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
+}
+
+//15.9.1.10 Hours, Minutes, Second, and Milliseconds
+function HourFromTime(t){
+  return Math.floor(t/msPerHour)%HoursPerDay;
+}
+
+function MinFromTime(t){
+  return Math.floor(t/msPerMinute)%MinutesPerHour;
+}
+
+function SecFromTime(t){
+  return Math.floor(t/msPerSecond)%SecondsPerMinute;
+}
+
+function msFromTime(t){
+  return t%msPerSecond;
+}
+
+//15.9.1.11 MakeTime (hour, min, sec, ms)
+function MakeTime(hour, min, sec, ms){
+  if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
+    return Number.NaN;
+  }
+
+  hour = ToInteger(hour);
+  min  = ToInteger(min);
+  sec  = ToInteger(sec);
+  ms   = ToInteger(ms);
+
+  return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
+}
+
+//15.9.1.12 MakeDay (year, month, date)
+function MakeDay(year, month, date) {
+  if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
+    return Number.NaN;
+  }
+
+  year = ToInteger(year);
+  month = ToInteger(month);
+  date = ToInteger(date );
+
+  var result5 = year + Math.floor(month/12);
+  var result6 = month%12;
+
+  var sign = ( year &lt; 1970 ) ? -1 : 1;
+  var t =    ( year &lt; 1970 ) ? 1 :  0;
+  var y =    ( year &lt; 1970 ) ? 1969 : 1970;
+
+  if( sign == -1 ){
+    for ( y = 1969; y &gt;= year; y += sign ) {
+      t += sign * DaysInYear(y)*msPerDay;
+    }
+  } else {
+    for ( y = 1970 ; y &lt; year; y += sign ) {
+      t += sign * DaysInYear(y)*msPerDay;
+    }
+  }
+
+  var leap = 0;
+  for ( var m = 0; m &lt; month; m++ ) {
+    //if year is changed, than we need to recalculate leep
+    leap = InLeapYear(t);
+    t += DaysInMonth(m, leap)*msPerDay;
+  }
+
+  if ( YearFromTime(t) != result5 ) {
+    return Number.NaN;
+  }
+  if ( MonthFromTime(t) != result6 ) {
+    return Number.NaN;
+  }
+  if ( DateFromTime(t) != 1 ) {
+    return Number.NaN;
+  }
+
+  return Day(t)+date-1;
+}
+
+//15.9.1.13 MakeDate (day, time)
+function MakeDate( day, time ) {
+  if(!isFinite(day) || !isFinite(time)) {
+    return Number.NaN;
+  }
+  
+  return day*msPerDay+time;
+}
+
+//15.9.1.14 TimeClip (time)
+function TimeClip(time) {
+  if(!isFinite(time) || Math.abs(time) &gt; 8.64e15){
+    return Number.NaN;
+  }
+
+  return ToInteger(time);
+}
+
+//Test Functions
+function ConstructDate(year, month, date, hours, minutes, seconds, ms){
+  /*
+   * 1. Call ToNumber(year)
+   * 2. Call ToNumber(month)
+   * 3. If date is supplied use ToNumber(date); else use 1
+   * 4. If hours is supplied use ToNumber(hours); else use 0
+   * 5. If minutes is supplied use ToNumber(minutes); else use 0
+   * 6. If seconds is supplied use ToNumber(seconds); else use 0
+   * 7. If ms is supplied use ToNumber(ms); else use 0
+   * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
+   * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+   * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+   * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+   * 11. Compute MakeDate(Result(9), Result(10))
+   * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
+   */
+  var r1 = Number(year);
+  var r2 = Number(month);
+  var r3 = ((date &amp;&amp; arguments.length &gt; 2) ? Number(date) : 1);
+  var r4 = ((hours &amp;&amp; arguments.length &gt; 3) ? Number(hours) : 0);   
+  var r5 = ((minutes &amp;&amp; arguments.length &gt; 4) ? Number(minutes) : 0);   
+  var r6 = ((seconds &amp;&amp; arguments.length &gt; 5) ? Number(seconds) : 0);   
+  var r7 = ((ms &amp;&amp; arguments.length &gt; 6) ? Number(ms) : 0);
+  
+  var r8 = r1;
+  
+  if(!isNaN(r1) &amp;&amp; (0 &lt;= ToInteger(r1)) &amp;&amp; (ToInteger(r1) &lt;= 99))
+    r8 = 1900+r1;
+  
+  var r9 = MakeDay(r8, r2, r3);
+  var r10 = MakeTime(r4, r5, r6, r7);
+  var r11 = MakeDate(r9, r10);
+  
+  return TimeClip(UTC(r11));
+}
+
+
+
+if (ConstructDate(1899, 11) !== new Date(1899, 11).valueOf()) {
+  testFailed(&quot;#1: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1899, 12) !== new Date(1899, 12).valueOf()) {
+  testFailed(&quot;#2: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1900, 0) !== new Date(1900, 0).valueOf()) {
+  testFailed(&quot;#3: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1969, 11) !== new Date(1969, 11).valueOf()) {
+  testFailed(&quot;#4: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1969, 12) !== new Date(1969, 12).valueOf()) {
+  testFailed(&quot;#5: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1970, 0) !== new Date(1970, 0).valueOf()) {
+  testFailed(&quot;#6: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1999, 11) !== new Date(1999, 11).valueOf()) {
+  testFailed(&quot;#7: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1999, 12) !== new Date(1999, 12).valueOf()) {
+  testFailed(&quot;#8: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2000, 0) !== new Date(2000, 0).valueOf()) {
+  testFailed(&quot;#9: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2099, 11) !== new Date(2099, 11).valueOf()) {
+  testFailed(&quot;#10: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2099, 12) !== new Date(2099, 12).valueOf()) {
+  testFailed(&quot;#11: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2100, 0) !== new Date(2100, 0).valueOf()) {
+  testFailed(&quot;#12: Incorrect value of Date&quot;);
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T1htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T1.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,522 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S15.9.3.1_A5_T1&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S15.9.3.1_A5_T1;
- * @section: 15.9.3.1;
- * @assertion: The [[Value]] property of the newly constructed object 
- * is set by following steps:
- * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to 
- * TimeClip(UTC(Result(11)));
- * @description: 2 arguments, (year, month);
- */
-
-var $DST_end_hour = 2;
-var $DST_end_minutes = 0;
-var $DST_end_month = 10;
-var $DST_end_sunday = 'first';
-var $DST_start_hour = 2;
-var $DST_start_minutes = 0;
-var $DST_start_month = 2;
-var $DST_start_sunday = 'first';
-var $LocalTZ = -8;
-function ToInteger(p) {
-  x = Number(p);
-
-  if(isNaN(x)){
-    return +0;
-  }
-  
-  if((x === +0) 
-  || (x === -0) 
-  || (x === Number.POSITIVE_INFINITY) 
-  || (x === Number.NEGATIVE_INFINITY)){
-     return x;
-  }
-
-  var sign = ( x &lt; 0 ) ? -1 : 1;
-
-  return (sign*Math.floor(Math.abs(x)));
-}
-
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-
-var msPerDay = 86400000;
-var msPerSecond = 1000;
-var msPerMinute = 60000;
-var msPerHour = 3600000;
-
-var date_1899_end = -2208988800001;
-var date_1900_start = -2208988800000;
-var date_1969_end = -1;
-var date_1970_start = 0;
-var date_1999_end = 946684799999;
-var date_2000_start = 946684800000;
-var date_2099_end = 4102444799999;
-var date_2100_start = 4102444800000;
-
-
-//15.9.1.2 Day Number and Time within Day
-function Day(t) {
-  return Math.floor(t/msPerDay);
-}
-
-function TimeWithinDay(t) {
-  return t%msPerDay;
-}
-
-//15.9.1.3 Year Number
-function DaysInYear(y){
-  if(y%4 != 0) return 365;
-  if(y%4 == 0 &amp;&amp; y%100 != 0) return 366;
-  if(y%100 == 0 &amp;&amp; y%400 != 0) return 365;
-  if(y%400 == 0) return 366;
-}
-
-function DayFromYear(y) {
-  return (365*(y-1970)
-          + Math.floor((y-1969)/4)
-          - Math.floor((y-1901)/100)
-          + Math.floor((y-1601)/400));
-}
-
-function TimeFromYear(y){
-  return msPerDay*DayFromYear(y);
-}
-
-function YearFromTime(t) {
-  t = Number(t);
-  var sign = ( t &lt; 0 ) ? -1 : 1;
-  var year = ( sign &lt; 0 ) ? 1969 : 1970;
-  
-  for(var time = 0;;year += sign){
-    time = TimeFromYear(year);
-    
-    if(sign &gt; 0 &amp;&amp; time &gt; t){
-      year -= sign;
-      break;
-    }
-    else if(sign &lt; 0 &amp;&amp; time &lt;= t){
-      break;
-    }
-  };
-  return year;
-}
-  
-function InLeapYear(t){
-  if(DaysInYear(YearFromTime(t)) == 365)
-    return 0;
-  
-  if(DaysInYear(YearFromTime(t)) == 366)
-    return 1;
-}
-
-function DayWithinYear(t) {
-  return Day(t)-DayFromYear(YearFromTime(t));
-}
-
-//15.9.1.4 Month Number
-function MonthFromTime(t){
-  var day = DayWithinYear(t);
-  var leap = InLeapYear(t);
-
-  if((0 &lt;= day) &amp;&amp; (day &lt; 31)) return 0;
-  if((31 &lt;= day) &amp;&amp; (day &lt; (59+leap))) return 1;
-  if(((59+leap) &lt;= day) &amp;&amp; (day &lt; (90+leap))) return 2;
-  if(((90+leap) &lt;= day) &amp;&amp; (day &lt; (120+leap))) return 3;
-  if(((120+leap) &lt;= day) &amp;&amp; (day &lt; (151+leap))) return 4;
-  if(((151+leap) &lt;= day) &amp;&amp; (day &lt; (181+leap))) return 5;
-  if(((181+leap) &lt;= day) &amp;&amp; (day &lt; (212+leap))) return 6;
-  if(((212+leap) &lt;= day) &amp;&amp; (day &lt; (243+leap))) return 7;
-  if(((243+leap) &lt;= day) &amp;&amp; (day &lt; (273+leap))) return 8;
-  if(((273+leap) &lt;= day) &amp;&amp; (day &lt; (304+leap))) return 9;
-  if(((304+leap) &lt;= day) &amp;&amp; (day &lt; (334+leap))) return 10;
-  if(((334+leap) &lt;= day) &amp;&amp; (day &lt; (365+leap))) return 11;
-}
-
-//15.9.1.5 Date Number
-function DateFromTime(t) {
-  var day = DayWithinYear(t);
-  var month = MonthFromTime(t);
-  var leap = InLeapYear(t);
-
-  if(month == 0) return day+1;
-  if(month == 1) return day-30;
-  if(month == 2) return day-58-leap;
-  if(month == 3) return day-89-leap;
-  if(month == 4) return day-119-leap;
-  if(month == 5) return day-150-leap;
-  if(month == 6) return day-180-leap;
-  if(month == 7) return day-211-leap;
-  if(month == 8) return day-242-leap;
-  if(month == 9) return day-272-leap;
-  if(month == 10) return day-303-leap;
-  if(month == 11) return day-333-leap;
-}
-
-//15.9.1.6 Week Day
-function WeekDay(t) {
-  var weekday = (Day(t)+4)%7;
-  return (weekday &lt; 0 ? 7+weekday : weekday);
-}
-
-//15.9.1.9 Daylight Saving Time Adjustment
-var LocalTZA = $LocalTZ*msPerHour;
-
-function DaysInMonth(m, leap) {
-  m = m%12;
-  
-  //April, June, Sept, Nov
-  if(m == 3 || m == 5 || m == 8 || m == 10 ) {
-    return 30;
-  }
-
-  //Jan, March, May, July, Aug, Oct, Dec
-  if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
-    return 31;
-  }
-
-  //Feb
-  return 28+leap;
-}
-
-function GetSundayInMonth(t, m, count){
-  var year = YearFromTime(t);
-  var leap = InLeapYear(t);
-  var day = 0;
-  
-  if(m &gt;= 1) day += DaysInMonth(0, leap);
-  if(m &gt;= 2) day += DaysInMonth(1, leap);
-  if(m &gt;= 3) day += DaysInMonth(2, leap);
-  if(m &gt;= 4) day += DaysInMonth(3, leap);
-  if(m &gt;= 5) day += DaysInMonth(4, leap);
-  if(m &gt;= 6) day += DaysInMonth(5, leap);
-  if(m &gt;= 7) day += DaysInMonth(6, leap);
-  if(m &gt;= 8) day += DaysInMonth(7, leap);
-  if(m &gt;= 9) day += DaysInMonth(8, leap);
-  if(m &gt;= 10) day += DaysInMonth(9, leap);
-  if(m &gt;= 11) day += DaysInMonth(10, leap);
-  
-  var month_start = TimeFromYear(year)+day*msPerDay;
-  var sunday = 0;
-  
-  if(count === &quot;last&quot;){
-    for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay; 
-      WeekDay(last_sunday)&gt;0;
-      last_sunday -= msPerDay
-    ){};
-    sunday = last_sunday;
-  }
-  else {
-    for(var first_sunday = month_start; 
-      WeekDay(first_sunday)&gt;0;
-      first_sunday += msPerDay
-    ){};
-    sunday = first_sunday+7*msPerDay*(count-1);
-  }
-  
-  return sunday;
-}
-
-function DaylightSavingTA(t) {
-  t = t-LocalTZA;
-
-  var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
-                  +$DST_start_hour*msPerHour
-                  +$DST_start_minutes*msPerMinute;
-                  
-  var k = new Date(DST_start);
-  
-  var DST_end   = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
-                  +$DST_end_hour*msPerHour
-                  +$DST_end_minutes*msPerMinute;
-
-  if ( t &gt;= DST_start &amp;&amp; t &lt; DST_end ) {
-    return msPerHour;
-  } else {
-    return 0;
-  }
-}
-
-//15.9.1.9 Local Time
-function LocalTime(t){
-  return t+LocalTZA+DaylightSavingTA(t);
-}
-
-function UTC(t) {
-  return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
-}
-
-//15.9.1.10 Hours, Minutes, Second, and Milliseconds
-function HourFromTime(t){
-  return Math.floor(t/msPerHour)%HoursPerDay;
-}
-
-function MinFromTime(t){
-  return Math.floor(t/msPerMinute)%MinutesPerHour;
-}
-
-function SecFromTime(t){
-  return Math.floor(t/msPerSecond)%SecondsPerMinute;
-}
-
-function msFromTime(t){
-  return t%msPerSecond;
-}
-
-//15.9.1.11 MakeTime (hour, min, sec, ms)
-function MakeTime(hour, min, sec, ms){
-  if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
-    return Number.NaN;
-  }
-
-  hour = ToInteger(hour);
-  min  = ToInteger(min);
-  sec  = ToInteger(sec);
-  ms   = ToInteger(ms);
-
-  return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
-}
-
-//15.9.1.12 MakeDay (year, month, date)
-function MakeDay(year, month, date) {
-  if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
-    return Number.NaN;
-  }
-
-  year = ToInteger(year);
-  month = ToInteger(month);
-  date = ToInteger(date );
-
-  var result5 = year + Math.floor(month/12);
-  var result6 = month%12;
-
-  var sign = ( year &lt; 1970 ) ? -1 : 1;
-  var t =    ( year &lt; 1970 ) ? 1 :  0;
-  var y =    ( year &lt; 1970 ) ? 1969 : 1970;
-
-  if( sign == -1 ){
-    for ( y = 1969; y &gt;= year; y += sign ) {
-      t += sign * DaysInYear(y)*msPerDay;
-    }
-  } else {
-    for ( y = 1970 ; y &lt; year; y += sign ) {
-      t += sign * DaysInYear(y)*msPerDay;
-    }
-  }
-
-  var leap = 0;
-  for ( var m = 0; m &lt; month; m++ ) {
-    //if year is changed, than we need to recalculate leep
-    leap = InLeapYear(t);
-    t += DaysInMonth(m, leap)*msPerDay;
-  }
-
-  if ( YearFromTime(t) != result5 ) {
-    return Number.NaN;
-  }
-  if ( MonthFromTime(t) != result6 ) {
-    return Number.NaN;
-  }
-  if ( DateFromTime(t) != 1 ) {
-    return Number.NaN;
-  }
-
-  return Day(t)+date-1;
-}
-
-//15.9.1.13 MakeDate (day, time)
-function MakeDate( day, time ) {
-  if(!isFinite(day) || !isFinite(time)) {
-    return Number.NaN;
-  }
-  
-  return day*msPerDay+time;
-}
-
-//15.9.1.14 TimeClip (time)
-function TimeClip(time) {
-  if(!isFinite(time) || Math.abs(time) &gt; 8.64e15){
-    return Number.NaN;
-  }
-
-  return ToInteger(time);
-}
-
-//Test Functions
-function ConstructDate(year, month, date, hours, minutes, seconds, ms){
-  /*
-   * 1. Call ToNumber(year)
-   * 2. Call ToNumber(month)
-   * 3. If date is supplied use ToNumber(date); else use 1
-   * 4. If hours is supplied use ToNumber(hours); else use 0
-   * 5. If minutes is supplied use ToNumber(minutes); else use 0
-   * 6. If seconds is supplied use ToNumber(seconds); else use 0
-   * 7. If ms is supplied use ToNumber(ms); else use 0
-   * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
-   * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
-   * 9. Compute MakeDay(Result(8), Result(2), Result(3))
-   * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
-   * 11. Compute MakeDate(Result(9), Result(10))
-   * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
-   */
-  var r1 = Number(year);
-  var r2 = Number(month);
-  var r3 = ((date &amp;&amp; arguments.length &gt; 2) ? Number(date) : 1);
-  var r4 = ((hours &amp;&amp; arguments.length &gt; 3) ? Number(hours) : 0);   
-  var r5 = ((minutes &amp;&amp; arguments.length &gt; 4) ? Number(minutes) : 0);   
-  var r6 = ((seconds &amp;&amp; arguments.length &gt; 5) ? Number(seconds) : 0);   
-  var r7 = ((ms &amp;&amp; arguments.length &gt; 6) ? Number(ms) : 0);
-  
-  var r8 = r1;
-  
-  if(!isNaN(r1) &amp;&amp; (0 &lt;= ToInteger(r1)) &amp;&amp; (ToInteger(r1) &lt;= 99))
-    r8 = 1900+r1;
-  
-  var r9 = MakeDay(r8, r2, r3);
-  var r10 = MakeTime(r4, r5, r6, r7);
-  var r11 = MakeDate(r9, r10);
-  
-  return TimeClip(UTC(r11));
-}
-
-
-
-if (ConstructDate(1899, 11) !== new Date(1899, 11).valueOf()) {
-  testFailed(&quot;#1: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1899, 12) !== new Date(1899, 12).valueOf()) {
-  testFailed(&quot;#2: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1900, 0) !== new Date(1900, 0).valueOf()) {
-  testFailed(&quot;#3: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1969, 11) !== new Date(1969, 11).valueOf()) {
-  testFailed(&quot;#4: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1969, 12) !== new Date(1969, 12).valueOf()) {
-  testFailed(&quot;#5: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1970, 0) !== new Date(1970, 0).valueOf()) {
-  testFailed(&quot;#6: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1999, 11) !== new Date(1999, 11).valueOf()) {
-  testFailed(&quot;#7: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1999, 12) !== new Date(1999, 12).valueOf()) {
-  testFailed(&quot;#8: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2000, 0) !== new Date(2000, 0).valueOf()) {
-  testFailed(&quot;#9: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2099, 11) !== new Date(2099, 11).valueOf()) {
-  testFailed(&quot;#10: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2099, 12) !== new Date(2099, 12).valueOf()) {
-  testFailed(&quot;#11: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2100, 0) !== new Date(2100, 0).valueOf()) {
-  testFailed(&quot;#12: Incorrect value of Date&quot;);
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T2htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T2htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,522 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S15.9.3.1_A5_T2&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S15.9.3.1_A5_T2;
+ * @section: 15.9.3.1;
+ * @assertion: The [[Value]] property of the newly constructed object 
+ * is set by following steps:
+ * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to 
+ * TimeClip(UTC(Result(11)));
+ * @description: 3 arguments, (year, month, date);
+ */
+
+var $DST_end_hour = 2;
+var $DST_end_minutes = 0;
+var $DST_end_month = 10;
+var $DST_end_sunday = 'first';
+var $DST_start_hour = 2;
+var $DST_start_minutes = 0;
+var $DST_start_month = 2;
+var $DST_start_sunday = 'first';
+var $LocalTZ = -8;
+function ToInteger(p) {
+  x = Number(p);
+
+  if(isNaN(x)){
+    return +0;
+  }
+  
+  if((x === +0) 
+  || (x === -0) 
+  || (x === Number.POSITIVE_INFINITY) 
+  || (x === Number.NEGATIVE_INFINITY)){
+     return x;
+  }
+
+  var sign = ( x &lt; 0 ) ? -1 : 1;
+
+  return (sign*Math.floor(Math.abs(x)));
+}
+
+
+var HoursPerDay = 24;
+var MinutesPerHour = 60;
+var SecondsPerMinute = 60;
+
+var msPerDay = 86400000;
+var msPerSecond = 1000;
+var msPerMinute = 60000;
+var msPerHour = 3600000;
+
+var date_1899_end = -2208988800001;
+var date_1900_start = -2208988800000;
+var date_1969_end = -1;
+var date_1970_start = 0;
+var date_1999_end = 946684799999;
+var date_2000_start = 946684800000;
+var date_2099_end = 4102444799999;
+var date_2100_start = 4102444800000;
+
+
+//15.9.1.2 Day Number and Time within Day
+function Day(t) {
+  return Math.floor(t/msPerDay);
+}
+
+function TimeWithinDay(t) {
+  return t%msPerDay;
+}
+
+//15.9.1.3 Year Number
+function DaysInYear(y){
+  if(y%4 != 0) return 365;
+  if(y%4 == 0 &amp;&amp; y%100 != 0) return 366;
+  if(y%100 == 0 &amp;&amp; y%400 != 0) return 365;
+  if(y%400 == 0) return 366;
+}
+
+function DayFromYear(y) {
+  return (365*(y-1970)
+          + Math.floor((y-1969)/4)
+          - Math.floor((y-1901)/100)
+          + Math.floor((y-1601)/400));
+}
+
+function TimeFromYear(y){
+  return msPerDay*DayFromYear(y);
+}
+
+function YearFromTime(t) {
+  t = Number(t);
+  var sign = ( t &lt; 0 ) ? -1 : 1;
+  var year = ( sign &lt; 0 ) ? 1969 : 1970;
+  
+  for(var time = 0;;year += sign){
+    time = TimeFromYear(year);
+    
+    if(sign &gt; 0 &amp;&amp; time &gt; t){
+      year -= sign;
+      break;
+    }
+    else if(sign &lt; 0 &amp;&amp; time &lt;= t){
+      break;
+    }
+  };
+  return year;
+}
+  
+function InLeapYear(t){
+  if(DaysInYear(YearFromTime(t)) == 365)
+    return 0;
+  
+  if(DaysInYear(YearFromTime(t)) == 366)
+    return 1;
+}
+
+function DayWithinYear(t) {
+  return Day(t)-DayFromYear(YearFromTime(t));
+}
+
+//15.9.1.4 Month Number
+function MonthFromTime(t){
+  var day = DayWithinYear(t);
+  var leap = InLeapYear(t);
+
+  if((0 &lt;= day) &amp;&amp; (day &lt; 31)) return 0;
+  if((31 &lt;= day) &amp;&amp; (day &lt; (59+leap))) return 1;
+  if(((59+leap) &lt;= day) &amp;&amp; (day &lt; (90+leap))) return 2;
+  if(((90+leap) &lt;= day) &amp;&amp; (day &lt; (120+leap))) return 3;
+  if(((120+leap) &lt;= day) &amp;&amp; (day &lt; (151+leap))) return 4;
+  if(((151+leap) &lt;= day) &amp;&amp; (day &lt; (181+leap))) return 5;
+  if(((181+leap) &lt;= day) &amp;&amp; (day &lt; (212+leap))) return 6;
+  if(((212+leap) &lt;= day) &amp;&amp; (day &lt; (243+leap))) return 7;
+  if(((243+leap) &lt;= day) &amp;&amp; (day &lt; (273+leap))) return 8;
+  if(((273+leap) &lt;= day) &amp;&amp; (day &lt; (304+leap))) return 9;
+  if(((304+leap) &lt;= day) &amp;&amp; (day &lt; (334+leap))) return 10;
+  if(((334+leap) &lt;= day) &amp;&amp; (day &lt; (365+leap))) return 11;
+}
+
+//15.9.1.5 Date Number
+function DateFromTime(t) {
+  var day = DayWithinYear(t);
+  var month = MonthFromTime(t);
+  var leap = InLeapYear(t);
+
+  if(month == 0) return day+1;
+  if(month == 1) return day-30;
+  if(month == 2) return day-58-leap;
+  if(month == 3) return day-89-leap;
+  if(month == 4) return day-119-leap;
+  if(month == 5) return day-150-leap;
+  if(month == 6) return day-180-leap;
+  if(month == 7) return day-211-leap;
+  if(month == 8) return day-242-leap;
+  if(month == 9) return day-272-leap;
+  if(month == 10) return day-303-leap;
+  if(month == 11) return day-333-leap;
+}
+
+//15.9.1.6 Week Day
+function WeekDay(t) {
+  var weekday = (Day(t)+4)%7;
+  return (weekday &lt; 0 ? 7+weekday : weekday);
+}
+
+//15.9.1.9 Daylight Saving Time Adjustment
+var LocalTZA = $LocalTZ*msPerHour;
+
+function DaysInMonth(m, leap) {
+  m = m%12;
+  
+  //April, June, Sept, Nov
+  if(m == 3 || m == 5 || m == 8 || m == 10 ) {
+    return 30;
+  }
+
+  //Jan, March, May, July, Aug, Oct, Dec
+  if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
+    return 31;
+  }
+
+  //Feb
+  return 28+leap;
+}
+
+function GetSundayInMonth(t, m, count){
+  var year = YearFromTime(t);
+  var leap = InLeapYear(t);
+  var day = 0;
+  
+  if(m &gt;= 1) day += DaysInMonth(0, leap);
+  if(m &gt;= 2) day += DaysInMonth(1, leap);
+  if(m &gt;= 3) day += DaysInMonth(2, leap);
+  if(m &gt;= 4) day += DaysInMonth(3, leap);
+  if(m &gt;= 5) day += DaysInMonth(4, leap);
+  if(m &gt;= 6) day += DaysInMonth(5, leap);
+  if(m &gt;= 7) day += DaysInMonth(6, leap);
+  if(m &gt;= 8) day += DaysInMonth(7, leap);
+  if(m &gt;= 9) day += DaysInMonth(8, leap);
+  if(m &gt;= 10) day += DaysInMonth(9, leap);
+  if(m &gt;= 11) day += DaysInMonth(10, leap);
+  
+  var month_start = TimeFromYear(year)+day*msPerDay;
+  var sunday = 0;
+  
+  if(count === &quot;last&quot;){
+    for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay; 
+      WeekDay(last_sunday)&gt;0;
+      last_sunday -= msPerDay
+    ){};
+    sunday = last_sunday;
+  }
+  else {
+    for(var first_sunday = month_start; 
+      WeekDay(first_sunday)&gt;0;
+      first_sunday += msPerDay
+    ){};
+    sunday = first_sunday+7*msPerDay*(count-1);
+  }
+  
+  return sunday;
+}
+
+function DaylightSavingTA(t) {
+  t = t-LocalTZA;
+
+  var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+                  +$DST_start_hour*msPerHour
+                  +$DST_start_minutes*msPerMinute;
+                  
+  var k = new Date(DST_start);
+  
+  var DST_end   = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+                  +$DST_end_hour*msPerHour
+                  +$DST_end_minutes*msPerMinute;
+
+  if ( t &gt;= DST_start &amp;&amp; t &lt; DST_end ) {
+    return msPerHour;
+  } else {
+    return 0;
+  }
+}
+
+//15.9.1.9 Local Time
+function LocalTime(t){
+  return t+LocalTZA+DaylightSavingTA(t);
+}
+
+function UTC(t) {
+  return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
+}
+
+//15.9.1.10 Hours, Minutes, Second, and Milliseconds
+function HourFromTime(t){
+  return Math.floor(t/msPerHour)%HoursPerDay;
+}
+
+function MinFromTime(t){
+  return Math.floor(t/msPerMinute)%MinutesPerHour;
+}
+
+function SecFromTime(t){
+  return Math.floor(t/msPerSecond)%SecondsPerMinute;
+}
+
+function msFromTime(t){
+  return t%msPerSecond;
+}
+
+//15.9.1.11 MakeTime (hour, min, sec, ms)
+function MakeTime(hour, min, sec, ms){
+  if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
+    return Number.NaN;
+  }
+
+  hour = ToInteger(hour);
+  min  = ToInteger(min);
+  sec  = ToInteger(sec);
+  ms   = ToInteger(ms);
+
+  return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
+}
+
+//15.9.1.12 MakeDay (year, month, date)
+function MakeDay(year, month, date) {
+  if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
+    return Number.NaN;
+  }
+
+  year = ToInteger(year);
+  month = ToInteger(month);
+  date = ToInteger(date );
+
+  var result5 = year + Math.floor(month/12);
+  var result6 = month%12;
+
+  var sign = ( year &lt; 1970 ) ? -1 : 1;
+  var t =    ( year &lt; 1970 ) ? 1 :  0;
+  var y =    ( year &lt; 1970 ) ? 1969 : 1970;
+
+  if( sign == -1 ){
+    for ( y = 1969; y &gt;= year; y += sign ) {
+      t += sign * DaysInYear(y)*msPerDay;
+    }
+  } else {
+    for ( y = 1970 ; y &lt; year; y += sign ) {
+      t += sign * DaysInYear(y)*msPerDay;
+    }
+  }
+
+  var leap = 0;
+  for ( var m = 0; m &lt; month; m++ ) {
+    //if year is changed, than we need to recalculate leep
+    leap = InLeapYear(t);
+    t += DaysInMonth(m, leap)*msPerDay;
+  }
+
+  if ( YearFromTime(t) != result5 ) {
+    return Number.NaN;
+  }
+  if ( MonthFromTime(t) != result6 ) {
+    return Number.NaN;
+  }
+  if ( DateFromTime(t) != 1 ) {
+    return Number.NaN;
+  }
+
+  return Day(t)+date-1;
+}
+
+//15.9.1.13 MakeDate (day, time)
+function MakeDate( day, time ) {
+  if(!isFinite(day) || !isFinite(time)) {
+    return Number.NaN;
+  }
+  
+  return day*msPerDay+time;
+}
+
+//15.9.1.14 TimeClip (time)
+function TimeClip(time) {
+  if(!isFinite(time) || Math.abs(time) &gt; 8.64e15){
+    return Number.NaN;
+  }
+
+  return ToInteger(time);
+}
+
+//Test Functions
+function ConstructDate(year, month, date, hours, minutes, seconds, ms){
+  /*
+   * 1. Call ToNumber(year)
+   * 2. Call ToNumber(month)
+   * 3. If date is supplied use ToNumber(date); else use 1
+   * 4. If hours is supplied use ToNumber(hours); else use 0
+   * 5. If minutes is supplied use ToNumber(minutes); else use 0
+   * 6. If seconds is supplied use ToNumber(seconds); else use 0
+   * 7. If ms is supplied use ToNumber(ms); else use 0
+   * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
+   * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+   * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+   * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+   * 11. Compute MakeDate(Result(9), Result(10))
+   * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
+   */
+  var r1 = Number(year);
+  var r2 = Number(month);
+  var r3 = ((date &amp;&amp; arguments.length &gt; 2) ? Number(date) : 1);
+  var r4 = ((hours &amp;&amp; arguments.length &gt; 3) ? Number(hours) : 0);   
+  var r5 = ((minutes &amp;&amp; arguments.length &gt; 4) ? Number(minutes) : 0);   
+  var r6 = ((seconds &amp;&amp; arguments.length &gt; 5) ? Number(seconds) : 0);   
+  var r7 = ((ms &amp;&amp; arguments.length &gt; 6) ? Number(ms) : 0);
+  
+  var r8 = r1;
+  
+  if(!isNaN(r1) &amp;&amp; (0 &lt;= ToInteger(r1)) &amp;&amp; (ToInteger(r1) &lt;= 99))
+    r8 = 1900+r1;
+  
+  var r9 = MakeDay(r8, r2, r3);
+  var r10 = MakeTime(r4, r5, r6, r7);
+  var r11 = MakeDate(r9, r10);
+  
+  return TimeClip(UTC(r11));
+}
+
+
+
+if (ConstructDate(1899, 11, 31) !== new Date(1899, 11, 31).valueOf()) {
+  testFailed(&quot;#1: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1899, 12, 1) !== new Date(1899, 12, 1).valueOf()) {
+  testFailed(&quot;#2: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1900, 0, 1) !== new Date(1900, 0, 1).valueOf()) {
+  testFailed(&quot;#3: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1969, 11, 31) !== new Date(1969, 11, 31).valueOf()) {
+  testFailed(&quot;#4: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1969, 12, 1) !== new Date(1969, 12, 1).valueOf()) {
+  testFailed(&quot;#5: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1970, 0, 1) !== new Date(1970, 0, 1).valueOf()) {
+  testFailed(&quot;#6: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1999, 11, 31) !== new Date(1999, 11, 31).valueOf()) {
+  testFailed(&quot;#7: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1999, 12, 1) !== new Date(1999, 12, 1).valueOf()) {
+  testFailed(&quot;#8: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2000, 0, 1) !== new Date(2000, 0, 1).valueOf()) {
+  testFailed(&quot;#9: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2099, 11, 31) !== new Date(2099, 11, 31).valueOf()) {
+  testFailed(&quot;#10: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2099, 12, 1) !== new Date(2099, 12, 1).valueOf()) {
+  testFailed(&quot;#11: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2100, 0, 1) !== new Date(2100, 0, 1).valueOf()) {
+  testFailed(&quot;#12: Incorrect value of Date&quot;);
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T2htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T2.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,522 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S15.9.3.1_A5_T2&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S15.9.3.1_A5_T2;
- * @section: 15.9.3.1;
- * @assertion: The [[Value]] property of the newly constructed object 
- * is set by following steps:
- * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to 
- * TimeClip(UTC(Result(11)));
- * @description: 3 arguments, (year, month, date);
- */
-
-var $DST_end_hour = 2;
-var $DST_end_minutes = 0;
-var $DST_end_month = 10;
-var $DST_end_sunday = 'first';
-var $DST_start_hour = 2;
-var $DST_start_minutes = 0;
-var $DST_start_month = 2;
-var $DST_start_sunday = 'first';
-var $LocalTZ = -8;
-function ToInteger(p) {
-  x = Number(p);
-
-  if(isNaN(x)){
-    return +0;
-  }
-  
-  if((x === +0) 
-  || (x === -0) 
-  || (x === Number.POSITIVE_INFINITY) 
-  || (x === Number.NEGATIVE_INFINITY)){
-     return x;
-  }
-
-  var sign = ( x &lt; 0 ) ? -1 : 1;
-
-  return (sign*Math.floor(Math.abs(x)));
-}
-
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-
-var msPerDay = 86400000;
-var msPerSecond = 1000;
-var msPerMinute = 60000;
-var msPerHour = 3600000;
-
-var date_1899_end = -2208988800001;
-var date_1900_start = -2208988800000;
-var date_1969_end = -1;
-var date_1970_start = 0;
-var date_1999_end = 946684799999;
-var date_2000_start = 946684800000;
-var date_2099_end = 4102444799999;
-var date_2100_start = 4102444800000;
-
-
-//15.9.1.2 Day Number and Time within Day
-function Day(t) {
-  return Math.floor(t/msPerDay);
-}
-
-function TimeWithinDay(t) {
-  return t%msPerDay;
-}
-
-//15.9.1.3 Year Number
-function DaysInYear(y){
-  if(y%4 != 0) return 365;
-  if(y%4 == 0 &amp;&amp; y%100 != 0) return 366;
-  if(y%100 == 0 &amp;&amp; y%400 != 0) return 365;
-  if(y%400 == 0) return 366;
-}
-
-function DayFromYear(y) {
-  return (365*(y-1970)
-          + Math.floor((y-1969)/4)
-          - Math.floor((y-1901)/100)
-          + Math.floor((y-1601)/400));
-}
-
-function TimeFromYear(y){
-  return msPerDay*DayFromYear(y);
-}
-
-function YearFromTime(t) {
-  t = Number(t);
-  var sign = ( t &lt; 0 ) ? -1 : 1;
-  var year = ( sign &lt; 0 ) ? 1969 : 1970;
-  
-  for(var time = 0;;year += sign){
-    time = TimeFromYear(year);
-    
-    if(sign &gt; 0 &amp;&amp; time &gt; t){
-      year -= sign;
-      break;
-    }
-    else if(sign &lt; 0 &amp;&amp; time &lt;= t){
-      break;
-    }
-  };
-  return year;
-}
-  
-function InLeapYear(t){
-  if(DaysInYear(YearFromTime(t)) == 365)
-    return 0;
-  
-  if(DaysInYear(YearFromTime(t)) == 366)
-    return 1;
-}
-
-function DayWithinYear(t) {
-  return Day(t)-DayFromYear(YearFromTime(t));
-}
-
-//15.9.1.4 Month Number
-function MonthFromTime(t){
-  var day = DayWithinYear(t);
-  var leap = InLeapYear(t);
-
-  if((0 &lt;= day) &amp;&amp; (day &lt; 31)) return 0;
-  if((31 &lt;= day) &amp;&amp; (day &lt; (59+leap))) return 1;
-  if(((59+leap) &lt;= day) &amp;&amp; (day &lt; (90+leap))) return 2;
-  if(((90+leap) &lt;= day) &amp;&amp; (day &lt; (120+leap))) return 3;
-  if(((120+leap) &lt;= day) &amp;&amp; (day &lt; (151+leap))) return 4;
-  if(((151+leap) &lt;= day) &amp;&amp; (day &lt; (181+leap))) return 5;
-  if(((181+leap) &lt;= day) &amp;&amp; (day &lt; (212+leap))) return 6;
-  if(((212+leap) &lt;= day) &amp;&amp; (day &lt; (243+leap))) return 7;
-  if(((243+leap) &lt;= day) &amp;&amp; (day &lt; (273+leap))) return 8;
-  if(((273+leap) &lt;= day) &amp;&amp; (day &lt; (304+leap))) return 9;
-  if(((304+leap) &lt;= day) &amp;&amp; (day &lt; (334+leap))) return 10;
-  if(((334+leap) &lt;= day) &amp;&amp; (day &lt; (365+leap))) return 11;
-}
-
-//15.9.1.5 Date Number
-function DateFromTime(t) {
-  var day = DayWithinYear(t);
-  var month = MonthFromTime(t);
-  var leap = InLeapYear(t);
-
-  if(month == 0) return day+1;
-  if(month == 1) return day-30;
-  if(month == 2) return day-58-leap;
-  if(month == 3) return day-89-leap;
-  if(month == 4) return day-119-leap;
-  if(month == 5) return day-150-leap;
-  if(month == 6) return day-180-leap;
-  if(month == 7) return day-211-leap;
-  if(month == 8) return day-242-leap;
-  if(month == 9) return day-272-leap;
-  if(month == 10) return day-303-leap;
-  if(month == 11) return day-333-leap;
-}
-
-//15.9.1.6 Week Day
-function WeekDay(t) {
-  var weekday = (Day(t)+4)%7;
-  return (weekday &lt; 0 ? 7+weekday : weekday);
-}
-
-//15.9.1.9 Daylight Saving Time Adjustment
-var LocalTZA = $LocalTZ*msPerHour;
-
-function DaysInMonth(m, leap) {
-  m = m%12;
-  
-  //April, June, Sept, Nov
-  if(m == 3 || m == 5 || m == 8 || m == 10 ) {
-    return 30;
-  }
-
-  //Jan, March, May, July, Aug, Oct, Dec
-  if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
-    return 31;
-  }
-
-  //Feb
-  return 28+leap;
-}
-
-function GetSundayInMonth(t, m, count){
-  var year = YearFromTime(t);
-  var leap = InLeapYear(t);
-  var day = 0;
-  
-  if(m &gt;= 1) day += DaysInMonth(0, leap);
-  if(m &gt;= 2) day += DaysInMonth(1, leap);
-  if(m &gt;= 3) day += DaysInMonth(2, leap);
-  if(m &gt;= 4) day += DaysInMonth(3, leap);
-  if(m &gt;= 5) day += DaysInMonth(4, leap);
-  if(m &gt;= 6) day += DaysInMonth(5, leap);
-  if(m &gt;= 7) day += DaysInMonth(6, leap);
-  if(m &gt;= 8) day += DaysInMonth(7, leap);
-  if(m &gt;= 9) day += DaysInMonth(8, leap);
-  if(m &gt;= 10) day += DaysInMonth(9, leap);
-  if(m &gt;= 11) day += DaysInMonth(10, leap);
-  
-  var month_start = TimeFromYear(year)+day*msPerDay;
-  var sunday = 0;
-  
-  if(count === &quot;last&quot;){
-    for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay; 
-      WeekDay(last_sunday)&gt;0;
-      last_sunday -= msPerDay
-    ){};
-    sunday = last_sunday;
-  }
-  else {
-    for(var first_sunday = month_start; 
-      WeekDay(first_sunday)&gt;0;
-      first_sunday += msPerDay
-    ){};
-    sunday = first_sunday+7*msPerDay*(count-1);
-  }
-  
-  return sunday;
-}
-
-function DaylightSavingTA(t) {
-  t = t-LocalTZA;
-
-  var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
-                  +$DST_start_hour*msPerHour
-                  +$DST_start_minutes*msPerMinute;
-                  
-  var k = new Date(DST_start);
-  
-  var DST_end   = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
-                  +$DST_end_hour*msPerHour
-                  +$DST_end_minutes*msPerMinute;
-
-  if ( t &gt;= DST_start &amp;&amp; t &lt; DST_end ) {
-    return msPerHour;
-  } else {
-    return 0;
-  }
-}
-
-//15.9.1.9 Local Time
-function LocalTime(t){
-  return t+LocalTZA+DaylightSavingTA(t);
-}
-
-function UTC(t) {
-  return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
-}
-
-//15.9.1.10 Hours, Minutes, Second, and Milliseconds
-function HourFromTime(t){
-  return Math.floor(t/msPerHour)%HoursPerDay;
-}
-
-function MinFromTime(t){
-  return Math.floor(t/msPerMinute)%MinutesPerHour;
-}
-
-function SecFromTime(t){
-  return Math.floor(t/msPerSecond)%SecondsPerMinute;
-}
-
-function msFromTime(t){
-  return t%msPerSecond;
-}
-
-//15.9.1.11 MakeTime (hour, min, sec, ms)
-function MakeTime(hour, min, sec, ms){
-  if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
-    return Number.NaN;
-  }
-
-  hour = ToInteger(hour);
-  min  = ToInteger(min);
-  sec  = ToInteger(sec);
-  ms   = ToInteger(ms);
-
-  return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
-}
-
-//15.9.1.12 MakeDay (year, month, date)
-function MakeDay(year, month, date) {
-  if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
-    return Number.NaN;
-  }
-
-  year = ToInteger(year);
-  month = ToInteger(month);
-  date = ToInteger(date );
-
-  var result5 = year + Math.floor(month/12);
-  var result6 = month%12;
-
-  var sign = ( year &lt; 1970 ) ? -1 : 1;
-  var t =    ( year &lt; 1970 ) ? 1 :  0;
-  var y =    ( year &lt; 1970 ) ? 1969 : 1970;
-
-  if( sign == -1 ){
-    for ( y = 1969; y &gt;= year; y += sign ) {
-      t += sign * DaysInYear(y)*msPerDay;
-    }
-  } else {
-    for ( y = 1970 ; y &lt; year; y += sign ) {
-      t += sign * DaysInYear(y)*msPerDay;
-    }
-  }
-
-  var leap = 0;
-  for ( var m = 0; m &lt; month; m++ ) {
-    //if year is changed, than we need to recalculate leep
-    leap = InLeapYear(t);
-    t += DaysInMonth(m, leap)*msPerDay;
-  }
-
-  if ( YearFromTime(t) != result5 ) {
-    return Number.NaN;
-  }
-  if ( MonthFromTime(t) != result6 ) {
-    return Number.NaN;
-  }
-  if ( DateFromTime(t) != 1 ) {
-    return Number.NaN;
-  }
-
-  return Day(t)+date-1;
-}
-
-//15.9.1.13 MakeDate (day, time)
-function MakeDate( day, time ) {
-  if(!isFinite(day) || !isFinite(time)) {
-    return Number.NaN;
-  }
-  
-  return day*msPerDay+time;
-}
-
-//15.9.1.14 TimeClip (time)
-function TimeClip(time) {
-  if(!isFinite(time) || Math.abs(time) &gt; 8.64e15){
-    return Number.NaN;
-  }
-
-  return ToInteger(time);
-}
-
-//Test Functions
-function ConstructDate(year, month, date, hours, minutes, seconds, ms){
-  /*
-   * 1. Call ToNumber(year)
-   * 2. Call ToNumber(month)
-   * 3. If date is supplied use ToNumber(date); else use 1
-   * 4. If hours is supplied use ToNumber(hours); else use 0
-   * 5. If minutes is supplied use ToNumber(minutes); else use 0
-   * 6. If seconds is supplied use ToNumber(seconds); else use 0
-   * 7. If ms is supplied use ToNumber(ms); else use 0
-   * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
-   * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
-   * 9. Compute MakeDay(Result(8), Result(2), Result(3))
-   * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
-   * 11. Compute MakeDate(Result(9), Result(10))
-   * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
-   */
-  var r1 = Number(year);
-  var r2 = Number(month);
-  var r3 = ((date &amp;&amp; arguments.length &gt; 2) ? Number(date) : 1);
-  var r4 = ((hours &amp;&amp; arguments.length &gt; 3) ? Number(hours) : 0);   
-  var r5 = ((minutes &amp;&amp; arguments.length &gt; 4) ? Number(minutes) : 0);   
-  var r6 = ((seconds &amp;&amp; arguments.length &gt; 5) ? Number(seconds) : 0);   
-  var r7 = ((ms &amp;&amp; arguments.length &gt; 6) ? Number(ms) : 0);
-  
-  var r8 = r1;
-  
-  if(!isNaN(r1) &amp;&amp; (0 &lt;= ToInteger(r1)) &amp;&amp; (ToInteger(r1) &lt;= 99))
-    r8 = 1900+r1;
-  
-  var r9 = MakeDay(r8, r2, r3);
-  var r10 = MakeTime(r4, r5, r6, r7);
-  var r11 = MakeDate(r9, r10);
-  
-  return TimeClip(UTC(r11));
-}
-
-
-
-if (ConstructDate(1899, 11, 31) !== new Date(1899, 11, 31).valueOf()) {
-  testFailed(&quot;#1: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1899, 12, 1) !== new Date(1899, 12, 1).valueOf()) {
-  testFailed(&quot;#2: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1900, 0, 1) !== new Date(1900, 0, 1).valueOf()) {
-  testFailed(&quot;#3: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1969, 11, 31) !== new Date(1969, 11, 31).valueOf()) {
-  testFailed(&quot;#4: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1969, 12, 1) !== new Date(1969, 12, 1).valueOf()) {
-  testFailed(&quot;#5: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1970, 0, 1) !== new Date(1970, 0, 1).valueOf()) {
-  testFailed(&quot;#6: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1999, 11, 31) !== new Date(1999, 11, 31).valueOf()) {
-  testFailed(&quot;#7: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1999, 12, 1) !== new Date(1999, 12, 1).valueOf()) {
-  testFailed(&quot;#8: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2000, 0, 1) !== new Date(2000, 0, 1).valueOf()) {
-  testFailed(&quot;#9: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2099, 11, 31) !== new Date(2099, 11, 31).valueOf()) {
-  testFailed(&quot;#10: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2099, 12, 1) !== new Date(2099, 12, 1).valueOf()) {
-  testFailed(&quot;#11: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2100, 0, 1) !== new Date(2100, 0, 1).valueOf()) {
-  testFailed(&quot;#12: Incorrect value of Date&quot;);
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T3htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T3htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,522 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S15.9.3.1_A5_T3&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S15.9.3.1_A5_T3;
+ * @section: 15.9.3.1;
+ * @assertion: The [[Value]] property of the newly constructed object 
+ * is set by following steps:
+ * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to 
+ * TimeClip(UTC(Result(11)));
+ * @description: 4 arguments, (year, month, date, hours);
+ */
+
+var $DST_end_hour = 2;
+var $DST_end_minutes = 0;
+var $DST_end_month = 10;
+var $DST_end_sunday = 'first';
+var $DST_start_hour = 2;
+var $DST_start_minutes = 0;
+var $DST_start_month = 2;
+var $DST_start_sunday = 'first';
+var $LocalTZ = -8;
+function ToInteger(p) {
+  x = Number(p);
+
+  if(isNaN(x)){
+    return +0;
+  }
+  
+  if((x === +0) 
+  || (x === -0) 
+  || (x === Number.POSITIVE_INFINITY) 
+  || (x === Number.NEGATIVE_INFINITY)){
+     return x;
+  }
+
+  var sign = ( x &lt; 0 ) ? -1 : 1;
+
+  return (sign*Math.floor(Math.abs(x)));
+}
+
+
+var HoursPerDay = 24;
+var MinutesPerHour = 60;
+var SecondsPerMinute = 60;
+
+var msPerDay = 86400000;
+var msPerSecond = 1000;
+var msPerMinute = 60000;
+var msPerHour = 3600000;
+
+var date_1899_end = -2208988800001;
+var date_1900_start = -2208988800000;
+var date_1969_end = -1;
+var date_1970_start = 0;
+var date_1999_end = 946684799999;
+var date_2000_start = 946684800000;
+var date_2099_end = 4102444799999;
+var date_2100_start = 4102444800000;
+
+
+//15.9.1.2 Day Number and Time within Day
+function Day(t) {
+  return Math.floor(t/msPerDay);
+}
+
+function TimeWithinDay(t) {
+  return t%msPerDay;
+}
+
+//15.9.1.3 Year Number
+function DaysInYear(y){
+  if(y%4 != 0) return 365;
+  if(y%4 == 0 &amp;&amp; y%100 != 0) return 366;
+  if(y%100 == 0 &amp;&amp; y%400 != 0) return 365;
+  if(y%400 == 0) return 366;
+}
+
+function DayFromYear(y) {
+  return (365*(y-1970)
+          + Math.floor((y-1969)/4)
+          - Math.floor((y-1901)/100)
+          + Math.floor((y-1601)/400));
+}
+
+function TimeFromYear(y){
+  return msPerDay*DayFromYear(y);
+}
+
+function YearFromTime(t) {
+  t = Number(t);
+  var sign = ( t &lt; 0 ) ? -1 : 1;
+  var year = ( sign &lt; 0 ) ? 1969 : 1970;
+  
+  for(var time = 0;;year += sign){
+    time = TimeFromYear(year);
+    
+    if(sign &gt; 0 &amp;&amp; time &gt; t){
+      year -= sign;
+      break;
+    }
+    else if(sign &lt; 0 &amp;&amp; time &lt;= t){
+      break;
+    }
+  };
+  return year;
+}
+  
+function InLeapYear(t){
+  if(DaysInYear(YearFromTime(t)) == 365)
+    return 0;
+  
+  if(DaysInYear(YearFromTime(t)) == 366)
+    return 1;
+}
+
+function DayWithinYear(t) {
+  return Day(t)-DayFromYear(YearFromTime(t));
+}
+
+//15.9.1.4 Month Number
+function MonthFromTime(t){
+  var day = DayWithinYear(t);
+  var leap = InLeapYear(t);
+
+  if((0 &lt;= day) &amp;&amp; (day &lt; 31)) return 0;
+  if((31 &lt;= day) &amp;&amp; (day &lt; (59+leap))) return 1;
+  if(((59+leap) &lt;= day) &amp;&amp; (day &lt; (90+leap))) return 2;
+  if(((90+leap) &lt;= day) &amp;&amp; (day &lt; (120+leap))) return 3;
+  if(((120+leap) &lt;= day) &amp;&amp; (day &lt; (151+leap))) return 4;
+  if(((151+leap) &lt;= day) &amp;&amp; (day &lt; (181+leap))) return 5;
+  if(((181+leap) &lt;= day) &amp;&amp; (day &lt; (212+leap))) return 6;
+  if(((212+leap) &lt;= day) &amp;&amp; (day &lt; (243+leap))) return 7;
+  if(((243+leap) &lt;= day) &amp;&amp; (day &lt; (273+leap))) return 8;
+  if(((273+leap) &lt;= day) &amp;&amp; (day &lt; (304+leap))) return 9;
+  if(((304+leap) &lt;= day) &amp;&amp; (day &lt; (334+leap))) return 10;
+  if(((334+leap) &lt;= day) &amp;&amp; (day &lt; (365+leap))) return 11;
+}
+
+//15.9.1.5 Date Number
+function DateFromTime(t) {
+  var day = DayWithinYear(t);
+  var month = MonthFromTime(t);
+  var leap = InLeapYear(t);
+
+  if(month == 0) return day+1;
+  if(month == 1) return day-30;
+  if(month == 2) return day-58-leap;
+  if(month == 3) return day-89-leap;
+  if(month == 4) return day-119-leap;
+  if(month == 5) return day-150-leap;
+  if(month == 6) return day-180-leap;
+  if(month == 7) return day-211-leap;
+  if(month == 8) return day-242-leap;
+  if(month == 9) return day-272-leap;
+  if(month == 10) return day-303-leap;
+  if(month == 11) return day-333-leap;
+}
+
+//15.9.1.6 Week Day
+function WeekDay(t) {
+  var weekday = (Day(t)+4)%7;
+  return (weekday &lt; 0 ? 7+weekday : weekday);
+}
+
+//15.9.1.9 Daylight Saving Time Adjustment
+var LocalTZA = $LocalTZ*msPerHour;
+
+function DaysInMonth(m, leap) {
+  m = m%12;
+  
+  //April, June, Sept, Nov
+  if(m == 3 || m == 5 || m == 8 || m == 10 ) {
+    return 30;
+  }
+
+  //Jan, March, May, July, Aug, Oct, Dec
+  if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
+    return 31;
+  }
+
+  //Feb
+  return 28+leap;
+}
+
+function GetSundayInMonth(t, m, count){
+  var year = YearFromTime(t);
+  var leap = InLeapYear(t);
+  var day = 0;
+  
+  if(m &gt;= 1) day += DaysInMonth(0, leap);
+  if(m &gt;= 2) day += DaysInMonth(1, leap);
+  if(m &gt;= 3) day += DaysInMonth(2, leap);
+  if(m &gt;= 4) day += DaysInMonth(3, leap);
+  if(m &gt;= 5) day += DaysInMonth(4, leap);
+  if(m &gt;= 6) day += DaysInMonth(5, leap);
+  if(m &gt;= 7) day += DaysInMonth(6, leap);
+  if(m &gt;= 8) day += DaysInMonth(7, leap);
+  if(m &gt;= 9) day += DaysInMonth(8, leap);
+  if(m &gt;= 10) day += DaysInMonth(9, leap);
+  if(m &gt;= 11) day += DaysInMonth(10, leap);
+  
+  var month_start = TimeFromYear(year)+day*msPerDay;
+  var sunday = 0;
+  
+  if(count === &quot;last&quot;){
+    for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay; 
+      WeekDay(last_sunday)&gt;0;
+      last_sunday -= msPerDay
+    ){};
+    sunday = last_sunday;
+  }
+  else {
+    for(var first_sunday = month_start; 
+      WeekDay(first_sunday)&gt;0;
+      first_sunday += msPerDay
+    ){};
+    sunday = first_sunday+7*msPerDay*(count-1);
+  }
+  
+  return sunday;
+}
+
+function DaylightSavingTA(t) {
+  t = t-LocalTZA;
+
+  var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+                  +$DST_start_hour*msPerHour
+                  +$DST_start_minutes*msPerMinute;
+                  
+  var k = new Date(DST_start);
+  
+  var DST_end   = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+                  +$DST_end_hour*msPerHour
+                  +$DST_end_minutes*msPerMinute;
+
+  if ( t &gt;= DST_start &amp;&amp; t &lt; DST_end ) {
+    return msPerHour;
+  } else {
+    return 0;
+  }
+}
+
+//15.9.1.9 Local Time
+function LocalTime(t){
+  return t+LocalTZA+DaylightSavingTA(t);
+}
+
+function UTC(t) {
+  return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
+}
+
+//15.9.1.10 Hours, Minutes, Second, and Milliseconds
+function HourFromTime(t){
+  return Math.floor(t/msPerHour)%HoursPerDay;
+}
+
+function MinFromTime(t){
+  return Math.floor(t/msPerMinute)%MinutesPerHour;
+}
+
+function SecFromTime(t){
+  return Math.floor(t/msPerSecond)%SecondsPerMinute;
+}
+
+function msFromTime(t){
+  return t%msPerSecond;
+}
+
+//15.9.1.11 MakeTime (hour, min, sec, ms)
+function MakeTime(hour, min, sec, ms){
+  if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
+    return Number.NaN;
+  }
+
+  hour = ToInteger(hour);
+  min  = ToInteger(min);
+  sec  = ToInteger(sec);
+  ms   = ToInteger(ms);
+
+  return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
+}
+
+//15.9.1.12 MakeDay (year, month, date)
+function MakeDay(year, month, date) {
+  if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
+    return Number.NaN;
+  }
+
+  year = ToInteger(year);
+  month = ToInteger(month);
+  date = ToInteger(date );
+
+  var result5 = year + Math.floor(month/12);
+  var result6 = month%12;
+
+  var sign = ( year &lt; 1970 ) ? -1 : 1;
+  var t =    ( year &lt; 1970 ) ? 1 :  0;
+  var y =    ( year &lt; 1970 ) ? 1969 : 1970;
+
+  if( sign == -1 ){
+    for ( y = 1969; y &gt;= year; y += sign ) {
+      t += sign * DaysInYear(y)*msPerDay;
+    }
+  } else {
+    for ( y = 1970 ; y &lt; year; y += sign ) {
+      t += sign * DaysInYear(y)*msPerDay;
+    }
+  }
+
+  var leap = 0;
+  for ( var m = 0; m &lt; month; m++ ) {
+    //if year is changed, than we need to recalculate leep
+    leap = InLeapYear(t);
+    t += DaysInMonth(m, leap)*msPerDay;
+  }
+
+  if ( YearFromTime(t) != result5 ) {
+    return Number.NaN;
+  }
+  if ( MonthFromTime(t) != result6 ) {
+    return Number.NaN;
+  }
+  if ( DateFromTime(t) != 1 ) {
+    return Number.NaN;
+  }
+
+  return Day(t)+date-1;
+}
+
+//15.9.1.13 MakeDate (day, time)
+function MakeDate( day, time ) {
+  if(!isFinite(day) || !isFinite(time)) {
+    return Number.NaN;
+  }
+  
+  return day*msPerDay+time;
+}
+
+//15.9.1.14 TimeClip (time)
+function TimeClip(time) {
+  if(!isFinite(time) || Math.abs(time) &gt; 8.64e15){
+    return Number.NaN;
+  }
+
+  return ToInteger(time);
+}
+
+//Test Functions
+function ConstructDate(year, month, date, hours, minutes, seconds, ms){
+  /*
+   * 1. Call ToNumber(year)
+   * 2. Call ToNumber(month)
+   * 3. If date is supplied use ToNumber(date); else use 1
+   * 4. If hours is supplied use ToNumber(hours); else use 0
+   * 5. If minutes is supplied use ToNumber(minutes); else use 0
+   * 6. If seconds is supplied use ToNumber(seconds); else use 0
+   * 7. If ms is supplied use ToNumber(ms); else use 0
+   * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
+   * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+   * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+   * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+   * 11. Compute MakeDate(Result(9), Result(10))
+   * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
+   */
+  var r1 = Number(year);
+  var r2 = Number(month);
+  var r3 = ((date &amp;&amp; arguments.length &gt; 2) ? Number(date) : 1);
+  var r4 = ((hours &amp;&amp; arguments.length &gt; 3) ? Number(hours) : 0);   
+  var r5 = ((minutes &amp;&amp; arguments.length &gt; 4) ? Number(minutes) : 0);   
+  var r6 = ((seconds &amp;&amp; arguments.length &gt; 5) ? Number(seconds) : 0);   
+  var r7 = ((ms &amp;&amp; arguments.length &gt; 6) ? Number(ms) : 0);
+  
+  var r8 = r1;
+  
+  if(!isNaN(r1) &amp;&amp; (0 &lt;= ToInteger(r1)) &amp;&amp; (ToInteger(r1) &lt;= 99))
+    r8 = 1900+r1;
+  
+  var r9 = MakeDay(r8, r2, r3);
+  var r10 = MakeTime(r4, r5, r6, r7);
+  var r11 = MakeDate(r9, r10);
+  
+  return TimeClip(UTC(r11));
+}
+
+
+
+if (ConstructDate(1899, 11, 31, 23) !== new Date(1899, 11, 31, 23).valueOf()) {
+  testFailed(&quot;#1: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1899, 12, 1, 0) !== new Date(1899, 12, 1, 0).valueOf()) {
+  testFailed(&quot;#2: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1900, 0, 1, 0) !== new Date(1900, 0, 1, 0).valueOf()) {
+  testFailed(&quot;#3: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1969, 11, 31, 23) !== new Date(1969, 11, 31, 23).valueOf()) {
+  testFailed(&quot;#4: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1969, 12, 1, 0) !== new Date(1969, 12, 1, 0).valueOf()) {
+  testFailed(&quot;#5: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1970, 0, 1, 0) !== new Date(1970, 0, 1, 0).valueOf()) {
+  testFailed(&quot;#6: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1999, 11, 31, 23) !== new Date(1999, 11, 31, 23).valueOf()) {
+  testFailed(&quot;#7: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1999, 12, 1, 0) !== new Date(1999, 12, 1, 0).valueOf()) {
+  testFailed(&quot;#8: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2000, 0, 1, 0) !== new Date(2000, 0, 1, 0).valueOf()) {
+  testFailed(&quot;#9: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2099, 11, 31, 23) !== new Date(2099, 11, 31, 23).valueOf()) {
+  testFailed(&quot;#10: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2099, 12, 1, 0) !== new Date(2099, 12, 1, 0).valueOf()) {
+  testFailed(&quot;#11: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2100, 0, 1, 0) !== new Date(2100, 0, 1, 0).valueOf()) {
+  testFailed(&quot;#12: Incorrect value of Date&quot;);
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T3htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T3.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,522 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S15.9.3.1_A5_T3&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S15.9.3.1_A5_T3;
- * @section: 15.9.3.1;
- * @assertion: The [[Value]] property of the newly constructed object 
- * is set by following steps:
- * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to 
- * TimeClip(UTC(Result(11)));
- * @description: 4 arguments, (year, month, date, hours);
- */
-
-var $DST_end_hour = 2;
-var $DST_end_minutes = 0;
-var $DST_end_month = 10;
-var $DST_end_sunday = 'first';
-var $DST_start_hour = 2;
-var $DST_start_minutes = 0;
-var $DST_start_month = 2;
-var $DST_start_sunday = 'first';
-var $LocalTZ = -8;
-function ToInteger(p) {
-  x = Number(p);
-
-  if(isNaN(x)){
-    return +0;
-  }
-  
-  if((x === +0) 
-  || (x === -0) 
-  || (x === Number.POSITIVE_INFINITY) 
-  || (x === Number.NEGATIVE_INFINITY)){
-     return x;
-  }
-
-  var sign = ( x &lt; 0 ) ? -1 : 1;
-
-  return (sign*Math.floor(Math.abs(x)));
-}
-
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-
-var msPerDay = 86400000;
-var msPerSecond = 1000;
-var msPerMinute = 60000;
-var msPerHour = 3600000;
-
-var date_1899_end = -2208988800001;
-var date_1900_start = -2208988800000;
-var date_1969_end = -1;
-var date_1970_start = 0;
-var date_1999_end = 946684799999;
-var date_2000_start = 946684800000;
-var date_2099_end = 4102444799999;
-var date_2100_start = 4102444800000;
-
-
-//15.9.1.2 Day Number and Time within Day
-function Day(t) {
-  return Math.floor(t/msPerDay);
-}
-
-function TimeWithinDay(t) {
-  return t%msPerDay;
-}
-
-//15.9.1.3 Year Number
-function DaysInYear(y){
-  if(y%4 != 0) return 365;
-  if(y%4 == 0 &amp;&amp; y%100 != 0) return 366;
-  if(y%100 == 0 &amp;&amp; y%400 != 0) return 365;
-  if(y%400 == 0) return 366;
-}
-
-function DayFromYear(y) {
-  return (365*(y-1970)
-          + Math.floor((y-1969)/4)
-          - Math.floor((y-1901)/100)
-          + Math.floor((y-1601)/400));
-}
-
-function TimeFromYear(y){
-  return msPerDay*DayFromYear(y);
-}
-
-function YearFromTime(t) {
-  t = Number(t);
-  var sign = ( t &lt; 0 ) ? -1 : 1;
-  var year = ( sign &lt; 0 ) ? 1969 : 1970;
-  
-  for(var time = 0;;year += sign){
-    time = TimeFromYear(year);
-    
-    if(sign &gt; 0 &amp;&amp; time &gt; t){
-      year -= sign;
-      break;
-    }
-    else if(sign &lt; 0 &amp;&amp; time &lt;= t){
-      break;
-    }
-  };
-  return year;
-}
-  
-function InLeapYear(t){
-  if(DaysInYear(YearFromTime(t)) == 365)
-    return 0;
-  
-  if(DaysInYear(YearFromTime(t)) == 366)
-    return 1;
-}
-
-function DayWithinYear(t) {
-  return Day(t)-DayFromYear(YearFromTime(t));
-}
-
-//15.9.1.4 Month Number
-function MonthFromTime(t){
-  var day = DayWithinYear(t);
-  var leap = InLeapYear(t);
-
-  if((0 &lt;= day) &amp;&amp; (day &lt; 31)) return 0;
-  if((31 &lt;= day) &amp;&amp; (day &lt; (59+leap))) return 1;
-  if(((59+leap) &lt;= day) &amp;&amp; (day &lt; (90+leap))) return 2;
-  if(((90+leap) &lt;= day) &amp;&amp; (day &lt; (120+leap))) return 3;
-  if(((120+leap) &lt;= day) &amp;&amp; (day &lt; (151+leap))) return 4;
-  if(((151+leap) &lt;= day) &amp;&amp; (day &lt; (181+leap))) return 5;
-  if(((181+leap) &lt;= day) &amp;&amp; (day &lt; (212+leap))) return 6;
-  if(((212+leap) &lt;= day) &amp;&amp; (day &lt; (243+leap))) return 7;
-  if(((243+leap) &lt;= day) &amp;&amp; (day &lt; (273+leap))) return 8;
-  if(((273+leap) &lt;= day) &amp;&amp; (day &lt; (304+leap))) return 9;
-  if(((304+leap) &lt;= day) &amp;&amp; (day &lt; (334+leap))) return 10;
-  if(((334+leap) &lt;= day) &amp;&amp; (day &lt; (365+leap))) return 11;
-}
-
-//15.9.1.5 Date Number
-function DateFromTime(t) {
-  var day = DayWithinYear(t);
-  var month = MonthFromTime(t);
-  var leap = InLeapYear(t);
-
-  if(month == 0) return day+1;
-  if(month == 1) return day-30;
-  if(month == 2) return day-58-leap;
-  if(month == 3) return day-89-leap;
-  if(month == 4) return day-119-leap;
-  if(month == 5) return day-150-leap;
-  if(month == 6) return day-180-leap;
-  if(month == 7) return day-211-leap;
-  if(month == 8) return day-242-leap;
-  if(month == 9) return day-272-leap;
-  if(month == 10) return day-303-leap;
-  if(month == 11) return day-333-leap;
-}
-
-//15.9.1.6 Week Day
-function WeekDay(t) {
-  var weekday = (Day(t)+4)%7;
-  return (weekday &lt; 0 ? 7+weekday : weekday);
-}
-
-//15.9.1.9 Daylight Saving Time Adjustment
-var LocalTZA = $LocalTZ*msPerHour;
-
-function DaysInMonth(m, leap) {
-  m = m%12;
-  
-  //April, June, Sept, Nov
-  if(m == 3 || m == 5 || m == 8 || m == 10 ) {
-    return 30;
-  }
-
-  //Jan, March, May, July, Aug, Oct, Dec
-  if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
-    return 31;
-  }
-
-  //Feb
-  return 28+leap;
-}
-
-function GetSundayInMonth(t, m, count){
-  var year = YearFromTime(t);
-  var leap = InLeapYear(t);
-  var day = 0;
-  
-  if(m &gt;= 1) day += DaysInMonth(0, leap);
-  if(m &gt;= 2) day += DaysInMonth(1, leap);
-  if(m &gt;= 3) day += DaysInMonth(2, leap);
-  if(m &gt;= 4) day += DaysInMonth(3, leap);
-  if(m &gt;= 5) day += DaysInMonth(4, leap);
-  if(m &gt;= 6) day += DaysInMonth(5, leap);
-  if(m &gt;= 7) day += DaysInMonth(6, leap);
-  if(m &gt;= 8) day += DaysInMonth(7, leap);
-  if(m &gt;= 9) day += DaysInMonth(8, leap);
-  if(m &gt;= 10) day += DaysInMonth(9, leap);
-  if(m &gt;= 11) day += DaysInMonth(10, leap);
-  
-  var month_start = TimeFromYear(year)+day*msPerDay;
-  var sunday = 0;
-  
-  if(count === &quot;last&quot;){
-    for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay; 
-      WeekDay(last_sunday)&gt;0;
-      last_sunday -= msPerDay
-    ){};
-    sunday = last_sunday;
-  }
-  else {
-    for(var first_sunday = month_start; 
-      WeekDay(first_sunday)&gt;0;
-      first_sunday += msPerDay
-    ){};
-    sunday = first_sunday+7*msPerDay*(count-1);
-  }
-  
-  return sunday;
-}
-
-function DaylightSavingTA(t) {
-  t = t-LocalTZA;
-
-  var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
-                  +$DST_start_hour*msPerHour
-                  +$DST_start_minutes*msPerMinute;
-                  
-  var k = new Date(DST_start);
-  
-  var DST_end   = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
-                  +$DST_end_hour*msPerHour
-                  +$DST_end_minutes*msPerMinute;
-
-  if ( t &gt;= DST_start &amp;&amp; t &lt; DST_end ) {
-    return msPerHour;
-  } else {
-    return 0;
-  }
-}
-
-//15.9.1.9 Local Time
-function LocalTime(t){
-  return t+LocalTZA+DaylightSavingTA(t);
-}
-
-function UTC(t) {
-  return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
-}
-
-//15.9.1.10 Hours, Minutes, Second, and Milliseconds
-function HourFromTime(t){
-  return Math.floor(t/msPerHour)%HoursPerDay;
-}
-
-function MinFromTime(t){
-  return Math.floor(t/msPerMinute)%MinutesPerHour;
-}
-
-function SecFromTime(t){
-  return Math.floor(t/msPerSecond)%SecondsPerMinute;
-}
-
-function msFromTime(t){
-  return t%msPerSecond;
-}
-
-//15.9.1.11 MakeTime (hour, min, sec, ms)
-function MakeTime(hour, min, sec, ms){
-  if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
-    return Number.NaN;
-  }
-
-  hour = ToInteger(hour);
-  min  = ToInteger(min);
-  sec  = ToInteger(sec);
-  ms   = ToInteger(ms);
-
-  return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
-}
-
-//15.9.1.12 MakeDay (year, month, date)
-function MakeDay(year, month, date) {
-  if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
-    return Number.NaN;
-  }
-
-  year = ToInteger(year);
-  month = ToInteger(month);
-  date = ToInteger(date );
-
-  var result5 = year + Math.floor(month/12);
-  var result6 = month%12;
-
-  var sign = ( year &lt; 1970 ) ? -1 : 1;
-  var t =    ( year &lt; 1970 ) ? 1 :  0;
-  var y =    ( year &lt; 1970 ) ? 1969 : 1970;
-
-  if( sign == -1 ){
-    for ( y = 1969; y &gt;= year; y += sign ) {
-      t += sign * DaysInYear(y)*msPerDay;
-    }
-  } else {
-    for ( y = 1970 ; y &lt; year; y += sign ) {
-      t += sign * DaysInYear(y)*msPerDay;
-    }
-  }
-
-  var leap = 0;
-  for ( var m = 0; m &lt; month; m++ ) {
-    //if year is changed, than we need to recalculate leep
-    leap = InLeapYear(t);
-    t += DaysInMonth(m, leap)*msPerDay;
-  }
-
-  if ( YearFromTime(t) != result5 ) {
-    return Number.NaN;
-  }
-  if ( MonthFromTime(t) != result6 ) {
-    return Number.NaN;
-  }
-  if ( DateFromTime(t) != 1 ) {
-    return Number.NaN;
-  }
-
-  return Day(t)+date-1;
-}
-
-//15.9.1.13 MakeDate (day, time)
-function MakeDate( day, time ) {
-  if(!isFinite(day) || !isFinite(time)) {
-    return Number.NaN;
-  }
-  
-  return day*msPerDay+time;
-}
-
-//15.9.1.14 TimeClip (time)
-function TimeClip(time) {
-  if(!isFinite(time) || Math.abs(time) &gt; 8.64e15){
-    return Number.NaN;
-  }
-
-  return ToInteger(time);
-}
-
-//Test Functions
-function ConstructDate(year, month, date, hours, minutes, seconds, ms){
-  /*
-   * 1. Call ToNumber(year)
-   * 2. Call ToNumber(month)
-   * 3. If date is supplied use ToNumber(date); else use 1
-   * 4. If hours is supplied use ToNumber(hours); else use 0
-   * 5. If minutes is supplied use ToNumber(minutes); else use 0
-   * 6. If seconds is supplied use ToNumber(seconds); else use 0
-   * 7. If ms is supplied use ToNumber(ms); else use 0
-   * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
-   * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
-   * 9. Compute MakeDay(Result(8), Result(2), Result(3))
-   * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
-   * 11. Compute MakeDate(Result(9), Result(10))
-   * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
-   */
-  var r1 = Number(year);
-  var r2 = Number(month);
-  var r3 = ((date &amp;&amp; arguments.length &gt; 2) ? Number(date) : 1);
-  var r4 = ((hours &amp;&amp; arguments.length &gt; 3) ? Number(hours) : 0);   
-  var r5 = ((minutes &amp;&amp; arguments.length &gt; 4) ? Number(minutes) : 0);   
-  var r6 = ((seconds &amp;&amp; arguments.length &gt; 5) ? Number(seconds) : 0);   
-  var r7 = ((ms &amp;&amp; arguments.length &gt; 6) ? Number(ms) : 0);
-  
-  var r8 = r1;
-  
-  if(!isNaN(r1) &amp;&amp; (0 &lt;= ToInteger(r1)) &amp;&amp; (ToInteger(r1) &lt;= 99))
-    r8 = 1900+r1;
-  
-  var r9 = MakeDay(r8, r2, r3);
-  var r10 = MakeTime(r4, r5, r6, r7);
-  var r11 = MakeDate(r9, r10);
-  
-  return TimeClip(UTC(r11));
-}
-
-
-
-if (ConstructDate(1899, 11, 31, 23) !== new Date(1899, 11, 31, 23).valueOf()) {
-  testFailed(&quot;#1: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1899, 12, 1, 0) !== new Date(1899, 12, 1, 0).valueOf()) {
-  testFailed(&quot;#2: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1900, 0, 1, 0) !== new Date(1900, 0, 1, 0).valueOf()) {
-  testFailed(&quot;#3: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1969, 11, 31, 23) !== new Date(1969, 11, 31, 23).valueOf()) {
-  testFailed(&quot;#4: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1969, 12, 1, 0) !== new Date(1969, 12, 1, 0).valueOf()) {
-  testFailed(&quot;#5: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1970, 0, 1, 0) !== new Date(1970, 0, 1, 0).valueOf()) {
-  testFailed(&quot;#6: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1999, 11, 31, 23) !== new Date(1999, 11, 31, 23).valueOf()) {
-  testFailed(&quot;#7: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1999, 12, 1, 0) !== new Date(1999, 12, 1, 0).valueOf()) {
-  testFailed(&quot;#8: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2000, 0, 1, 0) !== new Date(2000, 0, 1, 0).valueOf()) {
-  testFailed(&quot;#9: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2099, 11, 31, 23) !== new Date(2099, 11, 31, 23).valueOf()) {
-  testFailed(&quot;#10: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2099, 12, 1, 0) !== new Date(2099, 12, 1, 0).valueOf()) {
-  testFailed(&quot;#11: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2100, 0, 1, 0) !== new Date(2100, 0, 1, 0).valueOf()) {
-  testFailed(&quot;#12: Incorrect value of Date&quot;);
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T4htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T4htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,522 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S15.9.3.1_A5_T4&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S15.9.3.1_A5_T4;
+ * @section: 15.9.3.1;
+ * @assertion: The [[Value]] property of the newly constructed object 
+ * is set by following steps:
+ * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to 
+ * TimeClip(UTC(Result(11)));
+ * @description: 5 arguments, (year, month, date, hours, minutes);
+ */
+
+var $DST_end_hour = 2;
+var $DST_end_minutes = 0;
+var $DST_end_month = 10;
+var $DST_end_sunday = 'first';
+var $DST_start_hour = 2;
+var $DST_start_minutes = 0;
+var $DST_start_month = 2;
+var $DST_start_sunday = 'first';
+var $LocalTZ = -8;
+function ToInteger(p) {
+  x = Number(p);
+
+  if(isNaN(x)){
+    return +0;
+  }
+  
+  if((x === +0) 
+  || (x === -0) 
+  || (x === Number.POSITIVE_INFINITY) 
+  || (x === Number.NEGATIVE_INFINITY)){
+     return x;
+  }
+
+  var sign = ( x &lt; 0 ) ? -1 : 1;
+
+  return (sign*Math.floor(Math.abs(x)));
+}
+
+
+var HoursPerDay = 24;
+var MinutesPerHour = 60;
+var SecondsPerMinute = 60;
+
+var msPerDay = 86400000;
+var msPerSecond = 1000;
+var msPerMinute = 60000;
+var msPerHour = 3600000;
+
+var date_1899_end = -2208988800001;
+var date_1900_start = -2208988800000;
+var date_1969_end = -1;
+var date_1970_start = 0;
+var date_1999_end = 946684799999;
+var date_2000_start = 946684800000;
+var date_2099_end = 4102444799999;
+var date_2100_start = 4102444800000;
+
+
+//15.9.1.2 Day Number and Time within Day
+function Day(t) {
+  return Math.floor(t/msPerDay);
+}
+
+function TimeWithinDay(t) {
+  return t%msPerDay;
+}
+
+//15.9.1.3 Year Number
+function DaysInYear(y){
+  if(y%4 != 0) return 365;
+  if(y%4 == 0 &amp;&amp; y%100 != 0) return 366;
+  if(y%100 == 0 &amp;&amp; y%400 != 0) return 365;
+  if(y%400 == 0) return 366;
+}
+
+function DayFromYear(y) {
+  return (365*(y-1970)
+          + Math.floor((y-1969)/4)
+          - Math.floor((y-1901)/100)
+          + Math.floor((y-1601)/400));
+}
+
+function TimeFromYear(y){
+  return msPerDay*DayFromYear(y);
+}
+
+function YearFromTime(t) {
+  t = Number(t);
+  var sign = ( t &lt; 0 ) ? -1 : 1;
+  var year = ( sign &lt; 0 ) ? 1969 : 1970;
+  
+  for(var time = 0;;year += sign){
+    time = TimeFromYear(year);
+    
+    if(sign &gt; 0 &amp;&amp; time &gt; t){
+      year -= sign;
+      break;
+    }
+    else if(sign &lt; 0 &amp;&amp; time &lt;= t){
+      break;
+    }
+  };
+  return year;
+}
+  
+function InLeapYear(t){
+  if(DaysInYear(YearFromTime(t)) == 365)
+    return 0;
+  
+  if(DaysInYear(YearFromTime(t)) == 366)
+    return 1;
+}
+
+function DayWithinYear(t) {
+  return Day(t)-DayFromYear(YearFromTime(t));
+}
+
+//15.9.1.4 Month Number
+function MonthFromTime(t){
+  var day = DayWithinYear(t);
+  var leap = InLeapYear(t);
+
+  if((0 &lt;= day) &amp;&amp; (day &lt; 31)) return 0;
+  if((31 &lt;= day) &amp;&amp; (day &lt; (59+leap))) return 1;
+  if(((59+leap) &lt;= day) &amp;&amp; (day &lt; (90+leap))) return 2;
+  if(((90+leap) &lt;= day) &amp;&amp; (day &lt; (120+leap))) return 3;
+  if(((120+leap) &lt;= day) &amp;&amp; (day &lt; (151+leap))) return 4;
+  if(((151+leap) &lt;= day) &amp;&amp; (day &lt; (181+leap))) return 5;
+  if(((181+leap) &lt;= day) &amp;&amp; (day &lt; (212+leap))) return 6;
+  if(((212+leap) &lt;= day) &amp;&amp; (day &lt; (243+leap))) return 7;
+  if(((243+leap) &lt;= day) &amp;&amp; (day &lt; (273+leap))) return 8;
+  if(((273+leap) &lt;= day) &amp;&amp; (day &lt; (304+leap))) return 9;
+  if(((304+leap) &lt;= day) &amp;&amp; (day &lt; (334+leap))) return 10;
+  if(((334+leap) &lt;= day) &amp;&amp; (day &lt; (365+leap))) return 11;
+}
+
+//15.9.1.5 Date Number
+function DateFromTime(t) {
+  var day = DayWithinYear(t);
+  var month = MonthFromTime(t);
+  var leap = InLeapYear(t);
+
+  if(month == 0) return day+1;
+  if(month == 1) return day-30;
+  if(month == 2) return day-58-leap;
+  if(month == 3) return day-89-leap;
+  if(month == 4) return day-119-leap;
+  if(month == 5) return day-150-leap;
+  if(month == 6) return day-180-leap;
+  if(month == 7) return day-211-leap;
+  if(month == 8) return day-242-leap;
+  if(month == 9) return day-272-leap;
+  if(month == 10) return day-303-leap;
+  if(month == 11) return day-333-leap;
+}
+
+//15.9.1.6 Week Day
+function WeekDay(t) {
+  var weekday = (Day(t)+4)%7;
+  return (weekday &lt; 0 ? 7+weekday : weekday);
+}
+
+//15.9.1.9 Daylight Saving Time Adjustment
+var LocalTZA = $LocalTZ*msPerHour;
+
+function DaysInMonth(m, leap) {
+  m = m%12;
+  
+  //April, June, Sept, Nov
+  if(m == 3 || m == 5 || m == 8 || m == 10 ) {
+    return 30;
+  }
+
+  //Jan, March, May, July, Aug, Oct, Dec
+  if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
+    return 31;
+  }
+
+  //Feb
+  return 28+leap;
+}
+
+function GetSundayInMonth(t, m, count){
+  var year = YearFromTime(t);
+  var leap = InLeapYear(t);
+  var day = 0;
+  
+  if(m &gt;= 1) day += DaysInMonth(0, leap);
+  if(m &gt;= 2) day += DaysInMonth(1, leap);
+  if(m &gt;= 3) day += DaysInMonth(2, leap);
+  if(m &gt;= 4) day += DaysInMonth(3, leap);
+  if(m &gt;= 5) day += DaysInMonth(4, leap);
+  if(m &gt;= 6) day += DaysInMonth(5, leap);
+  if(m &gt;= 7) day += DaysInMonth(6, leap);
+  if(m &gt;= 8) day += DaysInMonth(7, leap);
+  if(m &gt;= 9) day += DaysInMonth(8, leap);
+  if(m &gt;= 10) day += DaysInMonth(9, leap);
+  if(m &gt;= 11) day += DaysInMonth(10, leap);
+  
+  var month_start = TimeFromYear(year)+day*msPerDay;
+  var sunday = 0;
+  
+  if(count === &quot;last&quot;){
+    for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay; 
+      WeekDay(last_sunday)&gt;0;
+      last_sunday -= msPerDay
+    ){};
+    sunday = last_sunday;
+  }
+  else {
+    for(var first_sunday = month_start; 
+      WeekDay(first_sunday)&gt;0;
+      first_sunday += msPerDay
+    ){};
+    sunday = first_sunday+7*msPerDay*(count-1);
+  }
+  
+  return sunday;
+}
+
+function DaylightSavingTA(t) {
+  t = t-LocalTZA;
+
+  var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+                  +$DST_start_hour*msPerHour
+                  +$DST_start_minutes*msPerMinute;
+                  
+  var k = new Date(DST_start);
+  
+  var DST_end   = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+                  +$DST_end_hour*msPerHour
+                  +$DST_end_minutes*msPerMinute;
+
+  if ( t &gt;= DST_start &amp;&amp; t &lt; DST_end ) {
+    return msPerHour;
+  } else {
+    return 0;
+  }
+}
+
+//15.9.1.9 Local Time
+function LocalTime(t){
+  return t+LocalTZA+DaylightSavingTA(t);
+}
+
+function UTC(t) {
+  return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
+}
+
+//15.9.1.10 Hours, Minutes, Second, and Milliseconds
+function HourFromTime(t){
+  return Math.floor(t/msPerHour)%HoursPerDay;
+}
+
+function MinFromTime(t){
+  return Math.floor(t/msPerMinute)%MinutesPerHour;
+}
+
+function SecFromTime(t){
+  return Math.floor(t/msPerSecond)%SecondsPerMinute;
+}
+
+function msFromTime(t){
+  return t%msPerSecond;
+}
+
+//15.9.1.11 MakeTime (hour, min, sec, ms)
+function MakeTime(hour, min, sec, ms){
+  if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
+    return Number.NaN;
+  }
+
+  hour = ToInteger(hour);
+  min  = ToInteger(min);
+  sec  = ToInteger(sec);
+  ms   = ToInteger(ms);
+
+  return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
+}
+
+//15.9.1.12 MakeDay (year, month, date)
+function MakeDay(year, month, date) {
+  if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
+    return Number.NaN;
+  }
+
+  year = ToInteger(year);
+  month = ToInteger(month);
+  date = ToInteger(date );
+
+  var result5 = year + Math.floor(month/12);
+  var result6 = month%12;
+
+  var sign = ( year &lt; 1970 ) ? -1 : 1;
+  var t =    ( year &lt; 1970 ) ? 1 :  0;
+  var y =    ( year &lt; 1970 ) ? 1969 : 1970;
+
+  if( sign == -1 ){
+    for ( y = 1969; y &gt;= year; y += sign ) {
+      t += sign * DaysInYear(y)*msPerDay;
+    }
+  } else {
+    for ( y = 1970 ; y &lt; year; y += sign ) {
+      t += sign * DaysInYear(y)*msPerDay;
+    }
+  }
+
+  var leap = 0;
+  for ( var m = 0; m &lt; month; m++ ) {
+    //if year is changed, than we need to recalculate leep
+    leap = InLeapYear(t);
+    t += DaysInMonth(m, leap)*msPerDay;
+  }
+
+  if ( YearFromTime(t) != result5 ) {
+    return Number.NaN;
+  }
+  if ( MonthFromTime(t) != result6 ) {
+    return Number.NaN;
+  }
+  if ( DateFromTime(t) != 1 ) {
+    return Number.NaN;
+  }
+
+  return Day(t)+date-1;
+}
+
+//15.9.1.13 MakeDate (day, time)
+function MakeDate( day, time ) {
+  if(!isFinite(day) || !isFinite(time)) {
+    return Number.NaN;
+  }
+  
+  return day*msPerDay+time;
+}
+
+//15.9.1.14 TimeClip (time)
+function TimeClip(time) {
+  if(!isFinite(time) || Math.abs(time) &gt; 8.64e15){
+    return Number.NaN;
+  }
+
+  return ToInteger(time);
+}
+
+//Test Functions
+function ConstructDate(year, month, date, hours, minutes, seconds, ms){
+  /*
+   * 1. Call ToNumber(year)
+   * 2. Call ToNumber(month)
+   * 3. If date is supplied use ToNumber(date); else use 1
+   * 4. If hours is supplied use ToNumber(hours); else use 0
+   * 5. If minutes is supplied use ToNumber(minutes); else use 0
+   * 6. If seconds is supplied use ToNumber(seconds); else use 0
+   * 7. If ms is supplied use ToNumber(ms); else use 0
+   * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
+   * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+   * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+   * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+   * 11. Compute MakeDate(Result(9), Result(10))
+   * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
+   */
+  var r1 = Number(year);
+  var r2 = Number(month);
+  var r3 = ((date &amp;&amp; arguments.length &gt; 2) ? Number(date) : 1);
+  var r4 = ((hours &amp;&amp; arguments.length &gt; 3) ? Number(hours) : 0);   
+  var r5 = ((minutes &amp;&amp; arguments.length &gt; 4) ? Number(minutes) : 0);   
+  var r6 = ((seconds &amp;&amp; arguments.length &gt; 5) ? Number(seconds) : 0);   
+  var r7 = ((ms &amp;&amp; arguments.length &gt; 6) ? Number(ms) : 0);
+  
+  var r8 = r1;
+  
+  if(!isNaN(r1) &amp;&amp; (0 &lt;= ToInteger(r1)) &amp;&amp; (ToInteger(r1) &lt;= 99))
+    r8 = 1900+r1;
+  
+  var r9 = MakeDay(r8, r2, r3);
+  var r10 = MakeTime(r4, r5, r6, r7);
+  var r11 = MakeDate(r9, r10);
+  
+  return TimeClip(UTC(r11));
+}
+
+
+
+if (ConstructDate(1899, 11, 31, 23, 59) !== new Date(1899, 11, 31, 23, 59).valueOf()) {
+  testFailed(&quot;#1: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1899, 12, 1, 0, 0) !== new Date(1899, 12, 1, 0, 0).valueOf()) {
+  testFailed(&quot;#2: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1900, 0, 1, 0, 0) !== new Date(1900, 0, 1, 0, 0).valueOf()) {
+  testFailed(&quot;#3: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1969, 11, 31, 23, 59) !== new Date(1969, 11, 31, 23, 59).valueOf()) {
+  testFailed(&quot;#4: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1969, 12, 1, 0, 0) !== new Date(1969, 12, 1, 0, 0).valueOf()) {
+  testFailed(&quot;#5: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1970, 0, 1, 0, 0) !== new Date(1970, 0, 1, 0, 0).valueOf()) {
+  testFailed(&quot;#6: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1999, 11, 31, 23, 59) !== new Date(1999, 11, 31, 23, 59).valueOf()) {
+  testFailed(&quot;#7: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1999, 12, 1, 0, 0) !== new Date(1999, 12, 1, 0, 0).valueOf()) {
+  testFailed(&quot;#8: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2000, 0, 1, 0, 0) !== new Date(2000, 0, 1, 0, 0).valueOf()) {
+  testFailed(&quot;#9: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2099, 11, 31, 23, 59) !== new Date(2099, 11, 31, 23, 59).valueOf()) {
+  testFailed(&quot;#10: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2099, 12, 1, 0, 0) !== new Date(2099, 12, 1, 0, 0).valueOf()) {
+  testFailed(&quot;#11: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2100, 0, 1, 0, 0) !== new Date(2100, 0, 1, 0, 0).valueOf()) {
+  testFailed(&quot;#12: Incorrect value of Date&quot;);
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T4htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T4.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,522 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S15.9.3.1_A5_T4&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S15.9.3.1_A5_T4;
- * @section: 15.9.3.1;
- * @assertion: The [[Value]] property of the newly constructed object 
- * is set by following steps:
- * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to 
- * TimeClip(UTC(Result(11)));
- * @description: 5 arguments, (year, month, date, hours, minutes);
- */
-
-var $DST_end_hour = 2;
-var $DST_end_minutes = 0;
-var $DST_end_month = 10;
-var $DST_end_sunday = 'first';
-var $DST_start_hour = 2;
-var $DST_start_minutes = 0;
-var $DST_start_month = 2;
-var $DST_start_sunday = 'first';
-var $LocalTZ = -8;
-function ToInteger(p) {
-  x = Number(p);
-
-  if(isNaN(x)){
-    return +0;
-  }
-  
-  if((x === +0) 
-  || (x === -0) 
-  || (x === Number.POSITIVE_INFINITY) 
-  || (x === Number.NEGATIVE_INFINITY)){
-     return x;
-  }
-
-  var sign = ( x &lt; 0 ) ? -1 : 1;
-
-  return (sign*Math.floor(Math.abs(x)));
-}
-
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-
-var msPerDay = 86400000;
-var msPerSecond = 1000;
-var msPerMinute = 60000;
-var msPerHour = 3600000;
-
-var date_1899_end = -2208988800001;
-var date_1900_start = -2208988800000;
-var date_1969_end = -1;
-var date_1970_start = 0;
-var date_1999_end = 946684799999;
-var date_2000_start = 946684800000;
-var date_2099_end = 4102444799999;
-var date_2100_start = 4102444800000;
-
-
-//15.9.1.2 Day Number and Time within Day
-function Day(t) {
-  return Math.floor(t/msPerDay);
-}
-
-function TimeWithinDay(t) {
-  return t%msPerDay;
-}
-
-//15.9.1.3 Year Number
-function DaysInYear(y){
-  if(y%4 != 0) return 365;
-  if(y%4 == 0 &amp;&amp; y%100 != 0) return 366;
-  if(y%100 == 0 &amp;&amp; y%400 != 0) return 365;
-  if(y%400 == 0) return 366;
-}
-
-function DayFromYear(y) {
-  return (365*(y-1970)
-          + Math.floor((y-1969)/4)
-          - Math.floor((y-1901)/100)
-          + Math.floor((y-1601)/400));
-}
-
-function TimeFromYear(y){
-  return msPerDay*DayFromYear(y);
-}
-
-function YearFromTime(t) {
-  t = Number(t);
-  var sign = ( t &lt; 0 ) ? -1 : 1;
-  var year = ( sign &lt; 0 ) ? 1969 : 1970;
-  
-  for(var time = 0;;year += sign){
-    time = TimeFromYear(year);
-    
-    if(sign &gt; 0 &amp;&amp; time &gt; t){
-      year -= sign;
-      break;
-    }
-    else if(sign &lt; 0 &amp;&amp; time &lt;= t){
-      break;
-    }
-  };
-  return year;
-}
-  
-function InLeapYear(t){
-  if(DaysInYear(YearFromTime(t)) == 365)
-    return 0;
-  
-  if(DaysInYear(YearFromTime(t)) == 366)
-    return 1;
-}
-
-function DayWithinYear(t) {
-  return Day(t)-DayFromYear(YearFromTime(t));
-}
-
-//15.9.1.4 Month Number
-function MonthFromTime(t){
-  var day = DayWithinYear(t);
-  var leap = InLeapYear(t);
-
-  if((0 &lt;= day) &amp;&amp; (day &lt; 31)) return 0;
-  if((31 &lt;= day) &amp;&amp; (day &lt; (59+leap))) return 1;
-  if(((59+leap) &lt;= day) &amp;&amp; (day &lt; (90+leap))) return 2;
-  if(((90+leap) &lt;= day) &amp;&amp; (day &lt; (120+leap))) return 3;
-  if(((120+leap) &lt;= day) &amp;&amp; (day &lt; (151+leap))) return 4;
-  if(((151+leap) &lt;= day) &amp;&amp; (day &lt; (181+leap))) return 5;
-  if(((181+leap) &lt;= day) &amp;&amp; (day &lt; (212+leap))) return 6;
-  if(((212+leap) &lt;= day) &amp;&amp; (day &lt; (243+leap))) return 7;
-  if(((243+leap) &lt;= day) &amp;&amp; (day &lt; (273+leap))) return 8;
-  if(((273+leap) &lt;= day) &amp;&amp; (day &lt; (304+leap))) return 9;
-  if(((304+leap) &lt;= day) &amp;&amp; (day &lt; (334+leap))) return 10;
-  if(((334+leap) &lt;= day) &amp;&amp; (day &lt; (365+leap))) return 11;
-}
-
-//15.9.1.5 Date Number
-function DateFromTime(t) {
-  var day = DayWithinYear(t);
-  var month = MonthFromTime(t);
-  var leap = InLeapYear(t);
-
-  if(month == 0) return day+1;
-  if(month == 1) return day-30;
-  if(month == 2) return day-58-leap;
-  if(month == 3) return day-89-leap;
-  if(month == 4) return day-119-leap;
-  if(month == 5) return day-150-leap;
-  if(month == 6) return day-180-leap;
-  if(month == 7) return day-211-leap;
-  if(month == 8) return day-242-leap;
-  if(month == 9) return day-272-leap;
-  if(month == 10) return day-303-leap;
-  if(month == 11) return day-333-leap;
-}
-
-//15.9.1.6 Week Day
-function WeekDay(t) {
-  var weekday = (Day(t)+4)%7;
-  return (weekday &lt; 0 ? 7+weekday : weekday);
-}
-
-//15.9.1.9 Daylight Saving Time Adjustment
-var LocalTZA = $LocalTZ*msPerHour;
-
-function DaysInMonth(m, leap) {
-  m = m%12;
-  
-  //April, June, Sept, Nov
-  if(m == 3 || m == 5 || m == 8 || m == 10 ) {
-    return 30;
-  }
-
-  //Jan, March, May, July, Aug, Oct, Dec
-  if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
-    return 31;
-  }
-
-  //Feb
-  return 28+leap;
-}
-
-function GetSundayInMonth(t, m, count){
-  var year = YearFromTime(t);
-  var leap = InLeapYear(t);
-  var day = 0;
-  
-  if(m &gt;= 1) day += DaysInMonth(0, leap);
-  if(m &gt;= 2) day += DaysInMonth(1, leap);
-  if(m &gt;= 3) day += DaysInMonth(2, leap);
-  if(m &gt;= 4) day += DaysInMonth(3, leap);
-  if(m &gt;= 5) day += DaysInMonth(4, leap);
-  if(m &gt;= 6) day += DaysInMonth(5, leap);
-  if(m &gt;= 7) day += DaysInMonth(6, leap);
-  if(m &gt;= 8) day += DaysInMonth(7, leap);
-  if(m &gt;= 9) day += DaysInMonth(8, leap);
-  if(m &gt;= 10) day += DaysInMonth(9, leap);
-  if(m &gt;= 11) day += DaysInMonth(10, leap);
-  
-  var month_start = TimeFromYear(year)+day*msPerDay;
-  var sunday = 0;
-  
-  if(count === &quot;last&quot;){
-    for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay; 
-      WeekDay(last_sunday)&gt;0;
-      last_sunday -= msPerDay
-    ){};
-    sunday = last_sunday;
-  }
-  else {
-    for(var first_sunday = month_start; 
-      WeekDay(first_sunday)&gt;0;
-      first_sunday += msPerDay
-    ){};
-    sunday = first_sunday+7*msPerDay*(count-1);
-  }
-  
-  return sunday;
-}
-
-function DaylightSavingTA(t) {
-  t = t-LocalTZA;
-
-  var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
-                  +$DST_start_hour*msPerHour
-                  +$DST_start_minutes*msPerMinute;
-                  
-  var k = new Date(DST_start);
-  
-  var DST_end   = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
-                  +$DST_end_hour*msPerHour
-                  +$DST_end_minutes*msPerMinute;
-
-  if ( t &gt;= DST_start &amp;&amp; t &lt; DST_end ) {
-    return msPerHour;
-  } else {
-    return 0;
-  }
-}
-
-//15.9.1.9 Local Time
-function LocalTime(t){
-  return t+LocalTZA+DaylightSavingTA(t);
-}
-
-function UTC(t) {
-  return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
-}
-
-//15.9.1.10 Hours, Minutes, Second, and Milliseconds
-function HourFromTime(t){
-  return Math.floor(t/msPerHour)%HoursPerDay;
-}
-
-function MinFromTime(t){
-  return Math.floor(t/msPerMinute)%MinutesPerHour;
-}
-
-function SecFromTime(t){
-  return Math.floor(t/msPerSecond)%SecondsPerMinute;
-}
-
-function msFromTime(t){
-  return t%msPerSecond;
-}
-
-//15.9.1.11 MakeTime (hour, min, sec, ms)
-function MakeTime(hour, min, sec, ms){
-  if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
-    return Number.NaN;
-  }
-
-  hour = ToInteger(hour);
-  min  = ToInteger(min);
-  sec  = ToInteger(sec);
-  ms   = ToInteger(ms);
-
-  return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
-}
-
-//15.9.1.12 MakeDay (year, month, date)
-function MakeDay(year, month, date) {
-  if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
-    return Number.NaN;
-  }
-
-  year = ToInteger(year);
-  month = ToInteger(month);
-  date = ToInteger(date );
-
-  var result5 = year + Math.floor(month/12);
-  var result6 = month%12;
-
-  var sign = ( year &lt; 1970 ) ? -1 : 1;
-  var t =    ( year &lt; 1970 ) ? 1 :  0;
-  var y =    ( year &lt; 1970 ) ? 1969 : 1970;
-
-  if( sign == -1 ){
-    for ( y = 1969; y &gt;= year; y += sign ) {
-      t += sign * DaysInYear(y)*msPerDay;
-    }
-  } else {
-    for ( y = 1970 ; y &lt; year; y += sign ) {
-      t += sign * DaysInYear(y)*msPerDay;
-    }
-  }
-
-  var leap = 0;
-  for ( var m = 0; m &lt; month; m++ ) {
-    //if year is changed, than we need to recalculate leep
-    leap = InLeapYear(t);
-    t += DaysInMonth(m, leap)*msPerDay;
-  }
-
-  if ( YearFromTime(t) != result5 ) {
-    return Number.NaN;
-  }
-  if ( MonthFromTime(t) != result6 ) {
-    return Number.NaN;
-  }
-  if ( DateFromTime(t) != 1 ) {
-    return Number.NaN;
-  }
-
-  return Day(t)+date-1;
-}
-
-//15.9.1.13 MakeDate (day, time)
-function MakeDate( day, time ) {
-  if(!isFinite(day) || !isFinite(time)) {
-    return Number.NaN;
-  }
-  
-  return day*msPerDay+time;
-}
-
-//15.9.1.14 TimeClip (time)
-function TimeClip(time) {
-  if(!isFinite(time) || Math.abs(time) &gt; 8.64e15){
-    return Number.NaN;
-  }
-
-  return ToInteger(time);
-}
-
-//Test Functions
-function ConstructDate(year, month, date, hours, minutes, seconds, ms){
-  /*
-   * 1. Call ToNumber(year)
-   * 2. Call ToNumber(month)
-   * 3. If date is supplied use ToNumber(date); else use 1
-   * 4. If hours is supplied use ToNumber(hours); else use 0
-   * 5. If minutes is supplied use ToNumber(minutes); else use 0
-   * 6. If seconds is supplied use ToNumber(seconds); else use 0
-   * 7. If ms is supplied use ToNumber(ms); else use 0
-   * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
-   * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
-   * 9. Compute MakeDay(Result(8), Result(2), Result(3))
-   * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
-   * 11. Compute MakeDate(Result(9), Result(10))
-   * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
-   */
-  var r1 = Number(year);
-  var r2 = Number(month);
-  var r3 = ((date &amp;&amp; arguments.length &gt; 2) ? Number(date) : 1);
-  var r4 = ((hours &amp;&amp; arguments.length &gt; 3) ? Number(hours) : 0);   
-  var r5 = ((minutes &amp;&amp; arguments.length &gt; 4) ? Number(minutes) : 0);   
-  var r6 = ((seconds &amp;&amp; arguments.length &gt; 5) ? Number(seconds) : 0);   
-  var r7 = ((ms &amp;&amp; arguments.length &gt; 6) ? Number(ms) : 0);
-  
-  var r8 = r1;
-  
-  if(!isNaN(r1) &amp;&amp; (0 &lt;= ToInteger(r1)) &amp;&amp; (ToInteger(r1) &lt;= 99))
-    r8 = 1900+r1;
-  
-  var r9 = MakeDay(r8, r2, r3);
-  var r10 = MakeTime(r4, r5, r6, r7);
-  var r11 = MakeDate(r9, r10);
-  
-  return TimeClip(UTC(r11));
-}
-
-
-
-if (ConstructDate(1899, 11, 31, 23, 59) !== new Date(1899, 11, 31, 23, 59).valueOf()) {
-  testFailed(&quot;#1: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1899, 12, 1, 0, 0) !== new Date(1899, 12, 1, 0, 0).valueOf()) {
-  testFailed(&quot;#2: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1900, 0, 1, 0, 0) !== new Date(1900, 0, 1, 0, 0).valueOf()) {
-  testFailed(&quot;#3: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1969, 11, 31, 23, 59) !== new Date(1969, 11, 31, 23, 59).valueOf()) {
-  testFailed(&quot;#4: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1969, 12, 1, 0, 0) !== new Date(1969, 12, 1, 0, 0).valueOf()) {
-  testFailed(&quot;#5: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1970, 0, 1, 0, 0) !== new Date(1970, 0, 1, 0, 0).valueOf()) {
-  testFailed(&quot;#6: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1999, 11, 31, 23, 59) !== new Date(1999, 11, 31, 23, 59).valueOf()) {
-  testFailed(&quot;#7: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1999, 12, 1, 0, 0) !== new Date(1999, 12, 1, 0, 0).valueOf()) {
-  testFailed(&quot;#8: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2000, 0, 1, 0, 0) !== new Date(2000, 0, 1, 0, 0).valueOf()) {
-  testFailed(&quot;#9: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2099, 11, 31, 23, 59) !== new Date(2099, 11, 31, 23, 59).valueOf()) {
-  testFailed(&quot;#10: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2099, 12, 1, 0, 0) !== new Date(2099, 12, 1, 0, 0).valueOf()) {
-  testFailed(&quot;#11: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2100, 0, 1, 0, 0) !== new Date(2100, 0, 1, 0, 0).valueOf()) {
-  testFailed(&quot;#12: Incorrect value of Date&quot;);
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T5htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,522 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S15.9.3.1_A5_T5&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S15.9.3.1_A5_T5;
+ * @section: 15.9.3.1;
+ * @assertion: The [[Value]] property of the newly constructed object 
+ * is set by following steps:
+ * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to 
+ * TimeClip(UTC(Result(11)));
+ * @description: 6 arguments, (year, month, date, hours, minutes, seconds);
+ */
+
+var $DST_end_hour = 2;
+var $DST_end_minutes = 0;
+var $DST_end_month = 10;
+var $DST_end_sunday = 'first';
+var $DST_start_hour = 2;
+var $DST_start_minutes = 0;
+var $DST_start_month = 2;
+var $DST_start_sunday = 'first';
+var $LocalTZ = -8;
+function ToInteger(p) {
+  x = Number(p);
+
+  if(isNaN(x)){
+    return +0;
+  }
+  
+  if((x === +0) 
+  || (x === -0) 
+  || (x === Number.POSITIVE_INFINITY) 
+  || (x === Number.NEGATIVE_INFINITY)){
+     return x;
+  }
+
+  var sign = ( x &lt; 0 ) ? -1 : 1;
+
+  return (sign*Math.floor(Math.abs(x)));
+}
+
+
+var HoursPerDay = 24;
+var MinutesPerHour = 60;
+var SecondsPerMinute = 60;
+
+var msPerDay = 86400000;
+var msPerSecond = 1000;
+var msPerMinute = 60000;
+var msPerHour = 3600000;
+
+var date_1899_end = -2208988800001;
+var date_1900_start = -2208988800000;
+var date_1969_end = -1;
+var date_1970_start = 0;
+var date_1999_end = 946684799999;
+var date_2000_start = 946684800000;
+var date_2099_end = 4102444799999;
+var date_2100_start = 4102444800000;
+
+
+//15.9.1.2 Day Number and Time within Day
+function Day(t) {
+  return Math.floor(t/msPerDay);
+}
+
+function TimeWithinDay(t) {
+  return t%msPerDay;
+}
+
+//15.9.1.3 Year Number
+function DaysInYear(y){
+  if(y%4 != 0) return 365;
+  if(y%4 == 0 &amp;&amp; y%100 != 0) return 366;
+  if(y%100 == 0 &amp;&amp; y%400 != 0) return 365;
+  if(y%400 == 0) return 366;
+}
+
+function DayFromYear(y) {
+  return (365*(y-1970)
+          + Math.floor((y-1969)/4)
+          - Math.floor((y-1901)/100)
+          + Math.floor((y-1601)/400));
+}
+
+function TimeFromYear(y){
+  return msPerDay*DayFromYear(y);
+}
+
+function YearFromTime(t) {
+  t = Number(t);
+  var sign = ( t &lt; 0 ) ? -1 : 1;
+  var year = ( sign &lt; 0 ) ? 1969 : 1970;
+  
+  for(var time = 0;;year += sign){
+    time = TimeFromYear(year);
+    
+    if(sign &gt; 0 &amp;&amp; time &gt; t){
+      year -= sign;
+      break;
+    }
+    else if(sign &lt; 0 &amp;&amp; time &lt;= t){
+      break;
+    }
+  };
+  return year;
+}
+  
+function InLeapYear(t){
+  if(DaysInYear(YearFromTime(t)) == 365)
+    return 0;
+  
+  if(DaysInYear(YearFromTime(t)) == 366)
+    return 1;
+}
+
+function DayWithinYear(t) {
+  return Day(t)-DayFromYear(YearFromTime(t));
+}
+
+//15.9.1.4 Month Number
+function MonthFromTime(t){
+  var day = DayWithinYear(t);
+  var leap = InLeapYear(t);
+
+  if((0 &lt;= day) &amp;&amp; (day &lt; 31)) return 0;
+  if((31 &lt;= day) &amp;&amp; (day &lt; (59+leap))) return 1;
+  if(((59+leap) &lt;= day) &amp;&amp; (day &lt; (90+leap))) return 2;
+  if(((90+leap) &lt;= day) &amp;&amp; (day &lt; (120+leap))) return 3;
+  if(((120+leap) &lt;= day) &amp;&amp; (day &lt; (151+leap))) return 4;
+  if(((151+leap) &lt;= day) &amp;&amp; (day &lt; (181+leap))) return 5;
+  if(((181+leap) &lt;= day) &amp;&amp; (day &lt; (212+leap))) return 6;
+  if(((212+leap) &lt;= day) &amp;&amp; (day &lt; (243+leap))) return 7;
+  if(((243+leap) &lt;= day) &amp;&amp; (day &lt; (273+leap))) return 8;
+  if(((273+leap) &lt;= day) &amp;&amp; (day &lt; (304+leap))) return 9;
+  if(((304+leap) &lt;= day) &amp;&amp; (day &lt; (334+leap))) return 10;
+  if(((334+leap) &lt;= day) &amp;&amp; (day &lt; (365+leap))) return 11;
+}
+
+//15.9.1.5 Date Number
+function DateFromTime(t) {
+  var day = DayWithinYear(t);
+  var month = MonthFromTime(t);
+  var leap = InLeapYear(t);
+
+  if(month == 0) return day+1;
+  if(month == 1) return day-30;
+  if(month == 2) return day-58-leap;
+  if(month == 3) return day-89-leap;
+  if(month == 4) return day-119-leap;
+  if(month == 5) return day-150-leap;
+  if(month == 6) return day-180-leap;
+  if(month == 7) return day-211-leap;
+  if(month == 8) return day-242-leap;
+  if(month == 9) return day-272-leap;
+  if(month == 10) return day-303-leap;
+  if(month == 11) return day-333-leap;
+}
+
+//15.9.1.6 Week Day
+function WeekDay(t) {
+  var weekday = (Day(t)+4)%7;
+  return (weekday &lt; 0 ? 7+weekday : weekday);
+}
+
+//15.9.1.9 Daylight Saving Time Adjustment
+var LocalTZA = $LocalTZ*msPerHour;
+
+function DaysInMonth(m, leap) {
+  m = m%12;
+  
+  //April, June, Sept, Nov
+  if(m == 3 || m == 5 || m == 8 || m == 10 ) {
+    return 30;
+  }
+
+  //Jan, March, May, July, Aug, Oct, Dec
+  if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
+    return 31;
+  }
+
+  //Feb
+  return 28+leap;
+}
+
+function GetSundayInMonth(t, m, count){
+  var year = YearFromTime(t);
+  var leap = InLeapYear(t);
+  var day = 0;
+  
+  if(m &gt;= 1) day += DaysInMonth(0, leap);
+  if(m &gt;= 2) day += DaysInMonth(1, leap);
+  if(m &gt;= 3) day += DaysInMonth(2, leap);
+  if(m &gt;= 4) day += DaysInMonth(3, leap);
+  if(m &gt;= 5) day += DaysInMonth(4, leap);
+  if(m &gt;= 6) day += DaysInMonth(5, leap);
+  if(m &gt;= 7) day += DaysInMonth(6, leap);
+  if(m &gt;= 8) day += DaysInMonth(7, leap);
+  if(m &gt;= 9) day += DaysInMonth(8, leap);
+  if(m &gt;= 10) day += DaysInMonth(9, leap);
+  if(m &gt;= 11) day += DaysInMonth(10, leap);
+  
+  var month_start = TimeFromYear(year)+day*msPerDay;
+  var sunday = 0;
+  
+  if(count === &quot;last&quot;){
+    for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay; 
+      WeekDay(last_sunday)&gt;0;
+      last_sunday -= msPerDay
+    ){};
+    sunday = last_sunday;
+  }
+  else {
+    for(var first_sunday = month_start; 
+      WeekDay(first_sunday)&gt;0;
+      first_sunday += msPerDay
+    ){};
+    sunday = first_sunday+7*msPerDay*(count-1);
+  }
+  
+  return sunday;
+}
+
+function DaylightSavingTA(t) {
+  t = t-LocalTZA;
+
+  var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+                  +$DST_start_hour*msPerHour
+                  +$DST_start_minutes*msPerMinute;
+                  
+  var k = new Date(DST_start);
+  
+  var DST_end   = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+                  +$DST_end_hour*msPerHour
+                  +$DST_end_minutes*msPerMinute;
+
+  if ( t &gt;= DST_start &amp;&amp; t &lt; DST_end ) {
+    return msPerHour;
+  } else {
+    return 0;
+  }
+}
+
+//15.9.1.9 Local Time
+function LocalTime(t){
+  return t+LocalTZA+DaylightSavingTA(t);
+}
+
+function UTC(t) {
+  return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
+}
+
+//15.9.1.10 Hours, Minutes, Second, and Milliseconds
+function HourFromTime(t){
+  return Math.floor(t/msPerHour)%HoursPerDay;
+}
+
+function MinFromTime(t){
+  return Math.floor(t/msPerMinute)%MinutesPerHour;
+}
+
+function SecFromTime(t){
+  return Math.floor(t/msPerSecond)%SecondsPerMinute;
+}
+
+function msFromTime(t){
+  return t%msPerSecond;
+}
+
+//15.9.1.11 MakeTime (hour, min, sec, ms)
+function MakeTime(hour, min, sec, ms){
+  if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
+    return Number.NaN;
+  }
+
+  hour = ToInteger(hour);
+  min  = ToInteger(min);
+  sec  = ToInteger(sec);
+  ms   = ToInteger(ms);
+
+  return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
+}
+
+//15.9.1.12 MakeDay (year, month, date)
+function MakeDay(year, month, date) {
+  if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
+    return Number.NaN;
+  }
+
+  year = ToInteger(year);
+  month = ToInteger(month);
+  date = ToInteger(date );
+
+  var result5 = year + Math.floor(month/12);
+  var result6 = month%12;
+
+  var sign = ( year &lt; 1970 ) ? -1 : 1;
+  var t =    ( year &lt; 1970 ) ? 1 :  0;
+  var y =    ( year &lt; 1970 ) ? 1969 : 1970;
+
+  if( sign == -1 ){
+    for ( y = 1969; y &gt;= year; y += sign ) {
+      t += sign * DaysInYear(y)*msPerDay;
+    }
+  } else {
+    for ( y = 1970 ; y &lt; year; y += sign ) {
+      t += sign * DaysInYear(y)*msPerDay;
+    }
+  }
+
+  var leap = 0;
+  for ( var m = 0; m &lt; month; m++ ) {
+    //if year is changed, than we need to recalculate leep
+    leap = InLeapYear(t);
+    t += DaysInMonth(m, leap)*msPerDay;
+  }
+
+  if ( YearFromTime(t) != result5 ) {
+    return Number.NaN;
+  }
+  if ( MonthFromTime(t) != result6 ) {
+    return Number.NaN;
+  }
+  if ( DateFromTime(t) != 1 ) {
+    return Number.NaN;
+  }
+
+  return Day(t)+date-1;
+}
+
+//15.9.1.13 MakeDate (day, time)
+function MakeDate( day, time ) {
+  if(!isFinite(day) || !isFinite(time)) {
+    return Number.NaN;
+  }
+  
+  return day*msPerDay+time;
+}
+
+//15.9.1.14 TimeClip (time)
+function TimeClip(time) {
+  if(!isFinite(time) || Math.abs(time) &gt; 8.64e15){
+    return Number.NaN;
+  }
+
+  return ToInteger(time);
+}
+
+//Test Functions
+function ConstructDate(year, month, date, hours, minutes, seconds, ms){
+  /*
+   * 1. Call ToNumber(year)
+   * 2. Call ToNumber(month)
+   * 3. If date is supplied use ToNumber(date); else use 1
+   * 4. If hours is supplied use ToNumber(hours); else use 0
+   * 5. If minutes is supplied use ToNumber(minutes); else use 0
+   * 6. If seconds is supplied use ToNumber(seconds); else use 0
+   * 7. If ms is supplied use ToNumber(ms); else use 0
+   * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
+   * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+   * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+   * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+   * 11. Compute MakeDate(Result(9), Result(10))
+   * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
+   */
+  var r1 = Number(year);
+  var r2 = Number(month);
+  var r3 = ((date &amp;&amp; arguments.length &gt; 2) ? Number(date) : 1);
+  var r4 = ((hours &amp;&amp; arguments.length &gt; 3) ? Number(hours) : 0);   
+  var r5 = ((minutes &amp;&amp; arguments.length &gt; 4) ? Number(minutes) : 0);   
+  var r6 = ((seconds &amp;&amp; arguments.length &gt; 5) ? Number(seconds) : 0);   
+  var r7 = ((ms &amp;&amp; arguments.length &gt; 6) ? Number(ms) : 0);
+  
+  var r8 = r1;
+  
+  if(!isNaN(r1) &amp;&amp; (0 &lt;= ToInteger(r1)) &amp;&amp; (ToInteger(r1) &lt;= 99))
+    r8 = 1900+r1;
+  
+  var r9 = MakeDay(r8, r2, r3);
+  var r10 = MakeTime(r4, r5, r6, r7);
+  var r11 = MakeDate(r9, r10);
+  
+  return TimeClip(UTC(r11));
+}
+
+
+
+if (ConstructDate(1899, 11, 31, 23, 59, 59) !== new Date(1899, 11, 31, 23, 59, 59).valueOf()) {
+  testFailed(&quot;#1: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1899, 12, 1, 0, 0, 0) !== new Date(1899, 12, 1, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#2: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1900, 0, 1, 0, 0, 0) !== new Date(1900, 0, 1, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#3: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1969, 11, 31, 23, 59, 59) !== new Date(1969, 11, 31, 23, 59, 59).valueOf()) {
+  testFailed(&quot;#4: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1969, 12, 1, 0, 0, 0) !== new Date(1969, 12, 1, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#5: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1970, 0, 1, 0, 0, 0) !== new Date(1970, 0, 1, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#6: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1999, 11, 31, 23, 59, 59) !== new Date(1999, 11, 31, 23, 59, 59).valueOf()) {
+  testFailed(&quot;#7: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1999, 12, 1, 0, 0, 0) !== new Date(1999, 12, 1, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#8: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2000, 0, 1, 0, 0, 0) !== new Date(2000, 0, 1, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#9: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2099, 11, 31, 23, 59, 59) !== new Date(2099, 11, 31, 23, 59, 59).valueOf()) {
+  testFailed(&quot;#10: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2099, 12, 1, 0, 0, 0) !== new Date(2099, 12, 1, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#11: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2100, 0, 1, 0, 0, 0) !== new Date(2100, 0, 1, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#12: Incorrect value of Date&quot;);
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,522 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S15.9.3.1_A5_T5&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S15.9.3.1_A5_T5;
- * @section: 15.9.3.1;
- * @assertion: The [[Value]] property of the newly constructed object 
- * is set by following steps:
- * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to 
- * TimeClip(UTC(Result(11)));
- * @description: 6 arguments, (year, month, date, hours, minutes, seconds);
- */
-
-var $DST_end_hour = 2;
-var $DST_end_minutes = 0;
-var $DST_end_month = 10;
-var $DST_end_sunday = 'first';
-var $DST_start_hour = 2;
-var $DST_start_minutes = 0;
-var $DST_start_month = 2;
-var $DST_start_sunday = 'first';
-var $LocalTZ = -8;
-function ToInteger(p) {
-  x = Number(p);
-
-  if(isNaN(x)){
-    return +0;
-  }
-  
-  if((x === +0) 
-  || (x === -0) 
-  || (x === Number.POSITIVE_INFINITY) 
-  || (x === Number.NEGATIVE_INFINITY)){
-     return x;
-  }
-
-  var sign = ( x &lt; 0 ) ? -1 : 1;
-
-  return (sign*Math.floor(Math.abs(x)));
-}
-
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-
-var msPerDay = 86400000;
-var msPerSecond = 1000;
-var msPerMinute = 60000;
-var msPerHour = 3600000;
-
-var date_1899_end = -2208988800001;
-var date_1900_start = -2208988800000;
-var date_1969_end = -1;
-var date_1970_start = 0;
-var date_1999_end = 946684799999;
-var date_2000_start = 946684800000;
-var date_2099_end = 4102444799999;
-var date_2100_start = 4102444800000;
-
-
-//15.9.1.2 Day Number and Time within Day
-function Day(t) {
-  return Math.floor(t/msPerDay);
-}
-
-function TimeWithinDay(t) {
-  return t%msPerDay;
-}
-
-//15.9.1.3 Year Number
-function DaysInYear(y){
-  if(y%4 != 0) return 365;
-  if(y%4 == 0 &amp;&amp; y%100 != 0) return 366;
-  if(y%100 == 0 &amp;&amp; y%400 != 0) return 365;
-  if(y%400 == 0) return 366;
-}
-
-function DayFromYear(y) {
-  return (365*(y-1970)
-          + Math.floor((y-1969)/4)
-          - Math.floor((y-1901)/100)
-          + Math.floor((y-1601)/400));
-}
-
-function TimeFromYear(y){
-  return msPerDay*DayFromYear(y);
-}
-
-function YearFromTime(t) {
-  t = Number(t);
-  var sign = ( t &lt; 0 ) ? -1 : 1;
-  var year = ( sign &lt; 0 ) ? 1969 : 1970;
-  
-  for(var time = 0;;year += sign){
-    time = TimeFromYear(year);
-    
-    if(sign &gt; 0 &amp;&amp; time &gt; t){
-      year -= sign;
-      break;
-    }
-    else if(sign &lt; 0 &amp;&amp; time &lt;= t){
-      break;
-    }
-  };
-  return year;
-}
-  
-function InLeapYear(t){
-  if(DaysInYear(YearFromTime(t)) == 365)
-    return 0;
-  
-  if(DaysInYear(YearFromTime(t)) == 366)
-    return 1;
-}
-
-function DayWithinYear(t) {
-  return Day(t)-DayFromYear(YearFromTime(t));
-}
-
-//15.9.1.4 Month Number
-function MonthFromTime(t){
-  var day = DayWithinYear(t);
-  var leap = InLeapYear(t);
-
-  if((0 &lt;= day) &amp;&amp; (day &lt; 31)) return 0;
-  if((31 &lt;= day) &amp;&amp; (day &lt; (59+leap))) return 1;
-  if(((59+leap) &lt;= day) &amp;&amp; (day &lt; (90+leap))) return 2;
-  if(((90+leap) &lt;= day) &amp;&amp; (day &lt; (120+leap))) return 3;
-  if(((120+leap) &lt;= day) &amp;&amp; (day &lt; (151+leap))) return 4;
-  if(((151+leap) &lt;= day) &amp;&amp; (day &lt; (181+leap))) return 5;
-  if(((181+leap) &lt;= day) &amp;&amp; (day &lt; (212+leap))) return 6;
-  if(((212+leap) &lt;= day) &amp;&amp; (day &lt; (243+leap))) return 7;
-  if(((243+leap) &lt;= day) &amp;&amp; (day &lt; (273+leap))) return 8;
-  if(((273+leap) &lt;= day) &amp;&amp; (day &lt; (304+leap))) return 9;
-  if(((304+leap) &lt;= day) &amp;&amp; (day &lt; (334+leap))) return 10;
-  if(((334+leap) &lt;= day) &amp;&amp; (day &lt; (365+leap))) return 11;
-}
-
-//15.9.1.5 Date Number
-function DateFromTime(t) {
-  var day = DayWithinYear(t);
-  var month = MonthFromTime(t);
-  var leap = InLeapYear(t);
-
-  if(month == 0) return day+1;
-  if(month == 1) return day-30;
-  if(month == 2) return day-58-leap;
-  if(month == 3) return day-89-leap;
-  if(month == 4) return day-119-leap;
-  if(month == 5) return day-150-leap;
-  if(month == 6) return day-180-leap;
-  if(month == 7) return day-211-leap;
-  if(month == 8) return day-242-leap;
-  if(month == 9) return day-272-leap;
-  if(month == 10) return day-303-leap;
-  if(month == 11) return day-333-leap;
-}
-
-//15.9.1.6 Week Day
-function WeekDay(t) {
-  var weekday = (Day(t)+4)%7;
-  return (weekday &lt; 0 ? 7+weekday : weekday);
-}
-
-//15.9.1.9 Daylight Saving Time Adjustment
-var LocalTZA = $LocalTZ*msPerHour;
-
-function DaysInMonth(m, leap) {
-  m = m%12;
-  
-  //April, June, Sept, Nov
-  if(m == 3 || m == 5 || m == 8 || m == 10 ) {
-    return 30;
-  }
-
-  //Jan, March, May, July, Aug, Oct, Dec
-  if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
-    return 31;
-  }
-
-  //Feb
-  return 28+leap;
-}
-
-function GetSundayInMonth(t, m, count){
-  var year = YearFromTime(t);
-  var leap = InLeapYear(t);
-  var day = 0;
-  
-  if(m &gt;= 1) day += DaysInMonth(0, leap);
-  if(m &gt;= 2) day += DaysInMonth(1, leap);
-  if(m &gt;= 3) day += DaysInMonth(2, leap);
-  if(m &gt;= 4) day += DaysInMonth(3, leap);
-  if(m &gt;= 5) day += DaysInMonth(4, leap);
-  if(m &gt;= 6) day += DaysInMonth(5, leap);
-  if(m &gt;= 7) day += DaysInMonth(6, leap);
-  if(m &gt;= 8) day += DaysInMonth(7, leap);
-  if(m &gt;= 9) day += DaysInMonth(8, leap);
-  if(m &gt;= 10) day += DaysInMonth(9, leap);
-  if(m &gt;= 11) day += DaysInMonth(10, leap);
-  
-  var month_start = TimeFromYear(year)+day*msPerDay;
-  var sunday = 0;
-  
-  if(count === &quot;last&quot;){
-    for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay; 
-      WeekDay(last_sunday)&gt;0;
-      last_sunday -= msPerDay
-    ){};
-    sunday = last_sunday;
-  }
-  else {
-    for(var first_sunday = month_start; 
-      WeekDay(first_sunday)&gt;0;
-      first_sunday += msPerDay
-    ){};
-    sunday = first_sunday+7*msPerDay*(count-1);
-  }
-  
-  return sunday;
-}
-
-function DaylightSavingTA(t) {
-  t = t-LocalTZA;
-
-  var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
-                  +$DST_start_hour*msPerHour
-                  +$DST_start_minutes*msPerMinute;
-                  
-  var k = new Date(DST_start);
-  
-  var DST_end   = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
-                  +$DST_end_hour*msPerHour
-                  +$DST_end_minutes*msPerMinute;
-
-  if ( t &gt;= DST_start &amp;&amp; t &lt; DST_end ) {
-    return msPerHour;
-  } else {
-    return 0;
-  }
-}
-
-//15.9.1.9 Local Time
-function LocalTime(t){
-  return t+LocalTZA+DaylightSavingTA(t);
-}
-
-function UTC(t) {
-  return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
-}
-
-//15.9.1.10 Hours, Minutes, Second, and Milliseconds
-function HourFromTime(t){
-  return Math.floor(t/msPerHour)%HoursPerDay;
-}
-
-function MinFromTime(t){
-  return Math.floor(t/msPerMinute)%MinutesPerHour;
-}
-
-function SecFromTime(t){
-  return Math.floor(t/msPerSecond)%SecondsPerMinute;
-}
-
-function msFromTime(t){
-  return t%msPerSecond;
-}
-
-//15.9.1.11 MakeTime (hour, min, sec, ms)
-function MakeTime(hour, min, sec, ms){
-  if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
-    return Number.NaN;
-  }
-
-  hour = ToInteger(hour);
-  min  = ToInteger(min);
-  sec  = ToInteger(sec);
-  ms   = ToInteger(ms);
-
-  return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
-}
-
-//15.9.1.12 MakeDay (year, month, date)
-function MakeDay(year, month, date) {
-  if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
-    return Number.NaN;
-  }
-
-  year = ToInteger(year);
-  month = ToInteger(month);
-  date = ToInteger(date );
-
-  var result5 = year + Math.floor(month/12);
-  var result6 = month%12;
-
-  var sign = ( year &lt; 1970 ) ? -1 : 1;
-  var t =    ( year &lt; 1970 ) ? 1 :  0;
-  var y =    ( year &lt; 1970 ) ? 1969 : 1970;
-
-  if( sign == -1 ){
-    for ( y = 1969; y &gt;= year; y += sign ) {
-      t += sign * DaysInYear(y)*msPerDay;
-    }
-  } else {
-    for ( y = 1970 ; y &lt; year; y += sign ) {
-      t += sign * DaysInYear(y)*msPerDay;
-    }
-  }
-
-  var leap = 0;
-  for ( var m = 0; m &lt; month; m++ ) {
-    //if year is changed, than we need to recalculate leep
-    leap = InLeapYear(t);
-    t += DaysInMonth(m, leap)*msPerDay;
-  }
-
-  if ( YearFromTime(t) != result5 ) {
-    return Number.NaN;
-  }
-  if ( MonthFromTime(t) != result6 ) {
-    return Number.NaN;
-  }
-  if ( DateFromTime(t) != 1 ) {
-    return Number.NaN;
-  }
-
-  return Day(t)+date-1;
-}
-
-//15.9.1.13 MakeDate (day, time)
-function MakeDate( day, time ) {
-  if(!isFinite(day) || !isFinite(time)) {
-    return Number.NaN;
-  }
-  
-  return day*msPerDay+time;
-}
-
-//15.9.1.14 TimeClip (time)
-function TimeClip(time) {
-  if(!isFinite(time) || Math.abs(time) &gt; 8.64e15){
-    return Number.NaN;
-  }
-
-  return ToInteger(time);
-}
-
-//Test Functions
-function ConstructDate(year, month, date, hours, minutes, seconds, ms){
-  /*
-   * 1. Call ToNumber(year)
-   * 2. Call ToNumber(month)
-   * 3. If date is supplied use ToNumber(date); else use 1
-   * 4. If hours is supplied use ToNumber(hours); else use 0
-   * 5. If minutes is supplied use ToNumber(minutes); else use 0
-   * 6. If seconds is supplied use ToNumber(seconds); else use 0
-   * 7. If ms is supplied use ToNumber(ms); else use 0
-   * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
-   * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
-   * 9. Compute MakeDay(Result(8), Result(2), Result(3))
-   * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
-   * 11. Compute MakeDate(Result(9), Result(10))
-   * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
-   */
-  var r1 = Number(year);
-  var r2 = Number(month);
-  var r3 = ((date &amp;&amp; arguments.length &gt; 2) ? Number(date) : 1);
-  var r4 = ((hours &amp;&amp; arguments.length &gt; 3) ? Number(hours) : 0);   
-  var r5 = ((minutes &amp;&amp; arguments.length &gt; 4) ? Number(minutes) : 0);   
-  var r6 = ((seconds &amp;&amp; arguments.length &gt; 5) ? Number(seconds) : 0);   
-  var r7 = ((ms &amp;&amp; arguments.length &gt; 6) ? Number(ms) : 0);
-  
-  var r8 = r1;
-  
-  if(!isNaN(r1) &amp;&amp; (0 &lt;= ToInteger(r1)) &amp;&amp; (ToInteger(r1) &lt;= 99))
-    r8 = 1900+r1;
-  
-  var r9 = MakeDay(r8, r2, r3);
-  var r10 = MakeTime(r4, r5, r6, r7);
-  var r11 = MakeDate(r9, r10);
-  
-  return TimeClip(UTC(r11));
-}
-
-
-
-if (ConstructDate(1899, 11, 31, 23, 59, 59) !== new Date(1899, 11, 31, 23, 59, 59).valueOf()) {
-  testFailed(&quot;#1: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1899, 12, 1, 0, 0, 0) !== new Date(1899, 12, 1, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#2: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1900, 0, 1, 0, 0, 0) !== new Date(1900, 0, 1, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#3: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1969, 11, 31, 23, 59, 59) !== new Date(1969, 11, 31, 23, 59, 59).valueOf()) {
-  testFailed(&quot;#4: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1969, 12, 1, 0, 0, 0) !== new Date(1969, 12, 1, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#5: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1970, 0, 1, 0, 0, 0) !== new Date(1970, 0, 1, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#6: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1999, 11, 31, 23, 59, 59) !== new Date(1999, 11, 31, 23, 59, 59).valueOf()) {
-  testFailed(&quot;#7: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1999, 12, 1, 0, 0, 0) !== new Date(1999, 12, 1, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#8: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2000, 0, 1, 0, 0, 0) !== new Date(2000, 0, 1, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#9: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2099, 11, 31, 23, 59, 59) !== new Date(2099, 11, 31, 23, 59, 59).valueOf()) {
-  testFailed(&quot;#10: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2099, 12, 1, 0, 0, 0) !== new Date(2099, 12, 1, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#11: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2100, 0, 1, 0, 0, 0) !== new Date(2100, 0, 1, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#12: Incorrect value of Date&quot;);
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T6htmlfromrev211348trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T6htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html (from rev 211348, trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,522 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S15.9.3.1_A5_T6&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S15.9.3.1_A5_T6;
+ * @section: 15.9.3.1;
+ * @assertion: The [[Value]] property of the newly constructed object 
+ * is set by following steps:
+ * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
+ * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+ * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+ * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+ * 11. Compute MakeDate(Result(9), Result(10))
+ * 12. Set the [[Value]] property of the newly constructed object to 
+ * TimeClip(UTC(Result(11)));
+ * @description: 7 arguments, (year, month, date, hours, minutes, seconds, ms);
+ */
+
+var $DST_end_hour = 2;
+var $DST_end_minutes = 0;
+var $DST_end_month = 10;
+var $DST_end_sunday = 'first';
+var $DST_start_hour = 2;
+var $DST_start_minutes = 0;
+var $DST_start_month = 2;
+var $DST_start_sunday = 'first';
+var $LocalTZ = -8;
+function ToInteger(p) {
+  x = Number(p);
+
+  if(isNaN(x)){
+    return +0;
+  }
+  
+  if((x === +0) 
+  || (x === -0) 
+  || (x === Number.POSITIVE_INFINITY) 
+  || (x === Number.NEGATIVE_INFINITY)){
+     return x;
+  }
+
+  var sign = ( x &lt; 0 ) ? -1 : 1;
+
+  return (sign*Math.floor(Math.abs(x)));
+}
+
+
+var HoursPerDay = 24;
+var MinutesPerHour = 60;
+var SecondsPerMinute = 60;
+
+var msPerDay = 86400000;
+var msPerSecond = 1000;
+var msPerMinute = 60000;
+var msPerHour = 3600000;
+
+var date_1899_end = -2208988800001;
+var date_1900_start = -2208988800000;
+var date_1969_end = -1;
+var date_1970_start = 0;
+var date_1999_end = 946684799999;
+var date_2000_start = 946684800000;
+var date_2099_end = 4102444799999;
+var date_2100_start = 4102444800000;
+
+
+//15.9.1.2 Day Number and Time within Day
+function Day(t) {
+  return Math.floor(t/msPerDay);
+}
+
+function TimeWithinDay(t) {
+  return t%msPerDay;
+}
+
+//15.9.1.3 Year Number
+function DaysInYear(y){
+  if(y%4 != 0) return 365;
+  if(y%4 == 0 &amp;&amp; y%100 != 0) return 366;
+  if(y%100 == 0 &amp;&amp; y%400 != 0) return 365;
+  if(y%400 == 0) return 366;
+}
+
+function DayFromYear(y) {
+  return (365*(y-1970)
+          + Math.floor((y-1969)/4)
+          - Math.floor((y-1901)/100)
+          + Math.floor((y-1601)/400));
+}
+
+function TimeFromYear(y){
+  return msPerDay*DayFromYear(y);
+}
+
+function YearFromTime(t) {
+  t = Number(t);
+  var sign = ( t &lt; 0 ) ? -1 : 1;
+  var year = ( sign &lt; 0 ) ? 1969 : 1970;
+  
+  for(var time = 0;;year += sign){
+    time = TimeFromYear(year);
+    
+    if(sign &gt; 0 &amp;&amp; time &gt; t){
+      year -= sign;
+      break;
+    }
+    else if(sign &lt; 0 &amp;&amp; time &lt;= t){
+      break;
+    }
+  };
+  return year;
+}
+  
+function InLeapYear(t){
+  if(DaysInYear(YearFromTime(t)) == 365)
+    return 0;
+  
+  if(DaysInYear(YearFromTime(t)) == 366)
+    return 1;
+}
+
+function DayWithinYear(t) {
+  return Day(t)-DayFromYear(YearFromTime(t));
+}
+
+//15.9.1.4 Month Number
+function MonthFromTime(t){
+  var day = DayWithinYear(t);
+  var leap = InLeapYear(t);
+
+  if((0 &lt;= day) &amp;&amp; (day &lt; 31)) return 0;
+  if((31 &lt;= day) &amp;&amp; (day &lt; (59+leap))) return 1;
+  if(((59+leap) &lt;= day) &amp;&amp; (day &lt; (90+leap))) return 2;
+  if(((90+leap) &lt;= day) &amp;&amp; (day &lt; (120+leap))) return 3;
+  if(((120+leap) &lt;= day) &amp;&amp; (day &lt; (151+leap))) return 4;
+  if(((151+leap) &lt;= day) &amp;&amp; (day &lt; (181+leap))) return 5;
+  if(((181+leap) &lt;= day) &amp;&amp; (day &lt; (212+leap))) return 6;
+  if(((212+leap) &lt;= day) &amp;&amp; (day &lt; (243+leap))) return 7;
+  if(((243+leap) &lt;= day) &amp;&amp; (day &lt; (273+leap))) return 8;
+  if(((273+leap) &lt;= day) &amp;&amp; (day &lt; (304+leap))) return 9;
+  if(((304+leap) &lt;= day) &amp;&amp; (day &lt; (334+leap))) return 10;
+  if(((334+leap) &lt;= day) &amp;&amp; (day &lt; (365+leap))) return 11;
+}
+
+//15.9.1.5 Date Number
+function DateFromTime(t) {
+  var day = DayWithinYear(t);
+  var month = MonthFromTime(t);
+  var leap = InLeapYear(t);
+
+  if(month == 0) return day+1;
+  if(month == 1) return day-30;
+  if(month == 2) return day-58-leap;
+  if(month == 3) return day-89-leap;
+  if(month == 4) return day-119-leap;
+  if(month == 5) return day-150-leap;
+  if(month == 6) return day-180-leap;
+  if(month == 7) return day-211-leap;
+  if(month == 8) return day-242-leap;
+  if(month == 9) return day-272-leap;
+  if(month == 10) return day-303-leap;
+  if(month == 11) return day-333-leap;
+}
+
+//15.9.1.6 Week Day
+function WeekDay(t) {
+  var weekday = (Day(t)+4)%7;
+  return (weekday &lt; 0 ? 7+weekday : weekday);
+}
+
+//15.9.1.9 Daylight Saving Time Adjustment
+var LocalTZA = $LocalTZ*msPerHour;
+
+function DaysInMonth(m, leap) {
+  m = m%12;
+  
+  //April, June, Sept, Nov
+  if(m == 3 || m == 5 || m == 8 || m == 10 ) {
+    return 30;
+  }
+
+  //Jan, March, May, July, Aug, Oct, Dec
+  if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
+    return 31;
+  }
+
+  //Feb
+  return 28+leap;
+}
+
+function GetSundayInMonth(t, m, count){
+  var year = YearFromTime(t);
+  var leap = InLeapYear(t);
+  var day = 0;
+  
+  if(m &gt;= 1) day += DaysInMonth(0, leap);
+  if(m &gt;= 2) day += DaysInMonth(1, leap);
+  if(m &gt;= 3) day += DaysInMonth(2, leap);
+  if(m &gt;= 4) day += DaysInMonth(3, leap);
+  if(m &gt;= 5) day += DaysInMonth(4, leap);
+  if(m &gt;= 6) day += DaysInMonth(5, leap);
+  if(m &gt;= 7) day += DaysInMonth(6, leap);
+  if(m &gt;= 8) day += DaysInMonth(7, leap);
+  if(m &gt;= 9) day += DaysInMonth(8, leap);
+  if(m &gt;= 10) day += DaysInMonth(9, leap);
+  if(m &gt;= 11) day += DaysInMonth(10, leap);
+  
+  var month_start = TimeFromYear(year)+day*msPerDay;
+  var sunday = 0;
+  
+  if(count === &quot;last&quot;){
+    for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay; 
+      WeekDay(last_sunday)&gt;0;
+      last_sunday -= msPerDay
+    ){};
+    sunday = last_sunday;
+  }
+  else {
+    for(var first_sunday = month_start; 
+      WeekDay(first_sunday)&gt;0;
+      first_sunday += msPerDay
+    ){};
+    sunday = first_sunday+7*msPerDay*(count-1);
+  }
+  
+  return sunday;
+}
+
+function DaylightSavingTA(t) {
+  t = t-LocalTZA;
+
+  var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
+                  +$DST_start_hour*msPerHour
+                  +$DST_start_minutes*msPerMinute;
+                  
+  var k = new Date(DST_start);
+  
+  var DST_end   = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
+                  +$DST_end_hour*msPerHour
+                  +$DST_end_minutes*msPerMinute;
+
+  if ( t &gt;= DST_start &amp;&amp; t &lt; DST_end ) {
+    return msPerHour;
+  } else {
+    return 0;
+  }
+}
+
+//15.9.1.9 Local Time
+function LocalTime(t){
+  return t+LocalTZA+DaylightSavingTA(t);
+}
+
+function UTC(t) {
+  return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
+}
+
+//15.9.1.10 Hours, Minutes, Second, and Milliseconds
+function HourFromTime(t){
+  return Math.floor(t/msPerHour)%HoursPerDay;
+}
+
+function MinFromTime(t){
+  return Math.floor(t/msPerMinute)%MinutesPerHour;
+}
+
+function SecFromTime(t){
+  return Math.floor(t/msPerSecond)%SecondsPerMinute;
+}
+
+function msFromTime(t){
+  return t%msPerSecond;
+}
+
+//15.9.1.11 MakeTime (hour, min, sec, ms)
+function MakeTime(hour, min, sec, ms){
+  if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
+    return Number.NaN;
+  }
+
+  hour = ToInteger(hour);
+  min  = ToInteger(min);
+  sec  = ToInteger(sec);
+  ms   = ToInteger(ms);
+
+  return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
+}
+
+//15.9.1.12 MakeDay (year, month, date)
+function MakeDay(year, month, date) {
+  if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
+    return Number.NaN;
+  }
+
+  year = ToInteger(year);
+  month = ToInteger(month);
+  date = ToInteger(date );
+
+  var result5 = year + Math.floor(month/12);
+  var result6 = month%12;
+
+  var sign = ( year &lt; 1970 ) ? -1 : 1;
+  var t =    ( year &lt; 1970 ) ? 1 :  0;
+  var y =    ( year &lt; 1970 ) ? 1969 : 1970;
+
+  if( sign == -1 ){
+    for ( y = 1969; y &gt;= year; y += sign ) {
+      t += sign * DaysInYear(y)*msPerDay;
+    }
+  } else {
+    for ( y = 1970 ; y &lt; year; y += sign ) {
+      t += sign * DaysInYear(y)*msPerDay;
+    }
+  }
+
+  var leap = 0;
+  for ( var m = 0; m &lt; month; m++ ) {
+    //if year is changed, than we need to recalculate leep
+    leap = InLeapYear(t);
+    t += DaysInMonth(m, leap)*msPerDay;
+  }
+
+  if ( YearFromTime(t) != result5 ) {
+    return Number.NaN;
+  }
+  if ( MonthFromTime(t) != result6 ) {
+    return Number.NaN;
+  }
+  if ( DateFromTime(t) != 1 ) {
+    return Number.NaN;
+  }
+
+  return Day(t)+date-1;
+}
+
+//15.9.1.13 MakeDate (day, time)
+function MakeDate( day, time ) {
+  if(!isFinite(day) || !isFinite(time)) {
+    return Number.NaN;
+  }
+  
+  return day*msPerDay+time;
+}
+
+//15.9.1.14 TimeClip (time)
+function TimeClip(time) {
+  if(!isFinite(time) || Math.abs(time) &gt; 8.64e15){
+    return Number.NaN;
+  }
+
+  return ToInteger(time);
+}
+
+//Test Functions
+function ConstructDate(year, month, date, hours, minutes, seconds, ms){
+  /*
+   * 1. Call ToNumber(year)
+   * 2. Call ToNumber(month)
+   * 3. If date is supplied use ToNumber(date); else use 1
+   * 4. If hours is supplied use ToNumber(hours); else use 0
+   * 5. If minutes is supplied use ToNumber(minutes); else use 0
+   * 6. If seconds is supplied use ToNumber(seconds); else use 0
+   * 7. If ms is supplied use ToNumber(ms); else use 0
+   * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
+   * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
+   * 9. Compute MakeDay(Result(8), Result(2), Result(3))
+   * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
+   * 11. Compute MakeDate(Result(9), Result(10))
+   * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
+   */
+  var r1 = Number(year);
+  var r2 = Number(month);
+  var r3 = ((date &amp;&amp; arguments.length &gt; 2) ? Number(date) : 1);
+  var r4 = ((hours &amp;&amp; arguments.length &gt; 3) ? Number(hours) : 0);   
+  var r5 = ((minutes &amp;&amp; arguments.length &gt; 4) ? Number(minutes) : 0);   
+  var r6 = ((seconds &amp;&amp; arguments.length &gt; 5) ? Number(seconds) : 0);   
+  var r7 = ((ms &amp;&amp; arguments.length &gt; 6) ? Number(ms) : 0);
+  
+  var r8 = r1;
+  
+  if(!isNaN(r1) &amp;&amp; (0 &lt;= ToInteger(r1)) &amp;&amp; (ToInteger(r1) &lt;= 99))
+    r8 = 1900+r1;
+  
+  var r9 = MakeDay(r8, r2, r3);
+  var r10 = MakeTime(r4, r5, r6, r7);
+  var r11 = MakeDate(r9, r10);
+  
+  return TimeClip(UTC(r11));
+}
+
+
+
+if (ConstructDate(1899, 11, 31, 23, 59, 59, 999) !== new Date(1899, 11, 31, 23, 59, 59, 999).valueOf()) {
+  testFailed(&quot;#1: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1899, 12, 1, 0, 0, 0, 0) !== new Date(1899, 12, 1, 0, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#2: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1900, 0, 1, 0, 0, 0, 0) !== new Date(1900, 0, 1, 0, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#3: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1969, 11, 31, 23, 59, 59, 999) !== new Date(1969, 11, 31, 23, 59, 59, 999).valueOf()) {
+  testFailed(&quot;#4: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1969, 12, 1, 0, 0, 0, 0) !== new Date(1969, 12, 1, 0, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#5: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1970, 0, 1, 0, 0, 0, 0) !== new Date(1970, 0, 1, 0, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#6: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1999, 11, 31, 23, 59, 59, 999) !== new Date(1999, 11, 31, 23, 59, 59, 999).valueOf()) {
+  testFailed(&quot;#7: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(1999, 12, 1, 0, 0, 0, 0) !== new Date(1999, 12, 1, 0, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#8: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2000, 0, 1, 0, 0, 0, 0) !== new Date(2000, 0, 1, 0, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#9: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2099, 11, 31, 23, 59, 59, 999) !== new Date(2099, 11, 31, 23, 59, 59, 999).valueOf()) {
+  testFailed(&quot;#10: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2099, 12, 1, 0, 0, 0, 0) !== new Date(2099, 12, 1, 0, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#11: Incorrect value of Date&quot;);
+}
+
+if (ConstructDate(2100, 0, 1, 0, 0, 0, 0) !== new Date(2100, 0, 1, 0, 0, 0, 0).valueOf()) {
+  testFailed(&quot;#12: Incorrect value of Date&quot;);
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikConformance15_Native_Objects159_Date1593S15931_A5_T6htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Conformance/15_Native_Objects/15.9_Date/15.9.3/S15.9.3.1_A5_T6.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,522 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S15.9.3.1_A5_T6&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S15.9.3.1_A5_T6;
- * @section: 15.9.3.1;
- * @assertion: The [[Value]] property of the newly constructed object 
- * is set by following steps:
- * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
- * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
- * 9. Compute MakeDay(Result(8), Result(2), Result(3))
- * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
- * 11. Compute MakeDate(Result(9), Result(10))
- * 12. Set the [[Value]] property of the newly constructed object to 
- * TimeClip(UTC(Result(11)));
- * @description: 7 arguments, (year, month, date, hours, minutes, seconds, ms);
- */
-
-var $DST_end_hour = 2;
-var $DST_end_minutes = 0;
-var $DST_end_month = 10;
-var $DST_end_sunday = 'first';
-var $DST_start_hour = 2;
-var $DST_start_minutes = 0;
-var $DST_start_month = 2;
-var $DST_start_sunday = 'first';
-var $LocalTZ = -8;
-function ToInteger(p) {
-  x = Number(p);
-
-  if(isNaN(x)){
-    return +0;
-  }
-  
-  if((x === +0) 
-  || (x === -0) 
-  || (x === Number.POSITIVE_INFINITY) 
-  || (x === Number.NEGATIVE_INFINITY)){
-     return x;
-  }
-
-  var sign = ( x &lt; 0 ) ? -1 : 1;
-
-  return (sign*Math.floor(Math.abs(x)));
-}
-
-
-var HoursPerDay = 24;
-var MinutesPerHour = 60;
-var SecondsPerMinute = 60;
-
-var msPerDay = 86400000;
-var msPerSecond = 1000;
-var msPerMinute = 60000;
-var msPerHour = 3600000;
-
-var date_1899_end = -2208988800001;
-var date_1900_start = -2208988800000;
-var date_1969_end = -1;
-var date_1970_start = 0;
-var date_1999_end = 946684799999;
-var date_2000_start = 946684800000;
-var date_2099_end = 4102444799999;
-var date_2100_start = 4102444800000;
-
-
-//15.9.1.2 Day Number and Time within Day
-function Day(t) {
-  return Math.floor(t/msPerDay);
-}
-
-function TimeWithinDay(t) {
-  return t%msPerDay;
-}
-
-//15.9.1.3 Year Number
-function DaysInYear(y){
-  if(y%4 != 0) return 365;
-  if(y%4 == 0 &amp;&amp; y%100 != 0) return 366;
-  if(y%100 == 0 &amp;&amp; y%400 != 0) return 365;
-  if(y%400 == 0) return 366;
-}
-
-function DayFromYear(y) {
-  return (365*(y-1970)
-          + Math.floor((y-1969)/4)
-          - Math.floor((y-1901)/100)
-          + Math.floor((y-1601)/400));
-}
-
-function TimeFromYear(y){
-  return msPerDay*DayFromYear(y);
-}
-
-function YearFromTime(t) {
-  t = Number(t);
-  var sign = ( t &lt; 0 ) ? -1 : 1;
-  var year = ( sign &lt; 0 ) ? 1969 : 1970;
-  
-  for(var time = 0;;year += sign){
-    time = TimeFromYear(year);
-    
-    if(sign &gt; 0 &amp;&amp; time &gt; t){
-      year -= sign;
-      break;
-    }
-    else if(sign &lt; 0 &amp;&amp; time &lt;= t){
-      break;
-    }
-  };
-  return year;
-}
-  
-function InLeapYear(t){
-  if(DaysInYear(YearFromTime(t)) == 365)
-    return 0;
-  
-  if(DaysInYear(YearFromTime(t)) == 366)
-    return 1;
-}
-
-function DayWithinYear(t) {
-  return Day(t)-DayFromYear(YearFromTime(t));
-}
-
-//15.9.1.4 Month Number
-function MonthFromTime(t){
-  var day = DayWithinYear(t);
-  var leap = InLeapYear(t);
-
-  if((0 &lt;= day) &amp;&amp; (day &lt; 31)) return 0;
-  if((31 &lt;= day) &amp;&amp; (day &lt; (59+leap))) return 1;
-  if(((59+leap) &lt;= day) &amp;&amp; (day &lt; (90+leap))) return 2;
-  if(((90+leap) &lt;= day) &amp;&amp; (day &lt; (120+leap))) return 3;
-  if(((120+leap) &lt;= day) &amp;&amp; (day &lt; (151+leap))) return 4;
-  if(((151+leap) &lt;= day) &amp;&amp; (day &lt; (181+leap))) return 5;
-  if(((181+leap) &lt;= day) &amp;&amp; (day &lt; (212+leap))) return 6;
-  if(((212+leap) &lt;= day) &amp;&amp; (day &lt; (243+leap))) return 7;
-  if(((243+leap) &lt;= day) &amp;&amp; (day &lt; (273+leap))) return 8;
-  if(((273+leap) &lt;= day) &amp;&amp; (day &lt; (304+leap))) return 9;
-  if(((304+leap) &lt;= day) &amp;&amp; (day &lt; (334+leap))) return 10;
-  if(((334+leap) &lt;= day) &amp;&amp; (day &lt; (365+leap))) return 11;
-}
-
-//15.9.1.5 Date Number
-function DateFromTime(t) {
-  var day = DayWithinYear(t);
-  var month = MonthFromTime(t);
-  var leap = InLeapYear(t);
-
-  if(month == 0) return day+1;
-  if(month == 1) return day-30;
-  if(month == 2) return day-58-leap;
-  if(month == 3) return day-89-leap;
-  if(month == 4) return day-119-leap;
-  if(month == 5) return day-150-leap;
-  if(month == 6) return day-180-leap;
-  if(month == 7) return day-211-leap;
-  if(month == 8) return day-242-leap;
-  if(month == 9) return day-272-leap;
-  if(month == 10) return day-303-leap;
-  if(month == 11) return day-333-leap;
-}
-
-//15.9.1.6 Week Day
-function WeekDay(t) {
-  var weekday = (Day(t)+4)%7;
-  return (weekday &lt; 0 ? 7+weekday : weekday);
-}
-
-//15.9.1.9 Daylight Saving Time Adjustment
-var LocalTZA = $LocalTZ*msPerHour;
-
-function DaysInMonth(m, leap) {
-  m = m%12;
-  
-  //April, June, Sept, Nov
-  if(m == 3 || m == 5 || m == 8 || m == 10 ) {
-    return 30;
-  }
-
-  //Jan, March, May, July, Aug, Oct, Dec
-  if(m == 0 || m == 2 || m == 4 || m == 6 || m == 7 || m == 9 || m == 11){
-    return 31;
-  }
-
-  //Feb
-  return 28+leap;
-}
-
-function GetSundayInMonth(t, m, count){
-  var year = YearFromTime(t);
-  var leap = InLeapYear(t);
-  var day = 0;
-  
-  if(m &gt;= 1) day += DaysInMonth(0, leap);
-  if(m &gt;= 2) day += DaysInMonth(1, leap);
-  if(m &gt;= 3) day += DaysInMonth(2, leap);
-  if(m &gt;= 4) day += DaysInMonth(3, leap);
-  if(m &gt;= 5) day += DaysInMonth(4, leap);
-  if(m &gt;= 6) day += DaysInMonth(5, leap);
-  if(m &gt;= 7) day += DaysInMonth(6, leap);
-  if(m &gt;= 8) day += DaysInMonth(7, leap);
-  if(m &gt;= 9) day += DaysInMonth(8, leap);
-  if(m &gt;= 10) day += DaysInMonth(9, leap);
-  if(m &gt;= 11) day += DaysInMonth(10, leap);
-  
-  var month_start = TimeFromYear(year)+day*msPerDay;
-  var sunday = 0;
-  
-  if(count === &quot;last&quot;){
-    for(var last_sunday = month_start+DaysInMonth(m, leap)*msPerDay; 
-      WeekDay(last_sunday)&gt;0;
-      last_sunday -= msPerDay
-    ){};
-    sunday = last_sunday;
-  }
-  else {
-    for(var first_sunday = month_start; 
-      WeekDay(first_sunday)&gt;0;
-      first_sunday += msPerDay
-    ){};
-    sunday = first_sunday+7*msPerDay*(count-1);
-  }
-  
-  return sunday;
-}
-
-function DaylightSavingTA(t) {
-  t = t-LocalTZA;
-
-  var DST_start = GetSundayInMonth(t, $DST_start_month, $DST_start_sunday)
-                  +$DST_start_hour*msPerHour
-                  +$DST_start_minutes*msPerMinute;
-                  
-  var k = new Date(DST_start);
-  
-  var DST_end   = GetSundayInMonth(t, $DST_end_month, $DST_end_sunday)
-                  +$DST_end_hour*msPerHour
-                  +$DST_end_minutes*msPerMinute;
-
-  if ( t &gt;= DST_start &amp;&amp; t &lt; DST_end ) {
-    return msPerHour;
-  } else {
-    return 0;
-  }
-}
-
-//15.9.1.9 Local Time
-function LocalTime(t){
-  return t+LocalTZA+DaylightSavingTA(t);
-}
-
-function UTC(t) {
-  return t-LocalTZA-DaylightSavingTA(t-LocalTZA);
-}
-
-//15.9.1.10 Hours, Minutes, Second, and Milliseconds
-function HourFromTime(t){
-  return Math.floor(t/msPerHour)%HoursPerDay;
-}
-
-function MinFromTime(t){
-  return Math.floor(t/msPerMinute)%MinutesPerHour;
-}
-
-function SecFromTime(t){
-  return Math.floor(t/msPerSecond)%SecondsPerMinute;
-}
-
-function msFromTime(t){
-  return t%msPerSecond;
-}
-
-//15.9.1.11 MakeTime (hour, min, sec, ms)
-function MakeTime(hour, min, sec, ms){
-  if ( !isFinite(hour) || !isFinite(min) || !isFinite(sec) || !isFinite(ms)) {
-    return Number.NaN;
-  }
-
-  hour = ToInteger(hour);
-  min  = ToInteger(min);
-  sec  = ToInteger(sec);
-  ms   = ToInteger(ms);
-
-  return ((hour*msPerHour) + (min*msPerMinute) + (sec*msPerSecond) + ms);
-}
-
-//15.9.1.12 MakeDay (year, month, date)
-function MakeDay(year, month, date) {
-  if ( !isFinite(year) || !isFinite(month) || !isFinite(date)) {
-    return Number.NaN;
-  }
-
-  year = ToInteger(year);
-  month = ToInteger(month);
-  date = ToInteger(date );
-
-  var result5 = year + Math.floor(month/12);
-  var result6 = month%12;
-
-  var sign = ( year &lt; 1970 ) ? -1 : 1;
-  var t =    ( year &lt; 1970 ) ? 1 :  0;
-  var y =    ( year &lt; 1970 ) ? 1969 : 1970;
-
-  if( sign == -1 ){
-    for ( y = 1969; y &gt;= year; y += sign ) {
-      t += sign * DaysInYear(y)*msPerDay;
-    }
-  } else {
-    for ( y = 1970 ; y &lt; year; y += sign ) {
-      t += sign * DaysInYear(y)*msPerDay;
-    }
-  }
-
-  var leap = 0;
-  for ( var m = 0; m &lt; month; m++ ) {
-    //if year is changed, than we need to recalculate leep
-    leap = InLeapYear(t);
-    t += DaysInMonth(m, leap)*msPerDay;
-  }
-
-  if ( YearFromTime(t) != result5 ) {
-    return Number.NaN;
-  }
-  if ( MonthFromTime(t) != result6 ) {
-    return Number.NaN;
-  }
-  if ( DateFromTime(t) != 1 ) {
-    return Number.NaN;
-  }
-
-  return Day(t)+date-1;
-}
-
-//15.9.1.13 MakeDate (day, time)
-function MakeDate( day, time ) {
-  if(!isFinite(day) || !isFinite(time)) {
-    return Number.NaN;
-  }
-  
-  return day*msPerDay+time;
-}
-
-//15.9.1.14 TimeClip (time)
-function TimeClip(time) {
-  if(!isFinite(time) || Math.abs(time) &gt; 8.64e15){
-    return Number.NaN;
-  }
-
-  return ToInteger(time);
-}
-
-//Test Functions
-function ConstructDate(year, month, date, hours, minutes, seconds, ms){
-  /*
-   * 1. Call ToNumber(year)
-   * 2. Call ToNumber(month)
-   * 3. If date is supplied use ToNumber(date); else use 1
-   * 4. If hours is supplied use ToNumber(hours); else use 0
-   * 5. If minutes is supplied use ToNumber(minutes); else use 0
-   * 6. If seconds is supplied use ToNumber(seconds); else use 0
-   * 7. If ms is supplied use ToNumber(ms); else use 0
-   * 8. If Result(1) is not NaN and 0 &lt;= ToInteger(Result(1)) &lt;= 99, Result(8) is
-   * 1900+ToInteger(Result(1)); otherwise, Result(8) is Result(1)
-   * 9. Compute MakeDay(Result(8), Result(2), Result(3))
-   * 10. Compute MakeTime(Result(4), Result(5), Result(6), Result(7))
-   * 11. Compute MakeDate(Result(9), Result(10))
-   * 12. Set the [[Value]] property of the newly constructed object to TimeClip(UTC(Result(11)))
-   */
-  var r1 = Number(year);
-  var r2 = Number(month);
-  var r3 = ((date &amp;&amp; arguments.length &gt; 2) ? Number(date) : 1);
-  var r4 = ((hours &amp;&amp; arguments.length &gt; 3) ? Number(hours) : 0);   
-  var r5 = ((minutes &amp;&amp; arguments.length &gt; 4) ? Number(minutes) : 0);   
-  var r6 = ((seconds &amp;&amp; arguments.length &gt; 5) ? Number(seconds) : 0);   
-  var r7 = ((ms &amp;&amp; arguments.length &gt; 6) ? Number(ms) : 0);
-  
-  var r8 = r1;
-  
-  if(!isNaN(r1) &amp;&amp; (0 &lt;= ToInteger(r1)) &amp;&amp; (ToInteger(r1) &lt;= 99))
-    r8 = 1900+r1;
-  
-  var r9 = MakeDay(r8, r2, r3);
-  var r10 = MakeTime(r4, r5, r6, r7);
-  var r11 = MakeDate(r9, r10);
-  
-  return TimeClip(UTC(r11));
-}
-
-
-
-if (ConstructDate(1899, 11, 31, 23, 59, 59, 999) !== new Date(1899, 11, 31, 23, 59, 59, 999).valueOf()) {
-  testFailed(&quot;#1: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1899, 12, 1, 0, 0, 0, 0) !== new Date(1899, 12, 1, 0, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#2: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1900, 0, 1, 0, 0, 0, 0) !== new Date(1900, 0, 1, 0, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#3: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1969, 11, 31, 23, 59, 59, 999) !== new Date(1969, 11, 31, 23, 59, 59, 999).valueOf()) {
-  testFailed(&quot;#4: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1969, 12, 1, 0, 0, 0, 0) !== new Date(1969, 12, 1, 0, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#5: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1970, 0, 1, 0, 0, 0, 0) !== new Date(1970, 0, 1, 0, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#6: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1999, 11, 31, 23, 59, 59, 999) !== new Date(1999, 11, 31, 23, 59, 59, 999).valueOf()) {
-  testFailed(&quot;#7: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(1999, 12, 1, 0, 0, 0, 0) !== new Date(1999, 12, 1, 0, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#8: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2000, 0, 1, 0, 0, 0, 0) !== new Date(2000, 0, 1, 0, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#9: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2099, 11, 31, 23, 59, 59, 999) !== new Date(2099, 11, 31, 23, 59, 59, 999).valueOf()) {
-  testFailed(&quot;#10: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2099, 12, 1, 0, 0, 0, 0) !== new Date(2099, 12, 1, 0, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#11: Incorrect value of Date&quot;);
-}
-
-if (ConstructDate(2100, 0, 1, 0, 0, 0, 0) !== new Date(2100, 0, 1, 0, 0, 0, 0).valueOf()) {
-  testFailed(&quot;#12: Incorrect value of Date&quot;);
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A11_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_218S76_A11_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,144 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S7.6_A1.1_T5&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S7.6_A1.1_T5;
+ * @section: 7.6;
+ * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories &quot;Lu&quot;, &quot;Ll&quot;, &quot;Lt&quot;, &quot;Lm&quot;, &quot;Lo&quot;, &quot;Nl&quot;);
+ * @description: UnicodeLetter :: Other letter (Lo).
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
 0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
 x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI &lt; Lo.length; indexI++) {
+  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
+    try {
+      var identifier = String.fromCharCode(indexJ);
+      var hex = decimalToHexString(indexJ);
+      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
+      if (eval(identifier + &quot;===1&quot;) !== true) {
+        testFailed('#' + hex + ' ');
+        errorCount++;
+      }
+    } catch (e) {
+      testFailed('#' + hex + ' ');
+      errorCount++;
+    }
+    count++;
+  }
+}
+
+if (errorCount &gt; 0) {  
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 3; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A11_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A1.1_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,144 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S7.6_A1.1_T5&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S7.6_A1.1_T5;
- * @section: 7.6;
- * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories &quot;Lu&quot;, &quot;Ll&quot;, &quot;Lt&quot;, &quot;Lm&quot;, &quot;Lo&quot;, &quot;Nl&quot;);
- * @description: UnicodeLetter :: Other letter (Lo).
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
 0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
 x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI &lt; Lo.length; indexI++) {
-  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
-    try {
-      var identifier = String.fromCharCode(indexJ);
-      var hex = decimalToHexString(indexJ);
-      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
-      if (eval(identifier + &quot;===1&quot;) !== true) {
-        testFailed('#' + hex + ' ');
-        errorCount++;
-      }
-    } catch (e) {
-      testFailed('#' + hex + ' ');
-      errorCount++;
-    }
-    count++;
-  }
-}
-
-if (errorCount &gt; 0) {  
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 3; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A31htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_218S76_A31htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,235 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S7.6_A3.1&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S7.6_A3.1;
+ * @section: 7.6;
+ * @assertion: IdentifierName must contain only IdentifierPart character;
+ * @description: Complex test with eval; 
+*/
+
+//CHECK
+Lu = [[0x0041, 0x005A], [0x00C0, 0x00D6], [0x00D8, 0x00DE], [0x0100, 0x0100], [0x0102, 0x0102], [0x0104, 0x0104], [0x0106, 0x0106], [0x0108, 0x0108], [0x010A, 0x010A], [0x010C, 0x010C], [0x010E, 0x010E], [0x0110, 0x0110], [0x0112, 0x0112], [0x0114, 0x0114], [0x0116, 0x0116], [0x0118, 0x0118], [0x011A, 0x011A], [0x011C, 0x011C], [0x011E, 0x011E], [0x0120, 0x0120], [0x0122, 0x0122], [0x0124, 0x0124], [0x0126, 0x0126], [0x0128, 0x0128], [0x012A, 0x012A], [0x012C, 0x012C], [0x012E, 0x012E], [0x0130, 0x0130], [0x0132, 0x0132], [0x0134, 0x0134], [0x0136, 0x0136], [0x0139, 0x0139], [0x013B, 0x013B], [0x013D, 0x013D], [0x013F, 0x013F], [0x0141, 0x0141], [0x0143, 0x0143], [0x0145, 0x0145], [0x0147, 0x0147], [0x014A, 0x014A], [0x014C, 0x014C], [0x014E, 0x014E], [0x0150, 0x0150], [0x0152, 0x0152], [0x0154, 0x0154], [0x0156, 0x0156], [0x0158, 0x0158], [0x015A, 0x015A], [0x015C, 0x015C], [0x015E, 0x015E], [0x0160, 0x0160], [0x0162, 0x0162], [0x0164, 0x0164], [0x0166, 0x0166], [0x0168, 0x
 0168], [0x016A, 0x016A], [0x016C, 0x016C], [0x016E, 0x016E], [0x0170, 0x0170], [0x0172, 0x0172], [0x0174, 0x0174], [0x0176, 0x0176], [0x0178, 0x0179], [0x017B, 0x017B], [0x017D, 0x017D], [0x0181, 0x0182], [0x0184, 0x0184], [0x0186, 0x0187], [0x0189, 0x018B], [0x018E, 0x0191], [0x0193, 0x0194], [0x0196, 0x0198], [0x019C, 0x019D], [0x019F, 0x01A0], [0x01A2, 0x01A2], [0x01A4, 0x01A4], [0x01A6, 0x01A7], [0x01A9, 0x01A9], [0x01AC, 0x01AC], [0x01AE, 0x01AF], [0x01B1, 0x01B3], [0x01B5, 0x01B5], [0x01B7, 0x01B8], [0x01BC, 0x01BC], [0x01C4, 0x01C4], [0x01C7, 0x01C7], [0x01CA, 0x01CA], [0x01CD, 0x01CD], [0x01CF, 0x01CF], [0x01D1, 0x01D1], [0x01D3, 0x01D3], [0x01D5, 0x01D5], [0x01D7, 0x01D7], [0x01D9, 0x01D9], [0x01DB, 0x01DB], [0x01DE, 0x01DE], [0x01E0, 0x01E0], [0x01E2, 0x01E2], [0x01E4, 0x01E4], [0x01E6, 0x01E6], [0x01E8, 0x01E8], [0x01EA, 0x01EA], [0x01EC, 0x01EC], [0x01EE, 0x01EE], [0x01F1, 0x01F1], [0x01F4, 0x01F4], [0x01FA, 0x01FA], [0x01FC, 0x01FC], [0x01FE, 0x01FE], [0x0200, 0
 x0200], [0x0202, 0x0202], [0x0204, 0x0204], [0x0206, 0x0206], [0x0208, 0x0208], [0x020A, 0x020A], [0x020C, 0x020C], [0x020E, 0x020E], [0x0210, 0x0210], [0x0212, 0x0212], [0x0214, 0x0214], [0x0216, 0x0216], [0x0386, 0x0386], [0x0388, 0x038A], [0x038C, 0x038C], [0x038E, 0x038F], [0x0391, 0x03A1], [0x03A3, 0x03AB], [0x03D2, 0x03D4], [0x03DA, 0x03DA], [0x03DC, 0x03DC], [0x03DE, 0x03DE], [0x03E0, 0x03E0], [0x03E2, 0x03E2], [0x03E4, 0x03E4], [0x03E6, 0x03E6], [0x03E8, 0x03E8], [0x03EA, 0x03EA], [0x03EC, 0x03EC], [0x03EE, 0x03EE], [0x0401, 0x040C], [0x040E, 0x042F], [0x0460, 0x0460], [0x0462, 0x0462], [0x0464, 0x0464], [0x0466, 0x0466], [0x0468, 0x0468], [0x046A, 0x046A], [0x046C, 0x046C], [0x046E, 0x046E], [0x0470, 0x0470], [0x0472, 0x0472], [0x0474, 0x0474], [0x0476, 0x0476], [0x0478, 0x0478], [0x047A, 0x047A], [0x047C, 0x047C], [0x047E, 0x047E], [0x0480, 0x0480], [0x0490, 0x0490], [0x0492, 0x0492], [0x0494, 0x0494], [0x0496, 0x0496], [0x0498, 0x0498], [0x049A, 0x049A], [0x049C, 
 0x049C], [0x049E, 0x049E], [0x04A0, 0x04A0], [0x04A2, 0x04A2], [0x04A4, 0x04A4], [0x04A6, 0x04A6], [0x04A8, 0x04A8], [0x04AA, 0x04AA], [0x04AC, 0x04AC], [0x04AE, 0x04AE], [0x04B0, 0x04B0], [0x04B2, 0x04B2], [0x04B4, 0x04B4], [0x04B6, 0x04B6], [0x04B8, 0x04B8], [0x04BA, 0x04BA], [0x04BC, 0x04BC], [0x04BE, 0x04BE], [0x04C1, 0x04C1], [0x04C3, 0x04C3], [0x04C7, 0x04C7], [0x04CB, 0x04CB], [0x04D0, 0x04D0], [0x04D2, 0x04D2], [0x04D4, 0x04D4], [0x04D6, 0x04D6], [0x04D8, 0x04D8], [0x04DA, 0x04DA], [0x04DC, 0x04DC], [0x04DE, 0x04DE], [0x04E0, 0x04E0], [0x04E2, 0x04E2], [0x04E4, 0x04E4], [0x04E6, 0x04E6], [0x04E8, 0x04E8], [0x04EA, 0x04EA], [0x04EE, 0x04EE], [0x04F0, 0x04F0], [0x04F2, 0x04F2], [0x04F4, 0x04F4], [0x04F8, 0x04F8], [0x0531, 0x0556], [0x10A0, 0x10C5], [0x1E00, 0x1E00], [0x1E02, 0x1E02], [0x1E04, 0x1E04], [0x1E06, 0x1E06], [0x1E08, 0x1E08], [0x1E0A, 0x1E0A], [0x1E0C, 0x1E0C], [0x1E0E, 0x1E0E], [0x1E10, 0x1E10], [0x1E12, 0x1E12], [0x1E14, 0x1E14], [0x1E16, 0x1E16], [0x1E18,
  0x1E18], [0x1E1A, 0x1E1A], [0x1E1C, 0x1E1C], [0x1E1E, 0x1E1E], [0x1E20, 0x1E20], [0x1E22, 0x1E22], [0x1E24, 0x1E24], [0x1E26, 0x1E26], [0x1E28, 0x1E28], [0x1E2A, 0x1E2A], [0x1E2C, 0x1E2C], [0x1E2E, 0x1E2E], [0x1E30, 0x1E30], [0x1E32, 0x1E32], [0x1E34, 0x1E34], [0x1E36, 0x1E36], [0x1E38, 0x1E38], [0x1E3A, 0x1E3A], [0x1E3C, 0x1E3C], [0x1E3E, 0x1E3E], [0x1E40, 0x1E40], [0x1E42, 0x1E42], [0x1E44, 0x1E44], [0x1E46, 0x1E46], [0x1E48, 0x1E48], [0x1E4A, 0x1E4A], [0x1E4C, 0x1E4C], [0x1E4E, 0x1E4E], [0x1E50, 0x1E50], [0x1E52, 0x1E52], [0x1E54, 0x1E54], [0x1E56, 0x1E56], [0x1E58, 0x1E58], [0x1E5A, 0x1E5A], [0x1E5C, 0x1E5C], [0x1E5E, 0x1E5E], [0x1E60, 0x1E60], [0x1E62, 0x1E62], [0x1E64, 0x1E64], [0x1E66, 0x1E66], [0x1E68, 0x1E68], [0x1E6A, 0x1E6A], [0x1E6C, 0x1E6C], [0x1E6E, 0x1E6E], [0x1E70, 0x1E70], [0x1E72, 0x1E72], [0x1E74, 0x1E74], [0x1E76, 0x1E76], [0x1E78, 0x1E78], [0x1E7A, 0x1E7A], [0x1E7C, 0x1E7C], [0x1E7E, 0x1E7E], [0x1E80, 0x1E80], [0x1E82, 0x1E82], [0x1E84, 0x1E84], [0x1E86
 , 0x1E86], [0x1E88, 0x1E88], [0x1E8A, 0x1E8A], [0x1E8C, 0x1E8C], [0x1E8E, 0x1E8E], [0x1E90, 0x1E90], [0x1E92, 0x1E92], [0x1E94, 0x1E94], [0x1EA0, 0x1EA0], [0x1EA2, 0x1EA2], [0x1EA4, 0x1EA4], [0x1EA6, 0x1EA6], [0x1EA8, 0x1EA8], [0x1EAA, 0x1EAA], [0x1EAC, 0x1EAC], [0x1EAE, 0x1EAE], [0x1EB0, 0x1EB0], [0x1EB2, 0x1EB2], [0x1EB4, 0x1EB4], [0x1EB6, 0x1EB6], [0x1EB8, 0x1EB8], [0x1EBA, 0x1EBA], [0x1EBC, 0x1EBC], [0x1EBE, 0x1EBE], [0x1EC0, 0x1EC0], [0x1EC2, 0x1EC2], [0x1EC4, 0x1EC4], [0x1EC6, 0x1EC6], [0x1EC8, 0x1EC8], [0x1ECA, 0x1ECA], [0x1ECC, 0x1ECC], [0x1ECE, 0x1ECE], [0x1ED0, 0x1ED0], [0x1ED2, 0x1ED2], [0x1ED4, 0x1ED4], [0x1ED6, 0x1ED6], [0x1ED8, 0x1ED8], [0x1EDA, 0x1EDA], [0x1EDC, 0x1EDC], [0x1EDE, 0x1EDE], [0x1EE0, 0x1EE0], [0x1EE2, 0x1EE2], [0x1EE4, 0x1EE4], [0x1EE6, 0x1EE6], [0x1EE8, 0x1EE8], [0x1EEA, 0x1EEA], [0x1EEC, 0x1EEC], [0x1EEE, 0x1EEE], [0x1EF0, 0x1EF0], [0x1EF2, 0x1EF2], [0x1EF4, 0x1EF4], [0x1EF6, 0x1EF6], [0x1EF8, 0x1EF8], [0x1F08, 0x1F0F], [0x1F18, 0x1F1D], [0x1F2
 8, 0x1F2F], [0x1F38, 0x1F3F], [0x1F48, 0x1F4D], [0x1F59, 0x1F59], [0x1F5B, 0x1F5B], [0x1F5D, 0x1F5D], [0x1F5F, 0x1F5F], [0x1F68, 0x1F6F], [0x1F88, 0x1F8F], [0x1F98, 0x1F9F], [0x1FA8, 0x1FAF], [0x1FB8, 0x1FBC], [0x1FC8, 0x1FCC], [0x1FD8, 0x1FDB], [0x1FE8, 0x1FEC], [0x1FF8, 0x1FFC], [0x2102, 0x2102], [0x2107, 0x2107], [0x210B, 0x210D], [0x2110, 0x2112], [0x2115, 0x2115], [0x2119, 0x211D], [0x2124, 0x2124], [0x2126, 0x2126], [0x2128, 0x2128], [0x212A, 0x212D], [0x2130, 0x2131], [0x2133, 0x2133], [0xFF21, 0xFF3A]];
+Ll = [[0x0061, 0x007A], [0x00AA, 0x00AA], [0x00B5, 0x00B5], [0x00BA, 0x00BA], [0x00DF, 0x00F6], [0x00F8, 0x00FF], [0x0101, 0x0101], [0x0103, 0x0103], [0x0105, 0x0105], [0x0107, 0x0107], [0x0109, 0x0109], [0x010B, 0x010B], [0x010D, 0x010D], [0x010F, 0x010F], [0x0111, 0x0111], [0x0113, 0x0113], [0x0115, 0x0115], [0x0117, 0x0117], [0x0119, 0x0119], [0x011B, 0x011B], [0x011D, 0x011D], [0x011F, 0x011F], [0x0121, 0x0121], [0x0123, 0x0123], [0x0125, 0x0125], [0x0127, 0x0127], [0x0129, 0x0129], [0x012B, 0x012B], [0x012D, 0x012D], [0x012F, 0x012F], [0x0131, 0x0131], [0x0133, 0x0133], [0x0135, 0x0135], [0x0137, 0x0138], [0x013A, 0x013A], [0x013C, 0x013C], [0x013E, 0x013E], [0x0140, 0x0140], [0x0142, 0x0142], [0x0144, 0x0144], [0x0146, 0x0146], [0x0148, 0x0149], [0x014B, 0x014B], [0x014D, 0x014D], [0x014F, 0x014F], [0x0151, 0x0151], [0x0153, 0x0153], [0x0155, 0x0155], [0x0157, 0x0157], [0x0159, 0x0159], [0x015B, 0x015B], [0x015D, 0x015D], [0x015F, 0x015F], [0x0161, 0x0161], [0x0163, 0x
 0163], [0x0165, 0x0165], [0x0167, 0x0167], [0x0169, 0x0169], [0x016B, 0x016B], [0x016D, 0x016D], [0x016F, 0x016F], [0x0171, 0x0171], [0x0173, 0x0173], [0x0175, 0x0175], [0x0177, 0x0177], [0x017A, 0x017A], [0x017C, 0x017C], [0x017E, 0x0180], [0x0183, 0x0183], [0x0185, 0x0185], [0x0188, 0x0188], [0x018C, 0x018D], [0x0192, 0x0192], [0x0195, 0x0195], [0x0199, 0x019B], [0x019E, 0x019E], [0x01A1, 0x01A1], [0x01A3, 0x01A3], [0x01A5, 0x01A5], [0x01A8, 0x01A8], [0x01AB, 0x01AB], [0x01AD, 0x01AD], [0x01B0, 0x01B0], [0x01B4, 0x01B4], [0x01B6, 0x01B6], [0x01B9, 0x01BA], [0x01BD, 0x01BD], [0x01C6, 0x01C6], [0x01C9, 0x01C9], [0x01CC, 0x01CC], [0x01CE, 0x01CE], [0x01D0, 0x01D0], [0x01D2, 0x01D2], [0x01D4, 0x01D4], [0x01D6, 0x01D6], [0x01D8, 0x01D8], [0x01DA, 0x01DA], [0x01DC, 0x01DD], [0x01DF, 0x01DF], [0x01E1, 0x01E1], [0x01E3, 0x01E3], [0x01E5, 0x01E5], [0x01E7, 0x01E7], [0x01E9, 0x01E9], [0x01EB, 0x01EB], [0x01ED, 0x01ED], [0x01EF, 0x01F0], [0x01F3, 0x01F3], [0x01F5, 0x01F5], [0x01FB, 0
 x01FB], [0x01FD, 0x01FD], [0x01FF, 0x01FF], [0x0201, 0x0201], [0x0203, 0x0203], [0x0205, 0x0205], [0x0207, 0x0207], [0x0209, 0x0209], [0x020B, 0x020B], [0x020D, 0x020D], [0x020F, 0x020F], [0x0211, 0x0211], [0x0213, 0x0213], [0x0215, 0x0215], [0x0217, 0x0217], [0x0250, 0x02A8], [0x0390, 0x0390], [0x03AC, 0x03CE], [0x03D0, 0x03D1], [0x03D5, 0x03D6], [0x03E3, 0x03E3], [0x03E5, 0x03E5], [0x03E7, 0x03E7], [0x03E9, 0x03E9], [0x03EB, 0x03EB], [0x03ED, 0x03ED], [0x03EF, 0x03F2], [0x0430, 0x044F], [0x0451, 0x045C], [0x045E, 0x045F], [0x0461, 0x0461], [0x0463, 0x0463], [0x0465, 0x0465], [0x0467, 0x0467], [0x0469, 0x0469], [0x046B, 0x046B], [0x046D, 0x046D], [0x046F, 0x046F], [0x0471, 0x0471], [0x0473, 0x0473], [0x0475, 0x0475], [0x0477, 0x0477], [0x0479, 0x0479], [0x047B, 0x047B], [0x047D, 0x047D], [0x047F, 0x047F], [0x0481, 0x0481], [0x0491, 0x0491], [0x0493, 0x0493], [0x0495, 0x0495], [0x0497, 0x0497], [0x0499, 0x0499], [0x049B, 0x049B], [0x049D, 0x049D], [0x049F, 0x049F], [0x04A1, 
 0x04A1], [0x04A3, 0x04A3], [0x04A5, 0x04A5], [0x04A7, 0x04A7], [0x04A9, 0x04A9], [0x04AB, 0x04AB], [0x04AD, 0x04AD], [0x04AF, 0x04AF], [0x04B1, 0x04B1], [0x04B3, 0x04B3], [0x04B5, 0x04B5], [0x04B7, 0x04B7], [0x04B9, 0x04B9], [0x04BB, 0x04BB], [0x04BD, 0x04BD], [0x04BF, 0x04BF], [0x04C2, 0x04C2], [0x04C4, 0x04C4], [0x04C8, 0x04C8], [0x04CC, 0x04CC], [0x04D1, 0x04D1], [0x04D3, 0x04D3], [0x04D5, 0x04D5], [0x04D7, 0x04D7], [0x04D9, 0x04D9], [0x04DB, 0x04DB], [0x04DD, 0x04DD], [0x04DF, 0x04DF], [0x04E1, 0x04E1], [0x04E3, 0x04E3], [0x04E5, 0x04E5], [0x04E7, 0x04E7], [0x04E9, 0x04E9], [0x04EB, 0x04EB], [0x04EF, 0x04EF], [0x04F1, 0x04F1], [0x04F3, 0x04F3], [0x04F5, 0x04F5], [0x04F9, 0x04F9], [0x0561, 0x0587], [0x10D0, 0x10F6], [0x1E01, 0x1E01], [0x1E03, 0x1E03], [0x1E05, 0x1E05], [0x1E07, 0x1E07], [0x1E09, 0x1E09], [0x1E0B, 0x1E0B], [0x1E0D, 0x1E0D], [0x1E0F, 0x1E0F], [0x1E11, 0x1E11], [0x1E13, 0x1E13], [0x1E15, 0x1E15], [0x1E17, 0x1E17], [0x1E19, 0x1E19], [0x1E1B, 0x1E1B], [0x1E1D,
  0x1E1D], [0x1E1F, 0x1E1F], [0x1E21, 0x1E21], [0x1E23, 0x1E23], [0x1E25, 0x1E25], [0x1E27, 0x1E27], [0x1E29, 0x1E29], [0x1E2B, 0x1E2B], [0x1E2D, 0x1E2D], [0x1E2F, 0x1E2F], [0x1E31, 0x1E31], [0x1E33, 0x1E33], [0x1E35, 0x1E35], [0x1E37, 0x1E37], [0x1E39, 0x1E39], [0x1E3B, 0x1E3B], [0x1E3D, 0x1E3D], [0x1E3F, 0x1E3F], [0x1E41, 0x1E41], [0x1E43, 0x1E43], [0x1E45, 0x1E45], [0x1E47, 0x1E47], [0x1E49, 0x1E49], [0x1E4B, 0x1E4B], [0x1E4D, 0x1E4D], [0x1E4F, 0x1E4F], [0x1E51, 0x1E51], [0x1E53, 0x1E53], [0x1E55, 0x1E55], [0x1E57, 0x1E57], [0x1E59, 0x1E59], [0x1E5B, 0x1E5B], [0x1E5D, 0x1E5D], [0x1E5F, 0x1E5F], [0x1E61, 0x1E61], [0x1E63, 0x1E63], [0x1E65, 0x1E65], [0x1E67, 0x1E67], [0x1E69, 0x1E69], [0x1E6B, 0x1E6B], [0x1E6D, 0x1E6D], [0x1E6F, 0x1E6F], [0x1E71, 0x1E71], [0x1E73, 0x1E73], [0x1E75, 0x1E75], [0x1E77, 0x1E77], [0x1E79, 0x1E79], [0x1E7B, 0x1E7B], [0x1E7D, 0x1E7D], [0x1E7F, 0x1E7F], [0x1E81, 0x1E81], [0x1E83, 0x1E83], [0x1E85, 0x1E85], [0x1E87, 0x1E87], [0x1E89, 0x1E89], [0x1E8B
 , 0x1E8B], [0x1E8D, 0x1E8D], [0x1E8F, 0x1E8F], [0x1E91, 0x1E91], [0x1E93, 0x1E93], [0x1E95, 0x1E9B], [0x1EA1, 0x1EA1], [0x1EA3, 0x1EA3], [0x1EA5, 0x1EA5], [0x1EA7, 0x1EA7], [0x1EA9, 0x1EA9], [0x1EAB, 0x1EAB], [0x1EAD, 0x1EAD], [0x1EAF, 0x1EAF], [0x1EB1, 0x1EB1], [0x1EB3, 0x1EB3], [0x1EB5, 0x1EB5], [0x1EB7, 0x1EB7], [0x1EB9, 0x1EB9], [0x1EBB, 0x1EBB], [0x1EBD, 0x1EBD], [0x1EBF, 0x1EBF], [0x1EC1, 0x1EC1], [0x1EC3, 0x1EC3], [0x1EC5, 0x1EC5], [0x1EC7, 0x1EC7], [0x1EC9, 0x1EC9], [0x1ECB, 0x1ECB], [0x1ECD, 0x1ECD], [0x1ECF, 0x1ECF], [0x1ED1, 0x1ED1], [0x1ED3, 0x1ED3], [0x1ED5, 0x1ED5], [0x1ED7, 0x1ED7], [0x1ED9, 0x1ED9], [0x1EDB, 0x1EDB], [0x1EDD, 0x1EDD], [0x1EDF, 0x1EDF], [0x1EE1, 0x1EE1], [0x1EE3, 0x1EE3], [0x1EE5, 0x1EE5], [0x1EE7, 0x1EE7], [0x1EE9, 0x1EE9], [0x1EEB, 0x1EEB], [0x1EED, 0x1EED], [0x1EEF, 0x1EEF], [0x1EF1, 0x1EF1], [0x1EF3, 0x1EF3], [0x1EF5, 0x1EF5], [0x1EF7, 0x1EF7], [0x1EF9, 0x1EF9], [0x1F00, 0x1F07], [0x1F10, 0x1F15], [0x1F20, 0x1F27], [0x1F30, 0x1F37], [0x1F4
 0, 0x1F45], [0x1F50, 0x1F57], [0x1F60, 0x1F67], [0x1F70, 0x1F7D], [0x1F80, 0x1F87], [0x1F90, 0x1F97], [0x1FA0, 0x1FA7], [0x1FB0, 0x1FB4], [0x1FB6, 0x1FB7], [0x1FBE, 0x1FBE], [0x1FC2, 0x1FC4], [0x1FC6, 0x1FC7], [0x1FD0, 0x1FD3], [0x1FD6, 0x1FD7], [0x1FE0, 0x1FE7], [0x1FF2, 0x1FF4], [0x1FF6, 0x1FF7], [0x207F, 0x207F], [0x210A, 0x210A], [0x210E, 0x210F], [0x2113, 0x2113], [0x2118, 0x2118], [0x212E, 0x212F], [0x2134, 0x2134], [0xFB00, 0xFB06], [0xFB13, 0xFB17], [0xFF41, 0xFF5A]];
+Lt = [[0x01C5, 0x01C5], [0x01C8, 0x01C8], [0x01CB, 0x01CB], [0x01F2, 0x01F2]];
+Lm = [[0x02B0, 0x02B8], [0x02BB, 0x02C1], [0x02D0, 0x02D1], [0x02E0, 0x02E4], [0x037A, 0x037A], [0x0559, 0x0559], [0x0640, 0x0640], [0x06E5, 0x06E6], [0x0E46, 0x0E46], [0x0EC6, 0x0EC6], [0x3005, 0x3005], [0x3031, 0x3035], [0x309D, 0x309E], [0x30FC, 0x30FE], [0xFF70, 0xFF70], [0xFF9E, 0xFF9F]];
+Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
 0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
 x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+Nl = [[0x2160, 0x2182], [0x3007, 0x3007], [0x3021, 0x3029]];
+Mn = [[0x0300, 0x0345], [0x0360, 0x0361], [0x0483, 0x0486], [0x0591, 0x05A1], [0x05A3, 0x05B9], [0x05BB, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2], [0x05C4, 0x05C4], [0x064B, 0x0652], [0x0670, 0x0670], [0x06D6, 0x06DC], [0x06DF, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED], [0x0901, 0x0902], [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D], [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981], [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD], [0x09E2, 0x09E3], [0x0A02, 0x0A02], [0x0A3C, 0x0A3C], [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D], [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC], [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C], [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D], [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0], [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48], [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD], [0x0D41, 0x0D43], [0x0D4D, 0x
 0D4D], [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E], [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC], [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35], [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E], [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F95], [0x0F97, 0x0F97], [0x0F99, 0x0FAD], [0x0FB1, 0x0FB7], [0x0FB9, 0x0FB9], [0x20D0, 0x20DC], [0x20E1, 0x20E1], [0x302A, 0x302F], [0x3099, 0x309A], [0xFB1E, 0xFB1E], [0xFE20, 0xFE23]];
+Mc = [[0x0903, 0x0903], [0x093E, 0x0940], [0x0949, 0x094C], [0x0982, 0x0983], [0x09BE, 0x09C0], [0x09C7, 0x09C8], [0x09CB, 0x09CC], [0x09D7, 0x09D7], [0x0A3E, 0x0A40], [0x0A83, 0x0A83], [0x0ABE, 0x0AC0], [0x0AC9, 0x0AC9], [0x0ACB, 0x0ACC], [0x0B02, 0x0B03], [0x0B3E, 0x0B3E], [0x0B40, 0x0B40], [0x0B47, 0x0B48], [0x0B4B, 0x0B4C], [0x0B57, 0x0B57], [0x0B83, 0x0B83], [0x0BBE, 0x0BBF], [0x0BC1, 0x0BC2], [0x0BC6, 0x0BC8], [0x0BCA, 0x0BCC], [0x0BD7, 0x0BD7], [0x0C01, 0x0C03], [0x0C41, 0x0C44], [0x0C82, 0x0C83], [0x0CBE, 0x0CBE], [0x0CC0, 0x0CC4], [0x0CC7, 0x0CC8], [0x0CCA, 0x0CCB], [0x0CD5, 0x0CD6], [0x0D02, 0x0D03], [0x0D3E, 0x0D40], [0x0D46, 0x0D48], [0x0D4A, 0x0D4C], [0x0D57, 0x0D57], [0x0F3E, 0x0F3F], [0x0F7F, 0x0F7F]];
+Nd = [[0x0030, 0x0039], [0x0660, 0x0669], [0x06F0, 0x06F9], [0x0966, 0x096F], [0x09E6, 0x09EF], [0x0A66, 0x0A6F], [0x0AE6, 0x0AEF], [0x0B66, 0x0B6F], [0x0BE7, 0x0BEF], [0x0C66, 0x0C6F], [0x0CE6, 0x0CEF], [0x0D66, 0x0D6F], [0x0E50, 0x0E59], [0x0ED0, 0x0ED9], [0x0F20, 0x0F29], [0xFF10, 0xFF19]];
+Pc = [[0x005F, 0x005F], [0x203F, 0x2040], [0x30FB, 0x30FB], [0xFE33, 0xFE34], [0xFE4D, 0xFE4F], [0xFF3F, 0xFF3F], [0xFF65, 0xFF65]];
+
+UnicodeLetterLu = [];
+UnicodeLetterLl = [];
+UnicodeLetterLt = [];
+UnicodeLetterLm = [];
+UnicodeLetterLo = [];
+UnicodeLetterNl = [];
+UnicodeLetterMn = [];
+UnicodeLetterMc = [];
+UnicodeLetterNd = [];
+UnicodeLetterPc = [];
+
+for (indexI = 0; indexI &lt; Lu.length; indexI++) {
+  for (indexJ = Lu[indexI][0]; indexJ &lt;= Lu[indexI][1]; indexJ++) {
+    UnicodeLetterLu[indexJ] = true;
+  }
+}
+for (indexI = 0; indexI &lt; Ll.length; indexI++) {
+  for (indexJ = Ll[indexI][0]; indexJ &lt;= Ll[indexI][1]; indexJ++) {
+    UnicodeLetterLl[indexJ] = true;
+  }
+}  
+for (indexI = 0; indexI &lt; Lt.length; indexI++) {
+  for (indexJ = Lt[indexI][0]; indexJ &lt;= Lt[indexI][1]; indexJ++) {
+    UnicodeLetterLt[indexJ] = true;
+  }
+}
+for (indexI = 0; indexI &lt; Lm.length; indexI++) {
+  for (indexJ = Lm[indexI][0]; indexJ &lt;= Lm[indexI][1]; indexJ++) {
+    UnicodeLetterLm[indexJ] = true;
+  }
+}
+for (indexI = 0; indexI &lt; Lo.length; indexI++) {
+  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
+    UnicodeLetterLo[indexJ] = true;
+  }
+}
+for (indexI = 0; indexI &lt; Nl.length; indexI++) {
+  for (indexJ = Nl[indexI][0]; indexJ &lt;= Nl[indexI][1]; indexJ++) {
+    UnicodeLetterNl[indexJ] = true;
+  }
+}
+for (indexI = 0; indexI &lt; Mn.length; indexI++) {
+  for (indexJ = Mn[indexI][0]; indexJ &lt;= Mn[indexI][1]; indexJ++) {
+    UnicodeLetterMn[indexJ] = true;
+  }
+}
+for (indexI = 0; indexI &lt; Mc.length; indexI++) {
+  for (indexJ = Mc[indexI][0]; indexJ &lt;= Mc[indexI][1]; indexJ++) {
+    UnicodeLetterMc[indexJ] = true;
+  }
+}
+for (indexI = 0; indexI &lt; Nd.length; indexI++) {
+  for (indexJ = Nd[indexI][0]; indexJ &lt;= Nd[indexI][1]; indexJ++) {
+    UnicodeLetterNd[indexJ] = true;
+  }
+}
+for (indexI = 0; indexI &lt; Pc.length; indexI++) {
+  for (indexJ = Pc[indexI][0]; indexJ &lt;= Pc[indexI][1]; indexJ++) {
+    UnicodeLetterPc[indexJ] = true;
+  }
+}
+
+errorCount = 0;
+count = 0;
+var indexP;
+var indexO = 0;
+for (index = 0; index &lt;= 65535; index++) {  
+  if ((UnicodeLetterLu[index] === undefined) &amp;&amp; (UnicodeLetterLl[index] === undefined) &amp;&amp; (UnicodeLetterLt[index] === undefined) &amp;&amp; (UnicodeLetterLm[index] === undefined) &amp;&amp; (UnicodeLetterLo[index] === undefined) &amp;&amp; (UnicodeLetterNl[index] === undefined) &amp;&amp; (UnicodeLetterMn[index] === undefined) &amp;&amp; (UnicodeLetterMc[index] === undefined) &amp;&amp; (UnicodeLetterNd[index] === undefined) &amp;&amp; (UnicodeLetterPc[index] === undefined) &amp;&amp; (index !== 0x0024) &amp;&amp; (index !== 0x005F)) {   
+    try {
+      var identifier = &quot;$&quot; + String.fromCharCode(index) + &quot;1&quot;;    
+      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
+      if (indexO === 0) { 
+        indexO = index;
+      } else {
+        if ((index - indexP) !== 1) {             
+          if ((indexP - indexO) !== 0) {
+            var hexP = decimalToHexString(indexP);
+            var hexO = decimalToHexString(indexO);
+            testFailed('#' + hexO + '-' + hexP + ' ');
+          } 
+          else {
+            var hexP = decimalToHexString(indexP);
+            testFailed('#' + hexP + ' ');
+          }  
+          indexO = index;
+        }         
+      }
+      indexP = index;
+      errorCount++;    
+    } catch (e) {      
+    }
+    count++;
+  }  
+}
+
+if (errorCount &gt; 0) {
+  if ((indexP - indexO) !== 0) {
+    var hexP = decimalToHexString(indexP);
+    var hexO = decimalToHexString(indexO);
+    testFailed('#' + hexO + '-' + hexP + ' ');
+  } else {
+    var hexP = decimalToHexString(indexP);
+    testFailed('#' + hexP + ' ');
+  }     
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 3; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A31htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.1.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,235 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S7.6_A3.1&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S7.6_A3.1;
- * @section: 7.6;
- * @assertion: IdentifierName must contain only IdentifierPart character;
- * @description: Complex test with eval; 
-*/
-
-//CHECK
-Lu = [[0x0041, 0x005A], [0x00C0, 0x00D6], [0x00D8, 0x00DE], [0x0100, 0x0100], [0x0102, 0x0102], [0x0104, 0x0104], [0x0106, 0x0106], [0x0108, 0x0108], [0x010A, 0x010A], [0x010C, 0x010C], [0x010E, 0x010E], [0x0110, 0x0110], [0x0112, 0x0112], [0x0114, 0x0114], [0x0116, 0x0116], [0x0118, 0x0118], [0x011A, 0x011A], [0x011C, 0x011C], [0x011E, 0x011E], [0x0120, 0x0120], [0x0122, 0x0122], [0x0124, 0x0124], [0x0126, 0x0126], [0x0128, 0x0128], [0x012A, 0x012A], [0x012C, 0x012C], [0x012E, 0x012E], [0x0130, 0x0130], [0x0132, 0x0132], [0x0134, 0x0134], [0x0136, 0x0136], [0x0139, 0x0139], [0x013B, 0x013B], [0x013D, 0x013D], [0x013F, 0x013F], [0x0141, 0x0141], [0x0143, 0x0143], [0x0145, 0x0145], [0x0147, 0x0147], [0x014A, 0x014A], [0x014C, 0x014C], [0x014E, 0x014E], [0x0150, 0x0150], [0x0152, 0x0152], [0x0154, 0x0154], [0x0156, 0x0156], [0x0158, 0x0158], [0x015A, 0x015A], [0x015C, 0x015C], [0x015E, 0x015E], [0x0160, 0x0160], [0x0162, 0x0162], [0x0164, 0x0164], [0x0166, 0x0166], [0x0168, 0x
 0168], [0x016A, 0x016A], [0x016C, 0x016C], [0x016E, 0x016E], [0x0170, 0x0170], [0x0172, 0x0172], [0x0174, 0x0174], [0x0176, 0x0176], [0x0178, 0x0179], [0x017B, 0x017B], [0x017D, 0x017D], [0x0181, 0x0182], [0x0184, 0x0184], [0x0186, 0x0187], [0x0189, 0x018B], [0x018E, 0x0191], [0x0193, 0x0194], [0x0196, 0x0198], [0x019C, 0x019D], [0x019F, 0x01A0], [0x01A2, 0x01A2], [0x01A4, 0x01A4], [0x01A6, 0x01A7], [0x01A9, 0x01A9], [0x01AC, 0x01AC], [0x01AE, 0x01AF], [0x01B1, 0x01B3], [0x01B5, 0x01B5], [0x01B7, 0x01B8], [0x01BC, 0x01BC], [0x01C4, 0x01C4], [0x01C7, 0x01C7], [0x01CA, 0x01CA], [0x01CD, 0x01CD], [0x01CF, 0x01CF], [0x01D1, 0x01D1], [0x01D3, 0x01D3], [0x01D5, 0x01D5], [0x01D7, 0x01D7], [0x01D9, 0x01D9], [0x01DB, 0x01DB], [0x01DE, 0x01DE], [0x01E0, 0x01E0], [0x01E2, 0x01E2], [0x01E4, 0x01E4], [0x01E6, 0x01E6], [0x01E8, 0x01E8], [0x01EA, 0x01EA], [0x01EC, 0x01EC], [0x01EE, 0x01EE], [0x01F1, 0x01F1], [0x01F4, 0x01F4], [0x01FA, 0x01FA], [0x01FC, 0x01FC], [0x01FE, 0x01FE], [0x0200, 0
 x0200], [0x0202, 0x0202], [0x0204, 0x0204], [0x0206, 0x0206], [0x0208, 0x0208], [0x020A, 0x020A], [0x020C, 0x020C], [0x020E, 0x020E], [0x0210, 0x0210], [0x0212, 0x0212], [0x0214, 0x0214], [0x0216, 0x0216], [0x0386, 0x0386], [0x0388, 0x038A], [0x038C, 0x038C], [0x038E, 0x038F], [0x0391, 0x03A1], [0x03A3, 0x03AB], [0x03D2, 0x03D4], [0x03DA, 0x03DA], [0x03DC, 0x03DC], [0x03DE, 0x03DE], [0x03E0, 0x03E0], [0x03E2, 0x03E2], [0x03E4, 0x03E4], [0x03E6, 0x03E6], [0x03E8, 0x03E8], [0x03EA, 0x03EA], [0x03EC, 0x03EC], [0x03EE, 0x03EE], [0x0401, 0x040C], [0x040E, 0x042F], [0x0460, 0x0460], [0x0462, 0x0462], [0x0464, 0x0464], [0x0466, 0x0466], [0x0468, 0x0468], [0x046A, 0x046A], [0x046C, 0x046C], [0x046E, 0x046E], [0x0470, 0x0470], [0x0472, 0x0472], [0x0474, 0x0474], [0x0476, 0x0476], [0x0478, 0x0478], [0x047A, 0x047A], [0x047C, 0x047C], [0x047E, 0x047E], [0x0480, 0x0480], [0x0490, 0x0490], [0x0492, 0x0492], [0x0494, 0x0494], [0x0496, 0x0496], [0x0498, 0x0498], [0x049A, 0x049A], [0x049C, 
 0x049C], [0x049E, 0x049E], [0x04A0, 0x04A0], [0x04A2, 0x04A2], [0x04A4, 0x04A4], [0x04A6, 0x04A6], [0x04A8, 0x04A8], [0x04AA, 0x04AA], [0x04AC, 0x04AC], [0x04AE, 0x04AE], [0x04B0, 0x04B0], [0x04B2, 0x04B2], [0x04B4, 0x04B4], [0x04B6, 0x04B6], [0x04B8, 0x04B8], [0x04BA, 0x04BA], [0x04BC, 0x04BC], [0x04BE, 0x04BE], [0x04C1, 0x04C1], [0x04C3, 0x04C3], [0x04C7, 0x04C7], [0x04CB, 0x04CB], [0x04D0, 0x04D0], [0x04D2, 0x04D2], [0x04D4, 0x04D4], [0x04D6, 0x04D6], [0x04D8, 0x04D8], [0x04DA, 0x04DA], [0x04DC, 0x04DC], [0x04DE, 0x04DE], [0x04E0, 0x04E0], [0x04E2, 0x04E2], [0x04E4, 0x04E4], [0x04E6, 0x04E6], [0x04E8, 0x04E8], [0x04EA, 0x04EA], [0x04EE, 0x04EE], [0x04F0, 0x04F0], [0x04F2, 0x04F2], [0x04F4, 0x04F4], [0x04F8, 0x04F8], [0x0531, 0x0556], [0x10A0, 0x10C5], [0x1E00, 0x1E00], [0x1E02, 0x1E02], [0x1E04, 0x1E04], [0x1E06, 0x1E06], [0x1E08, 0x1E08], [0x1E0A, 0x1E0A], [0x1E0C, 0x1E0C], [0x1E0E, 0x1E0E], [0x1E10, 0x1E10], [0x1E12, 0x1E12], [0x1E14, 0x1E14], [0x1E16, 0x1E16], [0x1E18,
  0x1E18], [0x1E1A, 0x1E1A], [0x1E1C, 0x1E1C], [0x1E1E, 0x1E1E], [0x1E20, 0x1E20], [0x1E22, 0x1E22], [0x1E24, 0x1E24], [0x1E26, 0x1E26], [0x1E28, 0x1E28], [0x1E2A, 0x1E2A], [0x1E2C, 0x1E2C], [0x1E2E, 0x1E2E], [0x1E30, 0x1E30], [0x1E32, 0x1E32], [0x1E34, 0x1E34], [0x1E36, 0x1E36], [0x1E38, 0x1E38], [0x1E3A, 0x1E3A], [0x1E3C, 0x1E3C], [0x1E3E, 0x1E3E], [0x1E40, 0x1E40], [0x1E42, 0x1E42], [0x1E44, 0x1E44], [0x1E46, 0x1E46], [0x1E48, 0x1E48], [0x1E4A, 0x1E4A], [0x1E4C, 0x1E4C], [0x1E4E, 0x1E4E], [0x1E50, 0x1E50], [0x1E52, 0x1E52], [0x1E54, 0x1E54], [0x1E56, 0x1E56], [0x1E58, 0x1E58], [0x1E5A, 0x1E5A], [0x1E5C, 0x1E5C], [0x1E5E, 0x1E5E], [0x1E60, 0x1E60], [0x1E62, 0x1E62], [0x1E64, 0x1E64], [0x1E66, 0x1E66], [0x1E68, 0x1E68], [0x1E6A, 0x1E6A], [0x1E6C, 0x1E6C], [0x1E6E, 0x1E6E], [0x1E70, 0x1E70], [0x1E72, 0x1E72], [0x1E74, 0x1E74], [0x1E76, 0x1E76], [0x1E78, 0x1E78], [0x1E7A, 0x1E7A], [0x1E7C, 0x1E7C], [0x1E7E, 0x1E7E], [0x1E80, 0x1E80], [0x1E82, 0x1E82], [0x1E84, 0x1E84], [0x1E86
 , 0x1E86], [0x1E88, 0x1E88], [0x1E8A, 0x1E8A], [0x1E8C, 0x1E8C], [0x1E8E, 0x1E8E], [0x1E90, 0x1E90], [0x1E92, 0x1E92], [0x1E94, 0x1E94], [0x1EA0, 0x1EA0], [0x1EA2, 0x1EA2], [0x1EA4, 0x1EA4], [0x1EA6, 0x1EA6], [0x1EA8, 0x1EA8], [0x1EAA, 0x1EAA], [0x1EAC, 0x1EAC], [0x1EAE, 0x1EAE], [0x1EB0, 0x1EB0], [0x1EB2, 0x1EB2], [0x1EB4, 0x1EB4], [0x1EB6, 0x1EB6], [0x1EB8, 0x1EB8], [0x1EBA, 0x1EBA], [0x1EBC, 0x1EBC], [0x1EBE, 0x1EBE], [0x1EC0, 0x1EC0], [0x1EC2, 0x1EC2], [0x1EC4, 0x1EC4], [0x1EC6, 0x1EC6], [0x1EC8, 0x1EC8], [0x1ECA, 0x1ECA], [0x1ECC, 0x1ECC], [0x1ECE, 0x1ECE], [0x1ED0, 0x1ED0], [0x1ED2, 0x1ED2], [0x1ED4, 0x1ED4], [0x1ED6, 0x1ED6], [0x1ED8, 0x1ED8], [0x1EDA, 0x1EDA], [0x1EDC, 0x1EDC], [0x1EDE, 0x1EDE], [0x1EE0, 0x1EE0], [0x1EE2, 0x1EE2], [0x1EE4, 0x1EE4], [0x1EE6, 0x1EE6], [0x1EE8, 0x1EE8], [0x1EEA, 0x1EEA], [0x1EEC, 0x1EEC], [0x1EEE, 0x1EEE], [0x1EF0, 0x1EF0], [0x1EF2, 0x1EF2], [0x1EF4, 0x1EF4], [0x1EF6, 0x1EF6], [0x1EF8, 0x1EF8], [0x1F08, 0x1F0F], [0x1F18, 0x1F1D], [0x1F2
 8, 0x1F2F], [0x1F38, 0x1F3F], [0x1F48, 0x1F4D], [0x1F59, 0x1F59], [0x1F5B, 0x1F5B], [0x1F5D, 0x1F5D], [0x1F5F, 0x1F5F], [0x1F68, 0x1F6F], [0x1F88, 0x1F8F], [0x1F98, 0x1F9F], [0x1FA8, 0x1FAF], [0x1FB8, 0x1FBC], [0x1FC8, 0x1FCC], [0x1FD8, 0x1FDB], [0x1FE8, 0x1FEC], [0x1FF8, 0x1FFC], [0x2102, 0x2102], [0x2107, 0x2107], [0x210B, 0x210D], [0x2110, 0x2112], [0x2115, 0x2115], [0x2119, 0x211D], [0x2124, 0x2124], [0x2126, 0x2126], [0x2128, 0x2128], [0x212A, 0x212D], [0x2130, 0x2131], [0x2133, 0x2133], [0xFF21, 0xFF3A]];
-Ll = [[0x0061, 0x007A], [0x00AA, 0x00AA], [0x00B5, 0x00B5], [0x00BA, 0x00BA], [0x00DF, 0x00F6], [0x00F8, 0x00FF], [0x0101, 0x0101], [0x0103, 0x0103], [0x0105, 0x0105], [0x0107, 0x0107], [0x0109, 0x0109], [0x010B, 0x010B], [0x010D, 0x010D], [0x010F, 0x010F], [0x0111, 0x0111], [0x0113, 0x0113], [0x0115, 0x0115], [0x0117, 0x0117], [0x0119, 0x0119], [0x011B, 0x011B], [0x011D, 0x011D], [0x011F, 0x011F], [0x0121, 0x0121], [0x0123, 0x0123], [0x0125, 0x0125], [0x0127, 0x0127], [0x0129, 0x0129], [0x012B, 0x012B], [0x012D, 0x012D], [0x012F, 0x012F], [0x0131, 0x0131], [0x0133, 0x0133], [0x0135, 0x0135], [0x0137, 0x0138], [0x013A, 0x013A], [0x013C, 0x013C], [0x013E, 0x013E], [0x0140, 0x0140], [0x0142, 0x0142], [0x0144, 0x0144], [0x0146, 0x0146], [0x0148, 0x0149], [0x014B, 0x014B], [0x014D, 0x014D], [0x014F, 0x014F], [0x0151, 0x0151], [0x0153, 0x0153], [0x0155, 0x0155], [0x0157, 0x0157], [0x0159, 0x0159], [0x015B, 0x015B], [0x015D, 0x015D], [0x015F, 0x015F], [0x0161, 0x0161], [0x0163, 0x
 0163], [0x0165, 0x0165], [0x0167, 0x0167], [0x0169, 0x0169], [0x016B, 0x016B], [0x016D, 0x016D], [0x016F, 0x016F], [0x0171, 0x0171], [0x0173, 0x0173], [0x0175, 0x0175], [0x0177, 0x0177], [0x017A, 0x017A], [0x017C, 0x017C], [0x017E, 0x0180], [0x0183, 0x0183], [0x0185, 0x0185], [0x0188, 0x0188], [0x018C, 0x018D], [0x0192, 0x0192], [0x0195, 0x0195], [0x0199, 0x019B], [0x019E, 0x019E], [0x01A1, 0x01A1], [0x01A3, 0x01A3], [0x01A5, 0x01A5], [0x01A8, 0x01A8], [0x01AB, 0x01AB], [0x01AD, 0x01AD], [0x01B0, 0x01B0], [0x01B4, 0x01B4], [0x01B6, 0x01B6], [0x01B9, 0x01BA], [0x01BD, 0x01BD], [0x01C6, 0x01C6], [0x01C9, 0x01C9], [0x01CC, 0x01CC], [0x01CE, 0x01CE], [0x01D0, 0x01D0], [0x01D2, 0x01D2], [0x01D4, 0x01D4], [0x01D6, 0x01D6], [0x01D8, 0x01D8], [0x01DA, 0x01DA], [0x01DC, 0x01DD], [0x01DF, 0x01DF], [0x01E1, 0x01E1], [0x01E3, 0x01E3], [0x01E5, 0x01E5], [0x01E7, 0x01E7], [0x01E9, 0x01E9], [0x01EB, 0x01EB], [0x01ED, 0x01ED], [0x01EF, 0x01F0], [0x01F3, 0x01F3], [0x01F5, 0x01F5], [0x01FB, 0
 x01FB], [0x01FD, 0x01FD], [0x01FF, 0x01FF], [0x0201, 0x0201], [0x0203, 0x0203], [0x0205, 0x0205], [0x0207, 0x0207], [0x0209, 0x0209], [0x020B, 0x020B], [0x020D, 0x020D], [0x020F, 0x020F], [0x0211, 0x0211], [0x0213, 0x0213], [0x0215, 0x0215], [0x0217, 0x0217], [0x0250, 0x02A8], [0x0390, 0x0390], [0x03AC, 0x03CE], [0x03D0, 0x03D1], [0x03D5, 0x03D6], [0x03E3, 0x03E3], [0x03E5, 0x03E5], [0x03E7, 0x03E7], [0x03E9, 0x03E9], [0x03EB, 0x03EB], [0x03ED, 0x03ED], [0x03EF, 0x03F2], [0x0430, 0x044F], [0x0451, 0x045C], [0x045E, 0x045F], [0x0461, 0x0461], [0x0463, 0x0463], [0x0465, 0x0465], [0x0467, 0x0467], [0x0469, 0x0469], [0x046B, 0x046B], [0x046D, 0x046D], [0x046F, 0x046F], [0x0471, 0x0471], [0x0473, 0x0473], [0x0475, 0x0475], [0x0477, 0x0477], [0x0479, 0x0479], [0x047B, 0x047B], [0x047D, 0x047D], [0x047F, 0x047F], [0x0481, 0x0481], [0x0491, 0x0491], [0x0493, 0x0493], [0x0495, 0x0495], [0x0497, 0x0497], [0x0499, 0x0499], [0x049B, 0x049B], [0x049D, 0x049D], [0x049F, 0x049F], [0x04A1, 
 0x04A1], [0x04A3, 0x04A3], [0x04A5, 0x04A5], [0x04A7, 0x04A7], [0x04A9, 0x04A9], [0x04AB, 0x04AB], [0x04AD, 0x04AD], [0x04AF, 0x04AF], [0x04B1, 0x04B1], [0x04B3, 0x04B3], [0x04B5, 0x04B5], [0x04B7, 0x04B7], [0x04B9, 0x04B9], [0x04BB, 0x04BB], [0x04BD, 0x04BD], [0x04BF, 0x04BF], [0x04C2, 0x04C2], [0x04C4, 0x04C4], [0x04C8, 0x04C8], [0x04CC, 0x04CC], [0x04D1, 0x04D1], [0x04D3, 0x04D3], [0x04D5, 0x04D5], [0x04D7, 0x04D7], [0x04D9, 0x04D9], [0x04DB, 0x04DB], [0x04DD, 0x04DD], [0x04DF, 0x04DF], [0x04E1, 0x04E1], [0x04E3, 0x04E3], [0x04E5, 0x04E5], [0x04E7, 0x04E7], [0x04E9, 0x04E9], [0x04EB, 0x04EB], [0x04EF, 0x04EF], [0x04F1, 0x04F1], [0x04F3, 0x04F3], [0x04F5, 0x04F5], [0x04F9, 0x04F9], [0x0561, 0x0587], [0x10D0, 0x10F6], [0x1E01, 0x1E01], [0x1E03, 0x1E03], [0x1E05, 0x1E05], [0x1E07, 0x1E07], [0x1E09, 0x1E09], [0x1E0B, 0x1E0B], [0x1E0D, 0x1E0D], [0x1E0F, 0x1E0F], [0x1E11, 0x1E11], [0x1E13, 0x1E13], [0x1E15, 0x1E15], [0x1E17, 0x1E17], [0x1E19, 0x1E19], [0x1E1B, 0x1E1B], [0x1E1D,
  0x1E1D], [0x1E1F, 0x1E1F], [0x1E21, 0x1E21], [0x1E23, 0x1E23], [0x1E25, 0x1E25], [0x1E27, 0x1E27], [0x1E29, 0x1E29], [0x1E2B, 0x1E2B], [0x1E2D, 0x1E2D], [0x1E2F, 0x1E2F], [0x1E31, 0x1E31], [0x1E33, 0x1E33], [0x1E35, 0x1E35], [0x1E37, 0x1E37], [0x1E39, 0x1E39], [0x1E3B, 0x1E3B], [0x1E3D, 0x1E3D], [0x1E3F, 0x1E3F], [0x1E41, 0x1E41], [0x1E43, 0x1E43], [0x1E45, 0x1E45], [0x1E47, 0x1E47], [0x1E49, 0x1E49], [0x1E4B, 0x1E4B], [0x1E4D, 0x1E4D], [0x1E4F, 0x1E4F], [0x1E51, 0x1E51], [0x1E53, 0x1E53], [0x1E55, 0x1E55], [0x1E57, 0x1E57], [0x1E59, 0x1E59], [0x1E5B, 0x1E5B], [0x1E5D, 0x1E5D], [0x1E5F, 0x1E5F], [0x1E61, 0x1E61], [0x1E63, 0x1E63], [0x1E65, 0x1E65], [0x1E67, 0x1E67], [0x1E69, 0x1E69], [0x1E6B, 0x1E6B], [0x1E6D, 0x1E6D], [0x1E6F, 0x1E6F], [0x1E71, 0x1E71], [0x1E73, 0x1E73], [0x1E75, 0x1E75], [0x1E77, 0x1E77], [0x1E79, 0x1E79], [0x1E7B, 0x1E7B], [0x1E7D, 0x1E7D], [0x1E7F, 0x1E7F], [0x1E81, 0x1E81], [0x1E83, 0x1E83], [0x1E85, 0x1E85], [0x1E87, 0x1E87], [0x1E89, 0x1E89], [0x1E8B
 , 0x1E8B], [0x1E8D, 0x1E8D], [0x1E8F, 0x1E8F], [0x1E91, 0x1E91], [0x1E93, 0x1E93], [0x1E95, 0x1E9B], [0x1EA1, 0x1EA1], [0x1EA3, 0x1EA3], [0x1EA5, 0x1EA5], [0x1EA7, 0x1EA7], [0x1EA9, 0x1EA9], [0x1EAB, 0x1EAB], [0x1EAD, 0x1EAD], [0x1EAF, 0x1EAF], [0x1EB1, 0x1EB1], [0x1EB3, 0x1EB3], [0x1EB5, 0x1EB5], [0x1EB7, 0x1EB7], [0x1EB9, 0x1EB9], [0x1EBB, 0x1EBB], [0x1EBD, 0x1EBD], [0x1EBF, 0x1EBF], [0x1EC1, 0x1EC1], [0x1EC3, 0x1EC3], [0x1EC5, 0x1EC5], [0x1EC7, 0x1EC7], [0x1EC9, 0x1EC9], [0x1ECB, 0x1ECB], [0x1ECD, 0x1ECD], [0x1ECF, 0x1ECF], [0x1ED1, 0x1ED1], [0x1ED3, 0x1ED3], [0x1ED5, 0x1ED5], [0x1ED7, 0x1ED7], [0x1ED9, 0x1ED9], [0x1EDB, 0x1EDB], [0x1EDD, 0x1EDD], [0x1EDF, 0x1EDF], [0x1EE1, 0x1EE1], [0x1EE3, 0x1EE3], [0x1EE5, 0x1EE5], [0x1EE7, 0x1EE7], [0x1EE9, 0x1EE9], [0x1EEB, 0x1EEB], [0x1EED, 0x1EED], [0x1EEF, 0x1EEF], [0x1EF1, 0x1EF1], [0x1EF3, 0x1EF3], [0x1EF5, 0x1EF5], [0x1EF7, 0x1EF7], [0x1EF9, 0x1EF9], [0x1F00, 0x1F07], [0x1F10, 0x1F15], [0x1F20, 0x1F27], [0x1F30, 0x1F37], [0x1F4
 0, 0x1F45], [0x1F50, 0x1F57], [0x1F60, 0x1F67], [0x1F70, 0x1F7D], [0x1F80, 0x1F87], [0x1F90, 0x1F97], [0x1FA0, 0x1FA7], [0x1FB0, 0x1FB4], [0x1FB6, 0x1FB7], [0x1FBE, 0x1FBE], [0x1FC2, 0x1FC4], [0x1FC6, 0x1FC7], [0x1FD0, 0x1FD3], [0x1FD6, 0x1FD7], [0x1FE0, 0x1FE7], [0x1FF2, 0x1FF4], [0x1FF6, 0x1FF7], [0x207F, 0x207F], [0x210A, 0x210A], [0x210E, 0x210F], [0x2113, 0x2113], [0x2118, 0x2118], [0x212E, 0x212F], [0x2134, 0x2134], [0xFB00, 0xFB06], [0xFB13, 0xFB17], [0xFF41, 0xFF5A]];
-Lt = [[0x01C5, 0x01C5], [0x01C8, 0x01C8], [0x01CB, 0x01CB], [0x01F2, 0x01F2]];
-Lm = [[0x02B0, 0x02B8], [0x02BB, 0x02C1], [0x02D0, 0x02D1], [0x02E0, 0x02E4], [0x037A, 0x037A], [0x0559, 0x0559], [0x0640, 0x0640], [0x06E5, 0x06E6], [0x0E46, 0x0E46], [0x0EC6, 0x0EC6], [0x3005, 0x3005], [0x3031, 0x3035], [0x309D, 0x309E], [0x30FC, 0x30FE], [0xFF70, 0xFF70], [0xFF9E, 0xFF9F]];
-Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
 0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
 x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-Nl = [[0x2160, 0x2182], [0x3007, 0x3007], [0x3021, 0x3029]];
-Mn = [[0x0300, 0x0345], [0x0360, 0x0361], [0x0483, 0x0486], [0x0591, 0x05A1], [0x05A3, 0x05B9], [0x05BB, 0x05BD], [0x05BF, 0x05BF], [0x05C1, 0x05C2], [0x05C4, 0x05C4], [0x064B, 0x0652], [0x0670, 0x0670], [0x06D6, 0x06DC], [0x06DF, 0x06E4], [0x06E7, 0x06E8], [0x06EA, 0x06ED], [0x0901, 0x0902], [0x093C, 0x093C], [0x0941, 0x0948], [0x094D, 0x094D], [0x0951, 0x0954], [0x0962, 0x0963], [0x0981, 0x0981], [0x09BC, 0x09BC], [0x09C1, 0x09C4], [0x09CD, 0x09CD], [0x09E2, 0x09E3], [0x0A02, 0x0A02], [0x0A3C, 0x0A3C], [0x0A41, 0x0A42], [0x0A47, 0x0A48], [0x0A4B, 0x0A4D], [0x0A70, 0x0A71], [0x0A81, 0x0A82], [0x0ABC, 0x0ABC], [0x0AC1, 0x0AC5], [0x0AC7, 0x0AC8], [0x0ACD, 0x0ACD], [0x0B01, 0x0B01], [0x0B3C, 0x0B3C], [0x0B3F, 0x0B3F], [0x0B41, 0x0B43], [0x0B4D, 0x0B4D], [0x0B56, 0x0B56], [0x0B82, 0x0B82], [0x0BC0, 0x0BC0], [0x0BCD, 0x0BCD], [0x0C3E, 0x0C40], [0x0C46, 0x0C48], [0x0C4A, 0x0C4D], [0x0C55, 0x0C56], [0x0CBF, 0x0CBF], [0x0CC6, 0x0CC6], [0x0CCC, 0x0CCD], [0x0D41, 0x0D43], [0x0D4D, 0x
 0D4D], [0x0E31, 0x0E31], [0x0E34, 0x0E3A], [0x0E47, 0x0E4E], [0x0EB1, 0x0EB1], [0x0EB4, 0x0EB9], [0x0EBB, 0x0EBC], [0x0EC8, 0x0ECD], [0x0F18, 0x0F19], [0x0F35, 0x0F35], [0x0F37, 0x0F37], [0x0F39, 0x0F39], [0x0F71, 0x0F7E], [0x0F80, 0x0F84], [0x0F86, 0x0F87], [0x0F90, 0x0F95], [0x0F97, 0x0F97], [0x0F99, 0x0FAD], [0x0FB1, 0x0FB7], [0x0FB9, 0x0FB9], [0x20D0, 0x20DC], [0x20E1, 0x20E1], [0x302A, 0x302F], [0x3099, 0x309A], [0xFB1E, 0xFB1E], [0xFE20, 0xFE23]];
-Mc = [[0x0903, 0x0903], [0x093E, 0x0940], [0x0949, 0x094C], [0x0982, 0x0983], [0x09BE, 0x09C0], [0x09C7, 0x09C8], [0x09CB, 0x09CC], [0x09D7, 0x09D7], [0x0A3E, 0x0A40], [0x0A83, 0x0A83], [0x0ABE, 0x0AC0], [0x0AC9, 0x0AC9], [0x0ACB, 0x0ACC], [0x0B02, 0x0B03], [0x0B3E, 0x0B3E], [0x0B40, 0x0B40], [0x0B47, 0x0B48], [0x0B4B, 0x0B4C], [0x0B57, 0x0B57], [0x0B83, 0x0B83], [0x0BBE, 0x0BBF], [0x0BC1, 0x0BC2], [0x0BC6, 0x0BC8], [0x0BCA, 0x0BCC], [0x0BD7, 0x0BD7], [0x0C01, 0x0C03], [0x0C41, 0x0C44], [0x0C82, 0x0C83], [0x0CBE, 0x0CBE], [0x0CC0, 0x0CC4], [0x0CC7, 0x0CC8], [0x0CCA, 0x0CCB], [0x0CD5, 0x0CD6], [0x0D02, 0x0D03], [0x0D3E, 0x0D40], [0x0D46, 0x0D48], [0x0D4A, 0x0D4C], [0x0D57, 0x0D57], [0x0F3E, 0x0F3F], [0x0F7F, 0x0F7F]];
-Nd = [[0x0030, 0x0039], [0x0660, 0x0669], [0x06F0, 0x06F9], [0x0966, 0x096F], [0x09E6, 0x09EF], [0x0A66, 0x0A6F], [0x0AE6, 0x0AEF], [0x0B66, 0x0B6F], [0x0BE7, 0x0BEF], [0x0C66, 0x0C6F], [0x0CE6, 0x0CEF], [0x0D66, 0x0D6F], [0x0E50, 0x0E59], [0x0ED0, 0x0ED9], [0x0F20, 0x0F29], [0xFF10, 0xFF19]];
-Pc = [[0x005F, 0x005F], [0x203F, 0x2040], [0x30FB, 0x30FB], [0xFE33, 0xFE34], [0xFE4D, 0xFE4F], [0xFF3F, 0xFF3F], [0xFF65, 0xFF65]];
-
-UnicodeLetterLu = [];
-UnicodeLetterLl = [];
-UnicodeLetterLt = [];
-UnicodeLetterLm = [];
-UnicodeLetterLo = [];
-UnicodeLetterNl = [];
-UnicodeLetterMn = [];
-UnicodeLetterMc = [];
-UnicodeLetterNd = [];
-UnicodeLetterPc = [];
-
-for (indexI = 0; indexI &lt; Lu.length; indexI++) {
-  for (indexJ = Lu[indexI][0]; indexJ &lt;= Lu[indexI][1]; indexJ++) {
-    UnicodeLetterLu[indexJ] = true;
-  }
-}
-for (indexI = 0; indexI &lt; Ll.length; indexI++) {
-  for (indexJ = Ll[indexI][0]; indexJ &lt;= Ll[indexI][1]; indexJ++) {
-    UnicodeLetterLl[indexJ] = true;
-  }
-}  
-for (indexI = 0; indexI &lt; Lt.length; indexI++) {
-  for (indexJ = Lt[indexI][0]; indexJ &lt;= Lt[indexI][1]; indexJ++) {
-    UnicodeLetterLt[indexJ] = true;
-  }
-}
-for (indexI = 0; indexI &lt; Lm.length; indexI++) {
-  for (indexJ = Lm[indexI][0]; indexJ &lt;= Lm[indexI][1]; indexJ++) {
-    UnicodeLetterLm[indexJ] = true;
-  }
-}
-for (indexI = 0; indexI &lt; Lo.length; indexI++) {
-  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
-    UnicodeLetterLo[indexJ] = true;
-  }
-}
-for (indexI = 0; indexI &lt; Nl.length; indexI++) {
-  for (indexJ = Nl[indexI][0]; indexJ &lt;= Nl[indexI][1]; indexJ++) {
-    UnicodeLetterNl[indexJ] = true;
-  }
-}
-for (indexI = 0; indexI &lt; Mn.length; indexI++) {
-  for (indexJ = Mn[indexI][0]; indexJ &lt;= Mn[indexI][1]; indexJ++) {
-    UnicodeLetterMn[indexJ] = true;
-  }
-}
-for (indexI = 0; indexI &lt; Mc.length; indexI++) {
-  for (indexJ = Mc[indexI][0]; indexJ &lt;= Mc[indexI][1]; indexJ++) {
-    UnicodeLetterMc[indexJ] = true;
-  }
-}
-for (indexI = 0; indexI &lt; Nd.length; indexI++) {
-  for (indexJ = Nd[indexI][0]; indexJ &lt;= Nd[indexI][1]; indexJ++) {
-    UnicodeLetterNd[indexJ] = true;
-  }
-}
-for (indexI = 0; indexI &lt; Pc.length; indexI++) {
-  for (indexJ = Pc[indexI][0]; indexJ &lt;= Pc[indexI][1]; indexJ++) {
-    UnicodeLetterPc[indexJ] = true;
-  }
-}
-
-errorCount = 0;
-count = 0;
-var indexP;
-var indexO = 0;
-for (index = 0; index &lt;= 65535; index++) {  
-  if ((UnicodeLetterLu[index] === undefined) &amp;&amp; (UnicodeLetterLl[index] === undefined) &amp;&amp; (UnicodeLetterLt[index] === undefined) &amp;&amp; (UnicodeLetterLm[index] === undefined) &amp;&amp; (UnicodeLetterLo[index] === undefined) &amp;&amp; (UnicodeLetterNl[index] === undefined) &amp;&amp; (UnicodeLetterMn[index] === undefined) &amp;&amp; (UnicodeLetterMc[index] === undefined) &amp;&amp; (UnicodeLetterNd[index] === undefined) &amp;&amp; (UnicodeLetterPc[index] === undefined) &amp;&amp; (index !== 0x0024) &amp;&amp; (index !== 0x005F)) {   
-    try {
-      var identifier = &quot;$&quot; + String.fromCharCode(index) + &quot;1&quot;;    
-      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
-      if (indexO === 0) { 
-        indexO = index;
-      } else {
-        if ((index - indexP) !== 1) {             
-          if ((indexP - indexO) !== 0) {
-            var hexP = decimalToHexString(indexP);
-            var hexO = decimalToHexString(indexO);
-            testFailed('#' + hexO + '-' + hexP + ' ');
-          } 
-          else {
-            var hexP = decimalToHexString(indexP);
-            testFailed('#' + hexP + ' ');
-          }  
-          indexO = index;
-        }         
-      }
-      indexP = index;
-      errorCount++;    
-    } catch (e) {      
-    }
-    count++;
-  }  
-}
-
-if (errorCount &gt; 0) {
-  if ((indexP - indexO) !== 0) {
-    var hexP = decimalToHexString(indexP);
-    var hexO = decimalToHexString(indexO);
-    testFailed('#' + hexO + '-' + hexP + ' ');
-  } else {
-    var hexP = decimalToHexString(indexP);
-    testFailed('#' + hexP + ' ');
-  }     
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 3; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A32htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_218S76_A32htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,207 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S7.6_A3.2&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S7.6_A3.2;
+ * @section: 7.6;
+ * @assertion: IdentifierName must begin only IdentifierStart character;
+ * @description: Complex test with eval; 
+*/
+
+//CHECK
+Lu = [[0x0041, 0x005A], [0x00C0, 0x00D6], [0x00D8, 0x00DE], [0x0100, 0x0100], [0x0102, 0x0102], [0x0104, 0x0104], [0x0106, 0x0106], [0x0108, 0x0108], [0x010A, 0x010A], [0x010C, 0x010C], [0x010E, 0x010E], [0x0110, 0x0110], [0x0112, 0x0112], [0x0114, 0x0114], [0x0116, 0x0116], [0x0118, 0x0118], [0x011A, 0x011A], [0x011C, 0x011C], [0x011E, 0x011E], [0x0120, 0x0120], [0x0122, 0x0122], [0x0124, 0x0124], [0x0126, 0x0126], [0x0128, 0x0128], [0x012A, 0x012A], [0x012C, 0x012C], [0x012E, 0x012E], [0x0130, 0x0130], [0x0132, 0x0132], [0x0134, 0x0134], [0x0136, 0x0136], [0x0139, 0x0139], [0x013B, 0x013B], [0x013D, 0x013D], [0x013F, 0x013F], [0x0141, 0x0141], [0x0143, 0x0143], [0x0145, 0x0145], [0x0147, 0x0147], [0x014A, 0x014A], [0x014C, 0x014C], [0x014E, 0x014E], [0x0150, 0x0150], [0x0152, 0x0152], [0x0154, 0x0154], [0x0156, 0x0156], [0x0158, 0x0158], [0x015A, 0x015A], [0x015C, 0x015C], [0x015E, 0x015E], [0x0160, 0x0160], [0x0162, 0x0162], [0x0164, 0x0164], [0x0166, 0x0166], [0x0168, 0x
 0168], [0x016A, 0x016A], [0x016C, 0x016C], [0x016E, 0x016E], [0x0170, 0x0170], [0x0172, 0x0172], [0x0174, 0x0174], [0x0176, 0x0176], [0x0178, 0x0179], [0x017B, 0x017B], [0x017D, 0x017D], [0x0181, 0x0182], [0x0184, 0x0184], [0x0186, 0x0187], [0x0189, 0x018B], [0x018E, 0x0191], [0x0193, 0x0194], [0x0196, 0x0198], [0x019C, 0x019D], [0x019F, 0x01A0], [0x01A2, 0x01A2], [0x01A4, 0x01A4], [0x01A6, 0x01A7], [0x01A9, 0x01A9], [0x01AC, 0x01AC], [0x01AE, 0x01AF], [0x01B1, 0x01B3], [0x01B5, 0x01B5], [0x01B7, 0x01B8], [0x01BC, 0x01BC], [0x01C4, 0x01C4], [0x01C7, 0x01C7], [0x01CA, 0x01CA], [0x01CD, 0x01CD], [0x01CF, 0x01CF], [0x01D1, 0x01D1], [0x01D3, 0x01D3], [0x01D5, 0x01D5], [0x01D7, 0x01D7], [0x01D9, 0x01D9], [0x01DB, 0x01DB], [0x01DE, 0x01DE], [0x01E0, 0x01E0], [0x01E2, 0x01E2], [0x01E4, 0x01E4], [0x01E6, 0x01E6], [0x01E8, 0x01E8], [0x01EA, 0x01EA], [0x01EC, 0x01EC], [0x01EE, 0x01EE], [0x01F1, 0x01F1], [0x01F4, 0x01F4], [0x01FA, 0x01FA], [0x01FC, 0x01FC], [0x01FE, 0x01FE], [0x0200, 0
 x0200], [0x0202, 0x0202], [0x0204, 0x0204], [0x0206, 0x0206], [0x0208, 0x0208], [0x020A, 0x020A], [0x020C, 0x020C], [0x020E, 0x020E], [0x0210, 0x0210], [0x0212, 0x0212], [0x0214, 0x0214], [0x0216, 0x0216], [0x0386, 0x0386], [0x0388, 0x038A], [0x038C, 0x038C], [0x038E, 0x038F], [0x0391, 0x03A1], [0x03A3, 0x03AB], [0x03D2, 0x03D4], [0x03DA, 0x03DA], [0x03DC, 0x03DC], [0x03DE, 0x03DE], [0x03E0, 0x03E0], [0x03E2, 0x03E2], [0x03E4, 0x03E4], [0x03E6, 0x03E6], [0x03E8, 0x03E8], [0x03EA, 0x03EA], [0x03EC, 0x03EC], [0x03EE, 0x03EE], [0x0401, 0x040C], [0x040E, 0x042F], [0x0460, 0x0460], [0x0462, 0x0462], [0x0464, 0x0464], [0x0466, 0x0466], [0x0468, 0x0468], [0x046A, 0x046A], [0x046C, 0x046C], [0x046E, 0x046E], [0x0470, 0x0470], [0x0472, 0x0472], [0x0474, 0x0474], [0x0476, 0x0476], [0x0478, 0x0478], [0x047A, 0x047A], [0x047C, 0x047C], [0x047E, 0x047E], [0x0480, 0x0480], [0x0490, 0x0490], [0x0492, 0x0492], [0x0494, 0x0494], [0x0496, 0x0496], [0x0498, 0x0498], [0x049A, 0x049A], [0x049C, 
 0x049C], [0x049E, 0x049E], [0x04A0, 0x04A0], [0x04A2, 0x04A2], [0x04A4, 0x04A4], [0x04A6, 0x04A6], [0x04A8, 0x04A8], [0x04AA, 0x04AA], [0x04AC, 0x04AC], [0x04AE, 0x04AE], [0x04B0, 0x04B0], [0x04B2, 0x04B2], [0x04B4, 0x04B4], [0x04B6, 0x04B6], [0x04B8, 0x04B8], [0x04BA, 0x04BA], [0x04BC, 0x04BC], [0x04BE, 0x04BE], [0x04C1, 0x04C1], [0x04C3, 0x04C3], [0x04C7, 0x04C7], [0x04CB, 0x04CB], [0x04D0, 0x04D0], [0x04D2, 0x04D2], [0x04D4, 0x04D4], [0x04D6, 0x04D6], [0x04D8, 0x04D8], [0x04DA, 0x04DA], [0x04DC, 0x04DC], [0x04DE, 0x04DE], [0x04E0, 0x04E0], [0x04E2, 0x04E2], [0x04E4, 0x04E4], [0x04E6, 0x04E6], [0x04E8, 0x04E8], [0x04EA, 0x04EA], [0x04EE, 0x04EE], [0x04F0, 0x04F0], [0x04F2, 0x04F2], [0x04F4, 0x04F4], [0x04F8, 0x04F8], [0x0531, 0x0556], [0x10A0, 0x10C5], [0x1E00, 0x1E00], [0x1E02, 0x1E02], [0x1E04, 0x1E04], [0x1E06, 0x1E06], [0x1E08, 0x1E08], [0x1E0A, 0x1E0A], [0x1E0C, 0x1E0C], [0x1E0E, 0x1E0E], [0x1E10, 0x1E10], [0x1E12, 0x1E12], [0x1E14, 0x1E14], [0x1E16, 0x1E16], [0x1E18,
  0x1E18], [0x1E1A, 0x1E1A], [0x1E1C, 0x1E1C], [0x1E1E, 0x1E1E], [0x1E20, 0x1E20], [0x1E22, 0x1E22], [0x1E24, 0x1E24], [0x1E26, 0x1E26], [0x1E28, 0x1E28], [0x1E2A, 0x1E2A], [0x1E2C, 0x1E2C], [0x1E2E, 0x1E2E], [0x1E30, 0x1E30], [0x1E32, 0x1E32], [0x1E34, 0x1E34], [0x1E36, 0x1E36], [0x1E38, 0x1E38], [0x1E3A, 0x1E3A], [0x1E3C, 0x1E3C], [0x1E3E, 0x1E3E], [0x1E40, 0x1E40], [0x1E42, 0x1E42], [0x1E44, 0x1E44], [0x1E46, 0x1E46], [0x1E48, 0x1E48], [0x1E4A, 0x1E4A], [0x1E4C, 0x1E4C], [0x1E4E, 0x1E4E], [0x1E50, 0x1E50], [0x1E52, 0x1E52], [0x1E54, 0x1E54], [0x1E56, 0x1E56], [0x1E58, 0x1E58], [0x1E5A, 0x1E5A], [0x1E5C, 0x1E5C], [0x1E5E, 0x1E5E], [0x1E60, 0x1E60], [0x1E62, 0x1E62], [0x1E64, 0x1E64], [0x1E66, 0x1E66], [0x1E68, 0x1E68], [0x1E6A, 0x1E6A], [0x1E6C, 0x1E6C], [0x1E6E, 0x1E6E], [0x1E70, 0x1E70], [0x1E72, 0x1E72], [0x1E74, 0x1E74], [0x1E76, 0x1E76], [0x1E78, 0x1E78], [0x1E7A, 0x1E7A], [0x1E7C, 0x1E7C], [0x1E7E, 0x1E7E], [0x1E80, 0x1E80], [0x1E82, 0x1E82], [0x1E84, 0x1E84], [0x1E86
 , 0x1E86], [0x1E88, 0x1E88], [0x1E8A, 0x1E8A], [0x1E8C, 0x1E8C], [0x1E8E, 0x1E8E], [0x1E90, 0x1E90], [0x1E92, 0x1E92], [0x1E94, 0x1E94], [0x1EA0, 0x1EA0], [0x1EA2, 0x1EA2], [0x1EA4, 0x1EA4], [0x1EA6, 0x1EA6], [0x1EA8, 0x1EA8], [0x1EAA, 0x1EAA], [0x1EAC, 0x1EAC], [0x1EAE, 0x1EAE], [0x1EB0, 0x1EB0], [0x1EB2, 0x1EB2], [0x1EB4, 0x1EB4], [0x1EB6, 0x1EB6], [0x1EB8, 0x1EB8], [0x1EBA, 0x1EBA], [0x1EBC, 0x1EBC], [0x1EBE, 0x1EBE], [0x1EC0, 0x1EC0], [0x1EC2, 0x1EC2], [0x1EC4, 0x1EC4], [0x1EC6, 0x1EC6], [0x1EC8, 0x1EC8], [0x1ECA, 0x1ECA], [0x1ECC, 0x1ECC], [0x1ECE, 0x1ECE], [0x1ED0, 0x1ED0], [0x1ED2, 0x1ED2], [0x1ED4, 0x1ED4], [0x1ED6, 0x1ED6], [0x1ED8, 0x1ED8], [0x1EDA, 0x1EDA], [0x1EDC, 0x1EDC], [0x1EDE, 0x1EDE], [0x1EE0, 0x1EE0], [0x1EE2, 0x1EE2], [0x1EE4, 0x1EE4], [0x1EE6, 0x1EE6], [0x1EE8, 0x1EE8], [0x1EEA, 0x1EEA], [0x1EEC, 0x1EEC], [0x1EEE, 0x1EEE], [0x1EF0, 0x1EF0], [0x1EF2, 0x1EF2], [0x1EF4, 0x1EF4], [0x1EF6, 0x1EF6], [0x1EF8, 0x1EF8], [0x1F08, 0x1F0F], [0x1F18, 0x1F1D], [0x1F2
 8, 0x1F2F], [0x1F38, 0x1F3F], [0x1F48, 0x1F4D], [0x1F59, 0x1F59], [0x1F5B, 0x1F5B], [0x1F5D, 0x1F5D], [0x1F5F, 0x1F5F], [0x1F68, 0x1F6F], [0x1F88, 0x1F8F], [0x1F98, 0x1F9F], [0x1FA8, 0x1FAF], [0x1FB8, 0x1FBC], [0x1FC8, 0x1FCC], [0x1FD8, 0x1FDB], [0x1FE8, 0x1FEC], [0x1FF8, 0x1FFC], [0x2102, 0x2102], [0x2107, 0x2107], [0x210B, 0x210D], [0x2110, 0x2112], [0x2115, 0x2115], [0x2119, 0x211D], [0x2124, 0x2124], [0x2126, 0x2126], [0x2128, 0x2128], [0x212A, 0x212D], [0x2130, 0x2131], [0x2133, 0x2133], [0xFF21, 0xFF3A]];
+Ll = [[0x0061, 0x007A], [0x00AA, 0x00AA], [0x00B5, 0x00B5], [0x00BA, 0x00BA], [0x00DF, 0x00F6], [0x00F8, 0x00FF], [0x0101, 0x0101], [0x0103, 0x0103], [0x0105, 0x0105], [0x0107, 0x0107], [0x0109, 0x0109], [0x010B, 0x010B], [0x010D, 0x010D], [0x010F, 0x010F], [0x0111, 0x0111], [0x0113, 0x0113], [0x0115, 0x0115], [0x0117, 0x0117], [0x0119, 0x0119], [0x011B, 0x011B], [0x011D, 0x011D], [0x011F, 0x011F], [0x0121, 0x0121], [0x0123, 0x0123], [0x0125, 0x0125], [0x0127, 0x0127], [0x0129, 0x0129], [0x012B, 0x012B], [0x012D, 0x012D], [0x012F, 0x012F], [0x0131, 0x0131], [0x0133, 0x0133], [0x0135, 0x0135], [0x0137, 0x0138], [0x013A, 0x013A], [0x013C, 0x013C], [0x013E, 0x013E], [0x0140, 0x0140], [0x0142, 0x0142], [0x0144, 0x0144], [0x0146, 0x0146], [0x0148, 0x0149], [0x014B, 0x014B], [0x014D, 0x014D], [0x014F, 0x014F], [0x0151, 0x0151], [0x0153, 0x0153], [0x0155, 0x0155], [0x0157, 0x0157], [0x0159, 0x0159], [0x015B, 0x015B], [0x015D, 0x015D], [0x015F, 0x015F], [0x0161, 0x0161], [0x0163, 0x
 0163], [0x0165, 0x0165], [0x0167, 0x0167], [0x0169, 0x0169], [0x016B, 0x016B], [0x016D, 0x016D], [0x016F, 0x016F], [0x0171, 0x0171], [0x0173, 0x0173], [0x0175, 0x0175], [0x0177, 0x0177], [0x017A, 0x017A], [0x017C, 0x017C], [0x017E, 0x0180], [0x0183, 0x0183], [0x0185, 0x0185], [0x0188, 0x0188], [0x018C, 0x018D], [0x0192, 0x0192], [0x0195, 0x0195], [0x0199, 0x019B], [0x019E, 0x019E], [0x01A1, 0x01A1], [0x01A3, 0x01A3], [0x01A5, 0x01A5], [0x01A8, 0x01A8], [0x01AB, 0x01AB], [0x01AD, 0x01AD], [0x01B0, 0x01B0], [0x01B4, 0x01B4], [0x01B6, 0x01B6], [0x01B9, 0x01BA], [0x01BD, 0x01BD], [0x01C6, 0x01C6], [0x01C9, 0x01C9], [0x01CC, 0x01CC], [0x01CE, 0x01CE], [0x01D0, 0x01D0], [0x01D2, 0x01D2], [0x01D4, 0x01D4], [0x01D6, 0x01D6], [0x01D8, 0x01D8], [0x01DA, 0x01DA], [0x01DC, 0x01DD], [0x01DF, 0x01DF], [0x01E1, 0x01E1], [0x01E3, 0x01E3], [0x01E5, 0x01E5], [0x01E7, 0x01E7], [0x01E9, 0x01E9], [0x01EB, 0x01EB], [0x01ED, 0x01ED], [0x01EF, 0x01F0], [0x01F3, 0x01F3], [0x01F5, 0x01F5], [0x01FB, 0
 x01FB], [0x01FD, 0x01FD], [0x01FF, 0x01FF], [0x0201, 0x0201], [0x0203, 0x0203], [0x0205, 0x0205], [0x0207, 0x0207], [0x0209, 0x0209], [0x020B, 0x020B], [0x020D, 0x020D], [0x020F, 0x020F], [0x0211, 0x0211], [0x0213, 0x0213], [0x0215, 0x0215], [0x0217, 0x0217], [0x0250, 0x02A8], [0x0390, 0x0390], [0x03AC, 0x03CE], [0x03D0, 0x03D1], [0x03D5, 0x03D6], [0x03E3, 0x03E3], [0x03E5, 0x03E5], [0x03E7, 0x03E7], [0x03E9, 0x03E9], [0x03EB, 0x03EB], [0x03ED, 0x03ED], [0x03EF, 0x03F2], [0x0430, 0x044F], [0x0451, 0x045C], [0x045E, 0x045F], [0x0461, 0x0461], [0x0463, 0x0463], [0x0465, 0x0465], [0x0467, 0x0467], [0x0469, 0x0469], [0x046B, 0x046B], [0x046D, 0x046D], [0x046F, 0x046F], [0x0471, 0x0471], [0x0473, 0x0473], [0x0475, 0x0475], [0x0477, 0x0477], [0x0479, 0x0479], [0x047B, 0x047B], [0x047D, 0x047D], [0x047F, 0x047F], [0x0481, 0x0481], [0x0491, 0x0491], [0x0493, 0x0493], [0x0495, 0x0495], [0x0497, 0x0497], [0x0499, 0x0499], [0x049B, 0x049B], [0x049D, 0x049D], [0x049F, 0x049F], [0x04A1, 
 0x04A1], [0x04A3, 0x04A3], [0x04A5, 0x04A5], [0x04A7, 0x04A7], [0x04A9, 0x04A9], [0x04AB, 0x04AB], [0x04AD, 0x04AD], [0x04AF, 0x04AF], [0x04B1, 0x04B1], [0x04B3, 0x04B3], [0x04B5, 0x04B5], [0x04B7, 0x04B7], [0x04B9, 0x04B9], [0x04BB, 0x04BB], [0x04BD, 0x04BD], [0x04BF, 0x04BF], [0x04C2, 0x04C2], [0x04C4, 0x04C4], [0x04C8, 0x04C8], [0x04CC, 0x04CC], [0x04D1, 0x04D1], [0x04D3, 0x04D3], [0x04D5, 0x04D5], [0x04D7, 0x04D7], [0x04D9, 0x04D9], [0x04DB, 0x04DB], [0x04DD, 0x04DD], [0x04DF, 0x04DF], [0x04E1, 0x04E1], [0x04E3, 0x04E3], [0x04E5, 0x04E5], [0x04E7, 0x04E7], [0x04E9, 0x04E9], [0x04EB, 0x04EB], [0x04EF, 0x04EF], [0x04F1, 0x04F1], [0x04F3, 0x04F3], [0x04F5, 0x04F5], [0x04F9, 0x04F9], [0x0561, 0x0587], [0x10D0, 0x10F6], [0x1E01, 0x1E01], [0x1E03, 0x1E03], [0x1E05, 0x1E05], [0x1E07, 0x1E07], [0x1E09, 0x1E09], [0x1E0B, 0x1E0B], [0x1E0D, 0x1E0D], [0x1E0F, 0x1E0F], [0x1E11, 0x1E11], [0x1E13, 0x1E13], [0x1E15, 0x1E15], [0x1E17, 0x1E17], [0x1E19, 0x1E19], [0x1E1B, 0x1E1B], [0x1E1D,
  0x1E1D], [0x1E1F, 0x1E1F], [0x1E21, 0x1E21], [0x1E23, 0x1E23], [0x1E25, 0x1E25], [0x1E27, 0x1E27], [0x1E29, 0x1E29], [0x1E2B, 0x1E2B], [0x1E2D, 0x1E2D], [0x1E2F, 0x1E2F], [0x1E31, 0x1E31], [0x1E33, 0x1E33], [0x1E35, 0x1E35], [0x1E37, 0x1E37], [0x1E39, 0x1E39], [0x1E3B, 0x1E3B], [0x1E3D, 0x1E3D], [0x1E3F, 0x1E3F], [0x1E41, 0x1E41], [0x1E43, 0x1E43], [0x1E45, 0x1E45], [0x1E47, 0x1E47], [0x1E49, 0x1E49], [0x1E4B, 0x1E4B], [0x1E4D, 0x1E4D], [0x1E4F, 0x1E4F], [0x1E51, 0x1E51], [0x1E53, 0x1E53], [0x1E55, 0x1E55], [0x1E57, 0x1E57], [0x1E59, 0x1E59], [0x1E5B, 0x1E5B], [0x1E5D, 0x1E5D], [0x1E5F, 0x1E5F], [0x1E61, 0x1E61], [0x1E63, 0x1E63], [0x1E65, 0x1E65], [0x1E67, 0x1E67], [0x1E69, 0x1E69], [0x1E6B, 0x1E6B], [0x1E6D, 0x1E6D], [0x1E6F, 0x1E6F], [0x1E71, 0x1E71], [0x1E73, 0x1E73], [0x1E75, 0x1E75], [0x1E77, 0x1E77], [0x1E79, 0x1E79], [0x1E7B, 0x1E7B], [0x1E7D, 0x1E7D], [0x1E7F, 0x1E7F], [0x1E81, 0x1E81], [0x1E83, 0x1E83], [0x1E85, 0x1E85], [0x1E87, 0x1E87], [0x1E89, 0x1E89], [0x1E8B
 , 0x1E8B], [0x1E8D, 0x1E8D], [0x1E8F, 0x1E8F], [0x1E91, 0x1E91], [0x1E93, 0x1E93], [0x1E95, 0x1E9B], [0x1EA1, 0x1EA1], [0x1EA3, 0x1EA3], [0x1EA5, 0x1EA5], [0x1EA7, 0x1EA7], [0x1EA9, 0x1EA9], [0x1EAB, 0x1EAB], [0x1EAD, 0x1EAD], [0x1EAF, 0x1EAF], [0x1EB1, 0x1EB1], [0x1EB3, 0x1EB3], [0x1EB5, 0x1EB5], [0x1EB7, 0x1EB7], [0x1EB9, 0x1EB9], [0x1EBB, 0x1EBB], [0x1EBD, 0x1EBD], [0x1EBF, 0x1EBF], [0x1EC1, 0x1EC1], [0x1EC3, 0x1EC3], [0x1EC5, 0x1EC5], [0x1EC7, 0x1EC7], [0x1EC9, 0x1EC9], [0x1ECB, 0x1ECB], [0x1ECD, 0x1ECD], [0x1ECF, 0x1ECF], [0x1ED1, 0x1ED1], [0x1ED3, 0x1ED3], [0x1ED5, 0x1ED5], [0x1ED7, 0x1ED7], [0x1ED9, 0x1ED9], [0x1EDB, 0x1EDB], [0x1EDD, 0x1EDD], [0x1EDF, 0x1EDF], [0x1EE1, 0x1EE1], [0x1EE3, 0x1EE3], [0x1EE5, 0x1EE5], [0x1EE7, 0x1EE7], [0x1EE9, 0x1EE9], [0x1EEB, 0x1EEB], [0x1EED, 0x1EED], [0x1EEF, 0x1EEF], [0x1EF1, 0x1EF1], [0x1EF3, 0x1EF3], [0x1EF5, 0x1EF5], [0x1EF7, 0x1EF7], [0x1EF9, 0x1EF9], [0x1F00, 0x1F07], [0x1F10, 0x1F15], [0x1F20, 0x1F27], [0x1F30, 0x1F37], [0x1F4
 0, 0x1F45], [0x1F50, 0x1F57], [0x1F60, 0x1F67], [0x1F70, 0x1F7D], [0x1F80, 0x1F87], [0x1F90, 0x1F97], [0x1FA0, 0x1FA7], [0x1FB0, 0x1FB4], [0x1FB6, 0x1FB7], [0x1FBE, 0x1FBE], [0x1FC2, 0x1FC4], [0x1FC6, 0x1FC7], [0x1FD0, 0x1FD3], [0x1FD6, 0x1FD7], [0x1FE0, 0x1FE7], [0x1FF2, 0x1FF4], [0x1FF6, 0x1FF7], [0x207F, 0x207F], [0x210A, 0x210A], [0x210E, 0x210F], [0x2113, 0x2113], [0x2118, 0x2118], [0x212E, 0x212F], [0x2134, 0x2134], [0xFB00, 0xFB06], [0xFB13, 0xFB17], [0xFF41, 0xFF5A]];
+Lt = [[0x01C5, 0x01C5], [0x01C8, 0x01C8], [0x01CB, 0x01CB], [0x01F2, 0x01F2]];
+Lm = [[0x02B0, 0x02B8], [0x02BB, 0x02C1], [0x02D0, 0x02D1], [0x02E0, 0x02E4], [0x037A, 0x037A], [0x0559, 0x0559], [0x0640, 0x0640], [0x06E5, 0x06E6], [0x0E46, 0x0E46], [0x0EC6, 0x0EC6], [0x3005, 0x3005], [0x3031, 0x3035], [0x309D, 0x309E], [0x30FC, 0x30FE], [0xFF70, 0xFF70], [0xFF9E, 0xFF9F]];
+Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
 0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
 x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+Nl = [[0x2160, 0x2182], [0x3007, 0x3007], [0x3021, 0x3029]];
+
+UnicodeLetterLu = [];
+UnicodeLetterLl = [];
+UnicodeLetterLt = [];
+UnicodeLetterLm = [];
+UnicodeLetterLo = [];
+UnicodeLetterNl = [];
+
+for (indexI = 0; indexI &lt; Lu.length; indexI++) {
+  for (indexJ = Lu[indexI][0]; indexJ &lt;= Lu[indexI][1]; indexJ++) {
+    UnicodeLetterLu[indexJ] = true;
+  }
+}
+for (indexI = 0; indexI &lt; Ll.length; indexI++) {
+  for (indexJ = Ll[indexI][0]; indexJ &lt;= Ll[indexI][1]; indexJ++) {
+    UnicodeLetterLl[indexJ] = true;
+  }
+}  
+for (indexI = 0; indexI &lt; Lt.length; indexI++) {
+  for (indexJ = Lt[indexI][0]; indexJ &lt;= Lt[indexI][1]; indexJ++) {
+    UnicodeLetterLt[indexJ] = true;
+  }
+}
+for (indexI = 0; indexI &lt; Lm.length; indexI++) {
+  for (indexJ = Lm[indexI][0]; indexJ &lt;= Lm[indexI][1]; indexJ++) {
+    UnicodeLetterLm[indexJ] = true;
+  }
+}
+for (indexI = 0; indexI &lt; Lo.length; indexI++) {
+  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
+    UnicodeLetterLo[indexJ] = true;
+  }
+}
+for (indexI = 0; indexI &lt; Nl.length; indexI++) {
+  for (indexJ = Nl[indexI][0]; indexJ &lt;= Nl[indexI][1]; indexJ++) {
+    UnicodeLetterNl[indexJ] = true;
+  }
+}
+
+errorCount = 0;
+count = 0;
+var indexP;
+var indexO = 0;
+for (index = 0; index &lt;= 65535; index++) {  
+  if ((UnicodeLetterLu[index] === undefined) &amp;&amp; (UnicodeLetterLl[index] === undefined) &amp;&amp; (UnicodeLetterLt[index] === undefined) &amp;&amp; (UnicodeLetterLm[index] === undefined) &amp;&amp; (UnicodeLetterLo[index] === undefined) &amp;&amp; (UnicodeLetterNl[index] === undefined) &amp;&amp; (index !== 0x0024)  &amp;&amp; (index !== 0x005F)) {   
+    try {
+      var identifier = String.fromCharCode(index);    
+      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
+      if (errorCount === 0) { 
+        indexO = index; 
+      } else {
+        if ((index - indexP) !== 1) {             
+          if ((indexP - indexO) !== 0) {
+            var hexP = decimalToHexString(indexP);
+            var hexO = decimalToHexString(indexO);
+            testFailed('#' + hexO + '-' + hexP + ' ');
+          } 
+          else {
+            var hexP = decimalToHexString(indexP);
+            testFailed('#' + hexP + ' ');
+          }  
+          indexO = index;
+        }         
+      }
+      indexP = index;
+      errorCount++;    
+    } catch (e) {      
+    }
+    count++;
+  }  
+}
+
+if (errorCount &gt; 0) {
+  if ((indexP - indexO) !== 0) {
+    var hexP = decimalToHexString(indexP);
+    var hexO = decimalToHexString(indexO);
+    testFailed('#' + hexO + '-' + hexP + ' ');
+  } else {
+    var hexP = decimalToHexString(indexP);
+    testFailed('#' + hexP + ' ');
+  }     
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 3; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A32htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A3.2.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,207 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S7.6_A3.2&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S7.6_A3.2;
- * @section: 7.6;
- * @assertion: IdentifierName must begin only IdentifierStart character;
- * @description: Complex test with eval; 
-*/
-
-//CHECK
-Lu = [[0x0041, 0x005A], [0x00C0, 0x00D6], [0x00D8, 0x00DE], [0x0100, 0x0100], [0x0102, 0x0102], [0x0104, 0x0104], [0x0106, 0x0106], [0x0108, 0x0108], [0x010A, 0x010A], [0x010C, 0x010C], [0x010E, 0x010E], [0x0110, 0x0110], [0x0112, 0x0112], [0x0114, 0x0114], [0x0116, 0x0116], [0x0118, 0x0118], [0x011A, 0x011A], [0x011C, 0x011C], [0x011E, 0x011E], [0x0120, 0x0120], [0x0122, 0x0122], [0x0124, 0x0124], [0x0126, 0x0126], [0x0128, 0x0128], [0x012A, 0x012A], [0x012C, 0x012C], [0x012E, 0x012E], [0x0130, 0x0130], [0x0132, 0x0132], [0x0134, 0x0134], [0x0136, 0x0136], [0x0139, 0x0139], [0x013B, 0x013B], [0x013D, 0x013D], [0x013F, 0x013F], [0x0141, 0x0141], [0x0143, 0x0143], [0x0145, 0x0145], [0x0147, 0x0147], [0x014A, 0x014A], [0x014C, 0x014C], [0x014E, 0x014E], [0x0150, 0x0150], [0x0152, 0x0152], [0x0154, 0x0154], [0x0156, 0x0156], [0x0158, 0x0158], [0x015A, 0x015A], [0x015C, 0x015C], [0x015E, 0x015E], [0x0160, 0x0160], [0x0162, 0x0162], [0x0164, 0x0164], [0x0166, 0x0166], [0x0168, 0x
 0168], [0x016A, 0x016A], [0x016C, 0x016C], [0x016E, 0x016E], [0x0170, 0x0170], [0x0172, 0x0172], [0x0174, 0x0174], [0x0176, 0x0176], [0x0178, 0x0179], [0x017B, 0x017B], [0x017D, 0x017D], [0x0181, 0x0182], [0x0184, 0x0184], [0x0186, 0x0187], [0x0189, 0x018B], [0x018E, 0x0191], [0x0193, 0x0194], [0x0196, 0x0198], [0x019C, 0x019D], [0x019F, 0x01A0], [0x01A2, 0x01A2], [0x01A4, 0x01A4], [0x01A6, 0x01A7], [0x01A9, 0x01A9], [0x01AC, 0x01AC], [0x01AE, 0x01AF], [0x01B1, 0x01B3], [0x01B5, 0x01B5], [0x01B7, 0x01B8], [0x01BC, 0x01BC], [0x01C4, 0x01C4], [0x01C7, 0x01C7], [0x01CA, 0x01CA], [0x01CD, 0x01CD], [0x01CF, 0x01CF], [0x01D1, 0x01D1], [0x01D3, 0x01D3], [0x01D5, 0x01D5], [0x01D7, 0x01D7], [0x01D9, 0x01D9], [0x01DB, 0x01DB], [0x01DE, 0x01DE], [0x01E0, 0x01E0], [0x01E2, 0x01E2], [0x01E4, 0x01E4], [0x01E6, 0x01E6], [0x01E8, 0x01E8], [0x01EA, 0x01EA], [0x01EC, 0x01EC], [0x01EE, 0x01EE], [0x01F1, 0x01F1], [0x01F4, 0x01F4], [0x01FA, 0x01FA], [0x01FC, 0x01FC], [0x01FE, 0x01FE], [0x0200, 0
 x0200], [0x0202, 0x0202], [0x0204, 0x0204], [0x0206, 0x0206], [0x0208, 0x0208], [0x020A, 0x020A], [0x020C, 0x020C], [0x020E, 0x020E], [0x0210, 0x0210], [0x0212, 0x0212], [0x0214, 0x0214], [0x0216, 0x0216], [0x0386, 0x0386], [0x0388, 0x038A], [0x038C, 0x038C], [0x038E, 0x038F], [0x0391, 0x03A1], [0x03A3, 0x03AB], [0x03D2, 0x03D4], [0x03DA, 0x03DA], [0x03DC, 0x03DC], [0x03DE, 0x03DE], [0x03E0, 0x03E0], [0x03E2, 0x03E2], [0x03E4, 0x03E4], [0x03E6, 0x03E6], [0x03E8, 0x03E8], [0x03EA, 0x03EA], [0x03EC, 0x03EC], [0x03EE, 0x03EE], [0x0401, 0x040C], [0x040E, 0x042F], [0x0460, 0x0460], [0x0462, 0x0462], [0x0464, 0x0464], [0x0466, 0x0466], [0x0468, 0x0468], [0x046A, 0x046A], [0x046C, 0x046C], [0x046E, 0x046E], [0x0470, 0x0470], [0x0472, 0x0472], [0x0474, 0x0474], [0x0476, 0x0476], [0x0478, 0x0478], [0x047A, 0x047A], [0x047C, 0x047C], [0x047E, 0x047E], [0x0480, 0x0480], [0x0490, 0x0490], [0x0492, 0x0492], [0x0494, 0x0494], [0x0496, 0x0496], [0x0498, 0x0498], [0x049A, 0x049A], [0x049C, 
 0x049C], [0x049E, 0x049E], [0x04A0, 0x04A0], [0x04A2, 0x04A2], [0x04A4, 0x04A4], [0x04A6, 0x04A6], [0x04A8, 0x04A8], [0x04AA, 0x04AA], [0x04AC, 0x04AC], [0x04AE, 0x04AE], [0x04B0, 0x04B0], [0x04B2, 0x04B2], [0x04B4, 0x04B4], [0x04B6, 0x04B6], [0x04B8, 0x04B8], [0x04BA, 0x04BA], [0x04BC, 0x04BC], [0x04BE, 0x04BE], [0x04C1, 0x04C1], [0x04C3, 0x04C3], [0x04C7, 0x04C7], [0x04CB, 0x04CB], [0x04D0, 0x04D0], [0x04D2, 0x04D2], [0x04D4, 0x04D4], [0x04D6, 0x04D6], [0x04D8, 0x04D8], [0x04DA, 0x04DA], [0x04DC, 0x04DC], [0x04DE, 0x04DE], [0x04E0, 0x04E0], [0x04E2, 0x04E2], [0x04E4, 0x04E4], [0x04E6, 0x04E6], [0x04E8, 0x04E8], [0x04EA, 0x04EA], [0x04EE, 0x04EE], [0x04F0, 0x04F0], [0x04F2, 0x04F2], [0x04F4, 0x04F4], [0x04F8, 0x04F8], [0x0531, 0x0556], [0x10A0, 0x10C5], [0x1E00, 0x1E00], [0x1E02, 0x1E02], [0x1E04, 0x1E04], [0x1E06, 0x1E06], [0x1E08, 0x1E08], [0x1E0A, 0x1E0A], [0x1E0C, 0x1E0C], [0x1E0E, 0x1E0E], [0x1E10, 0x1E10], [0x1E12, 0x1E12], [0x1E14, 0x1E14], [0x1E16, 0x1E16], [0x1E18,
  0x1E18], [0x1E1A, 0x1E1A], [0x1E1C, 0x1E1C], [0x1E1E, 0x1E1E], [0x1E20, 0x1E20], [0x1E22, 0x1E22], [0x1E24, 0x1E24], [0x1E26, 0x1E26], [0x1E28, 0x1E28], [0x1E2A, 0x1E2A], [0x1E2C, 0x1E2C], [0x1E2E, 0x1E2E], [0x1E30, 0x1E30], [0x1E32, 0x1E32], [0x1E34, 0x1E34], [0x1E36, 0x1E36], [0x1E38, 0x1E38], [0x1E3A, 0x1E3A], [0x1E3C, 0x1E3C], [0x1E3E, 0x1E3E], [0x1E40, 0x1E40], [0x1E42, 0x1E42], [0x1E44, 0x1E44], [0x1E46, 0x1E46], [0x1E48, 0x1E48], [0x1E4A, 0x1E4A], [0x1E4C, 0x1E4C], [0x1E4E, 0x1E4E], [0x1E50, 0x1E50], [0x1E52, 0x1E52], [0x1E54, 0x1E54], [0x1E56, 0x1E56], [0x1E58, 0x1E58], [0x1E5A, 0x1E5A], [0x1E5C, 0x1E5C], [0x1E5E, 0x1E5E], [0x1E60, 0x1E60], [0x1E62, 0x1E62], [0x1E64, 0x1E64], [0x1E66, 0x1E66], [0x1E68, 0x1E68], [0x1E6A, 0x1E6A], [0x1E6C, 0x1E6C], [0x1E6E, 0x1E6E], [0x1E70, 0x1E70], [0x1E72, 0x1E72], [0x1E74, 0x1E74], [0x1E76, 0x1E76], [0x1E78, 0x1E78], [0x1E7A, 0x1E7A], [0x1E7C, 0x1E7C], [0x1E7E, 0x1E7E], [0x1E80, 0x1E80], [0x1E82, 0x1E82], [0x1E84, 0x1E84], [0x1E86
 , 0x1E86], [0x1E88, 0x1E88], [0x1E8A, 0x1E8A], [0x1E8C, 0x1E8C], [0x1E8E, 0x1E8E], [0x1E90, 0x1E90], [0x1E92, 0x1E92], [0x1E94, 0x1E94], [0x1EA0, 0x1EA0], [0x1EA2, 0x1EA2], [0x1EA4, 0x1EA4], [0x1EA6, 0x1EA6], [0x1EA8, 0x1EA8], [0x1EAA, 0x1EAA], [0x1EAC, 0x1EAC], [0x1EAE, 0x1EAE], [0x1EB0, 0x1EB0], [0x1EB2, 0x1EB2], [0x1EB4, 0x1EB4], [0x1EB6, 0x1EB6], [0x1EB8, 0x1EB8], [0x1EBA, 0x1EBA], [0x1EBC, 0x1EBC], [0x1EBE, 0x1EBE], [0x1EC0, 0x1EC0], [0x1EC2, 0x1EC2], [0x1EC4, 0x1EC4], [0x1EC6, 0x1EC6], [0x1EC8, 0x1EC8], [0x1ECA, 0x1ECA], [0x1ECC, 0x1ECC], [0x1ECE, 0x1ECE], [0x1ED0, 0x1ED0], [0x1ED2, 0x1ED2], [0x1ED4, 0x1ED4], [0x1ED6, 0x1ED6], [0x1ED8, 0x1ED8], [0x1EDA, 0x1EDA], [0x1EDC, 0x1EDC], [0x1EDE, 0x1EDE], [0x1EE0, 0x1EE0], [0x1EE2, 0x1EE2], [0x1EE4, 0x1EE4], [0x1EE6, 0x1EE6], [0x1EE8, 0x1EE8], [0x1EEA, 0x1EEA], [0x1EEC, 0x1EEC], [0x1EEE, 0x1EEE], [0x1EF0, 0x1EF0], [0x1EF2, 0x1EF2], [0x1EF4, 0x1EF4], [0x1EF6, 0x1EF6], [0x1EF8, 0x1EF8], [0x1F08, 0x1F0F], [0x1F18, 0x1F1D], [0x1F2
 8, 0x1F2F], [0x1F38, 0x1F3F], [0x1F48, 0x1F4D], [0x1F59, 0x1F59], [0x1F5B, 0x1F5B], [0x1F5D, 0x1F5D], [0x1F5F, 0x1F5F], [0x1F68, 0x1F6F], [0x1F88, 0x1F8F], [0x1F98, 0x1F9F], [0x1FA8, 0x1FAF], [0x1FB8, 0x1FBC], [0x1FC8, 0x1FCC], [0x1FD8, 0x1FDB], [0x1FE8, 0x1FEC], [0x1FF8, 0x1FFC], [0x2102, 0x2102], [0x2107, 0x2107], [0x210B, 0x210D], [0x2110, 0x2112], [0x2115, 0x2115], [0x2119, 0x211D], [0x2124, 0x2124], [0x2126, 0x2126], [0x2128, 0x2128], [0x212A, 0x212D], [0x2130, 0x2131], [0x2133, 0x2133], [0xFF21, 0xFF3A]];
-Ll = [[0x0061, 0x007A], [0x00AA, 0x00AA], [0x00B5, 0x00B5], [0x00BA, 0x00BA], [0x00DF, 0x00F6], [0x00F8, 0x00FF], [0x0101, 0x0101], [0x0103, 0x0103], [0x0105, 0x0105], [0x0107, 0x0107], [0x0109, 0x0109], [0x010B, 0x010B], [0x010D, 0x010D], [0x010F, 0x010F], [0x0111, 0x0111], [0x0113, 0x0113], [0x0115, 0x0115], [0x0117, 0x0117], [0x0119, 0x0119], [0x011B, 0x011B], [0x011D, 0x011D], [0x011F, 0x011F], [0x0121, 0x0121], [0x0123, 0x0123], [0x0125, 0x0125], [0x0127, 0x0127], [0x0129, 0x0129], [0x012B, 0x012B], [0x012D, 0x012D], [0x012F, 0x012F], [0x0131, 0x0131], [0x0133, 0x0133], [0x0135, 0x0135], [0x0137, 0x0138], [0x013A, 0x013A], [0x013C, 0x013C], [0x013E, 0x013E], [0x0140, 0x0140], [0x0142, 0x0142], [0x0144, 0x0144], [0x0146, 0x0146], [0x0148, 0x0149], [0x014B, 0x014B], [0x014D, 0x014D], [0x014F, 0x014F], [0x0151, 0x0151], [0x0153, 0x0153], [0x0155, 0x0155], [0x0157, 0x0157], [0x0159, 0x0159], [0x015B, 0x015B], [0x015D, 0x015D], [0x015F, 0x015F], [0x0161, 0x0161], [0x0163, 0x
 0163], [0x0165, 0x0165], [0x0167, 0x0167], [0x0169, 0x0169], [0x016B, 0x016B], [0x016D, 0x016D], [0x016F, 0x016F], [0x0171, 0x0171], [0x0173, 0x0173], [0x0175, 0x0175], [0x0177, 0x0177], [0x017A, 0x017A], [0x017C, 0x017C], [0x017E, 0x0180], [0x0183, 0x0183], [0x0185, 0x0185], [0x0188, 0x0188], [0x018C, 0x018D], [0x0192, 0x0192], [0x0195, 0x0195], [0x0199, 0x019B], [0x019E, 0x019E], [0x01A1, 0x01A1], [0x01A3, 0x01A3], [0x01A5, 0x01A5], [0x01A8, 0x01A8], [0x01AB, 0x01AB], [0x01AD, 0x01AD], [0x01B0, 0x01B0], [0x01B4, 0x01B4], [0x01B6, 0x01B6], [0x01B9, 0x01BA], [0x01BD, 0x01BD], [0x01C6, 0x01C6], [0x01C9, 0x01C9], [0x01CC, 0x01CC], [0x01CE, 0x01CE], [0x01D0, 0x01D0], [0x01D2, 0x01D2], [0x01D4, 0x01D4], [0x01D6, 0x01D6], [0x01D8, 0x01D8], [0x01DA, 0x01DA], [0x01DC, 0x01DD], [0x01DF, 0x01DF], [0x01E1, 0x01E1], [0x01E3, 0x01E3], [0x01E5, 0x01E5], [0x01E7, 0x01E7], [0x01E9, 0x01E9], [0x01EB, 0x01EB], [0x01ED, 0x01ED], [0x01EF, 0x01F0], [0x01F3, 0x01F3], [0x01F5, 0x01F5], [0x01FB, 0
 x01FB], [0x01FD, 0x01FD], [0x01FF, 0x01FF], [0x0201, 0x0201], [0x0203, 0x0203], [0x0205, 0x0205], [0x0207, 0x0207], [0x0209, 0x0209], [0x020B, 0x020B], [0x020D, 0x020D], [0x020F, 0x020F], [0x0211, 0x0211], [0x0213, 0x0213], [0x0215, 0x0215], [0x0217, 0x0217], [0x0250, 0x02A8], [0x0390, 0x0390], [0x03AC, 0x03CE], [0x03D0, 0x03D1], [0x03D5, 0x03D6], [0x03E3, 0x03E3], [0x03E5, 0x03E5], [0x03E7, 0x03E7], [0x03E9, 0x03E9], [0x03EB, 0x03EB], [0x03ED, 0x03ED], [0x03EF, 0x03F2], [0x0430, 0x044F], [0x0451, 0x045C], [0x045E, 0x045F], [0x0461, 0x0461], [0x0463, 0x0463], [0x0465, 0x0465], [0x0467, 0x0467], [0x0469, 0x0469], [0x046B, 0x046B], [0x046D, 0x046D], [0x046F, 0x046F], [0x0471, 0x0471], [0x0473, 0x0473], [0x0475, 0x0475], [0x0477, 0x0477], [0x0479, 0x0479], [0x047B, 0x047B], [0x047D, 0x047D], [0x047F, 0x047F], [0x0481, 0x0481], [0x0491, 0x0491], [0x0493, 0x0493], [0x0495, 0x0495], [0x0497, 0x0497], [0x0499, 0x0499], [0x049B, 0x049B], [0x049D, 0x049D], [0x049F, 0x049F], [0x04A1, 
 0x04A1], [0x04A3, 0x04A3], [0x04A5, 0x04A5], [0x04A7, 0x04A7], [0x04A9, 0x04A9], [0x04AB, 0x04AB], [0x04AD, 0x04AD], [0x04AF, 0x04AF], [0x04B1, 0x04B1], [0x04B3, 0x04B3], [0x04B5, 0x04B5], [0x04B7, 0x04B7], [0x04B9, 0x04B9], [0x04BB, 0x04BB], [0x04BD, 0x04BD], [0x04BF, 0x04BF], [0x04C2, 0x04C2], [0x04C4, 0x04C4], [0x04C8, 0x04C8], [0x04CC, 0x04CC], [0x04D1, 0x04D1], [0x04D3, 0x04D3], [0x04D5, 0x04D5], [0x04D7, 0x04D7], [0x04D9, 0x04D9], [0x04DB, 0x04DB], [0x04DD, 0x04DD], [0x04DF, 0x04DF], [0x04E1, 0x04E1], [0x04E3, 0x04E3], [0x04E5, 0x04E5], [0x04E7, 0x04E7], [0x04E9, 0x04E9], [0x04EB, 0x04EB], [0x04EF, 0x04EF], [0x04F1, 0x04F1], [0x04F3, 0x04F3], [0x04F5, 0x04F5], [0x04F9, 0x04F9], [0x0561, 0x0587], [0x10D0, 0x10F6], [0x1E01, 0x1E01], [0x1E03, 0x1E03], [0x1E05, 0x1E05], [0x1E07, 0x1E07], [0x1E09, 0x1E09], [0x1E0B, 0x1E0B], [0x1E0D, 0x1E0D], [0x1E0F, 0x1E0F], [0x1E11, 0x1E11], [0x1E13, 0x1E13], [0x1E15, 0x1E15], [0x1E17, 0x1E17], [0x1E19, 0x1E19], [0x1E1B, 0x1E1B], [0x1E1D,
  0x1E1D], [0x1E1F, 0x1E1F], [0x1E21, 0x1E21], [0x1E23, 0x1E23], [0x1E25, 0x1E25], [0x1E27, 0x1E27], [0x1E29, 0x1E29], [0x1E2B, 0x1E2B], [0x1E2D, 0x1E2D], [0x1E2F, 0x1E2F], [0x1E31, 0x1E31], [0x1E33, 0x1E33], [0x1E35, 0x1E35], [0x1E37, 0x1E37], [0x1E39, 0x1E39], [0x1E3B, 0x1E3B], [0x1E3D, 0x1E3D], [0x1E3F, 0x1E3F], [0x1E41, 0x1E41], [0x1E43, 0x1E43], [0x1E45, 0x1E45], [0x1E47, 0x1E47], [0x1E49, 0x1E49], [0x1E4B, 0x1E4B], [0x1E4D, 0x1E4D], [0x1E4F, 0x1E4F], [0x1E51, 0x1E51], [0x1E53, 0x1E53], [0x1E55, 0x1E55], [0x1E57, 0x1E57], [0x1E59, 0x1E59], [0x1E5B, 0x1E5B], [0x1E5D, 0x1E5D], [0x1E5F, 0x1E5F], [0x1E61, 0x1E61], [0x1E63, 0x1E63], [0x1E65, 0x1E65], [0x1E67, 0x1E67], [0x1E69, 0x1E69], [0x1E6B, 0x1E6B], [0x1E6D, 0x1E6D], [0x1E6F, 0x1E6F], [0x1E71, 0x1E71], [0x1E73, 0x1E73], [0x1E75, 0x1E75], [0x1E77, 0x1E77], [0x1E79, 0x1E79], [0x1E7B, 0x1E7B], [0x1E7D, 0x1E7D], [0x1E7F, 0x1E7F], [0x1E81, 0x1E81], [0x1E83, 0x1E83], [0x1E85, 0x1E85], [0x1E87, 0x1E87], [0x1E89, 0x1E89], [0x1E8B
 , 0x1E8B], [0x1E8D, 0x1E8D], [0x1E8F, 0x1E8F], [0x1E91, 0x1E91], [0x1E93, 0x1E93], [0x1E95, 0x1E9B], [0x1EA1, 0x1EA1], [0x1EA3, 0x1EA3], [0x1EA5, 0x1EA5], [0x1EA7, 0x1EA7], [0x1EA9, 0x1EA9], [0x1EAB, 0x1EAB], [0x1EAD, 0x1EAD], [0x1EAF, 0x1EAF], [0x1EB1, 0x1EB1], [0x1EB3, 0x1EB3], [0x1EB5, 0x1EB5], [0x1EB7, 0x1EB7], [0x1EB9, 0x1EB9], [0x1EBB, 0x1EBB], [0x1EBD, 0x1EBD], [0x1EBF, 0x1EBF], [0x1EC1, 0x1EC1], [0x1EC3, 0x1EC3], [0x1EC5, 0x1EC5], [0x1EC7, 0x1EC7], [0x1EC9, 0x1EC9], [0x1ECB, 0x1ECB], [0x1ECD, 0x1ECD], [0x1ECF, 0x1ECF], [0x1ED1, 0x1ED1], [0x1ED3, 0x1ED3], [0x1ED5, 0x1ED5], [0x1ED7, 0x1ED7], [0x1ED9, 0x1ED9], [0x1EDB, 0x1EDB], [0x1EDD, 0x1EDD], [0x1EDF, 0x1EDF], [0x1EE1, 0x1EE1], [0x1EE3, 0x1EE3], [0x1EE5, 0x1EE5], [0x1EE7, 0x1EE7], [0x1EE9, 0x1EE9], [0x1EEB, 0x1EEB], [0x1EED, 0x1EED], [0x1EEF, 0x1EEF], [0x1EF1, 0x1EF1], [0x1EF3, 0x1EF3], [0x1EF5, 0x1EF5], [0x1EF7, 0x1EF7], [0x1EF9, 0x1EF9], [0x1F00, 0x1F07], [0x1F10, 0x1F15], [0x1F20, 0x1F27], [0x1F30, 0x1F37], [0x1F4
 0, 0x1F45], [0x1F50, 0x1F57], [0x1F60, 0x1F67], [0x1F70, 0x1F7D], [0x1F80, 0x1F87], [0x1F90, 0x1F97], [0x1FA0, 0x1FA7], [0x1FB0, 0x1FB4], [0x1FB6, 0x1FB7], [0x1FBE, 0x1FBE], [0x1FC2, 0x1FC4], [0x1FC6, 0x1FC7], [0x1FD0, 0x1FD3], [0x1FD6, 0x1FD7], [0x1FE0, 0x1FE7], [0x1FF2, 0x1FF4], [0x1FF6, 0x1FF7], [0x207F, 0x207F], [0x210A, 0x210A], [0x210E, 0x210F], [0x2113, 0x2113], [0x2118, 0x2118], [0x212E, 0x212F], [0x2134, 0x2134], [0xFB00, 0xFB06], [0xFB13, 0xFB17], [0xFF41, 0xFF5A]];
-Lt = [[0x01C5, 0x01C5], [0x01C8, 0x01C8], [0x01CB, 0x01CB], [0x01F2, 0x01F2]];
-Lm = [[0x02B0, 0x02B8], [0x02BB, 0x02C1], [0x02D0, 0x02D1], [0x02E0, 0x02E4], [0x037A, 0x037A], [0x0559, 0x0559], [0x0640, 0x0640], [0x06E5, 0x06E6], [0x0E46, 0x0E46], [0x0EC6, 0x0EC6], [0x3005, 0x3005], [0x3031, 0x3035], [0x309D, 0x309E], [0x30FC, 0x30FE], [0xFF70, 0xFF70], [0xFF9E, 0xFF9F]];
-Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
 0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
 x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-Nl = [[0x2160, 0x2182], [0x3007, 0x3007], [0x3021, 0x3029]];
-
-UnicodeLetterLu = [];
-UnicodeLetterLl = [];
-UnicodeLetterLt = [];
-UnicodeLetterLm = [];
-UnicodeLetterLo = [];
-UnicodeLetterNl = [];
-
-for (indexI = 0; indexI &lt; Lu.length; indexI++) {
-  for (indexJ = Lu[indexI][0]; indexJ &lt;= Lu[indexI][1]; indexJ++) {
-    UnicodeLetterLu[indexJ] = true;
-  }
-}
-for (indexI = 0; indexI &lt; Ll.length; indexI++) {
-  for (indexJ = Ll[indexI][0]; indexJ &lt;= Ll[indexI][1]; indexJ++) {
-    UnicodeLetterLl[indexJ] = true;
-  }
-}  
-for (indexI = 0; indexI &lt; Lt.length; indexI++) {
-  for (indexJ = Lt[indexI][0]; indexJ &lt;= Lt[indexI][1]; indexJ++) {
-    UnicodeLetterLt[indexJ] = true;
-  }
-}
-for (indexI = 0; indexI &lt; Lm.length; indexI++) {
-  for (indexJ = Lm[indexI][0]; indexJ &lt;= Lm[indexI][1]; indexJ++) {
-    UnicodeLetterLm[indexJ] = true;
-  }
-}
-for (indexI = 0; indexI &lt; Lo.length; indexI++) {
-  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
-    UnicodeLetterLo[indexJ] = true;
-  }
-}
-for (indexI = 0; indexI &lt; Nl.length; indexI++) {
-  for (indexJ = Nl[indexI][0]; indexJ &lt;= Nl[indexI][1]; indexJ++) {
-    UnicodeLetterNl[indexJ] = true;
-  }
-}
-
-errorCount = 0;
-count = 0;
-var indexP;
-var indexO = 0;
-for (index = 0; index &lt;= 65535; index++) {  
-  if ((UnicodeLetterLu[index] === undefined) &amp;&amp; (UnicodeLetterLl[index] === undefined) &amp;&amp; (UnicodeLetterLt[index] === undefined) &amp;&amp; (UnicodeLetterLm[index] === undefined) &amp;&amp; (UnicodeLetterLo[index] === undefined) &amp;&amp; (UnicodeLetterNl[index] === undefined) &amp;&amp; (index !== 0x0024)  &amp;&amp; (index !== 0x005F)) {   
-    try {
-      var identifier = String.fromCharCode(index);    
-      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
-      if (errorCount === 0) { 
-        indexO = index; 
-      } else {
-        if ((index - indexP) !== 1) {             
-          if ((indexP - indexO) !== 0) {
-            var hexP = decimalToHexString(indexP);
-            var hexO = decimalToHexString(indexO);
-            testFailed('#' + hexO + '-' + hexP + ' ');
-          } 
-          else {
-            var hexP = decimalToHexString(indexP);
-            testFailed('#' + hexP + ' ');
-          }  
-          indexO = index;
-        }         
-      }
-      indexP = index;
-      errorCount++;    
-    } catch (e) {      
-    }
-    count++;
-  }  
-}
-
-if (errorCount &gt; 0) {
-  if ((indexP - indexO) !== 0) {
-    var hexP = decimalToHexString(indexP);
-    var hexO = decimalToHexString(indexO);
-    testFailed('#' + hexO + '-' + hexP + ' ');
-  } else {
-    var hexP = decimalToHexString(indexP);
-    testFailed('#' + hexP + ' ');
-  }     
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count + ' ');
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 3; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A52_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_218S76_A52_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S7.6_A5.2_T5&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S7.6_A5.2_T5;
+ * @section: 7.6, 6;
+ * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
+ * @description: The CV of UnicodeEscapeSequence is Lo.
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
 0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
 x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI &lt; Lo.length; indexI++) {
+  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
+    try {
+      var hex = decimalToHexString(indexJ);
+      var identifier1 = String.fromCharCode(indexJ);
+      var identifier2 = &quot;\\u&quot; + hex;
+      eval(identifier2 + &quot; = 1&quot;); 
+      if (eval(identifier1 + &quot; === &quot; + identifier2) !== true) {
+        testFailed('#' + hex + ' ');
+        errorCount++;
+      }
+    } catch (e) {
+      testFailed('#' + hex + ' ');
+      errorCount++;
+    }
+    count++;
+  }
+}
+
+if (errorCount &gt; 0) {  
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 3; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_218S76_A52_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_218/S7.6_A5.2_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,145 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S7.6_A5.2_T5&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S7.6_A5.2_T5;
- * @section: 7.6, 6;
- * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
- * @description: The CV of UnicodeEscapeSequence is Lo.
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01AA, 0x01AA], [0x01BB, 0x01BB], [0x01BE, 0x01C3], [0x03F3, 0x03F3], [0x04C0, 0x04C0], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x0671, 0x06B7], [0x06BA, 0x06BE], [0x06C0, 0x06CE], [0x06D0, 0x06D3], [0x06D5, 0x06D5], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
 0B5D], [0x0B5F, 0x0B61], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F69], [0x0F88, 0x0F8B], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0
 x11F9], [0x2135, 0x2138], [0x3006, 0x3006], [0x3041, 0x3094], [0x30A1, 0x30FA], [0x3105, 0x312C], [0x3131, 0x318E], [0x4E00, 0x9FA5], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE72], [0xFE74, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI &lt; Lo.length; indexI++) {
-  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
-    try {
-      var hex = decimalToHexString(indexJ);
-      var identifier1 = String.fromCharCode(indexJ);
-      var identifier2 = &quot;\\u&quot; + hex;
-      eval(identifier2 + &quot; = 1&quot;); 
-      if (eval(identifier1 + &quot; === &quot; + identifier2) !== true) {
-        testFailed('#' + hex + ' ');
-        errorCount++;
-      }
-    } catch (e) {
-      testFailed('#' + hex + ' ');
-      errorCount++;
-    }
-    count++;
-  }
-}
-
-if (errorCount &gt; 0) {  
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 3; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_320S76_A11_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_320S76_A11_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,144 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S7.6_A1.1_T5&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S7.6_A1.1_T5;
+ * @section: 7.6;
+ * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories &quot;Lu&quot;, &quot;Ll&quot;, &quot;Lt&quot;, &quot;Lm&quot;, &quot;Lo&quot;, &quot;Nl&quot;);
+ * @description: UnicodeLetter :: Other letter (Lo).
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06FA, 0x06FC], [0x0710, 0x0710], [0x0712, 0x072C], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
 0B5D], [0x0B5F, 0x0B61], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0
 x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10F8], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1206], [0x1208, 0x1246], [0x1248, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1286], [0x1288, 0x1288], [0x128A, 0x128D], [0x1290, 0x12AE], [0x12B0, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12CE], [0x12D0, 0x12D6], [0x12D8, 0x12EE], [0x12F0, 0x130E], [0x1310, 0x1310], [0x1312, 0x1315], [0x1318, 0x131E], [0x1320, 0x1346], [0x1348, 0x135A], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x2135, 0x2138], [0x3006, 0x3006], [0x303C, 
 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FA5], [0xA000, 0xA48C], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI &lt; Lo.length; indexI++) {
+  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
+    try {
+      var identifier = String.fromCharCode(indexJ);
+      var hex = decimalToHexString(indexJ);
+      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
+      if (eval(identifier + &quot;===1&quot;) !== true) {
+        testFailed('#' + hex + ' ');
+        errorCount++;
+      }
+    } catch (e) {
+      testFailed('#' + hex + ' ');
+      errorCount++;
+    }
+    count++;
+  }
+}
+
+if (errorCount &gt; 0) {  
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 3; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_320S76_A11_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A1.1_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,144 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S7.6_A1.1_T5&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S7.6_A1.1_T5;
- * @section: 7.6;
- * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories &quot;Lu&quot;, &quot;Ll&quot;, &quot;Lt&quot;, &quot;Lm&quot;, &quot;Lo&quot;, &quot;Nl&quot;);
- * @description: UnicodeLetter :: Other letter (Lo).
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06FA, 0x06FC], [0x0710, 0x0710], [0x0712, 0x072C], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
 0B5D], [0x0B5F, 0x0B61], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0
 x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10F8], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1206], [0x1208, 0x1246], [0x1248, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1286], [0x1288, 0x1288], [0x128A, 0x128D], [0x1290, 0x12AE], [0x12B0, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12CE], [0x12D0, 0x12D6], [0x12D8, 0x12EE], [0x12F0, 0x130E], [0x1310, 0x1310], [0x1312, 0x1315], [0x1318, 0x131E], [0x1320, 0x1346], [0x1348, 0x135A], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x2135, 0x2138], [0x3006, 0x3006], [0x303C, 
 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FA5], [0xA000, 0xA48C], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI &lt; Lo.length; indexI++) {
-  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
-    try {
-      var identifier = String.fromCharCode(indexJ);
-      var hex = decimalToHexString(indexJ);
-      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
-      if (eval(identifier + &quot;===1&quot;) !== true) {
-        testFailed('#' + hex + ' ');
-        errorCount++;
-      }
-    } catch (e) {
-      testFailed('#' + hex + ' ');
-      errorCount++;
-    }
-    count++;
-  }
-}
-
-if (errorCount &gt; 0) {  
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 3; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_320S76_A52_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_320S76_A52_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S7.6_A5.2_T5&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S7.6_A5.2_T5;
+ * @section: 7.6, 6;
+ * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
+ * @description: The CV of UnicodeEscapeSequence is Lo.
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06FA, 0x06FC], [0x0710, 0x0710], [0x0712, 0x072C], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
 0B5D], [0x0B5F, 0x0B61], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0
 x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10F8], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1206], [0x1208, 0x1246], [0x1248, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1286], [0x1288, 0x1288], [0x128A, 0x128D], [0x1290, 0x12AE], [0x12B0, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12CE], [0x12D0, 0x12D6], [0x12D8, 0x12EE], [0x12F0, 0x130E], [0x1310, 0x1310], [0x1312, 0x1315], [0x1318, 0x131E], [0x1320, 0x1346], [0x1348, 0x135A], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x2135, 0x2138], [0x3006, 0x3006], [0x303C, 
 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FA5], [0xA000, 0xA48C], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI &lt; Lo.length; indexI++) {
+  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
+    try {
+      var hex = decimalToHexString(indexJ);
+      var identifier1 = String.fromCharCode(indexJ);
+      var identifier2 = &quot;\\u&quot; + hex;
+      eval(identifier2 + &quot; = 1&quot;); 
+      if (eval(identifier1 + &quot; === &quot; + identifier2) !== true) {
+        testFailed('#' + hex + ' ');
+        errorCount++;
+      }
+    } catch (e) {
+      testFailed('#' + hex + ' ');
+      errorCount++;
+    }
+    count++;
+  }
+}
+
+if (errorCount &gt; 0) {  
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 3; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_320S76_A52_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_320/S7.6_A5.2_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,145 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S7.6_A5.2_T5&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S7.6_A5.2_T5;
- * @section: 7.6, 6;
- * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
- * @description: The CV of UnicodeEscapeSequence is Lo.
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06FA, 0x06FC], [0x0710, 0x0710], [0x0712, 0x072C], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0905, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8B], [0x0A8D, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE0], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B36, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x
 0B5D], [0x0B5F, 0x0B61], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB5], [0x0BB7, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0
 x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10F8], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1206], [0x1208, 0x1246], [0x1248, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1286], [0x1288, 0x1288], [0x128A, 0x128D], [0x1290, 0x12AE], [0x12B0, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12CE], [0x12D0, 0x12D6], [0x12D8, 0x12EE], [0x12F0, 0x130E], [0x1310, 0x1310], [0x1312, 0x1315], [0x1318, 0x131E], [0x1320, 0x1346], [0x1348, 0x135A], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x2135, 0x2138], [0x3006, 0x3006], [0x303C, 
 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FA5], [0xA000, 0xA48C], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI &lt; Lo.length; indexI++) {
-  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
-    try {
-      var hex = decimalToHexString(indexJ);
-      var identifier1 = String.fromCharCode(indexJ);
-      var identifier2 = &quot;\\u&quot; + hex;
-      eval(identifier2 + &quot; = 1&quot;); 
-      if (eval(identifier1 + &quot; === &quot; + identifier2) !== true) {
-        testFailed('#' + hex + ' ');
-        errorCount++;
-      }
-    } catch (e) {
-      testFailed('#' + hex + ' ');
-      errorCount++;
-    }
-    count++;
-  }
-}
-
-if (errorCount &gt; 0) {  
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 3; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_410S76_A11_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_410S76_A11_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,144 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S7.6_A1.1_T5&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S7.6_A1.1_T5;
+ * @section: 7.6;
+ * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories &quot;Lu&quot;, &quot;Ll&quot;, &quot;Lt&quot;, &quot;Lm&quot;, &quot;Lo&quot;, &quot;Nl&quot;);
+ * @description: UnicodeLetter :: Other letter (Lo).
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097D, 0x097D], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x
 0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0
 x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1, 
 0x19C7], [0x1A00, 0x1A16], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA,
  0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI &lt; Lo.length; indexI++) {
+  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
+    try {
+      var identifier = String.fromCharCode(indexJ);
+      var hex = decimalToHexString(indexJ);
+      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
+      if (eval(identifier + &quot;===1&quot;) !== true) {
+        testFailed('#' + hex + ' ');
+        errorCount++;
+      }
+    } catch (e) {
+      testFailed('#' + hex + ' ');
+      errorCount++;
+    }
+    count++;
+  }
+}
+
+if (errorCount &gt; 0) {  
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 3; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_410S76_A11_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A1.1_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,144 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S7.6_A1.1_T5&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S7.6_A1.1_T5;
- * @section: 7.6;
- * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories &quot;Lu&quot;, &quot;Ll&quot;, &quot;Lt&quot;, &quot;Lm&quot;, &quot;Lo&quot;, &quot;Nl&quot;);
- * @description: UnicodeLetter :: Other letter (Lo).
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097D, 0x097D], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x
 0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0
 x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1, 
 0x19C7], [0x1A00, 0x1A16], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA,
  0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI &lt; Lo.length; indexI++) {
-  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
-    try {
-      var identifier = String.fromCharCode(indexJ);
-      var hex = decimalToHexString(indexJ);
-      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
-      if (eval(identifier + &quot;===1&quot;) !== true) {
-        testFailed('#' + hex + ' ');
-        errorCount++;
-      }
-    } catch (e) {
-      testFailed('#' + hex + ' ');
-      errorCount++;
-    }
-    count++;
-  }
-}
-
-if (errorCount &gt; 0) {  
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 3; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_410S76_A52_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_410S76_A52_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S7.6_A5.2_T5&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S7.6_A5.2_T5;
+ * @section: 7.6, 6;
+ * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
+ * @description: The CV of UnicodeEscapeSequence is Lo.
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097D, 0x097D], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x
 0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0
 x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1, 
 0x19C7], [0x1A00, 0x1A16], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA,
  0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI &lt; Lo.length; indexI++) {
+  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
+    try {
+      var hex = decimalToHexString(indexJ);
+      var identifier1 = String.fromCharCode(indexJ);
+      var identifier2 = &quot;\\u&quot; + hex;
+      eval(identifier2 + &quot; = 1&quot;); 
+      if (eval(identifier1 + &quot; === &quot; + identifier2) !== true) {
+        testFailed('#' + hex + ' ');
+        errorCount++;
+      }
+    } catch (e) {
+      testFailed('#' + hex + ' ');
+      errorCount++;
+    }
+    count++;
+  }
+}
+
+if (errorCount &gt; 0) {  
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 3; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_410S76_A52_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_410/S7.6_A5.2_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,145 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S7.6_A5.2_T5&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S7.6_A5.2_T5;
- * @section: 7.6, 6;
- * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
- * @description: The CV of UnicodeEscapeSequence is Lo.
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097D, 0x097D], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x
 0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0
 x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1, 
 0x19C7], [0x1A00, 0x1A16], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA,
  0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI &lt; Lo.length; indexI++) {
-  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
-    try {
-      var hex = decimalToHexString(indexJ);
-      var identifier1 = String.fromCharCode(indexJ);
-      var identifier2 = &quot;\\u&quot; + hex;
-      eval(identifier2 + &quot; = 1&quot;); 
-      if (eval(identifier1 + &quot; === &quot; + identifier2) !== true) {
-        testFailed('#' + hex + ' ');
-        errorCount++;
-      }
-    } catch (e) {
-      testFailed('#' + hex + ' ');
-      errorCount++;
-    }
-    count++;
-  }
-}
-
-if (errorCount &gt; 0) {  
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 3; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_500S76_A11_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_500S76_A11_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,144 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S7.6_A1.1_T5&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S7.6_A1.1_T5;
+ * @section: 7.6;
+ * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories &quot;Lu&quot;, &quot;Ll&quot;, &quot;Lt&quot;, &quot;Lm&quot;, &quot;Lo&quot;, &quot;Nl&quot;);
+ * @description: UnicodeLetter :: Other letter (Lo).
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
 0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0
 x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 
 0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840, 0xA873], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71,
  0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI &lt; Lo.length; indexI++) {
+  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
+    try {
+      var identifier = String.fromCharCode(indexJ);
+      var hex = decimalToHexString(indexJ);
+      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
+      if (eval(identifier + &quot;===1&quot;) !== true) {
+        testFailed('#' + hex + ' ');
+        errorCount++;
+      }
+    } catch (e) {
+      testFailed('#' + hex + ' ');
+      errorCount++;
+    }
+    count++;
+  }
+}
+
+if (errorCount &gt; 0) {  
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 3; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_500S76_A11_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A1.1_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,144 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S7.6_A1.1_T5&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S7.6_A1.1_T5;
- * @section: 7.6;
- * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories &quot;Lu&quot;, &quot;Ll&quot;, &quot;Lt&quot;, &quot;Lm&quot;, &quot;Lo&quot;, &quot;Nl&quot;);
- * @description: UnicodeLetter :: Other letter (Lo).
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
 0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0
 x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 
 0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840, 0xA873], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71,
  0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI &lt; Lo.length; indexI++) {
-  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
-    try {
-      var identifier = String.fromCharCode(indexJ);
-      var hex = decimalToHexString(indexJ);
-      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
-      if (eval(identifier + &quot;===1&quot;) !== true) {
-        testFailed('#' + hex + ' ');
-        errorCount++;
-      }
-    } catch (e) {
-      testFailed('#' + hex + ' ');
-      errorCount++;
-    }
-    count++;
-  }
-}
-
-if (errorCount &gt; 0) {  
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 3; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_500S76_A52_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_500S76_A52_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S7.6_A5.2_T5&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S7.6_A5.2_T5;
+ * @section: 7.6, 6;
+ * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
+ * @description: The CV of UnicodeEscapeSequence is Lo.
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
 0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0
 x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 
 0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840, 0xA873], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71,
  0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI &lt; Lo.length; indexI++) {
+  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
+    try {
+      var hex = decimalToHexString(indexJ);
+      var identifier1 = String.fromCharCode(indexJ);
+      var identifier2 = &quot;\\u&quot; + hex;
+      eval(identifier2 + &quot; = 1&quot;); 
+      if (eval(identifier1 + &quot; === &quot; + identifier2) !== true) {
+        testFailed('#' + hex + ' ');
+        errorCount++;
+      }
+    } catch (e) {
+      testFailed('#' + hex + ' ');
+      errorCount++;
+    }
+    count++;
+  }
+}
+
+if (errorCount &gt; 0) {  
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 3; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_500S76_A52_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_500/S7.6_A5.2_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,145 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S7.6_A5.2_T5&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S7.6_A5.2_T5;
- * @section: 7.6, 6;
- * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
- * @description: The CV of UnicodeEscapeSequence is Lo.
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063A], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x076D], [0x0780, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
 0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D60, 0x0D61], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0
 x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6A], [0x0F88, 0x0F8B], [0x1000, 0x1021], [0x1023, 0x1027], [0x1029, 0x102A], [0x1050, 0x1055], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 
 0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312C], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FBB], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA800, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840, 0xA873], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71,
  0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI &lt; Lo.length; indexI++) {
-  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
-    try {
-      var hex = decimalToHexString(indexJ);
-      var identifier1 = String.fromCharCode(indexJ);
-      var identifier2 = &quot;\\u&quot; + hex;
-      eval(identifier2 + &quot; = 1&quot;); 
-      if (eval(identifier1 + &quot; === &quot; + identifier2) !== true) {
-        testFailed('#' + hex + ' ');
-        errorCount++;
-      }
-    } catch (e) {
-      testFailed('#' + hex + ' ');
-      errorCount++;
-    }
-    count++;
-  }
-}
-
-if (errorCount &gt; 0) {  
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 3; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_510S76_A11_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_510S76_A11_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,144 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S7.6_A1.1_T5&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S7.6_A1.1_T5;
+ * @section: 7.6;
+ * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories &quot;Lu&quot;, &quot;Ll&quot;, &quot;Lt&quot;, &quot;Lm&quot;, &quot;Lo&quot;, &quot;Nl&quot;);
+ * @description: UnicodeLetter :: Other letter (Lo).
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063F], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0972, 0x0972], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
 0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0BD0, 0x0BD0], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C3D, 0x0C3D], [0x0C58, 0x0C59], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D3D, 0x0D3D], [0x0D60, 0x0D61], [0x0D7A, 0x0D7F], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0
 x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6C], [0x0F88, 0x0F8B], [0x1000, 0x102A], [0x103F, 0x103F], [0x1050, 0x1055], [0x105A, 0x105D], [0x1061, 0x1061], [0x1065, 0x1066], [0x106E, 0x1070], [0x1075, 0x1081], [0x108E, 0x108E], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 
 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x18AA, 0x18AA], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x1B83, 0x1BA0], [0x1BAE, 0x1BAF], [0x1C00, 0x1C23], [0x1C4D, 0x1C4F], [0x1C5A, 0x1C77], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312D], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FC3], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA500, 0xA60B], [0xA610, 0xA61F], [0xA62A, 0xA62B], [0xA66E, 0xA66E], [0xA7FB, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840,
  0xA873], [0xA882, 0xA8B3], [0xA90A, 0xA925], [0xA930, 0xA946], [0xAA00, 0xAA28], [0xAA40, 0xAA42], [0xAA44, 0xAA4B], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI &lt; Lo.length; indexI++) {
+  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
+    try {
+      var identifier = String.fromCharCode(indexJ);
+      var hex = decimalToHexString(indexJ);
+      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
+      if (eval(identifier + &quot;===1&quot;) !== true) {
+        testFailed('#' + hex + ' ');
+        errorCount++;
+      }
+    } catch (e) {
+      testFailed('#' + hex + ' ');
+      errorCount++;
+    }
+    count++;
+  }
+}
+
+if (errorCount &gt; 0) {  
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 3; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_510S76_A11_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A1.1_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,144 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S7.6_A1.1_T5&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S7.6_A1.1_T5;
- * @section: 7.6;
- * @assertion: IdentifierStart :: UnicodeLetter (any character in the Unicode categories &quot;Lu&quot;, &quot;Ll&quot;, &quot;Lt&quot;, &quot;Lm&quot;, &quot;Lo&quot;, &quot;Nl&quot;);
- * @description: UnicodeLetter :: Other letter (Lo).
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063F], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0972, 0x0972], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
 0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0BD0, 0x0BD0], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C3D, 0x0C3D], [0x0C58, 0x0C59], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D3D, 0x0D3D], [0x0D60, 0x0D61], [0x0D7A, 0x0D7F], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0
 x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6C], [0x0F88, 0x0F8B], [0x1000, 0x102A], [0x103F, 0x103F], [0x1050, 0x1055], [0x105A, 0x105D], [0x1061, 0x1061], [0x1065, 0x1066], [0x106E, 0x1070], [0x1075, 0x1081], [0x108E, 0x108E], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 
 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x18AA, 0x18AA], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x1B83, 0x1BA0], [0x1BAE, 0x1BAF], [0x1C00, 0x1C23], [0x1C4D, 0x1C4F], [0x1C5A, 0x1C77], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312D], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FC3], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA500, 0xA60B], [0xA610, 0xA61F], [0xA62A, 0xA62B], [0xA66E, 0xA66E], [0xA7FB, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840,
  0xA873], [0xA882, 0xA8B3], [0xA90A, 0xA925], [0xA930, 0xA946], [0xAA00, 0xAA28], [0xAA40, 0xAA42], [0xAA44, 0xAA4B], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI &lt; Lo.length; indexI++) {
-  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
-    try {
-      var identifier = String.fromCharCode(indexJ);
-      var hex = decimalToHexString(indexJ);
-      eval(&quot;var &quot; + identifier + &quot;=1&quot;);
-      if (eval(identifier + &quot;===1&quot;) !== true) {
-        testFailed('#' + hex + ' ');
-        errorCount++;
-      }
-    } catch (e) {
-      testFailed('#' + hex + ' ');
-      errorCount++;
-    }
-    count++;
-  }
-}
-
-if (errorCount &gt; 0) {  
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 3; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_510S76_A52_T5htmlfromrev211348trunkLayoutTestssputnikUnicodeUnicode_510S76_A52_T5htmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html (from rev 211348, trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html                                (rev 0)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,145 @@
</span><ins>+&lt;html&gt;
+&lt;head&gt;
+&lt;meta charset='utf-8'&gt;
+&lt;style&gt;
+.pass {
+    font-weight: bold;
+    color: green;
+}
+.fail {
+    font-weight: bold;
+    color: red;
+}
+&lt;/style&gt;
+
+&lt;script&gt;
+if (window.testRunner)
+    testRunner.dumpAsText();
+
+function SputnikError(message)
+{
+    this.message = message;
+}
+
+SputnikError.prototype.toString = function ()
+{
+    return 'SputnikError: ' + this.message;
+};
+
+var sputnikException;
+
+function testPrint(msg)
+{
+    var span = document.createElement(&quot;span&quot;);
+    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
+    span.innerHTML = msg + '&lt;br /&gt;';
+}
+
+function escapeHTML(text)
+{
+    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
+}
+
+function printTestPassed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function printTestFailed(msg)
+{
+    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
+}
+
+function testFailed(msg)
+{
+    throw new SputnikError(msg);
+}
+
+var successfullyParsed = false;
+&lt;/script&gt;
+
+&lt;/head&gt;
+&lt;body&gt;
+&lt;p&gt;S7.6_A5.2_T5&lt;/p&gt;
+&lt;div id='console'&gt;&lt;/div&gt;
+&lt;script&gt;
+try {
+
+/**
+ * @name: S7.6_A5.2_T5;
+ * @section: 7.6, 6;
+ * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
+ * @description: The CV of UnicodeEscapeSequence is Lo.
+ * Complex test with eval;
+*/
+
+//CHECK
+Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063F], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0972, 0x0972], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
 0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0BD0, 0x0BD0], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C3D, 0x0C3D], [0x0C58, 0x0C59], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D3D, 0x0D3D], [0x0D60, 0x0D61], [0x0D7A, 0x0D7F], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0
 x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6C], [0x0F88, 0x0F8B], [0x1000, 0x102A], [0x103F, 0x103F], [0x1050, 0x1055], [0x105A, 0x105D], [0x1061, 0x1061], [0x1065, 0x1066], [0x106E, 0x1070], [0x1075, 0x1081], [0x108E, 0x108E], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 
 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x18AA, 0x18AA], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x1B83, 0x1BA0], [0x1BAE, 0x1BAF], [0x1C00, 0x1C23], [0x1C4D, 0x1C4F], [0x1C5A, 0x1C77], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312D], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FC3], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA500, 0xA60B], [0xA610, 0xA61F], [0xA62A, 0xA62B], [0xA66E, 0xA66E], [0xA7FB, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840,
  0xA873], [0xA882, 0xA8B3], [0xA90A, 0xA925], [0xA930, 0xA946], [0xAA00, 0xAA28], [0xAA40, 0xAA42], [0xAA44, 0xAA4B], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
+
+errorCount = 0;
+count = 0;
+for (indexI = 0; indexI &lt; Lo.length; indexI++) {
+  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
+    try {
+      var hex = decimalToHexString(indexJ);
+      var identifier1 = String.fromCharCode(indexJ);
+      var identifier2 = &quot;\\u&quot; + hex;
+      eval(identifier2 + &quot; = 1&quot;); 
+      if (eval(identifier1 + &quot; === &quot; + identifier2) !== true) {
+        testFailed('#' + hex + ' ');
+        errorCount++;
+      }
+    } catch (e) {
+      testFailed('#' + hex + ' ');
+      errorCount++;
+    }
+    count++;
+  }
+}
+
+if (errorCount &gt; 0) {  
+  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
+}
+
+function decimalToHexString(n) {
+  n = Number(n);
+  var h = &quot;&quot;;
+  for (var i = 3; i &gt;= 0; i--) {
+    if (n &gt;= Math.pow(16, i)) {
+      var t = Math.floor(n / Math.pow(16, i));
+      n -= t * Math.pow(16, i);
+      if ( t &gt;= 10 ) {
+        if ( t == 10 ) { h += &quot;A&quot;; }
+        if ( t == 11 ) { h += &quot;B&quot;; }
+        if ( t == 12 ) { h += &quot;C&quot;; }
+        if ( t == 13 ) { h += &quot;D&quot;; }
+        if ( t == 14 ) { h += &quot;E&quot;; }
+        if ( t == 15 ) { h += &quot;F&quot;; }
+      } else {
+        h += String(t);
+      }
+    } else {
+      h += &quot;0&quot;;
+    }
+  }
+  return h;
+}
+
+} catch (ex) {
+    sputnikException = ex;
+}
+
+var successfullyParsed = true;
+&lt;/script&gt;
+
+&lt;script&gt;
+if (!successfullyParsed)
+    printTestFailed('successfullyParsed is not set');
+else if (sputnikException)
+    printTestFailed(sputnikException);
+else
+    printTestPassed(&quot;&quot;);
+testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
+&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssputnikUnicodeUnicode_510S76_A52_T5htmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/sputnik/Unicode/Unicode_510/S7.6_A5.2_T5.html-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,145 +0,0 @@
</span><del>-&lt;html&gt;
-&lt;head&gt;
-&lt;meta charset='utf-8'&gt;
-&lt;style&gt;
-.pass {
-    font-weight: bold;
-    color: green;
-}
-.fail {
-    font-weight: bold;
-    color: red;
-}
-&lt;/style&gt;
-
-&lt;script&gt;
-if (window.testRunner)
-    testRunner.dumpAsText();
-
-function SputnikError(message)
-{
-    this.message = message;
-}
-
-SputnikError.prototype.toString = function ()
-{
-    return 'SputnikError: ' + this.message;
-};
-
-var sputnikException;
-
-function testPrint(msg)
-{
-    var span = document.createElement(&quot;span&quot;);
-    document.getElementById(&quot;console&quot;).appendChild(span); // insert it first so XHTML knows the namespace 
-    span.innerHTML = msg + '&lt;br /&gt;';
-}
-
-function escapeHTML(text)
-{
-    return text.toString().replace(/&amp;/g, &quot;&amp;amp;&quot;).replace(/&lt;/g, &quot;&amp;lt;&quot;);
-}
-
-function printTestPassed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;pass&quot;&gt;PASS&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function printTestFailed(msg)
-{
-    testPrint('&lt;span&gt;&lt;span class=&quot;fail&quot;&gt;FAIL&lt;/span&gt; ' + escapeHTML(msg) + '&lt;/span&gt;');
-}
-
-function testFailed(msg)
-{
-    throw new SputnikError(msg);
-}
-
-var successfullyParsed = false;
-&lt;/script&gt;
-
-&lt;/head&gt;
-&lt;body&gt;
-&lt;p&gt;S7.6_A5.2_T5&lt;/p&gt;
-&lt;div id='console'&gt;&lt;/div&gt;
-&lt;script&gt;
-try {
-
-/**
- * @name: S7.6_A5.2_T5;
- * @section: 7.6, 6;
- * @assertion: If a \UnicodeEscapeSequence sequence were replaced by its UnicodeEscapeSequence's CV, the result must still be a valid Identifier that has the exact same sequence of characters as the original Identifier;
- * @description: The CV of UnicodeEscapeSequence is Lo.
- * Complex test with eval;
-*/
-
-//CHECK
-Lo = [[0x01BB, 0x01BB], [0x01C0, 0x01C3], [0x0294, 0x0294], [0x05D0, 0x05EA], [0x05F0, 0x05F2], [0x0621, 0x063F], [0x0641, 0x064A], [0x066E, 0x066F], [0x0671, 0x06D3], [0x06D5, 0x06D5], [0x06EE, 0x06EF], [0x06FA, 0x06FC], [0x06FF, 0x06FF], [0x0710, 0x0710], [0x0712, 0x072F], [0x074D, 0x07A5], [0x07B1, 0x07B1], [0x07CA, 0x07EA], [0x0904, 0x0939], [0x093D, 0x093D], [0x0950, 0x0950], [0x0958, 0x0961], [0x0972, 0x0972], [0x097B, 0x097F], [0x0985, 0x098C], [0x098F, 0x0990], [0x0993, 0x09A8], [0x09AA, 0x09B0], [0x09B2, 0x09B2], [0x09B6, 0x09B9], [0x09BD, 0x09BD], [0x09CE, 0x09CE], [0x09DC, 0x09DD], [0x09DF, 0x09E1], [0x09F0, 0x09F1], [0x0A05, 0x0A0A], [0x0A0F, 0x0A10], [0x0A13, 0x0A28], [0x0A2A, 0x0A30], [0x0A32, 0x0A33], [0x0A35, 0x0A36], [0x0A38, 0x0A39], [0x0A59, 0x0A5C], [0x0A5E, 0x0A5E], [0x0A72, 0x0A74], [0x0A85, 0x0A8D], [0x0A8F, 0x0A91], [0x0A93, 0x0AA8], [0x0AAA, 0x0AB0], [0x0AB2, 0x0AB3], [0x0AB5, 0x0AB9], [0x0ABD, 0x0ABD], [0x0AD0, 0x0AD0], [0x0AE0, 0x0AE1], [0x0B05, 0x
 0B0C], [0x0B0F, 0x0B10], [0x0B13, 0x0B28], [0x0B2A, 0x0B30], [0x0B32, 0x0B33], [0x0B35, 0x0B39], [0x0B3D, 0x0B3D], [0x0B5C, 0x0B5D], [0x0B5F, 0x0B61], [0x0B71, 0x0B71], [0x0B83, 0x0B83], [0x0B85, 0x0B8A], [0x0B8E, 0x0B90], [0x0B92, 0x0B95], [0x0B99, 0x0B9A], [0x0B9C, 0x0B9C], [0x0B9E, 0x0B9F], [0x0BA3, 0x0BA4], [0x0BA8, 0x0BAA], [0x0BAE, 0x0BB9], [0x0BD0, 0x0BD0], [0x0C05, 0x0C0C], [0x0C0E, 0x0C10], [0x0C12, 0x0C28], [0x0C2A, 0x0C33], [0x0C35, 0x0C39], [0x0C3D, 0x0C3D], [0x0C58, 0x0C59], [0x0C60, 0x0C61], [0x0C85, 0x0C8C], [0x0C8E, 0x0C90], [0x0C92, 0x0CA8], [0x0CAA, 0x0CB3], [0x0CB5, 0x0CB9], [0x0CBD, 0x0CBD], [0x0CDE, 0x0CDE], [0x0CE0, 0x0CE1], [0x0D05, 0x0D0C], [0x0D0E, 0x0D10], [0x0D12, 0x0D28], [0x0D2A, 0x0D39], [0x0D3D, 0x0D3D], [0x0D60, 0x0D61], [0x0D7A, 0x0D7F], [0x0D85, 0x0D96], [0x0D9A, 0x0DB1], [0x0DB3, 0x0DBB], [0x0DBD, 0x0DBD], [0x0DC0, 0x0DC6], [0x0E01, 0x0E30], [0x0E32, 0x0E33], [0x0E40, 0x0E45], [0x0E81, 0x0E82], [0x0E84, 0x0E84], [0x0E87, 0x0E88], [0x0E8A, 0
 x0E8A], [0x0E8D, 0x0E8D], [0x0E94, 0x0E97], [0x0E99, 0x0E9F], [0x0EA1, 0x0EA3], [0x0EA5, 0x0EA5], [0x0EA7, 0x0EA7], [0x0EAA, 0x0EAB], [0x0EAD, 0x0EB0], [0x0EB2, 0x0EB3], [0x0EBD, 0x0EBD], [0x0EC0, 0x0EC4], [0x0EDC, 0x0EDD], [0x0F00, 0x0F00], [0x0F40, 0x0F47], [0x0F49, 0x0F6C], [0x0F88, 0x0F8B], [0x1000, 0x102A], [0x103F, 0x103F], [0x1050, 0x1055], [0x105A, 0x105D], [0x1061, 0x1061], [0x1065, 0x1066], [0x106E, 0x1070], [0x1075, 0x1081], [0x108E, 0x108E], [0x10D0, 0x10FA], [0x1100, 0x1159], [0x115F, 0x11A2], [0x11A8, 0x11F9], [0x1200, 0x1248], [0x124A, 0x124D], [0x1250, 0x1256], [0x1258, 0x1258], [0x125A, 0x125D], [0x1260, 0x1288], [0x128A, 0x128D], [0x1290, 0x12B0], [0x12B2, 0x12B5], [0x12B8, 0x12BE], [0x12C0, 0x12C0], [0x12C2, 0x12C5], [0x12C8, 0x12D6], [0x12D8, 0x1310], [0x1312, 0x1315], [0x1318, 0x135A], [0x1380, 0x138F], [0x13A0, 0x13F4], [0x1401, 0x166C], [0x166F, 0x1676], [0x1681, 0x169A], [0x16A0, 0x16EA], [0x1700, 0x170C], [0x170E, 0x1711], [0x1720, 0x1731], [0x1740, 
 0x1751], [0x1760, 0x176C], [0x176E, 0x1770], [0x1780, 0x17B3], [0x17DC, 0x17DC], [0x1820, 0x1842], [0x1844, 0x1877], [0x1880, 0x18A8], [0x18AA, 0x18AA], [0x1900, 0x191C], [0x1950, 0x196D], [0x1970, 0x1974], [0x1980, 0x19A9], [0x19C1, 0x19C7], [0x1A00, 0x1A16], [0x1B05, 0x1B33], [0x1B45, 0x1B4B], [0x1B83, 0x1BA0], [0x1BAE, 0x1BAF], [0x1C00, 0x1C23], [0x1C4D, 0x1C4F], [0x1C5A, 0x1C77], [0x2135, 0x2138], [0x2D30, 0x2D65], [0x2D80, 0x2D96], [0x2DA0, 0x2DA6], [0x2DA8, 0x2DAE], [0x2DB0, 0x2DB6], [0x2DB8, 0x2DBE], [0x2DC0, 0x2DC6], [0x2DC8, 0x2DCE], [0x2DD0, 0x2DD6], [0x2DD8, 0x2DDE], [0x3006, 0x3006], [0x303C, 0x303C], [0x3041, 0x3096], [0x309F, 0x309F], [0x30A1, 0x30FA], [0x30FF, 0x30FF], [0x3105, 0x312D], [0x3131, 0x318E], [0x31A0, 0x31B7], [0x31F0, 0x31FF], [0x3400, 0x4DB5], [0x4E00, 0x9FC3], [0xA000, 0xA014], [0xA016, 0xA48C], [0xA500, 0xA60B], [0xA610, 0xA61F], [0xA62A, 0xA62B], [0xA66E, 0xA66E], [0xA7FB, 0xA801], [0xA803, 0xA805], [0xA807, 0xA80A], [0xA80C, 0xA822], [0xA840,
  0xA873], [0xA882, 0xA8B3], [0xA90A, 0xA925], [0xA930, 0xA946], [0xAA00, 0xAA28], [0xAA40, 0xAA42], [0xAA44, 0xAA4B], [0xAC00, 0xD7A3], [0xF900, 0xFA2D], [0xFA30, 0xFA6A], [0xFA70, 0xFAD9], [0xFB1D, 0xFB1D], [0xFB1F, 0xFB28], [0xFB2A, 0xFB36], [0xFB38, 0xFB3C], [0xFB3E, 0xFB3E], [0xFB40, 0xFB41], [0xFB43, 0xFB44], [0xFB46, 0xFBB1], [0xFBD3, 0xFD3D], [0xFD50, 0xFD8F], [0xFD92, 0xFDC7], [0xFDF0, 0xFDFB], [0xFE70, 0xFE74], [0xFE76, 0xFEFC], [0xFF66, 0xFF6F], [0xFF71, 0xFF9D], [0xFFA0, 0xFFBE], [0xFFC2, 0xFFC7], [0xFFCA, 0xFFCF], [0xFFD2, 0xFFD7], [0xFFDA, 0xFFDC]];
-
-errorCount = 0;
-count = 0;
-for (indexI = 0; indexI &lt; Lo.length; indexI++) {
-  for (indexJ = Lo[indexI][0]; indexJ &lt;= Lo[indexI][1]; indexJ++) {
-    try {
-      var hex = decimalToHexString(indexJ);
-      var identifier1 = String.fromCharCode(indexJ);
-      var identifier2 = &quot;\\u&quot; + hex;
-      eval(identifier2 + &quot; = 1&quot;); 
-      if (eval(identifier1 + &quot; === &quot; + identifier2) !== true) {
-        testFailed('#' + hex + ' ');
-        errorCount++;
-      }
-    } catch (e) {
-      testFailed('#' + hex + ' ');
-      errorCount++;
-    }
-    count++;
-  }
-}
-
-if (errorCount &gt; 0) {  
-  testFailed('Total error: ' + errorCount + ' bad Unicode character in ' + count);
-}
-
-function decimalToHexString(n) {
-  n = Number(n);
-  var h = &quot;&quot;;
-  for (var i = 3; i &gt;= 0; i--) {
-    if (n &gt;= Math.pow(16, i)) {
-      var t = Math.floor(n / Math.pow(16, i));
-      n -= t * Math.pow(16, i);
-      if ( t &gt;= 10 ) {
-        if ( t == 10 ) { h += &quot;A&quot;; }
-        if ( t == 11 ) { h += &quot;B&quot;; }
-        if ( t == 12 ) { h += &quot;C&quot;; }
-        if ( t == 13 ) { h += &quot;D&quot;; }
-        if ( t == 14 ) { h += &quot;E&quot;; }
-        if ( t == 15 ) { h += &quot;F&quot;; }
-      } else {
-        h += String(t);
-      }
-    } else {
-      h += &quot;0&quot;;
-    }
-  }
-  return h;
-}
-
-} catch (ex) {
-    sputnikException = ex;
-}
-
-var successfullyParsed = true;
-&lt;/script&gt;
-
-&lt;script&gt;
-if (!successfullyParsed)
-    printTestFailed('successfullyParsed is not set');
-else if (sputnikException)
-    printTestFailed(sputnikException);
-else
-    printTestPassed(&quot;&quot;);
-testPrint('&lt;br /&gt;&lt;span class=&quot;pass&quot;&gt;TEST COMPLETE&lt;/span&gt;');
-&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssvgW3CSVG11resourcesfilterscomptran01fsvgdisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/svg/W3C-SVG-1.1/resources/filters-comptran-01-f.svg-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,132 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
-&lt;!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 1.0//EN&quot; &quot;http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd&quot;&gt;  
-
-&lt;!--======================================================================--&gt;
-&lt;!--=  Copyright 2000 World Wide Web Consortium, (Massachusetts          =--&gt;
-&lt;!--=  Institute of Technology, Institut National de Recherche en        =--&gt;
-&lt;!--=  Informatique et en Automatique, Keio University). All Rights      =--&gt;
-&lt;!--=  Reserved. See http://www.w3.org/Consortium/Legal/.                =--&gt;
-&lt;!--======================================================================--&gt;
-&lt;!--======================================================================--&gt;
-&lt;!--                                                                      --&gt;
-&lt;!-- filters-transfer-BE-04.svg                                           --&gt;
-&lt;!-- renamed for 1.1 suite to filters-comptran-01-f.svg                   --&gt;
-&lt;!--                                                                      --&gt;
-&lt;!-- Test which verifies the basic facilities of feComponentTransfer.     --&gt;
-&lt;!--                                                                      --&gt;
-&lt;!-- Author : Jon Ferraiolo 03-Apr-2000                                   --&gt;
-&lt;!-- Revised for 1.1 : Mike Bultrowicz, 4 February 2002                   --&gt;
-&lt;!--                                                                      --&gt;
-&lt;!-- History:                                                             --&gt;
-&lt;!--  04-Apr-2000, JF: Serial#1 created.                                  --&gt;
-&lt;!--  03-Aug-2000, LH=&quot; update DOCTYPE for CR DTD, 20000802&quot; ser# .       --&gt;
-&lt;!--  16-Aug-2000, LH=&quot;rename&quot; ser#2.                                     --&gt;
-&lt;!--                                                                      --&gt;
-&lt;!--======================================================================--&gt;
-&lt;!--======================================================================--&gt;
-&lt;!--= Note. After October 2000, revision history is kept as CVS 'commit' =--&gt;
-&lt;!--= log messages, and therefore is no longer in the preceding preamble.=--&gt;
-&lt;!--======================================================================--&gt;
-&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; id=&quot;svg-root&quot; width=&quot;480&quot; height=&quot;360&quot;&gt;
-    &lt;SVGTestCase xmlns=&quot;http://www.w3.org/2000/02/svg/testsuite/description/&quot;&gt;
-        &lt;OperatorScript&gt;
-                        &lt;Paragraph&gt;
-                                Test which verifies the basic facilities of 
-                                feComponentTransfer.
-                        &lt;/Paragraph&gt; 
-                        &lt;Paragraph&gt;
-                                This test uses the following elements : a nested &amp;lt;svg&amp;gt; 
-                                with a viewBox attribute, &amp;lt;linearGradient&amp;gt;, &amp;lt;filter&amp;gt;, 
-                                &amp;lt;feComponentTransfer&amp;gt;
-                        &lt;/Paragraph&gt; 
-                        &lt;Paragraph&gt;
-                                The test case shows four rectangles filled with a 
-                                gradient showing the effects of feComponentTransfer: an 
-                                identity function acting as a reference, use of the 
-                                feComponentTransfer table option, use of the 
-                                feComponentTransfer linear option, and use of the 
-                                feComponentTransfer gamma option.
-                        &lt;/Paragraph&gt; 
-                        &lt;Paragraph&gt;
-                                The test is somewhat self-explanatory as the strings 
-                                document the type of feComponentTransfer operation that 
-                                is being used.
-                        &lt;/Paragraph&gt; 
-        &lt;/OperatorScript&gt;
-    &lt;/SVGTestCase&gt;
-        &lt;title id=&quot;test-title&quot;&gt;filters-comptran-01-f&lt;/title&gt;
-        &lt;desc id=&quot;test-desc&quot;&gt;Test which verifies the basic facilities of feComponentTransfer.&lt;/desc&gt;
-        &lt;!--======================================================================--&gt;
-        &lt;!--Content of Test Case follows...                  =====================--&gt;
-        &lt;!--======================================================================--&gt;
-        &lt;g id=&quot;test-body-content&quot;&gt;
-                &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; x=&quot;35&quot; y=&quot;50&quot; width=&quot;400&quot; height=&quot;200&quot; viewBox=&quot;0 0 800 400&quot;&gt;
-                        &lt;title&gt;Example feComponentTransfer - Examples of feComponentTransfer operations&lt;/title&gt;
-                        &lt;desc&gt;Four rectangles filled with a gradient showing the effects of feComponentTransfer: an identity function acting as a reference, use of the feComponentTransfer table option, use of the feComponentTransfer linear option, and use of the feComponentTransfer gamma option.&lt;/desc&gt;
-                        &lt;defs&gt;
-                                &lt;linearGradient id=&quot;MyGradient&quot; gradientUnits=&quot;userSpaceOnUse&quot; x1=&quot;100&quot; y1=&quot;0&quot; x2=&quot;600&quot; y2=&quot;0&quot;&gt;
-                                        &lt;stop offset=&quot;0&quot; stop-color=&quot;#ff0000&quot; /&gt;
-                                        &lt;stop offset=&quot;.33&quot; stop-color=&quot;#00ff00&quot; /&gt;
-                                        &lt;stop offset=&quot;.67&quot; stop-color=&quot;#0000ff&quot; /&gt;
-                                        &lt;stop offset=&quot;1&quot; stop-color=&quot;#000000&quot; /&gt;
-                                &lt;/linearGradient&gt;
-                                &lt;filter id=&quot;Identity&quot; filterUnits=&quot;objectBoundingBox&quot; x=&quot;0%&quot; y=&quot;0%&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
-                                        &lt;feComponentTransfer&gt;
-                                                &lt;feFuncR type=&quot;identity&quot;/&gt;
-                                                &lt;feFuncG type=&quot;identity&quot;/&gt;
-                                                &lt;feFuncB type=&quot;identity&quot;/&gt;
-                                                &lt;feFuncA type=&quot;identity&quot;/&gt;
-                                        &lt;/feComponentTransfer&gt;
-                                &lt;/filter&gt;
-                                &lt;filter id=&quot;Table&quot; filterUnits=&quot;objectBoundingBox&quot; x=&quot;0%&quot; y=&quot;0%&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
-                                        &lt;feComponentTransfer&gt;
-                                                &lt;feFuncR type=&quot;table&quot; tableValues=&quot;0 0 1 1&quot;/&gt;
-                                                &lt;feFuncG type=&quot;table&quot; tableValues=&quot;1 1 0 0&quot;/&gt;
-                                                &lt;feFuncB type=&quot;table&quot; tableValues=&quot;0 1 1 0&quot;/&gt;
-                                        &lt;/feComponentTransfer&gt;
-                                &lt;/filter&gt;
-                                &lt;filter id=&quot;Linear&quot; filterUnits=&quot;objectBoundingBox&quot; x=&quot;0%&quot; y=&quot;0%&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
-                                        &lt;feComponentTransfer&gt;
-                                                &lt;feFuncR type=&quot;linear&quot; slope=&quot;.5&quot; intercept=&quot;.25&quot;/&gt;
-                                                &lt;feFuncG type=&quot;linear&quot; slope=&quot;.5&quot; intercept=&quot;0&quot;/&gt;
-                                                &lt;feFuncB type=&quot;linear&quot; slope=&quot;.5&quot; intercept=&quot;.5&quot;/&gt;
-                                        &lt;/feComponentTransfer&gt;
-                                &lt;/filter&gt;
-                                &lt;filter id=&quot;Gamma&quot; filterUnits=&quot;objectBoundingBox&quot; x=&quot;0%&quot; y=&quot;0%&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;
-                                        &lt;feComponentTransfer&gt;
-                                                &lt;feFuncR type=&quot;gamma&quot; amplitude=&quot;2&quot; exponent=&quot;5&quot; offset=&quot;0&quot;/&gt;
-                                                &lt;feFuncG type=&quot;gamma&quot; amplitude=&quot;2&quot; exponent=&quot;3&quot; offset=&quot;0&quot;/&gt;
-                                                &lt;feFuncB type=&quot;gamma&quot; amplitude=&quot;2&quot; exponent=&quot;1&quot; offset=&quot;0&quot;/&gt;
-                                        &lt;/feComponentTransfer&gt;
-                                &lt;/filter&gt;
-                        &lt;/defs&gt;
-                        &lt;rect fill=&quot;none&quot; stroke=&quot;blue&quot;  x=&quot;1&quot; y=&quot;1&quot; width=&quot;798&quot; height=&quot;398&quot;/&gt;
-                        &lt;g font-size=&quot;25&quot; font-family=&quot;Verdana&quot; &gt;
-                                &lt;rect fill=&quot;none&quot; stroke=&quot;blue&quot;  x=&quot;1&quot; y=&quot;1&quot; width=&quot;798&quot; height=&quot;398&quot;/&gt;
-                                &lt;rect x=&quot;100&quot; y=&quot;20&quot; width=&quot;500&quot; height=&quot;40&quot; fill=&quot;url(#MyGradient)&quot; filter=&quot;url(#Identity)&quot; /&gt;
-                                &lt;text x=&quot;100&quot; y=&quot;85&quot;&gt;type=&quot;identity&quot;&lt;/text&gt;
-                                &lt;rect x=&quot;100&quot; y=&quot;120&quot; width=&quot;500&quot; height=&quot;40&quot; fill=&quot;url(#MyGradient)&quot; filter=&quot;url(#Table)&quot; /&gt;
-                                &lt;text x=&quot;100&quot; y=&quot;185&quot;&gt;type=&quot;table&quot;&lt;/text&gt;
-                                &lt;rect x=&quot;100&quot; y=&quot;220&quot; width=&quot;500&quot; height=&quot;40&quot; fill=&quot;url(#MyGradient)&quot; filter=&quot;url(#Linear)&quot; /&gt;
-                                &lt;text x=&quot;100&quot; y=&quot;285&quot;&gt;type=&quot;linear&quot; slope=&quot;.5&quot; intercepts:.25/0/.5&lt;/text&gt;
-                                &lt;rect x=&quot;100&quot; y=&quot;320&quot; width=&quot;500&quot; height=&quot;40&quot; fill=&quot;url(#MyGradient)&quot; filter=&quot;url(#Gamma)&quot; /&gt;
-                                &lt;text x=&quot;100&quot; y=&quot;385&quot;&gt;type=&quot;gamma&quot; amplitude=&quot;2&quot; exponents:5/3/1&lt;/text&gt;
-                        &lt;/g&gt;
-                &lt;/svg&gt;
-        &lt;/g&gt;
-        &lt;!--======================================================================--&gt;
-        &lt;!--Legend and frame:      Title, suite and SVG document serialization====--&gt;
-        &lt;!--======================================================================--&gt;
-    &lt;g id=&quot;test-legend&quot; fill=&quot;black&quot; font-family=&quot;Helvetica&quot; font-size=&quot;10&quot;&gt;
-        &lt;rect x=&quot;10&quot; y=&quot;300&quot; width=&quot;275&quot; height=&quot;50&quot; fill=&quot;none&quot; stroke=&quot;#000000&quot;/&gt;
-        &lt;path fill=&quot;none&quot; stroke=&quot;#000000&quot; d=&quot;M10 315 h275 M205 315 v35 M10 336 h195 M205 332 h80&quot;/&gt;
-        &lt;text x=&quot;25&quot; y=&quot;311&quot;&gt;Scalable Vector Graphics (SVG) v1.1 Conformance Suite&lt;/text&gt;
-        &lt;a xlink:href=&quot;copyright-documents-19990405.html&quot;&gt;
-            &lt;text x=&quot;12&quot; y=&quot;347&quot; fill=&quot;blue&quot; &gt;Copyright 2002 W3C. All Rights Reserved.&lt;/text&gt;
-        &lt;/a&gt;
-        &lt;text font-size=&quot;12&quot; x=&quot;35&quot; y=&quot;330&quot;&gt;filters-comptran-01&lt;/text&gt;
-        &lt;text font-size=&quot;10&quot; x=&quot;210&quot; y=&quot;327&quot;&gt;$Revision$&lt;/text&gt;
-        &lt;text font-size=&quot;10&quot; x=&quot;210&quot; y=&quot;345&quot;&gt;Release 1.0&lt;/text&gt;
-        &lt;rect id=&quot;test-frame&quot; x=&quot;1&quot; y=&quot;1&quot; width=&quot;478&quot; height=&quot;358&quot; fill=&quot;none&quot; stroke=&quot;#000000&quot;/&gt;
-    &lt;/g&gt;
-&lt;/svg&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssvgbatiktexttextBiDisvgfromrev211348trunkLayoutTestssvgbatiktexttextBiDisvgdisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/svg/batik/text/textBiDi.svg (from rev 211348, trunk/LayoutTests/svg/batik/text/textBiDi.svg-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/batik/text/textBiDi.svg                                (rev 0)
+++ trunk/LayoutTests/svg/batik/text/textBiDi.svg        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,72 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
+&lt;!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 1.0//EN&quot;
+&quot;http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd&quot;&gt;
+
+&lt;!--
+
+   Copyright 2001-2003  The Apache Software Foundation 
+
+   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+--&gt;
+&lt;!-- ========================================================================= --&gt;
+&lt;!-- Test description here                                                     --&gt;
+&lt;!--                                                                           --&gt;
+&lt;!-- @author bill.haneman@ireland.sun.com                                      --&gt;
+&lt;!-- @version $Id: textBiDi.svg,v 1.7 2004/08/18 07:12:21 vhardy Exp $                                                             --&gt;
+&lt;!-- ========================================================================= --&gt;
+&lt;?xml-stylesheet type=&quot;text/css&quot; href=&quot;../resources/test.css&quot; ?&gt;
+
+&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; width=&quot;450&quot; height=&quot;500&quot; viewBox=&quot;0 0 450 500&quot;&gt;
+    &lt;!-- ============================================================= --&gt;
+    &lt;!-- Test content                                                  --&gt;
+    &lt;!-- ============================================================= --&gt;
+
+    &lt;g id=&quot;testContent&quot;&gt;
+        &lt;text class=&quot;title&quot; x=&quot;50%&quot; y=&quot;10%&quot; font-size=&quot;15&quot; text-anchor=&quot;middle&quot; &gt;
+            BiDi Text / International Text&lt;/text&gt;
+        &lt;text x=&quot;50%&quot; y=&quot;25%&quot; font-size=&quot;12.5&quot; text-anchor=&quot;middle&quot;&gt;Some text goes &lt;tspan fill=&quot;blue&quot; direction=&quot;rtl&quot; unicode-bidi=&quot;bidi-override&quot;&gt;(right to left)&lt;/tspan&gt;, other text goes (left to right).&lt;/text&gt;
+      
+        &lt;text x=&quot;50%&quot; y=&quot;30%&quot; font-size=&quot;12.5&quot; text-anchor=&quot;middle&quot;&gt;Some &lt;tspan fill=&quot;darkred&quot; direction=&quot;rtl&quot; unicode-bidi=&quot;embed&quot;&gt;(embedded bidi)&lt;/tspan&gt; text.&lt;/text&gt;
+     
+      &lt;text style=&quot;font-style:oblique;font-size:10px;text-anchor:middle&quot; x=&quot;50%&quot; y=&quot;35%&quot;&gt;
+               Text selection allows visually discontiguous 
+               selections across bi-directional text.
+        &lt;/text&gt;
+      &lt;g font-family=&quot;dialog&quot; font-size=&quot;15&quot; text-anchor=&quot;start&quot;&gt;
+        &lt;text id=&quot;latin&quot; fill=&quot;MidnightBlue&quot; x=&quot;10%&quot; y=&quot;45%&quot;&gt;latin:
+         ABCDEFG
+         abcdefghijklmnopqrstuvwxyz&lt;/text&gt; 
+        &lt;text id=&quot;latin-extended&quot; fill=&quot;Sienna&quot; x=&quot;10%&quot; y=&quot;50%&quot;&gt;latin-extended: 
+         &amp;#x0e6;&amp;#x0e7;&amp;#x0e8;&amp;#x0e9;&amp;#x0ea;&amp;#x0eb;&amp;#x0ec;&amp;#x0ed;&amp;#x0ee;&amp;#x0ef;&amp;#x0f0;&amp;#x0f1;&amp;#x0f2;&amp;#x0f3;&amp;#x0f4;&lt;/text&gt;
+        &lt;text id=&quot;cyrillic&quot; fill=&quot;Indigo&quot; x=&quot;10%&quot; y=&quot;55%&quot;&gt;cyrillic: 
+         &amp;#x411;&amp;#x412;&amp;#x413;&amp;#x414;&amp;#x415;&amp;#x416;&amp;#x417;&amp;#x418;&amp;#x419;&amp;#x41a;&amp;#x41b;&amp;#x41c;&amp;#x41d;&amp;#x41e;&amp;#x41f;&amp;#x420;&amp;#x421;&amp;#x422;&amp;#x423;&amp;#x424;&amp;#x425;&amp;#x426;&amp;#x427;&lt;/text&gt;
+        &lt;text id=&quot;greek&quot; fill=&quot;Maroon&quot; x=&quot;10%&quot; y=&quot;60%&quot;&gt;greek:
+         &amp;#x391;&amp;#x392;&amp;#x393;&amp;#x394; &amp;#x3b1;&amp;#x3b2;&amp;#x3b3;&amp;#x3b4;&amp;#x3b5;&amp;#x3b6;&amp;#x3b7;&amp;#x3b8;&amp;#x3b9;&amp;#x3ba;&amp;#x3bb;&amp;#x3bc;&amp;#x3bd;&amp;#x3be;&amp;#x3bf;&amp;#x3c0;&amp;#x3c1;&amp;#x3c2;&amp;#x3c3;&amp;#x3c4;&amp;#x3c5;&amp;#x3c6;&amp;#x3c7;&amp;#x3c8;&amp;#x3c9;&lt;/text&gt; 
+        &lt;text id=&quot;hebrew&quot; fill=&quot;DarkOliveGreen&quot; x=&quot;10%&quot; y=&quot;65%&quot;&gt;hebrew: 
+         &amp;#x5d0;&amp;#x5d1;&amp;#x5d2;&amp;#x5d3;&amp;#x5d4;&amp;#x5d5;&amp;#x5d6;&amp;#x5d7;&amp;#x5d8;&amp;#x5d9;&amp;#x5da;&amp;#x5db;&amp;#x5dc;&amp;#x5dd;&amp;#x5de;&amp;#x5df;&amp;#x5e0;&amp;#x5e1;&amp;#x5e2;&amp;#x5e3;&amp;#x5e4;&amp;#x5e5;&amp;#x5e6;&amp;#x5e7;&amp;#x5e8;&amp;#x5e9;&amp;#x5ea;&lt;/text&gt;
+        &lt;text fill=&quot;DarkOliveGreen&quot; x=&quot;10%&quot; y=&quot;70%&quot; 
+         &gt;&amp;#x5d0;&amp;#x5d1;&amp;#x5d2;&amp;#x5d3;&amp;#x5d4;&amp;#x5d5;&amp;#x5d6;&amp;#x5d7;&amp;#x5d8;&amp;#x5d9;&amp;#x5da;&amp;#x5db;&amp;#x5dc;&amp;#x5dd;&amp;#x5de;&amp;#x5df;&amp;#x5e0;&amp;#x5e1;&amp;#x5e2;&amp;#x5e3;&amp;#x5e4;&amp;#x5e5;&amp;#x5e6;&amp;#x5e7;&amp;#x5e8;&amp;#x5e9;&amp;#x5ea;&lt;/text&gt;
+        &lt;text id=&quot;arabic&quot; fill=&quot;DarkRed&quot; x=&quot;10%&quot; y=&quot;75%&quot;&gt;arabic: 
+         &amp;#x621;&amp;#x623;&amp;#x624;&amp;#x625;&amp;#x626;&amp;#x627;&amp;#x628;&amp;#x629;&amp;#x62a;&amp;#x62b;&amp;#x62c;&amp;#x62d;&amp;#x62e;&amp;#x62f;&amp;#x630;&amp;#x631;&amp;#x632;&amp;#x633;&amp;#x634;&amp;#x635;&amp;#x636;&amp;#x637;&amp;#x638;&amp;#x639;&amp;#x640;&amp;#x641;&amp;#x642;&amp;#x643;&amp;#x644;&amp;#x645;&amp;#x646;&amp;#x647;&amp;#x648;&amp;#x649;&amp;#x650;&amp;#x676;&lt;/text&gt;
+        &lt;text fill=&quot;DarkRed&quot; x=&quot;10%&quot; y=&quot;80%&quot;
+         &gt;&amp;#x621;&amp;#x623;&amp;#x624;&amp;#x625;&amp;#x626;&amp;#x627;&amp;#x628;&amp;#x629;&amp;#x62a;&amp;#x62b;&amp;#x62c;&amp;#x62d;&amp;#x62e;&amp;#x62f;&amp;#x630;&amp;#x631;&amp;#x632;&amp;#x633;&amp;#x634;&amp;#x635;&amp;#x636;&amp;#x637;&amp;#x638;&amp;#x639;&amp;#x640;&amp;#x641;&amp;#x642;&amp;#x643;&amp;#x644;&amp;#x645;&amp;#x646;&amp;#x647;&amp;#x648;&amp;#x649;&amp;#x650;&amp;#x676;&lt;/text&gt;
+      &lt;/g&gt;
+    &lt;/g&gt;
+
+    &lt;!-- ============================================================= --&gt;
+    &lt;!-- Batik sample mark                                             --&gt;
+    &lt;!-- ============================================================= --&gt;
+    &lt;use xlink:href=&quot;../resources/batikLogo.svg#Batik_Tag_Box&quot; /&gt;
+    
+&lt;/svg&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssvgbatiktexttextBiDisvgdisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/batik/text/textBiDi.svg-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/batik/text/textBiDi.svg-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/svg/batik/text/textBiDi.svg-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,72 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot; standalone=&quot;no&quot;?&gt;
-&lt;!DOCTYPE svg PUBLIC &quot;-//W3C//DTD SVG 1.0//EN&quot;
-&quot;http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd&quot;&gt;
-
-&lt;!--
-
-   Copyright 2001-2003  The Apache Software Foundation 
-
-   Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
---&gt;
-&lt;!-- ========================================================================= --&gt;
-&lt;!-- Test description here                                                     --&gt;
-&lt;!--                                                                           --&gt;
-&lt;!-- @author bill.haneman@ireland.sun.com                                      --&gt;
-&lt;!-- @version $Id: textBiDi.svg,v 1.7 2004/08/18 07:12:21 vhardy Exp $                                                             --&gt;
-&lt;!-- ========================================================================= --&gt;
-&lt;?xml-stylesheet type=&quot;text/css&quot; href=&quot;../resources/test.css&quot; ?&gt;
-
-&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; width=&quot;450&quot; height=&quot;500&quot; viewBox=&quot;0 0 450 500&quot;&gt;
-    &lt;!-- ============================================================= --&gt;
-    &lt;!-- Test content                                                  --&gt;
-    &lt;!-- ============================================================= --&gt;
-
-    &lt;g id=&quot;testContent&quot;&gt;
-        &lt;text class=&quot;title&quot; x=&quot;50%&quot; y=&quot;10%&quot; font-size=&quot;15&quot; text-anchor=&quot;middle&quot; &gt;
-            BiDi Text / International Text&lt;/text&gt;
-        &lt;text x=&quot;50%&quot; y=&quot;25%&quot; font-size=&quot;12.5&quot; text-anchor=&quot;middle&quot;&gt;Some text goes &lt;tspan fill=&quot;blue&quot; direction=&quot;rtl&quot; unicode-bidi=&quot;bidi-override&quot;&gt;(right to left)&lt;/tspan&gt;, other text goes (left to right).&lt;/text&gt;
-      
-        &lt;text x=&quot;50%&quot; y=&quot;30%&quot; font-size=&quot;12.5&quot; text-anchor=&quot;middle&quot;&gt;Some &lt;tspan fill=&quot;darkred&quot; direction=&quot;rtl&quot; unicode-bidi=&quot;embed&quot;&gt;(embedded bidi)&lt;/tspan&gt; text.&lt;/text&gt;
-     
-      &lt;text style=&quot;font-style:oblique;font-size:10px;text-anchor:middle&quot; x=&quot;50%&quot; y=&quot;35%&quot;&gt;
-               Text selection allows visually discontiguous 
-               selections across bi-directional text.
-        &lt;/text&gt;
-      &lt;g font-family=&quot;dialog&quot; font-size=&quot;15&quot; text-anchor=&quot;start&quot;&gt;
-        &lt;text id=&quot;latin&quot; fill=&quot;MidnightBlue&quot; x=&quot;10%&quot; y=&quot;45%&quot;&gt;latin:
-         ABCDEFG
-         abcdefghijklmnopqrstuvwxyz&lt;/text&gt; 
-        &lt;text id=&quot;latin-extended&quot; fill=&quot;Sienna&quot; x=&quot;10%&quot; y=&quot;50%&quot;&gt;latin-extended: 
-         &amp;#x0e6;&amp;#x0e7;&amp;#x0e8;&amp;#x0e9;&amp;#x0ea;&amp;#x0eb;&amp;#x0ec;&amp;#x0ed;&amp;#x0ee;&amp;#x0ef;&amp;#x0f0;&amp;#x0f1;&amp;#x0f2;&amp;#x0f3;&amp;#x0f4;&lt;/text&gt;
-        &lt;text id=&quot;cyrillic&quot; fill=&quot;Indigo&quot; x=&quot;10%&quot; y=&quot;55%&quot;&gt;cyrillic: 
-         &amp;#x411;&amp;#x412;&amp;#x413;&amp;#x414;&amp;#x415;&amp;#x416;&amp;#x417;&amp;#x418;&amp;#x419;&amp;#x41a;&amp;#x41b;&amp;#x41c;&amp;#x41d;&amp;#x41e;&amp;#x41f;&amp;#x420;&amp;#x421;&amp;#x422;&amp;#x423;&amp;#x424;&amp;#x425;&amp;#x426;&amp;#x427;&lt;/text&gt;
-        &lt;text id=&quot;greek&quot; fill=&quot;Maroon&quot; x=&quot;10%&quot; y=&quot;60%&quot;&gt;greek:
-         &amp;#x391;&amp;#x392;&amp;#x393;&amp;#x394; &amp;#x3b1;&amp;#x3b2;&amp;#x3b3;&amp;#x3b4;&amp;#x3b5;&amp;#x3b6;&amp;#x3b7;&amp;#x3b8;&amp;#x3b9;&amp;#x3ba;&amp;#x3bb;&amp;#x3bc;&amp;#x3bd;&amp;#x3be;&amp;#x3bf;&amp;#x3c0;&amp;#x3c1;&amp;#x3c2;&amp;#x3c3;&amp;#x3c4;&amp;#x3c5;&amp;#x3c6;&amp;#x3c7;&amp;#x3c8;&amp;#x3c9;&lt;/text&gt; 
-        &lt;text id=&quot;hebrew&quot; fill=&quot;DarkOliveGreen&quot; x=&quot;10%&quot; y=&quot;65%&quot;&gt;hebrew: 
-         &amp;#x5d0;&amp;#x5d1;&amp;#x5d2;&amp;#x5d3;&amp;#x5d4;&amp;#x5d5;&amp;#x5d6;&amp;#x5d7;&amp;#x5d8;&amp;#x5d9;&amp;#x5da;&amp;#x5db;&amp;#x5dc;&amp;#x5dd;&amp;#x5de;&amp;#x5df;&amp;#x5e0;&amp;#x5e1;&amp;#x5e2;&amp;#x5e3;&amp;#x5e4;&amp;#x5e5;&amp;#x5e6;&amp;#x5e7;&amp;#x5e8;&amp;#x5e9;&amp;#x5ea;&lt;/text&gt;
-        &lt;text fill=&quot;DarkOliveGreen&quot; x=&quot;10%&quot; y=&quot;70%&quot; 
-         &gt;&amp;#x5d0;&amp;#x5d1;&amp;#x5d2;&amp;#x5d3;&amp;#x5d4;&amp;#x5d5;&amp;#x5d6;&amp;#x5d7;&amp;#x5d8;&amp;#x5d9;&amp;#x5da;&amp;#x5db;&amp;#x5dc;&amp;#x5dd;&amp;#x5de;&amp;#x5df;&amp;#x5e0;&amp;#x5e1;&amp;#x5e2;&amp;#x5e3;&amp;#x5e4;&amp;#x5e5;&amp;#x5e6;&amp;#x5e7;&amp;#x5e8;&amp;#x5e9;&amp;#x5ea;&lt;/text&gt;
-        &lt;text id=&quot;arabic&quot; fill=&quot;DarkRed&quot; x=&quot;10%&quot; y=&quot;75%&quot;&gt;arabic: 
-         &amp;#x621;&amp;#x623;&amp;#x624;&amp;#x625;&amp;#x626;&amp;#x627;&amp;#x628;&amp;#x629;&amp;#x62a;&amp;#x62b;&amp;#x62c;&amp;#x62d;&amp;#x62e;&amp;#x62f;&amp;#x630;&amp;#x631;&amp;#x632;&amp;#x633;&amp;#x634;&amp;#x635;&amp;#x636;&amp;#x637;&amp;#x638;&amp;#x639;&amp;#x640;&amp;#x641;&amp;#x642;&amp;#x643;&amp;#x644;&amp;#x645;&amp;#x646;&amp;#x647;&amp;#x648;&amp;#x649;&amp;#x650;&amp;#x676;&lt;/text&gt;
-        &lt;text fill=&quot;DarkRed&quot; x=&quot;10%&quot; y=&quot;80%&quot;
-         &gt;&amp;#x621;&amp;#x623;&amp;#x624;&amp;#x625;&amp;#x626;&amp;#x627;&amp;#x628;&amp;#x629;&amp;#x62a;&amp;#x62b;&amp;#x62c;&amp;#x62d;&amp;#x62e;&amp;#x62f;&amp;#x630;&amp;#x631;&amp;#x632;&amp;#x633;&amp;#x634;&amp;#x635;&amp;#x636;&amp;#x637;&amp;#x638;&amp;#x639;&amp;#x640;&amp;#x641;&amp;#x642;&amp;#x643;&amp;#x644;&amp;#x645;&amp;#x646;&amp;#x647;&amp;#x648;&amp;#x649;&amp;#x650;&amp;#x676;&lt;/text&gt;
-      &lt;/g&gt;
-    &lt;/g&gt;
-
-    &lt;!-- ============================================================= --&gt;
-    &lt;!-- Batik sample mark                                             --&gt;
-    &lt;!-- ============================================================= --&gt;
-    &lt;use xlink:href=&quot;../resources/batikLogo.svg#Batik_Tag_Box&quot; /&gt;
-    
-&lt;/svg&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssvgcustomfiltersourcealphasvgfromrev211348trunkLayoutTestssvgcustomfiltersourcealphasvgdisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/svg/custom/filter-source-alpha.svg (from rev 211348, trunk/LayoutTests/svg/custom/filter-source-alpha.svg-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/filter-source-alpha.svg                                (rev 0)
+++ trunk/LayoutTests/svg/custom/filter-source-alpha.svg        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot;?&gt;
+&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;
+   &lt;defs&gt;
+      &lt;filter id=&quot;filter&quot;&gt;
+         &lt;feGaussianBlur in=&quot;SourceAlpha&quot; stdDeviation=&quot;0&quot; result=&quot;blur&quot;/&gt;
+         &lt;feMerge&gt;
+            &lt;feMergeNode in=&quot;blur&quot;/&gt;
+            &lt;feMergeNode in=&quot;SourceGraphic&quot;/&gt;
+         &lt;/feMerge&gt;
+      &lt;/filter&gt;
+   &lt;/defs&gt;
+   &lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;100&quot; height=&quot;100&quot; fill=&quot;red&quot;/&gt;
+   &lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;100&quot; height=&quot;100&quot; filter=&quot;url(#filter)&quot; fill=&quot;green&quot;/&gt;
+&lt;/svg&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssvgcustomfiltersourcealphasvgdisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/custom/filter-source-alpha.svg-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/filter-source-alpha.svg-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/svg/custom/filter-source-alpha.svg-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot;?&gt;
-&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;
-   &lt;defs&gt;
-      &lt;filter id=&quot;filter&quot;&gt;
-         &lt;feGaussianBlur in=&quot;SourceAlpha&quot; stdDeviation=&quot;0&quot; result=&quot;blur&quot;/&gt;
-         &lt;feMerge&gt;
-            &lt;feMergeNode in=&quot;blur&quot;/&gt;
-            &lt;feMergeNode in=&quot;SourceGraphic&quot;/&gt;
-         &lt;/feMerge&gt;
-      &lt;/filter&gt;
-   &lt;/defs&gt;
-   &lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;100&quot; height=&quot;100&quot; fill=&quot;red&quot;/&gt;
-   &lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;100&quot; height=&quot;100&quot; filter=&quot;url(#filter)&quot; fill=&quot;green&quot;/&gt;
-&lt;/svg&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssvgcustomfontfacefallbacksvgfromrev211348trunkLayoutTestssvgcustomfontfacefallbacksvgdisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/svg/custom/font-face-fallback.svg (from rev 211348, trunk/LayoutTests/svg/custom/font-face-fallback.svg-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/font-face-fallback.svg                                (rev 0)
+++ trunk/LayoutTests/svg/custom/font-face-fallback.svg        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,21 @@
</span><ins>+&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;
+&lt;style type=&quot;text/css&quot; media=&quot;all&quot;&gt;
+  #svgtest {
+    font: 2.3cm &quot;svgtest&quot;, fantasy;
+  }
+&lt;/style&gt;
+&lt;defs&gt;
+  &lt;font-face id=&quot;test&quot; font-family=&quot;svgtest&quot;&gt;
+    &lt;font-face-src&gt;
+      &lt;font-face-name name=&quot;NOT A VALID FONT&quot; /&gt;
+      &lt;font-face-name name=&quot;sdlfkj&quot; /&gt;
+      &lt;font-face-name name=&quot;  sdflkjsdf &quot; /&gt;
+      &lt;font-face-uri xlink:href=&quot;url(bogus)&quot; /&gt;
+      &lt;font-face-uri xlink:href=&quot;#bogus&quot; /&gt;
+      &lt;font-face-name name=&quot;Ahem&quot; /&gt;
+    &lt;/font-face-src&gt;
+  &lt;/font-face&gt;
+&lt;/defs&gt;
+&lt;text id=&quot;svgtest&quot; x=&quot;10&quot; y=&quot;3cm&quot;&gt;ONLY BLOCKS&lt;/text&gt;
+&lt;text x=&quot;30&quot; y=&quot;3cm&quot;&gt;The text above should only show Ahem blocks&lt;/text&gt;
+&lt;/svg&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssvgcustomfontfacefallbacksvgdisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/custom/font-face-fallback.svg-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/font-face-fallback.svg-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/svg/custom/font-face-fallback.svg-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,21 +0,0 @@
</span><del>-&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;
-&lt;style type=&quot;text/css&quot; media=&quot;all&quot;&gt;
-  #svgtest {
-    font: 2.3cm &quot;svgtest&quot;, fantasy;
-  }
-&lt;/style&gt;
-&lt;defs&gt;
-  &lt;font-face id=&quot;test&quot; font-family=&quot;svgtest&quot;&gt;
-    &lt;font-face-src&gt;
-      &lt;font-face-name name=&quot;NOT A VALID FONT&quot; /&gt;
-      &lt;font-face-name name=&quot;sdlfkj&quot; /&gt;
-      &lt;font-face-name name=&quot;  sdflkjsdf &quot; /&gt;
-      &lt;font-face-uri xlink:href=&quot;url(bogus)&quot; /&gt;
-      &lt;font-face-uri xlink:href=&quot;#bogus&quot; /&gt;
-      &lt;font-face-name name=&quot;Ahem&quot; /&gt;
-    &lt;/font-face-src&gt;
-  &lt;/font-face&gt;
-&lt;/defs&gt;
-&lt;text id=&quot;svgtest&quot; x=&quot;10&quot; y=&quot;3cm&quot;&gt;ONLY BLOCKS&lt;/text&gt;
-&lt;text x=&quot;30&quot; y=&quot;3cm&quot;&gt;The text above should only show Ahem blocks&lt;/text&gt;
-&lt;/svg&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssvgcustomjsfonttestsvgfromrev211348trunkLayoutTestssvgcustomjsfonttestsvgdisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/svg/custom/js-font-test.svg (from rev 211348, trunk/LayoutTests/svg/custom/js-font-test.svg-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/js-font-test.svg                                (rev 0)
+++ trunk/LayoutTests/svg/custom/js-font-test.svg        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,128 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;svg width=&quot;800&quot; height=&quot;1000&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; onload=&quot;init()&quot;&gt;
+    &lt;script language=&quot;JavaScript&quot;&gt;
+    var fontFamily1 = &quot;Arial&quot;;
+    var fontFamily2 = &quot;LucidaSansUnicode&quot;;
+    var fontFamily3 = &quot;MS-Gothic&quot;;
+
+    var entryYOffset = 10;
+    var entryYDelta = 16;
+
+    var entryX = new Array();
+    entryX[0] = 10;
+    entryX[1] = 100;
+    entryX[2] = 190;
+
+    var entryXEnd = entryX[0] + entryX[1] + entryX[2];
+
+    var entryY = new Array();
+    entryY[0] = entryYOffset;
+    entryY[1] = entryYOffset;
+    entryY[2] = entryYOffset;
+
+    var insert;
+
+    function drawGrid(xValue, yValue)
+    {
+        var line = document.createElement(&quot;line&quot;);
+        line.x1.baseVal.value = Math.floor(xValue);
+        line.y1.baseVal.value = Math.floor(yValue) + (entryYDelta / 2) - 4;
+        line.x2.baseVal.value = Math.floor(xValue) + entryXEnd;
+        line.y2.baseVal.value = Math.floor(yValue) + (entryYDelta / 2) - 4;
+        line.setAttribute(&quot;style&quot;, &quot;stroke-width:1px; stroke:black; opacity:0.5&quot;);
+
+        insert.appendChild(line);
+    }
+
+    function entry(message, xValue, yValue, family)
+    {
+        var text = document.createElement(&quot;text&quot;);
+
+        // Set X/Y properties using SVG DOM
+        var xLength = document.rootElement.createSVGLength();
+        xLength.value = xValue;
+
+        var yLength = document.rootElement.createSVGLength();
+        yLength.value = yValue;
+
+        text.x.baseVal.appendItem(xLength);
+        text.y.baseVal.appendItem(yLength);
+
+        // Append &quot;Text&quot; child node
+        text.appendChild(document.createTextNode(message));
+
+        // Choose font-size/font-family
+        switch (family) {
+        case 0:
+            text.setAttribute(&quot;font-family&quot;, fontFamily1);
+            break;
+        case 1:
+            text.setAttribute(&quot;font-family&quot;, fontFamily2);
+            break;
+        case 2:
+            text.setAttribute(&quot;font-family&quot;, fontFamily3);
+            break;
+        }
+
+        text.setAttribute(&quot;font-size&quot;, &quot;12&quot;);
+
+        // Add to tree
+        insert.appendChild(text);    
+        return entryYDelta;
+    }
+
+    function newEntry(col1, col2, col3, family)
+    {
+        drawGrid(entryX[0], entryY[0]);
+
+        entryY[0] += entry(col1, entryX[0], entryY[0], family);
+        entryY[1] += entry(col2, entryX[1], entryY[1], family);
+        entryY[2] += entry(col3, entryX[2], entryY[2], family);
+    }
+
+    function init()
+    {
+        insert = document.getElementById(&quot;insert&quot;);
+
+        newEntry(&quot;Arabic&quot;, &quot;&quot;, &quot;السلام عليكم &quot;, 0);
+        newEntry(&quot;Bengali&quot;, &quot;বাঙ্লা&quot;, &quot;ষাগতোম&quot;, 0); // Which lang?
+        newEntry(&quot;Burmese&quot;, &quot;&quot;, &quot;မ္ရန္မာ&quot;, 0); // Which lang?
+        newEntry(&quot;Cherokee&quot;, &quot;ᏣᎳᎩ&quot;, &quot;ᎣᏏᏲ&quot;, 0); // Which lang?
+        newEntry(&quot;Czech&quot;, &quot;česky&quot;, &quot;Dobrý den&quot;, 0);
+        newEntry(&quot;Danish&quot;, &quot;Dansk&quot;, &quot;Hej, Goddag&quot;, 0);
+        newEntry(&quot;English&quot;, &quot;&quot;, &quot;Hello&quot;, 0);
+        newEntry(&quot;Esperanto&quot;, &quot;&quot;, &quot;Saluton&quot;, 0);
+        newEntry(&quot;Estonian&quot;, &quot;&quot;, &quot;Tere, Tervist&quot;, 0);
+        newEntry(&quot;Finnish&quot;, &quot;Suomi&quot;, &quot;Hei&quot;, 0);
+        newEntry(&quot;French&quot;, &quot;Français&quot;, &quot;Bonjour, Salut&quot;, 0);
+        newEntry(&quot;German&quot;, &quot;Deutsch Nord&quot;, &quot;Guten Tag&quot;, 0);
+        newEntry(&quot;German&quot;, &quot;Deutsch Süd&quot;, &quot;Grüß Gott&quot;, 0);
+        newEntry(&quot;Georgian&quot;, &quot;ქართველი&quot;, &quot;გამარჯობა&quot;, 0); // Which lang?
+        newEntry(&quot;Gujarati&quot;, &quot;&quot;, &quot;ગુજરાતિ&quot;, 0); // Which lang?
+        newEntry(&quot;Greek&quot;, &quot;Ελληνικά&quot;, &quot;Γειά σας&quot;, 0);
+        newEntry(&quot;Hebrew&quot;, &quot;&quot;, &quot;שלום&quot;, 1);
+        newEntry(&quot;Hindi&quot;, &quot;&quot;, &quot;नमस्ते, नमस्कार।&quot;, 0); // Which lang?
+        newEntry(&quot;Italiano&quot;, &quot;&quot;, &quot;Ciao, Buon giorno&quot;, 0);
+        newEntry(&quot;ɪŋglɪʃ&quot;, &quot;&quot;, &quot;hɛləʊ&quot;, 1); // Which lang here?
+        newEntry(&quot;Maltese&quot;, &quot;&quot;, &quot;Ċaw, Saħħa&quot;, 1);
+        newEntry(&quot;Nederlands&quot;, &quot;&quot;, &quot;Hallo, Dag&quot;, 0);
+        newEntry(&quot;Norwegian&quot;, &quot;Norsk&quot;, &quot;Hei, God dag&quot;, 0);
+        newEntry(&quot;Punjabi&quot;, &quot;&quot;, &quot;ੁਪੁਂਜਾਬਿ&quot;, 0); // Which lang?
+        newEntry(&quot;Polish&quot;, &quot;&quot;, &quot;Dzień dobry, Hej&quot;, 0);
+        newEntry(&quot;Russian&quot;, &quot;Русский&quot;, &quot;Здравствуйте!&quot;, 0);
+        newEntry(&quot;Slovak&quot;, &quot;&quot;, &quot;Dobrý deň&quot;, 0);
+        newEntry(&quot;Spanish&quot;, &quot;Español&quot;, &quot;‎¡Hola!‎&quot;, 1);
+        newEntry(&quot;Swedish&quot;, &quot;Svenska&quot;, &quot;Hej, Goddag&quot;, 0);
+        newEntry(&quot;Thai&quot;, &quot;ภาษาไทย&quot;, &quot;สวัสดีครับ, สวัสดีค่ะ&quot;, 0); // Which lang?
+        newEntry(&quot;Turkish&quot;, &quot;Türkçe&quot;, &quot;Merhaba&quot;, 0);
+        newEntry(&quot;Vietnamese&quot;, &quot;Tiếng Việt&quot;, &quot;Xin Chào&quot;, 0);
+        newEntry(&quot;Yiddish&quot;, &quot;ײַדישע&quot;, &quot;דאָס הײַזעלע &quot;, 1);
+        newEntry(&quot;Japanese&quot;, &quot;日本語&quot;, &quot;こんにちは, コンニチハ&quot;, 2);
+        newEntry(&quot;Chinese&quot;, &quot;中文,普通话,汉语\xBD&quot;, &quot;你好&quot;, 2);
+        newEntry(&quot;Cantonese&quot;, &quot;粵語,廣東話&quot;, &quot;早晨, 你好&quot;, 2);    
+        newEntry(&quot;Korean&quot;, &quot;한글&quot;, &quot;안녕하세요, 안녕하십니까&quot;, 0); // Which lang?
+    }
+    &lt;/script&gt;
+
+    &lt;g id=&quot;insert&quot;/&gt;
+&lt;/svg&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssvgcustomjsfonttestsvgdisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/custom/js-font-test.svg-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/custom/js-font-test.svg-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/svg/custom/js-font-test.svg-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,128 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
-&lt;svg width=&quot;800&quot; height=&quot;1000&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; onload=&quot;init()&quot;&gt;
-    &lt;script language=&quot;JavaScript&quot;&gt;
-    var fontFamily1 = &quot;Arial&quot;;
-    var fontFamily2 = &quot;LucidaSansUnicode&quot;;
-    var fontFamily3 = &quot;MS-Gothic&quot;;
-
-    var entryYOffset = 10;
-    var entryYDelta = 16;
-
-    var entryX = new Array();
-    entryX[0] = 10;
-    entryX[1] = 100;
-    entryX[2] = 190;
-
-    var entryXEnd = entryX[0] + entryX[1] + entryX[2];
-
-    var entryY = new Array();
-    entryY[0] = entryYOffset;
-    entryY[1] = entryYOffset;
-    entryY[2] = entryYOffset;
-
-    var insert;
-
-    function drawGrid(xValue, yValue)
-    {
-        var line = document.createElement(&quot;line&quot;);
-        line.x1.baseVal.value = Math.floor(xValue);
-        line.y1.baseVal.value = Math.floor(yValue) + (entryYDelta / 2) - 4;
-        line.x2.baseVal.value = Math.floor(xValue) + entryXEnd;
-        line.y2.baseVal.value = Math.floor(yValue) + (entryYDelta / 2) - 4;
-        line.setAttribute(&quot;style&quot;, &quot;stroke-width:1px; stroke:black; opacity:0.5&quot;);
-
-        insert.appendChild(line);
-    }
-
-    function entry(message, xValue, yValue, family)
-    {
-        var text = document.createElement(&quot;text&quot;);
-
-        // Set X/Y properties using SVG DOM
-        var xLength = document.rootElement.createSVGLength();
-        xLength.value = xValue;
-
-        var yLength = document.rootElement.createSVGLength();
-        yLength.value = yValue;
-
-        text.x.baseVal.appendItem(xLength);
-        text.y.baseVal.appendItem(yLength);
-
-        // Append &quot;Text&quot; child node
-        text.appendChild(document.createTextNode(message));
-
-        // Choose font-size/font-family
-        switch (family) {
-        case 0:
-            text.setAttribute(&quot;font-family&quot;, fontFamily1);
-            break;
-        case 1:
-            text.setAttribute(&quot;font-family&quot;, fontFamily2);
-            break;
-        case 2:
-            text.setAttribute(&quot;font-family&quot;, fontFamily3);
-            break;
-        }
-
-        text.setAttribute(&quot;font-size&quot;, &quot;12&quot;);
-
-        // Add to tree
-        insert.appendChild(text);    
-        return entryYDelta;
-    }
-
-    function newEntry(col1, col2, col3, family)
-    {
-        drawGrid(entryX[0], entryY[0]);
-
-        entryY[0] += entry(col1, entryX[0], entryY[0], family);
-        entryY[1] += entry(col2, entryX[1], entryY[1], family);
-        entryY[2] += entry(col3, entryX[2], entryY[2], family);
-    }
-
-    function init()
-    {
-        insert = document.getElementById(&quot;insert&quot;);
-
-        newEntry(&quot;Arabic&quot;, &quot;&quot;, &quot;السلام عليكم &quot;, 0);
-        newEntry(&quot;Bengali&quot;, &quot;বাঙ্লা&quot;, &quot;ষাগতোম&quot;, 0); // Which lang?
-        newEntry(&quot;Burmese&quot;, &quot;&quot;, &quot;မ္ရန္မာ&quot;, 0); // Which lang?
-        newEntry(&quot;Cherokee&quot;, &quot;ᏣᎳᎩ&quot;, &quot;ᎣᏏᏲ&quot;, 0); // Which lang?
-        newEntry(&quot;Czech&quot;, &quot;česky&quot;, &quot;Dobrý den&quot;, 0);
-        newEntry(&quot;Danish&quot;, &quot;Dansk&quot;, &quot;Hej, Goddag&quot;, 0);
-        newEntry(&quot;English&quot;, &quot;&quot;, &quot;Hello&quot;, 0);
-        newEntry(&quot;Esperanto&quot;, &quot;&quot;, &quot;Saluton&quot;, 0);
-        newEntry(&quot;Estonian&quot;, &quot;&quot;, &quot;Tere, Tervist&quot;, 0);
-        newEntry(&quot;Finnish&quot;, &quot;Suomi&quot;, &quot;Hei&quot;, 0);
-        newEntry(&quot;French&quot;, &quot;Français&quot;, &quot;Bonjour, Salut&quot;, 0);
-        newEntry(&quot;German&quot;, &quot;Deutsch Nord&quot;, &quot;Guten Tag&quot;, 0);
-        newEntry(&quot;German&quot;, &quot;Deutsch Süd&quot;, &quot;Grüß Gott&quot;, 0);
-        newEntry(&quot;Georgian&quot;, &quot;ქართველი&quot;, &quot;გამარჯობა&quot;, 0); // Which lang?
-        newEntry(&quot;Gujarati&quot;, &quot;&quot;, &quot;ગુજરાતિ&quot;, 0); // Which lang?
-        newEntry(&quot;Greek&quot;, &quot;Ελληνικά&quot;, &quot;Γειά σας&quot;, 0);
-        newEntry(&quot;Hebrew&quot;, &quot;&quot;, &quot;שלום&quot;, 1);
-        newEntry(&quot;Hindi&quot;, &quot;&quot;, &quot;नमस्ते, नमस्कार।&quot;, 0); // Which lang?
-        newEntry(&quot;Italiano&quot;, &quot;&quot;, &quot;Ciao, Buon giorno&quot;, 0);
-        newEntry(&quot;ɪŋglɪʃ&quot;, &quot;&quot;, &quot;hɛləʊ&quot;, 1); // Which lang here?
-        newEntry(&quot;Maltese&quot;, &quot;&quot;, &quot;Ċaw, Saħħa&quot;, 1);
-        newEntry(&quot;Nederlands&quot;, &quot;&quot;, &quot;Hallo, Dag&quot;, 0);
-        newEntry(&quot;Norwegian&quot;, &quot;Norsk&quot;, &quot;Hei, God dag&quot;, 0);
-        newEntry(&quot;Punjabi&quot;, &quot;&quot;, &quot;ੁਪੁਂਜਾਬਿ&quot;, 0); // Which lang?
-        newEntry(&quot;Polish&quot;, &quot;&quot;, &quot;Dzień dobry, Hej&quot;, 0);
-        newEntry(&quot;Russian&quot;, &quot;Русский&quot;, &quot;Здравствуйте!&quot;, 0);
-        newEntry(&quot;Slovak&quot;, &quot;&quot;, &quot;Dobrý deň&quot;, 0);
-        newEntry(&quot;Spanish&quot;, &quot;Español&quot;, &quot;‎¡Hola!‎&quot;, 1);
-        newEntry(&quot;Swedish&quot;, &quot;Svenska&quot;, &quot;Hej, Goddag&quot;, 0);
-        newEntry(&quot;Thai&quot;, &quot;ภาษาไทย&quot;, &quot;สวัสดีครับ, สวัสดีค่ะ&quot;, 0); // Which lang?
-        newEntry(&quot;Turkish&quot;, &quot;Türkçe&quot;, &quot;Merhaba&quot;, 0);
-        newEntry(&quot;Vietnamese&quot;, &quot;Tiếng Việt&quot;, &quot;Xin Chào&quot;, 0);
-        newEntry(&quot;Yiddish&quot;, &quot;ײַדישע&quot;, &quot;דאָס הײַזעלע &quot;, 1);
-        newEntry(&quot;Japanese&quot;, &quot;日本語&quot;, &quot;こんにちは, コンニチハ&quot;, 2);
-        newEntry(&quot;Chinese&quot;, &quot;中文,普通话,汉语\xBD&quot;, &quot;你好&quot;, 2);
-        newEntry(&quot;Cantonese&quot;, &quot;粵語,廣東話&quot;, &quot;早晨, 你好&quot;, 2);    
-        newEntry(&quot;Korean&quot;, &quot;한글&quot;, &quot;안녕하세요, 안녕하십니까&quot;, 0); // Which lang?
-    }
-    &lt;/script&gt;
-
-    &lt;g id=&quot;insert&quot;/&gt;
-&lt;/svg&gt;
</del></span></pre></div>
<a id="trunkLayoutTestssvgzoompagezoomsvgthroughobjectwithtextxhtmlfromrev211348trunkLayoutTestssvgzoompagezoomsvgthroughobjectwithtextxhtmldisabled"></a>
<div class="copfile"><h4>Copied: trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml (from rev 211348, trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled) (0 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml                                (rev 0)
+++ trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!DOCTYPE html PUBLIC  &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
+&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
+&lt;head&gt;
+&lt;/head&gt;
+&lt;body onload=&quot;runRepaintTest()&quot;&gt;
+&lt;!-- FIXME: This is broken, text doesn't correctly zoom, its font size remains the same upon scaling --&gt;
+&lt;object data=&quot;resources/text.svg&quot; width=&quot;85&quot; height=&quot;20&quot;/&gt;
+&lt;script&gt;var zoomCount = 2; window.shouldZoomOut = true;&lt;/script&gt;
+&lt;script src=&quot;../../../fast/repaint/resources/repaint.js&quot;&gt;&lt;/script&gt;
+&lt;script src=&quot;../resources/testPageZoom.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkLayoutTestssvgzoompagezoomsvgthroughobjectwithtextxhtmldisabled"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled (211348 => 211349)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled        2017-01-29 07:16:51 UTC (rev 211348)
+++ trunk/LayoutTests/svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled        2017-01-29 07:30:39 UTC (rev 211349)
</span><span class="lines">@@ -1,13 +0,0 @@
</span><del>-&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
-&lt;!DOCTYPE html PUBLIC  &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
-&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
-&lt;head&gt;
-&lt;/head&gt;
-&lt;body onload=&quot;runRepaintTest()&quot;&gt;
-&lt;!-- FIXME: This is broken, text doesn't correctly zoom, its font size remains the same upon scaling --&gt;
-&lt;object data=&quot;resources/text.svg&quot; width=&quot;85&quot; height=&quot;20&quot;/&gt;
-&lt;script&gt;var zoomCount = 2; window.shouldZoomOut = true;&lt;/script&gt;
-&lt;script src=&quot;../../../fast/repaint/resources/repaint.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;../resources/testPageZoom.js&quot;&gt;&lt;/script&gt;
-&lt;/body&gt;
-&lt;/html&gt;
</del></span></pre>
</div>
</div>

</body>
</html>