<?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>218588</bug_id>
          
          <creation_ts>2020-11-04 14:51:32 -0800</creation_ts>
          <short_desc>Add new display list item types in preparation for webkit.org/b/218426</short_desc>
          <delta_ts>2020-11-06 16:40:23 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218589</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>218586</dependson>
          <blocked>218426</blocked>
    
    <blocked>218675</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1704616</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-04 14:51:32 -0800</bug_when>
    <thetext>• FlushContext
• SwitchToBuffer
• StrokeLine (though maybe this should be separated out..)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704627</commentid>
    <comment_count>1</comment_count>
      <attachid>413214</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-04 15:10:45 -0800</bug_when>
    <thetext>Created attachment 413214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705046</commentid>
    <comment_count>2</comment_count>
      <attachid>413365</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-05 16:12:33 -0800</bug_when>
    <thetext>Created attachment 413365
Depends on #218586</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705379</commentid>
    <comment_count>3</comment_count>
      <attachid>413468</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-06 12:49:22 -0800</bug_when>
    <thetext>Created attachment 413468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705389</commentid>
    <comment_count>4</comment_count>
      <attachid>413468</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-06 13:16:12 -0800</bug_when>
    <thetext>Comment on attachment 413468
Patch

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

&gt; Source/WebCore/ChangeLog:40
&gt; +        (WebCore::DisplayList::SwitchToBuffer::SwitchToBuffer):

(As smfr pointed out —) if we want to go this route, SwitchToBuffer should probably be renamed to SwitchToItemBuffer or something to avoid confusing w.r.t. ImageBuffers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705402</commentid>
    <comment_count>5</comment_count>
      <attachid>413474</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-06 13:57:32 -0800</bug_when>
    <thetext>Created attachment 413474
Rename + add FIXME</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705411</commentid>
    <comment_count>6</comment_count>
      <attachid>413478</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-06 14:06:29 -0800</bug_when>
    <thetext>Created attachment 413478
Rename + add FIXME</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705412</commentid>
    <comment_count>7</comment_count>
      <attachid>413478</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-06 14:10:15 -0800</bug_when>
    <thetext>Comment on attachment 413478
Rename + add FIXME

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

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp:238
&gt; +        get&lt;MetaCommandSwitchTo&gt;().apply(context);

Or not?

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp:988
&gt; +    // Handled by client.

Can&apos;t we flush via GraphicsContext?

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp:999
&gt; +    // Handled by client.

ASSERT_NOT_REACHED()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705419</commentid>
    <comment_count>8</comment_count>
      <attachid>413478</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-06 14:17:21 -0800</bug_when>
    <thetext>Comment on attachment 413478
Rename + add FIXME

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

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp:238
&gt;&gt; +        get&lt;MetaCommandSwitchTo&gt;().apply(context);
&gt; 
&gt; Or not?

Yep, removed!

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp:988
&gt;&gt; +    // Handled by client.
&gt; 
&gt; Can&apos;t we flush via GraphicsContext?

My understanding is that context flushes are something handled at the ImageBuffer layer, rather than the GraphicsContext…though GraphicsContext::flush() does seem to be present for the USE(DIRECT2D) build.

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp:999
&gt;&gt; +    // Handled by client.
&gt; 
&gt; ASSERT_NOT_REACHED()?

(I ended up just deleting `MetaCommandSwitchTo::apply` altogether)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705423</commentid>
    <comment_count>9</comment_count>
      <attachid>413485</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-06 14:31:44 -0800</bug_when>
    <thetext>Created attachment 413485
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705471</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-06 16:40:22 -0800</bug_when>
    <thetext>Committed r269551: &lt;https://trac.webkit.org/changeset/269551&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413485.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413214</attachid>
            <date>2020-11-04 15:10:45 -0800</date>
            <delta_ts>2020-11-05 16:12:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218588-20201104151044.patch</filename>
            <type>text/plain</type>
            <size>18929</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Mzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk2MzU3ZmMwMTlmY2Qy
MmM4NGNlZWRhZDgyZmEzMTcwZGExMzE3Mi4uMjQ1MWU2MWNkZTM1Y2I3YWI2YjI2ODEzNzRjN2E2
YTZmMmM1MjEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIwLTExLTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBuZXcgZGlz
cGxheSBsaXN0IGl0ZW0gdHlwZXMgaW4gcHJlcGFyYXRpb24gZm9yIHdlYmtpdC5vcmcvYi8yMTg0
MjYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJv
ZHVjZSB0aGVzZSBuZXcgaXRlbSB0eXBlcy4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjphcHBlbmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1C
dWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmFw
cGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpkZXN0cm95
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyOjpzd2FwV3JpdGFi
bGVCdWZmZXJJZk5lZWRlZCk6CisKKyAgICAgICAgTGV0IGBJdGVtQnVmZmVyYCBhdXRvbWF0aWNh
bGx5IGFwcGVuZCAic3dpdGNoIHRvIGJ1ZmZlciIgaXRlbXMgd2hlbmV2ZXIgaXQgcnVucyBvdXQg
b2Ygc3BhY2UgaW4gaXRzIGN1cnJlbnQKKyAgICAgICAgd3JpdGFibGUgYnVmZmVyLCBhbmQgZWl0
aGVyIGFsbG9jYXRlcyBhIG5ldyBidWZmZXIgb3IgY2FsbHMgaW50byB0aGUgY2xpZW50IHRvIGdy
YWIgYSBuZXcgYnVmZmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OnNpemVPZkl0ZW1JbkJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpp
c0RyYXdpbmdJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojppc0lubGluZUl0
ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1UeXBlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNo
Q29udGV4dDo6YXBwbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Om9w
ZXJhdG9yPDwpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlN3aXRjaFRvQnVmZmVy
OjphcHBseSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVz
aENvbnRleHQ6OkZsdXNoQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
Rmx1c2hDb250ZXh0OjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpGbHVzaENvbnRleHQ6OmxvY2FsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpGbHVzaENvbnRleHQ6Omdsb2JhbEJvdW5kcyBjb25zdCk6CisKKyAg
ICAgICAgQWRkIGBGbHVzaENvbnRleHRgLCB3aGljaCB3aWxsIGluZGljYXRlIHRvIHRoZSBjbGll
bnQgdGhhdCBpdCBzaG91bGQgZmx1c2ggaXRzIGJhY2tpbmcgZ3JhcGhpY3MgY29udGV4dC4gVGhl
CisgICAgICAgIG9ubHkgZGF0YSBpbiB0aGlzIGl0ZW0gaXMgYSBgRGlzcGxheUxpc3Q6OkZsdXNo
SWRlbnRpZmllcmAsIHdoaWNoIHdpbGwgYmUgdXNlZCBieSB0aGUgZGlzcGxheSBsaXN0IGNsaWVu
dCB0bworICAgICAgICBjb29yZGluYXRlIGZsdXNoIHRpbWluZy4KKworICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlN3aXRjaFRvQnVmZmVyOjpTd2l0Y2hUb0J1ZmZlcik6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U3dpdGNoVG9CdWZmZXI6OmlkZW50aWZpZXIgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlN3aXRjaFRvQnVmZmVyOjpsb2NhbEJv
dW5kcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U3dpdGNoVG9CdWZm
ZXI6Omdsb2JhbEJvdW5kcyBjb25zdCk6CisKKyAgICAgICAgQWRkIGFuIGl0ZW0gdG8gcmVwcmVz
ZW50IHN3aXRjaGluZyB0byBhIG5ldyBpdGVtIGJ1ZmZlci4gVGhpcyBpcyBhdXRvbWF0aWNhbGx5
IGFwcGVuZGVkIGJ5IHRoZSBkaXNwbGF5IGxpc3QKKyAgICAgICAgaXRzZWxmIHdoZW4gaXQgcnVu
cyBvdXQgb2Ygc3BhY2Ugb24gdGhlIGN1cnJlbnQgd3JpdGFibGUgYnVmZmVyLCBhbmQgd2lsbCBh
bGxvdyBkaXNwbGF5IGxpc3QgY2xpZW50cyAoaW4KKyAgICAgICAgcGFydGljdWxhciwgdGhlIHJl
bW90ZSByZW5kZXJpbmcgYmFja2VuZCBpbiB0aGUgR1BVIHByb2Nlc3MpIHRvIHNlYW1sZXNzbHkg
Y29udGludWUgcmVhZGluZyBkaXNwbGF5IGxpc3QgaXRlbXMKKyAgICAgICAgd2hlbiBhbGwgaXRl
bSBkYXRhIGluIGEgZGlzcGxheSBsaXN0IGl0ZW0gYnVmZmVyIGhhcyBiZWVuIGV4aGF1c3RlZC4K
KwogMjAyMC0xMS0wNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNb3ZlIERpc3BsYXlMaXN0Rmx1c2hJZGVudGlmaWVyIGludG8gV2ViQ29yZSBhcyBE
aXNwbGF5TGlzdDo6Rmx1c2hJZGVudGlmaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk1NzMxY2NiYmM1MDE4MzY0
ZDE3M2VhMzIzZDVmY2ZjMGJiN2E1ZWUuLjU4ODI0M2VkNGMxNzRhM2YxNzA4MzMwYzgzYzkwZmVl
YTViNTcwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTEtMDQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG5ldyBkaXNwbGF5
IGxpc3QgaXRlbSB0eXBlcyBpbiBwcmVwYXJhdGlvbiBmb3Igd2Via2l0Lm9yZy9iLzIxODQyNgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTg4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGx5IHRy
ZWF0IHRoZXNlIG5ldyBpdGVtcyBhcyBuby1vcHMgZm9yIHRoZSB0aW1lIGJlaW5nLiBTZWUgU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorCiAyMDIwLTExLTA0ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgRGlz
cGxheUxpc3RGbHVzaElkZW50aWZpZXIgaW50byBXZWJDb3JlIGFzIERpc3BsYXlMaXN0OjpGbHVz
aElkZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IDY2MTA3MDU2N2YzOTc1
ZDEyZGJhMTdkYmEyNTAxYzkwMTkyOWVlMGMuLmJiNWFlMThhNDM3NDE4OGI5YzM0NTI5YjRjMTQ0
OGZlYWJlYzgyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMjcyLDYgKzI3Miw4
IEBAIHZvaWQgRGlzcGxheUxpc3Q6OmFwcGVuZChJdGVtSGFuZGxlIGl0ZW0pCiAgICAgICAgIHJl
dHVybiBhcHBlbmQ8RmlsbFBhdGg+KGl0ZW0uZ2V0PEZpbGxQYXRoPigpKTsKICAgICBjYXNlIEl0
ZW1UeXBlOjpGaWxsRWxsaXBzZToKICAgICAgICAgcmV0dXJuIGFwcGVuZDxGaWxsRWxsaXBzZT4o
aXRlbS5nZXQ8RmlsbEVsbGlwc2U+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4
dDoKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxGbHVzaENvbnRleHQ+KGl0ZW0uZ2V0PEZsdXNoQ29u
dGV4dD4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOgogICAgICAgICByZXR1
cm4gYXBwZW5kPFB1dEltYWdlRGF0YT4oaXRlbS5nZXQ8UHV0SW1hZ2VEYXRhPigpKTsKICAgICBj
YXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CkBAIC0yODYsNiArMjg4LDggQEAgdm9p
ZCBEaXNwbGF5TGlzdDo6YXBwZW5kKEl0ZW1IYW5kbGUgaXRlbSkKICAgICAgICAgcmV0dXJuIGFw
cGVuZDxTdHJva2VQYXRoPihpdGVtLmdldDxTdHJva2VQYXRoPigpKTsKICAgICBjYXNlIEl0ZW1U
eXBlOjpTdHJva2VFbGxpcHNlOgogICAgICAgICByZXR1cm4gYXBwZW5kPFN0cm9rZUVsbGlwc2U+
KGl0ZW0uZ2V0PFN0cm9rZUVsbGlwc2U+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OlN3aXRjaFRv
QnVmZmVyOgorICAgICAgICByZXR1cm4gYXBwZW5kPFN3aXRjaFRvQnVmZmVyPihpdGVtLmdldDxT
d2l0Y2hUb0J1ZmZlcj4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xlYXJSZWN0OgogICAgICAg
ICByZXR1cm4gYXBwZW5kPENsZWFyUmVjdD4oaXRlbS5nZXQ8Q2xlYXJSZWN0PigpKTsKICAgICBj
YXNlIEl0ZW1UeXBlOjpCZWdpblRyYW5zcGFyZW5jeUxheWVyOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1
ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAppbmRleCA3ODk5MDYyYzI2NDNhN2ZlNjQ4Y2FhNTZi
YTczOGY4YmRiNGI5MTc3Li5mODk1OTcyZGM2YTk1YTQxOTZlYzRhYTI5OTE5MWIzNzIyOTE2NGVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNwcApAQCAtMjMw
LDYgKzIzMCwxMCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCkKICAgICAgICAgZ2V0PEZpbGxFbGxpcHNlPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDogeworICAg
ICAgICBnZXQ8Rmx1c2hDb250ZXh0PigpLmFwcGx5KGNvbnRleHQpOworICAgICAgICByZXR1cm47
CisgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlRGF0YTogewogICAgICAgICBnZXQ8
UHV0SW1hZ2VEYXRhPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICByZXR1cm47CkBAIC0yNTYs
NiArMjYwLDEwIEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0KQogICAgICAgICBnZXQ8U3Ryb2tlRWxsaXBzZT4oKS5hcHBseShjb250ZXh0KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpTd2l0Y2hUb0J1ZmZlcjogewor
ICAgICAgICBnZXQ8U3dpdGNoVG9CdWZmZXI+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xlYXJSZWN0OiB7CiAgICAgICAgIGdl
dDxDbGVhclJlY3Q+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKQEAgLTQ1Niw2
ICs0NjQsMTAgQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICAgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8RmlsbFJlY3Q+Ojp2YWx1ZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OiB7
CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPEZs
dXNoQ29udGV4dD46OnZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBjYXNlIEl0
ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6IHsKICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8UGFpbnRGcmFtZUZvck1lZGlhPjo6dmFsdWUpOwog
ICAgICAgICByZXR1cm47CkBAIC01MjIsNiArNTM0LDEwIEBAIHZvaWQgSXRlbUhhbmRsZTo6ZGVz
dHJveSgpCiAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3Rp
YmxlPFN0cm9rZVJlY3Q+Ojp2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgY2Fz
ZSBJdGVtVHlwZTo6U3dpdGNoVG9CdWZmZXI6IHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8U3dpdGNoVG9CdWZmZXI+Ojp2YWx1ZSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6VHJhbnNsYXRlOiB7CiAgICAg
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFRyYW5zbGF0
ZT46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjA4LDExICs2MjQsMTQgQEAgdm9pZCBJ
dGVtQnVmZmVyOjpjbGVhcigpCiAKIHZvaWQgSXRlbUJ1ZmZlcjo6c3dhcFdyaXRhYmxlQnVmZmVy
SWZOZWVkZWQoc2l6ZV90IG51bWJlck9mQnl0ZXMpCiB7Ci0gICAgaWYgKG1fd3JpdHRlbk51bWJl
ck9mQnl0ZXMgKyBudW1iZXJPZkJ5dGVzIDw9IG1fd3JpdGFibGVCdWZmZXIuY2FwYWNpdHkpCisg
ICAgY29uc3RleHByIGF1dG8gc2l6ZUZvckJ1ZmZlclN3aXRjaEl0ZW0gPSBzaXplb2YoSXRlbVR5
cGUpICsgc2l6ZW9mKFN3aXRjaFRvQnVmZmVyKTsKKyAgICBpZiAobV93cml0dGVuTnVtYmVyT2ZC
eXRlcyArIG51bWJlck9mQnl0ZXMgKyBzaXplRm9yQnVmZmVyU3dpdGNoSXRlbSA8PSBtX3dyaXRh
YmxlQnVmZmVyLmNhcGFjaXR5KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIG5leHRCdWZm
ZXIgPSBjcmVhdGVJdGVtQnVmZmVyKG51bWJlck9mQnl0ZXMpOworICAgIGF1dG8gbmV4dEJ1ZmZl
ciA9IGNyZWF0ZUl0ZW1CdWZmZXIobnVtYmVyT2ZCeXRlcyArIHNpemVGb3JCdWZmZXJTd2l0Y2hJ
dGVtKTsKICAgICBib29sIGhhZFByZXZpb3VzQnVmZmVyID0gbV93cml0YWJsZUJ1ZmZlcjsKKyAg
ICBpZiAoaGFkUHJldmlvdXNCdWZmZXIpCisgICAgICAgIHVuY2hlY2tlZEFwcGVuZDxTd2l0Y2hU
b0J1ZmZlcj4obmV4dEJ1ZmZlci5pZGVudGlmaWVyKTsKICAgICBhdXRvIHByZXZpb3VzQnVmZmVy
ID0gc3RkOjpleGNoYW5nZShtX3dyaXRhYmxlQnVmZmVyLCB7IH0pOwogICAgIHByZXZpb3VzQnVm
ZmVyLmNhcGFjaXR5ID0gc3RkOjpleGNoYW5nZShtX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzLCAwKTsK
ICAgICBpZiAoaGFkUHJldmlvdXNCdWZmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtVHlwZS5jcHAKaW5kZXggNDU3YWVkZGUzMjk2YTc4MjQ1MDkwZDZhZWUxMTY5MDVhMjNhNGRk
Yy4uMGM0NjAxZGI1NTlmZDY5ZWYzNWI2MWM1YTI3NWZkZDIzNzk5NGM1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcApAQCAtMTI4LDYgKzEyOCw4IEBAIHNpemVf
dCBzaXplT2ZJdGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gc2l6ZW9m
KEZpbGxQYXRoKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsRWxsaXBzZToKICAgICAgICAgcmV0
dXJuIHNpemVvZihGaWxsRWxsaXBzZSk7CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0
OgorICAgICAgICByZXR1cm4gc2l6ZW9mKEZsdXNoQ29udGV4dCk7CiAgICAgY2FzZSBJdGVtVHlw
ZTo6UHV0SW1hZ2VEYXRhOgogICAgICAgICByZXR1cm4gc2l6ZW9mKFB1dEltYWdlRGF0YSk7CiAg
ICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgpAQCAtMTQyLDYgKzE0NCw4IEBA
IHNpemVfdCBzaXplT2ZJdGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4g
c2l6ZW9mKFN0cm9rZVBhdGgpOwogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZUVsbGlwc2U6CiAg
ICAgICAgIHJldHVybiBzaXplb2YoU3Ryb2tlRWxsaXBzZSk7CisgICAgY2FzZSBJdGVtVHlwZTo6
U3dpdGNoVG9CdWZmZXI6CisgICAgICAgIHJldHVybiBzaXplb2YoU3dpdGNoVG9CdWZmZXIpOwog
ICAgIGNhc2UgSXRlbVR5cGU6OkNsZWFyUmVjdDoKICAgICAgICAgcmV0dXJuIHNpemVvZihDbGVh
clJlY3QpOwogICAgIGNhc2UgSXRlbVR5cGU6OkJlZ2luVHJhbnNwYXJlbmN5TGF5ZXI6CkBAIC0x
NzYsNiArMTgwLDcgQEAgYm9vbCBpc0RyYXdpbmdJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2Fz
ZSBJdGVtVHlwZTo6Q2xpcFBhdGg6CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFRvRHJhd2luZ0Nv
bW1hbmRzOgogICAgIGNhc2UgSXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgorICAgIGNhc2UgSXRl
bVR5cGU6OkZsdXNoQ29udGV4dDoKICAgICBjYXNlIEl0ZW1UeXBlOjpSZXN0b3JlOgogICAgIGNh
c2UgSXRlbVR5cGU6OlJvdGF0ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTYXZlOgpAQCAtMTkwLDYg
KzE5NSw3IEBAIGJvb2wgaXNEcmF3aW5nSXRlbShJdGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRl
bVR5cGU6OlNldE1pdGVyTGltaXQ6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3RhdGU6CiAgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOgorICAgIGNhc2UgSXRlbVR5cGU6OlN3
aXRjaFRvQnVmZmVyOgogICAgIGNhc2UgSXRlbVR5cGU6OlRyYW5zbGF0ZToKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIGNhc2UgSXRlbVR5cGU6OkJlZ2luVHJhbnNwYXJlbmN5TGF5ZXI6CkBA
IC0yODQsNiArMjkwLDcgQEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBj
YXNlIEl0ZW1UeXBlOjpGaWxsSW5saW5lUGF0aDoKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6
OkZpbGxSZWN0OgorICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKICAgICBjYXNlIEl0
ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CiAgICAgY2FzZSBJdGVtVHlwZTo6UmVzdG9yZToK
ICAgICBjYXNlIEl0ZW1UeXBlOjpSb3RhdGU6CkBAIC0zMDIsNiArMzA5LDcgQEAgYm9vbCBpc0lu
bGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpTdHJva2VJbmxpbmVQ
YXRoOgogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlUmVjdDoKKyAgICBjYXNlIEl0
ZW1UeXBlOjpTd2l0Y2hUb0J1ZmZlcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpUcmFuc2xhdGU6CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
VHlwZS5oCmluZGV4IGNlNGY4NTc5YWM4NzdiYjg4M2I0OTYzMzMyN2ZhNzhjMjMxNzFjYzYuLjg5
NjY0OWY0OTc5Mzc0MGQ4YTQ4NjE2NzgzNDQ0NjdlYzY0NDg3YTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbVR5cGUuaApAQCAtNzcsNiArNzcsNyBAQCBlbnVtIGNsYXNzIEl0ZW1U
eXBlIDogdWludDhfdCB7CiAjZW5kaWYKICAgICBGaWxsUGF0aCwKICAgICBGaWxsRWxsaXBzZSwK
KyAgICBGbHVzaENvbnRleHQsCiAgICAgUHV0SW1hZ2VEYXRhLAogICAgIFBhaW50RnJhbWVGb3JN
ZWRpYSwKICAgICBTdHJva2VSZWN0LApAQCAtODUsNiArODYsNyBAQCBlbnVtIGNsYXNzIEl0ZW1U
eXBlIDogdWludDhfdCB7CiAjZW5kaWYKICAgICBTdHJva2VQYXRoLAogICAgIFN0cm9rZUVsbGlw
c2UsCisgICAgU3dpdGNoVG9CdWZmZXIsCiAgICAgQ2xlYXJSZWN0LAogICAgIEJlZ2luVHJhbnNw
YXJlbmN5TGF5ZXIsCiAgICAgRW5kVHJhbnNwYXJlbmN5TGF5ZXIsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtcy5jcHAKaW5kZXggNzIyM2Q0NTU3YzdmNzdiNjEwOTFhNmU3M2M5MzQwYTMz
Njk0OTEyOS4uZDdhYTU1MDFmZTBmOGNjNWVkOWI2ZDMwNDcyNjUwNDEzMDgxNTRiYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcApAQCAtOTg3LDYgKzk4NywyOCBAQCBzdGF0
aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQXBwbHlEZXZp
Y2VTY2FsZUZhY3RvciYgaXRlbQogICAgIHJldHVybiB0czsKIH0KIAordm9pZCBGbHVzaENvbnRl
eHQ6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0Cit7CisgICAgLy8gSGFuZGxlZCBieSBj
bGllbnQuCit9CisKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBjb25zdCBGbHVzaENvbnRleHQmIGl0ZW0pCit7CisgICAgdHMuZHVtcFByb3BlcnR5KCJpZGVu
dGlmaWVyIiwgaXRlbS5pZGVudGlmaWVyKCkpOworICAgIHJldHVybiB0czsKK30KKwordm9pZCBT
d2l0Y2hUb0J1ZmZlcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QKK3sKKyAgICAvLyBI
YW5kbGVkIGJ5IGNsaWVudC4KK30KKworc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIGNvbnN0IFN3aXRjaFRvQnVmZmVyJiBpdGVtKQoreworICAgIHRzLmR1bXBQ
cm9wZXJ0eSgiaWRlbnRpZmllciIsIGl0ZW0uaWRlbnRpZmllcigpKTsKKyAgICByZXR1cm4gdHM7
Cit9CisKIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVt
VHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewpAQCAtMTAzNyw2ICsxMDU5LDcgQEAg
c3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5
cGUpCiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUGF0aDogdHMgPDwgImZpbGwtcGF0
aCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxFbGxpcHNlOiB0cyA8PCAiZmlsbC1l
bGxpcHNlIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OiB0cyA8PCAi
Zmx1c2gtY29udGV4dCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlB1dEltYWdlRGF0YTog
dHMgPDwgInB1dC1pbWFnZS1kYXRhIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRG
cmFtZUZvck1lZGlhOiB0cyA8PCAicGFpbnQtZnJhbWUtZm9yLW1lZGlhIjsgYnJlYWs7CiAgICAg
Y2FzZSBJdGVtVHlwZTo6U3Ryb2tlUmVjdDogdHMgPDwgInN0cm9rZS1yZWN0IjsgYnJlYWs7CkBA
IC0xMDQ1LDYgKzEwNjgsNyBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgSXRlbVR5cGUgdHlwZSkKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9r
ZVBhdGg6IHRzIDw8ICJzdHJva2UtcGF0aCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlN0
cm9rZUVsbGlwc2U6IHRzIDw8ICJzdHJva2UtZWxsaXBzZSI7IGJyZWFrOworICAgIGNhc2UgSXRl
bVR5cGU6OlN3aXRjaFRvQnVmZmVyOiB0cyA8PCAic3dpdGNoLXRvLWl0ZW0tYnVmZmVyIjsgYnJl
YWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xlYXJSZWN0OiB0cyA8PCAiY2xlYXItcmVjdCI7IGJy
ZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkJlZ2luVHJhbnNwYXJlbmN5TGF5ZXI6IHRzIDw8ICJi
ZWdpbi10cmFuc3BhcmVuY3ktbGF5ZXIiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRU
cmFuc3BhcmVuY3lMYXllcjogdHMgPDwgImVuZC10cmFuc3BhcmVuY3ktbGF5ZXIiOyBicmVhazsK
QEAgLTExOTQsNiArMTIxOCw5IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIEl0ZW1IYW5kbGUgaXRlbSkKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsRWxsaXBzZToKICAg
ICAgICAgdHMgPDwgaXRlbS5nZXQ8RmlsbEVsbGlwc2U+KCk7CiAgICAgICAgIGJyZWFrOworICAg
IGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8Rmx1
c2hDb250ZXh0PigpOworICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFn
ZURhdGE6CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFB1dEltYWdlRGF0YT4oKTsKICAgICAgICAg
YnJlYWs7CkBAIC0xMjE0LDYgKzEyNDEsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBJdGVtSGFuZGxlIGl0ZW0pCiAgICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlRWxs
aXBzZToKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U3Ryb2tlRWxsaXBzZT4oKTsKICAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U3dpdGNoVG9CdWZmZXI6CisgICAgICAgIHRzIDw8
IGl0ZW0uZ2V0PFN3aXRjaFRvQnVmZmVyPigpOworICAgICAgICBicmVhazsKICAgICBjYXNlIEl0
ZW1UeXBlOjpDbGVhclJlY3Q6CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PENsZWFyUmVjdD4oKTsK
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAppbmRleCAyYTQ2
MjZlOGViMzE1MGQ4MTg1NGNmYjJhZTJhYjYzZTMyYzBhNzQ5Li45NWRkNmU1Y2RmZjk1OTA0ZTE5
OTRlNzE0YmM4MDAxMTZmZWMyOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgK
QEAgLTI1OTksNiArMjU5OSw1MCBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fc2NhbGVGYWN0b3Ig
eyAxIH07CiB9OwogCitjbGFzcyBGbHVzaENvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBj
b25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OworICAg
IHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0gPSB0cnVlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7CisKKyAgICBGbHVzaENvbnRleHQo
Rmx1c2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50
aWZpZXIpCisgICAgeworICAgIH0KKworICAgIEZsdXNoSWRlbnRpZmllciBpZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKKyAgICB2b2lkIGFwcGx5KEdyYXBoaWNz
Q29udGV4dCYpIGNvbnN0OworCisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhj
b25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKyAg
ICBPcHRpb25hbDxGbG9hdFJlY3Q+IGdsb2JhbEJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIFdURjo6
bnVsbG9wdDsgfQorCitwcml2YXRlOgorICAgIEZsdXNoSWRlbnRpZmllciBtX2lkZW50aWZpZXI7
Cit9OworCitjbGFzcyBTd2l0Y2hUb0J1ZmZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0
ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTd2l0Y2hUb0J1ZmZlcjsKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOworCisgICAgU3dpdGNoVG9CdWZmZXIo
SXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKKyAgICB7CisgICAgfQorCisgICAgSXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisgICAgdm9pZCBhcHBs
eShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gbG9j
YWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29uc3QgeyByZXR1cm4gV1RGOjpudWxs
b3B0OyB9CisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJl
dHVybiBXVEY6Om51bGxvcHQ7IH0KKworcHJpdmF0ZToKKyAgICBJdGVtQnVmZmVySWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7Cit9OworCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
LCBJdGVtSGFuZGxlKTsKIAogfSAvLyBuYW1lc3BhY2UgRGlzcGxheUxpc3QKQEAgLTI2NTcsNiAr
MjcwMSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlPiB7CiAjZW5kaWYKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkZpbGxQYXRoLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbEVs
bGlwc2UsCisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGbHVzaENvbnRleHQs
CiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRJbWFnZURhdGEsCiAgICAg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWEsCiAgICAg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTdHJva2VSZWN0LApAQCAtMjY2NSw2ICsy
NzEwLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU+IHsKICNlbmRpZgogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6U3Ryb2tlUGF0aCwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN0cm9r
ZUVsbGlwc2UsCisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTd2l0Y2hUb0J1
ZmZlciwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkNsZWFyUmVjdCwKICAg
ICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIs
CiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpFbmRUcmFuc3BhcmVuY3lMYXll
ciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyLmgKaW5kZXggNzhlMjY1ZGJmNTRlOWJkMjRiOWQ0MWI3MzkwMDk3MDIxNDkxZmE5
MS4uZDQ2ZjBjOWNiOTVjM2E0MDM2NGFlMWVmNGMyMDQ2MjA0ZTBhZTEzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgK
QEAgLTgxLDYgKzgxLDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogCisgICAgICAgIGlmIChpdGVtLmlzPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVz
aENvbnRleHQ+KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQgeWV0
LgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXRl
bS5pczxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U3dpdGNoVG9CdWZmZXI+KCkpIHsKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQgeWV0LgorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmFw
cGx5UmVzb3VyY2VJdGVtKGl0ZW0sIGNvbnRleHQpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAKQEAgLTE1OSw2ICsxNjksNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbElubGluZVBhdGg6CiAjZW5kaWYKICAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxSZWN0OgorICAgICAgICBjYXNl
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OgogICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgog
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UmVzdG9yZToKICAg
ICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlJvdGF0ZToKQEAgLTE3
Nyw2ICsxODgsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6U3Ryb2tlSW5saW5lUGF0aDoKICNlbmRpZgogICAgICAgICBjYXNlIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlUmVjdDoKKyAgICAgICAgY2FzZSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN3aXRjaFRvQnVmZmVyOgogICAgICAgICBjYXNl
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6VHJhbnNsYXRlOiB7CiAgICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyUHJveHkuaAppbmRleCAzMWY2ZTY1NGU3ZTZhY2IyZjk3MDg4N2NkZDFiYzE1YzU3ODdl
ODY4Li45YjBhMjkxOTA2NWIxNTVjMTMwYjlmNjM2YWNiZjMxNjEyYWUyNWE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMjczLDYgKzI3Myw3IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxJbmxpbmVQYXRoOgog
I2VuZGlmCiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxs
UmVjdDoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZsdXNo
Q29udGV4dDoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlBh
aW50RnJhbWVGb3JNZWRpYToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OlJlc3RvcmU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpSb3RhdGU6CkBAIC0yOTEsNiArMjkyLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBjYXNl
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlSW5saW5lUGF0aDoKICNlbmRp
ZgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlUmVj
dDoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN3aXRjaFRv
QnVmZmVyOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6VHJh
bnNsYXRlOgogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413365</attachid>
            <date>2020-11-05 16:12:33 -0800</date>
            <delta_ts>2020-11-06 12:32:59 -0800</delta_ts>
            <desc>Depends on #218586</desc>
            <filename>bug-218588-20201105161232.patch</filename>
            <type>text/plain</type>
            <size>19925</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdiMzYzMTFmYTc3YzAz
ZDNmYjg5MjUxMTY1YWUwM2QwNGYzOThkNS4uNjEwZWZhMmU4NjhhNjRiNTY4MTc3ODk3MTBlYmY4
MTFhZTc0Y2YyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTExLTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBuZXcgZGlz
cGxheSBsaXN0IGl0ZW0gdHlwZXMgaW4gcHJlcGFyYXRpb24gZm9yIHdlYmtpdC5vcmcvYi8yMTg0
MjYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJv
ZHVjZSB0aGVzZSBuZXcgaXRlbSB0eXBlcy4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjphcHBlbmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1C
dWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmFw
cGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpkZXN0cm95
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpjb3B5VG8pOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6OnN3YXBXcml0YWJsZUJ1
ZmZlcklmTmVlZGVkKToKKworICAgICAgICBMZXQgYEl0ZW1CdWZmZXJgIGF1dG9tYXRpY2FsbHkg
YXBwZW5kICJzd2l0Y2ggdG8gYnVmZmVyIiBpdGVtcyB3aGVuZXZlciBpdCBydW5zIG91dCBvZiBz
cGFjZSBpbiBpdHMgY3VycmVudAorICAgICAgICB3cml0YWJsZSBidWZmZXIsIGFuZCBlaXRoZXIg
YWxsb2NhdGVzIGEgbmV3IGJ1ZmZlciBvciBjYWxscyBpbnRvIHRoZSBjbGllbnQgdG8gZ3JhYiBh
IG5ldyBidWZmZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
c2l6ZU9mSXRlbUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzRHJh
d2luZ0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzSW5saW5lSXRlbSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bVR5cGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hDb250
ZXh0OjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0
b3I8PCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U3dpdGNoVG9CdWZmZXI6OmFw
cGx5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoQ29u
dGV4dDo6Rmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVz
aENvbnRleHQ6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkZsdXNoQ29udGV4dDo6bG9jYWxCb3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkZsdXNoQ29udGV4dDo6Z2xvYmFsQm91bmRzIGNvbnN0KToKKworICAgICAg
ICBBZGQgYEZsdXNoQ29udGV4dGAsIHdoaWNoIHdpbGwgaW5kaWNhdGUgdG8gdGhlIGNsaWVudCB0
aGF0IGl0IHNob3VsZCBmbHVzaCBpdHMgYmFja2luZyBncmFwaGljcyBjb250ZXh0LiBUaGUKKyAg
ICAgICAgb25seSBkYXRhIGluIHRoaXMgaXRlbSBpcyBhIGBEaXNwbGF5TGlzdDo6Rmx1c2hJZGVu
dGlmaWVyYCwgd2hpY2ggd2lsbCBiZSB1c2VkIGJ5IHRoZSBkaXNwbGF5IGxpc3QgY2xpZW50IHRv
CisgICAgICAgIGNvb3JkaW5hdGUgZmx1c2ggdGltaW5nLgorCisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6U3dpdGNoVG9CdWZmZXI6OlN3aXRjaFRvQnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpTd2l0Y2hUb0J1ZmZlcjo6aWRlbnRpZmllciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U3dpdGNoVG9CdWZmZXI6OmxvY2FsQm91bmRz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTd2l0Y2hUb0J1ZmZlcjo6
Z2xvYmFsQm91bmRzIGNvbnN0KToKKworICAgICAgICBBZGQgYW4gaXRlbSB0byByZXByZXNlbnQg
c3dpdGNoaW5nIHRvIGEgbmV3IGl0ZW0gYnVmZmVyLiBUaGlzIGlzIGF1dG9tYXRpY2FsbHkgYXBw
ZW5kZWQgYnkgdGhlIGRpc3BsYXkgbGlzdAorICAgICAgICBpdHNlbGYgd2hlbiBpdCBydW5zIG91
dCBvZiBzcGFjZSBvbiB0aGUgY3VycmVudCB3cml0YWJsZSBidWZmZXIsIGFuZCB3aWxsIGFsbG93
IGRpc3BsYXkgbGlzdCBjbGllbnRzIChpbgorICAgICAgICBwYXJ0aWN1bGFyLCB0aGUgcmVtb3Rl
IHJlbmRlcmluZyBiYWNrZW5kIGluIHRoZSBHUFUgcHJvY2VzcykgdG8gc2VhbWxlc3NseSBjb250
aW51ZSByZWFkaW5nIGRpc3BsYXkgbGlzdCBpdGVtcworICAgICAgICB3aGVuIGFsbCBpdGVtIGRh
dGEgaW4gYSBkaXNwbGF5IGxpc3QgaXRlbSBidWZmZXIgaGFzIGJlZW4gZXhoYXVzdGVkLgorCiAy
MDIwLTExLTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vdmUgRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgaW50byBXZWJDb3JlIGFzIERpc3Bs
YXlMaXN0OjpGbHVzaElkZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNWE3MzM2MDNjMjhjZTNkYTdlYzBm
NDI0MjIxM2RiNTZkOGQwNDEzYS4uZTU2NGJkYmM0YmE2ZjRjYzY3NWIzYzkwZDY0ZGZkMWRkYzhk
NWIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbmV3IGRpc3BsYXkgbGlz
dCBpdGVtIHR5cGVzIGluIHByZXBhcmF0aW9uIGZvciB3ZWJraXQub3JnL2IvMjE4NDI2CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1ODgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbHkgdHJlYXQg
dGhlc2UgbmV3IGl0ZW1zIGFzIG5vLW9wcyBmb3IgdGhlIHRpbWUgYmVpbmcuIFNlZSBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisKIDIwMjAtMTEtMDQgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBEaXNwbGF5
TGlzdEZsdXNoSWRlbnRpZmllciBpbnRvIFdlYkNvcmUgYXMgRGlzcGxheUxpc3Q6OkZsdXNoSWRl
bnRpZmllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKaW5kZXggNzQ4MmM5NGE5YTg4YjdkZWEz
NzMyNGYyNGIxMzlkZmY1NTQxZWEyOS4uOTA2NTM4YjVkMjczZDQwYzliYzZhMmM5NWI1Y2YzYjk1
MjI4NWMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCkBAIC0yNzQsNiArMjc0LDggQEAg
dm9pZCBEaXNwbGF5TGlzdDo6YXBwZW5kKEl0ZW1IYW5kbGUgaXRlbSkKICAgICAgICAgcmV0dXJu
IGFwcGVuZDxGaWxsUGF0aD4oaXRlbS5nZXQ8RmlsbFBhdGg+KCkpOwogICAgIGNhc2UgSXRlbVR5
cGU6OkZpbGxFbGxpcHNlOgogICAgICAgICByZXR1cm4gYXBwZW5kPEZpbGxFbGxpcHNlPihpdGVt
LmdldDxGaWxsRWxsaXBzZT4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0Ogor
ICAgICAgICByZXR1cm4gYXBwZW5kPEZsdXNoQ29udGV4dD4oaXRlbS5nZXQ8Rmx1c2hDb250ZXh0
PigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFnZURhdGE6CiAgICAgICAgIHJldHVybiBh
cHBlbmQ8UHV0SW1hZ2VEYXRhPihpdGVtLmdldDxQdXRJbWFnZURhdGE+KCkpOwogICAgIGNhc2Ug
SXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToKQEAgLTI4OCw2ICsyOTAsOCBAQCB2b2lkIERp
c3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAgICAgICByZXR1cm4gYXBwZW5k
PFN0cm9rZVBhdGg+KGl0ZW0uZ2V0PFN0cm9rZVBhdGg+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6
OlN0cm9rZUVsbGlwc2U6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U3Ryb2tlRWxsaXBzZT4oaXRl
bS5nZXQ8U3Ryb2tlRWxsaXBzZT4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U3dpdGNoVG9CdWZm
ZXI6CisgICAgICAgIHJldHVybiBhcHBlbmQ8U3dpdGNoVG9CdWZmZXI+KGl0ZW0uZ2V0PFN3aXRj
aFRvQnVmZmVyPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGVhclJlY3Q6CiAgICAgICAgIHJl
dHVybiBhcHBlbmQ8Q2xlYXJSZWN0PihpdGVtLmdldDxDbGVhclJlY3Q+KCkpOwogICAgIGNhc2Ug
SXRlbVR5cGU6OkJlZ2luVHJhbnNwYXJlbmN5TGF5ZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4IDIwYjkyODdiNzI3MzRkOWI0Y2NjNWI4NjVlNjhm
YmYzMGYzYWQ1NzUuLmRhODBkYjY1OTFiNTNmNGYzNjc1MDZlZjc1YTRkMTZlOWI1NjhhMjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCkBAIC0yMzAsNiAr
MjMwLDEwIEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
KQogICAgICAgICBnZXQ8RmlsbEVsbGlwc2U+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OiB7CisgICAgICAg
IGdldDxGbHVzaENvbnRleHQ+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOiB7CiAgICAgICAgIGdldDxQdXRJ
bWFnZURhdGE+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKQEAgLTI1Niw2ICsy
NjAsMTAgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQp
CiAgICAgICAgIGdldDxTdHJva2VFbGxpcHNlPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlN3aXRjaFRvQnVmZmVyOiB7CisgICAg
ICAgIGdldDxTd2l0Y2hUb0J1ZmZlcj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpDbGVhclJlY3Q6IHsKICAgICAgICAgZ2V0PENs
ZWFyUmVjdD4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDU2LDYgKzQ2
NCwxMCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRlc3Ryb3koKQogICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxGaWxsUmVjdD46OnZhbHVlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6IHsKKyAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8Rmx1c2hD
b250ZXh0Pjo6dmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGNhc2UgSXRlbVR5
cGU6OlBhaW50RnJhbWVGb3JNZWRpYTogewogICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
dHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxQYWludEZyYW1lRm9yTWVkaWE+Ojp2YWx1ZSk7CiAgICAg
ICAgIHJldHVybjsKQEAgLTUyMiw2ICs1MzQsMTAgQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95
KCkKICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8
U3Ryb2tlUmVjdD46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEl0
ZW1UeXBlOjpTd2l0Y2hUb0J1ZmZlcjogeworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
dHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTd2l0Y2hUb0J1ZmZlcj46OnZhbHVlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpUcmFuc2xhdGU6IHsKICAgICAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VHJhbnNsYXRlPjo6
dmFsdWUpOwogICAgICAgICByZXR1cm47CkBAIC03MDIsNiArNzE4LDEwIEBAIHZvaWQgSXRlbUhh
bmRsZTo6Y29weVRvKEl0ZW1IYW5kbGUgZGVzdGluYXRpb24pIGNvbnN0CiAgICAgICAgIG5ldyAo
ZGVzdGluYXRpb24uZGF0YSArIHNpemVvZihJdGVtVHlwZSkpIEZpbGxSZWN0KGdldDxGaWxsUmVj
dD4oKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hD
b250ZXh0OiB7CisgICAgICAgIG5ldyAoZGVzdGluYXRpb24uZGF0YSArIHNpemVvZihJdGVtVHlw
ZSkpIEZsdXNoQ29udGV4dChnZXQ8Rmx1c2hDb250ZXh0PigpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6IHsKICAgICAgICAg
bmV3IChkZXN0aW5hdGlvbi5kYXRhICsgc2l6ZW9mKEl0ZW1UeXBlKSkgUGFpbnRGcmFtZUZvck1l
ZGlhKGdldDxQYWludEZyYW1lRm9yTWVkaWE+KCkpOwogICAgICAgICByZXR1cm47CkBAIC03Njgs
NiArNzg4LDEwIEBAIHZvaWQgSXRlbUhhbmRsZTo6Y29weVRvKEl0ZW1IYW5kbGUgZGVzdGluYXRp
b24pIGNvbnN0CiAgICAgICAgIG5ldyAoZGVzdGluYXRpb24uZGF0YSArIHNpemVvZihJdGVtVHlw
ZSkpIFN0cm9rZVJlY3QoZ2V0PFN0cm9rZVJlY3Q+KCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQorICAgIGNhc2UgSXRlbVR5cGU6OlN3aXRjaFRvQnVmZmVyOiB7CisgICAgICAgIG5ldyAoZGVz
dGluYXRpb24uZGF0YSArIHNpemVvZihJdGVtVHlwZSkpIFN3aXRjaFRvQnVmZmVyKGdldDxTd2l0
Y2hUb0J1ZmZlcj4oKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgY2FzZSBJdGVtVHlw
ZTo6VHJhbnNsYXRlOiB7CiAgICAgICAgIG5ldyAoZGVzdGluYXRpb24uZGF0YSArIHNpemVvZihJ
dGVtVHlwZSkpIFRyYW5zbGF0ZShnZXQ8VHJhbnNsYXRlPigpKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtODQ5LDExICs4NzMsMTQgQEAgdm9pZCBJdGVtQnVmZmVyOjpjbGVhcigpCiAKIHZvaWQgSXRl
bUJ1ZmZlcjo6c3dhcFdyaXRhYmxlQnVmZmVySWZOZWVkZWQoc2l6ZV90IG51bWJlck9mQnl0ZXMp
CiB7Ci0gICAgaWYgKG1fd3JpdHRlbk51bWJlck9mQnl0ZXMgKyBudW1iZXJPZkJ5dGVzIDw9IG1f
d3JpdGFibGVCdWZmZXIuY2FwYWNpdHkpCisgICAgY29uc3RleHByIGF1dG8gc2l6ZUZvckJ1ZmZl
clN3aXRjaEl0ZW0gPSBzaXplb2YoSXRlbVR5cGUpICsgc2l6ZW9mKFN3aXRjaFRvQnVmZmVyKTsK
KyAgICBpZiAobV93cml0dGVuTnVtYmVyT2ZCeXRlcyArIG51bWJlck9mQnl0ZXMgKyBzaXplRm9y
QnVmZmVyU3dpdGNoSXRlbSA8PSBtX3dyaXRhYmxlQnVmZmVyLmNhcGFjaXR5KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBhdXRvIG5leHRCdWZmZXIgPSBjcmVhdGVJdGVtQnVmZmVyKG51bWJlck9m
Qnl0ZXMpOworICAgIGF1dG8gbmV4dEJ1ZmZlciA9IGNyZWF0ZUl0ZW1CdWZmZXIobnVtYmVyT2ZC
eXRlcyArIHNpemVGb3JCdWZmZXJTd2l0Y2hJdGVtKTsKICAgICBib29sIGhhZFByZXZpb3VzQnVm
ZmVyID0gbV93cml0YWJsZUJ1ZmZlcjsKKyAgICBpZiAoaGFkUHJldmlvdXNCdWZmZXIpCisgICAg
ICAgIHVuY2hlY2tlZEFwcGVuZDxTd2l0Y2hUb0J1ZmZlcj4obmV4dEJ1ZmZlci5pZGVudGlmaWVy
KTsKICAgICBhdXRvIHByZXZpb3VzQnVmZmVyID0gc3RkOjpleGNoYW5nZShtX3dyaXRhYmxlQnVm
ZmVyLCB7IH0pOwogICAgIHByZXZpb3VzQnVmZmVyLmNhcGFjaXR5ID0gc3RkOjpleGNoYW5nZSht
X3dyaXR0ZW5OdW1iZXJPZkJ5dGVzLCAwKTsKICAgICBpZiAoaGFkUHJldmlvdXNCdWZmZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKaW5kZXggNDU3YWVkZGUzMjk2
YTc4MjQ1MDkwZDZhZWUxMTY5MDVhMjNhNGRkYy4uMGM0NjAxZGI1NTlmZDY5ZWYzNWI2MWM1YTI3
NWZkZDIzNzk5NGM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNw
cApAQCAtMTI4LDYgKzEyOCw4IEBAIHNpemVfdCBzaXplT2ZJdGVtSW5CeXRlcyhJdGVtVHlwZSB0
eXBlKQogICAgICAgICByZXR1cm4gc2l6ZW9mKEZpbGxQYXRoKTsKICAgICBjYXNlIEl0ZW1UeXBl
OjpGaWxsRWxsaXBzZToKICAgICAgICAgcmV0dXJuIHNpemVvZihGaWxsRWxsaXBzZSk7CisgICAg
Y2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OgorICAgICAgICByZXR1cm4gc2l6ZW9mKEZsdXNo
Q29udGV4dCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOgogICAgICAgICByZXR1
cm4gc2l6ZW9mKFB1dEltYWdlRGF0YSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZv
ck1lZGlhOgpAQCAtMTQyLDYgKzE0NCw4IEBAIHNpemVfdCBzaXplT2ZJdGVtSW5CeXRlcyhJdGVt
VHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gc2l6ZW9mKFN0cm9rZVBhdGgpOwogICAgIGNhc2Ug
SXRlbVR5cGU6OlN0cm9rZUVsbGlwc2U6CiAgICAgICAgIHJldHVybiBzaXplb2YoU3Ryb2tlRWxs
aXBzZSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U3dpdGNoVG9CdWZmZXI6CisgICAgICAgIHJldHVy
biBzaXplb2YoU3dpdGNoVG9CdWZmZXIpOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsZWFyUmVjdDoK
ICAgICAgICAgcmV0dXJuIHNpemVvZihDbGVhclJlY3QpOwogICAgIGNhc2UgSXRlbVR5cGU6OkJl
Z2luVHJhbnNwYXJlbmN5TGF5ZXI6CkBAIC0xNzYsNiArMTgwLDcgQEAgYm9vbCBpc0RyYXdpbmdJ
dGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFBhdGg6CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6Q2xpcFRvRHJhd2luZ0NvbW1hbmRzOgogICAgIGNhc2UgSXRlbVR5cGU6OkNv
bmNhdGVuYXRlQ1RNOgorICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKICAgICBjYXNl
IEl0ZW1UeXBlOjpSZXN0b3JlOgogICAgIGNhc2UgSXRlbVR5cGU6OlJvdGF0ZToKICAgICBjYXNl
IEl0ZW1UeXBlOjpTYXZlOgpAQCAtMTkwLDYgKzE5NSw3IEBAIGJvb2wgaXNEcmF3aW5nSXRlbShJ
dGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0U3RhdGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tu
ZXNzOgorICAgIGNhc2UgSXRlbVR5cGU6OlN3aXRjaFRvQnVmZmVyOgogICAgIGNhc2UgSXRlbVR5
cGU6OlRyYW5zbGF0ZToKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGNhc2UgSXRlbVR5cGU6
OkJlZ2luVHJhbnNwYXJlbmN5TGF5ZXI6CkBAIC0yODQsNiArMjkwLDcgQEAgYm9vbCBpc0lubGlu
ZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsSW5saW5lUGF0aDoK
ICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSZWN0OgorICAgIGNhc2UgSXRlbVR5cGU6
OkZsdXNoQ29udGV4dDoKICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CiAg
ICAgY2FzZSBJdGVtVHlwZTo6UmVzdG9yZToKICAgICBjYXNlIEl0ZW1UeXBlOjpSb3RhdGU6CkBA
IC0zMDIsNiArMzA5LDcgQEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBj
YXNlIEl0ZW1UeXBlOjpTdHJva2VJbmxpbmVQYXRoOgogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlw
ZTo6U3Ryb2tlUmVjdDoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTd2l0Y2hUb0J1ZmZlcjoKICAgICBj
YXNlIEl0ZW1UeXBlOjpUcmFuc2xhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1UeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCmluZGV4IGNlNGY4NTc5YWM4NzdiYjg4
M2I0OTYzMzMyN2ZhNzhjMjMxNzFjYzYuLjg5NjY0OWY0OTc5Mzc0MGQ4YTQ4NjE2NzgzNDQ0Njdl
YzY0NDg3YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaApAQCAtNzcs
NiArNzcsNyBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAjZW5kaWYKICAgICBG
aWxsUGF0aCwKICAgICBGaWxsRWxsaXBzZSwKKyAgICBGbHVzaENvbnRleHQsCiAgICAgUHV0SW1h
Z2VEYXRhLAogICAgIFBhaW50RnJhbWVGb3JNZWRpYSwKICAgICBTdHJva2VSZWN0LApAQCAtODUs
NiArODYsNyBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAjZW5kaWYKICAgICBT
dHJva2VQYXRoLAogICAgIFN0cm9rZUVsbGlwc2UsCisgICAgU3dpdGNoVG9CdWZmZXIsCiAgICAg
Q2xlYXJSZWN0LAogICAgIEJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIsCiAgICAgRW5kVHJhbnNwYXJl
bmN5TGF5ZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggYThjYzAz
MWVjMzk0NmNmYjM5NWJlNWRmZTZmMzdjYmMzMzVhYTc2Yy4uYTQ2YzZjODE5MDg4NTZhZGNjNzA4
YWM1MzU5MzRhNmIxYzc0YzMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNw
cApAQCAtOTc4LDYgKzk3OCwyOCBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgQXBwbHlEZXZpY2VTY2FsZUZhY3RvciYgaXRlbQogICAgIHJldHVy
biB0czsKIH0KIAordm9pZCBGbHVzaENvbnRleHQ6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNv
bnN0Cit7CisgICAgLy8gSGFuZGxlZCBieSBjbGllbnQuCit9CisKK3N0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGbHVzaENvbnRleHQmIGl0ZW0pCit7
CisgICAgdHMuZHVtcFByb3BlcnR5KCJpZGVudGlmaWVyIiwgaXRlbS5pZGVudGlmaWVyKCkpOwor
ICAgIHJldHVybiB0czsKK30KKwordm9pZCBTd2l0Y2hUb0J1ZmZlcjo6YXBwbHkoR3JhcGhpY3ND
b250ZXh0JikgY29uc3QKK3sKKyAgICAvLyBIYW5kbGVkIGJ5IGNsaWVudC4KK30KKworc3RhdGlj
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFN3aXRjaFRvQnVm
ZmVyJiBpdGVtKQoreworICAgIHRzLmR1bXBQcm9wZXJ0eSgiaWRlbnRpZmllciIsIGl0ZW0uaWRl
bnRpZmllcigpKTsKKyAgICByZXR1cm4gdHM7Cit9CisKIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlw
ZSkgewpAQCAtMTAyOCw2ICsxMDUwLDcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBl
OjpGaWxsUGF0aDogdHMgPDwgImZpbGwtcGF0aCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6
OkZpbGxFbGxpcHNlOiB0cyA8PCAiZmlsbC1lbGxpcHNlIjsgYnJlYWs7CisgICAgY2FzZSBJdGVt
VHlwZTo6Rmx1c2hDb250ZXh0OiB0cyA8PCAiZmx1c2gtY29udGV4dCI7IGJyZWFrOwogICAgIGNh
c2UgSXRlbVR5cGU6OlB1dEltYWdlRGF0YTogdHMgPDwgInB1dC1pbWFnZS1kYXRhIjsgYnJlYWs7
CiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOiB0cyA8PCAicGFpbnQtZnJh
bWUtZm9yLW1lZGlhIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlUmVjdDogdHMg
PDwgInN0cm9rZS1yZWN0IjsgYnJlYWs7CkBAIC0xMDM2LDYgKzEwNTksNyBAQCBzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVR5cGUgdHlwZSkKICNlbmRp
ZgogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZVBhdGg6IHRzIDw8ICJzdHJva2UtcGF0aCI7IGJy
ZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZUVsbGlwc2U6IHRzIDw8ICJzdHJva2UtZWxs
aXBzZSI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlN3aXRjaFRvQnVmZmVyOiB0cyA8PCAi
c3dpdGNoLXRvLWl0ZW0tYnVmZmVyIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xlYXJS
ZWN0OiB0cyA8PCAiY2xlYXItcmVjdCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXI6IHRzIDw8ICJiZWdpbi10cmFuc3BhcmVuY3ktbGF5ZXIiOyBicmVh
azsKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRUcmFuc3BhcmVuY3lMYXllcjogdHMgPDwgImVuZC10
cmFuc3BhcmVuY3ktbGF5ZXIiOyBicmVhazsKQEAgLTExODUsNiArMTIwOSw5IEBAIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1IYW5kbGUgaXRlbSkKICAgICBjYXNl
IEl0ZW1UeXBlOjpGaWxsRWxsaXBzZToKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8RmlsbEVsbGlw
c2U+KCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoK
KyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8Rmx1c2hDb250ZXh0PigpOworICAgICAgICBicmVhazsK
ICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFnZURhdGE6CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0
PFB1dEltYWdlRGF0YT4oKTsKICAgICAgICAgYnJlYWs7CkBAIC0xMjA1LDYgKzEyMzIsOSBAQCBU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtSGFuZGxlIGl0ZW0pCiAg
ICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlRWxsaXBzZToKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8
U3Ryb2tlRWxsaXBzZT4oKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U3dp
dGNoVG9CdWZmZXI6CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFN3aXRjaFRvQnVmZmVyPigpOwor
ICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGVhclJlY3Q6CiAgICAgICAgIHRz
IDw8IGl0ZW0uZ2V0PENsZWFyUmVjdD4oKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuaAppbmRleCAxZjkwOWIwNGVlZmNkODc0OTJiNzAxN2E4NjBhN2ZlMDZh
ZTkxNjBjLi4xMjJkNWYxOTE1ZDMwNjVlNmJiYzgwYTVlYTY5YjZmYTkwNTk5OGNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTI2MTYsNiArMjYxNiw1MCBAQCBwcml2YXRl
OgogICAgIGZsb2F0IG1fc2NhbGVGYWN0b3IgeyAxIH07CiB9OwogCitjbGFzcyBGbHVzaENvbnRl
eHQgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJ
dGVtVHlwZTo6Rmx1c2hDb250ZXh0OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGlu
ZUl0ZW0gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0g
ZmFsc2U7CisKKyAgICBGbHVzaENvbnRleHQoRmx1c2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCisg
ICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgeworICAgIH0KKworICAgIEZs
dXNoSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9
CisKKyAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworCisgICAgT3B0aW9u
YWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCB7
IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGdsb2JhbEJv
dW5kcygpIGNvbnN0IHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQorCitwcml2YXRlOgorICAgIEZs
dXNoSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9OworCitjbGFzcyBTd2l0Y2hUb0J1ZmZlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1U
eXBlOjpTd2l0Y2hUb0J1ZmZlcjsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJ
dGVtID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZh
bHNlOworCisgICAgU3dpdGNoVG9CdWZmZXIoSXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmll
cikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICB7CisgICAgfQorCisg
ICAgSXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQorCisgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKwor
ICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0
JikgY29uc3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CisgICAgT3B0aW9uYWw8RmxvYXRSZWN0
PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKworcHJpdmF0
ZToKKyAgICBJdGVtQnVmZmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9OworCiBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBJdGVtSGFuZGxlKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgRGlzcGxheUxpc3QKQEAgLTI2NzQsNiArMjcxOCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlPiB7CiAjZW5kaWYKICAgICBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxQYXRoLAogICAgIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbEVsbGlwc2UsCisgICAgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpGbHVzaENvbnRleHQsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpQdXRJbWFnZURhdGEsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpQYWludEZyYW1lRm9yTWVkaWEsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpTdHJva2VSZWN0LApAQCAtMjY4Miw2ICsyNzI3LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICNlbmRpZgogICAgIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlUGF0aCwKICAgICBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN0cm9rZUVsbGlwc2UsCisgICAgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTd2l0Y2hUb0J1ZmZlciwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OkNsZWFyUmVjdCwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpFbmRUcmFuc3BhcmVuY3lMYXllciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggNzhlMjY1ZGJmNTRl
OWJkMjRiOWQ0MWI3MzkwMDk3MDIxNDkxZmE5MS4uZDQ2ZjBjOWNiOTVjM2E0MDM2NGFlMWVmNGMy
MDQ2MjA0ZTBhZTEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTgxLDYgKzgxLDE2IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChpdGVtLmlz
PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaENvbnRleHQ+KCkpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQgeWV0LgorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoaXRlbS5pczxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U3dp
dGNoVG9CdWZmZXI+KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQg
eWV0LgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAo
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmFwcGx5UmVzb3VyY2VJdGVtKGl0ZW0sIGNvbnRleHQp
KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTE1OSw2ICsxNjksNyBAQCBwcml2YXRl
OgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbElubGlu
ZVBhdGg6CiAjZW5kaWYKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkZpbGxSZWN0OgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6Rmx1c2hDb250ZXh0OgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6UmVzdG9yZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlJvdGF0ZToKQEAgLTE3Nyw2ICsxODgsNyBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlSW5saW5lUGF0aDoK
ICNlbmRpZgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ry
b2tlUmVjdDoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN3
aXRjaFRvQnVmZmVyOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6VHJhbnNsYXRlOiB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCBkOWVjZjU4ZDFh
MmYxZjlhOWZkZGI0M2NjN2Y3YzdjNzUzMDg1MDM4Li5mNWMzNTVkMTdjMWNlNTE3YWJjZWIxZTU1
MzRkMWFkNzRhZjYxNGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMjczLDYg
KzI3Myw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6OkZpbGxJbmxpbmVQYXRoOgogI2VuZGlmCiAgICAgICAgIGNhc2UgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsUmVjdDoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKICAgICAgICAgY2FzZSBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToKICAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlJlc3RvcmU6CiAgICAgICAgIGNhc2Ug
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpSb3RhdGU6CkBAIC0yOTEsNiArMjkyLDcg
QEAgcHJvdGVjdGVkOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6U3Ryb2tlSW5saW5lUGF0aDoKICNlbmRpZgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlUmVjdDoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlN3aXRjaFRvQnVmZmVyOgogICAgICAgICBjYXNlIFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6VHJhbnNsYXRlOgogICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413468</attachid>
            <date>2020-11-06 12:49:22 -0800</date>
            <delta_ts>2020-11-06 13:28:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218588-20201106124921.patch</filename>
            <type>text/plain</type>
            <size>19906</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjVhMDY4YjMwZjEzN2E5
