<?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>83742</bug_id>
          
          <creation_ts>2012-04-11 20:03:18 -0700</creation_ts>
          <short_desc>Implement DataList UI for chromium</short_desc>
          <delta_ts>2013-03-28 01:27:28 -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>
          <dependson>83762</dependson>
    
    <dependson>83777</dependson>
          <blocked>27247</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>abarth</cc>
    
    <cc>darby.webkit</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>syoichi</cc>
    
    <cc>tkent</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>600824</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-04-11 20:03:18 -0700</bug_when>
    <thetext>Show datalist suggestions in a popup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600870</commentid>
    <comment_count>1</comment_count>
      <attachid>136823</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-04-11 21:46:43 -0700</bug_when>
    <thetext>Created attachment 136823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600871</commentid>
    <comment_count>2</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-04-11 21:47:54 -0700</bug_when>
    <thetext>isherman@ reviewed it
http://codereview.chromium.org/10037002/

chromium part is here
http://codereview.chromium.org/10024059/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600989</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-12 01:22:50 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600990</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-12 01:23:12 -0700</bug_when>
    <thetext>Attachment 136823 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/chromium/ChangeLog&apos;, u&apos;Sourc...&quot; exit_code: 1
Source/WebKit/chromium/src/AutofillPopupMenuClient.cpp:102:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Source/WebKit/chromium/src/WebInputElement.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/chromium/public/WebInputElement.h:42:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 3 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600992</commentid>
    <comment_count>5</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-04-12 01:26:05 -0700</bug_when>
    <thetext>Oops, I uploaded an old patch. I will upload a new one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600994</commentid>
    <comment_count>6</comment_count>
      <attachid>136823</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-12 01:28:06 -0700</bug_when>
    <thetext>Comment on attachment 136823
Patch

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

&gt; Source/WebKit/chromium/ChangeLog:8
&gt; +        Implement DataList UI for chromium
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=83742
&gt; +
&gt; +        Expose HTMLDataListElement in the WebKitAPI.
&gt; +        Introduce MenuItemIDs.
&gt; +

This patch doesn&apos;t implement the UI, do it? The summary looks not concrete.

I think adding WebDataListElement and the autofill-related changes should be separated patches.
Also, you should explain why you&apos;d like to make these changes in ChangeLog.

