<?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>231766</bug_id>
          
          <creation_ts>2021-10-14 13:16:33 -0700</creation_ts>
          <short_desc>Calls to AXCoreObject::widget() have to be dispatch to the main thread in isolated tree mode.</short_desc>
          <delta_ts>2021-10-15 12:59:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1804458</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-14 13:16:33 -0700</bug_when>
    <thetext>Calls to AXCoreObject::widget() have to be dispatch to the main thread in isolated tree mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804460</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-14 13:16:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/84271039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804472</commentid>
    <comment_count>2</comment_count>
      <attachid>441269</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-14 13:34:06 -0700</bug_when>
    <thetext>Created attachment 441269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804488</commentid>
    <comment_count>3</comment_count>
      <attachid>441269</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-14 14:00:02 -0700</bug_when>
    <thetext>Comment on attachment 441269
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:804
&gt; +

undo

&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1680
&gt; +            return @[child];

should we return nil if we don&apos;t have a child here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804494</commentid>
    <comment_count>4</comment_count>
      <attachid>441269</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-14 14:05:48 -0700</bug_when>
    <thetext>Comment on attachment 441269
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        safe and it is created on the main thread. To avoid this problem, We

We &gt; we

&gt; Source/WebCore/ChangeLog:14
&gt; +        have to dispatch those calls to the main thread. Since widget() is call very often now, for every request of the children of a leaf node, added

is call &gt; is called</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804503</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-14 14:19:58 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #3)
&gt; Comment on attachment 441269 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441269&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:804
&gt; &gt; +
&gt; 
&gt; undo

Done.
&gt; 
&gt; &gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1680
&gt; &gt; +            return @[child];
&gt; 
&gt; should we return nil if we don&apos;t have a child here?

I don&apos;t believe so because other kinds of Widgets liked ScrollViews and Scrollbars may not have an accessibilityObject but can still return not nil in 

    ALLOW_DEPRECATED_DECLARATIONS_BEGIN
    return [backingObject-&gt;platformWidget() accessibilityAttributeValue:NSAccessibilityChildrenAttribute];
    ALLOW_DEPRECATED_DECLARATIONS_END

I think accessibilityObject is only for plug-ins, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804505</commentid>
    <comment_count>6</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-14 14:22:04 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #4)
&gt; Comment on attachment 441269 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441269&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; +        safe and it is created on the main thread. To avoid this problem, We
&gt; 
&gt; We &gt; we
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:14
&gt; &gt; +        have to dispatch those calls to the main thread. Since widget() is call very often now, for every request of the children of a leaf node, added
&gt; 
&gt; is call &gt; is called

Fixed both, cannot get my grammar straight today :-).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804508</commentid>
    <comment_count>7</comment_count>
      <attachid>441269</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2021-10-14 14:24:04 -0700</bug_when>
    <thetext>Comment on attachment 441269
Patch

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

&gt;&gt;&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1680
&gt;&gt;&gt; +            return @[child];
&gt;&gt; 
&gt;&gt; should we return nil if we don&apos;t have a child here?
&gt; 
&gt; I don&apos;t believe so because other kinds of Widgets liked ScrollViews and Scrollbars may not have an accessibilityObject but can still return not nil in 
&gt; 
&gt;     ALLOW_DEPRECATED_DECLARATIONS_BEGIN
&gt;     return [backingObject-&gt;platformWidget() accessibilityAttributeValue:NSAccessibilityChildrenAttribute];
&gt;     ALLOW_DEPRECATED_DECLARATIONS_END
&gt; 
&gt; I think accessibilityObject is only for plug-ins, right?

I was thinking  if isWidget() returns true, but we don&apos;t get a widget, does that mean a failure case that we should return from</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804510</commentid>
    <comment_count>8</comment_count>
      <attachid>441282</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-14 14:27:04 -0700</bug_when>
    <thetext>Created attachment 441282
Patch

Addresses Chris&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804522</commentid>
    <comment_count>9</comment_count>
      <attachid>441288</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-14 14:41:51 -0700</bug_when>
    <thetext>Created attachment 441288
Patch

Modified renderWidgetChildren</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804525</commentid>
    <comment_count>10</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-14 14:46:35 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #7)
&gt; Comment on attachment 441269 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441269&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:1680
&gt; &gt;&gt;&gt; +            return @[child];
&gt; &gt;&gt; 
&gt; &gt;&gt; should we return nil if we don&apos;t have a child here?
&gt; &gt; 
&gt; &gt; I don&apos;t believe so because other kinds of Widgets liked ScrollViews and Scrollbars may not have an accessibilityObject but can still return not nil in 
&gt; &gt; 
&gt; &gt;     ALLOW_DEPRECATED_DECLARATIONS_BEGIN
&gt; &gt;     return [backingObject-&gt;platformWidget() accessibilityAttributeValue:NSAccessibilityChildrenAttribute];
&gt; &gt;     ALLOW_DEPRECATED_DECLARATIONS_END
&gt; &gt; 
&gt; &gt; I think accessibilityObject is only for plug-ins, right?
&gt; 
&gt; I was thinking  if isWidget() returns true, but we don&apos;t get a widget, does
&gt; that mean a failure case that we should return from

Re-wrote it slightly different that it may be clearer. renderWidgetChildren returns nil for everything that is not a widget. If it is a widget, then we try first the Widget&apos;s accessibilityObject, which should be not nil for plug-ins. If that is nil, then we try the platformWidget&apos;s AXChildren attribute, which may be not nil for ScrollViews and Scrollbars.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804771</commentid>
    <comment_count>11</comment_count>
      <attachid>441366</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-10-15 05:27:49 -0700</bug_when>
    <thetext>Created attachment 441366
Patch

Removing leftover }.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804970</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-15 12:59:39 -0700</bug_when>
    <thetext>Committed r284266 (243074@main): &lt;https://commits.webkit.org/243074@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441366.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441269</attachid>
            <date>2021-10-14 13:34:06 -0700</date>
            <delta_ts>2021-10-14 14:27:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231766-20211014163405.patch</filename>
            <type>text/plain</type>
            <size>13952</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODgzYWY4OWQ4ZWFlMDIz
