<?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>236627</bug_id>
          
          <creation_ts>2022-02-14 18:26:59 -0800</creation_ts>
          <short_desc>Implement additional Reveal methods.</short_desc>
          <delta_ts>2022-02-15 16:51:26 -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>New Bugs</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="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1841517</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-14 18:26:59 -0800</bug_when>
    <thetext>Implement additional Reveeal methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841523</commentid>
    <comment_count>1</comment_count>
      <attachid>451977</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-14 18:46:50 -0800</bug_when>
    <thetext>Created attachment 451977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841524</commentid>
    <comment_count>2</comment_count>
      <attachid>451978</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-14 18:50:40 -0800</bug_when>
    <thetext>Created attachment 451978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841543</commentid>
    <comment_count>3</comment_count>
      <attachid>451986</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-14 19:51:52 -0800</bug_when>
    <thetext>Created attachment 451986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841565</commentid>
    <comment_count>4</comment_count>
      <attachid>451988</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-14 20:20:35 -0800</bug_when>
    <thetext>Created attachment 451988
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841584</commentid>
    <comment_count>5</comment_count>
      <attachid>451988</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-02-14 23:17:29 -0800</bug_when>
    <thetext>Comment on attachment 451988
Patch

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

&gt; Source/WebCore/editing/cocoa/DictionaryLookup.mm:430
&gt; -    if (!canCreateRevealItems() || !PAL::getRVPresenterClass())
&gt; +    if (!canCreateRevealItems() || !PAL::getRVPresenterClass() || !PAL::isRevealFrameworkAvailable())

I think you want to put the Reveal framework short circuit /before/ you go looking up RVPresenter, because RVPresenter&apos;s softlink macro has a RELEASE_ASSERT in it.

&gt; Source/WebCore/page/cocoa/EventHandlerCocoa.mm:54
&gt; +    return VisibleSelection();

Perhaps `{ }` like above?

&gt; Source/WebCore/page/cocoa/EventHandlerCocoa.mm:61
&gt; +#endif // PLATFORM(IOS_FAMILY)

