<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>98499</bug_id>
          
          <creation_ts>2012-10-05 01:55:28 -0700</creation_ts>
          <short_desc>Page popup should be smarter about its layout</short_desc>
          <delta_ts>2012-10-09 01:17:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>735502</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-05 01:55:28 -0700</bug_when>
    <thetext>1. Page popup should reposition itself so it won&apos;t get clipped by screen(Win/Linux) or rootview(Mac) bounds.
2. Page popup should resize itself when it doesn&apos;t fit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735573</commentid>
    <comment_count>1</comment_count>
      <attachid>167307</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-05 04:50:07 -0700</bug_when>
    <thetext>Created attachment 167307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735589</commentid>
    <comment_count>2</comment_count>
      <attachid>167307</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-05 05:29:38 -0700</bug_when>
    <thetext>Comment on attachment 167307
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=167307&amp;action=review

&gt; Source/WebCore/Resources/pagepopups/pickerCommon.js:102
&gt; +    // Make vertical adjustments

Such &quot;what we do&quot; comment indicates that we had better split the code in this function into multiple functions.

&gt; Source/WebCore/Resources/pagepopups/pickerCommon.js:122
&gt; +    // Make horizontal adjustments

ditto.

&gt; Source/WebCore/page/PagePopupClient.cpp:95
&gt; +void PagePopupClient::addProperty(const char* name, IntRect rect, DocumentWriter&amp; writer)

IntRect -&gt; const IntRect&amp;

&gt; Source/WebCore/page/PagePopupClient.cpp:102
&gt; +    addProperty(&quot;x&quot;, static_cast&lt;unsigned&gt;(rect.x()), writer);
&gt; +    addProperty(&quot;y&quot;, static_cast&lt;unsigned&gt;(rect.y()), writer);
&gt; +    addProperty(&quot;width&quot;, static_cast&lt;unsigned&gt;(rect.width()), writer);
&gt; +    addProperty(&quot;height&quot;, static_cast&lt;unsigned&gt;(rect.height()), writer);

We should have addProperty for int.

&gt; Source/WebKit/chromium/src/ColorChooserUIController.cpp:111
&gt; +    WebCore::IntRect anchorRectInScreen = m_chromeClient-&gt;rootViewToScreen(m_client-&gt;elementRectRelativeToRootView());
&gt; +    WebCore::FrameView* view = static_cast&lt;WebViewImpl*&gt;(m_chromeClient-&gt;webView())-&gt;page()-&gt;mainFrame()-&gt;view();
&gt; +    WebCore::IntRect rootViewVisibleContentRect = view-&gt;visibleContentRect(true /* include scrollbars */);
&gt; +    WebCore::IntRect rootViewRectInScreen = m_chromeClient-&gt;rootViewToScreen(rootViewVisibleContentRect);

You may add &quot;using namespace WebCore&quot;

&gt; LayoutTests/ChangeLog:9
&gt; +        * platform/chromium/fast/forms/date/page-popup-adjust-rect-expected.txt: Added.
&gt; +        * platform/chromium/fast/forms/date/page-popup-adjust-rect.html: Added.

Putting this test to fast/forms/date/ looks strange. We should make fast/forms/calendar-picker/ or fast/forms/page-popup/ in order that Android port can skip it easily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737376</commentid>
    <comment_count>3</comment_count>
      <attachid>167677</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-08 20:44:59 -0700</bug_when>
    <thetext>Created attachment 167677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737388</commentid>
    <comment_count>4</comment_count>
      <attachid>167677</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-08 21:22:17 -0700</bug_when>
    <thetext>Comment on attachment 167677
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=167677&amp;action=review

&gt; Source/WebCore/ChangeLog:12
&gt; +        Test: platform/chromium/fast/forms/date/page-popup-adjust-rect.html

Need to udpate

&gt; Source/WebCore/Resources/pagepopups/pickerCommon.js:74
&gt; +Rect.intersection = function(rect1, rect2) {
&gt; +    var x = Math.min(rect1.x, rect2.x);
&gt; +    var maxX = Math.max(rect1.maxX, rect2.maxX);
&gt; +    var y = Math.min(rect1.y, rect2.y);
&gt; +    var maxY = Math.max(rect1.maxY, rect2.maxY);
&gt; +    var width = maxX - x;
&gt; +    var height = maxY - y;
&gt; +    return new Rect(x, y, width, height);

This implementation is not &quot;intersection&quot;, but &quot;union&quot;.

&gt; Source/WebKit/chromium/src/DateTimeChooserImpl.cpp:114
&gt; +#endif

nit: ColorChooserUIControler..cpp and DateTimeChooserImpl.cpp should share some code.

&gt; LayoutTests/ChangeLog:9
&gt; +        * platform/chromium/fast/forms/page-popup/page-popup-adjust-rect-expected.txt: Added.
&gt; +        * platform/chromium/fast/forms/page-popup/page-popup-adjust-rect.html: Added.

should skip it in platform/chromium-android/TestExpectation

&gt; LayoutTests/platform/chromium/fast/forms/page-popup/page-popup-adjust-rect.html:45
&gt; +    shouldBe(&apos;popupWindow.adjustWindowRect(30, 10, 30, 10).toString()&apos;, &apos;&quot;Rect(0,0,30,10)&quot;&apos;);

You may use shouldBeEqualToString() to avoid nested quotes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737487</commentid>
    <comment_count>5</comment_count>
      <attachid>167703</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-09 00:35:55 -0700</bug_when>
    <thetext>Created attachment 167703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737489</commentid>
    <comment_count>6</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-09 00:39:39 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Source/WebKit/chromium/src/DateTimeChooserImpl.cpp:114
&gt; &gt; +#endif
&gt; 
&gt; nit: ColorChooserUIControler..cpp and DateTimeChooserImpl.cpp should share some code.

It wouldn&apos;t belong in PagePopupClient so I wasn&apos;t sure where to put it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737494</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-09 00:46:03 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; nit: ColorChooserUIControler..cpp and DateTimeChooserImpl.cpp should share some code.
&gt; 
&gt; It wouldn&apos;t belong in PagePopupClient so I wasn&apos;t sure where to put it.

We may have WebKit/chromium/src/PagePopupClientImpl.cpp, and they may inehrit PagePopupClientImpl.  Anyway, you don&apos;t need to do it in this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737495</commentid>
    <comment_count>8</comment_count>
      <attachid>167703</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-09 00:48:19 -0700</bug_when>
    <thetext>Comment on attachment 167703
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=167703&amp;action=review

&gt; Source/WebCore/Resources/pagepopups/pickerCommon.js:114
&gt; +        availRect = Rect.intersection(availRect, rootViewRect);

Null dereference would happen if Rect.intersection returns null.
Probably it never happens, but we had better set something non-null to availRect just in case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737498</commentid>
    <comment_count>9</comment_count>
      <attachid>167704</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-09 00:55:26 -0700</bug_when>
    <thetext>Created attachment 167704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737516</commentid>
    <comment_count>10</comment_count>
      <attachid>167704</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-09 01:17:39 -0700</bug_when>
    <thetext>Comment on attachment 167704
Patch

Clearing flags on attachment: 167704

Committed r130734: &lt;http://trac.webkit.org/changeset/130734&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737517</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-09 01:17:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167307</attachid>
            <date>2012-10-05 04:50:07 -0700</date>
            <delta_ts>2012-10-08 20:44:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98499-20121005204915.patch</filename>
            <type>text/plain</type>
            <size>37959</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWM5YzQ2MDczZDI1ZjUy
NzNhMjliMjIyMDVjYzE3NjA1MjhjYzI3Yi4uOWZjNGJiMTBjZjg1N2VmMmUwNmQxY2IzMTM4ZmQ5
ZjJjNTYxOWI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTEwLTA1ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIFBhZ2UgcG9wdXAgc2hv
dWxkIGJlIHNtYXJ0ZXIgYWJvdXQgaXRzIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg0OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBmaXhlcyB0aGVzZSB0d28gaXNzdWVz
OgorICAgICAgICAxLiBQYWdlIHBvcHVwIHNob3VsZCByZXBvc2l0aW9uIGl0c2VsZiBzbyBpdCB3
b24ndCBnZXQgY2xpcHBlZCBieSBzY3JlZW4oV2luL0xpbnV4KSBvciByb290dmlldyhNYWMpIGJv
dW5kcy4KKyAgICAgICAgMi4gUGFnZSBwb3B1cCBzaG91bGQgcmVzaXplIGl0c2VsZiB3aGVuIGl0
IGRvZXNuJ3QgZml0LgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9y
bXMvZGF0ZS9wYWdlLXBvcHVwLWFkanVzdC1yZWN0Lmh0bWwKKworICAgICAgICAqIFJlc291cmNl
cy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzOgorICAgICAgICAoaW5pdGlhbGl6ZSk6IFdl
IG5lZWQgdG8gc2V0IGdsb2JhbC5wYXJhbXMgYXQgdGhlIGJlZ2lubmluZyBiZWNhdXNlIHdlIG5l
ZWQgaXQgZm9yIHJlc2l6ZVdpbmRvdygpLgorICAgICAgICAqIFJlc291cmNlcy9wYWdlcG9wdXBz
L2NvbG9yU3VnZ2VzdGlvblBpY2tlci5qczogQWRkZWQgZ2xvYmFsLnBhcmFtcy4KKyAgICAgICAg
KGhhbmRsZU1lc3NhZ2UpOgorICAgICAgICAoaW5pdGlhbGl6ZSk6CisgICAgICAgIChoYW5kbGVB
cmd1bWVudHNUaW1lb3V0KToKKyAgICAgICAgKiBSZXNvdXJjZXMvcGFnZXBvcHVwcy9waWNrZXJD
b21tb24uanM6CisgICAgICAgIChSZWN0KTogUmVwcmVzZW50cyBhbiBheGlzIGFsaWduZWQgcmVj
dGFuZ2xlLgorICAgICAgICAoUmVjdC5wcm90b3R5cGUuZ2V0IG1heFgpOiBHZXRzIHBvc2l0aW9u
IG9mIHJpZ2h0IGVkZ2UuCisgICAgICAgIChSZWN0LnByb3RvdHlwZS5nZXQgbWF4WSk6IEdldHMg
cG9zaXRpb24gb2YgYm90dG9tIGVkZ2UuCisgICAgICAgIChSZWN0LnByb3RvdHlwZS50b1N0cmlu
Zyk6CisgICAgICAgIChSZWN0LmludGVyc2VjdGlvbik6IFJldHVybnMgdGhlIGludGVyc2VjdGlv
biBvZiB0d28gcmVjdGFuZ2xlcy4KKyAgICAgICAgKHJlc2l6ZVdpbmRvdyk6IFJlc2l6ZSB3aW5k
b3cgdG8gYSBjZXJ0YWluIHNpemUuIERvbid0IGFsbG93IHNocmlua2luZy4KKyAgICAgICAgKGFk
anVzdFdpbmRvd1JlY3QpOiBDYWxjdWxhdGVzIHRoZSBiZXN0IHBvc2l0aW9uIGFuZCBzaXplIGZv
ciB0aGUgcG9wdXAuCisgICAgICAgIChzZXRXaW5kb3dSZWN0KTogU2V0cyB0aGUgcG9zaXRpb24g
YW5kIHNpemUgb2YgdGhlIHBvcHVwIHRvIHRoZSBnaXZlbiByZWN0LgorICAgICAgICAqIFJlc291
cmNlcy9wYWdlcG9wdXBzL3N1Z2dlc3Rpb25QaWNrZXIuanM6CisgICAgICAgIChTdWdnZXN0aW9u
UGlja2VyLnByb3RvdHlwZS5fZml4V2luZG93U2l6ZSk6IAorICAgICAgICAqIHBhZ2UvUGFnZVBv
cHVwQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VQb3B1cENsaWVudDo6YWRkUHJv
cGVydHkpOiBGb3IgYWRkaW5nIGFuIEludFJlY3QgdG8gSlNPTi4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHBhZ2UvUGFnZVBvcHVwQ2xpZW50Lmg6CisgICAgICAgIChQYWdlUG9wdXBD
bGllbnQpOgorCiAyMDEyLTEwLTAzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZC4gRml4IHBhcnNlIGVycm9yIGluIHZjcHJvaiBmaWxlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBiZTNjNjg5ZDhhOTY0M2ExZGYzOGQyZDhmNGFkZDgy
OGEzOTcwZWJkLi43MDQxYzk2YWUxZjA5ODFjZDJlYzgzMmNkY2Y3ZjUyMzA4NDM2ZjcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTA1ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIFBhZ2UgcG9wdXAgc2hv
dWxkIGJlIHNtYXJ0ZXIgYWJvdXQgaXRzIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg0OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9Db2xvckNob29zZXJVSUNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpDb2xvckNob29zZXJVSUNvbnRyb2xsZXI6OndyaXRlRG9jdW1l
bnQpOiBTZW5kIGFuY2hvclJlY3RJblNjcmVlbiwgcm9vdFZpZXdSZWN0SW5TY3JlZW4sIGFuZCBj
b25maW5lVG9Sb290Vmlldy4KKyAgICAgICAgKiBzcmMvRGF0ZVRpbWVDaG9vc2VySW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkRhdGVUaW1lQ2hvb3NlckltcGw6OndyaXRlRG9jdW1lbnQpOiBT
ZW5kIGFuY2hvclJlY3RJblNjcmVlbiwgcm9vdFZpZXdSZWN0SW5TY3JlZW4sIGFuZCBjb25maW5l
VG9Sb290Vmlldy4KKyAgICAgICAgKiBzcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQb3B1cEltcGw6OmluaXQpOiBXZSBrZWVwIHRoZSBvcmlnaW5Cb3Vu
ZHNJblJvb3RWaWV3IGFyZ3VtZW50IGZvciBNb2NrUGFnZVBvcHVwRHJpdmVyLgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUG9wdXBJbXBsOjpyZXNpemUpOiBXZWJQYWdlUG9wdXBJbXBsIGlzbid0
IGluIGNoYXJnZSBvZiBzZXR0aW5nIHRoZSBwb3B1cCBwb3NpdGlvbiBhbnkgbW9yZS4KKyAgICAg
ICAgKiBzcmMvV2ViUGFnZVBvcHVwSW1wbC5oOgorICAgICAgICAoV2ViUGFnZVBvcHVwSW1wbCk6
CisKIDIwMTItMTAtMDMgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgSW1wbGVtZW50IGxvY2FsaXplVmFsdWUgZm9yIFRpbWVJbnB1dFR5cGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpz
IGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMK
aW5kZXggZjczMTViMzg3NzkyYWFjMDMyMTNkNDUwMGNkMDA2ZTA2Y2Y5ZGI0YS4uYjliZDA4MThm
MmE1MGM3YjM3ZGI1NzVhZDYzMTFmNWYzMjQyMzlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY2FsZW5kYXJQaWNrZXIuanMKQEAgLTI2Nyw3ICsy
NjcsOCBAQCBDYWxlbmRhclBpY2tlci52YWxpZGF0ZUNvbmZpZyA9IGZ1bmN0aW9uKGNvbmZpZykg
ewogLyoqCiAgKiBAcGFyYW0geyFPYmplY3R9IGFyZ3MKICAqLwotZnVuY3Rpb24gaW5pdGlhbGl6
ZShhcmdzKSB7CitmdW5jdGlvbiBpbml0aWFsaXplKGFyZ3MpIHsgCisgICAgZ2xvYmFsLnBhcmFt
cyA9IGFyZ3M7CiAgICAgdmFyIGVycm9yU3RyaW5nID0gQ2FsZW5kYXJQaWNrZXIudmFsaWRhdGVD
b25maWcoYXJncyk7CiAgICAgaWYgKGFyZ3Muc3VnZ2VzdGlvblZhbHVlcykKICAgICAgICAgZXJy
b3JTdHJpbmcgPSBlcnJvclN0cmluZyB8fCBTdWdnZXN0aW9uUGlja2VyLnZhbGlkYXRlQ29uZmln
KGFyZ3MpCkBAIC0yNzYsNyArMjc3LDYgQEAgZnVuY3Rpb24gaW5pdGlhbGl6ZShhcmdzKSB7CiAg
ICAgICAgIG1haW4udGV4dENvbnRlbnQgPSAiSW50ZXJuYWwgZXJyb3I6ICIgKyBlcnJvclN0cmlu
ZzsKICAgICAgICAgcmVzaXplV2luZG93KG1haW4ub2Zmc2V0V2lkdGgsIG1haW4ub2Zmc2V0SGVp
Z2h0KTsKICAgICB9IGVsc2UgewotICAgICAgICBnbG9iYWwucGFyYW1zID0gYXJnczsKICAgICAg
ICAgaWYgKGdsb2JhbC5wYXJhbXMuc3VnZ2VzdGlvblZhbHVlcyAmJiBnbG9iYWwucGFyYW1zLnN1
Z2dlc3Rpb25WYWx1ZXMubGVuZ3RoKQogICAgICAgICAgICAgb3BlblN1Z2dlc3Rpb25QaWNrZXIo
KTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3Bh
Z2Vwb3B1cHMvY29sb3JTdWdnZXN0aW9uUGlja2VyLmpzIGIvU291cmNlL1dlYkNvcmUvUmVzb3Vy
Y2VzL3BhZ2Vwb3B1cHMvY29sb3JTdWdnZXN0aW9uUGlja2VyLmpzCmluZGV4IDQ2YTBkNDkzMjI5
MzlhMDU5NzRjOTQ5MTJlMTczYWYxNDcyNzIyNzcuLjU1OWI5ZTZkYzgyYjNjYWE0NTM3YmIwNjMw
MTM2ZmJlYTNhOGU3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdl
cG9wdXBzL2NvbG9yU3VnZ2VzdGlvblBpY2tlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9SZXNv
dXJjZXMvcGFnZXBvcHVwcy9jb2xvclN1Z2dlc3Rpb25QaWNrZXIuanMKQEAgLTIzLDIwICsyMywy
NCBAQAogICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotd2luZG93LmFyZ3VtZW50c1JlY2VpdmVkID0gZmFsc2U7Cit2
YXIgZ2xvYmFsID0geworICAgIGFyZ3VtZW50c1JlY2VpdmVkOiBmYWxzZSwKKyAgICBwYXJhbXM6
IG51bGwKK307CiAKIC8qKgogICogQHBhcmFtIHtFdmVudH0gZXZlbnQKICAqLwogZnVuY3Rpb24g
aGFuZGxlTWVzc2FnZShldmVudCkgewogICAgIGluaXRpYWxpemUoSlNPTi5wYXJzZShldmVudC5k
YXRhKSk7Ci0gICAgd2luZG93LmFyZ3VtZW50c1JlY2VpdmVkID0gdHJ1ZTsKKyAgICBnbG9iYWwu
YXJndW1lbnRzUmVjZWl2ZWQgPSB0cnVlOwogfQogCiAvKioKICAqIEBwYXJhbSB7IU9iamVjdH0g
YXJncwogICovCi1mdW5jdGlvbiBpbml0aWFsaXplKGFyZ3MpIHsKK2Z1bmN0aW9uIGluaXRpYWxp
emUoYXJncykgeyAKKyAgICBnbG9iYWwucGFyYW1zID0gYXJnczsKICAgICB2YXIgbWFpbiA9ICQo
Im1haW4iKTsKICAgICBtYWluLmlubmVySFRNTCA9ICIiOwogICAgIHZhciBlcnJvclN0cmluZyA9
IHZhbGlkYXRlQXJndW1lbnRzKGFyZ3MpOwpAQCAtNTMsNyArNTcsNyBAQCB2YXIgRGVmYXVsdENv
bG9yUGFsZXR0ZSA9IFsiIzAwMDAwMCIsICIjNDA0MDQwIiwgIiM4MDgwODAiLCAiI2MwYzBjMCIs
CiAgICAgIiM0YTg2ZTgiLCAiIzAwMDBmZiIsICIjOTkwMGZmIiwgIiNmZjAwZmYiXTsKIAogZnVu
Y3Rpb24gaGFuZGxlQXJndW1lbnRzVGltZW91dCgpIHsKLSAgICBpZiAod2luZG93LmFyZ3VtZW50
c1JlY2VpdmVkKQorICAgIGlmIChnbG9iYWwuYXJndW1lbnRzUmVjZWl2ZWQpCiAgICAgICAgIHJl
dHVybjsKICAgICB2YXIgYXJncyA9IHsKICAgICAgICAgdmFsdWVzIDogRGVmYXVsdENvbG9yUGFs
ZXR0ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL3Bp
Y2tlckNvbW1vbi5qcyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL3BpY2tl
ckNvbW1vbi5qcwppbmRleCA2MTlmMmVlNzZlNWQwZDUyMmE5ZWIxMmM3NjJjZDdhOGE1NmRkZjg4
Li5jNTM1NmVhOGViZTM2MzcyYjkzNTNmZTBiOTJkM2Y3MTA3ZGI4MDY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9waWNrZXJDb21tb24uanMKKysrIGIv
U291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvcGlja2VyQ29tbW9uLmpzCkBAIC00
NSwxNiArNDUsMTAxIEBAIGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQodGFnTmFtZSwgb3B0X2NsYXNz
LCBvcHRfdGV4dCkgewogICAgIHJldHVybiBlbGVtZW50OwogfQogCitmdW5jdGlvbiBSZWN0KHhP
clJlY3QsIHksIHdpZHRoLCBoZWlnaHQpIHsKKyAgICBpZiAodHlwZW9mIHhPclJlY3QgPT09ICJv
YmplY3QiKSB7CisgICAgICAgIHkgPSB4T3JSZWN0Lnk7CisgICAgICAgIHdpZHRoID0geE9yUmVj
dC53aWR0aDsKKyAgICAgICAgaGVpZ2h0ID0geE9yUmVjdC5oZWlnaHQ7CisgICAgICAgIHhPclJl
Y3QgPSB4T3JSZWN0Lng7CisgICAgfQorICAgIHRoaXMueCA9IHhPclJlY3Q7CisgICAgdGhpcy55
ID0geTsKKyAgICB0aGlzLndpZHRoID0gd2lkdGg7CisgICAgdGhpcy5oZWlnaHQgPSBoZWlnaHQ7
Cit9CisKK1JlY3QucHJvdG90eXBlID0geworICAgIGdldCBtYXhYKCkgeyByZXR1cm4gdGhpcy54
ICsgdGhpcy53aWR0aDsgfSwKKyAgICBnZXQgbWF4WSgpIHsgcmV0dXJuIHRoaXMueSArIHRoaXMu
aGVpZ2h0OyB9LAorICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsgcmV0dXJuICJSZWN0KCIgKyB0
aGlzLnggKyAiLCIgKyB0aGlzLnkgKyAiLCIgKyB0aGlzLndpZHRoICsgIiwiICsgdGhpcy5oZWln
aHQgKyAiKSI7IH0KK307CisKK1JlY3QuaW50ZXJzZWN0aW9uID0gZnVuY3Rpb24ocmVjdDEsIHJl
Y3QyKSB7CisgICAgdmFyIHggPSBNYXRoLm1pbihyZWN0MS54LCByZWN0Mi54KTsKKyAgICB2YXIg
bWF4WCA9IE1hdGgubWF4KHJlY3QxLm1heFgsIHJlY3QyLm1heFgpOworICAgIHZhciB5ID0gTWF0
aC5taW4ocmVjdDEueSwgcmVjdDIueSk7CisgICAgdmFyIG1heFkgPSBNYXRoLm1heChyZWN0MS5t
YXhZLCByZWN0Mi5tYXhZKTsKKyAgICB2YXIgd2lkdGggPSBtYXhYIC0geDsKKyAgICB2YXIgaGVp
Z2h0ID0gbWF4WSAtIHk7CisgICAgcmV0dXJuIG5ldyBSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQp
OworfTsKKwogLyoqCiAgKiBAcGFyYW0geyFudW1iZXJ9IHdpZHRoCiAgKiBAcGFyYW0geyFudW1i
ZXJ9IGhlaWdodAogICovCiBmdW5jdGlvbiByZXNpemVXaW5kb3cod2lkdGgsIGhlaWdodCkgewor
ICAgIHNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCh3aWR0aCwgaGVpZ2h0LCB3aWR0aCwg
aGVpZ2h0KSk7Cit9CisKK2Z1bmN0aW9uIGFkanVzdFdpbmRvd1JlY3Qod2lkdGgsIGhlaWdodCwg
bWluV2lkdGgsIG1pbkhlaWdodCkgeworICAgIGlmICh0eXBlb2YgbWluV2lkdGggIT09ICJudW1i
ZXIiKQorICAgICAgICBtaW5XaWR0aCA9IDA7CisgICAgaWYgKHR5cGVvZiBtaW5IZWlnaHQgIT09
ICJudW1iZXIiKQorICAgICAgICBtaW5IZWlnaHQgPSAwOworCisgICAgaWYgKCFnbG9iYWwucGFy
YW1zLmFuY2hvclJlY3RJblNjcmVlbikKKyAgICAgICAgcmV0dXJuIG5ldyBSZWN0KDAsIDAsIHdp
ZHRoLCBoZWlnaHQpOworCisgICAgdmFyIHggPSAwOworICAgIHZhciB5ID0gMDsKKyAgICB2YXIg
YW5jaG9yUmVjdCA9IG5ldyBSZWN0KGdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuKTsK
KyAgICB2YXIgcm9vdFZpZXdSZWN0ID0gbmV3IFJlY3QoZ2xvYmFsLnBhcmFtcy5yb290Vmlld1Jl
Y3RJblNjcmVlbik7CisgICAgdmFyIGF2YWlsUmVjdCA9IG5ldyBSZWN0KHdpbmRvdy5zY3JlZW4u
YXZhaWxMZWZ0LCB3aW5kb3cuc2NyZWVuLmF2YWlsVG9wLCB3aW5kb3cuc2NyZWVuLmF2YWlsV2lk
dGgsIHdpbmRvdy5zY3JlZW4uYXZhaWxIZWlnaHQpOworICAgIGlmIChnbG9iYWwucGFyYW1zLmNv
bmZpbmVUb1Jvb3RWaWV3KQorICAgICAgICBhdmFpbFJlY3QgPSBSZWN0LmludGVyc2VjdGlvbihh
dmFpbFJlY3QsIHJvb3RWaWV3UmVjdCk7CisKKyAgICAvLyBNYWtlIHZlcnRpY2FsIGFkanVzdG1l
bnRzCisKKyAgICB2YXIgYXZhaWxhYmxlU3BhY2VBYm92ZSA9IGFuY2hvclJlY3QueSAtIGF2YWls
UmVjdC55OworICAgIGF2YWlsYWJsZVNwYWNlQWJvdmUgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihh
dmFpbFJlY3QuaGVpZ2h0LCBhdmFpbGFibGVTcGFjZUFib3ZlKSk7CisKKyAgICB2YXIgYXZhaWxh
YmxlU3BhY2VCZWxvdyA9IGF2YWlsUmVjdC5tYXhZIC0gYW5jaG9yUmVjdC5tYXhZOworICAgIGF2
YWlsYWJsZVNwYWNlQmVsb3cgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihhdmFpbFJlY3QuaGVpZ2h0
LCBhdmFpbGFibGVTcGFjZUJlbG93KSk7CisKKyAgICBpZiAoaGVpZ2h0ID4gYXZhaWxhYmxlU3Bh
Y2VCZWxvdyAmJiBhdmFpbGFibGVTcGFjZUJlbG93IDwgYXZhaWxhYmxlU3BhY2VBYm92ZSkgewor
ICAgICAgICBoZWlnaHQgPSBNYXRoLm1pbihoZWlnaHQsIGF2YWlsYWJsZVNwYWNlQWJvdmUpOwor
ICAgICAgICBoZWlnaHQgPSBNYXRoLm1heChoZWlnaHQsIG1pbkhlaWdodCk7CisgICAgICAgIHkg
PSBhbmNob3JSZWN0LnkgLSBoZWlnaHQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaGVpZ2h0ID0g
TWF0aC5taW4oaGVpZ2h0LCBhdmFpbGFibGVTcGFjZUJlbG93KTsKKyAgICAgICAgaGVpZ2h0ID0g
TWF0aC5tYXgoaGVpZ2h0LCBtaW5IZWlnaHQpOworICAgICAgICB5ID0gYW5jaG9yUmVjdC5tYXhZ
OworICAgIH0KKyAgICB5ID0gTWF0aC5taW4oeSwgYXZhaWxSZWN0Lm1heFkgLSBoZWlnaHQpOwor
ICAgIHkgPSBNYXRoLm1heCh5LCBhdmFpbFJlY3QueSk7CisKKyAgICAvLyBNYWtlIGhvcml6b250
YWwgYWRqdXN0bWVudHMKKworICAgIHdpZHRoID0gTWF0aC5taW4od2lkdGgsIGF2YWlsUmVjdC53
aWR0aCk7CisgICAgd2lkdGggPSBNYXRoLm1heCh3aWR0aCwgbWluV2lkdGgpOworICAgIHggPSBh
bmNob3JSZWN0Lng7CisgICAgdmFyIGF2YWlsYWJsZVNwYWNlVG9SaWdodCA9IGF2YWlsUmVjdC5t
YXhYIC0gYW5jaG9yUmVjdC54OworICAgIGlmICh3aWR0aCA+IGF2YWlsYWJsZVNwYWNlVG9SaWdo
dCkKKyAgICAgICAgeCAtPSAod2lkdGggLSBhdmFpbGFibGVTcGFjZVRvUmlnaHQpOworICAgIHgg
PSBNYXRoLm1pbih4LCBhdmFpbFJlY3QubWF4WCAtIHdpZHRoKTsKKyAgICB4ID0gTWF0aC5tYXgo
eCwgYXZhaWxSZWN0LngpOworCisgICAgcmV0dXJuIG5ldyBSZWN0KHgsIHksIHdpZHRoLCBoZWln
aHQpOworfQorCitmdW5jdGlvbiBzZXRXaW5kb3dSZWN0KHJlY3QpIHsKICAgICBpZiAod2luZG93
LmZyYW1lRWxlbWVudCkgewotICAgICAgICB3aW5kb3cuZnJhbWVFbGVtZW50LnN0eWxlLndpZHRo
ID0gd2lkdGggKyAicHgiOwotICAgICAgICB3aW5kb3cuZnJhbWVFbGVtZW50LnN0eWxlLmhlaWdo
dCA9IGhlaWdodCArICJweCI7CisgICAgICAgIHdpbmRvdy5mcmFtZUVsZW1lbnQuc3R5bGUud2lk
dGggPSByZWN0LndpZHRoICsgInB4IjsKKyAgICAgICAgd2luZG93LmZyYW1lRWxlbWVudC5zdHls
ZS5oZWlnaHQgPSByZWN0LmhlaWdodCArICJweCI7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgd2lu
ZG93LnJlc2l6ZVRvKHdpZHRoLCBoZWlnaHQpOworICAgICAgICB3aW5kb3cubW92ZVRvKHJlY3Qu
eCAtIHdpbmRvdy5zY3JlZW4uYXZhaWxMZWZ0LCByZWN0LnkgLSB3aW5kb3cuc2NyZWVuLmF2YWls
VG9wKTsKKyAgICAgICAgd2luZG93LnJlc2l6ZVRvKHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9w
dXBzL3N1Z2dlc3Rpb25QaWNrZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBv
cHVwcy9zdWdnZXN0aW9uUGlja2VyLmpzCmluZGV4IDNjMGU5NWM2YWE2MDM1MmFiODVmNWNmNjE1
YjM4NWJhMDdhMjIyYzcuLjA4NDQwNjM2NDA4MGUzZmMxZmRhMzZkYmJmZTZlY2QyODUyYTYxYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL3N1Z2dlc3Rp
b25QaWNrZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvc3Vn
Z2VzdGlvblBpY2tlci5qcwpAQCAtMTU3LDcgKzE1Nyw5IEBAIFN1Z2dlc3Rpb25QaWNrZXIucHJv
dG90eXBlLl9maXhXaW5kb3dTaXplID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIGRlc2lyZWRXaW5k
b3dIZWlnaHQgPSBtYXhIZWlnaHQ7CiAgICAgfQogCi0gICAgcmVzaXplV2luZG93KGRlc2lyZWRX
aW5kb3dXaWR0aCwgZGVzaXJlZFdpbmRvd0hlaWdodCk7CisgICAgdmFyIHdpbmRvd1JlY3QgPSBh
ZGp1c3RXaW5kb3dSZWN0KGRlc2lyZWRXaW5kb3dXaWR0aCwgZGVzaXJlZFdpbmRvd0hlaWdodCwg
ZGVzaXJlZFdpbmRvd1dpZHRoLCAwKTsKKyAgICB0aGlzLl9jb250YWluZXJFbGVtZW50LnN0eWxl
LmhlaWdodCA9ICh3aW5kb3dSZWN0LmhlaWdodCAtIExpc3RCb3JkZXIpICsgInB4IjsKKyAgICBz
ZXRXaW5kb3dSZWN0KHdpbmRvd1JlY3QpOwogfTsKIAogU3VnZ2VzdGlvblBpY2tlci5wcm90b3R5
cGUuX2xheW91dCA9IGZ1bmN0aW9uKCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlUG9wdXBDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlUG9wdXBDbGll
bnQuY3BwCmluZGV4IDViNjY2ZWE0NTk1YmQ2ZjZiNzYyMWYyODZiMTMyNjFjZjNjYzFjYzUuLjQy
ZmYzZjk5MTEwZTJlMWM1OWZlNGY4ZGMwYWE2ZjI3YTBkMDM2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVwQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VQb3B1cENsaWVudC5jcHAKQEAgLTkyLDYgKzkyLDE3IEBAIHZvaWQgUGFnZVBvcHVw
Q2xpZW50OjphZGRQcm9wZXJ0eShjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5n
PiYgdmFsdWVzCiAgICAgYWRkTGl0ZXJhbCgiXSxcbiIsIHdyaXRlcik7CiB9CiAKK3ZvaWQgUGFn
ZVBvcHVwQ2xpZW50OjphZGRQcm9wZXJ0eShjb25zdCBjaGFyKiBuYW1lLCBJbnRSZWN0IHJlY3Qs
IERvY3VtZW50V3JpdGVyJiB3cml0ZXIpCit7CisgICAgd3JpdGVyLmFkZERhdGEobmFtZSwgc3Ry
bGVuKG5hbWUpKTsKKyAgICBhZGRMaXRlcmFsKCI6IHsiLCB3cml0ZXIpOworICAgIGFkZFByb3Bl
cnR5KCJ4Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJlY3QueCgpKSwgd3JpdGVyKTsKKyAgICBh
ZGRQcm9wZXJ0eSgieSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihyZWN0LnkoKSksIHdyaXRlcik7
CisgICAgYWRkUHJvcGVydHkoIndpZHRoIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJlY3Qud2lk
dGgoKSksIHdyaXRlcik7CisgICAgYWRkUHJvcGVydHkoImhlaWdodCIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihyZWN0LmhlaWdodCgpKSwgd3JpdGVyKTsKKyAgICBhZGRMaXRlcmFsKCJ9LFxuIiwg
d3JpdGVyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KFBBR0VfUE9QVVApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlUG9wdXBDbGllbnQuaAppbmRleCA3ZDk3
ODQ2MWVhMzc3MTMzZjJlNmVlNGE4NmU5ZmMzNmNlZmZkZDRiLi43MTA3NGRkM2VmN2EyYmQyM2Fk
N2UyZDM3MjgyNzQ2OTZiMzk2ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VQb3B1cENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVwQ2xpZW50
LmgKQEAgLTM0LDcgKzM0LDcgQEAKICNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKIAogI2luY2x1ZGUg
IkRvY3VtZW50V3JpdGVyLmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgIkludFJl
Y3QuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNzIsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgYWRkUHJvcGVy
dHkoY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgdmFsdWUsIERvY3VtZW50V3JpdGVyJik7CiAg
ICAgc3RhdGljIHZvaWQgYWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFtZSwgYm9vbCB2YWx1ZSwg
RG9jdW1lbnRXcml0ZXImKTsKICAgICBzdGF0aWMgdm9pZCBhZGRQcm9wZXJ0eShjb25zdCBjaGFy
KiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmFsdWVzLCBEb2N1bWVudFdyaXRlciYpOwor
ICAgIHN0YXRpYyB2b2lkIGFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIEludFJlY3QsIERv
Y3VtZW50V3JpdGVyJik7CiB9OwogCiBpbmxpbmUgdm9pZCBQYWdlUG9wdXBDbGllbnQ6OmFkZFN0
cmluZyhjb25zdCBTdHJpbmcmIHN0ciwgRG9jdW1lbnRXcml0ZXImIHdyaXRlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbG9yQ2hvb3NlclVJQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db2xvckNob29zZXJVSUNvbnRyb2xsZXIu
Y3BwCmluZGV4IDU0ZDEzNGZlNjNhNzFiZGZhYzllYTA3NzM5N2JmZDQxOWU3ODZjMmUuLjE4ODY0
NjFiZWQwZDc5ZjJhOGM5OGMwOTQ4MzYyYTRkYmFkYmI5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0NvbG9yQ2hvb3NlclVJQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyLmNwcApAQCAt
MzIsMTAgKzMyLDEyIEBACiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJDb2xvckNob29z
ZXJDbGllbnQuaCIKICNpbmNsdWRlICJDb2xvclN1Z2dlc3Rpb25QaWNrZXIuaCIKKyNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVk
U3RyaW5ncy5oIgogI2luY2x1ZGUgIlBpY2tlckNvbW1vbi5oIgogI2luY2x1ZGUgIldlYkNvbG9y
Q2hvb3Nlci5oIgorI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAjaW5jbHVkZSA8cHVibGljL1Bs
YXRmb3JtLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkNvbG9yLmg+CiAjaW5jbHVkZSA8cHVibGlj
L1dlYkxvY2FsaXplZFN0cmluZy5oPgpAQCAtMTAzLDYgKzEwNSwxMCBAQCB2b2lkIENvbG9yQ2hv
b3NlclVJQ29udHJvbGxlcjo6d3JpdGVEb2N1bWVudChXZWJDb3JlOjpEb2N1bWVudFdyaXRlciYg
d3JpdGVyKQogICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25WYWx1ZXM7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHN1Z2dlc3Rpb25zLnNpemUoKTsgaSsrKQogICAgICAgICBzdWdn
ZXN0aW9uVmFsdWVzLmFwcGVuZChzdWdnZXN0aW9uc1tpXS5zZXJpYWxpemVkKCkpOworICAgIFdl
YkNvcmU6OkludFJlY3QgYW5jaG9yUmVjdEluU2NyZWVuID0gbV9jaHJvbWVDbGllbnQtPnJvb3RW
aWV3VG9TY3JlZW4obV9jbGllbnQtPmVsZW1lbnRSZWN0UmVsYXRpdmVUb1Jvb3RWaWV3KCkpOwor
ICAgIFdlYkNvcmU6OkZyYW1lVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFdlYlZpZXdJbXBsKj4o
bV9jaHJvbWVDbGllbnQtPndlYlZpZXcoKSktPnBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKTsK
KyAgICBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VmlzaWJsZUNvbnRlbnRSZWN0ID0gdmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyogaW5jbHVkZSBzY3JvbGxiYXJzICovKTsKKyAgICBX
ZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3UmVjdEluU2NyZWVuID0gbV9jaHJvbWVDbGllbnQtPnJv
b3RWaWV3VG9TY3JlZW4ocm9vdFZpZXdWaXNpYmxlQ29udGVudFJlY3QpOwogICAgIAogICAgIFdl
YkNvcmU6OlBhZ2VQb3B1cENsaWVudDo6YWRkU3RyaW5nKCI8IURPQ1RZUEUgaHRtbD48aGVhZD48
bWV0YSBjaGFyc2V0PSdVVEYtOCc+PHN0eWxlPlxuIiwgd3JpdGVyKTsKICAgICB3cml0ZXIuYWRk
RGF0YShXZWJDb3JlOjpwaWNrZXJDb21tb25Dc3MsIHNpemVvZihXZWJDb3JlOjpwaWNrZXJDb21t
b25Dc3MpKTsKQEAgLTExMSw2ICsxMTcsMTMgQEAgdm9pZCBDb2xvckNob29zZXJVSUNvbnRyb2xs
ZXI6OndyaXRlRG9jdW1lbnQoV2ViQ29yZTo6RG9jdW1lbnRXcml0ZXImIHdyaXRlcikKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpbmRvdy5kaWFsb2dBcmd1bWVudHMg
PSB7XG4iLCB3cml0ZXIpOwogICAgIFdlYkNvcmU6OlBhZ2VQb3B1cENsaWVudDo6YWRkUHJvcGVy
dHkoInZhbHVlcyIsIHN1Z2dlc3Rpb25WYWx1ZXMsIHdyaXRlcik7ICAgICAgIAogICAgIFdlYkNv
cmU6OlBhZ2VQb3B1cENsaWVudDo6YWRkUHJvcGVydHkoIm90aGVyQ29sb3JMYWJlbCIsIFBsYXRm
b3JtOjpjdXJyZW50KCktPnF1ZXJ5TG9jYWxpemVkU3RyaW5nKFdlYkxvY2FsaXplZFN0cmluZzo6
T3RoZXJDb2xvckxhYmVsKSwgd3JpdGVyKTsKKyAgICBhZGRQcm9wZXJ0eSgiYW5jaG9yUmVjdElu
U2NyZWVuIiwgYW5jaG9yUmVjdEluU2NyZWVuLCB3cml0ZXIpOworICAgIGFkZFByb3BlcnR5KCJy
b290Vmlld1JlY3RJblNjcmVlbiIsIHJvb3RWaWV3UmVjdEluU2NyZWVuLCB3cml0ZXIpOworI2lm
IE9TKE1BQ19PU19YKQorICAgIGFkZFByb3BlcnR5KCJjb25maW5lVG9Sb290VmlldyIsIHRydWUs
IHdyaXRlcik7CisjZWxzZQorICAgIGFkZFByb3BlcnR5KCJjb25maW5lVG9Sb290VmlldyIsIGZh
bHNlLCB3cml0ZXIpOworI2VuZGlmCiAgICAgV2ViQ29yZTo6UGFnZVBvcHVwQ2xpZW50OjphZGRT
dHJpbmcoIn07XG4iLCB3cml0ZXIpOwogICAgIHdyaXRlci5hZGREYXRhKFdlYkNvcmU6OnBpY2tl
ckNvbW1vbkpzLCBzaXplb2YoV2ViQ29yZTo6cGlja2VyQ29tbW9uSnMpKTsKICAgICB3cml0ZXIu
YWRkRGF0YShXZWJDb3JlOjpjb2xvclN1Z2dlc3Rpb25QaWNrZXJKcywgc2l6ZW9mKFdlYkNvcmU6
OmNvbG9yU3VnZ2VzdGlvblBpY2tlckpzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9EYXRlVGltZUNob29zZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0RhdGVUaW1lQ2hvb3NlckltcGwuY3BwCmluZGV4IGNiZDBmZDY5ZjVkYjE1NmFmNTk3
ZTdiZGY4MDRmYTMzYjdkYzQ1MGEuLjFhNWI3YTI5YTVkNDUwNTZiMjc1ZmJkNWUzNmMzMGU0MDBj
ZWI1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0RhdGVUaW1lQ2hv
b3NlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0RhdGVUaW1lQ2hv
b3NlckltcGwuY3BwCkBAIC0zNywxMiArMzcsMTQgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnRJ
bXBsLmgiCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJEYXRlVGltZUNo
b29zZXJDbGllbnQuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnB1dFR5
cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVyLmgi
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQaWNrZXJDb21tb24uaCIK
ICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAjaW5j
bHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkxvY2FsaXplZFN0
cmluZy5oPgogCkBAIC04OSw2ICs5MSwxMCBAQCB2b2lkIERhdGVUaW1lQ2hvb3NlckltcGw6Ondy
aXRlRG9jdW1lbnQoV2ViQ29yZTo6RG9jdW1lbnRXcml0ZXImIHdyaXRlcikKICAgICBTdHJpbmcg
c3RlcFN0cmluZyA9IFN0cmluZzo6bnVtYmVyKG1fcGFyYW1ldGVycy5zdGVwKTsKICAgICBTdHJp
bmcgc3RlcEJhc2VTdHJpbmcgPSBTdHJpbmc6Om51bWJlcihtX3BhcmFtZXRlcnMuc3RlcEJhc2Us
IDExLCBXVEY6OlRydW5jYXRlVHJhaWxpbmdaZXJvcyk7CiAgICAgT3duUHRyPExvY2FsaXplcj4g
bG9jYWxpemVyID0gTG9jYWxpemVyOjpjcmVhdGUobnVsbEF0b20pOworICAgIEludFJlY3QgYW5j
aG9yUmVjdEluU2NyZWVuID0gbV9jaHJvbWVDbGllbnQtPnJvb3RWaWV3VG9TY3JlZW4obV9wYXJh
bWV0ZXJzLmFuY2hvclJlY3RJblJvb3RWaWV3KTsKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBzdGF0
aWNfY2FzdDxXZWJWaWV3SW1wbCo+KG1fY2hyb21lQ2xpZW50LT53ZWJWaWV3KCkpLT5wYWdlKCkt
Pm1haW5GcmFtZSgpLT52aWV3KCk7CisgICAgSW50UmVjdCByb290Vmlld1Zpc2libGVDb250ZW50
UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCh0cnVlIC8qIGluY2x1ZGUgc2Nyb2xsYmFy
cyAqLyk7CisgICAgSW50UmVjdCByb290Vmlld1JlY3RJblNjcmVlbiA9IG1fY2hyb21lQ2xpZW50
LT5yb290Vmlld1RvU2NyZWVuKHJvb3RWaWV3VmlzaWJsZUNvbnRlbnRSZWN0KTsKIAogICAgIGFk
ZFN0cmluZygiPCFET0NUWVBFIGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0nVVRGLTgnPjxzdHls
ZT5cbiIsIHdyaXRlcik7CiAgICAgd3JpdGVyLmFkZERhdGEoV2ViQ29yZTo6cGlja2VyQ29tbW9u
Q3NzLCBzaXplb2YoV2ViQ29yZTo6cGlja2VyQ29tbW9uQ3NzKSk7CkBAIC05OSw2ICsxMDUsMTMg
QEAgdm9pZCBEYXRlVGltZUNob29zZXJJbXBsOjp3cml0ZURvY3VtZW50KFdlYkNvcmU6OkRvY3Vt
ZW50V3JpdGVyJiB3cml0ZXIpCiAgICAgICAgIHdyaXRlci5hZGREYXRhKGV4dHJhU3R5bGUuZGF0
YSgpLCBleHRyYVN0eWxlLmxlbmd0aCgpKTsKICAgICBhZGRTdHJpbmcoIjwvc3R5bGU+PC9oZWFk
Pjxib2R5PjxkaXYgaWQ9bWFpbj5Mb2FkaW5nLi4uPC9kaXY+PHNjcmlwdD5cbiIKICAgICAgICAg
ICAgICAgICJ3aW5kb3cuZGlhbG9nQXJndW1lbnRzID0ge1xuIiwgd3JpdGVyKTsKKyAgICBhZGRQ
cm9wZXJ0eSgiYW5jaG9yUmVjdEluU2NyZWVuIiwgYW5jaG9yUmVjdEluU2NyZWVuLCB3cml0ZXIp
OworICAgIGFkZFByb3BlcnR5KCJyb290Vmlld1JlY3RJblNjcmVlbiIsIHJvb3RWaWV3UmVjdElu
U2NyZWVuLCB3cml0ZXIpOworI2lmIE9TKE1BQ19PU19YKQorICAgIGFkZFByb3BlcnR5KCJjb25m
aW5lVG9Sb290VmlldyIsIHRydWUsIHdyaXRlcik7CisjZWxzZQorICAgIGFkZFByb3BlcnR5KCJj
b25maW5lVG9Sb290VmlldyIsIGZhbHNlLCB3cml0ZXIpOworI2VuZGlmCiAgICAgYWRkUHJvcGVy
dHkoIm1pbiIsIG1pblN0cmluZywgd3JpdGVyKTsKICAgICBhZGRQcm9wZXJ0eSgibWF4IiwgbWF4
U3RyaW5nLCB3cml0ZXIpOwogICAgIGFkZFByb3BlcnR5KCJzdGVwIiwgc3RlcFN0cmluZywgd3Jp
dGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1
cEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5j
cHAKaW5kZXggMWUwZmNlYmI1MjlmZjAyZTFhMDA5YWFmNWI3NDgxZWNlZjEwY2M2Ny4uZTQ4MDhm
ZDcwNmZhOTAwNjlmZTFjMmZmZTNlMWMxODllZDAxN2U5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKQEAgLTE1MSwxNSArMTUxLDE0IEBA
IFdlYlBhZ2VQb3B1cEltcGw6On5XZWJQYWdlUG9wdXBJbXBsKCkKICAgICBBU1NFUlQoIW1fcGFn
ZSk7CiB9CiAKLWJvb2wgV2ViUGFnZVBvcHVwSW1wbDo6aW5pdChXZWJWaWV3SW1wbCogd2ViVmll
dywgUGFnZVBvcHVwQ2xpZW50KiBwb3B1cENsaWVudCwgY29uc3QgSW50UmVjdCYgb3JpZ2luQm91
bmRzSW5Sb290VmlldykKK2Jvb2wgV2ViUGFnZVBvcHVwSW1wbDo6aW5pdChXZWJWaWV3SW1wbCog
d2ViVmlldywgUGFnZVBvcHVwQ2xpZW50KiBwb3B1cENsaWVudCwgY29uc3QgSW50UmVjdCYpCiB7
CiAgICAgQVNTRVJUKHdlYlZpZXcpOwogICAgIEFTU0VSVChwb3B1cENsaWVudCk7CiAgICAgbV93
ZWJWaWV3ID0gd2ViVmlldzsKICAgICBtX3BvcHVwQ2xpZW50ID0gcG9wdXBDbGllbnQ7Ci0gICAg
bV9vcmlnaW5Cb3VuZHNJblJvb3RWaWV3ID0gb3JpZ2luQm91bmRzSW5Sb290VmlldzsKIAotICAg
IHJlcG9zaXRpb24obV9wb3B1cENsaWVudC0+Y29udGVudFNpemUoKSk7CisgICAgcmVzaXplKG1f
cG9wdXBDbGllbnQtPmNvbnRlbnRTaXplKCkpOwogCiAgICAgaWYgKCFpbml0UGFnZSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMzMsMjIgKzIzMiwxMCBAQCB2b2lkIFdlYlBhZ2VQb3B1
cEltcGw6OnBhaW50KFdlYkNhbnZhcyogY2FudmFzLCBjb25zdCBXZWJSZWN0JiByZWN0LCBQYWlu
dE9wdGlvbgogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6cGFpbnQobV9wYWdlLmdldCgpLCAwLCBj
YW52YXMsIHJlY3QsIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6T3BhcXVlKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUG9wdXBJbXBsOjpyZXBvc2l0aW9uKGNvbnN0IFdlYlNpemUmIHBvcHVwU2l6ZSkKLXsKLSAg
ICBXZWJTaXplIHJvb3RWaWV3U2l6ZSA9IG1fd2ViVmlldy0+c2l6ZSgpOwotICAgIEludFJlY3Qg
cG9wdXBCb3VuZHNJblJvb3RWaWV3KEludFBvaW50KG1heCgwLCBtX29yaWdpbkJvdW5kc0luUm9v
dFZpZXcueCgpKSwgbWF4KDAsIG1fb3JpZ2luQm91bmRzSW5Sb290Vmlldy5tYXhZKCkpKSwgcG9w
dXBTaXplKTsKLSAgICBpZiAocG9wdXBCb3VuZHNJblJvb3RWaWV3Lm1heFkoKSA+IHJvb3RWaWV3
U2l6ZS5oZWlnaHQpCi0gICAgICAgIHBvcHVwQm91bmRzSW5Sb290Vmlldy5zZXRZKG1heCgwLCBt
X29yaWdpbkJvdW5kc0luUm9vdFZpZXcueSgpIC0gcG9wdXBTaXplLmhlaWdodCkpOwotICAgIGlm
IChwb3B1cEJvdW5kc0luUm9vdFZpZXcubWF4WCgpID4gcm9vdFZpZXdTaXplLndpZHRoKQotICAg
ICAgICBwb3B1cEJvdW5kc0luUm9vdFZpZXcuc2V0WChtYXgoMCwgcm9vdFZpZXdTaXplLndpZHRo
IC0gcG9wdXBTaXplLndpZHRoKSk7Ci0gICAgSW50UmVjdCBib3VuZHNJblNjcmVlbiA9IG1fd2Vi
Vmlldy0+cGFnZSgpLT5jaHJvbWUoKS0+cm9vdFZpZXdUb1NjcmVlbihwb3B1cEJvdW5kc0luUm9v
dFZpZXcpOwotICAgIG1fd2lkZ2V0Q2xpZW50LT5zZXRXaW5kb3dSZWN0KGJvdW5kc0luU2NyZWVu
KTsKLSAgICBtX3dpbmRvd1JlY3RJblNjcmVlbiA9IGJvdW5kc0luU2NyZWVuOwotfQotCiB2b2lk
IFdlYlBhZ2VQb3B1cEltcGw6OnJlc2l6ZShjb25zdCBXZWJTaXplJiBuZXdTaXplKQogewotICAg
IHJlcG9zaXRpb24obmV3U2l6ZSk7CisgICAgbV93aW5kb3dSZWN0SW5TY3JlZW4gPSBXZWJSZWN0
KG1fd2luZG93UmVjdEluU2NyZWVuLngsIG1fd2luZG93UmVjdEluU2NyZWVuLnksIG5ld1NpemUu
d2lkdGgsIG5ld1NpemUuaGVpZ2h0KTsKKyAgICBtX3dpZGdldENsaWVudC0+c2V0V2luZG93UmVj
dChtX3dpbmRvd1JlY3RJblNjcmVlbik7CiAKICAgICBpZiAobV9wYWdlKQogICAgICAgICBtX3Bh
Z2UtPm1haW5GcmFtZSgpLT52aWV3KCktPnJlc2l6ZShuZXdTaXplKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuaAppbmRleCBlNjg0NGJmZDA2YTQ5OGJk
YjUwZGI4MTkwNmQ5NmU0YWUxNWRiNGE0Li5jZjJiYmJhNzg3MmQ1YTljZDQ5YzQ0NzczY2RjMWMy
NGY3ZmMxZjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdl
UG9wdXBJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVw
SW1wbC5oCkBAIC04NywxMSArODcsOSBAQCBwcml2YXRlOgogCiAgICAgZXhwbGljaXQgV2ViUGFn
ZVBvcHVwSW1wbChXZWJXaWRnZXRDbGllbnQqKTsKICAgICBib29sIGluaXRQYWdlKCk7Ci0gICAg
dm9pZCByZXBvc2l0aW9uKGNvbnN0IFdlYlNpemUmKTsKIAogICAgIFdlYldpZGdldENsaWVudCog
bV93aWRnZXRDbGllbnQ7CiAgICAgV2ViUmVjdCBtX3dpbmRvd1JlY3RJblNjcmVlbjsKLSAgICBX
ZWJDb3JlOjpJbnRSZWN0IG1fb3JpZ2luQm91bmRzSW5Sb290VmlldzsKICAgICBXZWJWaWV3SW1w
bCogbV93ZWJWaWV3OwogICAgIE93blB0cjxXZWJDb3JlOjpQYWdlPiBtX3BhZ2U7CiAgICAgT3du
UHRyPFBhZ2VQb3B1cENocm9tZUNsaWVudD4gbV9jaHJvbWVDbGllbnQ7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmQ0OTcw
MDUxMWQyYjgzMjlmYjBmZmUzMDcyYTRjZDNhZjZhZTE5ZS4uMjA0MmMzMWIzYjUyMDM1NDAzMTE2
MzYwZDI5MDM1ZjgxYWUzNjA4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTEwLTA1ICBL
ZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIFBhZ2UgcG9wdXAg
c2hvdWxkIGJlIHNtYXJ0ZXIgYWJvdXQgaXRzIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg0OTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMv
ZGF0ZS9wYWdlLXBvcHVwLWFkanVzdC1yZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9kYXRlL3BhZ2UtcG9wdXAtYWRqdXN0LXJl
Y3QuaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMDMgIERvdWdsYXMgU3RvY2t3ZWxsICA8ZHN0b2Nr
d2VsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2hyb21pdW0gbmVlZHMgc3VwcG9ydCBmb3Ig
Ym9yZGVyIHJhZGl1cyBjbGlwcGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vZmFzdC9mb3Jtcy9kYXRlL3BhZ2UtcG9wdXAtYWRqdXN0LXJlY3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9kYXRlL3BhZ2Ut
cG9wdXAtYWRqdXN0LXJlY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1ZmEwMjQ4NzJlYTFj
Y2Q3ZTliNzhlZjBlYmUyNmQ0ZDg1OGU0MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2RhdGUvcGFnZS1wb3B1cC1hZGp1c3QtcmVj
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2OSBAQAorVGVzdCBmb3IgY2hpbGQgZWxlbWVudHMg
b2YgYSBkYXRhbGlzdCBlbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
TW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgdmVydGljYWwgYXhpcy4KK1BBU1MgcG9wdXBX
aW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVj
dCgwLDAsMzAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwg
MzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93
LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwx
MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwg
MTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwyMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFk
anVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwzMCwz
MCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTAp
LnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw0MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVz
dFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw1MCwzMCwx
MCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRv
U3RyaW5nKCkgaXMgIlJlY3QoMCw0MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdp
bmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw1MCwzMCwxMCki
CitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3Ry
aW5nKCkgaXMgIlJlY3QoMCw1MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRv
d1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw1MCwzMCwxMCkiCitN
b3ZlIGFuY2hvciBlbGVtZW50IGFsb25nIHRoZSBob3Jpem9udGFsIGF4aXMuCitQQVNTIHBvcHVw
V2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJl
Y3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEw
LCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2lu
ZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3Qo
MCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAz
MCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93
LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwx
MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwg
MTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMTAsMTAsMzAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5h
ZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDIwLDEw
LDMwLDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAx
MCkudG9TdHJpbmcoKSBpcyAiUmVjdCgzMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFk
anVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoNDAsMTAs
MzAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEw
KS50b1N0cmluZygpIGlzICJSZWN0KDUwLDEwLDMwLDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRq
dXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCg1MCwxMCwz
MCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTAp
LnRvU3RyaW5nKCkgaXMgIlJlY3QoNTAsMTAsMzAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1
c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDUwLDEwLDMw
LDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCku
dG9TdHJpbmcoKSBpcyAiUmVjdCg1MCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVz
dFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoNTAsMTAsMzAs
MTApIgorTW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgdmVydGljYWwgYXhpcy4gT3BlbiBw
b3B1cCB0aGF0IGlzIHRvbyB0YWxsLgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0
KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDYwKSIKK1BBU1Mg
cG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygp
IGlzICJSZWN0KDAsMCwzMCw2MCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3Qo
MzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDEwLDMwLDUwKSIKK1BBU1Mg
cG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygp
IGlzICJSZWN0KDAsMjAsMzAsNDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0
KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwzMCwzMCwzMCkiCitQQVNT
IHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmco
KSBpcyAiUmVjdCgwLDAsMzAsMzApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0
KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDQwKSIKK1BBU1Mg
cG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygp
IGlzICJSZWN0KDAsMCwzMCw1MCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3Qo
MzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsNjApIgorUEFTUyBw
b3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCkg
aXMgIlJlY3QoMCwwLDMwLDYwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgz
MCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCw2MCkiCitNb3ZlIGFu
Y2hvciBlbGVtZW50IGFsb25nIHRoZSB2ZXJ0aWNhbCBheGlzLiBPcGVuIHBvcHVwIHRoYXQgaXMg
dG9vIHRhbGwgYW5kIHdvbid0IHNocmluay4KK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93
UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDEwMDAp
IgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCku
dG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsMTAwMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVz
dFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwz
MCwxMDAwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAs
IDEwMDApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDEwMDApIgorUEFTUyBwb3B1cFdpbmRv
dy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJpbmcoKSBpcyAiUmVj
dCgwLDAsMzAsMTAwMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEw
MDAsIDMwLCAxMDAwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCwxMDAwKSIKK1BBU1MgcG9w
dXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCkg
aXMgIlJlY3QoMCwwLDMwLDEwMDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0
KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsMTAwMCkiCitQ
QVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0
cmluZygpIGlzICJSZWN0KDAsMCwzMCwxMDAwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2lu
ZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDEw
MDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAw
MCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsMTAwMCkiCitHcm93IHBvcHVwIHdpZHRoLgor
UEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmlu
ZygpIGlzICJSZWN0KDMwLDEwLDMwLDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93
UmVjdCg0MCwgMTAsIDQwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgzMCwxMCw0MCwxMCkiCitQ
QVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoNTAsIDEwLCA1MCwgMTApLnRvU3RyaW5n
KCkgaXMgIlJlY3QoMzAsMTAsNTAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dS
ZWN0KDYwLCAxMCwgNjAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDIwLDEwLDYwLDEwKSIKK1BB
U1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCg3MCwgMTAsIDcwLCAxMCkudG9TdHJpbmco
KSBpcyAiUmVjdCgxMCwxMCw3MCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1Jl
Y3QoODAsIDEwLCA4MCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCw4MCwxMCkiCitQQVNT
IHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoOTAsIDEwLCA5MCwgMTApLnRvU3RyaW5nKCkg
aXMgIlJlY3QoMCwxMCw5MCwxMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZm9ybXMvZGF0ZS9wYWdlLXBvcHVwLWFkanVzdC1yZWN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL2RhdGUvcGFnZS1wb3B1cC1hZGp1c3Qt
cmVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZWM3NjIzOTYxMTQ4ZjRiMmYyNTM5ZWVlOGUxNzE2NWU2
MGI4MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2Zvcm1zL2RhdGUvcGFnZS1wb3B1cC1hZGp1c3QtcmVjdC5odG1sCkBAIC0wLDAgKzEsMjIz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2NvbW1vbi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9mb3Jtcy9kYXRlL2Nh
bGVuZGFyLXBpY2tlci1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8aW5wdXQg
dHlwZT0iZGF0ZSIgaWQ9ImRhdGUiPgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgZm9y
IGNoaWxkIGVsZW1lbnRzIG9mIGEgZGF0YWxpc3QgZWxlbWVudC4nKTsKKworb3BlblBpY2tlcihk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF0ZScpKTsKKworcG9wdXBXaW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigicmVzaXplIiwgdGVzdCwgZmFsc2UpOworCitmdW5jdGlvbiBtYWtlUmVjdCh4LCB5
LCB3aWR0aCwgaGVpZ2h0KSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgeDogeCwKKyAgICAgICAg
eTogeSwKKyAgICAgICAgd2lkdGg6IHdpZHRoLAorICAgICAgICBoZWlnaHQ6IGhlaWdodAorICAg
IH07Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFt
cy5jb25maW5lVG9Sb290VmlldyA9IGZhbHNlOworICAgIHBvcHVwV2luZG93LnNjcmVlbiA9IHsK
KyAgICAgICAgd2lkdGg6IDgwLAorICAgICAgICBoZWlnaHQ6IDYwLAorICAgICAgICBhdmFpbExl
ZnQ6IDAsCisgICAgICAgIGF2YWlsVG9wOiAwLAorICAgICAgICBhdmFpbFdpZHRoOiA4MCwKKyAg
ICAgICAgYXZhaWxIZWlnaHQ6IDYwLAorICAgIH07CisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBh
cmFtcy5yb290Vmlld1JlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDAsIDgwLCA2MCk7CisKKyAg
ICBkZWJ1ZygiTW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgdmVydGljYWwgYXhpcy4iKTsK
KworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFr
ZVJlY3QoMCwgLTIwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RX
aW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJSZWN0KDAsMCwzMCwxMCki
Jyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9
IG1ha2VSZWN0KDAsIC0xMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRq
dXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgwLDAsMzAs
MTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3Jl
ZW4gPSBtYWtlUmVjdCgwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRvdy5h
ZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJSZWN0KDAsMTAs
MzAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5T
Y3JlZW4gPSBtYWtlUmVjdCgwLCAxMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5k
b3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgw
LDIwLDMwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVj
dEluU2NyZWVuID0gbWFrZVJlY3QoMCwgMjAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVw
V2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJl
Y3QoMCwzMCwzMCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hv
clJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDMwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdw
b3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywg
JyJSZWN0KDAsNDAsMzAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5h
bmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA0MCwgMjAsIDEwKTsKKyAgICBzaG91bGRC
ZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmco
KScsICciUmVjdCgwLDUwLDMwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJh
bXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgNTAsIDIwLCAxMCk7CisgICAgc2hv
dWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3Ry
aW5nKCknLCAnIlJlY3QoMCw0MCwzMCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwu
cGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDYwLCAyMCwgMTApOworICAg
IHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50
b1N0cmluZygpJywgJyJSZWN0KDAsNTAsMzAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xv
YmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA3MCwgMjAsIDEwKTsK
KyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAx
MCkudG9TdHJpbmcoKScsICciUmVjdCgwLDUwLDMwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93
Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgODAsIDIwLCAx
MCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAz
MCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCw1MCwzMCwxMCkiJyk7CisKKyAgICBkZWJ1Zygi
TW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgaG9yaXpvbnRhbCBheGlzLiIpOworCisgICAg
cG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgt
NDAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1Jl
Y3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwxMCwzMCwxMCkiJyk7CisK
KyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VS
ZWN0KC0zMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2lu
ZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgwLDEwLDMwLDEwKSIn
KTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0g
bWFrZVJlY3QoLTIwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1
c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJSZWN0KDAsMTAsMzAs
MTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3Jl
ZW4gPSBtYWtlUmVjdCgtMTAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93
LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwx
MCwzMCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJ
blNjcmVlbiA9IG1ha2VSZWN0KDAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2lu
ZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3Qo
MCwxMCwzMCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJl
Y3RJblNjcmVlbiA9IG1ha2VSZWN0KDEwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1
cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJS
ZWN0KDEwLDEwLDMwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5j
aG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMjAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUo
J3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkn
LCAnIlJlY3QoMjAsMTAsMzAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFt
cy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgzMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91
bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJp
bmcoKScsICciUmVjdCgzMCwxMCwzMCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwu
cGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDQwLCAwLCAyMCwgMTApOworICAg
IHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50
b1N0cmluZygpJywgJyJSZWN0KDQwLDEwLDMwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmds
b2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoNTAsIDAsIDIwLCAxMCk7
CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwg
MTApLnRvU3RyaW5nKCknLCAnIlJlY3QoNTAsMTAsMzAsMTApIicpOworCisgICAgcG9wdXBXaW5k
b3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCg2MCwgMCwgMjAs
IDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAs
IDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCg1MCwxMCwzMCwxMCkiJyk7CisKKyAgICBwb3B1
cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDcwLCAw
LCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMw
LCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJSZWN0KDUwLDEwLDMwLDEwKSInKTsKKworICAg
IHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3Qo
ODAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1Jl
Y3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoNTAsMTAsMzAsMTApIicpOwor
CisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtl
UmVjdCg5MCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2lu
ZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCg1MCwxMCwzMCwxMCki
Jyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9
IG1ha2VSZWN0KDEwMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRq
dXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCg1MCwxMCwz
MCwxMCkiJyk7CisKKyAgICBkZWJ1ZygiTW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgdmVy
dGljYWwgYXhpcy4gT3BlbiBwb3B1cCB0aGF0IGlzIHRvbyB0YWxsLiIpOworCisgICAgcG9wdXBX
aW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAtMjAs
IDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAs
IDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgwLDAsMzAsNjApIicpOworCisgICAg
cG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgw
LCAtMTAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1Jl
Y3QoMzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgwLDAsMzAsNjApIicpOwor
CisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtl
UmVjdCgwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5k
b3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwxMCwzMCw1MCki
Jyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9
IG1ha2VSZWN0KDAsIDEwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1
c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwyMCwz
MCw0MCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNj
cmVlbiA9IG1ha2VSZWN0KDAsIDIwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRv
dy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3Qo
MCwzMCwzMCwzMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJl
Y3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDMwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1
cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAn
IlJlY3QoMCwwLDMwLDMwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5j
aG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgNDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUo
J3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmco
KScsICciUmVjdCgwLDAsMzAsNDApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFt
cy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA1MCwgMjAsIDEwKTsKKyAgICBzaG91
bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0
cmluZygpJywgJyJSZWN0KDAsMCwzMCw1MCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwu
cGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDYwLCAyMCwgMTApOworICAg
IHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAp
LnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDYwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmds
b2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgNzAsIDIwLCAxMCk7
CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMw
LCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgwLDAsMzAsNjApIicpOworCisgICAgcG9wdXBXaW5k
b3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA4MCwgMjAs
IDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAw
MCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJSZWN0KDAsMCwzMCw2MCkiJyk7CisKKyAgICBkZWJ1
ZygiTW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgdmVydGljYWwgYXhpcy4gT3BlbiBwb3B1
cCB0aGF0IGlzIHRvbyB0YWxsIGFuZCB3b24ndCBzaHJpbmsuIik7CisKKyAgICBwb3B1cFdpbmRv
dy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIC0yMCwgMjAs
IDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAw
MCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDEwMDApIicpOworCisgICAg
cG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgw
LCAtMTAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1Jl
Y3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0cmluZygpJywgJyJSZWN0KDAsMCwzMCwxMDAwKSIn
KTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0g
bWFrZVJlY3QoMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0
V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMw
LDEwMDApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5T
Y3JlZW4gPSBtYWtlUmVjdCgwLCAxMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5k
b3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnIlJl
Y3QoMCwwLDMwLDEwMDApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNo
b3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAyMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgn
cG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5n
KCknLCAnIlJlY3QoMCwwLDMwLDEwMDApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBh
cmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAzMCwgMjAsIDEwKTsKKyAgICBz
aG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDAp
LnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDEwMDApIicpOworCisgICAgcG9wdXBXaW5kb3cu
Z2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA0MCwgMjAsIDEw
KTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwg
MzAsIDEwMDApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDEwMDApIicpOworCisgICAgcG9w
dXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA1
MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgz
MCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDEwMDApIicpOwor
CisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtl
UmVjdCgwLCA2MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2lu
ZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDEw
MDApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3Jl
ZW4gPSBtYWtlUmVjdCgwLCA3MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cu
YWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnIlJlY3Qo
MCwwLDMwLDEwMDApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JS
ZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA4MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9w
dXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCkn
LCAnIlJlY3QoMCwwLDMwLDEwMDApIicpOworCisgICAgZGVidWcoIkdyb3cgcG9wdXAgd2lkdGgu
Iik7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9
IG1ha2VSZWN0KDMwLCAwLCAzMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1
c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJSZWN0KDMwLDEwLDMw
LDEwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2Ny
ZWVuID0gbWFrZVJlY3QoMzAsIDAsIDMwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93
LmFkanVzdFdpbmRvd1JlY3QoNDAsIDEwLCA0MCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoMzAs
MTAsNDAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0
SW5TY3JlZW4gPSBtYWtlUmVjdCgzMCwgMCwgMzAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBX
aW5kb3cuYWRqdXN0V2luZG93UmVjdCg1MCwgMTAsIDUwLCAxMCkudG9TdHJpbmcoKScsICciUmVj
dCgzMCwxMCw1MCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hv
clJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDMwLCAwLCAzMCwgMTApOworICAgIHNob3VsZEJlKCdw
b3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDYwLCAxMCwgNjAsIDEwKS50b1N0cmluZygpJywg
JyJSZWN0KDIwLDEwLDYwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMu
YW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMzAsIDAsIDMwLCAxMCk7CisgICAgc2hvdWxk
QmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoNzAsIDEwLCA3MCwgMTApLnRvU3RyaW5n
KCknLCAnIlJlY3QoMTAsMTAsNzAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBh
cmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgzMCwgMCwgMzAsIDEwKTsKKyAgICBz
aG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCg4MCwgMTAsIDgwLCAxMCkudG9T
dHJpbmcoKScsICciUmVjdCgwLDEwLDgwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2Jh
bC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMzAsIDAsIDMwLCAxMCk7Cisg
ICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoOTAsIDEwLCA5MCwgMTAp
LnRvU3RyaW5nKCknLCAnIlJlY3QoMCwxMCw5MCwxMCkiJyk7CisKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167677</attachid>
            <date>2012-10-08 20:44:59 -0700</date>
            <delta_ts>2012-10-09 00:35:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98499-20121009124401.patch</filename>
            <type>text/plain</type>
            <size>42987</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY2OGJmYmE0ZTRlODU2
OGNhZTU5OWVlNTI5YWFlYjA1MjE3NjMwMi4uNTkxNjZiZjc2MmI0NmY5Njg1MWY4MzkzNWRhMjA4
YTc5MDM4YzI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEwLTA1ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIFBhZ2UgcG9wdXAgc2hv
dWxkIGJlIHNtYXJ0ZXIgYWJvdXQgaXRzIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg0OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBmaXhlcyB0aGVzZSB0d28gaXNzdWVz
OgorICAgICAgICAxLiBQYWdlIHBvcHVwIHNob3VsZCByZXBvc2l0aW9uIGl0c2VsZiBzbyBpdCB3
b24ndCBnZXQgY2xpcHBlZCBieSBzY3JlZW4oV2luL0xpbnV4KSBvciByb290dmlldyhNYWMpIGJv
dW5kcy4KKyAgICAgICAgMi4gUGFnZSBwb3B1cCBzaG91bGQgcmVzaXplIGl0c2VsZiB3aGVuIGl0
IGRvZXNuJ3QgZml0LgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9y
bXMvZGF0ZS9wYWdlLXBvcHVwLWFkanVzdC1yZWN0Lmh0bWwKKworICAgICAgICAqIFJlc291cmNl
cy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzOgorICAgICAgICAoaW5pdGlhbGl6ZSk6IFdl
IG5lZWQgdG8gc2V0IGdsb2JhbC5wYXJhbXMgYXQgdGhlIGJlZ2lubmluZyBiZWNhdXNlIHdlIG5l
ZWQgaXQgZm9yIHJlc2l6ZVdpbmRvdygpLgorICAgICAgICAqIFJlc291cmNlcy9wYWdlcG9wdXBz
L2NvbG9yU3VnZ2VzdGlvblBpY2tlci5qczogQWRkZWQgZ2xvYmFsLnBhcmFtcy4KKyAgICAgICAg
KGhhbmRsZU1lc3NhZ2UpOgorICAgICAgICAoaW5pdGlhbGl6ZSk6CisgICAgICAgIChoYW5kbGVB
cmd1bWVudHNUaW1lb3V0KToKKyAgICAgICAgKiBSZXNvdXJjZXMvcGFnZXBvcHVwcy9waWNrZXJD
b21tb24uanM6CisgICAgICAgIChSZWN0KTogUmVwcmVzZW50cyBhbiBheGlzIGFsaWduZWQgcmVj
dGFuZ2xlLgorICAgICAgICAoUmVjdC5wcm90b3R5cGUuZ2V0IG1heFgpOiBHZXRzIHBvc2l0aW9u
IG9mIHJpZ2h0IGVkZ2UuCisgICAgICAgIChSZWN0LnByb3RvdHlwZS5nZXQgbWF4WSk6IEdldHMg
cG9zaXRpb24gb2YgYm90dG9tIGVkZ2UuCisgICAgICAgIChSZWN0LnByb3RvdHlwZS50b1N0cmlu
Zyk6CisgICAgICAgIChSZWN0LmludGVyc2VjdGlvbik6IFJldHVybnMgdGhlIGludGVyc2VjdGlv
biBvZiB0d28gcmVjdGFuZ2xlcy4KKyAgICAgICAgKHJlc2l6ZVdpbmRvdyk6IFJlc2l6ZSB3aW5k
b3cgdG8gYSBjZXJ0YWluIHNpemUuIERvbid0IGFsbG93IHNocmlua2luZy4KKyAgICAgICAgKGFk
anVzdFdpbmRvd1JlY3QpOiBDYWxjdWxhdGVzIHRoZSBiZXN0IHBvc2l0aW9uIGFuZCBzaXplIGZv
ciB0aGUgcG9wdXAuCisgICAgICAgIChfYWRqdXN0V2luZG93UmVjdFZlcnRpY2FsbHkpOgorICAg
ICAgICAoX2FkanVzdFdpbmRvd1JlY3RIb3Jpem9udGFsbHkpOgorICAgICAgICAoc2V0V2luZG93
UmVjdCk6IFNldHMgdGhlIHBvc2l0aW9uIGFuZCBzaXplIG9mIHRoZSBwb3B1cCB0byB0aGUgZ2l2
ZW4gcmVjdC4KKyAgICAgICAgKiBSZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9uUGlja2Vy
LmpzOgorICAgICAgICAoU3VnZ2VzdGlvblBpY2tlci5wcm90b3R5cGUuX2ZpeFdpbmRvd1NpemUp
OiAKKyAgICAgICAgKiBwYWdlL1BhZ2VQb3B1cENsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlUG9wdXBDbGllbnQ6OmFkZFByb3BlcnR5KTogRm9yIGFkZGluZyBhbiBpbnQgdG8gSlNP
Ti4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VQb3B1cENsaWVudDo6YWRkUHJvcGVydHkpOiBGb3Ig
YWRkaW5nIGFuIEludFJlY3QgdG8gSlNPTi4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHBhZ2UvUGFnZVBvcHVwQ2xpZW50Lmg6CisgICAgICAgIChQYWdlUG9wdXBDbGllbnQpOgorCiAy
MDEyLTEwLTA4ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgaW1h
Z2Ugbm90IGRpc3BsYXllZCBpbiBmbGV4Ym94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDNmNzhhNTgzZWFjMDQwZmJlM2Q2ODFjNjMxMDg0YjBiOWI4ZjAwODYuLjE1OWRmZjRhODkxMmI1
NzBjYzM3NjM3ZjY2NjkxODNjYjdjZDc5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTItMTAtMDUgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUGFnZSBwb3B1cCBzaG91bGQgYmUgc21hcnRlciBhYm91dCBpdHMg
bGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
ODQ5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3JjL0NvbG9yQ2hvb3NlclVJQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbG9y
Q2hvb3NlclVJQ29udHJvbGxlcjo6d3JpdGVEb2N1bWVudCk6IFNlbmQgYW5jaG9yUmVjdEluU2Ny
ZWVuLCByb290Vmlld1JlY3RJblNjcmVlbiwgYW5kIGNvbmZpbmVUb1Jvb3RWaWV3LgorICAgICAg
ICAqIHNyYy9EYXRlVGltZUNob29zZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0ZVRp
bWVDaG9vc2VySW1wbDo6d3JpdGVEb2N1bWVudCk6IFNlbmQgYW5jaG9yUmVjdEluU2NyZWVuLCBy
b290Vmlld1JlY3RJblNjcmVlbiwgYW5kIGNvbmZpbmVUb1Jvb3RWaWV3LgorICAgICAgICAqIHNy
Yy9XZWJQYWdlUG9wdXBJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBvcHVwSW1w
bDo6aW5pdCk6IFdlIGtlZXAgdGhlIG9yaWdpbkJvdW5kc0luUm9vdFZpZXcgYXJndW1lbnQgZm9y
IE1vY2tQYWdlUG9wdXBEcml2ZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQb3B1cEltcGw6
OnJlc2l6ZSk6IFdlYlBhZ2VQb3B1cEltcGwgaXNuJ3QgaW4gY2hhcmdlIG9mIHNldHRpbmcgdGhl
IHBvcHVwIHBvc2l0aW9uIGFueSBtb3JlLgorICAgICAgICAqIHNyYy9XZWJQYWdlUG9wdXBJbXBs
Lmg6CisgICAgICAgIChXZWJQYWdlUG9wdXBJbXBsKToKKwogMjAxMi0xMC0wOCAgRGlyayBQcmFu
a2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaHJvbWl1bSBERVBTIHJvbGwg
cjE2MDY1NzoxNjA3NjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFn
ZXBvcHVwcy9jYWxlbmRhclBpY2tlci5qcyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdl
cG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzCmluZGV4IGY3MzE1YjM4Nzc5MmFhYzAzMjEzZDQ1MDBj
ZDAwNmUwNmNmOWRiNGEuLmI5YmQwODE4ZjJhNTBjN2IzN2RiNTc1YWQ2MzExZjVmMzI0MjM5ZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFy
UGlja2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVu
ZGFyUGlja2VyLmpzCkBAIC0yNjcsNyArMjY3LDggQEAgQ2FsZW5kYXJQaWNrZXIudmFsaWRhdGVD
b25maWcgPSBmdW5jdGlvbihjb25maWcpIHsKIC8qKgogICogQHBhcmFtIHshT2JqZWN0fSBhcmdz
CiAgKi8KLWZ1bmN0aW9uIGluaXRpYWxpemUoYXJncykgeworZnVuY3Rpb24gaW5pdGlhbGl6ZShh
cmdzKSB7IAorICAgIGdsb2JhbC5wYXJhbXMgPSBhcmdzOwogICAgIHZhciBlcnJvclN0cmluZyA9
IENhbGVuZGFyUGlja2VyLnZhbGlkYXRlQ29uZmlnKGFyZ3MpOwogICAgIGlmIChhcmdzLnN1Z2dl
c3Rpb25WYWx1ZXMpCiAgICAgICAgIGVycm9yU3RyaW5nID0gZXJyb3JTdHJpbmcgfHwgU3VnZ2Vz
dGlvblBpY2tlci52YWxpZGF0ZUNvbmZpZyhhcmdzKQpAQCAtMjc2LDcgKzI3Nyw2IEBAIGZ1bmN0
aW9uIGluaXRpYWxpemUoYXJncykgewogICAgICAgICBtYWluLnRleHRDb250ZW50ID0gIkludGVy
bmFsIGVycm9yOiAiICsgZXJyb3JTdHJpbmc7CiAgICAgICAgIHJlc2l6ZVdpbmRvdyhtYWluLm9m
ZnNldFdpZHRoLCBtYWluLm9mZnNldEhlaWdodCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgZ2xv
YmFsLnBhcmFtcyA9IGFyZ3M7CiAgICAgICAgIGlmIChnbG9iYWwucGFyYW1zLnN1Z2dlc3Rpb25W
YWx1ZXMgJiYgZ2xvYmFsLnBhcmFtcy5zdWdnZXN0aW9uVmFsdWVzLmxlbmd0aCkKICAgICAgICAg
ICAgIG9wZW5TdWdnZXN0aW9uUGlja2VyKCk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NvbG9yU3VnZ2VzdGlvblBpY2tlci5q
cyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NvbG9yU3VnZ2VzdGlvblBp
Y2tlci5qcwppbmRleCA0NmEwZDQ5MzIyOTM5YTA1OTc0Yzk0OTEyZTE3M2FmMTQ3MjcyMjc3Li41
NTliOWU2ZGM4MmIzY2FhNDUzN2JiMDYzMDEzNmZiZWEzYThlN2RkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9jb2xvclN1Z2dlc3Rpb25QaWNrZXIuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY29sb3JTdWdnZXN0aW9u
UGlja2VyLmpzCkBAIC0yMywyMCArMjMsMjQgQEAKICAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLXdpbmRvdy5hcmd1
bWVudHNSZWNlaXZlZCA9IGZhbHNlOwordmFyIGdsb2JhbCA9IHsKKyAgICBhcmd1bWVudHNSZWNl
aXZlZDogZmFsc2UsCisgICAgcGFyYW1zOiBudWxsCit9OwogCiAvKioKICAqIEBwYXJhbSB7RXZl
bnR9IGV2ZW50CiAgKi8KIGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UoZXZlbnQpIHsKICAgICBpbml0
aWFsaXplKEpTT04ucGFyc2UoZXZlbnQuZGF0YSkpOwotICAgIHdpbmRvdy5hcmd1bWVudHNSZWNl
aXZlZCA9IHRydWU7CisgICAgZ2xvYmFsLmFyZ3VtZW50c1JlY2VpdmVkID0gdHJ1ZTsKIH0KIAog
LyoqCiAgKiBAcGFyYW0geyFPYmplY3R9IGFyZ3MKICAqLwotZnVuY3Rpb24gaW5pdGlhbGl6ZShh
cmdzKSB7CitmdW5jdGlvbiBpbml0aWFsaXplKGFyZ3MpIHsgCisgICAgZ2xvYmFsLnBhcmFtcyA9
IGFyZ3M7CiAgICAgdmFyIG1haW4gPSAkKCJtYWluIik7CiAgICAgbWFpbi5pbm5lckhUTUwgPSAi
IjsKICAgICB2YXIgZXJyb3JTdHJpbmcgPSB2YWxpZGF0ZUFyZ3VtZW50cyhhcmdzKTsKQEAgLTUz
LDcgKzU3LDcgQEAgdmFyIERlZmF1bHRDb2xvclBhbGV0dGUgPSBbIiMwMDAwMDAiLCAiIzQwNDA0
MCIsICIjODA4MDgwIiwgIiNjMGMwYzAiLAogICAgICIjNGE4NmU4IiwgIiMwMDAwZmYiLCAiIzk5
MDBmZiIsICIjZmYwMGZmIl07CiAKIGZ1bmN0aW9uIGhhbmRsZUFyZ3VtZW50c1RpbWVvdXQoKSB7
Ci0gICAgaWYgKHdpbmRvdy5hcmd1bWVudHNSZWNlaXZlZCkKKyAgICBpZiAoZ2xvYmFsLmFyZ3Vt
ZW50c1JlY2VpdmVkKQogICAgICAgICByZXR1cm47CiAgICAgdmFyIGFyZ3MgPSB7CiAgICAgICAg
IHZhbHVlcyA6IERlZmF1bHRDb2xvclBhbGV0dGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9waWNrZXJDb21tb24uanMgYi9Tb3VyY2UvV2ViQ29yZS9S
ZXNvdXJjZXMvcGFnZXBvcHVwcy9waWNrZXJDb21tb24uanMKaW5kZXggNjE5ZjJlZTc2ZTVkMGQ1
MjJhOWViMTJjNzYyY2Q3YThhNTZkZGY4OC4uNjNkY2Q5MzhlM2VlN2Q2YjI3ODFhNDk2ZTk3OWY2
ZjYzMTA5NWY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1
cHMvcGlja2VyQ29tbW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9w
dXBzL3BpY2tlckNvbW1vbi5qcwpAQCAtNDUsMTYgKzQ1LDExMyBAQCBmdW5jdGlvbiBjcmVhdGVF
bGVtZW50KHRhZ05hbWUsIG9wdF9jbGFzcywgb3B0X3RleHQpIHsKICAgICByZXR1cm4gZWxlbWVu
dDsKIH0KIAorZnVuY3Rpb24gUmVjdCh4T3JSZWN0LCB5LCB3aWR0aCwgaGVpZ2h0KSB7CisgICAg
aWYgKHR5cGVvZiB4T3JSZWN0ID09PSAib2JqZWN0IikgeworICAgICAgICB5ID0geE9yUmVjdC55
OworICAgICAgICB3aWR0aCA9IHhPclJlY3Qud2lkdGg7CisgICAgICAgIGhlaWdodCA9IHhPclJl
Y3QuaGVpZ2h0OworICAgICAgICB4T3JSZWN0ID0geE9yUmVjdC54OworICAgIH0KKyAgICB0aGlz
LnggPSB4T3JSZWN0OworICAgIHRoaXMueSA9IHk7CisgICAgdGhpcy53aWR0aCA9IHdpZHRoOwor
ICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0OworfQorCitSZWN0LnByb3RvdHlwZSA9IHsKKyAgICBn
ZXQgbWF4WCgpIHsgcmV0dXJuIHRoaXMueCArIHRoaXMud2lkdGg7IH0sCisgICAgZ2V0IG1heFko
KSB7IHJldHVybiB0aGlzLnkgKyB0aGlzLmhlaWdodDsgfSwKKyAgICB0b1N0cmluZzogZnVuY3Rp
b24oKSB7IHJldHVybiAiUmVjdCgiICsgdGhpcy54ICsgIiwiICsgdGhpcy55ICsgIiwiICsgdGhp
cy53aWR0aCArICIsIiArIHRoaXMuaGVpZ2h0ICsgIikiOyB9Cit9OworCitSZWN0LmludGVyc2Vj
dGlvbiA9IGZ1bmN0aW9uKHJlY3QxLCByZWN0MikgeworICAgIHZhciB4ID0gTWF0aC5taW4ocmVj
dDEueCwgcmVjdDIueCk7CisgICAgdmFyIG1heFggPSBNYXRoLm1heChyZWN0MS5tYXhYLCByZWN0
Mi5tYXhYKTsKKyAgICB2YXIgeSA9IE1hdGgubWluKHJlY3QxLnksIHJlY3QyLnkpOworICAgIHZh
ciBtYXhZID0gTWF0aC5tYXgocmVjdDEubWF4WSwgcmVjdDIubWF4WSk7CisgICAgdmFyIHdpZHRo
ID0gbWF4WCAtIHg7CisgICAgdmFyIGhlaWdodCA9IG1heFkgLSB5OworICAgIHJldHVybiBuZXcg
UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKK307CisKIC8qKgogICogQHBhcmFtIHshbnVtYmVy
fSB3aWR0aAogICogQHBhcmFtIHshbnVtYmVyfSBoZWlnaHQKICAqLwogZnVuY3Rpb24gcmVzaXpl
V2luZG93KHdpZHRoLCBoZWlnaHQpIHsKKyAgICBzZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1Jl
Y3Qod2lkdGgsIGhlaWdodCwgd2lkdGgsIGhlaWdodCkpOworfQorCisvKioKKyAqIEBwYXJhbSB7
IW51bWJlcn0gd2lkdGgKKyAqIEBwYXJhbSB7IW51bWJlcn0gaGVpZ2h0CisgKiBAcGFyYW0gez9u
dW1iZXJ9IG1pbldpZHRoCisgKiBAcGFyYW0gez9udW1iZXJ9IG1pbkhlaWdodAorICogQHJldHVy
biB7IVJlY3R9CisgKi8KK2Z1bmN0aW9uIGFkanVzdFdpbmRvd1JlY3Qod2lkdGgsIGhlaWdodCwg
bWluV2lkdGgsIG1pbkhlaWdodCkgeworICAgIGlmICh0eXBlb2YgbWluV2lkdGggIT09ICJudW1i
ZXIiKQorICAgICAgICBtaW5XaWR0aCA9IDA7CisgICAgaWYgKHR5cGVvZiBtaW5IZWlnaHQgIT09
ICJudW1iZXIiKQorICAgICAgICBtaW5IZWlnaHQgPSAwOworCisgICAgaWYgKCFnbG9iYWwucGFy
YW1zLmFuY2hvclJlY3RJblNjcmVlbikKKyAgICAgICAgcmV0dXJuIG5ldyBSZWN0KDAsIDAsIHdp
ZHRoLCBoZWlnaHQpOworCisgICAgdmFyIHdpbmRvd1JlY3QgPSBuZXcgUmVjdCgwLCAwLCB3aWR0
aCwgaGVpZ2h0KTsKKyAgICB2YXIgYW5jaG9yUmVjdCA9IG5ldyBSZWN0KGdsb2JhbC5wYXJhbXMu
YW5jaG9yUmVjdEluU2NyZWVuKTsKKyAgICB2YXIgcm9vdFZpZXdSZWN0ID0gbmV3IFJlY3QoZ2xv
YmFsLnBhcmFtcy5yb290Vmlld1JlY3RJblNjcmVlbik7CisgICAgdmFyIGF2YWlsUmVjdCA9IG5l
dyBSZWN0KHdpbmRvdy5zY3JlZW4uYXZhaWxMZWZ0LCB3aW5kb3cuc2NyZWVuLmF2YWlsVG9wLCB3
aW5kb3cuc2NyZWVuLmF2YWlsV2lkdGgsIHdpbmRvdy5zY3JlZW4uYXZhaWxIZWlnaHQpOworICAg
IGlmIChnbG9iYWwucGFyYW1zLmNvbmZpbmVUb1Jvb3RWaWV3KQorICAgICAgICBhdmFpbFJlY3Qg
PSBSZWN0LmludGVyc2VjdGlvbihhdmFpbFJlY3QsIHJvb3RWaWV3UmVjdCk7CisKKyAgICBfYWRq
dXN0V2luZG93UmVjdFZlcnRpY2FsbHkod2luZG93UmVjdCwgYXZhaWxSZWN0LCBhbmNob3JSZWN0
LCBtaW5IZWlnaHQpOworICAgIF9hZGp1c3RXaW5kb3dSZWN0SG9yaXpvbnRhbGx5KHdpbmRvd1Jl
Y3QsIGF2YWlsUmVjdCwgYW5jaG9yUmVjdCwgbWluV2lkdGgpOworCisgICAgcmV0dXJuIHdpbmRv
d1JlY3Q7Cit9CisKK2Z1bmN0aW9uIF9hZGp1c3RXaW5kb3dSZWN0VmVydGljYWxseSh3aW5kb3dS
ZWN0LCBhdmFpbFJlY3QsIGFuY2hvclJlY3QsIG1pbkhlaWdodCkgeworICAgIHZhciBhdmFpbGFi
bGVTcGFjZUFib3ZlID0gYW5jaG9yUmVjdC55IC0gYXZhaWxSZWN0Lnk7CisgICAgYXZhaWxhYmxl
U3BhY2VBYm92ZSA9IE1hdGgubWF4KDAsIE1hdGgubWluKGF2YWlsUmVjdC5oZWlnaHQsIGF2YWls
YWJsZVNwYWNlQWJvdmUpKTsKKworICAgIHZhciBhdmFpbGFibGVTcGFjZUJlbG93ID0gYXZhaWxS
ZWN0Lm1heFkgLSBhbmNob3JSZWN0Lm1heFk7CisgICAgYXZhaWxhYmxlU3BhY2VCZWxvdyA9IE1h
dGgubWF4KDAsIE1hdGgubWluKGF2YWlsUmVjdC5oZWlnaHQsIGF2YWlsYWJsZVNwYWNlQmVsb3cp
KTsKKworICAgIGlmICh3aW5kb3dSZWN0LmhlaWdodCA+IGF2YWlsYWJsZVNwYWNlQmVsb3cgJiYg
YXZhaWxhYmxlU3BhY2VCZWxvdyA8IGF2YWlsYWJsZVNwYWNlQWJvdmUpIHsKKyAgICAgICAgd2lu
ZG93UmVjdC5oZWlnaHQgPSBNYXRoLm1pbih3aW5kb3dSZWN0LmhlaWdodCwgYXZhaWxhYmxlU3Bh
Y2VBYm92ZSk7CisgICAgICAgIHdpbmRvd1JlY3QuaGVpZ2h0ID0gTWF0aC5tYXgod2luZG93UmVj
dC5oZWlnaHQsIG1pbkhlaWdodCk7CisgICAgICAgIHdpbmRvd1JlY3QueSA9IGFuY2hvclJlY3Qu
eSAtIHdpbmRvd1JlY3QuaGVpZ2h0OworICAgIH0gZWxzZSB7CisgICAgICAgIHdpbmRvd1JlY3Qu
aGVpZ2h0ID0gTWF0aC5taW4od2luZG93UmVjdC5oZWlnaHQsIGF2YWlsYWJsZVNwYWNlQmVsb3cp
OworICAgICAgICB3aW5kb3dSZWN0LmhlaWdodCA9IE1hdGgubWF4KHdpbmRvd1JlY3QuaGVpZ2h0
LCBtaW5IZWlnaHQpOworICAgICAgICB3aW5kb3dSZWN0LnkgPSBhbmNob3JSZWN0Lm1heFk7Cisg
ICAgfQorICAgIHdpbmRvd1JlY3QueSA9IE1hdGgubWluKHdpbmRvd1JlY3QueSwgYXZhaWxSZWN0
Lm1heFkgLSB3aW5kb3dSZWN0LmhlaWdodCk7CisgICAgd2luZG93UmVjdC55ID0gTWF0aC5tYXgo
d2luZG93UmVjdC55LCBhdmFpbFJlY3QueSk7Cit9CisKK2Z1bmN0aW9uIF9hZGp1c3RXaW5kb3dS
ZWN0SG9yaXpvbnRhbGx5KHdpbmRvd1JlY3QsIGF2YWlsUmVjdCwgYW5jaG9yUmVjdCwgbWluV2lk
dGgpIHsKKyAgICB3aW5kb3dSZWN0LndpZHRoID0gTWF0aC5taW4od2luZG93UmVjdC53aWR0aCwg
YXZhaWxSZWN0LndpZHRoKTsKKyAgICB3aW5kb3dSZWN0LndpZHRoID0gTWF0aC5tYXgod2luZG93
UmVjdC53aWR0aCwgbWluV2lkdGgpOworICAgIHdpbmRvd1JlY3QueCA9IGFuY2hvclJlY3QueDsK
KyAgICB2YXIgYXZhaWxhYmxlU3BhY2VUb1JpZ2h0ID0gYXZhaWxSZWN0Lm1heFggLSBhbmNob3JS
ZWN0Lng7CisgICAgaWYgKHdpbmRvd1JlY3Qud2lkdGggPiBhdmFpbGFibGVTcGFjZVRvUmlnaHQp
CisgICAgICAgIHdpbmRvd1JlY3QueCAtPSAod2luZG93UmVjdC53aWR0aCAtIGF2YWlsYWJsZVNw
YWNlVG9SaWdodCk7CisgICAgd2luZG93UmVjdC54ID0gTWF0aC5taW4od2luZG93UmVjdC54LCBh
dmFpbFJlY3QubWF4WCAtIHdpbmRvd1JlY3Qud2lkdGgpOworICAgIHdpbmRvd1JlY3QueCA9IE1h
dGgubWF4KHdpbmRvd1JlY3QueCwgYXZhaWxSZWN0LngpOworfQorCisvKioKKyAqIEBwYXJhbSB7
IVJlY3R9IHJlY3QKKyAqLworZnVuY3Rpb24gc2V0V2luZG93UmVjdChyZWN0KSB7CiAgICAgaWYg
KHdpbmRvdy5mcmFtZUVsZW1lbnQpIHsKLSAgICAgICAgd2luZG93LmZyYW1lRWxlbWVudC5zdHls
ZS53aWR0aCA9IHdpZHRoICsgInB4IjsKLSAgICAgICAgd2luZG93LmZyYW1lRWxlbWVudC5zdHls
ZS5oZWlnaHQgPSBoZWlnaHQgKyAicHgiOworICAgICAgICB3aW5kb3cuZnJhbWVFbGVtZW50LnN0
eWxlLndpZHRoID0gcmVjdC53aWR0aCArICJweCI7CisgICAgICAgIHdpbmRvdy5mcmFtZUVsZW1l
bnQuc3R5bGUuaGVpZ2h0ID0gcmVjdC5oZWlnaHQgKyAicHgiOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIHdpbmRvdy5yZXNpemVUbyh3aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgd2luZG93Lm1vdmVU
byhyZWN0LnggLSB3aW5kb3cuc2NyZWVuLmF2YWlsTGVmdCwgcmVjdC55IC0gd2luZG93LnNjcmVl
bi5hdmFpbFRvcCk7CisgICAgICAgIHdpbmRvdy5yZXNpemVUbyhyZWN0LndpZHRoLCByZWN0Lmhl
aWdodCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMv
cGFnZXBvcHVwcy9zdWdnZXN0aW9uUGlja2VyLmpzIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2Vz
L3BhZ2Vwb3B1cHMvc3VnZ2VzdGlvblBpY2tlci5qcwppbmRleCAzYzBlOTVjNmFhNjAzNTJhYjg1
ZjVjZjYxNWIzODViYTA3YTIyMmM3Li4wODQ0MDYzNjQwODBlM2ZjMWZkYTM2ZGJiZmU2ZWNkMjg1
MmE2MWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9z
dWdnZXN0aW9uUGlja2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9w
dXBzL3N1Z2dlc3Rpb25QaWNrZXIuanMKQEAgLTE1Nyw3ICsxNTcsOSBAQCBTdWdnZXN0aW9uUGlj
a2VyLnByb3RvdHlwZS5fZml4V2luZG93U2l6ZSA9IGZ1bmN0aW9uKCkgewogICAgICAgICBkZXNp
cmVkV2luZG93SGVpZ2h0ID0gbWF4SGVpZ2h0OwogICAgIH0KIAotICAgIHJlc2l6ZVdpbmRvdyhk
ZXNpcmVkV2luZG93V2lkdGgsIGRlc2lyZWRXaW5kb3dIZWlnaHQpOworICAgIHZhciB3aW5kb3dS
ZWN0ID0gYWRqdXN0V2luZG93UmVjdChkZXNpcmVkV2luZG93V2lkdGgsIGRlc2lyZWRXaW5kb3dI
ZWlnaHQsIGRlc2lyZWRXaW5kb3dXaWR0aCwgMCk7CisgICAgdGhpcy5fY29udGFpbmVyRWxlbWVu
dC5zdHlsZS5oZWlnaHQgPSAod2luZG93UmVjdC5oZWlnaHQgLSBMaXN0Qm9yZGVyKSArICJweCI7
CisgICAgc2V0V2luZG93UmVjdCh3aW5kb3dSZWN0KTsKIH07CiAKIFN1Z2dlc3Rpb25QaWNrZXIu
cHJvdG90eXBlLl9sYXlvdXQgPSBmdW5jdGlvbigpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZVBvcHVwQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBv
cHVwQ2xpZW50LmNwcAppbmRleCA1YjY2NmVhNDU5NWJkNmY2Yjc2MjFmMjg2YjEzMjYxY2YzY2Mx
Y2M1Li43ZGFiODI4YjdjYzQxOTYxNjU3OTY0YTNjMmQ4NjhlNGQ0MjBjYzIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlUG9wdXBDbGllbnQuY3BwCkBAIC02MSw2ICs2MSwxNCBAQCB2b2lkIFBh
Z2VQb3B1cENsaWVudDo6YWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFtZSwgY29uc3QgU3RyaW5n
JiB2YWx1ZSwgRG9jdW1lbgogICAgIGFkZExpdGVyYWwoIixcbiIsIHdyaXRlcik7CiB9CiAKK3Zv
aWQgUGFnZVBvcHVwQ2xpZW50OjphZGRQcm9wZXJ0eShjb25zdCBjaGFyKiBuYW1lLCBpbnQgdmFs
dWUsIERvY3VtZW50V3JpdGVyJiB3cml0ZXIpCit7CisgICAgd3JpdGVyLmFkZERhdGEobmFtZSwg
c3RybGVuKG5hbWUpKTsKKyAgICBhZGRMaXRlcmFsKCI6ICIsIHdyaXRlcik7CisgICAgYWRkU3Ry
aW5nKFN0cmluZzo6bnVtYmVyKHZhbHVlKSwgd3JpdGVyKTsKKyAgICBhZGRMaXRlcmFsKCIsXG4i
LCB3cml0ZXIpOworfQorCiB2b2lkIFBhZ2VQb3B1cENsaWVudDo6YWRkUHJvcGVydHkoY29uc3Qg
Y2hhciogbmFtZSwgdW5zaWduZWQgdmFsdWUsIERvY3VtZW50V3JpdGVyJiB3cml0ZXIpCiB7CiAg
ICAgd3JpdGVyLmFkZERhdGEobmFtZSwgc3RybGVuKG5hbWUpKTsKQEAgLTkyLDYgKzEwMCwxNyBA
QCB2b2lkIFBhZ2VQb3B1cENsaWVudDo6YWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFtZSwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHZhbHVlcwogICAgIGFkZExpdGVyYWwoIl0sXG4iLCB3cml0ZXIp
OwogfQogCit2b2lkIFBhZ2VQb3B1cENsaWVudDo6YWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFt
ZSwgY29uc3QgSW50UmVjdCYgcmVjdCwgRG9jdW1lbnRXcml0ZXImIHdyaXRlcikKK3sKKyAgICB3
cml0ZXIuYWRkRGF0YShuYW1lLCBzdHJsZW4obmFtZSkpOworICAgIGFkZExpdGVyYWwoIjogeyIs
IHdyaXRlcik7CisgICAgYWRkUHJvcGVydHkoIngiLCByZWN0LngoKSwgd3JpdGVyKTsKKyAgICBh
ZGRQcm9wZXJ0eSgieSIsIHJlY3QueSgpLCB3cml0ZXIpOworICAgIGFkZFByb3BlcnR5KCJ3aWR0
aCIsIHJlY3Qud2lkdGgoKSwgd3JpdGVyKTsKKyAgICBhZGRQcm9wZXJ0eSgiaGVpZ2h0IiwgcmVj
dC5oZWlnaHQoKSwgd3JpdGVyKTsKKyAgICBhZGRMaXRlcmFsKCJ9LFxuIiwgd3JpdGVyKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFBBR0VfUE9QVVAp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlUG9wdXBDbGllbnQuaAppbmRleCA3ZDk3ODQ2MWVhMzc3MTMz
ZjJlNmVlNGE4NmU5ZmMzNmNlZmZkZDRiLi5kMGZiNGJiNTZmMDQ4NTU0NWE0ZDU2ZDNmMjNiOGNj
M2ZhMGE4YzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVwQ2xpZW50LmgKQEAgLTM0LDcg
KzM0LDcgQEAKICNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKIAogI2luY2x1ZGUgIkRvY3VtZW50V3Jp
dGVyLmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjks
OSArNjksMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFkZFN0cmluZyhjb25zdCBTdHJp
bmcmLCBEb2N1bWVudFdyaXRlciYpOwogICAgIHN0YXRpYyB2b2lkIGFkZEphdmFTY3JpcHRTdHJp
bmcoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRXcml0ZXImKTsKICAgICBzdGF0aWMgdm9pZCBhZGRQ
cm9wZXJ0eShjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBEb2N1bWVudFdy
aXRlciYpOworICAgIHN0YXRpYyB2b2lkIGFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGlu
dCB2YWx1ZSwgRG9jdW1lbnRXcml0ZXImKTsKICAgICBzdGF0aWMgdm9pZCBhZGRQcm9wZXJ0eShj
b25zdCBjaGFyKiBuYW1lLCB1bnNpZ25lZCB2YWx1ZSwgRG9jdW1lbnRXcml0ZXImKTsKICAgICBz
dGF0aWMgdm9pZCBhZGRQcm9wZXJ0eShjb25zdCBjaGFyKiBuYW1lLCBib29sIHZhbHVlLCBEb2N1
bWVudFdyaXRlciYpOwogICAgIHN0YXRpYyB2b2lkIGFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5h
bWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2YWx1ZXMsIERvY3VtZW50V3JpdGVyJik7CisgICAg
c3RhdGljIHZvaWQgYWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFtZSwgY29uc3QgSW50UmVjdCYs
IERvY3VtZW50V3JpdGVyJik7CiB9OwogCiBpbmxpbmUgdm9pZCBQYWdlUG9wdXBDbGllbnQ6OmFk
ZFN0cmluZyhjb25zdCBTdHJpbmcmIHN0ciwgRG9jdW1lbnRXcml0ZXImIHdyaXRlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbG9yQ2hvb3NlclVJQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db2xvckNob29zZXJVSUNvbnRyb2xs
ZXIuY3BwCmluZGV4IDU0ZDEzNGZlNjNhNzFiZGZhYzllYTA3NzM5N2JmZDQxOWU3ODZjMmUuLjMz
MGY1OWNlMjRmY2NiNzc5YjU5NTk2NTYzYjg4M2MyODI3YjE1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbG9yQ2hvb3NlclVJQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyLmNwcApA
QCAtMzIsMTQgKzMyLDE4IEBACiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJDb2xvckNo
b29zZXJDbGllbnQuaCIKICNpbmNsdWRlICJDb2xvclN1Z2dlc3Rpb25QaWNrZXIuaCIKKyNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTG9jYWxp
emVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIlBpY2tlckNvbW1vbi5oIgogI2luY2x1ZGUgIldlYkNv
bG9yQ2hvb3Nlci5oIgorI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAjaW5jbHVkZSA8cHVibGlj
L1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkNvbG9yLmg+CiAjaW5jbHVkZSA8cHVi
bGljL1dlYkxvY2FsaXplZFN0cmluZy5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIC8vIEtlZXAgaW4gc3luYyB3aXRoIEFjdGlvbnMgaW4gY29s
b3JTdWdnZXN0aW9uUGlja2VyLmpzLgpAQCAtNDksMTEgKzUzLDExIEBAIGVudW0gQ29sb3JQaWNr
ZXJQb3B1cEFjdGlvbiB7CiAgICAgQ29sb3JQaWNrZXJQb3B1cEFjdGlvblNldFZhbHVlID0gMAog
fTsKIAotQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyOjpDb2xvckNob29zZXJVSUNvbnRyb2xsZXIo
Q2hyb21lQ2xpZW50SW1wbCogY2hyb21lQ2xpZW50LCBXZWJDb3JlOjpDb2xvckNob29zZXJDbGll
bnQqIGNsaWVudCkKK0NvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6Q29sb3JDaG9vc2VyVUlDb250
cm9sbGVyKENocm9tZUNsaWVudEltcGwqIGNocm9tZUNsaWVudCwgQ29sb3JDaG9vc2VyQ2xpZW50
KiBjbGllbnQpCiAgICAgOiBtX2Nocm9tZUNsaWVudChjaHJvbWVDbGllbnQpCiAgICAgLCBtX2Ns
aWVudChjbGllbnQpCiAgICAgLCBtX3BvcHVwKDApCi0gICAgLCBtX2xvY2FsaXplcihXZWJDb3Jl
OjpMb2NhbGl6ZXI6OmNyZWF0ZURlZmF1bHQoKSkKKyAgICAsIG1fbG9jYWxpemVyKExvY2FsaXpl
cjo6Y3JlYXRlRGVmYXVsdCgpKQogewogICAgIGlmIChtX2NsaWVudC0+c2hvdWxkU2hvd1N1Z2dl
c3Rpb25zKCkpCiAgICAgICAgIG9wZW5Qb3B1cCgpOwpAQCAtNjUsNyArNjksNyBAQCBDb2xvckNo
b29zZXJVSUNvbnRyb2xsZXI6On5Db2xvckNob29zZXJVSUNvbnRyb2xsZXIoKQogewogfQogCi12
b2lkIENvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJD
b3JlOjpDb2xvciYgY29sb3IpCit2b2lkIENvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6c2V0U2Vs
ZWN0ZWRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgQVNTRVJUKG1fY2hvb3Nlcik7
CiAgICAgbV9jaG9vc2VyLT5zZXRTZWxlY3RlZENvbG9yKHN0YXRpY19jYXN0PFdlYkNvbG9yPihj
b2xvci5yZ2IoKSkpOwpAQCAtODIsNyArODYsNyBAQCB2b2lkIENvbG9yQ2hvb3NlclVJQ29udHJv
bGxlcjo6ZW5kQ2hvb3NlcigpCiB2b2lkIENvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6ZGlkQ2hv
b3NlQ29sb3IoY29uc3QgV2ViQ29sb3ImIGNvbG9yKQogewogICAgIEFTU0VSVChtX2NsaWVudCk7
Ci0gICAgbV9jbGllbnQtPmRpZENob29zZUNvbG9yKFdlYkNvcmU6OkNvbG9yKHN0YXRpY19jYXN0
PFdlYkNvcmU6OlJHQkEzMj4oY29sb3IpKSk7CisgICAgbV9jbGllbnQtPmRpZENob29zZUNvbG9y
KENvbG9yKHN0YXRpY19jYXN0PFJHQkEzMj4oY29sb3IpKSk7CiB9CiAKIHZvaWQgQ29sb3JDaG9v
c2VyVUlDb250cm9sbGVyOjpkaWRFbmRDaG9vc2VyKCkKQEAgLTkyLDMyICs5Niw0MyBAQCB2b2lk
IENvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6ZGlkRW5kQ2hvb3NlcigpCiAgICAgbV9jbGllbnQt
PmRpZEVuZENob29zZXIoKTsKIH0KIAotV2ViQ29yZTo6SW50U2l6ZSBDb2xvckNob29zZXJVSUNv
bnRyb2xsZXI6OmNvbnRlbnRTaXplKCkKK0ludFNpemUgQ29sb3JDaG9vc2VyVUlDb250cm9sbGVy
Ojpjb250ZW50U2l6ZSgpCiB7Ci0gICAgcmV0dXJuIFdlYkNvcmU6OkludFNpemUoMCwgMCk7Cisg
ICAgcmV0dXJuIEludFNpemUoMCwgMCk7CiB9CiAKLXZvaWQgQ29sb3JDaG9vc2VyVUlDb250cm9s
bGVyOjp3cml0ZURvY3VtZW50KFdlYkNvcmU6OkRvY3VtZW50V3JpdGVyJiB3cml0ZXIpCit2b2lk
IENvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6d3JpdGVEb2N1bWVudChEb2N1bWVudFdyaXRlciYg
d3JpdGVyKQogewotICAgIFZlY3RvcjxXZWJDb3JlOjpDb2xvcj4gc3VnZ2VzdGlvbnMgPSBtX2Ns
aWVudC0+c3VnZ2VzdGlvbnMoKTsKKyAgICBWZWN0b3I8Q29sb3I+IHN1Z2dlc3Rpb25zID0gbV9j
bGllbnQtPnN1Z2dlc3Rpb25zKCk7CiAgICAgVmVjdG9yPFN0cmluZz4gc3VnZ2VzdGlvblZhbHVl
czsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3VnZ2VzdGlvbnMuc2l6ZSgpOyBpKysp
CiAgICAgICAgIHN1Z2dlc3Rpb25WYWx1ZXMuYXBwZW5kKHN1Z2dlc3Rpb25zW2ldLnNlcmlhbGl6
ZWQoKSk7CisgICAgSW50UmVjdCBhbmNob3JSZWN0SW5TY3JlZW4gPSBtX2Nocm9tZUNsaWVudC0+
cm9vdFZpZXdUb1NjcmVlbihtX2NsaWVudC0+ZWxlbWVudFJlY3RSZWxhdGl2ZVRvUm9vdFZpZXco
KSk7CisgICAgRnJhbWVWaWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8V2ViVmlld0ltcGwqPihtX2No
cm9tZUNsaWVudC0+d2ViVmlldygpKS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpOworICAg
IEludFJlY3Qgcm9vdFZpZXdWaXNpYmxlQ29udGVudFJlY3QgPSB2aWV3LT52aXNpYmxlQ29udGVu
dFJlY3QodHJ1ZSAvKiBpbmNsdWRlIHNjcm9sbGJhcnMgKi8pOworICAgIEludFJlY3Qgcm9vdFZp
ZXdSZWN0SW5TY3JlZW4gPSBtX2Nocm9tZUNsaWVudC0+cm9vdFZpZXdUb1NjcmVlbihyb290Vmll
d1Zpc2libGVDb250ZW50UmVjdCk7CiAgICAgCi0gICAgV2ViQ29yZTo6UGFnZVBvcHVwQ2xpZW50
OjphZGRTdHJpbmcoIjwhRE9DVFlQRSBodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9J1VURi04Jz48
c3R5bGU+XG4iLCB3cml0ZXIpOwotICAgIHdyaXRlci5hZGREYXRhKFdlYkNvcmU6OnBpY2tlckNv
bW1vbkNzcywgc2l6ZW9mKFdlYkNvcmU6OnBpY2tlckNvbW1vbkNzcykpOwotICAgIHdyaXRlci5h
ZGREYXRhKFdlYkNvcmU6OmNvbG9yU3VnZ2VzdGlvblBpY2tlckNzcywgc2l6ZW9mKFdlYkNvcmU6
OmNvbG9yU3VnZ2VzdGlvblBpY2tlckNzcykpOwotICAgIFdlYkNvcmU6OlBhZ2VQb3B1cENsaWVu
dDo6YWRkU3RyaW5nKCI8L3N0eWxlPjwvaGVhZD48Ym9keT48ZGl2IGlkPW1haW4+TG9hZGluZy4u
LjwvZGl2PjxzY3JpcHQ+XG4iCisgICAgUGFnZVBvcHVwQ2xpZW50OjphZGRTdHJpbmcoIjwhRE9D
VFlQRSBodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9J1VURi04Jz48c3R5bGU+XG4iLCB3cml0ZXIp
OworICAgIHdyaXRlci5hZGREYXRhKHBpY2tlckNvbW1vbkNzcywgc2l6ZW9mKHBpY2tlckNvbW1v
bkNzcykpOworICAgIHdyaXRlci5hZGREYXRhKGNvbG9yU3VnZ2VzdGlvblBpY2tlckNzcywgc2l6
ZW9mKGNvbG9yU3VnZ2VzdGlvblBpY2tlckNzcykpOworICAgIFBhZ2VQb3B1cENsaWVudDo6YWRk
U3RyaW5nKCI8L3N0eWxlPjwvaGVhZD48Ym9keT48ZGl2IGlkPW1haW4+TG9hZGluZy4uLjwvZGl2
PjxzY3JpcHQ+XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aW5k
b3cuZGlhbG9nQXJndW1lbnRzID0ge1xuIiwgd3JpdGVyKTsKLSAgICBXZWJDb3JlOjpQYWdlUG9w
dXBDbGllbnQ6OmFkZFByb3BlcnR5KCJ2YWx1ZXMiLCBzdWdnZXN0aW9uVmFsdWVzLCB3cml0ZXIp
OyAgICAgICAKLSAgICBXZWJDb3JlOjpQYWdlUG9wdXBDbGllbnQ6OmFkZFByb3BlcnR5KCJvdGhl
ckNvbG9yTGFiZWwiLCBQbGF0Zm9ybTo6Y3VycmVudCgpLT5xdWVyeUxvY2FsaXplZFN0cmluZyhX
ZWJMb2NhbGl6ZWRTdHJpbmc6Ok90aGVyQ29sb3JMYWJlbCksIHdyaXRlcik7Ci0gICAgV2ViQ29y
ZTo6UGFnZVBvcHVwQ2xpZW50OjphZGRTdHJpbmcoIn07XG4iLCB3cml0ZXIpOwotICAgIHdyaXRl
ci5hZGREYXRhKFdlYkNvcmU6OnBpY2tlckNvbW1vbkpzLCBzaXplb2YoV2ViQ29yZTo6cGlja2Vy
Q29tbW9uSnMpKTsKLSAgICB3cml0ZXIuYWRkRGF0YShXZWJDb3JlOjpjb2xvclN1Z2dlc3Rpb25Q
aWNrZXJKcywgc2l6ZW9mKFdlYkNvcmU6OmNvbG9yU3VnZ2VzdGlvblBpY2tlckpzKSk7Ci0gICAg
V2ViQ29yZTo6UGFnZVBvcHVwQ2xpZW50OjphZGRTdHJpbmcoIjwvc2NyaXB0PjwvYm9keT5cbiIs
IHdyaXRlcik7CisgICAgUGFnZVBvcHVwQ2xpZW50OjphZGRQcm9wZXJ0eSgidmFsdWVzIiwgc3Vn
Z2VzdGlvblZhbHVlcywgd3JpdGVyKTsgICAgICAgCisgICAgUGFnZVBvcHVwQ2xpZW50OjphZGRQ
cm9wZXJ0eSgib3RoZXJDb2xvckxhYmVsIiwgUGxhdGZvcm06OmN1cnJlbnQoKS0+cXVlcnlMb2Nh
bGl6ZWRTdHJpbmcoV2ViTG9jYWxpemVkU3RyaW5nOjpPdGhlckNvbG9yTGFiZWwpLCB3cml0ZXIp
OworICAgIGFkZFByb3BlcnR5KCJhbmNob3JSZWN0SW5TY3JlZW4iLCBhbmNob3JSZWN0SW5TY3Jl
ZW4sIHdyaXRlcik7CisgICAgYWRkUHJvcGVydHkoInJvb3RWaWV3UmVjdEluU2NyZWVuIiwgcm9v
dFZpZXdSZWN0SW5TY3JlZW4sIHdyaXRlcik7CisjaWYgT1MoTUFDX09TX1gpCisgICAgYWRkUHJv
cGVydHkoImNvbmZpbmVUb1Jvb3RWaWV3IiwgdHJ1ZSwgd3JpdGVyKTsKKyNlbHNlCisgICAgYWRk
UHJvcGVydHkoImNvbmZpbmVUb1Jvb3RWaWV3IiwgZmFsc2UsIHdyaXRlcik7CisjZW5kaWYKKyAg
ICBQYWdlUG9wdXBDbGllbnQ6OmFkZFN0cmluZygifTtcbiIsIHdyaXRlcik7CisgICAgd3JpdGVy
LmFkZERhdGEocGlja2VyQ29tbW9uSnMsIHNpemVvZihwaWNrZXJDb21tb25KcykpOworICAgIHdy
aXRlci5hZGREYXRhKGNvbG9yU3VnZ2VzdGlvblBpY2tlckpzLCBzaXplb2YoY29sb3JTdWdnZXN0
aW9uUGlja2VySnMpKTsKKyAgICBQYWdlUG9wdXBDbGllbnQ6OmFkZFN0cmluZygiPC9zY3JpcHQ+
PC9ib2R5PlxuIiwgd3JpdGVyKTsKIH0KIAotV2ViQ29yZTo6TG9jYWxpemVyJiBDb2xvckNob29z
ZXJVSUNvbnRyb2xsZXI6OmxvY2FsaXplcigpCitMb2NhbGl6ZXImIENvbG9yQ2hvb3NlclVJQ29u
dHJvbGxlcjo6bG9jYWxpemVyKCkKIHsKICAgICByZXR1cm4gKm1fbG9jYWxpemVyOwogfQpAQCAt
MTI3LDcgKzE0Miw3IEBAIHZvaWQgQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyOjpzZXRWYWx1ZUFu
ZENsb3NlUG9wdXAoaW50IG51bVZhbHVlLCBjb25zdCBTdHJpbmcmCiAgICAgQVNTRVJUKG1fcG9w
dXApOwogICAgIEFTU0VSVChtX2NsaWVudCk7CiAgICAgaWYgKG51bVZhbHVlID09IENvbG9yUGlj
a2VyUG9wdXBBY3Rpb25TZXRWYWx1ZSkKLSAgICAgICAgbV9jbGllbnQtPmRpZENob29zZUNvbG9y
KFdlYkNvcmU6OkNvbG9yKHN0cmluZ1ZhbHVlKSk7CisgICAgICAgIG1fY2xpZW50LT5kaWRDaG9v
c2VDb2xvcihDb2xvcihzdHJpbmdWYWx1ZSkpOwogICAgIGlmIChudW1WYWx1ZSA9PSBDb2xvclBp
Y2tlclBvcHVwQWN0aW9uQ2hvb3NlT3RoZXJDb2xvcikKICAgICAgICAgb3BlbkNvbG9yQ2hvb3Nl
cigpOwogICAgIGNsb3NlUG9wdXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0RhdGVUaW1lQ2hvb3NlckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvRGF0ZVRpbWVDaG9vc2VySW1wbC5jcHAKaW5kZXggY2JkMGZkNjlmNWRiMTU2YWY1OTdlN2Jk
ZjgwNGZhMzNiN2RjNDUwYS4uMWE1YjdhMjlhNWQ0NTA1NmIyNzVmYmQ1ZTM2YzMwZTQwMGNlYjVj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRGF0ZVRpbWVDaG9vc2Vy
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRGF0ZVRpbWVDaG9vc2Vy
SW1wbC5jcHAKQEAgLTM3LDEyICszNywxNCBAQAogI2luY2x1ZGUgIkNocm9tZUNsaWVudEltcGwu
aCIKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3Nl
ckNsaWVudC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5h
bWVzLmgiCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZXIuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBpY2tlckNvbW1vbi5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKICNpbmNsdWRl
IDxwdWJsaWMvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViTG9jYWxpemVkU3RyaW5n
Lmg+CiAKQEAgLTg5LDYgKzkxLDEwIEBAIHZvaWQgRGF0ZVRpbWVDaG9vc2VySW1wbDo6d3JpdGVE
b2N1bWVudChXZWJDb3JlOjpEb2N1bWVudFdyaXRlciYgd3JpdGVyKQogICAgIFN0cmluZyBzdGVw
U3RyaW5nID0gU3RyaW5nOjpudW1iZXIobV9wYXJhbWV0ZXJzLnN0ZXApOwogICAgIFN0cmluZyBz
dGVwQmFzZVN0cmluZyA9IFN0cmluZzo6bnVtYmVyKG1fcGFyYW1ldGVycy5zdGVwQmFzZSwgMTEs
IFdURjo6VHJ1bmNhdGVUcmFpbGluZ1plcm9zKTsKICAgICBPd25QdHI8TG9jYWxpemVyPiBsb2Nh
bGl6ZXIgPSBMb2NhbGl6ZXI6OmNyZWF0ZShudWxsQXRvbSk7CisgICAgSW50UmVjdCBhbmNob3JS
ZWN0SW5TY3JlZW4gPSBtX2Nocm9tZUNsaWVudC0+cm9vdFZpZXdUb1NjcmVlbihtX3BhcmFtZXRl
cnMuYW5jaG9yUmVjdEluUm9vdFZpZXcpOworICAgIEZyYW1lVmlldyogdmlldyA9IHN0YXRpY19j
YXN0PFdlYlZpZXdJbXBsKj4obV9jaHJvbWVDbGllbnQtPndlYlZpZXcoKSktPnBhZ2UoKS0+bWFp
bkZyYW1lKCktPnZpZXcoKTsKKyAgICBJbnRSZWN0IHJvb3RWaWV3VmlzaWJsZUNvbnRlbnRSZWN0
ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyogaW5jbHVkZSBzY3JvbGxiYXJzICov
KTsKKyAgICBJbnRSZWN0IHJvb3RWaWV3UmVjdEluU2NyZWVuID0gbV9jaHJvbWVDbGllbnQtPnJv
b3RWaWV3VG9TY3JlZW4ocm9vdFZpZXdWaXNpYmxlQ29udGVudFJlY3QpOwogCiAgICAgYWRkU3Ry
aW5nKCI8IURPQ1RZUEUgaHRtbD48aGVhZD48bWV0YSBjaGFyc2V0PSdVVEYtOCc+PHN0eWxlPlxu
Iiwgd3JpdGVyKTsKICAgICB3cml0ZXIuYWRkRGF0YShXZWJDb3JlOjpwaWNrZXJDb21tb25Dc3Ms
IHNpemVvZihXZWJDb3JlOjpwaWNrZXJDb21tb25Dc3MpKTsKQEAgLTk5LDYgKzEwNSwxMyBAQCB2
b2lkIERhdGVUaW1lQ2hvb3NlckltcGw6OndyaXRlRG9jdW1lbnQoV2ViQ29yZTo6RG9jdW1lbnRX
cml0ZXImIHdyaXRlcikKICAgICAgICAgd3JpdGVyLmFkZERhdGEoZXh0cmFTdHlsZS5kYXRhKCks
IGV4dHJhU3R5bGUubGVuZ3RoKCkpOwogICAgIGFkZFN0cmluZygiPC9zdHlsZT48L2hlYWQ+PGJv
ZHk+PGRpdiBpZD1tYWluPkxvYWRpbmcuLi48L2Rpdj48c2NyaXB0PlxuIgogICAgICAgICAgICAg
ICAgIndpbmRvdy5kaWFsb2dBcmd1bWVudHMgPSB7XG4iLCB3cml0ZXIpOworICAgIGFkZFByb3Bl
cnR5KCJhbmNob3JSZWN0SW5TY3JlZW4iLCBhbmNob3JSZWN0SW5TY3JlZW4sIHdyaXRlcik7Cisg
ICAgYWRkUHJvcGVydHkoInJvb3RWaWV3UmVjdEluU2NyZWVuIiwgcm9vdFZpZXdSZWN0SW5TY3Jl
ZW4sIHdyaXRlcik7CisjaWYgT1MoTUFDX09TX1gpCisgICAgYWRkUHJvcGVydHkoImNvbmZpbmVU
b1Jvb3RWaWV3IiwgdHJ1ZSwgd3JpdGVyKTsKKyNlbHNlCisgICAgYWRkUHJvcGVydHkoImNvbmZp
bmVUb1Jvb3RWaWV3IiwgZmFsc2UsIHdyaXRlcik7CisjZW5kaWYKICAgICBhZGRQcm9wZXJ0eSgi
bWluIiwgbWluU3RyaW5nLCB3cml0ZXIpOwogICAgIGFkZFByb3BlcnR5KCJtYXgiLCBtYXhTdHJp
bmcsIHdyaXRlcik7CiAgICAgYWRkUHJvcGVydHkoInN0ZXAiLCBzdGVwU3RyaW5nLCB3cml0ZXIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcApp
bmRleCAxZTBmY2ViYjUyOWZmMDJlMWEwMDlhYWY1Yjc0ODFlY2VmMTBjYzY3Li5lNDgwOGZkNzA2
ZmE5MDA2OWZlMWMyZmZlM2UxYzE4OWVkMDE3ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcApAQCAtMTUxLDE1ICsxNTEsMTQgQEAgV2Vi
UGFnZVBvcHVwSW1wbDo6fldlYlBhZ2VQb3B1cEltcGwoKQogICAgIEFTU0VSVCghbV9wYWdlKTsK
IH0KIAotYm9vbCBXZWJQYWdlUG9wdXBJbXBsOjppbml0KFdlYlZpZXdJbXBsKiB3ZWJWaWV3LCBQ
YWdlUG9wdXBDbGllbnQqIHBvcHVwQ2xpZW50LCBjb25zdCBJbnRSZWN0JiBvcmlnaW5Cb3VuZHNJ
blJvb3RWaWV3KQorYm9vbCBXZWJQYWdlUG9wdXBJbXBsOjppbml0KFdlYlZpZXdJbXBsKiB3ZWJW
aWV3LCBQYWdlUG9wdXBDbGllbnQqIHBvcHVwQ2xpZW50LCBjb25zdCBJbnRSZWN0JikKIHsKICAg
ICBBU1NFUlQod2ViVmlldyk7CiAgICAgQVNTRVJUKHBvcHVwQ2xpZW50KTsKICAgICBtX3dlYlZp
ZXcgPSB3ZWJWaWV3OwogICAgIG1fcG9wdXBDbGllbnQgPSBwb3B1cENsaWVudDsKLSAgICBtX29y
aWdpbkJvdW5kc0luUm9vdFZpZXcgPSBvcmlnaW5Cb3VuZHNJblJvb3RWaWV3OwogCi0gICAgcmVw
b3NpdGlvbihtX3BvcHVwQ2xpZW50LT5jb250ZW50U2l6ZSgpKTsKKyAgICByZXNpemUobV9wb3B1
cENsaWVudC0+Y29udGVudFNpemUoKSk7CiAKICAgICBpZiAoIWluaXRQYWdlKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKQEAgLTIzMywyMiArMjMyLDEwIEBAIHZvaWQgV2ViUGFnZVBvcHVwSW1w
bDo6cGFpbnQoV2ViQ2FudmFzKiBjYW52YXMsIGNvbnN0IFdlYlJlY3QmIHJlY3QsIFBhaW50T3B0
aW9uCiAgICAgUGFnZVdpZGdldERlbGVnYXRlOjpwYWludChtX3BhZ2UuZ2V0KCksIDAsIGNhbnZh
cywgcmVjdCwgUGFnZVdpZGdldERlbGVnYXRlOjpPcGFxdWUpOwogfQogCi12b2lkIFdlYlBhZ2VQ
b3B1cEltcGw6OnJlcG9zaXRpb24oY29uc3QgV2ViU2l6ZSYgcG9wdXBTaXplKQotewotICAgIFdl
YlNpemUgcm9vdFZpZXdTaXplID0gbV93ZWJWaWV3LT5zaXplKCk7Ci0gICAgSW50UmVjdCBwb3B1
cEJvdW5kc0luUm9vdFZpZXcoSW50UG9pbnQobWF4KDAsIG1fb3JpZ2luQm91bmRzSW5Sb290Vmll
dy54KCkpLCBtYXgoMCwgbV9vcmlnaW5Cb3VuZHNJblJvb3RWaWV3Lm1heFkoKSkpLCBwb3B1cFNp
emUpOwotICAgIGlmIChwb3B1cEJvdW5kc0luUm9vdFZpZXcubWF4WSgpID4gcm9vdFZpZXdTaXpl
LmhlaWdodCkKLSAgICAgICAgcG9wdXBCb3VuZHNJblJvb3RWaWV3LnNldFkobWF4KDAsIG1fb3Jp
Z2luQm91bmRzSW5Sb290Vmlldy55KCkgLSBwb3B1cFNpemUuaGVpZ2h0KSk7Ci0gICAgaWYgKHBv
cHVwQm91bmRzSW5Sb290Vmlldy5tYXhYKCkgPiByb290Vmlld1NpemUud2lkdGgpCi0gICAgICAg
IHBvcHVwQm91bmRzSW5Sb290Vmlldy5zZXRYKG1heCgwLCByb290Vmlld1NpemUud2lkdGggLSBw
b3B1cFNpemUud2lkdGgpKTsKLSAgICBJbnRSZWN0IGJvdW5kc0luU2NyZWVuID0gbV93ZWJWaWV3
LT5wYWdlKCktPmNocm9tZSgpLT5yb290Vmlld1RvU2NyZWVuKHBvcHVwQm91bmRzSW5Sb290Vmll
dyk7Ci0gICAgbV93aWRnZXRDbGllbnQtPnNldFdpbmRvd1JlY3QoYm91bmRzSW5TY3JlZW4pOwot
ICAgIG1fd2luZG93UmVjdEluU2NyZWVuID0gYm91bmRzSW5TY3JlZW47Ci19Ci0KIHZvaWQgV2Vi
UGFnZVBvcHVwSW1wbDo6cmVzaXplKGNvbnN0IFdlYlNpemUmIG5ld1NpemUpCiB7Ci0gICAgcmVw
b3NpdGlvbihuZXdTaXplKTsKKyAgICBtX3dpbmRvd1JlY3RJblNjcmVlbiA9IFdlYlJlY3QobV93
aW5kb3dSZWN0SW5TY3JlZW4ueCwgbV93aW5kb3dSZWN0SW5TY3JlZW4ueSwgbmV3U2l6ZS53aWR0
aCwgbmV3U2l6ZS5oZWlnaHQpOworICAgIG1fd2lkZ2V0Q2xpZW50LT5zZXRXaW5kb3dSZWN0KG1f
d2luZG93UmVjdEluU2NyZWVuKTsKIAogICAgIGlmIChtX3BhZ2UpCiAgICAgICAgIG1fcGFnZS0+
bWFpbkZyYW1lKCktPnZpZXcoKS0+cmVzaXplKG5ld1NpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5oCmluZGV4IGU2ODQ0YmZkMDZhNDk4YmRiNTBk
YjgxOTA2ZDk2ZTRhZTE1ZGI0YTQuLmNmMmJiYmE3ODcyZDVhOWNkNDljNDQ3NzNjZGMxYzI0Zjdm
YzFmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1
cEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBs
LmgKQEAgLTg3LDExICs4Nyw5IEBAIHByaXZhdGU6CiAKICAgICBleHBsaWNpdCBXZWJQYWdlUG9w
dXBJbXBsKFdlYldpZGdldENsaWVudCopOwogICAgIGJvb2wgaW5pdFBhZ2UoKTsKLSAgICB2b2lk
IHJlcG9zaXRpb24oY29uc3QgV2ViU2l6ZSYpOwogCiAgICAgV2ViV2lkZ2V0Q2xpZW50KiBtX3dp
ZGdldENsaWVudDsKICAgICBXZWJSZWN0IG1fd2luZG93UmVjdEluU2NyZWVuOwotICAgIFdlYkNv
cmU6OkludFJlY3QgbV9vcmlnaW5Cb3VuZHNJblJvb3RWaWV3OwogICAgIFdlYlZpZXdJbXBsKiBt
X3dlYlZpZXc7CiAgICAgT3duUHRyPFdlYkNvcmU6OlBhZ2U+IG1fcGFnZTsKICAgICBPd25QdHI8
UGFnZVBvcHVwQ2hyb21lQ2xpZW50PiBtX2Nocm9tZUNsaWVudDsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkODBiYmUzMWZk
NDQzYzY0YWY3MTMxZDEzN2NhOWQ0YzNhZWM5N2Q1Li5lZGM3ZTVhZGZlMmM0NjkzNTkxODhhOGNj
NzEzMTNkOWMzYmE5N2U2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTAtMDUgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGFnZSBwb3B1cCBzaG91
bGQgYmUgc21hcnRlciBhYm91dCBpdHMgbGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODQ5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9wYWdl
LXBvcHVwL3BhZ2UtcG9wdXAtYWRqdXN0LXJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3BhZ2UtcG9wdXAvcGFnZS1wb3B1cC1h
ZGp1c3QtcmVjdC5odG1sOiBBZGRlZC4KKwogMjAxMi0xMC0wOCAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIGltYWdlIG5vdCBkaXNwbGF5ZWQgaW4gZmxleGJveApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9wYWdl
LXBvcHVwL3BhZ2UtcG9wdXAtYWRqdXN0LXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9wYWdlLXBvcHVwL3BhZ2UtcG9wdXAtYWRqdXN0
LXJlY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1ZmEwMjQ4NzJlYTFjY2Q3ZTliNzhlZjBl
YmUyNmQ0ZDg1OGU0MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2Zvcm1zL3BhZ2UtcG9wdXAvcGFnZS1wb3B1cC1hZGp1c3QtcmVjdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw2OSBAQAorVGVzdCBmb3IgY2hpbGQgZWxlbWVudHMgb2YgYSBk
YXRhbGlzdCBlbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW92ZSBh
bmNob3IgZWxlbWVudCBhbG9uZyB0aGUgdmVydGljYWwgYXhpcy4KK1BBU1MgcG9wdXBXaW5kb3cu
YWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAs
MzAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEw
KS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVz
dFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwx
MCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRv
U3RyaW5nKCkgaXMgIlJlY3QoMCwyMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdp
bmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwzMCwzMCwxMCki
CitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3Ry
aW5nKCkgaXMgIlJlY3QoMCw0MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRv
d1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw1MCwzMCwxMCkiCitQ
QVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5n
KCkgaXMgIlJlY3QoMCw0MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1Jl
Y3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw1MCwzMCwxMCkiCitQQVNT
IHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkg
aXMgIlJlY3QoMCw1MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3Qo
MzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw1MCwzMCwxMCkiCitNb3ZlIGFu
Y2hvciBlbGVtZW50IGFsb25nIHRoZSBob3Jpem9udGFsIGF4aXMuCitQQVNTIHBvcHVwV2luZG93
LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwx
MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwg
MTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFk
anVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwz
MCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTAp
LnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVz
dFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwx
MCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRv
U3RyaW5nKCkgaXMgIlJlY3QoMTAsMTAsMzAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RX
aW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDIwLDEwLDMwLDEw
KSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9T
dHJpbmcoKSBpcyAiUmVjdCgzMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdp
bmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoNDAsMTAsMzAsMTAp
IgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0
cmluZygpIGlzICJSZWN0KDUwLDEwLDMwLDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2lu
ZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCg1MCwxMCwzMCwxMCki
CitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3Ry
aW5nKCkgaXMgIlJlY3QoNTAsMTAsMzAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5k
b3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDUwLDEwLDMwLDEwKSIK
K1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJp
bmcoKSBpcyAiUmVjdCg1MCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRv
d1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoNTAsMTAsMzAsMTApIgor
TW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgdmVydGljYWwgYXhpcy4gT3BlbiBwb3B1cCB0
aGF0IGlzIHRvbyB0YWxsLgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAx
MDAwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDYwKSIKK1BBU1MgcG9wdXBX
aW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJS
ZWN0KDAsMCwzMCw2MCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEw
MDAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDEwLDMwLDUwKSIKK1BBU1MgcG9wdXBX
aW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJS
ZWN0KDAsMjAsMzAsNDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAx
MDAwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwzMCwzMCwzMCkiCitQQVNTIHBvcHVw
V2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAi
UmVjdCgwLDAsMzAsMzApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAx
MDAwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDQwKSIKK1BBU1MgcG9wdXBX
aW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJS
ZWN0KDAsMCwzMCw1MCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEw
MDAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsNjApIgorUEFTUyBwb3B1cFdp
bmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJl
Y3QoMCwwLDMwLDYwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAw
MCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCw2MCkiCitNb3ZlIGFuY2hvciBl
bGVtZW50IGFsb25nIHRoZSB2ZXJ0aWNhbCBheGlzLiBPcGVuIHBvcHVwIHRoYXQgaXMgdG9vIHRh
bGwgYW5kIHdvbid0IHNocmluay4KK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgz
MCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDEwMDApIgorUEFT
UyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJp
bmcoKSBpcyAiUmVjdCgwLDAsMzAsMTAwMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRv
d1JlY3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCwxMDAw
KSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDAp
LnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDEwMDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1
c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAs
MzAsMTAwMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMw
LCAxMDAwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCwxMDAwKSIKK1BBU1MgcG9wdXBXaW5k
b3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCkgaXMgIlJl
Y3QoMCwwLDMwLDEwMDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAx
MDAwLCAzMCwgMTAwMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsMTAwMCkiCitQQVNTIHBv
cHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0cmluZygp
IGlzICJSZWN0KDAsMCwzMCwxMDAwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVj
dCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDEwMDApIgor
UEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9T
dHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsMTAwMCkiCitHcm93IHBvcHVwIHdpZHRoLgorUEFTUyBw
b3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpIGlz
ICJSZWN0KDMwLDEwLDMwLDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCg0
MCwgMTAsIDQwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgzMCwxMCw0MCwxMCkiCitQQVNTIHBv
cHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoNTAsIDEwLCA1MCwgMTApLnRvU3RyaW5nKCkgaXMg
IlJlY3QoMzAsMTAsNTAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDYw
LCAxMCwgNjAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDIwLDEwLDYwLDEwKSIKK1BBU1MgcG9w
dXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCg3MCwgMTAsIDcwLCAxMCkudG9TdHJpbmcoKSBpcyAi
UmVjdCgxMCwxMCw3MCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoODAs
IDEwLCA4MCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCw4MCwxMCkiCitQQVNTIHBvcHVw
V2luZG93LmFkanVzdFdpbmRvd1JlY3QoOTAsIDEwLCA5MCwgMTApLnRvU3RyaW5nKCkgaXMgIlJl
Y3QoMCwxMCw5MCwxMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZm9ybXMvcGFnZS1wb3B1cC9wYWdlLXBvcHVwLWFkanVzdC1yZWN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3BhZ2UtcG9wdXAvcGFnZS1wb3B1cC1h
ZGp1c3QtcmVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkZWM3NjIzOTYxMTQ4ZjRiMmYyNTM5ZWVlOGUx
NzE2NWU2MGI4MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2Zvcm1zL3BhZ2UtcG9wdXAvcGFnZS1wb3B1cC1hZGp1c3QtcmVjdC5odG1sCkBA
IC0wLDAgKzEsMjIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zhc3QvZm9ybXMvcmVzb3VyY2Vz
L2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9m
b3Jtcy9kYXRlL2NhbGVuZGFyLXBpY2tlci1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorCis8aW5wdXQgdHlwZT0iZGF0ZSIgaWQ9ImRhdGUiPgorCis8c2NyaXB0PgorZGVzY3JpcHRp
b24oJ1Rlc3QgZm9yIGNoaWxkIGVsZW1lbnRzIG9mIGEgZGF0YWxpc3QgZWxlbWVudC4nKTsKKwor
b3BlblBpY2tlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF0ZScpKTsKKworcG9wdXBXaW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgdGVzdCwgZmFsc2UpOworCitmdW5jdGlvbiBt
YWtlUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgeDog
eCwKKyAgICAgICAgeTogeSwKKyAgICAgICAgd2lkdGg6IHdpZHRoLAorICAgICAgICBoZWlnaHQ6
IGhlaWdodAorICAgIH07Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgcG9wdXBXaW5kb3cu
Z2xvYmFsLnBhcmFtcy5jb25maW5lVG9Sb290VmlldyA9IGZhbHNlOworICAgIHBvcHVwV2luZG93
LnNjcmVlbiA9IHsKKyAgICAgICAgd2lkdGg6IDgwLAorICAgICAgICBoZWlnaHQ6IDYwLAorICAg
ICAgICBhdmFpbExlZnQ6IDAsCisgICAgICAgIGF2YWlsVG9wOiAwLAorICAgICAgICBhdmFpbFdp
ZHRoOiA4MCwKKyAgICAgICAgYXZhaWxIZWlnaHQ6IDYwLAorICAgIH07CisgICAgcG9wdXBXaW5k
b3cuZ2xvYmFsLnBhcmFtcy5yb290Vmlld1JlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDAsIDgw
LCA2MCk7CisKKyAgICBkZWJ1ZygiTW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgdmVydGlj
YWwgYXhpcy4iKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdElu
U2NyZWVuID0gbWFrZVJlY3QoMCwgLTIwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdp
bmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJSZWN0
KDAsMCwzMCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJl
Y3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIC0xMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9w
dXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICci
UmVjdCgwLDAsMzAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNo
b3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdw
b3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywg
JyJSZWN0KDAsMTAsMzAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5h
bmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAxMCwgMjAsIDEwKTsKKyAgICBzaG91bGRC
ZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmco
KScsICciUmVjdCgwLDIwLDMwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJh
bXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgMjAsIDIwLCAxMCk7CisgICAgc2hv
dWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3Ry
aW5nKCknLCAnIlJlY3QoMCwzMCwzMCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwu
cGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDMwLCAyMCwgMTApOworICAg
IHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50
b1N0cmluZygpJywgJyJSZWN0KDAsNDAsMzAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xv
YmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA0MCwgMjAsIDEwKTsK
KyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAx
MCkudG9TdHJpbmcoKScsICciUmVjdCgwLDUwLDMwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93
Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgNTAsIDIwLCAx
MCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAz
MCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCw0MCwzMCwxMCkiJyk7CisKKyAgICBwb3B1cFdp
bmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDYwLCAy
MCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAx
MCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJSZWN0KDAsNTAsMzAsMTApIicpOworCisgICAgcG9w
dXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA3
MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgz
MCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgwLDUwLDMwLDEwKSInKTsKKworICAg
IHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3Qo
MCwgODAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1Jl
Y3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCw1MCwzMCwxMCkiJyk7CisK
KyAgICBkZWJ1ZygiTW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgaG9yaXpvbnRhbCBheGlz
LiIpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4g
PSBtYWtlUmVjdCgtNDAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFk
anVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwxMCwz
MCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNj
cmVlbiA9IG1ha2VSZWN0KC0zMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5k
b3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgw
LDEwLDMwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVj
dEluU2NyZWVuID0gbWFrZVJlY3QoLTIwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1
cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJS
ZWN0KDAsMTAsMzAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNo
b3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgtMTAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUo
J3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkn
LCAnIlJlY3QoMCwxMCwzMCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1z
LmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxk
QmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5n
KCknLCAnIlJlY3QoMCwxMCwzMCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFy
YW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDEwLCAwLCAyMCwgMTApOworICAgIHNo
b3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0
cmluZygpJywgJyJSZWN0KDEwLDEwLDMwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2Jh
bC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMjAsIDAsIDIwLCAxMCk7Cisg
ICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTAp
LnRvU3RyaW5nKCknLCAnIlJlY3QoMjAsMTAsMzAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cu
Z2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgzMCwgMCwgMjAsIDEw
KTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMw
LCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgzMCwxMCwzMCwxMCkiJyk7CisKKyAgICBwb3B1cFdp
bmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDQwLCAwLCAy
MCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAx
MCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJSZWN0KDQwLDEwLDMwLDEwKSInKTsKKworICAgIHBv
cHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoNTAs
IDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3Qo
MzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoNTAsMTAsMzAsMTApIicpOworCisg
ICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVj
dCg2MCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93
UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCg1MCwxMCwzMCwxMCkiJyk7
CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1h
a2VSZWN0KDcwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RX
aW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJSZWN0KDUwLDEwLDMwLDEw
KSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVu
ID0gbWFrZVJlY3QoODAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFk
anVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoNTAsMTAs
MzAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5T
Y3JlZW4gPSBtYWtlUmVjdCg5MCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5k
b3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCg1
MCwxMCwzMCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJl
Y3RJblNjcmVlbiA9IG1ha2VSZWN0KDEwMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9w
dXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICci
UmVjdCg1MCwxMCwzMCwxMCkiJyk7CisKKyAgICBkZWJ1ZygiTW92ZSBhbmNob3IgZWxlbWVudCBh
bG9uZyB0aGUgdmVydGljYWwgYXhpcy4gT3BlbiBwb3B1cCB0aGF0IGlzIHRvbyB0YWxsLiIpOwor
CisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtl
UmVjdCgwLCAtMjAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdp
bmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgwLDAsMzAsNjAp
IicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4g
PSBtYWtlUmVjdCgwLCAtMTAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFk
anVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgwLDAs
MzAsNjApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5T
Y3JlZW4gPSBtYWtlUmVjdCgwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRv
dy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3Qo
MCwxMCwzMCw1MCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJl
Y3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDEwLCAyMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1
cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAn
IlJlY3QoMCwyMCwzMCw0MCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFu
Y2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDIwLCAyMCwgMTApOworICAgIHNob3VsZEJl
KCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5n
KCknLCAnIlJlY3QoMCwzMCwzMCwzMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFy
YW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDMwLCAyMCwgMTApOworICAgIHNo
b3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRv
U3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDMwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2Jh
bC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgNDAsIDIwLCAxMCk7Cisg
ICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAx
MCkudG9TdHJpbmcoKScsICciUmVjdCgwLDAsMzAsNDApIicpOworCisgICAgcG9wdXBXaW5kb3cu
Z2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA1MCwgMjAsIDEw
KTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwg
MzAsIDEwKS50b1N0cmluZygpJywgJyJSZWN0KDAsMCwzMCw1MCkiJyk7CisKKyAgICBwb3B1cFdp
bmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDYwLCAy
MCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAx
MDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDYwKSInKTsKKworICAgIHBv
cHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwg
NzAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3Qo
MzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgwLDAsMzAsNjApIicpOworCisg
ICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVj
dCgwLCA4MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93
UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJSZWN0KDAsMCwzMCw2MCkiJyk7
CisKKyAgICBkZWJ1ZygiTW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgdmVydGljYWwgYXhp
cy4gT3BlbiBwb3B1cCB0aGF0IGlzIHRvbyB0YWxsIGFuZCB3b24ndCBzaHJpbmsuIik7CisKKyAg
ICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0
KDAsIC0yMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93
UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDEwMDAp
IicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4g
PSBtYWtlUmVjdCgwLCAtMTAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFk
anVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0cmluZygpJywgJyJSZWN0KDAs
MCwzMCwxMDAwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVj
dEluU2NyZWVuID0gbWFrZVJlY3QoMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBX
aW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAn
IlJlY3QoMCwwLDMwLDEwMDApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5h
bmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAxMCwgMjAsIDEwKTsKKyAgICBzaG91bGRC
ZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3Ry
aW5nKCknLCAnIlJlY3QoMCwwLDMwLDEwMDApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFs
LnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAyMCwgMjAsIDEwKTsKKyAg
ICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEw
MDApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDEwMDApIicpOworCisgICAgcG9wdXBXaW5k
b3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAzMCwgMjAs
IDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAw
MCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDEwMDApIicpOworCisgICAg
cG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgw
LCA0MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVj
dCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDEwMDApIicp
OworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBt
YWtlUmVjdCgwLCA1MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0
V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMw
LDEwMDApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5T
Y3JlZW4gPSBtYWtlUmVjdCgwLCA2MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5k
b3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnIlJl
Y3QoMCwwLDMwLDEwMDApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNo
b3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA3MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZSgn
cG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5n
KCknLCAnIlJlY3QoMCwwLDMwLDEwMDApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBh
cmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA4MCwgMjAsIDEwKTsKKyAgICBz
aG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDAp
LnRvU3RyaW5nKCknLCAnIlJlY3QoMCwwLDMwLDEwMDApIicpOworCisgICAgZGVidWcoIkdyb3cg
cG9wdXAgd2lkdGguIik7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJl
Y3RJblNjcmVlbiA9IG1ha2VSZWN0KDMwLCAwLCAzMCwgMTApOworICAgIHNob3VsZEJlKCdwb3B1
cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJyJS
ZWN0KDMwLDEwLDMwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5j
aG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMzAsIDAsIDMwLCAxMCk7CisgICAgc2hvdWxkQmUo
J3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoNDAsIDEwLCA0MCwgMTApLnRvU3RyaW5nKCkn
LCAnIlJlY3QoMzAsMTAsNDAsMTApIicpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFt
cy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgzMCwgMCwgMzAsIDEwKTsKKyAgICBzaG91
bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCg1MCwgMTAsIDUwLCAxMCkudG9TdHJp
bmcoKScsICciUmVjdCgzMCwxMCw1MCwxMCkiJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwu
cGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDMwLCAwLCAzMCwgMTApOworICAg
IHNob3VsZEJlKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDYwLCAxMCwgNjAsIDEwKS50
b1N0cmluZygpJywgJyJSZWN0KDIwLDEwLDYwLDEwKSInKTsKKworICAgIHBvcHVwV2luZG93Lmds
b2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMzAsIDAsIDMwLCAxMCk7
CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoNzAsIDEwLCA3MCwg
MTApLnRvU3RyaW5nKCknLCAnIlJlY3QoMTAsMTAsNzAsMTApIicpOworCisgICAgcG9wdXBXaW5k
b3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgzMCwgMCwgMzAs
IDEwKTsKKyAgICBzaG91bGRCZSgncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCg4MCwgMTAs
IDgwLCAxMCkudG9TdHJpbmcoKScsICciUmVjdCgwLDEwLDgwLDEwKSInKTsKKworICAgIHBvcHVw
V2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMzAsIDAs
IDMwLCAxMCk7CisgICAgc2hvdWxkQmUoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoOTAs
IDEwLCA5MCwgMTApLnRvU3RyaW5nKCknLCAnIlJlY3QoMCwxMCw5MCwxMCkiJyk7CisKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167703</attachid>
            <date>2012-10-09 00:35:55 -0700</date>
            <delta_ts>2012-10-09 00:55:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98499-20121009163456.patch</filename>
            <type>text/plain</type>
            <size>45092</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY2OGJmYmE0ZTRlODU2
OGNhZTU5OWVlNTI5YWFlYjA1MjE3NjMwMi4uNTkwNTQxNTdjYTgxYmYyN2E0NzQyYjJlZjJjYTg4
MDgyZWY3N2U2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTEwLTA1ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIFBhZ2UgcG9wdXAgc2hv
dWxkIGJlIHNtYXJ0ZXIgYWJvdXQgaXRzIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg0OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBmaXhlcyB0aGVzZSB0d28gaXNzdWVz
OgorICAgICAgICAxLiBQYWdlIHBvcHVwIHNob3VsZCByZXBvc2l0aW9uIGl0c2VsZiBzbyBpdCB3
b24ndCBnZXQgY2xpcHBlZCBieSBzY3JlZW4oV2luL0xpbnV4KSBvciByb290dmlldyhNYWMpIGJv
dW5kcy4KKyAgICAgICAgMi4gUGFnZSBwb3B1cCBzaG91bGQgcmVzaXplIGl0c2VsZiB3aGVuIGl0
IGRvZXNuJ3QgZml0LgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9y
bXMvcGFnZS1wb3B1cC9wYWdlLXBvcHVwLWFkanVzdC1yZWN0Lmh0bWwKKworICAgICAgICAqIFJl
c291cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzOgorICAgICAgICAoaW5pdGlhbGl6
ZSk6IFdlIG5lZWQgdG8gc2V0IGdsb2JhbC5wYXJhbXMgYXQgdGhlIGJlZ2lubmluZyBiZWNhdXNl
IHdlIG5lZWQgaXQgZm9yIHJlc2l6ZVdpbmRvdygpLgorICAgICAgICAqIFJlc291cmNlcy9wYWdl
cG9wdXBzL2NvbG9yU3VnZ2VzdGlvblBpY2tlci5qczogQWRkZWQgZ2xvYmFsLnBhcmFtcy4KKyAg
ICAgICAgKGhhbmRsZU1lc3NhZ2UpOgorICAgICAgICAoaW5pdGlhbGl6ZSk6CisgICAgICAgICho
YW5kbGVBcmd1bWVudHNUaW1lb3V0KToKKyAgICAgICAgKiBSZXNvdXJjZXMvcGFnZXBvcHVwcy9w
aWNrZXJDb21tb24uanM6CisgICAgICAgIChSZWN0KTogUmVwcmVzZW50cyBhbiBheGlzIGFsaWdu
ZWQgcmVjdGFuZ2xlLgorICAgICAgICAoUmVjdC5wcm90b3R5cGUuZ2V0IG1heFgpOiBHZXRzIHBv
c2l0aW9uIG9mIHJpZ2h0IGVkZ2UuCisgICAgICAgIChSZWN0LnByb3RvdHlwZS5nZXQgbWF4WSk6
IEdldHMgcG9zaXRpb24gb2YgYm90dG9tIGVkZ2UuCisgICAgICAgIChSZWN0LnByb3RvdHlwZS50
b1N0cmluZyk6CisgICAgICAgIChSZWN0LmludGVyc2VjdGlvbik6IFJldHVybnMgdGhlIGludGVy
c2VjdGlvbiBvZiB0d28gcmVjdGFuZ2xlcy4KKyAgICAgICAgKHJlc2l6ZVdpbmRvdyk6IFJlc2l6
ZSB3aW5kb3cgdG8gYSBjZXJ0YWluIHNpemUuIERvbid0IGFsbG93IHNocmlua2luZy4KKyAgICAg
ICAgKGFkanVzdFdpbmRvd1JlY3QpOiBDYWxjdWxhdGVzIHRoZSBiZXN0IHBvc2l0aW9uIGFuZCBz
aXplIGZvciB0aGUgcG9wdXAuCisgICAgICAgIChfYWRqdXN0V2luZG93UmVjdFZlcnRpY2FsbHkp
OgorICAgICAgICAoX2FkanVzdFdpbmRvd1JlY3RIb3Jpem9udGFsbHkpOgorICAgICAgICAoc2V0
V2luZG93UmVjdCk6IFNldHMgdGhlIHBvc2l0aW9uIGFuZCBzaXplIG9mIHRoZSBwb3B1cCB0byB0
aGUgZ2l2ZW4gcmVjdC4KKyAgICAgICAgKiBSZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9u
UGlja2VyLmNzczoKKyAgICAgICAgKC5zdWdnZXN0aW9uLWxpc3QpOiBEb24ndCBzaG93IGhvcml6
b250YWwgc2Nyb2xsIGJhci4KKyAgICAgICAgKiBSZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0
aW9uUGlja2VyLmpzOgorICAgICAgICAoU3VnZ2VzdGlvblBpY2tlci5wcm90b3R5cGUuX2ZpeFdp
bmRvd1NpemUpOiAKKyAgICAgICAgKiBwYWdlL1BhZ2VQb3B1cENsaWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlUG9wdXBDbGllbnQ6OmFkZFByb3BlcnR5KTogRm9yIGFkZGluZyBhbiBp
bnQgdG8gSlNPTi4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VQb3B1cENsaWVudDo6YWRkUHJvcGVy
dHkpOiBGb3IgYWRkaW5nIGFuIEludFJlY3QgdG8gSlNPTi4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIHBhZ2UvUGFnZVBvcHVwQ2xpZW50Lmg6CisgICAgICAgIChQYWdlUG9wdXBDbGll
bnQpOgorCiAyMDEyLTEwLTA4ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgaW1hZ2Ugbm90IGRpc3BsYXllZCBpbiBmbGV4Ym94CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDNmNzhhNTgzZWFjMDQwZmJlM2Q2ODFjNjMxMDg0YjBiOWI4ZjAwODYuLjE1OWRm
ZjRhODkxMmI1NzBjYzM3NjM3ZjY2NjkxODNjYjdjZDc5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTAtMDUgIEtlaXNoaSBIYXR0b3JpICA8a2Vp
c2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGFnZSBwb3B1cCBzaG91bGQgYmUgc21hcnRlciBh
Ym91dCBpdHMgbGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05ODQ5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3JjL0NvbG9yQ2hvb3NlclVJQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkNvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6d3JpdGVEb2N1bWVudCk6IFNlbmQgYW5jaG9y
UmVjdEluU2NyZWVuLCByb290Vmlld1JlY3RJblNjcmVlbiwgYW5kIGNvbmZpbmVUb1Jvb3RWaWV3
LgorICAgICAgICAqIHNyYy9EYXRlVGltZUNob29zZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RGF0ZVRpbWVDaG9vc2VySW1wbDo6d3JpdGVEb2N1bWVudCk6IFNlbmQgYW5jaG9yUmVjdElu
U2NyZWVuLCByb290Vmlld1JlY3RJblNjcmVlbiwgYW5kIGNvbmZpbmVUb1Jvb3RWaWV3LgorICAg
ICAgICAqIHNyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVBvcHVwSW1wbDo6aW5pdCk6IFdlIGtlZXAgdGhlIG9yaWdpbkJvdW5kc0luUm9vdFZpZXcgYXJn
dW1lbnQgZm9yIE1vY2tQYWdlUG9wdXBEcml2ZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
b3B1cEltcGw6OnJlc2l6ZSk6IFdlYlBhZ2VQb3B1cEltcGwgaXNuJ3QgaW4gY2hhcmdlIG9mIHNl
dHRpbmcgdGhlIHBvcHVwIHBvc2l0aW9uIGFueSBtb3JlLgorICAgICAgICAqIHNyYy9XZWJQYWdl
UG9wdXBJbXBsLmg6CisgICAgICAgIChXZWJQYWdlUG9wdXBJbXBsKToKKwogMjAxMi0xMC0wOCAg
RGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaHJvbWl1bSBE
RVBTIHJvbGwgcjE2MDY1NzoxNjA3NjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNv
dXJjZXMvcGFnZXBvcHVwcy9jYWxlbmRhclBpY2tlci5qcyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291
cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzCmluZGV4IGY3MzE1YjM4Nzc5MmFhYzAz
MjEzZDQ1MDBjZDAwNmUwNmNmOWRiNGEuLmI5YmQwODE4ZjJhNTBjN2IzN2RiNTc1YWQ2MzExZjVm
MzI0MjM5ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBz
L2NhbGVuZGFyUGlja2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9w
dXBzL2NhbGVuZGFyUGlja2VyLmpzCkBAIC0yNjcsNyArMjY3LDggQEAgQ2FsZW5kYXJQaWNrZXIu
dmFsaWRhdGVDb25maWcgPSBmdW5jdGlvbihjb25maWcpIHsKIC8qKgogICogQHBhcmFtIHshT2Jq
ZWN0fSBhcmdzCiAgKi8KLWZ1bmN0aW9uIGluaXRpYWxpemUoYXJncykgeworZnVuY3Rpb24gaW5p
dGlhbGl6ZShhcmdzKSB7IAorICAgIGdsb2JhbC5wYXJhbXMgPSBhcmdzOwogICAgIHZhciBlcnJv
clN0cmluZyA9IENhbGVuZGFyUGlja2VyLnZhbGlkYXRlQ29uZmlnKGFyZ3MpOwogICAgIGlmIChh
cmdzLnN1Z2dlc3Rpb25WYWx1ZXMpCiAgICAgICAgIGVycm9yU3RyaW5nID0gZXJyb3JTdHJpbmcg
fHwgU3VnZ2VzdGlvblBpY2tlci52YWxpZGF0ZUNvbmZpZyhhcmdzKQpAQCAtMjc2LDcgKzI3Nyw2
IEBAIGZ1bmN0aW9uIGluaXRpYWxpemUoYXJncykgewogICAgICAgICBtYWluLnRleHRDb250ZW50
ID0gIkludGVybmFsIGVycm9yOiAiICsgZXJyb3JTdHJpbmc7CiAgICAgICAgIHJlc2l6ZVdpbmRv
dyhtYWluLm9mZnNldFdpZHRoLCBtYWluLm9mZnNldEhlaWdodCk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgZ2xvYmFsLnBhcmFtcyA9IGFyZ3M7CiAgICAgICAgIGlmIChnbG9iYWwucGFyYW1zLnN1
Z2dlc3Rpb25WYWx1ZXMgJiYgZ2xvYmFsLnBhcmFtcy5zdWdnZXN0aW9uVmFsdWVzLmxlbmd0aCkK
ICAgICAgICAgICAgIG9wZW5TdWdnZXN0aW9uUGlja2VyKCk7CiAgICAgICAgIGVsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NvbG9yU3VnZ2VzdGlv
blBpY2tlci5qcyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NvbG9yU3Vn
Z2VzdGlvblBpY2tlci5qcwppbmRleCA0NmEwZDQ5MzIyOTM5YTA1OTc0Yzk0OTEyZTE3M2FmMTQ3
MjcyMjc3Li41NTliOWU2ZGM4MmIzY2FhNDUzN2JiMDYzMDEzNmZiZWEzYThlN2RkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9jb2xvclN1Z2dlc3Rpb25Q
aWNrZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY29sb3JT
dWdnZXN0aW9uUGlja2VyLmpzCkBAIC0yMywyMCArMjMsMjQgQEAKICAqIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLXdp
bmRvdy5hcmd1bWVudHNSZWNlaXZlZCA9IGZhbHNlOwordmFyIGdsb2JhbCA9IHsKKyAgICBhcmd1
bWVudHNSZWNlaXZlZDogZmFsc2UsCisgICAgcGFyYW1zOiBudWxsCit9OwogCiAvKioKICAqIEBw
YXJhbSB7RXZlbnR9IGV2ZW50CiAgKi8KIGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UoZXZlbnQpIHsK
ICAgICBpbml0aWFsaXplKEpTT04ucGFyc2UoZXZlbnQuZGF0YSkpOwotICAgIHdpbmRvdy5hcmd1
bWVudHNSZWNlaXZlZCA9IHRydWU7CisgICAgZ2xvYmFsLmFyZ3VtZW50c1JlY2VpdmVkID0gdHJ1
ZTsKIH0KIAogLyoqCiAgKiBAcGFyYW0geyFPYmplY3R9IGFyZ3MKICAqLwotZnVuY3Rpb24gaW5p
dGlhbGl6ZShhcmdzKSB7CitmdW5jdGlvbiBpbml0aWFsaXplKGFyZ3MpIHsgCisgICAgZ2xvYmFs
LnBhcmFtcyA9IGFyZ3M7CiAgICAgdmFyIG1haW4gPSAkKCJtYWluIik7CiAgICAgbWFpbi5pbm5l
ckhUTUwgPSAiIjsKICAgICB2YXIgZXJyb3JTdHJpbmcgPSB2YWxpZGF0ZUFyZ3VtZW50cyhhcmdz
KTsKQEAgLTUzLDcgKzU3LDcgQEAgdmFyIERlZmF1bHRDb2xvclBhbGV0dGUgPSBbIiMwMDAwMDAi
LCAiIzQwNDA0MCIsICIjODA4MDgwIiwgIiNjMGMwYzAiLAogICAgICIjNGE4NmU4IiwgIiMwMDAw
ZmYiLCAiIzk5MDBmZiIsICIjZmYwMGZmIl07CiAKIGZ1bmN0aW9uIGhhbmRsZUFyZ3VtZW50c1Rp
bWVvdXQoKSB7Ci0gICAgaWYgKHdpbmRvdy5hcmd1bWVudHNSZWNlaXZlZCkKKyAgICBpZiAoZ2xv
YmFsLmFyZ3VtZW50c1JlY2VpdmVkKQogICAgICAgICByZXR1cm47CiAgICAgdmFyIGFyZ3MgPSB7
CiAgICAgICAgIHZhbHVlcyA6IERlZmF1bHRDb2xvclBhbGV0dGUsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9waWNrZXJDb21tb24uanMgYi9Tb3VyY2Uv
V2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9waWNrZXJDb21tb24uanMKaW5kZXggNjE5ZjJl
ZTc2ZTVkMGQ1MjJhOWViMTJjNzYyY2Q3YThhNTZkZGY4OC4uMDM4NWMwMTkzMTRjMmE5ZDE3NzVj
MGUxYjA0MTI1ODFmOTZiMTAxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2Vz
L3BhZ2Vwb3B1cHMvcGlja2VyQ29tbW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNl
cy9wYWdlcG9wdXBzL3BpY2tlckNvbW1vbi5qcwpAQCAtNDUsMTYgKzQ1LDEyMSBAQCBmdW5jdGlv
biBjcmVhdGVFbGVtZW50KHRhZ05hbWUsIG9wdF9jbGFzcywgb3B0X3RleHQpIHsKICAgICByZXR1
cm4gZWxlbWVudDsKIH0KIAorZnVuY3Rpb24gUmVjdCh4T3JSZWN0LCB5LCB3aWR0aCwgaGVpZ2h0
KSB7CisgICAgaWYgKHR5cGVvZiB4T3JSZWN0ID09PSAib2JqZWN0IikgeworICAgICAgICB5ID0g
eE9yUmVjdC55OworICAgICAgICB3aWR0aCA9IHhPclJlY3Qud2lkdGg7CisgICAgICAgIGhlaWdo
dCA9IHhPclJlY3QuaGVpZ2h0OworICAgICAgICB4T3JSZWN0ID0geE9yUmVjdC54OworICAgIH0K
KyAgICB0aGlzLnggPSB4T3JSZWN0OworICAgIHRoaXMueSA9IHk7CisgICAgdGhpcy53aWR0aCA9
IHdpZHRoOworICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0OworfQorCitSZWN0LnByb3RvdHlwZSA9
IHsKKyAgICBnZXQgbWF4WCgpIHsgcmV0dXJuIHRoaXMueCArIHRoaXMud2lkdGg7IH0sCisgICAg
Z2V0IG1heFkoKSB7IHJldHVybiB0aGlzLnkgKyB0aGlzLmhlaWdodDsgfSwKKyAgICB0b1N0cmlu
ZzogZnVuY3Rpb24oKSB7IHJldHVybiAiUmVjdCgiICsgdGhpcy54ICsgIiwiICsgdGhpcy55ICsg
IiwiICsgdGhpcy53aWR0aCArICIsIiArIHRoaXMuaGVpZ2h0ICsgIikiOyB9Cit9OworCisvKioK
KyAqIEBwYXJhbSB7IW51bWJlcn0gUmVjdAorICogQHBhcmFtIHshbnVtYmVyfSBSZWN0CisgKiBA
cmV0dXJuIHs/UmVjdH0KKyAqLworUmVjdC5pbnRlcnNlY3Rpb24gPSBmdW5jdGlvbihyZWN0MSwg
cmVjdDIpIHsKKyAgICB2YXIgeCA9IE1hdGgubWF4KHJlY3QxLngsIHJlY3QyLngpOworICAgIHZh
ciBtYXhYID0gTWF0aC5taW4ocmVjdDEubWF4WCwgcmVjdDIubWF4WCk7CisgICAgdmFyIHkgPSBN
YXRoLm1heChyZWN0MS55LCByZWN0Mi55KTsKKyAgICB2YXIgbWF4WSA9IE1hdGgubWluKHJlY3Qx
Lm1heFksIHJlY3QyLm1heFkpOworICAgIHZhciB3aWR0aCA9IG1heFggLSB4OworICAgIHZhciBo
ZWlnaHQgPSBtYXhZIC0geTsKKyAgICBpZiAod2lkdGggPCAwIHx8IGhlaWdodCA8IDApCisgICAg
ICAgIHJldHVybiBudWxsOworICAgIHJldHVybiBuZXcgUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0
KTsKK307CisKIC8qKgogICogQHBhcmFtIHshbnVtYmVyfSB3aWR0aAogICogQHBhcmFtIHshbnVt
YmVyfSBoZWlnaHQKICAqLwogZnVuY3Rpb24gcmVzaXplV2luZG93KHdpZHRoLCBoZWlnaHQpIHsK
KyAgICBzZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3Qod2lkdGgsIGhlaWdodCwgd2lkdGgs
IGhlaWdodCkpOworfQorCisvKioKKyAqIEBwYXJhbSB7IW51bWJlcn0gd2lkdGgKKyAqIEBwYXJh
bSB7IW51bWJlcn0gaGVpZ2h0CisgKiBAcGFyYW0gez9udW1iZXJ9IG1pbldpZHRoCisgKiBAcGFy
YW0gez9udW1iZXJ9IG1pbkhlaWdodAorICogQHJldHVybiB7IVJlY3R9CisgKi8KK2Z1bmN0aW9u
IGFkanVzdFdpbmRvd1JlY3Qod2lkdGgsIGhlaWdodCwgbWluV2lkdGgsIG1pbkhlaWdodCkgewor
ICAgIGlmICh0eXBlb2YgbWluV2lkdGggIT09ICJudW1iZXIiKQorICAgICAgICBtaW5XaWR0aCA9
IDA7CisgICAgaWYgKHR5cGVvZiBtaW5IZWlnaHQgIT09ICJudW1iZXIiKQorICAgICAgICBtaW5I
ZWlnaHQgPSAwOworCisgICAgdmFyIHdpbmRvd1JlY3QgPSBuZXcgUmVjdCgwLCAwLCB3aWR0aCwg
aGVpZ2h0KTsKKworICAgIGlmICghZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4pCisg
ICAgICAgIHJldHVybiB3aW5kb3dSZWN0OworCisgICAgdmFyIGFuY2hvclJlY3QgPSBuZXcgUmVj
dChnbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbik7CisgICAgdmFyIHJvb3RWaWV3UmVj
dCA9IG5ldyBSZWN0KGdsb2JhbC5wYXJhbXMucm9vdFZpZXdSZWN0SW5TY3JlZW4pOworICAgIHZh
ciBhdmFpbFJlY3QgPSBuZXcgUmVjdCh3aW5kb3cuc2NyZWVuLmF2YWlsTGVmdCwgd2luZG93LnNj
cmVlbi5hdmFpbFRvcCwgd2luZG93LnNjcmVlbi5hdmFpbFdpZHRoLCB3aW5kb3cuc2NyZWVuLmF2
YWlsSGVpZ2h0KTsKKyAgICBpZiAoZ2xvYmFsLnBhcmFtcy5jb25maW5lVG9Sb290VmlldykKKyAg
ICAgICAgYXZhaWxSZWN0ID0gUmVjdC5pbnRlcnNlY3Rpb24oYXZhaWxSZWN0LCByb290Vmlld1Jl
Y3QpOworCisgICAgX2FkanVzdFdpbmRvd1JlY3RWZXJ0aWNhbGx5KHdpbmRvd1JlY3QsIGF2YWls
UmVjdCwgYW5jaG9yUmVjdCwgbWluSGVpZ2h0KTsKKyAgICBfYWRqdXN0V2luZG93UmVjdEhvcml6
b250YWxseSh3aW5kb3dSZWN0LCBhdmFpbFJlY3QsIGFuY2hvclJlY3QsIG1pbldpZHRoKTsKKwor
ICAgIHJldHVybiB3aW5kb3dSZWN0OworfQorCitmdW5jdGlvbiBfYWRqdXN0V2luZG93UmVjdFZl
cnRpY2FsbHkod2luZG93UmVjdCwgYXZhaWxSZWN0LCBhbmNob3JSZWN0LCBtaW5IZWlnaHQpIHsK
KyAgICB2YXIgYXZhaWxhYmxlU3BhY2VBYm92ZSA9IGFuY2hvclJlY3QueSAtIGF2YWlsUmVjdC55
OworICAgIGF2YWlsYWJsZVNwYWNlQWJvdmUgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihhdmFpbFJl
Y3QuaGVpZ2h0LCBhdmFpbGFibGVTcGFjZUFib3ZlKSk7CisKKyAgICB2YXIgYXZhaWxhYmxlU3Bh
Y2VCZWxvdyA9IGF2YWlsUmVjdC5tYXhZIC0gYW5jaG9yUmVjdC5tYXhZOworICAgIGF2YWlsYWJs
ZVNwYWNlQmVsb3cgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihhdmFpbFJlY3QuaGVpZ2h0LCBhdmFp
bGFibGVTcGFjZUJlbG93KSk7CisKKyAgICBpZiAod2luZG93UmVjdC5oZWlnaHQgPiBhdmFpbGFi
bGVTcGFjZUJlbG93ICYmIGF2YWlsYWJsZVNwYWNlQmVsb3cgPCBhdmFpbGFibGVTcGFjZUFib3Zl
KSB7CisgICAgICAgIHdpbmRvd1JlY3QuaGVpZ2h0ID0gTWF0aC5taW4od2luZG93UmVjdC5oZWln
aHQsIGF2YWlsYWJsZVNwYWNlQWJvdmUpOworICAgICAgICB3aW5kb3dSZWN0LmhlaWdodCA9IE1h
dGgubWF4KHdpbmRvd1JlY3QuaGVpZ2h0LCBtaW5IZWlnaHQpOworICAgICAgICB3aW5kb3dSZWN0
LnkgPSBhbmNob3JSZWN0LnkgLSB3aW5kb3dSZWN0LmhlaWdodDsKKyAgICB9IGVsc2UgeworICAg
ICAgICB3aW5kb3dSZWN0LmhlaWdodCA9IE1hdGgubWluKHdpbmRvd1JlY3QuaGVpZ2h0LCBhdmFp
bGFibGVTcGFjZUJlbG93KTsKKyAgICAgICAgd2luZG93UmVjdC5oZWlnaHQgPSBNYXRoLm1heCh3
aW5kb3dSZWN0LmhlaWdodCwgbWluSGVpZ2h0KTsKKyAgICAgICAgd2luZG93UmVjdC55ID0gYW5j
aG9yUmVjdC5tYXhZOworICAgIH0KKyAgICB3aW5kb3dSZWN0LnkgPSBNYXRoLm1pbih3aW5kb3dS
ZWN0LnksIGF2YWlsUmVjdC5tYXhZIC0gd2luZG93UmVjdC5oZWlnaHQpOworICAgIHdpbmRvd1Jl
Y3QueSA9IE1hdGgubWF4KHdpbmRvd1JlY3QueSwgYXZhaWxSZWN0LnkpOworfQorCitmdW5jdGlv
biBfYWRqdXN0V2luZG93UmVjdEhvcml6b250YWxseSh3aW5kb3dSZWN0LCBhdmFpbFJlY3QsIGFu
Y2hvclJlY3QsIG1pbldpZHRoKSB7CisgICAgd2luZG93UmVjdC53aWR0aCA9IE1hdGgubWluKHdp
bmRvd1JlY3Qud2lkdGgsIGF2YWlsUmVjdC53aWR0aCk7CisgICAgd2luZG93UmVjdC53aWR0aCA9
IE1hdGgubWF4KHdpbmRvd1JlY3Qud2lkdGgsIG1pbldpZHRoKTsKKyAgICB3aW5kb3dSZWN0Lngg
PSBhbmNob3JSZWN0Lng7CisgICAgdmFyIGF2YWlsYWJsZVNwYWNlVG9SaWdodCA9IGF2YWlsUmVj
dC5tYXhYIC0gYW5jaG9yUmVjdC54OworICAgIGlmICh3aW5kb3dSZWN0LndpZHRoID4gYXZhaWxh
YmxlU3BhY2VUb1JpZ2h0KQorICAgICAgICB3aW5kb3dSZWN0LnggLT0gKHdpbmRvd1JlY3Qud2lk
dGggLSBhdmFpbGFibGVTcGFjZVRvUmlnaHQpOworICAgIHdpbmRvd1JlY3QueCA9IE1hdGgubWlu
KHdpbmRvd1JlY3QueCwgYXZhaWxSZWN0Lm1heFggLSB3aW5kb3dSZWN0LndpZHRoKTsKKyAgICB3
aW5kb3dSZWN0LnggPSBNYXRoLm1heCh3aW5kb3dSZWN0LngsIGF2YWlsUmVjdC54KTsKK30KKwor
LyoqCisgKiBAcGFyYW0geyFSZWN0fSByZWN0CisgKi8KK2Z1bmN0aW9uIHNldFdpbmRvd1JlY3Qo
cmVjdCkgewogICAgIGlmICh3aW5kb3cuZnJhbWVFbGVtZW50KSB7Ci0gICAgICAgIHdpbmRvdy5m
cmFtZUVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICJweCI7Ci0gICAgICAgIHdpbmRvdy5m
cmFtZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgInB4IjsKKyAgICAgICAgd2luZG93
LmZyYW1lRWxlbWVudC5zdHlsZS53aWR0aCA9IHJlY3Qud2lkdGggKyAicHgiOworICAgICAgICB3
aW5kb3cuZnJhbWVFbGVtZW50LnN0eWxlLmhlaWdodCA9IHJlY3QuaGVpZ2h0ICsgInB4IjsKICAg
ICB9IGVsc2UgewotICAgICAgICB3aW5kb3cucmVzaXplVG8od2lkdGgsIGhlaWdodCk7CisgICAg
ICAgIHdpbmRvdy5tb3ZlVG8ocmVjdC54IC0gd2luZG93LnNjcmVlbi5hdmFpbExlZnQsIHJlY3Qu
eSAtIHdpbmRvdy5zY3JlZW4uYXZhaWxUb3ApOworICAgICAgICB3aW5kb3cucmVzaXplVG8ocmVj
dC53aWR0aCwgcmVjdC5oZWlnaHQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvc3VnZ2VzdGlvblBpY2tlci5jc3MgYi9Tb3VyY2Uv
V2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9uUGlja2VyLmNzcwppbmRleCA5
MWUwZTM0ODY5ODE2ZTA5YmNlMmQ5ZmUxOGI5NmI1NDAzODAzN2M4Li5kYmRlMDNlMTg3NTcxZGE4
ZjBkMjBkNDQ2ZWVhZTgyNGIyMTU5M2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9SZXNv
dXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9uUGlja2VyLmNzcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9uUGlja2VyLmNzcwpAQCAtNSw2ICs1LDcg
QEAKICAgICBmb250OiAtd2Via2l0LXNtYWxsLWNvbnRyb2w7CiAgICAgYm9yZGVyOiAxcHggc29s
aWQgIzdmOWRiOTsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKKyAgICBvdmVyZmxvdy14
OiBoaWRkZW47CiAgICAgb3ZlcmZsb3cteTogYXV0bzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvc3VnZ2VzdGlvblBpY2tlci5qcyBiL1NvdXJj
ZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL3N1Z2dlc3Rpb25QaWNrZXIuanMKaW5kZXgg
M2MwZTk1YzZhYTYwMzUyYWI4NWY1Y2Y2MTViMzg1YmEwN2EyMjJjNy4uMDg0NDA2MzY0MDgwZTNm
YzFmZGEzNmRiYmZlNmVjZDI4NTJhNjFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUmVz
b3VyY2VzL3BhZ2Vwb3B1cHMvc3VnZ2VzdGlvblBpY2tlci5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9uUGlja2VyLmpzCkBAIC0xNTcsNyArMTU3
LDkgQEAgU3VnZ2VzdGlvblBpY2tlci5wcm90b3R5cGUuX2ZpeFdpbmRvd1NpemUgPSBmdW5jdGlv
bigpIHsKICAgICAgICAgZGVzaXJlZFdpbmRvd0hlaWdodCA9IG1heEhlaWdodDsKICAgICB9CiAK
LSAgICByZXNpemVXaW5kb3coZGVzaXJlZFdpbmRvd1dpZHRoLCBkZXNpcmVkV2luZG93SGVpZ2h0
KTsKKyAgICB2YXIgd2luZG93UmVjdCA9IGFkanVzdFdpbmRvd1JlY3QoZGVzaXJlZFdpbmRvd1dp
ZHRoLCBkZXNpcmVkV2luZG93SGVpZ2h0LCBkZXNpcmVkV2luZG93V2lkdGgsIDApOworICAgIHRo
aXMuX2NvbnRhaW5lckVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gKHdpbmRvd1JlY3QuaGVpZ2h0IC0g
TGlzdEJvcmRlcikgKyAicHgiOworICAgIHNldFdpbmRvd1JlY3Qod2luZG93UmVjdCk7CiB9Owog
CiBTdWdnZXN0aW9uUGlja2VyLnByb3RvdHlwZS5fbGF5b3V0ID0gZnVuY3Rpb24oKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENsaWVudC5jcHAKaW5kZXggNWI2NjZlYTQ1OTViZDZmNmI3
NjIxZjI4NmIxMzI2MWNmM2NjMWNjNS4uN2RhYjgyOGI3Y2M0MTk2MTY1Nzk2NGEzYzJkODY4ZTRk
NDIwY2MyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlUG9wdXBDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVwQ2xpZW50LmNwcApAQCAtNjEs
NiArNjEsMTQgQEAgdm9pZCBQYWdlUG9wdXBDbGllbnQ6OmFkZFByb3BlcnR5KGNvbnN0IGNoYXIq
IG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIERvY3VtZW4KICAgICBhZGRMaXRlcmFsKCIsXG4i
LCB3cml0ZXIpOwogfQogCit2b2lkIFBhZ2VQb3B1cENsaWVudDo6YWRkUHJvcGVydHkoY29uc3Qg
Y2hhciogbmFtZSwgaW50IHZhbHVlLCBEb2N1bWVudFdyaXRlciYgd3JpdGVyKQoreworICAgIHdy
aXRlci5hZGREYXRhKG5hbWUsIHN0cmxlbihuYW1lKSk7CisgICAgYWRkTGl0ZXJhbCgiOiAiLCB3
cml0ZXIpOworICAgIGFkZFN0cmluZyhTdHJpbmc6Om51bWJlcih2YWx1ZSksIHdyaXRlcik7Cisg
ICAgYWRkTGl0ZXJhbCgiLFxuIiwgd3JpdGVyKTsKK30KKwogdm9pZCBQYWdlUG9wdXBDbGllbnQ6
OmFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVkIHZhbHVlLCBEb2N1bWVudFdy
aXRlciYgd3JpdGVyKQogewogICAgIHdyaXRlci5hZGREYXRhKG5hbWUsIHN0cmxlbihuYW1lKSk7
CkBAIC05Miw2ICsxMDAsMTcgQEAgdm9pZCBQYWdlUG9wdXBDbGllbnQ6OmFkZFByb3BlcnR5KGNv
bnN0IGNoYXIqIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2YWx1ZXMKICAgICBhZGRMaXRl
cmFsKCJdLFxuIiwgd3JpdGVyKTsKIH0KIAordm9pZCBQYWdlUG9wdXBDbGllbnQ6OmFkZFByb3Bl
cnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IEludFJlY3QmIHJlY3QsIERvY3VtZW50V3JpdGVy
JiB3cml0ZXIpCit7CisgICAgd3JpdGVyLmFkZERhdGEobmFtZSwgc3RybGVuKG5hbWUpKTsKKyAg
ICBhZGRMaXRlcmFsKCI6IHsiLCB3cml0ZXIpOworICAgIGFkZFByb3BlcnR5KCJ4IiwgcmVjdC54
KCksIHdyaXRlcik7CisgICAgYWRkUHJvcGVydHkoInkiLCByZWN0LnkoKSwgd3JpdGVyKTsKKyAg
ICBhZGRQcm9wZXJ0eSgid2lkdGgiLCByZWN0LndpZHRoKCksIHdyaXRlcik7CisgICAgYWRkUHJv
cGVydHkoImhlaWdodCIsIHJlY3QuaGVpZ2h0KCksIHdyaXRlcik7CisgICAgYWRkTGl0ZXJhbCgi
fSxcbiIsIHdyaXRlcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShQQUdFX1BPUFVQKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
UG9wdXBDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVwQ2xpZW50LmgKaW5k
ZXggN2Q5Nzg0NjFlYTM3NzEzM2YyZTZlZTRhODZlOWZjMzZjZWZmZGQ0Yi4uZDBmYjRiYjU2ZjA0
ODU1NDVhNGQ1NmQzZjIzYjhjYzNmYTBhOGMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlUG9wdXBDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1
cENsaWVudC5oCkBAIC0zNCw3ICszNCw3IEBACiAjaWYgRU5BQkxFKFBBR0VfUE9QVVApCiAKICNp
bmNsdWRlICJEb2N1bWVudFdyaXRlci5oIgotI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRl
ICJJbnRSZWN0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTY5LDkgKzY5LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBh
ZGRTdHJpbmcoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRXcml0ZXImKTsKICAgICBzdGF0aWMgdm9p
ZCBhZGRKYXZhU2NyaXB0U3RyaW5nKGNvbnN0IFN0cmluZyYsIERvY3VtZW50V3JpdGVyJik7CiAg
ICAgc3RhdGljIHZvaWQgYWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFtZSwgY29uc3QgU3RyaW5n
JiB2YWx1ZSwgRG9jdW1lbnRXcml0ZXImKTsKKyAgICBzdGF0aWMgdm9pZCBhZGRQcm9wZXJ0eShj
b25zdCBjaGFyKiBuYW1lLCBpbnQgdmFsdWUsIERvY3VtZW50V3JpdGVyJik7CiAgICAgc3RhdGlj
IHZvaWQgYWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFtZSwgdW5zaWduZWQgdmFsdWUsIERvY3Vt
ZW50V3JpdGVyJik7CiAgICAgc3RhdGljIHZvaWQgYWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFt
ZSwgYm9vbCB2YWx1ZSwgRG9jdW1lbnRXcml0ZXImKTsKICAgICBzdGF0aWMgdm9pZCBhZGRQcm9w
ZXJ0eShjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmFsdWVzLCBEb2N1
bWVudFdyaXRlciYpOworICAgIHN0YXRpYyB2b2lkIGFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5h
bWUsIGNvbnN0IEludFJlY3QmLCBEb2N1bWVudFdyaXRlciYpOwogfTsKIAogaW5saW5lIHZvaWQg
UGFnZVBvcHVwQ2xpZW50OjphZGRTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHIsIERvY3VtZW50V3Jp
dGVyJiB3cml0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db2xv
ckNob29zZXJVSUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29s
b3JDaG9vc2VyVUlDb250cm9sbGVyLmNwcAppbmRleCA1NGQxMzRmZTYzYTcxYmRmYWM5ZWEwNzcz
OTdiZmQ0MTllNzg2YzJlLi4zMzBmNTljZTI0ZmNjYjc3OWI1OTU5NjU2M2I4ODNjMjgyN2IxNTRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db2xvckNob29zZXJVSUNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbG9yQ2hvb3Nl
clVJQ29udHJvbGxlci5jcHAKQEAgLTMyLDE0ICszMiwxOCBAQAogI2luY2x1ZGUgIkNvbG9yLmgi
CiAjaW5jbHVkZSAiQ29sb3JDaG9vc2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ29sb3JTdWdnZXN0
aW9uUGlja2VyLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5o
IgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJQaWNrZXJDb21tb24u
aCIKICNpbmNsdWRlICJXZWJDb2xvckNob29zZXIuaCIKKyNpbmNsdWRlICJXZWJWaWV3SW1wbC5o
IgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJDb2xv
ci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJMb2NhbGl6ZWRTdHJpbmcuaD4KIAordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAvLyBLZWVwIGluIHN5bmMg
d2l0aCBBY3Rpb25zIGluIGNvbG9yU3VnZ2VzdGlvblBpY2tlci5qcy4KQEAgLTQ5LDExICs1Mywx
MSBAQCBlbnVtIENvbG9yUGlja2VyUG9wdXBBY3Rpb24gewogICAgIENvbG9yUGlja2VyUG9wdXBB
Y3Rpb25TZXRWYWx1ZSA9IDAKIH07CiAKLUNvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6Q29sb3JD
aG9vc2VyVUlDb250cm9sbGVyKENocm9tZUNsaWVudEltcGwqIGNocm9tZUNsaWVudCwgV2ViQ29y
ZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQpCitDb2xvckNob29zZXJVSUNvbnRyb2xsZXI6
OkNvbG9yQ2hvb3NlclVJQ29udHJvbGxlcihDaHJvbWVDbGllbnRJbXBsKiBjaHJvbWVDbGllbnQs
IENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50KQogICAgIDogbV9jaHJvbWVDbGllbnQoY2hyb21l
Q2xpZW50KQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9wb3B1cCgwKQotICAgICwg
bV9sb2NhbGl6ZXIoV2ViQ29yZTo6TG9jYWxpemVyOjpjcmVhdGVEZWZhdWx0KCkpCisgICAgLCBt
X2xvY2FsaXplcihMb2NhbGl6ZXI6OmNyZWF0ZURlZmF1bHQoKSkKIHsKICAgICBpZiAobV9jbGll
bnQtPnNob3VsZFNob3dTdWdnZXN0aW9ucygpKQogICAgICAgICBvcGVuUG9wdXAoKTsKQEAgLTY1
LDcgKzY5LDcgQEAgQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyOjp+Q29sb3JDaG9vc2VyVUlDb250
cm9sbGVyKCkKIHsKIH0KIAotdm9pZCBDb2xvckNob29zZXJVSUNvbnRyb2xsZXI6OnNldFNlbGVj
dGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQordm9pZCBDb2xvckNob29zZXJV
SUNvbnRyb2xsZXI6OnNldFNlbGVjdGVkQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogewogICAg
IEFTU0VSVChtX2Nob29zZXIpOwogICAgIG1fY2hvb3Nlci0+c2V0U2VsZWN0ZWRDb2xvcihzdGF0
aWNfY2FzdDxXZWJDb2xvcj4oY29sb3IucmdiKCkpKTsKQEAgLTgyLDcgKzg2LDcgQEAgdm9pZCBD
b2xvckNob29zZXJVSUNvbnRyb2xsZXI6OmVuZENob29zZXIoKQogdm9pZCBDb2xvckNob29zZXJV
SUNvbnRyb2xsZXI6OmRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvbG9yJiBjb2xvcikKIHsKICAg
ICBBU1NFUlQobV9jbGllbnQpOwotICAgIG1fY2xpZW50LT5kaWRDaG9vc2VDb2xvcihXZWJDb3Jl
OjpDb2xvcihzdGF0aWNfY2FzdDxXZWJDb3JlOjpSR0JBMzI+KGNvbG9yKSkpOworICAgIG1fY2xp
ZW50LT5kaWRDaG9vc2VDb2xvcihDb2xvcihzdGF0aWNfY2FzdDxSR0JBMzI+KGNvbG9yKSkpOwog
fQogCiB2b2lkIENvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6ZGlkRW5kQ2hvb3NlcigpCkBAIC05
MiwzMiArOTYsNDMgQEAgdm9pZCBDb2xvckNob29zZXJVSUNvbnRyb2xsZXI6OmRpZEVuZENob29z
ZXIoKQogICAgIG1fY2xpZW50LT5kaWRFbmRDaG9vc2VyKCk7CiB9CiAKLVdlYkNvcmU6OkludFNp
emUgQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyOjpjb250ZW50U2l6ZSgpCitJbnRTaXplIENvbG9y
Q2hvb3NlclVJQ29udHJvbGxlcjo6Y29udGVudFNpemUoKQogewotICAgIHJldHVybiBXZWJDb3Jl
OjpJbnRTaXplKDAsIDApOworICAgIHJldHVybiBJbnRTaXplKDAsIDApOwogfQogCi12b2lkIENv
bG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6d3JpdGVEb2N1bWVudChXZWJDb3JlOjpEb2N1bWVudFdy
aXRlciYgd3JpdGVyKQordm9pZCBDb2xvckNob29zZXJVSUNvbnRyb2xsZXI6OndyaXRlRG9jdW1l
bnQoRG9jdW1lbnRXcml0ZXImIHdyaXRlcikKIHsKLSAgICBWZWN0b3I8V2ViQ29yZTo6Q29sb3I+
IHN1Z2dlc3Rpb25zID0gbV9jbGllbnQtPnN1Z2dlc3Rpb25zKCk7CisgICAgVmVjdG9yPENvbG9y
PiBzdWdnZXN0aW9ucyA9IG1fY2xpZW50LT5zdWdnZXN0aW9ucygpOwogICAgIFZlY3RvcjxTdHJp
bmc+IHN1Z2dlc3Rpb25WYWx1ZXM7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN1Z2dl
c3Rpb25zLnNpemUoKTsgaSsrKQogICAgICAgICBzdWdnZXN0aW9uVmFsdWVzLmFwcGVuZChzdWdn
ZXN0aW9uc1tpXS5zZXJpYWxpemVkKCkpOworICAgIEludFJlY3QgYW5jaG9yUmVjdEluU2NyZWVu
ID0gbV9jaHJvbWVDbGllbnQtPnJvb3RWaWV3VG9TY3JlZW4obV9jbGllbnQtPmVsZW1lbnRSZWN0
UmVsYXRpdmVUb1Jvb3RWaWV3KCkpOworICAgIEZyYW1lVmlldyogdmlldyA9IHN0YXRpY19jYXN0
PFdlYlZpZXdJbXBsKj4obV9jaHJvbWVDbGllbnQtPndlYlZpZXcoKSktPnBhZ2UoKS0+bWFpbkZy
YW1lKCktPnZpZXcoKTsKKyAgICBJbnRSZWN0IHJvb3RWaWV3VmlzaWJsZUNvbnRlbnRSZWN0ID0g
dmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyogaW5jbHVkZSBzY3JvbGxiYXJzICovKTsK
KyAgICBJbnRSZWN0IHJvb3RWaWV3UmVjdEluU2NyZWVuID0gbV9jaHJvbWVDbGllbnQtPnJvb3RW
aWV3VG9TY3JlZW4ocm9vdFZpZXdWaXNpYmxlQ29udGVudFJlY3QpOwogICAgIAotICAgIFdlYkNv
cmU6OlBhZ2VQb3B1cENsaWVudDo6YWRkU3RyaW5nKCI8IURPQ1RZUEUgaHRtbD48aGVhZD48bWV0
YSBjaGFyc2V0PSdVVEYtOCc+PHN0eWxlPlxuIiwgd3JpdGVyKTsKLSAgICB3cml0ZXIuYWRkRGF0
YShXZWJDb3JlOjpwaWNrZXJDb21tb25Dc3MsIHNpemVvZihXZWJDb3JlOjpwaWNrZXJDb21tb25D
c3MpKTsKLSAgICB3cml0ZXIuYWRkRGF0YShXZWJDb3JlOjpjb2xvclN1Z2dlc3Rpb25QaWNrZXJD
c3MsIHNpemVvZihXZWJDb3JlOjpjb2xvclN1Z2dlc3Rpb25QaWNrZXJDc3MpKTsKLSAgICBXZWJD
b3JlOjpQYWdlUG9wdXBDbGllbnQ6OmFkZFN0cmluZygiPC9zdHlsZT48L2hlYWQ+PGJvZHk+PGRp
diBpZD1tYWluPkxvYWRpbmcuLi48L2Rpdj48c2NyaXB0PlxuIgorICAgIFBhZ2VQb3B1cENsaWVu
dDo6YWRkU3RyaW5nKCI8IURPQ1RZUEUgaHRtbD48aGVhZD48bWV0YSBjaGFyc2V0PSdVVEYtOCc+
PHN0eWxlPlxuIiwgd3JpdGVyKTsKKyAgICB3cml0ZXIuYWRkRGF0YShwaWNrZXJDb21tb25Dc3Ms
IHNpemVvZihwaWNrZXJDb21tb25Dc3MpKTsKKyAgICB3cml0ZXIuYWRkRGF0YShjb2xvclN1Z2dl
c3Rpb25QaWNrZXJDc3MsIHNpemVvZihjb2xvclN1Z2dlc3Rpb25QaWNrZXJDc3MpKTsKKyAgICBQ
YWdlUG9wdXBDbGllbnQ6OmFkZFN0cmluZygiPC9zdHlsZT48L2hlYWQ+PGJvZHk+PGRpdiBpZD1t
YWluPkxvYWRpbmcuLi48L2Rpdj48c2NyaXB0PlxuIgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAid2luZG93LmRpYWxvZ0FyZ3VtZW50cyA9IHtcbiIsIHdyaXRlcik7Ci0g
ICAgV2ViQ29yZTo6UGFnZVBvcHVwQ2xpZW50OjphZGRQcm9wZXJ0eSgidmFsdWVzIiwgc3VnZ2Vz
dGlvblZhbHVlcywgd3JpdGVyKTsgICAgICAgCi0gICAgV2ViQ29yZTo6UGFnZVBvcHVwQ2xpZW50
OjphZGRQcm9wZXJ0eSgib3RoZXJDb2xvckxhYmVsIiwgUGxhdGZvcm06OmN1cnJlbnQoKS0+cXVl
cnlMb2NhbGl6ZWRTdHJpbmcoV2ViTG9jYWxpemVkU3RyaW5nOjpPdGhlckNvbG9yTGFiZWwpLCB3
cml0ZXIpOwotICAgIFdlYkNvcmU6OlBhZ2VQb3B1cENsaWVudDo6YWRkU3RyaW5nKCJ9O1xuIiwg
d3JpdGVyKTsKLSAgICB3cml0ZXIuYWRkRGF0YShXZWJDb3JlOjpwaWNrZXJDb21tb25Kcywgc2l6
ZW9mKFdlYkNvcmU6OnBpY2tlckNvbW1vbkpzKSk7Ci0gICAgd3JpdGVyLmFkZERhdGEoV2ViQ29y
ZTo6Y29sb3JTdWdnZXN0aW9uUGlja2VySnMsIHNpemVvZihXZWJDb3JlOjpjb2xvclN1Z2dlc3Rp
b25QaWNrZXJKcykpOwotICAgIFdlYkNvcmU6OlBhZ2VQb3B1cENsaWVudDo6YWRkU3RyaW5nKCI8
L3NjcmlwdD48L2JvZHk+XG4iLCB3cml0ZXIpOworICAgIFBhZ2VQb3B1cENsaWVudDo6YWRkUHJv
cGVydHkoInZhbHVlcyIsIHN1Z2dlc3Rpb25WYWx1ZXMsIHdyaXRlcik7ICAgICAgIAorICAgIFBh
Z2VQb3B1cENsaWVudDo6YWRkUHJvcGVydHkoIm90aGVyQ29sb3JMYWJlbCIsIFBsYXRmb3JtOjpj
dXJyZW50KCktPnF1ZXJ5TG9jYWxpemVkU3RyaW5nKFdlYkxvY2FsaXplZFN0cmluZzo6T3RoZXJD
b2xvckxhYmVsKSwgd3JpdGVyKTsKKyAgICBhZGRQcm9wZXJ0eSgiYW5jaG9yUmVjdEluU2NyZWVu
IiwgYW5jaG9yUmVjdEluU2NyZWVuLCB3cml0ZXIpOworICAgIGFkZFByb3BlcnR5KCJyb290Vmll
d1JlY3RJblNjcmVlbiIsIHJvb3RWaWV3UmVjdEluU2NyZWVuLCB3cml0ZXIpOworI2lmIE9TKE1B
Q19PU19YKQorICAgIGFkZFByb3BlcnR5KCJjb25maW5lVG9Sb290VmlldyIsIHRydWUsIHdyaXRl
cik7CisjZWxzZQorICAgIGFkZFByb3BlcnR5KCJjb25maW5lVG9Sb290VmlldyIsIGZhbHNlLCB3
cml0ZXIpOworI2VuZGlmCisgICAgUGFnZVBvcHVwQ2xpZW50OjphZGRTdHJpbmcoIn07XG4iLCB3
cml0ZXIpOworICAgIHdyaXRlci5hZGREYXRhKHBpY2tlckNvbW1vbkpzLCBzaXplb2YocGlja2Vy
Q29tbW9uSnMpKTsKKyAgICB3cml0ZXIuYWRkRGF0YShjb2xvclN1Z2dlc3Rpb25QaWNrZXJKcywg
c2l6ZW9mKGNvbG9yU3VnZ2VzdGlvblBpY2tlckpzKSk7CisgICAgUGFnZVBvcHVwQ2xpZW50Ojph
ZGRTdHJpbmcoIjwvc2NyaXB0PjwvYm9keT5cbiIsIHdyaXRlcik7CiB9CiAKLVdlYkNvcmU6Okxv
Y2FsaXplciYgQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyOjpsb2NhbGl6ZXIoKQorTG9jYWxpemVy
JiBDb2xvckNob29zZXJVSUNvbnRyb2xsZXI6OmxvY2FsaXplcigpCiB7CiAgICAgcmV0dXJuICpt
X2xvY2FsaXplcjsKIH0KQEAgLTEyNyw3ICsxNDIsNyBAQCB2b2lkIENvbG9yQ2hvb3NlclVJQ29u
dHJvbGxlcjo6c2V0VmFsdWVBbmRDbG9zZVBvcHVwKGludCBudW1WYWx1ZSwgY29uc3QgU3RyaW5n
JgogICAgIEFTU0VSVChtX3BvcHVwKTsKICAgICBBU1NFUlQobV9jbGllbnQpOwogICAgIGlmIChu
dW1WYWx1ZSA9PSBDb2xvclBpY2tlclBvcHVwQWN0aW9uU2V0VmFsdWUpCi0gICAgICAgIG1fY2xp
ZW50LT5kaWRDaG9vc2VDb2xvcihXZWJDb3JlOjpDb2xvcihzdHJpbmdWYWx1ZSkpOworICAgICAg
ICBtX2NsaWVudC0+ZGlkQ2hvb3NlQ29sb3IoQ29sb3Ioc3RyaW5nVmFsdWUpKTsKICAgICBpZiAo
bnVtVmFsdWUgPT0gQ29sb3JQaWNrZXJQb3B1cEFjdGlvbkNob29zZU90aGVyQ29sb3IpCiAgICAg
ICAgIG9wZW5Db2xvckNob29zZXIoKTsKICAgICBjbG9zZVBvcHVwKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9EYXRlVGltZUNob29zZXJJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0RhdGVUaW1lQ2hvb3NlckltcGwuY3BwCmluZGV4IGNiZDBm
ZDY5ZjVkYjE1NmFmNTk3ZTdiZGY4MDRmYTMzYjdkYzQ1MGEuLjFhNWI3YTI5YTVkNDUwNTZiMjc1
ZmJkNWUzNmMzMGU0MDBjZWI1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0RhdGVUaW1lQ2hvb3NlckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0RhdGVUaW1lQ2hvb3NlckltcGwuY3BwCkBAIC0zNywxMiArMzcsMTQgQEAKICNpbmNsdWRl
ICJDaHJvbWVDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNs
dWRlICJEYXRlVGltZUNob29zZXJDbGllbnQuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNp
bmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVk
ZSAiTG9jYWxpemVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQ
aWNrZXJDb21tb24uaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIldlYlZp
ZXdJbXBsLmgiCiAjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8cHVibGlj
L1dlYkxvY2FsaXplZFN0cmluZy5oPgogCkBAIC04OSw2ICs5MSwxMCBAQCB2b2lkIERhdGVUaW1l
Q2hvb3NlckltcGw6OndyaXRlRG9jdW1lbnQoV2ViQ29yZTo6RG9jdW1lbnRXcml0ZXImIHdyaXRl
cikKICAgICBTdHJpbmcgc3RlcFN0cmluZyA9IFN0cmluZzo6bnVtYmVyKG1fcGFyYW1ldGVycy5z
dGVwKTsKICAgICBTdHJpbmcgc3RlcEJhc2VTdHJpbmcgPSBTdHJpbmc6Om51bWJlcihtX3BhcmFt
ZXRlcnMuc3RlcEJhc2UsIDExLCBXVEY6OlRydW5jYXRlVHJhaWxpbmdaZXJvcyk7CiAgICAgT3du
UHRyPExvY2FsaXplcj4gbG9jYWxpemVyID0gTG9jYWxpemVyOjpjcmVhdGUobnVsbEF0b20pOwor
ICAgIEludFJlY3QgYW5jaG9yUmVjdEluU2NyZWVuID0gbV9jaHJvbWVDbGllbnQtPnJvb3RWaWV3
VG9TY3JlZW4obV9wYXJhbWV0ZXJzLmFuY2hvclJlY3RJblJvb3RWaWV3KTsKKyAgICBGcmFtZVZp
ZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxXZWJWaWV3SW1wbCo+KG1fY2hyb21lQ2xpZW50LT53ZWJW
aWV3KCkpLT5wYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCk7CisgICAgSW50UmVjdCByb290Vmll
d1Zpc2libGVDb250ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCh0cnVlIC8qIGlu
Y2x1ZGUgc2Nyb2xsYmFycyAqLyk7CisgICAgSW50UmVjdCByb290Vmlld1JlY3RJblNjcmVlbiA9
IG1fY2hyb21lQ2xpZW50LT5yb290Vmlld1RvU2NyZWVuKHJvb3RWaWV3VmlzaWJsZUNvbnRlbnRS
ZWN0KTsKIAogICAgIGFkZFN0cmluZygiPCFET0NUWVBFIGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNl
dD0nVVRGLTgnPjxzdHlsZT5cbiIsIHdyaXRlcik7CiAgICAgd3JpdGVyLmFkZERhdGEoV2ViQ29y
ZTo6cGlja2VyQ29tbW9uQ3NzLCBzaXplb2YoV2ViQ29yZTo6cGlja2VyQ29tbW9uQ3NzKSk7CkBA
IC05OSw2ICsxMDUsMTMgQEAgdm9pZCBEYXRlVGltZUNob29zZXJJbXBsOjp3cml0ZURvY3VtZW50
KFdlYkNvcmU6OkRvY3VtZW50V3JpdGVyJiB3cml0ZXIpCiAgICAgICAgIHdyaXRlci5hZGREYXRh
KGV4dHJhU3R5bGUuZGF0YSgpLCBleHRyYVN0eWxlLmxlbmd0aCgpKTsKICAgICBhZGRTdHJpbmco
Ijwvc3R5bGU+PC9oZWFkPjxib2R5PjxkaXYgaWQ9bWFpbj5Mb2FkaW5nLi4uPC9kaXY+PHNjcmlw
dD5cbiIKICAgICAgICAgICAgICAgICJ3aW5kb3cuZGlhbG9nQXJndW1lbnRzID0ge1xuIiwgd3Jp
dGVyKTsKKyAgICBhZGRQcm9wZXJ0eSgiYW5jaG9yUmVjdEluU2NyZWVuIiwgYW5jaG9yUmVjdElu
U2NyZWVuLCB3cml0ZXIpOworICAgIGFkZFByb3BlcnR5KCJyb290Vmlld1JlY3RJblNjcmVlbiIs
IHJvb3RWaWV3UmVjdEluU2NyZWVuLCB3cml0ZXIpOworI2lmIE9TKE1BQ19PU19YKQorICAgIGFk
ZFByb3BlcnR5KCJjb25maW5lVG9Sb290VmlldyIsIHRydWUsIHdyaXRlcik7CisjZWxzZQorICAg
IGFkZFByb3BlcnR5KCJjb25maW5lVG9Sb290VmlldyIsIGZhbHNlLCB3cml0ZXIpOworI2VuZGlm
CiAgICAgYWRkUHJvcGVydHkoIm1pbiIsIG1pblN0cmluZywgd3JpdGVyKTsKICAgICBhZGRQcm9w
ZXJ0eSgibWF4IiwgbWF4U3RyaW5nLCB3cml0ZXIpOwogICAgIGFkZFByb3BlcnR5KCJzdGVwIiwg
c3RlcFN0cmluZywgd3JpdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UGFnZVBvcHVwSW1wbC5jcHAKaW5kZXggMWUwZmNlYmI1MjlmZjAyZTFhMDA5YWFmNWI3NDgxZWNl
ZjEwY2M2Ny4uZTQ4MDhmZDcwNmZhOTAwNjlmZTFjMmZmZTNlMWMxODllZDAxN2U5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKQEAgLTE1
MSwxNSArMTUxLDE0IEBAIFdlYlBhZ2VQb3B1cEltcGw6On5XZWJQYWdlUG9wdXBJbXBsKCkKICAg
ICBBU1NFUlQoIW1fcGFnZSk7CiB9CiAKLWJvb2wgV2ViUGFnZVBvcHVwSW1wbDo6aW5pdChXZWJW
aWV3SW1wbCogd2ViVmlldywgUGFnZVBvcHVwQ2xpZW50KiBwb3B1cENsaWVudCwgY29uc3QgSW50
UmVjdCYgb3JpZ2luQm91bmRzSW5Sb290VmlldykKK2Jvb2wgV2ViUGFnZVBvcHVwSW1wbDo6aW5p
dChXZWJWaWV3SW1wbCogd2ViVmlldywgUGFnZVBvcHVwQ2xpZW50KiBwb3B1cENsaWVudCwgY29u
c3QgSW50UmVjdCYpCiB7CiAgICAgQVNTRVJUKHdlYlZpZXcpOwogICAgIEFTU0VSVChwb3B1cENs
aWVudCk7CiAgICAgbV93ZWJWaWV3ID0gd2ViVmlldzsKICAgICBtX3BvcHVwQ2xpZW50ID0gcG9w
dXBDbGllbnQ7Ci0gICAgbV9vcmlnaW5Cb3VuZHNJblJvb3RWaWV3ID0gb3JpZ2luQm91bmRzSW5S
b290VmlldzsKIAotICAgIHJlcG9zaXRpb24obV9wb3B1cENsaWVudC0+Y29udGVudFNpemUoKSk7
CisgICAgcmVzaXplKG1fcG9wdXBDbGllbnQtPmNvbnRlbnRTaXplKCkpOwogCiAgICAgaWYgKCFp
bml0UGFnZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMzMsMjIgKzIzMiwxMCBAQCB2
b2lkIFdlYlBhZ2VQb3B1cEltcGw6OnBhaW50KFdlYkNhbnZhcyogY2FudmFzLCBjb25zdCBXZWJS
ZWN0JiByZWN0LCBQYWludE9wdGlvbgogICAgIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6cGFpbnQobV9w
YWdlLmdldCgpLCAwLCBjYW52YXMsIHJlY3QsIFBhZ2VXaWRnZXREZWxlZ2F0ZTo6T3BhcXVlKTsK
IH0KIAotdm9pZCBXZWJQYWdlUG9wdXBJbXBsOjpyZXBvc2l0aW9uKGNvbnN0IFdlYlNpemUmIHBv
cHVwU2l6ZSkKLXsKLSAgICBXZWJTaXplIHJvb3RWaWV3U2l6ZSA9IG1fd2ViVmlldy0+c2l6ZSgp
OwotICAgIEludFJlY3QgcG9wdXBCb3VuZHNJblJvb3RWaWV3KEludFBvaW50KG1heCgwLCBtX29y
aWdpbkJvdW5kc0luUm9vdFZpZXcueCgpKSwgbWF4KDAsIG1fb3JpZ2luQm91bmRzSW5Sb290Vmll
dy5tYXhZKCkpKSwgcG9wdXBTaXplKTsKLSAgICBpZiAocG9wdXBCb3VuZHNJblJvb3RWaWV3Lm1h
eFkoKSA+IHJvb3RWaWV3U2l6ZS5oZWlnaHQpCi0gICAgICAgIHBvcHVwQm91bmRzSW5Sb290Vmll
dy5zZXRZKG1heCgwLCBtX29yaWdpbkJvdW5kc0luUm9vdFZpZXcueSgpIC0gcG9wdXBTaXplLmhl
aWdodCkpOwotICAgIGlmIChwb3B1cEJvdW5kc0luUm9vdFZpZXcubWF4WCgpID4gcm9vdFZpZXdT
aXplLndpZHRoKQotICAgICAgICBwb3B1cEJvdW5kc0luUm9vdFZpZXcuc2V0WChtYXgoMCwgcm9v
dFZpZXdTaXplLndpZHRoIC0gcG9wdXBTaXplLndpZHRoKSk7Ci0gICAgSW50UmVjdCBib3VuZHNJ
blNjcmVlbiA9IG1fd2ViVmlldy0+cGFnZSgpLT5jaHJvbWUoKS0+cm9vdFZpZXdUb1NjcmVlbihw
b3B1cEJvdW5kc0luUm9vdFZpZXcpOwotICAgIG1fd2lkZ2V0Q2xpZW50LT5zZXRXaW5kb3dSZWN0
KGJvdW5kc0luU2NyZWVuKTsKLSAgICBtX3dpbmRvd1JlY3RJblNjcmVlbiA9IGJvdW5kc0luU2Ny
ZWVuOwotfQotCiB2b2lkIFdlYlBhZ2VQb3B1cEltcGw6OnJlc2l6ZShjb25zdCBXZWJTaXplJiBu
ZXdTaXplKQogewotICAgIHJlcG9zaXRpb24obmV3U2l6ZSk7CisgICAgbV93aW5kb3dSZWN0SW5T
Y3JlZW4gPSBXZWJSZWN0KG1fd2luZG93UmVjdEluU2NyZWVuLngsIG1fd2luZG93UmVjdEluU2Ny
ZWVuLnksIG5ld1NpemUud2lkdGgsIG5ld1NpemUuaGVpZ2h0KTsKKyAgICBtX3dpZGdldENsaWVu
dC0+c2V0V2luZG93UmVjdChtX3dpbmRvd1JlY3RJblNjcmVlbik7CiAKICAgICBpZiAobV9wYWdl
KQogICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPnJlc2l6ZShuZXdTaXplKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuaAppbmRleCBl
Njg0NGJmZDA2YTQ5OGJkYjUwZGI4MTkwNmQ5NmU0YWUxNWRiNGE0Li5jZjJiYmJhNzg3MmQ1YTlj
ZDQ5YzQ0NzczY2RjMWMyNGY3ZmMxZjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViUGFnZVBvcHVwSW1wbC5oCkBAIC04NywxMSArODcsOSBAQCBwcml2YXRlOgogCiAgICAg
ZXhwbGljaXQgV2ViUGFnZVBvcHVwSW1wbChXZWJXaWRnZXRDbGllbnQqKTsKICAgICBib29sIGlu
aXRQYWdlKCk7Ci0gICAgdm9pZCByZXBvc2l0aW9uKGNvbnN0IFdlYlNpemUmKTsKIAogICAgIFdl
YldpZGdldENsaWVudCogbV93aWRnZXRDbGllbnQ7CiAgICAgV2ViUmVjdCBtX3dpbmRvd1JlY3RJ
blNjcmVlbjsKLSAgICBXZWJDb3JlOjpJbnRSZWN0IG1fb3JpZ2luQm91bmRzSW5Sb290VmlldzsK
ICAgICBXZWJWaWV3SW1wbCogbV93ZWJWaWV3OwogICAgIE93blB0cjxXZWJDb3JlOjpQYWdlPiBt
X3BhZ2U7CiAgICAgT3duUHRyPFBhZ2VQb3B1cENocm9tZUNsaWVudD4gbV9jaHJvbWVDbGllbnQ7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZDgwYmJlMzFmZDQ0M2M2NGFmNzEzMWQxMzdjYTlkNGMzYWVjOTdkNS4uNGFkMjNi
ZGE3NmY0MTY5NWM4MDNhNDM4ZDE4MDhlOTM1Y2U2OWZmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTEwLTA1ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAg
ICAgIFBhZ2UgcG9wdXAgc2hvdWxkIGJlIHNtYXJ0ZXIgYWJvdXQgaXRzIGxheW91dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg0OTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZm9ybXMvcGFnZS1wb3B1cC9wYWdlLXBvcHVwLWFkanVzdC1yZWN0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9wYWdl
LXBvcHVwL3BhZ2UtcG9wdXAtYWRqdXN0LXJlY3QuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tYW5kcm9pZC9UZXN0RXhwZWN0YXRpb25zOiBBZGRlZCBwbGF0Zm9ybS9j
aHJvbWl1bS9mYXN0L2Zvcm1zL3BhZ2UtcG9wdXAuCisKIDIwMTItMTAtMDggIFRvbnkgQ2hhbmcg
IDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBpbWFnZSBub3QgZGlzcGxheWVkIGluIGZs
ZXhib3gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWFuZHJvaWQv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWFuZHJvaWQv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA1YzMzM2FkZjVmN2NkMzYyYWNjNjFiZWZmOGE5MWZkZjQ0
MWRmZTdkLi4yMDU3YWFhOGQ4YjUyNjYzNWFkMWFiN2FhMDI4Nzk0MjA0YzQ5ZjU0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1hbmRyb2lkL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tYW5kcm9pZC9UZXN0RXhwZWN0
YXRpb25zCkBAIC04MiwzICs4Miw2IEBAIGZhc3QvZm9ybXMvZGF0ZS1tdWx0aXBsZS1maWVsZHMg
WyBXb250Rml4IF0KIGZhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzIFsgV29udEZpeCBd
CiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzIFsgV29udEZpeCBdCiBmYXN0L2Zvcm1z
L3dlZWstbXVsdGlwbGUtZmllbGRzIFsgV29udEZpeCBdCisKKyMgUGFnZSBwb3B1cCBVSSBpcyBm
b3IgZGVza3RvcCBwbGF0Zm9ybXMKK3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvcGFnZS1w
b3B1cCBbIFdvbnRGaXggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vZmFzdC9mb3Jtcy9wYWdlLXBvcHVwL3BhZ2UtcG9wdXAtYWRqdXN0LXJlY3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9wYWdlLXBvcHVw
L3BhZ2UtcG9wdXAtYWRqdXN0LXJlY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1ZmEwMjQ4
NzJlYTFjY2Q3ZTliNzhlZjBlYmUyNmQ0ZDg1OGU0MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3BhZ2UtcG9wdXAvcGFnZS1wb3B1
cC1hZGp1c3QtcmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2OSBAQAorVGVzdCBmb3IgY2hp
bGQgZWxlbWVudHMgb2YgYSBkYXRhbGlzdCBlbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworTW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgdmVydGljYWwgYXhpcy4K
K1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJp
bmcoKSBpcyAiUmVjdCgwLDAsMzAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dS
ZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCwxMCkiCitQQVNT
IHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkg
aXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3Qo
MzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwyMCwzMCwxMCkiCitQQVNTIHBv
cHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMg
IlJlY3QoMCwzMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAs
IDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw0MCwzMCwxMCkiCitQQVNTIHBvcHVw
V2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJl
Y3QoMCw1MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEw
LCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw0MCwzMCwxMCkiCitQQVNTIHBvcHVwV2lu
ZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3Qo
MCw1MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAz
MCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw1MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93
LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw1
MCwzMCwxMCkiCitNb3ZlIGFuY2hvciBlbGVtZW50IGFsb25nIHRoZSBob3Jpem9udGFsIGF4aXMu
CitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3Ry
aW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRv
d1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQ
QVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5n
KCkgaXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1Jl
Y3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNT
IHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkg
aXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3Qo
MzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMTAsMTAsMzAsMTApIgorUEFTUyBw
b3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpIGlz
ICJSZWN0KDIwLDEwLDMwLDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgz
MCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgzMCwxMCwzMCwxMCkiCitQQVNTIHBv
cHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMg
IlJlY3QoNDAsMTAsMzAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMw
LCAxMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDUwLDEwLDMwLDEwKSIKK1BBU1MgcG9w
dXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAi
UmVjdCg1MCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAs
IDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoNTAsMTAsMzAsMTApIgorUEFTUyBwb3B1
cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJS
ZWN0KDUwLDEwLDMwLDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwg
MTAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCg1MCwxMCwzMCwxMCkiCitQQVNTIHBvcHVw
V2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJl
Y3QoNTAsMTAsMzAsMTApIgorTW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgdmVydGljYWwg
YXhpcy4gT3BlbiBwb3B1cCB0aGF0IGlzIHRvbyB0YWxsLgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1
c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMw
LDYwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEw
KS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCw2MCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVz
dFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDEwLDMw
LDUwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEw
KS50b1N0cmluZygpIGlzICJSZWN0KDAsMjAsMzAsNDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1
c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwzMCwz
MCwzMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAx
MCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsMzApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1
c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMw
LDQwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEw
KS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCw1MCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVz
dFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAs
NjApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAp
LnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDYwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0
V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCw2
MCkiCitNb3ZlIGFuY2hvciBlbGVtZW50IGFsb25nIHRoZSB2ZXJ0aWNhbCBheGlzLiBPcGVuIHBv
cHVwIHRoYXQgaXMgdG9vIHRhbGwgYW5kIHdvbid0IHNocmluay4KK1BBU1MgcG9wdXBXaW5kb3cu
YWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCkgaXMgIlJlY3Qo
MCwwLDMwLDEwMDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAw
LCAzMCwgMTAwMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsMTAwMCkiCitQQVNTIHBvcHVw
V2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0cmluZygpIGlz
ICJSZWN0KDAsMCwzMCwxMDAwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgz
MCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDEwMDApIgorUEFT
UyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJp
bmcoKSBpcyAiUmVjdCgwLDAsMzAsMTAwMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRv
d1JlY3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCwxMDAw
KSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDAp
LnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDEwMDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1
c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAs
MzAsMTAwMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMw
LCAxMDAwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCwxMDAwKSIKK1BBU1MgcG9wdXBXaW5k
b3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCkgaXMgIlJl
Y3QoMCwwLDMwLDEwMDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAx
MDAwLCAzMCwgMTAwMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsMTAwMCkiCitHcm93IHBv
cHVwIHdpZHRoLgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAs
IDEwKS50b1N0cmluZygpIGlzICJSZWN0KDMwLDEwLDMwLDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cu
YWRqdXN0V2luZG93UmVjdCg0MCwgMTAsIDQwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgzMCwx
MCw0MCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoNTAsIDEwLCA1MCwg
MTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMzAsMTAsNTAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5h
ZGp1c3RXaW5kb3dSZWN0KDYwLCAxMCwgNjAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDIwLDEw
LDYwLDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCg3MCwgMTAsIDcwLCAx
MCkudG9TdHJpbmcoKSBpcyAiUmVjdCgxMCwxMCw3MCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFk
anVzdFdpbmRvd1JlY3QoODAsIDEwLCA4MCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCw4
MCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoOTAsIDEwLCA5MCwgMTAp
LnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCw5MCwxMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvcGFnZS1wb3B1cC9wYWdlLXBvcHVwLWFkanVzdC1y
ZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3BhZ2Ut
cG9wdXAvcGFnZS1wb3B1cC1hZGp1c3QtcmVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkY2E4ODg1NGM3
MTMyNzVjMTJjNjc3YjhhZGZjZjFjNGU2YzQ3ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3BhZ2UtcG9wdXAvcGFnZS1wb3B1cC1h
ZGp1c3QtcmVjdC5odG1sCkBAIC0wLDAgKzEsMjIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL2Zh
c3QvZm9ybXMvcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vLi4vLi4vZmFzdC9mb3Jtcy9kYXRlL2NhbGVuZGFyLXBpY2tlci1jb21tb24uanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8aW5wdXQgdHlwZT0iZGF0ZSIgaWQ9ImRhdGUiPgorCis8
c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgZm9yIGNoaWxkIGVsZW1lbnRzIG9mIGEgZGF0YWxp
c3QgZWxlbWVudC4nKTsKKworb3BlblBpY2tlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF0
ZScpKTsKKworcG9wdXBXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIiwgdGVzdCwgZmFs
c2UpOworCitmdW5jdGlvbiBtYWtlUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSB7CisgICAgcmV0
dXJuIHsKKyAgICAgICAgeDogeCwKKyAgICAgICAgeTogeSwKKyAgICAgICAgd2lkdGg6IHdpZHRo
LAorICAgICAgICBoZWlnaHQ6IGhlaWdodAorICAgIH07Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7
CisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5jb25maW5lVG9Sb290VmlldyA9IGZhbHNl
OworICAgIHBvcHVwV2luZG93LnNjcmVlbiA9IHsKKyAgICAgICAgd2lkdGg6IDgwLAorICAgICAg
ICBoZWlnaHQ6IDYwLAorICAgICAgICBhdmFpbExlZnQ6IDAsCisgICAgICAgIGF2YWlsVG9wOiAw
LAorICAgICAgICBhdmFpbFdpZHRoOiA4MCwKKyAgICAgICAgYXZhaWxIZWlnaHQ6IDYwLAorICAg
IH07CisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5yb290Vmlld1JlY3RJblNjcmVlbiA9
IG1ha2VSZWN0KDAsIDAsIDgwLCA2MCk7CisKKyAgICBkZWJ1ZygiTW92ZSBhbmNob3IgZWxlbWVu
dCBhbG9uZyB0aGUgdmVydGljYWwgYXhpcy4iKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5w
YXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgLTIwLCAyMCwgMTApOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwg
MTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDAsMCwzMCwxMCknKTsKKworICAgIHBvcHVw
V2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgLTEw
LCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0
V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDAsMCwzMCwxMCkn
KTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0g
bWFrZVJlY3QoMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVw
V2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVj
dCgwLDEwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JS
ZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAxMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRv
U3RyaW5nKCknLCAnUmVjdCgwLDIwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFs
LnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAyMCwgMjAsIDEwKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAs
IDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDMwLDMwLDEwKScpOworCisgICAgcG9w
dXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAz
MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVz
dFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDQwLDMwLDEw
KScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4g
PSBtYWtlUmVjdCgwLCA0MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Bv
cHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAn
UmVjdCgwLDUwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNo
b3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA1MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTAp
LnRvU3RyaW5nKCknLCAnUmVjdCgwLDQwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xv
YmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA2MCwgMjAsIDEwKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3Qo
MzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDUwLDMwLDEwKScpOworCisgICAg
cG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgw
LCA3MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFk
anVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDUwLDMw
LDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3Jl
ZW4gPSBtYWtlUmVjdCgwLCA4MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkn
LCAnUmVjdCgwLDUwLDMwLDEwKScpOworCisgICAgZGVidWcoIk1vdmUgYW5jaG9yIGVsZW1lbnQg
YWxvbmcgdGhlIGhvcml6b250YWwgYXhpcy4iKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5w
YXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoLTQwLCAwLCAyMCwgMTApOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwg
MTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDAsMTAsMzAsMTApJyk7CisKKyAgICBwb3B1
cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KC0zMCwg
MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVz
dFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDEwLDMwLDEw
KScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4g
PSBtYWtlUmVjdCgtMjAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdw
b3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywg
J1JlY3QoMCwxMCwzMCwxMCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5j
aG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoLTEwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAx
MCkudG9TdHJpbmcoKScsICdSZWN0KDAsMTAsMzAsMTApJyk7CisKKyAgICBwb3B1cFdpbmRvdy5n
bG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDAsIDIwLCAxMCk7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0
KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoMCwxMCwzMCwxMCknKTsKKworICAg
IHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3Qo
MTAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5h
ZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoMTAsMTAs
MzAsMTApJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNj
cmVlbiA9IG1ha2VSZWN0KDIwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmco
KScsICdSZWN0KDIwLDEwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFt
cy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgzMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAz
MCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgzMCwxMCwzMCwxMCknKTsKKworICAgIHBvcHVwV2lu
ZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoNDAsIDAsIDIw
LCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5k
b3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoNDAsMTAsMzAsMTApJyk7
CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1h
a2VSZWN0KDUwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBX
aW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0
KDUwLDEwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JS
ZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCg2MCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRv
U3RyaW5nKCknLCAnUmVjdCg1MCwxMCwzMCwxMCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2Jh
bC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoNzAsIDAsIDIwLCAxMCk7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMw
LCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoNTAsMTAsMzAsMTApJyk7CisKKyAgICBw
b3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDgw
LCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRq
dXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDUwLDEwLDMw
LDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3Jl
ZW4gPSBtYWtlUmVjdCg5MCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkn
LCAnUmVjdCg1MCwxMCwzMCwxMCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMu
YW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMTAwLCAwLCAyMCwgMTApOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMw
LCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDUwLDEwLDMwLDEwKScpOworCisgICAgZGVidWcoIk1v
dmUgYW5jaG9yIGVsZW1lbnQgYWxvbmcgdGhlIHZlcnRpY2FsIGF4aXMuIE9wZW4gcG9wdXAgdGhh
dCBpcyB0b28gdGFsbC4iKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9y
UmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgLTIwLCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEw
KS50b1N0cmluZygpJywgJ1JlY3QoMCwwLDMwLDYwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xv
YmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAtMTAsIDIwLCAxMCk7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0
KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAsMzAsNjApJyk7CisKKyAg
ICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0
KDAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5h
ZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDEw
LDMwLDUwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5T
Y3JlZW4gPSBtYWtlUmVjdCgwLCAxMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMCkudG9TdHJp
bmcoKScsICdSZWN0KDAsMjAsMzAsNDApJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFy
YW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDIwLCAyMCwgMTApOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAw
MCwgMzAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoMCwzMCwzMCwzMCknKTsKKworICAgIHBvcHVw
V2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgMzAs
IDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RX
aW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAsMzAsMzAp
Jyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9
IG1ha2VSZWN0KDAsIDQwLCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9w
dXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpJywg
J1JlY3QoMCwwLDMwLDQwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNo
b3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA1MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAx
MCkudG9TdHJpbmcoKScsICdSZWN0KDAsMCwzMCw1MCknKTsKKworICAgIHBvcHVwV2luZG93Lmds
b2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgNjAsIDIwLCAxMCk7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0
KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAsMzAsNjApJyk7CisKKyAg
ICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0
KDAsIDcwLCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cu
YWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoMCww
LDMwLDYwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5T
Y3JlZW4gPSBtYWtlUmVjdCgwLCA4MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMCkudG9TdHJp
bmcoKScsICdSZWN0KDAsMCwzMCw2MCknKTsKKworICAgIGRlYnVnKCJNb3ZlIGFuY2hvciBlbGVt
ZW50IGFsb25nIHRoZSB2ZXJ0aWNhbCBheGlzLiBPcGVuIHBvcHVwIHRoYXQgaXMgdG9vIHRhbGwg
YW5kIHdvbid0IHNocmluay4iKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5j
aG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgLTIwLCAyMCwgMTApOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAs
IDEwMDApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAsMzAsMTAwMCknKTsKKworICAgIHBvcHVwV2lu
ZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgLTEwLCAy
MCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2lu
ZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAsMzAsMTAw
MCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVu
ID0gbWFrZVJlY3QoMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Bv
cHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0cmluZygp
JywgJ1JlY3QoMCwwLDMwLDEwMDApJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1z
LmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDEwLCAyMCwgMTApOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwg
MzAsIDEwMDApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAsMzAsMTAwMCknKTsKKworICAgIHBvcHVw
V2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgMjAs
IDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RX
aW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJpbmcoKScsICdSZWN0KDAsMCwzMCwx
MDAwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3Jl
ZW4gPSBtYWtlUmVjdCgwLCAzMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0cmlu
ZygpJywgJ1JlY3QoMCwwLDMwLDEwMDApJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFy
YW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDQwLCAyMCwgMTApOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAw
MCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAsMzAsMTAwMCknKTsKKworICAgIHBv
cHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwg
NTAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1
c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJpbmcoKScsICdSZWN0KDAsMCwz
MCwxMDAwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5T
Y3JlZW4gPSBtYWtlUmVjdCgwLCA2MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0
cmluZygpJywgJ1JlY3QoMCwwLDMwLDEwMDApJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwu
cGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDcwLCAyMCwgMTApOworICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwg
MTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAsMzAsMTAwMCknKTsKKworICAg
IHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3Qo
MCwgODAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5h
ZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJpbmcoKScsICdSZWN0KDAs
MCwzMCwxMDAwKScpOworCisgICAgZGVidWcoIkdyb3cgcG9wdXAgd2lkdGguIik7CisKKyAgICBw
b3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDMw
LCAwLCAzMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRq
dXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDMwLDEwLDMw
LDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3Jl
ZW4gPSBtYWtlUmVjdCgzMCwgMCwgMzAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoNDAsIDEwLCA0MCwgMTApLnRvU3RyaW5nKCkn
LCAnUmVjdCgzMCwxMCw0MCwxMCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMu
YW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMzAsIDAsIDMwLCAxMCk7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDUwLCAxMCwgNTAs
IDEwKS50b1N0cmluZygpJywgJ1JlY3QoMzAsMTAsNTAsMTApJyk7CisKKyAgICBwb3B1cFdpbmRv
dy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDMwLCAwLCAzMCwg
MTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93
UmVjdCg2MCwgMTAsIDYwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDIwLDEwLDYwLDEwKScpOwor
CisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtl
UmVjdCgzMCwgMCwgMzAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2lu
ZG93LmFkanVzdFdpbmRvd1JlY3QoNzAsIDEwLCA3MCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgx
MCwxMCw3MCwxMCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVj
dEluU2NyZWVuID0gbWFrZVJlY3QoMzAsIDAsIDMwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDgwLCAxMCwgODAsIDEwKS50b1N0
cmluZygpJywgJ1JlY3QoMCwxMCw4MCwxMCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5w
YXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMzAsIDAsIDMwLCAxMCk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDkwLCAx
MCwgOTAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoMCwxMCw5MCwxMCknKTsKKworICAgIGZpbmlz
aEpTVGVzdCgpOworfQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167704</attachid>
            <date>2012-10-09 00:55:26 -0700</date>
            <delta_ts>2012-10-09 01:17:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98499-20121009165427.patch</filename>
            <type>text/plain</type>
            <size>45107</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY2OGJmYmE0ZTRlODU2
OGNhZTU5OWVlNTI5YWFlYjA1MjE3NjMwMi4uZjc5NjZkZDU4MjM3NjhhM2E3OTE4MDNiMzY1YWQ0
MmQxZWY1MGM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTEwLTA1ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIFBhZ2UgcG9wdXAgc2hv
dWxkIGJlIHNtYXJ0ZXIgYWJvdXQgaXRzIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTg0OTkKKworICAgICAgICBSZXZpZXdlZCBieSBLZW50
IFRhbXVyYS4KKworICAgICAgICBUaGlzIGNoYW5nZSBmaXhlcyB0aGVzZSB0d28gaXNzdWVzOgor
ICAgICAgICAxLiBQYWdlIHBvcHVwIHNob3VsZCByZXBvc2l0aW9uIGl0c2VsZiBzbyBpdCB3b24n
dCBnZXQgY2xpcHBlZCBieSBzY3JlZW4oV2luL0xpbnV4KSBvciByb290dmlldyhNYWMpIGJvdW5k
cy4KKyAgICAgICAgMi4gUGFnZSBwb3B1cCBzaG91bGQgcmVzaXplIGl0c2VsZiB3aGVuIGl0IGRv
ZXNuJ3QgZml0LgorCisgICAgICAgIFRlc3Q6IHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMv
cGFnZS1wb3B1cC9wYWdlLXBvcHVwLWFkanVzdC1yZWN0Lmh0bWwKKworICAgICAgICAqIFJlc291
cmNlcy9wYWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzOgorICAgICAgICAoaW5pdGlhbGl6ZSk6
IFdlIG5lZWQgdG8gc2V0IGdsb2JhbC5wYXJhbXMgYXQgdGhlIGJlZ2lubmluZyBiZWNhdXNlIHdl
IG5lZWQgaXQgZm9yIHJlc2l6ZVdpbmRvdygpLgorICAgICAgICAqIFJlc291cmNlcy9wYWdlcG9w
dXBzL2NvbG9yU3VnZ2VzdGlvblBpY2tlci5qczogQWRkZWQgZ2xvYmFsLnBhcmFtcy4KKyAgICAg
ICAgKGhhbmRsZU1lc3NhZ2UpOgorICAgICAgICAoaW5pdGlhbGl6ZSk6CisgICAgICAgIChoYW5k
bGVBcmd1bWVudHNUaW1lb3V0KToKKyAgICAgICAgKiBSZXNvdXJjZXMvcGFnZXBvcHVwcy9waWNr
ZXJDb21tb24uanM6CisgICAgICAgIChSZWN0KTogUmVwcmVzZW50cyBhbiBheGlzIGFsaWduZWQg
cmVjdGFuZ2xlLgorICAgICAgICAoUmVjdC5wcm90b3R5cGUuZ2V0IG1heFgpOiBHZXRzIHBvc2l0
aW9uIG9mIHJpZ2h0IGVkZ2UuCisgICAgICAgIChSZWN0LnByb3RvdHlwZS5nZXQgbWF4WSk6IEdl
dHMgcG9zaXRpb24gb2YgYm90dG9tIGVkZ2UuCisgICAgICAgIChSZWN0LnByb3RvdHlwZS50b1N0
cmluZyk6CisgICAgICAgIChSZWN0LmludGVyc2VjdGlvbik6IFJldHVybnMgdGhlIGludGVyc2Vj
dGlvbiBvZiB0d28gcmVjdGFuZ2xlcy4KKyAgICAgICAgKHJlc2l6ZVdpbmRvdyk6IFJlc2l6ZSB3
aW5kb3cgdG8gYSBjZXJ0YWluIHNpemUuIERvbid0IGFsbG93IHNocmlua2luZy4KKyAgICAgICAg
KGFkanVzdFdpbmRvd1JlY3QpOiBDYWxjdWxhdGVzIHRoZSBiZXN0IHBvc2l0aW9uIGFuZCBzaXpl
IGZvciB0aGUgcG9wdXAuCisgICAgICAgIChfYWRqdXN0V2luZG93UmVjdFZlcnRpY2FsbHkpOgor
ICAgICAgICAoX2FkanVzdFdpbmRvd1JlY3RIb3Jpem9udGFsbHkpOgorICAgICAgICAoc2V0V2lu
ZG93UmVjdCk6IFNldHMgdGhlIHBvc2l0aW9uIGFuZCBzaXplIG9mIHRoZSBwb3B1cCB0byB0aGUg
Z2l2ZW4gcmVjdC4KKyAgICAgICAgKiBSZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9uUGlj
a2VyLmNzczoKKyAgICAgICAgKC5zdWdnZXN0aW9uLWxpc3QpOiBEb24ndCBzaG93IGhvcml6b250
YWwgc2Nyb2xsIGJhci4KKyAgICAgICAgKiBSZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9u
UGlja2VyLmpzOgorICAgICAgICAoU3VnZ2VzdGlvblBpY2tlci5wcm90b3R5cGUuX2ZpeFdpbmRv
d1NpemUpOiAKKyAgICAgICAgKiBwYWdlL1BhZ2VQb3B1cENsaWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlUG9wdXBDbGllbnQ6OmFkZFByb3BlcnR5KTogRm9yIGFkZGluZyBhbiBpbnQg
dG8gSlNPTi4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VQb3B1cENsaWVudDo6YWRkUHJvcGVydHkp
OiBGb3IgYWRkaW5nIGFuIEludFJlY3QgdG8gSlNPTi4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHBhZ2UvUGFnZVBvcHVwQ2xpZW50Lmg6CisgICAgICAgIChQYWdlUG9wdXBDbGllbnQp
OgorCiAyMDEyLTEwLTA4ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgaW1hZ2Ugbm90IGRpc3BsYXllZCBpbiBmbGV4Ym94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDNmNzhhNTgzZWFjMDQwZmJlM2Q2ODFjNjMxMDg0YjBiOWI4ZjAwODYuLjg0NGFhZWE0
NGEwZWI5ZWQ1ZGVmOGE3OTgzOTgyODY0ZTk5YWFlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTAtMDUgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hp
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGFnZSBwb3B1cCBzaG91bGQgYmUgc21hcnRlciBhYm91
dCBpdHMgbGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05ODQ5OQorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgorCisgICAgICAg
ICogc3JjL0NvbG9yQ2hvb3NlclVJQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNv
bG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6d3JpdGVEb2N1bWVudCk6IFNlbmQgYW5jaG9yUmVjdElu
U2NyZWVuLCByb290Vmlld1JlY3RJblNjcmVlbiwgYW5kIGNvbmZpbmVUb1Jvb3RWaWV3LgorICAg
ICAgICAqIHNyYy9EYXRlVGltZUNob29zZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RGF0
ZVRpbWVDaG9vc2VySW1wbDo6d3JpdGVEb2N1bWVudCk6IFNlbmQgYW5jaG9yUmVjdEluU2NyZWVu
LCByb290Vmlld1JlY3RJblNjcmVlbiwgYW5kIGNvbmZpbmVUb1Jvb3RWaWV3LgorICAgICAgICAq
IHNyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBvcHVw
SW1wbDo6aW5pdCk6IFdlIGtlZXAgdGhlIG9yaWdpbkJvdW5kc0luUm9vdFZpZXcgYXJndW1lbnQg
Zm9yIE1vY2tQYWdlUG9wdXBEcml2ZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQb3B1cElt
cGw6OnJlc2l6ZSk6IFdlYlBhZ2VQb3B1cEltcGwgaXNuJ3QgaW4gY2hhcmdlIG9mIHNldHRpbmcg
dGhlIHBvcHVwIHBvc2l0aW9uIGFueSBtb3JlLgorICAgICAgICAqIHNyYy9XZWJQYWdlUG9wdXBJ
bXBsLmg6CisgICAgICAgIChXZWJQYWdlUG9wdXBJbXBsKToKKwogMjAxMi0xMC0wOCAgRGlyayBQ
cmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaHJvbWl1bSBERVBTIHJv
bGwgcjE2MDY1NzoxNjA3NjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMv
cGFnZXBvcHVwcy9jYWxlbmRhclBpY2tlci5qcyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9w
YWdlcG9wdXBzL2NhbGVuZGFyUGlja2VyLmpzCmluZGV4IGY3MzE1YjM4Nzc5MmFhYzAzMjEzZDQ1
MDBjZDAwNmUwNmNmOWRiNGEuLmI5YmQwODE4ZjJhNTBjN2IzN2RiNTc1YWQ2MzExZjVmMzI0MjM5
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NhbGVu
ZGFyUGlja2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2Nh
bGVuZGFyUGlja2VyLmpzCkBAIC0yNjcsNyArMjY3LDggQEAgQ2FsZW5kYXJQaWNrZXIudmFsaWRh
dGVDb25maWcgPSBmdW5jdGlvbihjb25maWcpIHsKIC8qKgogICogQHBhcmFtIHshT2JqZWN0fSBh
cmdzCiAgKi8KLWZ1bmN0aW9uIGluaXRpYWxpemUoYXJncykgeworZnVuY3Rpb24gaW5pdGlhbGl6
ZShhcmdzKSB7IAorICAgIGdsb2JhbC5wYXJhbXMgPSBhcmdzOwogICAgIHZhciBlcnJvclN0cmlu
ZyA9IENhbGVuZGFyUGlja2VyLnZhbGlkYXRlQ29uZmlnKGFyZ3MpOwogICAgIGlmIChhcmdzLnN1
Z2dlc3Rpb25WYWx1ZXMpCiAgICAgICAgIGVycm9yU3RyaW5nID0gZXJyb3JTdHJpbmcgfHwgU3Vn
Z2VzdGlvblBpY2tlci52YWxpZGF0ZUNvbmZpZyhhcmdzKQpAQCAtMjc2LDcgKzI3Nyw2IEBAIGZ1
bmN0aW9uIGluaXRpYWxpemUoYXJncykgewogICAgICAgICBtYWluLnRleHRDb250ZW50ID0gIklu
dGVybmFsIGVycm9yOiAiICsgZXJyb3JTdHJpbmc7CiAgICAgICAgIHJlc2l6ZVdpbmRvdyhtYWlu
Lm9mZnNldFdpZHRoLCBtYWluLm9mZnNldEhlaWdodCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
Z2xvYmFsLnBhcmFtcyA9IGFyZ3M7CiAgICAgICAgIGlmIChnbG9iYWwucGFyYW1zLnN1Z2dlc3Rp
b25WYWx1ZXMgJiYgZ2xvYmFsLnBhcmFtcy5zdWdnZXN0aW9uVmFsdWVzLmxlbmd0aCkKICAgICAg
ICAgICAgIG9wZW5TdWdnZXN0aW9uUGlja2VyKCk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NvbG9yU3VnZ2VzdGlvblBpY2tl
ci5qcyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL2NvbG9yU3VnZ2VzdGlv
blBpY2tlci5qcwppbmRleCA0NmEwZDQ5MzIyOTM5YTA1OTc0Yzk0OTEyZTE3M2FmMTQ3MjcyMjc3
Li41NTliOWU2ZGM4MmIzY2FhNDUzN2JiMDYzMDEzNmZiZWEzYThlN2RkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9jb2xvclN1Z2dlc3Rpb25QaWNrZXIu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvY29sb3JTdWdnZXN0
aW9uUGlja2VyLmpzCkBAIC0yMywyMCArMjMsMjQgQEAKICAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLXdpbmRvdy5h
cmd1bWVudHNSZWNlaXZlZCA9IGZhbHNlOwordmFyIGdsb2JhbCA9IHsKKyAgICBhcmd1bWVudHNS
ZWNlaXZlZDogZmFsc2UsCisgICAgcGFyYW1zOiBudWxsCit9OwogCiAvKioKICAqIEBwYXJhbSB7
RXZlbnR9IGV2ZW50CiAgKi8KIGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2UoZXZlbnQpIHsKICAgICBp
bml0aWFsaXplKEpTT04ucGFyc2UoZXZlbnQuZGF0YSkpOwotICAgIHdpbmRvdy5hcmd1bWVudHNS
ZWNlaXZlZCA9IHRydWU7CisgICAgZ2xvYmFsLmFyZ3VtZW50c1JlY2VpdmVkID0gdHJ1ZTsKIH0K
IAogLyoqCiAgKiBAcGFyYW0geyFPYmplY3R9IGFyZ3MKICAqLwotZnVuY3Rpb24gaW5pdGlhbGl6
ZShhcmdzKSB7CitmdW5jdGlvbiBpbml0aWFsaXplKGFyZ3MpIHsgCisgICAgZ2xvYmFsLnBhcmFt
cyA9IGFyZ3M7CiAgICAgdmFyIG1haW4gPSAkKCJtYWluIik7CiAgICAgbWFpbi5pbm5lckhUTUwg
PSAiIjsKICAgICB2YXIgZXJyb3JTdHJpbmcgPSB2YWxpZGF0ZUFyZ3VtZW50cyhhcmdzKTsKQEAg
LTUzLDcgKzU3LDcgQEAgdmFyIERlZmF1bHRDb2xvclBhbGV0dGUgPSBbIiMwMDAwMDAiLCAiIzQw
NDA0MCIsICIjODA4MDgwIiwgIiNjMGMwYzAiLAogICAgICIjNGE4NmU4IiwgIiMwMDAwZmYiLCAi
Izk5MDBmZiIsICIjZmYwMGZmIl07CiAKIGZ1bmN0aW9uIGhhbmRsZUFyZ3VtZW50c1RpbWVvdXQo
KSB7Ci0gICAgaWYgKHdpbmRvdy5hcmd1bWVudHNSZWNlaXZlZCkKKyAgICBpZiAoZ2xvYmFsLmFy
Z3VtZW50c1JlY2VpdmVkKQogICAgICAgICByZXR1cm47CiAgICAgdmFyIGFyZ3MgPSB7CiAgICAg
ICAgIHZhbHVlcyA6IERlZmF1bHRDb2xvclBhbGV0dGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9waWNrZXJDb21tb24uanMgYi9Tb3VyY2UvV2ViQ29y
ZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9waWNrZXJDb21tb24uanMKaW5kZXggNjE5ZjJlZTc2ZTVk
MGQ1MjJhOWViMTJjNzYyY2Q3YThhNTZkZGY4OC4uMGU5Y2U3YWI0MTY0OWQzNDVlMWEzYTI2MTNl
ODY3MjBkNjQyN2FhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vw
b3B1cHMvcGlja2VyQ29tbW9uLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdl
cG9wdXBzL3BpY2tlckNvbW1vbi5qcwpAQCAtNDUsMTYgKzQ1LDEyMSBAQCBmdW5jdGlvbiBjcmVh
dGVFbGVtZW50KHRhZ05hbWUsIG9wdF9jbGFzcywgb3B0X3RleHQpIHsKICAgICByZXR1cm4gZWxl
bWVudDsKIH0KIAorZnVuY3Rpb24gUmVjdCh4T3JSZWN0LCB5LCB3aWR0aCwgaGVpZ2h0KSB7Cisg
ICAgaWYgKHR5cGVvZiB4T3JSZWN0ID09PSAib2JqZWN0IikgeworICAgICAgICB5ID0geE9yUmVj
dC55OworICAgICAgICB3aWR0aCA9IHhPclJlY3Qud2lkdGg7CisgICAgICAgIGhlaWdodCA9IHhP
clJlY3QuaGVpZ2h0OworICAgICAgICB4T3JSZWN0ID0geE9yUmVjdC54OworICAgIH0KKyAgICB0
aGlzLnggPSB4T3JSZWN0OworICAgIHRoaXMueSA9IHk7CisgICAgdGhpcy53aWR0aCA9IHdpZHRo
OworICAgIHRoaXMuaGVpZ2h0ID0gaGVpZ2h0OworfQorCitSZWN0LnByb3RvdHlwZSA9IHsKKyAg
ICBnZXQgbWF4WCgpIHsgcmV0dXJuIHRoaXMueCArIHRoaXMud2lkdGg7IH0sCisgICAgZ2V0IG1h
eFkoKSB7IHJldHVybiB0aGlzLnkgKyB0aGlzLmhlaWdodDsgfSwKKyAgICB0b1N0cmluZzogZnVu
Y3Rpb24oKSB7IHJldHVybiAiUmVjdCgiICsgdGhpcy54ICsgIiwiICsgdGhpcy55ICsgIiwiICsg
dGhpcy53aWR0aCArICIsIiArIHRoaXMuaGVpZ2h0ICsgIikiOyB9Cit9OworCisvKioKKyAqIEBw
YXJhbSB7IW51bWJlcn0gUmVjdAorICogQHBhcmFtIHshbnVtYmVyfSBSZWN0CisgKiBAcmV0dXJu
IHs/UmVjdH0KKyAqLworUmVjdC5pbnRlcnNlY3Rpb24gPSBmdW5jdGlvbihyZWN0MSwgcmVjdDIp
IHsKKyAgICB2YXIgeCA9IE1hdGgubWF4KHJlY3QxLngsIHJlY3QyLngpOworICAgIHZhciBtYXhY
ID0gTWF0aC5taW4ocmVjdDEubWF4WCwgcmVjdDIubWF4WCk7CisgICAgdmFyIHkgPSBNYXRoLm1h
eChyZWN0MS55LCByZWN0Mi55KTsKKyAgICB2YXIgbWF4WSA9IE1hdGgubWluKHJlY3QxLm1heFks
IHJlY3QyLm1heFkpOworICAgIHZhciB3aWR0aCA9IG1heFggLSB4OworICAgIHZhciBoZWlnaHQg
PSBtYXhZIC0geTsKKyAgICBpZiAod2lkdGggPCAwIHx8IGhlaWdodCA8IDApCisgICAgICAgIHJl
dHVybiBudWxsOworICAgIHJldHVybiBuZXcgUmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKK307
CisKIC8qKgogICogQHBhcmFtIHshbnVtYmVyfSB3aWR0aAogICogQHBhcmFtIHshbnVtYmVyfSBo
ZWlnaHQKICAqLwogZnVuY3Rpb24gcmVzaXplV2luZG93KHdpZHRoLCBoZWlnaHQpIHsKKyAgICBz
ZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3Qod2lkdGgsIGhlaWdodCwgd2lkdGgsIGhlaWdo
dCkpOworfQorCisvKioKKyAqIEBwYXJhbSB7IW51bWJlcn0gd2lkdGgKKyAqIEBwYXJhbSB7IW51
bWJlcn0gaGVpZ2h0CisgKiBAcGFyYW0gez9udW1iZXJ9IG1pbldpZHRoCisgKiBAcGFyYW0gez9u
dW1iZXJ9IG1pbkhlaWdodAorICogQHJldHVybiB7IVJlY3R9CisgKi8KK2Z1bmN0aW9uIGFkanVz
dFdpbmRvd1JlY3Qod2lkdGgsIGhlaWdodCwgbWluV2lkdGgsIG1pbkhlaWdodCkgeworICAgIGlm
ICh0eXBlb2YgbWluV2lkdGggIT09ICJudW1iZXIiKQorICAgICAgICBtaW5XaWR0aCA9IDA7Cisg
ICAgaWYgKHR5cGVvZiBtaW5IZWlnaHQgIT09ICJudW1iZXIiKQorICAgICAgICBtaW5IZWlnaHQg
PSAwOworCisgICAgdmFyIHdpbmRvd1JlY3QgPSBuZXcgUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0
KTsKKworICAgIGlmICghZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4pCisgICAgICAg
IHJldHVybiB3aW5kb3dSZWN0OworCisgICAgdmFyIGFuY2hvclJlY3QgPSBuZXcgUmVjdChnbG9i
YWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbik7CisgICAgdmFyIHJvb3RWaWV3UmVjdCA9IG5l
dyBSZWN0KGdsb2JhbC5wYXJhbXMucm9vdFZpZXdSZWN0SW5TY3JlZW4pOworICAgIHZhciBhdmFp
bFJlY3QgPSBuZXcgUmVjdCh3aW5kb3cuc2NyZWVuLmF2YWlsTGVmdCwgd2luZG93LnNjcmVlbi5h
dmFpbFRvcCwgd2luZG93LnNjcmVlbi5hdmFpbFdpZHRoLCB3aW5kb3cuc2NyZWVuLmF2YWlsSGVp
Z2h0KTsKKyAgICBpZiAoZ2xvYmFsLnBhcmFtcy5jb25maW5lVG9Sb290VmlldykKKyAgICAgICAg
YXZhaWxSZWN0ID0gUmVjdC5pbnRlcnNlY3Rpb24oYXZhaWxSZWN0LCByb290Vmlld1JlY3QpIHx8
IG5ldyBSZWN0KDAsIDAsIDAsIDApOworCisgICAgX2FkanVzdFdpbmRvd1JlY3RWZXJ0aWNhbGx5
KHdpbmRvd1JlY3QsIGF2YWlsUmVjdCwgYW5jaG9yUmVjdCwgbWluSGVpZ2h0KTsKKyAgICBfYWRq
dXN0V2luZG93UmVjdEhvcml6b250YWxseSh3aW5kb3dSZWN0LCBhdmFpbFJlY3QsIGFuY2hvclJl
Y3QsIG1pbldpZHRoKTsKKworICAgIHJldHVybiB3aW5kb3dSZWN0OworfQorCitmdW5jdGlvbiBf
YWRqdXN0V2luZG93UmVjdFZlcnRpY2FsbHkod2luZG93UmVjdCwgYXZhaWxSZWN0LCBhbmNob3JS
ZWN0LCBtaW5IZWlnaHQpIHsKKyAgICB2YXIgYXZhaWxhYmxlU3BhY2VBYm92ZSA9IGFuY2hvclJl
Y3QueSAtIGF2YWlsUmVjdC55OworICAgIGF2YWlsYWJsZVNwYWNlQWJvdmUgPSBNYXRoLm1heCgw
LCBNYXRoLm1pbihhdmFpbFJlY3QuaGVpZ2h0LCBhdmFpbGFibGVTcGFjZUFib3ZlKSk7CisKKyAg
ICB2YXIgYXZhaWxhYmxlU3BhY2VCZWxvdyA9IGF2YWlsUmVjdC5tYXhZIC0gYW5jaG9yUmVjdC5t
YXhZOworICAgIGF2YWlsYWJsZVNwYWNlQmVsb3cgPSBNYXRoLm1heCgwLCBNYXRoLm1pbihhdmFp
bFJlY3QuaGVpZ2h0LCBhdmFpbGFibGVTcGFjZUJlbG93KSk7CisKKyAgICBpZiAod2luZG93UmVj
dC5oZWlnaHQgPiBhdmFpbGFibGVTcGFjZUJlbG93ICYmIGF2YWlsYWJsZVNwYWNlQmVsb3cgPCBh
dmFpbGFibGVTcGFjZUFib3ZlKSB7CisgICAgICAgIHdpbmRvd1JlY3QuaGVpZ2h0ID0gTWF0aC5t
aW4od2luZG93UmVjdC5oZWlnaHQsIGF2YWlsYWJsZVNwYWNlQWJvdmUpOworICAgICAgICB3aW5k
b3dSZWN0LmhlaWdodCA9IE1hdGgubWF4KHdpbmRvd1JlY3QuaGVpZ2h0LCBtaW5IZWlnaHQpOwor
ICAgICAgICB3aW5kb3dSZWN0LnkgPSBhbmNob3JSZWN0LnkgLSB3aW5kb3dSZWN0LmhlaWdodDsK
KyAgICB9IGVsc2UgeworICAgICAgICB3aW5kb3dSZWN0LmhlaWdodCA9IE1hdGgubWluKHdpbmRv
d1JlY3QuaGVpZ2h0LCBhdmFpbGFibGVTcGFjZUJlbG93KTsKKyAgICAgICAgd2luZG93UmVjdC5o
ZWlnaHQgPSBNYXRoLm1heCh3aW5kb3dSZWN0LmhlaWdodCwgbWluSGVpZ2h0KTsKKyAgICAgICAg
d2luZG93UmVjdC55ID0gYW5jaG9yUmVjdC5tYXhZOworICAgIH0KKyAgICB3aW5kb3dSZWN0Lnkg
PSBNYXRoLm1pbih3aW5kb3dSZWN0LnksIGF2YWlsUmVjdC5tYXhZIC0gd2luZG93UmVjdC5oZWln
aHQpOworICAgIHdpbmRvd1JlY3QueSA9IE1hdGgubWF4KHdpbmRvd1JlY3QueSwgYXZhaWxSZWN0
LnkpOworfQorCitmdW5jdGlvbiBfYWRqdXN0V2luZG93UmVjdEhvcml6b250YWxseSh3aW5kb3dS
ZWN0LCBhdmFpbFJlY3QsIGFuY2hvclJlY3QsIG1pbldpZHRoKSB7CisgICAgd2luZG93UmVjdC53
aWR0aCA9IE1hdGgubWluKHdpbmRvd1JlY3Qud2lkdGgsIGF2YWlsUmVjdC53aWR0aCk7CisgICAg
d2luZG93UmVjdC53aWR0aCA9IE1hdGgubWF4KHdpbmRvd1JlY3Qud2lkdGgsIG1pbldpZHRoKTsK
KyAgICB3aW5kb3dSZWN0LnggPSBhbmNob3JSZWN0Lng7CisgICAgdmFyIGF2YWlsYWJsZVNwYWNl
VG9SaWdodCA9IGF2YWlsUmVjdC5tYXhYIC0gYW5jaG9yUmVjdC54OworICAgIGlmICh3aW5kb3dS
ZWN0LndpZHRoID4gYXZhaWxhYmxlU3BhY2VUb1JpZ2h0KQorICAgICAgICB3aW5kb3dSZWN0Lngg
LT0gKHdpbmRvd1JlY3Qud2lkdGggLSBhdmFpbGFibGVTcGFjZVRvUmlnaHQpOworICAgIHdpbmRv
d1JlY3QueCA9IE1hdGgubWluKHdpbmRvd1JlY3QueCwgYXZhaWxSZWN0Lm1heFggLSB3aW5kb3dS
ZWN0LndpZHRoKTsKKyAgICB3aW5kb3dSZWN0LnggPSBNYXRoLm1heCh3aW5kb3dSZWN0LngsIGF2
YWlsUmVjdC54KTsKK30KKworLyoqCisgKiBAcGFyYW0geyFSZWN0fSByZWN0CisgKi8KK2Z1bmN0
aW9uIHNldFdpbmRvd1JlY3QocmVjdCkgewogICAgIGlmICh3aW5kb3cuZnJhbWVFbGVtZW50KSB7
Ci0gICAgICAgIHdpbmRvdy5mcmFtZUVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCArICJweCI7
Ci0gICAgICAgIHdpbmRvdy5mcmFtZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0ICsgInB4
IjsKKyAgICAgICAgd2luZG93LmZyYW1lRWxlbWVudC5zdHlsZS53aWR0aCA9IHJlY3Qud2lkdGgg
KyAicHgiOworICAgICAgICB3aW5kb3cuZnJhbWVFbGVtZW50LnN0eWxlLmhlaWdodCA9IHJlY3Qu
aGVpZ2h0ICsgInB4IjsKICAgICB9IGVsc2UgewotICAgICAgICB3aW5kb3cucmVzaXplVG8od2lk
dGgsIGhlaWdodCk7CisgICAgICAgIHdpbmRvdy5tb3ZlVG8ocmVjdC54IC0gd2luZG93LnNjcmVl
bi5hdmFpbExlZnQsIHJlY3QueSAtIHdpbmRvdy5zY3JlZW4uYXZhaWxUb3ApOworICAgICAgICB3
aW5kb3cucmVzaXplVG8ocmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvc3VnZ2VzdGlvblBp
Y2tlci5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9u
UGlja2VyLmNzcwppbmRleCA5MWUwZTM0ODY5ODE2ZTA5YmNlMmQ5ZmUxOGI5NmI1NDAzODAzN2M4
Li5kYmRlMDNlMTg3NTcxZGE4ZjBkMjBkNDQ2ZWVhZTgyNGIyMTU5M2Y1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9uUGlja2VyLmNzcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9uUGlja2Vy
LmNzcwpAQCAtNSw2ICs1LDcgQEAKICAgICBmb250OiAtd2Via2l0LXNtYWxsLWNvbnRyb2w7CiAg
ICAgYm9yZGVyOiAxcHggc29saWQgIzdmOWRiOTsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0
ZTsKKyAgICBvdmVyZmxvdy14OiBoaWRkZW47CiAgICAgb3ZlcmZsb3cteTogYXV0bzsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvc3VnZ2VzdGlv
blBpY2tlci5qcyBiL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9wYWdlcG9wdXBzL3N1Z2dlc3Rp
b25QaWNrZXIuanMKaW5kZXggM2MwZTk1YzZhYTYwMzUyYWI4NWY1Y2Y2MTViMzg1YmEwN2EyMjJj
Ny4uMDg0NDA2MzY0MDgwZTNmYzFmZGEzNmRiYmZlNmVjZDI4NTJhNjFjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL3BhZ2Vwb3B1cHMvc3VnZ2VzdGlvblBpY2tlci5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMvcGFnZXBvcHVwcy9zdWdnZXN0aW9uUGlja2Vy
LmpzCkBAIC0xNTcsNyArMTU3LDkgQEAgU3VnZ2VzdGlvblBpY2tlci5wcm90b3R5cGUuX2ZpeFdp
bmRvd1NpemUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgZGVzaXJlZFdpbmRvd0hlaWdodCA9IG1h
eEhlaWdodDsKICAgICB9CiAKLSAgICByZXNpemVXaW5kb3coZGVzaXJlZFdpbmRvd1dpZHRoLCBk
ZXNpcmVkV2luZG93SGVpZ2h0KTsKKyAgICB2YXIgd2luZG93UmVjdCA9IGFkanVzdFdpbmRvd1Jl
Y3QoZGVzaXJlZFdpbmRvd1dpZHRoLCBkZXNpcmVkV2luZG93SGVpZ2h0LCBkZXNpcmVkV2luZG93
V2lkdGgsIDApOworICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gKHdp
bmRvd1JlY3QuaGVpZ2h0IC0gTGlzdEJvcmRlcikgKyAicHgiOworICAgIHNldFdpbmRvd1JlY3Qo
d2luZG93UmVjdCk7CiB9OwogCiBTdWdnZXN0aW9uUGlja2VyLnByb3RvdHlwZS5fbGF5b3V0ID0g
ZnVuY3Rpb24oKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENsaWVudC5jcHAKaW5kZXgg
NWI2NjZlYTQ1OTViZDZmNmI3NjIxZjI4NmIxMzI2MWNmM2NjMWNjNS4uN2RhYjgyOGI3Y2M0MTk2
MTY1Nzk2NGEzYzJkODY4ZTRkNDIwY2MyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlUG9wdXBDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVw
Q2xpZW50LmNwcApAQCAtNjEsNiArNjEsMTQgQEAgdm9pZCBQYWdlUG9wdXBDbGllbnQ6OmFkZFBy
b3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIERvY3VtZW4KICAg
ICBhZGRMaXRlcmFsKCIsXG4iLCB3cml0ZXIpOwogfQogCit2b2lkIFBhZ2VQb3B1cENsaWVudDo6
YWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFtZSwgaW50IHZhbHVlLCBEb2N1bWVudFdyaXRlciYg
d3JpdGVyKQoreworICAgIHdyaXRlci5hZGREYXRhKG5hbWUsIHN0cmxlbihuYW1lKSk7CisgICAg
YWRkTGl0ZXJhbCgiOiAiLCB3cml0ZXIpOworICAgIGFkZFN0cmluZyhTdHJpbmc6Om51bWJlcih2
YWx1ZSksIHdyaXRlcik7CisgICAgYWRkTGl0ZXJhbCgiLFxuIiwgd3JpdGVyKTsKK30KKwogdm9p
ZCBQYWdlUG9wdXBDbGllbnQ6OmFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVk
IHZhbHVlLCBEb2N1bWVudFdyaXRlciYgd3JpdGVyKQogewogICAgIHdyaXRlci5hZGREYXRhKG5h
bWUsIHN0cmxlbihuYW1lKSk7CkBAIC05Miw2ICsxMDAsMTcgQEAgdm9pZCBQYWdlUG9wdXBDbGll
bnQ6OmFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2
YWx1ZXMKICAgICBhZGRMaXRlcmFsKCJdLFxuIiwgd3JpdGVyKTsKIH0KIAordm9pZCBQYWdlUG9w
dXBDbGllbnQ6OmFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IEludFJlY3QmIHJl
Y3QsIERvY3VtZW50V3JpdGVyJiB3cml0ZXIpCit7CisgICAgd3JpdGVyLmFkZERhdGEobmFtZSwg
c3RybGVuKG5hbWUpKTsKKyAgICBhZGRMaXRlcmFsKCI6IHsiLCB3cml0ZXIpOworICAgIGFkZFBy
b3BlcnR5KCJ4IiwgcmVjdC54KCksIHdyaXRlcik7CisgICAgYWRkUHJvcGVydHkoInkiLCByZWN0
LnkoKSwgd3JpdGVyKTsKKyAgICBhZGRQcm9wZXJ0eSgid2lkdGgiLCByZWN0LndpZHRoKCksIHdy
aXRlcik7CisgICAgYWRkUHJvcGVydHkoImhlaWdodCIsIHJlY3QuaGVpZ2h0KCksIHdyaXRlcik7
CisgICAgYWRkTGl0ZXJhbCgifSxcbiIsIHdyaXRlcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShQQUdFX1BPUFVQKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlUG9wdXBDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZVBvcHVwQ2xpZW50LmgKaW5kZXggN2Q5Nzg0NjFlYTM3NzEzM2YyZTZlZTRhODZlOWZjMzZjZWZm
ZGQ0Yi4uZDBmYjRiYjU2ZjA0ODU1NDVhNGQ1NmQzZjIzYjhjYzNmYTBhOGMyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlUG9wdXBDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VQb3B1cENsaWVudC5oCkBAIC0zNCw3ICszNCw3IEBACiAjaWYgRU5BQkxF
KFBBR0VfUE9QVVApCiAKICNpbmNsdWRlICJEb2N1bWVudFdyaXRlci5oIgotI2luY2x1ZGUgIklu
dFNpemUuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY5LDkgKzY5LDExIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCBhZGRTdHJpbmcoY29uc3QgU3RyaW5nJiwgRG9jdW1lbnRXcml0ZXIm
KTsKICAgICBzdGF0aWMgdm9pZCBhZGRKYXZhU2NyaXB0U3RyaW5nKGNvbnN0IFN0cmluZyYsIERv
Y3VtZW50V3JpdGVyJik7CiAgICAgc3RhdGljIHZvaWQgYWRkUHJvcGVydHkoY29uc3QgY2hhciog
bmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRG9jdW1lbnRXcml0ZXImKTsKKyAgICBzdGF0aWMg
dm9pZCBhZGRQcm9wZXJ0eShjb25zdCBjaGFyKiBuYW1lLCBpbnQgdmFsdWUsIERvY3VtZW50V3Jp
dGVyJik7CiAgICAgc3RhdGljIHZvaWQgYWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFtZSwgdW5z
aWduZWQgdmFsdWUsIERvY3VtZW50V3JpdGVyJik7CiAgICAgc3RhdGljIHZvaWQgYWRkUHJvcGVy
dHkoY29uc3QgY2hhciogbmFtZSwgYm9vbCB2YWx1ZSwgRG9jdW1lbnRXcml0ZXImKTsKICAgICBz
dGF0aWMgdm9pZCBhZGRQcm9wZXJ0eShjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgdmFsdWVzLCBEb2N1bWVudFdyaXRlciYpOworICAgIHN0YXRpYyB2b2lkIGFkZFByb3Bl
cnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IEludFJlY3QmLCBEb2N1bWVudFdyaXRlciYpOwog
fTsKIAogaW5saW5lIHZvaWQgUGFnZVBvcHVwQ2xpZW50OjphZGRTdHJpbmcoY29uc3QgU3RyaW5n
JiBzdHIsIERvY3VtZW50V3JpdGVyJiB3cml0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Db2xvckNob29zZXJVSUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyLmNwcAppbmRleCA1NGQxMzRm
ZTYzYTcxYmRmYWM5ZWEwNzczOTdiZmQ0MTllNzg2YzJlLi4zMzBmNTljZTI0ZmNjYjc3OWI1OTU5
NjU2M2I4ODNjMjgyN2IxNTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Db2xvckNob29zZXJVSUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0NvbG9yQ2hvb3NlclVJQ29udHJvbGxlci5jcHAKQEAgLTMyLDE0ICszMiwxOCBAQAog
I2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiQ29sb3JDaG9vc2VyQ2xpZW50LmgiCiAjaW5j
bHVkZSAiQ29sb3JTdWdnZXN0aW9uUGlja2VyLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNs
dWRlICJQaWNrZXJDb21tb24uaCIKICNpbmNsdWRlICJXZWJDb2xvckNob29zZXIuaCIKKyNpbmNs
dWRlICJXZWJWaWV3SW1wbC5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJDb2xvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJMb2NhbGl6ZWRTdHJp
bmcuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiAvLyBLZWVwIGluIHN5bmMgd2l0aCBBY3Rpb25zIGluIGNvbG9yU3VnZ2VzdGlvblBpY2tlci5q
cy4KQEAgLTQ5LDExICs1MywxMSBAQCBlbnVtIENvbG9yUGlja2VyUG9wdXBBY3Rpb24gewogICAg
IENvbG9yUGlja2VyUG9wdXBBY3Rpb25TZXRWYWx1ZSA9IDAKIH07CiAKLUNvbG9yQ2hvb3NlclVJ
Q29udHJvbGxlcjo6Q29sb3JDaG9vc2VyVUlDb250cm9sbGVyKENocm9tZUNsaWVudEltcGwqIGNo
cm9tZUNsaWVudCwgV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQpCitDb2xvckNo
b29zZXJVSUNvbnRyb2xsZXI6OkNvbG9yQ2hvb3NlclVJQ29udHJvbGxlcihDaHJvbWVDbGllbnRJ
bXBsKiBjaHJvbWVDbGllbnQsIENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50KQogICAgIDogbV9j
aHJvbWVDbGllbnQoY2hyb21lQ2xpZW50KQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwg
bV9wb3B1cCgwKQotICAgICwgbV9sb2NhbGl6ZXIoV2ViQ29yZTo6TG9jYWxpemVyOjpjcmVhdGVE
ZWZhdWx0KCkpCisgICAgLCBtX2xvY2FsaXplcihMb2NhbGl6ZXI6OmNyZWF0ZURlZmF1bHQoKSkK
IHsKICAgICBpZiAobV9jbGllbnQtPnNob3VsZFNob3dTdWdnZXN0aW9ucygpKQogICAgICAgICBv
cGVuUG9wdXAoKTsKQEAgLTY1LDcgKzY5LDcgQEAgQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyOjp+
Q29sb3JDaG9vc2VyVUlDb250cm9sbGVyKCkKIHsKIH0KIAotdm9pZCBDb2xvckNob29zZXJVSUNv
bnRyb2xsZXI6OnNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQor
dm9pZCBDb2xvckNob29zZXJVSUNvbnRyb2xsZXI6OnNldFNlbGVjdGVkQ29sb3IoY29uc3QgQ29s
b3ImIGNvbG9yKQogewogICAgIEFTU0VSVChtX2Nob29zZXIpOwogICAgIG1fY2hvb3Nlci0+c2V0
U2VsZWN0ZWRDb2xvcihzdGF0aWNfY2FzdDxXZWJDb2xvcj4oY29sb3IucmdiKCkpKTsKQEAgLTgy
LDcgKzg2LDcgQEAgdm9pZCBDb2xvckNob29zZXJVSUNvbnRyb2xsZXI6OmVuZENob29zZXIoKQog
dm9pZCBDb2xvckNob29zZXJVSUNvbnRyb2xsZXI6OmRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNv
bG9yJiBjb2xvcikKIHsKICAgICBBU1NFUlQobV9jbGllbnQpOwotICAgIG1fY2xpZW50LT5kaWRD
aG9vc2VDb2xvcihXZWJDb3JlOjpDb2xvcihzdGF0aWNfY2FzdDxXZWJDb3JlOjpSR0JBMzI+KGNv
bG9yKSkpOworICAgIG1fY2xpZW50LT5kaWRDaG9vc2VDb2xvcihDb2xvcihzdGF0aWNfY2FzdDxS
R0JBMzI+KGNvbG9yKSkpOwogfQogCiB2b2lkIENvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6ZGlk
RW5kQ2hvb3NlcigpCkBAIC05MiwzMiArOTYsNDMgQEAgdm9pZCBDb2xvckNob29zZXJVSUNvbnRy
b2xsZXI6OmRpZEVuZENob29zZXIoKQogICAgIG1fY2xpZW50LT5kaWRFbmRDaG9vc2VyKCk7CiB9
CiAKLVdlYkNvcmU6OkludFNpemUgQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyOjpjb250ZW50U2l6
ZSgpCitJbnRTaXplIENvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6Y29udGVudFNpemUoKQogewot
ICAgIHJldHVybiBXZWJDb3JlOjpJbnRTaXplKDAsIDApOworICAgIHJldHVybiBJbnRTaXplKDAs
IDApOwogfQogCi12b2lkIENvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6d3JpdGVEb2N1bWVudChX
ZWJDb3JlOjpEb2N1bWVudFdyaXRlciYgd3JpdGVyKQordm9pZCBDb2xvckNob29zZXJVSUNvbnRy
b2xsZXI6OndyaXRlRG9jdW1lbnQoRG9jdW1lbnRXcml0ZXImIHdyaXRlcikKIHsKLSAgICBWZWN0
b3I8V2ViQ29yZTo6Q29sb3I+IHN1Z2dlc3Rpb25zID0gbV9jbGllbnQtPnN1Z2dlc3Rpb25zKCk7
CisgICAgVmVjdG9yPENvbG9yPiBzdWdnZXN0aW9ucyA9IG1fY2xpZW50LT5zdWdnZXN0aW9ucygp
OwogICAgIFZlY3RvcjxTdHJpbmc+IHN1Z2dlc3Rpb25WYWx1ZXM7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHN1Z2dlc3Rpb25zLnNpemUoKTsgaSsrKQogICAgICAgICBzdWdnZXN0aW9u
VmFsdWVzLmFwcGVuZChzdWdnZXN0aW9uc1tpXS5zZXJpYWxpemVkKCkpOworICAgIEludFJlY3Qg
YW5jaG9yUmVjdEluU2NyZWVuID0gbV9jaHJvbWVDbGllbnQtPnJvb3RWaWV3VG9TY3JlZW4obV9j
bGllbnQtPmVsZW1lbnRSZWN0UmVsYXRpdmVUb1Jvb3RWaWV3KCkpOworICAgIEZyYW1lVmlldyog
dmlldyA9IHN0YXRpY19jYXN0PFdlYlZpZXdJbXBsKj4obV9jaHJvbWVDbGllbnQtPndlYlZpZXco
KSktPnBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKTsKKyAgICBJbnRSZWN0IHJvb3RWaWV3Vmlz
aWJsZUNvbnRlbnRSZWN0ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KHRydWUgLyogaW5jbHVk
ZSBzY3JvbGxiYXJzICovKTsKKyAgICBJbnRSZWN0IHJvb3RWaWV3UmVjdEluU2NyZWVuID0gbV9j
aHJvbWVDbGllbnQtPnJvb3RWaWV3VG9TY3JlZW4ocm9vdFZpZXdWaXNpYmxlQ29udGVudFJlY3Qp
OwogICAgIAotICAgIFdlYkNvcmU6OlBhZ2VQb3B1cENsaWVudDo6YWRkU3RyaW5nKCI8IURPQ1RZ
UEUgaHRtbD48aGVhZD48bWV0YSBjaGFyc2V0PSdVVEYtOCc+PHN0eWxlPlxuIiwgd3JpdGVyKTsK
LSAgICB3cml0ZXIuYWRkRGF0YShXZWJDb3JlOjpwaWNrZXJDb21tb25Dc3MsIHNpemVvZihXZWJD
b3JlOjpwaWNrZXJDb21tb25Dc3MpKTsKLSAgICB3cml0ZXIuYWRkRGF0YShXZWJDb3JlOjpjb2xv
clN1Z2dlc3Rpb25QaWNrZXJDc3MsIHNpemVvZihXZWJDb3JlOjpjb2xvclN1Z2dlc3Rpb25QaWNr
ZXJDc3MpKTsKLSAgICBXZWJDb3JlOjpQYWdlUG9wdXBDbGllbnQ6OmFkZFN0cmluZygiPC9zdHls
ZT48L2hlYWQ+PGJvZHk+PGRpdiBpZD1tYWluPkxvYWRpbmcuLi48L2Rpdj48c2NyaXB0PlxuIgor
ICAgIFBhZ2VQb3B1cENsaWVudDo6YWRkU3RyaW5nKCI8IURPQ1RZUEUgaHRtbD48aGVhZD48bWV0
YSBjaGFyc2V0PSdVVEYtOCc+PHN0eWxlPlxuIiwgd3JpdGVyKTsKKyAgICB3cml0ZXIuYWRkRGF0
YShwaWNrZXJDb21tb25Dc3MsIHNpemVvZihwaWNrZXJDb21tb25Dc3MpKTsKKyAgICB3cml0ZXIu
YWRkRGF0YShjb2xvclN1Z2dlc3Rpb25QaWNrZXJDc3MsIHNpemVvZihjb2xvclN1Z2dlc3Rpb25Q
aWNrZXJDc3MpKTsKKyAgICBQYWdlUG9wdXBDbGllbnQ6OmFkZFN0cmluZygiPC9zdHlsZT48L2hl
YWQ+PGJvZHk+PGRpdiBpZD1tYWluPkxvYWRpbmcuLi48L2Rpdj48c2NyaXB0PlxuIgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2luZG93LmRpYWxvZ0FyZ3VtZW50cyA9
IHtcbiIsIHdyaXRlcik7Ci0gICAgV2ViQ29yZTo6UGFnZVBvcHVwQ2xpZW50OjphZGRQcm9wZXJ0
eSgidmFsdWVzIiwgc3VnZ2VzdGlvblZhbHVlcywgd3JpdGVyKTsgICAgICAgCi0gICAgV2ViQ29y
ZTo6UGFnZVBvcHVwQ2xpZW50OjphZGRQcm9wZXJ0eSgib3RoZXJDb2xvckxhYmVsIiwgUGxhdGZv
cm06OmN1cnJlbnQoKS0+cXVlcnlMb2NhbGl6ZWRTdHJpbmcoV2ViTG9jYWxpemVkU3RyaW5nOjpP
dGhlckNvbG9yTGFiZWwpLCB3cml0ZXIpOwotICAgIFdlYkNvcmU6OlBhZ2VQb3B1cENsaWVudDo6
YWRkU3RyaW5nKCJ9O1xuIiwgd3JpdGVyKTsKLSAgICB3cml0ZXIuYWRkRGF0YShXZWJDb3JlOjpw
aWNrZXJDb21tb25Kcywgc2l6ZW9mKFdlYkNvcmU6OnBpY2tlckNvbW1vbkpzKSk7Ci0gICAgd3Jp
dGVyLmFkZERhdGEoV2ViQ29yZTo6Y29sb3JTdWdnZXN0aW9uUGlja2VySnMsIHNpemVvZihXZWJD
b3JlOjpjb2xvclN1Z2dlc3Rpb25QaWNrZXJKcykpOwotICAgIFdlYkNvcmU6OlBhZ2VQb3B1cENs
aWVudDo6YWRkU3RyaW5nKCI8L3NjcmlwdD48L2JvZHk+XG4iLCB3cml0ZXIpOworICAgIFBhZ2VQ
b3B1cENsaWVudDo6YWRkUHJvcGVydHkoInZhbHVlcyIsIHN1Z2dlc3Rpb25WYWx1ZXMsIHdyaXRl
cik7ICAgICAgIAorICAgIFBhZ2VQb3B1cENsaWVudDo6YWRkUHJvcGVydHkoIm90aGVyQ29sb3JM
YWJlbCIsIFBsYXRmb3JtOjpjdXJyZW50KCktPnF1ZXJ5TG9jYWxpemVkU3RyaW5nKFdlYkxvY2Fs
aXplZFN0cmluZzo6T3RoZXJDb2xvckxhYmVsKSwgd3JpdGVyKTsKKyAgICBhZGRQcm9wZXJ0eSgi
YW5jaG9yUmVjdEluU2NyZWVuIiwgYW5jaG9yUmVjdEluU2NyZWVuLCB3cml0ZXIpOworICAgIGFk
ZFByb3BlcnR5KCJyb290Vmlld1JlY3RJblNjcmVlbiIsIHJvb3RWaWV3UmVjdEluU2NyZWVuLCB3
cml0ZXIpOworI2lmIE9TKE1BQ19PU19YKQorICAgIGFkZFByb3BlcnR5KCJjb25maW5lVG9Sb290
VmlldyIsIHRydWUsIHdyaXRlcik7CisjZWxzZQorICAgIGFkZFByb3BlcnR5KCJjb25maW5lVG9S
b290VmlldyIsIGZhbHNlLCB3cml0ZXIpOworI2VuZGlmCisgICAgUGFnZVBvcHVwQ2xpZW50Ojph
ZGRTdHJpbmcoIn07XG4iLCB3cml0ZXIpOworICAgIHdyaXRlci5hZGREYXRhKHBpY2tlckNvbW1v
bkpzLCBzaXplb2YocGlja2VyQ29tbW9uSnMpKTsKKyAgICB3cml0ZXIuYWRkRGF0YShjb2xvclN1
Z2dlc3Rpb25QaWNrZXJKcywgc2l6ZW9mKGNvbG9yU3VnZ2VzdGlvblBpY2tlckpzKSk7CisgICAg
UGFnZVBvcHVwQ2xpZW50OjphZGRTdHJpbmcoIjwvc2NyaXB0PjwvYm9keT5cbiIsIHdyaXRlcik7
CiB9CiAKLVdlYkNvcmU6OkxvY2FsaXplciYgQ29sb3JDaG9vc2VyVUlDb250cm9sbGVyOjpsb2Nh
bGl6ZXIoKQorTG9jYWxpemVyJiBDb2xvckNob29zZXJVSUNvbnRyb2xsZXI6OmxvY2FsaXplcigp
CiB7CiAgICAgcmV0dXJuICptX2xvY2FsaXplcjsKIH0KQEAgLTEyNyw3ICsxNDIsNyBAQCB2b2lk
IENvbG9yQ2hvb3NlclVJQ29udHJvbGxlcjo6c2V0VmFsdWVBbmRDbG9zZVBvcHVwKGludCBudW1W
YWx1ZSwgY29uc3QgU3RyaW5nJgogICAgIEFTU0VSVChtX3BvcHVwKTsKICAgICBBU1NFUlQobV9j
bGllbnQpOwogICAgIGlmIChudW1WYWx1ZSA9PSBDb2xvclBpY2tlclBvcHVwQWN0aW9uU2V0VmFs
dWUpCi0gICAgICAgIG1fY2xpZW50LT5kaWRDaG9vc2VDb2xvcihXZWJDb3JlOjpDb2xvcihzdHJp
bmdWYWx1ZSkpOworICAgICAgICBtX2NsaWVudC0+ZGlkQ2hvb3NlQ29sb3IoQ29sb3Ioc3RyaW5n
VmFsdWUpKTsKICAgICBpZiAobnVtVmFsdWUgPT0gQ29sb3JQaWNrZXJQb3B1cEFjdGlvbkNob29z
ZU90aGVyQ29sb3IpCiAgICAgICAgIG9wZW5Db2xvckNob29zZXIoKTsKICAgICBjbG9zZVBvcHVw
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9EYXRlVGltZUNob29z
ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0RhdGVUaW1lQ2hvb3Nlcklt
cGwuY3BwCmluZGV4IGNiZDBmZDY5ZjVkYjE1NmFmNTk3ZTdiZGY4MDRmYTMzYjdkYzQ1MGEuLjFh
NWI3YTI5YTVkNDUwNTZiMjc1ZmJkNWUzNmMzMGU0MDBjZWI1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0RhdGVUaW1lQ2hvb3NlckltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0RhdGVUaW1lQ2hvb3NlckltcGwuY3BwCkBAIC0zNywxMiAr
MzcsMTQgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiRGF0ZUNv
bXBvbmVudHMuaCIKICNpbmNsdWRlICJEYXRlVGltZUNob29zZXJDbGllbnQuaCIKKyNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxh
bmd1YWdlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKICNpbmNsdWRlICJQaWNrZXJDb21tb24uaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5o
IgorI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+
CiAjaW5jbHVkZSA8cHVibGljL1dlYkxvY2FsaXplZFN0cmluZy5oPgogCkBAIC04OSw2ICs5MSwx
MCBAQCB2b2lkIERhdGVUaW1lQ2hvb3NlckltcGw6OndyaXRlRG9jdW1lbnQoV2ViQ29yZTo6RG9j
dW1lbnRXcml0ZXImIHdyaXRlcikKICAgICBTdHJpbmcgc3RlcFN0cmluZyA9IFN0cmluZzo6bnVt
YmVyKG1fcGFyYW1ldGVycy5zdGVwKTsKICAgICBTdHJpbmcgc3RlcEJhc2VTdHJpbmcgPSBTdHJp
bmc6Om51bWJlcihtX3BhcmFtZXRlcnMuc3RlcEJhc2UsIDExLCBXVEY6OlRydW5jYXRlVHJhaWxp
bmdaZXJvcyk7CiAgICAgT3duUHRyPExvY2FsaXplcj4gbG9jYWxpemVyID0gTG9jYWxpemVyOjpj
cmVhdGUobnVsbEF0b20pOworICAgIEludFJlY3QgYW5jaG9yUmVjdEluU2NyZWVuID0gbV9jaHJv
bWVDbGllbnQtPnJvb3RWaWV3VG9TY3JlZW4obV9wYXJhbWV0ZXJzLmFuY2hvclJlY3RJblJvb3RW
aWV3KTsKKyAgICBGcmFtZVZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxXZWJWaWV3SW1wbCo+KG1f
Y2hyb21lQ2xpZW50LT53ZWJWaWV3KCkpLT5wYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCk7Cisg
ICAgSW50UmVjdCByb290Vmlld1Zpc2libGVDb250ZW50UmVjdCA9IHZpZXctPnZpc2libGVDb250
ZW50UmVjdCh0cnVlIC8qIGluY2x1ZGUgc2Nyb2xsYmFycyAqLyk7CisgICAgSW50UmVjdCByb290
Vmlld1JlY3RJblNjcmVlbiA9IG1fY2hyb21lQ2xpZW50LT5yb290Vmlld1RvU2NyZWVuKHJvb3RW
aWV3VmlzaWJsZUNvbnRlbnRSZWN0KTsKIAogICAgIGFkZFN0cmluZygiPCFET0NUWVBFIGh0bWw+
PGhlYWQ+PG1ldGEgY2hhcnNldD0nVVRGLTgnPjxzdHlsZT5cbiIsIHdyaXRlcik7CiAgICAgd3Jp
dGVyLmFkZERhdGEoV2ViQ29yZTo6cGlja2VyQ29tbW9uQ3NzLCBzaXplb2YoV2ViQ29yZTo6cGlj
a2VyQ29tbW9uQ3NzKSk7CkBAIC05OSw2ICsxMDUsMTMgQEAgdm9pZCBEYXRlVGltZUNob29zZXJJ
bXBsOjp3cml0ZURvY3VtZW50KFdlYkNvcmU6OkRvY3VtZW50V3JpdGVyJiB3cml0ZXIpCiAgICAg
ICAgIHdyaXRlci5hZGREYXRhKGV4dHJhU3R5bGUuZGF0YSgpLCBleHRyYVN0eWxlLmxlbmd0aCgp
KTsKICAgICBhZGRTdHJpbmcoIjwvc3R5bGU+PC9oZWFkPjxib2R5PjxkaXYgaWQ9bWFpbj5Mb2Fk
aW5nLi4uPC9kaXY+PHNjcmlwdD5cbiIKICAgICAgICAgICAgICAgICJ3aW5kb3cuZGlhbG9nQXJn
dW1lbnRzID0ge1xuIiwgd3JpdGVyKTsKKyAgICBhZGRQcm9wZXJ0eSgiYW5jaG9yUmVjdEluU2Ny
ZWVuIiwgYW5jaG9yUmVjdEluU2NyZWVuLCB3cml0ZXIpOworICAgIGFkZFByb3BlcnR5KCJyb290
Vmlld1JlY3RJblNjcmVlbiIsIHJvb3RWaWV3UmVjdEluU2NyZWVuLCB3cml0ZXIpOworI2lmIE9T
KE1BQ19PU19YKQorICAgIGFkZFByb3BlcnR5KCJjb25maW5lVG9Sb290VmlldyIsIHRydWUsIHdy
aXRlcik7CisjZWxzZQorICAgIGFkZFByb3BlcnR5KCJjb25maW5lVG9Sb290VmlldyIsIGZhbHNl
LCB3cml0ZXIpOworI2VuZGlmCiAgICAgYWRkUHJvcGVydHkoIm1pbiIsIG1pblN0cmluZywgd3Jp
dGVyKTsKICAgICBhZGRQcm9wZXJ0eSgibWF4IiwgbWF4U3RyaW5nLCB3cml0ZXIpOwogICAgIGFk
ZFByb3BlcnR5KCJzdGVwIiwgc3RlcFN0cmluZywgd3JpdGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKaW5kZXggMWUwZmNlYmI1MjlmZjAy
ZTFhMDA5YWFmNWI3NDgxZWNlZjEwY2M2Ny4uZTQ4MDhmZDcwNmZhOTAwNjlmZTFjMmZmZTNlMWMx
ODllZDAxN2U5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFn
ZVBvcHVwSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBv
cHVwSW1wbC5jcHAKQEAgLTE1MSwxNSArMTUxLDE0IEBAIFdlYlBhZ2VQb3B1cEltcGw6On5XZWJQ
YWdlUG9wdXBJbXBsKCkKICAgICBBU1NFUlQoIW1fcGFnZSk7CiB9CiAKLWJvb2wgV2ViUGFnZVBv
cHVwSW1wbDo6aW5pdChXZWJWaWV3SW1wbCogd2ViVmlldywgUGFnZVBvcHVwQ2xpZW50KiBwb3B1
cENsaWVudCwgY29uc3QgSW50UmVjdCYgb3JpZ2luQm91bmRzSW5Sb290VmlldykKK2Jvb2wgV2Vi
UGFnZVBvcHVwSW1wbDo6aW5pdChXZWJWaWV3SW1wbCogd2ViVmlldywgUGFnZVBvcHVwQ2xpZW50
KiBwb3B1cENsaWVudCwgY29uc3QgSW50UmVjdCYpCiB7CiAgICAgQVNTRVJUKHdlYlZpZXcpOwog
ICAgIEFTU0VSVChwb3B1cENsaWVudCk7CiAgICAgbV93ZWJWaWV3ID0gd2ViVmlldzsKICAgICBt
X3BvcHVwQ2xpZW50ID0gcG9wdXBDbGllbnQ7Ci0gICAgbV9vcmlnaW5Cb3VuZHNJblJvb3RWaWV3
ID0gb3JpZ2luQm91bmRzSW5Sb290VmlldzsKIAotICAgIHJlcG9zaXRpb24obV9wb3B1cENsaWVu
dC0+Y29udGVudFNpemUoKSk7CisgICAgcmVzaXplKG1fcG9wdXBDbGllbnQtPmNvbnRlbnRTaXpl
KCkpOwogCiAgICAgaWYgKCFpbml0UGFnZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0y
MzMsMjIgKzIzMiwxMCBAQCB2b2lkIFdlYlBhZ2VQb3B1cEltcGw6OnBhaW50KFdlYkNhbnZhcyog
Y2FudmFzLCBjb25zdCBXZWJSZWN0JiByZWN0LCBQYWludE9wdGlvbgogICAgIFBhZ2VXaWRnZXRE
ZWxlZ2F0ZTo6cGFpbnQobV9wYWdlLmdldCgpLCAwLCBjYW52YXMsIHJlY3QsIFBhZ2VXaWRnZXRE
ZWxlZ2F0ZTo6T3BhcXVlKTsKIH0KIAotdm9pZCBXZWJQYWdlUG9wdXBJbXBsOjpyZXBvc2l0aW9u
KGNvbnN0IFdlYlNpemUmIHBvcHVwU2l6ZSkKLXsKLSAgICBXZWJTaXplIHJvb3RWaWV3U2l6ZSA9
IG1fd2ViVmlldy0+c2l6ZSgpOwotICAgIEludFJlY3QgcG9wdXBCb3VuZHNJblJvb3RWaWV3KElu
dFBvaW50KG1heCgwLCBtX29yaWdpbkJvdW5kc0luUm9vdFZpZXcueCgpKSwgbWF4KDAsIG1fb3Jp
Z2luQm91bmRzSW5Sb290Vmlldy5tYXhZKCkpKSwgcG9wdXBTaXplKTsKLSAgICBpZiAocG9wdXBC
b3VuZHNJblJvb3RWaWV3Lm1heFkoKSA+IHJvb3RWaWV3U2l6ZS5oZWlnaHQpCi0gICAgICAgIHBv
cHVwQm91bmRzSW5Sb290Vmlldy5zZXRZKG1heCgwLCBtX29yaWdpbkJvdW5kc0luUm9vdFZpZXcu
eSgpIC0gcG9wdXBTaXplLmhlaWdodCkpOwotICAgIGlmIChwb3B1cEJvdW5kc0luUm9vdFZpZXcu
bWF4WCgpID4gcm9vdFZpZXdTaXplLndpZHRoKQotICAgICAgICBwb3B1cEJvdW5kc0luUm9vdFZp
ZXcuc2V0WChtYXgoMCwgcm9vdFZpZXdTaXplLndpZHRoIC0gcG9wdXBTaXplLndpZHRoKSk7Ci0g
ICAgSW50UmVjdCBib3VuZHNJblNjcmVlbiA9IG1fd2ViVmlldy0+cGFnZSgpLT5jaHJvbWUoKS0+
cm9vdFZpZXdUb1NjcmVlbihwb3B1cEJvdW5kc0luUm9vdFZpZXcpOwotICAgIG1fd2lkZ2V0Q2xp
ZW50LT5zZXRXaW5kb3dSZWN0KGJvdW5kc0luU2NyZWVuKTsKLSAgICBtX3dpbmRvd1JlY3RJblNj
cmVlbiA9IGJvdW5kc0luU2NyZWVuOwotfQotCiB2b2lkIFdlYlBhZ2VQb3B1cEltcGw6OnJlc2l6
ZShjb25zdCBXZWJTaXplJiBuZXdTaXplKQogewotICAgIHJlcG9zaXRpb24obmV3U2l6ZSk7Cisg
ICAgbV93aW5kb3dSZWN0SW5TY3JlZW4gPSBXZWJSZWN0KG1fd2luZG93UmVjdEluU2NyZWVuLngs
IG1fd2luZG93UmVjdEluU2NyZWVuLnksIG5ld1NpemUud2lkdGgsIG5ld1NpemUuaGVpZ2h0KTsK
KyAgICBtX3dpZGdldENsaWVudC0+c2V0V2luZG93UmVjdChtX3dpbmRvd1JlY3RJblNjcmVlbik7
CiAKICAgICBpZiAobV9wYWdlKQogICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkt
PnJlc2l6ZShuZXdTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlBhZ2VQb3B1cEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQ
b3B1cEltcGwuaAppbmRleCBlNjg0NGJmZDA2YTQ5OGJkYjUwZGI4MTkwNmQ5NmU0YWUxNWRiNGE0
Li5jZjJiYmJhNzg3MmQ1YTljZDQ5YzQ0NzczY2RjMWMyNGY3ZmMxZjczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5oCkBAIC04NywxMSArODcsOSBA
QCBwcml2YXRlOgogCiAgICAgZXhwbGljaXQgV2ViUGFnZVBvcHVwSW1wbChXZWJXaWRnZXRDbGll
bnQqKTsKICAgICBib29sIGluaXRQYWdlKCk7Ci0gICAgdm9pZCByZXBvc2l0aW9uKGNvbnN0IFdl
YlNpemUmKTsKIAogICAgIFdlYldpZGdldENsaWVudCogbV93aWRnZXRDbGllbnQ7CiAgICAgV2Vi
UmVjdCBtX3dpbmRvd1JlY3RJblNjcmVlbjsKLSAgICBXZWJDb3JlOjpJbnRSZWN0IG1fb3JpZ2lu
Qm91bmRzSW5Sb290VmlldzsKICAgICBXZWJWaWV3SW1wbCogbV93ZWJWaWV3OwogICAgIE93blB0
cjxXZWJDb3JlOjpQYWdlPiBtX3BhZ2U7CiAgICAgT3duUHRyPFBhZ2VQb3B1cENocm9tZUNsaWVu
dD4gbV9jaHJvbWVDbGllbnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDgwYmJlMzFmZDQ0M2M2NGFmNzEzMWQxMzdjYTlk
NGMzYWVjOTdkNS4uMzk3ZWIwMWIyYzI2MTMwYTY2NTBiNTA1ZDVkNmU3NjczMzIwZWFjZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEwLTA1ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3
ZWJraXQub3JnPgorCisgICAgICAgIFBhZ2UgcG9wdXAgc2hvdWxkIGJlIHNtYXJ0ZXIgYWJvdXQg
aXRzIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTg0OTkKKworICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KKworICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvcGFnZS1wb3B1cC9wYWdlLXBvcHVwLWFkanVz
dC1yZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
ZmFzdC9mb3Jtcy9wYWdlLXBvcHVwL3BhZ2UtcG9wdXAtYWRqdXN0LXJlY3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tYW5kcm9pZC9UZXN0RXhwZWN0YXRpb25zOiBB
ZGRlZCBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3BhZ2UtcG9wdXAuCisKIDIwMTItMTAt
MDggIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBpbWFnZSBub3Qg
ZGlzcGxheWVkIGluIGZsZXhib3gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWFuZHJvaWQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWFuZHJvaWQvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1YzMzM2FkZjVmN2NkMzYyYWNj
NjFiZWZmOGE5MWZkZjQ0MWRmZTdkLi4yMDU3YWFhOGQ4YjUyNjYzNWFkMWFiN2FhMDI4Nzk0MjA0
YzQ5ZjU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1hbmRyb2lk
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tYW5k
cm9pZC9UZXN0RXhwZWN0YXRpb25zCkBAIC04MiwzICs4Miw2IEBAIGZhc3QvZm9ybXMvZGF0ZS1t
dWx0aXBsZS1maWVsZHMgWyBXb250Rml4IF0KIGZhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmll
bGRzIFsgV29udEZpeCBdCiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzIFsgV29udEZp
eCBdCiBmYXN0L2Zvcm1zL3dlZWstbXVsdGlwbGUtZmllbGRzIFsgV29udEZpeCBdCisKKyMgUGFn
ZSBwb3B1cCBVSSBpcyBmb3IgZGVza3RvcCBwbGF0Zm9ybXMKK3BsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZm9ybXMvcGFnZS1wb3B1cCBbIFdvbnRGaXggXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9wYWdlLXBvcHVwL3BhZ2UtcG9wdXAtYWRqdXN0
LXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9m
b3Jtcy9wYWdlLXBvcHVwL3BhZ2UtcG9wdXAtYWRqdXN0LXJlY3QtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU1ZmEwMjQ4NzJlYTFjY2Q3ZTliNzhlZjBlYmUyNmQ0ZDg1OGU0MWIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3BhZ2Ut
cG9wdXAvcGFnZS1wb3B1cC1hZGp1c3QtcmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2OSBA
QAorVGVzdCBmb3IgY2hpbGQgZWxlbWVudHMgb2YgYSBkYXRhbGlzdCBlbGVtZW50LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworTW92ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUg
dmVydGljYWwgYXhpcy4KK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAs
IDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsMTApIgorUEFTUyBwb3B1cFdpbmRv
dy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDAs
MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwg
MTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFk
anVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwyMCwz
MCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTAp
LnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwzMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVz
dFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw0MCwzMCwx
MCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRv
U3RyaW5nKCkgaXMgIlJlY3QoMCw1MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdp
bmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw0MCwzMCwxMCki
CitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3Ry
aW5nKCkgaXMgIlJlY3QoMCw1MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRv
d1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCw1MCwzMCwxMCkiCitQ
QVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5n
KCkgaXMgIlJlY3QoMCw1MCwzMCwxMCkiCitNb3ZlIGFuY2hvciBlbGVtZW50IGFsb25nIHRoZSBo
b3Jpem9udGFsIGF4aXMuCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEw
LCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2lu
ZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3Qo
MCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAz
MCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93
LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwx
MCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwg
MTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFk
anVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMTAsMTAs
MzAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEw
KS50b1N0cmluZygpIGlzICJSZWN0KDIwLDEwLDMwLDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRq
dXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgzMCwxMCwz
MCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTAp
LnRvU3RyaW5nKCkgaXMgIlJlY3QoNDAsMTAsMzAsMTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1
c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDUwLDEwLDMw
LDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCku
dG9TdHJpbmcoKSBpcyAiUmVjdCg1MCwxMCwzMCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVz
dFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoNTAsMTAsMzAs
MTApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50
b1N0cmluZygpIGlzICJSZWN0KDUwLDEwLDMwLDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0
V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCg1MCwxMCwzMCwx
MCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRv
U3RyaW5nKCkgaXMgIlJlY3QoNTAsMTAsMzAsMTApIgorTW92ZSBhbmNob3IgZWxlbWVudCBhbG9u
ZyB0aGUgdmVydGljYWwgYXhpcy4gT3BlbiBwb3B1cCB0aGF0IGlzIHRvbyB0YWxsLgorUEFTUyBw
b3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCkg
aXMgIlJlY3QoMCwwLDMwLDYwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgz
MCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCw2MCkiCitQQVNTIHBv
cHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKSBp
cyAiUmVjdCgwLDEwLDMwLDUwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgz
MCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMjAsMzAsNDApIgorUEFTUyBw
b3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCkg
aXMgIlJlY3QoMCwzMCwzMCwzMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3Qo
MzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsMzApIgorUEFTUyBw
b3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCkg
aXMgIlJlY3QoMCwwLDMwLDQwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgz
MCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCw1MCkiCitQQVNTIHBv
cHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKSBp
cyAiUmVjdCgwLDAsMzAsNjApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMw
LCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDYwKSIKK1BBU1MgcG9w
dXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpIGlz
ICJSZWN0KDAsMCwzMCw2MCkiCitNb3ZlIGFuY2hvciBlbGVtZW50IGFsb25nIHRoZSB2ZXJ0aWNh
bCBheGlzLiBPcGVuIHBvcHVwIHRoYXQgaXMgdG9vIHRhbGwgYW5kIHdvbid0IHNocmluay4KK1BB
U1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3Ry
aW5nKCkgaXMgIlJlY3QoMCwwLDMwLDEwMDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5k
b3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsMTAw
MCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMDAw
KS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCwxMDAwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRq
dXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCww
LDMwLDEwMDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAz
MCwgMTAwMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAsMTAwMCkiCitQQVNTIHBvcHVwV2lu
ZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0cmluZygpIGlzICJS
ZWN0KDAsMCwzMCwxMDAwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwg
MTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDEwMDApIgorUEFTUyBw
b3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJpbmco
KSBpcyAiUmVjdCgwLDAsMzAsMTAwMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1Jl
Y3QoMzAsIDEwMDAsIDMwLCAxMDAwKS50b1N0cmluZygpIGlzICJSZWN0KDAsMCwzMCwxMDAwKSIK
K1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRv
U3RyaW5nKCkgaXMgIlJlY3QoMCwwLDMwLDEwMDApIgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RX
aW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgwLDAsMzAs
MTAwMCkiCitHcm93IHBvcHVwIHdpZHRoLgorUEFTUyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dS
ZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpIGlzICJSZWN0KDMwLDEwLDMwLDEwKSIKK1BB
U1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCg0MCwgMTAsIDQwLCAxMCkudG9TdHJpbmco
KSBpcyAiUmVjdCgzMCwxMCw0MCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1Jl
Y3QoNTAsIDEwLCA1MCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMzAsMTAsNTAsMTApIgorUEFT
UyBwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDYwLCAxMCwgNjAsIDEwKS50b1N0cmluZygp
IGlzICJSZWN0KDIwLDEwLDYwLDEwKSIKK1BBU1MgcG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVj
dCg3MCwgMTAsIDcwLCAxMCkudG9TdHJpbmcoKSBpcyAiUmVjdCgxMCwxMCw3MCwxMCkiCitQQVNT
IHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoODAsIDEwLCA4MCwgMTApLnRvU3RyaW5nKCkg
aXMgIlJlY3QoMCwxMCw4MCwxMCkiCitQQVNTIHBvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3Qo
OTAsIDEwLCA5MCwgMTApLnRvU3RyaW5nKCkgaXMgIlJlY3QoMCwxMCw5MCwxMCkiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvcGFnZS1wb3B1cC9wYWdl
LXBvcHVwLWFkanVzdC1yZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9m
YXN0L2Zvcm1zL3BhZ2UtcG9wdXAvcGFnZS1wb3B1cC1hZGp1c3QtcmVjdC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJkY2E4ODg1NGM3MTMyNzVjMTJjNjc3YjhhZGZjZjFjNGU2YzQ3ZjgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3BhZ2UtcG9w
dXAvcGFnZS1wb3B1cC1hZGp1c3QtcmVjdC5odG1sCkBAIC0wLDAgKzEsMjIzIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uLy4uLy4uL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vZmFzdC9mb3Jtcy9kYXRlL2NhbGVuZGFyLXBpY2tl
ci1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8aW5wdXQgdHlwZT0iZGF0ZSIg
aWQ9ImRhdGUiPgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3QgZm9yIGNoaWxkIGVsZW1l
bnRzIG9mIGEgZGF0YWxpc3QgZWxlbWVudC4nKTsKKworb3BlblBpY2tlcihkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnZGF0ZScpKTsKKworcG9wdXBXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVz
aXplIiwgdGVzdCwgZmFsc2UpOworCitmdW5jdGlvbiBtYWtlUmVjdCh4LCB5LCB3aWR0aCwgaGVp
Z2h0KSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgeDogeCwKKyAgICAgICAgeTogeSwKKyAgICAg
ICAgd2lkdGg6IHdpZHRoLAorICAgICAgICBoZWlnaHQ6IGhlaWdodAorICAgIH07Cit9CisKK2Z1
bmN0aW9uIHRlc3QoKSB7CisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5jb25maW5lVG9S
b290VmlldyA9IGZhbHNlOworICAgIHBvcHVwV2luZG93LnNjcmVlbiA9IHsKKyAgICAgICAgd2lk
dGg6IDgwLAorICAgICAgICBoZWlnaHQ6IDYwLAorICAgICAgICBhdmFpbExlZnQ6IDAsCisgICAg
ICAgIGF2YWlsVG9wOiAwLAorICAgICAgICBhdmFpbFdpZHRoOiA4MCwKKyAgICAgICAgYXZhaWxI
ZWlnaHQ6IDYwLAorICAgIH07CisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5yb290Vmll
d1JlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDAsIDgwLCA2MCk7CisKKyAgICBkZWJ1ZygiTW92
ZSBhbmNob3IgZWxlbWVudCBhbG9uZyB0aGUgdmVydGljYWwgYXhpcy4iKTsKKworICAgIHBvcHVw
V2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgLTIw
LCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0
V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDAsMCwzMCwxMCkn
KTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0g
bWFrZVJlY3QoMCwgLTEwLCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9w
dXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICdS
ZWN0KDAsMCwzMCwxMCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9y
UmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRv
U3RyaW5nKCknLCAnUmVjdCgwLDEwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFs
LnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAxMCwgMjAsIDEwKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAs
IDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDIwLDMwLDEwKScpOworCisgICAgcG9w
dXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAy
MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVz
dFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDMwLDMwLDEw
KScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4g
PSBtYWtlUmVjdCgwLCAzMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Bv
cHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAn
UmVjdCgwLDQwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNo
b3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA0MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTAp
LnRvU3RyaW5nKCknLCAnUmVjdCgwLDUwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xv
YmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA1MCwgMjAsIDEwKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3Qo
MzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDQwLDMwLDEwKScpOworCisgICAg
cG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgw
LCA2MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFk
anVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDUwLDMw
LDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3Jl
ZW4gPSBtYWtlUmVjdCgwLCA3MCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCkn
LCAnUmVjdCgwLDUwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5h
bmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA4MCwgMjAsIDEwKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwg
MTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDUwLDMwLDEwKScpOworCisgICAgZGVidWcoIk1vdmUg
YW5jaG9yIGVsZW1lbnQgYWxvbmcgdGhlIGhvcml6b250YWwgYXhpcy4iKTsKKworICAgIHBvcHVw
V2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoLTQwLCAw
LCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0
V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDAsMTAsMzAsMTAp
Jyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9
IG1ha2VSZWN0KC0zMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Bv
cHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAn
UmVjdCgwLDEwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNo
b3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgtMjAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEw
KS50b1N0cmluZygpJywgJ1JlY3QoMCwxMCwzMCwxMCknKTsKKworICAgIHBvcHVwV2luZG93Lmds
b2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoLTEwLCAwLCAyMCwgMTAp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVj
dCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDAsMTAsMzAsMTApJyk7CisKKyAg
ICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0
KDAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5h
ZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoMCwxMCwz
MCwxMCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2Ny
ZWVuID0gbWFrZVJlY3QoMTAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygp
JywgJ1JlY3QoMTAsMTAsMzAsMTApJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1z
LmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDIwLCAwLCAyMCwgMTApOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMw
LCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDIwLDEwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5k
b3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgzMCwgMCwgMjAs
IDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRv
d1JlY3QoMzAsIDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgzMCwxMCwzMCwxMCknKTsK
KworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFr
ZVJlY3QoNDAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdp
bmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJ1JlY3Qo
NDAsMTAsMzAsMTApJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJl
Y3RJblNjcmVlbiA9IG1ha2VSZWN0KDUwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9T
dHJpbmcoKScsICdSZWN0KDUwLDEwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFs
LnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCg2MCwgMCwgMjAsIDEwKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAs
IDEwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCg1MCwxMCwzMCwxMCknKTsKKworICAgIHBv
cHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoNzAs
IDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1
c3RXaW5kb3dSZWN0KDMwLCAxMCwgMzAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoNTAsMTAsMzAs
MTApJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVl
biA9IG1ha2VSZWN0KDgwLCAwLCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
cG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScs
ICdSZWN0KDUwLDEwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5h
bmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCg5MCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwLCAzMCwg
MTApLnRvU3RyaW5nKCknLCAnUmVjdCg1MCwxMCwzMCwxMCknKTsKKworICAgIHBvcHVwV2luZG93
Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMTAwLCAwLCAyMCwg
MTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93
UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDUwLDEwLDMwLDEwKScpOwor
CisgICAgZGVidWcoIk1vdmUgYW5jaG9yIGVsZW1lbnQgYWxvbmcgdGhlIHZlcnRpY2FsIGF4aXMu
IE9wZW4gcG9wdXAgdGhhdCBpcyB0b28gdGFsbC4iKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2Jh
bC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgLTIwLCAyMCwgMTApOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgz
MCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoMCwwLDMwLDYwKScpOworCisgICAg
cG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgw
LCAtMTAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5h
ZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAs
MzAsNjApJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNj
cmVlbiA9IG1ha2VSZWN0KDAsIDAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5n
KCknLCAnUmVjdCgwLDEwLDMwLDUwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFt
cy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAxMCwgMjAsIDEwKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAs
IDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDAsMjAsMzAsNDApJyk7CisKKyAgICBwb3B1cFdp
bmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDIwLCAy
MCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2lu
ZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoMCwzMCwzMCwzMCkn
KTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0g
bWFrZVJlY3QoMCwgMzAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1
cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAn
UmVjdCgwLDAsMzAsMzApJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hv
clJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDQwLCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEw
KS50b1N0cmluZygpJywgJ1JlY3QoMCwwLDMwLDQwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xv
YmFsLnBhcmFtcy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA1MCwgMjAsIDEwKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3Qo
MzAsIDEwMDAsIDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDAsMCwzMCw1MCknKTsKKworICAg
IHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3Qo
MCwgNjAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5h
ZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAs
MzAsNjApJyk7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNj
cmVlbiA9IG1ha2VSZWN0KDAsIDcwLCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwKS50b1N0cmlu
ZygpJywgJ1JlY3QoMCwwLDMwLDYwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFt
cy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA4MCwgMjAsIDEwKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAs
IDMwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDAsMCwzMCw2MCknKTsKKworICAgIGRlYnVnKCJN
b3ZlIGFuY2hvciBlbGVtZW50IGFsb25nIHRoZSB2ZXJ0aWNhbCBheGlzLiBPcGVuIHBvcHVwIHRo
YXQgaXMgdG9vIHRhbGwgYW5kIHdvbid0IHNocmluay4iKTsKKworICAgIHBvcHVwV2luZG93Lmds
b2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgLTIwLCAyMCwgMTAp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVj
dCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAsMzAsMTAwMCknKTsK
KworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFr
ZVJlY3QoMCwgLTEwLCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBX
aW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAn
UmVjdCgwLDAsMzAsMTAwMCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5j
aG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMCwgMCwgMjAsIDEwKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMwLCAx
MDAwKS50b1N0cmluZygpJywgJ1JlY3QoMCwwLDMwLDEwMDApJyk7CisKKyAgICBwb3B1cFdpbmRv
dy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDEwLCAyMCwg
MTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2luZG93
UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAsMzAsMTAwMCkn
KTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0g
bWFrZVJlY3QoMCwgMjAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1
cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJpbmcoKScs
ICdSZWN0KDAsMCwzMCwxMDAwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5h
bmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCAzMCwgMjAsIDEwKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAsIDMw
LCAxMDAwKS50b1N0cmluZygpJywgJ1JlY3QoMCwwLDMwLDEwMDApJyk7CisKKyAgICBwb3B1cFdp
bmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDQwLCAy
MCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0V2lu
ZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAsMzAsMTAw
MCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVu
ID0gbWFrZVJlY3QoMCwgNTAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdw
b3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJpbmco
KScsICdSZWN0KDAsMCwzMCwxMDAwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFt
cy5hbmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgwLCA2MCwgMjAsIDEwKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoMzAsIDEwMDAs
IDMwLCAxMDAwKS50b1N0cmluZygpJywgJ1JlY3QoMCwwLDMwLDEwMDApJyk7CisKKyAgICBwb3B1
cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VSZWN0KDAsIDcw
LCAyMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5kb3cuYWRqdXN0
V2luZG93UmVjdCgzMCwgMTAwMCwgMzAsIDEwMDApLnRvU3RyaW5nKCknLCAnUmVjdCgwLDAsMzAs
MTAwMCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2Ny
ZWVuID0gbWFrZVJlY3QoMCwgODAsIDIwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDMwLCAxMDAwLCAzMCwgMTAwMCkudG9TdHJp
bmcoKScsICdSZWN0KDAsMCwzMCwxMDAwKScpOworCisgICAgZGVidWcoIkdyb3cgcG9wdXAgd2lk
dGguIik7CisKKyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVl
biA9IG1ha2VSZWN0KDMwLCAwLCAzMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
cG9wdXBXaW5kb3cuYWRqdXN0V2luZG93UmVjdCgzMCwgMTAsIDMwLCAxMCkudG9TdHJpbmcoKScs
ICdSZWN0KDMwLDEwLDMwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5h
bmNob3JSZWN0SW5TY3JlZW4gPSBtYWtlUmVjdCgzMCwgMCwgMzAsIDEwKTsKKyAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoNDAsIDEwLCA0MCwg
MTApLnRvU3RyaW5nKCknLCAnUmVjdCgzMCwxMCw0MCwxMCknKTsKKworICAgIHBvcHVwV2luZG93
Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMzAsIDAsIDMwLCAx
MCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dS
ZWN0KDUwLCAxMCwgNTAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoMzAsMTAsNTAsMTApJyk7CisK
KyAgICBwb3B1cFdpbmRvdy5nbG9iYWwucGFyYW1zLmFuY2hvclJlY3RJblNjcmVlbiA9IG1ha2VS
ZWN0KDMwLCAwLCAzMCwgMTApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygncG9wdXBXaW5k
b3cuYWRqdXN0V2luZG93UmVjdCg2MCwgMTAsIDYwLCAxMCkudG9TdHJpbmcoKScsICdSZWN0KDIw
LDEwLDYwLDEwKScpOworCisgICAgcG9wdXBXaW5kb3cuZ2xvYmFsLnBhcmFtcy5hbmNob3JSZWN0
SW5TY3JlZW4gPSBtYWtlUmVjdCgzMCwgMCwgMzAsIDEwKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3BvcHVwV2luZG93LmFkanVzdFdpbmRvd1JlY3QoNzAsIDEwLCA3MCwgMTApLnRvU3Ry
aW5nKCknLCAnUmVjdCgxMCwxMCw3MCwxMCknKTsKKworICAgIHBvcHVwV2luZG93Lmdsb2JhbC5w
YXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMzAsIDAsIDMwLCAxMCk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RXaW5kb3dSZWN0KDgwLCAx
MCwgODAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoMCwxMCw4MCwxMCknKTsKKworICAgIHBvcHVw
V2luZG93Lmdsb2JhbC5wYXJhbXMuYW5jaG9yUmVjdEluU2NyZWVuID0gbWFrZVJlY3QoMzAsIDAs
IDMwLCAxMCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdwb3B1cFdpbmRvdy5hZGp1c3RX
aW5kb3dSZWN0KDkwLCAxMCwgOTAsIDEwKS50b1N0cmluZygpJywgJ1JlY3QoMCwxMCw5MCwxMCkn
KTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>