Y2ViZmNiYTQwNmU4OTFlZDQ5YmY3ZWY5MC4uZWY1Y2M3NmY2YjllYjZkMWNlMWE0OGZiNDVjZmIy
NDgyMjM4YTJiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTEwLTE0ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBDYWxscyB0byBB
WENvcmVPYmplY3Q6OndpZGdldCgpIGhhdmUgdG8gYmUgZGlzcGF0Y2ggdG8gdGhlIG1haW4gdGhy
ZWFkIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTc2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQyNzEw
Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBmaXhlcyBzZXZlcmFsIGRvemVucyBvZiB0ZXN0cyB0aGF0IHdlcmUgY3Jhc2hpbmcg
b3IgdGltaW5nIG91dCBpbiBpc29sYXRlZCB0cmVlIG1vZGUuCisKKyAgICAgICAgVGhlIFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHdhcyBjYWxsaW5nIHRoZSB3aWRnZXQoKSBtZXRob2Qg
b24gdGhlCisgICAgICAgIEFYIHRocmVhZCwgd2hpY2ggY3JlYXRlcyBwcm9ibGVtcyBiZWNhdXNl
IHRoaXMgb2JqZWN0IGlzIG5vdCB0aHJlYWQKKyAgICAgICAgc2FmZSBhbmQgaXQgaXMgY3JlYXRl
ZCBvbiB0aGUgbWFpbiB0aHJlYWQuIFRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgV2UKKyAgICAgICAg
aGF2ZSB0byBkaXNwYXRjaCB0aG9zZSBjYWxscyB0byB0aGUgbWFpbiB0aHJlYWQuIFNpbmNlIHdp
ZGdldCgpIGlzIGNhbGwgdmVyeSBvZnRlbiBub3csIGZvciBldmVyeSByZXF1ZXN0IG9mIHRoZSBj
aGlsZHJlbiBvZiBhIGxlYWYgbm9kZSwgYWRkZWQKKyAgICAgICAgQVhDb3JlT2JqZWN0Ojppc1dp
ZGdldCgpIHRvIGJlIGFibGUgdG8gY2hlY2sgZm9yIGl0IHdpdGhvdXQgaGF2aW5nIHRvCisgICAg
ICAgIHJldHVybiB0aGUgV2lkZ2V0IG9iamVjdC4gVGhlIElzV2lkZ2V0IHByb3BlcnR5IGlzIGNh
Y2hlZCBpbiB0aGUKKyAgICAgICAgQVhJc29sYXRlZE9iamVjdCwgaGVuY2UgbGltaXRpbmcgdGhl
IG51bWJlciBvZiB0aW1lcyB3ZSBoYXZlIHRvIGhpdCB0aGUKKyAgICAgICAgbWFpbiB0aHJlYWQu
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpoZWFkaW5nTGV2ZWwg
Y29uc3QpOgorICAgICAgICBSZW1vdmVkIGluY2x1ZGUgaGVhZGVyIHRoYXQgaXMgbm90IHVzZWQg
aW4gdGhpcyBjcHAuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZh
Y2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNXaWRn
ZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
d2lkZ2V0IGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmluaXRp
YWxpemVBdHRyaWJ1dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6
OndpZGdldCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyIHJlbmRlcldpZGdldENoaWxkcmVuXSk6CisgICAgICAgICgtW1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAgICAg
ICAgKGlzTWF0Y2hpbmdQbHVnaW4pOgorCiAyMDIxLTEwLTE0ICBBbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEFwcGx5IHRoZSBsaW5lLWdhcCBmb250
IG1ldHJpY3Mgd2hlbiBjb21wdXRpbmcgdGhlIGxheW91dCBib3VuZHMgZm9yIGlubGluZSBib3hl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcAppbmRleCA3M2I3OWNiZTAzNzllOGEwNTE5ZmY3ZTUwMWI1NzlkNWVh
YTIxZDY0Li4zZDUzZTlkZDM1OGEwOWUwZTIzMDE2NjBiN2Y2NDQ5NzNkMDI1M2QxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcApAQCAtNzQsNyArNzQsNiBAQAogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJF
bGVtZW50cy5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAi
VmlzaWJsZVVuaXRzLmgiCi0jaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRl
IDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgpAQCAtODAyLDYgKzgwMSw3IEBAIHVuc2ln
bmVkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpoZWFkaW5nTGV2ZWwoKSBjb25zdAogICAgICAg
ICByZXR1cm4gMjsKIAogICAgIHJldHVybiAwOworCiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdDo6dmFsdWVEZXNjcmlwdGlvbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDRkZmE3MjA4Y2Vl
ZjUzNDliNjMzMDYzY2UzYTZhMjRmNjA5OTU0MzQuLjIwYTdjM2Y0OTc0YjVlZjU1NDM1NWU0NGEw
Yjk5ZGMwZTVlYjg0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC00NDIsMTMgKzQ0MiwxNiBAQCBwdWJsaWM6CiAgICAg
U3RyaW5nIHNlbGVjdGVkVGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFN0cmluZygpOyB9
CiAgICAgU3RyaW5nIGFjY2Vzc0tleSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxBdG9t
KCk7IH0KICAgICBTdHJpbmcgYWN0aW9uVmVyYigpIGNvbnN0IG92ZXJyaWRlOworCisgICAgYm9v
bCBpc1dpZGdldCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgV2lkZ2V0
KiB3aWRnZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgUGxhdGZv
cm1XaWRnZXQgcGxhdGZvcm1XaWRnZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRy
OyB9CisgICAgV2lkZ2V0KiB3aWRnZXRGb3JBdHRhY2htZW50VmlldygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG51bGxwdHI7IH0KKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlbW90ZUFY
T2JqZWN0UmVmIHJlbW90ZVBhcmVudE9iamVjdCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEZsb2F0
UmVjdCBjb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShjb25zdCBGbG9hdFJlY3QmLCBBY2Nlc3Np
YmlsaXR5Q29udmVyc2lvblNwYWNlKSBjb25zdCBvdmVycmlkZTsKICNlbmRpZgotICAgIFdpZGdl
dCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxs
cHRyOyB9CiAgICAgUGFnZSogcGFnZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIERvY3VtZW50KiBk
b2N1bWVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEZyYW1lVmlldyogZG9jdW1lbnRGcmFtZVZp
ZXcoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggN2U3YjgzNGM4
YjQyNGY1YWM0NDU1NDI2Y2U3ZjU5ODFkMTRlZGFhOS4uMjY4NGU0ZmE5OWFiYjgwYjVlODE4MzA2
OWI5Zjk0ODA5NjM3MmE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTg1LDcgKzg1LDYg
QEAgY2xhc3MgUGF0aDsKIGNsYXNzIFF1YWxpZmllZE5hbWU7CiBjbGFzcyBSZW5kZXJPYmplY3Q7
CiBjbGFzcyBTY3JvbGxWaWV3OwotY2xhc3MgV2lkZ2V0OwogCiBzdHJ1Y3QgQWNjZXNzaWJpbGl0
eVRleHQ7CiBzdHJ1Y3QgU2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnM7CkBAIC0xMTg3LDEzICsx
MTg2LDE3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBzZWxlY3RlZFRleHQoKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgYWNjZXNzS2V5KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgU3RyaW5nIGFjdGlvblZlcmIoKSBjb25zdCA9IDA7CisKKyAgICAvLyBXaWRnZXQgc3Vw
cG9ydC4KKyAgICB2aXJ0dWFsIGJvb2wgaXNXaWRnZXQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCBXaWRnZXQqIHdpZGdldCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtV2lkZ2V0
IHBsYXRmb3JtV2lkZ2V0KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgV2lkZ2V0KiB3aWRnZXRG
b3JBdHRhY2htZW50VmlldygpIGNvbnN0ID0gMDsKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IHZpcnR1YWwgUmVtb3RlQVhPYmplY3RSZWYgcmVtb3RlUGFyZW50T2JqZWN0KCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgRmxvYXRSZWN0IGNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlKGNvbnN0
IEZsb2F0UmVjdCYsIEFjY2Vzc2liaWxpdHlDb252ZXJzaW9uU3BhY2UpIGNvbnN0ID0gMDsKICNl
bmRpZgotICAgIHZpcnR1YWwgV2lkZ2V0KiB3aWRnZXRGb3JBdHRhY2htZW50VmlldygpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIFBhZ2UqIHBhZ2UoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBE
b2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBGcmFtZVZpZXcqIGRv
Y3VtZW50RnJhbWVWaWV3KCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggZGZl
ZjBlYzRkODFmOWQwMDQ1NDQ4MTM1MDRjMjY1NmY1N2U2NjlmNC4uNDE4ZjJhMTQxMDYzMGJlZGQ5
ODg2OWRmYTZkMzI0M2JkNDI5Yjg0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0yMDA0LDEx
ICsyMDA0LDE0IEBAIERvY3VtZW50KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb2N1bWVu
dCgpIGNvbnN0CiAgICAgcmV0dXJuICZtX3JlbmRlcmVyLT5kb2N1bWVudCgpOwogfQogCitib29s
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmlzV2lkZ2V0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gd2lkZ2V0KCk7Cit9CisKIFdpZGdldCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6d2lk
Z2V0KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcmVuZGVyZXIgfHwgIWlzPFJlbmRlcldpZGdldD4o
Km1fcmVuZGVyZXIpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gZG93bmNh
c3Q8UmVuZGVyV2lkZ2V0PigqbV9yZW5kZXJlcikud2lkZ2V0KCk7CisgICAgcmV0dXJuIGlzPFJl
bmRlcldpZGdldD4obV9yZW5kZXJlci5nZXQoKSkgPyBkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KCpt
X3JlbmRlcmVyKS53aWRnZXQoKSA6IG51bGxwdHI7CiB9CiAKIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFjY2Vzc2liaWxpdHlQYXJlbnRGb3JJbWFnZU1h
cChIVE1MTWFwRWxlbWVudCogbWFwKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAppbmRleCAzMTExZTQ0
ZDk5YWUwNGQ3YzIxMWFhMzE5MGI1ZGYxNzc2OTk0OTNlLi5jOWQzMDYyNjE1Y2I3NGQ3NDI2NGY5
ZTQ0ZWVlZjY0Mzc1NWVjYTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtNTAsOCArNTAsNyBAQCBj
bGFzcyBOb2RlOwogY2xhc3MgUmVuZGVyVGV4dENvbnRyb2w7CiBjbGFzcyBSZW5kZXJWaWV3Owog
Y2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKLWNsYXNzIFdpZGdldDsKLSAgICAKKwogY2xhc3MgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdCwg
cHVibGljIENhbk1ha2VXZWFrUHRyPEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q+IGNyZWF0ZShSZW5k
ZXJPYmplY3QqKTsKQEAgLTEzNiw2ICsxMzUsOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHNlbGVj
dGVkVGV4dCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyBhY2Nlc3NLZXkoKSBjb25zdCBv
dmVycmlkZTsKICAgICBTdHJpbmcgYWN0aW9uVmVyYigpIGNvbnN0IG92ZXJyaWRlOworCisgICAg
Ym9vbCBpc1dpZGdldCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFdpZGdldCogd2lkZ2V0KCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgV2lkZ2V0KiB3aWRnZXRGb3JBdHRhY2htZW50VmlldygpIGNvbnN0
IG92ZXJyaWRlOwogICAgIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciBkb2N1bWVudExpbmtz
KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IDRiMGZlZjViMDc5
YWI5ZjI5NTI1NWNiYTY5ZTY2ZThmOWZiYjhjYTEuLmQwNzEzZjM4Y2M0OGNlMmNjNGZmNDQ4MDgx
Yzg3NjliZmQ5MjFhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC00MTgsNiAr
NDE4LDkgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShB
WENvcmVPYmplY3QmIG9iamVjdCwgYm9vbCBpc1Jvb3QKICAgICAgICAgc2V0T2JqZWN0VmVjdG9y
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkRvY3VtZW50TGlua3MsIG9iamVjdC5kb2N1bWVudExp
bmtzKCkpOwogICAgIH0KIAorICAgIGlmIChvYmplY3QuaXNXaWRnZXQoKSkKKyAgICAgICAgc2V0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzV2lkZ2V0LCB0cnVlKTsKKwogICAgIGluaXRpYWxp
emVQbGF0Zm9ybVByb3BlcnRpZXMob2JqZWN0LCBpc1Jvb3QpOwogfQogCkBAIC0yMDMyLDkgKzIw
MzUsOCBAQCBUZXh0SXRlcmF0b3JCZWhhdmlvcnMgQVhJc29sYXRlZE9iamVjdDo6dGV4dEl0ZXJh
dG9yQmVoYXZpb3JGb3JUZXh0UmFuZ2UoKSBjb25zdAogCiBXaWRnZXQqIEFYSXNvbGF0ZWRPYmpl
Y3Q6OndpZGdldCgpIGNvbnN0CiB7Ci0gICAgaWYgKGF1dG8qIG9iamVjdCA9IGFzc29jaWF0ZWRB
WE9iamVjdCgpKQotICAgICAgICByZXR1cm4gb2JqZWN0LT53aWRnZXQoKTsKLSAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICBhdXRvKiBvYmplY3QgPSBhc3NvY2lhdGVkQVhPYmplY3QoKTsKKyAgICBy
ZXR1cm4gb2JqZWN0ID8gb2JqZWN0LT53aWRnZXQoKSA6IG51bGxwdHI7CiB9CiAKIFBsYXRmb3Jt
V2lkZ2V0IEFYSXNvbGF0ZWRPYmplY3Q6OnBsYXRmb3JtV2lkZ2V0KCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRPYmplY3QuaAppbmRleCBmNzJmYThhMWRmNzAwMTJkYWYzMzk3MDY5MzU5YjllOGQxOWQ3
M2FiLi5lMDM5ZmQyOGZlYTQ4YTRjZWI3MGI5N2JkODUyZDkyNjFhNzVkODQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZE9iamVjdC5oCkBAIC01ODQsMTUgKzU4NCwxNyBAQCBwcml2YXRlOgogICAgIFBhdGgg
ZWxlbWVudFBhdGgoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBwYXRoQXR0cmlidXRlVmFsdWUo
QVhQcm9wZXJ0eU5hbWU6OlBhdGgpOyB9OwogICAgIGJvb2wgc3VwcG9ydHNQYXRoKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTdXBw
b3J0c1BhdGgpOyB9CiAgICAgVGV4dEl0ZXJhdG9yQmVoYXZpb3JzIHRleHRJdGVyYXRvckJlaGF2
aW9yRm9yVGV4dFJhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBib29sIGlzV2lkZ2V0KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
OjpJc1dpZGdldCk7IH0KICAgICBXaWRnZXQqIHdpZGdldCgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IFBsYXRmb3JtV2lkZ2V0IHBsYXRmb3JtV2lkZ2V0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgCisg
ICAgV2lkZ2V0KiB3aWRnZXRGb3JBdHRhY2htZW50VmlldygpIGNvbnN0IG92ZXJyaWRlOworCiAg
ICAgSGFzaE1hcDxTdHJpbmcsIEFYRWRpdGluZ1N0eWxlVmFsdWVWYXJpYW50PiByZXNvbHZlZEVk
aXRpbmdTdHlsZXMoKSBjb25zdCBvdmVycmlkZTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBS
ZW1vdGVBWE9iamVjdFJlZiByZW1vdGVQYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBGbG9hdFJlY3QgY29udmVydFJlY3RUb1BsYXRmb3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0Jiwg
QWNjZXNzaWJpbGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKLSAg
ICBXaWRnZXQqIHdpZGdldEZvckF0dGFjaG1lbnRWaWV3KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
UGFnZSogcGFnZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIEZyYW1lVmlldyogZG9jdW1lbnRGcmFtZVZpZXcoKSBjb25zdCBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IDYxNTY0NWExNjc1ZDhlODJkZWJiNmIz
NDE5ZTA0ZGQ2ZTA1ODgyODIuLjA2MTAyMmQ2MzQzZjAxNDA0ZTdiNzY0YjI3NTAzODM0OGZmZGMw
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMjI4LDYgKzIyOCw3IEBAIGVudW0gY2xhc3Mg
QVhQcm9wZXJ0eU5hbWUgOiB1aW50MTZfdCB7CiAgICAgSXNWYWx1ZUF1dG9maWxsQXZhaWxhYmxl
LAogICAgIElzVmlzaWJsZSwKICAgICBJc1Zpc2l0ZWQsCisgICAgSXNXaWRnZXQsCiAgICAgS2V5
U2hvcnRjdXRzVmFsdWUsCiAgICAgTGFuZ3VhZ2UsCiAgICAgTGF5b3V0Q291bnQsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmluZGV4IGM5MzY1NDY3OGU2ZGZhYjEzMTY2
ZGEzYTQ0NWI5MGI1YWZkYWQyNDQuLmQ4YjIzMjU2MjZjYTllNzdhYjQ0YjI1MDk2Mzc1ZDJkZTgz
MDIyOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0xNjYw
LDE1ICsxNjYwLDI1IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAg
IHJldHVybiBvYmplY3RBdHRyaWJ1dGVzOwogfQogCi0tIChOU0FycmF5KilyZW5kZXJXaWRnZXRD
aGlsZHJlbgorLSAoTlNBcnJheSAqKXJlbmRlcldpZGdldENoaWxkcmVuCiB7CiAgICAgYXV0byog
YmFja2luZ09iamVjdCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0OwogICAgIGlmICghYmFja2luZ09i
amVjdCkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIGF1dG8qIHdpZGdldCA9IGJhY2tpbmdP
YmplY3QtPndpZGdldCgpOwotICAgIGlmICh3aWRnZXQgJiYgd2lkZ2V0LT5hY2Nlc3NpYmlsaXR5
T2JqZWN0KCkpCi0gICAgICAgIHJldHVybiBAW3dpZGdldC0+YWNjZXNzaWJpbGl0eU9iamVjdCgp
XTsKKyAgICBpZiAoYmFja2luZ09iamVjdC0+aXNXaWRnZXQoKSkgeworICAgICAgICBpZCBjaGls
ZCA9IEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlQXV0b3JlbGVhc2VkVmFsdWVGcm9tTWFpblRocmVh
ZDxpZD4oW3Byb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZildICgpIC0+IFJldGFpblB0cjxp
ZD4geworICAgICAgICAgICAgYXV0byogYmFja2luZ09iamVjdCA9IHByb3RlY3RlZFNlbGYuZ2V0
KCkuYXhCYWNraW5nT2JqZWN0OworICAgICAgICAgICAgaWYgKCFiYWNraW5nT2JqZWN0KQorICAg
ICAgICAgICAgICAgIHJldHVybiBuaWw7CisKKyAgICAgICAgICAgIGF1dG8qIHdpZGdldCA9IGJh
Y2tpbmdPYmplY3QtPndpZGdldCgpOworICAgICAgICAgICAgcmV0dXJuIHdpZGdldCA/IHdpZGdl
dC0+YWNjZXNzaWJpbGl0eU9iamVjdCgpIDogbmlsOworICAgICAgICB9KTsKKworICAgICAgICBp
ZiAoY2hpbGQpCisgICAgICAgICAgICByZXR1cm4gQFtjaGlsZF07CisgICAgfQogCiAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gW2JhY2tpbmdPYmpl
Y3QtPnBsYXRmb3JtV2lkZ2V0KCkgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNz
aWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlXTsKQEAgLTIxNjgsMTAgKzIxNzgsOSBAQCBBTExPV19E
RVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgcmV0dXJuIHBhcmVudC0+d3Jh
cHBlcigpOwogICAgIH0KIAotICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6
IE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlXSB8fCBbYXR0cmlidXRlTmFtZSBpc0Vx
dWFsVG9TdHJpbmc6IE5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuSW5OYXZpZ2F0aW9uT3JkZXJBdHRy
aWJ1dGVdKSB7CisgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vz
c2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZV0gfHwgW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3Ry
aW5nOk5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuSW5OYXZpZ2F0aW9uT3JkZXJBdHRyaWJ1dGVdKSB7
CiAgICAgICAgIGlmICghc2VsZi5jaGlsZHJlblZlY3RvclNpemUpIHsKLSAgICAgICAgICAgIE5T
QXJyYXkqIGNoaWxkcmVuID0gW3NlbGYgcmVuZGVyV2lkZ2V0Q2hpbGRyZW5dOwotICAgICAgICAg
ICAgaWYgKGNoaWxkcmVuICE9IG5pbCkKKyAgICAgICAgICAgIGlmIChOU0FycmF5ICpjaGlsZHJl
biA9IFtzZWxmIHJlbmRlcldpZGdldENoaWxkcmVuXSkKICAgICAgICAgICAgICAgICByZXR1cm4g
Y2hpbGRyZW47CiAgICAgICAgIH0KIApAQCAtMzY1NCwxNCArMzY2MywxOSBAQCBlbnVtIGNsYXNz
IFRleHRVbml0IHsKICAgICB9KTsKIH0KIAotc3RhdGljIEJPT0wgaXNNYXRjaGluZ1BsdWdpbihB
WENvcmVPYmplY3QqIGF4T2JqZWN0LCBjb25zdCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEm
IGNyaXRlcmlhKQorc3RhdGljIGJvb2wgaXNNYXRjaGluZ1BsdWdpbihBWENvcmVPYmplY3QqIGF4
T2JqZWN0LCBjb25zdCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEmIGNyaXRlcmlhKQogewot
ICAgIGF1dG8qIHdpZGdldCA9IGF4T2JqZWN0LT53aWRnZXQoKTsKLSAgICBpZiAoIWlzPFBsdWdp
blZpZXdCYXNlPih3aWRnZXQpKQorICAgIGlmICghYXhPYmplY3QtPmlzV2lkZ2V0KCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBjcml0ZXJpYS5zZWFyY2hLZXlzLmNvbnRh
aW5zKEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkFueVR5cGUpCi0gICAgICAgICYmICghY3JpdGVy
aWEudmlzaWJsZU9ubHkgfHwgZG93bmNhc3Q8UGx1Z2luVmlld0Jhc2U+KHdpZGdldCktPmlzVmlz
aWJsZSgpKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVWYWx1ZUZyb21NYWlu
VGhyZWFkPGJvb2w+KFsmYXhPYmplY3QsICZjcml0ZXJpYV0gKCkgLT4gYm9vbCB7CisgICAgICAg
IGF1dG8qIHdpZGdldCA9IGF4T2JqZWN0LT53aWRnZXQoKTsKKyAgICAgICAgaWYgKCFpczxQbHVn
aW5WaWV3QmFzZT4od2lkZ2V0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg
ICByZXR1cm4gY3JpdGVyaWEuc2VhcmNoS2V5cy5jb250YWlucyhBY2Nlc3NpYmlsaXR5U2VhcmNo
S2V5OjpBbnlUeXBlKQorICAgICAgICAgICAgJiYgKCFjcml0ZXJpYS52aXNpYmxlT25seSB8fCBk
b3duY2FzdDxQbHVnaW5WaWV3QmFzZT4od2lkZ2V0KS0+aXNWaXNpYmxlKCkpOworICAgIH0pOwog
fQogCiBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19CRUdJTgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441282</attachid>
            <date>2021-10-14 14:27:04 -0700</date>
            <delta_ts>2021-10-14 14:41:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231766-20211014172703.patch</filename>
            <type>text/plain</type>
            <size>13722</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODgzYWY4OWQ4ZWFlMDIz