ZThhNDhjNDdiNzg2MzRiNzU3Yzk3ZjYzMC4uNGE2OWYxZWNjM2U1MzRiZDk3OGNlODU4ZjczODJj
MDdkNjMyZmM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTExLTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBuZXcgZGlz
cGxheSBsaXN0IGl0ZW0gdHlwZXMgaW4gcHJlcGFyYXRpb24gZm9yIHdlYmtpdC5vcmcvYi8yMTg0
MjYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJv
ZHVjZSB0aGVzZSBuZXcgaXRlbSB0eXBlcy4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjphcHBlbmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1C
dWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmFw
cGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpkZXN0cm95
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpjb3B5VG8pOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6OnN3YXBXcml0YWJsZUJ1
ZmZlcklmTmVlZGVkKToKKworICAgICAgICBMZXQgYEl0ZW1CdWZmZXJgIGF1dG9tYXRpY2FsbHkg
YXBwZW5kICJzd2l0Y2ggdG8gYnVmZmVyIiBpdGVtcyB3aGVuZXZlciBpdCBydW5zIG91dCBvZiBz
cGFjZSBpbiBpdHMgY3VycmVudAorICAgICAgICB3cml0YWJsZSBidWZmZXIsIGFuZCBlaXRoZXIg
YWxsb2NhdGVzIGEgbmV3IGJ1ZmZlciBvciBjYWxscyBpbnRvIHRoZSBjbGllbnQgdG8gZ3JhYiBh
IG5ldyBidWZmZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
c2l6ZU9mSXRlbUluQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzRHJh
d2luZ0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzSW5saW5lSXRlbSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRl
bVR5cGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hDb250
ZXh0OjphcHBseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0
b3I8PCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U3dpdGNoVG9CdWZmZXI6OmFw
cGx5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoQ29u
dGV4dDo6Rmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVz
aENvbnRleHQ6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkZsdXNoQ29udGV4dDo6bG9jYWxCb3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUxpc3Q6OkZsdXNoQ29udGV4dDo6Z2xvYmFsQm91bmRzIGNvbnN0KToKKworICAgICAg
ICBBZGQgYEZsdXNoQ29udGV4dGAsIHdoaWNoIHdpbGwgaW5kaWNhdGUgdG8gdGhlIGNsaWVudCB0
aGF0IGl0IHNob3VsZCBmbHVzaCBpdHMgYmFja2luZyBncmFwaGljcyBjb250ZXh0LiBUaGUKKyAg
ICAgICAgb25seSBkYXRhIGluIHRoaXMgaXRlbSBpcyBhIGBEaXNwbGF5TGlzdDo6Rmx1c2hJZGVu
dGlmaWVyYCwgd2hpY2ggd2lsbCBiZSB1c2VkIGJ5IHRoZSBkaXNwbGF5IGxpc3QgY2xpZW50IHRv
CisgICAgICAgIGNvb3JkaW5hdGUgZmx1c2ggdGltaW5nLgorCisgICAgICAgIChXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6U3dpdGNoVG9CdWZmZXI6OlN3aXRjaFRvQnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpTd2l0Y2hUb0J1ZmZlcjo6aWRlbnRpZmllciBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U3dpdGNoVG9CdWZmZXI6OmxvY2FsQm91bmRz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpTd2l0Y2hUb0J1ZmZlcjo6
Z2xvYmFsQm91bmRzIGNvbnN0KToKKworICAgICAgICBBZGQgYW4gaXRlbSB0byByZXByZXNlbnQg
c3dpdGNoaW5nIHRvIGEgbmV3IGl0ZW0gYnVmZmVyLiBUaGlzIGlzIGF1dG9tYXRpY2FsbHkgYXBw
ZW5kZWQgYnkgdGhlIGRpc3BsYXkgbGlzdAorICAgICAgICBpdHNlbGYgd2hlbiBpdCBydW5zIG91
dCBvZiBzcGFjZSBvbiB0aGUgY3VycmVudCB3cml0YWJsZSBidWZmZXIsIGFuZCB3aWxsIGFsbG93
IGRpc3BsYXkgbGlzdCBjbGllbnRzIChpbgorICAgICAgICBwYXJ0aWN1bGFyLCB0aGUgcmVtb3Rl
IHJlbmRlcmluZyBiYWNrZW5kIGluIHRoZSBHUFUgcHJvY2VzcykgdG8gc2VhbWxlc3NseSBjb250
aW51ZSByZWFkaW5nIGRpc3BsYXkgbGlzdCBpdGVtcworICAgICAgICB3aGVuIGFsbCBpdGVtIGRh
dGEgaW4gYSBkaXNwbGF5IGxpc3QgaXRlbSBidWZmZXIgaGFzIGJlZW4gZXhoYXVzdGVkLgorCiAy
MDIwLTExLTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vdmUgRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIgaW50byBXZWJDb3JlIGFzIERpc3Bs
YXlMaXN0OjpGbHVzaElkZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTU5Y2E2MzM5ZjliYTgwZjlhZTYz
ZDY5ZGUyNzhlNTFhMjlkOTBlNy4uNDc0ZjU5MDA3MjA3Y2ZiMzU2ODQ4YjlhNzU1NWI3ZmFkNGVl
YjcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0xMS0wNCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbmV3IGRpc3BsYXkgbGlz
dCBpdGVtIHR5cGVzIGluIHByZXBhcmF0aW9uIGZvciB3ZWJraXQub3JnL2IvMjE4NDI2CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1ODgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbHkgdHJlYXQg
dGhlc2UgbmV3IGl0ZW1zIGFzIG5vLW9wcyBmb3IgdGhlIHRpbWUgYmVpbmcuIFNlZSBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisKIDIwMjAtMTEtMDYgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBEaXNwbGF5
TGlzdEZsdXNoSWRlbnRpZmllciBpbnRvIFdlYkNvcmUgYXMgRGlzcGxheUxpc3Q6OkZsdXNoSWRl
bnRpZmllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKaW5kZXggNDA2MWY4YzI4YWU1OGEyNWU5
YTI1OGRiMDBiMzYwYTYwYWU2Y2Q1Zi4uNDYyNTNkOTllZjBiMzA4ZjA2YWEzYTUwMjRhODJkYTAx
ODUyMGQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCkBAIC0yNzcsNiArMjc3LDggQEAg
dm9pZCBEaXNwbGF5TGlzdDo6YXBwZW5kKEl0ZW1IYW5kbGUgaXRlbSkKICAgICAgICAgcmV0dXJu
IGFwcGVuZDxGaWxsUGF0aD4oaXRlbS5nZXQ8RmlsbFBhdGg+KCkpOwogICAgIGNhc2UgSXRlbVR5
cGU6OkZpbGxFbGxpcHNlOgogICAgICAgICByZXR1cm4gYXBwZW5kPEZpbGxFbGxpcHNlPihpdGVt
LmdldDxGaWxsRWxsaXBzZT4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0Ogor
ICAgICAgICByZXR1cm4gYXBwZW5kPEZsdXNoQ29udGV4dD4oaXRlbS5nZXQ8Rmx1c2hDb250ZXh0
PigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFnZURhdGE6CiAgICAgICAgIHJldHVybiBh
cHBlbmQ8UHV0SW1hZ2VEYXRhPihpdGVtLmdldDxQdXRJbWFnZURhdGE+KCkpOwogICAgIGNhc2Ug
SXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToKQEAgLTI5MSw2ICsyOTMsOCBAQCB2b2lkIERp
c3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAgICAgICByZXR1cm4gYXBwZW5k
PFN0cm9rZVBhdGg+KGl0ZW0uZ2V0PFN0cm9rZVBhdGg+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6
OlN0cm9rZUVsbGlwc2U6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8U3Ryb2tlRWxsaXBzZT4oaXRl
bS5nZXQ8U3Ryb2tlRWxsaXBzZT4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U3dpdGNoVG9CdWZm
ZXI6CisgICAgICAgIHJldHVybiBhcHBlbmQ8U3dpdGNoVG9CdWZmZXI+KGl0ZW0uZ2V0PFN3aXRj
aFRvQnVmZmVyPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGVhclJlY3Q6CiAgICAgICAgIHJl
dHVybiBhcHBlbmQ8Q2xlYXJSZWN0PihpdGVtLmdldDxDbGVhclJlY3Q+KCkpOwogICAgIGNhc2Ug
SXRlbVR5cGU6OkJlZ2luVHJhbnNwYXJlbmN5TGF5ZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4IGQyMTRiYzFlNjZmMWI1ZjAxMWU5YWI2NDRjNzhl
NDIwYzRlYmM0M2EuLjE4MzJhMmQ0YjNhZGU5NWMzMDVkYjAyNTBhZWUwOTk1ZGVkZDkwZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCkBAIC0yMzAsNiAr
MjMwLDEwIEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
KQogICAgICAgICBnZXQ8RmlsbEVsbGlwc2U+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OiB7CisgICAgICAg
IGdldDxGbHVzaENvbnRleHQ+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOiB7CiAgICAgICAgIGdldDxQdXRJ
bWFnZURhdGE+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKQEAgLTI1Niw2ICsy
NjAsMTAgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQp
CiAgICAgICAgIGdldDxTdHJva2VFbGxpcHNlPigpLmFwcGx5KGNvbnRleHQpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6OlN3aXRjaFRvQnVmZmVyOiB7CisgICAg
ICAgIGdldDxTd2l0Y2hUb0J1ZmZlcj4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpDbGVhclJlY3Q6IHsKICAgICAgICAgZ2V0PENs
ZWFyUmVjdD4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDU2LDYgKzQ2
NCwxMCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRlc3Ryb3koKQogICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxGaWxsUmVjdD46OnZhbHVlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6IHsKKyAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8Rmx1c2hD
b250ZXh0Pjo6dmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGNhc2UgSXRlbVR5
cGU6OlBhaW50RnJhbWVGb3JNZWRpYTogewogICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
dHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxQYWludEZyYW1lRm9yTWVkaWE+Ojp2YWx1ZSk7CiAgICAg
ICAgIHJldHVybjsKQEAgLTUyMiw2ICs1MzQsMTAgQEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95
KCkKICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8
U3Ryb2tlUmVjdD46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEl0
ZW1UeXBlOjpTd2l0Y2hUb0J1ZmZlcjogeworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
dHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTd2l0Y2hUb0J1ZmZlcj46OnZhbHVlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpUcmFuc2xhdGU6IHsKICAgICAgICAg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VHJhbnNsYXRlPjo6
dmFsdWUpOwogICAgICAgICByZXR1cm47CkBAIC03MDIsNiArNzE4LDEwIEBAIHZvaWQgSXRlbUhh
bmRsZTo6Y29weVRvKEl0ZW1IYW5kbGUgZGVzdGluYXRpb24pIGNvbnN0CiAgICAgICAgIG5ldyAo
ZGVzdGluYXRpb24uZGF0YSArIHNpemVvZihJdGVtVHlwZSkpIEZpbGxSZWN0KGdldDxGaWxsUmVj
dD4oKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hD
b250ZXh0OiB7CisgICAgICAgIG5ldyAoZGVzdGluYXRpb24uZGF0YSArIHNpemVvZihJdGVtVHlw
ZSkpIEZsdXNoQ29udGV4dChnZXQ8Rmx1c2hDb250ZXh0PigpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6IHsKICAgICAgICAg
bmV3IChkZXN0aW5hdGlvbi5kYXRhICsgc2l6ZW9mKEl0ZW1UeXBlKSkgUGFpbnRGcmFtZUZvck1l
ZGlhKGdldDxQYWludEZyYW1lRm9yTWVkaWE+KCkpOwogICAgICAgICByZXR1cm47CkBAIC03Njgs
NiArNzg4LDEwIEBAIHZvaWQgSXRlbUhhbmRsZTo6Y29weVRvKEl0ZW1IYW5kbGUgZGVzdGluYXRp
b24pIGNvbnN0CiAgICAgICAgIG5ldyAoZGVzdGluYXRpb24uZGF0YSArIHNpemVvZihJdGVtVHlw
ZSkpIFN0cm9rZVJlY3QoZ2V0PFN0cm9rZVJlY3Q+KCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQorICAgIGNhc2UgSXRlbVR5cGU6OlN3aXRjaFRvQnVmZmVyOiB7CisgICAgICAgIG5ldyAoZGVz
dGluYXRpb24uZGF0YSArIHNpemVvZihJdGVtVHlwZSkpIFN3aXRjaFRvQnVmZmVyKGdldDxTd2l0
Y2hUb0J1ZmZlcj4oKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgY2FzZSBJdGVtVHlw
ZTo6VHJhbnNsYXRlOiB7CiAgICAgICAgIG5ldyAoZGVzdGluYXRpb24uZGF0YSArIHNpemVvZihJ
dGVtVHlwZSkpIFRyYW5zbGF0ZShnZXQ8VHJhbnNsYXRlPigpKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtODQ5LDExICs4NzMsMTQgQEAgdm9pZCBJdGVtQnVmZmVyOjpjbGVhcigpCiAKIHZvaWQgSXRl
bUJ1ZmZlcjo6c3dhcFdyaXRhYmxlQnVmZmVySWZOZWVkZWQoc2l6ZV90IG51bWJlck9mQnl0ZXMp
CiB7Ci0gICAgaWYgKG1fd3JpdHRlbk51bWJlck9mQnl0ZXMgKyBudW1iZXJPZkJ5dGVzIDw9IG1f
d3JpdGFibGVCdWZmZXIuY2FwYWNpdHkpCisgICAgY29uc3RleHByIGF1dG8gc2l6ZUZvckJ1ZmZl
clN3aXRjaEl0ZW0gPSBzaXplb2YoSXRlbVR5cGUpICsgc2l6ZW9mKFN3aXRjaFRvQnVmZmVyKTsK
KyAgICBpZiAobV93cml0dGVuTnVtYmVyT2ZCeXRlcyArIG51bWJlck9mQnl0ZXMgKyBzaXplRm9y
QnVmZmVyU3dpdGNoSXRlbSA8PSBtX3dyaXRhYmxlQnVmZmVyLmNhcGFjaXR5KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBhdXRvIG5leHRCdWZmZXIgPSBjcmVhdGVJdGVtQnVmZmVyKG51bWJlck9m
Qnl0ZXMpOworICAgIGF1dG8gbmV4dEJ1ZmZlciA9IGNyZWF0ZUl0ZW1CdWZmZXIobnVtYmVyT2ZC
eXRlcyArIHNpemVGb3JCdWZmZXJTd2l0Y2hJdGVtKTsKICAgICBib29sIGhhZFByZXZpb3VzQnVm
ZmVyID0gbV93cml0YWJsZUJ1ZmZlcjsKKyAgICBpZiAoaGFkUHJldmlvdXNCdWZmZXIpCisgICAg
ICAgIHVuY2hlY2tlZEFwcGVuZDxTd2l0Y2hUb0J1ZmZlcj4obmV4dEJ1ZmZlci5pZGVudGlmaWVy
KTsKICAgICBhdXRvIHByZXZpb3VzQnVmZmVyID0gc3RkOjpleGNoYW5nZShtX3dyaXRhYmxlQnVm
ZmVyLCB7IH0pOwogICAgIHByZXZpb3VzQnVmZmVyLmNhcGFjaXR5ID0gc3RkOjpleGNoYW5nZSht
X3dyaXR0ZW5OdW1iZXJPZkJ5dGVzLCAwKTsKICAgICBpZiAoaGFkUHJldmlvdXNCdWZmZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RJdGVtVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKaW5kZXggNGJhYTllYmYxMjll
OTZjOTkxNTk1OWU3ODBlNjk5YzM0M2RmNWU3Yi4uODlmZDZhZjE0ZDUwODRmZDNmYWIwODY2ODY0
ZWY5ZGM1Zjg1NjhhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNw
cApAQCAtMTI4LDYgKzEyOCw4IEBAIHNpemVfdCBzaXplT2ZJdGVtSW5CeXRlcyhJdGVtVHlwZSB0
eXBlKQogICAgICAgICByZXR1cm4gc2l6ZW9mKEZpbGxQYXRoKTsKICAgICBjYXNlIEl0ZW1UeXBl
OjpGaWxsRWxsaXBzZToKICAgICAgICAgcmV0dXJuIHNpemVvZihGaWxsRWxsaXBzZSk7CisgICAg
Y2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OgorICAgICAgICByZXR1cm4gc2l6ZW9mKEZsdXNo
Q29udGV4dCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOgogICAgICAgICByZXR1
cm4gc2l6ZW9mKFB1dEltYWdlRGF0YSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZv
ck1lZGlhOgpAQCAtMTQyLDYgKzE0NCw4IEBAIHNpemVfdCBzaXplT2ZJdGVtSW5CeXRlcyhJdGVt
VHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gc2l6ZW9mKFN0cm9rZVBhdGgpOwogICAgIGNhc2Ug
SXRlbVR5cGU6OlN0cm9rZUVsbGlwc2U6CiAgICAgICAgIHJldHVybiBzaXplb2YoU3Ryb2tlRWxs
aXBzZSk7CisgICAgY2FzZSBJdGVtVHlwZTo6U3dpdGNoVG9CdWZmZXI6CisgICAgICAgIHJldHVy
biBzaXplb2YoU3dpdGNoVG9CdWZmZXIpOwogICAgIGNhc2UgSXRlbVR5cGU6OkNsZWFyUmVjdDoK
ICAgICAgICAgcmV0dXJuIHNpemVvZihDbGVhclJlY3QpOwogICAgIGNhc2UgSXRlbVR5cGU6OkJl
Z2luVHJhbnNwYXJlbmN5TGF5ZXI6CkBAIC0xNzYsNiArMTgwLDcgQEAgYm9vbCBpc0RyYXdpbmdJ
dGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFBhdGg6CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6Q2xpcFRvRHJhd2luZ0NvbW1hbmRzOgogICAgIGNhc2UgSXRlbVR5cGU6OkNv
bmNhdGVuYXRlQ1RNOgorICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKICAgICBjYXNl
IEl0ZW1UeXBlOjpSZXN0b3JlOgogICAgIGNhc2UgSXRlbVR5cGU6OlJvdGF0ZToKICAgICBjYXNl
IEl0ZW1UeXBlOjpTYXZlOgpAQCAtMTkwLDYgKzE5NSw3IEBAIGJvb2wgaXNEcmF3aW5nSXRlbShJ
dGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OlNldE1pdGVyTGltaXQ6CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6U2V0U3RhdGU6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tu
ZXNzOgorICAgIGNhc2UgSXRlbVR5cGU6OlN3aXRjaFRvQnVmZmVyOgogICAgIGNhc2UgSXRlbVR5
cGU6OlRyYW5zbGF0ZToKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGNhc2UgSXRlbVR5cGU6
OkJlZ2luVHJhbnNwYXJlbmN5TGF5ZXI6CkBAIC0yODQsNiArMjkwLDcgQEAgYm9vbCBpc0lubGlu
ZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsSW5saW5lUGF0aDoK
ICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSZWN0OgorICAgIGNhc2UgSXRlbVR5cGU6
OkZsdXNoQ29udGV4dDoKICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CiAg
ICAgY2FzZSBJdGVtVHlwZTo6UmVzdG9yZToKICAgICBjYXNlIEl0ZW1UeXBlOjpSb3RhdGU6CkBA
IC0zMDIsNiArMzA5LDcgQEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBj
YXNlIEl0ZW1UeXBlOjpTdHJva2VJbmxpbmVQYXRoOgogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlw
ZTo6U3Ryb2tlUmVjdDoKKyAgICBjYXNlIEl0ZW1UeXBlOjpTd2l0Y2hUb0J1ZmZlcjoKICAgICBj
YXNlIEl0ZW1UeXBlOjpUcmFuc2xhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1UeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCmluZGV4IGNlNGY4NTc5YWM4NzdiYjg4
M2I0OTYzMzMyN2ZhNzhjMjMxNzFjYzYuLjg5NjY0OWY0OTc5Mzc0MGQ4YTQ4NjE2NzgzNDQ0Njdl
YzY0NDg3YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaApAQCAtNzcs
NiArNzcsNyBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAjZW5kaWYKICAgICBG
aWxsUGF0aCwKICAgICBGaWxsRWxsaXBzZSwKKyAgICBGbHVzaENvbnRleHQsCiAgICAgUHV0SW1h
Z2VEYXRhLAogICAgIFBhaW50RnJhbWVGb3JNZWRpYSwKICAgICBTdHJva2VSZWN0LApAQCAtODUs
NiArODYsNyBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAjZW5kaWYKICAgICBT
dHJva2VQYXRoLAogICAgIFN0cm9rZUVsbGlwc2UsCisgICAgU3dpdGNoVG9CdWZmZXIsCiAgICAg
Q2xlYXJSZWN0LAogICAgIEJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIsCiAgICAgRW5kVHJhbnNwYXJl
bmN5TGF5ZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5kZXggNWVjOGMy
ZWEwMDQ3MjM3NDBhMjMzMzQwY2NlOGMyZGE0ZmMyOTU5Zi4uZjExMWJiMmU5MTMzMmRiODZkOGVl
N2JlNDdmMTFmMGZiN2Y3YjcxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNw
cApAQCAtOTgzLDYgKzk4MywyOCBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgQXBwbHlEZXZpY2VTY2FsZUZhY3RvciYgaXRlbQogICAgIHJldHVy
biB0czsKIH0KIAordm9pZCBGbHVzaENvbnRleHQ6OmFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNv
bnN0Cit7CisgICAgLy8gSGFuZGxlZCBieSBjbGllbnQuCit9CisKK3N0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGbHVzaENvbnRleHQmIGl0ZW0pCit7
CisgICAgdHMuZHVtcFByb3BlcnR5KCJpZGVudGlmaWVyIiwgaXRlbS5pZGVudGlmaWVyKCkpOwor
ICAgIHJldHVybiB0czsKK30KKwordm9pZCBTd2l0Y2hUb0J1ZmZlcjo6YXBwbHkoR3JhcGhpY3ND
b250ZXh0JikgY29uc3QKK3sKKyAgICAvLyBIYW5kbGVkIGJ5IGNsaWVudC4KK30KKworc3RhdGlj
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFN3aXRjaFRvQnVm
ZmVyJiBpdGVtKQoreworICAgIHRzLmR1bXBQcm9wZXJ0eSgiaWRlbnRpZmllciIsIGl0ZW0uaWRl
bnRpZmllcigpKTsKKyAgICByZXR1cm4gdHM7Cit9CisKIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlw
ZSkgewpAQCAtMTAzMyw2ICsxMDU1LDcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBl
OjpGaWxsUGF0aDogdHMgPDwgImZpbGwtcGF0aCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6
OkZpbGxFbGxpcHNlOiB0cyA8PCAiZmlsbC1lbGxpcHNlIjsgYnJlYWs7CisgICAgY2FzZSBJdGVt
VHlwZTo6Rmx1c2hDb250ZXh0OiB0cyA8PCAiZmx1c2gtY29udGV4dCI7IGJyZWFrOwogICAgIGNh
c2UgSXRlbVR5cGU6OlB1dEltYWdlRGF0YTogdHMgPDwgInB1dC1pbWFnZS1kYXRhIjsgYnJlYWs7
CiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOiB0cyA8PCAicGFpbnQtZnJh
bWUtZm9yLW1lZGlhIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlUmVjdDogdHMg
PDwgInN0cm9rZS1yZWN0IjsgYnJlYWs7CkBAIC0xMDQxLDYgKzEwNjQsNyBAQCBzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVR5cGUgdHlwZSkKICNlbmRp
ZgogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZVBhdGg6IHRzIDw8ICJzdHJva2UtcGF0aCI7IGJy
ZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlN0cm9rZUVsbGlwc2U6IHRzIDw8ICJzdHJva2UtZWxs
aXBzZSI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OlN3aXRjaFRvQnVmZmVyOiB0cyA8PCAi
c3dpdGNoLXRvLWl0ZW0tYnVmZmVyIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xlYXJS
ZWN0OiB0cyA8PCAiY2xlYXItcmVjdCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkJlZ2lu
VHJhbnNwYXJlbmN5TGF5ZXI6IHRzIDw8ICJiZWdpbi10cmFuc3BhcmVuY3ktbGF5ZXIiOyBicmVh
azsKICAgICBjYXNlIEl0ZW1UeXBlOjpFbmRUcmFuc3BhcmVuY3lMYXllcjogdHMgPDwgImVuZC10
cmFuc3BhcmVuY3ktbGF5ZXIiOyBicmVhazsKQEAgLTExOTAsNiArMTIxNCw5IEBAIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1IYW5kbGUgaXRlbSkKICAgICBjYXNl
IEl0ZW1UeXBlOjpGaWxsRWxsaXBzZToKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8RmlsbEVsbGlw
c2U+KCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoK
KyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8Rmx1c2hDb250ZXh0PigpOworICAgICAgICBicmVhazsK
ICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFnZURhdGE6CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0
PFB1dEltYWdlRGF0YT4oKTsKICAgICAgICAgYnJlYWs7CkBAIC0xMjEwLDYgKzEyMzcsOSBAQCBU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtSGFuZGxlIGl0ZW0pCiAg
ICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlRWxsaXBzZToKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8
U3Ryb2tlRWxsaXBzZT4oKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6U3dp
dGNoVG9CdWZmZXI6CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFN3aXRjaFRvQnVmZmVyPigpOwor
ICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGVhclJlY3Q6CiAgICAgICAgIHRz
IDw8IGl0ZW0uZ2V0PENsZWFyUmVjdD4oKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuaAppbmRleCAzMmRlOGFmMDE2MzkwMzIzMGMwYzAzODRlNmViMDEwZmVi
YzNhODhhLi5jMGU2YTQ1MzU1M2VhMGMyZDQyM2M0MjUyYWU0N2YzMmQ4MmJmZWZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTI1ODMsNiArMjU4Myw1MCBAQCBwcml2YXRl
OgogICAgIGZsb2F0IG1fc2NhbGVGYWN0b3IgeyAxIH07CiB9OwogCitjbGFzcyBGbHVzaENvbnRl
eHQgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJ
dGVtVHlwZTo6Rmx1c2hDb250ZXh0OworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGlu
ZUl0ZW0gPSB0cnVlOworICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0g
ZmFsc2U7CisKKyAgICBGbHVzaENvbnRleHQoRmx1c2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCisg
ICAgICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgeworICAgIH0KKworICAgIEZs
dXNoSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9
CisKKyAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworCisgICAgT3B0aW9u
YWw8RmxvYXRSZWN0PiBsb2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCB7
IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGdsb2JhbEJv
dW5kcygpIGNvbnN0IHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQorCitwcml2YXRlOgorICAgIEZs
dXNoSWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9OworCitjbGFzcyBTd2l0Y2hUb0J1ZmZlciB7
CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1U
eXBlOjpTd2l0Y2hUb0J1ZmZlcjsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJ
dGVtID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZh
bHNlOworCisgICAgU3dpdGNoVG9CdWZmZXIoSXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmll
cikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICB7CisgICAgfQorCisg
ICAgSXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQorCisgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKwor
ICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0
JikgY29uc3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CisgICAgT3B0aW9uYWw8RmxvYXRSZWN0
PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKworcHJpdmF0
ZToKKyAgICBJdGVtQnVmZmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9OworCiBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBJdGVtSGFuZGxlKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgRGlzcGxheUxpc3QKQEAgLTI2NDEsNiArMjY4NSw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlPiB7CiAjZW5kaWYKICAgICBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxQYXRoLAogICAgIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbEVsbGlwc2UsCisgICAgV2ViQ29yZTo6RGlzcGxheUxp
c3Q6Okl0ZW1UeXBlOjpGbHVzaENvbnRleHQsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpQdXRJbWFnZURhdGEsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpQYWludEZyYW1lRm9yTWVkaWEsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpTdHJva2VSZWN0LApAQCAtMjY0OSw2ICsyNjk0LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU+IHsKICNlbmRpZgogICAgIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3Ryb2tlUGF0aCwKICAgICBXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN0cm9rZUVsbGlwc2UsCisgICAgV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Okl0ZW1UeXBlOjpTd2l0Y2hUb0J1ZmZlciwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OkNsZWFyUmVjdCwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkJlZ2luVHJhbnNwYXJlbmN5TGF5ZXIsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpFbmRUcmFuc3BhcmVuY3lMYXllciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggNzhhNDcyM2VhMTEy
NzdhZDZhYzJjNjJmMTE5NjA4MDQyOGUzMWZmNi4uYWFmNjQyOWYwYWFkMmQ1ZGIyZWVhNDNiMDc0
NzA4ZDkwYzdhN2MzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTgyLDYgKzgyLDE2IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChpdGVtLmlz
PFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaENvbnRleHQ+KCkpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQgeWV0LgorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoaXRlbS5pczxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U3dp
dGNoVG9CdWZmZXI+KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQg
eWV0LgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKwogICAgICAgICByZXR1
cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmFwcGx5TWVkaWFJdGVtKGl0ZW0sIGNvbnRleHQp
OwogICAgIH0KIApAQCAtMTU2LDYgKzE2Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsSW5saW5lUGF0aDoKICNlbmRpZgogICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFJlY3Q6CisgICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6CiAg
ICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQYWludEZyYW1lRm9y
TWVkaWE6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpSZXN0
b3JlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Um90YXRl
OgpAQCAtMTc0LDYgKzE4NSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpTdHJva2VJbmxpbmVQYXRoOgogI2VuZGlmCiAgICAgICAgIGNh
c2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTdHJva2VSZWN0OgorICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U3dpdGNoVG9CdWZmZXI6CiAgICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpUcmFuc2xhdGU6IHsKICAg
ICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IGU4YjQ2NGE5NzJiMDQ2YzZhNTViY2MyYjBmN2Zl
MTQ5Y2JkZDY1ZjYuLmZlYzM4OWM4MTM1ZDNhZTYzZWFlYmE4ZWQzZmExZjg4ODhmYjcwZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC0yNTksNiArMjU5LDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbElubGlu
ZVBhdGg6CiAjZW5kaWYKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5
cGU6OkZpbGxSZWN0OgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlw
ZTo6Rmx1c2hDb250ZXh0OgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZTo6UmVzdG9yZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlJvdGF0ZToKQEAgLTI3Nyw2ICsyNzgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTdHJva2VJbmxpbmVQYXRo
OgogI2VuZGlmCiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpT
dHJva2VSZWN0OgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
U3dpdGNoVG9CdWZmZXI6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpUcmFuc2xhdGU6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413474</attachid>
            <date>2020-11-06 13:57:32 -0800</date>
            <delta_ts>2020-11-06 14:02:43 -0800</delta_ts>
            <desc>Rename + add FIXME</desc>
            <filename>bug-218588-20201106135731.patch</filename>
            <type>text/plain</type>
            <size>16828</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjVhMDY4YjMwZjEzN2E5
