<?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>108798</bug_id>
          
          <creation_ts>2013-02-04 00:01:06 -0800</creation_ts>
          <short_desc>[EFL][WK2] Port EwkPopupMenuItem to the C API</short_desc>
          <delta_ts>2013-02-20 03:10:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</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>109083</dependson>
          <blocked>107657</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>abecsi</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>menard</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>824103</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 00:01:06 -0800</bug_when>
    <thetext>As per Bug 107657, we should stop using internal C++ API in ewk_popup_menu and start using the C API instead of avoid violating API layering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824202</commentid>
    <comment_count>1</comment_count>
      <attachid>186337</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 03:38:48 -0800</bug_when>
    <thetext>Created attachment 186337
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824205</commentid>
    <comment_count>2</comment_count>
      <attachid>186337</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-04 03:41:37 -0800</bug_when>
    <thetext>Comment on attachment 186337
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/efl/WKPopupMenuEfl.cpp:34
&gt; +void WKPopupMenuEflSetSelectedIndex(WKPopupMenuRef menuRef, int selectedIndex)

Efl would be wrong style. Please use EFL. Maybe we don&apos;t even need it, it is just an extension for our platform.

What about multi select?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824213</commentid>
    <comment_count>3</comment_count>
      <attachid>186339</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 03:48:46 -0800</bug_when>
    <thetext>Created attachment 186339
Patch

Take Kenneth&apos;s feedback into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824221</commentid>
    <comment_count>4</comment_count>
      <attachid>186339</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 03:57:15 -0800</bug_when>
    <thetext>Comment on attachment 186339
Patch

Attachment 186339 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16371168</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824232</commentid>
    <comment_count>5</comment_count>
      <attachid>186344</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 04:10:56 -0800</bug_when>
    <thetext>Created attachment 186344
Patch

Attempt to fix mac-wk2 ews.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824260</commentid>
    <comment_count>6</comment_count>
      <attachid>186355</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 04:58:02 -0800</bug_when>
    <thetext>Created attachment 186355
Patch

Rebase on master as the XCode project change started conflicting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824343</commentid>
    <comment_count>7</comment_count>
      <attachid>186355</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-04 07:31:52 -0800</bug_when>
    <thetext>Comment on attachment 186355
Patch

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

&gt; Source/WebKit2/UIProcess/efl/WebPopupMenuProxyEfl.cpp:55
&gt; +    // requestPopupMenu() takes ownership of the menu items.
&gt; +    m_view-&gt;requestPopupMenu(toAPI(static_cast&lt;WebPopupMenuProxy*&gt;(this)), rect, textDirection, pageScaleFactor, popupMenuItems, selectedIndex);

So still this class knows about our view implementation (actually depends on it). I guess it could depend on our WebView (WKView) in the near future</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824345</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-04 07:36:33 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 186355 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186355&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/efl/WebPopupMenuProxyEfl.cpp:55
&gt; &gt; +    // requestPopupMenu() takes ownership of the menu items.
&gt; &gt; +    m_view-&gt;requestPopupMenu(toAPI(static_cast&lt;WebPopupMenuProxy*&gt;(this)), rect, textDirection, pageScaleFactor, popupMenuItems, selectedIndex);
&gt; 
&gt; So still this class knows about our view implementation (actually depends on it). I guess it could depend on our WebView (WKView) in the near future

Yes. Likely, we&apos;ll need to use the new WebView class once it is introduced (that patch has not landed yet). Until then, this will do fine :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825375</commentid>
    <comment_count>9</comment_count>
      <attachid>186599</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-05 04:44:02 -0800</bug_when>
    <thetext>Created attachment 186599
Patch

Refactor the implementation so that we do not require any C API anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825399</commentid>
    <comment_count>10</comment_count>
      <attachid>186599</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-05 05:13:38 -0800</bug_when>
    <thetext>Comment on attachment 186599
Patch

Great changelog, looks good</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825401</commentid>
    <comment_count>11</comment_count>
      <attachid>186599</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-05 05:20:16 -0800</bug_when>
    <thetext>Comment on attachment 186599
Patch

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

looks good.

&gt; Source/WebKit2/UIProcess/efl/WebPopupMenuProxyEfl.cpp:78
&gt; +    const size_t size = items.size();

const local variables are not due to coding style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836104</commentid>
    <comment_count>12</comment_count>
      <attachid>189016</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-19 01:04:31 -0800</bug_when>
    <thetext>Created attachment 189016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836119</commentid>
    <comment_count>13</comment_count>
      <attachid>189016</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-19 01:29:39 -0800</bug_when>
    <thetext>Comment on attachment 189016
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836739</commentid>
    <comment_count>14</comment_count>
      <attachid>189016</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-19 13:47:11 -0800</bug_when>
    <thetext>Comment on attachment 189016
Patch

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

Looks great. I sign off on this.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_item.cpp:38
&gt; +COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_SEPARATOR, kWKPopupItemTypeSeparator);
&gt; +COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_ITEM, kWKPopupItemTypeItem);

Just a comment.

I know this style is spread in EFL already, but you can write conversion function from one enum type to an other to have the same flexibility without using tricks.
With a switch()-case() and a good compiler, there should be no additional cost.