Y2ViZmNiYTQwNmU4OTFlZDQ5YmY3ZWY5MC4uYjRiYjlmNzczMzVkNWFkYjI0YWE3ZmJkZWY1YWI5
NGI0YmRlMTY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTEwLTE0ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBDYWxscyB0byBB
WENvcmVPYmplY3Q6OndpZGdldCgpIGhhdmUgdG8gYmUgZGlzcGF0Y2ggdG8gdGhlIG1haW4gdGhy
ZWFkIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTc2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQyNzEw
Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAgVGhp
cyBwYXRjaCBmaXhlcyBzZXZlcmFsIGRvemVucyBvZiB0ZXN0cyB0aGF0IHdlcmUgY3Jhc2hpbmcg
b3IgdGltaW5nIG91dCBpbiBpc29sYXRlZCB0cmVlIG1vZGUuCisKKyAgICAgICAgVGhlIFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHdhcyBjYWxsaW5nIHRoZSB3aWRnZXQoKSBtZXRob2Qg
b24gdGhlCisgICAgICAgIEFYIHRocmVhZCwgd2hpY2ggY3JlYXRlcyBwcm9ibGVtcyBiZWNhdXNl
IHRoaXMgb2JqZWN0IGlzIG5vdCB0aHJlYWQKKyAgICAgICAgc2FmZSBhbmQgaXQgaXMgY3JlYXRl
ZCBvbiB0aGUgbWFpbiB0aHJlYWQuIFRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgd2UKKyAgICAgICAg
aGF2ZSB0byBkaXNwYXRjaCB0aG9zZSBjYWxscyB0byB0aGUgbWFpbiB0aHJlYWQuIFNpbmNlIHdp
ZGdldCgpIGlzCisgICAgICAgIGNhbGxlZCB2ZXJ5IG9mdGVuIG5vdywgZm9yIGV2ZXJ5IHJlcXVl
c3Qgb2YgdGhlIGNoaWxkcmVuIG9mIGEgbGVhZiBub2RlLAorICAgICAgICBhZGRlZCBBWENvcmVP
YmplY3Q6OmlzV2lkZ2V0KCkgdG8gYmUgYWJsZSB0byBjaGVjayBmb3IgaXQgd2l0aG91dCBoYXZp
bmcKKyAgICAgICAgdG8gcmV0dXJuIHRoZSBXaWRnZXQgb2JqZWN0LiBUaGUgSXNXaWRnZXQgcHJv
cGVydHkgaXMgY2FjaGVkIGluIHRoZQorICAgICAgICBBWElzb2xhdGVkT2JqZWN0LCBoZW5jZSBs
aW1pdGluZyB0aGUgbnVtYmVyIG9mIHRpbWVzIHdlIGhhdmUgdG8gaGl0IHRoZQorICAgICAgICBt
YWluIHRocmVhZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOgorICAgICAgICBSZW1vdmVkIGluY2x1ZGUgaGVhZGVyIHRoYXQgaXMgbm90IHVz
ZWQgaW4gdGhpcyBjcHAuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNX
aWRnZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6d2lkZ2V0IGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6Omlu
aXRpYWxpemVBdHRyaWJ1dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmpl
Y3Q6OndpZGdldCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIHJlbmRlcldpZGdldENoaWxkcmVuXSk6CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAg
ICAgICAgKGlzTWF0Y2hpbmdQbHVnaW4pOgorCiAyMDIxLTEwLTE0ICBBbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEFwcGx5IHRoZSBsaW5lLWdhcCBm
b250IG1ldHJpY3Mgd2hlbiBjb21wdXRpbmcgdGhlIGxheW91dCBib3VuZHMgZm9yIGlubGluZSBi
b3hlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCA3M2I3OWNiZTAzNzllOGEwNTE5ZmY3ZTUwMWI1Nzlk
NWVhYTIxZDY0Li5kNWU4ZTFmZmZhYjA2YTA4MGYwZjI4MTczNTE5YzhjMWNlY2RlNDU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcApAQCAtNzQsNyArNzQsNiBAQAogI2luY2x1ZGUgIlRleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVk
ZSAiVmlzaWJsZVVuaXRzLmgiCi0jaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNs
dWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCA0ZGZhNzIwOGNlZWY1
MzQ5YjYzMzA2M2NlM2E2YTI0ZjYwOTk1NDM0Li4yMGE3YzNmNDk3NGI1ZWY1NTQzNTVlNDRhMGI5
OWRjMGU1ZWI4NDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDQyLDEzICs0NDIsMTYgQEAgcHVibGljOgogICAgIFN0
cmluZyBzZWxlY3RlZFRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTdHJpbmcoKTsgfQog
ICAgIFN0cmluZyBhY2Nlc3NLZXkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxsQXRvbSgp
OyB9CiAgICAgU3RyaW5nIGFjdGlvblZlcmIoKSBjb25zdCBvdmVycmlkZTsKKworICAgIGJvb2wg
aXNXaWRnZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIFdpZGdldCog
d2lkZ2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIFBsYXRmb3Jt
V2lkZ2V0IHBsYXRmb3JtV2lkZ2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsg
fQorICAgIFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBudWxscHRyOyB9CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZW1vdGVBWE9i
amVjdFJlZiByZW1vdGVQYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlkZTsKICAgICBGbG9hdFJl
Y3QgY29udmVydFJlY3RUb1BsYXRmb3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0JiwgQWNjZXNzaWJp
bGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICBXaWRnZXQq
IHdpZGdldEZvckF0dGFjaG1lbnRWaWV3KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0
cjsgfQogICAgIFBhZ2UqIHBhZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBEb2N1bWVudCogZG9j
dW1lbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICBGcmFtZVZpZXcqIGRvY3VtZW50RnJhbWVWaWV3
KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCmluZGV4IDdlN2I4MzRjOGI0
MjRmNWFjNDQ1NTQyNmNlN2Y1OTgxZDE0ZWRhYTkuLjI2ODRlNGZhOTlhYmI4MGI1ZTgxODMwNjli
OWY5NDgwOTYzNzJhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC04NSw3ICs4NSw2IEBA
IGNsYXNzIFBhdGg7CiBjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgUmVuZGVyT2JqZWN0Owog
Y2xhc3MgU2Nyb2xsVmlldzsKLWNsYXNzIFdpZGdldDsKIAogc3RydWN0IEFjY2Vzc2liaWxpdHlU
ZXh0Owogc3RydWN0IFNjcm9sbFJlY3RUb1Zpc2libGVPcHRpb25zOwpAQCAtMTE4NywxMyArMTE4
NiwxNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vzc0tleSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIFN0cmluZyBhY3Rpb25WZXJiKCkgY29uc3QgPSAwOworCisgICAgLy8gV2lkZ2V0IHN1cHBv
cnQuCisgICAgdmlydHVhbCBib29sIGlzV2lkZ2V0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
V2lkZ2V0KiB3aWRnZXQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBQbGF0Zm9ybVdpZGdldCBw
bGF0Zm9ybVdpZGdldCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdpZGdldCogd2lkZ2V0Rm9y
QXR0YWNobWVudFZpZXcoKSBjb25zdCA9IDA7CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2
aXJ0dWFsIFJlbW90ZUFYT2JqZWN0UmVmIHJlbW90ZVBhcmVudE9iamVjdCgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBjb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShjb25zdCBG
bG9hdFJlY3QmLCBBY2Nlc3NpYmlsaXR5Q29udmVyc2lvblNwYWNlKSBjb25zdCA9IDA7CiAjZW5k
aWYKLSAgICB2aXJ0dWFsIFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCBQYWdlKiBwYWdlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgRG9j
dW1lbnQqIGRvY3VtZW50KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgRnJhbWVWaWV3KiBkb2N1
bWVudEZyYW1lVmlldygpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGRmZWYw
ZWM0ZDgxZjlkMDA0NTQ0ODEzNTA0YzI2NTZmNTdlNjY5ZjQuLjQxOGYyYTE0MTA2MzBiZWRkOTg4
NjlkZmE2ZDMyNDNiZDQyOWI4NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjAwNCwxMSAr
MjAwNCwxNCBAQCBEb2N1bWVudCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9jdW1lbnQo
KSBjb25zdAogICAgIHJldHVybiAmbV9yZW5kZXJlci0+ZG9jdW1lbnQoKTsKIH0KIAorYm9vbCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc1dpZGdldCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHdpZGdldCgpOworfQorCiBXaWRnZXQqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OndpZGdl
dCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3JlbmRlcmVyIHx8ICFpczxSZW5kZXJXaWRnZXQ+KCpt
X3JlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGRvd25jYXN0
PFJlbmRlcldpZGdldD4oKm1fcmVuZGVyZXIpLndpZGdldCgpOworICAgIHJldHVybiBpczxSZW5k
ZXJXaWRnZXQ+KG1fcmVuZGVyZXIuZ2V0KCkpID8gZG93bmNhc3Q8UmVuZGVyV2lkZ2V0PigqbV9y
ZW5kZXJlcikud2lkZ2V0KCkgOiBudWxscHRyOwogfQogCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5UGFyZW50Rm9ySW1hZ2VNYXAo
SFRNTE1hcEVsZW1lbnQqIG1hcCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggMzExMWU0NGQ5
OWFlMDRkN2MyMTFhYTMxOTBiNWRmMTc3Njk5NDkzZS4uYzlkMzA2MjYxNWNiNzRkNzQyNjRmOWU0
NGVlZWY2NDM3NTVlY2EzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTUwLDggKzUwLDcgQEAgY2xh
c3MgTm9kZTsKIGNsYXNzIFJlbmRlclRleHRDb250cm9sOwogY2xhc3MgUmVuZGVyVmlldzsKIGNs
YXNzIFZpc2libGVTZWxlY3Rpb247Ci1jbGFzcyBXaWRnZXQ7Ci0gICAgCisKIGNsYXNzIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QsIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBjcmVhdGUoUmVuZGVy
T2JqZWN0Kik7CkBAIC0xMzYsNiArMTM1LDggQEAgcHVibGljOgogICAgIFN0cmluZyBzZWxlY3Rl
ZFRleHQoKSBjb25zdCBvdmVycmlkZTsKICAgICBTdHJpbmcgYWNjZXNzS2V5KCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgU3RyaW5nIGFjdGlvblZlcmIoKSBjb25zdCBvdmVycmlkZTsKKworICAgIGJv
b2wgaXNXaWRnZXQoKSBjb25zdCBvdmVycmlkZTsKICAgICBXaWRnZXQqIHdpZGdldCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBv
dmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZG9jdW1lbnRMaW5rcygp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCA0YjBmZWY1YjA3OWFi
OWYyOTUyNTVjYmE2OWU2NmU4ZjlmYmI4Y2ExLi5kMDcxM2YzOGNjNDhjZTJjYzRmZjQ0ODA4MWM4
NzY5YmZkOTIxYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtNDE4LDYgKzQx
OCw5IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhD
b3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290CiAgICAgICAgIHNldE9iamVjdFZlY3RvclBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpEb2N1bWVudExpbmtzLCBvYmplY3QuZG9jdW1lbnRMaW5r
cygpKTsKICAgICB9CiAKKyAgICBpZiAob2JqZWN0LmlzV2lkZ2V0KCkpCisgICAgICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc1dpZGdldCwgdHJ1ZSk7CisKICAgICBpbml0aWFsaXpl
UGxhdGZvcm1Qcm9wZXJ0aWVzKG9iamVjdCwgaXNSb290KTsKIH0KIApAQCAtMjAzMiw5ICsyMDM1
LDggQEAgVGV4dEl0ZXJhdG9yQmVoYXZpb3JzIEFYSXNvbGF0ZWRPYmplY3Q6OnRleHRJdGVyYXRv
ckJlaGF2aW9yRm9yVGV4dFJhbmdlKCkgY29uc3QKIAogV2lkZ2V0KiBBWElzb2xhdGVkT2JqZWN0
Ojp3aWRnZXQoKSBjb25zdAogewotICAgIGlmIChhdXRvKiBvYmplY3QgPSBhc3NvY2lhdGVkQVhP
YmplY3QoKSkKLSAgICAgICAgcmV0dXJuIG9iamVjdC0+d2lkZ2V0KCk7Ci0gICAgcmV0dXJuIG51
bGxwdHI7CisgICAgYXV0byogb2JqZWN0ID0gYXNzb2NpYXRlZEFYT2JqZWN0KCk7CisgICAgcmV0
dXJuIG9iamVjdCA/IG9iamVjdC0+d2lkZ2V0KCkgOiBudWxscHRyOwogfQogCiBQbGF0Zm9ybVdp
ZGdldCBBWElzb2xhdGVkT2JqZWN0OjpwbGF0Zm9ybVdpZGdldCgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmgKaW5kZXggZjcyZmE4YTFkZjcwMDEyZGFmMzM5NzA2OTM1OWI5ZThkMTlkNzNh
Yi4uZTAzOWZkMjhmZWE0OGE0Y2ViNzBiOTdiZDg1MmQ5MjYxYTc1ZDg0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRPYmplY3QuaApAQCAtNTg0LDE1ICs1ODQsMTcgQEAgcHJpdmF0ZToKICAgICBQYXRoIGVs
ZW1lbnRQYXRoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gcGF0aEF0dHJpYnV0ZVZhbHVlKEFY
UHJvcGVydHlOYW1lOjpQYXRoKTsgfTsKICAgICBib29sIHN1cHBvcnRzUGF0aCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9y
dHNQYXRoKTsgfQogICAgIFRleHRJdGVyYXRvckJlaGF2aW9ycyB0ZXh0SXRlcmF0b3JCZWhhdmlv
ckZvclRleHRSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgYm9vbCBpc1dpZGdldCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6
SXNXaWRnZXQpOyB9CiAgICAgV2lkZ2V0KiB3aWRnZXQoKSBjb25zdCBvdmVycmlkZTsKICAgICBQ
bGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpZGdldCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIAorICAg
IFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBvdmVycmlkZTsKKwogICAg
IEhhc2hNYXA8U3RyaW5nLCBBWEVkaXRpbmdTdHlsZVZhbHVlVmFyaWFudD4gcmVzb2x2ZWRFZGl0
aW5nU3R5bGVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmVt
b3RlQVhPYmplY3RSZWYgcmVtb3RlUGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
RmxvYXRSZWN0IGNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlKGNvbnN0IEZsb2F0UmVjdCYsIEFj
Y2Vzc2liaWxpdHlDb252ZXJzaW9uU3BhY2UpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
V2lkZ2V0KiB3aWRnZXRGb3JBdHRhY2htZW50VmlldygpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBh
Z2UqIHBhZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25z
dCBvdmVycmlkZTsKICAgICBGcmFtZVZpZXcqIGRvY3VtZW50RnJhbWVWaWV3KCkgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCA2MTU2NDVhMTY3NWQ4ZTgyZGViYjZiMzQx
OWUwNGRkNmUwNTg4MjgyLi4wNjEwMjJkNjM0M2YwMTQwNGU3Yjc2NGIyNzUwMzgzNDhmZmRjMDc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTIyOCw2ICsyMjgsNyBAQCBlbnVtIGNsYXNzIEFY
UHJvcGVydHlOYW1lIDogdWludDE2X3QgewogICAgIElzVmFsdWVBdXRvZmlsbEF2YWlsYWJsZSwK
ICAgICBJc1Zpc2libGUsCiAgICAgSXNWaXNpdGVkLAorICAgIElzV2lkZ2V0LAogICAgIEtleVNo
b3J0Y3V0c1ZhbHVlLAogICAgIExhbmd1YWdlLAogICAgIExheW91dENvdW50LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBjOTM2NTQ2NzhlNmRmYWIxMzE2NmRh
M2E0NDViOTBiNWFmZGFkMjQ0Li5kOGIyMzI1NjI2Y2E5ZTc3YWI0NGIyNTA5NjM3NWQyZGU4MzAy
Mjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTY2MCwx
NSArMTY2MCwyNSBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICBy
ZXR1cm4gb2JqZWN0QXR0cmlidXRlczsKIH0KIAotLSAoTlNBcnJheSopcmVuZGVyV2lkZ2V0Q2hp
bGRyZW4KKy0gKE5TQXJyYXkgKilyZW5kZXJXaWRnZXRDaGlsZHJlbgogewogICAgIGF1dG8qIGJh
Y2tpbmdPYmplY3QgPSBzZWxmLmF4QmFja2luZ09iamVjdDsKICAgICBpZiAoIWJhY2tpbmdPYmpl
Y3QpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBhdXRvKiB3aWRnZXQgPSBiYWNraW5nT2Jq
ZWN0LT53aWRnZXQoKTsKLSAgICBpZiAod2lkZ2V0ICYmIHdpZGdldC0+YWNjZXNzaWJpbGl0eU9i
amVjdCgpKQotICAgICAgICByZXR1cm4gQFt3aWRnZXQtPmFjY2Vzc2liaWxpdHlPYmplY3QoKV07
CisgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzV2lkZ2V0KCkpIHsKKyAgICAgICAgaWQgY2hpbGQg
PSBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZUF1dG9yZWxlYXNlZFZhbHVlRnJvbU1haW5UaHJlYWQ8
aWQ+KFtwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXSAoKSAtPiBSZXRhaW5QdHI8aWQ+
IHsKKyAgICAgICAgICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBwcm90ZWN0ZWRTZWxmLmdldCgp
LmF4QmFja2luZ09iamVjdDsKKyAgICAgICAgICAgIGlmICghYmFja2luZ09iamVjdCkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbmlsOworCisgICAgICAgICAgICBhdXRvKiB3aWRnZXQgPSBiYWNr
aW5nT2JqZWN0LT53aWRnZXQoKTsKKyAgICAgICAgICAgIHJldHVybiB3aWRnZXQgPyB3aWRnZXQt
PmFjY2Vzc2liaWxpdHlPYmplY3QoKSA6IG5pbDsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYg
KGNoaWxkKQorICAgICAgICAgICAgcmV0dXJuIEBbY2hpbGRdOworICAgIH0KIAogICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgcmV0dXJuIFtiYWNraW5nT2JqZWN0
LT5wbGF0Zm9ybVdpZGdldCgpIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2li
aWxpdHlDaGlsZHJlbkF0dHJpYnV0ZV07CkBAIC0yMTY4LDEwICsyMTc4LDkgQEAgQUxMT1dfREVQ
UkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIHJldHVybiBwYXJlbnQtPndyYXBw
ZXIoKTsKICAgICB9CiAKLSAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOiBO
U0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZV0gfHwgW2F0dHJpYnV0ZU5hbWUgaXNFcXVh
bFRvU3RyaW5nOiBOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkluTmF2aWdhdGlvbk9yZGVyQXR0cmli
dXRlXSkgeworICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3Np
YmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdIHx8IFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmlu
ZzpOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkluTmF2aWdhdGlvbk9yZGVyQXR0cmlidXRlXSkgewog
ICAgICAgICBpZiAoIXNlbGYuY2hpbGRyZW5WZWN0b3JTaXplKSB7Ci0gICAgICAgICAgICBOU0Fy
cmF5KiBjaGlsZHJlbiA9IFtzZWxmIHJlbmRlcldpZGdldENoaWxkcmVuXTsKLSAgICAgICAgICAg
IGlmIChjaGlsZHJlbiAhPSBuaWwpCisgICAgICAgICAgICBpZiAoTlNBcnJheSAqY2hpbGRyZW4g
PSBbc2VsZiByZW5kZXJXaWRnZXRDaGlsZHJlbl0pCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNo
aWxkcmVuOwogICAgICAgICB9CiAKQEAgLTM2NTQsMTQgKzM2NjMsMTkgQEAgZW51bSBjbGFzcyBU
ZXh0VW5pdCB7CiAgICAgfSk7CiB9CiAKLXN0YXRpYyBCT09MIGlzTWF0Y2hpbmdQbHVnaW4oQVhD
b3JlT2JqZWN0KiBheE9iamVjdCwgY29uc3QgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhJiBj
cml0ZXJpYSkKK3N0YXRpYyBib29sIGlzTWF0Y2hpbmdQbHVnaW4oQVhDb3JlT2JqZWN0KiBheE9i
amVjdCwgY29uc3QgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhJiBjcml0ZXJpYSkKIHsKLSAg
ICBhdXRvKiB3aWRnZXQgPSBheE9iamVjdC0+d2lkZ2V0KCk7Ci0gICAgaWYgKCFpczxQbHVnaW5W
aWV3QmFzZT4od2lkZ2V0KSkKKyAgICBpZiAoIWF4T2JqZWN0LT5pc1dpZGdldCgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gY3JpdGVyaWEuc2VhcmNoS2V5cy5jb250YWlu
cyhBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpBbnlUeXBlKQotICAgICAgICAmJiAoIWNyaXRlcmlh
LnZpc2libGVPbmx5IHx8IGRvd25jYXN0PFBsdWdpblZpZXdCYXNlPih3aWRnZXQpLT5pc1Zpc2li
bGUoKSk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRo
cmVhZDxib29sPihbJmF4T2JqZWN0LCAmY3JpdGVyaWFdICgpIC0+IGJvb2wgeworICAgICAgICBh
dXRvKiB3aWRnZXQgPSBheE9iamVjdC0+d2lkZ2V0KCk7CisgICAgICAgIGlmICghaXM8UGx1Z2lu
Vmlld0Jhc2U+KHdpZGdldCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
cmV0dXJuIGNyaXRlcmlhLnNlYXJjaEtleXMuY29udGFpbnMoQWNjZXNzaWJpbGl0eVNlYXJjaEtl
eTo6QW55VHlwZSkKKyAgICAgICAgICAgICYmICghY3JpdGVyaWEudmlzaWJsZU9ubHkgfHwgZG93
bmNhc3Q8UGx1Z2luVmlld0Jhc2U+KHdpZGdldCktPmlzVmlzaWJsZSgpKTsKKyAgICB9KTsKIH0K
IAogQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfQkVHSU4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441288</attachid>
            <date>2021-10-14 14:41:51 -0700</date>
            <delta_ts>2021-10-15 05:27:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231766-20211014174150.patch</filename>
            <type>text/plain</type>
            <size>13785</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODgzYWY4OWQ4ZWFlMDIz