ZThhNDhjNDdiNzg2MzRiNzU3Yzk3ZjYzMC4uYWVhMmM3MTMxMjk4NGM5NGNlMTEzOTFkNDJiNzE4
Y2I0MTdmMTIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTExLTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBuZXcgZGlz
cGxheSBsaXN0IGl0ZW0gdHlwZXMgaW4gcHJlcGFyYXRpb24gZm9yIHdlYmtpdC5vcmcvYi8yMTg0
MjYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJv
ZHVjZSB0aGVzZSBuZXcgaXRlbSB0eXBlcy4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjphcHBlbmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1C
dWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmFw
cGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpkZXN0cm95
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpjb3B5VG8pOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6OnN3YXBXcml0YWJsZUJ1
ZmZlcklmTmVlZGVkKToKKworICAgICAgICBMZXQgYEl0ZW1CdWZmZXJgIGF1dG9tYXRpY2FsbHkg
YXBwZW5kICJzd2l0Y2ggdG8gY29tbWFuZCBidWZmZXIiIGl0ZW0gd2hlbmV2ZXIgaXQgcnVucyBv
dXQgb2Ygc3BhY2UgaW4gaXRzCisgICAgICAgIGN1cnJlbnQgd3JpdGFibGUgYnVmZmVyLCBhbmQg
ZWl0aGVyIGFsbG9jYXRlcyBhIG5ldyBidWZmZXIgb3IgY2FsbHMgaW50byB0aGUgY2xpZW50IHRv
IGdyYWIgYSBuZXcgYnVmZmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OnNpemVPZkl0ZW1JbkJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
Ojppc0RyYXdpbmdJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojppc0lubGlu
ZUl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1UeXBlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZs
dXNoQ29udGV4dDo6YXBwbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Om9wZXJhdG9yPDwpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Ok1ldGFDb21tYW5k
U3dpdGNoVG86OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkZsdXNoQ29udGV4dDo6Rmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpGbHVzaENvbnRleHQ6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkZsdXNoQ29udGV4dDo6bG9jYWxCb3VuZHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoQ29udGV4dDo6Z2xvYmFsQm91bmRzIGNvbnN0
KToKKworICAgICAgICBBZGQgYEZsdXNoQ29udGV4dGAsIHdoaWNoIHdpbGwgaW5kaWNhdGUgdG8g
dGhlIGNsaWVudCB0aGF0IGl0IHNob3VsZCBmbHVzaCBpdHMgYmFja2luZyBncmFwaGljcyBjb250
ZXh0LiBUaGUKKyAgICAgICAgb25seSBkYXRhIGluIHRoaXMgaXRlbSBpcyBhIGBEaXNwbGF5TGlz
dDo6Rmx1c2hJZGVudGlmaWVyYCwgd2hpY2ggd2lsbCBiZSB1c2VkIGJ5IHRoZSBkaXNwbGF5IGxp
c3QgY2xpZW50IHRvCisgICAgICAgIGNvb3JkaW5hdGUgZmx1c2ggdGltaW5nLgorCisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6TWV0YUNvbW1hbmRTd2l0Y2hUbzo6TWV0YUNvbW1hbmRT
d2l0Y2hUbyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6TWV0YUNvbW1hbmRTd2l0
Y2hUbzo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
TWV0YUNvbW1hbmRTd2l0Y2hUbzo6bG9jYWxCb3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Ok1ldGFDb21tYW5kU3dpdGNoVG86Omdsb2JhbEJvdW5kcyBjb25zdCk6
CisKKyAgICAgICAgQWRkIGFuIGl0ZW0gdG8gcmVwcmVzZW50IHN3aXRjaGluZyB0byBhIG5ldyBp
dGVtIGJ1ZmZlci4gVGhpcyBpcyBhdXRvbWF0aWNhbGx5IGFwcGVuZGVkIGJ5IHRoZSBkaXNwbGF5
IGxpc3QKKyAgICAgICAgaXRzZWxmIHdoZW4gaXQgcnVucyBvdXQgb2Ygc3BhY2Ugb24gdGhlIGN1
cnJlbnQgd3JpdGFibGUgYnVmZmVyLCBhbmQgd2lsbCBhbGxvdyBkaXNwbGF5IGxpc3QgY2xpZW50
cyAoaW4KKyAgICAgICAgcGFydGljdWxhciwgdGhlIHJlbW90ZSByZW5kZXJpbmcgYmFja2VuZCBp
biB0aGUgR1BVIHByb2Nlc3MpIHRvIHNlYW1sZXNzbHkgY29udGludWUgcmVhZGluZyBkaXNwbGF5
IGxpc3QgaXRlbXMKKyAgICAgICAgd2hlbiBhbGwgaXRlbSBkYXRhIGluIGEgZGlzcGxheSBsaXN0
IGl0ZW0gYnVmZmVyIGhhcyBiZWVuIGV4aGF1c3RlZC4KKworICAgICAgICBBbHNvLCBhZGQgYSBG
SVhNRSBoZXJlIGZvciBwdWxsaW5nIGBNZXRhQ29tbWFuZFN3aXRjaFRvYCBvdXQgb2YgdGhlIHNl
dCBvZiBkaXNwbGF5IGxpc3QgaXRlbXMuIFdlIHBsYW4gb24KKyAgICAgICAgdGFja2xpbmcgdGhp
cyBhcyBhIHBhcnQgb2YgZ2VuZXJhbGl6aW5nIGNvbmN1cnJlbnQgZGlzcGxheSBsaXN0IGFyY2hp
dGVjdHVyZSBpbiBhIHdheSB0aGF0IGNhbiBiZSB1c2VkIGZvcgorICAgICAgICBzZXJpYWxpemlu
ZyBXZWJHTCBjb21tYW5kcyBhcyB3ZWxsLgorCiAyMDIwLTExLTA2ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgRGlzcGxheUxpc3RGbHVzaElk
ZW50aWZpZXIgaW50byBXZWJDb3JlIGFzIERpc3BsYXlMaXN0OjpGbHVzaElkZW50aWZpZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNTU5Y2E2MzM5ZjliYTgwZjlhZTYzZDY5ZGUyNzhlNTFhMjlkOTBlNy4uNDc0ZjU5
MDA3MjA3Y2ZiMzU2ODQ4YjlhNzU1NWI3ZmFkNGVlYjcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAyMC0xMS0wNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgbmV3IGRpc3BsYXkgbGlzdCBpdGVtIHR5cGVzIGluIHByZXBhcmF0aW9u
IGZvciB3ZWJraXQub3JnL2IvMjE4NDI2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTg1ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTaW1wbHkgdHJlYXQgdGhlc2UgbmV3IGl0ZW1zIGFzIG5vLW9wcyBm
b3IgdGhlIHRpbWUgYmVpbmcuIFNlZSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgZm9yIG1vcmUg
ZGV0YWlscy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5Lmg6CisKIDIwMjAtMTEtMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSBEaXNwbGF5TGlzdEZsdXNoSWRlbnRpZmllciBpbnRvIFdl
YkNvcmUgYXMgRGlzcGxheUxpc3Q6OkZsdXNoSWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dC5jcHAKaW5kZXggNDA2MWY4YzI4YWU1OGEyNWU5YTI1OGRiMDBiMzYwYTYwYWU2Y2Q1Zi4uZmQ2
NmU5ZWViODBiODJmYzg1OGZhZTQ0NGNjM2I0YTNlMmI4ZTM4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3QuY3BwCkBAIC0yNzcsNiArMjc3LDEwIEBAIHZvaWQgRGlzcGxheUxpc3Q6OmFwcGVuZChJ
dGVtSGFuZGxlIGl0ZW0pCiAgICAgICAgIHJldHVybiBhcHBlbmQ8RmlsbFBhdGg+KGl0ZW0uZ2V0
PEZpbGxQYXRoPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsRWxsaXBzZToKICAgICAgICAg
cmV0dXJuIGFwcGVuZDxGaWxsRWxsaXBzZT4oaXRlbS5nZXQ8RmlsbEVsbGlwc2U+KCkpOworICAg
IGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxGbHVz
aENvbnRleHQ+KGl0ZW0uZ2V0PEZsdXNoQ29udGV4dD4oKSk7CisgICAgY2FzZSBJdGVtVHlwZTo6
TWV0YUNvbW1hbmRTd2l0Y2hUbzoKKyAgICAgICAgcmV0dXJuIGFwcGVuZDxNZXRhQ29tbWFuZFN3
aXRjaFRvPihpdGVtLmdldDxNZXRhQ29tbWFuZFN3aXRjaFRvPigpKTsKICAgICBjYXNlIEl0ZW1U
eXBlOjpQdXRJbWFnZURhdGE6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8UHV0SW1hZ2VEYXRhPihp
dGVtLmdldDxQdXRJbWFnZURhdGE+KCkpOwogICAgIGNhc2UgSXRlbVR5cGU6OlBhaW50RnJhbWVG
b3JNZWRpYToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKaW5k
ZXggZDIxNGJjMWU2NmYxYjVmMDExZTlhYjY0NGM3OGU0MjBjNGViYzQzYS4uMzgyY2VlY2FlODE0
NDgxYmJhYmFjMmM2OWE1YTEzNTJjNjlmNzFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbUJ1ZmZlci5jcHAKQEAgLTIzMCw2ICsyMzAsMTQgQEAgdm9pZCBJdGVtSGFuZGxl
OjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIGdldDxGaWxsRWxsaXBz
ZT4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEl0
ZW1UeXBlOjpGbHVzaENvbnRleHQ6IHsKKyAgICAgICAgZ2V0PEZsdXNoQ29udGV4dD4oKS5hcHBs
eShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpN
ZXRhQ29tbWFuZFN3aXRjaFRvOiB7CisgICAgICAgIGdldDxNZXRhQ29tbWFuZFN3aXRjaFRvPigp
LmFwcGx5KGNvbnRleHQpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGNhc2UgSXRlbVR5
cGU6OlB1dEltYWdlRGF0YTogewogICAgICAgICBnZXQ8UHV0SW1hZ2VEYXRhPigpLmFwcGx5KGNv
bnRleHQpOwogICAgICAgICByZXR1cm47CkBAIC00NTYsNiArNDY0LDE0IEBAIHZvaWQgSXRlbUhh
bmRsZTo6ZGVzdHJveSgpCiAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlf
ZGVzdHJ1Y3RpYmxlPEZpbGxSZWN0Pjo6dmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQor
ICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDogeworICAgICAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxGbHVzaENvbnRleHQ+Ojp2YWx1ZSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRTd2l0
Y2hUbzogeworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0
aWJsZTxNZXRhQ29tbWFuZFN3aXRjaFRvPjo6dmFsdWUpOworICAgICAgICByZXR1cm47CisgICAg
fQogICAgIGNhc2UgSXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYTogewogICAgICAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxQYWludEZyYW1lRm9yTWVk
aWE+Ojp2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTcwMiw2ICs3MTgsMTQgQEAgdm9pZCBJ
dGVtSGFuZGxlOjpjb3B5VG8oSXRlbUhhbmRsZSBkZXN0aW5hdGlvbikgY29uc3QKICAgICAgICAg
bmV3IChkZXN0aW5hdGlvbi5kYXRhICsgc2l6ZW9mKEl0ZW1UeXBlKSkgRmlsbFJlY3QoZ2V0PEZp
bGxSZWN0PigpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpG
bHVzaENvbnRleHQ6IHsKKyAgICAgICAgbmV3IChkZXN0aW5hdGlvbi5kYXRhICsgc2l6ZW9mKEl0
ZW1UeXBlKSkgRmx1c2hDb250ZXh0KGdldDxGbHVzaENvbnRleHQ+KCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kU3dpdGNoVG86IHsKKyAg
ICAgICAgbmV3IChkZXN0aW5hdGlvbi5kYXRhICsgc2l6ZW9mKEl0ZW1UeXBlKSkgTWV0YUNvbW1h
bmRTd2l0Y2hUbyhnZXQ8TWV0YUNvbW1hbmRTd2l0Y2hUbz4oKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOiB7CiAgICAgICAg
IG5ldyAoZGVzdGluYXRpb24uZGF0YSArIHNpemVvZihJdGVtVHlwZSkpIFBhaW50RnJhbWVGb3JN
ZWRpYShnZXQ8UGFpbnRGcmFtZUZvck1lZGlhPigpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtODQ5
LDExICs4NzMsMTQgQEAgdm9pZCBJdGVtQnVmZmVyOjpjbGVhcigpCiAKIHZvaWQgSXRlbUJ1ZmZl
cjo6c3dhcFdyaXRhYmxlQnVmZmVySWZOZWVkZWQoc2l6ZV90IG51bWJlck9mQnl0ZXMpCiB7Ci0g
ICAgaWYgKG1fd3JpdHRlbk51bWJlck9mQnl0ZXMgKyBudW1iZXJPZkJ5dGVzIDw9IG1fd3JpdGFi
bGVCdWZmZXIuY2FwYWNpdHkpCisgICAgY29uc3RleHByIGF1dG8gc2l6ZUZvckJ1ZmZlclN3aXRj
aEl0ZW0gPSBzaXplb2YoSXRlbVR5cGUpICsgc2l6ZW9mKE1ldGFDb21tYW5kU3dpdGNoVG8pOwor
ICAgIGlmIChtX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzICsgbnVtYmVyT2ZCeXRlcyArIHNpemVGb3JC
dWZmZXJTd2l0Y2hJdGVtIDw9IG1fd3JpdGFibGVCdWZmZXIuY2FwYWNpdHkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGF1dG8gbmV4dEJ1ZmZlciA9IGNyZWF0ZUl0ZW1CdWZmZXIobnVtYmVyT2ZC
eXRlcyk7CisgICAgYXV0byBuZXh0QnVmZmVyID0gY3JlYXRlSXRlbUJ1ZmZlcihudW1iZXJPZkJ5
dGVzICsgc2l6ZUZvckJ1ZmZlclN3aXRjaEl0ZW0pOwogICAgIGJvb2wgaGFkUHJldmlvdXNCdWZm
ZXIgPSBtX3dyaXRhYmxlQnVmZmVyOworICAgIGlmIChoYWRQcmV2aW91c0J1ZmZlcikKKyAgICAg
ICAgdW5jaGVja2VkQXBwZW5kPE1ldGFDb21tYW5kU3dpdGNoVG8+KG5leHRCdWZmZXIuaWRlbnRp
Zmllcik7CiAgICAgYXV0byBwcmV2aW91c0J1ZmZlciA9IHN0ZDo6ZXhjaGFuZ2UobV93cml0YWJs
ZUJ1ZmZlciwgeyB9KTsKICAgICBwcmV2aW91c0J1ZmZlci5jYXBhY2l0eSA9IHN0ZDo6ZXhjaGFu
Z2UobV93cml0dGVuTnVtYmVyT2ZCeXRlcywgMCk7CiAgICAgaWYgKGhhZFByZXZpb3VzQnVmZmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCmluZGV4IDRiYWE5ZWJm
MTI5ZTk2Yzk5MTU5NTllNzgwZTY5OWMzNDNkZjVlN2IuLjhmMDAyNjFiMjBmZDlmOTQxNmI2ZWJi
NGVlMTcxYjcyZDc3ODY4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlw
ZS5jcHAKQEAgLTEyOCw2ICsxMjgsMTAgQEAgc2l6ZV90IHNpemVPZkl0ZW1JbkJ5dGVzKEl0ZW1U
eXBlIHR5cGUpCiAgICAgICAgIHJldHVybiBzaXplb2YoRmlsbFBhdGgpOwogICAgIGNhc2UgSXRl
bVR5cGU6OkZpbGxFbGxpcHNlOgogICAgICAgICByZXR1cm4gc2l6ZW9mKEZpbGxFbGxpcHNlKTsK
KyAgICBjYXNlIEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6CisgICAgICAgIHJldHVybiBzaXplb2Yo
Rmx1c2hDb250ZXh0KTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZFN3aXRjaFRvOgor
ICAgICAgICByZXR1cm4gc2l6ZW9mKE1ldGFDb21tYW5kU3dpdGNoVG8pOwogICAgIGNhc2UgSXRl
bVR5cGU6OlB1dEltYWdlRGF0YToKICAgICAgICAgcmV0dXJuIHNpemVvZihQdXRJbWFnZURhdGEp
OwogICAgIGNhc2UgSXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToKQEAgLTE3Niw2ICsxODAs
OCBAQCBib29sIGlzRHJhd2luZ0l0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBl
OjpDbGlwUGF0aDoKICAgICBjYXNlIEl0ZW1UeXBlOjpDbGlwVG9EcmF3aW5nQ29tbWFuZHM6CiAg
ICAgY2FzZSBJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE06CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1
c2hDb250ZXh0OgorICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kU3dpdGNoVG86CiAgICAg
Y2FzZSBJdGVtVHlwZTo6UmVzdG9yZToKICAgICBjYXNlIEl0ZW1UeXBlOjpSb3RhdGU6CiAgICAg
Y2FzZSBJdGVtVHlwZTo6U2F2ZToKQEAgLTI4NCw2ICsyOTAsOCBAQCBib29sIGlzSW5saW5lSXRl
bShJdGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxJbmxpbmVQYXRoOgogI2Vu
ZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbFJlY3Q6CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1
c2hDb250ZXh0OgorICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kU3dpdGNoVG86CiAgICAg
Y2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogICAgIGNhc2UgSXRlbVR5cGU6OlJl
c3RvcmU6CiAgICAgY2FzZSBJdGVtVHlwZTo6Um90YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1UeXBlLmgKaW5kZXggY2U0Zjg1NzlhYzg3N2JiODgzYjQ5NjMzMzI3ZmE3OGMyMzE3
MWNjNi4uM2VmMTQ5NzU2MmZiZjNkYjBiMTk3N2Q3MWRlMzIxZGY1YzViNGI3MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbVR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCkBAIC03Nyw2ICs3Nyw4IEBAIGVudW0gY2xh
c3MgSXRlbVR5cGUgOiB1aW50OF90IHsKICNlbmRpZgogICAgIEZpbGxQYXRoLAogICAgIEZpbGxF
bGxpcHNlLAorICAgIEZsdXNoQ29udGV4dCwKKyAgICBNZXRhQ29tbWFuZFN3aXRjaFRvLAogICAg
IFB1dEltYWdlRGF0YSwKICAgICBQYWludEZyYW1lRm9yTWVkaWEsCiAgICAgU3Ryb2tlUmVjdCwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCA1ZWM4YzJlYTAwNDcyMzc0
MGEyMzMzNDBjY2U4YzJkYTRmYzI5NTlmLi5iNTA0ZmViNjU3MDkwOGQwZDE0MGU3MWY4NzMyODMx
OThjNzUwZDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCkBAIC05ODMs
NiArOTgzLDI4IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBjb25zdCBBcHBseURldmljZVNjYWxlRmFjdG9yJiBpdGVtCiAgICAgcmV0dXJuIHRzOwogfQog
Cit2b2lkIEZsdXNoQ29udGV4dDo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JikgY29uc3QKK3sKKyAg
ICAvLyBIYW5kbGVkIGJ5IGNsaWVudC4KK30KKworc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZsdXNoQ29udGV4dCYgaXRlbSkKK3sKKyAgICB0cy5k
dW1wUHJvcGVydHkoImlkZW50aWZpZXIiLCBpdGVtLmlkZW50aWZpZXIoKSk7CisgICAgcmV0dXJu
IHRzOworfQorCit2b2lkIE1ldGFDb21tYW5kU3dpdGNoVG86OmFwcGx5KEdyYXBoaWNzQ29udGV4
dCYpIGNvbnN0Cit7CisgICAgLy8gSGFuZGxlZCBieSBjbGllbnQuCit9CisKK3N0YXRpYyBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBNZXRhQ29tbWFuZFN3aXRj
aFRvJiBpdGVtKQoreworICAgIHRzLmR1bXBQcm9wZXJ0eSgiaWRlbnRpZmllciIsIGl0ZW0uaWRl
bnRpZmllcigpKTsKKyAgICByZXR1cm4gdHM7Cit9CisKIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlw
ZSkgewpAQCAtMTAzMyw2ICsxMDU1LDggQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBl
OjpGaWxsUGF0aDogdHMgPDwgImZpbGwtcGF0aCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6
OkZpbGxFbGxpcHNlOiB0cyA8PCAiZmlsbC1lbGxpcHNlIjsgYnJlYWs7CisgICAgY2FzZSBJdGVt
VHlwZTo6Rmx1c2hDb250ZXh0OiB0cyA8PCAiZmx1c2gtY29udGV4dCI7IGJyZWFrOworICAgIGNh
c2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kU3dpdGNoVG86IHRzIDw8ICJtZXRhLWNvbW1hbmQtc3dp
dGNoLXRvIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOiB0cyA8PCAi
cHV0LWltYWdlLWRhdGEiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9y
TWVkaWE6IHRzIDw8ICJwYWludC1mcmFtZS1mb3ItbWVkaWEiOyBicmVhazsKICAgICBjYXNlIEl0
ZW1UeXBlOjpTdHJva2VSZWN0OiB0cyA8PCAic3Ryb2tlLXJlY3QiOyBicmVhazsKQEAgLTExOTAs
NiArMTIxNCwxMiBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVt
SGFuZGxlIGl0ZW0pCiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbEVsbGlwc2U6CiAgICAgICAgIHRz
IDw8IGl0ZW0uZ2V0PEZpbGxFbGxpcHNlPigpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEl0
ZW1UeXBlOjpGbHVzaENvbnRleHQ6CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PEZsdXNoQ29udGV4
dD4oKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRTd2l0
Y2hUbzoKKyAgICAgICAgdHMgPDwgaXRlbS5nZXQ8TWV0YUNvbW1hbmRTd2l0Y2hUbz4oKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOgogICAgICAgICB0
cyA8PCBpdGVtLmdldDxQdXRJbWFnZURhdGE+KCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggMzJkZThhZjAxNjM5MDMyMzBjMGMwMzg0ZTZlYjAx
MGZlYmMzYTg4YS4uMjc0ZjVhNTY2OWVhMDNhNzMzOWIzMzI5OGNlZGMwMzkzYWQyNTQ0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC0yNTgzLDYgKzI1ODMsNTIgQEAgcHJp
dmF0ZToKICAgICBmbG9hdCBtX3NjYWxlRmFjdG9yIHsgMSB9OwogfTsKIAorY2xhc3MgRmx1c2hD
b250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBl
ID0gSXRlbVR5cGU6OkZsdXNoQ29udGV4dDsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJ
bmxpbmVJdGVtID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRl
bSA9IGZhbHNlOworCisgICAgRmx1c2hDb250ZXh0KEZsdXNoSWRlbnRpZmllciBpZGVudGlmaWVy
KQorICAgICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgIHsKKyAgICB9CisKKyAg
ICBGbHVzaElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmll
cjsgfQorCisgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAgIE9w
dGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29u
c3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9i
YWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKworcHJpdmF0ZToKKyAg
ICBGbHVzaElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworfTsKKworLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGJlIHJlZmFjdG9yZWQgc28gdGhhdCB0aGUgY29tbWFuZCB0byAic3dpdGNoIHRvIHRoZSBu
ZXh0IGl0ZW0gYnVmZmVyIgorLy8gaXMgbm90IGl0c2VsZiBhIGRyYXdpbmcgaXRlbS4KK2NsYXNz
IE1ldGFDb21tYW5kU3dpdGNoVG8geworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgSXRl
bVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRTd2l0Y2hUbzsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOworCisgICAgTWV0YUNvbW1hbmRTd2l0Y2hU
byhJdGVtQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgICAgICA6IG1faWRlbnRpZmll
cihpZGVudGlmaWVyKQorICAgIHsKKyAgICB9CisKKyAgICBJdGVtQnVmZmVySWRlbnRpZmllciBp
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKKyAgICB2b2lkIGFw
cGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OworCisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBs
b2NhbEJvdW5kcyhjb25zdCBHcmFwaGljc0NvbnRleHQmKSBjb25zdCB7IHJldHVybiBXVEY6Om51
bGxvcHQ7IH0KKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGdsb2JhbEJvdW5kcygpIGNvbnN0IHsg
cmV0dXJuIFdURjo6bnVsbG9wdDsgfQorCitwcml2YXRlOgorICAgIEl0ZW1CdWZmZXJJZGVudGlm
aWVyIG1faWRlbnRpZmllcjsKK307CisKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYsIEl0ZW1IYW5kbGUpOwogCiB9IC8vIG5hbWVzcGFjZSBEaXNwbGF5TGlzdApAQCAtMjY0MSw2
ICsyNjg3LDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU+IHsKICNlbmRpZgogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6RmlsbFBhdGgsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxs
RWxsaXBzZSwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZsdXNoQ29udGV4
dCwKKyAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6Ok1ldGFDb21tYW5kU3dpdGNo
VG8sCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQdXRJbWFnZURhdGEsCiAg
ICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWEsCiAg
ICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTdHJva2VSZWN0LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApp
bmRleCA3OGE0NzIzZWExMTI3N2FkNmFjMmM2MmYxMTk2MDgwNDI4ZTMxZmY2Li4xYmE3ODViMmIz
OTE5YTFmZjM0ZWMxNjc0MzBmM2VlNDNhM2QwYjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtODIsNiArODIs
MTYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKKyAg
ICAgICAgaWYgKGl0ZW0uaXM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoQ29udGV4dD4oKSkg
eworICAgICAgICAgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZCB5ZXQuCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChpdGVtLmlzPFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpNZXRhQ29tbWFuZFN3aXRjaFRvPigpKSB7CisgICAgICAgICAgICAvLyBG
SVhNRTogTm90IGltcGxlbWVudGVkIHlldC4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisKICAgICAgICAgcmV0dXJuIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC5hcHBseU1l
ZGlhSXRlbShpdGVtLCBjb250ZXh0KTsKICAgICB9CiAKQEAgLTE1Niw2ICsxNjYsOCBAQCBwcml2
YXRlOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbElu
bGluZVBhdGg6CiAjZW5kaWYKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkZpbGxSZWN0OgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6Rmx1c2hDb250ZXh0OgorICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZTo6TWV0YUNvbW1hbmRTd2l0Y2hUbzoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToKICAgICAgICAgY2FzZSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlJlc3RvcmU6CiAgICAgICAgIGNhc2UgV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpSb3RhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eS5oCmluZGV4IGU4YjQ2NGE5NzJiMDQ2YzZhNTViY2MyYjBmN2ZlMTQ5Y2JkZDY1ZjYuLjJlOGE2
NTUxMGFjMTg4OTg1MzFhZjZiMjRmZmY5MTc3ZWVmN2JhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJQcm94eS5oCkBAIC0yNTksNiArMjU5LDggQEAgcHJvdGVjdGVkOgogICAgICAgICBjYXNlIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbElubGluZVBhdGg6CiAjZW5kaWYKICAg
ICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxSZWN0OgorICAg
ICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Rmx1c2hDb250ZXh0Ogor
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6TWV0YUNvbW1hbmRT
d2l0Y2hUbzoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlBh
aW50RnJhbWVGb3JNZWRpYToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OlJlc3RvcmU6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpSb3RhdGU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413478</attachid>
            <date>2020-11-06 14:06:29 -0800</date>
            <delta_ts>2020-11-06 14:10:15 -0800</delta_ts>
            <desc>Rename + add FIXME</desc>
            <filename>bug-218588-20201106140627.patch</filename>
            <type>text/plain</type>
            <size>18141</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I5YzU0MGJjMDdiNmVl