&gt; Source/WebKit/chromium/public/WebAutofillClient.h:36
&gt; +enum {

This should be put inside of WebAutofillClient class.

&gt; Source/WebKit/chromium/public/WebAutofillClient.h:62
&gt; -                                             int uniqueID,
&gt; +                                             int itemID,

You have to update the explanation of uniqueID in the comment.

&gt; Source/WebKit/chromium/public/WebDataListElement.h:44
&gt; +// Provides readonly access to some properties of a DOM input element node.

input -&gt; datalist</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600997</commentid>
    <comment_count>7</comment_count>
      <attachid>136849</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-04-12 01:29:56 -0700</bug_when>
    <thetext>Created attachment 136849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601015</commentid>
    <comment_count>8</comment_count>
      <attachid>136849</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-12 01:54:49 -0700</bug_when>
    <thetext>Comment on attachment 136849
Patch

Attachment 136849 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12387587</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601185</commentid>
    <comment_count>9</comment_count>
      <attachid>136897</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-04-12 06:54:30 -0700</bug_when>
    <thetext>Created attachment 136897
Reverted indentation fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617118</commentid>
    <comment_count>10</comment_count>
    <who name="">darby.webkit</who>
    <bug_when>2012-05-06 10:09:41 -0700</bug_when>
    <thetext>Complete newbie to webkit bugzilla here, so I hope I&apos;m not committing any transgressions.  Thanks so much for all your work on this.  Just wanted to point out that this doesn&apos;t seem to be working for input elements with the &apos;email&apos; type (but does for those with &apos;tel&apos;, &apos;url&apos;, or &apos;search&apos;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617236</commentid>
    <comment_count>11</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-05-06 17:24:26 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Complete newbie to webkit bugzilla here, so I hope I&apos;m not committing any transgressions.  Thanks so much for all your work on this.  Just wanted to point out that this doesn&apos;t seem to be working for input elements with the &apos;email&apos; type (but does for those with &apos;tel&apos;, &apos;url&apos;, or &apos;search&apos;).

Thanks! Datalist for email type is disabled intensionally because we are still working on it.
https://bugs.webkit.org/show_bug.cgi?id=84346</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617318</commentid>
    <comment_count>12</comment_count>
    <who name="">darby.webkit</who>
    <bug_when>2012-05-06 20:04:48 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Complete newbie to webkit bugzilla here, so I hope I&apos;m not committing any transgressions.  Thanks so much for all your work on this.  Just wanted to point out that this doesn&apos;t seem to be working for input elements with the &apos;email&apos; type (but does for those with &apos;tel&apos;, &apos;url&apos;, or &apos;search&apos;).
&gt; 
&gt; Thanks! Datalist for email type is disabled intensionally because we are still working on it.
&gt; https://bugs.webkit.org/show_bug.cgi?id=84346

Ah, apologies for missing that.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865241</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-03-28 01:27:28 -0700</bug_when>
    <thetext>done</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136823</attachid>
            <date>2012-04-11 21:46:43 -0700</date>
            <delta_ts>2012-04-12 01:29:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>datalist-g.diff</filename>
            <type>text/plain</type>
            <size>24774</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZmI1OWMzOS4uNTg2NWUxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAxMi0wNC0xMSAgS2Vpc2hpIEhh
dHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgRGF0YUxpc3Qg
VUkgZm9yIGNocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04Mzc0MgorCisgICAgICAgIEV4cG9zZSBIVE1MRGF0YUxpc3RFbGVtZW50IGluIHRo
ZSBXZWJLaXRBUEkuCisgICAgICAgIEludHJvZHVjZSBNZW51SXRlbUlEcy4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6IEFkZGVk
IFdlYkRhdGFMaXN0RWxlbWVudC57Y3BwLGh9CisgICAgICAgICogcHVibGljL1dlYkF1dG9maWxs
Q2xpZW50Lmg6IEFkZGVkIGVudW0gZm9yIE1lbnVJdGVtSUQuCisgICAgICAgIChXZWJLaXQ6Oldl
YkF1dG9maWxsQ2xpZW50OjpkaWRBY2NlcHRBdXRvZmlsbFN1Z2dlc3Rpb24pOiBDaGFuZ2VkIHVu
aXF1ZUlEIHRvIGl0ZW1JRC4gUG9zaXRpdmUgaXRlbUlEcyBhcmUgdW5pcXVlSURzLgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkU2VsZWN0QXV0b2ZpbGxTdWdnZXN0aW9u
KTogQ2hhbmdlZCB1bmlxdWVJRCB0byBpdGVtSUQuCisgICAgICAgICogcHVibGljL1dlYkRhdGFM
aXN0RWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJEYXRh
TGlzdEVsZW1lbnQpOiBXcmFwcGVyIGZvciBXZWJDb3JlOjpIVE1MRGF0YUxpc3RFbGVtZW50Lgor
ICAgICAgICAoV2ViS2l0OjpXZWJEYXRhTGlzdEVsZW1lbnQ6OldlYkRhdGFMaXN0RWxlbWVudCk6
CisgICAgICAgICogcHVibGljL1dlYklucHV0RWxlbWVudC5oOgorICAgICAgICAoV2ViSW5wdXRF
bGVtZW50OjpkYXRhTGlzdCk6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6Cisg
ICAgICAgIChXZWJWaWV3OjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMpOiBDaGFuZ2VkIHVuaXF1
ZUlEIHRvIGl0ZW1JRC4gQW5kIHJlbW92ZWQgc2VwYXJhdG9ySW5kZXggYmVjYXVzZSBzZXBhcmF0
b3JzIGNhbiBub3cgYmUgaWRlbnRpZmllZCB3aXRoIGl0ZW1JRHMuCisgICAgICAgICogc3JjL0F1
dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0b2ZpbGxQb3B1
cE1lbnVDbGllbnQ6OkF1dG9maWxsUG9wdXBNZW51Q2xpZW50KTogUmVtb3ZlZCBtX3NlcGFyYXRv
ckluZGV4LgorICAgICAgICAoV2ViS2l0OjpBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Z2V0U3Vn
Z2VzdGlvbnNDb3VudCk6IE5vIG5lZWQgdG8gY2FyZSBhYm91dCBtX3NlcGFyYXRvckluZGV4IGFu
eW1vcmUuCisgICAgICAgIChXZWJLaXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xpZW50OjpnZXRTdWdn
ZXN0aW9uKTogTm8gbmVlZCB0byBjb252ZXJ0IGxpc3QgaW5kZXhlcyBhbnltb3JlLgorICAgICAg
ICAoV2ViS2l0OjpBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Z2V0TGFiZWwpOgorICAgICAgICAo
V2ViS2l0OjpBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Z2V0SWNvbik6CisgICAgICAgIChXZWJL
aXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xpZW50OjpyZW1vdmVTdWdnZXN0aW9uQXRJbmRleCk6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xpZW50OjpjYW5SZW1vdmVTdWdnZXN0
aW9uQXRJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xpZW50Ojp2
YWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6
c2VsZWN0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xp
ZW50OjppdGVtSXNTZXBhcmF0b3IpOldlIGNhbiBpZGVudGlmeSBzZXBhcmF0b3JzIHdpdGggU2Vw
YXJhdG9yTWVudUl0ZW1JRC4KKyAgICAgICAgKFdlYktpdDo6QXV0b2ZpbGxQb3B1cE1lbnVDbGll
bnQ6Oml0ZW1Jc1dhcm5pbmcpOiBXZSBjYW4gaWRlbnRpZnkgd2FybmluZ3Mgd2l0aCBXYXJuaW5n
TWVzc2FnZU1lbnVJdGVtSUQuCisgICAgICAgIChXZWJLaXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xp
ZW50Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6QXV0b2ZpbGxQb3B1cE1lbnVDbGll
bnQ6OnNldFN1Z2dlc3Rpb25zKToKKyAgICAgICAgKiBzcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGll
bnQuaDoKKyAgICAgICAgKEF1dG9maWxsUG9wdXBNZW51Q2xpZW50KToKKyAgICAgICAgKiBzcmMv
V2ViRGF0YUxpc3RFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEYXRhTGlzdEVsZW1lbnQ6Om9wdGlvbnMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJEYXRhTGlzdEVsZW1lbnQ6OldlYkRhdGFMaXN0RWxlbWVudCk6CisgICAgICAgICogc3Jj
L1dlYklucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklucHV0RWxlbWVudDo6
ZGF0YUxpc3QpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3Rp
b25zKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBs
KToKKwogMjAxMi0wNC0wOSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIE1ha2UgY3VsbGluZyB3b3JrIHdpdGggY2xpcHBlZCByZWN0cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDY4YzgxZTQuLjdmYTU0YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTExOCw2ICsxMTgsNyBAQAogICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViQ29udGV4dE1lbnVEYXRhLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYkN1cnNvckluZm8uaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJEYXRh
TGlzdEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJET01FdmVudC5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYkRPTUV2ZW50TGlzdGVuZXIuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJET01NZXNzYWdlRXZlbnQuaCcsCkBAIC01MTUsNiArNTE2LDcg
QEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYkRPTU11dGF0aW9uRXZlbnQuY3BwJywKICAgICAg
ICAgICAgICAgICAnc3JjL1dlYkRPTVN0cmluZ0xpc3QuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYkRhdGFiYXNlLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJEYXRhTGlzdEVs
ZW1lbnQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkRhdGFTb3VyY2VJbXBsLmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJEYXRhU291cmNlSW1wbC5oJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaAppbmRleCA1ODI0ZjE3Li5kNzhm
MzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmls
bENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxs
Q2xpZW50LmgKQEAgLTMzLDYgKzMzLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitlbnVt
IHsKKyAgICBBdXRvY29tcGxldGVFbnRyeU1lbnVJdGVtSUQgPSAwLAorICAgIFdhcm5pbmdNZXNz
YWdlTWVudUl0ZW1JRCA9IC0xLAorICAgIFBhc3N3b3JkRW50cnlNZW51SXRlbUlEID0gLTIsCisg
ICAgU2VwYXJhdG9yTWVudUl0ZW1JRCA9IC0zLAorICAgIENsZWFyRm9ybU1lbnVJdGVtSUQgPSAt
NCwKKyAgICBBdXRvZmlsbE9wdGlvbnNNZW51SXRlbUlEID0gLTUsCisgICAgRGF0YUxpc3RFbnRy
eU1lbnVJdGVtSUQgPSAtNgorfTsKKwogY2xhc3MgV2ViSW5wdXRFbGVtZW50OwogY2xhc3MgV2Vi
S2V5Ym9hcmRFdmVudDsKIGNsYXNzIFdlYk5vZGU7CkBAIC00OSw3ICs1OSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQWNjZXB0QXV0b2ZpbGxTdWdnZXN0aW9uKGNvbnN0IFdlYk5v
ZGUmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
V2ViU3RyaW5nJiB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFdlYlN0cmluZyYgbGFiZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgdW5pcXVlSUQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXRlbUlELAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5kZXgpIHsgfQogCiAgICAgLy8gSW5m
b3JtcyB0aGUgYnJvd3NlciB0aGF0IHRoZSB1c2VyIGhhcyBzZWxlY3RlZCBhbiBBdXRvZmlsbCBz
dWdnZXN0aW9uIGZvcgpAQCAtNTgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGRpZFNlbGVjdEF1dG9maWxsU3VnZ2VzdGlvbihjb25zdCBXZWJOb2RlJiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlN0
cmluZyYgbGFiZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgdW5pcXVlSUQpIHsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IGl0ZW1JRCkgeyB9CiAKICAgICAvLyBJbmZvcm1zIHRoZSBicm93c2VyIHRo
YXQgdGhlIHVzZXIgaGFzIGNsZWFyZWQgdGhlIHNlbGVjdGlvbiBmcm9tIHRoZQogICAgIC8vIEF1
dG9maWxsIHN1Z2dlc3Rpb25zIHBvcHVwLiBUaGlzIGhhcHBlbnMgd2hlbiBhIHVzZXIgdXNlcyB0
aGUgYXJyb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRh
dGFMaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGF0YUxp
c3RFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGZlNTAyYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRhdGFM
aXN0RWxlbWVudC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkRhdGFMaXN0RWxlbWVudF9o
CisjZGVmaW5lIFdlYkRhdGFMaXN0RWxlbWVudF9oCisKKyNpbmNsdWRlICJXZWJFbGVtZW50Lmgi
CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KK25hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3Mg
SFRNTERhdGFMaXN0RWxlbWVudDsgfQorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJOb2RlQ29sbGVjdGlvbjsKKworLy8gUHJvdmlkZXMgcmVhZG9ubHkgYWNjZXNzIHRv
IHNvbWUgcHJvcGVydGllcyBvZiBhIERPTSBpbnB1dCBlbGVtZW50IG5vZGUuCitjbGFzcyBXZWJE
YXRhTGlzdEVsZW1lbnQgOiBwdWJsaWMgV2ViRWxlbWVudCB7CitwdWJsaWM6CisgICAgV2ViRGF0
YUxpc3RFbGVtZW50KCkgOiBXZWJFbGVtZW50KCkgeyB9CisgICAgV2ViRGF0YUxpc3RFbGVtZW50
KGNvbnN0IFdlYkRhdGFMaXN0RWxlbWVudCYgZWxlbWVudCkgOiBXZWJFbGVtZW50KGVsZW1lbnQp
IHsgfQorCisgICAgV0VCS0lUX0VYUE9SVCBXZWJOb2RlQ29sbGVjdGlvbiBvcHRpb25zKCk7CisK
KyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJEYXRhTGlzdEVsZW1lbnQoY29uc3Qg
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxEYXRhTGlzdEVsZW1lbnQ+Jik7CisjZW5kaWYK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRGF0YUxpc3RFbGVt
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0
RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50
LmgKaW5kZXggM2QxZmZiNi4uOGYyNWNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50LmgKQEAgLTM5LDYgKzM5LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgeyBjbGFzcyBIVE1MSW5wdXRFbGVtZW50OyB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CisgICAgY2xhc3MgV2ViRGF0YUxpc3RFbGVtZW50OworCiAgICAgLy8gUHJvdmlkZXMgcmVhZG9u
bHkgYWNjZXNzIHRvIHNvbWUgcHJvcGVydGllcyBvZiBhIERPTSBpbnB1dCBlbGVtZW50IG5vZGUu
CiAgICAgY2xhc3MgV2ViSW5wdXRFbGVtZW50IDogcHVibGljIFdlYkZvcm1Db250cm9sRWxlbWVu
dCB7CiAgICAgcHVibGljOgpAQCAtODQsNiArODYsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAg
ICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzVmFsaWRWYWx1ZShjb25zdCBXZWJTdHJpbmcmKSBj
b25zdDsKICAgICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzQ2hlY2tlZCgpIGNvbnN0OwogCisg
ICAgICAgIFdFQktJVF9FWFBPUlQgV2ViRGF0YUxpc3RFbGVtZW50IGRhdGFMaXN0KCkgY29uc3Q7
CisKICAgICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzU3BlZWNoSW5wdXRFbmFibGVkKCkgY29u
c3Q7CiAgICAgICAgIFdFQktJVF9FWFBPUlQgU3BlZWNoSW5wdXRTdGF0ZSBnZXRTcGVlY2hJbnB1
dFN0YXRlKCkgY29uc3Q7CiAgICAgICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzdGFydFNwZWVjaElu
cHV0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggNzI5ZjUx
Ni4uODM4ZTU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAt
MzYwLDggKzM2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmlu
Zz4mIG5hbWVzLAogICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgbGFiZWxzLAog
ICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgaWNvbnMsCi0gICAgICAgIGNvbnN0
IFdlYlZlY3RvcjxpbnQ+JiB1bmlxdWVJRHMsCi0gICAgICAgIGludCBzZXBhcmF0b3JJbmRleCkg
PSAwOworICAgICAgICBjb25zdCBXZWJWZWN0b3I8aW50PiYgaXRlbUlEcykgPSAwOwogCiAgICAg
Ly8gSGlkZXMgYW55IHBvcHVwIChzdWdnZXN0aW9ucywgc2VsZWN0cy4uLikgdGhhdCBtaWdodCBi
ZSBzaG93aW5nLgogICAgIHZpcnR1YWwgdm9pZCBoaWRlUG9wdXBzKCkgPSAwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3Bw
CmluZGV4IGM4NGVhMTIuLjY0MDcxZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5jcHAKQEAgLTUyLDggKzUyLDcgQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogQXV0b2ZpbGxQ
b3B1cE1lbnVDbGllbnQ6OkF1dG9maWxsUG9wdXBNZW51Q2xpZW50KCkKLSAgICA6IG1fc2VwYXJh
dG9ySW5kZXgoLTEpCi0gICAgLCBtX3NlbGVjdGVkSW5kZXgoLTEpCisgICAgOiBtX3NlbGVjdGVk
SW5kZXgoLTEpCiAgICAgLCBtX3RleHRGaWVsZCgwKQogewogfQpAQCAtNjQsMzcgKzYzLDI1IEBA
IEF1dG9maWxsUG9wdXBNZW51Q2xpZW50Ojp+QXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQoKQogCiB1
bnNpZ25lZCBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Z2V0U3VnZ2VzdGlvbnNDb3VudCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fbmFtZXMuc2l6ZSgpICsgKChtX3NlcGFyYXRvckluZGV4ID09
IC0xKSA/IDAgOiAxKTsKKyAgICByZXR1cm4gbV9uYW1lcy5zaXplKCk7CiB9CiAKIFdlYlN0cmlu
ZyBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Z2V0U3VnZ2VzdGlvbih1bnNpZ25lZCBsaXN0SW5k
ZXgpIGNvbnN0CiB7Ci0gICAgaW50IGluZGV4ID0gY29udmVydExpc3RJbmRleFRvSW50ZXJuYWxJ
bmRleChsaXN0SW5kZXgpOwotICAgIGlmIChpbmRleCA9PSAtMSkKLSAgICAgICAgcmV0dXJuIFdl
YlN0cmluZygpOwotCi0gICAgQVNTRVJUKGluZGV4ID49IDAgJiYgc3RhdGljX2Nhc3Q8c2l6ZV90
PihpbmRleCkgPCBtX25hbWVzLnNpemUoKSk7Ci0gICAgcmV0dXJuIG1fbmFtZXNbaW5kZXhdOwor
ICAgIEFTU0VSVChsaXN0SW5kZXggPCBtX25hbWVzLnNpemUoKSk7CisgICAgcmV0dXJuIG1fbmFt
ZXNbbGlzdEluZGV4XTsKIH0KIAogV2ViU3RyaW5nIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50Ojpn
ZXRMYWJlbCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CiB7Ci0gICAgaW50IGluZGV4ID0gY29u
dmVydExpc3RJbmRleFRvSW50ZXJuYWxJbmRleChsaXN0SW5kZXgpOwotICAgIGlmIChpbmRleCA9
PSAtMSkKLSAgICAgICAgcmV0dXJuIFdlYlN0cmluZygpOwotCi0gICAgQVNTRVJUKGluZGV4ID49
IDAgJiYgc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPCBtX2xhYmVscy5zaXplKCkpOwotICAg
IHJldHVybiBtX2xhYmVsc1tpbmRleF07CisgICAgQVNTRVJUKGxpc3RJbmRleCA8IG1fbGFiZWxz
LnNpemUoKSk7CisgICAgcmV0dXJuIG1fbGFiZWxzW2xpc3RJbmRleF07CiB9CiAKIFdlYlN0cmlu
ZyBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Z2V0SWNvbih1bnNpZ25lZCBsaXN0SW5kZXgpIGNv
bnN0CiB7Ci0gICAgaW50IGluZGV4ID0gY29udmVydExpc3RJbmRleFRvSW50ZXJuYWxJbmRleChs
aXN0SW5kZXgpOwotICAgIGlmIChpbmRleCA9PSAtMSkKLSAgICAgICAgcmV0dXJuIFdlYlN0cmlu
ZygpOwotCi0gICAgQVNTRVJUKGluZGV4ID49IDAgJiYgc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRl
eCkgPCBtX2ljb25zLnNpemUoKSk7Ci0gICAgcmV0dXJuIG1faWNvbnNbaW5kZXhdOworICAgIEFT
U0VSVChsaXN0SW5kZXggPCBtX2ljb25zLnNpemUoKSk7CisgICAgcmV0dXJuIG1faWNvbnNbbGlz
dEluZGV4XTsKIH0KIAogdm9pZCBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6cmVtb3ZlU3VnZ2Vz
dGlvbkF0SW5kZXgodW5zaWduZWQgbGlzdEluZGV4KQpAQCAtMTAyLDI2ICs4OSwxOCBAQCB2b2lk
IEF1dG9maWxsUG9wdXBNZW51Q2xpZW50OjpyZW1vdmVTdWdnZXN0aW9uQXRJbmRleCh1bnNpZ25l
ZCBsaXN0SW5kZXgpCiAgICAgaWYgKCFjYW5SZW1vdmVTdWdnZXN0aW9uQXRJbmRleChsaXN0SW5k
ZXgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnQgaW5kZXggPSBjb252ZXJ0TGlzdEluZGV4
VG9JbnRlcm5hbEluZGV4KGxpc3RJbmRleCk7Ci0KLSAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGluZGV4KSA8IG1fbmFtZXMuc2l6ZSgpKTsKLQotICAgIG1fbmFtZXMucmVtb3ZlKGlu
ZGV4KTsKLSAgICBtX2xhYmVscy5yZW1vdmUoaW5kZXgpOwotICAgIG1faWNvbnMucmVtb3ZlKGlu
ZGV4KTsKLSAgICBtX3VuaXF1ZUlEcy5yZW1vdmUoaW5kZXgpOworICAgIEFTU0VSVChsaXN0SW5k
ZXggPCBtX25hbWVzLnNpemUoKSk7CiAKLSAgICAvLyBTaGlmdCB0aGUgc2VwYXJhdG9yIGluZGV4
IGlmIG5lY2Vzc2FyeS4KLSAgICBpZiAobV9zZXBhcmF0b3JJbmRleCAhPSAtMSkKLSAgICAgICAg
bV9zZXBhcmF0b3JJbmRleC0tOworICAgIG1fbmFtZXMucmVtb3ZlKGxpc3RJbmRleCk7CisgICAg
bV9sYWJlbHMucmVtb3ZlKGxpc3RJbmRleCk7CisgICAgbV9pY29ucy5yZW1vdmUobGlzdEluZGV4
KTsKKyAgICBtX2l0ZW1JRHMucmVtb3ZlKGxpc3RJbmRleCk7CiB9CiAKIGJvb2wgQXV0b2ZpbGxQ
b3B1cE1lbnVDbGllbnQ6OmNhblJlbW92ZVN1Z2dlc3Rpb25BdEluZGV4KHVuc2lnbmVkIGxpc3RJ
bmRleCkKIHsKLSAgICAvLyBPbmx5IGFsbG93IGRlbGV0aW9uIG9mIGl0ZW1zIGJlZm9yZSB0aGUg
c2VwYXJhdG9yIHRoYXQgaGF2ZSB1bmlxdWUgaWQgMAotICAgIC8vIChpLmUuIGFyZSBhdXRvY29t
cGxldGUgcmF0aGVyIHRoYW4gYXV0b2ZpbGwgaXRlbXMpLgotICAgIGludCBpbmRleCA9IGNvbnZl
cnRMaXN0SW5kZXhUb0ludGVybmFsSW5kZXgobGlzdEluZGV4KTsKLSAgICByZXR1cm4gIW1fdW5p
cXVlSURzW2luZGV4XSAmJiAobV9zZXBhcmF0b3JJbmRleCA9PSAtMSB8fCBsaXN0SW5kZXggPCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4obV9zZXBhcmF0b3JJbmRleCkpOworICAgIHJldHVybiBtX2l0
ZW1JRHNbbGlzdEluZGV4XSA9PSBBdXRvY29tcGxldGVFbnRyeU1lbnVJdGVtSUQgfHwKKyAgICAg
ICAgICAgbV9pdGVtSURzW2xpc3RJbmRleF0gPT0gUGFzc3dvcmRFbnRyeU1lbnVJdGVtSUQ7CiB9
CiAKIHZvaWQgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBs
aXN0SW5kZXgsIGJvb2wgZmlyZUV2ZW50cykKQEAgLTEzMCwxNSArMTA5LDEyIEBAIHZvaWQgQXV0
b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJv
b2wgZmlyZUV2ZW50cykKICAgICBpZiAoIXdlYlZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChtX3NlcGFyYXRvckluZGV4ICE9IC0xICYmIGxpc3RJbmRleCA+IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihtX3NlcGFyYXRvckluZGV4KSkKLSAgICAgICAgLS1saXN0SW5kZXg7Ci0KICAgICBB
U1NFUlQobGlzdEluZGV4IDwgbV9uYW1lcy5zaXplKCkpOwogCiAgICAgd2ViVmlldy0+YXV0b2Zp
bGxDbGllbnQoKS0+ZGlkQWNjZXB0QXV0b2ZpbGxTdWdnZXN0aW9uKFdlYk5vZGUoZ2V0VGV4dEZp
ZWxkKCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX25hbWVzW2xpc3RJbmRleF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbGFiZWxzW2xpc3RJbmRleF0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fdW5pcXVlSURzW2xpc3RJbmRleF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1faXRlbUlEc1tsaXN0SW5kZXhdLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0
SW5kZXgpOwogfQogCkBAIC0xNDgsMTUgKzEyNCwxMiBAQCB2b2lkIEF1dG9maWxsUG9wdXBNZW51
Q2xpZW50OjpzZWxlY3Rpb25DaGFuZ2VkKHVuc2lnbmVkIGxpc3RJbmRleCwgYm9vbCBmaXJlRXZl
bgogICAgIGlmICghd2ViVmlldykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKG1fc2VwYXJh
dG9ySW5kZXggIT0gLTEgJiYgbGlzdEluZGV4ID4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fc2Vw
YXJhdG9ySW5kZXgpKQotICAgICAgICAtLWxpc3RJbmRleDsKLQogICAgIEFTU0VSVChsaXN0SW5k
ZXggPCBtX25hbWVzLnNpemUoKSk7CiAKICAgICB3ZWJWaWV3LT5hdXRvZmlsbENsaWVudCgpLT5k
aWRTZWxlY3RBdXRvZmlsbFN1Z2dlc3Rpb24oV2ViTm9kZShnZXRUZXh0RmllbGQoKSksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
bmFtZXNbbGlzdEluZGV4XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9sYWJlbHNbbGlzdEluZGV4XSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91bmlxdWVJRHNb
bGlzdEluZGV4XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1faXRlbUlEc1tsaXN0SW5kZXhdKTsKIH0KIAogdm9pZCBBdXRvZmls
bFBvcHVwTWVudUNsaWVudDo6c2VsZWN0aW9uQ2xlYXJlZCgpCkBAIC0yMjgsMTcgKzIwMSwxMiBA
QCB2b2lkIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50Ojpwb3B1cERpZEhpZGUoKQogCiBib29sIEF1
dG9maWxsUG9wdXBNZW51Q2xpZW50OjppdGVtSXNTZXBhcmF0b3IodW5zaWduZWQgbGlzdEluZGV4
KSBjb25zdAogewotICAgIHJldHVybiAobV9zZXBhcmF0b3JJbmRleCAhPSAtMSAmJiBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4obV9zZXBhcmF0b3JJbmRleCkgPT0gbGlzdEluZGV4KTsKKyAgICByZXR1
cm4gbV9pdGVtSURzW2xpc3RJbmRleF0gPT0gU2VwYXJhdG9yTWVudUl0ZW1JRDsKIH0KIAogYm9v
bCBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6aXRlbUlzV2FybmluZyh1bnNpZ25lZCBsaXN0SW5k
ZXgpIGNvbnN0CiB7Ci0gICAgaW50IGluZGV4ID0gY29udmVydExpc3RJbmRleFRvSW50ZXJuYWxJ
bmRleChsaXN0SW5kZXgpOwotICAgIGlmIChpbmRleCA9PSAtMSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgQVNTRVJUKGluZGV4ID49IDAgJiYgc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRl
eCkgPCBtX3VuaXF1ZUlEcy5zaXplKCkpOwotICAgIHJldHVybiBtX3VuaXF1ZUlEc1tpbmRleF0g
PCAwOworICAgIHJldHVybiBtX2l0ZW1JRHNbbGlzdEluZGV4XSA9PSBXYXJuaW5nTWVzc2FnZU1l
bnVJdGVtSUQ7CiB9CiAKIHZvaWQgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OnNldFRleHRGcm9t
SXRlbSh1bnNpZ25lZCBsaXN0SW5kZXgpCkBAIC0yNjksMjAgKzIzNywxOCBAQCB2b2lkIEF1dG9m
aWxsUG9wdXBNZW51Q2xpZW50Ojppbml0aWFsaXplKAogICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJT
dHJpbmc+JiBuYW1lcywKICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgbGFiZWxzLAog
ICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBpY29ucywKLSAgICBjb25zdCBXZWJWZWN0
b3I8aW50PiYgdW5pcXVlSURzLAotICAgIGludCBzZXBhcmF0b3JJbmRleCkKKyAgICBjb25zdCBX
ZWJWZWN0b3I8aW50PiYgaXRlbUlEcykKIHsKICAgICBBU1NFUlQobmFtZXMuc2l6ZSgpID09IGxh
YmVscy5zaXplKCkpOwogICAgIEFTU0VSVChuYW1lcy5zaXplKCkgPT0gaWNvbnMuc2l6ZSgpKTsK
LSAgICBBU1NFUlQobmFtZXMuc2l6ZSgpID09IHVuaXF1ZUlEcy5zaXplKCkpOwotICAgIEFTU0VS
VChzZXBhcmF0b3JJbmRleCA8IHN0YXRpY19jYXN0PGludD4obmFtZXMuc2l6ZSgpKSk7CisgICAg
QVNTRVJUKG5hbWVzLnNpemUoKSA9PSBpdGVtSURzLnNpemUoKSk7CiAKICAgICBtX3NlbGVjdGVk
SW5kZXggPSAtMTsKICAgICBtX3RleHRGaWVsZCA9IHRleHRGaWVsZDsKIAogICAgIC8vIFRoZSBz
dWdnZXN0aW9ucyBtdXN0IGJlIHNldCBiZWZvcmUgaW5pdGlhbGl6aW5nIHRoZQogICAgIC8vIEF1
dG9maWxsUG9wdXBNZW51Q2xpZW50LgotICAgIHNldFN1Z2dlc3Rpb25zKG5hbWVzLCBsYWJlbHMs
IGljb25zLCB1bmlxdWVJRHMsIHNlcGFyYXRvckluZGV4KTsKKyAgICBzZXRTdWdnZXN0aW9ucyhu
YW1lcywgbGFiZWxzLCBpY29ucywgaXRlbUlEcyk7CiAKICAgICBGb250RGVzY3JpcHRpb24gcmVn
dWxhckZvbnREZXNjcmlwdGlvbjsKICAgICBSZW5kZXJUaGVtZTo6ZGVmYXVsdFRoZW1lKCktPnN5
c3RlbUZvbnQoQ1NTVmFsdWVXZWJraXRDb250cm9sLApAQCAtMzEzLDQyICsyNzksMjggQEAgdm9p
ZCBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6aW5pdGlhbGl6ZSgKIHZvaWQgQXV0b2ZpbGxQb3B1
cE1lbnVDbGllbnQ6OnNldFN1Z2dlc3Rpb25zKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBu
YW1lcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBsYWJlbHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgaWNvbnMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0
b3I8aW50PiYgdW5pcXVlSURzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IHNlcGFyYXRvckluZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgV2ViVmVjdG9yPGludD4mIGl0ZW1JRHMpCiB7CiAgICAg
QVNTRVJUKG5hbWVzLnNpemUoKSA9PSBsYWJlbHMuc2l6ZSgpKTsKICAgICBBU1NFUlQobmFtZXMu
c2l6ZSgpID09IGljb25zLnNpemUoKSk7Ci0gICAgQVNTRVJUKG5hbWVzLnNpemUoKSA9PSB1bmlx
dWVJRHMuc2l6ZSgpKTsKLSAgICBBU1NFUlQoc2VwYXJhdG9ySW5kZXggPCBzdGF0aWNfY2FzdDxp
bnQ+KG5hbWVzLnNpemUoKSkpOworICAgIEFTU0VSVChuYW1lcy5zaXplKCkgPT0gaXRlbUlEcy5z
aXplKCkpOwogCiAgICAgbV9uYW1lcy5jbGVhcigpOwogICAgIG1fbGFiZWxzLmNsZWFyKCk7CiAg
ICAgbV9pY29ucy5jbGVhcigpOwotICAgIG1fdW5pcXVlSURzLmNsZWFyKCk7CisgICAgbV9pdGVt
SURzLmNsZWFyKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBuYW1lcy5zaXplKCk7ICsr
aSkgewogICAgICAgICBtX25hbWVzLmFwcGVuZChuYW1lc1tpXSk7CiAgICAgICAgIG1fbGFiZWxz
LmFwcGVuZChsYWJlbHNbaV0pOwogICAgICAgICBtX2ljb25zLmFwcGVuZChpY29uc1tpXSk7Ci0g
ICAgICAgIG1fdW5pcXVlSURzLmFwcGVuZCh1bmlxdWVJRHNbaV0pOworICAgICAgICBtX2l0ZW1J
RHMuYXBwZW5kKGl0ZW1JRHNbaV0pOwogICAgIH0KIAotICAgIG1fc2VwYXJhdG9ySW5kZXggPSBz
ZXBhcmF0b3JJbmRleDsKLQogICAgIC8vIFRyeSB0byBwcmVzZXJ2ZSBzZWxlY3Rpb24gaWYgcG9z
c2libGUuCiAgICAgaWYgKGdldFNlbGVjdGVkSW5kZXgoKSA+PSBzdGF0aWNfY2FzdDxpbnQ+KG5h
bWVzLnNpemUoKSkpCiAgICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpOwogfQogCi1pbnQgQXV0
b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OmNvbnZlcnRMaXN0SW5kZXhUb0ludGVybmFsSW5kZXgodW5z
aWduZWQgbGlzdEluZGV4KSBjb25zdAotewotICAgIGlmIChsaXN0SW5kZXggPT0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KG1fc2VwYXJhdG9ySW5kZXgpKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAg
ICBpZiAobV9zZXBhcmF0b3JJbmRleCA9PSAtMSB8fCBsaXN0SW5kZXggPCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4obV9zZXBhcmF0b3JJbmRleCkpCi0gICAgICAgIHJldHVybiBsaXN0SW5kZXg7Ci0g
ICAgcmV0dXJuIGxpc3RJbmRleCAtIDE7Ci19Ci0KIFdlYlZpZXdJbXBsKiBBdXRvZmlsbFBvcHVw
TWVudUNsaWVudDo6Z2V0V2ViVmlldygpIGNvbnN0CiB7CiAgICAgRnJhbWUqIGZyYW1lID0gbV90
ZXh0RmllbGQtPmRvY3VtZW50KCktPmZyYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaAppbmRleCA3M2NjMTgwLi5mNTY1
NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVw
TWVudUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9w
dXBNZW51Q2xpZW50LmgKQEAgLTEwNiwyMCArMTA2LDE0IEBAIHB1YmxpYzoKICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIG5hbWVzLAogICAgICAgICAgICAg
ICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgbGFiZWxzLAogICAgICAgICAgICAg
ICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgaWNvbnMsCi0gICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFdlYlZlY3RvcjxpbnQ+JiB1bmlxdWVJRHMsCi0gICAgICAgICAgICAgICAg
ICAgIGludCBzZXBhcmF0b3JJbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlZl
Y3RvcjxpbnQ+JiBpdGVtSURzKTsKIAogICAgIHZvaWQgc2V0U3VnZ2VzdGlvbnMoY29uc3QgV2Vi
VmVjdG9yPFdlYlN0cmluZz4mIG5hbWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
V2ViVmVjdG9yPFdlYlN0cmluZz4mIGxhYmVscywKICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBpY29ucywKLSAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFdlYlZlY3RvcjxpbnQ+JiB1bmlxdWVJRHMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgc2VwYXJhdG9ySW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2Vi
VmVjdG9yPGludD4mIGl0ZW1JRHMpOwogCiBwcml2YXRlOgotICAgIC8vIENvbnZlcnQgdGhlIHNw
ZWNpZmllZCBpbmRleCBmcm9tIGFuIGluZGV4IGludG8gdGhlIHZpc2libGUgbGlzdCAod2hpY2gg
bWlnaHQKLSAgICAvLyBpbmNsdWRlIGEgc2VwYXJhdG9yIGVudHJ5KSB0byBhbiBpbmRleCB0byB8
bV9uYW1lc3wgYW5kIHxtX2xhYmVsc3wuCi0gICAgLy8gUmV0dXJucyAtMSBpZiB0aGUgZ2l2ZW4g
aW5kZXggcG9pbnRzIHRvIHRoZSBzZXBhcmF0b3IuCi0gICAgaW50IGNvbnZlcnRMaXN0SW5kZXhU
b0ludGVybmFsSW5kZXgodW5zaWduZWQpIGNvbnN0OwogICAgIFdlYlZpZXdJbXBsKiBnZXRXZWJW
aWV3KCkgY29uc3Q7CiAgICAgV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudCogZ2V0VGV4dEZpZWxk
KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0RmllbGQuZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpSZW5k
ZXJTdHlsZSogdGV4dEZpZWxkU3R5bGUoKSBjb25zdDsKQEAgLTEzMywxMCArMTI3LDcgQEAgcHJp
dmF0ZToKICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fbmFtZXM7CiAgICAgVmVjdG9yPFdURjo6
U3RyaW5nPiBtX2xhYmVsczsKICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1faWNvbnM7Ci0gICAg
VmVjdG9yPGludD4gbV91bmlxdWVJRHM7Ci0KLSAgICAvLyBUaGUgaW5kZXggb2YgdGhlIHNlcGFy
YXRvci4gIC0xIGlmIHRoZXJlIGlzIG5vIHNlcGFyYXRvci4KLSAgICBpbnQgbV9zZXBhcmF0b3JJ
bmRleDsKKyAgICBWZWN0b3I8aW50PiBtX2l0ZW1JRHM7CiAKICAgICAvLyBUaGUgaW5kZXggb2Yg
dGhlIHNlbGVjdGVkIGl0ZW0uICAtMSBpZiB0aGVyZSBpcyBubyBzZWxlY3RlZCBpdGVtLgogICAg
IGludCBtX3NlbGVjdGVkSW5kZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJEYXRhTGlzdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRGF0YUxpc3RFbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4xNjk0MjhkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRGF0YUxpc3RFbGVtZW50LmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkRhdGFMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRNTERhdGFM
aXN0RWxlbWVudC5oIgorI2luY2x1ZGUgIldlYk5vZGVDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitXZWJOb2RlQ29sbGVjdGlvbiBXZWJEYXRhTGlzdEVsZW1lbnQ6Om9wdGlv
bnMoKQoreworICAgIEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uID0gdW53cmFwPEhUTUxEYXRh
TGlzdEVsZW1lbnQ+KCktPm9wdGlvbnMoKTsKKyAgICByZXR1cm4gV2ViTm9kZUNvbGxlY3Rpb24o
Y29sbGVjdGlvbik7Cit9CisKK1dlYkRhdGFMaXN0RWxlbWVudDo6V2ViRGF0YUxpc3RFbGVtZW50
KGNvbnN0IFBhc3NSZWZQdHI8SFRNTERhdGFMaXN0RWxlbWVudD4mIGVsZW0pCisgICAgOiBXZWJF
bGVtZW50KGVsZW0pCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAKaW5kZXggZjVkNTJkYS4uZWQ1
NzJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEVsZW1lbnQu
Y3BwCkBAIC0zMSwxMCArMzEsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJX
ZWJJbnB1dEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5j
bHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2Vi
U3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViRGF0YUxpc3RFbGVtZW50LmgiCiAjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xNTEsNiArMTUz
LDE1IEBAIGJvb2wgV2ViSW5wdXRFbGVtZW50Ojppc0NoZWNrZWQoKSBjb25zdAogICAgIHJldHVy
biBjb25zdFVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5jaGVja2VkKCk7CiB9CiAKK1dlYkRh
dGFMaXN0RWxlbWVudCBXZWJJbnB1dEVsZW1lbnQ6OmRhdGFMaXN0KCkgY29uc3QKK3sKKyNpZiBF
TkFCTEUoREFUQUxJU1QpCisgICAgcmV0dXJuIFdlYkRhdGFMaXN0RWxlbWVudChzdGF0aWNfY2Fz
dDxIVE1MRGF0YUxpc3RFbGVtZW50Kj4oY29uc3RVbndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+
bGlzdCgpKSk7CisjZWxzZQorICAgIHJldHVybiBXZWJEYXRhTGlzdEVsZW1lbnQoKTsKKyNlbmRp
ZgorfQorCiBib29sIFdlYklucHV0RWxlbWVudDo6aXNTcGVlY2hJbnB1dEVuYWJsZWQoKSBjb25z
dAogewogI2lmIEVOQUJMRShJTlBVVF9TUEVFQ0gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMDMwZDhlMS4uMjE4ZGQzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMjc5OCwxMiArMjc5OCwxMCBAQCB2
b2lkIFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMoCiAgICAgY29uc3QgV2Vi
VmVjdG9yPFdlYlN0cmluZz4mIG5hbWVzLAogICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+
JiBsYWJlbHMsCiAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIGljb25zLAotICAgIGNv
bnN0IFdlYlZlY3RvcjxpbnQ+JiB1bmlxdWVJRHMsCi0gICAgaW50IHNlcGFyYXRvckluZGV4KQor
ICAgIGNvbnN0IFdlYlZlY3RvcjxpbnQ+JiBpdGVtSURzKQogewogICAgIEFTU0VSVChuYW1lcy5z
aXplKCkgPT0gbGFiZWxzLnNpemUoKSk7Ci0gICAgQVNTRVJUKG5hbWVzLnNpemUoKSA9PSB1bmlx
dWVJRHMuc2l6ZSgpKTsKLSAgICBBU1NFUlQoc2VwYXJhdG9ySW5kZXggPCBzdGF0aWNfY2FzdDxp
bnQ+KG5hbWVzLnNpemUoKSkpOworICAgIEFTU0VSVChuYW1lcy5zaXplKCkgPT0gaXRlbUlEcy5z
aXplKCkpOwogCiAgICAgaWYgKG5hbWVzLmlzRW1wdHkoKSkgewogICAgICAgICBoaWRlQXV0b2Zp
bGxQb3B1cCgpOwpAQCAtMjgyOCw3ICsyODI2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlB
dXRvZmlsbFN1Z2dlc3Rpb25zKAogICAgICAgICBtX2F1dG9maWxsUG9wdXBDbGllbnQgPSBhZG9w
dFB0cihuZXcgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQpOwogCiAgICAgbV9hdXRvZmlsbFBvcHVw
Q2xpZW50LT5pbml0aWFsaXplKAotICAgICAgICBpbnB1dEVsZW0sIG5hbWVzLCBsYWJlbHMsIGlj
b25zLCB1bmlxdWVJRHMsIHNlcGFyYXRvckluZGV4KTsKKyAgICAgICAgaW5wdXRFbGVtLCBuYW1l
cywgbGFiZWxzLCBpY29ucywgaXRlbUlEcyk7CiAKICAgICBpZiAoIW1fYXV0b2ZpbGxQb3B1cCkg
ewogICAgICAgICBQb3B1cENvbnRhaW5lclNldHRpbmdzIHBvcHVwU2V0dGluZ3MgPSBhdXRvZmls
bFBvcHVwU2V0dGluZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApp
bmRleCA4MDBlNTExLi43ZGQxYjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKQEAgLTI0Myw4ICsyNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFdlYlZl
Y3RvcjxXZWJTdHJpbmc+JiBuYW1lcywKICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmlu
Zz4mIGxhYmVscywKICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIGljb25zLAot
ICAgICAgICBjb25zdCBXZWJWZWN0b3I8aW50PiYgdW5pcXVlSURzLAotICAgICAgICBpbnQgc2Vw
YXJhdG9ySW5kZXgpOworICAgICAgICBjb25zdCBXZWJWZWN0b3I8aW50PiYgaXRlbUlEcyk7CiAg
ICAgdmlydHVhbCB2b2lkIGhpZGVQb3B1cHMoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xs
YmFyQ29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBhY3RpdmVDb2xvciwK
</data>
<flag name="review"
          id="141742"
          type_id="1"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136849</attachid>
            <date>2012-04-12 01:29:56 -0700</date>
            <delta_ts>2012-04-12 06:54:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>datalist-g.diff</filename>
            <type>text/plain</type>
            <size>29863</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZmI1OWMzOS4uNTg2NWUxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAxMi0wNC0xMSAgS2Vpc2hpIEhh
dHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgRGF0YUxpc3Qg
VUkgZm9yIGNocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04Mzc0MgorCisgICAgICAgIEV4cG9zZSBIVE1MRGF0YUxpc3RFbGVtZW50IGluIHRo
ZSBXZWJLaXRBUEkuCisgICAgICAgIEludHJvZHVjZSBNZW51SXRlbUlEcy4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6IEFkZGVk
IFdlYkRhdGFMaXN0RWxlbWVudC57Y3BwLGh9CisgICAgICAgICogcHVibGljL1dlYkF1dG9maWxs
Q2xpZW50Lmg6IEFkZGVkIGVudW0gZm9yIE1lbnVJdGVtSUQuCisgICAgICAgIChXZWJLaXQ6Oldl
YkF1dG9maWxsQ2xpZW50OjpkaWRBY2NlcHRBdXRvZmlsbFN1Z2dlc3Rpb24pOiBDaGFuZ2VkIHVu
aXF1ZUlEIHRvIGl0ZW1JRC4gUG9zaXRpdmUgaXRlbUlEcyBhcmUgdW5pcXVlSURzLgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvZmlsbENsaWVudDo6ZGlkU2VsZWN0QXV0b2ZpbGxTdWdnZXN0aW9u
KTogQ2hhbmdlZCB1bmlxdWVJRCB0byBpdGVtSUQuCisgICAgICAgICogcHVibGljL1dlYkRhdGFM
aXN0RWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJEYXRh
TGlzdEVsZW1lbnQpOiBXcmFwcGVyIGZvciBXZWJDb3JlOjpIVE1MRGF0YUxpc3RFbGVtZW50Lgor
ICAgICAgICAoV2ViS2l0OjpXZWJEYXRhTGlzdEVsZW1lbnQ6OldlYkRhdGFMaXN0RWxlbWVudCk6
CisgICAgICAgICogcHVibGljL1dlYklucHV0RWxlbWVudC5oOgorICAgICAgICAoV2ViSW5wdXRF
bGVtZW50OjpkYXRhTGlzdCk6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6Cisg
ICAgICAgIChXZWJWaWV3OjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMpOiBDaGFuZ2VkIHVuaXF1
ZUlEIHRvIGl0ZW1JRC4gQW5kIHJlbW92ZWQgc2VwYXJhdG9ySW5kZXggYmVjYXVzZSBzZXBhcmF0
b3JzIGNhbiBub3cgYmUgaWRlbnRpZmllZCB3aXRoIGl0ZW1JRHMuCisgICAgICAgICogc3JjL0F1
dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0b2ZpbGxQb3B1
cE1lbnVDbGllbnQ6OkF1dG9maWxsUG9wdXBNZW51Q2xpZW50KTogUmVtb3ZlZCBtX3NlcGFyYXRv
ckluZGV4LgorICAgICAgICAoV2ViS2l0OjpBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Z2V0U3Vn
Z2VzdGlvbnNDb3VudCk6IE5vIG5lZWQgdG8gY2FyZSBhYm91dCBtX3NlcGFyYXRvckluZGV4IGFu
eW1vcmUuCisgICAgICAgIChXZWJLaXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xpZW50OjpnZXRTdWdn
ZXN0aW9uKTogTm8gbmVlZCB0byBjb252ZXJ0IGxpc3QgaW5kZXhlcyBhbnltb3JlLgorICAgICAg
ICAoV2ViS2l0OjpBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Z2V0TGFiZWwpOgorICAgICAgICAo
V2ViS2l0OjpBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Z2V0SWNvbik6CisgICAgICAgIChXZWJL
aXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xpZW50OjpyZW1vdmVTdWdnZXN0aW9uQXRJbmRleCk6Cisg
ICAgICAgIChXZWJLaXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xpZW50OjpjYW5SZW1vdmVTdWdnZXN0
aW9uQXRJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xpZW50Ojp2
YWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6
c2VsZWN0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xp
ZW50OjppdGVtSXNTZXBhcmF0b3IpOldlIGNhbiBpZGVudGlmeSBzZXBhcmF0b3JzIHdpdGggU2Vw
YXJhdG9yTWVudUl0ZW1JRC4KKyAgICAgICAgKFdlYktpdDo6QXV0b2ZpbGxQb3B1cE1lbnVDbGll
bnQ6Oml0ZW1Jc1dhcm5pbmcpOiBXZSBjYW4gaWRlbnRpZnkgd2FybmluZ3Mgd2l0aCBXYXJuaW5n
TWVzc2FnZU1lbnVJdGVtSUQuCisgICAgICAgIChXZWJLaXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xp
ZW50Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6QXV0b2ZpbGxQb3B1cE1lbnVDbGll
bnQ6OnNldFN1Z2dlc3Rpb25zKToKKyAgICAgICAgKiBzcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGll
bnQuaDoKKyAgICAgICAgKEF1dG9maWxsUG9wdXBNZW51Q2xpZW50KToKKyAgICAgICAgKiBzcmMv
V2ViRGF0YUxpc3RFbGVtZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEYXRhTGlzdEVsZW1lbnQ6Om9wdGlvbnMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJEYXRhTGlzdEVsZW1lbnQ6OldlYkRhdGFMaXN0RWxlbWVudCk6CisgICAgICAgICogc3Jj
L1dlYklucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklucHV0RWxlbWVudDo6
ZGF0YUxpc3QpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3Rp
b25zKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBs
KToKKwogMjAxMi0wNC0wOSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIE1ha2UgY3VsbGluZyB3b3JrIHdpdGggY2xpcHBlZCByZWN0cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDY4YzgxZTQuLjdmYTU0YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTExOCw2ICsxMTgsNyBAQAogICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViQ29udGV4dE1lbnVEYXRhLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYkN1cnNvckluZm8uaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJEYXRh
TGlzdEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJET01FdmVudC5oJywK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYkRPTUV2ZW50TGlzdGVuZXIuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJET01NZXNzYWdlRXZlbnQuaCcsCkBAIC01MTUsNiArNTE2LDcg
QEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYkRPTU11dGF0aW9uRXZlbnQuY3BwJywKICAgICAg
ICAgICAgICAgICAnc3JjL1dlYkRPTVN0cmluZ0xpc3QuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYkRhdGFiYXNlLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJEYXRhTGlzdEVs
ZW1lbnQuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkRhdGFTb3VyY2VJbXBsLmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJEYXRhU291cmNlSW1wbC5oJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmlsbENsaWVudC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViQXV0b2ZpbGxDbGllbnQuaAppbmRleCA1ODI0ZjE3Li5kNzhm
MzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJBdXRvZmls
bENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkF1dG9maWxs
Q2xpZW50LmgKQEAgLTMzLDYgKzMzLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitlbnVt
IHsKKyAgICBBdXRvY29tcGxldGVFbnRyeU1lbnVJdGVtSUQgPSAwLAorICAgIFdhcm5pbmdNZXNz
YWdlTWVudUl0ZW1JRCA9IC0xLAorICAgIFBhc3N3b3JkRW50cnlNZW51SXRlbUlEID0gLTIsCisg
ICAgU2VwYXJhdG9yTWVudUl0ZW1JRCA9IC0zLAorICAgIENsZWFyRm9ybU1lbnVJdGVtSUQgPSAt
NCwKKyAgICBBdXRvZmlsbE9wdGlvbnNNZW51SXRlbUlEID0gLTUsCisgICAgRGF0YUxpc3RFbnRy
eU1lbnVJdGVtSUQgPSAtNgorfTsKKwogY2xhc3MgV2ViSW5wdXRFbGVtZW50OwogY2xhc3MgV2Vi
S2V5Ym9hcmRFdmVudDsKIGNsYXNzIFdlYk5vZGU7CkBAIC00OSw3ICs1OSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQWNjZXB0QXV0b2ZpbGxTdWdnZXN0aW9uKGNvbnN0IFdlYk5v
ZGUmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
V2ViU3RyaW5nJiB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFdlYlN0cmluZyYgbGFiZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgdW5pcXVlSUQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXRlbUlELAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5kZXgpIHsgfQogCiAgICAgLy8gSW5m
b3JtcyB0aGUgYnJvd3NlciB0aGF0IHRoZSB1c2VyIGhhcyBzZWxlY3RlZCBhbiBBdXRvZmlsbCBz
dWdnZXN0aW9uIGZvcgpAQCAtNTgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGRpZFNlbGVjdEF1dG9maWxsU3VnZ2VzdGlvbihjb25zdCBXZWJOb2RlJiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlN0
cmluZyYgbGFiZWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgdW5pcXVlSUQpIHsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IGl0ZW1JRCkgeyB9CiAKICAgICAvLyBJbmZvcm1zIHRoZSBicm93c2VyIHRo
YXQgdGhlIHVzZXIgaGFzIGNsZWFyZWQgdGhlIHNlbGVjdGlvbiBmcm9tIHRoZQogICAgIC8vIEF1
dG9maWxsIHN1Z2dlc3Rpb25zIHBvcHVwLiBUaGlzIGhhcHBlbnMgd2hlbiBhIHVzZXIgdXNlcyB0
aGUgYXJyb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRh
dGFMaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGF0YUxp
c3RFbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGZlNTAyYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkRhdGFM
aXN0RWxlbWVudC5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkRhdGFMaXN0RWxlbWVudF9o
CisjZGVmaW5lIFdlYkRhdGFMaXN0RWxlbWVudF9oCisKKyNpbmNsdWRlICJXZWJFbGVtZW50Lmgi
CisKKyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KK25hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3Mg
SFRNTERhdGFMaXN0RWxlbWVudDsgfQorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBXZWJOb2RlQ29sbGVjdGlvbjsKKworLy8gUHJvdmlkZXMgcmVhZG9ubHkgYWNjZXNzIHRv
IHNvbWUgcHJvcGVydGllcyBvZiBhIERPTSBpbnB1dCBlbGVtZW50IG5vZGUuCitjbGFzcyBXZWJE
YXRhTGlzdEVsZW1lbnQgOiBwdWJsaWMgV2ViRWxlbWVudCB7CitwdWJsaWM6CisgICAgV2ViRGF0
YUxpc3RFbGVtZW50KCkgOiBXZWJFbGVtZW50KCkgeyB9CisgICAgV2ViRGF0YUxpc3RFbGVtZW50
KGNvbnN0IFdlYkRhdGFMaXN0RWxlbWVudCYgZWxlbWVudCkgOiBXZWJFbGVtZW50KGVsZW1lbnQp
IHsgfQorCisgICAgV0VCS0lUX0VYUE9SVCBXZWJOb2RlQ29sbGVjdGlvbiBvcHRpb25zKCk7CisK
KyNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KKyAgICBXZWJEYXRhTGlzdEVsZW1lbnQoY29uc3Qg
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxEYXRhTGlzdEVsZW1lbnQ+Jik7CisjZW5kaWYK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRGF0YUxpc3RFbGVt
ZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklucHV0
RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50
LmgKaW5kZXggM2QxZmZiNi4uYzgzMDcyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50LmgKQEAgLTM5LDcyICszOSw3NiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7IGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKLSAgICAvLyBQcm92aWRlcyByZWFkb25seSBhY2Nlc3MgdG8gc29tZSBwcm9wZXJ0aWVzIG9m
IGEgRE9NIGlucHV0IGVsZW1lbnQgbm9kZS4KLSAgICBjbGFzcyBXZWJJbnB1dEVsZW1lbnQgOiBw
dWJsaWMgV2ViRm9ybUNvbnRyb2xFbGVtZW50IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGVudW0g
U3BlZWNoSW5wdXRTdGF0ZSB7Ci0gICAgICAgICAgICBJZGxlLAotICAgICAgICAgICAgUmVjb3Jk
aW5nLAotICAgICAgICAgICAgUmVjb2duaXppbmcsCi0gICAgICAgIH07Ci0KLSAgICAgICAgV2Vi
SW5wdXRFbGVtZW50KCkgOiBXZWJGb3JtQ29udHJvbEVsZW1lbnQoKSB7IH0KLSAgICAgICAgV2Vi
SW5wdXRFbGVtZW50KGNvbnN0IFdlYklucHV0RWxlbWVudCYgZWxlbWVudCkgOiBXZWJGb3JtQ29u
dHJvbEVsZW1lbnQoZWxlbWVudCkgeyB9Ci0KLSAgICAgICAgV2ViSW5wdXRFbGVtZW50JiBvcGVy
YXRvcj0oY29uc3QgV2ViSW5wdXRFbGVtZW50JiBlbGVtZW50KQotICAgICAgICB7Ci0gICAgICAg
ICAgICBXZWJGb3JtQ29udHJvbEVsZW1lbnQ6OmFzc2lnbihlbGVtZW50KTsKLSAgICAgICAgICAg
IHJldHVybiAqdGhpczsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGFzc2lnbihjb25zdCBXZWJJ
bnB1dEVsZW1lbnQmIGVsZW1lbnQpIHsgV2ViRm9ybUNvbnRyb2xFbGVtZW50Ojphc3NpZ24oZWxl
bWVudCk7IH0KLQotICAgICAgICAvLyBUaGlzIHJldHVybnMgdHJ1ZSBmb3IgYWxsIG9mIHRleHRm
aWVsZC1sb29raW5nIHR5cGVzIHN1Y2ggYXMgdGV4dCwKLSAgICAgICAgLy8gcGFzc3dvcmQsIHNl
YXJjaCwgZW1haWwsIHVybCwgYW5kIG51bWJlci4KLSAgICAgICAgV0VCS0lUX0VYUE9SVCBib29s
IGlzVGV4dEZpZWxkKCkgY29uc3Q7Ci0gICAgICAgIC8vIFRoaXMgcmV0dXJucyB0cnVlIG9ubHkg
Zm9yIHR5cGU9dGV4dC4KLSAgICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzVGV4dCgpIGNvbnN0
OwotICAgICAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Q7Ci0g
ICAgICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3Q7Ci0gICAgICAg
IFdFQktJVF9FWFBPUlQgYm9vbCBhdXRvQ29tcGxldGUoKSBjb25zdDsKLSAgICAgICAgV0VCS0lU
X0VYUE9SVCBpbnQgbWF4TGVuZ3RoKCkgY29uc3Q7Ci0gICAgICAgIFdFQktJVF9FWFBPUlQgYm9v
bCBpc0FjdGl2YXRlZFN1Ym1pdCgpIGNvbnN0OwotICAgICAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
c2V0QWN0aXZhdGVkU3VibWl0KGJvb2wpOwotICAgICAgICBXRUJLSVRfRVhQT1JUIGludCBzaXpl
KCkgY29uc3Q7Ci0gICAgICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRWYWx1ZShjb25zdCBXZWJT
dHJpbmcmLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZhbHNlKTsKLSAgICAgICAgV0VCS0lUX0VY
UE9SVCBXZWJTdHJpbmcgdmFsdWUoKSBjb25zdDsKLSAgICAgICAgV0VCS0lUX0VYUE9SVCB2b2lk
IHNldFN1Z2dlc3RlZFZhbHVlKGNvbnN0IFdlYlN0cmluZyYpOwotICAgICAgICBXRUJLSVRfRVhQ
T1JUIFdlYlN0cmluZyBzdWdnZXN0ZWRWYWx1ZSgpIGNvbnN0OwotICAgICAgICBXRUJLSVRfRVhQ
T1JUIHZvaWQgc2V0UGxhY2Vob2xkZXIoY29uc3QgV2ViU3RyaW5nJik7Ci0gICAgICAgIFdFQktJ
VF9FWFBPUlQgV2ViU3RyaW5nIHBsYWNlaG9sZGVyKCkgY29uc3Q7Ci0gICAgICAgIFdFQktJVF9F
WFBPUlQgYm9vbCBpc0F1dG9maWxsZWQoKSBjb25zdDsKLSAgICAgICAgV0VCS0lUX0VYUE9SVCB2
b2lkIHNldEF1dG9maWxsZWQoYm9vbCk7Ci0gICAgICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRT
ZWxlY3Rpb25SYW5nZShpbnQsIGludCk7Ci0gICAgICAgIFdFQktJVF9FWFBPUlQgaW50IHNlbGVj
dGlvblN0YXJ0KCkgY29uc3Q7Ci0gICAgICAgIFdFQktJVF9FWFBPUlQgaW50IHNlbGVjdGlvbkVu
ZCgpIGNvbnN0OwotICAgICAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNWYWxpZFZhbHVlKGNvbnN0
IFdlYlN0cmluZyYpIGNvbnN0OwotICAgICAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNDaGVja2Vk
KCkgY29uc3Q7Ci0KLSAgICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzU3BlZWNoSW5wdXRFbmFi
bGVkKCkgY29uc3Q7Ci0gICAgICAgIFdFQktJVF9FWFBPUlQgU3BlZWNoSW5wdXRTdGF0ZSBnZXRT
cGVlY2hJbnB1dFN0YXRlKCkgY29uc3Q7Ci0gICAgICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzdGFy
dFNwZWVjaElucHV0KCk7Ci0gICAgICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzdG9wU3BlZWNoSW5w
dXQoKTsKLQotICAgICAgICAvLyBFeHBvc2VzIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBtYXhM
ZW5ndGggYXR0cmlidXRlLgotICAgICAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBpbnQgZGVmYXVs
dE1heExlbmd0aCgpOworY2xhc3MgV2ViRGF0YUxpc3RFbGVtZW50OwogCi0jaWYgV0VCS0lUX0lN
UExFTUVOVEFUSU9OCi0gICAgICAgIFdlYklucHV0RWxlbWVudChjb25zdCBXVEY6OlBhc3NSZWZQ
dHI8V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudD4mKTsKLSAgICAgICAgV2ViSW5wdXRFbGVtZW50
JiBvcGVyYXRvcj0oY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1l
bnQ+Jik7Ci0gICAgICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50PigpIGNvbnN0OwotI2VuZGlmCisvLyBQcm92aWRlcyByZWFkb25seSBhY2Nlc3Mg
dG8gc29tZSBwcm9wZXJ0aWVzIG9mIGEgRE9NIGlucHV0IGVsZW1lbnQgbm9kZS4KK2NsYXNzIFdl
YklucHV0RWxlbWVudCA6IHB1YmxpYyBXZWJGb3JtQ29udHJvbEVsZW1lbnQgeworcHVibGljOgor
ICAgIGVudW0gU3BlZWNoSW5wdXRTdGF0ZSB7CisgICAgICAgIElkbGUsCisgICAgICAgIFJlY29y
ZGluZywKKyAgICAgICAgUmVjb2duaXppbmcsCiAgICAgfTsKIAotICAgIFdFQktJVF9FWFBPUlQg
V2ViSW5wdXRFbGVtZW50KiB0b1dlYklucHV0RWxlbWVudChXZWJFbGVtZW50Kik7CisgICAgV2Vi
SW5wdXRFbGVtZW50KCkgOiBXZWJGb3JtQ29udHJvbEVsZW1lbnQoKSB7IH0KKyAgICBXZWJJbnB1
dEVsZW1lbnQoY29uc3QgV2ViSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IFdlYkZvcm1Db250cm9s
RWxlbWVudChlbGVtZW50KSB7IH0KIAotICAgIGlubGluZSBjb25zdCBXZWJJbnB1dEVsZW1lbnQq
IHRvV2ViSW5wdXRFbGVtZW50KGNvbnN0IFdlYkVsZW1lbnQqIGVsZW1lbnQpCisgICAgV2ViSW5w
dXRFbGVtZW50JiBvcGVyYXRvcj0oY29uc3QgV2ViSW5wdXRFbGVtZW50JiBlbGVtZW50KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHRvV2ViSW5wdXRFbGVtZW50KGNvbnN0X2Nhc3Q8V2ViRWxlbWVu
dCo+KGVsZW1lbnQpKTsKKyAgICAgICAgV2ViRm9ybUNvbnRyb2xFbGVtZW50Ojphc3NpZ24oZWxl
bWVudCk7CisgICAgICAgIHJldHVybiAqdGhpczsKICAgICB9CisgICAgdm9pZCBhc3NpZ24oY29u
c3QgV2ViSW5wdXRFbGVtZW50JiBlbGVtZW50KSB7IFdlYkZvcm1Db250cm9sRWxlbWVudDo6YXNz
aWduKGVsZW1lbnQpOyB9CisKKyAgICAvLyBUaGlzIHJldHVybnMgdHJ1ZSBmb3IgYWxsIG9mIHRl
eHRmaWVsZC1sb29raW5nIHR5cGVzIHN1Y2ggYXMgdGV4dCwKKyAgICAvLyBwYXNzd29yZCwgc2Vh
cmNoLCBlbWFpbCwgdXJsLCBhbmQgbnVtYmVyLgorICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc1Rl
eHRGaWVsZCgpIGNvbnN0OworICAgIC8vIFRoaXMgcmV0dXJucyB0cnVlIG9ubHkgZm9yIHR5cGU9
dGV4dC4KKyAgICBXRUJLSVRfRVhQT1JUIGJvb2wgaXNUZXh0KCkgY29uc3Q7CisgICAgV0VCS0lU
X0VYUE9SVCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
Ym9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBib29sIGF1dG9D
b21wbGV0ZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgaW50IG1heExlbmd0aCgpIGNvbnN0
OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBpc0FjdGl2YXRlZFN1Ym1pdCgpIGNvbnN0OworICAg
IFdFQktJVF9FWFBPUlQgdm9pZCBzZXRBY3RpdmF0ZWRTdWJtaXQoYm9vbCk7CisgICAgV0VCS0lU
X0VYUE9SVCBpbnQgc2l6ZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRWYWx1
ZShjb25zdCBXZWJTdHJpbmcmLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZhbHNlKTsKKyAgICBX
RUJLSVRfRVhQT1JUIFdlYlN0cmluZyB2YWx1ZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBzZXRTdWdnZXN0ZWRWYWx1ZShjb25zdCBXZWJTdHJpbmcmKTsKKyAgICBXRUJLSVRfRVhQ
T1JUIFdlYlN0cmluZyBzdWdnZXN0ZWRWYWx1ZSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBzZXRQbGFjZWhvbGRlcihjb25zdCBXZWJTdHJpbmcmKTsKKyAgICBXRUJLSVRfRVhQT1JU
IFdlYlN0cmluZyBwbGFjZWhvbGRlcigpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgYm9vbCBp
c0F1dG9maWxsZWQoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0QXV0b2ZpbGxl
ZChib29sKTsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50LCBp
bnQpOworICAgIFdFQktJVF9FWFBPUlQgaW50IHNlbGVjdGlvblN0YXJ0KCkgY29uc3Q7CisgICAg
V0VCS0lUX0VYUE9SVCBpbnQgc2VsZWN0aW9uRW5kKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9S
VCBib29sIGlzVmFsaWRWYWx1ZShjb25zdCBXZWJTdHJpbmcmKSBjb25zdDsKKyAgICBXRUJLSVRf
RVhQT1JUIGJvb2wgaXNDaGVja2VkKCkgY29uc3Q7CisKKyAgICBXRUJLSVRfRVhQT1JUIFdlYkRh
dGFMaXN0RWxlbWVudCBkYXRhTGlzdCgpIGNvbnN0OworCisgICAgV0VCS0lUX0VYUE9SVCBib29s
IGlzU3BlZWNoSW5wdXRFbmFibGVkKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCBTcGVlY2hJ
bnB1dFN0YXRlIGdldFNwZWVjaElucHV0U3RhdGUoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JU
IHZvaWQgc3RhcnRTcGVlY2hJbnB1dCgpOworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzdG9wU3Bl
ZWNoSW5wdXQoKTsKKworICAgIC8vIEV4cG9zZXMgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIG1h
eExlbmd0aCBhdHRyaWJ1dGUuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgaW50IGRlZmF1bHRN
YXhMZW5ndGgoKTsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIFdlYklucHV0RWxl
bWVudChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudD4mKTsK
KyAgICBXZWJJbnB1dEVsZW1lbnQmIG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudD4mKTsKKyAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8
V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudD4oKSBjb25zdDsKKyNlbmRpZgorfTsKKworV0VCS0lU
X0VYUE9SVCBXZWJJbnB1dEVsZW1lbnQqIHRvV2ViSW5wdXRFbGVtZW50KFdlYkVsZW1lbnQqKTsK
KworaW5saW5lIGNvbnN0IFdlYklucHV0RWxlbWVudCogdG9XZWJJbnB1dEVsZW1lbnQoY29uc3Qg
V2ViRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICByZXR1cm4gdG9XZWJJbnB1dEVsZW1lbnQoY29u
c3RfY2FzdDxXZWJFbGVtZW50Kj4oZWxlbWVudCkpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4IDcyOWY1MTYu
LjgzOGU1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTM2
MCw4ICszNjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+
JiBuYW1lcywKICAgICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIGxhYmVscywKICAg
ICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIGljb25zLAotICAgICAgICBjb25zdCBX
ZWJWZWN0b3I8aW50PiYgdW5pcXVlSURzLAotICAgICAgICBpbnQgc2VwYXJhdG9ySW5kZXgpID0g
MDsKKyAgICAgICAgY29uc3QgV2ViVmVjdG9yPGludD4mIGl0ZW1JRHMpID0gMDsKIAogICAgIC8v
IEhpZGVzIGFueSBwb3B1cCAoc3VnZ2VzdGlvbnMsIHNlbGVjdHMuLi4pIHRoYXQgbWlnaHQgYmUg
c2hvd2luZy4KICAgICB2aXJ0dWFsIHZvaWQgaGlkZVBvcHVwcygpID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcApp
bmRleCBjODRlYTEyLi41NzMyNzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwCkBAIC01Miw4ICs1Miw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIEF1dG9maWxsUG9w
dXBNZW51Q2xpZW50OjpBdXRvZmlsbFBvcHVwTWVudUNsaWVudCgpCi0gICAgOiBtX3NlcGFyYXRv
ckluZGV4KC0xKQotICAgICwgbV9zZWxlY3RlZEluZGV4KC0xKQorICAgIDogbV9zZWxlY3RlZElu
ZGV4KC0xKQogICAgICwgbV90ZXh0RmllbGQoMCkKIHsKIH0KQEAgLTY0LDM3ICs2MywyNSBAQCBB
dXRvZmlsbFBvcHVwTWVudUNsaWVudDo6fkF1dG9maWxsUG9wdXBNZW51Q2xpZW50KCkKIAogdW5z
aWduZWQgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OmdldFN1Z2dlc3Rpb25zQ291bnQoKSBjb25z
dAogewotICAgIHJldHVybiBtX25hbWVzLnNpemUoKSArICgobV9zZXBhcmF0b3JJbmRleCA9PSAt
MSkgPyAwIDogMSk7CisgICAgcmV0dXJuIG1fbmFtZXMuc2l6ZSgpOwogfQogCiBXZWJTdHJpbmcg
QXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OmdldFN1Z2dlc3Rpb24odW5zaWduZWQgbGlzdEluZGV4
KSBjb25zdAogewotICAgIGludCBpbmRleCA9IGNvbnZlcnRMaXN0SW5kZXhUb0ludGVybmFsSW5k
ZXgobGlzdEluZGV4KTsKLSAgICBpZiAoaW5kZXggPT0gLTEpCi0gICAgICAgIHJldHVybiBXZWJT
dHJpbmcoKTsKLQotICAgIEFTU0VSVChpbmRleCA+PSAwICYmIHN0YXRpY19jYXN0PHNpemVfdD4o
aW5kZXgpIDwgbV9uYW1lcy5zaXplKCkpOwotICAgIHJldHVybiBtX25hbWVzW2luZGV4XTsKKyAg
ICBBU1NFUlQobGlzdEluZGV4IDwgbV9uYW1lcy5zaXplKCkpOworICAgIHJldHVybiBtX25hbWVz
W2xpc3RJbmRleF07CiB9CiAKIFdlYlN0cmluZyBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Z2V0
TGFiZWwodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAogewotICAgIGludCBpbmRleCA9IGNvbnZl
cnRMaXN0SW5kZXhUb0ludGVybmFsSW5kZXgobGlzdEluZGV4KTsKLSAgICBpZiAoaW5kZXggPT0g
LTEpCi0gICAgICAgIHJldHVybiBXZWJTdHJpbmcoKTsKLQotICAgIEFTU0VSVChpbmRleCA+PSAw
ICYmIHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpIDwgbV9sYWJlbHMuc2l6ZSgpKTsKLSAgICBy
ZXR1cm4gbV9sYWJlbHNbaW5kZXhdOworICAgIEFTU0VSVChsaXN0SW5kZXggPCBtX2xhYmVscy5z
aXplKCkpOworICAgIHJldHVybiBtX2xhYmVsc1tsaXN0SW5kZXhdOwogfQogCiBXZWJTdHJpbmcg
QXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OmdldEljb24odW5zaWduZWQgbGlzdEluZGV4KSBjb25z
dAogewotICAgIGludCBpbmRleCA9IGNvbnZlcnRMaXN0SW5kZXhUb0ludGVybmFsSW5kZXgobGlz
dEluZGV4KTsKLSAgICBpZiAoaW5kZXggPT0gLTEpCi0gICAgICAgIHJldHVybiBXZWJTdHJpbmco
KTsKLQotICAgIEFTU0VSVChpbmRleCA+PSAwICYmIHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgp
IDwgbV9pY29ucy5zaXplKCkpOwotICAgIHJldHVybiBtX2ljb25zW2luZGV4XTsKKyAgICBBU1NF
UlQobGlzdEluZGV4IDwgbV9pY29ucy5zaXplKCkpOworICAgIHJldHVybiBtX2ljb25zW2xpc3RJ
bmRleF07CiB9CiAKIHZvaWQgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OnJlbW92ZVN1Z2dlc3Rp
b25BdEluZGV4KHVuc2lnbmVkIGxpc3RJbmRleCkKQEAgLTEwMiwyNiArODksMTcgQEAgdm9pZCBB
dXRvZmlsbFBvcHVwTWVudUNsaWVudDo6cmVtb3ZlU3VnZ2VzdGlvbkF0SW5kZXgodW5zaWduZWQg
bGlzdEluZGV4KQogICAgIGlmICghY2FuUmVtb3ZlU3VnZ2VzdGlvbkF0SW5kZXgobGlzdEluZGV4
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW50IGluZGV4ID0gY29udmVydExpc3RJbmRleFRv
SW50ZXJuYWxJbmRleChsaXN0SW5kZXgpOwotCi0gICAgQVNTRVJUKHN0YXRpY19jYXN0PHVuc2ln
bmVkPihpbmRleCkgPCBtX25hbWVzLnNpemUoKSk7Ci0KLSAgICBtX25hbWVzLnJlbW92ZShpbmRl
eCk7Ci0gICAgbV9sYWJlbHMucmVtb3ZlKGluZGV4KTsKLSAgICBtX2ljb25zLnJlbW92ZShpbmRl
eCk7Ci0gICAgbV91bmlxdWVJRHMucmVtb3ZlKGluZGV4KTsKKyAgICBBU1NFUlQobGlzdEluZGV4
IDwgbV9uYW1lcy5zaXplKCkpOwogCi0gICAgLy8gU2hpZnQgdGhlIHNlcGFyYXRvciBpbmRleCBp
ZiBuZWNlc3NhcnkuCi0gICAgaWYgKG1fc2VwYXJhdG9ySW5kZXggIT0gLTEpCi0gICAgICAgIG1f
c2VwYXJhdG9ySW5kZXgtLTsKKyAgICBtX25hbWVzLnJlbW92ZShsaXN0SW5kZXgpOworICAgIG1f
bGFiZWxzLnJlbW92ZShsaXN0SW5kZXgpOworICAgIG1faWNvbnMucmVtb3ZlKGxpc3RJbmRleCk7
CisgICAgbV9pdGVtSURzLnJlbW92ZShsaXN0SW5kZXgpOwogfQogCiBib29sIEF1dG9maWxsUG9w
dXBNZW51Q2xpZW50OjpjYW5SZW1vdmVTdWdnZXN0aW9uQXRJbmRleCh1bnNpZ25lZCBsaXN0SW5k
ZXgpCiB7Ci0gICAgLy8gT25seSBhbGxvdyBkZWxldGlvbiBvZiBpdGVtcyBiZWZvcmUgdGhlIHNl
cGFyYXRvciB0aGF0IGhhdmUgdW5pcXVlIGlkIDAKLSAgICAvLyAoaS5lLiBhcmUgYXV0b2NvbXBs
ZXRlIHJhdGhlciB0aGFuIGF1dG9maWxsIGl0ZW1zKS4KLSAgICBpbnQgaW5kZXggPSBjb252ZXJ0
TGlzdEluZGV4VG9JbnRlcm5hbEluZGV4KGxpc3RJbmRleCk7Ci0gICAgcmV0dXJuICFtX3VuaXF1
ZUlEc1tpbmRleF0gJiYgKG1fc2VwYXJhdG9ySW5kZXggPT0gLTEgfHwgbGlzdEluZGV4IDwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KG1fc2VwYXJhdG9ySW5kZXgpKTsKKyAgICByZXR1cm4gbV9pdGVt
SURzW2xpc3RJbmRleF0gPT0gQXV0b2NvbXBsZXRlRW50cnlNZW51SXRlbUlEIHx8IG1faXRlbUlE
c1tsaXN0SW5kZXhdID09IFBhc3N3b3JkRW50cnlNZW51SXRlbUlEOwogfQogCiB2b2lkIEF1dG9m
aWxsUG9wdXBNZW51Q2xpZW50Ojp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4LCBib29s
IGZpcmVFdmVudHMpCkBAIC0xMzAsMTUgKzEwOCwxMiBAQCB2b2lkIEF1dG9maWxsUG9wdXBNZW51
Q2xpZW50Ojp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4LCBib29sIGZpcmVFdmVudHMp
CiAgICAgaWYgKCF3ZWJWaWV3KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9zZXBhcmF0
b3JJbmRleCAhPSAtMSAmJiBsaXN0SW5kZXggPiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9zZXBh
cmF0b3JJbmRleCkpCi0gICAgICAgIC0tbGlzdEluZGV4OwotCiAgICAgQVNTRVJUKGxpc3RJbmRl
eCA8IG1fbmFtZXMuc2l6ZSgpKTsKIAogICAgIHdlYlZpZXctPmF1dG9maWxsQ2xpZW50KCktPmRp
ZEFjY2VwdEF1dG9maWxsU3VnZ2VzdGlvbihXZWJOb2RlKGdldFRleHRGaWVsZCgpKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9u
YW1lc1tsaXN0SW5kZXhdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX2xhYmVsc1tsaXN0SW5kZXhdLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3VuaXF1ZUlEc1ts
aXN0SW5kZXhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2l0ZW1JRHNbbGlzdEluZGV4XSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdEluZGV4KTsKIH0KIApA
QCAtMTQ4LDE1ICsxMjMsMTIgQEAgdm9pZCBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6c2VsZWN0
aW9uQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmlyZUV2ZW4KICAgICBpZiAoIXdl
YlZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3NlcGFyYXRvckluZGV4ICE9IC0x
ICYmIGxpc3RJbmRleCA+IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX3NlcGFyYXRvckluZGV4KSkK
LSAgICAgICAgLS1saXN0SW5kZXg7Ci0KICAgICBBU1NFUlQobGlzdEluZGV4IDwgbV9uYW1lcy5z
aXplKCkpOwogCiAgICAgd2ViVmlldy0+YXV0b2ZpbGxDbGllbnQoKS0+ZGlkU2VsZWN0QXV0b2Zp
bGxTdWdnZXN0aW9uKFdlYk5vZGUoZ2V0VGV4dEZpZWxkKCkpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX25hbWVzW2xpc3RJbmRl
eF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fbGFiZWxzW2xpc3RJbmRleF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fdW5pcXVlSURzW2xpc3RJbmRleF0pOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2l0ZW1JRHNbbGlzdEluZGV4XSk7CiB9CiAKIHZvaWQgQXV0b2ZpbGxQb3B1cE1lbnVDbGll
bnQ6OnNlbGVjdGlvbkNsZWFyZWQoKQpAQCAtMjI4LDE3ICsyMDAsMTIgQEAgdm9pZCBBdXRvZmls
bFBvcHVwTWVudUNsaWVudDo6cG9wdXBEaWRIaWRlKCkKIAogYm9vbCBBdXRvZmlsbFBvcHVwTWVu
dUNsaWVudDo6aXRlbUlzU2VwYXJhdG9yKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gKG1fc2VwYXJhdG9ySW5kZXggIT0gLTEgJiYgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KG1fc2VwYXJhdG9ySW5kZXgpID09IGxpc3RJbmRleCk7CisgICAgcmV0dXJuIG1faXRlbUlEc1ts
aXN0SW5kZXhdID09IFNlcGFyYXRvck1lbnVJdGVtSUQ7CiB9CiAKIGJvb2wgQXV0b2ZpbGxQb3B1
cE1lbnVDbGllbnQ6Oml0ZW1Jc1dhcm5pbmcodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdAogewot
ICAgIGludCBpbmRleCA9IGNvbnZlcnRMaXN0SW5kZXhUb0ludGVybmFsSW5kZXgobGlzdEluZGV4
KTsKLSAgICBpZiAoaW5kZXggPT0gLTEpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEFT
U0VSVChpbmRleCA+PSAwICYmIHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpIDwgbV91bmlxdWVJ
RHMuc2l6ZSgpKTsKLSAgICByZXR1cm4gbV91bmlxdWVJRHNbaW5kZXhdIDwgMDsKKyAgICByZXR1
cm4gbV9pdGVtSURzW2xpc3RJbmRleF0gPT0gV2FybmluZ01lc3NhZ2VNZW51SXRlbUlEOwogfQog
CiB2b2lkIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50OjpzZXRUZXh0RnJvbUl0ZW0odW5zaWduZWQg
bGlzdEluZGV4KQpAQCAtMjY5LDIwICsyMzYsMTggQEAgdm9pZCBBdXRvZmlsbFBvcHVwTWVudUNs
aWVudDo6aW5pdGlhbGl6ZSgKICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgbmFtZXMs
CiAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIGxhYmVscywKICAgICBjb25zdCBXZWJW
ZWN0b3I8V2ViU3RyaW5nPiYgaWNvbnMsCi0gICAgY29uc3QgV2ViVmVjdG9yPGludD4mIHVuaXF1
ZUlEcywKLSAgICBpbnQgc2VwYXJhdG9ySW5kZXgpCisgICAgY29uc3QgV2ViVmVjdG9yPGludD4m
IGl0ZW1JRHMpCiB7CiAgICAgQVNTRVJUKG5hbWVzLnNpemUoKSA9PSBsYWJlbHMuc2l6ZSgpKTsK
ICAgICBBU1NFUlQobmFtZXMuc2l6ZSgpID09IGljb25zLnNpemUoKSk7Ci0gICAgQVNTRVJUKG5h
bWVzLnNpemUoKSA9PSB1bmlxdWVJRHMuc2l6ZSgpKTsKLSAgICBBU1NFUlQoc2VwYXJhdG9ySW5k
ZXggPCBzdGF0aWNfY2FzdDxpbnQ+KG5hbWVzLnNpemUoKSkpOworICAgIEFTU0VSVChuYW1lcy5z
aXplKCkgPT0gaXRlbUlEcy5zaXplKCkpOwogCiAgICAgbV9zZWxlY3RlZEluZGV4ID0gLTE7CiAg
ICAgbV90ZXh0RmllbGQgPSB0ZXh0RmllbGQ7CiAKICAgICAvLyBUaGUgc3VnZ2VzdGlvbnMgbXVz
dCBiZSBzZXQgYmVmb3JlIGluaXRpYWxpemluZyB0aGUKICAgICAvLyBBdXRvZmlsbFBvcHVwTWVu
dUNsaWVudC4KLSAgICBzZXRTdWdnZXN0aW9ucyhuYW1lcywgbGFiZWxzLCBpY29ucywgdW5pcXVl
SURzLCBzZXBhcmF0b3JJbmRleCk7CisgICAgc2V0U3VnZ2VzdGlvbnMobmFtZXMsIGxhYmVscywg
aWNvbnMsIGl0ZW1JRHMpOwogCiAgICAgRm9udERlc2NyaXB0aW9uIHJlZ3VsYXJGb250RGVzY3Jp
cHRpb247CiAgICAgUmVuZGVyVGhlbWU6OmRlZmF1bHRUaGVtZSgpLT5zeXN0ZW1Gb250KENTU1Zh
bHVlV2Via2l0Q29udHJvbCwKQEAgLTMxMyw0MiArMjc4LDI4IEBAIHZvaWQgQXV0b2ZpbGxQb3B1
cE1lbnVDbGllbnQ6OmluaXRpYWxpemUoCiB2b2lkIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50Ojpz
ZXRTdWdnZXN0aW9ucyhjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgbmFtZXMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2Vi
U3RyaW5nPiYgbGFiZWxzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgV2ViVmVjdG9yPFdlYlN0cmluZz4mIGljb25zLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViVmVjdG9yPGludD4mIHVuaXF1
ZUlEcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBz
ZXBhcmF0b3JJbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFdlYlZlY3RvcjxpbnQ+JiBpdGVtSURzKQogewogICAgIEFTU0VSVChuYW1lcy5z
aXplKCkgPT0gbGFiZWxzLnNpemUoKSk7CiAgICAgQVNTRVJUKG5hbWVzLnNpemUoKSA9PSBpY29u
cy5zaXplKCkpOwotICAgIEFTU0VSVChuYW1lcy5zaXplKCkgPT0gdW5pcXVlSURzLnNpemUoKSk7
Ci0gICAgQVNTRVJUKHNlcGFyYXRvckluZGV4IDwgc3RhdGljX2Nhc3Q8aW50PihuYW1lcy5zaXpl
KCkpKTsKKyAgICBBU1NFUlQobmFtZXMuc2l6ZSgpID09IGl0ZW1JRHMuc2l6ZSgpKTsKIAogICAg
IG1fbmFtZXMuY2xlYXIoKTsKICAgICBtX2xhYmVscy5jbGVhcigpOwogICAgIG1faWNvbnMuY2xl
YXIoKTsKLSAgICBtX3VuaXF1ZUlEcy5jbGVhcigpOworICAgIG1faXRlbUlEcy5jbGVhcigpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFtZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
bV9uYW1lcy5hcHBlbmQobmFtZXNbaV0pOwogICAgICAgICBtX2xhYmVscy5hcHBlbmQobGFiZWxz
W2ldKTsKICAgICAgICAgbV9pY29ucy5hcHBlbmQoaWNvbnNbaV0pOwotICAgICAgICBtX3VuaXF1
ZUlEcy5hcHBlbmQodW5pcXVlSURzW2ldKTsKKyAgICAgICAgbV9pdGVtSURzLmFwcGVuZChpdGVt
SURzW2ldKTsKICAgICB9CiAKLSAgICBtX3NlcGFyYXRvckluZGV4ID0gc2VwYXJhdG9ySW5kZXg7
Ci0KICAgICAvLyBUcnkgdG8gcHJlc2VydmUgc2VsZWN0aW9uIGlmIHBvc3NpYmxlLgogICAgIGlm
IChnZXRTZWxlY3RlZEluZGV4KCkgPj0gc3RhdGljX2Nhc3Q8aW50PihuYW1lcy5zaXplKCkpKQog
ICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTsKIH0KIAotaW50IEF1dG9maWxsUG9wdXBNZW51
Q2xpZW50Ojpjb252ZXJ0TGlzdEluZGV4VG9JbnRlcm5hbEluZGV4KHVuc2lnbmVkIGxpc3RJbmRl
eCkgY29uc3QKLXsKLSAgICBpZiAobGlzdEluZGV4ID09IHN0YXRpY19jYXN0PHVuc2lnbmVkPiht
X3NlcGFyYXRvckluZGV4KSkKLSAgICAgICAgcmV0dXJuIC0xOwotCi0gICAgaWYgKG1fc2VwYXJh
dG9ySW5kZXggPT0gLTEgfHwgbGlzdEluZGV4IDwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fc2Vw
YXJhdG9ySW5kZXgpKQotICAgICAgICByZXR1cm4gbGlzdEluZGV4OwotICAgIHJldHVybiBsaXN0
SW5kZXggLSAxOwotfQotCiBXZWJWaWV3SW1wbCogQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6Omdl
dFdlYlZpZXcoKSBjb25zdAogewogICAgIEZyYW1lKiBmcmFtZSA9IG1fdGV4dEZpZWxkLT5kb2N1
bWVudCgpLT5mcmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
QXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1
dG9maWxsUG9wdXBNZW51Q2xpZW50LmgKaW5kZXggNzNjYzE4MC4uZjU2NTZlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5o
CkBAIC0xMDYsMjAgKzEwNiwxNCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBuYW1lcywKICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
V2ViVmVjdG9yPFdlYlN0cmluZz4mIGxhYmVscywKICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
V2ViVmVjdG9yPFdlYlN0cmluZz4mIGljb25zLAotICAgICAgICAgICAgICAgICAgICBjb25zdCBX
ZWJWZWN0b3I8aW50PiYgdW5pcXVlSURzLAotICAgICAgICAgICAgICAgICAgICBpbnQgc2VwYXJh
dG9ySW5kZXgpOworICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8aW50PiYgaXRl
bUlEcyk7CiAKICAgICB2b2lkIHNldFN1Z2dlc3Rpb25zKGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJp
bmc+JiBuYW1lcywKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJT
dHJpbmc+JiBsYWJlbHMsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0b3I8
V2ViU3RyaW5nPiYgaWNvbnMsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXZWJWZWN0
b3I8aW50PiYgdW5pcXVlSURzLAotICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNlcGFyYXRv
ckluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxpbnQ+JiBp
dGVtSURzKTsKIAogcHJpdmF0ZToKLSAgICAvLyBDb252ZXJ0IHRoZSBzcGVjaWZpZWQgaW5kZXgg
ZnJvbSBhbiBpbmRleCBpbnRvIHRoZSB2aXNpYmxlIGxpc3QgKHdoaWNoIG1pZ2h0Ci0gICAgLy8g
aW5jbHVkZSBhIHNlcGFyYXRvciBlbnRyeSkgdG8gYW4gaW5kZXggdG8gfG1fbmFtZXN8IGFuZCB8
bV9sYWJlbHN8LgotICAgIC8vIFJldHVybnMgLTEgaWYgdGhlIGdpdmVuIGluZGV4IHBvaW50cyB0
byB0aGUgc2VwYXJhdG9yLgotICAgIGludCBjb252ZXJ0TGlzdEluZGV4VG9JbnRlcm5hbEluZGV4
KHVuc2lnbmVkKSBjb25zdDsKICAgICBXZWJWaWV3SW1wbCogZ2V0V2ViVmlldygpIGNvbnN0Owog
ICAgIFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQqIGdldFRleHRGaWVsZCgpIGNvbnN0IHsgcmV0
dXJuIG1fdGV4dEZpZWxkLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6UmVuZGVyU3R5bGUqIHRleHRG
aWVsZFN0eWxlKCkgY29uc3Q7CkBAIC0xMzMsMTAgKzEyNyw3IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPFdURjo6U3RyaW5nPiBtX25hbWVzOwogICAgIFZlY3RvcjxXVEY6OlN0cmluZz4gbV9sYWJl
bHM7CiAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBtX2ljb25zOwotICAgIFZlY3RvcjxpbnQ+IG1f
dW5pcXVlSURzOwotCi0gICAgLy8gVGhlIGluZGV4IG9mIHRoZSBzZXBhcmF0b3IuICAtMSBpZiB0
aGVyZSBpcyBubyBzZXBhcmF0b3IuCi0gICAgaW50IG1fc2VwYXJhdG9ySW5kZXg7CisgICAgVmVj
dG9yPGludD4gbV9pdGVtSURzOwogCiAgICAgLy8gVGhlIGluZGV4IG9mIHRoZSBzZWxlY3RlZCBp
dGVtLiAgLTEgaWYgdGhlcmUgaXMgbm8gc2VsZWN0ZWQgaXRlbS4KICAgICBpbnQgbV9zZWxlY3Rl
ZEluZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGF0YUxp
c3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRhdGFMaXN0RWxl
bWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTY5NDI4ZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRhdGFMaXN0RWxl
bWVudC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJEYXRhTGlzdEVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJXZWJOb2RlQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
V2ViTm9kZUNvbGxlY3Rpb24gV2ViRGF0YUxpc3RFbGVtZW50OjpvcHRpb25zKCkKK3sKKyAgICBI
VE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbiA9IHVud3JhcDxIVE1MRGF0YUxpc3RFbGVtZW50Pigp
LT5vcHRpb25zKCk7CisgICAgcmV0dXJuIFdlYk5vZGVDb2xsZWN0aW9uKGNvbGxlY3Rpb24pOwor
fQorCitXZWJEYXRhTGlzdEVsZW1lbnQ6OldlYkRhdGFMaXN0RWxlbWVudChjb25zdCBQYXNzUmVm
UHRyPEhUTUxEYXRhTGlzdEVsZW1lbnQ+JiBlbGVtKQorICAgIDogV2ViRWxlbWVudChlbGVtKQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGY1ZDUyZGEuLjRmNWUzZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFbGVtZW50LmNwcApAQCAtMzEsOSAr
MzEsMTEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQu
aCIKIAorI2luY2x1ZGUgIkhUTUxEYXRhTGlzdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5w
dXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiVGV4dENvbnRy
b2xJbm5lckVsZW1lbnRzLmgiCisjaW5jbHVkZSAiV2ViRGF0YUxpc3RFbGVtZW50LmgiCiAjaW5j
bHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
IApAQCAtMTUxLDYgKzE1MywxNSBAQCBib29sIFdlYklucHV0RWxlbWVudDo6aXNDaGVja2VkKCkg
Y29uc3QKICAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+Y2hlY2tl
ZCgpOwogfQogCitXZWJEYXRhTGlzdEVsZW1lbnQgV2ViSW5wdXRFbGVtZW50OjpkYXRhTGlzdCgp
IGNvbnN0Cit7CisjaWYgRU5BQkxFKERBVEFMSVNUKQorICAgIHJldHVybiBXZWJEYXRhTGlzdEVs
ZW1lbnQoc3RhdGljX2Nhc3Q8SFRNTERhdGFMaXN0RWxlbWVudCo+KGNvbnN0VW53cmFwPEhUTUxJ
bnB1dEVsZW1lbnQ+KCktPmxpc3QoKSkpOworI2Vsc2UKKyAgICByZXR1cm4gV2ViRGF0YUxpc3RF
bGVtZW50KCk7CisjZW5kaWYKK30KKwogYm9vbCBXZWJJbnB1dEVsZW1lbnQ6OmlzU3BlZWNoSW5w
dXRFbmFibGVkKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDAzMGQ4ZTEuLjIxOGRkMzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTI3OTgs
MTIgKzI3OTgsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3Rpb25z
KAogICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+JiBuYW1lcywKICAgICBjb25zdCBXZWJW
ZWN0b3I8V2ViU3RyaW5nPiYgbGFiZWxzLAogICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJTdHJpbmc+
JiBpY29ucywKLSAgICBjb25zdCBXZWJWZWN0b3I8aW50PiYgdW5pcXVlSURzLAotICAgIGludCBz
ZXBhcmF0b3JJbmRleCkKKyAgICBjb25zdCBXZWJWZWN0b3I8aW50PiYgaXRlbUlEcykKIHsKICAg
ICBBU1NFUlQobmFtZXMuc2l6ZSgpID09IGxhYmVscy5zaXplKCkpOwotICAgIEFTU0VSVChuYW1l
cy5zaXplKCkgPT0gdW5pcXVlSURzLnNpemUoKSk7Ci0gICAgQVNTRVJUKHNlcGFyYXRvckluZGV4
IDwgc3RhdGljX2Nhc3Q8aW50PihuYW1lcy5zaXplKCkpKTsKKyAgICBBU1NFUlQobmFtZXMuc2l6
ZSgpID09IGl0ZW1JRHMuc2l6ZSgpKTsKIAogICAgIGlmIChuYW1lcy5pc0VtcHR5KCkpIHsKICAg
ICAgICAgaGlkZUF1dG9maWxsUG9wdXAoKTsKQEAgLTI4MjgsNyArMjgyNiw3IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucygKICAgICAgICAgbV9hdXRvZmlsbFBv
cHVwQ2xpZW50ID0gYWRvcHRQdHIobmV3IEF1dG9maWxsUG9wdXBNZW51Q2xpZW50KTsKIAogICAg
IG1fYXV0b2ZpbGxQb3B1cENsaWVudC0+aW5pdGlhbGl6ZSgKLSAgICAgICAgaW5wdXRFbGVtLCBu
YW1lcywgbGFiZWxzLCBpY29ucywgdW5pcXVlSURzLCBzZXBhcmF0b3JJbmRleCk7CisgICAgICAg
IGlucHV0RWxlbSwgbmFtZXMsIGxhYmVscywgaWNvbnMsIGl0ZW1JRHMpOwogCiAgICAgaWYgKCFt
X2F1dG9maWxsUG9wdXApIHsKICAgICAgICAgUG9wdXBDb250YWluZXJTZXR0aW5ncyBwb3B1cFNl
dHRpbmdzID0gYXV0b2ZpbGxQb3B1cFNldHRpbmdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmgKaW5kZXggODAwZTUxMS4uN2RkMWIwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0yNDMsOCArMjQzLDcgQEAgcHVibGljOgogICAg
ICAgICBjb25zdCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgbmFtZXMsCiAgICAgICAgIGNvbnN0IFdl
YlZlY3RvcjxXZWJTdHJpbmc+JiBsYWJlbHMsCiAgICAgICAgIGNvbnN0IFdlYlZlY3RvcjxXZWJT
dHJpbmc+JiBpY29ucywKLSAgICAgICAgY29uc3QgV2ViVmVjdG9yPGludD4mIHVuaXF1ZUlEcywK
LSAgICAgICAgaW50IHNlcGFyYXRvckluZGV4KTsKKyAgICAgICAgY29uc3QgV2ViVmVjdG9yPGlu
dD4mIGl0ZW1JRHMpOwogICAgIHZpcnR1YWwgdm9pZCBoaWRlUG9wdXBzKCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldFNjcm9sbGJhckNvbG9ycyh1bnNpZ25lZCBpbmFjdGl2ZUNvbG9yLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZlQ29sb3IsCg==
</data>
<flag name="commit-queue"
          id="141767"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136897</attachid>
            <date>2012-04-12 06:54:30 -0700</date>
            <delta_ts>2012-04-12 06:55:32 -0700</delta_ts>
            <desc>Reverted indentation fix</desc>
            <filename>datalist-add-datalist.diff</filename>
            <type>text/plain</type>
            <size>8737</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMmZjM2MxMy4uNGFiOWZjOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMi0wNC0xMiAgS2Vpc2hpIEhh
dHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEludHJvZHVj
ZSBXZWJEYXRhTGlzdEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzNzYyCisKKyAgICAgICAgSW50cm9kdWNlIFdlYkRhdGFMaXN0RWxlbWVu
dCBhbmQgZXhwb3NlIEhUTUxEYXRhTGlzdEVsZW1lbnQgdG8gY2hyb21pdW0uCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOiBBZGRl
ZCBXZWJEYXRhTGlzdEVsZW1lbnQue2NwcCxofQorICAgICAgICAqIHB1YmxpYy9XZWJEYXRhTGlz
dEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJEYXRhTGlzdEVsZW1lbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJEYXRhTGlzdEVsZW1lbnQ6OldlYkRhdGFMaXN0RWxlbWVudCk6CisgICAg
ICAgICogcHVibGljL1dlYklucHV0RWxlbWVudC5oOgorICAgICAgICAqIHNyYy9XZWJEYXRhTGlz
dEVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YUxpc3RFbGVtZW50
OjpvcHRpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YUxpc3RFbGVtZW50OjpXZWJEYXRh
TGlzdEVsZW1lbnQpOgorICAgICAgICAqIHNyYy9XZWJJbnB1dEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnB1dEVsZW1lbnQ6OmRhdGFMaXN0KTogQWRkZWQuCisKIDIwMTItMDQt
MTIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1
bV0gTW92ZSBzb21lIGNvZGUgb2YgV2ViVmlld0ltcGwgYW5kIFdlYkZyYW1lSW1wbCB0byBQYWdl
V2lkZ2V0RGVsZWdhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA1YTY1ZjM1Li4z
ZDgzOWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMjAsNiArMTIwLDcgQEAK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYkNvbnRleHRNZW51RGF0YS5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkNyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCcsCiAg
ICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDdXJzb3JJbmZvLmgnLAorICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViRGF0YUxpc3RFbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViRE9NRXZlbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJET01FdmVudExpc3Rl
bmVyLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRE9NTWVzc2FnZUV2ZW50LmgnLApA
QCAtNTIxLDYgKzUyMiw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJET01NdXRhdGlvbkV2
ZW50LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJET01TdHJpbmdMaXN0LmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJEYXRhYmFzZS5jcHAnLAorICAgICAgICAgICAgICAgICdz
cmMvV2ViRGF0YUxpc3RFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJEYXRh
U291cmNlSW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViRGF0YVNvdXJjZUltcGwu
aCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGF0YUxpc3RFbGVtZW50
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJEYXRhTGlzdEVsZW1lbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGYwYzc4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRGF0YUxpc3RFbGVtZW50LmgK
QEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViRGF0YUxpc3RFbGVtZW50X2gKKyNkZWZpbmUgV2Vi
RGF0YUxpc3RFbGVtZW50X2gKKworI2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKKworI2lmIFdFQktJ
VF9JTVBMRU1FTlRBVElPTgorbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBIVE1MRGF0YUxpc3RF
bGVtZW50OyB9CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk5vZGVD
b2xsZWN0aW9uOworCisvLyBQcm92aWRlcyByZWFkb25seSBhY2Nlc3MgdG8gc29tZSBwcm9wZXJ0
aWVzIG9mIGEgRE9NIGRhdGFsaXN0IGVsZW1lbnQgbm9kZS4KK2NsYXNzIFdlYkRhdGFMaXN0RWxl
bWVudCA6IHB1YmxpYyBXZWJFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBXZWJEYXRhTGlzdEVsZW1l
bnQoKSA6IFdlYkVsZW1lbnQoKSB7IH0KKyAgICBXZWJEYXRhTGlzdEVsZW1lbnQoY29uc3QgV2Vi
RGF0YUxpc3RFbGVtZW50JiBlbGVtZW50KSA6IFdlYkVsZW1lbnQoZWxlbWVudCkgeyB9CisKKyAg
ICBXRUJLSVRfRVhQT1JUIFdlYk5vZGVDb2xsZWN0aW9uIG9wdGlvbnMoKTsKKworI2lmIFdFQktJ
VF9JTVBMRU1FTlRBVElPTgorICAgIFdlYkRhdGFMaXN0RWxlbWVudChjb25zdCBXVEY6OlBhc3NS
ZWZQdHI8V2ViQ29yZTo6SFRNTERhdGFMaXN0RWxlbWVudD4mKTsKKyNlbmRpZgorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJEYXRhTGlzdEVsZW1lbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEVsZW1lbnQuaAppbmRleCAz
ZDFmZmI2Li40YjRiNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJbnB1dEVsZW1lbnQuaApAQCAtODQsNiArODQsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAg
ICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzVmFsaWRWYWx1ZShjb25zdCBXZWJTdHJpbmcmKSBj
b25zdDsKICAgICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzQ2hlY2tlZCgpIGNvbnN0OwogCisg
ICAgICAgIFdFQktJVF9FWFBPUlQgV2ViRGF0YUxpc3RFbGVtZW50IGRhdGFMaXN0KCkgY29uc3Q7
CisKICAgICAgICAgV0VCS0lUX0VYUE9SVCBib29sIGlzU3BlZWNoSW5wdXRFbmFibGVkKCkgY29u
c3Q7CiAgICAgICAgIFdFQktJVF9FWFBPUlQgU3BlZWNoSW5wdXRTdGF0ZSBnZXRTcGVlY2hJbnB1
dFN0YXRlKCkgY29uc3Q7CiAgICAgICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzdGFydFNwZWVjaElu
cHV0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEYXRhTGlz
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGF0YUxpc3RFbGVt
ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzViMzUyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGF0YUxpc3RFbGVt
ZW50LmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YkRhdGFMaXN0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgor
I2luY2x1ZGUgIldlYk5vZGVDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitX
ZWJOb2RlQ29sbGVjdGlvbiBXZWJEYXRhTGlzdEVsZW1lbnQ6Om9wdGlvbnMoKQoreworI2lmIEVO
QUJMRShEQVRBTElTVCkKKyAgICBIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbiA9IHVud3JhcDxI
VE1MRGF0YUxpc3RFbGVtZW50PigpLT5vcHRpb25zKCk7CisgICAgcmV0dXJuIFdlYk5vZGVDb2xs
ZWN0aW9uKGNvbGxlY3Rpb24pOworI2Vsc2UKKyAgICByZXR1cm4gV2ViTm9kZUNvbGxlY3Rpb24o
KTsKKyNlbmRpZgorfQorCisjaWYgRU5BQkxFKERBVEFMSVNUKQorV2ViRGF0YUxpc3RFbGVtZW50
OjpXZWJEYXRhTGlzdEVsZW1lbnQoY29uc3QgUGFzc1JlZlB0cjxIVE1MRGF0YUxpc3RFbGVtZW50
PiYgZWxlbSkKKyAgICA6IFdlYkVsZW1lbnQoZWxlbSkKK3sKK30KKyNlbHNlCitXZWJEYXRhTGlz
dEVsZW1lbnQ6OldlYkRhdGFMaXN0RWxlbWVudChjb25zdCBQYXNzUmVmUHRyPEhUTUxEYXRhTGlz
dEVsZW1lbnQ+JiBlbGVtKQoreworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAKaW5kZXgg
ZjVkNTJkYS4uNGY1ZTNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
bnB1dEVsZW1lbnQuY3BwCkBAIC0zMSw5ICszMSwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgogCisjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCIKKyNpbmNsdWRlICJX
ZWJEYXRhTGlzdEVsZW1lbnQuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCkBAIC0xNTEsNiArMTUzLDE1IEBAIGJvb2wgV2Vi
SW5wdXRFbGVtZW50Ojppc0NoZWNrZWQoKSBjb25zdAogICAgIHJldHVybiBjb25zdFVud3JhcDxI
VE1MSW5wdXRFbGVtZW50PigpLT5jaGVja2VkKCk7CiB9CiAKK1dlYkRhdGFMaXN0RWxlbWVudCBX
ZWJJbnB1dEVsZW1lbnQ6OmRhdGFMaXN0KCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoREFUQUxJU1Qp
CisgICAgcmV0dXJuIFdlYkRhdGFMaXN0RWxlbWVudChzdGF0aWNfY2FzdDxIVE1MRGF0YUxpc3RF
bGVtZW50Kj4oY29uc3RVbndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+bGlzdCgpKSk7CisjZWxz
ZQorICAgIHJldHVybiBXZWJEYXRhTGlzdEVsZW1lbnQoKTsKKyNlbmRpZgorfQorCiBib29sIFdl
YklucHV0RWxlbWVudDo6aXNTcGVlY2hJbnB1dEVuYWJsZWQoKSBjb25zdAogewogI2lmIEVOQUJM
RShJTlBVVF9TUEVFQ0gpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>