&gt; Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_item.cpp:70
&gt; +    if (!m_text)
&gt; +        m_text = WKEinaSharedString(AdoptWK, WKPopupItemCopyText(m_wkItem.get()));
&gt; +
&gt;      return m_text;
&gt;  }
&gt;  
&gt;  const char* EwkPopupMenuItem::tooltipText() const
&gt;  {
&gt; +    if (!m_tooltipText)
&gt; +        m_tooltipText = WKEinaSharedString(AdoptWK, WKPopupItemCopyToolTipText(m_wkItem.get()));
&gt; +
&gt;      return m_tooltipText;
&gt;  }
&gt;  
&gt;  const char* EwkPopupMenuItem::accessibilityText() const
&gt;  {
&gt; +    if (!m_accessibilityText)
&gt; +        m_accessibilityText = WKEinaSharedString(AdoptWK, WKPopupItemCopyAccessibilityText(m_wkItem.get()));
&gt; +

m_test, m_tooltipText and m_accessibilityText should be initialized to 0 in the constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836925</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-19 16:15:01 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 189016 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189016&amp;action=review
&gt; 
&gt; Looks great. I sign off on this.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_item.cpp:38
&gt; &gt; +COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_SEPARATOR, kWKPopupItemTypeSeparator);
&gt; &gt; +COMPILE_ASSERT_MATCHING_ENUM(EWK_POPUP_MENU_ITEM, kWKPopupItemTypeItem);
&gt; 
&gt; Just a comment.
&gt; 
&gt; I know this style is spread in EFL already, but you can write conversion function from one enum type to an other to have the same flexibility without using tricks.
&gt; With a switch()-case() and a good compiler, there should be no additional cost.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/efl/ewk_popup_menu_item.cpp:70
&gt; &gt; +    if (!m_text)
&gt; &gt; +        m_text = WKEinaSharedString(AdoptWK, WKPopupItemCopyText(m_wkItem.get()));
&gt; &gt; +
&gt; &gt;      return m_text;
&gt; &gt;  }
&gt; &gt;  
&gt; &gt;  const char* EwkPopupMenuItem::tooltipText() const
&gt; &gt;  {
&gt; &gt; +    if (!m_tooltipText)
&gt; &gt; +        m_tooltipText = WKEinaSharedString(AdoptWK, WKPopupItemCopyToolTipText(m_wkItem.get()));
&gt; &gt; +
&gt; &gt;      return m_tooltipText;
&gt; &gt;  }
&gt; &gt;  
&gt; &gt;  const char* EwkPopupMenuItem::accessibilityText() const
&gt; &gt;  {
&gt; &gt; +    if (!m_accessibilityText)
&gt; &gt; +        m_accessibilityText = WKEinaSharedString(AdoptWK, WKPopupItemCopyAccessibilityText(m_wkItem.get()));
&gt; &gt; +
&gt; 
&gt; m_test, m_tooltipText and m_accessibilityText should be initialized to 0 in the constructor.

Those are WKEinaSharedString objects so there is no need for initializing to 0. The default constructor takes care of initializing the internal const char* to 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837296</commentid>
    <comment_count>16</comment_count>
      <attachid>189016</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-20 02:50:29 -0800</bug_when>
    <thetext>Comment on attachment 189016
Patch

r=me as signed of by ben</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837301</commentid>
    <comment_count>17</comment_count>
      <attachid>189016</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 03:10:11 -0800</bug_when>
    <thetext>Comment on attachment 189016
Patch

Clearing flags on attachment: 189016

Committed r143444: &lt;http://trac.webkit.org/changeset/143444&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837302</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 03:10:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186337</attachid>
            <date>2013-02-04 03:38:48 -0800</date>
            <delta_ts>2013-02-04 03:48:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108798_popupmenu_capi.patch</filename>
            <type>text/plain</type>
            <size>30179</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggYWY2YjE0MS4uZGU5MGMxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTMzMyw2ICszMzMsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAorICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlcy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYTU1MGI4Yi4uZGJkZGMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAy
LTA0ICBDaHJpc3RvcGhlIER1bWV6ICA8ZGNocmlzQGdtYWlsLmNvbT4KKworICAgICAgICBbRUZM
XVtXSzJdIFBvcnQgZXdrX3BvcHVwX21lbnUgdG8gdGhlIEMgQVBJCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg3OTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV0tQb3B1cE1lbnUgdHlwZSB0byBD
IEFQSSBhbmQgdXNlIGl0IGluc2lkZSBld2tfcG9wdXBfbWVudSB0byBzdG9wCisgICAgICAgIHJl
bHlpbmcgb24gV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eUVmbCBkaXJlY3RseS4gV2ViUG9wdXBN
ZW51UHJveHlFZmwKKyAgICAgICAgaXMgaW50ZXJuYWwgQysrIEFQSSBhbmQgd2Ugc2hvdWxkIHN0
b3AgdXNpbmcgaXQgZGlyZWN0bHkgdG8gYXZvaWQKKyAgICAgICAgdmlvbGF0aW5nIEFQSSBsYXll
cmluZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgbmV3IFdLUG9wdXBNZW51Liog
ZmlsZXMuCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkIG5ldyBXS1BvcHVwTWVu
dS4qIGZpbGVzLgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBBZGQgTmV3IFdLUG9wdXBN
ZW51RWZsLiogZmlsZXMuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAg
ICAqIFNoYXJlZC9BUElPYmplY3QuaDogQWRkIG5ldyBUeXBlUG9wdXBNZW51IHR5cGUuCisgICAg
ICAgICogVGFyZ2V0LnByaTogQWRkIG5ldyBXS1BvcHVwTWVudS4qIGZpbGVzLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmNwcDogQWRkZWQuCisgICAgICAgIChXS1Bv
cHVwTWVudUdldFR5cGVJRCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaDogQWRkIG5l
dyBXS1BvcHVwTWVudS5oIGhlYWRlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dL
UG9wdXBNZW51RWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXS1BvcHVwTWVudUVmbFNldFNlbGVj
dGVkSW5kZXgpOiBBZGQgQyBBUEkgdG8gRUZMIHBvcnQgdG8gdXBkYXRlCisgICAgICAgIHNlbGVj
dGVkIGluZGV4IGluIHRoZSBwb3B1cCBtZW51LiBUaGlzIGlzIG5lZWRlZCBzbyB0aGF0IG91ciBD
IEFQSSBubworICAgICAgICBsb25nZXIgdXNlcyBXZWJQb3B1cE1lbnVQcm94eUVmbCBpbnRlcm5h
bCBDKysgY2xhc3MgZGlyZWN0bHkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1Bv
cHVwTWVudUVmbC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
LmNwcDoKKyAgICAgICAgKEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUpOiBVc2UgV0tQb3B1cE1l
bnVSZWYgdHlwZSBpbnN0ZWFkIG9mCisgICAgICAgIFdlYlBvcHVwTWVudVByb3h5RWZsIGFuZCB0
YWtlIHBvcHVwIG1lbnUgaXRlbXMgYXMgYW4gRWluYV9MaXN0CisgICAgICAgIGNvbnRhaW5pbmcg
RXdrUG9wdXBNZW51SXRlbSBvYmplY3RzIGluc3RlYWQgb2YgYSBWZWN0b3Igb2YgV2ViUG9wdXBJ
dGVtCisgICAgICAgIG9iamVjdHMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5oOgorICAgICAgICAoRXdrVmlldyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3BvcHVwX21lbnUuY3BwOiBVc2UgQyBBUEkgaW5zdGVhZCBvZiBpbnRlcm5hbAorICAgICAgICBD
KysgQVBJLgorICAgICAgICAoRXdrUG9wdXBNZW51OjpFd2tQb3B1cE1lbnUpOgorICAgICAgICAo
RXdrUG9wdXBNZW51OjpzZXRTZWxlY3RlZEluZGV4KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfcG9wdXBfbWVudV9wcml2YXRlLmg6IERpdHRvLgorICAgICAgICAoRXdrUG9wdXBN
ZW51KToKKyAgICAgICAgKEV3a1BvcHVwTWVudTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUG9wdXBNZW51UHJveHkuaDogU3ViY2xhc3MgQVBJT2JqZWN0IGFuZCBvdmVycmlkZSB0
eXBlKCkKKyAgICAgICAgdG8gcmV0dXJuIFR5cGVQb3B1cE1lbnUuCisgICAgICAgIChXZWJQb3B1
cE1lbnVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5Ojp0eXBlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlBvcHVwTWVudVByb3h5RWZsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlFZmw6OnNob3dQb3B1cE1lbnUpOgorICAgICAg
ICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5ldyBXS1BvcHVwTWVu
dS4qIGZpbGVzLgorCiAyMDEzLTAyLTAzICBLd2FuZ1lvbmcgQ2hvaSAgPGt5MC5jaG9pQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIEZpeCBidWlsZCB3YXJuaW5nIGFmdGVyIHIxNDE2NDgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0
Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGNhNjQ2MWEuLmM2YzMxMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODMsNiArODMsNyBAQCB3ZWJraXQyX2hfYXBpICs9IFwK
IAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBcCiAJJChXZWJLaXQyKS9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BvcHVwTWVudS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRl
LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlvblNwYWNlLmggXApA
QCAtNjI0LDYgKzYyNSw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
RWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggYjg3ZTk3
OS4uOWY4ZDM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UK
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTM3LDYgKzM3LDcgQEAg
bGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nlc3MvQVBJL0MvY2Fpcm8v
V0tJY29uRGF0YWJhc2VDYWlyby5jcHAKIAorICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tQb3B1
cE1lbnVFZmwuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCiAKICAgICBV
SVByb2Nlc3MvQVBJL2NwcC9lZmwvV0tFaW5hU2hhcmVkU3RyaW5nLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDhjMjQzZGIuLmU4NzcxOTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEzMyw2ICsxMzMsNyBAQCB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyKiBXS09wZW5QYW5lbFJlc3VsdExp
c3RlbmVyUgogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlKiBXS1BhZ2VSZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VHcm91cCogV0tQYWdlR3JvdXBSZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BsdWdpblNpdGVEYXRhTWFuYWdlciogV0tQbHVn
aW5TaXRlRGF0YU1hbmFnZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BvcHVw
TWVudSogV0tQb3B1cE1lbnVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZl
cmVuY2VzKiBXS1ByZWZlcmVuY2VzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQ
cm90ZWN0aW9uU3BhY2UqIFdLUHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tUZXh0Q2hlY2tlciogV0tUZXh0Q2hlY2tlclJlZjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaAppbmRleCA4NTlmYjhlLi4wZDljZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9i
amVjdC5oCkBAIC0xMDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgICAgICBUeXBlUGFnZSwKICAg
ICAgICAgVHlwZVBhZ2VHcm91cCwKICAgICAgICAgVHlwZVBsdWdpblNpdGVEYXRhTWFuYWdlciwK
KyAgICAgICAgVHlwZVBvcHVwTWVudSwKICAgICAgICAgVHlwZVByZWZlcmVuY2VzLAogICAgICAg
ICBUeXBlVGV4dENoZWNrZXIsCiAgICAgICAgIFR5cGVWaWJyYXRpb24sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRl
eCBjNmUzMTYyLi44YzBjMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE4OCw2ICsxODgsNyBAQCBIRUFE
RVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBcCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5oIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVj
dGlvblNwYWNlLmggXApAQCAtNTQwLDYgKzU0MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAu
Y3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIFwK
KyAgICBVSVByb2Nlc3MvQVBJL0MvV0tQb3B1cE1lbnUuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25T
cGFjZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggZDUx
M2I5Ni4uNmRlZWY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaApAQCAtODcsNiArODcsNyBAQCBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclBy
b3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2Vi
UGx1Z2luU2l0ZURhdGFNYW5hZ2VyOworY2xhc3MgV2ViUG9wdXBNZW51UHJveHk7CiBjbGFzcyBX
ZWJQcmVmZXJlbmNlczsKIGNsYXNzIFdlYlByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFdlYlJlbmRl
ckxheWVyOwpAQCAtMTMxLDYgKzEzMiw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUmVmLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5CiBXS19B
RERfQVBJX01BUFBJTkcoV0tQYWdlR3JvdXBSZWYsIFdlYlBhZ2VHcm91cCkKIFdLX0FERF9BUElf
TUFQUElORyhXS1BhZ2VSZWYsIFdlYlBhZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1Bs
dWdpblNpdGVEYXRhTWFuYWdlclJlZiwgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKQorV0tfQURE
X0FQSV9NQVBQSU5HKFdLUG9wdXBNZW51UmVmLCBXZWJQb3B1cE1lbnVQcm94eSkKIFdLX0FERF9B
UElfTUFQUElORyhXS1ByZWZlcmVuY2VzUmVmLCBXZWJQcmVmZXJlbmNlcykKIFdLX0FERF9BUElf
TUFQUElORyhXS1Byb3RlY3Rpb25TcGFjZVJlZiwgV2ViUHJvdGVjdGlvblNwYWNlKQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLUmVuZGVyTGF5ZXJSZWYsIFdlYlJlbmRlckxheWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNmUzNjVlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAKQEAgLTAsMCArMSwzNyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBDaHJpc3RvcGhlIER1bWV6IDxkY2hyaXNAZ21haWwu
Y29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tQb3B1cE1l
bnUuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYlBvcHVwTWVudVBy
b3h5LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLUG9wdXBNZW51
R2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViUG9wdXBNZW51UHJveHk6OkFQSVR5
cGUpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9w
dXBNZW51LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQb3B1cE1lbnUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWE4MjI2Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmgKQEAgLTAs
MCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBDaHJpc3RvcGhlIER1bWV6IDxk
Y2hyaXNAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLUG9wdXBNZW51X2gKKyNkZWZp
bmUgV0tQb3B1cE1lbnVfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVm
IF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQg
V0tQb3B1cE1lbnVHZXRUeXBlSUQoKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYK
KworI2VuZGlmIC8qIFdLUG9wdXBNZW51X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XZWJLaXQyX0MuaAppbmRleCA5ODFkNTIwLi5jYjIzMTM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVk
ZSA8V2ViS2l0Mi9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0
Mi9XS1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8
V2ViS2l0Mi9XS1BvcHVwTWVudS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNlcy5o
PgogI2luY2x1ZGUgPFdlYktpdDIvV0tTdHJpbmcuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLVVJM
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLUG9w
dXBNZW51RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tQb3B1
cE1lbnVFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxNzJhMzgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dL
UG9wdXBNZW51RWZsLmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEzIENocmlzdG9waGUgRHVtZXogPGRjaHJpc0BnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1BvcHVwTWVudUVmbC5oIgorCisjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHlFZmwuaCIKKwordXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKKwordm9pZCBXS1BvcHVwTWVudUVmbFNldFNlbGVjdGVkSW5kZXgo
V0tQb3B1cE1lbnVSZWYgbWVudVJlZiwgaW50IHNlbGVjdGVkSW5kZXgpCit7CisgICAgc3RhdGlj
X2Nhc3Q8V2ViUG9wdXBNZW51UHJveHlFZmwqPih0b0ltcGwobWVudVJlZikpLT52YWx1ZUNoYW5n
ZWQoc2VsZWN0ZWRJbmRleCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvZWZsL1dLUG9wdXBNZW51RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvZWZsL1dLUG9wdXBNZW51RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYjVlZTRjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9lZmwvV0tQb3B1cE1lbnVFZmwuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIENocmlzdG9waGUgRHVtZXogPGRjaHJpc0BnbWFpbC5jb20+CisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV0tQb3B1cE1lbnVFZmxfaAorI2RlZmluZSBXS1BvcHVwTWVudUVmbF9o
CisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4
dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCB2b2lkIFdLUG9wdXBNZW51RWZsU2V0U2Vs
ZWN0ZWRJbmRleChXS1BvcHVwTWVudVJlZiBtZW51LCBpbnQgc2VsZWN0ZWRJbmRleCk7CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS1BvcHVwTWVudUVmbF9o
ICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4
IDc5NjI2ZTYuLmMwYTU4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0V3a1ZpZXcuY3BwCkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNp
bmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKLSNpbmNs
dWRlICJXZWJQb3B1cE1lbnVQcm94eUVmbC5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgi
CiAjaW5jbHVkZSAiZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGUuaCIKICNpbmNsdWRlICJl
d2tfY29sb3JfcGlja2VyX3ByaXZhdGUuaCIKQEAgLTc5MSwxMiArNzkwLDEyIEBAIHZvaWQgRXdr
Vmlldzo6aGlkZUNvbnRleHRNZW51KCkKICAgICBtX2NvbnRleHRNZW51LmNsZWFyKCk7CiB9CiAK
LXZvaWQgRXdrVmlldzo6cmVxdWVzdFBvcHVwTWVudShXZWJQb3B1cE1lbnVQcm94eUVmbCogcG9w
dXBNZW51UHJveHksIGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dERpcmVj
dGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4m
IGl0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpCit2b2lkIEV3a1ZpZXc6OnJlcXVlc3RQb3B1
cE1lbnUoV0tQb3B1cE1lbnVSZWYgcG9wdXBNZW51LCBjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0
RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIEVpbmFfTGlz
dCogcGFzc0l0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpCiB7CiAgICAgRXdrX1ZpZXdfU21h
cnRfRGF0YSogc2QgPSBzbWFydERhdGEoKTsKICAgICBBU1NFUlQoc2QtPmFwaSk7CiAKLSAgICBB
U1NFUlQocG9wdXBNZW51UHJveHkpOworICAgIEFTU0VSVChwb3B1cE1lbnUpOwogCiAgICAgaWYg
KCFzZC0+YXBpLT5wb3B1cF9tZW51X3Nob3cpCiAgICAgICAgIHJldHVybjsKQEAgLTgwNCw3ICs4
MDMsNyBAQCB2b2lkIEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUoV2ViUG9wdXBNZW51UHJveHlF
ZmwqIHBvcHVwTWVudVByb3h5LCBjb25zdCBJbnRSZQogICAgIGlmIChtX3BvcHVwTWVudSkKICAg
ICAgICAgY2xvc2VQb3B1cE1lbnUoKTsKIAotICAgIG1fcG9wdXBNZW51ID0gRXdrUG9wdXBNZW51
OjpjcmVhdGUodGhpcywgcG9wdXBNZW51UHJveHksIGl0ZW1zLCBzZWxlY3RlZEluZGV4KTsKKyAg
ICBtX3BvcHVwTWVudSA9IEV3a1BvcHVwTWVudTo6Y3JlYXRlKHRoaXMsIHBvcHVwTWVudSwgcGFz
c0l0ZW1zLCBzZWxlY3RlZEluZGV4KTsKIAogICAgIHNkLT5hcGktPnBvcHVwX21lbnVfc2hvdyhz
ZCwgcmVjdCwgc3RhdGljX2Nhc3Q8RXdrX1RleHRfRGlyZWN0aW9uPih0ZXh0RGlyZWN0aW9uKSwg
cGFnZVNjYWxlRmFjdG9yLCBtX3BvcHVwTWVudS5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKaW5kZXggOTljZThlZC4uNzg1N2ZhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAtMTc1LDcgKzE3NSw4
IEBAIHB1YmxpYzoKICAgICBXS1BhZ2VSZWYgY3JlYXRlTmV3UGFnZShQYXNzUmVmUHRyPEV3a1Vy
bFJlcXVlc3Q+LCBXS0RpY3Rpb25hcnlSZWYgd2luZG93RmVhdHVyZXMpOwogICAgIHZvaWQgY2xv
c2UoKTsKIAotICAgIHZvaWQgcmVxdWVzdFBvcHVwTWVudShXZWJLaXQ6OldlYlBvcHVwTWVudVBy
b3h5RWZsKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24s
IGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYlBvcHVwSXRl
bT4mIGl0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpOworICAgIC8vIFRha2VzIG93bmVyc2hp
cCBvZiB0aGUgcGFzc2VkIGl0ZW1zLgorICAgIHZvaWQgcmVxdWVzdFBvcHVwTWVudShXS1BvcHVw
TWVudVJlZiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24s
IGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIEVpbmFfTGlzdCogcGFzc0l0ZW1zLCBpbnQzMl90IHNl
bGVjdGVkSW5kZXgpOwogICAgIHZvaWQgY2xvc2VQb3B1cE1lbnUoKTsKICAgICAKICAgICB2b2lk
IHNob3dDb250ZXh0TWVudShXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlFZmwqLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYkNvbnRl
eHRNZW51SXRlbURhdGE+JiBpdGVtcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudS5jcHAKaW5kZXggMDM5NmYwMS4uMzc2MzMyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51
LmNwcApAQCAtMjgsMjEgKzI4LDE2IEBACiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnUuaCIKIAog
I2luY2x1ZGUgIkV3a1ZpZXcuaCIKLSNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eUVmbC5oIgor
I2luY2x1ZGUgIldLUG9wdXBNZW51RWZsLmgiCiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfaXRl
bV9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfcHJpdmF0ZS5oIgogCi11c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1Fd2tQb3B1cE1lbnU6OkV3a1BvcHVwTWVudShFd2tWaWV3
KiB2aWV3LCBXZWJQb3B1cE1lbnVQcm94eUVmbCogcG9wdXBNZW51UHJveHksIGNvbnN0IFZlY3Rv
cjxXZWJLaXQ6OldlYlBvcHVwSXRlbT4mIGl0ZW1zLCB1bnNpZ25lZCBzZWxlY3RlZEluZGV4KQor
RXdrUG9wdXBNZW51OjpFd2tQb3B1cE1lbnUoRXdrVmlldyogdmlldywgV0tQb3B1cE1lbnVSZWYg
cG9wdXBNZW51LCBFaW5hX0xpc3QqIHBhc3NJdGVtcywgdW5zaWduZWQgc2VsZWN0ZWRJbmRleCkK
ICAgICA6IG1fdmlldyh2aWV3KQotICAgICwgbV9wb3B1cE1lbnVQcm94eShwb3B1cE1lbnVQcm94
eSkKLSAgICAsIG1fcG9wdXBNZW51SXRlbXMoMCkKKyAgICAsIG1fcG9wdXBNZW51KHBvcHVwTWVu
dSkKKyAgICAsIG1fcG9wdXBNZW51SXRlbXMocGFzc0l0ZW1zKQogICAgICwgbV9zZWxlY3RlZElu
ZGV4KHNlbGVjdGVkSW5kZXgpCiB7Ci0gICAgY29uc3Qgc2l6ZV90IHNpemUgPSBpdGVtcy5zaXpl
KCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fcG9w
dXBNZW51SXRlbXMgPSBlaW5hX2xpc3RfYXBwZW5kKG1fcG9wdXBNZW51SXRlbXMsIEV3a1BvcHVw
TWVudUl0ZW06OmNyZWF0ZShpdGVtc1tpXSkubGVha1B0cigpKTsKIH0KIAogRXdrUG9wdXBNZW51
Ojp+RXdrUG9wdXBNZW51KCkKQEAgLTY5LDcgKzY0LDcgQEAgdW5zaWduZWQgRXdrUG9wdXBNZW51
OjpzZWxlY3RlZEluZGV4KCkgY29uc3QKIAogYm9vbCBFd2tQb3B1cE1lbnU6OnNldFNlbGVjdGVk
SW5kZXgodW5zaWduZWQgc2VsZWN0ZWRJbmRleCkKIHsKLSAgICBpZiAoIW1fcG9wdXBNZW51UHJv
eHkpCisgICAgaWYgKCFtX3BvcHVwTWVudSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aWYgKHNlbGVjdGVkSW5kZXggPj0gZWluYV9saXN0X2NvdW50KG1fcG9wdXBNZW51SXRlbXMpKQpA
QCAtNzksNyArNzQsNyBAQCBib29sIEV3a1BvcHVwTWVudTo6c2V0U2VsZWN0ZWRJbmRleCh1bnNp
Z25lZCBzZWxlY3RlZEluZGV4KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIG1fc2VsZWN0
ZWRJbmRleCA9IHNlbGVjdGVkSW5kZXg7Ci0gICAgbV9wb3B1cE1lbnVQcm94eS0+dmFsdWVDaGFu
Z2VkKHNlbGVjdGVkSW5kZXgpOworICAgIFdLUG9wdXBNZW51RWZsU2V0U2VsZWN0ZWRJbmRleCht
X3BvcHVwTWVudS5nZXQoKSwgc2VsZWN0ZWRJbmRleCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9t
ZW51X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1
cF9tZW51X3ByaXZhdGUuaAppbmRleCA1MjRmNTlkLi5lMmFjN2MyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfcHJpdmF0
ZS5oCkBAIC0yNywyMiArMjcsMTkgQEAKICNpZm5kZWYgZXdrX3BvcHVwX21lbnVfcHJpdmF0ZV9o
CiAjZGVmaW5lIGV3a19wb3B1cF9tZW51X3ByaXZhdGVfaAogCisjaW5jbHVkZSAiV0tSZXRhaW5Q
dHIuaCIKICNpbmNsdWRlIDxFaW5hLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJQb3B1cEl0ZW07Ci1jbGFzcyBXZWJQb3B1cE1lbnVQ
cm94eUVmbDsKLX0KIAogY2xhc3MgRXdrVmlldzsKIAogY2xhc3MgRXdrUG9wdXBNZW51IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxFd2tQb3B1cE1lbnU+IGNyZWF0ZShFd2tWaWV3
KiB2aWV3LCBXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5RWZsKiBwb3B1cE1lbnVQcm94eSwgY29u
c3QgVmVjdG9yPFdlYktpdDo6V2ViUG9wdXBJdGVtPiYgaXRlbXMsIHVuc2lnbmVkIHNlbGVjdGVk
SW5kZXgpCisgICAgLy8gVGFrZXMgb3duZXJza2lwIG9mIHRoZSBwYXNzZWQgaXRlbXMuCisgICAg
c3RhdGljIFBhc3NPd25QdHI8RXdrUG9wdXBNZW51PiBjcmVhdGUoRXdrVmlldyogdmlldywgV0tQ
b3B1cE1lbnVSZWYgcG9wdXBNZW51LCBFaW5hX0xpc3QqIHBhc3NJdGVtcywgdW5zaWduZWQgc2Vs
ZWN0ZWRJbmRleCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrUG9wdXBN
ZW51KHZpZXcsIHBvcHVwTWVudVByb3h5LCBpdGVtcywgc2VsZWN0ZWRJbmRleCkpOworICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IEV3a1BvcHVwTWVudSh2aWV3LCBwb3B1cE1lbnUsIHBhc3NJ
dGVtcywgc2VsZWN0ZWRJbmRleCkpOwogICAgIH0KICAgICB+RXdrUG9wdXBNZW51KCk7CiAKQEAg
LTU0LDEwICs1MSwxMCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgc2VsZWN0ZWRJbmRleCgpIGNv
bnN0OwogCiBwcml2YXRlOgotICAgIEV3a1BvcHVwTWVudShFd2tWaWV3KiB2aWV3SW1wbCwgV2Vi
S2l0OjpXZWJQb3B1cE1lbnVQcm94eUVmbCosIGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYlBvcHVw
SXRlbT4mIGl0ZW1zLCB1bnNpZ25lZCBzZWxlY3RlZEluZGV4KTsKKyAgICBFd2tQb3B1cE1lbnUo
RXdrVmlldyogdmlld0ltcGwsIFdLUG9wdXBNZW51UmVmLCBFaW5hX0xpc3QqIGl0ZW1zLCB1bnNp
Z25lZCBzZWxlY3RlZEluZGV4KTsKIAogICAgIEV3a1ZpZXcqIG1fdmlldzsKLSAgICBXZWJLaXQ6
OldlYlBvcHVwTWVudVByb3h5RWZsKiBtX3BvcHVwTWVudVByb3h5OworICAgIFdLUmV0YWluUHRy
PFdLUG9wdXBNZW51UmVmPiBtX3BvcHVwTWVudTsKICAgICBFaW5hX0xpc3QqIG1fcG9wdXBNZW51
SXRlbXM7CiAgICAgdW5zaWduZWQgbV9zZWxlY3RlZEluZGV4OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQb3B1cE1lbnVQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmgKaW5kZXggMGQ3Nzg4ZC4uNGNkMzQ5OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmgKQEAgLTI2
LDYgKzI2LDcgQEAKICNpZm5kZWYgV2ViUG9wdXBNZW51UHJveHlfaAogI2RlZmluZSBXZWJQb3B1
cE1lbnVQcm94eV9oCiAKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L1RleHREaXJlY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00MSw4ICs0MiwxMCBAQCBzdHJ1Y3QgUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhOwogc3RydWN0IFdlYlBvcHVwSXRlbTsKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZl
bnQ7CiAKLWNsYXNzIFdlYlBvcHVwTWVudVByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUG9w
dXBNZW51UHJveHk+IHsKK2NsYXNzIFdlYlBvcHVwTWVudVByb3h5IDogcHVibGljIEFQSU9iamVj
dCB7CiBwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVQb3B1cE1l
bnU7CisKICAgICBjbGFzcyBDbGllbnQgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVh
bCB+Q2xpZW50KCkKQEAgLTc3LDYgKzgwLDggQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAK
KyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKwogICAg
IENsaWVudCogbV9jbGllbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYlBvcHVwTWVudVByb3h5RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvV2ViUG9wdXBNZW51UHJveHlFZmwuY3BwCmluZGV4IGE1OTU1MzcuLmFlZGIwMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUG9wdXBNZW51UHJv
eHlFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUG9wdXBNZW51
UHJveHlFZmwuY3BwCkBAIC0yNywxMCArMjcsMTAgQEAKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQ
cm94eUVmbC5oIgogCiAjaW5jbHVkZSAiRXdrVmlldy5oIgotI2luY2x1ZGUgIk5hdGl2ZVdlYk1v
dXNlRXZlbnQuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJQb3B1cEl0
ZW0uaCIKKyNpbmNsdWRlICJld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaCIKICNpbmNsdWRl
ICJld2tfdmlldy5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQ0LDcgKzQ0LDE1IEBAIFdlYlBvcHVwTWVudVByb3h5RWZs
OjpXZWJQb3B1cE1lbnVQcm94eUVmbChFd2tWaWV3KiB2aWV3LCBXZWJQb3B1cE1lbnVQcm94eTo6
Q2xpCiAKIHZvaWQgV2ViUG9wdXBNZW51UHJveHlFZmw6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50
UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxl
RmFjdG9yLCBjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGNvbnN0IFBsYXRmb3Jt
UG9wdXBNZW51RGF0YSYsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCkKIHsKLSAgICBtX3ZpZXctPnJl
cXVlc3RQb3B1cE1lbnUodGhpcywgcmVjdCwgdGV4dERpcmVjdGlvbiwgcGFnZVNjYWxlRmFjdG9y
LCBpdGVtcywgc2VsZWN0ZWRJbmRleCk7CisgICAgRWluYV9MaXN0KiBwb3B1cE1lbnVJdGVtcyA9
IDA7CisgICAgY29uc3Qgc2l6ZV90IHNpemUgPSBpdGVtcy5zaXplKCk7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgLy8gRklYTUU6IEV3a1BvcHVwTWVu
dUl0ZW0gc2hvdWxkIHN0b3AgdXNpbmcgV2ViUG9wdXBJdGVtLgorICAgICAgICBwb3B1cE1lbnVJ
dGVtcyA9IGVpbmFfbGlzdF9hcHBlbmQocG9wdXBNZW51SXRlbXMsIEV3a1BvcHVwTWVudUl0ZW06
OmNyZWF0ZShpdGVtc1tpXSkubGVha1B0cigpKTsKKyAgICB9CisKKyAgICAvLyByZXF1ZXN0UG9w
dXBNZW51KCkgdGFrZXMgb3duZXJzaGlwIG9mIHRoZSBtZW51IGl0ZW1zLgorICAgIG1fdmlldy0+
cmVxdWVzdFBvcHVwTWVudSh0b0FQSShzdGF0aWNfY2FzdDxXZWJQb3B1cE1lbnVQcm94eSo+KHRo
aXMpKSwgcmVjdCwgdGV4dERpcmVjdGlvbiwgcGFnZVNjYWxlRmFjdG9yLCBwb3B1cE1lbnVJdGVt
cywgc2VsZWN0ZWRJbmRleCk7CiB9CiAKIHZvaWQgV2ViUG9wdXBNZW51UHJveHlFZmw6OmhpZGVQ
b3B1cE1lbnUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDRiNjg3ZWUuLjA0NTFjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1MSw2ICs1NTEsOCBAQAog
CQk3NjJCNzQ4RDEyMEJDNzVDMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MkI3NDg0MTIwQkJB
MkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc4MDFDMDk5MTQyMjkwQzQwMEZBRjlBRiAv
KiBXZWJIaXRUZXN0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDc4MDFDMDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0
LmNwcCAqLzsgfTsKIAkJNzgwMUMwOUExNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1
bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MDFD
MDk2MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmggKi87IH07CisJCTgzNjdE
M0Q0MTZCRkM4NUMwMEQyQTBBNyAvKiBXS1BvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzY3RDNEMjE2QkZDODVDMDBEMkEwQTcgLyog
V0tQb3B1cE1lbnUuY3BwICovOyB9OworCQk4MzY3RDNENTE2QkZDODVDMDBEMkEwQTcgLyogV0tQ
b3B1cE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzNjdEM0QzMTZCRkM4NUMwMEQyQTBBNyAvKiBXS1BvcHVwTWVudS5oICovOyB9OwogCQk4Q0ZF
Q0U5NDE0OTBGMTQwMDAyQUFBMzIgLyogRWRpdG9yU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOENGRUNFOTMxNDkwRjE0MDAwMkFBQTMyIC8q
IEVkaXRvclN0YXRlLmNwcCAqLzsgfTsKIAkJOERDMkVGNTMwNDg2QTY5NDAwOThCMjE2IC8qIElu
Zm9QbGlzdC5zdHJpbmdzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwODlDMTY2NkZFODQxMTU4QzAyQUFDMDcgLyogSW5mb1BsaXN0LnN0cmluZ3MgKi87
IH07CiAJCTkwOTg1NEVDMTJCQzRFMTcwMDBBRDA4MCAvKiBXZWJNZW1vcnlTYW1wbGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwNTYyMEU4MTJC
QzI0OEIwMDA3OTlCNiAvKiBXZWJNZW1vcnlTYW1wbGVyLmNwcCAqLzsgfTsKQEAgLTE1MjAsOCAr
MTUyMiw4IEBACiAJCTFBQjE2QUVCMTY0QjQxRTQwMDI5MEQ2MiAvKiBSZW1vdGVHcmFwaGljc0xh
eWVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3RlR3Jh
cGhpY3NMYXllci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFCMTZBRUMxNjRC
NDFFNDAwMjkwRDYyIC8qIFJlbW90ZUdyYXBoaWNzTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQUIzMUE5MzE2QkM2NUFCMDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXIubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTFBQjMxQTk0MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBTdG9yYWdlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBQjMx
QTk1MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9
IFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUFCMzFBOTQxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFCMzFB
OTUxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI3RDRDODEyODhBQUE3MDBDRkQwOEMgLyogRG93bmxv
YWRQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb3dubG9hZFByb3h5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQjdENEM5MTI4OEFBQTcwMENGRDA4
QyAvKiBEb3dubG9hZFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERvd25sb2FkUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI3
RDVFOTEyODhCOEMwMDBDRkQwOEMgLyogRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBEb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTg4NSw2ICsxODg3LDggQEAKIAkJNzYyQjc0ODQxMjBCQkEyRDAw
ODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLUHJlZmVyZW5jZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTc4MDFDMDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1bHQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3ODAxQzA5NjE0MjI5MEM0MDBGQUY5QUYg
LyogV2ViSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzNjdEM0Qy
MTZCRkM4NUMwMEQyQTBBNyAvKiBXS1BvcHVwTWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXS1BvcHVwTWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTgzNjdEM0QzMTZCRkM4NUMwMEQyQTBBNyAvKiBXS1BvcHVwTWVudS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4Q0ZFQ0U5MzE0OTBGMTQwMDAyQUFBMzIgLyogRWRpdG9yU3RhdGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdG9yU3RhdGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4REMyRUY1QTA0ODZBNjk0MDA5OEIyMTYgLyog
SW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gSW5mby5wbGlzdDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOERDMkVGNUIwNDg2QTY5NDAwOThCMjE2IC8q
IFdlYktpdDIuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0g
V2ViS2l0Mi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBA
IC0zODA2LDYgKzM4MTAsOCBAQAogCQlCQzBDMzc2NjEwRjgwNzY2MDA3NkQ3Q0IgLyogQyAqLyA9
IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJODM2N0QzRDIxNkJG
Qzg1QzAwRDJBMEE3IC8qIFdLUG9wdXBNZW51LmNwcCAqLywKKwkJCQk4MzY3RDNEMzE2QkZDODVD
MDBEMkEwQTcgLyogV0tQb3B1cE1lbnUuaCAqLywKIAkJCQk1MTIzQ0YxODEzM0QyNUU2MDA1NkY4
MDAgLyogY2cgKi8sCiAJCQkJNkVFODQ5QzQxMzY4RDkwNDAwMzhENDgxIC8qIG1hYyAqLywKIAkJ
CQlCQ0I2MzQ3NzExNkJGMTA2MDA2MDMyMTUgLyogV2ViS2l0Ml9DLmggKi8sCkBAIC01MzY2LDYg
KzUzNzIsNyBAQAogCQkJCUE1RUZEMzhDMTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmls
aXR5VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzRDODI5MTZCODc2QTkwMDY5RENDRCAv
KiBNZXNzYWdlRmxhZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjMxQTk3MTZCQzY4ODEwMEY2
REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzY3
RDNENTE2QkZDODVDMDBEMkEwQTcgLyogV0tQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
NjQ4OCw2ICs2NDk1LDcgQEAKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyogUGx1Z2lu
U2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0JFQ0RFNzE2QjY0MTY4
MDAwNDdBMUEgLyogWFBDU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QUIzMUE5NjE2QkM2ODgxMDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODM2N0QzRDQxNkJGQzg1QzAwRDJBMEE3IC8qIFdLUG9w
dXBNZW51LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186339</attachid>
            <date>2013-02-04 03:48:46 -0800</date>
            <delta_ts>2013-02-04 04:10:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108798_popupmenu_capi.patch</filename>
            <type>text/plain</type>
            <size>30167</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggYWY2YjE0MS4uZGU5MGMxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTMzMyw2ICszMzMsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAorICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlcy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYTU1MGI4Yi4uMDZhYjA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAy
LTA0ICBDaHJpc3RvcGhlIER1bWV6ICA8ZGNocmlzQGdtYWlsLmNvbT4KKworICAgICAgICBbRUZM
XVtXSzJdIFBvcnQgZXdrX3BvcHVwX21lbnUgdG8gdGhlIEMgQVBJCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg3OTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV0tQb3B1cE1lbnUgdHlwZSB0byBD
IEFQSSBhbmQgdXNlIGl0IGluc2lkZSBld2tfcG9wdXBfbWVudSB0byBzdG9wCisgICAgICAgIHJl
bHlpbmcgb24gV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eUVmbCBkaXJlY3RseS4gV2ViUG9wdXBN
ZW51UHJveHlFZmwKKyAgICAgICAgaXMgaW50ZXJuYWwgQysrIEFQSSBhbmQgd2Ugc2hvdWxkIHN0
b3AgdXNpbmcgaXQgZGlyZWN0bHkgdG8gYXZvaWQKKyAgICAgICAgdmlvbGF0aW5nIEFQSSBsYXll
cmluZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgbmV3IFdLUG9wdXBNZW51Liog
ZmlsZXMuCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkIG5ldyBXS1BvcHVwTWVu
dS4qIGZpbGVzLgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBBZGQgTmV3IFdLUG9wdXBN
ZW51RWZsLiogZmlsZXMuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAg
ICAqIFNoYXJlZC9BUElPYmplY3QuaDogQWRkIG5ldyBUeXBlUG9wdXBNZW51IHR5cGUuCisgICAg
ICAgICogVGFyZ2V0LnByaTogQWRkIG5ldyBXS1BvcHVwTWVudS4qIGZpbGVzLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmNwcDogQWRkZWQuCisgICAgICAgIChXS1Bv
cHVwTWVudUdldFR5cGVJRCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaDogQWRkIG5l
dyBXS1BvcHVwTWVudS5oIGhlYWRlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dL
UG9wdXBNZW51RWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXS1BvcHVwTWVudVNldFNlbGVjdGVk
SW5kZXgpOiBBZGQgQyBBUEkgdG8gRUZMIHBvcnQgdG8gdXBkYXRlCisgICAgICAgIHNlbGVjdGVk
IGluZGV4IGluIHRoZSBwb3B1cCBtZW51LiBUaGlzIGlzIG5lZWRlZCBzbyB0aGF0IG91ciBDIEFQ
SSBubworICAgICAgICBsb25nZXIgdXNlcyBXZWJQb3B1cE1lbnVQcm94eUVmbCBpbnRlcm5hbCBD
KysgY2xhc3MgZGlyZWN0bHkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BvcHVw
TWVudUVmbC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNw
cDoKKyAgICAgICAgKEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUpOiBVc2UgV0tQb3B1cE1lbnVS
ZWYgdHlwZSBpbnN0ZWFkIG9mCisgICAgICAgIFdlYlBvcHVwTWVudVByb3h5RWZsIGFuZCB0YWtl
IHBvcHVwIG1lbnUgaXRlbXMgYXMgYW4gRWluYV9MaXN0CisgICAgICAgIGNvbnRhaW5pbmcgRXdr
UG9wdXBNZW51SXRlbSBvYmplY3RzIGluc3RlYWQgb2YgYSBWZWN0b3Igb2YgV2ViUG9wdXBJdGVt
CisgICAgICAgIG9iamVjdHMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5o
OgorICAgICAgICAoRXdrVmlldyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Bv
cHVwX21lbnUuY3BwOiBVc2UgQyBBUEkgaW5zdGVhZCBvZiBpbnRlcm5hbAorICAgICAgICBDKysg
QVBJLgorICAgICAgICAoRXdrUG9wdXBNZW51OjpFd2tQb3B1cE1lbnUpOgorICAgICAgICAoRXdr
UG9wdXBNZW51OjpzZXRTZWxlY3RlZEluZGV4KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfcG9wdXBfbWVudV9wcml2YXRlLmg6IERpdHRvLgorICAgICAgICAoRXdrUG9wdXBNZW51
KToKKyAgICAgICAgKEV3a1BvcHVwTWVudTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUG9wdXBNZW51UHJveHkuaDogU3ViY2xhc3MgQVBJT2JqZWN0IGFuZCBvdmVycmlkZSB0eXBl
KCkKKyAgICAgICAgdG8gcmV0dXJuIFR5cGVQb3B1cE1lbnUuCisgICAgICAgIChXZWJQb3B1cE1l
bnVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5Ojp0eXBlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlBvcHVwTWVudVByb3h5RWZsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlFZmw6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAq
IFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5ldyBXS1BvcHVwTWVudS4q
IGZpbGVzLgorCiAyMDEzLTAyLTAzICBLd2FuZ1lvbmcgQ2hvaSAgPGt5MC5jaG9pQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIEZpeCBidWlsZCB3YXJuaW5nIGFmdGVyIHIxNDE2NDgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGNhNjQ2MWEuLmM2YzMxMTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtODMsNiArODMsNyBAQCB3ZWJraXQyX2hfYXBpICs9IFwKIAkk
KFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9X
S1BsdWdpblNpdGVEYXRhTWFuYWdlci5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9X
S1BvcHVwTWVudS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgg
XAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlvblNwYWNlLmggXApAQCAt
NjI0LDYgKzYyNSw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzUHJpdmF0ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggYjg3ZTk3OS4u
OWY4ZDM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTM3LDYgKzM3LDcgQEAgbGlz
dChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nlc3MvQVBJL0MvY2Fpcm8vV0tJ
Y29uRGF0YWJhc2VDYWlyby5jcHAKIAorICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tQb3B1cE1l
bnVFZmwuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCiAKICAgICBVSVBy
b2Nlc3MvQVBJL2NwcC9lZmwvV0tFaW5hU2hhcmVkU3RyaW5nLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL1dLQmFzZS5oCmluZGV4IDhjMjQzZGIuLmU4NzcxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEzMyw2ICsxMzMsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyKiBXS09wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUgogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlKiBXS1BhZ2VSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VHcm91cCogV0tQYWdlR3JvdXBSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BsdWdpblNpdGVEYXRhTWFuYWdlciogV0tQbHVnaW5T
aXRlRGF0YU1hbmFnZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BvcHVwTWVu
dSogV0tQb3B1cE1lbnVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVu
Y2VzKiBXS1ByZWZlcmVuY2VzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90
ZWN0aW9uU3BhY2UqIFdLUHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tUZXh0Q2hlY2tlciogV0tUZXh0Q2hlY2tlclJlZjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElP
YmplY3QuaAppbmRleCA4NTlmYjhlLi4wZDljZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVj
dC5oCkBAIC0xMDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgICAgICBUeXBlUGFnZSwKICAgICAg
ICAgVHlwZVBhZ2VHcm91cCwKICAgICAgICAgVHlwZVBsdWdpblNpdGVEYXRhTWFuYWdlciwKKyAg
ICAgICAgVHlwZVBvcHVwTWVudSwKICAgICAgICAgVHlwZVByZWZlcmVuY2VzLAogICAgICAgICBU
eXBlVGV4dENoZWNrZXIsCiAgICAgICAgIFR5cGVWaWJyYXRpb24sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBj
NmUzMTYyLi44YzBjMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE4OCw2ICsxODgsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVByaXZhdGUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0
ZURhdGFNYW5hZ2VyLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlv
blNwYWNlLmggXApAQCAtNTQwLDYgKzU0MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIFwKKyAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tQb3B1cE1lbnUuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFj
ZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggZDUxM2I5
Ni4uNmRlZWY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aApAQCAtODcsNiArODcsNyBAQCBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5
OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyOworY2xhc3MgV2ViUG9wdXBNZW51UHJveHk7CiBjbGFzcyBXZWJQ
cmVmZXJlbmNlczsKIGNsYXNzIFdlYlByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFdlYlJlbmRlckxh
eWVyOwpAQCAtMTMxLDYgKzEzMiw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFJl
c3VsdExpc3RlbmVyUmVmLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5CiBXS19BRERf
QVBJX01BUFBJTkcoV0tQYWdlR3JvdXBSZWYsIFdlYlBhZ2VHcm91cCkKIFdLX0FERF9BUElfTUFQ
UElORyhXS1BhZ2VSZWYsIFdlYlBhZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1BsdWdp
blNpdGVEYXRhTWFuYWdlclJlZiwgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKQorV0tfQUREX0FQ
SV9NQVBQSU5HKFdLUG9wdXBNZW51UmVmLCBXZWJQb3B1cE1lbnVQcm94eSkKIFdLX0FERF9BUElf
TUFQUElORyhXS1ByZWZlcmVuY2VzUmVmLCBXZWJQcmVmZXJlbmNlcykKIFdLX0FERF9BUElfTUFQ
UElORyhXS1Byb3RlY3Rpb25TcGFjZVJlZiwgV2ViUHJvdGVjdGlvblNwYWNlKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLUmVuZGVyTGF5ZXJSZWYsIFdlYlJlbmRlckxheWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNmUzNjVlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBDaHJpc3RvcGhlIER1bWV6IDxkY2hyaXNAZ21haWwuY29t
PgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tQb3B1cE1lbnUu
aCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5
LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLUG9wdXBNZW51R2V0
VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViUG9wdXBNZW51UHJveHk6OkFQSVR5cGUp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBN
ZW51LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQb3B1cE1lbnUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWE4MjI2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmgKQEAgLTAsMCAr
MSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBDaHJpc3RvcGhlIER1bWV6IDxkY2hy
aXNAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLUG9wdXBNZW51X2gKKyNkZWZpbmUg
V0tQb3B1cE1lbnVfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9f
Y3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tQ
b3B1cE1lbnVHZXRUeXBlSUQoKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKwor
I2VuZGlmIC8qIFdLUG9wdXBNZW51X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XZWJLaXQyX0MuaAppbmRleCA5ODFkNTIwLi5jYjIzMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSA8
V2ViS2l0Mi9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9X
S1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V2Vi
S2l0Mi9XS1BvcHVwTWVudS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNlcy5oPgog
I2luY2x1ZGUgPFdlYktpdDIvV0tTdHJpbmcuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLVVJMLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLUG9wdXBN
ZW51RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tQb3B1cE1l
bnVFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2ZTg3NTEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLUG9w
dXBNZW51RWZsLmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IENocmlzdG9waGUgRHVtZXogPGRjaHJpc0BnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1BvcHVwTWVudUVmbC5oIgorCisjaW5jbHVkZSAiV0tB
UElDYXN0LmgiCisjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHlFZmwuaCIKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKKwordm9pZCBXS1BvcHVwTWVudVNldFNlbGVjdGVkSW5kZXgoV0tQb3B1
cE1lbnVSZWYgbWVudVJlZiwgaW50IHNlbGVjdGVkSW5kZXgpCit7CisgICAgc3RhdGljX2Nhc3Q8
V2ViUG9wdXBNZW51UHJveHlFZmwqPih0b0ltcGwobWVudVJlZikpLT52YWx1ZUNoYW5nZWQoc2Vs
ZWN0ZWRJbmRleCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvZWZsL1dLUG9wdXBNZW51RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
ZWZsL1dLUG9wdXBNZW51RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NzI2Y2I1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9lZmwvV0tQb3B1cE1lbnVFZmwuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIENocmlzdG9waGUgRHVtZXogPGRjaHJpc0BnbWFpbC5jb20+CisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV0tQb3B1cE1lbnVFZmxfaAorI2RlZmluZSBXS1BvcHVwTWVudUVmbF9oCisKKyNp
bmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCB2b2lkIFdLUG9wdXBNZW51U2V0U2VsZWN0ZWRJbmRl
eChXS1BvcHVwTWVudVJlZiBtZW51LCBpbnQgc2VsZWN0ZWRJbmRleCk7CisKKyNpZmRlZiBfX2Nw
bHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS1BvcHVwTWVudUVmbF9oICovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDc5NjI2ZTYu
LmMwYTU4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcu
Y3BwCkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJX
ZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKLSNpbmNsdWRlICJXZWJQ
b3B1cE1lbnVQcm94eUVmbC5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5jbHVk
ZSAiZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfY29sb3Jf
cGlja2VyX3ByaXZhdGUuaCIKQEAgLTc5MSwxMiArNzkwLDEyIEBAIHZvaWQgRXdrVmlldzo6aGlk
ZUNvbnRleHRNZW51KCkKICAgICBtX2NvbnRleHRNZW51LmNsZWFyKCk7CiB9CiAKLXZvaWQgRXdr
Vmlldzo6cmVxdWVzdFBvcHVwTWVudShXZWJQb3B1cE1lbnVQcm94eUVmbCogcG9wdXBNZW51UHJv
eHksIGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgZG91
YmxlIHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBp
bnQzMl90IHNlbGVjdGVkSW5kZXgpCit2b2lkIEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUoV0tQ
b3B1cE1lbnVSZWYgcG9wdXBNZW51LCBjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9u
IHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIEVpbmFfTGlzdCogcGFzc0l0
ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpCiB7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSog
c2QgPSBzbWFydERhdGEoKTsKICAgICBBU1NFUlQoc2QtPmFwaSk7CiAKLSAgICBBU1NFUlQocG9w
dXBNZW51UHJveHkpOworICAgIEFTU0VSVChwb3B1cE1lbnUpOwogCiAgICAgaWYgKCFzZC0+YXBp
LT5wb3B1cF9tZW51X3Nob3cpCiAgICAgICAgIHJldHVybjsKQEAgLTgwNCw3ICs4MDMsNyBAQCB2
b2lkIEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUoV2ViUG9wdXBNZW51UHJveHlFZmwqIHBvcHVw
TWVudVByb3h5LCBjb25zdCBJbnRSZQogICAgIGlmIChtX3BvcHVwTWVudSkKICAgICAgICAgY2xv
c2VQb3B1cE1lbnUoKTsKIAotICAgIG1fcG9wdXBNZW51ID0gRXdrUG9wdXBNZW51OjpjcmVhdGUo
dGhpcywgcG9wdXBNZW51UHJveHksIGl0ZW1zLCBzZWxlY3RlZEluZGV4KTsKKyAgICBtX3BvcHVw
TWVudSA9IEV3a1BvcHVwTWVudTo6Y3JlYXRlKHRoaXMsIHBvcHVwTWVudSwgcGFzc0l0ZW1zLCBz
ZWxlY3RlZEluZGV4KTsKIAogICAgIHNkLT5hcGktPnBvcHVwX21lbnVfc2hvdyhzZCwgcmVjdCwg
c3RhdGljX2Nhc3Q8RXdrX1RleHRfRGlyZWN0aW9uPih0ZXh0RGlyZWN0aW9uKSwgcGFnZVNjYWxl
RmFjdG9yLCBtX3BvcHVwTWVudS5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9Fd2tWaWV3LmgKaW5kZXggOTljZThlZC4uNzg1N2ZhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAtMTc1LDcgKzE3NSw4IEBAIHB1Ymxp
YzoKICAgICBXS1BhZ2VSZWYgY3JlYXRlTmV3UGFnZShQYXNzUmVmUHRyPEV3a1VybFJlcXVlc3Q+
LCBXS0RpY3Rpb25hcnlSZWYgd2luZG93RmVhdHVyZXMpOwogICAgIHZvaWQgY2xvc2UoKTsKIAot
ICAgIHZvaWQgcmVxdWVzdFBvcHVwTWVudShXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5RWZsKiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIGRvdWJsZSBw
YWdlU2NhbGVGYWN0b3IsIGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYlBvcHVwSXRlbT4mIGl0ZW1z
LCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpOworICAgIC8vIFRha2VzIG93bmVyc2hpcCBvZiB0aGUg
cGFzc2VkIGl0ZW1zLgorICAgIHZvaWQgcmVxdWVzdFBvcHVwTWVudShXS1BvcHVwTWVudVJlZiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIGRvdWJsZSBw
YWdlU2NhbGVGYWN0b3IsIEVpbmFfTGlzdCogcGFzc0l0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5k
ZXgpOwogICAgIHZvaWQgY2xvc2VQb3B1cE1lbnUoKTsKICAgICAKICAgICB2b2lkIHNob3dDb250
ZXh0TWVudShXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlFZmwqLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRl
bURhdGE+JiBpdGVtcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfcG9wdXBfbWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfcG9wdXBfbWVudS5jcHAKaW5kZXggMDM5NmYwMS4uZDc2MTI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51LmNwcApAQCAt
MjgsMjEgKzI4LDE2IEBACiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnUuaCIKIAogI2luY2x1ZGUg
IkV3a1ZpZXcuaCIKLSNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eUVmbC5oIgorI2luY2x1ZGUg
IldLUG9wdXBNZW51RWZsLmgiCiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRl
LmgiCiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfcHJpdmF0ZS5oIgogCi11c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OwotCi1Fd2tQb3B1cE1lbnU6OkV3a1BvcHVwTWVudShFd2tWaWV3KiB2aWV3LCBX
ZWJQb3B1cE1lbnVQcm94eUVmbCogcG9wdXBNZW51UHJveHksIGNvbnN0IFZlY3RvcjxXZWJLaXQ6
OldlYlBvcHVwSXRlbT4mIGl0ZW1zLCB1bnNpZ25lZCBzZWxlY3RlZEluZGV4KQorRXdrUG9wdXBN
ZW51OjpFd2tQb3B1cE1lbnUoRXdrVmlldyogdmlldywgV0tQb3B1cE1lbnVSZWYgcG9wdXBNZW51
LCBFaW5hX0xpc3QqIHBhc3NJdGVtcywgdW5zaWduZWQgc2VsZWN0ZWRJbmRleCkKICAgICA6IG1f
dmlldyh2aWV3KQotICAgICwgbV9wb3B1cE1lbnVQcm94eShwb3B1cE1lbnVQcm94eSkKLSAgICAs
IG1fcG9wdXBNZW51SXRlbXMoMCkKKyAgICAsIG1fcG9wdXBNZW51KHBvcHVwTWVudSkKKyAgICAs
IG1fcG9wdXBNZW51SXRlbXMocGFzc0l0ZW1zKQogICAgICwgbV9zZWxlY3RlZEluZGV4KHNlbGVj
dGVkSW5kZXgpCiB7Ci0gICAgY29uc3Qgc2l6ZV90IHNpemUgPSBpdGVtcy5zaXplKCk7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fcG9wdXBNZW51SXRl
bXMgPSBlaW5hX2xpc3RfYXBwZW5kKG1fcG9wdXBNZW51SXRlbXMsIEV3a1BvcHVwTWVudUl0ZW06
OmNyZWF0ZShpdGVtc1tpXSkubGVha1B0cigpKTsKIH0KIAogRXdrUG9wdXBNZW51Ojp+RXdrUG9w
dXBNZW51KCkKQEAgLTY5LDcgKzY0LDcgQEAgdW5zaWduZWQgRXdrUG9wdXBNZW51OjpzZWxlY3Rl
ZEluZGV4KCkgY29uc3QKIAogYm9vbCBFd2tQb3B1cE1lbnU6OnNldFNlbGVjdGVkSW5kZXgodW5z
aWduZWQgc2VsZWN0ZWRJbmRleCkKIHsKLSAgICBpZiAoIW1fcG9wdXBNZW51UHJveHkpCisgICAg
aWYgKCFtX3BvcHVwTWVudSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHNlbGVj
dGVkSW5kZXggPj0gZWluYV9saXN0X2NvdW50KG1fcG9wdXBNZW51SXRlbXMpKQpAQCAtNzksNyAr
NzQsNyBAQCBib29sIEV3a1BvcHVwTWVudTo6c2V0U2VsZWN0ZWRJbmRleCh1bnNpZ25lZCBzZWxl
Y3RlZEluZGV4KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIG1fc2VsZWN0ZWRJbmRleCA9
IHNlbGVjdGVkSW5kZXg7Ci0gICAgbV9wb3B1cE1lbnVQcm94eS0+dmFsdWVDaGFuZ2VkKHNlbGVj
dGVkSW5kZXgpOworICAgIFdLUG9wdXBNZW51U2V0U2VsZWN0ZWRJbmRleChtX3BvcHVwTWVudS5n
ZXQoKSwgc2VsZWN0ZWRJbmRleCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X3ByaXZh
dGUuaAppbmRleCA1MjRmNTlkLi5lMmFjN2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9wcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfcHJpdmF0ZS5oCkBAIC0yNywy
MiArMjcsMTkgQEAKICNpZm5kZWYgZXdrX3BvcHVwX21lbnVfcHJpdmF0ZV9oCiAjZGVmaW5lIGV3
a19wb3B1cF9tZW51X3ByaXZhdGVfaAogCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKICNpbmNs
dWRlIDxFaW5hLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci1jbGFzcyBXZWJQb3B1cEl0ZW07Ci1jbGFzcyBXZWJQb3B1cE1lbnVQcm94eUVmbDsKLX0K
IAogY2xhc3MgRXdrVmlldzsKIAogY2xhc3MgRXdrUG9wdXBNZW51IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxFd2tQb3B1cE1lbnU+IGNyZWF0ZShFd2tWaWV3KiB2aWV3LCBXZWJL
aXQ6OldlYlBvcHVwTWVudVByb3h5RWZsKiBwb3B1cE1lbnVQcm94eSwgY29uc3QgVmVjdG9yPFdl
YktpdDo6V2ViUG9wdXBJdGVtPiYgaXRlbXMsIHVuc2lnbmVkIHNlbGVjdGVkSW5kZXgpCisgICAg
Ly8gVGFrZXMgb3duZXJza2lwIG9mIHRoZSBwYXNzZWQgaXRlbXMuCisgICAgc3RhdGljIFBhc3NP
d25QdHI8RXdrUG9wdXBNZW51PiBjcmVhdGUoRXdrVmlldyogdmlldywgV0tQb3B1cE1lbnVSZWYg
cG9wdXBNZW51LCBFaW5hX0xpc3QqIHBhc3NJdGVtcywgdW5zaWduZWQgc2VsZWN0ZWRJbmRleCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrUG9wdXBNZW51KHZpZXcsIHBv
cHVwTWVudVByb3h5LCBpdGVtcywgc2VsZWN0ZWRJbmRleCkpOworICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IEV3a1BvcHVwTWVudSh2aWV3LCBwb3B1cE1lbnUsIHBhc3NJdGVtcywgc2VsZWN0
ZWRJbmRleCkpOwogICAgIH0KICAgICB+RXdrUG9wdXBNZW51KCk7CiAKQEAgLTU0LDEwICs1MSwx
MCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgc2VsZWN0ZWRJbmRleCgpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIEV3a1BvcHVwTWVudShFd2tWaWV3KiB2aWV3SW1wbCwgV2ViS2l0OjpXZWJQb3B1
cE1lbnVQcm94eUVmbCosIGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYlBvcHVwSXRlbT4mIGl0ZW1z
LCB1bnNpZ25lZCBzZWxlY3RlZEluZGV4KTsKKyAgICBFd2tQb3B1cE1lbnUoRXdrVmlldyogdmll
d0ltcGwsIFdLUG9wdXBNZW51UmVmLCBFaW5hX0xpc3QqIGl0ZW1zLCB1bnNpZ25lZCBzZWxlY3Rl
ZEluZGV4KTsKIAogICAgIEV3a1ZpZXcqIG1fdmlldzsKLSAgICBXZWJLaXQ6OldlYlBvcHVwTWVu
dVByb3h5RWZsKiBtX3BvcHVwTWVudVByb3h5OworICAgIFdLUmV0YWluUHRyPFdLUG9wdXBNZW51
UmVmPiBtX3BvcHVwTWVudTsKICAgICBFaW5hX0xpc3QqIG1fcG9wdXBNZW51SXRlbXM7CiAgICAg
dW5zaWduZWQgbV9zZWxlY3RlZEluZGV4OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQb3B1cE1lbnVQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBvcHVwTWVudVByb3h5LmgKaW5kZXggMGQ3Nzg4ZC4uNGNkMzQ5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpZm5kZWYgV2ViUG9wdXBNZW51UHJveHlfaAogI2RlZmluZSBXZWJQb3B1cE1lbnVQcm94eV9o
CiAKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1RleHREaXJlY3Rp
b24uaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CkBAIC00MSw4ICs0MiwxMCBAQCBzdHJ1Y3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhOwog
c3RydWN0IFdlYlBvcHVwSXRlbTsKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQ7CiAKLWNsYXNz
IFdlYlBvcHVwTWVudVByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUG9wdXBNZW51UHJveHk+
IHsKK2NsYXNzIFdlYlBvcHVwTWVudVByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CiBwdWJsaWM6
CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVQb3B1cE1lbnU7CisKICAgICBj
bGFzcyBDbGllbnQgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCB+Q2xpZW50KCkK
QEAgLTc3LDYgKzgwLDggQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAKKyAgICB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKwogICAgIENsaWVudCogbV9j
bGllbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
YlBvcHVwTWVudVByb3h5RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2Vi
UG9wdXBNZW51UHJveHlFZmwuY3BwCmluZGV4IGE1OTU1MzcuLmFlZGIwMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUG9wdXBNZW51UHJveHlFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUG9wdXBNZW51UHJveHlFZmwuY3Bw
CkBAIC0yNywxMCArMjcsMTAgQEAKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eUVmbC5oIgog
CiAjaW5jbHVkZSAiRXdrVmlldy5oIgotI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIK
KyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJQb3B1cEl0ZW0uaCIKKyNpbmNs
dWRlICJld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlldy5o
IgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTQ0LDcgKzQ0LDE1IEBAIFdlYlBvcHVwTWVudVByb3h5RWZsOjpXZWJQb3B1cE1l
bnVQcm94eUVmbChFd2tWaWV3KiB2aWV3LCBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpCiAKIHZvaWQg
V2ViUG9wdXBNZW51UHJveHlFZmw6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwg
VGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9yLCBjb25z
dCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGNvbnN0IFBsYXRmb3JtUG9wdXBNZW51RGF0
YSYsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCkKIHsKLSAgICBtX3ZpZXctPnJlcXVlc3RQb3B1cE1l
bnUodGhpcywgcmVjdCwgdGV4dERpcmVjdGlvbiwgcGFnZVNjYWxlRmFjdG9yLCBpdGVtcywgc2Vs
ZWN0ZWRJbmRleCk7CisgICAgRWluYV9MaXN0KiBwb3B1cE1lbnVJdGVtcyA9IDA7CisgICAgY29u
c3Qgc2l6ZV90IHNpemUgPSBpdGVtcy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpIHsKKyAgICAgICAgLy8gRklYTUU6IEV3a1BvcHVwTWVudUl0ZW0gc2hvdWxk
IHN0b3AgdXNpbmcgV2ViUG9wdXBJdGVtLgorICAgICAgICBwb3B1cE1lbnVJdGVtcyA9IGVpbmFf
bGlzdF9hcHBlbmQocG9wdXBNZW51SXRlbXMsIEV3a1BvcHVwTWVudUl0ZW06OmNyZWF0ZShpdGVt
c1tpXSkubGVha1B0cigpKTsKKyAgICB9CisKKyAgICAvLyByZXF1ZXN0UG9wdXBNZW51KCkgdGFr
ZXMgb3duZXJzaGlwIG9mIHRoZSBtZW51IGl0ZW1zLgorICAgIG1fdmlldy0+cmVxdWVzdFBvcHVw
TWVudSh0b0FQSShzdGF0aWNfY2FzdDxXZWJQb3B1cE1lbnVQcm94eSo+KHRoaXMpKSwgcmVjdCwg
dGV4dERpcmVjdGlvbiwgcGFnZVNjYWxlRmFjdG9yLCBwb3B1cE1lbnVJdGVtcywgc2VsZWN0ZWRJ
bmRleCk7CiB9CiAKIHZvaWQgV2ViUG9wdXBNZW51UHJveHlFZmw6OmhpZGVQb3B1cE1lbnUoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDRiNjg3ZWUuLjA0NTFjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1MSw2ICs1NTEsOCBAQAogCQk3NjJCNzQ4RDEy
MEJDNzVDMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAv
KiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTc4MDFDMDk5MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0
UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc4MDFDMDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCAqLzsgfTsK
IAkJNzgwMUMwOUExNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MDFDMDk2MTQyMjkwQzQw
MEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmggKi87IH07CisJCTgzNjdEM0Q0MTZCRkM4NUMw
MEQyQTBBNyAvKiBXS1BvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzY3RDNEMjE2QkZDODVDMDBEMkEwQTcgLyogV0tQb3B1cE1lbnUu
Y3BwICovOyB9OworCQk4MzY3RDNENTE2QkZDODVDMDBEMkEwQTcgLyogV0tQb3B1cE1lbnUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjdEM0QzMTZC
RkM4NUMwMEQyQTBBNyAvKiBXS1BvcHVwTWVudS5oICovOyB9OwogCQk4Q0ZFQ0U5NDE0OTBGMTQw
MDAyQUFBMzIgLyogRWRpdG9yU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOENGRUNFOTMxNDkwRjE0MDAwMkFBQTMyIC8qIEVkaXRvclN0YXRl
LmNwcCAqLzsgfTsKIAkJOERDMkVGNTMwNDg2QTY5NDAwOThCMjE2IC8qIEluZm9QbGlzdC5zdHJp
bmdzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODlD
MTY2NkZFODQxMTU4QzAyQUFDMDcgLyogSW5mb1BsaXN0LnN0cmluZ3MgKi87IH07CiAJCTkwOTg1
NEVDMTJCQzRFMTcwMDBBRDA4MCAvKiBXZWJNZW1vcnlTYW1wbGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwNTYyMEU4MTJCQzI0OEIwMDA3OTlC
NiAvKiBXZWJNZW1vcnlTYW1wbGVyLmNwcCAqLzsgfTsKQEAgLTE1MjAsOCArMTUyMiw4IEBACiAJ
CTFBQjE2QUVCMTY0QjQxRTQwMDI5MEQ2MiAvKiBSZW1vdGVHcmFwaGljc0xheWVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NMYXllci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFCMTZBRUMxNjRCNDFFNDAwMjkwRDYy
IC8qIFJlbW90ZUdyYXBoaWNzTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlR3JhcGhpY3NMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QUIzMUE5MzE2QkM2NUFCMDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTFBQjMxQTk0MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBQjMxQTk1MTZCQzY4ODEw
MEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IFN0b3JhZ2VNYW5h
Z2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFCMzFBOTQxNkJD
Njg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFCMzFBOTUxNkJDNjg4MTAw
RjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQUI3RDRDODEyODhBQUE3MDBDRkQwOEMgLyogRG93bmxvYWRQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb3dubG9hZFByb3h5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQjdENEM5MTI4OEFBQTcwMENGRDA4QyAvKiBEb3dubG9h
ZFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvd25sb2Fk
UHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI3RDVFOTEyODhCOEMw
MDBDRkQwOEMgLyogRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBEb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTg4NSw2ICsxODg3LDggQEAKIAkJNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5IC8qIFdL
UHJlZmVyZW5jZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
UHJlZmVyZW5jZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc4MDFD
MDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1bHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3ODAxQzA5NjE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVz
dFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJIaXRUZXN0UmVz
dWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzNjdEM0QyMTZCRkM4NUMwMEQy
QTBBNyAvKiBXS1BvcHVwTWVudS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS1BvcHVwTWVudS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzNjdE
M0QzMTZCRkM4NUMwMEQyQTBBNyAvKiBXS1BvcHVwTWVudS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1BvcHVwTWVudS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4Q0ZFQ0U5MzE0OTBGMTQwMDAyQUFBMzIgLyogRWRpdG9yU3RhdGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdG9yU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4REMyRUY1QTA0ODZBNjk0MDA5OEIyMTYgLyogSW5mby5wbGlzdCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gSW5mby5wbGlzdDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOERDMkVGNUIwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdDIuZnJh
bWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3
cmFwcGVyLmZyYW1ld29yazsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gV2ViS2l0Mi5mcmFt
ZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0zODA2LDYgKzM4
MTAsOCBAQAogCQlCQzBDMzc2NjEwRjgwNzY2MDA3NkQ3Q0IgLyogQyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJODM2N0QzRDIxNkJGQzg1QzAwRDJBMEE3
IC8qIFdLUG9wdXBNZW51LmNwcCAqLywKKwkJCQk4MzY3RDNEMzE2QkZDODVDMDBEMkEwQTcgLyog
V0tQb3B1cE1lbnUuaCAqLywKIAkJCQk1MTIzQ0YxODEzM0QyNUU2MDA1NkY4MDAgLyogY2cgKi8s
CiAJCQkJNkVFODQ5QzQxMzY4RDkwNDAwMzhENDgxIC8qIG1hYyAqLywKIAkJCQlCQ0I2MzQ3NzEx
NkJGMTA2MDA2MDMyMTUgLyogV2ViS2l0Ml9DLmggKi8sCkBAIC01MzY2LDYgKzUzNzIsNyBAQAog
CQkJCUE1RUZEMzhDMTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQzRDODI5MTZCODc2QTkwMDY5RENDRCAvKiBNZXNzYWdlRmxh
Z3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjMxQTk3MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9y
YWdlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzY3RDNENTE2QkZDODVD
MDBEMkEwQTcgLyogV0tQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNjQ4OCw2ICs2NDk1
LDcgQEAKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZUVudHJ5
UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0JFQ0RFNzE2QjY0MTY4MDAwNDdBMUEgLyog
WFBDU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUIzMUE5NjE2QkM2
ODgxMDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJODM2N0QzRDQxNkJGQzg1QzAwRDJBMEE3IC8qIFdLUG9wdXBNZW51LmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9Owo=
</data>
<flag name="commit-queue"
          id="205752"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186344</attachid>
            <date>2013-02-04 04:10:56 -0800</date>
            <delta_ts>2013-02-04 04:58:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108798_popupmenu_capi.patch</filename>
            <type>text/plain</type>
            <size>30350</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggYWY2YjE0MS4uZGU5MGMxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTMzMyw2ICszMzMsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAorICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlcy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYTU1MGI4Yi4uMDZhYjA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAy
LTA0ICBDaHJpc3RvcGhlIER1bWV6ICA8ZGNocmlzQGdtYWlsLmNvbT4KKworICAgICAgICBbRUZM
XVtXSzJdIFBvcnQgZXdrX3BvcHVwX21lbnUgdG8gdGhlIEMgQVBJCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg3OTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV0tQb3B1cE1lbnUgdHlwZSB0byBD
IEFQSSBhbmQgdXNlIGl0IGluc2lkZSBld2tfcG9wdXBfbWVudSB0byBzdG9wCisgICAgICAgIHJl
bHlpbmcgb24gV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eUVmbCBkaXJlY3RseS4gV2ViUG9wdXBN
ZW51UHJveHlFZmwKKyAgICAgICAgaXMgaW50ZXJuYWwgQysrIEFQSSBhbmQgd2Ugc2hvdWxkIHN0
b3AgdXNpbmcgaXQgZGlyZWN0bHkgdG8gYXZvaWQKKyAgICAgICAgdmlvbGF0aW5nIEFQSSBsYXll
cmluZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgbmV3IFdLUG9wdXBNZW51Liog
ZmlsZXMuCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkIG5ldyBXS1BvcHVwTWVu
dS4qIGZpbGVzLgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBBZGQgTmV3IFdLUG9wdXBN
ZW51RWZsLiogZmlsZXMuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAg
ICAqIFNoYXJlZC9BUElPYmplY3QuaDogQWRkIG5ldyBUeXBlUG9wdXBNZW51IHR5cGUuCisgICAg
ICAgICogVGFyZ2V0LnByaTogQWRkIG5ldyBXS1BvcHVwTWVudS4qIGZpbGVzLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmNwcDogQWRkZWQuCisgICAgICAgIChXS1Bv
cHVwTWVudUdldFR5cGVJRCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaDogQWRkIG5l
dyBXS1BvcHVwTWVudS5oIGhlYWRlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dL
UG9wdXBNZW51RWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXS1BvcHVwTWVudVNldFNlbGVjdGVk
SW5kZXgpOiBBZGQgQyBBUEkgdG8gRUZMIHBvcnQgdG8gdXBkYXRlCisgICAgICAgIHNlbGVjdGVk
IGluZGV4IGluIHRoZSBwb3B1cCBtZW51LiBUaGlzIGlzIG5lZWRlZCBzbyB0aGF0IG91ciBDIEFQ
SSBubworICAgICAgICBsb25nZXIgdXNlcyBXZWJQb3B1cE1lbnVQcm94eUVmbCBpbnRlcm5hbCBD
KysgY2xhc3MgZGlyZWN0bHkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BvcHVw
TWVudUVmbC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNw
cDoKKyAgICAgICAgKEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUpOiBVc2UgV0tQb3B1cE1lbnVS
ZWYgdHlwZSBpbnN0ZWFkIG9mCisgICAgICAgIFdlYlBvcHVwTWVudVByb3h5RWZsIGFuZCB0YWtl
IHBvcHVwIG1lbnUgaXRlbXMgYXMgYW4gRWluYV9MaXN0CisgICAgICAgIGNvbnRhaW5pbmcgRXdr
UG9wdXBNZW51SXRlbSBvYmplY3RzIGluc3RlYWQgb2YgYSBWZWN0b3Igb2YgV2ViUG9wdXBJdGVt
CisgICAgICAgIG9iamVjdHMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5o
OgorICAgICAgICAoRXdrVmlldyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Bv
cHVwX21lbnUuY3BwOiBVc2UgQyBBUEkgaW5zdGVhZCBvZiBpbnRlcm5hbAorICAgICAgICBDKysg
QVBJLgorICAgICAgICAoRXdrUG9wdXBNZW51OjpFd2tQb3B1cE1lbnUpOgorICAgICAgICAoRXdr
UG9wdXBNZW51OjpzZXRTZWxlY3RlZEluZGV4KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfcG9wdXBfbWVudV9wcml2YXRlLmg6IERpdHRvLgorICAgICAgICAoRXdrUG9wdXBNZW51
KToKKyAgICAgICAgKEV3a1BvcHVwTWVudTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUG9wdXBNZW51UHJveHkuaDogU3ViY2xhc3MgQVBJT2JqZWN0IGFuZCBvdmVycmlkZSB0eXBl
KCkKKyAgICAgICAgdG8gcmV0dXJuIFR5cGVQb3B1cE1lbnUuCisgICAgICAgIChXZWJQb3B1cE1l
bnVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5Ojp0eXBlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlBvcHVwTWVudVByb3h5RWZsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlFZmw6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAq
IFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5ldyBXS1BvcHVwTWVudS4q
IGZpbGVzLgorCiAyMDEzLTAyLTAzICBLd2FuZ1lvbmcgQ2hvaSAgPGt5MC5jaG9pQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIEZpeCBidWlsZCB3YXJuaW5nIGFmdGVyIHIxNDE2NDgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGNhNjQ2MWEuLmM2YzMxMTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtODMsNiArODMsNyBAQCB3ZWJraXQyX2hfYXBpICs9IFwKIAkk
KFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9X
S1BsdWdpblNpdGVEYXRhTWFuYWdlci5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9X
S1BvcHVwTWVudS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgg
XAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlvblNwYWNlLmggXApAQCAt
NjI0LDYgKzYyNSw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVByaXZhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlcy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzUHJpdmF0ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggYjg3ZTk3OS4u
OWY4ZDM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysr
IGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTM3LDYgKzM3LDcgQEAgbGlz
dChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBVSVByb2Nlc3MvQVBJL0MvY2Fpcm8vV0tJ
Y29uRGF0YWJhc2VDYWlyby5jcHAKIAorICAgIFVJUHJvY2Vzcy9BUEkvQy9lZmwvV0tQb3B1cE1l
bnVFZmwuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1ZpZXcuY3BwCiAKICAgICBVSVBy
b2Nlc3MvQVBJL2NwcC9lZmwvV0tFaW5hU2hhcmVkU3RyaW5nLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL1dLQmFzZS5oCmluZGV4IDhjMjQzZGIuLmU4NzcxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEzMyw2ICsxMzMsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyKiBXS09wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyUgogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlKiBXS1BhZ2VSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VHcm91cCogV0tQYWdlR3JvdXBSZWY7CiB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BsdWdpblNpdGVEYXRhTWFuYWdlciogV0tQbHVnaW5T
aXRlRGF0YU1hbmFnZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BvcHVwTWVu
dSogV0tQb3B1cE1lbnVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVu
Y2VzKiBXS1ByZWZlcmVuY2VzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90
ZWN0aW9uU3BhY2UqIFdLUHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tUZXh0Q2hlY2tlciogV0tUZXh0Q2hlY2tlclJlZjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElP
YmplY3QuaAppbmRleCA4NTlmYjhlLi4wZDljZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVj
dC5oCkBAIC0xMDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgICAgICBUeXBlUGFnZSwKICAgICAg
ICAgVHlwZVBhZ2VHcm91cCwKICAgICAgICAgVHlwZVBsdWdpblNpdGVEYXRhTWFuYWdlciwKKyAg
ICAgICAgVHlwZVBvcHVwTWVudSwKICAgICAgICAgVHlwZVByZWZlcmVuY2VzLAogICAgICAgICBU
eXBlVGV4dENoZWNrZXIsCiAgICAgICAgIFR5cGVWaWJyYXRpb24sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBj
NmUzMTYyLi44YzBjMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTE4OCw2ICsxODgsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVByaXZhdGUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0
ZURhdGFNYW5hZ2VyLmggXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlv
blNwYWNlLmggXApAQCAtNTQwLDYgKzU0MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIFwKKyAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tQb3B1cE1lbnUuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Byb3RlY3Rpb25TcGFj
ZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggZDUxM2I5
Ni4uNmRlZWY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aApAQCAtODcsNiArODcsNyBAQCBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5
OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyOworY2xhc3MgV2ViUG9wdXBNZW51UHJveHk7CiBjbGFzcyBXZWJQ
cmVmZXJlbmNlczsKIGNsYXNzIFdlYlByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFdlYlJlbmRlckxh
eWVyOwpAQCAtMTMxLDYgKzEzMiw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS09wZW5QYW5lbFJl
c3VsdExpc3RlbmVyUmVmLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5CiBXS19BRERf
QVBJX01BUFBJTkcoV0tQYWdlR3JvdXBSZWYsIFdlYlBhZ2VHcm91cCkKIFdLX0FERF9BUElfTUFQ
UElORyhXS1BhZ2VSZWYsIFdlYlBhZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1BsdWdp
blNpdGVEYXRhTWFuYWdlclJlZiwgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKQorV0tfQUREX0FQ
SV9NQVBQSU5HKFdLUG9wdXBNZW51UmVmLCBXZWJQb3B1cE1lbnVQcm94eSkKIFdLX0FERF9BUElf
TUFQUElORyhXS1ByZWZlcmVuY2VzUmVmLCBXZWJQcmVmZXJlbmNlcykKIFdLX0FERF9BUElfTUFQ
UElORyhXS1Byb3RlY3Rpb25TcGFjZVJlZiwgV2ViUHJvdGVjdGlvblNwYWNlKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLUmVuZGVyTGF5ZXJSZWYsIFdlYlJlbmRlckxheWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNmUzNjVlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBDaHJpc3RvcGhlIER1bWV6IDxkY2hyaXNAZ21haWwuY29t
PgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tQb3B1cE1lbnUu
aCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5
LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLUG9wdXBNZW51R2V0
VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViUG9wdXBNZW51UHJveHk6OkFQSVR5cGUp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBN
ZW51LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQb3B1cE1lbnUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWE4MjI2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmgKQEAgLTAsMCAr
MSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBDaHJpc3RvcGhlIER1bWV6IDxkY2hy
aXNAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLUG9wdXBNZW51X2gKKyNkZWZpbmUg
V0tQb3B1cE1lbnVfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9f
Y3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tQ
b3B1cE1lbnVHZXRUeXBlSUQoKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKwor
I2VuZGlmIC8qIFdLUG9wdXBNZW51X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XZWJLaXQyX0MuaAppbmRleCA5ODFkNTIwLi5jYjIzMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dlYktpdDJfQy5oCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSA8
V2ViS2l0Mi9XS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9X
S1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V2Vi
S2l0Mi9XS1BvcHVwTWVudS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNlcy5oPgog
I2luY2x1ZGUgPFdlYktpdDIvV0tTdHJpbmcuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLVVJMLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLUG9wdXBN
ZW51RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tQb3B1cE1l
bnVFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2ZTg3NTEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvZWZsL1dLUG9w
dXBNZW51RWZsLmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IENocmlzdG9waGUgRHVtZXogPGRjaHJpc0BnbWFpbC5jb20+CisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1BvcHVwTWVudUVmbC5oIgorCisjaW5jbHVkZSAiV0tB
UElDYXN0LmgiCisjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHlFZmwuaCIKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKKwordm9pZCBXS1BvcHVwTWVudVNldFNlbGVjdGVkSW5kZXgoV0tQb3B1
cE1lbnVSZWYgbWVudVJlZiwgaW50IHNlbGVjdGVkSW5kZXgpCit7CisgICAgc3RhdGljX2Nhc3Q8
V2ViUG9wdXBNZW51UHJveHlFZmwqPih0b0ltcGwobWVudVJlZikpLT52YWx1ZUNoYW5nZWQoc2Vs
ZWN0ZWRJbmRleCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvZWZsL1dLUG9wdXBNZW51RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
ZWZsL1dLUG9wdXBNZW51RWZsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NzI2Y2I1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9lZmwvV0tQb3B1cE1lbnVFZmwuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIENocmlzdG9waGUgRHVtZXogPGRjaHJpc0BnbWFpbC5jb20+CisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV0tQb3B1cE1lbnVFZmxfaAorI2RlZmluZSBXS1BvcHVwTWVudUVmbF9oCisKKyNp
bmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCB2b2lkIFdLUG9wdXBNZW51U2V0U2VsZWN0ZWRJbmRl
eChXS1BvcHVwTWVudVJlZiBtZW51LCBpbnQgc2VsZWN0ZWRJbmRleCk7CisKKyNpZmRlZiBfX2Nw
bHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS1BvcHVwTWVudUVmbF9oICovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDc5NjI2ZTYu
LmMwYTU4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcu
Y3BwCkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJX
ZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKLSNpbmNsdWRlICJXZWJQ
b3B1cE1lbnVQcm94eUVmbC5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5jbHVk
ZSAiZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfY29sb3Jf
cGlja2VyX3ByaXZhdGUuaCIKQEAgLTc5MSwxMiArNzkwLDEyIEBAIHZvaWQgRXdrVmlldzo6aGlk
ZUNvbnRleHRNZW51KCkKICAgICBtX2NvbnRleHRNZW51LmNsZWFyKCk7CiB9CiAKLXZvaWQgRXdr
Vmlldzo6cmVxdWVzdFBvcHVwTWVudShXZWJQb3B1cE1lbnVQcm94eUVmbCogcG9wdXBNZW51UHJv
eHksIGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4dERpcmVjdGlvbiwgZG91
YmxlIHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBp
bnQzMl90IHNlbGVjdGVkSW5kZXgpCit2b2lkIEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUoV0tQ
b3B1cE1lbnVSZWYgcG9wdXBNZW51LCBjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9u
IHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIEVpbmFfTGlzdCogcGFzc0l0
ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpCiB7CiAgICAgRXdrX1ZpZXdfU21hcnRfRGF0YSog
c2QgPSBzbWFydERhdGEoKTsKICAgICBBU1NFUlQoc2QtPmFwaSk7CiAKLSAgICBBU1NFUlQocG9w
dXBNZW51UHJveHkpOworICAgIEFTU0VSVChwb3B1cE1lbnUpOwogCiAgICAgaWYgKCFzZC0+YXBp
LT5wb3B1cF9tZW51X3Nob3cpCiAgICAgICAgIHJldHVybjsKQEAgLTgwNCw3ICs4MDMsNyBAQCB2
b2lkIEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUoV2ViUG9wdXBNZW51UHJveHlFZmwqIHBvcHVw
TWVudVByb3h5LCBjb25zdCBJbnRSZQogICAgIGlmIChtX3BvcHVwTWVudSkKICAgICAgICAgY2xv
c2VQb3B1cE1lbnUoKTsKIAotICAgIG1fcG9wdXBNZW51ID0gRXdrUG9wdXBNZW51OjpjcmVhdGUo
dGhpcywgcG9wdXBNZW51UHJveHksIGl0ZW1zLCBzZWxlY3RlZEluZGV4KTsKKyAgICBtX3BvcHVw
TWVudSA9IEV3a1BvcHVwTWVudTo6Y3JlYXRlKHRoaXMsIHBvcHVwTWVudSwgcGFzc0l0ZW1zLCBz
ZWxlY3RlZEluZGV4KTsKIAogICAgIHNkLT5hcGktPnBvcHVwX21lbnVfc2hvdyhzZCwgcmVjdCwg
c3RhdGljX2Nhc3Q8RXdrX1RleHRfRGlyZWN0aW9uPih0ZXh0RGlyZWN0aW9uKSwgcGFnZVNjYWxl
RmFjdG9yLCBtX3BvcHVwTWVudS5nZXQoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9Fd2tWaWV3LmgKaW5kZXggOTljZThlZC4uNzg1N2ZhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaApAQCAtMTc1LDcgKzE3NSw4IEBAIHB1Ymxp
YzoKICAgICBXS1BhZ2VSZWYgY3JlYXRlTmV3UGFnZShQYXNzUmVmUHRyPEV3a1VybFJlcXVlc3Q+
LCBXS0RpY3Rpb25hcnlSZWYgd2luZG93RmVhdHVyZXMpOwogICAgIHZvaWQgY2xvc2UoKTsKIAot
ICAgIHZvaWQgcmVxdWVzdFBvcHVwTWVudShXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5RWZsKiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIGRvdWJsZSBw
YWdlU2NhbGVGYWN0b3IsIGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYlBvcHVwSXRlbT4mIGl0ZW1z
LCBpbnQzMl90IHNlbGVjdGVkSW5kZXgpOworICAgIC8vIFRha2VzIG93bmVyc2hpcCBvZiB0aGUg
cGFzc2VkIGl0ZW1zLgorICAgIHZvaWQgcmVxdWVzdFBvcHVwTWVudShXS1BvcHVwTWVudVJlZiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIGRvdWJsZSBw
YWdlU2NhbGVGYWN0b3IsIEVpbmFfTGlzdCogcGFzc0l0ZW1zLCBpbnQzMl90IHNlbGVjdGVkSW5k
ZXgpOwogICAgIHZvaWQgY2xvc2VQb3B1cE1lbnUoKTsKICAgICAKICAgICB2b2lkIHNob3dDb250
ZXh0TWVudShXZWJLaXQ6OldlYkNvbnRleHRNZW51UHJveHlFZmwqLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgcG9zaXRpb24sIGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRl
bURhdGE+JiBpdGVtcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfcG9wdXBfbWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfcG9wdXBfbWVudS5jcHAKaW5kZXggMDM5NmYwMS4uZDc2MTI2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51LmNwcApAQCAt
MjgsMjEgKzI4LDE2IEBACiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnUuaCIKIAogI2luY2x1ZGUg
IkV3a1ZpZXcuaCIKLSNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eUVmbC5oIgorI2luY2x1ZGUg
IldLUG9wdXBNZW51RWZsLmgiCiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRl
LmgiCiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfcHJpdmF0ZS5oIgogCi11c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OwotCi1Fd2tQb3B1cE1lbnU6OkV3a1BvcHVwTWVudShFd2tWaWV3KiB2aWV3LCBX
ZWJQb3B1cE1lbnVQcm94eUVmbCogcG9wdXBNZW51UHJveHksIGNvbnN0IFZlY3RvcjxXZWJLaXQ6
OldlYlBvcHVwSXRlbT4mIGl0ZW1zLCB1bnNpZ25lZCBzZWxlY3RlZEluZGV4KQorRXdrUG9wdXBN
ZW51OjpFd2tQb3B1cE1lbnUoRXdrVmlldyogdmlldywgV0tQb3B1cE1lbnVSZWYgcG9wdXBNZW51
LCBFaW5hX0xpc3QqIHBhc3NJdGVtcywgdW5zaWduZWQgc2VsZWN0ZWRJbmRleCkKICAgICA6IG1f
dmlldyh2aWV3KQotICAgICwgbV9wb3B1cE1lbnVQcm94eShwb3B1cE1lbnVQcm94eSkKLSAgICAs
IG1fcG9wdXBNZW51SXRlbXMoMCkKKyAgICAsIG1fcG9wdXBNZW51KHBvcHVwTWVudSkKKyAgICAs
IG1fcG9wdXBNZW51SXRlbXMocGFzc0l0ZW1zKQogICAgICwgbV9zZWxlY3RlZEluZGV4KHNlbGVj
dGVkSW5kZXgpCiB7Ci0gICAgY29uc3Qgc2l6ZV90IHNpemUgPSBpdGVtcy5zaXplKCk7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fcG9wdXBNZW51SXRl
bXMgPSBlaW5hX2xpc3RfYXBwZW5kKG1fcG9wdXBNZW51SXRlbXMsIEV3a1BvcHVwTWVudUl0ZW06
OmNyZWF0ZShpdGVtc1tpXSkubGVha1B0cigpKTsKIH0KIAogRXdrUG9wdXBNZW51Ojp+RXdrUG9w
dXBNZW51KCkKQEAgLTY5LDcgKzY0LDcgQEAgdW5zaWduZWQgRXdrUG9wdXBNZW51OjpzZWxlY3Rl
ZEluZGV4KCkgY29uc3QKIAogYm9vbCBFd2tQb3B1cE1lbnU6OnNldFNlbGVjdGVkSW5kZXgodW5z
aWduZWQgc2VsZWN0ZWRJbmRleCkKIHsKLSAgICBpZiAoIW1fcG9wdXBNZW51UHJveHkpCisgICAg
aWYgKCFtX3BvcHVwTWVudSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHNlbGVj
dGVkSW5kZXggPj0gZWluYV9saXN0X2NvdW50KG1fcG9wdXBNZW51SXRlbXMpKQpAQCAtNzksNyAr
NzQsNyBAQCBib29sIEV3a1BvcHVwTWVudTo6c2V0U2VsZWN0ZWRJbmRleCh1bnNpZ25lZCBzZWxl
Y3RlZEluZGV4KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIG1fc2VsZWN0ZWRJbmRleCA9
IHNlbGVjdGVkSW5kZXg7Ci0gICAgbV9wb3B1cE1lbnVQcm94eS0+dmFsdWVDaGFuZ2VkKHNlbGVj
dGVkSW5kZXgpOworICAgIFdLUG9wdXBNZW51U2V0U2VsZWN0ZWRJbmRleChtX3BvcHVwTWVudS5n
ZXQoKSwgc2VsZWN0ZWRJbmRleCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X3ByaXZh
dGUuaAppbmRleCA1MjRmNTlkLi5lMmFjN2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9wcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfcHJpdmF0ZS5oCkBAIC0yNywy
MiArMjcsMTkgQEAKICNpZm5kZWYgZXdrX3BvcHVwX21lbnVfcHJpdmF0ZV9oCiAjZGVmaW5lIGV3
a19wb3B1cF9tZW51X3ByaXZhdGVfaAogCisjaW5jbHVkZSAiV0tSZXRhaW5QdHIuaCIKICNpbmNs
dWRlIDxFaW5hLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci1jbGFzcyBXZWJQb3B1cEl0ZW07Ci1jbGFzcyBXZWJQb3B1cE1lbnVQcm94eUVmbDsKLX0K
IAogY2xhc3MgRXdrVmlldzsKIAogY2xhc3MgRXdrUG9wdXBNZW51IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxFd2tQb3B1cE1lbnU+IGNyZWF0ZShFd2tWaWV3KiB2aWV3LCBXZWJL
aXQ6OldlYlBvcHVwTWVudVByb3h5RWZsKiBwb3B1cE1lbnVQcm94eSwgY29uc3QgVmVjdG9yPFdl
YktpdDo6V2ViUG9wdXBJdGVtPiYgaXRlbXMsIHVuc2lnbmVkIHNlbGVjdGVkSW5kZXgpCisgICAg
Ly8gVGFrZXMgb3duZXJza2lwIG9mIHRoZSBwYXNzZWQgaXRlbXMuCisgICAgc3RhdGljIFBhc3NP
d25QdHI8RXdrUG9wdXBNZW51PiBjcmVhdGUoRXdrVmlldyogdmlldywgV0tQb3B1cE1lbnVSZWYg
cG9wdXBNZW51LCBFaW5hX0xpc3QqIHBhc3NJdGVtcywgdW5zaWduZWQgc2VsZWN0ZWRJbmRleCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrUG9wdXBNZW51KHZpZXcsIHBv
cHVwTWVudVByb3h5LCBpdGVtcywgc2VsZWN0ZWRJbmRleCkpOworICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IEV3a1BvcHVwTWVudSh2aWV3LCBwb3B1cE1lbnUsIHBhc3NJdGVtcywgc2VsZWN0
ZWRJbmRleCkpOwogICAgIH0KICAgICB+RXdrUG9wdXBNZW51KCk7CiAKQEAgLTU0LDEwICs1MSwx
MCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgc2VsZWN0ZWRJbmRleCgpIGNvbnN0OwogCiBwcml2
YXRlOgotICAgIEV3a1BvcHVwTWVudShFd2tWaWV3KiB2aWV3SW1wbCwgV2ViS2l0OjpXZWJQb3B1
cE1lbnVQcm94eUVmbCosIGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYlBvcHVwSXRlbT4mIGl0ZW1z
LCB1bnNpZ25lZCBzZWxlY3RlZEluZGV4KTsKKyAgICBFd2tQb3B1cE1lbnUoRXdrVmlldyogdmll
d0ltcGwsIFdLUG9wdXBNZW51UmVmLCBFaW5hX0xpc3QqIGl0ZW1zLCB1bnNpZ25lZCBzZWxlY3Rl
ZEluZGV4KTsKIAogICAgIEV3a1ZpZXcqIG1fdmlldzsKLSAgICBXZWJLaXQ6OldlYlBvcHVwTWVu
dVByb3h5RWZsKiBtX3BvcHVwTWVudVByb3h5OworICAgIFdLUmV0YWluUHRyPFdLUG9wdXBNZW51
UmVmPiBtX3BvcHVwTWVudTsKICAgICBFaW5hX0xpc3QqIG1fcG9wdXBNZW51SXRlbXM7CiAgICAg
dW5zaWduZWQgbV9zZWxlY3RlZEluZGV4OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQb3B1cE1lbnVQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBvcHVwTWVudVByb3h5LmgKaW5kZXggMGQ3Nzg4ZC4uNGNkMzQ5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpZm5kZWYgV2ViUG9wdXBNZW51UHJveHlfaAogI2RlZmluZSBXZWJQb3B1cE1lbnVQcm94eV9o
CiAKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1RleHREaXJlY3Rp
b24uaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CkBAIC00MSw4ICs0MiwxMCBAQCBzdHJ1Y3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhOwog
c3RydWN0IFdlYlBvcHVwSXRlbTsKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQ7CiAKLWNsYXNz
IFdlYlBvcHVwTWVudVByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUG9wdXBNZW51UHJveHk+
IHsKK2NsYXNzIFdlYlBvcHVwTWVudVByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CiBwdWJsaWM6
CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVQb3B1cE1lbnU7CisKICAgICBj
bGFzcyBDbGllbnQgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCB+Q2xpZW50KCkK
QEAgLTc3LDYgKzgwLDggQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAKKyAgICB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKwogICAgIENsaWVudCogbV9j
bGllbnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dl
YlBvcHVwTWVudVByb3h5RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2Vi
UG9wdXBNZW51UHJveHlFZmwuY3BwCmluZGV4IGE1OTU1MzcuLmFlZGIwMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUG9wdXBNZW51UHJveHlFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUG9wdXBNZW51UHJveHlFZmwuY3Bw
CkBAIC0yNywxMCArMjcsMTAgQEAKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eUVmbC5oIgog
CiAjaW5jbHVkZSAiRXdrVmlldy5oIgotI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIK
KyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJQb3B1cEl0ZW0uaCIKKyNpbmNs
dWRlICJld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlldy5o
IgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTQ0LDcgKzQ0LDE1IEBAIFdlYlBvcHVwTWVudVByb3h5RWZsOjpXZWJQb3B1cE1l
bnVQcm94eUVmbChFd2tWaWV3KiB2aWV3LCBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpCiAKIHZvaWQg
V2ViUG9wdXBNZW51UHJveHlFZmw6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwg
VGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9yLCBjb25z
dCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGNvbnN0IFBsYXRmb3JtUG9wdXBNZW51RGF0
YSYsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCkKIHsKLSAgICBtX3ZpZXctPnJlcXVlc3RQb3B1cE1l
bnUodGhpcywgcmVjdCwgdGV4dERpcmVjdGlvbiwgcGFnZVNjYWxlRmFjdG9yLCBpdGVtcywgc2Vs
ZWN0ZWRJbmRleCk7CisgICAgRWluYV9MaXN0KiBwb3B1cE1lbnVJdGVtcyA9IDA7CisgICAgY29u
c3Qgc2l6ZV90IHNpemUgPSBpdGVtcy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpIHsKKyAgICAgICAgLy8gRklYTUU6IEV3a1BvcHVwTWVudUl0ZW0gc2hvdWxk
IHN0b3AgdXNpbmcgV2ViUG9wdXBJdGVtLgorICAgICAgICBwb3B1cE1lbnVJdGVtcyA9IGVpbmFf
bGlzdF9hcHBlbmQocG9wdXBNZW51SXRlbXMsIEV3a1BvcHVwTWVudUl0ZW06OmNyZWF0ZShpdGVt
c1tpXSkubGVha1B0cigpKTsKKyAgICB9CisKKyAgICAvLyByZXF1ZXN0UG9wdXBNZW51KCkgdGFr
ZXMgb3duZXJzaGlwIG9mIHRoZSBtZW51IGl0ZW1zLgorICAgIG1fdmlldy0+cmVxdWVzdFBvcHVw
TWVudSh0b0FQSShzdGF0aWNfY2FzdDxXZWJQb3B1cE1lbnVQcm94eSo+KHRoaXMpKSwgcmVjdCwg
dGV4dERpcmVjdGlvbiwgcGFnZVNjYWxlRmFjdG9yLCBwb3B1cE1lbnVJdGVtcywgc2VsZWN0ZWRJ
bmRleCk7CiB9CiAKIHZvaWQgV2ViUG9wdXBNZW51UHJveHlFZmw6OmhpZGVQb3B1cE1lbnUoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDRiNjg3ZWUuLjRiM2EyOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1MSw2ICs1NTEsOCBAQAogCQk3NjJCNzQ4RDEy
MEJDNzVDMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAv
KiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTc4MDFDMDk5MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0
UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc4MDFDMDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCAqLzsgfTsK
IAkJNzgwMUMwOUExNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MDFDMDk2MTQyMjkwQzQw
MEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmggKi87IH07CisJCTgzNjdEM0Q0MTZCRkM4NUMw
MEQyQTBBNyAvKiBXS1BvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzY3RDNEMjE2QkZDODVDMDBEMkEwQTcgLyogV0tQb3B1cE1lbnUu
Y3BwICovOyB9OworCQk4MzY3RDNENTE2QkZDODVDMDBEMkEwQTcgLyogV0tQb3B1cE1lbnUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjdEM0QzMTZC
RkM4NUMwMEQyQTBBNyAvKiBXS1BvcHVwTWVudS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCThDRkVDRTk0MTQ5MEYxNDAwMDJBQUEzMiAvKiBFZGl0
b3JTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4Q0ZFQ0U5MzE0OTBGMTQwMDAyQUFBMzIgLyogRWRpdG9yU3RhdGUuY3BwICovOyB9OwogCQk4
REMyRUY1MzA0ODZBNjk0MDA5OEIyMTYgLyogSW5mb1BsaXN0LnN0cmluZ3MgaW4gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4OUMxNjY2RkU4NDExNThDMDJB
QUMwNyAvKiBJbmZvUGxpc3Quc3RyaW5ncyAqLzsgfTsKIAkJOTA5ODU0RUMxMkJDNEUxNzAwMEFE
MDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTA1NjIwRTgxMkJDMjQ4QjAwMDc5OUI2IC8qIFdlYk1lbW9yeVNh
bXBsZXIuY3BwICovOyB9OwpAQCAtMTUyMCw4ICsxNTIyLDggQEAKIAkJMUFCMTZBRUIxNjRCNDFF
NDAwMjkwRDYyIC8qIFJlbW90ZUdyYXBoaWNzTGF5ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0xheWVyLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQUIxNkFFQzE2NEI0MUU0MDAyOTBENjIgLyogUmVtb3RlR3JhcGhp
Y3NMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVHcmFwaGlj
c0xheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQjMxQTkzMTZCQzY1QUIw
MEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdG9yYWdlTWFuYWdl
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUFCMzFBOTQxNkJD
Njg4MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgcGF0aCA9IFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUFCMzFBOTUxNkJDNjg4MTAwRjZEQkM5IC8qIFN0b3Jh
Z2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gU3Rv
cmFnZU1hbmFnZXJNZXNzYWdlcy5oOyBwYXRoID0gU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQUIzMUE5NDE2QkM2ODgxMDBGNkRCQzkgLyog
U3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQUIzMUE5NTE2QkM2ODgxMDBGNkRCQzkgLyogU3RvcmFn
ZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9y
YWdlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQjdE
NEM4MTI4OEFBQTcwMENGRDA4QyAvKiBEb3dubG9hZFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERvd25sb2FkUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUFCN0Q0QzkxMjg4QUFBNzAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRG93bmxvYWRQcm94eS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQjdENUU5MTI4OEI4QzAwMENGRDA4QyAvKiBEb3du
bG9hZFByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERvd25sb2FkUHJv
eHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODg1LDYgKzE4
ODcsOCBAQAogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJlbmNlc1ByaXZh
dGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzgwMUMwOTUxNDIyOTBDNDAwRkFG
OUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTc4MDFDMDk2MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1bHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM2N0QzRDIxNkJGQzg1QzAwRDJBMEE3IC8qIFdLUG9wdXBN
ZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLUG9wdXBNZW51
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM2N0QzRDMxNkJGQzg1QzAwRDJB
MEE3IC8qIFdLUG9wdXBNZW51LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
UG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThDRkVDRTkzMTQ5MEYx
NDAwMDJBQUEzMiAvKiBFZGl0b3JTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFZGl0b3JTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CThEQzJFRjVBMDQ4NkE2OTQwMDk4QjIxNiAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5w
bGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4REMyRUY1QjA0ODZBNjk0MDA5OEIyMTYgLyogV2ViS2l0Mi5mcmFtZXdvcmsgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3Jr
OyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJLaXQyLmZyYW1ld29yazsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTM4NzcsNiArMzg4MSw4IEBACiAJCQkJQkMx
Nzc0NjQxMThCOUZGNDAwN0Q5RTlBIC8qIFdLUGFnZVByaXZhdGUuaCAqLywKIAkJCQkxQUM4NkZG
MTEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwICovLAogCQkJ
CTFBQzg2RkYyMTMwQjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5oICov
LAorCQkJCTgzNjdEM0QyMTZCRkM4NUMwMEQyQTBBNyAvKiBXS1BvcHVwTWVudS5jcHAgKi8sCisJ
CQkJODM2N0QzRDMxNkJGQzg1QzAwRDJBMEE3IC8qIFdLUG9wdXBNZW51LmggKi8sCiAJCQkJQkNE
NTk3Q0YxMTJCNTZBQzAwRUM4QzIzIC8qIFdLUHJlZmVyZW5jZXMuY3BwICovLAogCQkJCUJDRDU5
N0NFMTEyQjU2QUMwMEVDOEMyMyAvKiBXS1ByZWZlcmVuY2VzLmggKi8sCiAJCQkJNzYyQjc0ODQx
MjBCQkEyRDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi8sCkBAIC01MzY2LDYg
KzUzNzIsNyBAQAogCQkJCUE1RUZEMzhDMTZCMEU4OEMwMEIyRjBFOCAvKiBXS1BhZ2VWaXNpYmls
aXR5VHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzRDODI5MTZCODc2QTkwMDY5RENDRCAv
KiBNZXNzYWdlRmxhZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjMxQTk3MTZCQzY4ODEwMEY2
REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzY3
RDNENTE2QkZDODVDMDBEMkEwQTcgLyogV0tQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
NjQ4OCw2ICs2NDk1LDcgQEAKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyogUGx1Z2lu
U2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0JFQ0RFNzE2QjY0MTY4
MDAwNDdBMUEgLyogWFBDU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QUIzMUE5NjE2QkM2ODgxMDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODM2N0QzRDQxNkJGQzg1QzAwRDJBMEE3IC8qIFdLUG9w
dXBNZW51LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186355</attachid>
            <date>2013-02-04 04:58:02 -0800</date>
            <delta_ts>2013-02-05 04:44:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108798_popupmenu_capi.patch</filename>
            <type>text/plain</type>
            <size>28537</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggYWY2YjE0MS4uZGU5MGMxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTMzMyw2ICszMzMsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuY3Bw
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcAorICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlcy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNmIyYTY2MS4uNzg2N2ZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAy
LTA0ICBDaHJpc3RvcGhlIER1bWV6ICA8ZGNocmlzQGdtYWlsLmNvbT4KKworICAgICAgICBbRUZM
XVtXSzJdIFBvcnQgZXdrX3BvcHVwX21lbnUgdG8gdGhlIEMgQVBJCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg3OTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV0tQb3B1cE1lbnUgdHlwZSB0byBD
IEFQSSBhbmQgdXNlIGl0IGluc2lkZSBld2tfcG9wdXBfbWVudSB0byBzdG9wCisgICAgICAgIHJl
bHlpbmcgb24gV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eUVmbCBkaXJlY3RseS4gV2ViUG9wdXBN
ZW51UHJveHlFZmwKKyAgICAgICAgaXMgaW50ZXJuYWwgQysrIEFQSSBhbmQgd2Ugc2hvdWxkIHN0
b3AgdXNpbmcgaXQgZGlyZWN0bHkgdG8gYXZvaWQKKyAgICAgICAgdmlvbGF0aW5nIEFQSSBsYXll
cmluZy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGQgbmV3IFdLUG9wdXBNZW51Liog
ZmlsZXMuCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkIG5ldyBXS1BvcHVwTWVu
dS4qIGZpbGVzLgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOiBBZGQgTmV3IFdLUG9wdXBN
ZW51RWZsLiogZmlsZXMuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAg
ICAqIFNoYXJlZC9BUElPYmplY3QuaDogQWRkIG5ldyBUeXBlUG9wdXBNZW51IHR5cGUuCisgICAg
ICAgICogVGFyZ2V0LnByaTogQWRkIG5ldyBXS1BvcHVwTWVudS4qIGZpbGVzLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmNwcDogQWRkZWQuCisgICAgICAgIChXS1Bv
cHVwTWVudUdldFR5cGVJRCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaDogQWRkIG5l
dyBXS1BvcHVwTWVudS5oIGhlYWRlci4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZWZsL1dL
UG9wdXBNZW51RWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXS1BvcHVwTWVudVNldFNlbGVjdGVk
SW5kZXgpOiBBZGQgQyBBUEkgdG8gRUZMIHBvcnQgdG8gdXBkYXRlCisgICAgICAgIHNlbGVjdGVk
IGluZGV4IGluIHRoZSBwb3B1cCBtZW51LiBUaGlzIGlzIG5lZWRlZCBzbyB0aGF0IG91ciBDIEFQ
SSBubworICAgICAgICBsb25nZXIgdXNlcyBXZWJQb3B1cE1lbnVQcm94eUVmbCBpbnRlcm5hbCBD
KysgY2xhc3MgZGlyZWN0bHkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BvcHVw
TWVudUVmbC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNw
cDoKKyAgICAgICAgKEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUpOiBVc2UgV0tQb3B1cE1lbnVS
ZWYgdHlwZSBpbnN0ZWFkIG9mCisgICAgICAgIFdlYlBvcHVwTWVudVByb3h5RWZsIGFuZCB0YWtl
IHBvcHVwIG1lbnUgaXRlbXMgYXMgYW4gRWluYV9MaXN0CisgICAgICAgIGNvbnRhaW5pbmcgRXdr
UG9wdXBNZW51SXRlbSBvYmplY3RzIGluc3RlYWQgb2YgYSBWZWN0b3Igb2YgV2ViUG9wdXBJdGVt
CisgICAgICAgIG9iamVjdHMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5o
OgorICAgICAgICAoRXdrVmlldyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Bv
cHVwX21lbnUuY3BwOiBVc2UgQyBBUEkgaW5zdGVhZCBvZiBpbnRlcm5hbAorICAgICAgICBDKysg
QVBJLgorICAgICAgICAoRXdrUG9wdXBNZW51OjpFd2tQb3B1cE1lbnUpOgorICAgICAgICAoRXdr
UG9wdXBNZW51OjpzZXRTZWxlY3RlZEluZGV4KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfcG9wdXBfbWVudV9wcml2YXRlLmg6IERpdHRvLgorICAgICAgICAoRXdrUG9wdXBNZW51
KToKKyAgICAgICAgKEV3a1BvcHVwTWVudTo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUG9wdXBNZW51UHJveHkuaDogU3ViY2xhc3MgQVBJT2JqZWN0IGFuZCBvdmVycmlkZSB0eXBl
KCkKKyAgICAgICAgdG8gcmV0dXJuIFR5cGVQb3B1cE1lbnUuCisgICAgICAgIChXZWJQb3B1cE1l
bnVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5Ojp0eXBlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlBvcHVwTWVudVByb3h5RWZsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlFZmw6OnNob3dQb3B1cE1lbnUpOgorICAgICAgICAq
IFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5ldyBXS1BvcHVwTWVudS4q
IGZpbGVzLgorCiAyMDEzLTAyLTA0ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgU29ydCBXZWJLaXQyIFhjb2RlIHByb2plY3QgZmlsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggY2E2NDYxYS4uYzZjMzExOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC04Myw2ICs4Myw3IEBAIHdlYmtpdDJfaF9hcGkgKz0gXAogCSQoV2Vi
S2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VQcml2YXRlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyLmggXAorCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUG9w
dXBNZW51LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaCBc
CiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBcCiAJ
JChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3BhY2UuaCBcCkBAIC02MjQs
NiArNjI1LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlUHJpdmF0ZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUG9wdXBNZW51LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCBiODdlOTc5Li45Zjhk
MzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMzcsNiArMzcsNyBAQCBsaXN0KEFQ
UEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9BUEkvQy9jYWlyby9XS0ljb25E
YXRhYmFzZUNhaXJvLmNwcAogCisgICAgVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BvcHVwTWVudUVm
bC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvZWZsL1dLVmlldy5jcHAKIAogICAgIFVJUHJvY2Vz
cy9BUEkvY3BwL2VmbC9XS0VpbmFTaGFyZWRTdHJpbmcuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tCYXNlLmgKaW5kZXggOGMyNDNkYi4uZTg3NzE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaApAQCAtMTMzLDYgKzEzMyw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJS
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZUdyb3VwKiBXS1BhZ2VHcm91cFJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyKiBXS1BsdWdpblNpdGVE
YXRhTWFuYWdlclJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUG9wdXBNZW51KiBX
S1BvcHVwTWVudVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5jZXMq
IFdLUHJlZmVyZW5jZXNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Byb3RlY3Rp
b25TcGFjZSogV0tQcm90ZWN0aW9uU3BhY2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS1RleHRDaGVja2VyKiBXS1RleHRDaGVja2VyUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVj
dC5oCmluZGV4IDg1OWZiOGUuLjBkOWNlYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgK
QEAgLTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVQYWdlLAogICAgICAgICBU
eXBlUGFnZUdyb3VwLAogICAgICAgICBUeXBlUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLAorICAgICAg
ICBUeXBlUG9wdXBNZW51LAogICAgICAgICBUeXBlUHJlZmVyZW5jZXMsCiAgICAgICAgIFR5cGVU
ZXh0Q2hlY2tlciwKICAgICAgICAgVHlwZVZpYnJhdGlvbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IGM2ZTMx
NjIuLjhjMGMyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIv
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQpAQCAtMTg4LDYgKzE4OCw3IEBAIEhFQURFUlMgKz0g
XAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tQYWdlUHJpdmF0ZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXIuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQcm90ZWN0aW9uU3Bh
Y2UuaCBcCkBAIC01NDAsNiArNTQxLDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgXAorICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUHJvdGVjdGlvblNwYWNlLmNw
cCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCBkNTEzYjk2Li42
ZGVlZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElD
YXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBA
IC04Nyw2ICs4Nyw3IEBAIGNsYXNzIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk7CiBj
bGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQbHVnaW5T
aXRlRGF0YU1hbmFnZXI7CitjbGFzcyBXZWJQb3B1cE1lbnVQcm94eTsKIGNsYXNzIFdlYlByZWZl
cmVuY2VzOwogY2xhc3MgV2ViUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgV2ViUmVuZGVyTGF5ZXI7
CkBAIC0xMzEsNiArMTMyLDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLT3BlblBhbmVsUmVzdWx0
TGlzdGVuZXJSZWYsIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkKIFdLX0FERF9BUElf
TUFQUElORyhXS1BhZ2VHcm91cFJlZiwgV2ViUGFnZUdyb3VwKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLUGFnZVJlZiwgV2ViUGFnZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUGx1Z2luU2l0
ZURhdGFNYW5hZ2VyUmVmLCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIpCitXS19BRERfQVBJX01B
UFBJTkcoV0tQb3B1cE1lbnVSZWYsIFdlYlBvcHVwTWVudVByb3h5KQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLUHJlZmVyZW5jZXNSZWYsIFdlYlByZWZlcmVuY2VzKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLUHJvdGVjdGlvblNwYWNlUmVmLCBXZWJQcm90ZWN0aW9uU3BhY2UpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tSZW5kZXJMYXllclJlZiwgV2ViUmVuZGVyTGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQb3B1cE1lbnUuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi42ZTM2NWViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUG9wdXBNZW51LmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIENocmlzdG9waGUgRHVtZXogPGRjaHJpc0BnbWFpbC5jb20+Cisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1BvcHVwTWVudS5oIgor
CisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIK
KwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tQb3B1cE1lbnVHZXRUeXBl
SUQoKQoreworICAgIHJldHVybiB0b0FQSShXZWJQb3B1cE1lbnVQcm94eTo6QVBJVHlwZSk7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQb3B1cE1lbnUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BvcHVwTWVudS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1YTgyMjYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQb3B1cE1lbnUuaApAQCAtMCwwICsxLDQx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIENocmlzdG9waGUgRHVtZXogPGRjaHJpc0Bn
bWFpbC5jb20+CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tQb3B1cE1lbnVfaAorI2RlZmluZSBXS1Bv
cHVwTWVudV9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1
c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1BvcHVw
TWVudUdldFR5cGVJRCgpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5k
aWYgLyogV0tQb3B1cE1lbnVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dlYktpdDJfQy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dl
YktpdDJfQy5oCmluZGV4IDk4MWQ1MjAuLmNiMjMxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyX0MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV2ViS2l0Ml9DLmgKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlIDxXZWJL
aXQyL1dLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUGFn
ZS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXZWJLaXQy
L1dLUG9wdXBNZW51Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmg+CiAjaW5j
bHVkZSA8V2ViS2l0Mi9XS1N0cmluZy5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tVUkwuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tQb3B1cE1lbnVF
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2VmbC9XS1BvcHVwTWVudUVm
bC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTZlODc1MQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwvV0tQb3B1cE1l
bnVFZmwuY3BwCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQ2hy
aXN0b3BoZSBEdW1leiA8ZGNocmlzQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldLUG9wdXBNZW51RWZsLmgiCisKKyNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKKyNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eUVmbC5oIgorCit1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OworCit2b2lkIFdLUG9wdXBNZW51U2V0U2VsZWN0ZWRJbmRleChXS1BvcHVwTWVu
dVJlZiBtZW51UmVmLCBpbnQgc2VsZWN0ZWRJbmRleCkKK3sKKyAgICBzdGF0aWNfY2FzdDxXZWJQ
b3B1cE1lbnVQcm94eUVmbCo+KHRvSW1wbChtZW51UmVmKSktPnZhbHVlQ2hhbmdlZChzZWxlY3Rl
ZEluZGV4KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9l
ZmwvV0tQb3B1cE1lbnVFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9lZmwv
V0tQb3B1cE1lbnVFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjZj
YjUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2Vm
bC9XS1BvcHVwTWVudUVmbC5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQ2hyaXN0b3BoZSBEdW1leiA8ZGNocmlzQGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXS1BvcHVwTWVudUVmbF9oCisjZGVmaW5lIFdLUG9wdXBNZW51RWZsX2gKKworI2luY2x1
ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7
CisjZW5kaWYKKworV0tfRVhQT1JUIHZvaWQgV0tQb3B1cE1lbnVTZXRTZWxlY3RlZEluZGV4KFdL
UG9wdXBNZW51UmVmIG1lbnUsIGludCBzZWxlY3RlZEluZGV4KTsKKworI2lmZGVmIF9fY3BsdXNw
bHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLUG9wdXBNZW51RWZsX2ggKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAKaW5kZXggNzk2MjZlNi4uYzBh
NTg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5jcHAK
QEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYlBh
Z2VHcm91cC5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgotI2luY2x1ZGUgIldlYlBvcHVw
TWVudVByb3h5RWZsLmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJl
d2tfYmFja19mb3J3YXJkX2xpc3RfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19jb2xvcl9waWNr
ZXJfcHJpdmF0ZS5oIgpAQCAtNzkxLDEyICs3OTAsMTIgQEAgdm9pZCBFd2tWaWV3OjpoaWRlQ29u
dGV4dE1lbnUoKQogICAgIG1fY29udGV4dE1lbnUuY2xlYXIoKTsKIH0KIAotdm9pZCBFd2tWaWV3
OjpyZXF1ZXN0UG9wdXBNZW51KFdlYlBvcHVwTWVudVByb3h5RWZsKiBwb3B1cE1lbnVQcm94eSwg
Y29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVjdGlvbiB0ZXh0RGlyZWN0aW9uLCBkb3VibGUg
cGFnZVNjYWxlRmFjdG9yLCBjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGludDMy
X3Qgc2VsZWN0ZWRJbmRleCkKK3ZvaWQgRXdrVmlldzo6cmVxdWVzdFBvcHVwTWVudShXS1BvcHVw
TWVudVJlZiBwb3B1cE1lbnUsIGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHREaXJlY3Rpb24gdGV4
dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgRWluYV9MaXN0KiBwYXNzSXRlbXMs
IGludDMyX3Qgc2VsZWN0ZWRJbmRleCkKIHsKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9
IHNtYXJ0RGF0YSgpOwogICAgIEFTU0VSVChzZC0+YXBpKTsKIAotICAgIEFTU0VSVChwb3B1cE1l
bnVQcm94eSk7CisgICAgQVNTRVJUKHBvcHVwTWVudSk7CiAKICAgICBpZiAoIXNkLT5hcGktPnBv
cHVwX21lbnVfc2hvdykKICAgICAgICAgcmV0dXJuOwpAQCAtODA0LDcgKzgwMyw3IEBAIHZvaWQg
RXdrVmlldzo6cmVxdWVzdFBvcHVwTWVudShXZWJQb3B1cE1lbnVQcm94eUVmbCogcG9wdXBNZW51
UHJveHksIGNvbnN0IEludFJlCiAgICAgaWYgKG1fcG9wdXBNZW51KQogICAgICAgICBjbG9zZVBv
cHVwTWVudSgpOwogCi0gICAgbV9wb3B1cE1lbnUgPSBFd2tQb3B1cE1lbnU6OmNyZWF0ZSh0aGlz
LCBwb3B1cE1lbnVQcm94eSwgaXRlbXMsIHNlbGVjdGVkSW5kZXgpOworICAgIG1fcG9wdXBNZW51
ID0gRXdrUG9wdXBNZW51OjpjcmVhdGUodGhpcywgcG9wdXBNZW51LCBwYXNzSXRlbXMsIHNlbGVj
dGVkSW5kZXgpOwogCiAgICAgc2QtPmFwaS0+cG9wdXBfbWVudV9zaG93KHNkLCByZWN0LCBzdGF0
aWNfY2FzdDxFd2tfVGV4dF9EaXJlY3Rpb24+KHRleHREaXJlY3Rpb24pLCBwYWdlU2NhbGVGYWN0
b3IsIG1fcG9wdXBNZW51LmdldCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXcuaAppbmRleCA5OWNlOGVkLi43ODU3ZmFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC0xNzUsNyArMTc1LDggQEAgcHVibGljOgog
ICAgIFdLUGFnZVJlZiBjcmVhdGVOZXdQYWdlKFBhc3NSZWZQdHI8RXdrVXJsUmVxdWVzdD4sIFdL
RGljdGlvbmFyeVJlZiB3aW5kb3dGZWF0dXJlcyk7CiAgICAgdm9pZCBjbG9zZSgpOwogCi0gICAg
dm9pZCByZXF1ZXN0UG9wdXBNZW51KFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlFZmwqLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VT
Y2FsZUZhY3RvciwgY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGlu
dDMyX3Qgc2VsZWN0ZWRJbmRleCk7CisgICAgLy8gVGFrZXMgb3duZXJzaGlwIG9mIHRoZSBwYXNz
ZWQgaXRlbXMuCisgICAgdm9pZCByZXF1ZXN0UG9wdXBNZW51KFdLUG9wdXBNZW51UmVmLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VT
Y2FsZUZhY3RvciwgRWluYV9MaXN0KiBwYXNzSXRlbXMsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCk7
CiAgICAgdm9pZCBjbG9zZVBvcHVwTWVudSgpOwogICAgIAogICAgIHZvaWQgc2hvd0NvbnRleHRN
ZW51KFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUVmbCosIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBwb3NpdGlvbiwgY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViQ29udGV4dE1lbnVJdGVtRGF0
YT4mIGl0ZW1zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19wb3B1cF9tZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19wb3B1cF9tZW51LmNwcAppbmRleCAwMzk2ZjAxLi5kNzYxMjY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnUuY3BwCkBAIC0yOCwy
MSArMjgsMTYgQEAKICNpbmNsdWRlICJld2tfcG9wdXBfbWVudS5oIgogCiAjaW5jbHVkZSAiRXdr
Vmlldy5oIgotI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5RWZsLmgiCisjaW5jbHVkZSAiV0tQ
b3B1cE1lbnVFZmwuaCIKICNpbmNsdWRlICJld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaCIK
ICNpbmNsdWRlICJld2tfcG9wdXBfbWVudV9wcml2YXRlLmgiCiAKLXVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7Ci0KLUV3a1BvcHVwTWVudTo6RXdrUG9wdXBNZW51KEV3a1ZpZXcqIHZpZXcsIFdlYlBv
cHVwTWVudVByb3h5RWZsKiBwb3B1cE1lbnVQcm94eSwgY29uc3QgVmVjdG9yPFdlYktpdDo6V2Vi
UG9wdXBJdGVtPiYgaXRlbXMsIHVuc2lnbmVkIHNlbGVjdGVkSW5kZXgpCitFd2tQb3B1cE1lbnU6
OkV3a1BvcHVwTWVudShFd2tWaWV3KiB2aWV3LCBXS1BvcHVwTWVudVJlZiBwb3B1cE1lbnUsIEVp
bmFfTGlzdCogcGFzc0l0ZW1zLCB1bnNpZ25lZCBzZWxlY3RlZEluZGV4KQogICAgIDogbV92aWV3
KHZpZXcpCi0gICAgLCBtX3BvcHVwTWVudVByb3h5KHBvcHVwTWVudVByb3h5KQotICAgICwgbV9w
b3B1cE1lbnVJdGVtcygwKQorICAgICwgbV9wb3B1cE1lbnUocG9wdXBNZW51KQorICAgICwgbV9w
b3B1cE1lbnVJdGVtcyhwYXNzSXRlbXMpCiAgICAgLCBtX3NlbGVjdGVkSW5kZXgoc2VsZWN0ZWRJ
bmRleCkKIHsKLSAgICBjb25zdCBzaXplX3Qgc2l6ZSA9IGl0ZW1zLnNpemUoKTsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9wb3B1cE1lbnVJdGVtcyA9
IGVpbmFfbGlzdF9hcHBlbmQobV9wb3B1cE1lbnVJdGVtcywgRXdrUG9wdXBNZW51SXRlbTo6Y3Jl
YXRlKGl0ZW1zW2ldKS5sZWFrUHRyKCkpOwogfQogCiBFd2tQb3B1cE1lbnU6On5Fd2tQb3B1cE1l
bnUoKQpAQCAtNjksNyArNjQsNyBAQCB1bnNpZ25lZCBFd2tQb3B1cE1lbnU6OnNlbGVjdGVkSW5k
ZXgoKSBjb25zdAogCiBib29sIEV3a1BvcHVwTWVudTo6c2V0U2VsZWN0ZWRJbmRleCh1bnNpZ25l
ZCBzZWxlY3RlZEluZGV4KQogewotICAgIGlmICghbV9wb3B1cE1lbnVQcm94eSkKKyAgICBpZiAo
IW1fcG9wdXBNZW51KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoc2VsZWN0ZWRJ
bmRleCA+PSBlaW5hX2xpc3RfY291bnQobV9wb3B1cE1lbnVJdGVtcykpCkBAIC03OSw3ICs3NCw3
IEBAIGJvb2wgRXdrUG9wdXBNZW51OjpzZXRTZWxlY3RlZEluZGV4KHVuc2lnbmVkIHNlbGVjdGVk
SW5kZXgpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgbV9zZWxlY3RlZEluZGV4ID0gc2Vs
ZWN0ZWRJbmRleDsKLSAgICBtX3BvcHVwTWVudVByb3h5LT52YWx1ZUNoYW5nZWQoc2VsZWN0ZWRJ
bmRleCk7CisgICAgV0tQb3B1cE1lbnVTZXRTZWxlY3RlZEluZGV4KG1fcG9wdXBNZW51LmdldCgp
LCBzZWxlY3RlZEluZGV4KTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfcHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfcHJpdmF0ZS5o
CmluZGV4IDUyNGY1OWQuLmUyYWM3YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9wcml2YXRlLmgKQEAgLTI3LDIyICsy
NywxOSBAQAogI2lmbmRlZiBld2tfcG9wdXBfbWVudV9wcml2YXRlX2gKICNkZWZpbmUgZXdrX3Bv
cHVwX21lbnVfcHJpdmF0ZV9oCiAKKyNpbmNsdWRlICJXS1JldGFpblB0ci5oIgogI2luY2x1ZGUg
PEVpbmEuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LWNsYXNzIFdlYlBvcHVwSXRlbTsKLWNsYXNzIFdlYlBvcHVwTWVudVByb3h5RWZsOwotfQogCiBj
bGFzcyBFd2tWaWV3OwogCiBjbGFzcyBFd2tQb3B1cE1lbnUgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzT3duUHRyPEV3a1BvcHVwTWVudT4gY3JlYXRlKEV3a1ZpZXcqIHZpZXcsIFdlYktpdDo6
V2ViUG9wdXBNZW51UHJveHlFZmwqIHBvcHVwTWVudVByb3h5LCBjb25zdCBWZWN0b3I8V2ViS2l0
OjpXZWJQb3B1cEl0ZW0+JiBpdGVtcywgdW5zaWduZWQgc2VsZWN0ZWRJbmRleCkKKyAgICAvLyBU
YWtlcyBvd25lcnNraXAgb2YgdGhlIHBhc3NlZCBpdGVtcy4KKyAgICBzdGF0aWMgUGFzc093blB0
cjxFd2tQb3B1cE1lbnU+IGNyZWF0ZShFd2tWaWV3KiB2aWV3LCBXS1BvcHVwTWVudVJlZiBwb3B1
cE1lbnUsIEVpbmFfTGlzdCogcGFzc0l0ZW1zLCB1bnNpZ25lZCBzZWxlY3RlZEluZGV4KQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFd2tQb3B1cE1lbnUodmlldywgcG9wdXBN
ZW51UHJveHksIGl0ZW1zLCBzZWxlY3RlZEluZGV4KSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgRXdrUG9wdXBNZW51KHZpZXcsIHBvcHVwTWVudSwgcGFzc0l0ZW1zLCBzZWxlY3RlZElu
ZGV4KSk7CiAgICAgfQogICAgIH5Fd2tQb3B1cE1lbnUoKTsKIApAQCAtNTQsMTAgKzUxLDEwIEBA
IHB1YmxpYzoKICAgICB1bnNpZ25lZCBzZWxlY3RlZEluZGV4KCkgY29uc3Q7CiAKIHByaXZhdGU6
Ci0gICAgRXdrUG9wdXBNZW51KEV3a1ZpZXcqIHZpZXdJbXBsLCBXZWJLaXQ6OldlYlBvcHVwTWVu
dVByb3h5RWZsKiwgY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViUG9wdXBJdGVtPiYgaXRlbXMsIHVu
c2lnbmVkIHNlbGVjdGVkSW5kZXgpOworICAgIEV3a1BvcHVwTWVudShFd2tWaWV3KiB2aWV3SW1w
bCwgV0tQb3B1cE1lbnVSZWYsIEVpbmFfTGlzdCogaXRlbXMsIHVuc2lnbmVkIHNlbGVjdGVkSW5k
ZXgpOwogCiAgICAgRXdrVmlldyogbV92aWV3OwotICAgIFdlYktpdDo6V2ViUG9wdXBNZW51UHJv
eHlFZmwqIG1fcG9wdXBNZW51UHJveHk7CisgICAgV0tSZXRhaW5QdHI8V0tQb3B1cE1lbnVSZWY+
IG1fcG9wdXBNZW51OwogICAgIEVpbmFfTGlzdCogbV9wb3B1cE1lbnVJdGVtczsKICAgICB1bnNp
Z25lZCBtX3NlbGVjdGVkSW5kZXg7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBvcHVwTWVudVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UG9wdXBNZW51UHJveHkuaAppbmRleCAwZDc3ODhkLi40Y2QzNDk5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9wdXBNZW51UHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUG9wdXBNZW51UHJveHkuaApAQCAtMjYsNiArMjYsNyBAQAogI2lm
bmRlZiBXZWJQb3B1cE1lbnVQcm94eV9oCiAjZGVmaW5lIFdlYlBvcHVwTWVudVByb3h5X2gKIAor
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dERpcmVjdGlvbi5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KQEAgLTQxLDggKzQyLDEwIEBAIHN0cnVjdCBQbGF0Zm9ybVBvcHVwTWVudURhdGE7CiBzdHJ1
Y3QgV2ViUG9wdXBJdGVtOwogY2xhc3MgTmF0aXZlV2ViTW91c2VFdmVudDsKIAotY2xhc3MgV2Vi
UG9wdXBNZW51UHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJQb3B1cE1lbnVQcm94eT4gewor
Y2xhc3MgV2ViUG9wdXBNZW51UHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKIHB1YmxpYzoKKyAg
ICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZVBvcHVwTWVudTsKKwogICAgIGNsYXNz
IENsaWVudCB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2aXJ0dWFsIH5DbGllbnQoKQpAQCAt
NzcsNiArODAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgIH0KIAorICAgIHZpcnR1YWwgVHlw
ZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCiAgICAgQ2xpZW50KiBtX2NsaWVu
dDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUG9w
dXBNZW51UHJveHlFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQb3B1
cE1lbnVQcm94eUVmbC5jcHAKaW5kZXggYTU5NTUzNy4uYWVkYjAwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQb3B1cE1lbnVQcm94eUVmbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQb3B1cE1lbnVQcm94eUVmbC5jcHAKQEAg
LTI3LDEwICsyNywxMCBAQAogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5RWZsLmgiCiAKICNp
bmNsdWRlICJFd2tWaWV3LmgiCi0jaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorI2lu
Y2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYlBvcHVwSXRlbS5oIgorI2luY2x1ZGUg
ImV3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3LmgiCi0j
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IApAQCAtNDQsNyArNDQsMTUgQEAgV2ViUG9wdXBNZW51UHJveHlFZmw6OldlYlBvcHVwTWVudVBy
b3h5RWZsKEV3a1ZpZXcqIHZpZXcsIFdlYlBvcHVwTWVudVByb3h5OjpDbGkKIAogdm9pZCBXZWJQ
b3B1cE1lbnVQcm94eUVmbDo6c2hvd1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0
RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIGNvbnN0IFZl
Y3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywgY29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwg
aW50MzJfdCBzZWxlY3RlZEluZGV4KQogewotICAgIG1fdmlldy0+cmVxdWVzdFBvcHVwTWVudSh0
aGlzLCByZWN0LCB0ZXh0RGlyZWN0aW9uLCBwYWdlU2NhbGVGYWN0b3IsIGl0ZW1zLCBzZWxlY3Rl
ZEluZGV4KTsKKyAgICBFaW5hX0xpc3QqIHBvcHVwTWVudUl0ZW1zID0gMDsKKyAgICBjb25zdCBz
aXplX3Qgc2l6ZSA9IGl0ZW1zLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNp
emU7ICsraSkgeworICAgICAgICAvLyBGSVhNRTogRXdrUG9wdXBNZW51SXRlbSBzaG91bGQgc3Rv
cCB1c2luZyBXZWJQb3B1cEl0ZW0uCisgICAgICAgIHBvcHVwTWVudUl0ZW1zID0gZWluYV9saXN0
X2FwcGVuZChwb3B1cE1lbnVJdGVtcywgRXdrUG9wdXBNZW51SXRlbTo6Y3JlYXRlKGl0ZW1zW2ld
KS5sZWFrUHRyKCkpOworICAgIH0KKworICAgIC8vIHJlcXVlc3RQb3B1cE1lbnUoKSB0YWtlcyBv
d25lcnNoaXAgb2YgdGhlIG1lbnUgaXRlbXMuCisgICAgbV92aWV3LT5yZXF1ZXN0UG9wdXBNZW51
KHRvQVBJKHN0YXRpY19jYXN0PFdlYlBvcHVwTWVudVByb3h5Kj4odGhpcykpLCByZWN0LCB0ZXh0
RGlyZWN0aW9uLCBwYWdlU2NhbGVGYWN0b3IsIHBvcHVwTWVudUl0ZW1zLCBzZWxlY3RlZEluZGV4
KTsKIH0KIAogdm9pZCBXZWJQb3B1cE1lbnVQcm94eUVmbDo6aGlkZVBvcHVwTWVudSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MWM1OWRmMS4uNDIwYmVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTUxLDYgKzU1MSw4IEBACiAJCTc2MkI3NDhEMTIwQkM3
NUMwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5IC8qIFdL
UHJlZmVyZW5jZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNzgwMUMwOTkxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1
bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzgw
MUMwOTUxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwICovOyB9OwogCQk3
ODAxQzA5QTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzgwMUMwOTYxNDIyOTBDNDAwRkFG
OUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuaCAqLzsgfTsKKwkJODM2N0QzRDQxNkJGQzg1QzAwRDJB
MEE3IC8qIFdLUG9wdXBNZW51LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzNjdEM0QyMTZCRkM4NUMwMEQyQTBBNyAvKiBXS1BvcHVwTWVudS5jcHAg
Ki87IH07CisJCTgzNjdEM0Q1MTZCRkM4NUMwMEQyQTBBNyAvKiBXS1BvcHVwTWVudS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2N0QzRDMxNkJGQzg1
QzAwRDJBMEE3IC8qIFdLUG9wdXBNZW51LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOENGRUNFOTQxNDkwRjE0MDAwMkFBQTMyIC8qIEVkaXRvclN0
YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhD
RkVDRTkzMTQ5MEYxNDAwMDJBQUEzMiAvKiBFZGl0b3JTdGF0ZS5jcHAgKi87IH07CiAJCThEQzJF
RjUzMDQ4NkE2OTQwMDk4QjIxNiAvKiBJbmZvUGxpc3Quc3RyaW5ncyBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg5QzE2NjZGRTg0MTE1OEMwMkFBQzA3
IC8qIEluZm9QbGlzdC5zdHJpbmdzICovOyB9OwogCQk5MDk4NTRFQzEyQkM0RTE3MDAwQUQwODAg
LyogV2ViTWVtb3J5U2FtcGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MDU2MjBFODEyQkMyNDhCMDAwNzk5QjYgLyogV2ViTWVtb3J5U2FtcGxl
ci5jcHAgKi87IH07CkBAIC0xODg1LDYgKzE4ODcsOCBAQAogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4
MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzgwMUMwOTUxNDIyOTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViSGl0VGVzdFJlc3VsdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc4MDFDMDk2MTQyMjkwQzQwMEZBRjlBRiAv
KiBXZWJIaXRUZXN0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkhpdFRlc3RSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM2N0QzRDIx
NkJGQzg1QzAwRDJBMEE3IC8qIFdLUG9wdXBNZW51LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdLUG9wdXBNZW51LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODM2N0QzRDMxNkJGQzg1QzAwRDJBMEE3IC8qIFdLUG9wdXBNZW51LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUG9wdXBNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCThDRkVDRTkzMTQ5MEYxNDAwMDJBQUEzMiAvKiBFZGl0b3JTdGF0ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFZGl0b3JTdGF0ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThEQzJFRjVBMDQ4NkE2OTQwMDk4QjIxNiAvKiBJ
bmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4REMyRUY1QjA0ODZBNjk0MDA5OEIyMTYgLyog
V2ViS2l0Mi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRG
aWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBX
ZWJLaXQyLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAg
LTM4NzcsNiArMzg4MSw4IEBACiAJCQkJQkMxNzc0NjQxMThCOUZGNDAwN0Q5RTlBIC8qIFdLUGFn
ZVByaXZhdGUuaCAqLywKIAkJCQkxQUM4NkZGMTEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5T
aXRlRGF0YU1hbmFnZXIuY3BwICovLAogCQkJCTFBQzg2RkYyMTMwQjQ2RDMwMDJDMTI1NyAvKiBX
S1BsdWdpblNpdGVEYXRhTWFuYWdlci5oICovLAorCQkJCTgzNjdEM0QyMTZCRkM4NUMwMEQyQTBB
NyAvKiBXS1BvcHVwTWVudS5jcHAgKi8sCisJCQkJODM2N0QzRDMxNkJGQzg1QzAwRDJBMEE3IC8q
IFdLUG9wdXBNZW51LmggKi8sCiAJCQkJQkNENTk3Q0YxMTJCNTZBQzAwRUM4QzIzIC8qIFdLUHJl
ZmVyZW5jZXMuY3BwICovLAogCQkJCUJDRDU5N0NFMTEyQjU2QUMwMEVDOEMyMyAvKiBXS1ByZWZl
cmVuY2VzLmggKi8sCiAJCQkJNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5IC8qIFdLUHJlZmVyZW5j
ZXNQcml2YXRlLmggKi8sCkBAIC01MzI3LDYgKzUzMzMsNyBAQAogCQkJCUJDRTE3QjdFMTM4MUYx
MTcwMDEyQTY0MSAvKiBXS1BhZ2VQcml2YXRlTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVG
RDM4QzE2QjBFODhDMDBCMkYwRTggLyogV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUM4NkZGNDEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzNjdEM0Q1MTZCRkM4NUMwMEQyQTBBNyAvKiBX
S1BvcHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNENTk3RDAxMTJCNTZBQzAwRUM4QzIz
IC8qIFdLUHJlZmVyZW5jZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2MkI3NDhEMTIwQkM3NUMw
MDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEz
NEYwMTcxMkVBNUQzMzAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3LmggaW4gSGVhZGVycyAqLywK
QEAgLTY0NjAsNiArNjQ2Nyw3IEBACiAJCQkJQkM3QjYzMzgxMkE0NUFCQTAwRDE3NEE0IC8qIFdL
UGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTE3QjdEMTM4MUYxMTcwMDEyQTY0
MSAvKiBXS1BhZ2VQcml2YXRlTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzg2RkYzMTMw
QjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk4MzY3RDNENDE2QkZDODVDMDBEMkEwQTcgLyogV0tQb3B1cE1lbnUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNENTk3RDExMTJCNTZBQzAwRUM4QzIzIC8qIFdLUHJlZmVyZW5jZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEzNEYwMUExMkVBNUQ5OTAwNEVDNThEIC8qIFdLUHJp
bnRpbmdWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCQUFDRUMxNDUyMjVFMzAwNTNGODJG
IC8qIFdLUHJvY2Vzc0dyb3VwLm1tIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186599</attachid>
            <date>2013-02-05 04:44:02 -0800</date>
            <delta_ts>2013-02-19 01:04:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108798_popupmenu_capi_clean.patch</filename>
            <type>text/plain</type>
            <size>24312</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjNTZiZjc1Li5hNjY3NmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTcg
QEAKKzIwMTMtMDItMDUgIENocmlzdG9waGUgRHVtZXogIDxkY2hyaXNAZ21haWwuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gUmVtb3ZlIGRlcGVuZGVuY3kgb24gaW50ZXJuYWwgQysrIHR5cGVz
IGZyb20gRXdrIHBvcHVwIG1lbnUgQVBJIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg3OTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvciBXZWJQb3B1cE1lbnVFZmws
IGV3a19wb3B1cF9tZW51IGFuZCBld2tfcG9wdXBfbWVudV9pdGVtIHNvIHRoYXQKKyAgICAgICAg
b3VyIEV3ayBQb3B1cCBNZW51IEFQSSBubyBsb25nZXIgcmVsaWVzIG9uIGludGVybmFsIEMrKyBB
UEkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcDogVGhlIHZpZXcg
bm8gbG9uZ2VyIG93bnMgdGhlIHBvcHVwIG1lbnUuCisgICAgICAgIEluc3RlYWQgaXQgaXMgb3du
ZWQgYnkgdGhlIFdlYlBvcHVwTWVudVByb3h5RWZsIHNpbWlsYXJseSB0byBvdGhlcgorICAgICAg
ICBwb3J0cy4KKworICAgICAgICAoRXdrVmlldzo6cmVxdWVzdFBvcHVwTWVudSk6IE5vdyB0YWtl
cyBhIEV3a1BvcHVwTWVudSB0eXBlIGluIGFyZ3VtZW50CisgICAgICAgIGluc3RlYWQgb2YgaW50
ZXJuYWwgQysrIHR5cGVzIChXZWJQb3B1cE1lbnVQcm94eUVmbCBhbmQgV2ViUG9wdXBJdGVtKS4K
KworICAgICAgICAoRXdrVmlldzo6Y2xvc2VQb3B1cE1lbnUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXcuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChFd2tWaWV3
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudS5jcHA6IEV3a1Bv
cHVwTWVudSBubyBsb25nZXIKKyAgICAgICAgKEV3a1BvcHVwTWVudTo6RXdrUG9wdXBNZW51KTog
RXdrUG9wdXBNZW51IG5vIGxvbmdlciByZXF1aXJlcyBhIEV3a1ZpZXcsCisgICAgICAgIGEgV2Vi
UG9wdXBNZW51UHJveHlFZmwgYW5kIFdlYlBvcHVwSXRlbXMgdG8gYmUgY29uc3RydWN0ZWQuIERl
cGVuZGVuY3kKKyAgICAgICAgb24gaW50ZXJuYWwgV2ViKiB0eXBlcyBpcyB0aGVyZWZvcmUgcmVt
b3ZlZC4KKworICAgICAgICAoRXdrUG9wdXBNZW51Ojp+RXdrUG9wdXBNZW51KTogQ2FsbCBuZXcg
Y2xlYXIoKSBtZXRob2QgdG8gYXZvaWQgY29kZQorICAgICAgICBkdXBsaWNhdGlvbi4KKyAgICAg
ICAgKEV3a1BvcHVwTWVudTo6YXBwZW5kKTogQWRkIG1ldGhvZCB0byBhcHBlbmQgYW4gaXRlbSB0
byB0aGUgcG9wdXAgbWVudS4KKyAgICAgICAgKEV3a1BvcHVwTWVudTo6Y2xlYXIpOiBBZGQgbWV0
aG9kIHRvIGNsZWFyIGFsbCBpdGVtcyBpbiB0aGUgcG9wdXAgbWVudS4KKyAgICAgICAgKEV3a1Bv
cHVwTWVudTo6c2V0U2VsZWN0ZWRJbmRleCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3BvcHVwX21lbnUuaDogUmVtb3ZlIGV3a19wb3B1cF9tZW51X2Nsb3NlIHB1YmxpYworICAg
ICAgICBBUEkgc2luY2UgaXQgaXMgbm90IG5lZWRlZC4gVGhpcyBpcyBjYWxsZWQgYnkgdGhlIGJy
b3dzZXIgYnV0IHRoZQorICAgICAgICBpbXBsZW1lbnRhdGlvbiBpdHNlbGYgZGVsZWdhdGVzIHRo
ZSBwb3B1cCBtZW51IGNsb3NpbmcgdG8gdGhlIGJyb3dzZXIKKyAgICAgICAgdmlhIHRoZSBwb3B1
cF9tZW51X2hpZGUoKSBzbWFydCBmdW5jdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uY3BwOgorICAgICAgICAoRXdrUG9wdXBNZW51SXRlbTo6
RXdrUG9wdXBNZW51SXRlbSk6IEV3a1BvcHVwTWVudUl0ZW0gbm8gbG9uZ2VyCisgICAgICAgIHJl
cXVpcmVzIGEgV2ViS2l0OjpXZWJQb3B1cEl0ZW0gdG8gYmUgY29uc3RydWN0ZWQuIFRoaXMgd2Fz
IG5lZWRlZCBhcworICAgICAgICB3ZSBzaG91bGQgc3RvcCByZWx5aW5nIG9uIGludGVybmFsIEMr
KyB0eXBlcy4gSW5zdGVhZCwgb25seSB0aGUgaXRlbQorICAgICAgICB0eXBlIGlzIHBhc3NlZCBv
biBjb25zdHJ1Y3Rpb24gYW5kIG90aGVyIG1lbWJlcnMgY2FuIGJlIHVwZGF0ZWQgdmlhCisgICAg
ICAgIHNldHRlciBtZXRob2RzIHRoYXQgd2VyZSBhZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oOiBBZGQgc2V0dGVycyBmb3Ig
dGhlCisgICAgICAgIG1lbWJlcnMgc28gdGhhdCB0aGV5IGNhbiBiZSBpbml0aWFsaXplZCBieSB0
aGUgV2ViUG9wdXBNZW51UHJveHlFZmwuCisgICAgICAgIFRob3NlIGFyZSBuZWVkZWQgYXMgdGhl
IEV3a1BvcHVwTWVudUl0ZW0gbm8gbG9uZ2VyIGhhcyBhY2Nlc3MgdG8gdGhlCisgICAgICAgIGlu
dGVybmFsIFdlYlBvcHVwSXRlbSBvYmplY3QuCisgICAgICAgIChFd2tQb3B1cE1lbnVJdGVtOjpj
cmVhdGUpOgorICAgICAgICAoRXdrUG9wdXBNZW51SXRlbTo6dHlwZSk6CisgICAgICAgIChFd2tQ
b3B1cE1lbnVJdGVtOjpzZXRUZXh0RGlyZWN0aW9uKToKKyAgICAgICAgKEV3a1BvcHVwTWVudUl0
ZW06OnRleHREaXJlY3Rpb24pOgorICAgICAgICAoRXdrUG9wdXBNZW51SXRlbTo6c2V0SGFzVGV4
dERpcmVjdGlvbk92ZXJyaWRlKToKKyAgICAgICAgKEV3a1BvcHVwTWVudUl0ZW06Omhhc1RleHRE
aXJlY3Rpb25PdmVycmlkZSk6CisgICAgICAgIChFd2tQb3B1cE1lbnVJdGVtKToKKyAgICAgICAg
KEV3a1BvcHVwTWVudUl0ZW06OnNldEVuYWJsZWQpOgorICAgICAgICAoRXdrUG9wdXBNZW51SXRl
bTo6aXNFbmFibGVkKToKKyAgICAgICAgKEV3a1BvcHVwTWVudUl0ZW06OnNldElzTGFiZWwpOgor
ICAgICAgICAoRXdrUG9wdXBNZW51SXRlbTo6aXNMYWJlbCk6CisgICAgICAgIChFd2tQb3B1cE1l
bnVJdGVtOjpzZXRTZWxlY3RlZCk6CisgICAgICAgIChFd2tQb3B1cE1lbnVJdGVtOjppc1NlbGVj
dGVkKToKKyAgICAgICAgKEV3a1BvcHVwTWVudUl0ZW06OnNldFRleHQpOgorICAgICAgICAoRXdr
UG9wdXBNZW51SXRlbTo6dGV4dCk6CisgICAgICAgIChFd2tQb3B1cE1lbnVJdGVtOjpzZXRUb29s
dGlwVGV4dCk6CisgICAgICAgIChFd2tQb3B1cE1lbnVJdGVtOjp0b29sdGlwVGV4dCk6CisgICAg
ICAgIChFd2tQb3B1cE1lbnVJdGVtOjpzZXRBY2Nlc3NpYmlsaXR5VGV4dCk6CisgICAgICAgIChF
d2tQb3B1cE1lbnVJdGVtOjphY2Nlc3NpYmlsaXR5VGV4dCk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrUG9wdXBNZW51
OjpjcmVhdGUpOgorICAgICAgICAoRXdrUG9wdXBNZW51KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5oOiBEb2N1bWVudCBpbiB0aGUgQVBJIHRoYXQgdGhlIGNhbGxlciBp
cworICAgICAgICBleHBlY3RlZCB0byBydW4gdGhlIGFwcGxpY2F0aW9uIG1haW4gbG9vcCB3aGVu
IHRoZSBwb3B1cF9tZW51X3Nob3cKKyAgICAgICAgc21hcnQgZnVuY3Rpb24gaXMgY2FsbGVkLCB1
bnRpbCBhIHNlbGVjdGlvbiBpcyBtYWRlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwv
dGVzdHMvdGVzdF9ld2syX3BvcHVwX21lbnUuY3BwOiBVcGRhdGUgQVBJIHRlc3Qgc28KKyAgICAg
ICAgdGhhdCB0aGUgcG9wdXAgbWVudSBzZWxlY3Rpb24gZG9uZSBiZWZvcmUgdGhlIHNob3dQb3B1
cE1lbnUgc21hcnQKKyAgICAgICAgZnVuY3Rpb24gcmV0dXJucy4gVGhpcyBpcyByZXF1aXJlZCBi
eSB0aGUgQVBJLgorCisgICAgICAgIChzaG93UG9wdXBNZW51KToKKyAgICAgICAgKFRFU1RfRik6
CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9XZWJQb3B1cE1lbnVQcm94eUVmbC5jcHA6IFdlYlBv
cHVwTWVudVByb3h5RWZsIG5vdyBvd25zCisgICAgICAgIHRoZSBFd2tQb3B1cE1lbnUgb2JqZWN0
IGFuZCBjcmVhdGVzIHRoZSBFd2tQb3B1cE1lbnVJdGVtIG9iamVjdHMuIFRoaXMKKyAgICAgICAg
aXMgbm93IG5lZWRlZCBhcyBvbmx5IHRoZSBXZWJQb3B1cE1lbnVQcm94eUVmbCBoYXMgYWNjZXNz
IHRvIGludGVybmFsCisgICAgICAgIFdlYiogdHlwZXMgbmVlZGVkIGZvciBpbml0aWFsaXphdGlv
bi4gVGhpcyBpcyBhbHNvIG1vcmUgY29uc2lzdGVudCB3aXRoCisgICAgICAgIG90aGVyIHBvcnRz
LgorCisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5RWZsOjp+V2ViUG9wdXBNZW51
UHJveHlFZmwpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlTWVu
dUl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eUVmbDo6cG9wdWxhdGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eUVmbDo6c2hvd1BvcHVwTWVudSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5RWZsOjpoaWRlUG9wdXBNZW51KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYlBvcHVwTWVudVByb3h5RWZsLmg6CisgICAgICAg
IChXZWJQb3B1cE1lbnVQcm94eUVmbCk6CisKIDIwMTMtMDItMDQgIEd3YW5nIFlvb24gSHdhbmcg
IDxyeXVtaWVsQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAgIENvb3JkaW5hdGVkIEdyYXBoaWNz
IDogZGlzY29ubmVjdEN1c3RvbUZpbHRlclByb2dyYW0gZG9lcyBub3QgZG8gYW55dGhpbmcuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IDA0NjY5
NGQ3Li4zOGJhNmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tW
aWV3LmNwcApAQCAtNDQsNyArNDQsNiBAQAogI2luY2x1ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCi0jaW5jbHVkZSAi
V2ViUG9wdXBNZW51UHJveHlFZmwuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2lu
Y2x1ZGUgImV3a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX2Nv
bG9yX3BpY2tlcl9wcml2YXRlLmgiCkBAIC03NzEsMzYgKzc3MCwyNiBAQCB2b2lkIEV3a1ZpZXc6
OmhpZGVDb250ZXh0TWVudSgpCiAgICAgbV9jb250ZXh0TWVudS5jbGVhcigpOwogfQogCi12b2lk
IEV3a1ZpZXc6OnJlcXVlc3RQb3B1cE1lbnUoV2ViUG9wdXBNZW51UHJveHlFZmwqIHBvcHVwTWVu
dVByb3h5LCBjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24s
IGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IsIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVt
cywgaW50MzJfdCBzZWxlY3RlZEluZGV4KQordm9pZCBFd2tWaWV3OjpyZXF1ZXN0UG9wdXBNZW51
KEV3a1BvcHVwTWVudSogcG9wdXBNZW51LCBjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0
aW9uIHRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IpCiB7CiAgICAgRXdrX1Zp
ZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERhdGEoKTsKICAgICBBU1NFUlQoc2QtPmFwaSk7CiAK
LSAgICBBU1NFUlQocG9wdXBNZW51UHJveHkpOworICAgIEFTU0VSVChwb3B1cE1lbnUpOwogCiAg
ICAgaWYgKCFzZC0+YXBpLT5wb3B1cF9tZW51X3Nob3cpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChtX3BvcHVwTWVudSkKLSAgICAgICAgY2xvc2VQb3B1cE1lbnUoKTsKLQotICAgIG1fcG9w
dXBNZW51ID0gRXdrUG9wdXBNZW51OjpjcmVhdGUodGhpcywgcG9wdXBNZW51UHJveHksIGl0ZW1z
LCBzZWxlY3RlZEluZGV4KTsKLQotICAgIHNkLT5hcGktPnBvcHVwX21lbnVfc2hvdyhzZCwgcmVj
dCwgc3RhdGljX2Nhc3Q8RXdrX1RleHRfRGlyZWN0aW9uPih0ZXh0RGlyZWN0aW9uKSwgcGFnZVNj
YWxlRmFjdG9yLCBtX3BvcHVwTWVudS5nZXQoKSk7CisgICAgc2QtPmFwaS0+cG9wdXBfbWVudV9z
aG93KHNkLCByZWN0LCBzdGF0aWNfY2FzdDxFd2tfVGV4dF9EaXJlY3Rpb24+KHRleHREaXJlY3Rp
b24pLCBwYWdlU2NhbGVGYWN0b3IsIHBvcHVwTWVudSk7CiB9CiAKIHZvaWQgRXdrVmlldzo6Y2xv
c2VQb3B1cE1lbnUoKQogewotICAgIGlmICghbV9wb3B1cE1lbnUpCi0gICAgICAgIHJldHVybjsK
LQogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7CiAgICAgQVNTRVJU
KHNkLT5hcGkpOwogCiAgICAgaWYgKHNkLT5hcGktPnBvcHVwX21lbnVfaGlkZSkKICAgICAgICAg
c2QtPmFwaS0+cG9wdXBfbWVudV9oaWRlKHNkKTsKLQotICAgIG1fcG9wdXBNZW51LmNsZWFyKCk7
CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXdrVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCmlu
ZGV4IDg3MTY1YmMuLjE5YzczNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3LmgKQEAgLTY3LDggKzY3LDYgQEAgY2xhc3MgV2ViQ29udGV4dE1lbnVJdGVtRGF0
YTsKIGNsYXNzIFdlYkNvbnRleHRNZW51UHJveHlFZmw7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CiBj
bGFzcyBXZWJQYWdlUHJveHk7Ci1jbGFzcyBXZWJQb3B1cEl0ZW07Ci1jbGFzcyBXZWJQb3B1cE1l
bnVQcm94eUVmbDsKIAogI2lmIEVOQUJMRShWSUJSQVRJT04pCiBjbGFzcyBWaWJyYXRpb25DbGll
bnRFZmw7CkBAIC0xODIsNyArMTgwLDcgQEAgcHVibGljOgogICAgIFdLUGFnZVJlZiBjcmVhdGVO
ZXdQYWdlKFBhc3NSZWZQdHI8RXdrVXJsUmVxdWVzdD4sIFdLRGljdGlvbmFyeVJlZiB3aW5kb3dG
ZWF0dXJlcyk7CiAgICAgdm9pZCBjbG9zZSgpOwogCi0gICAgdm9pZCByZXF1ZXN0UG9wdXBNZW51
KFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlFZmwqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jiwg
V2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgVmVj
dG9yPFdlYktpdDo6V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCk7
CisgICAgdm9pZCByZXF1ZXN0UG9wdXBNZW51KEV3a1BvcHVwTWVudSosIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9y
KTsKICAgICB2b2lkIGNsb3NlUG9wdXBNZW51KCk7CiAgICAgCiAgICAgdm9pZCBzaG93Q29udGV4
dE1lbnUoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5RWZsKiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1E
YXRhPiYgaXRlbXMpOwpAQCAtMjgwLDcgKzI3OCw2IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBX
ZWJDb3JlOjpUaW1lcjxFd2tWaWV3PiBtX2Rpc3BsYXlUaW1lcjsKICAgICBPd25QdHI8RXdrQ29u
dGV4dE1lbnU+IG1fY29udGV4dE1lbnU7Ci0gICAgT3duUHRyPEV3a1BvcHVwTWVudT4gbV9wb3B1
cE1lbnU7CiAgICAgT3duUHRyPFdlYktpdDo6SW5wdXRNZXRob2RDb250ZXh0RWZsPiBtX2lucHV0
TWV0aG9kQ29udGV4dDsKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBPd25QdHI8
RXdrQ29sb3JQaWNrZXI+IG1fY29sb3JQaWNrZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudS5jcHAKaW5kZXggMDM5NmYwMS4uMWQzZjgy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVw
X21lbnUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1
cF9tZW51LmNwcApAQCAtMjcsMzQgKzI3LDMyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiZXdrX3BvcHVwX21lbnUuaCIKIAotI2luY2x1ZGUgIkV3a1ZpZXcuaCIKLSNpbmNsdWRl
ICJXZWJQb3B1cE1lbnVQcm94eUVmbC5oIgogI2luY2x1ZGUgImV3a19wb3B1cF9tZW51X2l0ZW1f
cHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19wb3B1cF9tZW51X3ByaXZhdGUuaCIKIAotdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKLQotRXdrUG9wdXBNZW51OjpFd2tQb3B1cE1lbnUoRXdrVmlldyog
dmlldywgV2ViUG9wdXBNZW51UHJveHlFZmwqIHBvcHVwTWVudVByb3h5LCBjb25zdCBWZWN0b3I8
V2ViS2l0OjpXZWJQb3B1cEl0ZW0+JiBpdGVtcywgdW5zaWduZWQgc2VsZWN0ZWRJbmRleCkKLSAg
ICA6IG1fdmlldyh2aWV3KQotICAgICwgbV9wb3B1cE1lbnVQcm94eShwb3B1cE1lbnVQcm94eSkK
LSAgICAsIG1fcG9wdXBNZW51SXRlbXMoMCkKLSAgICAsIG1fc2VsZWN0ZWRJbmRleChzZWxlY3Rl
ZEluZGV4KQorRXdrUG9wdXBNZW51OjpFd2tQb3B1cE1lbnUoKQorICAgIDogbV9wb3B1cE1lbnVJ
dGVtcygwKQorICAgICwgbV9zZWxlY3RlZEluZGV4KC0xKQogewotICAgIGNvbnN0IHNpemVfdCBz
aXplID0gaXRlbXMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytp
KQotICAgICAgICBtX3BvcHVwTWVudUl0ZW1zID0gZWluYV9saXN0X2FwcGVuZChtX3BvcHVwTWVu
dUl0ZW1zLCBFd2tQb3B1cE1lbnVJdGVtOjpjcmVhdGUoaXRlbXNbaV0pLmxlYWtQdHIoKSk7CiB9
CiAKIEV3a1BvcHVwTWVudTo6fkV3a1BvcHVwTWVudSgpCiB7CisgICAgY2xlYXIoKTsKK30KKwor
dm9pZCBFd2tQb3B1cE1lbnU6OmFwcGVuZChQYXNzT3duUHRyPEV3a1BvcHVwTWVudUl0ZW0+IGl0
ZW0pCit7CisgICAgbV9wb3B1cE1lbnVJdGVtcyA9IGVpbmFfbGlzdF9hcHBlbmQobV9wb3B1cE1l
bnVJdGVtcywgaXRlbS5sZWFrUHRyKCkpOworfQorCit2b2lkIEV3a1BvcHVwTWVudTo6Y2xlYXIo
KQorewogICAgIHZvaWQqIGl0ZW07CiAgICAgRUlOQV9MSVNUX0ZSRUUobV9wb3B1cE1lbnVJdGVt
cywgaXRlbSkKICAgICAgICAgZGVsZXRlIHN0YXRpY19jYXN0PEV3a1BvcHVwTWVudUl0ZW0qPihp
dGVtKTsKLX0KIAotdm9pZCBFd2tQb3B1cE1lbnU6OmNsb3NlKCkKLXsKLSAgICBtX3ZpZXctPmNs
b3NlUG9wdXBNZW51KCk7CisgICAgbV9wb3B1cE1lbnVJdGVtcyA9IDA7CiB9CiAKIGNvbnN0IEVp
bmFfTGlzdCogRXdrUG9wdXBNZW51OjppdGVtcygpIGNvbnN0CkBAIC02OSwyNiArNjcsMTAgQEAg
dW5zaWduZWQgRXdrUG9wdXBNZW51OjpzZWxlY3RlZEluZGV4KCkgY29uc3QKIAogYm9vbCBFd2tQ
b3B1cE1lbnU6OnNldFNlbGVjdGVkSW5kZXgodW5zaWduZWQgc2VsZWN0ZWRJbmRleCkKIHsKLSAg
ICBpZiAoIW1fcG9wdXBNZW51UHJveHkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIGlm
IChzZWxlY3RlZEluZGV4ID49IGVpbmFfbGlzdF9jb3VudChtX3BvcHVwTWVudUl0ZW1zKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1fc2VsZWN0ZWRJbmRleCA9PSBzZWxlY3Rl
ZEluZGV4KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQogICAgIG1fc2VsZWN0ZWRJbmRleCA9IHNl
bGVjdGVkSW5kZXg7Ci0gICAgbV9wb3B1cE1lbnVQcm94eS0+dmFsdWVDaGFuZ2VkKHNlbGVjdGVk
SW5kZXgpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLUVpbmFfQm9vbCBld2tfcG9wdXBfbWVu
dV9jbG9zZShFd2tfUG9wdXBfTWVudSogcG9wdXBNZW51KQotewotICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTChwb3B1cE1lbnUsIGZhbHNlKTsKLQotICAgIHBvcHVwTWVudS0+Y2xv
c2UoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51LmgKaW5kZXggMGFkMGY1Zi4uMjRhNDU2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudS5o
CkBAIC02MSwxNyArNjEsNiBAQCBFQVBJIEVpbmFfQm9vbCBld2tfcG9wdXBfbWVudV9zZWxlY3Rl
ZF9pbmRleF9zZXQoRXdrX1BvcHVwX01lbnUgKnBvcHVwX21lbnUsIHVucwogRUFQSSB1bnNpZ25l
ZCBld2tfcG9wdXBfbWVudV9zZWxlY3RlZF9pbmRleF9nZXQoY29uc3QgRXdrX1BvcHVwX01lbnUg
KnBvcHVwX21lbnUpOwogCiAvKioKLSAqIENsb3NlcyBjdXJyZW50IHBvcHVwIG1lbnUuCi0gKgot
ICogVGhlIEV3a19Qb3B1cF9NZW51IG9iamVjdCBiZWNvbWVzIGludmFsaWQgYWZ0ZXIgY2FsbGlu
ZyB0aGlzIGZ1bmN0aW9uLgotICoKLSAqIEBwYXJhbSBwb3B1cF9tZW51IHBvcHVwIG1lbnUgb2Jq
ZWN0Ci0gKgotICogQHJldHVybiBAYyBFSU5BX1RSVUUgb24gc3VjY2VzcywgQGMgRUlOQV9GQUxT
RSBvbiBmYWlsdXJlCi0gKi8KLUVBUEkgRWluYV9Cb29sIGV3a19wb3B1cF9tZW51X2Nsb3NlKEV3
a19Qb3B1cF9NZW51ICpwb3B1cF9tZW51KTsKLQotLyoqCiAgKiBSZXRyaWV2ZSB0aGUgcG9wdXAg
bWVudSBpdGVtcwogICoKICAqIEBwYXJhbSBwb3B1cF9tZW51IHBvcHVwIG1lbnUgb2JqZWN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVu
dV9pdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9t
ZW51X2l0ZW0uY3BwCmluZGV4IDBhNTFkOTUuLjE4YjgyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uY3BwCkBA
IC0yNyw3MCArMjcsMTUgQEAKICNpbmNsdWRlICJld2tfcG9wdXBfbWVudV9pdGVtLmgiCiAKICNp
bmNsdWRlICJld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaCIKLSNpbmNsdWRlICJld2tfcHJp
dmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLQotdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKLQotRXdrUG9wdXBNZW51SXRlbTo6RXdrUG9wdXBNZW51SXRlbShjb25zdCBXZWJL
aXQ6OldlYlBvcHVwSXRlbSYgaXRlbSkKLSAgICA6IG1fdHlwZShzdGF0aWNfY2FzdDxFd2tfUG9w
dXBfTWVudV9JdGVtX1R5cGU+KGl0ZW0ubV90eXBlKSkKLSAgICAsIG1fdGV4dERpcmVjdGlvbihz
dGF0aWNfY2FzdDxFd2tfVGV4dF9EaXJlY3Rpb24+KGl0ZW0ubV90ZXh0RGlyZWN0aW9uKSkKLSAg
ICAsIG1faGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKGl0ZW0ubV9oYXNUZXh0RGlyZWN0aW9uT3Zl
cnJpZGUpCi0gICAgLCBtX2lzRW5hYmxlZChpdGVtLm1faXNFbmFibGVkKQotICAgICwgbV9pc0xh
YmVsKGl0ZW0ubV9pc0xhYmVsKQotICAgICwgbV9pc1NlbGVjdGVkKGl0ZW0ubV9pc1NlbGVjdGVk
KQotICAgICwgbV90ZXh0KGl0ZW0ubV90ZXh0LnV0ZjgoKS5kYXRhKCkpCi0gICAgLCBtX3Rvb2x0
aXBUZXh0KGl0ZW0ubV90b29sVGlwLnV0ZjgoKS5kYXRhKCkpCi0gICAgLCBtX2FjY2Vzc2liaWxp
dHlUZXh0KGl0ZW0ubV9hY2Nlc3NpYmlsaXR5VGV4dC51dGY4KCkuZGF0YSgpKQoteyB9Ci0KLUV3
a19Qb3B1cF9NZW51X0l0ZW1fVHlwZSBFd2tQb3B1cE1lbnVJdGVtOjp0eXBlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV90eXBlOwotfQogCi1Fd2tfVGV4dF9EaXJlY3Rpb24gRXdrUG9wdXBNZW51
SXRlbTo6dGV4dERpcmVjdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdGV4dERpcmVjdGlv
bjsKLX0KLQotY29uc3QgY2hhciogRXdrUG9wdXBNZW51SXRlbTo6dGV4dCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fdGV4dDsKLX0KLQotY29uc3QgY2hhciogRXdrUG9wdXBNZW51SXRlbTo6dG9v
bHRpcFRleHQoKSBjb25zdAotewotICAgIHJldHVybiBtX3Rvb2x0aXBUZXh0OwotfQotCi1jb25z
dCBjaGFyKiBFd2tQb3B1cE1lbnVJdGVtOjphY2Nlc3NpYmlsaXR5VGV4dCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eVRleHQ7Ci19Ci0KLWJvb2wgRXdrUG9wdXBNZW51SXRl
bTo6aGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9oYXNU
ZXh0RGlyZWN0aW9uT3ZlcnJpZGU7Ci19Ci0KLWJvb2wgRXdrUG9wdXBNZW51SXRlbTo6aXNFbmFi
bGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pc0VuYWJsZWQ7Ci19Ci0KLWJvb2wgRXdrUG9w
dXBNZW51SXRlbTo6aXNMYWJlbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1faXNMYWJlbDsKLX0K
LQotYm9vbCBFd2tQb3B1cE1lbnVJdGVtOjppc1NlbGVjdGVkKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9pc1NlbGVjdGVkOwotfQotCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKEVXS19Q
T1BVUF9NRU5VX1NFUEFSQVRPUiwgV2ViUG9wdXBJdGVtOjpTZXBhcmF0b3IpOwotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShFV0tfUE9QVVBfTUVOVV9JVEVNLCBXZWJQb3B1cEl0ZW06Okl0
ZW0pOworRXdrUG9wdXBNZW51SXRlbTo6RXdrUG9wdXBNZW51SXRlbShFd2tfUG9wdXBfTWVudV9J
dGVtX1R5cGUgdHlwZSkKKyAgICA6IG1fdHlwZSh0eXBlKQorICAgICwgbV90ZXh0RGlyZWN0aW9u
KEVXS19URVhUX0RJUkVDVElPTl9MRUZUX1RPX1JJR0hUKQorICAgICwgbV9oYXNUZXh0RGlyZWN0
aW9uT3ZlcnJpZGUoZmFsc2UpCisgICAgLCBtX2lzRW5hYmxlZCh0cnVlKQorICAgICwgbV9pc0xh
YmVsKGZhbHNlKQorICAgICwgbV9pc1NlbGVjdGVkKGZhbHNlKQoreyB9CiAKIEV3a19Qb3B1cF9N
ZW51X0l0ZW1fVHlwZSBld2tfcG9wdXBfbWVudV9pdGVtX3R5cGVfZ2V0KGNvbnN0IEV3a19Qb3B1
cF9NZW51X0l0ZW0qIGl0ZW0pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oCmluZGV4IDY4
MGEzOTEuLmI4NWIzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oCkBAIC0yNyw3ICsy
Nyw2IEBACiAjZGVmaW5lIGV3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZV9oCiAKICNpbmNsdWRl
ICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKLSNpbmNsdWRlICJXZWJQb3B1cEl0ZW0uaCIKICNpbmNs
dWRlICJld2tfcG9wdXBfbWVudV9pdGVtLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
IApAQCAtMzcsMjUgKzM2LDM5IEBACiAgKi8KIGNsYXNzIEV3a1BvcHVwTWVudUl0ZW0gewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3a1BvcHVwTWVudUl0ZW0+IGNyZWF0ZShjb25z
dCBXZWJLaXQ6OldlYlBvcHVwSXRlbSYgaXRlbSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxFd2tQ
b3B1cE1lbnVJdGVtPiBjcmVhdGUoRXdrX1BvcHVwX01lbnVfSXRlbV9UeXBlIHR5cGUpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEV3a1BvcHVwTWVudUl0ZW0oaXRlbSkpOwor
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEV3a1BvcHVwTWVudUl0ZW0odHlwZSkpOwogICAg
IH0KIAotICAgIEV3a19Qb3B1cF9NZW51X0l0ZW1fVHlwZSB0eXBlKCkgY29uc3Q7Ci0gICAgRXdr
X1RleHRfRGlyZWN0aW9uIHRleHREaXJlY3Rpb24oKSBjb25zdDsKKyAgICBFd2tfUG9wdXBfTWVu
dV9JdGVtX1R5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCi0gICAgYm9vbCBo
YXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoKSBjb25zdDsKLSAgICBib29sIGlzRW5hYmxlZCgpIGNv
bnN0OwotICAgIGJvb2wgaXNMYWJlbCgpIGNvbnN0OwotICAgIGJvb2wgaXNTZWxlY3RlZCgpIGNv
bnN0OworICAgIHZvaWQgc2V0VGV4dERpcmVjdGlvbihFd2tfVGV4dF9EaXJlY3Rpb24gZGlyZWN0
aW9uKSB7IG1fdGV4dERpcmVjdGlvbiA9IGRpcmVjdGlvbjsgfQorICAgIEV3a19UZXh0X0RpcmVj
dGlvbiB0ZXh0RGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0RGlyZWN0aW9uOyB9CiAK
LSAgICBjb25zdCBjaGFyKiB0ZXh0KCkgY29uc3Q7Ci0gICAgY29uc3QgY2hhciogdG9vbHRpcFRl
eHQoKSBjb25zdDsKLSAgICBjb25zdCBjaGFyKiBhY2Nlc3NpYmlsaXR5VGV4dCgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0SGFzVGV4dERpcmVjdGlvbk92ZXJyaWRlKGJvb2wgaGFzT3ZlcnJpZGUpIHsg
bV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUgPSBoYXNPdmVycmlkZTsgfQorICAgIGJvb2wgaGFz
VGV4dERpcmVjdGlvbk92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4gbV9oYXNUZXh0RGlyZWN0aW9u
T3ZlcnJpZGU7IH0KKworICAgIHZvaWQgc2V0RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lz
RW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgaXNFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9pc0VuYWJsZWQ7IH0KKworICAgIHZvaWQgc2V0SXNMYWJlbChib29sIGlzTGFiZWwpIHsg
bV9pc0xhYmVsID0gaXNMYWJlbDsgfQorICAgIGJvb2wgaXNMYWJlbCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNMYWJlbDsgfQorCisgICAgdm9pZCBzZXRTZWxlY3RlZChib29sIGlzU2VsZWN0ZWQpIHsg
bV9pc1NlbGVjdGVkID0gaXNTZWxlY3RlZDsgfQorICAgIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0
IHsgcmV0dXJuIG1faXNTZWxlY3RlZDsgfQorCisgICAgdm9pZCBzZXRUZXh0KGNvbnN0IGNoYXIq
IHRleHQpIHsgbV90ZXh0ID0gdGV4dDsgfQorICAgIGNvbnN0IGNoYXIqIHRleHQoKSBjb25zdCB7
IHJldHVybiBtX3RleHQ7IH0KKworICAgIHZvaWQgc2V0VG9vbHRpcFRleHQoY29uc3QgY2hhciog
dG9vbHRpcFRleHQpIHsgbV90b29sdGlwVGV4dCA9IHRvb2x0aXBUZXh0OyB9CisgICAgY29uc3Qg
Y2hhciogdG9vbHRpcFRleHQoKSBjb25zdCB7IHJldHVybiBtX3Rvb2x0aXBUZXh0OyB9CisKKyAg
ICB2b2lkIHNldEFjY2Vzc2liaWxpdHlUZXh0KGNvbnN0IGNoYXIqIGFjY2Vzc2liaWxpdHlUZXh0
KSB7IG1fYWNjZXNzaWJpbGl0eVRleHQgPSBhY2Nlc3NpYmlsaXR5VGV4dDsgfQorICAgIGNvbnN0
IGNoYXIqIGFjY2Vzc2liaWxpdHlUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3NpYmlsaXR5
VGV4dDsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEV3a1BvcHVwTWVudUl0ZW0oY29uc3Qg
V2ViS2l0OjpXZWJQb3B1cEl0ZW0mIGl0ZW0pOworICAgIGV4cGxpY2l0IEV3a1BvcHVwTWVudUl0
ZW0oRXdrX1BvcHVwX01lbnVfSXRlbV9UeXBlIHR5cGUpOwogCiAgICAgRXdrX1BvcHVwX01lbnVf
SXRlbV9UeXBlIG1fdHlwZTsKICAgICBFd2tfVGV4dF9EaXJlY3Rpb24gbV90ZXh0RGlyZWN0aW9u
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVw
X21lbnVfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Bv
cHVwX21lbnVfcHJpdmF0ZS5oCmluZGV4IDUyNGY1OWQuLmVjMzg0ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X3ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9wcml2
YXRlLmgKQEAgLTI5LDI0ICsyOSwxOSBAQAogCiAjaW5jbHVkZSA8RWluYS5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLWNsYXNzIFdlYlBvcHVwSXRlbTsKLWNsYXNzIFdlYlBvcHVwTWVudVByb3h5RWZs
OwotfQotCi1jbGFzcyBFd2tWaWV3OworY2xhc3MgRXdrUG9wdXBNZW51SXRlbTsKIAogY2xhc3Mg
RXdrUG9wdXBNZW51IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxFd2tQb3B1cE1l
bnU+IGNyZWF0ZShFd2tWaWV3KiB2aWV3LCBXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5RWZsKiBw
b3B1cE1lbnVQcm94eSwgY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViUG9wdXBJdGVtPiYgaXRlbXMs
IHVuc2lnbmVkIHNlbGVjdGVkSW5kZXgpCisgICAgc3RhdGljIFBhc3NPd25QdHI8RXdrUG9wdXBN
ZW51PiBjcmVhdGUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFd2tQb3B1
cE1lbnUodmlldywgcG9wdXBNZW51UHJveHksIGl0ZW1zLCBzZWxlY3RlZEluZGV4KSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrUG9wdXBNZW51KCkpOwogICAgIH0KICAgICB+RXdr
UG9wdXBNZW51KCk7CiAKLSAgICB2b2lkIGNsb3NlKCk7CisgICAgdm9pZCBhcHBlbmQoUGFzc093
blB0cjxFd2tQb3B1cE1lbnVJdGVtPiBpdGVtKTsKKyAgICB2b2lkIGNsZWFyKCk7CiAKICAgICBj
b25zdCBFaW5hX0xpc3QqIGl0ZW1zKCkgY29uc3Q7CiAKQEAgLTU0LDEwICs0OSw4IEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCBzZWxlY3RlZEluZGV4KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAg
RXdrUG9wdXBNZW51KEV3a1ZpZXcqIHZpZXdJbXBsLCBXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5
RWZsKiwgY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViUG9wdXBJdGVtPiYgaXRlbXMsIHVuc2lnbmVk
IHNlbGVjdGVkSW5kZXgpOworICAgIEV3a1BvcHVwTWVudSgpOwogCi0gICAgRXdrVmlldyogbV92
aWV3OwotICAgIFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlFZmwqIG1fcG9wdXBNZW51UHJveHk7
CiAgICAgRWluYV9MaXN0KiBtX3BvcHVwTWVudUl0ZW1zOwogICAgIHVuc2lnbmVkIG1fc2VsZWN0
ZWRJbmRleDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcu
aAppbmRleCAxMWJlYjk0Li41ODFmZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmgKQEAgLTExNCw2ICsxMTQsOCBAQCBzdHJ1Y3QgRXdrX1ZpZXdfU21h
cnRfQ2xhc3MgewogICAgIEVpbmFfQm9vbCAoKmNvbnRleHRfbWVudV9zaG93KShFd2tfVmlld19T
bWFydF9EYXRhICpzZCwgRXZhc19Db29yZCB4LCBFdmFzX0Nvb3JkIHksIEV3a19Db250ZXh0X01l
bnUgKm1lbnUpOwogICAgIEVpbmFfQm9vbCAoKmNvbnRleHRfbWVudV9oaWRlKShFd2tfVmlld19T
bWFydF9EYXRhICpzZCk7CiAKKyAgICAvLyBUaGUgRXdrX1BvcHVwX01lbnUgd2lsbCBiZSBpbnZh
bGlkYXRlZCBhZnRlciB0aGlzIGZ1bmN0aW9uIHJldHVybnMuIFRoZSBjYWxsZWUgaXMgZXhwZWN0
ZWQgdG8KKyAgICAvLyBydW4gdGhlIGFwcGxpY2F0aW9uIG1haW4gbG9vcCB1bnRpbCBhIGRlY2lz
aW9uIGlzIG1hZGUuCiAgICAgRWluYV9Cb29sICgqcG9wdXBfbWVudV9zaG93KShFd2tfVmlld19T
bWFydF9EYXRhICpzZCwgRWluYV9SZWN0YW5nbGUgcmVjdCwgRXdrX1RleHRfRGlyZWN0aW9uIHRl
eHRfZGlyZWN0aW9uLCBkb3VibGUgcGFnZV9zY2FsZV9mYWN0b3IsIEV3a19Qb3B1cF9NZW51ICpt
ZW51KTsKICAgICBFaW5hX0Jvb2wgKCpwb3B1cF9tZW51X2hpZGUpKEV3a19WaWV3X1NtYXJ0X0Rh
dGEgKnNkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
dGVzdHMvdGVzdF9ld2syX3BvcHVwX21lbnUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvdGVzdHMvdGVzdF9ld2syX3BvcHVwX21lbnUuY3BwCmluZGV4IGEyNTgxMzIuLmYz
NGIxYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL3Rlc3Rz
L3Rlc3RfZXdrMl9wb3B1cF9tZW51LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC90ZXN0cy90ZXN0X2V3azJfcG9wdXBfbWVudS5jcHAKQEAgLTM0LDEyICszNCw2IEBA
IHN0YXRpYyBpbmxpbmUgdm9pZCBjaGVja0Jhc2ljUG9wdXBNZW51SXRlbShFd2tfUG9wdXBfTWVu
dV9JdGVtKiBpdGVtLCBjb25zdCBjaGFyCiAgICAgRVhQRUNUX0VRKGVuYWJsZWQsIGV3a19wb3B1
cF9tZW51X2l0ZW1fZW5hYmxlZF9nZXQoaXRlbSkpOwogfQogCi1zdGF0aWMgRWluYV9Cb29sIHNl
bGVjdEl0ZW1BZnRlckRlbGF5ZWQodm9pZCogZGF0YSkKLXsKLSAgICBFWFBFQ1RfVFJVRShld2tf
cG9wdXBfbWVudV9zZWxlY3RlZF9pbmRleF9zZXQoc3RhdGljX2Nhc3Q8RXdrX1BvcHVwX01lbnUq
PihkYXRhKSwgMCkpOwotICAgIHJldHVybiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7Ci19Ci0KIHN0
YXRpYyBFaW5hX0Jvb2wgc2hvd1BvcHVwTWVudShFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERh
dGEsIEVpbmFfUmVjdGFuZ2xlLCBFd2tfVGV4dF9EaXJlY3Rpb24sIGRvdWJsZSwgRXdrX1BvcHVw
X01lbnUqIHBvcHVwTWVudSkKIHsKICAgICBzX3BvcHVwTWVudSA9IHBvcHVwTWVudTsKQEAgLTc0
LDExICs2OCw4IEBAIHN0YXRpYyBFaW5hX0Jvb2wgc2hvd1BvcHVwTWVudShFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEsIEVpbmFfUmVjdGFuZ2xlLCBFCiAgICAgaXRlbSA9IHN0YXRpY19j
YXN0PEV3a19Qb3B1cF9NZW51X0l0ZW0qPihlaW5hX2xpc3RfbnRoKGxpc3QsIDQpKTsKICAgICBj
aGVja0Jhc2ljUG9wdXBNZW51SXRlbShpdGVtLCAiICAgIGZvcnRoIiwgdHJ1ZSk7CiAKLSAgICBp
dGVtID0gc3RhdGljX2Nhc3Q8RXdrX1BvcHVwX01lbnVfSXRlbSo+KGVpbmFfbGlzdF9udGgobGlz
dCwgNSkpOwotICAgIEVYUEVDVF9FUShFV0tfUE9QVVBfTUVOVV9VTktOT1dOLCBld2tfcG9wdXBf
bWVudV9pdGVtX3R5cGVfZ2V0KGl0ZW0pKTsKLSAgICBFWFBFQ1RfU1RSRVEoMCwgZXdrX3BvcHVw
X21lbnVfaXRlbV90ZXh0X2dldChpdGVtKSk7CisgICAgRVhQRUNUX1RSVUUoZXdrX3BvcHVwX21l
bnVfc2VsZWN0ZWRfaW5kZXhfc2V0KHBvcHVwTWVudSwgMCkpOwogCi0gICAgZWNvcmVfdGltZXJf
YWRkKDAsIHNlbGVjdEl0ZW1BZnRlckRlbGF5ZWQsIHBvcHVwTWVudSk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTk4LDUgKzg5LDQgQEAgVEVTVF9GKEVXSzJVbml0VGVzdEJhc2UsIGV3a19w
b3B1cF9tZW51X3NlbGVjdF9pdGVtKQogICAgIEFTU0VSVF9UUlVFKHdhaXRVbnRpbFRpdGxlQ2hh
bmdlZFRvKCJmaXJzdCIpKTsKIAogICAgIEFTU0VSVF9UUlVFKHNfcG9wdXBNZW51KTsKLSAgICBF
WFBFQ1RfVFJVRShld2tfcG9wdXBfbWVudV9jbG9zZShzX3BvcHVwTWVudSkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQb3B1cE1lbnVQcm94eUVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlBvcHVwTWVudVByb3h5RWZsLmNw
cAppbmRleCBhNTk1NTM3Li4wZGViZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZWZsL1dlYlBvcHVwTWVudVByb3h5RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZWZsL1dlYlBvcHVwTWVudVByb3h5RWZsLmNwcApAQCAtMjcsMTAgKzI3LDEwIEBA
CiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHlFZmwuaCIKIAogI2luY2x1ZGUgIkV3a1ZpZXcu
aCIKLSNpbmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBJ
dGVtLmgiCi0jaW5jbHVkZSAiZXdrX3ZpZXcuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CisjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmgiCisjaW5jbHVkZSAi
ZXdrX3BvcHVwX21lbnVfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00MiwxOSArNDIsNjEgQEAgV2ViUG9wdXBNZW51
UHJveHlFZmw6OldlYlBvcHVwTWVudVByb3h5RWZsKEV3a1ZpZXcqIHZpZXcsIFdlYlBvcHVwTWVu
dVByb3h5OjpDbGkKIHsKIH0KIAotdm9pZCBXZWJQb3B1cE1lbnVQcm94eUVmbDo6c2hvd1BvcHVw
TWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24sIGRv
dWJsZSBwYWdlU2NhbGVGYWN0b3IsIGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiBpdGVtcywg
Y29uc3QgUGxhdGZvcm1Qb3B1cE1lbnVEYXRhJiwgaW50MzJfdCBzZWxlY3RlZEluZGV4KQorV2Vi
UG9wdXBNZW51UHJveHlFZmw6On5XZWJQb3B1cE1lbnVQcm94eUVmbCgpCiB7Ci0gICAgbV92aWV3
LT5yZXF1ZXN0UG9wdXBNZW51KHRoaXMsIHJlY3QsIHRleHREaXJlY3Rpb24sIHBhZ2VTY2FsZUZh
Y3RvciwgaXRlbXMsIHNlbGVjdGVkSW5kZXgpOworICAgIGlmIChtX3BvcHVwTWVudSkKKyAgICAg
ICAgaGlkZVBvcHVwTWVudSgpOwogfQogCi12b2lkIFdlYlBvcHVwTWVudVByb3h5RWZsOjpoaWRl
UG9wdXBNZW51KCkKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oRVdLX1BPUFVQX01FTlVf
U0VQQVJBVE9SLCBXZWJQb3B1cEl0ZW06OlNlcGFyYXRvcik7CitDT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKEVXS19QT1BVUF9NRU5VX0lURU0sIFdlYlBvcHVwSXRlbTo6SXRlbSk7CisKK3N0
YXRpYyBQYXNzT3duUHRyPEV3a1BvcHVwTWVudUl0ZW0+IGNyZWF0ZU1lbnVJdGVtKGNvbnN0IFdl
YlBvcHVwSXRlbSYgaXRlbSkKIHsKLSAgICBtX3ZpZXctPmNsb3NlUG9wdXBNZW51KCk7CisgICAg
T3duUHRyPEV3a1BvcHVwTWVudUl0ZW0+IGV3a0l0ZW0gPSBFd2tQb3B1cE1lbnVJdGVtOjpjcmVh
dGUoc3RhdGljX2Nhc3Q8RXdrX1BvcHVwX01lbnVfSXRlbV9UeXBlPihpdGVtLm1fdHlwZSkpOwor
ICAgIGlmIChpdGVtLm1fdHlwZSAhPSBXZWJQb3B1cEl0ZW06OlNlcGFyYXRvcikgeworICAgICAg
ICBld2tJdGVtLT5zZXRUZXh0KGl0ZW0ubV90ZXh0LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBl
d2tJdGVtLT5zZXRUZXh0RGlyZWN0aW9uKHN0YXRpY19jYXN0PEV3a19UZXh0X0RpcmVjdGlvbj4o
aXRlbS5tX3RleHREaXJlY3Rpb24pKTsKKyAgICAgICAgZXdrSXRlbS0+c2V0SGFzVGV4dERpcmVj
dGlvbk92ZXJyaWRlKGl0ZW0ubV9oYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpOworICAgICAgICBl
d2tJdGVtLT5zZXRFbmFibGVkKGl0ZW0ubV9pc0VuYWJsZWQpOworICAgICAgICBld2tJdGVtLT5z
ZXRJc0xhYmVsKGl0ZW0ubV9pc0xhYmVsKTsKKyAgICAgICAgZXdrSXRlbS0+c2V0U2VsZWN0ZWQo
aXRlbS5tX2lzU2VsZWN0ZWQpOworICAgICAgICBld2tJdGVtLT5zZXRUb29sdGlwVGV4dChpdGVt
Lm1fdG9vbFRpcC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgZXdrSXRlbS0+c2V0QWNjZXNzaWJp
bGl0eVRleHQoaXRlbS5tX2FjY2Vzc2liaWxpdHlUZXh0LnV0ZjgoKS5kYXRhKCkpOworICAgIH0K
KworICAgIHJldHVybiBld2tJdGVtLnJlbGVhc2UoKTsKK30KKwordm9pZCBXZWJQb3B1cE1lbnVQ
cm94eUVmbDo6cG9wdWxhdGUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mIGl0ZW1zLCBpbnQg
c2VsZWN0ZWRJbmRleCkKK3sKKyAgICBpZiAobV9wb3B1cE1lbnUpCisgICAgICAgIG1fcG9wdXBN
ZW51LmNsZWFyKCk7CisgICAgZWxzZQorICAgICAgICBtX3BvcHVwTWVudSA9IEV3a1BvcHVwTWVu
dTo6Y3JlYXRlKCk7CisKKyAgICBjb25zdCBzaXplX3Qgc2l6ZSA9IGl0ZW1zLnNpemUoKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgbV9wb3B1cE1lbnUt
PmFwcGVuZChjcmVhdGVNZW51SXRlbShpdGVtc1tpXSkpOworCisgICAgbV9wb3B1cE1lbnUtPnNl
dFNlbGVjdGVkSW5kZXgoc2VsZWN0ZWRJbmRleCk7CiB9CiAKLXZvaWQgV2ViUG9wdXBNZW51UHJv
eHlFZmw6OnZhbHVlQ2hhbmdlZChpbnQgbmV3U2VsZWN0ZWRJbmRleCkKK3ZvaWQgV2ViUG9wdXBN
ZW51UHJveHlFZmw6OnNob3dQb3B1cE1lbnUoY29uc3QgSW50UmVjdCYgcmVjdCwgVGV4dERpcmVj
dGlvbiB0ZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9yLCBjb25zdCBWZWN0b3I8
V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGNvbnN0IFBsYXRmb3JtUG9wdXBNZW51RGF0YSYsIGludDMy
X3Qgc2VsZWN0ZWRJbmRleCkKIHsKLSAgICBtX2NsaWVudC0+dmFsdWVDaGFuZ2VkRm9yUG9wdXBN
ZW51KHRoaXMsIG5ld1NlbGVjdGVkSW5kZXgpOworICAgIHBvcHVsYXRlKGl0ZW1zLCBzZWxlY3Rl
ZEluZGV4KTsKKworICAgIC8vIFdlYlBhZ2VQcm94eSBleHBlY3RzIHRoZSBtZW51IHRvIHJ1biBp
biBhIG5lc3RlZCBydW4gbG9vcCwgc2luY2UgaXQgaW52YWxpZGF0ZXMgdGhlCisgICAgLy8gbWVu
dSByaWdodCBhZnRlciBjYWxsaW5nIFdlYlBvcHVwTWVudVByb3h5OjpzaG93UG9wdXBNZW51KCku
CisgICAgbV92aWV3LT5yZXF1ZXN0UG9wdXBNZW51KG1fcG9wdXBNZW51LmdldCgpLCByZWN0LCB0
ZXh0RGlyZWN0aW9uLCBwYWdlU2NhbGVGYWN0b3IpOworCisgICAgLy8gTm90aWZ5IHRoZSBwYWdl
IG9mIHdoaWNoIG1lbnUgaXRlbSB3YXMgc2VsZWN0ZWQuCisgICAgbV9jbGllbnQtPnZhbHVlQ2hh
bmdlZEZvclBvcHVwTWVudSh0aGlzLCBtX3BvcHVwTWVudS0+c2VsZWN0ZWRJbmRleCgpKTsKK30K
Kwordm9pZCBXZWJQb3B1cE1lbnVQcm94eUVmbDo6aGlkZVBvcHVwTWVudSgpCit7CisgICAgbV92
aWV3LT5jbG9zZVBvcHVwTWVudSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUG9wdXBNZW51UHJveHlFZmwu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViUG9wdXBNZW51UHJveHlFZmwuaApp
bmRleCAwMTkzM2MzLi45NDY1MzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1dlYlBvcHVwTWVudVByb3h5RWZsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9XZWJQb3B1cE1lbnVQcm94eUVmbC5oCkBAIC0yNywxMiArMjcsMTQgQEAKICNkZWZp
bmUgV2ViUG9wdXBNZW51UHJveHlFZmxfaAogCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHku
aCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IEludFJlY3Q7CiB9CiAKIGNsYXNzIEV3a1ZpZXc7CitjbGFzcyBFd2tQb3B1cE1lbnU7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCkBAIC00NCwxNiArNDYsMTggQEAgcHVibGljOgogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJQb3B1cE1lbnVQcm94eUVmbCh2aWV3SW1wbCwg
Y2xpZW50KSk7CiAgICAgfQorICAgIH5XZWJQb3B1cE1lbnVQcm94eUVmbCgpOwogCiAgICAgdm9p
ZCBzaG93UG9wdXBNZW51KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXZWJDb3JlOjpUZXh0RGly
ZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9yLCBjb25zdCBWZWN0b3I8V2ViUG9wdXBJdGVt
PiYsIGNvbnN0IFBsYXRmb3JtUG9wdXBNZW51RGF0YSYsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCk7
CiAgICAgdm9pZCBoaWRlUG9wdXBNZW51KCk7CiAKLSAgICB2b2lkIHZhbHVlQ2hhbmdlZChpbnQg
bmV3U2VsZWN0ZWRJbmRleCk7Ci0KIHByaXZhdGU6CiAgICAgV2ViUG9wdXBNZW51UHJveHlFZmwo
RXdrVmlldyosIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQqKTsKIAorICAgIHZvaWQgcG9wdWxh
dGUoY29uc3QgVmVjdG9yPFdlYlBvcHVwSXRlbT4mLCBpbnQgc2VsZWN0ZWRJbmRleCk7CisKICAg
ICBFd2tWaWV3KiBtX3ZpZXc7CisgICAgT3duUHRyPEV3a1BvcHVwTWVudT4gbV9wb3B1cE1lbnU7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189016</attachid>
            <date>2013-02-19 01:04:31 -0800</date>
            <delta_ts>2013-02-20 03:10:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108798_ewkpopupmenuitem_capi_latest.patch</filename>
            <type>text/plain</type>
            <size>7496</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2ZDFiYmYxLi45OTY3MjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTMtMDItMTkgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gUG9ydCBFd2tQb3B1cE1lbnVJdGVtIHRvIHRoZSBD
IEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4
Nzk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFr
ZSB1c2Ugb2YgdGhlIG5ldyBXS1BvcHVwSXRlbSBDIEFQSSBpbnNpZGUgRXdrUG9wdXBNZW51SXRl
bSB0byByZW1vdmUKKyAgICAgICAgZGVwZW5kZW5jeSBvbiBpbnRlcm5hbCBXZWJQb3B1cEl0ZW0g
dHlwZS4gRWluYSBzaGFyZWQgc3RyaW5nIG1lbWJlcnMKKyAgICAgICAgYXJlIG5vdyBsYXppbHkg
aW5pdGlhbGl6ZWQgdG8gbWFrZSB0aGUgb2JqZWN0IGNoZWFwZXIgdG8gY29uc3RydWN0LgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnUuY3BwOgorICAgICAgICAo
RXdrUG9wdXBNZW51OjpFd2tQb3B1cE1lbnUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a19wb3B1cF9tZW51X2l0ZW0uY3BwOgorICAgICAgICAoRXdrUG9wdXBNZW51SXRlbTo6RXdr
UG9wdXBNZW51SXRlbSk6CisgICAgICAgIChFd2tQb3B1cE1lbnVJdGVtOjp0eXBlKToKKyAgICAg
ICAgKEV3a1BvcHVwTWVudUl0ZW06OnRleHREaXJlY3Rpb24pOgorICAgICAgICAoRXdrUG9wdXBN
ZW51SXRlbTo6dGV4dCk6CisgICAgICAgIChFd2tQb3B1cE1lbnVJdGVtOjp0b29sdGlwVGV4dCk6
CisgICAgICAgIChFd2tQb3B1cE1lbnVJdGVtOjphY2Nlc3NpYmlsaXR5VGV4dCk6CisgICAgICAg
IChFd2tQb3B1cE1lbnVJdGVtOjpoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUpOgorICAgICAgICAo
RXdrUG9wdXBNZW51SXRlbTo6aXNFbmFibGVkKToKKyAgICAgICAgKEV3a1BvcHVwTWVudUl0ZW06
OmlzTGFiZWwpOgorICAgICAgICAoRXdrUG9wdXBNZW51SXRlbTo6aXNTZWxlY3RlZCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmg6Cisg
ICAgICAgIChFd2tQb3B1cE1lbnVJdGVtOjpjcmVhdGUpOgorICAgICAgICAoRXdrUG9wdXBNZW51
SXRlbSk6CisKIDIwMTMtMDItMTggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIFJlbW92ZSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3N1YnJl
c291cmNlcyBmcm9tIFdlYktpdDIgR1RLKyBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51LmNwcAppbmRleCA2MjllZjRmLi40NDBhNTlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBf
bWVudS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVw
X21lbnUuY3BwCkBAIC0zMSwxMiArMzEsOSBAQAogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2lu
Y2x1ZGUgIldLQXJyYXkuaCIKICNpbmNsdWRlICJXS1BvcHVwTWVudUxpc3RlbmVyLmgiCi0jaW5j
bHVkZSAiV2ViUG9wdXBJdGVtRWZsLmgiCiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfaXRlbV9w
cml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfcHJpdmF0ZS5oIgogCi11c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwotCiBFd2tQb3B1cE1lbnU6OkV3a1BvcHVwTWVudShFd2tWaWV3KiB2
aWV3LCBXS1BvcHVwTWVudUxpc3RlbmVyUmVmIHBvcHVwTWVudUxpc3RlbmVyLCBXS0FycmF5UmVm
IGl0ZW1zLCB1bnNpZ25lZCBzZWxlY3RlZEluZGV4KQogICAgIDogbV92aWV3KHZpZXcpCiAgICAg
LCBtX3BvcHVwTWVudUxpc3RlbmVyKHBvcHVwTWVudUxpc3RlbmVyKQpAQCAtNDYsOCArNDMsNyBA
QCBFd2tQb3B1cE1lbnU6OkV3a1BvcHVwTWVudShFd2tWaWV3KiB2aWV3LCBXS1BvcHVwTWVudUxp
c3RlbmVyUmVmIHBvcHVwTWVudUxpc3RlbgogICAgIHNpemVfdCBzaXplID0gV0tBcnJheUdldFNp
emUoaXRlbXMpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAg
ICAgIFdLUG9wdXBJdGVtUmVmIHdrSXRlbSA9IHN0YXRpY19jYXN0PFdLUG9wdXBJdGVtUmVmPihX
S0FycmF5R2V0SXRlbUF0SW5kZXgoaXRlbXMsIGkpKTsKLSAgICAgICAgLy8gRklYTUU6IFJlbW92
ZSBFd2tQb3B1cE1lbnVJdGVtIGRlcGVuZGVuY3kgb24gV2ViUG9wdXBJdGVtLgotICAgICAgICBt
X3BvcHVwTWVudUl0ZW1zID0gZWluYV9saXN0X2FwcGVuZChtX3BvcHVwTWVudUl0ZW1zLCBFd2tQ
b3B1cE1lbnVJdGVtOjpjcmVhdGUodG9JbXBsKHdrSXRlbSktPmRhdGEoKSkubGVha1B0cigpKTsK
KyAgICAgICAgbV9wb3B1cE1lbnVJdGVtcyA9IGVpbmFfbGlzdF9hcHBlbmQobV9wb3B1cE1lbnVJ
dGVtcywgRXdrUG9wdXBNZW51SXRlbTo6Y3JlYXRlKHdrSXRlbSkubGVha1B0cigpKTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19w
b3B1cF9tZW51X2l0ZW0uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3BvcHVwX21lbnVfaXRlbS5jcHAKaW5kZXggMGE1MWQ5NS4uOWM0MjgzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRl
bS5jcHAKQEAgLTI2LDcyICsyNiw3MSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
ImV3a19wb3B1cF9tZW51X2l0ZW0uaCIKIAorI2luY2x1ZGUgIldLUG9wdXBJdGVtLmgiCiAjaW5j
bHVkZSAiZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZh
dGUuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7Ci0KLUV3a1BvcHVwTWVudUl0ZW06OkV3a1BvcHVwTWVudUl0ZW0oY29uc3QgV2ViS2l0
OjpXZWJQb3B1cEl0ZW0mIGl0ZW0pCi0gICAgOiBtX3R5cGUoc3RhdGljX2Nhc3Q8RXdrX1BvcHVw
X01lbnVfSXRlbV9UeXBlPihpdGVtLm1fdHlwZSkpCi0gICAgLCBtX3RleHREaXJlY3Rpb24oc3Rh
dGljX2Nhc3Q8RXdrX1RleHRfRGlyZWN0aW9uPihpdGVtLm1fdGV4dERpcmVjdGlvbikpCi0gICAg
LCBtX2hhc1RleHREaXJlY3Rpb25PdmVycmlkZShpdGVtLm1faGFzVGV4dERpcmVjdGlvbk92ZXJy
aWRlKQotICAgICwgbV9pc0VuYWJsZWQoaXRlbS5tX2lzRW5hYmxlZCkKLSAgICAsIG1faXNMYWJl
bChpdGVtLm1faXNMYWJlbCkKLSAgICAsIG1faXNTZWxlY3RlZChpdGVtLm1faXNTZWxlY3RlZCkK
LSAgICAsIG1fdGV4dChpdGVtLm1fdGV4dC51dGY4KCkuZGF0YSgpKQotICAgICwgbV90b29sdGlw
VGV4dChpdGVtLm1fdG9vbFRpcC51dGY4KCkuZGF0YSgpKQotICAgICwgbV9hY2Nlc3NpYmlsaXR5
VGV4dChpdGVtLm1fYWNjZXNzaWJpbGl0eVRleHQudXRmOCgpLmRhdGEoKSkKKworRXdrUG9wdXBN
ZW51SXRlbTo6RXdrUG9wdXBNZW51SXRlbShXS1BvcHVwSXRlbVJlZiBpdGVtKQorICAgIDogbV93
a0l0ZW0oaXRlbSkKIHsgfQogCitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKEVXS19QT1BV
UF9NRU5VX1NFUEFSQVRPUiwga1dLUG9wdXBJdGVtVHlwZVNlcGFyYXRvcik7CitDT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKEVXS19QT1BVUF9NRU5VX0lURU0sIGtXS1BvcHVwSXRlbVR5cGVJ
dGVtKTsKKwogRXdrX1BvcHVwX01lbnVfSXRlbV9UeXBlIEV3a1BvcHVwTWVudUl0ZW06OnR5cGUo
KSBjb25zdAogewotICAgIHJldHVybiBtX3R5cGU7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEV3
a19Qb3B1cF9NZW51X0l0ZW1fVHlwZT4oV0tQb3B1cEl0ZW1HZXRUeXBlKG1fd2tJdGVtLmdldCgp
KSk7CiB9CiAKIEV3a19UZXh0X0RpcmVjdGlvbiBFd2tQb3B1cE1lbnVJdGVtOjp0ZXh0RGlyZWN0
aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV90ZXh0RGlyZWN0aW9uOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxFd2tfVGV4dF9EaXJlY3Rpb24+KFdLUG9wdXBJdGVtR2V0VGV4dERpcmVjdGlv
bihtX3drSXRlbS5nZXQoKSkpOwogfQogCiBjb25zdCBjaGFyKiBFd2tQb3B1cE1lbnVJdGVtOjp0
ZXh0KCkgY29uc3QKIHsKKyAgICBpZiAoIW1fdGV4dCkKKyAgICAgICAgbV90ZXh0ID0gV0tFaW5h
U2hhcmVkU3RyaW5nKEFkb3B0V0ssIFdLUG9wdXBJdGVtQ29weVRleHQobV93a0l0ZW0uZ2V0KCkp
KTsKKwogICAgIHJldHVybiBtX3RleHQ7CiB9CiAKIGNvbnN0IGNoYXIqIEV3a1BvcHVwTWVudUl0
ZW06OnRvb2x0aXBUZXh0KCkgY29uc3QKIHsKKyAgICBpZiAoIW1fdG9vbHRpcFRleHQpCisgICAg
ICAgIG1fdG9vbHRpcFRleHQgPSBXS0VpbmFTaGFyZWRTdHJpbmcoQWRvcHRXSywgV0tQb3B1cEl0
ZW1Db3B5VG9vbFRpcFRleHQobV93a0l0ZW0uZ2V0KCkpKTsKKwogICAgIHJldHVybiBtX3Rvb2x0
aXBUZXh0OwogfQogCiBjb25zdCBjaGFyKiBFd2tQb3B1cE1lbnVJdGVtOjphY2Nlc3NpYmlsaXR5
VGV4dCgpIGNvbnN0CiB7CisgICAgaWYgKCFtX2FjY2Vzc2liaWxpdHlUZXh0KQorICAgICAgICBt
X2FjY2Vzc2liaWxpdHlUZXh0ID0gV0tFaW5hU2hhcmVkU3RyaW5nKEFkb3B0V0ssIFdLUG9wdXBJ
dGVtQ29weUFjY2Vzc2liaWxpdHlUZXh0KG1fd2tJdGVtLmdldCgpKSk7CisKICAgICByZXR1cm4g
bV9hY2Nlc3NpYmlsaXR5VGV4dDsKIH0KIAogYm9vbCBFd2tQb3B1cE1lbnVJdGVtOjpoYXNUZXh0
RGlyZWN0aW9uT3ZlcnJpZGUoKSBjb25zdAogewotICAgIHJldHVybiBtX2hhc1RleHREaXJlY3Rp
b25PdmVycmlkZTsKKyAgICByZXR1cm4gV0tQb3B1cEl0ZW1IYXNUZXh0RGlyZWN0aW9uT3ZlcnJp
ZGUobV93a0l0ZW0uZ2V0KCkpOwogfQogCiBib29sIEV3a1BvcHVwTWVudUl0ZW06OmlzRW5hYmxl
ZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faXNFbmFibGVkOworICAgIHJldHVybiBXS1BvcHVw
SXRlbUlzRW5hYmxlZChtX3drSXRlbS5nZXQoKSk7CiB9CiAKIGJvb2wgRXdrUG9wdXBNZW51SXRl
bTo6aXNMYWJlbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faXNMYWJlbDsKKyAgICByZXR1cm4g
V0tQb3B1cEl0ZW1Jc0xhYmVsKG1fd2tJdGVtLmdldCgpKTsKIH0KIAogYm9vbCBFd2tQb3B1cE1l
bnVJdGVtOjppc1NlbGVjdGVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9pc1NlbGVjdGVkOwor
ICAgIHJldHVybiBXS1BvcHVwSXRlbUlzU2VsZWN0ZWQobV93a0l0ZW0uZ2V0KCkpOwogfQogCi1D
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKEVXS19QT1BVUF9NRU5VX1NFUEFSQVRPUiwgV2Vi
UG9wdXBJdGVtOjpTZXBhcmF0b3IpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShFV0tf
UE9QVVBfTUVOVV9JVEVNLCBXZWJQb3B1cEl0ZW06Okl0ZW0pOwotCiBFd2tfUG9wdXBfTWVudV9J
dGVtX1R5cGUgZXdrX3BvcHVwX21lbnVfaXRlbV90eXBlX2dldChjb25zdCBFd2tfUG9wdXBfTWVu
dV9JdGVtKiBpdGVtKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChpdGVt
LCBFV0tfUE9QVVBfTUVOVV9VTktOT1dOKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmgKaW5k
ZXggNjgwYTM5MS4uZDhkMmI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmgKQEAgLTI3
LDggKzI3LDkgQEAKICNkZWZpbmUgZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlX2gKIAogI2lu
Y2x1ZGUgIldLRWluYVNoYXJlZFN0cmluZy5oIgotI2luY2x1ZGUgIldlYlBvcHVwSXRlbS5oIgor
I2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCiAjaW5jbHVkZSAiZXdrX3BvcHVwX21lbnVfaXRlbS5o
IgorI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KIAogLyoqCkBAIC0zNyw3ICszOCw3IEBACiAgKi8KIGNsYXNzIEV3a1BvcHVwTWVudUl0ZW0g
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3a1BvcHVwTWVudUl0ZW0+IGNyZWF0
ZShjb25zdCBXZWJLaXQ6OldlYlBvcHVwSXRlbSYgaXRlbSkKKyAgICBzdGF0aWMgUGFzc093blB0
cjxFd2tQb3B1cE1lbnVJdGVtPiBjcmVhdGUoV0tQb3B1cEl0ZW1SZWYgaXRlbSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrUG9wdXBNZW51SXRlbShpdGVtKSk7CiAgICAg
fQpAQCAtNTUsMTkgKzU2LDE0IEBAIHB1YmxpYzoKICAgICBjb25zdCBjaGFyKiBhY2Nlc3NpYmls
aXR5VGV4dCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IEV3a1BvcHVwTWVudUl0
ZW0oY29uc3QgV2ViS2l0OjpXZWJQb3B1cEl0ZW0mIGl0ZW0pOworICAgIGV4cGxpY2l0IEV3a1Bv
cHVwTWVudUl0ZW0oV0tQb3B1cEl0ZW1SZWYgaXRlbSk7CiAKLSAgICBFd2tfUG9wdXBfTWVudV9J
dGVtX1R5cGUgbV90eXBlOwotICAgIEV3a19UZXh0X0RpcmVjdGlvbiBtX3RleHREaXJlY3Rpb247
CisgICAgV0tSZXRhaW5QdHI8V0tQb3B1cEl0ZW1SZWY+IG1fd2tJdGVtOwogCi0gICAgYm9vbCBt
X2hhc1RleHREaXJlY3Rpb25PdmVycmlkZTsKLSAgICBib29sIG1faXNFbmFibGVkOwotICAgIGJv
b2wgbV9pc0xhYmVsOwotICAgIGJvb2wgbV9pc1NlbGVjdGVkOwotCi0gICAgV0tFaW5hU2hhcmVk
U3RyaW5nIG1fdGV4dDsKLSAgICBXS0VpbmFTaGFyZWRTdHJpbmcgbV90b29sdGlwVGV4dDsKLSAg
ICBXS0VpbmFTaGFyZWRTdHJpbmcgbV9hY2Nlc3NpYmlsaXR5VGV4dDsKKyAgICAvLyBMYXppbHkg
aW5pdGlhbGl6ZWQuCisgICAgbXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJpbmcgbV90ZXh0OworICAg
IG11dGFibGUgV0tFaW5hU2hhcmVkU3RyaW5nIG1fdG9vbHRpcFRleHQ7CisgICAgbXV0YWJsZSBX
S0VpbmFTaGFyZWRTdHJpbmcgbV9hY2Nlc3NpYmlsaXR5VGV4dDsKIH07CiAKICNlbmRpZiAvLyBl
d2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGVfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>