MzBmMmQwZDljZjI2NzA1NzVlZTI0M2JhYS4uYWRmYzA3ZDlkNjk2YmU4NjI3MDE0NjI0NTZmMzA3
NzEzMDEzMjEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTExLTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBuZXcgZGlz
cGxheSBsaXN0IGl0ZW0gdHlwZXMgaW4gcHJlcGFyYXRpb24gZm9yIHdlYmtpdC5vcmcvYi8yMTg0
MjYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJv
ZHVjZSB0aGVzZSBuZXcgaXRlbSB0eXBlcy4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0OjphcHBlbmQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1C
dWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmFw
cGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpkZXN0cm95
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjpjb3B5VG8pOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXI6OnN3YXBXcml0YWJsZUJ1
ZmZlcklmTmVlZGVkKToKKworICAgICAgICBMZXQgYEl0ZW1CdWZmZXJgIGF1dG9tYXRpY2FsbHkg
YXBwZW5kICJzd2l0Y2ggdG8gY29tbWFuZCBidWZmZXIiIGl0ZW0gd2hlbmV2ZXIgaXQgcnVucyBv
dXQgb2Ygc3BhY2UgaW4gaXRzCisgICAgICAgIGN1cnJlbnQgd3JpdGFibGUgYnVmZmVyLCBhbmQg
ZWl0aGVyIGFsbG9jYXRlcyBhIG5ldyBidWZmZXIgb3IgY2FsbHMgaW50byB0aGUgY2xpZW50IHRv
IGdyYWIgYSBuZXcgYnVmZmVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OnNpemVPZkl0ZW1JbkJ5dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
Ojppc0RyYXdpbmdJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojppc0lubGlu
ZUl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1UeXBlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZs
dXNoQ29udGV4dDo6YXBwbHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Om9wZXJhdG9yPDwpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Ok1ldGFDb21tYW5k
U3dpdGNoVG86OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OkZsdXNoQ29udGV4dDo6Rmx1c2hDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpGbHVzaENvbnRleHQ6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkZsdXNoQ29udGV4dDo6bG9jYWxCb3VuZHMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkZsdXNoQ29udGV4dDo6Z2xvYmFsQm91bmRzIGNvbnN0
KToKKworICAgICAgICBBZGQgYEZsdXNoQ29udGV4dGAsIHdoaWNoIHdpbGwgaW5kaWNhdGUgdG8g
dGhlIGNsaWVudCB0aGF0IGl0IHNob3VsZCBmbHVzaCBpdHMgYmFja2luZyBncmFwaGljcyBjb250
ZXh0LiBUaGUKKyAgICAgICAgb25seSBkYXRhIGluIHRoaXMgaXRlbSBpcyBhIGBEaXNwbGF5TGlz
dDo6Rmx1c2hJZGVudGlmaWVyYCwgd2hpY2ggd2lsbCBiZSB1c2VkIGJ5IHRoZSBkaXNwbGF5IGxp
c3QgY2xpZW50IHRvCisgICAgICAgIGNvb3JkaW5hdGUgZmx1c2ggdGltaW5nLgorCisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6TWV0YUNvbW1hbmRTd2l0Y2hUbzo6TWV0YUNvbW1hbmRT
d2l0Y2hUbyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6TWV0YUNvbW1hbmRTd2l0
Y2hUbzo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
TWV0YUNvbW1hbmRTd2l0Y2hUbzo6bG9jYWxCb3VuZHMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Ok1ldGFDb21tYW5kU3dpdGNoVG86Omdsb2JhbEJvdW5kcyBjb25zdCk6
CisKKyAgICAgICAgQWRkIGFuIGl0ZW0gdG8gcmVwcmVzZW50IHN3aXRjaGluZyB0byBhIG5ldyBp
dGVtIGJ1ZmZlci4gVGhpcyBpcyBhdXRvbWF0aWNhbGx5IGFwcGVuZGVkIGJ5IHRoZSBkaXNwbGF5
IGxpc3QKKyAgICAgICAgaXRzZWxmIHdoZW4gaXQgcnVucyBvdXQgb2Ygc3BhY2Ugb24gdGhlIGN1
cnJlbnQgd3JpdGFibGUgYnVmZmVyLCBhbmQgd2lsbCBhbGxvdyBkaXNwbGF5IGxpc3QgY2xpZW50
cyAoaW4KKyAgICAgICAgcGFydGljdWxhciwgdGhlIHJlbW90ZSByZW5kZXJpbmcgYmFja2VuZCBp
biB0aGUgR1BVIHByb2Nlc3MpIHRvIHNlYW1sZXNzbHkgY29udGludWUgcmVhZGluZyBkaXNwbGF5
IGxpc3QgaXRlbXMKKyAgICAgICAgd2hlbiBhbGwgaXRlbSBkYXRhIGluIGEgZGlzcGxheSBsaXN0
IGl0ZW0gYnVmZmVyIGhhcyBiZWVuIGV4aGF1c3RlZC4KKworICAgICAgICBBbHNvLCBhZGQgYSBG
SVhNRSBoZXJlIGZvciBwdWxsaW5nIGBNZXRhQ29tbWFuZFN3aXRjaFRvYCBvdXQgb2YgdGhlIHNl
dCBvZiBkaXNwbGF5IGxpc3QgaXRlbXMuIFdlIHBsYW4gb24KKyAgICAgICAgdGFja2xpbmcgdGhp
cyBhcyBhIHBhcnQgb2YgZ2VuZXJhbGl6aW5nIGNvbmN1cnJlbnQgZGlzcGxheSBsaXN0IGFyY2hp
dGVjdHVyZSBpbiBhIHdheSB0aGF0IGNhbiBiZSB1c2VkIGZvcgorICAgICAgICBzZXJpYWxpemlu
ZyBXZWJHTCBjb21tYW5kcyBhcyB3ZWxsLgorCiAyMDIwLTExLTA2ICBSb2IgQnVpcyAgPHJidWlz
QGlnYWxpYS5jb20+CiAKICAgICAgICAgT25seSByZXN0b3JlIHNhdmVkIGxheWVyIHNjcm9sbCBw
b3NpdGlvbiBmb3IgUmVuZGVyQm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMyYmQ2MzdjMWI0YThjNGM3YTQyMTI5
ZjI0YjEwNWFkOTFkMzY2ZGQuLjE3NDBlMDhiOGIwOGIwZWRiODU5OGI3ODI0NDFiZTJiNDA5YTVi
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTEtMDQgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG5ldyBkaXNwbGF5IGxpc3Qg
aXRlbSB0eXBlcyBpbiBwcmVwYXJhdGlvbiBmb3Igd2Via2l0Lm9yZy9iLzIxODQyNgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTg4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGx5IHRyZWF0IHRo
ZXNlIG5ldyBpdGVtcyBhcyBuby1vcHMgZm9yIHRoZSB0aW1lIGJlaW5nLiBTZWUgU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorCiAyMDIwLTExLTA2ICBBZGl0eWEg
S2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIEFsaWduIGxl
ZnQgZWRnZSBvZiBwcmVzZW50ZWQgY2FsZW5kYXIgd2l0aCBsZWZ0IGVkZ2Ugb2YgZGF0ZSBpbnB1
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IDQwNjFmOGMyOGFlNThhMjVlOWEyNThk
YjAwYjM2MGE2MGFlNmNkNWYuLmZkNjZlOWVlYjgwYjgyZmM4NThmYWU0NDRjYzNiNGEzZTJiOGUz
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAtMjc3LDYgKzI3NywxMCBAQCB2b2lk
IERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBpdGVtKQogICAgICAgICByZXR1cm4gYXBw
ZW5kPEZpbGxQYXRoPihpdGVtLmdldDxGaWxsUGF0aD4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6
RmlsbEVsbGlwc2U6CiAgICAgICAgIHJldHVybiBhcHBlbmQ8RmlsbEVsbGlwc2U+KGl0ZW0uZ2V0
PEZpbGxFbGxpcHNlPigpKTsKKyAgICBjYXNlIEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6CisgICAg
ICAgIHJldHVybiBhcHBlbmQ8Rmx1c2hDb250ZXh0PihpdGVtLmdldDxGbHVzaENvbnRleHQ+KCkp
OworICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21tYW5kU3dpdGNoVG86CisgICAgICAgIHJldHVy
biBhcHBlbmQ8TWV0YUNvbW1hbmRTd2l0Y2hUbz4oaXRlbS5nZXQ8TWV0YUNvbW1hbmRTd2l0Y2hU
bz4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOgogICAgICAgICByZXR1cm4g
YXBwZW5kPFB1dEltYWdlRGF0YT4oaXRlbS5nZXQ8UHV0SW1hZ2VEYXRhPigpKTsKICAgICBjYXNl
IEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4IGQyMTRiYzFlNjZmMWI1ZjAxMWU5YWI2NDRjNzhlNDIw
YzRlYmM0M2EuLjM4MmNlZWNhZTgxNDQ4MWJiYWJhYzJjNjlhNWExMzUyYzY5ZjcxYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCkBAIC0yMzAsNiArMjMw
LDE0IEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQog
ICAgICAgICBnZXQ8RmlsbEVsbGlwc2U+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OiB7CisgICAgICAgIGdl
dDxGbHVzaENvbnRleHQ+KCkuYXBwbHkoY29udGV4dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRTd2l0Y2hUbzogeworICAgICAgICBnZXQ8
TWV0YUNvbW1hbmRTd2l0Y2hUbz4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFnZURhdGE6IHsKICAgICAgICAgZ2V0PFB1
dEltYWdlRGF0YT4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDU2LDYg
KzQ2NCwxNCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmRlc3Ryb3koKQogICAgICAgICBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxGaWxsUmVjdD46OnZhbHVlKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6IHsK
KyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8Rmx1
c2hDb250ZXh0Pjo6dmFsdWUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgSXRl
bVR5cGU6Ok1ldGFDb21tYW5kU3dpdGNoVG86IHsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8TWV0YUNvbW1hbmRTd2l0Y2hUbz46OnZhbHVlKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9y
TWVkaWE6IHsKICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVj
dGlibGU8UGFpbnRGcmFtZUZvck1lZGlhPjo6dmFsdWUpOwogICAgICAgICByZXR1cm47CkBAIC03
MDIsNiArNzE4LDE0IEBAIHZvaWQgSXRlbUhhbmRsZTo6Y29weVRvKEl0ZW1IYW5kbGUgZGVzdGlu
YXRpb24pIGNvbnN0CiAgICAgICAgIG5ldyAoZGVzdGluYXRpb24uZGF0YSArIHNpemVvZihJdGVt
VHlwZSkpIEZpbGxSZWN0KGdldDxGaWxsUmVjdD4oKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OiB7CisgICAgICAgIG5ldyAoZGVzdGlu
YXRpb24uZGF0YSArIHNpemVvZihJdGVtVHlwZSkpIEZsdXNoQ29udGV4dChnZXQ8Rmx1c2hDb250
ZXh0PigpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpNZXRh
Q29tbWFuZFN3aXRjaFRvOiB7CisgICAgICAgIG5ldyAoZGVzdGluYXRpb24uZGF0YSArIHNpemVv
ZihJdGVtVHlwZSkpIE1ldGFDb21tYW5kU3dpdGNoVG8oZ2V0PE1ldGFDb21tYW5kU3dpdGNoVG8+
KCkpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIGNhc2UgSXRlbVR5cGU6OlBhaW50RnJh
bWVGb3JNZWRpYTogewogICAgICAgICBuZXcgKGRlc3RpbmF0aW9uLmRhdGEgKyBzaXplb2YoSXRl
bVR5cGUpKSBQYWludEZyYW1lRm9yTWVkaWEoZ2V0PFBhaW50RnJhbWVGb3JNZWRpYT4oKSk7CiAg
ICAgICAgIHJldHVybjsKQEAgLTg0OSwxMSArODczLDE0IEBAIHZvaWQgSXRlbUJ1ZmZlcjo6Y2xl
YXIoKQogCiB2b2lkIEl0ZW1CdWZmZXI6OnN3YXBXcml0YWJsZUJ1ZmZlcklmTmVlZGVkKHNpemVf
dCBudW1iZXJPZkJ5dGVzKQogewotICAgIGlmIChtX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzICsgbnVt
YmVyT2ZCeXRlcyA8PSBtX3dyaXRhYmxlQnVmZmVyLmNhcGFjaXR5KQorICAgIGNvbnN0ZXhwciBh
dXRvIHNpemVGb3JCdWZmZXJTd2l0Y2hJdGVtID0gc2l6ZW9mKEl0ZW1UeXBlKSArIHNpemVvZihN
ZXRhQ29tbWFuZFN3aXRjaFRvKTsKKyAgICBpZiAobV93cml0dGVuTnVtYmVyT2ZCeXRlcyArIG51
bWJlck9mQnl0ZXMgKyBzaXplRm9yQnVmZmVyU3dpdGNoSXRlbSA8PSBtX3dyaXRhYmxlQnVmZmVy
LmNhcGFjaXR5KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIG5leHRCdWZmZXIgPSBjcmVh
dGVJdGVtQnVmZmVyKG51bWJlck9mQnl0ZXMpOworICAgIGF1dG8gbmV4dEJ1ZmZlciA9IGNyZWF0
ZUl0ZW1CdWZmZXIobnVtYmVyT2ZCeXRlcyArIHNpemVGb3JCdWZmZXJTd2l0Y2hJdGVtKTsKICAg
ICBib29sIGhhZFByZXZpb3VzQnVmZmVyID0gbV93cml0YWJsZUJ1ZmZlcjsKKyAgICBpZiAoaGFk
UHJldmlvdXNCdWZmZXIpCisgICAgICAgIHVuY2hlY2tlZEFwcGVuZDxNZXRhQ29tbWFuZFN3aXRj
aFRvPihuZXh0QnVmZmVyLmlkZW50aWZpZXIpOwogICAgIGF1dG8gcHJldmlvdXNCdWZmZXIgPSBz
dGQ6OmV4Y2hhbmdlKG1fd3JpdGFibGVCdWZmZXIsIHsgfSk7CiAgICAgcHJldmlvdXNCdWZmZXIu
Y2FwYWNpdHkgPSBzdGQ6OmV4Y2hhbmdlKG1fd3JpdHRlbk51bWJlck9mQnl0ZXMsIDApOwogICAg
IGlmIChoYWRQcmV2aW91c0J1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmNwcAppbmRleCA0YmFhOWViZjEyOWU5NmM5OTE1OTU5ZTc4MGU2OTljMzQzZGY1ZTdiLi44
ZjAwMjYxYjIwZmQ5Zjk0MTZiNmViYjRlZTE3MWI3MmQ3Nzg2ODY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC0xMjgsNiArMTI4LDEwIEBAIHNpemVfdCBz
aXplT2ZJdGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gc2l6ZW9mKEZp
bGxQYXRoKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsRWxsaXBzZToKICAgICAgICAgcmV0dXJu
IHNpemVvZihGaWxsRWxsaXBzZSk7CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0Ogor
ICAgICAgICByZXR1cm4gc2l6ZW9mKEZsdXNoQ29udGV4dCk7CisgICAgY2FzZSBJdGVtVHlwZTo6
TWV0YUNvbW1hbmRTd2l0Y2hUbzoKKyAgICAgICAgcmV0dXJuIHNpemVvZihNZXRhQ29tbWFuZFN3
aXRjaFRvKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFnZURhdGE6CiAgICAgICAgIHJldHVy
biBzaXplb2YoUHV0SW1hZ2VEYXRhKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9y
TWVkaWE6CkBAIC0xNzYsNiArMTgwLDggQEAgYm9vbCBpc0RyYXdpbmdJdGVtKEl0ZW1UeXBlIHR5
cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xpcFBhdGg6CiAgICAgY2FzZSBJdGVtVHlwZTo6Q2xp
cFRvRHJhd2luZ0NvbW1hbmRzOgogICAgIGNhc2UgSXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgor
ICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKKyAgICBjYXNlIEl0ZW1UeXBlOjpNZXRh
Q29tbWFuZFN3aXRjaFRvOgogICAgIGNhc2UgSXRlbVR5cGU6OlJlc3RvcmU6CiAgICAgY2FzZSBJ
dGVtVHlwZTo6Um90YXRlOgogICAgIGNhc2UgSXRlbVR5cGU6OlNhdmU6CkBAIC0yODQsNiArMjkw
LDggQEAgYm9vbCBpc0lubGluZUl0ZW0oSXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBl
OjpGaWxsSW5saW5lUGF0aDoKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxSZWN0Ogor
ICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKKyAgICBjYXNlIEl0ZW1UeXBlOjpNZXRh
Q29tbWFuZFN3aXRjaFRvOgogICAgIGNhc2UgSXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToK
ICAgICBjYXNlIEl0ZW1UeXBlOjpSZXN0b3JlOgogICAgIGNhc2UgSXRlbVR5cGU6OlJvdGF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCmluZGV4IGNlNGY4NTc5YWM4Nzdi
Yjg4M2I0OTYzMzMyN2ZhNzhjMjMxNzFjYzYuLjNlZjE0OTc1NjJmYmYzZGIwYjE5NzdkNzFkZTMy
MWRmNWM1YjRiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaApAQCAt
NzcsNiArNzcsOCBAQCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAjZW5kaWYKICAg
ICBGaWxsUGF0aCwKICAgICBGaWxsRWxsaXBzZSwKKyAgICBGbHVzaENvbnRleHQsCisgICAgTWV0
YUNvbW1hbmRTd2l0Y2hUbywKICAgICBQdXRJbWFnZURhdGEsCiAgICAgUGFpbnRGcmFtZUZvck1l
ZGlhLAogICAgIFN0cm9rZVJlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAK
aW5kZXggNWVjOGMyZWEwMDQ3MjM3NDBhMjMzMzQwY2NlOGMyZGE0ZmMyOTU5Zi4uYjUwNGZlYjY1
NzA5MDhkMGQxNDBlNzFmODczMjgzMTk4Yzc1MGQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmNwcApAQCAtOTgzLDYgKzk4MywyOCBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQXBwbHlEZXZpY2VTY2FsZUZhY3RvciYgaXRl
bQogICAgIHJldHVybiB0czsKIH0KIAordm9pZCBGbHVzaENvbnRleHQ6OmFwcGx5KEdyYXBoaWNz
Q29udGV4dCYpIGNvbnN0Cit7CisgICAgLy8gSGFuZGxlZCBieSBjbGllbnQuCit9CisKK3N0YXRp
YyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBGbHVzaENvbnRl
eHQmIGl0ZW0pCit7CisgICAgdHMuZHVtcFByb3BlcnR5KCJpZGVudGlmaWVyIiwgaXRlbS5pZGVu
dGlmaWVyKCkpOworICAgIHJldHVybiB0czsKK30KKwordm9pZCBNZXRhQ29tbWFuZFN3aXRjaFRv
OjphcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdAoreworICAgIC8vIEhhbmRsZWQgYnkgY2xp
ZW50LgorfQorCitzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Y29uc3QgTWV0YUNvbW1hbmRTd2l0Y2hUbyYgaXRlbSkKK3sKKyAgICB0cy5kdW1wUHJvcGVydHko
ImlkZW50aWZpZXIiLCBpdGVtLmlkZW50aWZpZXIoKSk7CisgICAgcmV0dXJuIHRzOworfQorCiBz
dGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVR5cGUgdHlw
ZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKQEAgLTEwMzMsNiArMTA1NSw4IEBAIHN0YXRpYyBU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtVHlwZSB0eXBlKQogI2Vu
ZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbFBhdGg6IHRzIDw8ICJmaWxsLXBhdGgiOyBicmVh
azsKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsRWxsaXBzZTogdHMgPDwgImZpbGwtZWxsaXBzZSI7
IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDogdHMgPDwgImZsdXNoLWNv
bnRleHQiOyBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZFN3aXRjaFRvOiB0
cyA8PCAibWV0YS1jb21tYW5kLXN3aXRjaC10byI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6
OlB1dEltYWdlRGF0YTogdHMgPDwgInB1dC1pbWFnZS1kYXRhIjsgYnJlYWs7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOiB0cyA8PCAicGFpbnQtZnJhbWUtZm9yLW1lZGlh
IjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U3Ryb2tlUmVjdDogdHMgPDwgInN0cm9rZS1y
ZWN0IjsgYnJlYWs7CkBAIC0xMTkwLDYgKzEyMTQsMTIgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgSXRlbUhhbmRsZSBpdGVtKQogICAgIGNhc2UgSXRlbVR5cGU6OkZp
bGxFbGxpcHNlOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxGaWxsRWxsaXBzZT4oKTsKICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OgorICAgICAgICB0cyA8
PCBpdGVtLmdldDxGbHVzaENvbnRleHQ+KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSXRl
bVR5cGU6Ok1ldGFDb21tYW5kU3dpdGNoVG86CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PE1ldGFD
b21tYW5kU3dpdGNoVG8+KCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlB1
dEltYWdlRGF0YToKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8UHV0SW1hZ2VEYXRhPigpOwogICAg
ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IDMyZGU4YWYw
MTYzOTAzMjMwYzBjMDM4NGU2ZWIwMTBmZWJjM2E4OGEuLjI3NGY1YTU2NjllYTAzYTczMzliMzMy
OThjZWRjMDM5M2FkMjU0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAt
MjU4Myw2ICsyNTgzLDUyIEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9zY2FsZUZhY3RvciB7IDEg
fTsKIH07CiAKK2NsYXNzIEZsdXNoQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0
ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRydWU7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKKworICAgIEZsdXNoQ29udGV4dChGbHVz
aElkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmll
cikKKyAgICB7CisgICAgfQorCisgICAgRmx1c2hJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25z
dCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKworICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250
ZXh0JikgY29uc3Q7CisKKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0
IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQorICAgIE9w
dGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4gV1RGOjpudWxs
b3B0OyB9CisKK3ByaXZhdGU6CisgICAgRmx1c2hJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKK307
CisKKy8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZWZhY3RvcmVkIHNvIHRoYXQgdGhlIGNvbW1h
bmQgdG8gInN3aXRjaCB0byB0aGUgbmV4dCBpdGVtIGJ1ZmZlciIKKy8vIGlzIG5vdCBpdHNlbGYg
YSBkcmF3aW5nIGl0ZW0uCitjbGFzcyBNZXRhQ29tbWFuZFN3aXRjaFRvIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6Ok1ldGFDb21t
YW5kU3dpdGNoVG87CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRy
dWU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKKwor
ICAgIE1ldGFDb21tYW5kU3dpdGNoVG8oSXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
KyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKKyAgICB7CisgICAgfQorCisgICAg
SXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRp
ZmllcjsgfQorCisgICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAg
IE9wdGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0Jikg
Y29uc3QgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBn
bG9iYWxCb3VuZHMoKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKworcHJpdmF0ZToK
KyAgICBJdGVtQnVmZmVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9OworCiBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBJdGVtSGFuZGxlKTsKIAogfSAvLyBuYW1lc3BhY2Ug
RGlzcGxheUxpc3QKQEAgLTI2NDEsNiArMjY4Nyw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlPiB7CiAjZW5kaWYKICAgICBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxQYXRoLAogICAgIFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpJdGVtVHlwZTo6RmlsbEVsbGlwc2UsCisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
Okl0ZW1UeXBlOjpGbHVzaENvbnRleHQsCisgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpNZXRhQ29tbWFuZFN3aXRjaFRvLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
VHlwZTo6UHV0SW1hZ2VEYXRhLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
UGFpbnRGcmFtZUZvck1lZGlhLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
U3Ryb2tlUmVjdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggNzhhNDcyM2VhMTEyNzdhZDZhYzJjNjJmMTE5NjA4
MDQyOGUzMWZmNi4uMWJhNzg1YjJiMzkxOWExZmYzNGVjMTY3NDMwZjNlZTQzYTNkMGI2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyLmgKQEAgLTgyLDYgKzgyLDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQogCisgICAgICAgIGlmIChpdGVtLmlzPFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpGbHVzaENvbnRleHQ+KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBOb3QgaW1wbGVt
ZW50ZWQgeWV0LgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoaXRlbS5pczxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6TWV0YUNvbW1hbmRTd2l0Y2hUbz4o
KSkgeworICAgICAgICAgICAgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZCB5ZXQuCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCiAgICAgICAgIHJldHVybiBtX3JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuYXBwbHlNZWRpYUl0ZW0oaXRlbSwgY29udGV4dCk7CiAgICAgfQogCkBA
IC0xNTYsNiArMTY2LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6SXRlbVR5cGU6OkZpbGxJbmxpbmVQYXRoOgogI2VuZGlmCiAgICAgICAgIGNhc2UgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsUmVjdDoKKyAgICAgICAgY2FzZSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKKyAgICAgICAgY2FzZSBX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6Ok1ldGFDb21tYW5kU3dpdGNoVG86CiAgICAg
ICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVk
aWE6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpSZXN0b3Jl
OgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Um90YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAppbmRleCBlOGI0NjRhOTcyYjA0NmM2YTU1YmNjMmIw
ZjdmZTE0OWNiZGQ2NWY2Li4yZThhNjU1MTBhYzE4ODk4NTMxYWY2YjI0ZmZmOTE3N2VlZjdiYTNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaApAQCAtMjU5LDYgKzI1OSw4IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxJ
bmxpbmVQYXRoOgogI2VuZGlmCiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpGaWxsUmVjdDoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRl
bVR5cGU6OkZsdXNoQ29udGV4dDoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
SXRlbVR5cGU6Ok1ldGFDb21tYW5kU3dpdGNoVG86CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6Okl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CiAgICAgICAgIGNhc2UgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpSZXN0b3JlOgogICAgICAgICBjYXNlIFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Um90YXRlOgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY0NTU0NTNmY2QyNzI0ZjQwMDBhNzI0M2Yw
ZGEwMzIyY2UyZmE5ZTYuLjdmN2ZlODU4NjA5NjIyMWU5MTEzOGE1ZDlkOTVmNWY5YTFmYTBlMWUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0xMS0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgbmV3IGRpc3BsYXkgbGlzdCBpdGVtIHR5cGVzIGluIHByZXBh
cmF0aW9uIGZvciB3ZWJraXQub3JnL2IvMjE4NDI2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg1ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGp1c3QgYW4gQVBJIHRlc3QuIFNlZSBvdGhlciBDaGFu
Z2VMb2dzIGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorCiAyMDIwLTExLTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFtDb25jdXJyZW50IGRpc3BsYXkgbGlzdHNdIEFkZCBBUEkgdGVzdHMgZm9y
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBhbmQgcmVsYXRlZCBjbGFzc2VzCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RU
ZXN0cy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvRGlzcGxheUxpc3RU
ZXN0cy5jcHAKaW5kZXggYTJlNDlhMWE2NjVmZTE0NjViMDBmZTI0ZTU3MGYxNDU2YTlmN2ZlZC4u
NDE3MDI2NDJhZGI0Y2MzNjJkNTQ5N2U4M2Q4ODQ4MjQ2YmE2ODliMSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcApA
QCAtMTIxLDYgKzEyMSw4IEBAIFRFU1QoRGlzcGxheUxpc3RUZXN0cywgQXBwZW5kSXRlbXMpCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogI2VuZGlmCisgICAgICAgIGNhc2UgSXRlbVR5
cGU6Ok1ldGFDb21tYW5kU3dpdGNoVG86CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVm
YXVsdDogewogICAgICAgICAgICAgb2JzZXJ2ZWRVbmV4cGVjdGVkSXRlbSA9IHRydWU7CiAgICAg
ICAgICAgICBicmVhazsK
</data>
<flag name="review"
          id="430080"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413485</attachid>
            <date>2020-11-06 14:31:44 -0800</date>
            <delta_ts>2020-11-06 16:40:23 -0800</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-218588-20201106143143.patch</filename>
            <type>text/plain</type>
            <size>17939</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2I5YzU0MGJjMDdiNmVl