Y2ViZmNiYTQwNmU4OTFlZDQ5YmY3ZWY5MC4uYjRiYjlmNzczMzVkNWFkYjI0YWE3ZmJkZWY1YWI5
NGI0YmRlMTY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTEwLTE0ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBDYWxscyB0byBB
WENvcmVPYmplY3Q6OndpZGdldCgpIGhhdmUgdG8gYmUgZGlzcGF0Y2ggdG8gdGhlIG1haW4gdGhy
ZWFkIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTc2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQyNzEw
Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAgVGhp
cyBwYXRjaCBmaXhlcyBzZXZlcmFsIGRvemVucyBvZiB0ZXN0cyB0aGF0IHdlcmUgY3Jhc2hpbmcg
b3IgdGltaW5nIG91dCBpbiBpc29sYXRlZCB0cmVlIG1vZGUuCisKKyAgICAgICAgVGhlIFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHdhcyBjYWxsaW5nIHRoZSB3aWRnZXQoKSBtZXRob2Qg
b24gdGhlCisgICAgICAgIEFYIHRocmVhZCwgd2hpY2ggY3JlYXRlcyBwcm9ibGVtcyBiZWNhdXNl
IHRoaXMgb2JqZWN0IGlzIG5vdCB0aHJlYWQKKyAgICAgICAgc2FmZSBhbmQgaXQgaXMgY3JlYXRl
ZCBvbiB0aGUgbWFpbiB0aHJlYWQuIFRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgd2UKKyAgICAgICAg
aGF2ZSB0byBkaXNwYXRjaCB0aG9zZSBjYWxscyB0byB0aGUgbWFpbiB0aHJlYWQuIFNpbmNlIHdp
ZGdldCgpIGlzCisgICAgICAgIGNhbGxlZCB2ZXJ5IG9mdGVuIG5vdywgZm9yIGV2ZXJ5IHJlcXVl
c3Qgb2YgdGhlIGNoaWxkcmVuIG9mIGEgbGVhZiBub2RlLAorICAgICAgICBhZGRlZCBBWENvcmVP
YmplY3Q6OmlzV2lkZ2V0KCkgdG8gYmUgYWJsZSB0byBjaGVjayBmb3IgaXQgd2l0aG91dCBoYXZp
bmcKKyAgICAgICAgdG8gcmV0dXJuIHRoZSBXaWRnZXQgb2JqZWN0LiBUaGUgSXNXaWRnZXQgcHJv
cGVydHkgaXMgY2FjaGVkIGluIHRoZQorICAgICAgICBBWElzb2xhdGVkT2JqZWN0LCBoZW5jZSBs
aW1pdGluZyB0aGUgbnVtYmVyIG9mIHRpbWVzIHdlIGhhdmUgdG8gaGl0IHRoZQorICAgICAgICBt
YWluIHRocmVhZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOgorICAgICAgICBSZW1vdmVkIGluY2x1ZGUgaGVhZGVyIHRoYXQgaXMgbm90IHVz
ZWQgaW4gdGhpcyBjcHAuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNX
aWRnZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6d2lkZ2V0IGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6Omlu
aXRpYWxpemVBdHRyaWJ1dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmpl
Y3Q6OndpZGdldCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIHJlbmRlcldpZGdldENoaWxkcmVuXSk6CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAg
ICAgICAgKGlzTWF0Y2hpbmdQbHVnaW4pOgorCiAyMDIxLTEwLTE0ICBBbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEFwcGx5IHRoZSBsaW5lLWdhcCBm
b250IG1ldHJpY3Mgd2hlbiBjb21wdXRpbmcgdGhlIGxheW91dCBib3VuZHMgZm9yIGlubGluZSBi
b3hlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCA3M2I3OWNiZTAzNzllOGEwNTE5ZmY3ZTUwMWI1Nzlk
NWVhYTIxZDY0Li5kNWU4ZTFmZmZhYjA2YTA4MGYwZjI4MTczNTE5YzhjMWNlY2RlNDU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcApAQCAtNzQsNyArNzQsNiBAQAogI2luY2x1ZGUgIlRleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVk
ZSAiVmlzaWJsZVVuaXRzLmgiCi0jaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNs
dWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCA0ZGZhNzIwOGNlZWY1
MzQ5YjYzMzA2M2NlM2E2YTI0ZjYwOTk1NDM0Li4yMGE3YzNmNDk3NGI1ZWY1NTQzNTVlNDRhMGI5
OWRjMGU1ZWI4NDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDQyLDEzICs0NDIsMTYgQEAgcHVibGljOgogICAgIFN0
cmluZyBzZWxlY3RlZFRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTdHJpbmcoKTsgfQog
ICAgIFN0cmluZyBhY2Nlc3NLZXkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxsQXRvbSgp
OyB9CiAgICAgU3RyaW5nIGFjdGlvblZlcmIoKSBjb25zdCBvdmVycmlkZTsKKworICAgIGJvb2wg
aXNXaWRnZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIFdpZGdldCog
d2lkZ2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIFBsYXRmb3Jt
V2lkZ2V0IHBsYXRmb3JtV2lkZ2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsg
fQorICAgIFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBudWxscHRyOyB9CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZW1vdGVBWE9i
amVjdFJlZiByZW1vdGVQYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlkZTsKICAgICBGbG9hdFJl
Y3QgY29udmVydFJlY3RUb1BsYXRmb3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0JiwgQWNjZXNzaWJp
bGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICBXaWRnZXQq
IHdpZGdldEZvckF0dGFjaG1lbnRWaWV3KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0
cjsgfQogICAgIFBhZ2UqIHBhZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBEb2N1bWVudCogZG9j
dW1lbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICBGcmFtZVZpZXcqIGRvY3VtZW50RnJhbWVWaWV3
KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCmluZGV4IDdlN2I4MzRjOGI0
MjRmNWFjNDQ1NTQyNmNlN2Y1OTgxZDE0ZWRhYTkuLjI2ODRlNGZhOTlhYmI4MGI1ZTgxODMwNjli
OWY5NDgwOTYzNzJhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC04NSw3ICs4NSw2IEBA
IGNsYXNzIFBhdGg7CiBjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgUmVuZGVyT2JqZWN0Owog
Y2xhc3MgU2Nyb2xsVmlldzsKLWNsYXNzIFdpZGdldDsKIAogc3RydWN0IEFjY2Vzc2liaWxpdHlU
ZXh0Owogc3RydWN0IFNjcm9sbFJlY3RUb1Zpc2libGVPcHRpb25zOwpAQCAtMTE4NywxMyArMTE4
NiwxNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vzc0tleSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIFN0cmluZyBhY3Rpb25WZXJiKCkgY29uc3QgPSAwOworCisgICAgLy8gV2lkZ2V0IHN1cHBv
cnQuCisgICAgdmlydHVhbCBib29sIGlzV2lkZ2V0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
V2lkZ2V0KiB3aWRnZXQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBQbGF0Zm9ybVdpZGdldCBw
bGF0Zm9ybVdpZGdldCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdpZGdldCogd2lkZ2V0Rm9y
QXR0YWNobWVudFZpZXcoKSBjb25zdCA9IDA7CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2
aXJ0dWFsIFJlbW90ZUFYT2JqZWN0UmVmIHJlbW90ZVBhcmVudE9iamVjdCgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBjb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShjb25zdCBG
bG9hdFJlY3QmLCBBY2Nlc3NpYmlsaXR5Q29udmVyc2lvblNwYWNlKSBjb25zdCA9IDA7CiAjZW5k
aWYKLSAgICB2aXJ0dWFsIFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCBQYWdlKiBwYWdlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgRG9j
dW1lbnQqIGRvY3VtZW50KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgRnJhbWVWaWV3KiBkb2N1
bWVudEZyYW1lVmlldygpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGRmZWYw
ZWM0ZDgxZjlkMDA0NTQ0ODEzNTA0YzI2NTZmNTdlNjY5ZjQuLjQxOGYyYTE0MTA2MzBiZWRkOTg4
NjlkZmE2ZDMyNDNiZDQyOWI4NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjAwNCwxMSAr
MjAwNCwxNCBAQCBEb2N1bWVudCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9jdW1lbnQo
KSBjb25zdAogICAgIHJldHVybiAmbV9yZW5kZXJlci0+ZG9jdW1lbnQoKTsKIH0KIAorYm9vbCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc1dpZGdldCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHdpZGdldCgpOworfQorCiBXaWRnZXQqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OndpZGdl
dCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3JlbmRlcmVyIHx8ICFpczxSZW5kZXJXaWRnZXQ+KCpt
X3JlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGRvd25jYXN0
PFJlbmRlcldpZGdldD4oKm1fcmVuZGVyZXIpLndpZGdldCgpOworICAgIHJldHVybiBpczxSZW5k
ZXJXaWRnZXQ+KG1fcmVuZGVyZXIuZ2V0KCkpID8gZG93bmNhc3Q8UmVuZGVyV2lkZ2V0PigqbV9y
ZW5kZXJlcikud2lkZ2V0KCkgOiBudWxscHRyOwogfQogCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5UGFyZW50Rm9ySW1hZ2VNYXAo
SFRNTE1hcEVsZW1lbnQqIG1hcCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggMzExMWU0NGQ5
OWFlMDRkN2MyMTFhYTMxOTBiNWRmMTc3Njk5NDkzZS4uYzlkMzA2MjYxNWNiNzRkNzQyNjRmOWU0
NGVlZWY2NDM3NTVlY2EzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTUwLDggKzUwLDcgQEAgY2xh
c3MgTm9kZTsKIGNsYXNzIFJlbmRlclRleHRDb250cm9sOwogY2xhc3MgUmVuZGVyVmlldzsKIGNs
YXNzIFZpc2libGVTZWxlY3Rpb247Ci1jbGFzcyBXaWRnZXQ7Ci0gICAgCisKIGNsYXNzIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QsIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBjcmVhdGUoUmVuZGVy
T2JqZWN0Kik7CkBAIC0xMzYsNiArMTM1LDggQEAgcHVibGljOgogICAgIFN0cmluZyBzZWxlY3Rl
ZFRleHQoKSBjb25zdCBvdmVycmlkZTsKICAgICBTdHJpbmcgYWNjZXNzS2V5KCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgU3RyaW5nIGFjdGlvblZlcmIoKSBjb25zdCBvdmVycmlkZTsKKworICAgIGJv
b2wgaXNXaWRnZXQoKSBjb25zdCBvdmVycmlkZTsKICAgICBXaWRnZXQqIHdpZGdldCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBv
dmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZG9jdW1lbnRMaW5rcygp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCA0YjBmZWY1YjA3OWFi
OWYyOTUyNTVjYmE2OWU2NmU4ZjlmYmI4Y2ExLi5kMDcxM2YzOGNjNDhjZTJjYzRmZjQ0ODA4MWM4
NzY5YmZkOTIxYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtNDE4LDYgKzQx
OCw5IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhD
b3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290CiAgICAgICAgIHNldE9iamVjdFZlY3RvclBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpEb2N1bWVudExpbmtzLCBvYmplY3QuZG9jdW1lbnRMaW5r
cygpKTsKICAgICB9CiAKKyAgICBpZiAob2JqZWN0LmlzV2lkZ2V0KCkpCisgICAgICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc1dpZGdldCwgdHJ1ZSk7CisKICAgICBpbml0aWFsaXpl
UGxhdGZvcm1Qcm9wZXJ0aWVzKG9iamVjdCwgaXNSb290KTsKIH0KIApAQCAtMjAzMiw5ICsyMDM1
LDggQEAgVGV4dEl0ZXJhdG9yQmVoYXZpb3JzIEFYSXNvbGF0ZWRPYmplY3Q6OnRleHRJdGVyYXRv
ckJlaGF2aW9yRm9yVGV4dFJhbmdlKCkgY29uc3QKIAogV2lkZ2V0KiBBWElzb2xhdGVkT2JqZWN0
Ojp3aWRnZXQoKSBjb25zdAogewotICAgIGlmIChhdXRvKiBvYmplY3QgPSBhc3NvY2lhdGVkQVhP
YmplY3QoKSkKLSAgICAgICAgcmV0dXJuIG9iamVjdC0+d2lkZ2V0KCk7Ci0gICAgcmV0dXJuIG51
bGxwdHI7CisgICAgYXV0byogb2JqZWN0ID0gYXNzb2NpYXRlZEFYT2JqZWN0KCk7CisgICAgcmV0
dXJuIG9iamVjdCA/IG9iamVjdC0+d2lkZ2V0KCkgOiBudWxscHRyOwogfQogCiBQbGF0Zm9ybVdp
ZGdldCBBWElzb2xhdGVkT2JqZWN0OjpwbGF0Zm9ybVdpZGdldCgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmgKaW5kZXggZjcyZmE4YTFkZjcwMDEyZGFmMzM5NzA2OTM1OWI5ZThkMTlkNzNh
Yi4uZTAzOWZkMjhmZWE0OGE0Y2ViNzBiOTdiZDg1MmQ5MjYxYTc1ZDg0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRPYmplY3QuaApAQCAtNTg0LDE1ICs1ODQsMTcgQEAgcHJpdmF0ZToKICAgICBQYXRoIGVs
ZW1lbnRQYXRoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gcGF0aEF0dHJpYnV0ZVZhbHVlKEFY
UHJvcGVydHlOYW1lOjpQYXRoKTsgfTsKICAgICBib29sIHN1cHBvcnRzUGF0aCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9y
dHNQYXRoKTsgfQogICAgIFRleHRJdGVyYXRvckJlaGF2aW9ycyB0ZXh0SXRlcmF0b3JCZWhhdmlv
ckZvclRleHRSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgYm9vbCBpc1dpZGdldCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6
SXNXaWRnZXQpOyB9CiAgICAgV2lkZ2V0KiB3aWRnZXQoKSBjb25zdCBvdmVycmlkZTsKICAgICBQ
bGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpZGdldCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIAorICAg
IFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBvdmVycmlkZTsKKwogICAg
IEhhc2hNYXA8U3RyaW5nLCBBWEVkaXRpbmdTdHlsZVZhbHVlVmFyaWFudD4gcmVzb2x2ZWRFZGl0
aW5nU3R5bGVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmVt
b3RlQVhPYmplY3RSZWYgcmVtb3RlUGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
RmxvYXRSZWN0IGNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlKGNvbnN0IEZsb2F0UmVjdCYsIEFj
Y2Vzc2liaWxpdHlDb252ZXJzaW9uU3BhY2UpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
V2lkZ2V0KiB3aWRnZXRGb3JBdHRhY2htZW50VmlldygpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBh
Z2UqIHBhZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25z
dCBvdmVycmlkZTsKICAgICBGcmFtZVZpZXcqIGRvY3VtZW50RnJhbWVWaWV3KCkgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCA2MTU2NDVhMTY3NWQ4ZTgyZGViYjZiMzQx
OWUwNGRkNmUwNTg4MjgyLi4wNjEwMjJkNjM0M2YwMTQwNGU3Yjc2NGIyNzUwMzgzNDhmZmRjMDc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTIyOCw2ICsyMjgsNyBAQCBlbnVtIGNsYXNzIEFY
UHJvcGVydHlOYW1lIDogdWludDE2X3QgewogICAgIElzVmFsdWVBdXRvZmlsbEF2YWlsYWJsZSwK
ICAgICBJc1Zpc2libGUsCiAgICAgSXNWaXNpdGVkLAorICAgIElzV2lkZ2V0LAogICAgIEtleVNo
b3J0Y3V0c1ZhbHVlLAogICAgIExhbmd1YWdlLAogICAgIExheW91dENvdW50LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBjOTM2NTQ2NzhlNmRmYWIxMzE2NmRh
M2E0NDViOTBiNWFmZGFkMjQ0Li4yNzRhNzhjYmY0NGZiYmM3MGM2NDYxZDIxMDRlN2VkNmFiNmI2
YzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTY2MCwy
MCArMTY2MCwyOSBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICBy
ZXR1cm4gb2JqZWN0QXR0cmlidXRlczsKIH0KIAotLSAoTlNBcnJheSopcmVuZGVyV2lkZ2V0Q2hp
bGRyZW4KKy0gKE5TQXJyYXkgKilyZW5kZXJXaWRnZXRDaGlsZHJlbgogewogICAgIGF1dG8qIGJh
Y2tpbmdPYmplY3QgPSBzZWxmLmF4QmFja2luZ09iamVjdDsKLSAgICBpZiAoIWJhY2tpbmdPYmpl
Y3QpCisgICAgaWYgKCFiYWNraW5nT2JqZWN0IHx8ICFiYWNraW5nT2JqZWN0LT5pc1dpZGdldCgp
KQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgYXV0byogd2lkZ2V0ID0gYmFja2luZ09iamVj
dC0+d2lkZ2V0KCk7Ci0gICAgaWYgKHdpZGdldCAmJiB3aWRnZXQtPmFjY2Vzc2liaWxpdHlPYmpl
Y3QoKSkKLSAgICAgICAgcmV0dXJuIEBbd2lkZ2V0LT5hY2Nlc3NpYmlsaXR5T2JqZWN0KCldOwor
ICAgIGlkIGNoaWxkID0gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZy
b21NYWluVGhyZWFkPGlkPihbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4g
UmV0YWluUHRyPGlkPiB7CisgICAgICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBwcm90ZWN0ZWRT
ZWxmLmdldCgpLmF4QmFja2luZ09iamVjdDsKKyAgICAgICAgaWYgKCFiYWNraW5nT2JqZWN0KQor
ICAgICAgICAgICAgcmV0dXJuIG5pbDsKKworICAgICAgICBhdXRvKiB3aWRnZXQgPSBiYWNraW5n
T2JqZWN0LT53aWRnZXQoKTsKKyAgICAgICAgcmV0dXJuIHdpZGdldCA/IHdpZGdldC0+YWNjZXNz
aWJpbGl0eU9iamVjdCgpIDogbmlsOworICAgIH0pOworCisgICAgaWYgKGNoaWxkKQorICAgICAg
ICByZXR1cm4gQFtjaGlsZF07CiAKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIHJldHVybiBbYmFja2luZ09iamVjdC0+cGxhdGZvcm1XaWRnZXQoKSBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdOwog
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQorfQogCiAtIChpZClyZW1v
dGVBY2Nlc3NpYmlsaXR5UGFyZW50T2JqZWN0CiB7CkBAIC0yMTY4LDEwICsyMTc3LDkgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIHJldHVybiBwYXJlbnQt
PndyYXBwZXIoKTsKICAgICB9CiAKLSAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVhbFRvU3Ry
aW5nOiBOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZV0gfHwgW2F0dHJpYnV0ZU5hbWUg
aXNFcXVhbFRvU3RyaW5nOiBOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkluTmF2aWdhdGlvbk9yZGVy
QXR0cmlidXRlXSkgeworICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdIHx8IFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxU
b1N0cmluZzpOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkluTmF2aWdhdGlvbk9yZGVyQXR0cmlidXRl
XSkgewogICAgICAgICBpZiAoIXNlbGYuY2hpbGRyZW5WZWN0b3JTaXplKSB7Ci0gICAgICAgICAg
ICBOU0FycmF5KiBjaGlsZHJlbiA9IFtzZWxmIHJlbmRlcldpZGdldENoaWxkcmVuXTsKLSAgICAg
ICAgICAgIGlmIChjaGlsZHJlbiAhPSBuaWwpCisgICAgICAgICAgICBpZiAoTlNBcnJheSAqY2hp
bGRyZW4gPSBbc2VsZiByZW5kZXJXaWRnZXRDaGlsZHJlbl0pCiAgICAgICAgICAgICAgICAgcmV0
dXJuIGNoaWxkcmVuOwogICAgICAgICB9CiAKQEAgLTM2NTQsMTQgKzM2NjIsMTkgQEAgZW51bSBj
bGFzcyBUZXh0VW5pdCB7CiAgICAgfSk7CiB9CiAKLXN0YXRpYyBCT09MIGlzTWF0Y2hpbmdQbHVn
aW4oQVhDb3JlT2JqZWN0KiBheE9iamVjdCwgY29uc3QgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRl
cmlhJiBjcml0ZXJpYSkKK3N0YXRpYyBib29sIGlzTWF0Y2hpbmdQbHVnaW4oQVhDb3JlT2JqZWN0
KiBheE9iamVjdCwgY29uc3QgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhJiBjcml0ZXJpYSkK
IHsKLSAgICBhdXRvKiB3aWRnZXQgPSBheE9iamVjdC0+d2lkZ2V0KCk7Ci0gICAgaWYgKCFpczxQ
bHVnaW5WaWV3QmFzZT4od2lkZ2V0KSkKKyAgICBpZiAoIWF4T2JqZWN0LT5pc1dpZGdldCgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gY3JpdGVyaWEuc2VhcmNoS2V5cy5j
b250YWlucyhBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpBbnlUeXBlKQotICAgICAgICAmJiAoIWNy
aXRlcmlhLnZpc2libGVPbmx5IHx8IGRvd25jYXN0PFBsdWdpblZpZXdCYXNlPih3aWRnZXQpLT5p
c1Zpc2libGUoKSk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9t
TWFpblRocmVhZDxib29sPihbJmF4T2JqZWN0LCAmY3JpdGVyaWFdICgpIC0+IGJvb2wgeworICAg
ICAgICBhdXRvKiB3aWRnZXQgPSBheE9iamVjdC0+d2lkZ2V0KCk7CisgICAgICAgIGlmICghaXM8
UGx1Z2luVmlld0Jhc2U+KHdpZGdldCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgcmV0dXJuIGNyaXRlcmlhLnNlYXJjaEtleXMuY29udGFpbnMoQWNjZXNzaWJpbGl0eVNl
YXJjaEtleTo6QW55VHlwZSkKKyAgICAgICAgICAgICYmICghY3JpdGVyaWEudmlzaWJsZU9ubHkg
fHwgZG93bmNhc3Q8UGx1Z2luVmlld0Jhc2U+KHdpZGdldCktPmlzVmlzaWJsZSgpKTsKKyAgICB9
KTsKIH0KIAogQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfQkVHSU4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441366</attachid>
            <date>2021-10-15 05:27:49 -0700</date>
            <delta_ts>2021-10-15 12:59:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231766-20211015082748.patch</filename>
            <type>text/plain</type>
            <size>13696</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODgzYWY4OWQ4ZWFlMDIz