Comment seems to disagree with the condition.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:7560
&gt; +    _page-&gt;prepareSelectionForContextMenuWithLocationInView(WebCore::roundedIntPoint(locationInView), [prepareSelectionForContextMenuHandler = makeBlockPtr(completionHandler)](bool shouldPresentMenu, const WebKit::RevealItem&amp; item) {

`prepareSelectionForContextMenuHandler` seems like a slightly confusing name for the captured completion handler, since it&apos;s not &quot;handling&quot; `prepareSelectionForContextMenu`, but rather the completion callback. If you search for `makeBlockPtr(completionHandler)` you&apos;ll see much prior art, ranging from folks who literally use `completionHandler = makeBlockPtr(completionHandler)`, shadowing the name, to folks who use slightly adjusted names like `completionBlock` or `protectedCompletionHandler` or etc. etc.

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2347
&gt; +RetainPtr&lt;RVItem&gt; WebPage::rvItemForCurrentSelection()

I know it&apos;s not new in this patch, but since you&apos;re renaming it, can we expand &quot;rv&quot; to &quot;reveal&quot;? (Also I kind of wonder if it should just return a RevealItem, but this is fine).

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:2386
&gt; +    eventHander.selectClosestContextualWordOrLinkFromHitTestResult(result, WebCore::DontAppendTrailingWhitespace);
&gt;      
&gt; -    completionHandler(RevealItem(WTFMove(item)));
&gt; +    completionHandler(true, RevealItem(rvItemForCurrentSelection()));

This all worked out handily!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841595</commentid>
    <comment_count>6</comment_count>
      <attachid>451988</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-02-15 00:23:52 -0800</bug_when>
    <thetext>Comment on attachment 451988
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Implement additional Reveeal methods.

&quot;Reveeal&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841746</commentid>
    <comment_count>7</comment_count>
      <attachid>452033</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2022-02-15 09:18:42 -0800</bug_when>
    <thetext>Created attachment 452033
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841776</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-15 10:07:03 -0800</bug_when>
    <thetext>Committed r289818 (247279@main): &lt;https://commits.webkit.org/247279@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452033.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841777</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-15 10:08:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/88972256&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451977</attachid>
            <date>2022-02-14 18:46:50 -0800</date>
            <delta_ts>2022-02-14 19:05:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236627-20220214184650.patch</filename>
            <type>text/plain</type>
            <size>23425</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAwN2Q3YTU4NDYyYmFi
ZGRhZDlmNjE0MzBmMTIxMWJkZTU3YzlkNy4uMTE5MjU1ZWViY2Y4YTVhZTMwZmFmY2QzMGE2OTli
Mjk1OTUyMzkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTE0ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IGFkZGl0aW9uYWwgUmV2ZWVhbCBtZXRob2RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVzcG9uZCB0byBwcm90b2NvbCBtZXRob2RzIHRoYXQgaW5z
dGFudGlhdGUgYSBzZWxlY3Rpb24gYW5kIHJlcXVlc3QgUlZJdGVtcyBmb3IgYSBtZW51LgorCisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rp
b25hcnlMb29rdXAgY29uc3QpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxv
b2t1cC5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNyZWF0ZVJldmVhbEl0ZW1zKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcik6CisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdvcmRGcm9tSGl0VGVzdFJlc3VsdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9y
TGlua0Zyb21IaXRUZXN0UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
aGFuZGxlTW91c2VQcmVzc0V2ZW50RG91YmxlQ2xpY2spOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdvcmRG
cm9tTW91c2VFdmVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnNlbGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9yTGlua0Zyb21Nb3VzZUV2ZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAqIHBhZ2UvY29jb2Ev
RXZlbnRIYW5kbGVyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0QmFzZWRPbkxvb2t1cCk6CisK
IDIwMjItMDItMTQgIERhbiBHbGFzdG9uYnVyeSAgPGRqZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
TW92ZSBQREZEb2N1bWVudC5jcHAvaCBpbiBjb3JyZWN0IHBvc2l0aW9uIGluIFdlYkNvcmUueGNv
ZGVwcm9qCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDgxM2I3ZjgzOWYxNjhmOGRkNTAyMmUzYTBhNTQ1OGIyZThjYTk1
NjguLjJmNzhhNjdhNmQ2Zjg1ZjQwNzdmYmQ3NjJjZWU1MjkzOTJhNWI0ZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMjItMDItMTQgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVy
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYWRkaXRpb25hbCBSZXZlZWFsIG1ldGhv
ZHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNw
b25kIHRvIHByb3RvY29sIG1ldGhvZHMgdGhhdCBpbnN0YW50aWF0ZSBhIHNlbGVjdGlvbiBhbmQg
cmVxdWVzdCBSVkl0ZW1zIGZvciBhIG1lbnUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJlcGFyZVNlbGVjdGlvbkZvckNvbnRl
eHRNZW51V2l0aExvY2F0aW9uSW5WaWV3OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmll
dyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnJlcXVlc3REaWN0YXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cnZJ
dGVtRm9yQ3VycmVudFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6cHJlcGFyZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KToKKwog
MjAyMi0wMi0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBEaXJlY3QgdG91Y2hlcyBkb24ndCB0cmlnZ2VyIG90aGVyIGdlc3R1cmUgcmVjb2duaXpl
cnMgaWYgV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyIHNlZXMgdGhlbSBmaXJzdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKaW5kZXggYjYzMWQyODU3OWQxMDU0ODRlYmUxN2NmM2MyZDMxNjgyZTViMmZk
Yi4uNzk5MmI1Yzc2OGZhYmFlMTMwYWY0YTVkMjE5YWJlYmI4MzM2OGRiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC0xOTMsNiArMTkzLDcgQEAgbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4
dHJhcy5tbQogbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbQogcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzTWVkaWFBRi5jcHAKIHBhZ2UvY29jb2EvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUZDb2NvYS5tbQorcGFnZS9jb2NvYS9FdmVudEhhbmRsZXJDb2NvYS5tbQogcGFnZS9j
b2NvYS9NZW1vcnlSZWxlYXNlQ29jb2EubW0KIHBhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5n
Q29jb2EubW0KIHBhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg1
ZTRjMTU5ODYyYWUxN2Q5YWFmNWVmNjE0MDc2MTJhZjJmYjFhMzYuLmZjNWVkNWM3NzU1YmNhNDJh
YjIzZjk3M2E2OTVhN2RkMTFmNTY1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxMzYsNiArOTEzNiw3IEBACiAJCTQ0MzdD
NEE3MjRFMkFFNUYwMDA5NTEyOCAvKiBMYXp5TG9hZEZyYW1lT2JzZXJ2ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGF6eUxvYWRGcmFtZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0MzdDNEE5MjRFMkFFNUYwMDA5NTEyOCAvKiBMYXp5TG9hZEZyYW1lT2JzZXJ2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGF6eUxvYWRGcmFtZU9ic2VydmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQzODc3RTMyNzE2ODFGNjAwRkQzRTMzIC8qIENhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0NDNCRkRDNjI3QkIzNzJDMDAwMTI0NUYgLyogRXZlbnRIYW5kbGVyQ29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFdmVudEhhbmRsZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQzRjA0MjYwRTc1QzhGQjAwN0U1NDA3IC8qIE5ldHdvcmtTdGF0
ZU5vdGlmaWVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ0NEQ0RTIxMEY3MDhCMkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlVVJMUmVzcG9uc2VJ
T1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTIxMEREMjVENjFFRkYwMDNB
MkVEOCAvKiBBcHBIaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXBwSGlnaGxpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzM2Miw2ICsy
MzM2Myw3IEBACiAJCQkJNDQzODc3RTMyNzE2ODFGNjAwRkQzRTMzIC8qIENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGQ29jb2EubW0gKi8sCiAJCQkJRjQ0NkVEREQyNjVEQUUzRjAwMzFEQThG
IC8qIERhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oICovLAogCQkJCUY0NDZFREU3MjY1REQ4
OTAwMDMxREE4RiAvKiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oICovLAorCQkJCTQ0M0JGREM2
MjdCQjM3MkMwMDAxMjQ1RiAvKiBFdmVudEhhbmRsZXJDb2NvYS5tbSAqLywKIAkJCQlGNDQ2RURF
MDI2NURCMUU1MDAzMURBOEYgLyogSW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50
aWZpZXIuaCAqLywKIAkJCQk0MTNFMDA3QjFEQjBFNzA3MDAyMzQxRDIgLyogTWVtb3J5UmVsZWFz
ZUNvY29hLm1tICovLAogCQkJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3JtYW5j
ZUxvZ2dpbmdDb2NvYS5tbSAqLywKQEAgLTI1OTI1LDEwICsyNTkyNywxMCBAQAogCQkJCTMxNDg3
N0UwMUZBQThGRTkwMEMwNTc1OSAvKiBPZmZzY3JlZW5DYW52YXMuY3BwICovLAogCQkJCTMxNDg3
N0UxMUZBQThGRTkwMEMwNTc1OSAvKiBPZmZzY3JlZW5DYW52YXMuaCAqLywKIAkJCQkzMTQ4NzdE
OTFGQUE4NzA2MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmlkbCAqLywKLQkJCQk0OTRFQkQw
ODI3QUE5QzUzMDBGNDg0NEYgLyogUERGRG9jdW1lbnQuY3BwICovLAotCQkJCTQ5NEVCRDA2MjdB
QTlDNTMwMEY0ODQ0RiAvKiBQREZEb2N1bWVudC5oICovLAogCQkJCUY1NUIzRDk1MTI1MUYxMkQw
MDNFRjI2OSAvKiBQYXNzd29yZElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOTYxMjUxRjEy
RDAwM0VGMjY5IC8qIFBhc3N3b3JkSW5wdXRUeXBlLmggKi8sCisJCQkJNDk0RUJEMDgyN0FBOUM1
MzAwRjQ4NDRGIC8qIFBERkRvY3VtZW50LmNwcCAqLywKKwkJCQk0OTRFQkQwNjI3QUE5QzUzMDBG
NDg0NEYgLyogUERGRG9jdW1lbnQuaCAqLywKIAkJCQk5NzIwNUFCOTEyMzkyOTI3MDBCMTczODAg
LyogUGx1Z2luRG9jdW1lbnQuY3BwICovLAogCQkJCTk3MjA1QUJBMTIzOTI5MjcwMEIxNzM4MCAv
KiBQbHVnaW5Eb2N1bWVudC5oICovLAogCQkJCUNERUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQ
dWJsaWNVUkxNYW5hZ2VyLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ0JlaGF2aW9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhh
dmlvci5oCmluZGV4IGZiNDM5YzcxZjdkYTBkOTBmM2M2MWQwY2JiZTRmMTQ3NGU4ZDNhYmIuLjNm
NzQyNmRiZTI4YzYxYzQ4MDI0ZDVjNmUxZDUzNDYxY2YzN2NmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaApAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gc3BhY2Ugd2hlbiBkZWxldGluZyBwYXNzd29yZCBjYXVzZSBzcGFjZSBiZWVuIHNob3dlZCBp
bnNlY3VyZWx5LgogICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVTcGFjZXNJblNlY3VyZUZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OmlPUzsg
fQogCi0gICAgYm9vbCBzaG91bGRTZWxlY3RCYXNlZE9uRGljdGlvbmFyeUxvb2t1cCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWM7IH0KKyAgICBib29s
IHNob3VsZFNlbGVjdEJhc2VkT25EaWN0aW9uYXJ5TG9va3VwKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyB8fCBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2
aW9yVHlwZTo6aU9TOyB9CiAKICAgICAvLyBMaW51eCBhbmQgV2luZG93cyBhbHdheXMgZXh0ZW5k
IHNlbGVjdGlvbnMgZnJvbSB0aGUgZXh0ZW50IGVuZHBvaW50LgogICAgIGJvb2wgc2hvdWxkQWx3
YXlzRXh0ZW5kU2VsZWN0aW9uRnJvbUV4dGVudEVuZHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV90
eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2
aW9yVHlwZTo6aU9TOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0RpY3Rpb25hcnlMb29rdXAubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RpY3Rp
b25hcnlMb29rdXAubW0KaW5kZXggMzhlNjJlMDQyNWU1ZmI4NmIwOTc5YmY4NWU4NjhmMjUyZDhk
ZTNhMi4uY2Q4NzFiYzU4YTY3MGIzZDA3ODc1MGI0ZmM2YmE4MjE3MDNhYTQ4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQpAQCAtMjU3
LDcgKzI1Nyw3IEBAIHN0YXRpYyBib29sIGNhbkNyZWF0ZVJldmVhbEl0ZW1zKCkKICAgICBzdGF0
aWMgYm9vbCByZXN1bHQ7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbJl0gewotICAgICAgICByZXN1bHQgPSBQQUw6Omlz
UmV2ZWFsRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc1JldmVhbENvcmVGcmFtZXdvcmtB
dmFpbGFibGUoKSAmJiBQQUw6OmdldFJWSXRlbUNsYXNzKCk7CisgICAgICAgIHJlc3VsdCA9IFBB
TDo6aXNSZXZlYWxDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjpnZXRSVkl0ZW1DbGFz
cygpOwogICAgIH0pOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC00MjcsNyArNDI3LDcgQEAg
c3RhdGljIFdLUmV2ZWFsQ29udHJvbGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRy
b2xsZXIoYm9vbCBjcmVhdGVBbmltYXQKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
ICAgICAKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKCFjYW5DcmVhdGVSZXZlYWxJdGVtcygp
IHx8ICFQQUw6OmdldFJWUHJlc2VudGVyQ2xhc3MoKSkKKyAgICBpZiAoIWNhbkNyZWF0ZVJldmVh
bEl0ZW1zKCkgfHwgIVBBTDo6Z2V0UlZQcmVzZW50ZXJDbGFzcygpIHx8ICFQQUw6OmlzUmV2ZWFs
RnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBhdXRvIG11
dGFibGVPcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRd
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwNTk3ZDFmMTkxY2I1YjBh
NWMyYjE3ODQyNmZlNThlMzNhMmU1N2UwLi5jY2MzM2QwZTI4MjRhZjBlMWQyMjcxMTYxOGEwMGJi
OWU3NGViZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC01MzQsMjUg
KzUzNCwxNyBAQCBzdGF0aWMgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIHNob3VsZEFwcGVuZFRy
YWlsaW5nV2hpdGVzcGFjZShjb25zdCBNb3VzZUV2ZW50VwogICAgIHJldHVybiAocmVzdWx0LmV2
ZW50KCkuY2xpY2tDb3VudCgpID09IDIgJiYgZnJhbWUuZWRpdG9yKCkuaXNTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKCkpID8gU2hvdWxkQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIDog
RG9udEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OnNl
bGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0
UmVzdWx0cyYgcmVzdWx0KQotewotICAgIGlmIChtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpKQot
ICAgICAgICBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdC5oaXRUZXN0
UmVzdWx0KCksIHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShyZXN1bHQsIG1fZnJhbWUp
KTsKLX0KLQotI2lmICFQTEFURk9STShNQUMpCisjaWYgIVBMQVRGT1JNKENPQ09BKQogVmlzaWJs
ZVNlbGVjdGlvbiBFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RSZXN1
bHRCYXNlZE9uTG9va3VwKGNvbnN0IEhpdFRlc3RSZXN1bHQmKQogewogICAgIHJldHVybiBWaXNp
YmxlU2VsZWN0aW9uKCk7CiB9CiAjZW5kaWYKICAgICAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzZWxl
Y3RDbG9zZXN0Q29udGV4dHVhbFdvcmRGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBtb3VzZUV2ZW50KQordm9pZCBFdmVudEhhbmRsZXI6OnNlbGVjdENs
b3Nlc3RDb250ZXh0dWFsV29yZEZyb21IaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQm
IHJlc3VsdCwgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIGFwcGVuZFRyYWlsaW5nV2hpdGVzcGFj
ZSkKIHsKLSAgICBSZWZQdHIgdGFyZ2V0Tm9kZSA9IG1vdXNlRXZlbnQudGFyZ2V0Tm9kZSgpOwot
ICAgIGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCA9IG1vdXNlRXZlbnQuaGl0VGVzdFJlc3Vs
dCgpOworICAgIFJlZlB0ciB0YXJnZXROb2RlID0gcmVzdWx0LnRhcmdldE5vZGUoKTsKICAgICBW
aXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKLSAgICBib29sIGFwcGVuZFRyYWlsaW5nV2hp
dGVzcGFjZSA9IHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShtb3VzZUV2ZW50LCBtX2Zy
YW1lKTsKICAgICAKICAgICBpZiAodGFyZ2V0Tm9kZSAmJiB0YXJnZXROb2RlLT5yZW5kZXJlcigp
KSB7CiAgICAgICAgIG5ld1NlbGVjdGlvbiA9IHNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RS
ZXN1bHRCYXNlZE9uTG9va3VwKHJlc3VsdCk7CkBAIC01NzEsMTYgKzU2MywxOSBAQCB2b2lkIEV2
ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQoY29u
c3QgTW91c2VFdmVudFdpdAogICAgIH0KIH0KICAgICAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzZWxl
Y3RDbG9zZXN0Q29udGV4dHVhbFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiByZXN1bHQpCit2b2lkIEV2ZW50SGFuZGxlcjo6c2VsZWN0
Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbUhpdFRlc3RSZXN1bHQoY29uc3QgSGl0VGVz
dFJlc3VsdCYgcmVzdWx0LCBBcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UgYXBwZW5kVHJhaWxpbmdX
aGl0ZXNwYWNlKQogewotICAgIFJlZlB0ciB1cmxFbGVtZW50ID0gcmVzdWx0LmhpdFRlc3RSZXN1
bHQoKS5VUkxFbGVtZW50KCk7CisgICAgUmVmUHRyIHVybEVsZW1lbnQgPSByZXN1bHQuVVJMRWxl
bWVudCgpOwogICAgIGlmICghdXJsRWxlbWVudCB8fCAhaXNEcmFnZ2FibGVMaW5rKCp1cmxFbGVt
ZW50KSkgewogICAgICAgICBpZiAoUmVmUHRyIHRhcmdldE5vZGUgPSByZXN1bHQudGFyZ2V0Tm9k
ZSgpKSB7Ci0gICAgICAgICAgICBpZiAoaXNFZGl0YWJsZU5vZGUoKnRhcmdldE5vZGUpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50KHJlc3Vs
dCk7CisgICAgICAgICAgICBpZiAoaXNFZGl0YWJsZU5vZGUoKnRhcmdldE5vZGUpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKG1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdCwg
YXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4gc2VsZWN0Q2xvc2VzdENvbnRl
eHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdENs
b3Nlc3RDb250ZXh0dWFsV29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdCwgYXBwZW5kVHJhaWxp
bmdXaGl0ZXNwYWNlKTsKICAgICB9CiAKICAgICBSZWZQdHIgdGFyZ2V0Tm9kZSA9IHJlc3VsdC50
YXJnZXROb2RlKCk7CkBAIC02MDIsMTIgKzU5NywxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VQcmVzc0V2ZW50RG91YmxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0
UgogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzUmFuZ2UoKSkKICAgICAgICAgLy8gQSBk
b3VibGUtY2xpY2sgd2hlbiByYW5nZSBpcyBhbHJlYWR5IHNlbGVjdGVkCiAgICAgICAgIC8vIHNo
b3VsZCBub3QgY2hhbmdlIHRoZSBzZWxlY3Rpb24uICBTbywgZG8gbm90IGNhbGwKLSAgICAgICAg
Ly8gc2VsZWN0Q2xvc2VzdFdvcmRGcm9tTW91c2VFdmVudCwgYnV0IGRvIHNldAorICAgICAgICAv
LyBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0LCBidXQgZG8gc2V0CiAgICAgICAg
IC8vIG1fYmVnYW5TZWxlY3RpbmdUZXh0IHRvIHByZXZlbnQgaGFuZGxlTW91c2VSZWxlYXNlRXZl
bnQKICAgICAgICAgLy8gZnJvbSBzZXR0aW5nIGNhcmV0IHNlbGVjdGlvbi4KICAgICAgICAgbV9z
ZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBFeHRlbmRlZFNlbGVjdGlvbjsKICAgICBlbHNlCi0g
ICAgICAgIHNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoZXZlbnQpOworICAgICAgICBz
ZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KGV2ZW50LmhpdFRlc3RSZXN1bHQoKSwg
c2hvdWxkQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKGV2ZW50LCBtX2ZyYW1lKSk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTMyODAsNyArMzI3NSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpz
ZW5kQ29udGV4dE1lbnVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogICAg
ICAgICAvLyBhdmFpbGFibGUgZm9yIHRleHQgc2VsZWN0aW9ucy4gIEJ1dCBvbmx5IGlmIHdlJ3Jl
IGFib3ZlIHRleHQuCiAgICAgICAgICYmIChtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigp
LmlzQ29udGVudEVkaXRhYmxlKCkgfHwgKG1vdXNlRXZlbnQudGFyZ2V0Tm9kZSgpICYmIG1vdXNl
RXZlbnQudGFyZ2V0Tm9kZSgpLT5pc1RleHROb2RlKCkpKSkgewogICAgICAgICBtX21vdXNlRG93
bk1heVN0YXJ0U2VsZWN0ID0gdHJ1ZTsgLy8gY29udGV4dCBtZW51IGV2ZW50cyBhcmUgYWx3YXlz
IGFsbG93ZWQgdG8gcGVyZm9ybSBhIHNlbGVjdGlvbgotICAgICAgICBzZWxlY3RDbG9zZXN0Q29u
dGV4dHVhbFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChtb3VzZUV2ZW50KTsKKyAgICAgICAgc2Vs
ZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbUhpdFRlc3RSZXN1bHQobW91c2VFdmVu
dC5oaXRUZXN0UmVzdWx0KCksIHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShtb3VzZUV2
ZW50LCBtX2ZyYW1lKSk7CiAgICAgfQogCiAgICAgc3dhbGxvd0V2ZW50ID0gIWRpc3BhdGNoTW91
c2VFdmVudChldmVudE5hbWVzKCkuY29udGV4dG1lbnVFdmVudCwgbW91c2VFdmVudC50YXJnZXRO
b2RlKCksIDAsIGV2ZW50LCBGaXJlTW91c2VPdmVyT3V0OjpObyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaAppbmRleCBlYTQzNDg4OTExNTQ5MjE1ODg2MzUzZmVlNjg2YWZmZTczMmJhMzY3
Li5kZTQwOGJmZGQxNjFmODZkZTUxZDliNTI4YTlkMjc0NTJhNzZiODJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgKQEAgLTM1OSw2ICszNTksOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIHN0YXRpYyBib29sIHNjcm9sbGFibGVBcmVhQ2FuSGFuZGxlRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiwgU2Nyb2xsYWJsZUFyZWEmKTsKKyAgICAKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNlbGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9yTGlua0Zyb21IaXRUZXN0UmVzdWx0
KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBBcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UpOwogCiBwcml2
YXRlOgogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0zNzAsOSArMzcyLDggQEAgcHJpdmF0
ZToKICAgICBib29sIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRG93bkRpc3BhdGNoaW5nU2VsZWN0
U3RhcnQoTm9kZSosIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBUZXh0R3JhbnVsYXJpdHkpOwog
ICAgIHZvaWQgc2VsZWN0Q2xvc2VzdFdvcmRGcm9tSGl0VGVzdFJlc3VsdChjb25zdCBIaXRUZXN0
UmVzdWx0JiwgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTsKICAgICBWaXNpYmxlU2VsZWN0aW9u
IHNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RSZXN1bHRCYXNlZE9uTG9va3VwKGNvbnN0IEhp
dFRlc3RSZXN1bHQmKTsKLSAgICB2b2lkIHNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQo
Y29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwotICAgIHZvaWQgc2VsZWN0Q2xv
c2VzdENvbnRleHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyYpOwotICAgIHZvaWQgc2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5r
RnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOworICAg
IHZvaWQgc2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkRnJvbUhpdFRlc3RSZXN1bHQoY29uc3Qg
SGl0VGVzdFJlc3VsdCYsIEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZSk7CisgICAgCiAKICAgICBi
b29sIGhhbmRsZU1vdXNlRG91YmxlQ2xpY2tFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9FdmVudEhhbmRsZXJD
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRXZlbnRIYW5kbGVyQ29jb2EubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDAwNTFhNDQ1YmFiY2QyOWI3OTM3NGI1NDVkMDQwNThjZWNkZTlkOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRXZlbnRIYW5kbGVyQ29j
b2EubW0KQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRXZlbnRIYW5kbGVyLmgi
CisKKyNpbXBvcnQgIkRpY3Rpb25hcnlMb29rdXAuaCIKKyNpbXBvcnQgIkVkaXRvci5oIgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisKKyNpZiBFTkFCTEUoUkVWRUFMKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisgICAgCitWaXNpYmxlU2VsZWN0aW9uIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2Vz
dFdvcmRGcm9tSGl0VGVzdFJlc3VsdEJhc2VkT25Mb29rdXAoY29uc3QgSGl0VGVzdFJlc3VsdCYg
cmVzdWx0KQoreworICAgIGlmICghbV9mcmFtZS5lZGl0b3IoKS5iZWhhdmlvcigpLnNob3VsZFNl
bGVjdEJhc2VkT25EaWN0aW9uYXJ5TG9va3VwKCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAg
ICBhdXRvIHJhbmdlID0gRGljdGlvbmFyeUxvb2t1cDo6cmFuZ2VBdEhpdFRlc3RSZXN1bHQocmVz
dWx0KTsKKyAgICBpZiAoIXJhbmdlKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJu
IHN0ZDo6Z2V0PFNpbXBsZVJhbmdlPigqcmFuZ2UpOworfQorI2VuZGlmCisgICAgCit9CisKKyNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCA0MDBmOTQwNDlkZDkwODUyYzM3ZTAyYWFkYzQxZTAwODRlZmQzMDhmLi5i
ZDBhM2YzZDcyZjZmY2MxMGFjNDllNWQyMjFiNTY1Njc3ODczOWVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtODc5LDYgKzg3OSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlcXVlc3REaWN0YXRpb25Db250ZXh0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik+JiYpOwogI2lmIEVOQUJMRShS
RVZFQUwpCiAgICAgdm9pZCByZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJldmVhbEl0ZW0mKT4mJik7CisgICAgdm9pZCBwcmVw
YXJlU2VsZWN0aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXcoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgY29uc3QgUmV2ZWFsSXRl
bSYpPiYmKTsKICNlbmRpZgogICAgIHZvaWQgcmVwbGFjZURpY3RhdGVkVGV4dChjb25zdCBTdHJp
bmcmIG9sZFRleHQsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7CiAgICAgdm9pZCByZXBsYWNlU2Vs
ZWN0ZWRUZXh0KGNvbnN0IFN0cmluZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCmluZGV4IGM2NDAwYmIyZjdhZWNlNmRhZTYzZWQzMDEyNjc3MDEwMzJhZGM0
YjEuLjMwMDJiYTkzNzI0ZGYxYWVhY2UwZDE4ZWZiZmZlMjExMDBhNmYyNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQpAQCAtNzU1NCw2ICs3NTU0LDEzIEBAIHN0YXRpYyBib29sIGNhblVzZVF1aWNrYm9hcmRD
b250cm9sbGVyRm9yKFVJVGV4dENvbnRlbnRUeXBlIHR5cGUpCiAgICAgICAgIHJldmVhbEl0ZW1T
ZWxlY3Rpb25IYW5kbGVyKGl0ZW0uaXRlbSgpKTsKICAgICB9KTsKIH0KKworLSAodm9pZClwcmVw
YXJlU2VsZWN0aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXc6KENHUG9pbnQpbG9j
YXRpb25JblZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCBzaG91bGRQcmVzZW50
TWVudSwgUlZJdGVtICppdGVtKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF9wYWdlLT5wcmVw
YXJlU2VsZWN0aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXcoV2ViQ29yZTo6cm91
bmRlZEludFBvaW50KGxvY2F0aW9uSW5WaWV3KSwgW3ByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0
TWVudUhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXShib29sIHNob3Vs
ZFByZXNlbnRNZW51LCBjb25zdCBXZWJLaXQ6OlJldmVhbEl0ZW0mIGl0ZW0pIHsKKyAgICAgICAg
cHJlcGFyZVNlbGVjdGlvbkZvckNvbnRleHRNZW51SGFuZGxlcihzaG91bGRQcmVzZW50TWVudSwg
aXRlbS5pdGVtKCkpOworICAgIH0pOworfQogI2VuZGlmCiAKIC0gKEJPT0wpaGFzSGlkZGVuQ29u
dGVudEVkaXRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbQppbmRleCBiMmZjZDRmYzE1NDQ5MjViNTIxZWY5MjczOWU3Njc0NDcyMWFkZjIxLi4y
OTY4ODUxMzYyNmQzN2UyY2Q3YmI1YWU1NTA2YjdkYzMyZTY2MWM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTUzNCw2ICs1MzQsMTQg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdl
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY28KIAogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUGFnZTo6UmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoKSwgV1RG
TW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpwcmVwYXJl
U2VsZWN0aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXcoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQgcG9pbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgY29uc3QgUmV2ZWFs
SXRlbSYpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit7CisgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2Vz
cygpKQorICAgICAgICByZXR1cm4gY2FsbGJhY2tGdW5jdGlvbihmYWxzZSwgUmV2ZWFsSXRlbSgp
KTsKKworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6UHJlcGFyZVNl
bGVjdGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KHBvaW50KSwgV1RGTW92ZShj
YWxsYmFja0Z1bmN0aW9uKSk7Cit9CiAjZW5kaWYKIAogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVl
c3RBdXRvY29ycmVjdGlvbkNvbnRleHQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IDc5MTU4MzNmODhmZDVmYzI3NjEzOGU0MTZiZWNhYTNmYWUxYzdh
MWIuLjk2ZjhkOWVjOWQ1NDkyMDM0OThjOWJmNzMwOWI4NzEyNDMzNWZkNmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE2OCw2ICsxNjgsNyBAQCBP
QkpDX0NMQVNTIE5TQXJyYXk7CiBPQkpDX0NMQVNTIE5TRGljdGlvbmFyeTsKIE9CSkNfQ0xBU1Mg
TlNPYmplY3Q7CiBPQkpDX0NMQVNTIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3Q7CitPQkpD
X0NMQVNTIFJWSXRlbTsKICNlbmRpZgogCiAjZGVmaW5lIEVOQUJMRV9WSUVXUE9SVF9SRVNJWklO
RyBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNzk4LDcgKzc5OSw5IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcmVxdWVzdERpY3RhdGlvbkNvbnRleHQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKT4mJik7CiAjaWYgRU5BQkxF
KFJFVkVBTCkKKyAgICBSZXRhaW5QdHI8UlZJdGVtPiBydkl0ZW1Gb3JDdXJyZW50U2VsZWN0aW9u
KCk7CiAgICAgdm9pZCByZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYktpdDo6UmV2ZWFsSXRlbSYpPiYmKTsKKyAgICB2b2lk
IHByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmlldyhjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBjb25zdCBSZXZl
YWxJdGVtJik+JiYpOwogI2VuZGlmCiAgICAgdm9pZCByZXBsYWNlRGljdGF0ZWRUZXh0KGNvbnN0
IFN0cmluZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0KTsKICAgICB2b2lkIHJlcGxh
Y2VTZWxlY3RlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0LCBjb25zdCBTdHJpbmcmIG5ld1Rl
eHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KaW5kZXggYjdhODM3MjE3ZTIxMzVhYzAyMDc0ZDllNjUyNTIwYzhiMzJhMjAx
Ni4uMmM3MWUxMWI3N2I5YWRiNzk4OTkzZjNkOWY4MmMxZGIyOTE2NzM5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBA
IC04Myw2ICs4Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAg
IFJlcXVlc3REaWN0YXRpb25Db250ZXh0KCkgLT4gKFN0cmluZyBzZWxlY3RlZFRleHQsIFN0cmlu
ZyB0ZXh0QmVmb3JlLCBTdHJpbmcgdGV4dEFmdGVyKSBBc3luYwogI2lmIEVOQUJMRShSRVZFQUwp
CiAgICAgUmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoKSAtPiAoV2ViS2l0OjpS
ZXZlYWxJdGVtIGl0ZW0pIEFzeW5jCisgICAgUHJlcGFyZVNlbGVjdGlvbkZvckNvbnRleHRNZW51
V2l0aExvY2F0aW9uSW5WaWV3KFdlYkNvcmU6OkludFBvaW50IHBvaW50KSAtPiAoYm9vbCBzaG91
bGRTaG93TWVudSwgV2ViS2l0OjpSZXZlYWxJdGVtIGl0ZW0pIEFzeW5jCiAjZW5kaWYKICAgICBS
ZXBsYWNlRGljdGF0ZWRUZXh0KFN0cmluZyBvbGRUZXh0LCBTdHJpbmcgbmV3VGV4dCkKICAgICBS
ZXBsYWNlU2VsZWN0ZWRUZXh0KFN0cmluZyBvbGRUZXh0LCBTdHJpbmcgbmV3VGV4dCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5k
ZXggY2E3NWNiMzc3N2VlMzdlMDI5OGE2ZjE2OWE3YWM3OWU0Njg5YThkMy4uYTQyODY4NjQ4OWFk
Yjc2ZjZkZGExNTdiNjVmMjdjMGQxZGU1OTBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTIzNDMsOSArMjM0Myw4IEBA
IHZvaWQgV2ViUGFnZTo6cmVxdWVzdERpY3RhdGlvbkNvbnRleHQoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBTdHJpbmcmLCBjb25zCiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZWxlY3Rl
ZFRleHQsIGNvbnRleHRCZWZvcmUsIGNvbnRleHRBZnRlcik7CiB9Ci0KICNpZiBFTkFCTEUoUkVW
RUFMKQotdm9pZCBXZWJQYWdlOjpyZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYktpdDo6UmV2ZWFsSXRlbSYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQorUmV0YWluUHRyPFJWSXRlbT4gV2ViUGFnZTo6cnZJdGVtRm9yQ3VycmVu
dFNlbGVjdGlvbigpCiB7CiAgICAgUmVmIGZyYW1lID0gQ2hlY2tlZFJlZihtX3BhZ2UtPmZvY3Vz
Q29udHJvbGxlcigpKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CiAgICAgYXV0byBzZWxlY3Rpb24g
PSBmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CkBAIC0yMzY4LDggKzIzNjcsMjMgQEAg
dm9pZCBXZWJQYWdlOjpyZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFcKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
KyAgICByZXR1cm4gaXRlbTsKK30KKwordm9pZCBXZWJQYWdlOjpyZXF1ZXN0UlZJdGVtSW5DdXJy
ZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYktpdDo6UmV2
ZWFsSXRlbSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25IYW5kbGVy
KFJldmVhbEl0ZW0ocnZJdGVtRm9yQ3VycmVudFNlbGVjdGlvbigpKSk7Cit9CisKK3ZvaWQgV2Vi
UGFnZTo6cHJlcGFyZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2ws
IGNvbnN0IFJldmVhbEl0ZW0mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb25zdGV4
cHIgT3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpUeXBlPiBoaXRUeXBlIHsgSGl0VGVzdFJlcXVl
c3Q6OlR5cGU6OlJlYWRPbmx5LCBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6QWN0aXZlLCBIaXRUZXN0
UmVxdWVzdDo6VHlwZTo6QWxsb3dWaXNpYmxlQ2hpbGRGcmFtZUNvbnRlbnRPbmx5IH07CisgICAg
YXV0byYgZXZlbnRIYW5kZXIgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpOwor
ICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gZXZlbnRIYW5kZXIuaGl0VGVzdFJlc3VsdEF0UG9p
bnQocG9pbnQsIGhpdFR5cGUpOworICAgIAorICAgIGV2ZW50SGFuZGVyLnNlbGVjdENsb3Nlc3RD
b250ZXh0dWFsV29yZE9yTGlua0Zyb21IaXRUZXN0UmVzdWx0KHJlc3VsdCwgV2ViQ29yZTo6RG9u
dEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZSk7CiAgICAgCi0gICAgY29tcGxldGlvbkhhbmRsZXIo
UmV2ZWFsSXRlbShXVEZNb3ZlKGl0ZW0pKSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSwg
UmV2ZWFsSXRlbShydkl0ZW1Gb3JDdXJyZW50U2VsZWN0aW9uKCkpKTsKIH0KICNlbmRpZgogCg==
</data>
<flag name="commit-queue"
          id="478880"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451978</attachid>
            <date>2022-02-14 18:50:40 -0800</date>
            <delta_ts>2022-02-14 19:51:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236627-20220214185039.patch</filename>
            <type>text/plain</type>
            <size>23423</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAwN2Q3YTU4NDYyYmFi
ZGRhZDlmNjE0MzBmMTIxMWJkZTU3YzlkNy4uMTE5MjU1ZWViY2Y4YTVhZTMwZmFmY2QzMGE2OTli
Mjk1OTUyMzkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTE0ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IGFkZGl0aW9uYWwgUmV2ZWVhbCBtZXRob2RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVzcG9uZCB0byBwcm90b2NvbCBtZXRob2RzIHRoYXQgaW5z
dGFudGlhdGUgYSBzZWxlY3Rpb24gYW5kIHJlcXVlc3QgUlZJdGVtcyBmb3IgYSBtZW51LgorCisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rp
b25hcnlMb29rdXAgY29uc3QpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxv
b2t1cC5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNyZWF0ZVJldmVhbEl0ZW1zKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcik6CisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdvcmRGcm9tSGl0VGVzdFJlc3VsdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9y
TGlua0Zyb21IaXRUZXN0UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
aGFuZGxlTW91c2VQcmVzc0V2ZW50RG91YmxlQ2xpY2spOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdvcmRG
cm9tTW91c2VFdmVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnNlbGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9yTGlua0Zyb21Nb3VzZUV2ZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAqIHBhZ2UvY29jb2Ev
RXZlbnRIYW5kbGVyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0QmFzZWRPbkxvb2t1cCk6CisK
IDIwMjItMDItMTQgIERhbiBHbGFzdG9uYnVyeSAgPGRqZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
TW92ZSBQREZEb2N1bWVudC5jcHAvaCBpbiBjb3JyZWN0IHBvc2l0aW9uIGluIFdlYkNvcmUueGNv
ZGVwcm9qCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDgxM2I3ZjgzOWYxNjhmOGRkNTAyMmUzYTBhNTQ1OGIyZThjYTk1
NjguLjJmNzhhNjdhNmQ2Zjg1ZjQwNzdmYmQ3NjJjZWU1MjkzOTJhNWI0ZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMjItMDItMTQgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVy
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYWRkaXRpb25hbCBSZXZlZWFsIG1ldGhv
ZHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNw
b25kIHRvIHByb3RvY29sIG1ldGhvZHMgdGhhdCBpbnN0YW50aWF0ZSBhIHNlbGVjdGlvbiBhbmQg
cmVxdWVzdCBSVkl0ZW1zIGZvciBhIG1lbnUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJlcGFyZVNlbGVjdGlvbkZvckNvbnRl
eHRNZW51V2l0aExvY2F0aW9uSW5WaWV3OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmll
dyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnJlcXVlc3REaWN0YXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cnZJ
dGVtRm9yQ3VycmVudFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6cHJlcGFyZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KToKKwog
MjAyMi0wMi0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBEaXJlY3QgdG91Y2hlcyBkb24ndCB0cmlnZ2VyIG90aGVyIGdlc3R1cmUgcmVjb2duaXpl
cnMgaWYgV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyIHNlZXMgdGhlbSBmaXJzdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKaW5kZXggYjYzMWQyODU3OWQxMDU0ODRlYmUxN2NmM2MyZDMxNjgyZTViMmZk
Yi4uNzk5MmI1Yzc2OGZhYmFlMTMwYWY0YTVkMjE5YWJlYmI4MzM2OGRiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC0xOTMsNiArMTkzLDcgQEAgbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4
dHJhcy5tbQogbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbQogcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzTWVkaWFBRi5jcHAKIHBhZ2UvY29jb2EvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUZDb2NvYS5tbQorcGFnZS9jb2NvYS9FdmVudEhhbmRsZXJDb2NvYS5tbQogcGFnZS9j
b2NvYS9NZW1vcnlSZWxlYXNlQ29jb2EubW0KIHBhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5n
Q29jb2EubW0KIHBhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg1
ZTRjMTU5ODYyYWUxN2Q5YWFmNWVmNjE0MDc2MTJhZjJmYjFhMzYuLmZjNWVkNWM3NzU1YmNhNDJh
YjIzZjk3M2E2OTVhN2RkMTFmNTY1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxMzYsNiArOTEzNiw3IEBACiAJCTQ0MzdD
NEE3MjRFMkFFNUYwMDA5NTEyOCAvKiBMYXp5TG9hZEZyYW1lT2JzZXJ2ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGF6eUxvYWRGcmFtZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0MzdDNEE5MjRFMkFFNUYwMDA5NTEyOCAvKiBMYXp5TG9hZEZyYW1lT2JzZXJ2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGF6eUxvYWRGcmFtZU9ic2VydmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQzODc3RTMyNzE2ODFGNjAwRkQzRTMzIC8qIENhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0NDNCRkRDNjI3QkIzNzJDMDAwMTI0NUYgLyogRXZlbnRIYW5kbGVyQ29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFdmVudEhhbmRsZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQzRjA0MjYwRTc1QzhGQjAwN0U1NDA3IC8qIE5ldHdvcmtTdGF0
ZU5vdGlmaWVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ0NEQ0RTIxMEY3MDhCMkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlVVJMUmVzcG9uc2VJ
T1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTIxMEREMjVENjFFRkYwMDNB
MkVEOCAvKiBBcHBIaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXBwSGlnaGxpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzM2Miw2ICsy
MzM2Myw3IEBACiAJCQkJNDQzODc3RTMyNzE2ODFGNjAwRkQzRTMzIC8qIENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGQ29jb2EubW0gKi8sCiAJCQkJRjQ0NkVEREQyNjVEQUUzRjAwMzFEQThG
IC8qIERhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oICovLAogCQkJCUY0NDZFREU3MjY1REQ4
OTAwMDMxREE4RiAvKiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oICovLAorCQkJCTQ0M0JGREM2
MjdCQjM3MkMwMDAxMjQ1RiAvKiBFdmVudEhhbmRsZXJDb2NvYS5tbSAqLywKIAkJCQlGNDQ2RURF
MDI2NURCMUU1MDAzMURBOEYgLyogSW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50
aWZpZXIuaCAqLywKIAkJCQk0MTNFMDA3QjFEQjBFNzA3MDAyMzQxRDIgLyogTWVtb3J5UmVsZWFz
ZUNvY29hLm1tICovLAogCQkJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3JtYW5j
ZUxvZ2dpbmdDb2NvYS5tbSAqLywKQEAgLTI1OTI1LDEwICsyNTkyNywxMCBAQAogCQkJCTMxNDg3
N0UwMUZBQThGRTkwMEMwNTc1OSAvKiBPZmZzY3JlZW5DYW52YXMuY3BwICovLAogCQkJCTMxNDg3
N0UxMUZBQThGRTkwMEMwNTc1OSAvKiBPZmZzY3JlZW5DYW52YXMuaCAqLywKIAkJCQkzMTQ4NzdE
OTFGQUE4NzA2MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmlkbCAqLywKLQkJCQk0OTRFQkQw
ODI3QUE5QzUzMDBGNDg0NEYgLyogUERGRG9jdW1lbnQuY3BwICovLAotCQkJCTQ5NEVCRDA2MjdB
QTlDNTMwMEY0ODQ0RiAvKiBQREZEb2N1bWVudC5oICovLAogCQkJCUY1NUIzRDk1MTI1MUYxMkQw
MDNFRjI2OSAvKiBQYXNzd29yZElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOTYxMjUxRjEy
RDAwM0VGMjY5IC8qIFBhc3N3b3JkSW5wdXRUeXBlLmggKi8sCisJCQkJNDk0RUJEMDgyN0FBOUM1
MzAwRjQ4NDRGIC8qIFBERkRvY3VtZW50LmNwcCAqLywKKwkJCQk0OTRFQkQwNjI3QUE5QzUzMDBG
NDg0NEYgLyogUERGRG9jdW1lbnQuaCAqLywKIAkJCQk5NzIwNUFCOTEyMzkyOTI3MDBCMTczODAg
LyogUGx1Z2luRG9jdW1lbnQuY3BwICovLAogCQkJCTk3MjA1QUJBMTIzOTI5MjcwMEIxNzM4MCAv
KiBQbHVnaW5Eb2N1bWVudC5oICovLAogCQkJCUNERUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQ
dWJsaWNVUkxNYW5hZ2VyLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ0JlaGF2aW9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhh
dmlvci5oCmluZGV4IGZiNDM5YzcxZjdkYTBkOTBmM2M2MWQwY2JiZTRmMTQ3NGU4ZDNhYmIuLjNm
NzQyNmRiZTI4YzYxYzQ4MDI0ZDVjNmUxZDUzNDYxY2YzN2NmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaApAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gc3BhY2Ugd2hlbiBkZWxldGluZyBwYXNzd29yZCBjYXVzZSBzcGFjZSBiZWVuIHNob3dlZCBp
bnNlY3VyZWx5LgogICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVTcGFjZXNJblNlY3VyZUZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OmlPUzsg
fQogCi0gICAgYm9vbCBzaG91bGRTZWxlY3RCYXNlZE9uRGljdGlvbmFyeUxvb2t1cCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWM7IH0KKyAgICBib29s
IHNob3VsZFNlbGVjdEJhc2VkT25EaWN0aW9uYXJ5TG9va3VwKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyB8fCBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2
aW9yVHlwZTo6aU9TOyB9CiAKICAgICAvLyBMaW51eCBhbmQgV2luZG93cyBhbHdheXMgZXh0ZW5k
IHNlbGVjdGlvbnMgZnJvbSB0aGUgZXh0ZW50IGVuZHBvaW50LgogICAgIGJvb2wgc2hvdWxkQWx3
YXlzRXh0ZW5kU2VsZWN0aW9uRnJvbUV4dGVudEVuZHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV90
eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2
aW9yVHlwZTo6aU9TOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0RpY3Rpb25hcnlMb29rdXAubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RpY3Rp
b25hcnlMb29rdXAubW0KaW5kZXggMzhlNjJlMDQyNWU1ZmI4NmIwOTc5YmY4NWU4NjhmMjUyZDhk
ZTNhMi4uY2Q4NzFiYzU4YTY3MGIzZDA3ODc1MGI0ZmM2YmE4MjE3MDNhYTQ4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQpAQCAtMjU3
LDcgKzI1Nyw3IEBAIHN0YXRpYyBib29sIGNhbkNyZWF0ZVJldmVhbEl0ZW1zKCkKICAgICBzdGF0
aWMgYm9vbCByZXN1bHQ7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbJl0gewotICAgICAgICByZXN1bHQgPSBQQUw6Omlz
UmV2ZWFsRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc1JldmVhbENvcmVGcmFtZXdvcmtB
dmFpbGFibGUoKSAmJiBQQUw6OmdldFJWSXRlbUNsYXNzKCk7CisgICAgICAgIHJlc3VsdCA9IFBB
TDo6aXNSZXZlYWxDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjpnZXRSVkl0ZW1DbGFz
cygpOwogICAgIH0pOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC00MjcsNyArNDI3LDcgQEAg
c3RhdGljIFdLUmV2ZWFsQ29udHJvbGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRy
b2xsZXIoYm9vbCBjcmVhdGVBbmltYXQKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
ICAgICAKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKCFjYW5DcmVhdGVSZXZlYWxJdGVtcygp
IHx8ICFQQUw6OmdldFJWUHJlc2VudGVyQ2xhc3MoKSkKKyAgICBpZiAoIWNhbkNyZWF0ZVJldmVh
bEl0ZW1zKCkgfHwgIVBBTDo6Z2V0UlZQcmVzZW50ZXJDbGFzcygpIHx8ICFQQUw6OmlzUmV2ZWFs
RnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBhdXRvIG11
dGFibGVPcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRd
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwNTk3ZDFmMTkxY2I1YjBh
NWMyYjE3ODQyNmZlNThlMzNhMmU1N2UwLi5jY2MzM2QwZTI4MjRhZjBlMWQyMjcxMTYxOGEwMGJi
OWU3NGViZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC01MzQsMjUg
KzUzNCwxNyBAQCBzdGF0aWMgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIHNob3VsZEFwcGVuZFRy
YWlsaW5nV2hpdGVzcGFjZShjb25zdCBNb3VzZUV2ZW50VwogICAgIHJldHVybiAocmVzdWx0LmV2
ZW50KCkuY2xpY2tDb3VudCgpID09IDIgJiYgZnJhbWUuZWRpdG9yKCkuaXNTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKCkpID8gU2hvdWxkQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIDog
RG9udEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OnNl
bGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0
UmVzdWx0cyYgcmVzdWx0KQotewotICAgIGlmIChtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpKQot
ICAgICAgICBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdC5oaXRUZXN0
UmVzdWx0KCksIHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShyZXN1bHQsIG1fZnJhbWUp
KTsKLX0KLQotI2lmICFQTEFURk9STShNQUMpCisjaWYgIVBMQVRGT1JNKENPQ09BKQogVmlzaWJs
ZVNlbGVjdGlvbiBFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RSZXN1
bHRCYXNlZE9uTG9va3VwKGNvbnN0IEhpdFRlc3RSZXN1bHQmKQogewogICAgIHJldHVybiBWaXNp
YmxlU2VsZWN0aW9uKCk7CiB9CiAjZW5kaWYKICAgICAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzZWxl
Y3RDbG9zZXN0Q29udGV4dHVhbFdvcmRGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBtb3VzZUV2ZW50KQordm9pZCBFdmVudEhhbmRsZXI6OnNlbGVjdENs
b3Nlc3RDb250ZXh0dWFsV29yZEZyb21IaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQm
IHJlc3VsdCwgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIGFwcGVuZFRyYWlsaW5nV2hpdGVzcGFj
ZSkKIHsKLSAgICBSZWZQdHIgdGFyZ2V0Tm9kZSA9IG1vdXNlRXZlbnQudGFyZ2V0Tm9kZSgpOwot
ICAgIGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCA9IG1vdXNlRXZlbnQuaGl0VGVzdFJlc3Vs
dCgpOworICAgIFJlZlB0ciB0YXJnZXROb2RlID0gcmVzdWx0LnRhcmdldE5vZGUoKTsKICAgICBW
aXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKLSAgICBib29sIGFwcGVuZFRyYWlsaW5nV2hp
dGVzcGFjZSA9IHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShtb3VzZUV2ZW50LCBtX2Zy
YW1lKTsKICAgICAKICAgICBpZiAodGFyZ2V0Tm9kZSAmJiB0YXJnZXROb2RlLT5yZW5kZXJlcigp
KSB7CiAgICAgICAgIG5ld1NlbGVjdGlvbiA9IHNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RS
ZXN1bHRCYXNlZE9uTG9va3VwKHJlc3VsdCk7CkBAIC01NzEsMTYgKzU2MywxOSBAQCB2b2lkIEV2
ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQoY29u
c3QgTW91c2VFdmVudFdpdAogICAgIH0KIH0KICAgICAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzZWxl
Y3RDbG9zZXN0Q29udGV4dHVhbFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiByZXN1bHQpCit2b2lkIEV2ZW50SGFuZGxlcjo6c2VsZWN0
Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbUhpdFRlc3RSZXN1bHQoY29uc3QgSGl0VGVz
dFJlc3VsdCYgcmVzdWx0LCBBcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UgYXBwZW5kVHJhaWxpbmdX
aGl0ZXNwYWNlKQogewotICAgIFJlZlB0ciB1cmxFbGVtZW50ID0gcmVzdWx0LmhpdFRlc3RSZXN1
bHQoKS5VUkxFbGVtZW50KCk7CisgICAgUmVmUHRyIHVybEVsZW1lbnQgPSByZXN1bHQuVVJMRWxl
bWVudCgpOwogICAgIGlmICghdXJsRWxlbWVudCB8fCAhaXNEcmFnZ2FibGVMaW5rKCp1cmxFbGVt
ZW50KSkgewogICAgICAgICBpZiAoUmVmUHRyIHRhcmdldE5vZGUgPSByZXN1bHQudGFyZ2V0Tm9k
ZSgpKSB7Ci0gICAgICAgICAgICBpZiAoaXNFZGl0YWJsZU5vZGUoKnRhcmdldE5vZGUpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50KHJlc3Vs
dCk7CisgICAgICAgICAgICBpZiAoaXNFZGl0YWJsZU5vZGUoKnRhcmdldE5vZGUpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKG1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdCwg
YXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4gc2VsZWN0Q2xvc2VzdENvbnRl
eHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdENs
b3Nlc3RDb250ZXh0dWFsV29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdCwgYXBwZW5kVHJhaWxp
bmdXaGl0ZXNwYWNlKTsKICAgICB9CiAKICAgICBSZWZQdHIgdGFyZ2V0Tm9kZSA9IHJlc3VsdC50
YXJnZXROb2RlKCk7CkBAIC02MDIsMTIgKzU5NywxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VQcmVzc0V2ZW50RG91YmxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0
UgogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzUmFuZ2UoKSkKICAgICAgICAgLy8gQSBk
b3VibGUtY2xpY2sgd2hlbiByYW5nZSBpcyBhbHJlYWR5IHNlbGVjdGVkCiAgICAgICAgIC8vIHNo
b3VsZCBub3QgY2hhbmdlIHRoZSBzZWxlY3Rpb24uICBTbywgZG8gbm90IGNhbGwKLSAgICAgICAg
Ly8gc2VsZWN0Q2xvc2VzdFdvcmRGcm9tTW91c2VFdmVudCwgYnV0IGRvIHNldAorICAgICAgICAv
LyBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0LCBidXQgZG8gc2V0CiAgICAgICAg
IC8vIG1fYmVnYW5TZWxlY3RpbmdUZXh0IHRvIHByZXZlbnQgaGFuZGxlTW91c2VSZWxlYXNlRXZl
bnQKICAgICAgICAgLy8gZnJvbSBzZXR0aW5nIGNhcmV0IHNlbGVjdGlvbi4KICAgICAgICAgbV9z
ZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBFeHRlbmRlZFNlbGVjdGlvbjsKICAgICBlbHNlCi0g
ICAgICAgIHNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoZXZlbnQpOworICAgICAgICBz
ZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KGV2ZW50LmhpdFRlc3RSZXN1bHQoKSwg
c2hvdWxkQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKGV2ZW50LCBtX2ZyYW1lKSk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTMyODAsNyArMzI3NSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpz
ZW5kQ29udGV4dE1lbnVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogICAg
ICAgICAvLyBhdmFpbGFibGUgZm9yIHRleHQgc2VsZWN0aW9ucy4gIEJ1dCBvbmx5IGlmIHdlJ3Jl
IGFib3ZlIHRleHQuCiAgICAgICAgICYmIChtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigp
LmlzQ29udGVudEVkaXRhYmxlKCkgfHwgKG1vdXNlRXZlbnQudGFyZ2V0Tm9kZSgpICYmIG1vdXNl
RXZlbnQudGFyZ2V0Tm9kZSgpLT5pc1RleHROb2RlKCkpKSkgewogICAgICAgICBtX21vdXNlRG93
bk1heVN0YXJ0U2VsZWN0ID0gdHJ1ZTsgLy8gY29udGV4dCBtZW51IGV2ZW50cyBhcmUgYWx3YXlz
IGFsbG93ZWQgdG8gcGVyZm9ybSBhIHNlbGVjdGlvbgotICAgICAgICBzZWxlY3RDbG9zZXN0Q29u
dGV4dHVhbFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChtb3VzZUV2ZW50KTsKKyAgICAgICAgc2Vs
ZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbUhpdFRlc3RSZXN1bHQobW91c2VFdmVu
dC5oaXRUZXN0UmVzdWx0KCksIHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShtb3VzZUV2
ZW50LCBtX2ZyYW1lKSk7CiAgICAgfQogCiAgICAgc3dhbGxvd0V2ZW50ID0gIWRpc3BhdGNoTW91
c2VFdmVudChldmVudE5hbWVzKCkuY29udGV4dG1lbnVFdmVudCwgbW91c2VFdmVudC50YXJnZXRO
b2RlKCksIDAsIGV2ZW50LCBGaXJlTW91c2VPdmVyT3V0OjpObyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaAppbmRleCBlYTQzNDg4OTExNTQ5MjE1ODg2MzUzZmVlNjg2YWZmZTczMmJhMzY3
Li5kZTQwOGJmZGQxNjFmODZkZTUxZDliNTI4YTlkMjc0NTJhNzZiODJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgKQEAgLTM1OSw2ICszNTksOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIHN0YXRpYyBib29sIHNjcm9sbGFibGVBcmVhQ2FuSGFuZGxlRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiwgU2Nyb2xsYWJsZUFyZWEmKTsKKyAgICAKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNlbGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9yTGlua0Zyb21IaXRUZXN0UmVzdWx0
KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBBcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UpOwogCiBwcml2
YXRlOgogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0zNzAsOSArMzcyLDggQEAgcHJpdmF0
ZToKICAgICBib29sIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRG93bkRpc3BhdGNoaW5nU2VsZWN0
U3RhcnQoTm9kZSosIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBUZXh0R3JhbnVsYXJpdHkpOwog
ICAgIHZvaWQgc2VsZWN0Q2xvc2VzdFdvcmRGcm9tSGl0VGVzdFJlc3VsdChjb25zdCBIaXRUZXN0
UmVzdWx0JiwgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTsKICAgICBWaXNpYmxlU2VsZWN0aW9u
IHNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RSZXN1bHRCYXNlZE9uTG9va3VwKGNvbnN0IEhp
dFRlc3RSZXN1bHQmKTsKLSAgICB2b2lkIHNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQo
Y29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwotICAgIHZvaWQgc2VsZWN0Q2xv
c2VzdENvbnRleHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyYpOwotICAgIHZvaWQgc2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5r
RnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOworICAg
IHZvaWQgc2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkRnJvbUhpdFRlc3RSZXN1bHQoY29uc3Qg
SGl0VGVzdFJlc3VsdCYsIEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZSk7CisgICAgCiAKICAgICBi
b29sIGhhbmRsZU1vdXNlRG91YmxlQ2xpY2tFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9FdmVudEhhbmRsZXJD
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRXZlbnRIYW5kbGVyQ29jb2EubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjg5ZmI4MDI4NzVmNmMzZDE2MjRkNzhkMjU3Zjc2ZWUyMjkxNzBhNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRXZlbnRIYW5kbGVyQ29j
b2EubW0KQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRXZlbnRIYW5kbGVyLmgi
CisKKyNpbXBvcnQgIkRpY3Rpb25hcnlMb29rdXAuaCIKKyNpbXBvcnQgIkVkaXRvci5oIgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIEVOQUJMRShS
RVZFQUwpCisKK1Zpc2libGVTZWxlY3Rpb24gRXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0V29y
ZEZyb21IaXRUZXN0UmVzdWx0QmFzZWRPbkxvb2t1cChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1
bHQpCit7CisgICAgaWYgKCFtX2ZyYW1lLmVkaXRvcigpLmJlaGF2aW9yKCkuc2hvdWxkU2VsZWN0
QmFzZWRPbkRpY3Rpb25hcnlMb29rdXAoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1
dG8gcmFuZ2UgPSBEaWN0aW9uYXJ5TG9va3VwOjpyYW5nZUF0SGl0VGVzdFJlc3VsdChyZXN1bHQp
OworICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gc3Rk
OjpnZXQ8U2ltcGxlUmFuZ2U+KCpyYW5nZSk7Cit9CisKKyNlbmRpZgorICAgIAorfQorCisjZW5k
aWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggNDAwZjk0MDQ5ZGQ5MDg1MmMzN2UwMmFhZGM0MWUwMDg0ZWZkMzA4Zi4uYmQw
YTNmM2Q3MmY2ZmNjMTBhYzQ5ZTVkMjIxYjU2NTY3Nzg3MzllYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTg3OSw2ICs4NzksNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZXF1ZXN0RGljdGF0aW9uQ29udGV4dChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpPiYmKTsKICNpZiBFTkFCTEUoUkVW
RUFMKQogICAgIHZvaWQgcmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXZlYWxJdGVtJik+JiYpOworICAgIHZvaWQgcHJlcGFy
ZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIGNvbnN0IFJldmVhbEl0ZW0m
KT4mJik7CiAjZW5kaWYKICAgICB2b2lkIHJlcGxhY2VEaWN0YXRlZFRleHQoY29uc3QgU3RyaW5n
JiBvbGRUZXh0LCBjb25zdCBTdHJpbmcmIG5ld1RleHQpOwogICAgIHZvaWQgcmVwbGFjZVNlbGVj
dGVkVGV4dChjb25zdCBTdHJpbmcmIG9sZFRleHQsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQppbmRleCBjNjQwMGJiMmY3YWVjZTZkYWU2M2VkMzAxMjY3NzAxMDMyYWRjNGIx
Li4zMDAyYmE5MzcyNGRmMWFlYWNlMGQxOGVmYmZmZTIxMTAwYTZmMjZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KQEAgLTc1NTQsNiArNzU1NCwxMyBAQCBzdGF0aWMgYm9vbCBjYW5Vc2VRdWlja2JvYXJkQ29u
dHJvbGxlckZvcihVSVRleHRDb250ZW50VHlwZSB0eXBlKQogICAgICAgICByZXZlYWxJdGVtU2Vs
ZWN0aW9uSGFuZGxlcihpdGVtLml0ZW0oKSk7CiAgICAgfSk7CiB9CisKKy0gKHZvaWQpcHJlcGFy
ZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0
aW9uSW5WaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wgc2hvdWxkUHJlc2VudE1l
bnUsIFJWSXRlbSAqaXRlbSkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZS0+cHJlcGFy
ZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KFdlYkNvcmU6OnJvdW5k
ZWRJbnRQb2ludChsb2NhdGlvbkluVmlldyksIFtwcmVwYXJlU2VsZWN0aW9uRm9yQ29udGV4dE1l
bnVIYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBzaG91bGRQ
cmVzZW50TWVudSwgY29uc3QgV2ViS2l0OjpSZXZlYWxJdGVtJiBpdGVtKSB7CisgICAgICAgIHBy
ZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudUhhbmRsZXIoc2hvdWxkUHJlc2VudE1lbnUsIGl0
ZW0uaXRlbSgpKTsKKyAgICB9KTsKK30KICNlbmRpZgogCiAtIChCT09MKWhhc0hpZGRlbkNvbnRl
bnRFZGl0YWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0KaW5kZXggYjJmY2Q0ZmMxNTQ0OTI1YjUyMWVmOTI3MzllNzY3NDQ3MjFhZGYyMS4uMjk2
ODg1MTM2MjZkMzdlMmNkN2JiNWFlNTUwNmI3ZGMzMmU2NjFjOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC01MzQsNiArNTM0LDE0IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvCiAKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKCksIFdURk1v
dmUoY2FsbGJhY2tGdW5jdGlvbikpOwogfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6cHJlcGFyZVNl
bGVjdGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50IHBvaW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIGNvbnN0IFJldmVhbEl0
ZW0mKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQoreworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3Mo
KSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrRnVuY3Rpb24oZmFsc2UsIFJldmVhbEl0ZW0oKSk7
CisKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlByZXBhcmVTZWxl
Y3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmlldyhwb2ludCksIFdURk1vdmUoY2Fs
bGJhY2tGdW5jdGlvbikpOworfQogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0
QXV0b2NvcnJlY3Rpb25Db250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCA3OTE1ODMzZjg4ZmQ1ZmMyNzYxMzhlNDE2YmVjYWEzZmFlMWM3YTFi
Li45NmY4ZDllYzlkNTQ5MjAzNDk4YzliZjczMDliODcxMjQzMzVmZDZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNjgsNiArMTY4LDcgQEAgT0JK
Q19DTEFTUyBOU0FycmF5OwogT0JKQ19DTEFTUyBOU0RpY3Rpb25hcnk7CiBPQkpDX0NMQVNTIE5T
T2JqZWN0OwogT0JKQ19DTEFTUyBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0OworT0JKQ19D
TEFTUyBSVkl0ZW07CiAjZW5kaWYKIAogI2RlZmluZSBFTkFCTEVfVklFV1BPUlRfUkVTSVpJTkcg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTc5OCw3ICs3OTksOSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHJlcXVlc3REaWN0YXRpb25Db250ZXh0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik+JiYpOwogI2lmIEVOQUJMRShS
RVZFQUwpCisgICAgUmV0YWluUHRyPFJWSXRlbT4gcnZJdGVtRm9yQ3VycmVudFNlbGVjdGlvbigp
OwogICAgIHZvaWQgcmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBXZWJLaXQ6OlJldmVhbEl0ZW0mKT4mJik7CisgICAgdm9pZCBw
cmVwYXJlU2VsZWN0aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXcoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgY29uc3QgUmV2ZWFs
SXRlbSYpPiYmKTsKICNlbmRpZgogICAgIHZvaWQgcmVwbGFjZURpY3RhdGVkVGV4dChjb25zdCBT
dHJpbmcmIG9sZFRleHQsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7CiAgICAgdm9pZCByZXBsYWNl
U2VsZWN0ZWRUZXh0KGNvbnN0IFN0cmluZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCmluZGV4IGI3YTgzNzIxN2UyMTM1YWMwMjA3NGQ5ZTY1MjUyMGM4YjMyYTIwMTYu
LjJjNzFlMTFiNzdiOWFkYjc5ODk5M2YzZDlmODJjMWRiMjkxNjczOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAt
ODMsNiArODMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBS
ZXF1ZXN0RGljdGF0aW9uQ29udGV4dCgpIC0+IChTdHJpbmcgc2VsZWN0ZWRUZXh0LCBTdHJpbmcg
dGV4dEJlZm9yZSwgU3RyaW5nIHRleHRBZnRlcikgQXN5bmMKICNpZiBFTkFCTEUoUkVWRUFMKQog
ICAgIFJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKCkgLT4gKFdlYktpdDo6UmV2
ZWFsSXRlbSBpdGVtKSBBc3luYworICAgIFByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdp
dGhMb2NhdGlvbkluVmlldyhXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkgLT4gKGJvb2wgc2hvdWxk
U2hvd01lbnUsIFdlYktpdDo6UmV2ZWFsSXRlbSBpdGVtKSBBc3luYwogI2VuZGlmCiAgICAgUmVw
bGFjZURpY3RhdGVkVGV4dChTdHJpbmcgb2xkVGV4dCwgU3RyaW5nIG5ld1RleHQpCiAgICAgUmVw
bGFjZVNlbGVjdGVkVGV4dChTdHJpbmcgb2xkVGV4dCwgU3RyaW5nIG5ld1RleHQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4
IGNhNzVjYjM3NzdlZTM3ZTAyOThhNmYxNjlhN2FjNzllNDY4OWE4ZDMuLmE0Mjg2ODY0ODlhZGI3
NmY2ZGRhMTU3YjY1ZjI3YzBkMWRlNTkwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yMzQzLDkgKzIzNDMsOCBAQCB2
b2lkIFdlYlBhZ2U6OnJlcXVlc3REaWN0YXRpb25Db250ZXh0KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgU3RyaW5nJiwgY29ucwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoc2VsZWN0ZWRU
ZXh0LCBjb250ZXh0QmVmb3JlLCBjb250ZXh0QWZ0ZXIpOwogfQotCiAjaWYgRU5BQkxFKFJFVkVB
TCkKLXZvaWQgV2ViUGFnZTo6cmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJLaXQ6OlJldmVhbEl0ZW0mKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK1JldGFpblB0cjxSVkl0ZW0+IFdlYlBhZ2U6OnJ2SXRlbUZvckN1cnJlbnRT
ZWxlY3Rpb24oKQogewogICAgIFJlZiBmcmFtZSA9IENoZWNrZWRSZWYobV9wYWdlLT5mb2N1c0Nv
bnRyb2xsZXIoKSktPmZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgIGF1dG8gc2VsZWN0aW9uID0g
ZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwpAQCAtMjM2OCw4ICsyMzY3LDIzIEBAIHZv
aWQgV2ViUGFnZTo6cmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBXCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Cisg
ICAgcmV0dXJuIGl0ZW07Cit9CisKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFJWSXRlbUluQ3VycmVu
dFNlbGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJLaXQ6OlJldmVh
bEl0ZW0mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcihS
ZXZlYWxJdGVtKHJ2SXRlbUZvckN1cnJlbnRTZWxlY3Rpb24oKSkpOworfQorCit2b2lkIFdlYlBh
Z2U6OnByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmlldyhjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBj
b25zdCBSZXZlYWxJdGVtJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29uc3RleHBy
IE9wdGlvblNldDxIaXRUZXN0UmVxdWVzdDo6VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0
OjpUeXBlOjpSZWFkT25seSwgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkFjdGl2ZSwgSGl0VGVzdFJl
cXVlc3Q6OlR5cGU6OkFsbG93VmlzaWJsZUNoaWxkRnJhbWVDb250ZW50T25seSB9OworICAgIGF1
dG8mIGV2ZW50SGFuZGVyID0gbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKTsKKyAg
ICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IGV2ZW50SGFuZGVyLmhpdFRlc3RSZXN1bHRBdFBvaW50
KHBvaW50LCBoaXRUeXBlKTsKKyAgICAKKyAgICBldmVudEhhbmRlci5zZWxlY3RDbG9zZXN0Q29u
dGV4dHVhbFdvcmRPckxpbmtGcm9tSGl0VGVzdFJlc3VsdChyZXN1bHQsIFdlYkNvcmU6OkRvbnRB
cHBlbmRUcmFpbGluZ1doaXRlc3BhY2UpOwogICAgIAotICAgIGNvbXBsZXRpb25IYW5kbGVyKFJl
dmVhbEl0ZW0oV1RGTW92ZShpdGVtKSkpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUsIFJl
dmVhbEl0ZW0ocnZJdGVtRm9yQ3VycmVudFNlbGVjdGlvbigpKSk7CiB9CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451986</attachid>
            <date>2022-02-14 19:51:52 -0800</date>
            <delta_ts>2022-02-14 20:20:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236627-20220214195151.patch</filename>
            <type>text/plain</type>
            <size>24494</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAwN2Q3YTU4NDYyYmFi
ZGRhZDlmNjE0MzBmMTIxMWJkZTU3YzlkNy4uMTE5MjU1ZWViY2Y4YTVhZTMwZmFmY2QzMGE2OTli
Mjk1OTUyMzkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTE0ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IGFkZGl0aW9uYWwgUmV2ZWVhbCBtZXRob2RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVzcG9uZCB0byBwcm90b2NvbCBtZXRob2RzIHRoYXQgaW5z
dGFudGlhdGUgYSBzZWxlY3Rpb24gYW5kIHJlcXVlc3QgUlZJdGVtcyBmb3IgYSBtZW51LgorCisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rp
b25hcnlMb29rdXAgY29uc3QpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxv
b2t1cC5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNyZWF0ZVJldmVhbEl0ZW1zKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcik6CisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdvcmRGcm9tSGl0VGVzdFJlc3VsdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9y
TGlua0Zyb21IaXRUZXN0UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
aGFuZGxlTW91c2VQcmVzc0V2ZW50RG91YmxlQ2xpY2spOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdvcmRG
cm9tTW91c2VFdmVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnNlbGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9yTGlua0Zyb21Nb3VzZUV2ZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAqIHBhZ2UvY29jb2Ev
RXZlbnRIYW5kbGVyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0QmFzZWRPbkxvb2t1cCk6CisK
IDIwMjItMDItMTQgIERhbiBHbGFzdG9uYnVyeSAgPGRqZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
TW92ZSBQREZEb2N1bWVudC5jcHAvaCBpbiBjb3JyZWN0IHBvc2l0aW9uIGluIFdlYkNvcmUueGNv
ZGVwcm9qCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDgxM2I3ZjgzOWYxNjhmOGRkNTAyMmUzYTBhNTQ1OGIyZThjYTk1
NjguLjJmNzhhNjdhNmQ2Zjg1ZjQwNzdmYmQ3NjJjZWU1MjkzOTJhNWI0ZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMjItMDItMTQgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVy
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYWRkaXRpb25hbCBSZXZlZWFsIG1ldGhv
ZHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNw
b25kIHRvIHByb3RvY29sIG1ldGhvZHMgdGhhdCBpbnN0YW50aWF0ZSBhIHNlbGVjdGlvbiBhbmQg
cmVxdWVzdCBSVkl0ZW1zIGZvciBhIG1lbnUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJlcGFyZVNlbGVjdGlvbkZvckNvbnRl
eHRNZW51V2l0aExvY2F0aW9uSW5WaWV3OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmll
dyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnJlcXVlc3REaWN0YXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cnZJ
dGVtRm9yQ3VycmVudFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6cHJlcGFyZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KToKKwog
MjAyMi0wMi0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBEaXJlY3QgdG91Y2hlcyBkb24ndCB0cmlnZ2VyIG90aGVyIGdlc3R1cmUgcmVjb2duaXpl
cnMgaWYgV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyIHNlZXMgdGhlbSBmaXJzdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKaW5kZXggYjYzMWQyODU3OWQxMDU0ODRlYmUxN2NmM2MyZDMxNjgyZTViMmZk
Yi4uNzk5MmI1Yzc2OGZhYmFlMTMwYWY0YTVkMjE5YWJlYmI4MzM2OGRiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC0xOTMsNiArMTkzLDcgQEAgbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4
dHJhcy5tbQogbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbQogcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzTWVkaWFBRi5jcHAKIHBhZ2UvY29jb2EvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUZDb2NvYS5tbQorcGFnZS9jb2NvYS9FdmVudEhhbmRsZXJDb2NvYS5tbQogcGFnZS9j
b2NvYS9NZW1vcnlSZWxlYXNlQ29jb2EubW0KIHBhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5n
Q29jb2EubW0KIHBhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg1
ZTRjMTU5ODYyYWUxN2Q5YWFmNWVmNjE0MDc2MTJhZjJmYjFhMzYuLmZjNWVkNWM3NzU1YmNhNDJh
YjIzZjk3M2E2OTVhN2RkMTFmNTY1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxMzYsNiArOTEzNiw3IEBACiAJCTQ0MzdD
NEE3MjRFMkFFNUYwMDA5NTEyOCAvKiBMYXp5TG9hZEZyYW1lT2JzZXJ2ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGF6eUxvYWRGcmFtZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0MzdDNEE5MjRFMkFFNUYwMDA5NTEyOCAvKiBMYXp5TG9hZEZyYW1lT2JzZXJ2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGF6eUxvYWRGcmFtZU9ic2VydmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQzODc3RTMyNzE2ODFGNjAwRkQzRTMzIC8qIENhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0NDNCRkRDNjI3QkIzNzJDMDAwMTI0NUYgLyogRXZlbnRIYW5kbGVyQ29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFdmVudEhhbmRsZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQzRjA0MjYwRTc1QzhGQjAwN0U1NDA3IC8qIE5ldHdvcmtTdGF0
ZU5vdGlmaWVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ0NEQ0RTIxMEY3MDhCMkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlVVJMUmVzcG9uc2VJ
T1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTIxMEREMjVENjFFRkYwMDNB
MkVEOCAvKiBBcHBIaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXBwSGlnaGxpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzM2Miw2ICsy
MzM2Myw3IEBACiAJCQkJNDQzODc3RTMyNzE2ODFGNjAwRkQzRTMzIC8qIENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGQ29jb2EubW0gKi8sCiAJCQkJRjQ0NkVEREQyNjVEQUUzRjAwMzFEQThG
IC8qIERhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oICovLAogCQkJCUY0NDZFREU3MjY1REQ4
OTAwMDMxREE4RiAvKiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oICovLAorCQkJCTQ0M0JGREM2
MjdCQjM3MkMwMDAxMjQ1RiAvKiBFdmVudEhhbmRsZXJDb2NvYS5tbSAqLywKIAkJCQlGNDQ2RURF
MDI2NURCMUU1MDAzMURBOEYgLyogSW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50
aWZpZXIuaCAqLywKIAkJCQk0MTNFMDA3QjFEQjBFNzA3MDAyMzQxRDIgLyogTWVtb3J5UmVsZWFz
ZUNvY29hLm1tICovLAogCQkJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3JtYW5j
ZUxvZ2dpbmdDb2NvYS5tbSAqLywKQEAgLTI1OTI1LDEwICsyNTkyNywxMCBAQAogCQkJCTMxNDg3
N0UwMUZBQThGRTkwMEMwNTc1OSAvKiBPZmZzY3JlZW5DYW52YXMuY3BwICovLAogCQkJCTMxNDg3
N0UxMUZBQThGRTkwMEMwNTc1OSAvKiBPZmZzY3JlZW5DYW52YXMuaCAqLywKIAkJCQkzMTQ4NzdE
OTFGQUE4NzA2MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmlkbCAqLywKLQkJCQk0OTRFQkQw
ODI3QUE5QzUzMDBGNDg0NEYgLyogUERGRG9jdW1lbnQuY3BwICovLAotCQkJCTQ5NEVCRDA2MjdB
QTlDNTMwMEY0ODQ0RiAvKiBQREZEb2N1bWVudC5oICovLAogCQkJCUY1NUIzRDk1MTI1MUYxMkQw
MDNFRjI2OSAvKiBQYXNzd29yZElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOTYxMjUxRjEy
RDAwM0VGMjY5IC8qIFBhc3N3b3JkSW5wdXRUeXBlLmggKi8sCisJCQkJNDk0RUJEMDgyN0FBOUM1
MzAwRjQ4NDRGIC8qIFBERkRvY3VtZW50LmNwcCAqLywKKwkJCQk0OTRFQkQwNjI3QUE5QzUzMDBG
NDg0NEYgLyogUERGRG9jdW1lbnQuaCAqLywKIAkJCQk5NzIwNUFCOTEyMzkyOTI3MDBCMTczODAg
LyogUGx1Z2luRG9jdW1lbnQuY3BwICovLAogCQkJCTk3MjA1QUJBMTIzOTI5MjcwMEIxNzM4MCAv
KiBQbHVnaW5Eb2N1bWVudC5oICovLAogCQkJCUNERUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQ
dWJsaWNVUkxNYW5hZ2VyLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ0JlaGF2aW9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhh
dmlvci5oCmluZGV4IGZiNDM5YzcxZjdkYTBkOTBmM2M2MWQwY2JiZTRmMTQ3NGU4ZDNhYmIuLjNm
NzQyNmRiZTI4YzYxYzQ4MDI0ZDVjNmUxZDUzNDYxY2YzN2NmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaApAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gc3BhY2Ugd2hlbiBkZWxldGluZyBwYXNzd29yZCBjYXVzZSBzcGFjZSBiZWVuIHNob3dlZCBp
bnNlY3VyZWx5LgogICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVTcGFjZXNJblNlY3VyZUZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OmlPUzsg
fQogCi0gICAgYm9vbCBzaG91bGRTZWxlY3RCYXNlZE9uRGljdGlvbmFyeUxvb2t1cCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWM7IH0KKyAgICBib29s
IHNob3VsZFNlbGVjdEJhc2VkT25EaWN0aW9uYXJ5TG9va3VwKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyB8fCBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2
aW9yVHlwZTo6aU9TOyB9CiAKICAgICAvLyBMaW51eCBhbmQgV2luZG93cyBhbHdheXMgZXh0ZW5k
IHNlbGVjdGlvbnMgZnJvbSB0aGUgZXh0ZW50IGVuZHBvaW50LgogICAgIGJvb2wgc2hvdWxkQWx3
YXlzRXh0ZW5kU2VsZWN0aW9uRnJvbUV4dGVudEVuZHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV90
eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2
aW9yVHlwZTo6aU9TOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0RpY3Rpb25hcnlMb29rdXAubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RpY3Rp
b25hcnlMb29rdXAubW0KaW5kZXggMzhlNjJlMDQyNWU1ZmI4NmIwOTc5YmY4NWU4NjhmMjUyZDhk
ZTNhMi4uY2Q4NzFiYzU4YTY3MGIzZDA3ODc1MGI0ZmM2YmE4MjE3MDNhYTQ4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQpAQCAtMjU3
LDcgKzI1Nyw3IEBAIHN0YXRpYyBib29sIGNhbkNyZWF0ZVJldmVhbEl0ZW1zKCkKICAgICBzdGF0
aWMgYm9vbCByZXN1bHQ7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbJl0gewotICAgICAgICByZXN1bHQgPSBQQUw6Omlz
UmV2ZWFsRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc1JldmVhbENvcmVGcmFtZXdvcmtB
dmFpbGFibGUoKSAmJiBQQUw6OmdldFJWSXRlbUNsYXNzKCk7CisgICAgICAgIHJlc3VsdCA9IFBB
TDo6aXNSZXZlYWxDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjpnZXRSVkl0ZW1DbGFz
cygpOwogICAgIH0pOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC00MjcsNyArNDI3LDcgQEAg
c3RhdGljIFdLUmV2ZWFsQ29udHJvbGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRy
b2xsZXIoYm9vbCBjcmVhdGVBbmltYXQKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
ICAgICAKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKCFjYW5DcmVhdGVSZXZlYWxJdGVtcygp
IHx8ICFQQUw6OmdldFJWUHJlc2VudGVyQ2xhc3MoKSkKKyAgICBpZiAoIWNhbkNyZWF0ZVJldmVh
bEl0ZW1zKCkgfHwgIVBBTDo6Z2V0UlZQcmVzZW50ZXJDbGFzcygpIHx8ICFQQUw6OmlzUmV2ZWFs
RnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBhdXRvIG11
dGFibGVPcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRd
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwNTk3ZDFmMTkxY2I1YjBh
NWMyYjE3ODQyNmZlNThlMzNhMmU1N2UwLi5jY2MzM2QwZTI4MjRhZjBlMWQyMjcxMTYxOGEwMGJi
OWU3NGViZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC01MzQsMjUg
KzUzNCwxNyBAQCBzdGF0aWMgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIHNob3VsZEFwcGVuZFRy
YWlsaW5nV2hpdGVzcGFjZShjb25zdCBNb3VzZUV2ZW50VwogICAgIHJldHVybiAocmVzdWx0LmV2
ZW50KCkuY2xpY2tDb3VudCgpID09IDIgJiYgZnJhbWUuZWRpdG9yKCkuaXNTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKCkpID8gU2hvdWxkQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIDog
RG9udEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OnNl
bGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0
UmVzdWx0cyYgcmVzdWx0KQotewotICAgIGlmIChtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpKQot
ICAgICAgICBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdC5oaXRUZXN0
UmVzdWx0KCksIHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShyZXN1bHQsIG1fZnJhbWUp
KTsKLX0KLQotI2lmICFQTEFURk9STShNQUMpCisjaWYgIVBMQVRGT1JNKENPQ09BKQogVmlzaWJs
ZVNlbGVjdGlvbiBFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RSZXN1
bHRCYXNlZE9uTG9va3VwKGNvbnN0IEhpdFRlc3RSZXN1bHQmKQogewogICAgIHJldHVybiBWaXNp
YmxlU2VsZWN0aW9uKCk7CiB9CiAjZW5kaWYKICAgICAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzZWxl
Y3RDbG9zZXN0Q29udGV4dHVhbFdvcmRGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBtb3VzZUV2ZW50KQordm9pZCBFdmVudEhhbmRsZXI6OnNlbGVjdENs
b3Nlc3RDb250ZXh0dWFsV29yZEZyb21IaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQm
IHJlc3VsdCwgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIGFwcGVuZFRyYWlsaW5nV2hpdGVzcGFj
ZSkKIHsKLSAgICBSZWZQdHIgdGFyZ2V0Tm9kZSA9IG1vdXNlRXZlbnQudGFyZ2V0Tm9kZSgpOwot
ICAgIGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCA9IG1vdXNlRXZlbnQuaGl0VGVzdFJlc3Vs
dCgpOworICAgIFJlZlB0ciB0YXJnZXROb2RlID0gcmVzdWx0LnRhcmdldE5vZGUoKTsKICAgICBW
aXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKLSAgICBib29sIGFwcGVuZFRyYWlsaW5nV2hp
dGVzcGFjZSA9IHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShtb3VzZUV2ZW50LCBtX2Zy
YW1lKTsKICAgICAKICAgICBpZiAodGFyZ2V0Tm9kZSAmJiB0YXJnZXROb2RlLT5yZW5kZXJlcigp
KSB7CiAgICAgICAgIG5ld1NlbGVjdGlvbiA9IHNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RS
ZXN1bHRCYXNlZE9uTG9va3VwKHJlc3VsdCk7CkBAIC01NzEsMTYgKzU2MywxOSBAQCB2b2lkIEV2
ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQoY29u
c3QgTW91c2VFdmVudFdpdAogICAgIH0KIH0KICAgICAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzZWxl
Y3RDbG9zZXN0Q29udGV4dHVhbFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiByZXN1bHQpCit2b2lkIEV2ZW50SGFuZGxlcjo6c2VsZWN0
Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbUhpdFRlc3RSZXN1bHQoY29uc3QgSGl0VGVz
dFJlc3VsdCYgcmVzdWx0LCBBcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UgYXBwZW5kVHJhaWxpbmdX
aGl0ZXNwYWNlKQogewotICAgIFJlZlB0ciB1cmxFbGVtZW50ID0gcmVzdWx0LmhpdFRlc3RSZXN1
bHQoKS5VUkxFbGVtZW50KCk7CisgICAgUmVmUHRyIHVybEVsZW1lbnQgPSByZXN1bHQuVVJMRWxl
bWVudCgpOwogICAgIGlmICghdXJsRWxlbWVudCB8fCAhaXNEcmFnZ2FibGVMaW5rKCp1cmxFbGVt
ZW50KSkgewogICAgICAgICBpZiAoUmVmUHRyIHRhcmdldE5vZGUgPSByZXN1bHQudGFyZ2V0Tm9k
ZSgpKSB7Ci0gICAgICAgICAgICBpZiAoaXNFZGl0YWJsZU5vZGUoKnRhcmdldE5vZGUpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50KHJlc3Vs
dCk7CisgICAgICAgICAgICBpZiAoaXNFZGl0YWJsZU5vZGUoKnRhcmdldE5vZGUpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKG1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdCwg
YXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4gc2VsZWN0Q2xvc2VzdENvbnRl
eHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdENs
b3Nlc3RDb250ZXh0dWFsV29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdCwgYXBwZW5kVHJhaWxp
bmdXaGl0ZXNwYWNlKTsKICAgICB9CiAKICAgICBSZWZQdHIgdGFyZ2V0Tm9kZSA9IHJlc3VsdC50
YXJnZXROb2RlKCk7CkBAIC02MDIsMTIgKzU5NywxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VQcmVzc0V2ZW50RG91YmxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0
UgogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzUmFuZ2UoKSkKICAgICAgICAgLy8gQSBk
b3VibGUtY2xpY2sgd2hlbiByYW5nZSBpcyBhbHJlYWR5IHNlbGVjdGVkCiAgICAgICAgIC8vIHNo
b3VsZCBub3QgY2hhbmdlIHRoZSBzZWxlY3Rpb24uICBTbywgZG8gbm90IGNhbGwKLSAgICAgICAg
Ly8gc2VsZWN0Q2xvc2VzdFdvcmRGcm9tTW91c2VFdmVudCwgYnV0IGRvIHNldAorICAgICAgICAv
LyBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0LCBidXQgZG8gc2V0CiAgICAgICAg
IC8vIG1fYmVnYW5TZWxlY3RpbmdUZXh0IHRvIHByZXZlbnQgaGFuZGxlTW91c2VSZWxlYXNlRXZl
bnQKICAgICAgICAgLy8gZnJvbSBzZXR0aW5nIGNhcmV0IHNlbGVjdGlvbi4KICAgICAgICAgbV9z
ZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBFeHRlbmRlZFNlbGVjdGlvbjsKICAgICBlbHNlCi0g
ICAgICAgIHNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoZXZlbnQpOworICAgICAgICBz
ZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KGV2ZW50LmhpdFRlc3RSZXN1bHQoKSwg
c2hvdWxkQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKGV2ZW50LCBtX2ZyYW1lKSk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTMyODAsNyArMzI3NSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpz
ZW5kQ29udGV4dE1lbnVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogICAg
ICAgICAvLyBhdmFpbGFibGUgZm9yIHRleHQgc2VsZWN0aW9ucy4gIEJ1dCBvbmx5IGlmIHdlJ3Jl
IGFib3ZlIHRleHQuCiAgICAgICAgICYmIChtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigp
LmlzQ29udGVudEVkaXRhYmxlKCkgfHwgKG1vdXNlRXZlbnQudGFyZ2V0Tm9kZSgpICYmIG1vdXNl
RXZlbnQudGFyZ2V0Tm9kZSgpLT5pc1RleHROb2RlKCkpKSkgewogICAgICAgICBtX21vdXNlRG93
bk1heVN0YXJ0U2VsZWN0ID0gdHJ1ZTsgLy8gY29udGV4dCBtZW51IGV2ZW50cyBhcmUgYWx3YXlz
IGFsbG93ZWQgdG8gcGVyZm9ybSBhIHNlbGVjdGlvbgotICAgICAgICBzZWxlY3RDbG9zZXN0Q29u
dGV4dHVhbFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChtb3VzZUV2ZW50KTsKKyAgICAgICAgc2Vs
ZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbUhpdFRlc3RSZXN1bHQobW91c2VFdmVu
dC5oaXRUZXN0UmVzdWx0KCksIHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShtb3VzZUV2
ZW50LCBtX2ZyYW1lKSk7CiAgICAgfQogCiAgICAgc3dhbGxvd0V2ZW50ID0gIWRpc3BhdGNoTW91
c2VFdmVudChldmVudE5hbWVzKCkuY29udGV4dG1lbnVFdmVudCwgbW91c2VFdmVudC50YXJnZXRO
b2RlKCksIDAsIGV2ZW50LCBGaXJlTW91c2VPdmVyT3V0OjpObyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaAppbmRleCBlYTQzNDg4OTExNTQ5MjE1ODg2MzUzZmVlNjg2YWZmZTczMmJhMzY3
Li5kZTQwOGJmZGQxNjFmODZkZTUxZDliNTI4YTlkMjc0NTJhNzZiODJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgKQEAgLTM1OSw2ICszNTksOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIHN0YXRpYyBib29sIHNjcm9sbGFibGVBcmVhQ2FuSGFuZGxlRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiwgU2Nyb2xsYWJsZUFyZWEmKTsKKyAgICAKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNlbGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9yTGlua0Zyb21IaXRUZXN0UmVzdWx0
KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBBcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UpOwogCiBwcml2
YXRlOgogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0zNzAsOSArMzcyLDggQEAgcHJpdmF0
ZToKICAgICBib29sIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRG93bkRpc3BhdGNoaW5nU2VsZWN0
U3RhcnQoTm9kZSosIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBUZXh0R3JhbnVsYXJpdHkpOwog
ICAgIHZvaWQgc2VsZWN0Q2xvc2VzdFdvcmRGcm9tSGl0VGVzdFJlc3VsdChjb25zdCBIaXRUZXN0
UmVzdWx0JiwgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTsKICAgICBWaXNpYmxlU2VsZWN0aW9u
IHNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RSZXN1bHRCYXNlZE9uTG9va3VwKGNvbnN0IEhp
dFRlc3RSZXN1bHQmKTsKLSAgICB2b2lkIHNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQo
Y29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwotICAgIHZvaWQgc2VsZWN0Q2xv
c2VzdENvbnRleHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyYpOwotICAgIHZvaWQgc2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5r
RnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOworICAg
IHZvaWQgc2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkRnJvbUhpdFRlc3RSZXN1bHQoY29uc3Qg
SGl0VGVzdFJlc3VsdCYsIEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZSk7CisgICAgCiAKICAgICBi
b29sIGhhbmRsZU1vdXNlRG91YmxlQ2xpY2tFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9FdmVudEhhbmRsZXJD
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRXZlbnRIYW5kbGVyQ29jb2EubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjg5ZmI4MDI4NzVmNmMzZDE2MjRkNzhkMjU3Zjc2ZWUyMjkxNzBhNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRXZlbnRIYW5kbGVyQ29j
b2EubW0KQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRXZlbnRIYW5kbGVyLmgi
CisKKyNpbXBvcnQgIkRpY3Rpb25hcnlMb29rdXAuaCIKKyNpbXBvcnQgIkVkaXRvci5oIgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIEVOQUJMRShS
RVZFQUwpCisKK1Zpc2libGVTZWxlY3Rpb24gRXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0V29y
ZEZyb21IaXRUZXN0UmVzdWx0QmFzZWRPbkxvb2t1cChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1
bHQpCit7CisgICAgaWYgKCFtX2ZyYW1lLmVkaXRvcigpLmJlaGF2aW9yKCkuc2hvdWxkU2VsZWN0
QmFzZWRPbkRpY3Rpb25hcnlMb29rdXAoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1
dG8gcmFuZ2UgPSBEaWN0aW9uYXJ5TG9va3VwOjpyYW5nZUF0SGl0VGVzdFJlc3VsdChyZXN1bHQp
OworICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gc3Rk
OjpnZXQ8U2ltcGxlUmFuZ2U+KCpyYW5nZSk7Cit9CisKKyNlbmRpZgorICAgIAorfQorCisjZW5k
aWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50
SGFuZGxlck1hYy5tbQppbmRleCBiNzBjOTA0NWY0MmJjZWE0MWI3ZTJhNTRmMDBmNDZkODQ3MzAy
NTIyLi41OGVmZjhmMmY2NGQ2Mzc3Nzk1ZWQwYmIyZWIzNmFlYzc0MGZhMjI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC05OTEsMTggKzk5MSw2IEBA
IHZvaWQgRXZlbnRIYW5kbGVyOjpwcm9jZXNzV2hlZWxFdmVudEZvclNjcm9sbFNuYXAoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yLT5wcm9jZXNz
V2hlZWxFdmVudEZvclNjcm9sbFNuYXAod2hlZWxFdmVudCk7CiB9CiAKLVZpc2libGVTZWxlY3Rp
b24gRXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0QmFzZWRP
bkxvb2t1cChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpCi17Ci0gICAgaWYgKCFtX2ZyYW1l
LmVkaXRvcigpLmJlaGF2aW9yKCkuc2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rpb25hcnlMb29rdXAo
KSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIGF1dG8gcmFuZ2UgPSBEaWN0aW9uYXJ5TG9v
a3VwOjpyYW5nZUF0SGl0VGVzdFJlc3VsdChyZXN1bHQpOwotICAgIGlmICghcmFuZ2UpCi0gICAg
ICAgIHJldHVybiB7IH07Ci0KLSAgICByZXR1cm4gc3RkOjpnZXQ8U2ltcGxlUmFuZ2U+KCpyYW5n
ZSk7Ci19Ci0KIHN0YXRpYyBJbnRTaXplIGF1dG9zY3JvbGxBZGp1c3RtZW50RmFjdG9yRm9yU2Ny
ZWVuQm91bmRhcmllcyhjb25zdCBJbnRQb2ludCYgc2NyZWVuUG9pbnQsIGNvbnN0IEZsb2F0UmVj
dCYgc2NyZWVuUmVjdCkKIHsKICAgICAvLyBJZiB0aGUgd2luZG93IGlzIGF0IHRoZSBlZGdlIG9m
IHRoZSBzY3JlZW4sIGFuZCB0aGUgbW91c2UgcG9zaXRpb24gaXMgYWxzbyBhdCB0aGF0IGVkZ2Ug
b2YgdGhlIHNjcmVlbiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
NDAwZjk0MDQ5ZGQ5MDg1MmMzN2UwMmFhZGM0MWUwMDg0ZWZkMzA4Zi4uYmQwYTNmM2Q3MmY2ZmNj
MTBhYzQ5ZTVkMjIxYjU2NTY3Nzg3MzllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTg3OSw2ICs4NzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0RGlj
dGF0aW9uQ29udGV4dChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpPiYmKTsKICNpZiBFTkFCTEUoUkVWRUFMKQogICAgIHZv
aWQgcmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBSZXZlYWxJdGVtJik+JiYpOworICAgIHZvaWQgcHJlcGFyZVNlbGVjdGlvbkZv
ckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIGNvbnN0IFJldmVhbEl0ZW0mKT4mJik7CiAjZW5k
aWYKICAgICB2b2lkIHJlcGxhY2VEaWN0YXRlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0LCBj
b25zdCBTdHJpbmcmIG5ld1RleHQpOwogICAgIHZvaWQgcmVwbGFjZVNlbGVjdGVkVGV4dChjb25z
dCBTdHJpbmcmIG9sZFRleHQsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpp
bmRleCBjNjQwMGJiMmY3YWVjZTZkYWU2M2VkMzAxMjY3NzAxMDMyYWRjNGIxLi4zMDAyYmE5Mzcy
NGRmMWFlYWNlMGQxOGVmYmZmZTIxMTAwYTZmMjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTc1NTQs
NiArNzU1NCwxMyBAQCBzdGF0aWMgYm9vbCBjYW5Vc2VRdWlja2JvYXJkQ29udHJvbGxlckZvcihV
SVRleHRDb250ZW50VHlwZSB0eXBlKQogICAgICAgICByZXZlYWxJdGVtU2VsZWN0aW9uSGFuZGxl
cihpdGVtLml0ZW0oKSk7CiAgICAgfSk7CiB9CisKKy0gKHZvaWQpcHJlcGFyZVNlbGVjdGlvbkZv
ckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3OihDR1BvaW50KWxvY2F0aW9uSW5WaWV3IGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wgc2hvdWxkUHJlc2VudE1lbnUsIFJWSXRlbSAq
aXRlbSkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZS0+cHJlcGFyZVNlbGVjdGlvbkZv
ckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChs
b2NhdGlvbkluVmlldyksIFtwcmVwYXJlU2VsZWN0aW9uRm9yQ29udGV4dE1lbnVIYW5kbGVyID0g
bWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBzaG91bGRQcmVzZW50TWVudSwg
Y29uc3QgV2ViS2l0OjpSZXZlYWxJdGVtJiBpdGVtKSB7CisgICAgICAgIHByZXBhcmVTZWxlY3Rp
b25Gb3JDb250ZXh0TWVudUhhbmRsZXIoc2hvdWxkUHJlc2VudE1lbnUsIGl0ZW0uaXRlbSgpKTsK
KyAgICB9KTsKK30KICNlbmRpZgogCiAtIChCT09MKWhhc0hpZGRlbkNvbnRlbnRFZGl0YWJsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXgg
YjJmY2Q0ZmMxNTQ0OTI1YjUyMWVmOTI3MzllNzY3NDQ3MjFhZGYyMS4uMjk2ODg1MTM2MjZkMzdl
MmNkN2JiNWFlNTUwNmI3ZGMzMmU2NjFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC01MzQsNiArNTM0LDE0IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvCiAKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6
OlJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKCksIFdURk1vdmUoY2FsbGJhY2tG
dW5jdGlvbikpOwogfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6cHJlcGFyZVNlbGVjdGlvbkZvckNv
bnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvaW50
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIGNvbnN0IFJldmVhbEl0ZW0mKT4mJiBjYWxs
YmFja0Z1bmN0aW9uKQoreworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAg
cmV0dXJuIGNhbGxiYWNrRnVuY3Rpb24oZmFsc2UsIFJldmVhbEl0ZW0oKSk7CisKKyAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlByZXBhcmVTZWxlY3Rpb25Gb3JDb250
ZXh0TWVudVdpdGhMb2NhdGlvbkluVmlldyhwb2ludCksIFdURk1vdmUoY2FsbGJhY2tGdW5jdGlv
bikpOworfQogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0QXV0b2NvcnJlY3Rp
b25Db250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCA3OTE1ODMzZjg4ZmQ1ZmMyNzYxMzhlNDE2YmVjYWEzZmFlMWM3YTFiLi45NmY4ZDllYzlk
NTQ5MjAzNDk4YzliZjczMDliODcxMjQzMzVmZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNjgsNiArMTY4LDcgQEAgT0JKQ19DTEFTUyBOU0Fy
cmF5OwogT0JKQ19DTEFTUyBOU0RpY3Rpb25hcnk7CiBPQkpDX0NMQVNTIE5TT2JqZWN0OwogT0JK
Q19DTEFTUyBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0OworT0JKQ19DTEFTUyBSVkl0ZW07
CiAjZW5kaWYKIAogI2RlZmluZSBFTkFCTEVfVklFV1BPUlRfUkVTSVpJTkcgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKQEAgLTc5OCw3ICs3OTksOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlcXVlc3RE
aWN0YXRpb25Db250ZXh0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik+JiYpOwogI2lmIEVOQUJMRShSRVZFQUwpCisgICAg
UmV0YWluUHRyPFJWSXRlbT4gcnZJdGVtRm9yQ3VycmVudFNlbGVjdGlvbigpOwogICAgIHZvaWQg
cmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBXZWJLaXQ6OlJldmVhbEl0ZW0mKT4mJik7CisgICAgdm9pZCBwcmVwYXJlU2VsZWN0
aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgY29uc3QgUmV2ZWFsSXRlbSYpPiYmKTsK
ICNlbmRpZgogICAgIHZvaWQgcmVwbGFjZURpY3RhdGVkVGV4dChjb25zdCBTdHJpbmcmIG9sZFRl
eHQsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7CiAgICAgdm9pZCByZXBsYWNlU2VsZWN0ZWRUZXh0
KGNvbnN0IFN0cmluZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IGI3YTgzNzIxN2UyMTM1YWMwMjA3NGQ5ZTY1MjUyMGM4YjMyYTIwMTYuLjJjNzFlMTFiNzdi
OWFkYjc5ODk5M2YzZDlmODJjMWRiMjkxNjczOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtODMsNiArODMsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBSZXF1ZXN0RGljdGF0
aW9uQ29udGV4dCgpIC0+IChTdHJpbmcgc2VsZWN0ZWRUZXh0LCBTdHJpbmcgdGV4dEJlZm9yZSwg
U3RyaW5nIHRleHRBZnRlcikgQXN5bmMKICNpZiBFTkFCTEUoUkVWRUFMKQogICAgIFJlcXVlc3RS
Vkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKCkgLT4gKFdlYktpdDo6UmV2ZWFsSXRlbSBpdGVt
KSBBc3luYworICAgIFByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbklu
VmlldyhXZWJDb3JlOjpJbnRQb2ludCBwb2ludCkgLT4gKGJvb2wgc2hvdWxkU2hvd01lbnUsIFdl
YktpdDo6UmV2ZWFsSXRlbSBpdGVtKSBBc3luYwogI2VuZGlmCiAgICAgUmVwbGFjZURpY3RhdGVk
VGV4dChTdHJpbmcgb2xkVGV4dCwgU3RyaW5nIG5ld1RleHQpCiAgICAgUmVwbGFjZVNlbGVjdGVk
VGV4dChTdHJpbmcgb2xkVGV4dCwgU3RyaW5nIG5ld1RleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGNhNzVjYjM3Nzdl
ZTM3ZTAyOThhNmYxNjlhN2FjNzllNDY4OWE4ZDMuLmE0Mjg2ODY0ODlhZGI3NmY2ZGRhMTU3YjY1
ZjI3YzBkMWRlNTkwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yMzQzLDkgKzIzNDMsOCBAQCB2b2lkIFdlYlBhZ2U6
OnJlcXVlc3REaWN0YXRpb25Db250ZXh0KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3Ry
aW5nJiwgY29ucwogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoc2VsZWN0ZWRUZXh0LCBjb250ZXh0
QmVmb3JlLCBjb250ZXh0QWZ0ZXIpOwogfQotCiAjaWYgRU5BQkxFKFJFVkVBTCkKLXZvaWQgV2Vi
UGFnZTo6cmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBXZWJLaXQ6OlJldmVhbEl0ZW0mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K1JldGFpblB0cjxSVkl0ZW0+IFdlYlBhZ2U6OnJ2SXRlbUZvckN1cnJlbnRTZWxlY3Rpb24oKQog
ewogICAgIFJlZiBmcmFtZSA9IENoZWNrZWRSZWYobV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKSkt
PmZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgIGF1dG8gc2VsZWN0aW9uID0gZnJhbWUtPnNlbGVj
dGlvbigpLnNlbGVjdGlvbigpOwpAQCAtMjM2OCw4ICsyMzY3LDIzIEBAIHZvaWQgV2ViUGFnZTo6
cmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBXCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisgICAgcmV0dXJuIGl0
ZW07Cit9CisKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFu
Z2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJLaXQ6OlJldmVhbEl0ZW0mKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcihSZXZlYWxJdGVtKHJ2
SXRlbUZvckN1cnJlbnRTZWxlY3Rpb24oKSkpOworfQorCit2b2lkIFdlYlBhZ2U6OnByZXBhcmVT
ZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmlldyhjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCBwb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBjb25zdCBSZXZlYWxJ
dGVtJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29uc3RleHByIE9wdGlvblNldDxI
aXRUZXN0UmVxdWVzdDo6VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpSZWFk
T25seSwgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6OlR5cGU6
OkFsbG93VmlzaWJsZUNoaWxkRnJhbWVDb250ZW50T25seSB9OworICAgIGF1dG8mIGV2ZW50SGFu
ZGVyID0gbV9wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKTsKKyAgICBIaXRUZXN0UmVz
dWx0IHJlc3VsdCA9IGV2ZW50SGFuZGVyLmhpdFRlc3RSZXN1bHRBdFBvaW50KHBvaW50LCBoaXRU
eXBlKTsKKyAgICAKKyAgICBldmVudEhhbmRlci5zZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdvcmRP
ckxpbmtGcm9tSGl0VGVzdFJlc3VsdChyZXN1bHQsIFdlYkNvcmU6OkRvbnRBcHBlbmRUcmFpbGlu
Z1doaXRlc3BhY2UpOwogICAgIAotICAgIGNvbXBsZXRpb25IYW5kbGVyKFJldmVhbEl0ZW0oV1RG
TW92ZShpdGVtKSkpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUsIFJldmVhbEl0ZW0ocnZJ
dGVtRm9yQ3VycmVudFNlbGVjdGlvbigpKSk7CiB9CiAjZW5kaWYKIAo=
</data>
<flag name="commit-queue"
          id="478891"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451988</attachid>
            <date>2022-02-14 20:20:35 -0800</date>
            <delta_ts>2022-02-15 09:18:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236627-20220214202034.patch</filename>
            <type>text/plain</type>
            <size>24645</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAwN2Q3YTU4NDYyYmFi
ZGRhZDlmNjE0MzBmMTIxMWJkZTU3YzlkNy4uMTE5MjU1ZWViY2Y4YTVhZTMwZmFmY2QzMGE2OTli
Mjk1OTUyMzkxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTE0ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IGFkZGl0aW9uYWwgUmV2ZWVhbCBtZXRob2RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVzcG9uZCB0byBwcm90b2NvbCBtZXRob2RzIHRoYXQgaW5z
dGFudGlhdGUgYSBzZWxlY3Rpb24gYW5kIHJlcXVlc3QgUlZJdGVtcyBmb3IgYSBtZW51LgorCisg
ICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcjo6c2hvdWxkU2VsZWN0QmFzZWRPbkRpY3Rp
b25hcnlMb29rdXAgY29uc3QpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxv
b2t1cC5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNhbkNyZWF0ZVJldmVhbEl0ZW1zKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNob3dQb3B1cE9yQ3JlYXRlQW5pbWF0aW9uQ29udHJvbGxlcik6CisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdvcmRGcm9tSGl0VGVzdFJlc3VsdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9y
TGlua0Zyb21IaXRUZXN0UmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
aGFuZGxlTW91c2VQcmVzc0V2ZW50RG91YmxlQ2xpY2spOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdvcmRG
cm9tTW91c2VFdmVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnNlbGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9yTGlua0Zyb21Nb3VzZUV2ZW50KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5oOgorICAgICAgICAqIHBhZ2UvY29jb2Ev
RXZlbnRIYW5kbGVyQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0QmFzZWRPbkxvb2t1cCk6CisK
IDIwMjItMDItMTQgIERhbiBHbGFzdG9uYnVyeSAgPGRqZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
TW92ZSBQREZEb2N1bWVudC5jcHAvaCBpbiBjb3JyZWN0IHBvc2l0aW9uIGluIFdlYkNvcmUueGNv
ZGVwcm9qCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDgxM2I3ZjgzOWYxNjhmOGRkNTAyMmUzYTBhNTQ1OGIyZThjYTk1
NjguLjJmNzhhNjdhNmQ2Zjg1ZjQwNzdmYmQ3NjJjZWU1MjkzOTJhNWI0ZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMjItMDItMTQgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVy
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYWRkaXRpb25hbCBSZXZlZWFsIG1ldGhv
ZHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2
MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXNw
b25kIHRvIHByb3RvY29sIG1ldGhvZHMgdGhhdCBpbnN0YW50aWF0ZSBhIHNlbGVjdGlvbiBhbmQg
cmVxdWVzdCBSVkl0ZW1zIGZvciBhIG1lbnUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJlcGFyZVNlbGVjdGlvbkZvckNvbnRl
eHRNZW51V2l0aExvY2F0aW9uSW5WaWV3OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmll
dyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnJlcXVlc3REaWN0YXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cnZJ
dGVtRm9yQ3VycmVudFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6cHJlcGFyZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KToKKwog
MjAyMi0wMi0xNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBEaXJlY3QgdG91Y2hlcyBkb24ndCB0cmlnZ2VyIG90aGVyIGdlc3R1cmUgcmVjb2duaXpl
cnMgaWYgV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyIHNlZXMgdGhlbSBmaXJzdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQKaW5kZXggYjYzMWQyODU3OWQxMDU0ODRlYmUxN2NmM2MyZDMxNjgyZTViMmZk
Yi4uNzk5MmI1Yzc2OGZhYmFlMTMwYWY0YTVkMjE5YWJlYmI4MzM2OGRiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC0xOTMsNiArMTkzLDcgQEAgbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4
dHJhcy5tbQogbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbQogcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzTWVkaWFBRi5jcHAKIHBhZ2UvY29jb2EvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01lZGlhQUZDb2NvYS5tbQorcGFnZS9jb2NvYS9FdmVudEhhbmRsZXJDb2NvYS5tbQogcGFnZS9j
b2NvYS9NZW1vcnlSZWxlYXNlQ29jb2EubW0KIHBhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5n
Q29jb2EubW0KIHBhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg1
ZTRjMTU5ODYyYWUxN2Q5YWFmNWVmNjE0MDc2MTJhZjJmYjFhMzYuLmZjNWVkNWM3NzU1YmNhNDJh
YjIzZjk3M2E2OTVhN2RkMTFmNTY1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTkxMzYsNiArOTEzNiw3IEBACiAJCTQ0MzdD
NEE3MjRFMkFFNUYwMDA5NTEyOCAvKiBMYXp5TG9hZEZyYW1lT2JzZXJ2ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGF6eUxvYWRGcmFtZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0MzdDNEE5MjRFMkFFNUYwMDA5NTEyOCAvKiBMYXp5TG9hZEZyYW1lT2JzZXJ2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGF6eUxvYWRGcmFtZU9ic2VydmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQzODc3RTMyNzE2ODFGNjAwRkQzRTMzIC8qIENhcHRpb25V
c2VyUHJlZmVyZW5jZXNNZWRpYUFGQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0NDNCRkRDNjI3QkIzNzJDMDAwMTI0NUYgLyogRXZlbnRIYW5kbGVyQ29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFdmVudEhhbmRsZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQzRjA0MjYwRTc1QzhGQjAwN0U1NDA3IC8qIE5ldHdvcmtTdGF0
ZU5vdGlmaWVySU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TmV0d29ya1N0YXRlTm90aWZpZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ0NEQ0RTIxMEY3MDhCMkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlVVJMUmVzcG9uc2VJ
T1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTIxMEREMjVENjFFRkYwMDNB
MkVEOCAvKiBBcHBIaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXBwSGlnaGxpZ2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzM2Miw2ICsy
MzM2Myw3IEBACiAJCQkJNDQzODc3RTMyNzE2ODFGNjAwRkQzRTMzIC8qIENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXNNZWRpYUFGQ29jb2EubW0gKi8sCiAJCQkJRjQ0NkVEREQyNjVEQUUzRjAwMzFEQThG
IC8qIERhdGFEZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oICovLAogCQkJCUY0NDZFREU3MjY1REQ4
OTAwMDMxREE4RiAvKiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oICovLAorCQkJCTQ0M0JGREM2
MjdCQjM3MkMwMDAxMjQ1RiAvKiBFdmVudEhhbmRsZXJDb2NvYS5tbSAqLywKIAkJCQlGNDQ2RURF
MDI2NURCMUU1MDAzMURBOEYgLyogSW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50
aWZpZXIuaCAqLywKIAkJCQk0MTNFMDA3QjFEQjBFNzA3MDAyMzQxRDIgLyogTWVtb3J5UmVsZWFz
ZUNvY29hLm1tICovLAogCQkJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3JtYW5j
ZUxvZ2dpbmdDb2NvYS5tbSAqLywKQEAgLTI1OTI1LDEwICsyNTkyNywxMCBAQAogCQkJCTMxNDg3
N0UwMUZBQThGRTkwMEMwNTc1OSAvKiBPZmZzY3JlZW5DYW52YXMuY3BwICovLAogCQkJCTMxNDg3
N0UxMUZBQThGRTkwMEMwNTc1OSAvKiBPZmZzY3JlZW5DYW52YXMuaCAqLywKIAkJCQkzMTQ4NzdE
OTFGQUE4NzA2MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmlkbCAqLywKLQkJCQk0OTRFQkQw
ODI3QUE5QzUzMDBGNDg0NEYgLyogUERGRG9jdW1lbnQuY3BwICovLAotCQkJCTQ5NEVCRDA2MjdB
QTlDNTMwMEY0ODQ0RiAvKiBQREZEb2N1bWVudC5oICovLAogCQkJCUY1NUIzRDk1MTI1MUYxMkQw
MDNFRjI2OSAvKiBQYXNzd29yZElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOTYxMjUxRjEy
RDAwM0VGMjY5IC8qIFBhc3N3b3JkSW5wdXRUeXBlLmggKi8sCisJCQkJNDk0RUJEMDgyN0FBOUM1
MzAwRjQ4NDRGIC8qIFBERkRvY3VtZW50LmNwcCAqLywKKwkJCQk0OTRFQkQwNjI3QUE5QzUzMDBG
NDg0NEYgLyogUERGRG9jdW1lbnQuaCAqLywKIAkJCQk5NzIwNUFCOTEyMzkyOTI3MDBCMTczODAg
LyogUGx1Z2luRG9jdW1lbnQuY3BwICovLAogCQkJCTk3MjA1QUJBMTIzOTI5MjcwMEIxNzM4MCAv
KiBQbHVnaW5Eb2N1bWVudC5oICovLAogCQkJCUNERUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQ
dWJsaWNVUkxNYW5hZ2VyLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ0JlaGF2aW9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhh
dmlvci5oCmluZGV4IGZiNDM5YzcxZjdkYTBkOTBmM2M2MWQwY2JiZTRmMTQ3NGU4ZDNhYmIuLjNm
NzQyNmRiZTI4YzYxYzQ4MDI0ZDVjNmUxZDUzNDYxY2YzN2NmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nQmVoYXZpb3IuaApAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gc3BhY2Ugd2hlbiBkZWxldGluZyBwYXNzd29yZCBjYXVzZSBzcGFjZSBiZWVuIHNob3dlZCBp
bnNlY3VyZWx5LgogICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVTcGFjZXNJblNlY3VyZUZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OmlPUzsg
fQogCi0gICAgYm9vbCBzaG91bGRTZWxlY3RCYXNlZE9uRGljdGlvbmFyeUxvb2t1cCgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWM7IH0KKyAgICBib29s
IHNob3VsZFNlbGVjdEJhc2VkT25EaWN0aW9uYXJ5TG9va3VwKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlID09IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyB8fCBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2
aW9yVHlwZTo6aU9TOyB9CiAKICAgICAvLyBMaW51eCBhbmQgV2luZG93cyBhbHdheXMgZXh0ZW5k
IHNlbGVjdGlvbnMgZnJvbSB0aGUgZXh0ZW50IGVuZHBvaW50LgogICAgIGJvb2wgc2hvdWxkQWx3
YXlzRXh0ZW5kU2VsZWN0aW9uRnJvbUV4dGVudEVuZHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV90
eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2
aW9yVHlwZTo6aU9TOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0RpY3Rpb25hcnlMb29rdXAubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RpY3Rp
b25hcnlMb29rdXAubW0KaW5kZXggMzhlNjJlMDQyNWU1ZmI4NmIwOTc5YmY4NWU4NjhmMjUyZDhk
ZTNhMi4uY2Q4NzFiYzU4YTY3MGIzZDA3ODc1MGI0ZmM2YmE4MjE3MDNhYTQ4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQpAQCAtMjU3
LDcgKzI1Nyw3IEBAIHN0YXRpYyBib29sIGNhbkNyZWF0ZVJldmVhbEl0ZW1zKCkKICAgICBzdGF0
aWMgYm9vbCByZXN1bHQ7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbJl0gewotICAgICAgICByZXN1bHQgPSBQQUw6Omlz
UmV2ZWFsRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc1JldmVhbENvcmVGcmFtZXdvcmtB
dmFpbGFibGUoKSAmJiBQQUw6OmdldFJWSXRlbUNsYXNzKCk7CisgICAgICAgIHJlc3VsdCA9IFBB
TDo6aXNSZXZlYWxDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjpnZXRSVkl0ZW1DbGFz
cygpOwogICAgIH0pOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC00MjcsNyArNDI3LDcgQEAg
c3RhdGljIFdLUmV2ZWFsQ29udHJvbGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRy
b2xsZXIoYm9vbCBjcmVhdGVBbmltYXQKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
ICAgICAKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKCFjYW5DcmVhdGVSZXZlYWxJdGVtcygp
IHx8ICFQQUw6OmdldFJWUHJlc2VudGVyQ2xhc3MoKSkKKyAgICBpZiAoIWNhbkNyZWF0ZVJldmVh
bEl0ZW1zKCkgfHwgIVBBTDo6Z2V0UlZQcmVzZW50ZXJDbGFzcygpIHx8ICFQQUw6OmlzUmV2ZWFs
RnJhbWV3b3JrQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBhdXRvIG11
dGFibGVPcHRpb25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRd
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwNTk3ZDFmMTkxY2I1YjBh
NWMyYjE3ODQyNmZlNThlMzNhMmU1N2UwLi5jY2MzM2QwZTI4MjRhZjBlMWQyMjcxMTYxOGEwMGJi
OWU3NGViZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC01MzQsMjUg
KzUzNCwxNyBAQCBzdGF0aWMgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIHNob3VsZEFwcGVuZFRy
YWlsaW5nV2hpdGVzcGFjZShjb25zdCBNb3VzZUV2ZW50VwogICAgIHJldHVybiAocmVzdWx0LmV2
ZW50KCkuY2xpY2tDb3VudCgpID09IDIgJiYgZnJhbWUuZWRpdG9yKCkuaXNTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKCkpID8gU2hvdWxkQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIDog
RG9udEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OnNl
bGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0
UmVzdWx0cyYgcmVzdWx0KQotewotICAgIGlmIChtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpKQot
ICAgICAgICBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdC5oaXRUZXN0
UmVzdWx0KCksIHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShyZXN1bHQsIG1fZnJhbWUp
KTsKLX0KLQotI2lmICFQTEFURk9STShNQUMpCisjaWYgIVBMQVRGT1JNKENPQ09BKQogVmlzaWJs
ZVNlbGVjdGlvbiBFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RSZXN1
bHRCYXNlZE9uTG9va3VwKGNvbnN0IEhpdFRlc3RSZXN1bHQmKQogewogICAgIHJldHVybiBWaXNp
YmxlU2VsZWN0aW9uKCk7CiB9CiAjZW5kaWYKICAgICAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzZWxl
Y3RDbG9zZXN0Q29udGV4dHVhbFdvcmRGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBtb3VzZUV2ZW50KQordm9pZCBFdmVudEhhbmRsZXI6OnNlbGVjdENs
b3Nlc3RDb250ZXh0dWFsV29yZEZyb21IaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQm
IHJlc3VsdCwgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIGFwcGVuZFRyYWlsaW5nV2hpdGVzcGFj
ZSkKIHsKLSAgICBSZWZQdHIgdGFyZ2V0Tm9kZSA9IG1vdXNlRXZlbnQudGFyZ2V0Tm9kZSgpOwot
ICAgIGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCA9IG1vdXNlRXZlbnQuaGl0VGVzdFJlc3Vs
dCgpOworICAgIFJlZlB0ciB0YXJnZXROb2RlID0gcmVzdWx0LnRhcmdldE5vZGUoKTsKICAgICBW
aXNpYmxlU2VsZWN0aW9uIG5ld1NlbGVjdGlvbjsKLSAgICBib29sIGFwcGVuZFRyYWlsaW5nV2hp
dGVzcGFjZSA9IHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShtb3VzZUV2ZW50LCBtX2Zy
YW1lKTsKICAgICAKICAgICBpZiAodGFyZ2V0Tm9kZSAmJiB0YXJnZXROb2RlLT5yZW5kZXJlcigp
KSB7CiAgICAgICAgIG5ld1NlbGVjdGlvbiA9IHNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RS
ZXN1bHRCYXNlZE9uTG9va3VwKHJlc3VsdCk7CkBAIC01NzEsMTYgKzU2MywxOSBAQCB2b2lkIEV2
ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQoY29u
c3QgTW91c2VFdmVudFdpdAogICAgIH0KIH0KICAgICAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzZWxl
Y3RDbG9zZXN0Q29udGV4dHVhbFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiByZXN1bHQpCit2b2lkIEV2ZW50SGFuZGxlcjo6c2VsZWN0
Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbUhpdFRlc3RSZXN1bHQoY29uc3QgSGl0VGVz
dFJlc3VsdCYgcmVzdWx0LCBBcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UgYXBwZW5kVHJhaWxpbmdX
aGl0ZXNwYWNlKQogewotICAgIFJlZlB0ciB1cmxFbGVtZW50ID0gcmVzdWx0LmhpdFRlc3RSZXN1
bHQoKS5VUkxFbGVtZW50KCk7CisgICAgUmVmUHRyIHVybEVsZW1lbnQgPSByZXN1bHQuVVJMRWxl
bWVudCgpOwogICAgIGlmICghdXJsRWxlbWVudCB8fCAhaXNEcmFnZ2FibGVMaW5rKCp1cmxFbGVt
ZW50KSkgewogICAgICAgICBpZiAoUmVmUHRyIHRhcmdldE5vZGUgPSByZXN1bHQudGFyZ2V0Tm9k
ZSgpKSB7Ci0gICAgICAgICAgICBpZiAoaXNFZGl0YWJsZU5vZGUoKnRhcmdldE5vZGUpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50KHJlc3Vs
dCk7CisgICAgICAgICAgICBpZiAoaXNFZGl0YWJsZU5vZGUoKnRhcmdldE5vZGUpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKG1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdCwg
YXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4gc2VsZWN0Q2xvc2VzdENvbnRl
eHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdENs
b3Nlc3RDb250ZXh0dWFsV29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdCwgYXBwZW5kVHJhaWxp
bmdXaGl0ZXNwYWNlKTsKICAgICB9CiAKICAgICBSZWZQdHIgdGFyZ2V0Tm9kZSA9IHJlc3VsdC50
YXJnZXROb2RlKCk7CkBAIC02MDIsMTIgKzU5NywxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VQcmVzc0V2ZW50RG91YmxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0
UgogICAgIGlmIChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzUmFuZ2UoKSkKICAgICAgICAgLy8gQSBk
b3VibGUtY2xpY2sgd2hlbiByYW5nZSBpcyBhbHJlYWR5IHNlbGVjdGVkCiAgICAgICAgIC8vIHNo
b3VsZCBub3QgY2hhbmdlIHRoZSBzZWxlY3Rpb24uICBTbywgZG8gbm90IGNhbGwKLSAgICAgICAg
Ly8gc2VsZWN0Q2xvc2VzdFdvcmRGcm9tTW91c2VFdmVudCwgYnV0IGRvIHNldAorICAgICAgICAv
LyBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0LCBidXQgZG8gc2V0CiAgICAgICAg
IC8vIG1fYmVnYW5TZWxlY3RpbmdUZXh0IHRvIHByZXZlbnQgaGFuZGxlTW91c2VSZWxlYXNlRXZl
bnQKICAgICAgICAgLy8gZnJvbSBzZXR0aW5nIGNhcmV0IHNlbGVjdGlvbi4KICAgICAgICAgbV9z
ZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBFeHRlbmRlZFNlbGVjdGlvbjsKICAgICBlbHNlCi0g
ICAgICAgIHNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoZXZlbnQpOworICAgICAgICBz
ZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KGV2ZW50LmhpdFRlc3RSZXN1bHQoKSwg
c2hvdWxkQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKGV2ZW50LCBtX2ZyYW1lKSk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTMyODAsNyArMzI3NSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpz
ZW5kQ29udGV4dE1lbnVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogICAg
ICAgICAvLyBhdmFpbGFibGUgZm9yIHRleHQgc2VsZWN0aW9ucy4gIEJ1dCBvbmx5IGlmIHdlJ3Jl
IGFib3ZlIHRleHQuCiAgICAgICAgICYmIChtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigp
LmlzQ29udGVudEVkaXRhYmxlKCkgfHwgKG1vdXNlRXZlbnQudGFyZ2V0Tm9kZSgpICYmIG1vdXNl
RXZlbnQudGFyZ2V0Tm9kZSgpLT5pc1RleHROb2RlKCkpKSkgewogICAgICAgICBtX21vdXNlRG93
bk1heVN0YXJ0U2VsZWN0ID0gdHJ1ZTsgLy8gY29udGV4dCBtZW51IGV2ZW50cyBhcmUgYWx3YXlz
IGFsbG93ZWQgdG8gcGVyZm9ybSBhIHNlbGVjdGlvbgotICAgICAgICBzZWxlY3RDbG9zZXN0Q29u
dGV4dHVhbFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChtb3VzZUV2ZW50KTsKKyAgICAgICAgc2Vs
ZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbUhpdFRlc3RSZXN1bHQobW91c2VFdmVu
dC5oaXRUZXN0UmVzdWx0KCksIHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShtb3VzZUV2
ZW50LCBtX2ZyYW1lKSk7CiAgICAgfQogCiAgICAgc3dhbGxvd0V2ZW50ID0gIWRpc3BhdGNoTW91
c2VFdmVudChldmVudE5hbWVzKCkuY29udGV4dG1lbnVFdmVudCwgbW91c2VFdmVudC50YXJnZXRO
b2RlKCksIDAsIGV2ZW50LCBGaXJlTW91c2VPdmVyT3V0OjpObyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuaAppbmRleCBlYTQzNDg4OTExNTQ5MjE1ODg2MzUzZmVlNjg2YWZmZTczMmJhMzY3
Li5kZTQwOGJmZGQxNjFmODZkZTUxZDliNTI4YTlkMjc0NTJhNzZiODJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgKQEAgLTM1OSw2ICszNTksOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIHN0YXRpYyBib29sIHNjcm9sbGFibGVBcmVhQ2FuSGFuZGxlRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiwgU2Nyb2xsYWJsZUFyZWEmKTsKKyAgICAKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNlbGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9yTGlua0Zyb21IaXRUZXN0UmVzdWx0
KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBBcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UpOwogCiBwcml2
YXRlOgogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0zNzAsOSArMzcyLDggQEAgcHJpdmF0
ZToKICAgICBib29sIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRG93bkRpc3BhdGNoaW5nU2VsZWN0
U3RhcnQoTm9kZSosIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBUZXh0R3JhbnVsYXJpdHkpOwog
ICAgIHZvaWQgc2VsZWN0Q2xvc2VzdFdvcmRGcm9tSGl0VGVzdFJlc3VsdChjb25zdCBIaXRUZXN0
UmVzdWx0JiwgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTsKICAgICBWaXNpYmxlU2VsZWN0aW9u
IHNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RSZXN1bHRCYXNlZE9uTG9va3VwKGNvbnN0IEhp
dFRlc3RSZXN1bHQmKTsKLSAgICB2b2lkIHNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQo
Y29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwotICAgIHZvaWQgc2VsZWN0Q2xv
c2VzdENvbnRleHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyYpOwotICAgIHZvaWQgc2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5r
RnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOworICAg
IHZvaWQgc2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkRnJvbUhpdFRlc3RSZXN1bHQoY29uc3Qg
SGl0VGVzdFJlc3VsdCYsIEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZSk7CisgICAgCiAKICAgICBi
b29sIGhhbmRsZU1vdXNlRG91YmxlQ2xpY2tFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9FdmVudEhhbmRsZXJD
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRXZlbnRIYW5kbGVyQ29jb2EubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2UxNWU5ZjFjY2Y0ZTg4YTg4NGU5OTQyNzgyZmMwOWJkMDNjMTEzNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRXZlbnRIYW5kbGVyQ29j
b2EubW0KQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRXZlbnRIYW5kbGVyLmgi
CisKKyNpbXBvcnQgIkRpY3Rpb25hcnlMb29rdXAuaCIKKyNpbXBvcnQgIkVkaXRvci5oIgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIEVOQUJMRShS
RVZFQUwpCisKK1Zpc2libGVTZWxlY3Rpb24gRXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0V29y
ZEZyb21IaXRUZXN0UmVzdWx0QmFzZWRPbkxvb2t1cChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1
bHQpCit7CisgICAgaWYgKCFtX2ZyYW1lLmVkaXRvcigpLmJlaGF2aW9yKCkuc2hvdWxkU2VsZWN0
QmFzZWRPbkRpY3Rpb25hcnlMb29rdXAoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1
dG8gcmFuZ2UgPSBEaWN0aW9uYXJ5TG9va3VwOjpyYW5nZUF0SGl0VGVzdFJlc3VsdChyZXN1bHQp
OworICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gc3Rk
OjpnZXQ8U2ltcGxlUmFuZ2U+KCpyYW5nZSk7Cit9CisKKyNlbHNlCisKK1Zpc2libGVTZWxlY3Rp
b24gRXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0QmFzZWRP
bkxvb2t1cChjb25zdCBIaXRUZXN0UmVzdWx0JikKK3sKKyAgICByZXR1cm4gVmlzaWJsZVNlbGVj
dGlvbigpOworfQorCisjZW5kaWYKKyAgICAKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19G
QU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KaW5kZXgg
YjcwYzkwNDVmNDJiY2VhNDFiN2UyYTU0ZjAwZjQ2ZDg0NzMwMjUyMi4uNThlZmY4ZjJmNjRkNjM3
Nzc5NWVkMGJiMmViMzZhZWM3NDBmYTIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2
ZW50SGFuZGxlck1hYy5tbQpAQCAtOTkxLDE4ICs5OTEsNiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxTbmFwKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZQogICAgICAgICBzY3JvbGxBbmltYXRvci0+cHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxT
bmFwKHdoZWVsRXZlbnQpOwogfQogCi1WaXNpYmxlU2VsZWN0aW9uIEV2ZW50SGFuZGxlcjo6c2Vs
ZWN0Q2xvc2VzdFdvcmRGcm9tSGl0VGVzdFJlc3VsdEJhc2VkT25Mb29rdXAoY29uc3QgSGl0VGVz
dFJlc3VsdCYgcmVzdWx0KQotewotICAgIGlmICghbV9mcmFtZS5lZGl0b3IoKS5iZWhhdmlvcigp
LnNob3VsZFNlbGVjdEJhc2VkT25EaWN0aW9uYXJ5TG9va3VwKCkpCi0gICAgICAgIHJldHVybiB7
IH07Ci0KLSAgICBhdXRvIHJhbmdlID0gRGljdGlvbmFyeUxvb2t1cDo6cmFuZ2VBdEhpdFRlc3RS
ZXN1bHQocmVzdWx0KTsKLSAgICBpZiAoIXJhbmdlKQotICAgICAgICByZXR1cm4geyB9OwotCi0g
ICAgcmV0dXJuIHN0ZDo6Z2V0PFNpbXBsZVJhbmdlPigqcmFuZ2UpOwotfQotCiBzdGF0aWMgSW50
U2l6ZSBhdXRvc2Nyb2xsQWRqdXN0bWVudEZhY3RvckZvclNjcmVlbkJvdW5kYXJpZXMoY29uc3Qg
SW50UG9pbnQmIHNjcmVlblBvaW50LCBjb25zdCBGbG9hdFJlY3QmIHNjcmVlblJlY3QpCiB7CiAg
ICAgLy8gSWYgdGhlIHdpbmRvdyBpcyBhdCB0aGUgZWRnZSBvZiB0aGUgc2NyZWVuLCBhbmQgdGhl
IG1vdXNlIHBvc2l0aW9uIGlzIGFsc28gYXQgdGhhdCBlZGdlIG9mIHRoZSBzY3JlZW4sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDQwMGY5NDA0OWRkOTA4NTJjMzdl
MDJhYWRjNDFlMDA4NGVmZDMwOGYuLmJkMGEzZjNkNzJmNmZjYzEwYWM0OWU1ZDIyMWI1NjU2Nzc4
NzM5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC04NzksNiAr
ODc5LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdERpY3RhdGlvbkNvbnRleHQoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmKT4mJik7CiAjaWYgRU5BQkxFKFJFVkVBTCkKICAgICB2b2lkIHJlcXVlc3RSVkl0ZW1JbkN1
cnJlbnRTZWxlY3RlZFJhbmdlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmV2ZWFsSXRl
bSYpPiYmKTsKKyAgICB2b2lkIHByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2Nh
dGlvbkluVmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sLCBjb25zdCBSZXZlYWxJdGVtJik+JiYpOwogI2VuZGlmCiAgICAgdm9pZCByZXBsYWNl
RGljdGF0ZWRUZXh0KGNvbnN0IFN0cmluZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0
KTsKICAgICB2b2lkIHJlcGxhY2VTZWxlY3RlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0LCBj
b25zdCBTdHJpbmcmIG5ld1RleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggYzY0MDBiYjJmN2FlY2U2
ZGFlNjNlZDMwMTI2NzcwMTAzMmFkYzRiMS4uMzAwMmJhOTM3MjRkZjFhZWFjZTBkMThlZmJmZmUy
MTEwMGE2ZjI2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03NTU0LDYgKzc1NTQsMTMgQEAgc3RhdGlj
IGJvb2wgY2FuVXNlUXVpY2tib2FyZENvbnRyb2xsZXJGb3IoVUlUZXh0Q29udGVudFR5cGUgdHlw
ZSkKICAgICAgICAgcmV2ZWFsSXRlbVNlbGVjdGlvbkhhbmRsZXIoaXRlbS5pdGVtKCkpOwogICAg
IH0pOwogfQorCistICh2b2lkKXByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2Nh
dGlvbkluVmlldzooQ0dQb2ludClsb2NhdGlvbkluVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCheKShCT09MIHNob3VsZFByZXNlbnRNZW51LCBSVkl0ZW0gKml0ZW0pKWNvbXBsZXRpb25IYW5k
bGVyCit7CisgICAgX3BhZ2UtPnByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2Nh
dGlvbkluVmlldyhXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQobG9jYXRpb25JblZpZXcpLCBbcHJl
cGFyZVNlbGVjdGlvbkZvckNvbnRleHRNZW51SGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0
aW9uSGFuZGxlcildKGJvb2wgc2hvdWxkUHJlc2VudE1lbnUsIGNvbnN0IFdlYktpdDo6UmV2ZWFs
SXRlbSYgaXRlbSkgeworICAgICAgICBwcmVwYXJlU2VsZWN0aW9uRm9yQ29udGV4dE1lbnVIYW5k
bGVyKHNob3VsZFByZXNlbnRNZW51LCBpdGVtLml0ZW0oKSk7CisgICAgfSk7Cit9CiAjZW5kaWYK
IAogLSAoQk9PTCloYXNIaWRkZW5Db250ZW50RWRpdGFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGIyZmNkNGZjMTU0NDkyNWI1MjFl
ZjkyNzM5ZTc2NzQ0NzIxYWRmMjEuLjI5Njg4NTEzNjI2ZDM3ZTJjZDdiYjVhZTU1MDZiN2RjMzJl
NjYxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQpAQCAtNTM0LDYgKzUzNCwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFJWSXRl
bUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjbwogCiAgICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXF1ZXN0UlZJdGVtSW5DdXJy
ZW50U2VsZWN0ZWRSYW5nZSgpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKIH0KKwordm9p
ZCBXZWJQYWdlUHJveHk6OnByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlv
bkluVmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sLCBjb25zdCBSZXZlYWxJdGVtJik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3sKKyAg
ICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybiBjYWxsYmFja0Z1bmN0
aW9uKGZhbHNlLCBSZXZlYWxJdGVtKCkpOworCisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJQYWdlOjpQcmVwYXJlU2VsZWN0aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25J
blZpZXcocG9pbnQpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pKTsKK30KICNlbmRpZgogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEF1dG9jb3JyZWN0aW9uQ29udGV4dCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzkxNTgzM2Y4OGZkNWZj
Mjc2MTM4ZTQxNmJlY2FhM2ZhZTFjN2ExYi4uOTZmOGQ5ZWM5ZDU0OTIwMzQ5OGM5YmY3MzA5Yjg3
MTI0MzM1ZmQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtMTY4LDYgKzE2OCw3IEBAIE9CSkNfQ0xBU1MgTlNBcnJheTsKIE9CSkNfQ0xBU1MgTlNE
aWN0aW9uYXJ5OwogT0JKQ19DTEFTUyBOU09iamVjdDsKIE9CSkNfQ0xBU1MgV0tBY2Nlc3NpYmls
aXR5V2ViUGFnZU9iamVjdDsKK09CSkNfQ0xBU1MgUlZJdGVtOwogI2VuZGlmCiAKICNkZWZpbmUg
RU5BQkxFX1ZJRVdQT1JUX1JFU0laSU5HIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC03OTgsNyAr
Nzk5LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXF1ZXN0RGljdGF0aW9uQ29udGV4dChDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpPiYmKTsKICNpZiBFTkFCTEUoUkVWRUFMKQorICAgIFJldGFpblB0cjxSVkl0ZW0+IHJ2
SXRlbUZvckN1cnJlbnRTZWxlY3Rpb24oKTsKICAgICB2b2lkIHJlcXVlc3RSVkl0ZW1JbkN1cnJl
bnRTZWxlY3RlZFJhbmdlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViS2l0OjpSZXZl
YWxJdGVtJik+JiYpOworICAgIHZvaWQgcHJlcGFyZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0
aExvY2F0aW9uSW5WaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wsIGNvbnN0IFJldmVhbEl0ZW0mKT4mJik7CiAjZW5kaWYKICAgICB2b2lkIHJl
cGxhY2VEaWN0YXRlZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0LCBjb25zdCBTdHJpbmcmIG5l
d1RleHQpOwogICAgIHZvaWQgcmVwbGFjZVNlbGVjdGVkVGV4dChjb25zdCBTdHJpbmcmIG9sZFRl
eHQsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBiN2E4MzcyMTdlMjEzNWFj
MDIwNzRkOWU2NTI1MjBjOGIzMmEyMDE2Li4yYzcxZTExYjc3YjlhZGI3OTg5OTNmM2Q5ZjgyYzFk
YjI5MTY3Mzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTgzLDYgKzgzLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVxdWVzdERpY3RhdGlvbkNvbnRleHQoKSAtPiAoU3Ry
aW5nIHNlbGVjdGVkVGV4dCwgU3RyaW5nIHRleHRCZWZvcmUsIFN0cmluZyB0ZXh0QWZ0ZXIpIEFz
eW5jCiAjaWYgRU5BQkxFKFJFVkVBTCkKICAgICBSZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0
ZWRSYW5nZSgpIC0+IChXZWJLaXQ6OlJldmVhbEl0ZW0gaXRlbSkgQXN5bmMKKyAgICBQcmVwYXJl
U2VsZWN0aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXcoV2ViQ29yZTo6SW50UG9p
bnQgcG9pbnQpIC0+IChib29sIHNob3VsZFNob3dNZW51LCBXZWJLaXQ6OlJldmVhbEl0ZW0gaXRl
bSkgQXN5bmMKICNlbmRpZgogICAgIFJlcGxhY2VEaWN0YXRlZFRleHQoU3RyaW5nIG9sZFRleHQs
IFN0cmluZyBuZXdUZXh0KQogICAgIFJlcGxhY2VTZWxlY3RlZFRleHQoU3RyaW5nIG9sZFRleHQs
IFN0cmluZyBuZXdUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBjYTc1Y2IzNzc3ZWUzN2UwMjk4YTZmMTY5YTdhYzc5
ZTQ2ODlhOGQzLi5hNDI4Njg2NDg5YWRiNzZmNmRkYTE1N2I2NWYyN2MwZDFkZTU5MGQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQpAQCAtMjM0Myw5ICsyMzQzLDggQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0RGljdGF0aW9uQ29u
dGV4dChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYsIGNvbnMKIAogICAgIGNv
bXBsZXRpb25IYW5kbGVyKHNlbGVjdGVkVGV4dCwgY29udGV4dEJlZm9yZSwgY29udGV4dEFmdGVy
KTsKIH0KLQogI2lmIEVOQUJMRShSRVZFQUwpCi12b2lkIFdlYlBhZ2U6OnJlcXVlc3RSVkl0ZW1J
bkN1cnJlbnRTZWxlY3RlZFJhbmdlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViS2l0
OjpSZXZlYWxJdGVtJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCitSZXRhaW5QdHI8UlZJdGVtPiBX
ZWJQYWdlOjpydkl0ZW1Gb3JDdXJyZW50U2VsZWN0aW9uKCkKIHsKICAgICBSZWYgZnJhbWUgPSBD
aGVja2VkUmVmKG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkpLT5mb2N1c2VkT3JNYWluRnJhbWUo
KTsKICAgICBhdXRvIHNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsK
QEAgLTIzNjgsOCArMjM2NywyMyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RSVkl0ZW1JbkN1cnJl
bnRTZWxlY3RlZFJhbmdlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQorICAgIHJldHVybiBpdGVtOworfQorCit2b2lkIFdlYlBh
Z2U6OnJlcXVlc3RSVkl0ZW1JbkN1cnJlbnRTZWxlY3RlZFJhbmdlKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgV2ViS2l0OjpSZXZlYWxJdGVtJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgY29tcGxldGlvbkhhbmRsZXIoUmV2ZWFsSXRlbShydkl0ZW1Gb3JDdXJyZW50U2VsZWN0
aW9uKCkpKTsKK30KKwordm9pZCBXZWJQYWdlOjpwcmVwYXJlU2VsZWN0aW9uRm9yQ29udGV4dE1l
bnVXaXRoTG9jYXRpb25JblZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgY29uc3QgUmV2ZWFsSXRlbSYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGNvbnN0ZXhwciBPcHRpb25TZXQ8SGl0VGVzdFJlcXVlc3Q6OlR5cGU+
IGhpdFR5cGUgeyBIaXRUZXN0UmVxdWVzdDo6VHlwZTo6UmVhZE9ubHksIEhpdFRlc3RSZXF1ZXN0
OjpUeXBlOjpBY3RpdmUsIEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpBbGxvd1Zpc2libGVDaGlsZEZy
YW1lQ29udGVudE9ubHkgfTsKKyAgICBhdXRvJiBldmVudEhhbmRlciA9IG1fcGFnZS0+bWFpbkZy
YW1lKCkuZXZlbnRIYW5kbGVyKCk7CisgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBldmVudEhh
bmRlci5oaXRUZXN0UmVzdWx0QXRQb2ludChwb2ludCwgaGl0VHlwZSk7CisgICAgCisgICAgZXZl
bnRIYW5kZXIuc2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbUhpdFRlc3RSZXN1
bHQocmVzdWx0LCBXZWJDb3JlOjpEb250QXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTsKICAgICAK
LSAgICBjb21wbGV0aW9uSGFuZGxlcihSZXZlYWxJdGVtKFdURk1vdmUoaXRlbSkpKTsKKyAgICBj
b21wbGV0aW9uSGFuZGxlcih0cnVlLCBSZXZlYWxJdGVtKHJ2SXRlbUZvckN1cnJlbnRTZWxlY3Rp
b24oKSkpOwogfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452033</attachid>
            <date>2022-02-15 09:18:42 -0800</date>
            <delta_ts>2022-02-15 10:07:04 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236627-20220215091841.patch</filename>
            <type>text/plain</type>
            <size>24625</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDAwN2Q3YTU4NDYyYmFi
ZGRhZDlmNjE0MzBmMTIxMWJkZTU3YzlkNy4uOGRjMzNkMTE4MjNhYThkZTk2MDg1YjdiYTM0OTIz
NWIzODJlNWY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAyLTE0ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IGFkZGl0aW9uYWwgUmV2ZWFsIG1ldGhvZHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2MjcKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9y
dG9uLgorCisgICAgICAgIFJlc3BvbmQgdG8gcHJvdG9jb2wgbWV0aG9kcyB0aGF0IGluc3RhbnRp
YXRlIGEgc2VsZWN0aW9uIGFuZCByZXF1ZXN0IFJWSXRlbXMgZm9yIGEgbWVudS4KKworICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmg6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I6OnNob3VsZFNlbGVjdEJhc2VkT25EaWN0aW9uYXJ5
TG9va3VwIGNvbnN0KToKKyAgICAgICAgKiBlZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29rdXAu
bW06CisgICAgICAgIChXZWJDb3JlOjpjYW5DcmVhdGVSZXZlYWxJdGVtcyk6CisgICAgICAgIChX
ZWJDb3JlOjpzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIpOgorICAgICAgICAq
IHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
c2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkRnJvbUhpdFRlc3RSZXN1bHQpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdvcmRPckxpbmtG
cm9tSGl0VGVzdFJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRs
ZU1vdXNlUHJlc3NFdmVudERvdWJsZUNsaWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFu
ZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5k
bGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkRnJvbU1v
dXNlRXZlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxl
Y3RDbG9zZXN0Q29udGV4dHVhbFdvcmRPckxpbmtGcm9tTW91c2VFdmVudCk6IERlbGV0ZWQuCisg
ICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBwYWdlL2NvY29hL0V2ZW50
SGFuZGxlckNvY29hLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
c2VsZWN0Q2xvc2VzdFdvcmRGcm9tSGl0VGVzdFJlc3VsdEJhc2VkT25Mb29rdXApOgorCiAyMDIy
LTAyLTE0ICBEYW4gR2xhc3RvbmJ1cnkgIDxkamdAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUg
UERGRG9jdW1lbnQuY3BwL2ggaW4gY29ycmVjdCBwb3NpdGlvbiBpbiBXZWJDb3JlLnhjb2RlcHJv
agpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA4MTNiN2Y4MzlmMTY4ZjhkZDUwMjJlM2EwYTU0NThiMmU4Y2E5NTY4Li4x
MzUzYjhkZjRkNWYwYjk3ZDI5NzJhM2MyOWQ0NmU5YjM2NjdlYjU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDIyLTAyLTE0ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGFkZGl0aW9uYWwgUmV2ZWVhbCBtZXRob2RzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NjI3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBSZXNwb25kIHRvIHBy
b3RvY29sIG1ldGhvZHMgdGhhdCBpbnN0YW50aWF0ZSBhIHNlbGVjdGlvbiBhbmQgcmVxdWVzdCBS
Vkl0ZW1zIGZvciBhIG1lbnUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJlcGFyZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0
aExvY2F0aW9uSW5WaWV3OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnByZXBhcmVTZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmlldyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RE
aWN0YXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cnZJdGVtRm9yQ3Vy
cmVudFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVlc3RSVkl0ZW1J
bkN1cnJlbnRTZWxlY3RlZFJhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cHJlcGFy
ZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0aW9uSW5WaWV3KToKKwogMjAyMi0wMi0x
NCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXJl
Y3QgdG91Y2hlcyBkb24ndCB0cmlnZ2VyIG90aGVyIGdlc3R1cmUgcmVjb2duaXplcnMgaWYgV0tN
b3VzZUdlc3R1cmVSZWNvZ25pemVyIHNlZXMgdGhlbSBmaXJzdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50
eHQKaW5kZXggYjYzMWQyODU3OWQxMDU0ODRlYmUxN2NmM2MyZDMxNjgyZTViMmZkYi4uNzk5MmI1
Yzc2OGZhYmFlMTMwYWY0YTVkMjE5YWJlYmI4MzM2OGRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0CkBAIC0xOTMsNiArMTkzLDcgQEAgbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4dHJhcy5tbQog
bG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5tbQogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVu
Y2VzTWVkaWFBRi5jcHAKIHBhZ2UvY29jb2EvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUZD
b2NvYS5tbQorcGFnZS9jb2NvYS9FdmVudEhhbmRsZXJDb2NvYS5tbQogcGFnZS9jb2NvYS9NZW1v
cnlSZWxlYXNlQ29jb2EubW0KIHBhZ2UvY29jb2EvUGVyZm9ybWFuY2VMb2dnaW5nQ29jb2EubW0K
IHBhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg1ZTRjMTU5ODYy
YWUxN2Q5YWFmNWVmNjE0MDc2MTJhZjJmYjFhMzYuLmZjNWVkNWM3NzU1YmNhNDJhYjIzZjk3M2E2
OTVhN2RkMTFmNTY1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTkxMzYsNiArOTEzNiw3IEBACiAJCTQ0MzdDNEE3MjRFMkFF
NUYwMDA5NTEyOCAvKiBMYXp5TG9hZEZyYW1lT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF6
eUxvYWRGcmFtZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MzdD
NEE5MjRFMkFFNUYwMDA5NTEyOCAvKiBMYXp5TG9hZEZyYW1lT2JzZXJ2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTGF6eUxvYWRGcmFtZU9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDQzODc3RTMyNzE2ODFGNjAwRkQzRTMzIC8qIENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzTWVkaWFBRkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
NDNCRkRDNjI3QkIzNzJDMDAwMTI0NUYgLyogRXZlbnRIYW5kbGVyQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBFdmVudEhhbmRsZXJDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDQzRjA0MjYwRTc1QzhGQjAwN0U1NDA3IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVy
SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1N0
YXRlTm90aWZpZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NEQ0RTIx
MEY3MDhCMkUwMDMxNThFMCAvKiBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlVVJMUmVzcG9uc2VJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTIxMEREMjVENjFFRkYwMDNBMkVEOCAvKiBB
cHBIaWdobGlnaHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwSGlnaGxp
Z2h0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzM2Miw2ICsyMzM2Myw3IEBA
CiAJCQkJNDQzODc3RTMyNzE2ODFGNjAwRkQzRTMzIC8qIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNN
ZWRpYUFGQ29jb2EubW0gKi8sCiAJCQkJRjQ0NkVEREQyNjVEQUUzRjAwMzFEQThGIC8qIERhdGFE
ZXRlY3Rpb25SZXN1bHRzU3RvcmFnZS5oICovLAogCQkJCUY0NDZFREU3MjY1REQ4OTAwMDMxREE4
RiAvKiBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mby5oICovLAorCQkJCTQ0M0JGREM2MjdCQjM3MkMw
MDAxMjQ1RiAvKiBFdmVudEhhbmRsZXJDb2NvYS5tbSAqLywKIAkJCQlGNDQ2RURFMDI2NURCMUU1
MDAzMURBOEYgLyogSW1hZ2VPdmVybGF5RGF0YURldGVjdGlvblJlc3VsdElkZW50aWZpZXIuaCAq
LywKIAkJCQk0MTNFMDA3QjFEQjBFNzA3MDAyMzQxRDIgLyogTWVtb3J5UmVsZWFzZUNvY29hLm1t
ICovLAogCQkJCUFENUEwQzIyMURFQ0EzN0UwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmdD
b2NvYS5tbSAqLywKQEAgLTI1OTI1LDEwICsyNTkyNywxMCBAQAogCQkJCTMxNDg3N0UwMUZBQThG
RTkwMEMwNTc1OSAvKiBPZmZzY3JlZW5DYW52YXMuY3BwICovLAogCQkJCTMxNDg3N0UxMUZBQThG
RTkwMEMwNTc1OSAvKiBPZmZzY3JlZW5DYW52YXMuaCAqLywKIAkJCQkzMTQ4NzdEOTFGQUE4NzA2
MDBDMDU3NTkgLyogT2Zmc2NyZWVuQ2FudmFzLmlkbCAqLywKLQkJCQk0OTRFQkQwODI3QUE5QzUz
MDBGNDg0NEYgLyogUERGRG9jdW1lbnQuY3BwICovLAotCQkJCTQ5NEVCRDA2MjdBQTlDNTMwMEY0
ODQ0RiAvKiBQREZEb2N1bWVudC5oICovLAogCQkJCUY1NUIzRDk1MTI1MUYxMkQwMDNFRjI2OSAv
KiBQYXNzd29yZElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOTYxMjUxRjEyRDAwM0VGMjY5
IC8qIFBhc3N3b3JkSW5wdXRUeXBlLmggKi8sCisJCQkJNDk0RUJEMDgyN0FBOUM1MzAwRjQ4NDRG
IC8qIFBERkRvY3VtZW50LmNwcCAqLywKKwkJCQk0OTRFQkQwNjI3QUE5QzUzMDBGNDg0NEYgLyog
UERGRG9jdW1lbnQuaCAqLywKIAkJCQk5NzIwNUFCOTEyMzkyOTI3MDBCMTczODAgLyogUGx1Z2lu
RG9jdW1lbnQuY3BwICovLAogCQkJCTk3MjA1QUJBMTIzOTI5MjcwMEIxNzM4MCAvKiBQbHVnaW5E
b2N1bWVudC5oICovLAogCQkJCUNERUUzOTM2MTc5NzQyNTkwMDFENzU4MCAvKiBQdWJsaWNVUkxN
YW5hZ2VyLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Z0JlaGF2aW9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdCZWhhdmlvci5oCmlu
ZGV4IGZiNDM5YzcxZjdkYTBkOTBmM2M2MWQwY2JiZTRmMTQ3NGU4ZDNhYmIuLjNmNzQyNmRiZTI4
YzYxYzQ4MDI0ZDVjNmUxZDUzNDYxY2YzN2NmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ0JlaGF2aW9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nQmVoYXZpb3IuaApAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgLy8gc3BhY2Ug
d2hlbiBkZWxldGluZyBwYXNzd29yZCBjYXVzZSBzcGFjZSBiZWVuIHNob3dlZCBpbnNlY3VyZWx5
LgogICAgIGJvb2wgc2hvdWxkUmViYWxhbmNlV2hpdGVTcGFjZXNJblNlY3VyZUZpZWxkKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlICE9IEVkaXRpbmdCZWhhdmlvclR5cGU6OmlPUzsgfQogCi0gICAg
Ym9vbCBzaG91bGRTZWxlY3RCYXNlZE9uRGljdGlvbmFyeUxvb2t1cCgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZSA9PSBFZGl0aW5nQmVoYXZpb3JUeXBlOjpNYWM7IH0KKyAgICBib29sIHNob3VsZFNl
bGVjdEJhc2VkT25EaWN0aW9uYXJ5TG9va3VwKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEVk
aXRpbmdCZWhhdmlvclR5cGU6Ok1hYyB8fCBtX3R5cGUgPT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6
aU9TOyB9CiAKICAgICAvLyBMaW51eCBhbmQgV2luZG93cyBhbHdheXMgZXh0ZW5kIHNlbGVjdGlv
bnMgZnJvbSB0aGUgZXh0ZW50IGVuZHBvaW50LgogICAgIGJvb2wgc2hvdWxkQWx3YXlzRXh0ZW5k
U2VsZWN0aW9uRnJvbUV4dGVudEVuZHBvaW50KCkgY29uc3QgeyByZXR1cm4gbV90eXBlICE9IEVk
aXRpbmdCZWhhdmlvclR5cGU6Ok1hYyAmJiBtX3R5cGUgIT0gRWRpdGluZ0JlaGF2aW9yVHlwZTo6
aU9TOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RpY3Rpb25h
cnlMb29rdXAubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0RpY3Rpb25hcnlMb29r
dXAubW0KaW5kZXggMzhlNjJlMDQyNWU1ZmI4NmIwOTc5YmY4NWU4NjhmMjUyZDhkZTNhMi4uZmM0
YWE3ODQ2Y2Y0Yzk5NDFlY2Y3MjJhYTQyMzIzOWYyZjI3ZjM5ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9jb2NvYS9EaWN0aW9uYXJ5TG9va3VwLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvRGljdGlvbmFyeUxvb2t1cC5tbQpAQCAtMjU3LDcgKzI1Nyw3
IEBAIHN0YXRpYyBib29sIGNhbkNyZWF0ZVJldmVhbEl0ZW1zKCkKICAgICBzdGF0aWMgYm9vbCBy
ZXN1bHQ7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2Fs
bF9vbmNlKG9uY2VGbGFnLCBbJl0gewotICAgICAgICByZXN1bHQgPSBQQUw6OmlzUmV2ZWFsRnJh
bWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjppc1JldmVhbENvcmVGcmFtZXdvcmtBdmFpbGFibGUo
KSAmJiBQQUw6OmdldFJWSXRlbUNsYXNzKCk7CisgICAgICAgIHJlc3VsdCA9IFBBTDo6aXNSZXZl
YWxDb3JlRnJhbWV3b3JrQXZhaWxhYmxlKCkgJiYgUEFMOjpnZXRSVkl0ZW1DbGFzcygpOwogICAg
IH0pOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC00MjcsNyArNDI3LDcgQEAgc3RhdGljIFdL
UmV2ZWFsQ29udHJvbGxlciBzaG93UG9wdXBPckNyZWF0ZUFuaW1hdGlvbkNvbnRyb2xsZXIoYm9v
bCBjcmVhdGVBbmltYXQKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKICAgICAKICNp
ZiBQTEFURk9STShNQUMpCi0gICAgaWYgKCFjYW5DcmVhdGVSZXZlYWxJdGVtcygpIHx8ICFQQUw6
OmdldFJWUHJlc2VudGVyQ2xhc3MoKSkKKyAgICBpZiAoIVBBTDo6aXNSZXZlYWxGcmFtZXdvcmtB
dmFpbGFibGUoKSB8fCAhY2FuQ3JlYXRlUmV2ZWFsSXRlbXMoKSB8fCAhUEFMOjpnZXRSVlByZXNl
bnRlckNsYXNzKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBhdXRvIG11dGFibGVPcHRp
b25zID0gYWRvcHROUyhbW05TTXV0YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwNTk3ZDFmMTkxY2I1YjBhNWMyYjE3ODQy
NmZlNThlMzNhMmU1N2UwLi5jY2MzM2QwZTI4MjRhZjBlMWQyMjcxMTYxOGEwMGJiOWU3NGViZjZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC01MzQsMjUgKzUzNCwxNyBA
QCBzdGF0aWMgQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIHNob3VsZEFwcGVuZFRyYWlsaW5nV2hp
dGVzcGFjZShjb25zdCBNb3VzZUV2ZW50VwogICAgIHJldHVybiAocmVzdWx0LmV2ZW50KCkuY2xp
Y2tDb3VudCgpID09IDIgJiYgZnJhbWUuZWRpdG9yKCkuaXNTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKCkpID8gU2hvdWxkQXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIDogRG9udEFwcGVu
ZFRyYWlsaW5nV2hpdGVzcGFjZTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nl
c3RXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYg
cmVzdWx0KQotewotICAgIGlmIChtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpKQotICAgICAgICBz
ZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdC5oaXRUZXN0UmVzdWx0KCks
IHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShyZXN1bHQsIG1fZnJhbWUpKTsKLX0KLQot
I2lmICFQTEFURk9STShNQUMpCisjaWYgIVBMQVRGT1JNKENPQ09BKQogVmlzaWJsZVNlbGVjdGlv
biBFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RSZXN1bHRCYXNlZE9u
TG9va3VwKGNvbnN0IEhpdFRlc3RSZXN1bHQmKQogewogICAgIHJldHVybiBWaXNpYmxlU2VsZWN0
aW9uKCk7CiB9CiAjZW5kaWYKICAgICAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0
Q29udGV4dHVhbFdvcmRGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RS
ZXN1bHRzJiBtb3VzZUV2ZW50KQordm9pZCBFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RDb250
ZXh0dWFsV29yZEZyb21IaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwg
QXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlIGFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZSkKIHsKLSAg
ICBSZWZQdHIgdGFyZ2V0Tm9kZSA9IG1vdXNlRXZlbnQudGFyZ2V0Tm9kZSgpOwotICAgIGNvbnN0
IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCA9IG1vdXNlRXZlbnQuaGl0VGVzdFJlc3VsdCgpOworICAg
IFJlZlB0ciB0YXJnZXROb2RlID0gcmVzdWx0LnRhcmdldE5vZGUoKTsKICAgICBWaXNpYmxlU2Vs
ZWN0aW9uIG5ld1NlbGVjdGlvbjsKLSAgICBib29sIGFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZSA9
IHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShtb3VzZUV2ZW50LCBtX2ZyYW1lKTsKICAg
ICAKICAgICBpZiAodGFyZ2V0Tm9kZSAmJiB0YXJnZXROb2RlLT5yZW5kZXJlcigpKSB7CiAgICAg
ICAgIG5ld1NlbGVjdGlvbiA9IHNlbGVjdENsb3Nlc3RXb3JkRnJvbUhpdFRlc3RSZXN1bHRCYXNl
ZE9uTG9va3VwKHJlc3VsdCk7CkBAIC01NzEsMTYgKzU2MywxOSBAQCB2b2lkIEV2ZW50SGFuZGxl
cjo6c2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VF
dmVudFdpdAogICAgIH0KIH0KICAgICAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0
Q29udGV4dHVhbFdvcmRPckxpbmtGcm9tTW91c2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSZXN1bHRzJiByZXN1bHQpCit2b2lkIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q2xvc2VzdENv
bnRleHR1YWxXb3JkT3JMaW5rRnJvbUhpdFRlc3RSZXN1bHQoY29uc3QgSGl0VGVzdFJlc3VsdCYg
cmVzdWx0LCBBcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UgYXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNl
KQogewotICAgIFJlZlB0ciB1cmxFbGVtZW50ID0gcmVzdWx0LmhpdFRlc3RSZXN1bHQoKS5VUkxF
bGVtZW50KCk7CisgICAgUmVmUHRyIHVybEVsZW1lbnQgPSByZXN1bHQuVVJMRWxlbWVudCgpOwog
ICAgIGlmICghdXJsRWxlbWVudCB8fCAhaXNEcmFnZ2FibGVMaW5rKCp1cmxFbGVtZW50KSkgewog
ICAgICAgICBpZiAoUmVmUHRyIHRhcmdldE5vZGUgPSByZXN1bHQudGFyZ2V0Tm9kZSgpKSB7Ci0g
ICAgICAgICAgICBpZiAoaXNFZGl0YWJsZU5vZGUoKnRhcmdldE5vZGUpKQotICAgICAgICAgICAg
ICAgIHJldHVybiBzZWxlY3RDbG9zZXN0V29yZEZyb21Nb3VzZUV2ZW50KHJlc3VsdCk7CisgICAg
ICAgICAgICBpZiAoaXNFZGl0YWJsZU5vZGUoKnRhcmdldE5vZGUpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKG1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdCwgYXBwZW5kVHJh
aWxpbmdXaGl0ZXNwYWNlKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4gc2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3Jk
RnJvbU1vdXNlRXZlbnQocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdENsb3Nlc3RDb250
ZXh0dWFsV29yZEZyb21IaXRUZXN0UmVzdWx0KHJlc3VsdCwgYXBwZW5kVHJhaWxpbmdXaGl0ZXNw
YWNlKTsKICAgICB9CiAKICAgICBSZWZQdHIgdGFyZ2V0Tm9kZSA9IHJlc3VsdC50YXJnZXROb2Rl
KCk7CkBAIC02MDIsMTIgKzU5NywxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQ
cmVzc0V2ZW50RG91YmxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UgogICAgIGlm
IChtX2ZyYW1lLnNlbGVjdGlvbigpLmlzUmFuZ2UoKSkKICAgICAgICAgLy8gQSBkb3VibGUtY2xp
Y2sgd2hlbiByYW5nZSBpcyBhbHJlYWR5IHNlbGVjdGVkCiAgICAgICAgIC8vIHNob3VsZCBub3Qg
Y2hhbmdlIHRoZSBzZWxlY3Rpb24uICBTbywgZG8gbm90IGNhbGwKLSAgICAgICAgLy8gc2VsZWN0
Q2xvc2VzdFdvcmRGcm9tTW91c2VFdmVudCwgYnV0IGRvIHNldAorICAgICAgICAvLyBzZWxlY3RD
bG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0LCBidXQgZG8gc2V0CiAgICAgICAgIC8vIG1fYmVn
YW5TZWxlY3RpbmdUZXh0IHRvIHByZXZlbnQgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQKICAgICAg
ICAgLy8gZnJvbSBzZXR0aW5nIGNhcmV0IHNlbGVjdGlvbi4KICAgICAgICAgbV9zZWxlY3Rpb25J
bml0aWF0aW9uU3RhdGUgPSBFeHRlbmRlZFNlbGVjdGlvbjsKICAgICBlbHNlCi0gICAgICAgIHNl
bGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoZXZlbnQpOworICAgICAgICBzZWxlY3RDbG9z
ZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0KGV2ZW50LmhpdFRlc3RSZXN1bHQoKSwgc2hvdWxkQXBw
ZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKGV2ZW50LCBtX2ZyYW1lKSk7CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KQEAgLTMyODAsNyArMzI3NSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4
dE1lbnVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQogICAgICAgICAvLyBh
dmFpbGFibGUgZm9yIHRleHQgc2VsZWN0aW9ucy4gIEJ1dCBvbmx5IGlmIHdlJ3JlIGFib3ZlIHRl
eHQuCiAgICAgICAgICYmIChtX2ZyYW1lLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmlzQ29udGVu
dEVkaXRhYmxlKCkgfHwgKG1vdXNlRXZlbnQudGFyZ2V0Tm9kZSgpICYmIG1vdXNlRXZlbnQudGFy
Z2V0Tm9kZSgpLT5pc1RleHROb2RlKCkpKSkgewogICAgICAgICBtX21vdXNlRG93bk1heVN0YXJ0
U2VsZWN0ID0gdHJ1ZTsgLy8gY29udGV4dCBtZW51IGV2ZW50cyBhcmUgYWx3YXlzIGFsbG93ZWQg
dG8gcGVyZm9ybSBhIHNlbGVjdGlvbgotICAgICAgICBzZWxlY3RDbG9zZXN0Q29udGV4dHVhbFdv
cmRPckxpbmtGcm9tTW91c2VFdmVudChtb3VzZUV2ZW50KTsKKyAgICAgICAgc2VsZWN0Q2xvc2Vz
dENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbUhpdFRlc3RSZXN1bHQobW91c2VFdmVudC5oaXRUZXN0
UmVzdWx0KCksIHNob3VsZEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZShtb3VzZUV2ZW50LCBtX2Zy
YW1lKSk7CiAgICAgfQogCiAgICAgc3dhbGxvd0V2ZW50ID0gIWRpc3BhdGNoTW91c2VFdmVudChl
dmVudE5hbWVzKCkuY29udGV4dG1lbnVFdmVudCwgbW91c2VFdmVudC50YXJnZXROb2RlKCksIDAs
IGV2ZW50LCBGaXJlTW91c2VPdmVyT3V0OjpObyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
aAppbmRleCBlYTQzNDg4OTExNTQ5MjE1ODg2MzUzZmVlNjg2YWZmZTczMmJhMzY3Li5kZTQwOGJm
ZGQxNjFmODZkZTUxZDliNTI4YTlkMjc0NTJhNzZiODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKQEAgLTM1OSw2ICszNTksOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHN0YXRp
YyBib29sIHNjcm9sbGFibGVBcmVhQ2FuSGFuZGxlRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiwgU2Nyb2xsYWJsZUFyZWEmKTsKKyAgICAKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
bGVjdENsb3Nlc3RDb250ZXh0dWFsV29yZE9yTGlua0Zyb21IaXRUZXN0UmVzdWx0KGNvbnN0IEhp
dFRlc3RSZXN1bHQmLCBBcHBlbmRUcmFpbGluZ1doaXRlc3BhY2UpOwogCiBwcml2YXRlOgogI2lm
IEVOQUJMRShEUkFHX1NVUFBPUlQpCkBAIC0zNzAsOSArMzcyLDggQEAgcHJpdmF0ZToKICAgICBi
b29sIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRG93bkRpc3BhdGNoaW5nU2VsZWN0U3RhcnQoTm9k
ZSosIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBUZXh0R3JhbnVsYXJpdHkpOwogICAgIHZvaWQg
c2VsZWN0Q2xvc2VzdFdvcmRGcm9tSGl0VGVzdFJlc3VsdChjb25zdCBIaXRUZXN0UmVzdWx0Jiwg
QXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTsKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdENs
b3Nlc3RXb3JkRnJvbUhpdFRlc3RSZXN1bHRCYXNlZE9uTG9va3VwKGNvbnN0IEhpdFRlc3RSZXN1
bHQmKTsKLSAgICB2b2lkIHNlbGVjdENsb3Nlc3RXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwotICAgIHZvaWQgc2VsZWN0Q2xvc2VzdENvbnRl
eHR1YWxXb3JkRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0
cyYpOwotICAgIHZvaWQgc2VsZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkT3JMaW5rRnJvbU1vdXNl
RXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOworICAgIHZvaWQgc2Vs
ZWN0Q2xvc2VzdENvbnRleHR1YWxXb3JkRnJvbUhpdFRlc3RSZXN1bHQoY29uc3QgSGl0VGVzdFJl
c3VsdCYsIEFwcGVuZFRyYWlsaW5nV2hpdGVzcGFjZSk7CisgICAgCiAKICAgICBib29sIGhhbmRs
ZU1vdXNlRG91YmxlQ2xpY2tFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9FdmVudEhhbmRsZXJDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRXZlbnRIYW5kbGVyQ29jb2EubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTUxYWExYjZjODc0YThmZDRmZTk5NzZhZjJjOGMxYmE1YWZiYzI1MAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvRXZlbnRIYW5kbGVyQ29jb2EubW0KQEAg
LTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRXZlbnRIYW5kbGVyLmgiCisKKyNpbXBv
cnQgIkRpY3Rpb25hcnlMb29rdXAuaCIKKyNpbXBvcnQgIkVkaXRvci5oIgorCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2lmIEVOQUJMRShSRVZFQUwpCisK
K1Zpc2libGVTZWxlY3Rpb24gRXZlbnRIYW5kbGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRU
ZXN0UmVzdWx0QmFzZWRPbkxvb2t1cChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpCit7Cisg
ICAgaWYgKCFtX2ZyYW1lLmVkaXRvcigpLmJlaGF2aW9yKCkuc2hvdWxkU2VsZWN0QmFzZWRPbkRp
Y3Rpb25hcnlMb29rdXAoKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gcmFuZ2Ug
PSBEaWN0aW9uYXJ5TG9va3VwOjpyYW5nZUF0SGl0VGVzdFJlc3VsdChyZXN1bHQpOworICAgIGlm
ICghcmFuZ2UpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gc3RkOjpnZXQ8U2lt
cGxlUmFuZ2U+KCpyYW5nZSk7Cit9CisKKyNlbHNlCisKK1Zpc2libGVTZWxlY3Rpb24gRXZlbnRI
YW5kbGVyOjpzZWxlY3RDbG9zZXN0V29yZEZyb21IaXRUZXN0UmVzdWx0QmFzZWRPbkxvb2t1cChj
b25zdCBIaXRUZXN0UmVzdWx0JikKK3sKKyAgICByZXR1cm4gVmlzaWJsZVNlbGVjdGlvbigpOwor
fQorCisjZW5kaWYKKyAgICAKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IGI3MGM5MDQ1ZjQyYmNl
YTQxYjdlMmE1NGYwMGY0NmQ4NDczMDI1MjIuLjU4ZWZmOGYyZjY0ZDYzNzc3OTVlZDBiYjJlYjM2
YWVjNzQwZmEyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFu
ZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW0KQEAgLTk5MSwxOCArOTkxLDYgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnByb2Nlc3NXaGVlbEV2
ZW50Rm9yU2Nyb2xsU25hcChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWUKICAgICAgICAg
c2Nyb2xsQW5pbWF0b3ItPnByb2Nlc3NXaGVlbEV2ZW50Rm9yU2Nyb2xsU25hcCh3aGVlbEV2ZW50
KTsKIH0KIAotVmlzaWJsZVNlbGVjdGlvbiBFdmVudEhhbmRsZXI6OnNlbGVjdENsb3Nlc3RXb3Jk
RnJvbUhpdFRlc3RSZXN1bHRCYXNlZE9uTG9va3VwKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3Vs
dCkKLXsKLSAgICBpZiAoIW1fZnJhbWUuZWRpdG9yKCkuYmVoYXZpb3IoKS5zaG91bGRTZWxlY3RC
YXNlZE9uRGljdGlvbmFyeUxvb2t1cCgpKQotICAgICAgICByZXR1cm4geyB9OwotCi0gICAgYXV0
byByYW5nZSA9IERpY3Rpb25hcnlMb29rdXA6OnJhbmdlQXRIaXRUZXN0UmVzdWx0KHJlc3VsdCk7
Ci0gICAgaWYgKCFyYW5nZSkKLSAgICAgICAgcmV0dXJuIHsgfTsKLQotICAgIHJldHVybiBzdGQ6
OmdldDxTaW1wbGVSYW5nZT4oKnJhbmdlKTsKLX0KLQogc3RhdGljIEludFNpemUgYXV0b3Njcm9s
bEFkanVzdG1lbnRGYWN0b3JGb3JTY3JlZW5Cb3VuZGFyaWVzKGNvbnN0IEludFBvaW50JiBzY3Jl
ZW5Qb2ludCwgY29uc3QgRmxvYXRSZWN0JiBzY3JlZW5SZWN0KQogewogICAgIC8vIElmIHRoZSB3
aW5kb3cgaXMgYXQgdGhlIGVkZ2Ugb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBtb3VzZSBwb3NpdGlv
biBpcyBhbHNvIGF0IHRoYXQgZWRnZSBvZiB0aGUgc2NyZWVuLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCA0MDBmOTQwNDlkZDkwODUyYzM3ZTAyYWFkYzQxZTAwODRl
ZmQzMDhmLi5iZDBhM2YzZDcyZjZmY2MxMGFjNDllNWQyMjFiNTY1Njc3ODczOWVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtODc5LDYgKzg3OSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlcXVlc3REaWN0YXRpb25Db250ZXh0KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik+JiYpOwogI2lm
IEVOQUJMRShSRVZFQUwpCiAgICAgdm9pZCByZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRS
YW5nZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJldmVhbEl0ZW0mKT4mJik7CisgICAg
dm9pZCBwcmVwYXJlU2VsZWN0aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXcoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgY29uc3Qg
UmV2ZWFsSXRlbSYpPiYmKTsKICNlbmRpZgogICAgIHZvaWQgcmVwbGFjZURpY3RhdGVkVGV4dChj
b25zdCBTdHJpbmcmIG9sZFRleHQsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7CiAgICAgdm9pZCBy
ZXBsYWNlU2VsZWN0ZWRUZXh0KGNvbnN0IFN0cmluZyYgb2xkVGV4dCwgY29uc3QgU3RyaW5nJiBu
ZXdUZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGM2NDAwYmIyZjdhZWNlNmRhZTYzZWQzMDEyNjc3
MDEwMzJhZGM0YjEuLjQyYjliNTUxNmQwOTg3OTk1NjFiNDQ0NjQ5MjBhOWE4NmM1MDE1NzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQpAQCAtNzU1NCw2ICs3NTU0LDEzIEBAIHN0YXRpYyBib29sIGNhblVzZVF1
aWNrYm9hcmRDb250cm9sbGVyRm9yKFVJVGV4dENvbnRlbnRUeXBlIHR5cGUpCiAgICAgICAgIHJl
dmVhbEl0ZW1TZWxlY3Rpb25IYW5kbGVyKGl0ZW0uaXRlbSgpKTsKICAgICB9KTsKIH0KKworLSAo
dm9pZClwcmVwYXJlU2VsZWN0aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXc6KENH
UG9pbnQpbG9jYXRpb25JblZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCBzaG91
bGRQcmVzZW50TWVudSwgUlZJdGVtICppdGVtKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF9w
YWdlLT5wcmVwYXJlU2VsZWN0aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXcoV2Vi
Q29yZTo6cm91bmRlZEludFBvaW50KGxvY2F0aW9uSW5WaWV3KSwgW3Byb3RlY3RlZENvbXBsZXRp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oYm9vbCBzaG91bGRQ
cmVzZW50TWVudSwgY29uc3QgV2ViS2l0OjpSZXZlYWxJdGVtJiBpdGVtKSB7CisgICAgICAgIHBy
b3RlY3RlZENvbXBsZXRpb25IYW5kbGVyKHNob3VsZFByZXNlbnRNZW51LCBpdGVtLml0ZW0oKSk7
CisgICAgfSk7Cit9CiAjZW5kaWYKIAogLSAoQk9PTCloYXNIaWRkZW5Db250ZW50RWRpdGFibGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4
IGIyZmNkNGZjMTU0NDkyNWI1MjFlZjkyNzM5ZTc2NzQ0NzIxYWRmMjEuLjI5Njg4NTEzNjI2ZDM3
ZTJjZDdiYjVhZTU1MDZiN2RjMzJlNjYxYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtNTM0LDYgKzUzNCwxNCBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjbwogCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdl
OjpSZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZSgpLCBXVEZNb3ZlKGNhbGxiYWNr
RnVuY3Rpb24pKTsKIH0KKwordm9pZCBXZWJQYWdlUHJveHk6OnByZXBhcmVTZWxlY3Rpb25Gb3JD
b250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCBwb2lu
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBjb25zdCBSZXZlYWxJdGVtJik+JiYgY2Fs
bGJhY2tGdW5jdGlvbikKK3sKKyAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAg
IHJldHVybiBjYWxsYmFja0Z1bmN0aW9uKGZhbHNlLCBSZXZlYWxJdGVtKCkpOworCisgICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpQcmVwYXJlU2VsZWN0aW9uRm9yQ29u
dGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXcocG9pbnQpLCBXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rp
b24pKTsKK30KICNlbmRpZgogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEF1dG9jb3JyZWN0
aW9uQ29udGV4dCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggNzkxNTgzM2Y4OGZkNWZjMjc2MTM4ZTQxNmJlY2FhM2ZhZTFjN2ExYi4uNTI1MzJjZmQ3
MTllZjljMmRhYTZkNTgxMGEyZjUyZDA5NTRmYTU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTY4LDYgKzE2OCw3IEBAIE9CSkNfQ0xBU1MgTlNB
cnJheTsKIE9CSkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OwogT0JKQ19DTEFTUyBOU09iamVjdDsKIE9C
SkNfQ0xBU1MgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdDsKK09CSkNfQ0xBU1MgUlZJdGVt
OwogI2VuZGlmCiAKICNkZWZpbmUgRU5BQkxFX1ZJRVdQT1JUX1JFU0laSU5HIFBMQVRGT1JNKElP
U19GQU1JTFkpCkBAIC03OTgsNyArNzk5LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXF1ZXN0
RGljdGF0aW9uQ29udGV4dChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpPiYmKTsKICNpZiBFTkFCTEUoUkVWRUFMKQorICAg
IFJldGFpblB0cjxSVkl0ZW0+IHJldmVhbEl0ZW1Gb3JDdXJyZW50U2VsZWN0aW9uKCk7CiAgICAg
dm9pZCByZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IFdlYktpdDo6UmV2ZWFsSXRlbSYpPiYmKTsKKyAgICB2b2lkIHByZXBhcmVT
ZWxlY3Rpb25Gb3JDb250ZXh0TWVudVdpdGhMb2NhdGlvbkluVmlldyhjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBjb25zdCBSZXZlYWxJdGVtJik+
JiYpOwogI2VuZGlmCiAgICAgdm9pZCByZXBsYWNlRGljdGF0ZWRUZXh0KGNvbnN0IFN0cmluZyYg
b2xkVGV4dCwgY29uc3QgU3RyaW5nJiBuZXdUZXh0KTsKICAgICB2b2lkIHJlcGxhY2VTZWxlY3Rl
ZFRleHQoY29uc3QgU3RyaW5nJiBvbGRUZXh0LCBjb25zdCBTdHJpbmcmIG5ld1RleHQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KaW5kZXggYjdhODM3MjE3ZTIxMzVhYzAyMDc0ZDllNjUyNTIwYzhiMzJhMjAxNi4uMmM3MWUx
MWI3N2I5YWRiNzk4OTkzZjNkOWY4MmMxZGIyOTE2NzM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC04Myw2ICs4
Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFJlcXVlc3RE
aWN0YXRpb25Db250ZXh0KCkgLT4gKFN0cmluZyBzZWxlY3RlZFRleHQsIFN0cmluZyB0ZXh0QmVm
b3JlLCBTdHJpbmcgdGV4dEFmdGVyKSBBc3luYwogI2lmIEVOQUJMRShSRVZFQUwpCiAgICAgUmVx
dWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoKSAtPiAoV2ViS2l0OjpSZXZlYWxJdGVt
IGl0ZW0pIEFzeW5jCisgICAgUHJlcGFyZVNlbGVjdGlvbkZvckNvbnRleHRNZW51V2l0aExvY2F0
aW9uSW5WaWV3KFdlYkNvcmU6OkludFBvaW50IHBvaW50KSAtPiAoYm9vbCBzaG91bGRTaG93TWVu
dSwgV2ViS2l0OjpSZXZlYWxJdGVtIGl0ZW0pIEFzeW5jCiAjZW5kaWYKICAgICBSZXBsYWNlRGlj
dGF0ZWRUZXh0KFN0cmluZyBvbGRUZXh0LCBTdHJpbmcgbmV3VGV4dCkKICAgICBSZXBsYWNlU2Vs
ZWN0ZWRUZXh0KFN0cmluZyBvbGRUZXh0LCBTdHJpbmcgbmV3VGV4dCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggY2E3NWNi
Mzc3N2VlMzdlMDI5OGE2ZjE2OWE3YWM3OWU0Njg5YThkMy4uODU0NDNmYzZhOTcwNTk0ODIyMmYx
MDc1MWIyYzEzOGNlZjA2YzFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTIzNDMsOSArMjM0Myw4IEBAIHZvaWQgV2Vi
UGFnZTo6cmVxdWVzdERpY3RhdGlvbkNvbnRleHQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBTdHJpbmcmLCBjb25zCiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZWxlY3RlZFRleHQsIGNv
bnRleHRCZWZvcmUsIGNvbnRleHRBZnRlcik7CiB9Ci0KICNpZiBFTkFCTEUoUkVWRUFMKQotdm9p
ZCBXZWJQYWdlOjpyZXF1ZXN0UlZJdGVtSW5DdXJyZW50U2VsZWN0ZWRSYW5nZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFdlYktpdDo6UmV2ZWFsSXRlbSYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQorUmV0YWluUHRyPFJWSXRlbT4gV2ViUGFnZTo6cmV2ZWFsSXRlbUZvckN1cnJlbnRTZWxl
Y3Rpb24oKQogewogICAgIFJlZiBmcmFtZSA9IENoZWNrZWRSZWYobV9wYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKSktPmZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgIGF1dG8gc2VsZWN0aW9uID0gZnJh
bWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwpAQCAtMjM2OCw4ICsyMzY3LDIzIEBAIHZvaWQg
V2ViUGFnZTo6cmVxdWVzdFJWSXRlbUluQ3VycmVudFNlbGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBXCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisgICAg
cmV0dXJuIGl0ZW07Cit9CisKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFJWSXRlbUluQ3VycmVudFNl
bGVjdGVkUmFuZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJLaXQ6OlJldmVhbEl0
ZW0mKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcihSZXZl
YWxJdGVtKHJldmVhbEl0ZW1Gb3JDdXJyZW50U2VsZWN0aW9uKCkpKTsKK30KKwordm9pZCBXZWJQ
YWdlOjpwcmVwYXJlU2VsZWN0aW9uRm9yQ29udGV4dE1lbnVXaXRoTG9jYXRpb25JblZpZXcoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwg
Y29uc3QgUmV2ZWFsSXRlbSYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbnN0ZXhw
ciBPcHRpb25TZXQ8SGl0VGVzdFJlcXVlc3Q6OlR5cGU+IGhpdFR5cGUgeyBIaXRUZXN0UmVxdWVz
dDo6VHlwZTo6UmVhZE9ubHksIEhpdFRlc3RSZXF1ZXN0OjpUeXBlOjpBY3RpdmUsIEhpdFRlc3RS
ZXF1ZXN0OjpUeXBlOjpBbGxvd1Zpc2libGVDaGlsZEZyYW1lQ29udGVudE9ubHkgfTsKKyAgICBh
dXRvJiBldmVudEhhbmRlciA9IG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCk7Cisg
ICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBldmVudEhhbmRlci5oaXRUZXN0UmVzdWx0QXRQb2lu
dChwb2ludCwgaGl0VHlwZSk7CisgICAgCisgICAgZXZlbnRIYW5kZXIuc2VsZWN0Q2xvc2VzdENv
bnRleHR1YWxXb3JkT3JMaW5rRnJvbUhpdFRlc3RSZXN1bHQocmVzdWx0LCBXZWJDb3JlOjpEb250
QXBwZW5kVHJhaWxpbmdXaGl0ZXNwYWNlKTsKICAgICAKLSAgICBjb21wbGV0aW9uSGFuZGxlcihS
ZXZlYWxJdGVtKFdURk1vdmUoaXRlbSkpKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlLCBS
ZXZlYWxJdGVtKHJldmVhbEl0ZW1Gb3JDdXJyZW50U2VsZWN0aW9uKCkpKTsKIH0KICNlbmRpZgog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>