MzBmMmQwZDljZjI2NzA1NzVlZTI0M2JhYS4uN2U5ODdlN2I2MmU5ZDA4ZjRiYTE0NzM1YTI1ZjE3
YjJiODBlZjhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTExLTA0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBuZXcgZGlz
cGxheSBsaXN0IGl0ZW0gdHlwZXMgaW4gcHJlcGFyYXRpb24gZm9yIHdlYmtpdC5vcmcvYi8yMTg0
MjYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBJbnRyb2R1
Y2UgdGhlc2UgbmV3IGl0ZW0gdHlwZXMuIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVm
ZmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBs
eSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6Y29weVRvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVyOjpzd2FwV3JpdGFibGVCdWZm
ZXJJZk5lZWRlZCk6CisKKyAgICAgICAgTGV0IGBJdGVtQnVmZmVyYCBhdXRvbWF0aWNhbGx5IGFw
cGVuZCAic3dpdGNoIHRvIGNvbW1hbmQgYnVmZmVyIiBpdGVtIHdoZW5ldmVyIGl0IHJ1bnMgb3V0
IG9mIHNwYWNlIGluIGl0cworICAgICAgICBjdXJyZW50IHdyaXRhYmxlIGJ1ZmZlciwgYW5kIGVp
dGhlciBhbGxvY2F0ZXMgYSBuZXcgYnVmZmVyIG9yIGNhbGxzIGludG8gdGhlIGNsaWVudCB0byBn
cmFiIGEgbmV3IGJ1ZmZlci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpzaXplT2ZJdGVtSW5CeXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
aXNEcmF3aW5nSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJ
dGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtVHlwZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVz
aENvbnRleHQ6OmFwcGx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpv
cGVyYXRvcjw8KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpNZXRhQ29tbWFuZFN3
aXRjaFRvOjphcHBseSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpGbHVzaENvbnRleHQ6OkZsdXNoQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
TGlzdDo6Rmx1c2hDb250ZXh0OjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpGbHVzaENvbnRleHQ6OmxvY2FsQm91bmRzIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpGbHVzaENvbnRleHQ6Omdsb2JhbEJvdW5kcyBjb25zdCk6
CisKKyAgICAgICAgQWRkIGBGbHVzaENvbnRleHRgLCB3aGljaCB3aWxsIGluZGljYXRlIHRvIHRo
ZSBjbGllbnQgdGhhdCBpdCBzaG91bGQgZmx1c2ggaXRzIGJhY2tpbmcgZ3JhcGhpY3MgY29udGV4
dC4gVGhlCisgICAgICAgIG9ubHkgZGF0YSBpbiB0aGlzIGl0ZW0gaXMgYSBgRGlzcGxheUxpc3Q6
OkZsdXNoSWRlbnRpZmllcmAsIHdoaWNoIHdpbGwgYmUgdXNlZCBieSB0aGUgZGlzcGxheSBsaXN0
IGNsaWVudCB0bworICAgICAgICBjb29yZGluYXRlIGZsdXNoIHRpbWluZy4KKworICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Ok1ldGFDb21tYW5kU3dpdGNoVG86Ok1ldGFDb21tYW5kU3dp
dGNoVG8pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Ok1ldGFDb21tYW5kU3dpdGNo
VG86OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Ok1l
dGFDb21tYW5kU3dpdGNoVG86OmxvY2FsQm91bmRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpNZXRhQ29tbWFuZFN3aXRjaFRvOjpnbG9iYWxCb3VuZHMgY29uc3QpOgor
CisgICAgICAgIEFkZCBhbiBpdGVtIHRvIHJlcHJlc2VudCBzd2l0Y2hpbmcgdG8gYSBuZXcgaXRl
bSBidWZmZXIuIFRoaXMgaXMgYXV0b21hdGljYWxseSBhcHBlbmRlZCBieSB0aGUgZGlzcGxheSBs
aXN0CisgICAgICAgIGl0c2VsZiB3aGVuIGl0IHJ1bnMgb3V0IG9mIHNwYWNlIG9uIHRoZSBjdXJy
ZW50IHdyaXRhYmxlIGJ1ZmZlciwgYW5kIHdpbGwgYWxsb3cgZGlzcGxheSBsaXN0IGNsaWVudHMg
KGluCisgICAgICAgIHBhcnRpY3VsYXIsIHRoZSByZW1vdGUgcmVuZGVyaW5nIGJhY2tlbmQgaW4g
dGhlIEdQVSBwcm9jZXNzKSB0byBzZWFtbGVzc2x5IGNvbnRpbnVlIHJlYWRpbmcgZGlzcGxheSBs
aXN0IGl0ZW1zCisgICAgICAgIHdoZW4gYWxsIGl0ZW0gZGF0YSBpbiBhIGRpc3BsYXkgbGlzdCBp
dGVtIGJ1ZmZlciBoYXMgYmVlbiBleGhhdXN0ZWQuCisKKyAgICAgICAgQWxzbywgYWRkIGEgRklY
TUUgaGVyZSBmb3IgcHVsbGluZyBgTWV0YUNvbW1hbmRTd2l0Y2hUb2Agb3V0IG9mIHRoZSBzZXQg
b2YgZGlzcGxheSBsaXN0IGl0ZW1zLiBXZSBwbGFuIG9uCisgICAgICAgIHRhY2tsaW5nIHRoaXMg
YXMgYSBwYXJ0IG9mIGdlbmVyYWxpemluZyBjb25jdXJyZW50IGRpc3BsYXkgbGlzdCBhcmNoaXRl
Y3R1cmUgaW4gYSB3YXkgdGhhdCBjYW4gYmUgdXNlZCBmb3IKKyAgICAgICAgc2VyaWFsaXppbmcg
V2ViR0wgY29tbWFuZHMgYXMgd2VsbC4KKwogMjAyMC0xMS0wNiAgUm9iIEJ1aXMgIDxyYnVpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIE9ubHkgcmVzdG9yZSBzYXZlZCBsYXllciBzY3JvbGwgcG9z
aXRpb24gZm9yIFJlbmRlckJveApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjMmJkNjM3YzFiNGE4YzRjN2E0MjEyOWYy
NGIxMDVhZDkxZDM2NmRkLi5jOTRjNmNjMDUyMmY2ODg0ZGUyMmNhNGZhYTQxZjdlZGUzY2VhNzYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTExLTA0ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBuZXcgZGlzcGxheSBsaXN0IGl0
ZW0gdHlwZXMgaW4gcHJlcGFyYXRpb24gZm9yIHdlYmtpdC5vcmcvYi8yMTg0MjYKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODU4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBTaW1wbHkgdHJlYXQgdGhlc2Ug
bmV3IGl0ZW1zIGFzIG5vLW9wcyBmb3IgdGhlIHRpbWUgYmVpbmcuIFNlZSBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisKIDIwMjAtMTEtMDYgIEFkaXR5YSBLZWVy
dGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gQWxpZ24gbGVmdCBl
ZGdlIG9mIHByZXNlbnRlZCBjYWxlbmRhciB3aXRoIGxlZnQgZWRnZSBvZiBkYXRlIGlucHV0cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKaW5kZXggNDA2MWY4YzI4YWU1OGEyNWU5YTI1OGRiMDBi
MzYwYTYwYWU2Y2Q1Zi4uZmQ2NmU5ZWViODBiODJmYzg1OGZhZTQ0NGNjM2I0YTNlMmI4ZTM4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3Rz
L0Rpc3BsYXlMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCkBAIC0yNzcsNiArMjc3LDEwIEBAIHZvaWQgRGlz
cGxheUxpc3Q6OmFwcGVuZChJdGVtSGFuZGxlIGl0ZW0pCiAgICAgICAgIHJldHVybiBhcHBlbmQ8
RmlsbFBhdGg+KGl0ZW0uZ2V0PEZpbGxQYXRoPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxs
RWxsaXBzZToKICAgICAgICAgcmV0dXJuIGFwcGVuZDxGaWxsRWxsaXBzZT4oaXRlbS5nZXQ8Rmls
bEVsbGlwc2U+KCkpOworICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKKyAgICAgICAg
cmV0dXJuIGFwcGVuZDxGbHVzaENvbnRleHQ+KGl0ZW0uZ2V0PEZsdXNoQ29udGV4dD4oKSk7Cisg
ICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRTd2l0Y2hUbzoKKyAgICAgICAgcmV0dXJuIGFw
cGVuZDxNZXRhQ29tbWFuZFN3aXRjaFRvPihpdGVtLmdldDxNZXRhQ29tbWFuZFN3aXRjaFRvPigp
KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpQdXRJbWFnZURhdGE6CiAgICAgICAgIHJldHVybiBhcHBl
bmQ8UHV0SW1hZ2VEYXRhPihpdGVtLmdldDxQdXRJbWFnZURhdGE+KCkpOwogICAgIGNhc2UgSXRl
bVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbUJ1ZmZlci5jcHAKaW5kZXggZDIxNGJjMWU2NmYxYjVmMDExZTlhYjY0NGM3OGU0MjBjNGVi
YzQzYS4uMDIxNmJjZGY4ZDE0MjZhZGQ1ODBhODQ2ZjRmYThkODliY2E5MDAyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKQEAgLTIzMCw2ICsyMzAsMTIg
QEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAg
ICAgIGdldDxGaWxsRWxsaXBzZT4oKS5hcHBseShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6IHsKKyAgICAgICAgZ2V0PEZs
dXNoQ29udGV4dD4oKS5hcHBseShjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBjYXNlIEl0ZW1UeXBlOjpNZXRhQ29tbWFuZFN3aXRjaFRvOgorICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOiB7CiAgICAgICAgIGdldDxQdXRJbWFnZURh
dGE+KCkuYXBwbHkoY29udGV4dCk7CiAgICAgICAgIHJldHVybjsKQEAgLTQ1Niw2ICs0NjIsMTQg
QEAgdm9pZCBJdGVtSGFuZGxlOjpkZXN0cm95KCkKICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8RmlsbFJlY3Q+Ojp2YWx1ZSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OiB7CisgICAgICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPEZsdXNoQ29udGV4
dD46OnZhbHVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIEl0ZW1UeXBlOjpN
ZXRhQ29tbWFuZFN3aXRjaFRvOiB7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2
aWFsbHlfZGVzdHJ1Y3RpYmxlPE1ldGFDb21tYW5kU3dpdGNoVG8+Ojp2YWx1ZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOiB7
CiAgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFBh
aW50RnJhbWVGb3JNZWRpYT46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNzAyLDYgKzcx
NiwxNCBAQCB2b2lkIEl0ZW1IYW5kbGU6OmNvcHlUbyhJdGVtSGFuZGxlIGRlc3RpbmF0aW9uKSBj
b25zdAogICAgICAgICBuZXcgKGRlc3RpbmF0aW9uLmRhdGEgKyBzaXplb2YoSXRlbVR5cGUpKSBG
aWxsUmVjdChnZXQ8RmlsbFJlY3Q+KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIGNh
c2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDogeworICAgICAgICBuZXcgKGRlc3RpbmF0aW9uLmRh
dGEgKyBzaXplb2YoSXRlbVR5cGUpKSBGbHVzaENvbnRleHQoZ2V0PEZsdXNoQ29udGV4dD4oKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRT
d2l0Y2hUbzogeworICAgICAgICBuZXcgKGRlc3RpbmF0aW9uLmRhdGEgKyBzaXplb2YoSXRlbVR5
cGUpKSBNZXRhQ29tbWFuZFN3aXRjaFRvKGdldDxNZXRhQ29tbWFuZFN3aXRjaFRvPigpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVk
aWE6IHsKICAgICAgICAgbmV3IChkZXN0aW5hdGlvbi5kYXRhICsgc2l6ZW9mKEl0ZW1UeXBlKSkg
UGFpbnRGcmFtZUZvck1lZGlhKGdldDxQYWludEZyYW1lRm9yTWVkaWE+KCkpOwogICAgICAgICBy
ZXR1cm47CkBAIC04NDksMTEgKzg3MSwxNCBAQCB2b2lkIEl0ZW1CdWZmZXI6OmNsZWFyKCkKIAog
dm9pZCBJdGVtQnVmZmVyOjpzd2FwV3JpdGFibGVCdWZmZXJJZk5lZWRlZChzaXplX3QgbnVtYmVy
T2ZCeXRlcykKIHsKLSAgICBpZiAobV93cml0dGVuTnVtYmVyT2ZCeXRlcyArIG51bWJlck9mQnl0
ZXMgPD0gbV93cml0YWJsZUJ1ZmZlci5jYXBhY2l0eSkKKyAgICBjb25zdGV4cHIgYXV0byBzaXpl
Rm9yQnVmZmVyU3dpdGNoSXRlbSA9IHNpemVvZihJdGVtVHlwZSkgKyBzaXplb2YoTWV0YUNvbW1h
bmRTd2l0Y2hUbyk7CisgICAgaWYgKG1fd3JpdHRlbk51bWJlck9mQnl0ZXMgKyBudW1iZXJPZkJ5
dGVzICsgc2l6ZUZvckJ1ZmZlclN3aXRjaEl0ZW0gPD0gbV93cml0YWJsZUJ1ZmZlci5jYXBhY2l0
eSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBuZXh0QnVmZmVyID0gY3JlYXRlSXRlbUJ1
ZmZlcihudW1iZXJPZkJ5dGVzKTsKKyAgICBhdXRvIG5leHRCdWZmZXIgPSBjcmVhdGVJdGVtQnVm
ZmVyKG51bWJlck9mQnl0ZXMgKyBzaXplRm9yQnVmZmVyU3dpdGNoSXRlbSk7CiAgICAgYm9vbCBo
YWRQcmV2aW91c0J1ZmZlciA9IG1fd3JpdGFibGVCdWZmZXI7CisgICAgaWYgKGhhZFByZXZpb3Vz
QnVmZmVyKQorICAgICAgICB1bmNoZWNrZWRBcHBlbmQ8TWV0YUNvbW1hbmRTd2l0Y2hUbz4obmV4
dEJ1ZmZlci5pZGVudGlmaWVyKTsKICAgICBhdXRvIHByZXZpb3VzQnVmZmVyID0gc3RkOjpleGNo
YW5nZShtX3dyaXRhYmxlQnVmZmVyLCB7IH0pOwogICAgIHByZXZpb3VzQnVmZmVyLmNhcGFjaXR5
ID0gc3RkOjpleGNoYW5nZShtX3dyaXR0ZW5OdW1iZXJPZkJ5dGVzLCAwKTsKICAgICBpZiAoaGFk
UHJldmlvdXNCdWZmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAK
aW5kZXggNGJhYTllYmYxMjllOTZjOTkxNTk1OWU3ODBlNjk5YzM0M2RmNWU3Yi4uOGYwMDI2MWIy
MGZkOWY5NDE2YjZlYmI0ZWUxNzFiNzJkNzc4Njg2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1UeXBlLmNwcApAQCAtMTI4LDYgKzEyOCwxMCBAQCBzaXplX3Qgc2l6ZU9mSXRl
bUluQnl0ZXMoSXRlbVR5cGUgdHlwZSkKICAgICAgICAgcmV0dXJuIHNpemVvZihGaWxsUGF0aCk7
CiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbEVsbGlwc2U6CiAgICAgICAgIHJldHVybiBzaXplb2Yo
RmlsbEVsbGlwc2UpOworICAgIGNhc2UgSXRlbVR5cGU6OkZsdXNoQ29udGV4dDoKKyAgICAgICAg
cmV0dXJuIHNpemVvZihGbHVzaENvbnRleHQpOworICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21t
YW5kU3dpdGNoVG86CisgICAgICAgIHJldHVybiBzaXplb2YoTWV0YUNvbW1hbmRTd2l0Y2hUbyk7
CiAgICAgY2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOgogICAgICAgICByZXR1cm4gc2l6ZW9m
KFB1dEltYWdlRGF0YSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgpA
QCAtMTc2LDYgKzE4MCw4IEBAIGJvb2wgaXNEcmF3aW5nSXRlbShJdGVtVHlwZSB0eXBlKQogICAg
IGNhc2UgSXRlbVR5cGU6OkNsaXBQYXRoOgogICAgIGNhc2UgSXRlbVR5cGU6OkNsaXBUb0RyYXdp
bmdDb21tYW5kczoKICAgICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTToKKyAgICBjYXNl
IEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6CisgICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRT
d2l0Y2hUbzoKICAgICBjYXNlIEl0ZW1UeXBlOjpSZXN0b3JlOgogICAgIGNhc2UgSXRlbVR5cGU6
OlJvdGF0ZToKICAgICBjYXNlIEl0ZW1UeXBlOjpTYXZlOgpAQCAtMjg0LDYgKzI5MCw4IEBAIGJv
b2wgaXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6RmlsbElu
bGluZVBhdGg6CiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUmVjdDoKKyAgICBjYXNl
IEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6CisgICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRT
d2l0Y2hUbzoKICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6UmVzdG9yZToKICAgICBjYXNlIEl0ZW1UeXBlOjpSb3RhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAppbmRleCBjZTRmODU3OWFjODc3YmI4ODNiNDk2
MzMzMjdmYTc4YzIzMTcxY2M2Li4zZWYxNDk3NTYyZmJmM2RiMGIxOTc3ZDcxZGUzMjFkZjVjNWI0
YjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKQEAgLTc3LDYgKzc3
LDggQEAgZW51bSBjbGFzcyBJdGVtVHlwZSA6IHVpbnQ4X3QgewogI2VuZGlmCiAgICAgRmlsbFBh
dGgsCiAgICAgRmlsbEVsbGlwc2UsCisgICAgRmx1c2hDb250ZXh0LAorICAgIE1ldGFDb21tYW5k
U3dpdGNoVG8sCiAgICAgUHV0SW1hZ2VEYXRhLAogICAgIFBhaW50RnJhbWVGb3JNZWRpYSwKICAg
ICBTdHJva2VSZWN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IDVl
YzhjMmVhMDA0NzIzNzQwYTIzMzM0MGNjZThjMmRhNGZjMjk1OWYuLjBkMjNmMGE4ODRhZTRlY2E3
NDFiYjgwNzk1YTEyZTQ3OWRkMmViOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5jcHAKQEAgLTk4Myw2ICs5ODMsMjMgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IEFwcGx5RGV2aWNlU2NhbGVGYWN0b3ImIGl0ZW0KICAgICBy
ZXR1cm4gdHM7CiB9CiAKK3ZvaWQgRmx1c2hDb250ZXh0OjphcHBseShHcmFwaGljc0NvbnRleHQm
KSBjb25zdAoreworICAgIC8vIEhhbmRsZWQgYnkgY2xpZW50LgorfQorCitzdGF0aWMgVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRmx1c2hDb250ZXh0JiBpdGVt
KQoreworICAgIHRzLmR1bXBQcm9wZXJ0eSgiaWRlbnRpZmllciIsIGl0ZW0uaWRlbnRpZmllcigp
KTsKKyAgICByZXR1cm4gdHM7Cit9CisKK3N0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBjb25zdCBNZXRhQ29tbWFuZFN3aXRjaFRvJiBpdGVtKQoreworICAgIHRz
LmR1bXBQcm9wZXJ0eSgiaWRlbnRpZmllciIsIGl0ZW0uaWRlbnRpZmllcigpKTsKKyAgICByZXR1
cm4gdHM7Cit9CisKIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBJdGVtVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewpAQCAtMTAzMyw2ICsxMDUw
LDggQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1U
eXBlIHR5cGUpCiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpGaWxsUGF0aDogdHMgPDwgImZp
bGwtcGF0aCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OkZpbGxFbGxpcHNlOiB0cyA8PCAi
ZmlsbC1lbGxpcHNlIjsgYnJlYWs7CisgICAgY2FzZSBJdGVtVHlwZTo6Rmx1c2hDb250ZXh0OiB0
cyA8PCAiZmx1c2gtY29udGV4dCI7IGJyZWFrOworICAgIGNhc2UgSXRlbVR5cGU6Ok1ldGFDb21t
YW5kU3dpdGNoVG86IHRzIDw8ICJtZXRhLWNvbW1hbmQtc3dpdGNoLXRvIjsgYnJlYWs7CiAgICAg
Y2FzZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOiB0cyA8PCAicHV0LWltYWdlLWRhdGEiOyBicmVh
azsKICAgICBjYXNlIEl0ZW1UeXBlOjpQYWludEZyYW1lRm9yTWVkaWE6IHRzIDw8ICJwYWludC1m
cmFtZS1mb3ItbWVkaWEiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTdHJva2VSZWN0OiB0
cyA8PCAic3Ryb2tlLXJlY3QiOyBicmVhazsKQEAgLTExOTAsNiArMTIwOSwxMiBAQCBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBJdGVtSGFuZGxlIGl0ZW0pCiAgICAgY2Fz
ZSBJdGVtVHlwZTo6RmlsbEVsbGlwc2U6CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PEZpbGxFbGxp
cHNlPigpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6
CisgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PEZsdXNoQ29udGV4dD4oKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRTd2l0Y2hUbzoKKyAgICAgICAgdHMgPDwg
aXRlbS5nZXQ8TWV0YUNvbW1hbmRTd2l0Y2hUbz4oKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBJdGVtVHlwZTo6UHV0SW1hZ2VEYXRhOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxQdXRJbWFn
ZURhdGE+KCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgK
aW5kZXggMzJkZThhZjAxNjM5MDMyMzBjMGMwMzg0ZTZlYjAxMGZlYmMzYTg4YS4uNjk2OWU4ZmYw
YmM3NjY0Yzc2ODgyN2NmMjQ2OTZiNDFmOTllZjE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJdGVtcy5oCkBAIC0yNTgzLDYgKzI1ODMsNTAgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX3Nj
YWxlRmFjdG9yIHsgMSB9OwogfTsKIAorY2xhc3MgRmx1c2hDb250ZXh0IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgY29uc3RleHByIEl0ZW1UeXBlIGl0ZW1UeXBlID0gSXRlbVR5cGU6OkZsdXNoQ29u
dGV4dDsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJbmxpbmVJdGVtID0gdHJ1ZTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRlbSA9IGZhbHNlOworCisgICAgRmx1
c2hDb250ZXh0KEZsdXNoSWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgICAgICA6IG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQorICAgIHsKKyAgICB9CisKKyAgICBGbHVzaElkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorCisgICAgdm9pZCBhcHBs
eShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKKworICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gbG9j
YWxCb3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29uc3QgeyByZXR1cm4gV1RGOjpudWxs
b3B0OyB9CisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBnbG9iYWxCb3VuZHMoKSBjb25zdCB7IHJl
dHVybiBXVEY6Om51bGxvcHQ7IH0KKworcHJpdmF0ZToKKyAgICBGbHVzaElkZW50aWZpZXIgbV9p
ZGVudGlmaWVyOworfTsKKworLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlZmFjdG9yZWQgc28g
dGhhdCB0aGUgY29tbWFuZCB0byAic3dpdGNoIHRvIHRoZSBuZXh0IGl0ZW0gYnVmZmVyIgorLy8g
aXMgbm90IGl0c2VsZiBhIGRyYXdpbmcgaXRlbS4KK2NsYXNzIE1ldGFDb21tYW5kU3dpdGNoVG8g
eworcHVibGljOgorICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVt
VHlwZTo6TWV0YUNvbW1hbmRTd2l0Y2hUbzsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNJ
bmxpbmVJdGVtID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgaXNEcmF3aW5nSXRl
bSA9IGZhbHNlOworCisgICAgTWV0YUNvbW1hbmRTd2l0Y2hUbyhJdGVtQnVmZmVySWRlbnRpZmll
ciBpZGVudGlmaWVyKQorICAgICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQorICAgIHsK
KyAgICB9CisKKyAgICBJdGVtQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91
bmRzKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IHsgcmV0dXJuIFdURjo6bnVsbG9wdDsg
fQorICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZ2xvYmFsQm91bmRzKCkgY29uc3QgeyByZXR1cm4g
V1RGOjpudWxsb3B0OyB9CisKK3ByaXZhdGU6CisgICAgSXRlbUJ1ZmZlcklkZW50aWZpZXIgbV9p
ZGVudGlmaWVyOworfTsKKwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgSXRl
bUhhbmRsZSk7CiAKIH0gLy8gbmFtZXNwYWNlIERpc3BsYXlMaXN0CkBAIC0yNjQxLDYgKzI2ODUs
OCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtVHlwZT4gewogI2VuZGlmCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpG
aWxsUGF0aCwKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OkZpbGxFbGxpcHNl
LAorICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Rmx1c2hDb250ZXh0LAorICAg
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6TWV0YUNvbW1hbmRTd2l0Y2hUbywKICAg
ICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlB1dEltYWdlRGF0YSwKICAgICBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlBhaW50RnJhbWVGb3JNZWRpYSwKICAgICBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlN0cm9rZVJlY3QsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4IDc4
YTQ3MjNlYTExMjc3YWQ2YWMyYzYyZjExOTYwODA0MjhlMzFmZjYuLjFiYTc4NWIyYjM5MTlhMWZm
MzRlYzE2NzQzMGYzZWU0M2EzZDBiNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCkBAIC04Miw2ICs4MiwxNiBAQCBw
cml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIAorICAgICAgICBp
ZiAoaXRlbS5pczxXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Rmx1c2hDb250ZXh0PigpKSB7CisgICAg
ICAgICAgICAvLyBGSVhNRTogTm90IGltcGxlbWVudGVkIHlldC4KKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGl0ZW0uaXM8V2ViQ29yZTo6RGlzcGxh
eUxpc3Q6Ok1ldGFDb21tYW5kU3dpdGNoVG8+KCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBO
b3QgaW1wbGVtZW50ZWQgeWV0LgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K
KwogICAgICAgICByZXR1cm4gbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmFwcGx5TWVkaWFJdGVt
KGl0ZW0sIGNvbnRleHQpOwogICAgIH0KIApAQCAtMTU2LDYgKzE2Niw4IEBAIHByaXZhdGU6CiAg
ICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsSW5saW5lUGF0
aDoKICNlbmRpZgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
RmlsbFJlY3Q6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpG
bHVzaENvbnRleHQ6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBl
OjpNZXRhQ29tbWFuZFN3aXRjaFRvOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpJdGVtVHlwZTo6UGFpbnRGcmFtZUZvck1lZGlhOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6UmVzdG9yZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU6OlJvdGF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5k
ZXggZThiNDY0YTk3MmIwNDZjNmE1NWJjYzJiMGY3ZmUxNDljYmRkNjVmNi4uMmU4YTY1NTEwYWMx
ODg5ODUzMWFmNmIyNGZmZjkxNzdlZWY3YmEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5
LmgKQEAgLTI1OSw2ICsyNTksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6
RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGaWxsSW5saW5lUGF0aDoKICNlbmRpZgogICAgICAgICBj
YXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6RmlsbFJlY3Q6CisgICAgICAgIGNh
c2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpGbHVzaENvbnRleHQ6CisgICAgICAg
IGNhc2UgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpNZXRhQ29tbWFuZFN3aXRjaFRv
OgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6UGFpbnRGcmFt
ZUZvck1lZGlhOgogICAgICAgICBjYXNlIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
UmVzdG9yZToKICAgICAgICAgY2FzZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlJv
dGF0ZToKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA2NDU1NDUzZmNkMjcyNGY0MDAwYTcyNDNmMGRhMDMyMmNlMmZhOWU2Li4yNzUxMGJkMzRmMDgy
ZDJjNjA1YTZkODIwMWVmZmYzN2MwZmNhMmJkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMTEtMDYgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIG5ldyBkaXNw
bGF5IGxpc3QgaXRlbSB0eXBlcyBpbiBwcmVwYXJhdGlvbiBmb3Igd2Via2l0Lm9yZy9iLzIxODQy
NgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTg4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkanVzdCBh
biBBUEkgdGVzdC4gU2VlIG90aGVyIENoYW5nZUxvZ3MgZm9yIG1vcmUgZGV0YWlsLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjAtMTEtMDYgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvbmN1cnJlbnQgZGlzcGxh
eSBsaXN0c10gQWRkIEFQSSB0ZXN0cyBmb3IgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlM
aXN0IGFuZCByZWxhdGVkIGNsYXNzZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9EaXNwbGF5TGlzdFRlc3RzLmNwcAppbmRleCBhMmU0OWExYTY2NWZlMTQ2
NWIwMGZlMjRlNTcwZjE0NTZhOWY3ZmVkLi40MTcwMjY0MmFkYjRjYzM2MmQ1NDk3ZTgzZDg4NDgy
NDZiYTY4OWIxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
RGlzcGxheUxpc3RUZXN0cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0Rpc3BsYXlMaXN0VGVzdHMuY3BwCkBAIC0xMjEsNiArMTIxLDggQEAgVEVTVChEaXNwbGF5
TGlzdFRlc3RzLCBBcHBlbmRJdGVtcykKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAj
ZW5kaWYKKyAgICAgICAgY2FzZSBJdGVtVHlwZTo6TWV0YUNvbW1hbmRTd2l0Y2hUbzoKKyAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICBvYnNlcnZlZFVu
ZXhwZWN0ZWRJdGVtID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>