Y2ViZmNiYTQwNmU4OTFlZDQ5YmY3ZWY5MC4uYjRiYjlmNzczMzVkNWFkYjI0YWE3ZmJkZWY1YWI5
NGI0YmRlMTY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTEwLTE0ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBDYWxscyB0byBB
WENvcmVPYmplY3Q6OndpZGdldCgpIGhhdmUgdG8gYmUgZGlzcGF0Y2ggdG8gdGhlIG1haW4gdGhy
ZWFkIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMTc2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQyNzEw
Mzk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCisKKyAgICAgICAgVGhp
cyBwYXRjaCBmaXhlcyBzZXZlcmFsIGRvemVucyBvZiB0ZXN0cyB0aGF0IHdlcmUgY3Jhc2hpbmcg
b3IgdGltaW5nIG91dCBpbiBpc29sYXRlZCB0cmVlIG1vZGUuCisKKyAgICAgICAgVGhlIFdlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIHdhcyBjYWxsaW5nIHRoZSB3aWRnZXQoKSBtZXRob2Qg
b24gdGhlCisgICAgICAgIEFYIHRocmVhZCwgd2hpY2ggY3JlYXRlcyBwcm9ibGVtcyBiZWNhdXNl
IHRoaXMgb2JqZWN0IGlzIG5vdCB0aHJlYWQKKyAgICAgICAgc2FmZSBhbmQgaXQgaXMgY3JlYXRl
ZCBvbiB0aGUgbWFpbiB0aHJlYWQuIFRvIGF2b2lkIHRoaXMgcHJvYmxlbSwgd2UKKyAgICAgICAg
aGF2ZSB0byBkaXNwYXRjaCB0aG9zZSBjYWxscyB0byB0aGUgbWFpbiB0aHJlYWQuIFNpbmNlIHdp
ZGdldCgpIGlzCisgICAgICAgIGNhbGxlZCB2ZXJ5IG9mdGVuIG5vdywgZm9yIGV2ZXJ5IHJlcXVl
c3Qgb2YgdGhlIGNoaWxkcmVuIG9mIGEgbGVhZiBub2RlLAorICAgICAgICBhZGRlZCBBWENvcmVP
YmplY3Q6OmlzV2lkZ2V0KCkgdG8gYmUgYWJsZSB0byBjaGVjayBmb3IgaXQgd2l0aG91dCBoYXZp
bmcKKyAgICAgICAgdG8gcmV0dXJuIHRoZSBXaWRnZXQgb2JqZWN0LiBUaGUgSXNXaWRnZXQgcHJv
cGVydHkgaXMgY2FjaGVkIGluIHRoZQorICAgICAgICBBWElzb2xhdGVkT2JqZWN0LCBoZW5jZSBs
aW1pdGluZyB0aGUgbnVtYmVyIG9mIHRpbWVzIHdlIGhhdmUgdG8gaGl0IHRoZQorICAgICAgICBt
YWluIHRocmVhZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuY3BwOgorICAgICAgICBSZW1vdmVkIGluY2x1ZGUgaGVhZGVyIHRoYXQgaXMgbm90IHVz
ZWQgaW4gdGhpcyBjcHAuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNX
aWRnZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6d2lkZ2V0IGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6Omlu
aXRpYWxpemVBdHRyaWJ1dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmpl
Y3Q6OndpZGdldCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlLmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW06CisgICAgICAgICgtW1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIHJlbmRlcldpZGdldENoaWxkcmVuXSk6CisgICAgICAgICgtW1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKKyAg
ICAgICAgKGlzTWF0Y2hpbmdQbHVnaW4pOgorCiAyMDIxLTEwLTE0ICBBbGFuIEJ1anRhcyAgPHph
bGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIEFwcGx5IHRoZSBsaW5lLWdhcCBm
b250IG1ldHJpY3Mgd2hlbiBjb21wdXRpbmcgdGhlIGxheW91dCBib3VuZHMgZm9yIGlubGluZSBi
b3hlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCA3M2I3OWNiZTAzNzllOGEwNTE5ZmY3ZTUwMWI1Nzlk
NWVhYTIxZDY0Li5kNWU4ZTFmZmZhYjA2YTA4MGYwZjI4MTczNTE5YzhjMWNlY2RlNDU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcApAQCAtNzQsNyArNzQsNiBAQAogI2luY2x1ZGUgIlRleHRDb250cm9sSW5u
ZXJFbGVtZW50cy5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVk
ZSAiVmlzaWJsZVVuaXRzLmgiCi0jaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNs
dWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCA0ZGZhNzIwOGNlZWY1
MzQ5YjYzMzA2M2NlM2E2YTI0ZjYwOTk1NDM0Li4yMGE3YzNmNDk3NGI1ZWY1NTQzNTVlNDRhMGI5
OWRjMGU1ZWI4NDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuaApAQCAtNDQyLDEzICs0NDIsMTYgQEAgcHVibGljOgogICAgIFN0
cmluZyBzZWxlY3RlZFRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBTdHJpbmcoKTsgfQog
ICAgIFN0cmluZyBhY2Nlc3NLZXkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxsQXRvbSgp
OyB9CiAgICAgU3RyaW5nIGFjdGlvblZlcmIoKSBjb25zdCBvdmVycmlkZTsKKworICAgIGJvb2wg
aXNXaWRnZXQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIFdpZGdldCog
d2lkZ2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIFBsYXRmb3Jt
V2lkZ2V0IHBsYXRmb3JtV2lkZ2V0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsg
fQorICAgIFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBudWxscHRyOyB9CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZW1vdGVBWE9i
amVjdFJlZiByZW1vdGVQYXJlbnRPYmplY3QoKSBjb25zdCBvdmVycmlkZTsKICAgICBGbG9hdFJl
Y3QgY29udmVydFJlY3RUb1BsYXRmb3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0JiwgQWNjZXNzaWJp
bGl0eUNvbnZlcnNpb25TcGFjZSkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICBXaWRnZXQq
IHdpZGdldEZvckF0dGFjaG1lbnRWaWV3KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0
cjsgfQogICAgIFBhZ2UqIHBhZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBEb2N1bWVudCogZG9j
dW1lbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICBGcmFtZVZpZXcqIGRvY3VtZW50RnJhbWVWaWV3
KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCmluZGV4IDdlN2I4MzRjOGI0
MjRmNWFjNDQ1NTQyNmNlN2Y1OTgxZDE0ZWRhYTkuLjI2ODRlNGZhOTlhYmI4MGI1ZTgxODMwNjli
OWY5NDgwOTYzNzJhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC04NSw3ICs4NSw2IEBA
IGNsYXNzIFBhdGg7CiBjbGFzcyBRdWFsaWZpZWROYW1lOwogY2xhc3MgUmVuZGVyT2JqZWN0Owog
Y2xhc3MgU2Nyb2xsVmlldzsKLWNsYXNzIFdpZGdldDsKIAogc3RydWN0IEFjY2Vzc2liaWxpdHlU
ZXh0Owogc3RydWN0IFNjcm9sbFJlY3RUb1Zpc2libGVPcHRpb25zOwpAQCAtMTE4NywxMyArMTE4
NiwxNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgc2VsZWN0ZWRUZXh0KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGFjY2Vzc0tleSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIFN0cmluZyBhY3Rpb25WZXJiKCkgY29uc3QgPSAwOworCisgICAgLy8gV2lkZ2V0IHN1cHBv
cnQuCisgICAgdmlydHVhbCBib29sIGlzV2lkZ2V0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwg
V2lkZ2V0KiB3aWRnZXQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBQbGF0Zm9ybVdpZGdldCBw
bGF0Zm9ybVdpZGdldCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdpZGdldCogd2lkZ2V0Rm9y
QXR0YWNobWVudFZpZXcoKSBjb25zdCA9IDA7CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2
aXJ0dWFsIFJlbW90ZUFYT2JqZWN0UmVmIHJlbW90ZVBhcmVudE9iamVjdCgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBjb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShjb25zdCBG
bG9hdFJlY3QmLCBBY2Nlc3NpYmlsaXR5Q29udmVyc2lvblNwYWNlKSBjb25zdCA9IDA7CiAjZW5k
aWYKLSAgICB2aXJ0dWFsIFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCBQYWdlKiBwYWdlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgRG9j
dW1lbnQqIGRvY3VtZW50KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgRnJhbWVWaWV3KiBkb2N1
bWVudEZyYW1lVmlldygpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGRmZWYw
ZWM0ZDgxZjlkMDA0NTQ0ODEzNTA0YzI2NTZmNTdlNjY5ZjQuLjQxOGYyYTE0MTA2MzBiZWRkOTg4
NjlkZmE2ZDMyNDNiZDQyOWI4NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjAwNCwxMSAr
MjAwNCwxNCBAQCBEb2N1bWVudCogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9jdW1lbnQo
KSBjb25zdAogICAgIHJldHVybiAmbV9yZW5kZXJlci0+ZG9jdW1lbnQoKTsKIH0KIAorYm9vbCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc1dpZGdldCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHdpZGdldCgpOworfQorCiBXaWRnZXQqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OndpZGdl
dCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3JlbmRlcmVyIHx8ICFpczxSZW5kZXJXaWRnZXQ+KCpt
X3JlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGRvd25jYXN0
PFJlbmRlcldpZGdldD4oKm1fcmVuZGVyZXIpLndpZGdldCgpOworICAgIHJldHVybiBpczxSZW5k
ZXJXaWRnZXQ+KG1fcmVuZGVyZXIuZ2V0KCkpID8gZG93bmNhc3Q8UmVuZGVyV2lkZ2V0PigqbV9y
ZW5kZXJlcikud2lkZ2V0KCkgOiBudWxscHRyOwogfQogCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphY2Nlc3NpYmlsaXR5UGFyZW50Rm9ySW1hZ2VNYXAo
SFRNTE1hcEVsZW1lbnQqIG1hcCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggMzExMWU0NGQ5
OWFlMDRkN2MyMTFhYTMxOTBiNWRmMTc3Njk5NDkzZS4uYzlkMzA2MjYxNWNiNzRkNzQyNjRmOWU0
NGVlZWY2NDM3NTVlY2EzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKQEAgLTUwLDggKzUwLDcgQEAgY2xh
c3MgTm9kZTsKIGNsYXNzIFJlbmRlclRleHRDb250cm9sOwogY2xhc3MgUmVuZGVyVmlldzsKIGNs
YXNzIFZpc2libGVTZWxlY3Rpb247Ci1jbGFzcyBXaWRnZXQ7Ci0gICAgCisKIGNsYXNzIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QgOiBwdWJsaWMgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QsIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PiBjcmVhdGUoUmVuZGVy
T2JqZWN0Kik7CkBAIC0xMzYsNiArMTM1LDggQEAgcHVibGljOgogICAgIFN0cmluZyBzZWxlY3Rl
ZFRleHQoKSBjb25zdCBvdmVycmlkZTsKICAgICBTdHJpbmcgYWNjZXNzS2V5KCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgU3RyaW5nIGFjdGlvblZlcmIoKSBjb25zdCBvdmVycmlkZTsKKworICAgIGJv
b2wgaXNXaWRnZXQoKSBjb25zdCBvdmVycmlkZTsKICAgICBXaWRnZXQqIHdpZGdldCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBv
dmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3IgZG9jdW1lbnRMaW5rcygp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCA0YjBmZWY1YjA3OWFi
OWYyOTUyNTVjYmE2OWU2NmU4ZjlmYmI4Y2ExLi5kMDcxM2YzOGNjNDhjZTJjYzRmZjQ0ODA4MWM4
NzY5YmZkOTIxYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtNDE4LDYgKzQx
OCw5IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhD
b3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290CiAgICAgICAgIHNldE9iamVjdFZlY3RvclBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpEb2N1bWVudExpbmtzLCBvYmplY3QuZG9jdW1lbnRMaW5r
cygpKTsKICAgICB9CiAKKyAgICBpZiAob2JqZWN0LmlzV2lkZ2V0KCkpCisgICAgICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc1dpZGdldCwgdHJ1ZSk7CisKICAgICBpbml0aWFsaXpl
UGxhdGZvcm1Qcm9wZXJ0aWVzKG9iamVjdCwgaXNSb290KTsKIH0KIApAQCAtMjAzMiw5ICsyMDM1
LDggQEAgVGV4dEl0ZXJhdG9yQmVoYXZpb3JzIEFYSXNvbGF0ZWRPYmplY3Q6OnRleHRJdGVyYXRv
ckJlaGF2aW9yRm9yVGV4dFJhbmdlKCkgY29uc3QKIAogV2lkZ2V0KiBBWElzb2xhdGVkT2JqZWN0
Ojp3aWRnZXQoKSBjb25zdAogewotICAgIGlmIChhdXRvKiBvYmplY3QgPSBhc3NvY2lhdGVkQVhP
YmplY3QoKSkKLSAgICAgICAgcmV0dXJuIG9iamVjdC0+d2lkZ2V0KCk7Ci0gICAgcmV0dXJuIG51
bGxwdHI7CisgICAgYXV0byogb2JqZWN0ID0gYXNzb2NpYXRlZEFYT2JqZWN0KCk7CisgICAgcmV0
dXJuIG9iamVjdCA/IG9iamVjdC0+d2lkZ2V0KCkgOiBudWxscHRyOwogfQogCiBQbGF0Zm9ybVdp
ZGdldCBBWElzb2xhdGVkT2JqZWN0OjpwbGF0Zm9ybVdpZGdldCgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmgKaW5kZXggZjcyZmE4YTFkZjcwMDEyZGFmMzM5NzA2OTM1OWI5ZThkMTlkNzNh
Yi4uZTAzOWZkMjhmZWE0OGE0Y2ViNzBiOTdiZDg1MmQ5MjYxYTc1ZDg0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRPYmplY3QuaApAQCAtNTg0LDE1ICs1ODQsMTcgQEAgcHJpdmF0ZToKICAgICBQYXRoIGVs
ZW1lbnRQYXRoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gcGF0aEF0dHJpYnV0ZVZhbHVlKEFY
UHJvcGVydHlOYW1lOjpQYXRoKTsgfTsKICAgICBib29sIHN1cHBvcnRzUGF0aCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6U3VwcG9y
dHNQYXRoKTsgfQogICAgIFRleHRJdGVyYXRvckJlaGF2aW9ycyB0ZXh0SXRlcmF0b3JCZWhhdmlv
ckZvclRleHRSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgYm9vbCBpc1dpZGdldCgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6
SXNXaWRnZXQpOyB9CiAgICAgV2lkZ2V0KiB3aWRnZXQoKSBjb25zdCBvdmVycmlkZTsKICAgICBQ
bGF0Zm9ybVdpZGdldCBwbGF0Zm9ybVdpZGdldCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIAorICAg
IFdpZGdldCogd2lkZ2V0Rm9yQXR0YWNobWVudFZpZXcoKSBjb25zdCBvdmVycmlkZTsKKwogICAg
IEhhc2hNYXA8U3RyaW5nLCBBWEVkaXRpbmdTdHlsZVZhbHVlVmFyaWFudD4gcmVzb2x2ZWRFZGl0
aW5nU3R5bGVzKCkgY29uc3Qgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmVt
b3RlQVhPYmplY3RSZWYgcmVtb3RlUGFyZW50T2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
RmxvYXRSZWN0IGNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlKGNvbnN0IEZsb2F0UmVjdCYsIEFj
Y2Vzc2liaWxpdHlDb252ZXJzaW9uU3BhY2UpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCi0gICAg
V2lkZ2V0KiB3aWRnZXRGb3JBdHRhY2htZW50VmlldygpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBh
Z2UqIHBhZ2UoKSBjb25zdCBvdmVycmlkZTsKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25z
dCBvdmVycmlkZTsKICAgICBGcmFtZVZpZXcqIGRvY3VtZW50RnJhbWVWaWV3KCkgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCA2MTU2NDVhMTY3NWQ4ZTgyZGViYjZiMzQx
OWUwNGRkNmUwNTg4MjgyLi4wNjEwMjJkNjM0M2YwMTQwNGU3Yjc2NGIyNzUwMzgzNDhmZmRjMDc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9B
WElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTIyOCw2ICsyMjgsNyBAQCBlbnVtIGNsYXNzIEFY
UHJvcGVydHlOYW1lIDogdWludDE2X3QgewogICAgIElzVmFsdWVBdXRvZmlsbEF2YWlsYWJsZSwK
ICAgICBJc1Zpc2libGUsCiAgICAgSXNWaXNpdGVkLAorICAgIElzV2lkZ2V0LAogICAgIEtleVNo
b3J0Y3V0c1ZhbHVlLAogICAgIExhbmd1YWdlLAogICAgIExheW91dENvdW50LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBjOTM2NTQ2NzhlNmRmYWIxMzE2NmRh
M2E0NDViOTBiNWFmZGFkMjQ0Li4wOWVkY2E3M2Q5YjY2MTllZTEzMzNjOWVkM2U3NzFmYzllMGY1
MTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQpAQCAtMTY2MCwx
NSArMTY2MCwyMyBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICBy
ZXR1cm4gb2JqZWN0QXR0cmlidXRlczsKIH0KIAotLSAoTlNBcnJheSopcmVuZGVyV2lkZ2V0Q2hp
bGRyZW4KKy0gKE5TQXJyYXkgKilyZW5kZXJXaWRnZXRDaGlsZHJlbgogewogICAgIGF1dG8qIGJh
Y2tpbmdPYmplY3QgPSBzZWxmLmF4QmFja2luZ09iamVjdDsKLSAgICBpZiAoIWJhY2tpbmdPYmpl
Y3QpCisgICAgaWYgKCFiYWNraW5nT2JqZWN0IHx8ICFiYWNraW5nT2JqZWN0LT5pc1dpZGdldCgp
KQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgYXV0byogd2lkZ2V0ID0gYmFja2luZ09iamVj
dC0+d2lkZ2V0KCk7Ci0gICAgaWYgKHdpZGdldCAmJiB3aWRnZXQtPmFjY2Vzc2liaWxpdHlPYmpl
Y3QoKSkKLSAgICAgICAgcmV0dXJuIEBbd2lkZ2V0LT5hY2Nlc3NpYmlsaXR5T2JqZWN0KCldOwor
ICAgIGlkIGNoaWxkID0gQWNjZXNzaWJpbGl0eTo6cmV0cmlldmVBdXRvcmVsZWFzZWRWYWx1ZUZy
b21NYWluVGhyZWFkPGlkPihbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKV0gKCkgLT4g
UmV0YWluUHRyPGlkPiB7CisgICAgICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBwcm90ZWN0ZWRT
ZWxmLmdldCgpLmF4QmFja2luZ09iamVjdDsKKyAgICAgICAgaWYgKCFiYWNraW5nT2JqZWN0KQor
ICAgICAgICAgICAgcmV0dXJuIG5pbDsKKworICAgICAgICBhdXRvKiB3aWRnZXQgPSBiYWNraW5n
T2JqZWN0LT53aWRnZXQoKTsKKyAgICAgICAgcmV0dXJuIHdpZGdldCA/IHdpZGdldC0+YWNjZXNz
aWJpbGl0eU9iamVjdCgpIDogbmlsOworICAgIH0pOworCisgICAgaWYgKGNoaWxkKQorICAgICAg
ICByZXR1cm4gQFtjaGlsZF07CiAKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19C
RUdJTgogICAgIHJldHVybiBbYmFja2luZ09iamVjdC0+cGxhdGZvcm1XaWRnZXQoKSBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdOwpA
QCAtMjE2OCwxMCArMjE3Niw5IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VO
RAogICAgICAgICByZXR1cm4gcGFyZW50LT53cmFwcGVyKCk7CiAgICAgfQogCi0gICAgaWYgKFth
dHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzogTlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRy
aWJ1dGVdIHx8IFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzogTlNBY2Nlc3NpYmlsaXR5
Q2hpbGRyZW5Jbk5hdmlnYXRpb25PcmRlckF0dHJpYnV0ZV0pIHsKKyAgICBpZiAoW2F0dHJpYnV0
ZU5hbWUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlXSB8
fCBbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5J
bk5hdmlnYXRpb25PcmRlckF0dHJpYnV0ZV0pIHsKICAgICAgICAgaWYgKCFzZWxmLmNoaWxkcmVu
VmVjdG9yU2l6ZSkgewotICAgICAgICAgICAgTlNBcnJheSogY2hpbGRyZW4gPSBbc2VsZiByZW5k
ZXJXaWRnZXRDaGlsZHJlbl07Ci0gICAgICAgICAgICBpZiAoY2hpbGRyZW4gIT0gbmlsKQorICAg
ICAgICAgICAgaWYgKE5TQXJyYXkgKmNoaWxkcmVuID0gW3NlbGYgcmVuZGVyV2lkZ2V0Q2hpbGRy
ZW5dKQogICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjsKICAgICAgICAgfQogCkBAIC0z
NjU0LDE0ICszNjYxLDE5IEBAIGVudW0gY2xhc3MgVGV4dFVuaXQgewogICAgIH0pOwogfQogCi1z
dGF0aWMgQk9PTCBpc01hdGNoaW5nUGx1Z2luKEFYQ29yZU9iamVjdCogYXhPYmplY3QsIGNvbnN0
IEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSYgY3JpdGVyaWEpCitzdGF0aWMgYm9vbCBpc01h
dGNoaW5nUGx1Z2luKEFYQ29yZU9iamVjdCogYXhPYmplY3QsIGNvbnN0IEFjY2Vzc2liaWxpdHlT
ZWFyY2hDcml0ZXJpYSYgY3JpdGVyaWEpCiB7Ci0gICAgYXV0byogd2lkZ2V0ID0gYXhPYmplY3Qt
PndpZGdldCgpOwotICAgIGlmICghaXM8UGx1Z2luVmlld0Jhc2U+KHdpZGdldCkpCisgICAgaWYg
KCFheE9iamVjdC0+aXNXaWRnZXQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0
dXJuIGNyaXRlcmlhLnNlYXJjaEtleXMuY29udGFpbnMoQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6
QW55VHlwZSkKLSAgICAgICAgJiYgKCFjcml0ZXJpYS52aXNpYmxlT25seSB8fCBkb3duY2FzdDxQ
bHVnaW5WaWV3QmFzZT4od2lkZ2V0KS0+aXNWaXNpYmxlKCkpOworICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8Ym9vbD4oWyZheE9iamVjdCwgJmNy
aXRlcmlhXSAoKSAtPiBib29sIHsKKyAgICAgICAgYXV0byogd2lkZ2V0ID0gYXhPYmplY3QtPndp
ZGdldCgpOworICAgICAgICBpZiAoIWlzPFBsdWdpblZpZXdCYXNlPih3aWRnZXQpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJldHVybiBjcml0ZXJpYS5zZWFyY2hLZXlz
LmNvbnRhaW5zKEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkFueVR5cGUpCisgICAgICAgICAgICAm
JiAoIWNyaXRlcmlhLnZpc2libGVPbmx5IHx8IGRvd25jYXN0PFBsdWdpblZpZXdCYXNlPih3aWRn
ZXQpLT5pc1Zpc2libGUoKSk7CisgICAgfSk7CiB9CiAKIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVN
RU5UQVRJT05TX0JFR0lOCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>