<?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>182524</bug_id>
          
          <creation_ts>2018-02-05 20:09:38 -0800</creation_ts>
          <short_desc>There should be a way to disable [OverrideBuiltins] behavior in a given DOMWrapperWorld</short_desc>
          <delta_ts>2018-02-08 20:16:59 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>rmondello</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1396684</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-05 20:09:38 -0800</bug_when>
    <thetext>Make [OverrideBuiltins] a no-op outside the normal world. This is a legacy feature that is only needed for backward compatibility.
Let&apos;s try and make it a no-op outside the normal world.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396685</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-05 20:09:58 -0800</bug_when>
    <thetext>&lt;rdar://problem/9057327&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396686</commentid>
    <comment_count>2</comment_count>
      <attachid>333153</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-05 20:12:26 -0800</bug_when>
    <thetext>Created attachment 333153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396842</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2018-02-06 10:56:53 -0800</bug_when>
    <thetext>This seems weird to me. This would mean that the same code written for a normal page would run different in an isolated world. If we want to make coding in an isolated world easier, I would rather it be an opt-in mode for the specific isolated world.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397088</commentid>
    <comment_count>4</comment_count>
      <attachid>333262</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-06 21:14:16 -0800</bug_when>
    <thetext>Created attachment 333262
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397094</commentid>
    <comment_count>5</comment_count>
      <attachid>333264</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-06 21:51:09 -0800</bug_when>
    <thetext>Created attachment 333264
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397095</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-06 21:51:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/37300983&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397096</commentid>
    <comment_count>7</comment_count>
      <attachid>333265</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-06 21:53:26 -0800</bug_when>
    <thetext>Created attachment 333265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397097</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-06 21:55:43 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #3)
&gt; This seems weird to me. This would mean that the same code written for a
&gt; normal page would run different in an isolated world. If we want to make
&gt; coding in an isolated world easier, I would rather it be an opt-in mode for
&gt; the specific isolated world.

Ok, made it opt-in at Cocoa/C API level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397361</commentid>
    <comment_count>9</comment_count>
      <attachid>333265</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-02-07 16:10:26 -0800</bug_when>
    <thetext>Comment on attachment 333265
Patch

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

This has implications in the structure of prototype objects.

&gt; Tools/TestWebKitAPI/Tests/WebKit/override-builtins-test.html:5
&gt; +&lt;input id=&quot;test&quot; name=&quot;tagName&quot;&gt;

Please add a test case in the main world as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397421</commentid>
    <comment_count>10</comment_count>
      <attachid>333349</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-07 18:50:24 -0800</bug_when>
    <thetext>Created attachment 333349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397426</commentid>
    <comment_count>11</comment_count>
      <attachid>333351</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-07 19:04:06 -0800</bug_when>
    <thetext>Created attachment 333351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397427</commentid>
    <comment_count>12</comment_count>
      <attachid>333352</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-07 19:05:35 -0800</bug_when>
    <thetext>Created attachment 333352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397805</commentid>
    <comment_count>13</comment_count>
      <attachid>333352</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-08 19:08:42 -0800</bug_when>
    <thetext>Comment on attachment 333352
Patch

Rejecting attachment 333352 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
urces/UnifiedSource17.cpp -o /Volumes/Data/EWS/WebKit/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/x86_64/UnifiedSource17.o

** BUILD FAILED **


The following build commands failed:
	CompileC /Volumes/Data/EWS/WebKit/WebKitBuild/WebCore.build/Release/WebCore.build/Objects-normal/x86_64/UnifiedSource8.o /Volumes/Data/EWS/WebKit/WebKitBuild/Release/DerivedSources/WebCore/unified-sources/UnifiedSource8.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Full output: http://webkit-queues.webkit.org/results/6424076</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397806</commentid>
    <comment_count>14</comment_count>
      <attachid>333439</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-02-08 19:20:26 -0800</bug_when>
    <thetext>Created attachment 333439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397814</commentid>
    <comment_count>15</comment_count>
      <attachid>333439</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-08 20:16:57 -0800</bug_when>
    <thetext>Comment on attachment 333439
Patch

Clearing flags on attachment: 333439

Committed r228309: &lt;https://trac.webkit.org/changeset/228309&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397815</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-08 20:16:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333153</attachid>
            <date>2018-02-05 20:12:26 -0800</date>
            <delta_ts>2018-02-06 21:14:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182524-20180205201225.patch</filename>
            <type>text/plain</type>
            <size>4523</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzljNTJlMDczYTUwZjlj
ZTQ3YWUzZTMyZDM3ZTg0NDYzMTM4ODc3Zi4uNjQxMTMzYTcwNGM3OTY4OTNkNmNkODdjZTYyNmNj
ZDAyNDViYWYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTAyLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBbT3ZlcnJpZGVCdWls
dGluc10gYSBuby1vcCBvdXRzaWRlIHRoZSBub3JtYWwgd29ybGQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjUyNAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vOTA1NzMyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNYWtlIFtPdmVycmlkZUJ1aWx0aW5zXSBhIG5vLW9wIG91dHNpZGUgdGhlIG5vcm1h
bCB3b3JsZC4gVGhpcyBpcyBhIGxlZ2FjeSBmZWF0dXJlIHRoYXQgaXMgb25seSBuZWVkZWQKKyAg
ICAgICAgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6CisgICAgICAgIC0gaHR0cHM6Ly9oZXlj
YW0uZ2l0aHViLmlvL3dlYmlkbC8jT3ZlcnJpZGVCdWlsdGlucworCisgICAgICAgIExldCdzIHRy
eSBhbmQgbWFrZSBpdCBhIG5vLW9wIG91dHNpZGUgdGhlIG5vcm1hbCB3b3JsZCBzbyB0aGF0IGlu
amVjdGVkIHNjcmlwdHMgZG8gbm90IGhhdmUgdG8gZGVhbAorICAgICAgICB3aXRoIHRoaXMgb2Rk
IGxlZ2FjeSBiZWhhdmlvci4KKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL292ZXJyaWRlQnVp
bHRpbnMtb3V0c2lkZS1ub3JtYWwtd29ybGQuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmFjY2Vzc1Zpc2li
bGVOYW1lZFByb3BlcnR5KToKKwogMjAxOC0wMi0wNSAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0
ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIEFic3RyYWN0IGhlYXAgZ2VuZXJhdG9yIHNob3VsZCBp
bmNsdWRlIEphdmFTY3JpcHRDb3JlIGhlYWRlcnMgZGlyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oCmluZGV4IDNmODEx
NGY3NTk5NzUxM2ZjMTk2OWFmNTVjMDg1NDBiODNhNjcwMTUuLjQ1N2JhZGE5ZGViYmRjODg0ZWEw
YzNjMDUxNmU5ZTg2NzlmMzRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRp
YyBhdXRvIGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwg
SlNDbGFzcyYgdGhpc09iamVjCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICAv
LyAzLiBJZiBPIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIHRoYXQgaGFzIHRoZSBbT3ZlcnJpZGVC
dWlsdGluc10gZXh0ZW5kZWQgYXR0cmlidXRlLCB0aGVuIHJldHVybiB0cnVlLgotICAgIGlmIChv
dmVycmlkZUJ1aWx0aW5zID09IE92ZXJyaWRlQnVpbHRpbnM6OlllcykKKyAgICBpZiAob3ZlcnJp
ZGVCdWlsdGlucyA9PSBPdmVycmlkZUJ1aWx0aW5zOjpZZXMgJiYgTElLRUxZKHdvcmxkRm9yRE9N
T2JqZWN0KCZ0aGlzT2JqZWN0KS5pc05vcm1hbCgpKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
IAogICAgIC8vIDQuIEluaXRpYWxpemUgcHJvdG90eXBlIHRvIGJlIHRoZSB2YWx1ZSBvZiB0aGUg
aW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBPLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU3YzkxYmFhNmMw
MzkzNzMxNzEzZjc4OGIxZjQ5YjRjMjY1MGJjOWIuLjlkZTE2OThiMmViMjg5MjVmOTI2MjZjNTcy
Yjk2YzQ2MGRiZDdmMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0wMi0wNSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgW092ZXJyaWRlQnVpbHRp
bnNdIGEgbm8tb3Agb3V0c2lkZSB0aGUgbm9ybWFsIHdvcmxkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI1MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzkwNTczMjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9v
dmVycmlkZUJ1aWx0aW5zLW91dHNpZGUtbm9ybWFsLXdvcmxkLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9vdmVycmlkZUJ1aWx0aW5zLW91dHNpZGUtbm9ybWFsLXdv
cmxkLmh0bWw6IEFkZGVkLgorCiAyMDE4LTAyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdW5za2lwIGZldGNoLWV2ZW50LXJlc3BvbmQt
d2l0aC1wYXJ0aWFsLXN0cmVhbS5odHRwcy5odG1sIGFzIGl0IG5vIGxvbmdlciB0aW1lcyBvdXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvb3ZlcnJpZGVCdWlsdGlucy1vdXRz
aWRlLW5vcm1hbC13b3JsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL292
ZXJyaWRlQnVpbHRpbnMtb3V0c2lkZS1ub3JtYWwtd29ybGQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdhNTk1NjgzNzc0ZDc1NGNhYmMzZjA0YzVhMzEyMjEyNjAwNWQ5MzYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL292ZXJyaWRlQnVpbHRpbnMtb3V0c2lkZS1u
b3JtYWwtd29ybGQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorQ2hlY2tzIHRoYXQgW092
ZXJyaWRlQnVpbHRpbnNdIG9uIEhUTUxGb3JtRWxlbWVudCBkb2VzIG5vdCBhcHBseSBvdXRzaWRl
IHRoZSBub3JtYWwgd29ybGQuCisKK1BBU1M6IFtPdmVycmlkZUJ1aWx0aW5zXSBzaG91bGQgbm90
IGFwcGx5IG91dHNpZGUgdGhlIG5vcm1hbCB3b3JsZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL292ZXJyaWRlQnVpbHRpbnMtb3V0c2lkZS1ub3JtYWwtd29ybGQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvb3ZlcnJpZGVCdWlsdGlucy1vdXRzaWRlLW5vcm1hbC13
b3JsZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjZTBiYzRhYmUwNWQ0MjViZTg2NjAwNWM2ZWE4YTIyNTQy
ZDczMmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL292ZXJyaWRl
QnVpbHRpbnMtb3V0c2lkZS1ub3JtYWwtd29ybGQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8cD5DaGVja3MgdGhhdCBbT3ZlcnJpZGVCdWls
dGluc10gb24gSFRNTEZvcm1FbGVtZW50IGRvZXMgbm90IGFwcGx5IG91dHNpZGUgdGhlIG5vcm1h
bCB3b3JsZC48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxmb3JtPgorPGlucHV0IGlk
PSJ0ZXN0IiBuYW1lPSJ0YWdOYW1lIj4KKzwvZm9ybT4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHJ1
blRlc3QoKQoreworICBsZXQgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25z
b2xlJyk7CisgIGxldCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKS5wYXJl
bnROb2RlOworCisgIGlmIChmb3JtLnRhZ05hbWUgPT09ICJGT1JNIikKKyAgICAgIGNvbnNvbGUu
aW5uZXJIVE1MID0gIlBBU1M6IFtPdmVycmlkZUJ1aWx0aW5zXSBzaG91bGQgbm90IGFwcGx5IG91
dHNpZGUgdGhlIG5vcm1hbCB3b3JsZCI7CisgIGVsc2UKKyAgICAgIGNvbnNvbGUuaW5uZXJIVE1M
ID0gIkZBSUw6IFtPdmVycmlkZUJ1aWx0aW5zXSBzaG91bGQgbm90IGFwcGx5IG91dHNpZGUgdGhl
IG5vcm1hbCB3b3JsZCI7Cit9CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRX
b3JsZCgwLCBydW5UZXN0LnRvU3RyaW5nKCkgKyAiO3J1blRlc3QoKTsiKTsKK30KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333262</attachid>
            <date>2018-02-06 21:14:16 -0800</date>
            <delta_ts>2018-02-06 21:51:07 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>disableOverrideBuiltinsBehavior_wip.patch</filename>
            <type>text/plain</type>
            <size>5912</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmgKaW5kZXggYjM2
YzA5ODcxMGMuLjIxNzcwMWExOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9ET01XcmFwcGVyV29ybGQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9E
T01XcmFwcGVyV29ybGQuaApAQCAtNDcsNiArNDcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRT
aGFkb3dSb290SXNBbHdheXNPcGVuKCkgeyBtX3NoYWRvd1Jvb3RJc0Fsd2F5c09wZW4gPSB0cnVl
OyB9CiAgICAgYm9vbCBzaGFkb3dSb290SXNBbHdheXNPcGVuKCkgY29uc3QgeyByZXR1cm4gbV9z
aGFkb3dSb290SXNBbHdheXNPcGVuOyB9CiAKKyAgICB2b2lkIGRpc2FibGVPdmVycmlkZUJ1aWx0
aW5zQmVoYXZpb3IoKSB7IG1fc2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvciA9
IHRydWU7IH0KKyAgICBib29sIHNob3VsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3Io
KSBjb25zdCB7IHJldHVybiBtX3Nob3VsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3I7
IH0KKwogICAgIERPTU9iamVjdFdyYXBwZXJNYXAmIHdyYXBwZXJzKCkgeyByZXR1cm4gbV93cmFw
cGVyczsgfQogCiAgICAgYm9vbCBpc05vcm1hbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNOb3JtYWw7
IH0KQEAgLTYzLDYgKzY2LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pc05vcm1hbDsKICAg
ICBib29sIG1fc2hhZG93Um9vdElzQWx3YXlzT3BlbiB7IGZhbHNlIH07CisgICAgYm9vbCBtX3No
b3VsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IgeyBmYWxzZSB9OwogfTsKIAogRE9N
V3JhcHBlcldvcmxkJiBub3JtYWxXb3JsZChKU0M6OlZNJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaAppbmRleCAzZjgxMTRm
NzU5OS4uNTYzYjI0MjY4NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBh
dXRvIGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlND
bGFzcyYgdGhpc09iamVjCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICAvLyAz
LiBJZiBPIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIHRoYXQgaGFzIHRoZSBbT3ZlcnJpZGVCdWls
dGluc10gZXh0ZW5kZWQgYXR0cmlidXRlLCB0aGVuIHJldHVybiB0cnVlLgotICAgIGlmIChvdmVy
cmlkZUJ1aWx0aW5zID09IE92ZXJyaWRlQnVpbHRpbnM6OlllcykKKyAgICBpZiAob3ZlcnJpZGVC
dWlsdGlucyA9PSBPdmVycmlkZUJ1aWx0aW5zOjpZZXMgJiYgIXdvcmxkRm9yRE9NT2JqZWN0KCZ0
aGlzT2JqZWN0KS5zaG91bGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKCkpCiAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAKICAgICAvLyA0LiBJbml0aWFsaXplIHByb3RvdHlwZSB0byBi
ZSB0aGUgdmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgTy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0
V29ybGQuaAppbmRleCA2NDcwN2JiZWE3ZC4uYjI5MmE0ZjQxNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luU2NyaXB0V29ybGQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLmgKQEAgLTM5
LDYgKzM5LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQog
CiAtICh2b2lkKWNsZWFyV3JhcHBlcnM7CiAtICh2b2lkKW1ha2VBbGxTaGFkb3dSb290c09wZW4g
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClkaXNh
YmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luU2NyaXB0V29ybGQubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm1tCmluZGV4IDhjYzYy
OGFjMTc2Li42ZWJhMDEyOWQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm1tCkBAIC02MSw2ICs2MSwxMSBAQCAtICh2
b2lkKW1ha2VBbGxTaGFkb3dSb290c09wZW4KICAgICBfd29ybGQtPm1ha2VBbGxTaGFkb3dSb290
c09wZW4oKTsKIH0KIAorLSAodm9pZClkaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yCit7
CisgICAgX3dvcmxkLT5kaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKCk7Cit9CisKIC0g
KE5TU3RyaW5nICopbmFtZQogewogICAgIHJldHVybiBfd29ybGQtPm5hbWUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVNjcmlwdFdvcmxkLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmNwcAppbmRleCBiNDA5YzU5ZDZkNS4uZWY2OTc3
OWNmNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAKQEAgLTU4
LDYgKzU4LDExIEBAIHZvaWQgV0tCdW5kbGVTY3JpcHRXb3JsZE1ha2VBbGxTaGFkb3dSb290c09w
ZW4oV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsCiAgICAgdG9JbXBsKHNjcmlwdFdv
cmxkUmVmKS0+bWFrZUFsbFNoYWRvd1Jvb3RzT3BlbigpOwogfQogCit2b2lkIFdLQnVuZGxlU2Ny
aXB0V29ybGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKFdLQnVuZGxlU2NyaXB0V29y
bGRSZWYgc2NyaXB0V29ybGRSZWYpCit7CisgICAgdG9JbXBsKHNjcmlwdFdvcmxkUmVmKS0+ZGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigpOworfQorCiBXS1N0cmluZ1JlZiBXS0J1bmRs
ZVNjcmlwdFdvcmxkQ29weU5hbWUoV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsZFJl
ZikKIHsKICAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKHNjcmlwdFdvcmxkUmVmKS0+bmFt
ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oCmluZGV4IDMyNTM1OWQx
ZWRiLi4zNjVhNmQzNTEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5o
CkBAIC0zOCw2ICszOCw3IEBAIFdLX0VYUE9SVCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIFdLQnVu
ZGxlU2NyaXB0V29ybGRDcmVhdGVXb3JsZCgpOwogV0tfRVhQT1JUIFdLQnVuZGxlU2NyaXB0V29y
bGRSZWYgV0tCdW5kbGVTY3JpcHRXb3JsZE5vcm1hbFdvcmxkKCk7CiBXS19FWFBPUlQgdm9pZCBX
S0J1bmRsZVNjcmlwdFdvcmxkQ2xlYXJXcmFwcGVycyhXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHNj
cmlwdFdvcmxkKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU2NyaXB0V29ybGRNYWtlQWxsU2hh
ZG93Um9vdHNPcGVuKFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0V29ybGQpOworV0tfRVhQ
T1JUIHZvaWQgV0tCdW5kbGVTY3JpcHRXb3JsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZp
b3IoV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsZCk7CiBXS19FWFBPUlQgV0tTdHJp
bmdSZWYgV0tCdW5kbGVTY3JpcHRXb3JsZENvcHlOYW1lKFdLQnVuZGxlU2NyaXB0V29ybGRSZWYg
c2NyaXB0V29ybGQpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxk
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVNjcmlwdFdvcmxkLmNwcAppbmRleCBiMTc4MzFkMmM3YS4uZDE5YjM3ZTM4YWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVNjcmlwdFdvcmxkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAKQEAgLTExMiw0ICsxMTIsOSBA
QCB2b2lkIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6Om1ha2VBbGxTaGFkb3dSb290c09wZW4o
KQogICAgIG1fd29ybGQtPnNldFNoYWRvd1Jvb3RJc0Fsd2F5c09wZW4oKTsKIH0KIAordm9pZCBJ
bmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkOjpkaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9y
KCkKK3sKKyAgICBtX3dvcmxkLT5kaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkLmgKaW5kZXggNTA5MmFlNzI1NzYuLjMxMmRlMjdkNDU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3Js
ZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVNjcmlwdFdvcmxkLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBjbGVhcldyYXBwZXJzKCk7CiAgICAgdm9pZCBtYWtlQWxsU2hhZG93Um9vdHNPcGVuKCk7Cisg
ICAgdm9pZCBkaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKCk7CiAKICAgICBjb25zdCBT
dHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333264</attachid>
            <date>2018-02-06 21:51:09 -0800</date>
            <delta_ts>2018-02-06 21:53:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182524-20180206215108.patch</filename>
            <type>text/plain</type>
            <size>26664</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM1MjA3NGZiNGMxMmI1
YjhiOTZjNDk0NTUzZTk3YzAwMjVmZjQ0ZS4uZTUyMzhjZmMzYjBjMWU2N2U3YjJkODdjZTIwZDE3
MThkZjgyMmVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTAyLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGhlcmUgc2hvdWxkIGJlIGEg
d2F5IHRvIGRpc2FibGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIGluIGEgZ2l2ZW4gRE9N
V3JhcHBlcldvcmxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODI1MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNTczMjc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBmbGFnIG9uIERP
TVdyYXBwZXJXb3JsZCBpbmRpY2F0aW5nIGlmIHRoZSBbT3ZlcnJpZGVCdWlsdGluc10gYmVoYXZp
b3Igc2hvdWxkCisgICAgICAgIGJlIGVuYWJsZWQgaW4gdGhpcyB3b3JsZCBvciBub3QuIFRoZSBi
ZWhhdmlvciBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIFdlYi1jb21wYXRpYmlsaXR5LgorICAg
ICAgICBUaGlzIGZsYWcgaXMgcXVlcmllZCBpbiBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eSgp
IHdoZW4gZG9pbmcgdGhlIG5hbWVkIHByb3BlcnR5CisgICAgICAgIGxvb2t1cC4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTVdy
YXBwZXJXb3JsZC5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkOjpkaXNhYmxl
T3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdyYXBwZXJX
b3JsZDo6c2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvciBjb25zdCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OmFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5KToKKwogMjAxOC0wMi0wNiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQt
cmVzcG9uZC13aXRoLXJlc3BvbnNlLWJvZHktd2l0aC1pbnZhbGlkLWNodW5rLmh0dHBzLmh0bWwg
aXMgZmxha3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggNTk5NjJjYTJkZWEyNmY4OGUyYTNjY2I1YmNjYTJhMDRiNjRi
ZTlkMS4uNTc2N2VmMjU4OTBmNGY0NGY4N2YzNzdkMGNkODEyN2ZjMTI1NTYxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyOCBAQAorMjAxOC0wMi0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFRoZXJlIHNob3VsZCBiZSBhIHdheSB0byBkaXNhYmxlIFtPdmVycmlk
ZUJ1aWx0aW5zXSBiZWhhdmlvciBpbiBhIGdpdmVuIERPTVdyYXBwZXJXb3JsZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTI0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS85MDU3MzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBDIEFQSSBvbiBXS0J1bmRsZVNjcmlwdFdvcmxkIGFuZCBDb2Nv
YSBBUEkgb24gV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgdG8KKyAgICAgICAgZGlzYWJs
ZSB0aGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIG9uIGEgZ2l2ZW4gc2NyaXB0IHdvcmxk
LgorCisgICAgICAgIFRoZSBbT3ZlcnJpZGVCdWlsdGluc10gYmVoYXZpb3IgWzFdIGlzIGxlZ2Fj
eSBiZWhhdmlvciB0aGF0IGlzIG5lZWRlZCBmb3IgV2ViIGNvbXBhdGliaWxpdHkKKyAgICAgICAg
YnV0IGFsbG93aW5nIHRoZSBjbGllbnQgdG8gZGlzYWJsZSB0aGlzIGJlaGF2aW9yIGluIGEgZ2l2
ZW4gd29ybGQgbWFrZXMgZGV2ZWxvcG1lbnQgZWFzaWVyCisgICAgICAgIGFuZCBydW5uaW5nIGlu
amVjdGVkIHNjcmlwdCBvbiB1bmNvbnRyb2xsZWQgY29udGVudCBhIGxvdCBtb3JlIHJlbGlhYmxl
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5tbToKKyAgICAg
ICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgZGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvcl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVTY3JpcHRXb3JsZC5jcHA6CisgICAgICAgIChXS0J1bmRsZVNjcmlwdFdvcmxkRGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6ZGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmg6CisKIDIwMTgtMDItMDYgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlvdXQgVGVzdCBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC13YWl0cy1m
b3ItYWN0aXZhdGUuaHR0cHMuaHRtbCBpcyBhIGZsYWt5IGZhaWx1cmUgb24gbWFjT1MgYW5kIGlP
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxk
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaAppbmRleCBi
MzZjMDk4NzEwY2ZmMmZlOWFhNmJhYmJiYmI0ZjM1NTViY2I2ODcwLi4yMTc3MDFhMThlOTEzYzc2
ODA4NjE4ODZmMmU2N2U4YmE3YzExZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9ET01XcmFwcGVyV29ybGQuaApAQCAtNDcsNiArNDcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRTaGFkb3dSb290SXNBbHdheXNPcGVuKCkgeyBtX3NoYWRvd1Jvb3RJc0Fsd2F5c09wZW4gPSB0
cnVlOyB9CiAgICAgYm9vbCBzaGFkb3dSb290SXNBbHdheXNPcGVuKCkgY29uc3QgeyByZXR1cm4g
bV9zaGFkb3dSb290SXNBbHdheXNPcGVuOyB9CiAKKyAgICB2b2lkIGRpc2FibGVPdmVycmlkZUJ1
aWx0aW5zQmVoYXZpb3IoKSB7IG1fc2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlv
ciA9IHRydWU7IH0KKyAgICBib29sIHNob3VsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZp
b3IoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZp
b3I7IH0KKwogICAgIERPTU9iamVjdFdyYXBwZXJNYXAmIHdyYXBwZXJzKCkgeyByZXR1cm4gbV93
cmFwcGVyczsgfQogCiAgICAgYm9vbCBpc05vcm1hbCgpIGNvbnN0IHsgcmV0dXJuIG1faXNOb3Jt
YWw7IH0KQEAgLTYzLDYgKzY2LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pc05vcm1hbDsK
ICAgICBib29sIG1fc2hhZG93Um9vdElzQWx3YXlzT3BlbiB7IGZhbHNlIH07CisgICAgYm9vbCBt
X3Nob3VsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IgeyBmYWxzZSB9OwogfTsKIAog
RE9NV3JhcHBlcldvcmxkJiBub3JtYWxXb3JsZChKU0M6OlZNJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaAppbmRleCAzZjgx
MTRmNzU5OTc1MTNmYzE5NjlhZjU1YzA4NTQwYjgzYTY3MDE1Li41NjNiMjQyNjg0ZmFmYzk5OTE4
YjU2OWI5NDkzMWU3MTkyNzFiN2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgKQEAgLTEwNCw3ICsxMDQsNyBAQCBzdGF0
aWMgYXV0byBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUs
IEpTQ2xhc3MmIHRoaXNPYmplYwogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAg
Ly8gMy4gSWYgTyBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSB0aGF0IGhhcyB0aGUgW092ZXJyaWRl
QnVpbHRpbnNdIGV4dGVuZGVkIGF0dHJpYnV0ZSwgdGhlbiByZXR1cm4gdHJ1ZS4KLSAgICBpZiAo
b3ZlcnJpZGVCdWlsdGlucyA9PSBPdmVycmlkZUJ1aWx0aW5zOjpZZXMpCisgICAgaWYgKG92ZXJy
aWRlQnVpbHRpbnMgPT0gT3ZlcnJpZGVCdWlsdGluczo6WWVzICYmICF3b3JsZEZvckRPTU9iamVj
dCgmdGhpc09iamVjdCkuc2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigpKQog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogCiAgICAgLy8gNC4gSW5pdGlhbGl6ZSBwcm90b3R5cGUg
dG8gYmUgdGhlIHZhbHVlIG9mIHRoZSBpbnRlcm5hbCBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9m
IE8uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNj
cmlwdFdvcmxkLmgKaW5kZXggNjQ3MDdiYmVhN2Q3OWRlZDYyMDg1NmJlMjBiOGViYTYzNGYwOTRl
Yy4uYjI5MmE0ZjQxNzkyMDE5NTMwOGU4MzFjN2E3ZWI1OWY2OTBlYzNlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlBy
b2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaApA
QCAtMzksNiArMzksNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEwKSwgaW9zKDgu
MCkpCiAKIC0gKHZvaWQpY2xlYXJXcmFwcGVyczsKIC0gKHZvaWQpbWFrZUFsbFNoYWRvd1Jvb3Rz
T3BlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiksIGlvcygxMC4wKSk7CistICh2b2lk
KWRpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5TY3JpcHRXb3JsZC5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQubW0KaW5kZXgg
OGNjNjI4YWMxNzYzZmE1Njk1ZDc0MTA1YzNlNDhlOThlODc4NGQ2MS4uNmViYTAxMjlkNzc3NDk0
YjdiMGFhNTg4ODA0NDkyMTA4MGU2NzM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRX
b3JsZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm1tCkBAIC02MSw2ICs2MSwxMSBA
QCAtICh2b2lkKW1ha2VBbGxTaGFkb3dSb290c09wZW4KICAgICBfd29ybGQtPm1ha2VBbGxTaGFk
b3dSb290c09wZW4oKTsKIH0KIAorLSAodm9pZClkaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2
aW9yCit7CisgICAgX3dvcmxkLT5kaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKCk7Cit9
CisKIC0gKE5TU3RyaW5nICopbmFtZQogewogICAgIHJldHVybiBfd29ybGQtPm5hbWUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVNjcmlwdFdvcmxkLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmNwcAppbmRleCBiNDA5YzU5ZDZkNTkx
MjUyYzlmNzhlMmY2M2I1YjAxMzVlN2U0YWRhLi5lZjY5Nzc5Y2Y0YTY5ZDk3YTczZjMzOTQwMWNh
N2NiZmQwZGM3ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuY3Bw
CkBAIC01OCw2ICs1OCwxMSBAQCB2b2lkIFdLQnVuZGxlU2NyaXB0V29ybGRNYWtlQWxsU2hhZG93
Um9vdHNPcGVuKFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0V29ybAogICAgIHRvSW1wbChz
Y3JpcHRXb3JsZFJlZiktPm1ha2VBbGxTaGFkb3dSb290c09wZW4oKTsKIH0KIAordm9pZCBXS0J1
bmRsZVNjcmlwdFdvcmxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcihXS0J1bmRsZVNj
cmlwdFdvcmxkUmVmIHNjcmlwdFdvcmxkUmVmKQoreworICAgIHRvSW1wbChzY3JpcHRXb3JsZFJl
ZiktPmRpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IoKTsKK30KKwogV0tTdHJpbmdSZWYg
V0tCdW5kbGVTY3JpcHRXb3JsZENvcHlOYW1lKFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0
V29ybGRSZWYpCiB7CiAgICAgcmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChzY3JpcHRXb3JsZFJl
ZiktPm5hbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuaAppbmRleCAz
MjUzNTlkMWVkYmViOThiYjBmMmExNjQ2MjVlMzZmY2ZkNzY0NDU5Li4zNjVhNmQzNTEwODJlYjU5
ZmI1NmQ4YzlkNGUwYTgwNDM2YjAzNjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlw
dFdvcmxkLmgKQEAgLTM4LDYgKzM4LDcgQEAgV0tfRVhQT1JUIFdLQnVuZGxlU2NyaXB0V29ybGRS
ZWYgV0tCdW5kbGVTY3JpcHRXb3JsZENyZWF0ZVdvcmxkKCk7CiBXS19FWFBPUlQgV0tCdW5kbGVT
Y3JpcHRXb3JsZFJlZiBXS0J1bmRsZVNjcmlwdFdvcmxkTm9ybWFsV29ybGQoKTsKIFdLX0VYUE9S
VCB2b2lkIFdLQnVuZGxlU2NyaXB0V29ybGRDbGVhcldyYXBwZXJzKFdLQnVuZGxlU2NyaXB0V29y
bGRSZWYgc2NyaXB0V29ybGQpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTY3JpcHRXb3JsZE1h
a2VBbGxTaGFkb3dSb290c09wZW4oV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsZCk7
CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNjcmlwdFdvcmxkRGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvcihXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHNjcmlwdFdvcmxkKTsKIFdLX0VYUE9S
VCBXS1N0cmluZ1JlZiBXS0J1bmRsZVNjcmlwdFdvcmxkQ29weU5hbWUoV0tCdW5kbGVTY3JpcHRX
b3JsZFJlZiBzY3JpcHRXb3JsZCk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2Ny
aXB0V29ybGQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3BwCmluZGV4IGIxNzgzMWQyYzdhOTQzZGM0ZDZjMzQ1
NTFkMzJiYjBiMmY0ODZmYzguLmQxOWIzN2UzOGFkYzU5MTcwY2QxYjViZTk1MDNhMzQ0NmRlYTBi
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAKQEAgLTExMiw0
ICsxMTIsOSBAQCB2b2lkIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6Om1ha2VBbGxTaGFkb3dS
b290c09wZW4oKQogICAgIG1fd29ybGQtPnNldFNoYWRvd1Jvb3RJc0Fsd2F5c09wZW4oKTsKIH0K
IAordm9pZCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkOjpkaXNhYmxlT3ZlcnJpZGVCdWlsdGlu
c0JlaGF2aW9yKCkKK3sKKyAgICBtX3dvcmxkLT5kaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2
aW9yKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkLmgKaW5kZXggNTA5MmFlNzI1NzZlY2ExODZiMmI1NDg2YmRmNWYxNmRhOTY3
OTUwMy4uMzEyZGUyN2Q0NTQ2MjBlMjQ3YTMyMWIwYmRjNjRhZGFlOWUxZTE0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
U2NyaXB0V29ybGQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oCkBAIC01MSw2ICs1MSw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgY2xlYXJXcmFwcGVycygpOwogICAgIHZvaWQgbWFrZUFsbFNoYWRvd1Jvb3Rz
T3BlbigpOworICAgIHZvaWQgZGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigpOwogCiAg
ICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NWE0MjVlZWU3
NGI5NDlkMTliM2I1NDJkNjdjMTFhZGJiNGU1YjQ2Li4yZGMyZWU0ODAwZGNmNzBkZWY3YjExNDBh
ZGEzZDVjYWVkNWU3YmRkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTgtMDItMDYgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBUaGVyZSBzaG91bGQgYmUgYSB3YXkgdG8gZGlzYWJs
ZSBbT3ZlcnJpZGVCdWlsdGluc10gYmVoYXZpb3IgaW4gYSBnaXZlbiBET01XcmFwcGVyV29ybGQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjUyNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTA1NzMyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURp
c2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OnJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRs
ZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcDogQWRkZWQuCisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5z
QmVoYXZpb3JUZXN0OjpJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZp
b3JUZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkluamVjdGVkQnVuZGxlRGlzYWJsZU92
ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3Q6OmluaXRpYWxpemUpOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L292ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRtbDogQWRkZWQu
CisKIDIwMTgtMDItMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEhhc1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gYml0IHNob3VsZCBiZSBzZW50IHdoZW4g
Y3JlYXRpbmcgYSBuZXcgcGFnZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiYmIxN2Y5Njli
YWM5MmM3M2QzYmM3MDU5MjcyZmQ5MWE1NDQyNWZiLi4yYWZjZWVlOTZjMTlmMGY4ZjFhMmZhZmE4
YzE1MjZjYmYyNGRkZWM2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTM0LDYgKzUzNCw5
IEBACiAJCTdDRDRDMjZFMUUyQzBFNkUwMDkyOTQ3MCAvKiBTdHJpbmdDb25jYXRlbmF0ZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0Q0QzI2QzFF
MkMwRTZFMDA5Mjk0NzAgLyogU3RyaW5nQ29uY2F0ZW5hdGUuY3BwICovOyB9OwogCQk3Q0VGQTk2
NjFBQzBCOUUyMDBCOTEwRkQgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRUZBOTY0MUFDMEI5
RTIwMEI5MTBGRCAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tICovOyB9OwogCQk3
Q0ZCQ0FFNTE3NDMyMzhGMDBCMkJGQ0YgLyogV2lsbExvYWRfQnVuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRkJDQUUzMTc0MzIzOEUwMEIy
QkZDRiAvKiBXaWxsTG9hZF9CdW5kbGUuY3BwICovOyB9OworCQk4MzE0OEIwNjIwMkFDNkE0MDBC
QURFOTkgLyogSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTQ4QjA1
MjAyQUM2ODIwMEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5z
QmVoYXZpb3IuY3BwICovOyB9OworCQk4MzE0OEIwNzIwMkFDNkFEMDBCQURFOTkgLyogSW5qZWN0
ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRsZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzE0OEIwNDIwMkFDNjgy
MDBCQURFOTkgLyogSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9y
X0J1bmRsZS5jcHAgKi87IH07CisJCTgzMTQ4QjA5MjAyQUM3OEQwMEJBREU5OSAvKiBvdmVycmlk
ZS1idWlsdGlucy10ZXN0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODMxNDhCMDgyMDJBQzc2ODAwQkFERTk5IC8qIG92ZXJyaWRlLWJ1
aWx0aW5zLXRlc3QuaHRtbCAqLzsgfTsKIAkJODM0OUQzQzIxREI5NkRERTAwNEE5RjY1IC8qIENv
bnRleHRNZW51RG93bmxvYWQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzQ5RDNDMTFEQjk2RERBMDA0QTlGNjUgLyogQ29udGV4dE1lbnVEb3dubG9h
ZC5tbSAqLzsgfTsKIAkJODM0OUQzQzQxREI5NzI4RTAwNEE5RjY1IC8qIGxpbmstd2l0aC1kb3du
bG9hZC1hdHRyaWJ1dGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4MzQ5RDNDMzFEQjk3MjRGMDA0QTlGNjUgLyogbGluay13aXRoLWRv
d25sb2FkLWF0dHJpYnV0ZS5odG1sICovOyB9OwogCQk4MzVDRjk2NzFEMjVGQ0Q2MDAxQTY1RDQg
LyogUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNUNGOTY2MUQyNUZDRDYwMDFBNjVE
NCAvKiBSZXN0b3JlU2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24uY3BwICovOyB9OwpAQCAt
MTAyMCw2ICsxMDIzLDcgQEAKIAkJCQlDRUE2Q0YyODE5Q0NGNjlEMDA2NEY1QTcgLyogb3Blbi1h
bmQtY2xvc2Utd2luZG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJN0NDQjk5MjMx
RDNCNEE0NjAwMzkyMkY2IC8qIG9wZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8sCiAJCQkJMjkwQTlCQjkxNzM1RjYzODAwRDcxQkJDIC8qIE9wZW5OZXdX
aW5kb3cuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk4MzE0OEIwOTIwMkFDNzhEMDBC
QURFOTkgLyogb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCUNFQkNBMTM5MUUzQTgwN0EwMEM3MzI5MyAvKiBwYWdlLXdpdGgtY3NwLWlmcmFtZS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNFQkNBMTM4MUUzQTgwN0EwMEM3MzI5MyAv
KiBwYWdlLXdpdGgtY3NwLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0VCQ0ExM0Ix
RTNBODA3QTAwQzczMjkzIC8qIHBhZ2Utd2l0aG91dC1jc3AtaWZyYW1lLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCkBAIC0xNTIyLDYgKzE1MjYsOSBAQAogCQk3Q0ZCQ0FERDE3NDMyMzRGMDBC
MkJGQ0YgLyogV2lsbExvYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2lsbExvYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0ZCQ0FFMzE3
NDMyMzhFMDBCMkJGQ0YgLyogV2lsbExvYWRfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdpbGxMb2FkX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgxQjUwMTkyMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ0J1aWxkZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzE0OEIwNDIwMkFDNjgyMDBCQURFOTkg
LyogSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRsZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZURp
c2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODMxNDhCMDUyMDJBQzY4MjAwQkFERTk5IC8qIEluamVjdGVkQnVuZGxl
RGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVo
YXZpb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzE0OEIwODIwMkFDNzY4
MDBCQURFOTkgLyogb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gIm92ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRtbCI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzNDlEM0MxMURCOTZEREEwMDRBOUY2NSAvKiBDb250ZXh0TWVudURv
d25sb2FkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29udGV4
dE1lbnVEb3dubG9hZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM0OUQzQzMx
REI5NzI0RjAwNEE5RjY1IC8qIGxpbmstd2l0aC1kb3dubG9hZC1hdHRyaWJ1dGUuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsaW5rLXdpdGgtZG93bmxvYWQtYXR0cmlidXRlLmh0
bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzVDRjk2NjFEMjVGQ0Q2MDAxQTY1
RDQgLyogUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc3RvcmVTZXNzaW9uU3RhdGVXaXRob3V0TmF2
aWdhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTg1LDYgKzI1OTIs
OCBAQAogCQkJCTRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhh
bmRsZV9CdW5kbGUuY3BwICovLAogCQkJCUJDNTc1QUFDMTI2RTgzQjkwMDZGMEYxMiAvKiBJbmpl
Y3RlZEJ1bmRsZUJhc2ljLmNwcCAqLywKIAkJCQlCQzU3NUFBRjEyNkU4M0M4MDA2RjBGMTIgLyog
SW5qZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwICovLAorCQkJCTgzMTQ4QjA1MjAyQUM2ODIw
MEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3Iu
Y3BwICovLAorCQkJCTgzMTQ4QjA0MjAyQUM2ODIwMEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURp
c2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcCAqLywKIAkJCQkzNzhFNjQ3
MTE2MzI2NDZEMDBCNkM2NzYgLyogSW5qZWN0ZWRCdW5kbGVGcmFtZUhpdFRlc3QuY3BwICovLAog
CQkJCTM3OEU2NDc1MTYzMjY1NUQwMEI2QzY3NiAvKiBJbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVz
dF9CdW5kbGUuY3BwICovLAogCQkJCUY2NjBBQTEyMTVBNjE5QzgwMDNBMTI0MyAvKiBJbmplY3Rl
ZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja1dpbnMuY3BwICovLApAQCAtMjgx
MCw2ICsyODE5LDcgQEAKIAkJCQk1Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAgLyogbmF2aWdhdGlv
bi1jbGllbnQtZGVmYXVsdC1jcnlwdG8uaHRtbCAqLywKIAkJCQlDOTlCNjc1RTFFMzk3MzVDMDBG
QzZDODAgLyogbm8tYXV0b3BsYXktd2l0aC1jb250cm9scy5odG1sICovLAogCQkJCUNFQTZDRjI3
MTlDQ0Y2OUQwMDY0RjVBNyAvKiBvcGVuLWFuZC1jbG9zZS13aW5kb3cuaHRtbCAqLywKKwkJCQk4
MzE0OEIwODIwMkFDNzY4MDBCQURFOTkgLyogb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sICov
LAogCQkJCTBFQkJDQzY1MUZGRjlEQ0UwMEZBNDJBQiAvKiBwb3AtdXAtY2hlY2suaHRtbCAqLywK
IAkJCQlGNkZERERENTE0MjQxQzQ4MDA0RjE3MjkgLyogcHVzaC1zdGF0ZS5odG1sICovLAogCQkJ
CTBGNTY1MUY4MUZDRTUwRTgwMDMxMEZCQyAvKiBzY3JvbGwtdG8tYW5jaG9yLmh0bWwgKi8sCkBA
IC0zNDc2LDYgKzM0ODYsNyBAQAogCQkJCTUxOThBMjQwMUVBN0U1OUYwMDg5MTBCNyAvKiBJbml0
aWFsV2FybWVkUHJvY2Vzc1VzZWQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QTk1QkRFMTFFOUJF
QzVGMDA4NjU0OTggLyogSW5qZWN0ZWRCdW5kbGVBcHBsZUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RUZCMUE0MTFBRTYwMDQ0N0M0QyAvKiBJbmplY3RlZEJ1bmRsZUJhc2ljLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTgzMTQ4QjA2MjAyQUM2QTQwMEJBREU5OSAvKiBJbmplY3Rl
ZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdFRkMxQTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxlRnJhbWVIaXRU
ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUZEMUE0MTFBRTYwMDQ0N0M0QyAvKiBJ
bmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja1dpbnMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0M4M0UwQjgxRDBBNjRCRDAwRkVCQ0YzIC8qIEluamVjdGVkQnVuZGxl
TWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTM1MTYsNiArMzUy
Nyw3IEBACiAJCQkJNUMwQkY4OEQxREQ1OTY0RDAwQjAwMzI4IC8qIE1lbW9yeVByZXNzdXJlSGFu
ZGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEI3MUQwQTY0QjgwMEZFQkNGMyAvKiBN
ZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzBCRjg5NDFE
RDU5OUM5MDBCMDAzMjggLyogTWVudVR5cGVzRm9yTW91c2VFdmVudHMubW0gaW4gU291cmNlcyAq
LywKKwkJCQk1MTY1RkUwNDIwMUVFNjIwMDA5RjdFQzMgLyogTWVzc2FnZVBvcnRQcm92aWRlcnMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlBNUIxNDlERTFGNUExOUVBMDBDNkRBRkYgLyogTUlNRVR5
cGVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUNEMUM2QzFCMzhDRTQzMDAxNDJD
QTUgLyogTW9kYWxBbGVydHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCNjFEMEE2NEIz
MDBGRUJDRjMgLyogTW9kYWxBbGVydHNTUEkuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zNTYwLDcg
KzM1NzIsNiBAQAogCQkJCTdDQ0U3RjBDMUE0MTFBRTYwMDQ0N0M0QyAvKiBQcml2YXRlQnJvd3Np
bmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NjQ3
QjEyNjFFQkEzQjg1MDA0MUQ3RUYgLyogUHJvY2Vzc0RpZFRlcm1pbmF0ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QzgzRTBDMTFEMEE2NTJGMDBGRUJDRjMgLyogUHJvdmlzaW9uYWxVUkxOb3RD
aGFuZ2UubW0gaW4gU291cmNlcyAqLywKLQkJCQk1MTY1RkUwNDIwMUVFNjIwMDA5RjdFQzMgLyog
TWVzc2FnZVBvcnRQcm92aWRlcnMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VDODFBNDEx
QTdFMDA0NDdDNEMgLyogUHVibGljU3VmZml4Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0Uw
QzIxRDBBNjUzNTAwRkVCQ0YzIC8qIFF1aWNrTG9vay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdD
Q0U3RjBEMUE0MTFBRTYwMDQ0N0M0QyAvKiBSZWxvYWRQYWdlQWZ0ZXJDcmFzaC5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTM3NTYsNiArMzc2Nyw3IEBACiAJCQkJQkM1NzVBQjAxMjZFODNDODAwNkYw
RjEyIC8qIEluamVjdGVkQnVuZGxlQmFzaWNfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDNTc1QUEyMTI2RTc2NjAwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFREUyMjYxM0U1RTdFNzAwRTYyRkU4IC8qIEluamVjdGVk
QnVuZGxlQ29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTgzMTQ4QjA3MjAyQUM2
QUQwMEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZp
b3JfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OEU2NDc3MTYzMjY1NUUwMEI2QzY3
NiAvKiBJbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRjY2MEFBMTUxNUE2MUFCRjAwM0ExMjQzIC8qIEluamVjdGVkQnVuZGxlSW5pdGlhbGl6
YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2luc19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM1NzVBOTcxMjZFNzRGMTAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlTWFpbi5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0lu
amVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1
aWx0aW5zQmVoYXZpb3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmMTBhNTEwNThkZWU4MjlkNzE0ZDQ5ZjE0
MjhmZWJhNmRmNzU0YjIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3Iu
Y3BwCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKKyNpbmNsdWRlIDxX
ZWJLaXQvV0tSZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0
aWMgdW5zaWduZWQgdGVzdE51bWJlciA9IDA7CitzdGF0aWMgYm9vbCBkb25lID0gZmFsc2U7CisK
K3N0YXRpYyB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
eworICAgIEFTU0VSVF9OT1RfTlVMTChmcmFtZSk7CisKKyAgICBFWFBFQ1RfRVEocGFnZSwgV0tG
cmFtZUdldFBhZ2UoZnJhbWUpKTsKKworICAgIHN3aXRjaCAoKyt0ZXN0TnVtYmVyKSB7CisgICAg
Y2FzZSAxOgorICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoIlBBU1M6IFtPdmVycmlkZUJ1aWx0aW5z
XSB3YXMgbm90IGRpc2FibGVkIiwgYWxlcnRUZXh0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSAyOgorICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoIlBBU1M6IFtPdmVycmlkZUJ1aWx0aW5zXSB3
YXMgZGlzYWJsZWQiLCBhbGVydFRleHQpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorfQorCitURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3Zl
cnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91
cFJlZj4gcGFnZUdyb3VwKEFkb3B0V0ssIFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIo
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJy
aWRlQnVpbHRpbnNCZWhhdmlvclRlc3RQYWdlR3JvdXAiKSkpOworCisgICAgV0tSZXRhaW5QdHI8
V0tDb250ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmpl
Y3RlZEJ1bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhh
dmlvclRlc3QiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmll
dyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworCisgICAgV0tQYWdlVUlDbGllbnRW
MCB1aUNsaWVudDsKKyAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsK
KworICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7CisgICAgdWlDbGllbnQucnVuSmF2YVNj
cmlwdEFsZXJ0ID0gcnVuSmF2YVNjcmlwdEFsZXJ0OworCisgICAgV0tQYWdlU2V0UGFnZVVJQ2xp
ZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CisKKyAgICBXS1JldGFpblB0cjxX
S1VSTFJlZj4gdXJsKEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJvdmVycmlk
ZS1idWlsdGlucy10ZXN0IiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBh
Z2UoKSwgdXJsLmdldCgpKTsKKworICAgIFV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5z
QmVoYXZpb3JfQnVuZGxlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0lu
amVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ4NWM4MDc3NThjOGJmNTQwMjMzNTc3ZWQxZmExZDhmNTk4Mjk5ZjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1
bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcApAQCAtMCwwICsx
LDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgV0tfSEFWRV9D
X1NQSQorCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVUZXN0LmgiCisjaW5jbHVkZSA8V2ViS2l0
L1dLQnVuZGxlUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUHJpdmF0ZS5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVNjcmlwdFdvcmxkLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKK25hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKKworY2xhc3MgSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGlu
c0JlaGF2aW9yVGVzdCA6IHB1YmxpYyBJbmplY3RlZEJ1bmRsZVRlc3QgeworcHVibGljOgorICAg
IEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QoY29uc3Qg
c3RkOjpzdHJpbmcmIGlkZW50aWZpZXIpCisgICAgICAgIDogSW5qZWN0ZWRCdW5kbGVUZXN0KGlk
ZW50aWZpZXIpCisgICAgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZShXS0J1bmRs
ZVJlZiBidW5kbGUsIFdLVHlwZVJlZiB1c2VyRGF0YSkKKyAgICB7CisgICAgICAgIGFzc2VydChX
S0dldFR5cGVJRCh1c2VyRGF0YSkgPT0gV0tCdW5kbGVQYWdlR3JvdXBHZXRUeXBlSUQoKSk7Cisg
ICAgICAgIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCA9IHN0YXRpY19jYXN0PFdLQnVu
ZGxlUGFnZUdyb3VwUmVmPih1c2VyRGF0YSk7CisKKyAgICAgICAgYXV0byB3b3JsZDEgPSBXS0J1
bmRsZVNjcmlwdFdvcmxkQ3JlYXRlV29ybGQoKTsKKworICAgICAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4gc291cmNlMShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygK
KyAgICAgICAgICAgICJ3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkge1xuIgorICAgICAgICAg
ICAgIiAgICBjb25zdCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5wYXJl
bnROb2RlO1xuIgorICAgICAgICAgICAgIiAgICBhbGVydChmb3JtLnRhZ05hbWUgIT0gJ0ZPUk0n
ID8gJ1BBU1M6IFtPdmVycmlkZUJ1aWx0aW5zXSB3YXMgbm90IGRpc2FibGVkJyA6ICdGQUlMOiBb
T3ZlcnJpZGVCdWlsdGluc10gd2FzIGRpc2FibGVkJyk7XG4iCisgICAgICAgICAgICAifVxuIikp
OworICAgICAgICBXS0J1bmRsZUFkZFVzZXJTY3JpcHQoYnVuZGxlLCBwYWdlR3JvdXAsIHdvcmxk
MSwgc291cmNlMS5nZXQoKSwgMCwgMCwgMCwga1dLSW5qZWN0QXREb2N1bWVudEVuZCwga1dLSW5q
ZWN0SW5BbGxGcmFtZXMpOworCisgICAgICAgIGF1dG8gd29ybGQyID0gV0tCdW5kbGVTY3JpcHRX
b3JsZENyZWF0ZVdvcmxkKCk7CisgICAgICAgIFdLQnVuZGxlU2NyaXB0V29ybGREaXNhYmxlT3Zl
cnJpZGVCdWlsdGluc0JlaGF2aW9yKHdvcmxkMik7CisKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IHNvdXJjZTIoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
CisgICAgICAgICAgICAid2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiIKKyAgICAgICAg
ICAgICIgICAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0JykucGFy
ZW50Tm9kZTtcbiIKKyAgICAgICAgICAgICIgICAgYWxlcnQoZm9ybS50YWdOYW1lID09PSAnRk9S
TScgPyAnUEFTUzogW092ZXJyaWRlQnVpbHRpbnNdIHdhcyBkaXNhYmxlZCcgOiAnRkFJTDogW092
ZXJyaWRlQnVpbHRpbnNdIHdhcyBub3QgZGlzYWJsZWQnKTtcbiIKKyAgICAgICAgICAgICJ9XG4i
KSk7CisgICAgICAgIFdLQnVuZGxlQWRkVXNlclNjcmlwdChidW5kbGUsIHBhZ2VHcm91cCwgd29y
bGQyLCBzb3VyY2UyLmdldCgpLCAwLCAwLCAwLCBrV0tJbmplY3RBdERvY3VtZW50RW5kLCBrV0tJ
bmplY3RJbkFsbEZyYW1lcyk7CisgICAgfQorfTsKKworc3RhdGljIEluamVjdGVkQnVuZGxlVGVz
dDo6UmVnaXN0ZXI8SW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9y
VGVzdD4gcmVnaXN0cmFyKCJJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVo
YXZpb3JUZXN0Iik7CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9vdmVycmlkZS1idWls
dGlucy10ZXN0Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9vdmVycmlk
ZS1idWlsdGlucy10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U2YTBjNjk5Nzg1Mjk5ZjhiOTNhNGE2
YzI5MjgyMDk4OTBhNDdiZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L292ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRtbApAQCAtMCwwICsxLDggQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxmb3JtPgorPGlucHV0IGlkPSJ0ZXN0
IiBuYW1lPSJ0YWdOYW1lIj4KKzwvZm9ybT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333265</attachid>
            <date>2018-02-06 21:53:26 -0800</date>
            <delta_ts>2018-02-07 18:50:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182524-20180206215326.patch</filename>
            <type>text/plain</type>
            <size>26729</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM1MjA3NGZiNGMxMmI1
YjhiOTZjNDk0NTUzZTk3YzAwMjVmZjQ0ZS4uZTUyMzhjZmMzYjBjMWU2N2U3YjJkODdjZTIwZDE3
MThkZjgyMmVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTAyLTA2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGhlcmUgc2hvdWxkIGJlIGEg
d2F5IHRvIGRpc2FibGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIGluIGEgZ2l2ZW4gRE9N
V3JhcHBlcldvcmxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODI1MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNTczMjc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBmbGFnIG9uIERP
TVdyYXBwZXJXb3JsZCBpbmRpY2F0aW5nIGlmIHRoZSBbT3ZlcnJpZGVCdWlsdGluc10gYmVoYXZp
b3Igc2hvdWxkCisgICAgICAgIGJlIGVuYWJsZWQgaW4gdGhpcyB3b3JsZCBvciBub3QuIFRoZSBi
ZWhhdmlvciBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIFdlYi1jb21wYXRpYmlsaXR5LgorICAg
ICAgICBUaGlzIGZsYWcgaXMgcXVlcmllZCBpbiBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eSgp
IHdoZW4gZG9pbmcgdGhlIG5hbWVkIHByb3BlcnR5CisgICAgICAgIGxvb2t1cC4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTVdy
YXBwZXJXb3JsZC5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkOjpkaXNhYmxl
T3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdyYXBwZXJX
b3JsZDo6c2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvciBjb25zdCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OmFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5KToKKwogMjAxOC0wMi0wNiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQt
cmVzcG9uZC13aXRoLXJlc3BvbnNlLWJvZHktd2l0aC1pbnZhbGlkLWNodW5rLmh0dHBzLmh0bWwg
aXMgZmxha3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggNTk5NjJjYTJkZWEyNmY4OGUyYTNjY2I1YmNjYTJhMDRiNjRi
ZTlkMS4uNThjNmZjZTcxOGZhY2U1OTJmNmVlNzM0YmJkODllMmFhMWMyZmQ1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMCBAQAorMjAxOC0wMi0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFRoZXJlIHNob3VsZCBiZSBhIHdheSB0byBkaXNhYmxlIFtPdmVycmlk
ZUJ1aWx0aW5zXSBiZWhhdmlvciBpbiBhIGdpdmVuIERPTVdyYXBwZXJXb3JsZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTI0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS85MDU3MzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBDIEFQSSBvbiBXS0J1bmRsZVNjcmlwdFdvcmxkIGFuZCBDb2Nv
YSBBUEkgb24gV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgdG8KKyAgICAgICAgZGlzYWJs
ZSB0aGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIG9uIGEgZ2l2ZW4gc2NyaXB0IHdvcmxk
LgorCisgICAgICAgIFRoZSBbT3ZlcnJpZGVCdWlsdGluc10gYmVoYXZpb3IgWzFdIGlzIGxlZ2Fj
eSBiZWhhdmlvciB0aGF0IGlzIG5lZWRlZCBmb3IgV2ViIGNvbXBhdGliaWxpdHkKKyAgICAgICAg
YnV0IGFsbG93aW5nIHRoZSBjbGllbnQgdG8gZGlzYWJsZSB0aGlzIGJlaGF2aW9yIGluIGEgZ2l2
ZW4gd29ybGQgbWFrZXMgZGV2ZWxvcG1lbnQgZWFzaWVyCisgICAgICAgIGFuZCBydW5uaW5nIGlu
amVjdGVkIHNjcmlwdCBvbiB1bmNvbnRyb2xsZWQgY29udGVudCBhIGxvdCBtb3JlIHJlbGlhYmxl
LgorCisgICAgICAgIFsxXSBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNPdmVycmlk
ZUJ1aWx0aW5zCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm1t
OgorICAgICAgICAoLVtXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCBkaXNhYmxlT3ZlcnJp
ZGVCdWlsdGluc0JlaGF2aW9yXSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlU2NyaXB0
V29ybGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkOjpkaXNhYmxlT3Zl
cnJpZGVCdWlsdGluc0JlaGF2aW9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaDoKKwogMjAxOC0wMi0wNiAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dCBUZXN0IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LXdhaXRzLWZvci1hY3RpdmF0ZS5odHRwcy5odG1sIGlzIGEgZmxha3kgZmFpbHVyZSBvbiBtYWNP
UyBhbmQgaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01XcmFw
cGVyV29ybGQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5o
CmluZGV4IGIzNmMwOTg3MTBjZmYyZmU5YWE2YmFiYmJiYjRmMzU1NWJjYjY4NzAuLjIxNzcwMWEx
OGU5MTNjNzY4MDg2MTg4NmYyZTY3ZThiYTdjMTFmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oCkBAIC00Nyw2ICs0Nyw5IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFNoYWRvd1Jvb3RJc0Fsd2F5c09wZW4oKSB7IG1fc2hhZG93Um9vdElzQWx3YXlz
T3BlbiA9IHRydWU7IH0KICAgICBib29sIHNoYWRvd1Jvb3RJc0Fsd2F5c09wZW4oKSBjb25zdCB7
IHJldHVybiBtX3NoYWRvd1Jvb3RJc0Fsd2F5c09wZW47IH0KIAorICAgIHZvaWQgZGlzYWJsZU92
ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigpIHsgbV9zaG91bGREaXNhYmxlT3ZlcnJpZGVCdWlsdGlu
c0JlaGF2aW9yID0gdHJ1ZTsgfQorICAgIGJvb2wgc2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvcjsgfQorCiAgICAgRE9NT2JqZWN0V3JhcHBlck1hcCYgd3JhcHBlcnMoKSB7IHJl
dHVybiBtX3dyYXBwZXJzOyB9CiAKICAgICBib29sIGlzTm9ybWFsKCkgY29uc3QgeyByZXR1cm4g
bV9pc05vcm1hbDsgfQpAQCAtNjMsNiArNjYsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lz
Tm9ybWFsOwogICAgIGJvb2wgbV9zaGFkb3dSb290SXNBbHdheXNPcGVuIHsgZmFsc2UgfTsKKyAg
ICBib29sIG1fc2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvciB7IGZhbHNlIH07
CiB9OwogCiBET01XcmFwcGVyV29ybGQmIG5vcm1hbFdvcmxkKEpTQzo6Vk0mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oCmlu
ZGV4IDNmODExNGY3NTk5NzUxM2ZjMTk2OWFmNTVjMDg1NDBiODNhNjcwMTUuLjU2M2IyNDI2ODRm
YWZjOTk5MThiNTY5Yjk0OTMxZTcxOTI3MWI3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaApAQCAtMTA0LDcgKzEwNCw3
IEBAIHN0YXRpYyBhdXRvIGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5KEpTQzo6RXhlY1N0YXRl
JiBzdGF0ZSwgSlNDbGFzcyYgdGhpc09iamVjCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAKICAgICAvLyAzLiBJZiBPIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIHRoYXQgaGFzIHRoZSBb
T3ZlcnJpZGVCdWlsdGluc10gZXh0ZW5kZWQgYXR0cmlidXRlLCB0aGVuIHJldHVybiB0cnVlLgot
ICAgIGlmIChvdmVycmlkZUJ1aWx0aW5zID09IE92ZXJyaWRlQnVpbHRpbnM6OlllcykKKyAgICBp
ZiAob3ZlcnJpZGVCdWlsdGlucyA9PSBPdmVycmlkZUJ1aWx0aW5zOjpZZXMgJiYgIXdvcmxkRm9y
RE9NT2JqZWN0KCZ0aGlzT2JqZWN0KS5zaG91bGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2
aW9yKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICAgICAvLyA0LiBJbml0aWFsaXplIHBy
b3RvdHlwZSB0byBiZSB0aGUgdmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJv
cGVydHkgb2YgTy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luU2NyaXB0V29ybGQuaAppbmRleCA2NDcwN2JiZWE3ZDc5ZGVkNjIwODU2YmUyMGI4ZWJh
NjM0ZjA5NGVjLi5iMjkyYTRmNDE3OTIwMTk1MzA4ZTgzMWM3YTdlYjU5ZjY5MGVjM2U0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRX
b3JsZC5oCkBAIC0zOSw2ICszOSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTAp
LCBpb3MoOC4wKSkKIAogLSAodm9pZCljbGVhcldyYXBwZXJzOwogLSAodm9pZCltYWtlQWxsU2hh
ZG93Um9vdHNPcGVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsK
Ky0gKHZvaWQpZGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvciBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5t
bQppbmRleCA4Y2M2MjhhYzE3NjNmYTU2OTVkNzQxMDVjM2U0OGU5OGU4Nzg0ZDYxLi42ZWJhMDEy
OWQ3Nzc0OTRiN2IwYWE1ODg4MDQ0OTIxMDgwZTY3MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJ
blNjcmlwdFdvcmxkLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQubW0KQEAgLTYxLDYg
KzYxLDExIEBAIC0gKHZvaWQpbWFrZUFsbFNoYWRvd1Jvb3RzT3BlbgogICAgIF93b3JsZC0+bWFr
ZUFsbFNoYWRvd1Jvb3RzT3BlbigpOwogfQogCistICh2b2lkKWRpc2FibGVPdmVycmlkZUJ1aWx0
aW5zQmVoYXZpb3IKK3sKKyAgICBfd29ybGQtPmRpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZp
b3IoKTsKK30KKwogLSAoTlNTdHJpbmcgKiluYW1lCiB7CiAgICAgcmV0dXJuIF93b3JsZC0+bmFt
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuY3BwCmluZGV4IGI0MDlj
NTlkNmQ1OTEyNTJjOWY3OGUyZjYzYjViMDEzNWU3ZTRhZGEuLmVmNjk3NzljZjRhNjlkOTdhNzNm
MzM5NDAxY2E3Y2JmZDBkYzdlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRX
b3JsZC5jcHAKQEAgLTU4LDYgKzU4LDExIEBAIHZvaWQgV0tCdW5kbGVTY3JpcHRXb3JsZE1ha2VB
bGxTaGFkb3dSb290c09wZW4oV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsCiAgICAg
dG9JbXBsKHNjcmlwdFdvcmxkUmVmKS0+bWFrZUFsbFNoYWRvd1Jvb3RzT3BlbigpOwogfQogCit2
b2lkIFdLQnVuZGxlU2NyaXB0V29ybGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKFdL
QnVuZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0V29ybGRSZWYpCit7CisgICAgdG9JbXBsKHNjcmlw
dFdvcmxkUmVmKS0+ZGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigpOworfQorCiBXS1N0
cmluZ1JlZiBXS0J1bmRsZVNjcmlwdFdvcmxkQ29weU5hbWUoV0tCdW5kbGVTY3JpcHRXb3JsZFJl
ZiBzY3JpcHRXb3JsZFJlZikKIHsKICAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKHNjcmlw
dFdvcmxkUmVmKS0+bmFtZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5o
CmluZGV4IDMyNTM1OWQxZWRiZWI5OGJiMGYyYTE2NDYyNWUzNmZjZmQ3NjQ0NTkuLjM2NWE2ZDM1
MTA4MmViNTlmYjU2ZDhjOWQ0ZTBhODA0MzZiMDM2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlU2NyaXB0V29ybGQuaApAQCAtMzgsNiArMzgsNyBAQCBXS19FWFBPUlQgV0tCdW5kbGVTY3Jp
cHRXb3JsZFJlZiBXS0J1bmRsZVNjcmlwdFdvcmxkQ3JlYXRlV29ybGQoKTsKIFdLX0VYUE9SVCBX
S0J1bmRsZVNjcmlwdFdvcmxkUmVmIFdLQnVuZGxlU2NyaXB0V29ybGROb3JtYWxXb3JsZCgpOwog
V0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTY3JpcHRXb3JsZENsZWFyV3JhcHBlcnMoV0tCdW5kbGVT
Y3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsZCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNjcmlw
dFdvcmxkTWFrZUFsbFNoYWRvd1Jvb3RzT3BlbihXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHNjcmlw
dFdvcmxkKTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU2NyaXB0V29ybGREaXNhYmxlT3ZlcnJp
ZGVCdWlsdGluc0JlaGF2aW9yKFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0V29ybGQpOwog
V0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQnVuZGxlU2NyaXB0V29ybGRDb3B5TmFtZShXS0J1bmRs
ZVNjcmlwdFdvcmxkUmVmIHNjcmlwdFdvcmxkKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVTY3JpcHRXb3JsZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAKaW5kZXggYjE3ODMxZDJjN2E5NDNk
YzRkNmMzNDU1MWQzMmJiMGIyZjQ4NmZjOC4uZDE5YjM3ZTM4YWRjNTkxNzBjZDFiNWJlOTUwM2Ez
NDQ2ZGVhMGJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcApA
QCAtMTEyLDQgKzExMiw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6bWFrZUFs
bFNoYWRvd1Jvb3RzT3BlbigpCiAgICAgbV93b3JsZC0+c2V0U2hhZG93Um9vdElzQWx3YXlzT3Bl
bigpOwogfQogCit2b2lkIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6OmRpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3IoKQoreworICAgIG1fd29ybGQtPmRpc2FibGVPdmVycmlkZUJ1aWx0
aW5zQmVoYXZpb3IoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlU2NyaXB0V29ybGQuaAppbmRleCA1MDkyYWU3MjU3NmVjYTE4NmIyYjU0ODZiZGY1
ZjE2ZGE5Njc5NTAzLi4zMTJkZTI3ZDQ1NDYyMGUyNDdhMzIxYjBiZGM2NGFkYWU5ZTFlMTRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVTY3JpcHRXb3JsZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgKQEAgLTUxLDYgKzUxLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBjbGVhcldyYXBwZXJzKCk7CiAgICAgdm9pZCBtYWtlQWxsU2hh
ZG93Um9vdHNPcGVuKCk7CisgICAgdm9pZCBkaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9y
KCk7CiAKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0K
IApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ1
YTQyNWVlZTc0Yjk0OWQxOWIzYjU0MmQ2N2MxMWFkYmI0ZTViNDYuLjJkYzJlZTQ4MDBkY2Y3MGRl
ZjdiMTE0MGFkYTNkNWNhZWQ1ZTdiZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0wMi0wNiAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFRoZXJlIHNob3VsZCBiZSBhIHdheSB0
byBkaXNhYmxlIFtPdmVycmlkZUJ1aWx0aW5zXSBiZWhhdmlvciBpbiBhIGdpdmVuIERPTVdyYXBw
ZXJXb3JsZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgyNTI0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MDU3MzI3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVk
QnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHA6IEFkZGVkLgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVj
dGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvclRlc3Q6OkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvclRlc3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SW5qZWN0ZWRCdW5kbGVE
aXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdDo6aW5pdGlhbGl6ZSk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1s
OiBBZGRlZC4KKwogMjAxOC0wMi0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgSGFzU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBiaXQgc2hvdWxkIGJlIHNl
bnQgd2hlbiBjcmVhdGluZyBhIG5ldyBwYWdlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJi
YjE3Zjk2OWJhYzkyYzczZDNiYzcwNTkyNzJmZDkxYTU0NDI1ZmIuLjJhZmNlZWU5NmMxOWYwZjhm
MWEyZmFmYThjMTUyNmNiZjI0ZGRlYzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MzQs
NiArNTM0LDkgQEAKIAkJN0NENEMyNkUxRTJDMEU2RTAwOTI5NDcwIC8qIFN0cmluZ0NvbmNhdGVu
YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
RDRDMjZDMUUyQzBFNkUwMDkyOTQ3MCAvKiBTdHJpbmdDb25jYXRlbmF0ZS5jcHAgKi87IH07CiAJ
CTdDRUZBOTY2MUFDMEI5RTIwMEI5MTBGRCAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3Jl
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFRkE5
NjQxQUMwQjlFMjAwQjkxMEZEIC8qIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0gKi87
IH07CiAJCTdDRkJDQUU1MTc0MzIzOEYwMEIyQkZDRiAvKiBXaWxsTG9hZF9CdW5kbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGQkNBRTMxNzQz
MjM4RTAwQjJCRkNGIC8qIFdpbGxMb2FkX0J1bmRsZS5jcHAgKi87IH07CisJCTgzMTQ4QjA2MjAy
QUM2QTQwMEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVo
YXZpb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODMxNDhCMDUyMDJBQzY4MjAwQkFERTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvci5jcHAgKi87IH07CisJCTgzMTQ4QjA3MjAyQUM2QUQwMEJBREU5OSAv
KiBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTQ4QjA0
MjAyQUM2ODIwMEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5z
QmVoYXZpb3JfQnVuZGxlLmNwcCAqLzsgfTsKKwkJODMxNDhCMDkyMDJBQzc4RDAwQkFERTk5IC8q
IG92ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzE0OEIwODIwMkFDNzY4MDBCQURFOTkgLyogb3Zl
cnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sICovOyB9OwogCQk4MzQ5RDNDMjFEQjk2RERFMDA0QTlG
NjUgLyogQ29udGV4dE1lbnVEb3dubG9hZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDlEM0MxMURCOTZEREEwMDRBOUY2NSAvKiBDb250ZXh0TWVu
dURvd25sb2FkLm1tICovOyB9OwogCQk4MzQ5RDNDNDFEQjk3MjhFMDA0QTlGNjUgLyogbGluay13
aXRoLWRvd25sb2FkLWF0dHJpYnV0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDlEM0MzMURCOTcyNEYwMDRBOUY2NSAvKiBsaW5r
LXdpdGgtZG93bmxvYWQtYXR0cmlidXRlLmh0bWwgKi87IH07CiAJCTgzNUNGOTY3MUQyNUZDRDYw
MDFBNjVENCAvKiBSZXN0b3JlU2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1Q0Y5NjYxRDI1RkNE
NjAwMUE2NUQ0IC8qIFJlc3RvcmVTZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbi5jcHAgKi87
IH07CkBAIC0xMDIwLDYgKzEwMjMsNyBAQAogCQkJCUNFQTZDRjI4MTlDQ0Y2OUQwMDY0RjVBNyAv
KiBvcGVuLWFuZC1jbG9zZS13aW5kb3cuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3
Q0NCOTkyMzFEM0I0QTQ2MDAzOTIyRjYgLyogb3Blbi1tdWx0aXBsZS1leHRlcm5hbC11cmwuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyOTBBOUJCOTE3MzVGNjM4MDBENzFCQkMgLyog
T3Blbk5ld1dpbmRvdy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTgzMTQ4QjA5MjAy
QUM3OEQwMEJBREU5OSAvKiBvdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJQ0VCQ0ExMzkxRTNBODA3QTAwQzczMjkzIC8qIHBhZ2Utd2l0aC1jc3At
aWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0VCQ0ExMzgxRTNBODA3QTAw
QzczMjkzIC8qIHBhZ2Utd2l0aC1jc3AuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlD
RUJDQTEzQjFFM0E4MDdBMDBDNzMyOTMgLyogcGFnZS13aXRob3V0LWNzcC1pZnJhbWUuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE1MjIsNiArMTUyNiw5IEBACiAJCTdDRkJDQUREMTc0
MzIzNEYwMEIyQkZDRiAvKiBXaWxsTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXaWxsTG9hZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
RkJDQUUzMTc0MzIzOEUwMEIyQkZDRiAvKiBXaWxsTG9hZF9CdW5kbGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2lsbExvYWRfQnVuZGxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFCNTAxOTIxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1
aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nQnVp
bGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMTQ4QjA0MjAyQUM2ODIw
MEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3Jf
QnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVk
QnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MzE0OEIwNTIwMkFDNjgyMDBCQURFOTkgLyogSW5qZWN0
ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMTQ4QjA4
MjAyQUM3NjgwMEJBREU5OSAvKiBvdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAib3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM0OUQzQzExREI5NkREQTAwNEE5RjY1IC8qIENvbnRl
eHRNZW51RG93bmxvYWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBDb250ZXh0TWVudURvd25sb2FkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzQ5RDNDMzFEQjk3MjRGMDA0QTlGNjUgLyogbGluay13aXRoLWRvd25sb2FkLWF0dHJpYnV0ZS5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxpbmstd2l0aC1kb3dubG9hZC1hdHRy
aWJ1dGUuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNUNGOTY2MUQyNUZD
RDYwMDFBNjVENCAvKiBSZXN0b3JlU2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzdG9yZVNlc3Npb25TdGF0ZVdp
dGhvdXROYXZpZ2F0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1ODUs
NiArMjU5Miw4IEBACiAJCQkJNEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1
bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi8sCiAJCQkJQkM1NzVBQUMxMjZFODNCOTAwNkYwRjEy
IC8qIEluamVjdGVkQnVuZGxlQmFzaWMuY3BwICovLAogCQkJCUJDNTc1QUFGMTI2RTgzQzgwMDZG
MEYxMiAvKiBJbmplY3RlZEJ1bmRsZUJhc2ljX0J1bmRsZS5jcHAgKi8sCisJCQkJODMxNDhCMDUy
MDJBQzY4MjAwQkFERTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNC
ZWhhdmlvci5jcHAgKi8sCisJCQkJODMxNDhCMDQyMDJBQzY4MjAwQkFERTk5IC8qIEluamVjdGVk
QnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwICovLAogCQkJ
CTM3OEU2NDcxMTYzMjY0NkQwMEI2QzY3NiAvKiBJbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdC5j
cHAgKi8sCiAJCQkJMzc4RTY0NzUxNjMyNjU1RDAwQjZDNjc2IC8qIEluamVjdGVkQnVuZGxlRnJh
bWVIaXRUZXN0X0J1bmRsZS5jcHAgKi8sCiAJCQkJRjY2MEFBMTIxNUE2MTlDODAwM0ExMjQzIC8q
IEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2lucy5jcHAgKi8s
CkBAIC0yODEwLDYgKzI4MTksNyBAQAogCQkJCTU3OTdGRTMyMUVCMTVBODkwMEIyRjRBMCAvKiBu
YXZpZ2F0aW9uLWNsaWVudC1kZWZhdWx0LWNyeXB0by5odG1sICovLAogCQkJCUM5OUI2NzVFMUUz
OTczNUMwMEZDNkM4MCAvKiBuby1hdXRvcGxheS13aXRoLWNvbnRyb2xzLmh0bWwgKi8sCiAJCQkJ
Q0VBNkNGMjcxOUNDRjY5RDAwNjRGNUE3IC8qIG9wZW4tYW5kLWNsb3NlLXdpbmRvdy5odG1sICov
LAorCQkJCTgzMTQ4QjA4MjAyQUM3NjgwMEJBREU5OSAvKiBvdmVycmlkZS1idWlsdGlucy10ZXN0
Lmh0bWwgKi8sCiAJCQkJMEVCQkNDNjUxRkZGOURDRTAwRkE0MkFCIC8qIHBvcC11cC1jaGVjay5o
dG1sICovLAogCQkJCUY2RkREREQ1MTQyNDFDNDgwMDRGMTcyOSAvKiBwdXNoLXN0YXRlLmh0bWwg
Ki8sCiAJCQkJMEY1NjUxRjgxRkNFNTBFODAwMzEwRkJDIC8qIHNjcm9sbC10by1hbmNob3IuaHRt
bCAqLywKQEAgLTM0NzYsNiArMzQ4Niw3IEBACiAJCQkJNTE5OEEyNDAxRUE3RTU5RjAwODkxMEI3
IC8qIEluaXRpYWxXYXJtZWRQcm9jZXNzVXNlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBOTVC
REUxMUU5QkVDNUYwMDg2NTQ5OCAvKiBJbmplY3RlZEJ1bmRsZUFwcGxlRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFRkIxQTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxl
QmFzaWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODMxNDhCMDYyMDJBQzZBNDAwQkFERTk5IC8q
IEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3Q0NFN0VGQzFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRCdW5kbGVG
cmFtZUhpdFRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkQxQTQxMUFFNjAwNDQ3
QzRDIC8qIEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2lucy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCODFEMEE2NEJEMDBGRUJDRjMgLyogSW5qZWN0
ZWRCdW5kbGVNYWtlQWxsU2hhZG93Um9vdHNPcGVuLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzUx
Niw2ICszNTI3LDcgQEAKIAkJCQk1QzBCRjg4RDFERDU5NjREMDBCMDAzMjggLyogTWVtb3J5UHJl
c3N1cmVIYW5kbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQjcxRDBBNjRCODAwRkVC
Q0YzIC8qIE1lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVD
MEJGODk0MURENTk5QzkwMEIwMDMyOCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlGN0VDMyAvKiBNZXNzYWdlUG9ydFBy
b3ZpZGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1QjE0OURFMUY1QTE5RUEwMEM2REFGRiAv
KiBNSU1FVHlwZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQ0QxQzZDMUIzOENF
NDMwMDE0MkNBNSAvKiBNb2RhbEFsZXJ0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEI2
MUQwQTY0QjMwMEZFQkNGMyAvKiBNb2RhbEFsZXJ0c1NQSS5jcHAgaW4gU291cmNlcyAqLywKQEAg
LTM1NjAsNyArMzU3Miw2IEBACiAJCQkJN0NDRTdGMEMxQTQxMUFFNjAwNDQ3QzRDIC8qIFByaXZh
dGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQ2NDdCMTI2MUVCQTNCODUwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdDODNFMEMxMUQwQTY1MkYwMEZFQkNGMyAvKiBQcm92aXNpb25h
bFVSTE5vdENoYW5nZS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlG
N0VDMyAvKiBNZXNzYWdlUG9ydFByb3ZpZGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RUM4MUE0MTFBN0UwMDQ0N0M0QyAvKiBQdWJsaWNTdWZmaXgubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3QzgzRTBDMjFEMEE2NTM1MDBGRUJDRjMgLyogUXVpY2tMb29rLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0NDRTdGMEQxQTQxMUFFNjAwNDQ3QzRDIC8qIFJlbG9hZFBhZ2VBZnRlckNyYXNoLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMzc1Niw2ICszNzY3LDcgQEAKIAkJCQlCQzU3NUFCMDEyNkU4
M0M4MDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM1NzVBQTIxMjZFNzY2MDAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlQ29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUVERTIyNjEzRTVFN0U3MDBFNjJGRTggLyog
SW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODMxNDhC
MDcyMDJBQzZBRDAwQkFERTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvcl9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc4RTY0NzcxNjMyNjU1
RTAwQjZDNjc2IC8qIEluamVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0X0J1bmRsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGNjYwQUExNTE1QTYxQUJGMDAzQTEyNDMgLyogSW5qZWN0ZWRCdW5kbGVJ
bml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zX0J1bmRsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzU3NUE5NzEyNkU3NEYxMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVNYWluLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92
ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYxMGE1MTA1OGRlZTgyOWQ3
MTRkNDlmMTQyOGZlYmE2ZGY3NTRiMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNC
ZWhhdmlvci5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIFdLX0hBVkVfQ19TUEkKKworI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVz
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSAiVGVzdC5oIgorI2lu
Y2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7
CisKK3N0YXRpYyB1bnNpZ25lZCB0ZXN0TnVtYmVyID0gMDsKK3N0YXRpYyBib29sIGRvbmUgPSBm
YWxzZTsKKworc3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiBwYWdlLCBX
S1N0cmluZ1JlZiBhbGVydFRleHQsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCit7CisgICAgQVNTRVJUX05PVF9OVUxMKGZyYW1lKTsKKworICAgIEVYUEVDVF9FUShw
YWdlLCBXS0ZyYW1lR2V0UGFnZShmcmFtZSkpOworCisgICAgc3dpdGNoICgrK3Rlc3ROdW1iZXIp
IHsKKyAgICBjYXNlIDE6CisgICAgICAgIEVYUEVDVF9XS19TVFJFUSgiUEFTUzogW092ZXJyaWRl
QnVpbHRpbnNdIHdhcyBub3QgZGlzYWJsZWQiLCBhbGVydFRleHQpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIDI6CisgICAgICAgIEVYUEVDVF9XS19TVFJFUSgiUEFTUzogW092ZXJyaWRlQnVp
bHRpbnNdIHdhcyBkaXNhYmxlZCIsIGFsZXJ0VGV4dCk7CisgICAgICAgIGRvbmUgPSB0cnVlOwor
ICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK1RFU1QoV2ViS2l0LCBJbmplY3RlZEJ1bmRsZURp
c2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0KQoreworICAgIFdLUmV0YWluUHRyPFdL
UGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAoQWRvcHRXSywgV0tQYWdlR3JvdXBDcmVhdGVXaXRoSWRl
bnRpZmllcihXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSW5qZWN0ZWRCdW5kbGVEaXNh
YmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdFBhZ2VHcm91cCIpKSk7CisKKyAgICBXS1Jl
dGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQoQWRvcHRXSywgVXRpbDo6Y3JlYXRlQ29udGV4
dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWls
dGluc0JlaGF2aW9yVGVzdCIsIHBhZ2VHcm91cC5nZXQoKSkpOworICAgIFBsYXRmb3JtV2ViVmll
dyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisKKyAgICBXS1BhZ2VV
SUNsaWVudFYwIHVpQ2xpZW50OworICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNs
aWVudCkpOworCisgICAgdWlDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICB1aUNsaWVudC5y
dW5KYXZhU2NyaXB0QWxlcnQgPSBydW5KYXZhU2NyaXB0QWxlcnQ7CisKKyAgICBXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKKworICAgIFdLUmV0
YWluUHRyPFdLVVJMUmVmPiB1cmwoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3VyY2Uo
Im92ZXJyaWRlLWJ1aWx0aW5zLXRlc3QiLCAiaHRtbCIpKTsKKyAgICBXS1BhZ2VMb2FkVVJMKHdl
YlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOworCisgICAgVXRpbDo6cnVuKCZkb25lKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRs
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDg1YzgwNzc1OGM4YmY1NDAyMzM1NzdlZDFmYTFkOGY1OTgyOTlm
NQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0lu
amVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwCkBA
IC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBX
S19IQVZFX0NfU1BJCisKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVRlc3QuaCIKKyNpbmNsdWRl
IDxXZWJLaXQvV0tCdW5kbGVQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQ
cml2YXRlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlU2NyaXB0V29ybGQuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKworbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgeworCitjbGFzcyBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3JUZXN0IDogcHVibGljIEluamVjdGVkQnVuZGxlVGVzdCB7CitwdWJs
aWM6CisgICAgSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVz
dChjb25zdCBzdGQ6OnN0cmluZyYgaWRlbnRpZmllcikKKyAgICAgICAgOiBJbmplY3RlZEJ1bmRs
ZVRlc3QoaWRlbnRpZmllcikKKyAgICB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXpl
KFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tUeXBlUmVmIHVzZXJEYXRhKQorICAgIHsKKyAgICAgICAg
YXNzZXJ0KFdLR2V0VHlwZUlEKHVzZXJEYXRhKSA9PSBXS0J1bmRsZVBhZ2VHcm91cEdldFR5cGVJ
RCgpKTsKKyAgICAgICAgV0tCdW5kbGVQYWdlR3JvdXBSZWYgcGFnZUdyb3VwID0gc3RhdGljX2Nh
c3Q8V0tCdW5kbGVQYWdlR3JvdXBSZWY+KHVzZXJEYXRhKTsKKworICAgICAgICBhdXRvIHdvcmxk
MSA9IFdLQnVuZGxlU2NyaXB0V29ybGRDcmVhdGVXb3JsZCgpOworCisgICAgICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBzb3VyY2UxKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKAorICAgICAgICAgICAgIndpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4iCisg
ICAgICAgICAgICAiICAgIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dCcpLnBhcmVudE5vZGU7XG4iCisgICAgICAgICAgICAiICAgIGFsZXJ0KGZvcm0udGFnTmFtZSAh
PSAnRk9STScgPyAnUEFTUzogW092ZXJyaWRlQnVpbHRpbnNdIHdhcyBub3QgZGlzYWJsZWQnIDog
J0ZBSUw6IFtPdmVycmlkZUJ1aWx0aW5zXSB3YXMgZGlzYWJsZWQnKTtcbiIKKyAgICAgICAgICAg
ICJ9XG4iKSk7CisgICAgICAgIFdLQnVuZGxlQWRkVXNlclNjcmlwdChidW5kbGUsIHBhZ2VHcm91
cCwgd29ybGQxLCBzb3VyY2UxLmdldCgpLCAwLCAwLCAwLCBrV0tJbmplY3RBdERvY3VtZW50RW5k
LCBrV0tJbmplY3RJbkFsbEZyYW1lcyk7CisKKyAgICAgICAgYXV0byB3b3JsZDIgPSBXS0J1bmRs
ZVNjcmlwdFdvcmxkQ3JlYXRlV29ybGQoKTsKKyAgICAgICAgV0tCdW5kbGVTY3JpcHRXb3JsZERp
c2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3Iod29ybGQyKTsKKworICAgICAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gc291cmNlMihBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygKKyAgICAgICAgICAgICJ3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkge1xuIgor
ICAgICAgICAgICAgIiAgICBjb25zdCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3QnKS5wYXJlbnROb2RlO1xuIgorICAgICAgICAgICAgIiAgICBhbGVydChmb3JtLnRhZ05hbWUg
PT09ICdGT1JNJyA/ICdQQVNTOiBbT3ZlcnJpZGVCdWlsdGluc10gd2FzIGRpc2FibGVkJyA6ICdG
QUlMOiBbT3ZlcnJpZGVCdWlsdGluc10gd2FzIG5vdCBkaXNhYmxlZCcpO1xuIgorICAgICAgICAg
ICAgIn1cbiIpKTsKKyAgICAgICAgV0tCdW5kbGVBZGRVc2VyU2NyaXB0KGJ1bmRsZSwgcGFnZUdy
b3VwLCB3b3JsZDIsIHNvdXJjZTIuZ2V0KCksIDAsIDAsIDAsIGtXS0luamVjdEF0RG9jdW1lbnRF
bmQsIGtXS0luamVjdEluQWxsRnJhbWVzKTsKKyAgICB9Cit9OworCitzdGF0aWMgSW5qZWN0ZWRC
dW5kbGVUZXN0OjpSZWdpc3RlcjxJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5z
QmVoYXZpb3JUZXN0PiByZWdpc3RyYXIoIkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvclRlc3QiKTsKKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L292ZXJy
aWRlLWJ1aWx0aW5zLXRlc3QuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L292ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTZhMGM2OTk3ODUyOTlm
OGI5M2E0YTZjMjkyODIwOTg5MGE0N2JkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sCkBAIC0wLDAg
KzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGZvcm0+Cis8aW5wdXQg
aWQ9InRlc3QiIG5hbWU9InRhZ05hbWUiPgorPC9mb3JtPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333349</attachid>
            <date>2018-02-07 18:50:24 -0800</date>
            <delta_ts>2018-02-07 19:04:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182524-20180207185023.patch</filename>
            <type>text/plain</type>
            <size>27057</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE3ZTk2ZmZjNmUwZGNj
YjJmMDA1N2U1MmFiYjAzODliZDllOWM3OC4uZmFjZTQ0ZjY1NWQ5ZTkzOGQ1MTkyMzg5ZWIxNjIz
OTllOWUwMzVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTAyLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGhlcmUgc2hvdWxkIGJlIGEg
d2F5IHRvIGRpc2FibGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIGluIGEgZ2l2ZW4gRE9N
V3JhcHBlcldvcmxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODI1MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNTczMjc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBmbGFnIG9uIERP
TVdyYXBwZXJXb3JsZCBpbmRpY2F0aW5nIGlmIHRoZSBbT3ZlcnJpZGVCdWlsdGluc10gYmVoYXZp
b3Igc2hvdWxkCisgICAgICAgIGJlIGVuYWJsZWQgaW4gdGhpcyB3b3JsZCBvciBub3QuIFRoZSBi
ZWhhdmlvciBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIFdlYi1jb21wYXRpYmlsaXR5LgorICAg
ICAgICBUaGlzIGZsYWcgaXMgcXVlcmllZCBpbiBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eSgp
IHdoZW4gZG9pbmcgdGhlIG5hbWVkIHByb3BlcnR5CisgICAgICAgIGxvb2t1cC4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTVdy
YXBwZXJXb3JsZC5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkOjpkaXNhYmxl
T3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdyYXBwZXJX
b3JsZDo6c2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvciBjb25zdCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OmFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5KToKKwogMjAxOC0wMi0wNyAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIy
MjYzOTYpOiBGaWxlIHBhdGhzIGFyZSBpbnNlcnRlZCB3aGVuIGRyb3BwaW5nIGltYWdlIGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDU0NjMwNDZhYjlmZWNhMjA0NzI0NmFhYWQwMmI4MjU0NDk1MjczZjQuLjY5
ZDNkZjJhNzMzMmFkNWQ1M2M1YzkyNDJiOTFkMGE2NDZhZDdjYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzAgQEAKKzIwMTgtMDItMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBUaGVyZSBzaG91bGQgYmUgYSB3YXkgdG8gZGlzYWJsZSBbT3ZlcnJpZGVCdWlsdGlu
c10gYmVoYXZpb3IgaW4gYSBnaXZlbiBET01XcmFwcGVyV29ybGQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjUyNAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vOTA1NzMyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgQyBBUEkgb24gV0tCdW5kbGVTY3JpcHRXb3JsZCBhbmQgQ29jb2EgQVBJIG9u
IFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkIHRvCisgICAgICAgIGRpc2FibGUgdGhlIFtP
dmVycmlkZUJ1aWx0aW5zXSBiZWhhdmlvciBvbiBhIGdpdmVuIHNjcmlwdCB3b3JsZC4KKworICAg
ICAgICBUaGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIFsxXSBpcyBsZWdhY3kgYmVoYXZp
b3IgdGhhdCBpcyBuZWVkZWQgZm9yIFdlYiBjb21wYXRpYmlsaXR5CisgICAgICAgIGJ1dCBhbGxv
d2luZyB0aGUgY2xpZW50IHRvIGRpc2FibGUgdGhpcyBiZWhhdmlvciBpbiBhIGdpdmVuIHdvcmxk
IG1ha2VzIGRldmVsb3BtZW50IGVhc2llcgorICAgICAgICBhbmQgcnVubmluZyBpbmplY3RlZCBz
Y3JpcHQgb24gdW5jb250cm9sbGVkIGNvbnRlbnQgYSBsb3QgbW9yZSByZWxpYWJsZS4KKworICAg
ICAgICBbMV0gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jT3ZlcnJpZGVCdWlsdGlu
cworCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5tbToKKyAgICAg
ICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgZGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvcl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVTY3JpcHRXb3JsZC5jcHA6CisgICAgICAgIChXS0J1bmRsZVNjcmlwdFdvcmxkRGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6ZGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmg6CisKIDIwMTgtMDItMDcgIEpvaG4gV2lsYW5kZXIgIDx3
aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzdHJpY3QgUmVmZXJlciB0byBqdXN0IHRo
ZSBvcmlnaW4gZm9yIHRoaXJkIHBhcnRpZXMgaW4gcHJpdmF0ZSBtb2RlIGFuZCB0aGlyZCBwYXJ0
aWVzIElUUCBibG9ja3MgY29va2llcyBmb3IgaW4gcmVndWxhciBtb2RlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oCmluZGV4IGIzNmMwOTg3MTBjZmYyZmU5
YWE2YmFiYmJiYjRmMzU1NWJjYjY4NzAuLjIxNzcwMWExOGU5MTNjNzY4MDg2MTg4NmYyZTY3ZThi
YTdjMTFmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBw
ZXJXb3JsZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3Js
ZC5oCkBAIC00Nyw2ICs0Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNoYWRvd1Jvb3RJc0Fs
d2F5c09wZW4oKSB7IG1fc2hhZG93Um9vdElzQWx3YXlzT3BlbiA9IHRydWU7IH0KICAgICBib29s
IHNoYWRvd1Jvb3RJc0Fsd2F5c09wZW4oKSBjb25zdCB7IHJldHVybiBtX3NoYWRvd1Jvb3RJc0Fs
d2F5c09wZW47IH0KIAorICAgIHZvaWQgZGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigp
IHsgbV9zaG91bGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yID0gdHJ1ZTsgfQorICAg
IGJvb2wgc2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigpIGNvbnN0IHsgcmV0
dXJuIG1fc2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcjsgfQorCiAgICAgRE9N
T2JqZWN0V3JhcHBlck1hcCYgd3JhcHBlcnMoKSB7IHJldHVybiBtX3dyYXBwZXJzOyB9CiAKICAg
ICBib29sIGlzTm9ybWFsKCkgY29uc3QgeyByZXR1cm4gbV9pc05vcm1hbDsgfQpAQCAtNjMsNiAr
NjYsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lzTm9ybWFsOwogICAgIGJvb2wgbV9zaGFk
b3dSb290SXNBbHdheXNPcGVuIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkRGlzYWJsZU92
ZXJyaWRlQnVpbHRpbnNCZWhhdmlvciB7IGZhbHNlIH07CiB9OwogCiBET01XcmFwcGVyV29ybGQm
IG5vcm1hbFdvcmxkKEpTQzo6Vk0mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oCmluZGV4IDNmODExNGY3NTk5NzUxM2ZjMTk2
OWFmNTVjMDg1NDBiODNhNjcwMTUuLjU2M2IyNDI2ODRmYWZjOTk5MThiNTY5Yjk0OTMxZTcxOTI3
MWI3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQWJzdHJh
Y3RPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01BYnN0
cmFjdE9wZXJhdGlvbnMuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBhdXRvIGFjY2Vzc1Zp
c2libGVOYW1lZFByb3BlcnR5KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDbGFzcyYgdGhpc09i
amVjCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICAvLyAzLiBJZiBPIGltcGxl
bWVudHMgYW4gaW50ZXJmYWNlIHRoYXQgaGFzIHRoZSBbT3ZlcnJpZGVCdWlsdGluc10gZXh0ZW5k
ZWQgYXR0cmlidXRlLCB0aGVuIHJldHVybiB0cnVlLgotICAgIGlmIChvdmVycmlkZUJ1aWx0aW5z
ID09IE92ZXJyaWRlQnVpbHRpbnM6OlllcykKKyAgICBpZiAob3ZlcnJpZGVCdWlsdGlucyA9PSBP
dmVycmlkZUJ1aWx0aW5zOjpZZXMgJiYgIXdvcmxkRm9yRE9NT2JqZWN0KCZ0aGlzT2JqZWN0KS5z
aG91bGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKCkpCiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAKICAgICAvLyA0LiBJbml0aWFsaXplIHByb3RvdHlwZSB0byBiZSB0aGUgdmFsdWUg
b2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgTy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaAppbmRl
eCA2NDcwN2JiZWE3ZDc5ZGVkNjIwODU2YmUyMGI4ZWJhNjM0ZjA5NGVjLi5iMjkyYTRmNDE3OTIw
MTk1MzA4ZTgzMWM3YTdlYjU5ZjY5MGVjM2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlw
dFdvcmxkLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oCkBAIC0zOSw2ICszOSw3IEBA
IFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIAogLSAodm9pZClj
bGVhcldyYXBwZXJzOwogLSAodm9pZCltYWtlQWxsU2hhZG93Um9vdHNPcGVuIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpZGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdv
cmxkLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5tbQppbmRleCA4Y2M2MjhhYzE3NjNmYTU2
OTVkNzQxMDVjM2U0OGU5OGU4Nzg0ZDYxLi42ZWJhMDEyOWQ3Nzc0OTRiN2IwYWE1ODg4MDQ0OTIx
MDgwZTY3MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luU2NyaXB0V29ybGQubW0KQEAgLTYxLDYgKzYxLDExIEBAIC0gKHZvaWQpbWFrZUFs
bFNoYWRvd1Jvb3RzT3BlbgogICAgIF93b3JsZC0+bWFrZUFsbFNoYWRvd1Jvb3RzT3BlbigpOwog
fQogCistICh2b2lkKWRpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IKK3sKKyAgICBfd29y
bGQtPmRpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IoKTsKK30KKwogLSAoTlNTdHJpbmcg
KiluYW1lCiB7CiAgICAgcmV0dXJuIF93b3JsZC0+bmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29y
bGQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlU2NyaXB0V29ybGQuY3BwCmluZGV4IGI0MDljNTlkNmQ1OTEyNTJjOWY3OGUyZjYzYjVi
MDEzNWU3ZTRhZGEuLmVmNjk3NzljZjRhNjlkOTdhNzNmMzM5NDAxY2E3Y2JmZDBkYzdlMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVNjcmlwdFdvcmxkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAKQEAgLTU4LDYgKzU4LDEx
IEBAIHZvaWQgV0tCdW5kbGVTY3JpcHRXb3JsZE1ha2VBbGxTaGFkb3dSb290c09wZW4oV0tCdW5k
bGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsCiAgICAgdG9JbXBsKHNjcmlwdFdvcmxkUmVmKS0+
bWFrZUFsbFNoYWRvd1Jvb3RzT3BlbigpOwogfQogCit2b2lkIFdLQnVuZGxlU2NyaXB0V29ybGRE
aXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgc2Ny
aXB0V29ybGRSZWYpCit7CisgICAgdG9JbXBsKHNjcmlwdFdvcmxkUmVmKS0+ZGlzYWJsZU92ZXJy
aWRlQnVpbHRpbnNCZWhhdmlvcigpOworfQorCiBXS1N0cmluZ1JlZiBXS0J1bmRsZVNjcmlwdFdv
cmxkQ29weU5hbWUoV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsZFJlZikKIHsKICAg
ICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKHNjcmlwdFdvcmxkUmVmKS0+bmFtZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVNjcmlwdFdvcmxkLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oCmluZGV4IDMyNTM1OWQxZWRiZWI5OGJi
MGYyYTE2NDYyNWUzNmZjZmQ3NjQ0NTkuLjM2NWE2ZDM1MTA4MmViNTlmYjU2ZDhjOWQ0ZTBhODA0
MzZiMDM2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuaApAQCAtMzgs
NiArMzgsNyBAQCBXS19FWFBPUlQgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBXS0J1bmRsZVNjcmlw
dFdvcmxkQ3JlYXRlV29ybGQoKTsKIFdLX0VYUE9SVCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIFdL
QnVuZGxlU2NyaXB0V29ybGROb3JtYWxXb3JsZCgpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVT
Y3JpcHRXb3JsZENsZWFyV3JhcHBlcnMoV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3Js
ZCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNjcmlwdFdvcmxkTWFrZUFsbFNoYWRvd1Jvb3Rz
T3BlbihXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHNjcmlwdFdvcmxkKTsKK1dLX0VYUE9SVCB2b2lk
IFdLQnVuZGxlU2NyaXB0V29ybGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKFdLQnVu
ZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0V29ybGQpOwogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdL
QnVuZGxlU2NyaXB0V29ybGRDb3B5TmFtZShXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHNjcmlwdFdv
cmxkKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZC5jcHAKaW5kZXggYjE3ODMxZDJjN2E5NDNkYzRkNmMzNDU1MWQzMmJiMGIyZjQ4NmZj
OC4uZDE5YjM3ZTM4YWRjNTkxNzBjZDFiNWJlOTUwM2EzNDQ2ZGVhMGJlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2Ny
aXB0V29ybGQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcApAQCAtMTEyLDQgKzExMiw5IEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6bWFrZUFsbFNoYWRvd1Jvb3RzT3BlbigpCiAgICAg
bV93b3JsZC0+c2V0U2hhZG93Um9vdElzQWx3YXlzT3BlbigpOwogfQogCit2b2lkIEluamVjdGVk
QnVuZGxlU2NyaXB0V29ybGQ6OmRpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IoKQorewor
ICAgIG1fd29ybGQtPmRpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaApp
bmRleCA1MDkyYWU3MjU3NmVjYTE4NmIyYjU0ODZiZGY1ZjE2ZGE5Njc5NTAzLi4zMTJkZTI3ZDQ1
NDYyMGUyNDdhMzIxYjBiZGM2NGFkYWU5ZTFlMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVh
cldyYXBwZXJzKCk7CiAgICAgdm9pZCBtYWtlQWxsU2hhZG93Um9vdHNPcGVuKCk7CisgICAgdm9p
ZCBkaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKCk7CiAKICAgICBjb25zdCBTdHJpbmcm
IG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI3YTEzYjdmYzBmMWI4Yzk1YWM3MGJhY2Vm
ZTE0NmI0NGVjZDg1ZTAuLjNjODQxNWFiOTcyMjZiNzAwOTZlNjc4MGZkYjhjZDMyYjVlNDljNjMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOC0wMi0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFRoZXJlIHNob3VsZCBiZSBhIHdheSB0byBkaXNhYmxlIFtPdmVycmlkZUJ1aWx0
aW5zXSBiZWhhdmlvciBpbiBhIGdpdmVuIERPTVdyYXBwZXJXb3JsZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTI0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS85MDU3MzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvci5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cnVuSmF2
YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3Q6Oklu
amVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6SW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0Jl
aGF2aW9yVGVzdDo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sOiBBZGRlZC4KKwogMjAxOC0wMi0wNyAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OKHIyMjYzOTYpOiBGaWxlIHBhdGhzIGFyZSBpbnNlcnRlZCB3aGVuIGRyb3BwaW5nIGltYWdl
IGZpbGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJiYjE3Zjk2OWJhYzkyYzczZDNiYzcw
NTkyNzJmZDkxYTU0NDI1ZmIuLjJhZmNlZWU5NmMxOWYwZjhmMWEyZmFmYThjMTUyNmNiZjI0ZGRl
YzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MzQsNiArNTM0LDkgQEAKIAkJN0NENEMy
NkUxRTJDMEU2RTAwOTI5NDcwIC8qIFN0cmluZ0NvbmNhdGVuYXRlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRDRDMjZDMUUyQzBFNkUwMDkyOTQ3
MCAvKiBTdHJpbmdDb25jYXRlbmF0ZS5jcHAgKi87IH07CiAJCTdDRUZBOTY2MUFDMEI5RTIwMEI5
MTBGRCAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFRkE5NjQxQUMwQjlFMjAwQjkxMEZEIC8q
IF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0gKi87IH07CiAJCTdDRkJDQUU1MTc0MzIz
OEYwMEIyQkZDRiAvKiBXaWxsTG9hZF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGQkNBRTMxNzQzMjM4RTAwQjJCRkNGIC8qIFdpbGxM
b2FkX0J1bmRsZS5jcHAgKi87IH07CisJCTgzMTQ4QjA2MjAyQUM2QTQwMEJBREU5OSAvKiBJbmpl
Y3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMxNDhCMDUyMDJBQzY4MjAwQkFE
RTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAg
Ki87IH07CisJCTgzMTQ4QjA3MjAyQUM2QUQwMEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURpc2Fi
bGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTQ4QjA0MjAyQUM2ODIwMEJBREU5OSAvKiBJ
bmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcCAq
LzsgfTsKKwkJODMxNDhCMDkyMDJBQzc4RDAwQkFERTk5IC8qIG92ZXJyaWRlLWJ1aWx0aW5zLXRl
c3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzE0OEIwODIwMkFDNzY4MDBCQURFOTkgLyogb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5o
dG1sICovOyB9OwogCQk4MzQ5RDNDMjFEQjk2RERFMDA0QTlGNjUgLyogQ29udGV4dE1lbnVEb3du
bG9hZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
NDlEM0MxMURCOTZEREEwMDRBOUY2NSAvKiBDb250ZXh0TWVudURvd25sb2FkLm1tICovOyB9Owog
CQk4MzQ5RDNDNDFEQjk3MjhFMDA0QTlGNjUgLyogbGluay13aXRoLWRvd25sb2FkLWF0dHJpYnV0
ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNDlEM0MzMURCOTcyNEYwMDRBOUY2NSAvKiBsaW5rLXdpdGgtZG93bmxvYWQtYXR0cmli
dXRlLmh0bWwgKi87IH07CiAJCTgzNUNGOTY3MUQyNUZDRDYwMDFBNjVENCAvKiBSZXN0b3JlU2Vz
c2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM1Q0Y5NjYxRDI1RkNENjAwMUE2NUQ0IC8qIFJlc3RvcmVT
ZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbi5jcHAgKi87IH07CkBAIC0xMDIwLDYgKzEwMjMs
NyBAQAogCQkJCUNFQTZDRjI4MTlDQ0Y2OUQwMDY0RjVBNyAvKiBvcGVuLWFuZC1jbG9zZS13aW5k
b3cuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3Q0NCOTkyMzFEM0I0QTQ2MDAzOTIy
RjYgLyogb3Blbi1tdWx0aXBsZS1leHRlcm5hbC11cmwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQkyOTBBOUJCOTE3MzVGNjM4MDBENzFCQkMgLyogT3Blbk5ld1dpbmRvdy5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAorCQkJCTgzMTQ4QjA5MjAyQUM3OEQwMEJBREU5OSAvKiBvdmVy
cmlkZS1idWlsdGlucy10ZXN0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0VCQ0Ex
MzkxRTNBODA3QTAwQzczMjkzIC8qIHBhZ2Utd2l0aC1jc3AtaWZyYW1lLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJQ0VCQ0ExMzgxRTNBODA3QTAwQzczMjkzIC8qIHBhZ2Utd2l0aC1j
c3AuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDRUJDQTEzQjFFM0E4MDdBMDBDNzMy
OTMgLyogcGFnZS13aXRob3V0LWNzcC1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
QEAgLTE1MjIsNiArMTUyNiw5IEBACiAJCTdDRkJDQUREMTc0MzIzNEYwMEIyQkZDRiAvKiBXaWxs
TG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWxsTG9hZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRkJDQUUzMTc0MzIzOEUwMEIyQkZD
RiAvKiBXaWxsTG9hZF9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2lsbExvYWRfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODFCNTAxOTIxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgzMTQ4QjA0MjAyQUM2ODIwMEJBREU5OSAvKiBJbmplY3RlZEJ1
bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MzE0OEIwNTIwMkFDNjgyMDBCQURFOTkgLyogSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJp
ZGVCdWlsdGluc0JlaGF2aW9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMTQ4QjA4MjAyQUM3NjgwMEJBREU5OSAvKiBv
dmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
b3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM0OUQzQzExREI5NkREQTAwNEE5RjY1IC8qIENvbnRleHRNZW51RG93bmxvYWQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb250ZXh0TWVudURvd25sb2Fk
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzQ5RDNDMzFEQjk3MjRGMDA0QTlG
NjUgLyogbGluay13aXRoLWRvd25sb2FkLWF0dHJpYnV0ZS5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gImxpbmstd2l0aC1kb3dubG9hZC1hdHRyaWJ1dGUuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNUNGOTY2MUQyNUZDRDYwMDFBNjVENCAvKiBSZXN0b3Jl
U2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1ODUsNiArMjU5Miw4IEBACiAJCQkJNEJG
REZGQTYxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5j
cHAgKi8sCiAJCQkJQkM1NzVBQUMxMjZFODNCOTAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlQmFz
aWMuY3BwICovLAogCQkJCUJDNTc1QUFGMTI2RTgzQzgwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRs
ZUJhc2ljX0J1bmRsZS5jcHAgKi8sCisJCQkJODMxNDhCMDUyMDJBQzY4MjAwQkFERTk5IC8qIElu
amVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAgKi8sCisJCQkJ
ODMxNDhCMDQyMDJBQzY4MjAwQkFERTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwICovLAogCQkJCTM3OEU2NDcxMTYzMjY0NkQwMEI2
QzY3NiAvKiBJbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdC5jcHAgKi8sCiAJCQkJMzc4RTY0NzUx
NjMyNjU1RDAwQjZDNjc2IC8qIEluamVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0X0J1bmRsZS5jcHAg
Ki8sCiAJCQkJRjY2MEFBMTIxNUE2MTlDODAwM0ExMjQzIC8qIEluamVjdGVkQnVuZGxlSW5pdGlh
bGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2lucy5jcHAgKi8sCkBAIC0yODEwLDYgKzI4MTksNyBA
QAogCQkJCTU3OTdGRTMyMUVCMTVBODkwMEIyRjRBMCAvKiBuYXZpZ2F0aW9uLWNsaWVudC1kZWZh
dWx0LWNyeXB0by5odG1sICovLAogCQkJCUM5OUI2NzVFMUUzOTczNUMwMEZDNkM4MCAvKiBuby1h
dXRvcGxheS13aXRoLWNvbnRyb2xzLmh0bWwgKi8sCiAJCQkJQ0VBNkNGMjcxOUNDRjY5RDAwNjRG
NUE3IC8qIG9wZW4tYW5kLWNsb3NlLXdpbmRvdy5odG1sICovLAorCQkJCTgzMTQ4QjA4MjAyQUM3
NjgwMEJBREU5OSAvKiBvdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwgKi8sCiAJCQkJMEVCQkND
NjUxRkZGOURDRTAwRkE0MkFCIC8qIHBvcC11cC1jaGVjay5odG1sICovLAogCQkJCUY2RkREREQ1
MTQyNDFDNDgwMDRGMTcyOSAvKiBwdXNoLXN0YXRlLmh0bWwgKi8sCiAJCQkJMEY1NjUxRjgxRkNF
NTBFODAwMzEwRkJDIC8qIHNjcm9sbC10by1hbmNob3IuaHRtbCAqLywKQEAgLTM0NzYsNiArMzQ4
Niw3IEBACiAJCQkJNTE5OEEyNDAxRUE3RTU5RjAwODkxMEI3IC8qIEluaXRpYWxXYXJtZWRQcm9j
ZXNzVXNlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBOTVCREUxMUU5QkVDNUYwMDg2NTQ5OCAv
KiBJbmplY3RlZEJ1bmRsZUFwcGxlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
RkIxQTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxlQmFzaWMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJODMxNDhCMDYyMDJBQzZBNDAwQkFERTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJs
ZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VG
QzFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRCdW5kbGVGcmFtZUhpdFRlc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFRkQxQTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxl
SW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2lucy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3QzgzRTBCODFEMEE2NEJEMDBGRUJDRjMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93
Um9vdHNPcGVuLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzUxNiw2ICszNTI3LDcgQEAKIAkJCQk1
QzBCRjg4RDFERDU5NjREMDBCMDAzMjggLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0M4M0UwQjcxRDBBNjRCODAwRkVCQ0YzIC8qIE1lbnVUeXBlc0Zvck1v
dXNlRXZlbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMEJGODk0MURENTk5QzkwMEIwMDMy
OCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxNjVG
RTA0MjAxRUU2MjAwMDlGN0VDMyAvKiBNZXNzYWdlUG9ydFByb3ZpZGVycy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUE1QjE0OURFMUY1QTE5RUEwMEM2REFGRiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxQ0QxQzZDMUIzOENFNDMwMDE0MkNBNSAvKiBNb2RhbEFs
ZXJ0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEI2MUQwQTY0QjMwMEZFQkNGMyAvKiBN
b2RhbEFsZXJ0c1NQSS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTM1NjAsNyArMzU3Miw2IEBACiAJ
CQkJN0NDRTdGMEMxQTQxMUFFNjAwNDQ3QzRDIC8qIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5v
SGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2NDdCMTI2MUVCQTNCODUw
MDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
ODNFMEMxMUQwQTY1MkYwMEZFQkNGMyAvKiBQcm92aXNpb25hbFVSTE5vdENoYW5nZS5tbSBpbiBT
b3VyY2VzICovLAotCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlGN0VDMyAvKiBNZXNzYWdlUG9ydFBy
b3ZpZGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUM4MUE0MTFBN0UwMDQ0N0M0QyAv
KiBQdWJsaWNTdWZmaXgubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBDMjFEMEE2NTM1MDBG
RUJDRjMgLyogUXVpY2tMb29rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMEQxQTQxMUFF
NjAwNDQ3QzRDIC8qIFJlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
Mzc1Niw2ICszNzY3LDcgQEAKIAkJCQlCQzU3NUFCMDEyNkU4M0M4MDA2RjBGMTIgLyogSW5qZWN0
ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1NzVBQTIxMjZF
NzY2MDAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQUVERTIyNjEzRTVFN0U3MDBFNjJGRTggLyogSW5qZWN0ZWRCdW5kbGVDb250cm9s
bGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODMxNDhCMDcyMDJBQzZBRDAwQkFERTk5IC8q
IEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzc4RTY0NzcxNjMyNjU1RTAwQjZDNjc2IC8qIEluamVjdGVk
QnVuZGxlRnJhbWVIaXRUZXN0X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjYwQUEx
NTE1QTYxQUJGMDAzQTEyNDMgLyogSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRh
Q2FsbGJhY2tXaW5zX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzU3NUE5NzEyNkU3
NEYxMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVNYWluLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVE
aXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlv
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjUyZjFiMjk5MmVmOGRiZDQ0MmQwNjM1ODg0MDcyOWY1YWQ0Y2Q0
MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0lu
amVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAKQEAgLTAsMCAr
MSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hBVkVf
Q19TUEkKKworI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1XZWJWaWV3LmgiCisjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1JldGFp
blB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyB1bnNpZ25lZCB0
ZXN0TnVtYmVyID0gMDsKK3N0YXRpYyBib29sIGRvbmUgPSBmYWxzZTsKKworc3RhdGljIHZvaWQg
cnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBhbGVydFRleHQs
IFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgQVNTRVJU
X05PVF9OVUxMKGZyYW1lKTsKKworICAgIEVYUEVDVF9FUShwYWdlLCBXS0ZyYW1lR2V0UGFnZShm
cmFtZSkpOworICAgIHN3aXRjaCAoKyt0ZXN0TnVtYmVyKSB7CisgICAgY2FzZSAxOgorICAgIGNh
c2UgMjoKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJQQVNTOiBbT3ZlcnJpZGVCdWlsdGluc10g
d2FzIG5vdCBkaXNhYmxlZCIsIGFsZXJ0VGV4dCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
MzoKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJQQVNTOiBbT3ZlcnJpZGVCdWlsdGluc10gd2Fz
IGRpc2FibGVkIiwgYWxlcnRUZXh0KTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgIGJy
ZWFrOworICAgIH0KK30KKworVEVTVChXZWJLaXQsIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJy
aWRlQnVpbHRpbnNCZWhhdmlvclRlc3QpCit7CisgICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBS
ZWY+IHBhZ2VHcm91cChBZG9wdFdLLCBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3JUZXN0UGFnZUdyb3VwIikpKTsKKworICAgIFdLUmV0YWluUHRyPFdL
Q29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBVdGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0
ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZp
b3JUZXN0IiwgcGFnZUdyb3VwLmdldCgpKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXco
Y29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKworICAgIFdLUGFnZVVJQ2xpZW50VjAg
dWlDbGllbnQ7CisgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CisK
KyAgICB1aUNsaWVudC5iYXNlLnZlcnNpb24gPSAwOworICAgIHVpQ2xpZW50LnJ1bkphdmFTY3Jp
cHRBbGVydCA9IHJ1bkphdmFTY3JpcHRBbGVydDsKKworICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVu
dCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOworCisgICAgV0tSZXRhaW5QdHI8V0tV
UkxSZWY+IHVybChBZG9wdFdLLCBVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgib3ZlcnJpZGUt
YnVpbHRpbnMtdGVzdCIsICJodG1sIikpOworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdl
KCksIHVybC5nZXQoKSk7CisKKyAgICBVdGlsOjpydW4oJmRvbmUpOworfQorCit9IC8vIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0Jl
aGF2aW9yX0J1bmRsZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Jbmpl
Y3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40YTYxMDgwNjAxZDBlMWRlNjg5OWVkZDc2MjJmMWU3ZDAwZDA4ZDkzCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5k
bGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRsZS5jcHAKQEAgLTAsMCArMSw3
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hBVkVfQ19T
UEkKKworI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVGVzdC5oIgorI2luY2x1ZGUgPFdlYktpdC9X
S0J1bmRsZVBhZ2VHcm91cC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVByaXZhdGUuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVTY3JpcHRXb3JsZC5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPGFzc2VydC5oPgorCituYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CisKK2NsYXNzIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNC
ZWhhdmlvclRlc3QgOiBwdWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0IHsKK3B1YmxpYzoKKyAgICBJ
bmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0KGNvbnN0IHN0
ZDo6c3RyaW5nJiBpZGVudGlmaWVyKQorICAgICAgICA6IEluamVjdGVkQnVuZGxlVGVzdChpZGVu
dGlmaWVyKQorICAgIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoV0tCdW5kbGVS
ZWYgYnVuZGxlLCBXS1R5cGVSZWYgdXNlckRhdGEpCisgICAgeworICAgICAgICBhc3NlcnQoV0tH
ZXRUeXBlSUQodXNlckRhdGEpID09IFdLQnVuZGxlUGFnZUdyb3VwR2V0VHlwZUlEKCkpOworICAg
ICAgICBXS0J1bmRsZVBhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBzdGF0aWNfY2FzdDxXS0J1bmRs
ZVBhZ2VHcm91cFJlZj4odXNlckRhdGEpOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBzb3VyY2VFeHBlY3RpbmdPdmVycmlkZUJ1aWx0aW5zRW5hYmxlZChBZG9wdFdLLCBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygKKyAgICAgICAgICAgICJ3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24gKCkge1xuIgorICAgICAgICAgICAgIiAgICBjb25zdCBmb3JtID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5wYXJlbnROb2RlO1xuIgorICAgICAgICAgICAgIiAgICBh
bGVydChmb3JtLnRhZ05hbWUgIT0gJ0ZPUk0nID8gJ1BBU1M6IFtPdmVycmlkZUJ1aWx0aW5zXSB3
YXMgbm90IGRpc2FibGVkJyA6ICdGQUlMOiBbT3ZlcnJpZGVCdWlsdGluc10gd2FzIGRpc2FibGVk
Jyk7XG4iCisgICAgICAgICAgICAifVxuIikpOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBzb3VyY2VFeHBlY3RpbmdPdmVycmlkZUJ1aWx0aW5zRGlzYWJsZWQoQWRvcHRXSywg
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoCisgICAgICAgICAgICAid2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uICgpIHtcbiIKKyAgICAgICAgICAgICIgICAgY29uc3QgZm9ybSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0JykucGFyZW50Tm9kZTtcbiIKKyAgICAgICAgICAgICIg
ICAgYWxlcnQoZm9ybS50YWdOYW1lID09PSAnRk9STScgPyAnUEFTUzogW092ZXJyaWRlQnVpbHRp
bnNdIHdhcyBkaXNhYmxlZCcgOiAnRkFJTDogW092ZXJyaWRlQnVpbHRpbnNdIHdhcyBub3QgZGlz
YWJsZWQnKTtcbiIKKyAgICAgICAgICAgICJ9XG4iKSk7CisKKyAgICAgICAgYXV0byBub3JtYWxX
b3JsZCA9IFdLQnVuZGxlU2NyaXB0V29ybGROb3JtYWxXb3JsZCgpOworICAgICAgICBXS0J1bmRs
ZUFkZFVzZXJTY3JpcHQoYnVuZGxlLCBwYWdlR3JvdXAsIG5vcm1hbFdvcmxkLCBzb3VyY2VFeHBl
Y3RpbmdPdmVycmlkZUJ1aWx0aW5zRW5hYmxlZC5nZXQoKSwgMCwgMCwgMCwga1dLSW5qZWN0QXRE
b2N1bWVudEVuZCwga1dLSW5qZWN0SW5BbGxGcmFtZXMpOworCisgICAgICAgIGF1dG8gaXNvbGF0
ZWRXb3JsZDEgPSBXS0J1bmRsZVNjcmlwdFdvcmxkQ3JlYXRlV29ybGQoKTsKKyAgICAgICAgV0tC
dW5kbGVBZGRVc2VyU2NyaXB0KGJ1bmRsZSwgcGFnZUdyb3VwLCBpc29sYXRlZFdvcmxkMSwgc291
cmNlRXhwZWN0aW5nT3ZlcnJpZGVCdWlsdGluc0VuYWJsZWQuZ2V0KCksIDAsIDAsIDAsIGtXS0lu
amVjdEF0RG9jdW1lbnRFbmQsIGtXS0luamVjdEluQWxsRnJhbWVzKTsKKworICAgICAgICBhdXRv
IGlzb2xhdGVkV29ybGQyID0gV0tCdW5kbGVTY3JpcHRXb3JsZENyZWF0ZVdvcmxkKCk7CisgICAg
ICAgIFdLQnVuZGxlU2NyaXB0V29ybGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKGlz
b2xhdGVkV29ybGQyKTsKKyAgICAgICAgV0tCdW5kbGVBZGRVc2VyU2NyaXB0KGJ1bmRsZSwgcGFn
ZUdyb3VwLCBpc29sYXRlZFdvcmxkMiwgc291cmNlRXhwZWN0aW5nT3ZlcnJpZGVCdWlsdGluc0Rp
c2FibGVkLmdldCgpLCAwLCAwLCAwLCBrV0tJbmplY3RBdERvY3VtZW50RW5kLCBrV0tJbmplY3RJ
bkFsbEZyYW1lcyk7CisgICAgfQorfTsKKworc3RhdGljIEluamVjdGVkQnVuZGxlVGVzdDo6UmVn
aXN0ZXI8SW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdD4g
cmVnaXN0cmFyKCJJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JU
ZXN0Iik7CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9vdmVycmlkZS1idWlsdGlucy10
ZXN0Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9vdmVycmlkZS1idWls
dGlucy10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U2YTBjNjk5Nzg1Mjk5ZjhiOTNhNGE2YzI5Mjgy
MDk4OTBhNDdiZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L292ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxmb3JtPgorPGlucHV0IGlkPSJ0ZXN0IiBuYW1l
PSJ0YWdOYW1lIj4KKzwvZm9ybT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333351</attachid>
            <date>2018-02-07 19:04:06 -0800</date>
            <delta_ts>2018-02-07 19:05:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182524-20180207190405.patch</filename>
            <type>text/plain</type>
            <size>29019</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGE3ZTk2ZmZjNmUwZGNj
YjJmMDA1N2U1MmFiYjAzODliZDllOWM3OC4uZmFjZTQ0ZjY1NWQ5ZTkzOGQ1MTkyMzg5ZWIxNjIz
OTllOWUwMzVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTAyLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGhlcmUgc2hvdWxkIGJlIGEg
d2F5IHRvIGRpc2FibGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIGluIGEgZ2l2ZW4gRE9N
V3JhcHBlcldvcmxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODI1MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNTczMjc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBmbGFnIG9uIERP
TVdyYXBwZXJXb3JsZCBpbmRpY2F0aW5nIGlmIHRoZSBbT3ZlcnJpZGVCdWlsdGluc10gYmVoYXZp
b3Igc2hvdWxkCisgICAgICAgIGJlIGVuYWJsZWQgaW4gdGhpcyB3b3JsZCBvciBub3QuIFRoZSBi
ZWhhdmlvciBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIFdlYi1jb21wYXRpYmlsaXR5LgorICAg
ICAgICBUaGlzIGZsYWcgaXMgcXVlcmllZCBpbiBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eSgp
IHdoZW4gZG9pbmcgdGhlIG5hbWVkIHByb3BlcnR5CisgICAgICAgIGxvb2t1cC4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTVdy
YXBwZXJXb3JsZC5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkOjpkaXNhYmxl
T3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdyYXBwZXJX
b3JsZDo6c2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvciBjb25zdCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OmFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5KToKKwogMjAxOC0wMi0wNyAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIy
MjYzOTYpOiBGaWxlIHBhdGhzIGFyZSBpbnNlcnRlZCB3aGVuIGRyb3BwaW5nIGltYWdlIGZpbGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDU0NjMwNDZhYjlmZWNhMjA0NzI0NmFhYWQwMmI4MjU0NDk1MjczZjQuLjY5
ZDNkZjJhNzMzMmFkNWQ1M2M1YzkyNDJiOTFkMGE2NDZhZDdjYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzAgQEAKKzIwMTgtMDItMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBUaGVyZSBzaG91bGQgYmUgYSB3YXkgdG8gZGlzYWJsZSBbT3ZlcnJpZGVCdWlsdGlu
c10gYmVoYXZpb3IgaW4gYSBnaXZlbiBET01XcmFwcGVyV29ybGQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjUyNAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vOTA1NzMyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgQyBBUEkgb24gV0tCdW5kbGVTY3JpcHRXb3JsZCBhbmQgQ29jb2EgQVBJIG9u
IFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkIHRvCisgICAgICAgIGRpc2FibGUgdGhlIFtP
dmVycmlkZUJ1aWx0aW5zXSBiZWhhdmlvciBvbiBhIGdpdmVuIHNjcmlwdCB3b3JsZC4KKworICAg
ICAgICBUaGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIFsxXSBpcyBsZWdhY3kgYmVoYXZp
b3IgdGhhdCBpcyBuZWVkZWQgZm9yIFdlYiBjb21wYXRpYmlsaXR5CisgICAgICAgIGJ1dCBhbGxv
d2luZyB0aGUgY2xpZW50IHRvIGRpc2FibGUgdGhpcyBiZWhhdmlvciBpbiBhIGdpdmVuIHdvcmxk
IG1ha2VzIGRldmVsb3BtZW50IGVhc2llcgorICAgICAgICBhbmQgcnVubmluZyBpbmplY3RlZCBz
Y3JpcHQgb24gdW5jb250cm9sbGVkIGNvbnRlbnQgYSBsb3QgbW9yZSByZWxpYWJsZS4KKworICAg
ICAgICBbMV0gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jT3ZlcnJpZGVCdWlsdGlu
cworCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5tbToKKyAgICAg
ICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgZGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvcl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVTY3JpcHRXb3JsZC5jcHA6CisgICAgICAgIChXS0J1bmRsZVNjcmlwdFdvcmxkRGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6ZGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmg6CisKIDIwMTgtMDItMDcgIEpvaG4gV2lsYW5kZXIgIDx3
aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzdHJpY3QgUmVmZXJlciB0byBqdXN0IHRo
ZSBvcmlnaW4gZm9yIHRoaXJkIHBhcnRpZXMgaW4gcHJpdmF0ZSBtb2RlIGFuZCB0aGlyZCBwYXJ0
aWVzIElUUCBibG9ja3MgY29va2llcyBmb3IgaW4gcmVndWxhciBtb2RlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oCmluZGV4IGIzNmMwOTg3MTBjZmYyZmU5
YWE2YmFiYmJiYjRmMzU1NWJjYjY4NzAuLjIxNzcwMWExOGU5MTNjNzY4MDg2MTg4NmYyZTY3ZThi
YTdjMTFmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBw
ZXJXb3JsZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3Js
ZC5oCkBAIC00Nyw2ICs0Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNoYWRvd1Jvb3RJc0Fs
d2F5c09wZW4oKSB7IG1fc2hhZG93Um9vdElzQWx3YXlzT3BlbiA9IHRydWU7IH0KICAgICBib29s
IHNoYWRvd1Jvb3RJc0Fsd2F5c09wZW4oKSBjb25zdCB7IHJldHVybiBtX3NoYWRvd1Jvb3RJc0Fs
d2F5c09wZW47IH0KIAorICAgIHZvaWQgZGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigp
IHsgbV9zaG91bGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yID0gdHJ1ZTsgfQorICAg
IGJvb2wgc2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigpIGNvbnN0IHsgcmV0
dXJuIG1fc2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcjsgfQorCiAgICAgRE9N
T2JqZWN0V3JhcHBlck1hcCYgd3JhcHBlcnMoKSB7IHJldHVybiBtX3dyYXBwZXJzOyB9CiAKICAg
ICBib29sIGlzTm9ybWFsKCkgY29uc3QgeyByZXR1cm4gbV9pc05vcm1hbDsgfQpAQCAtNjMsNiAr
NjYsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lzTm9ybWFsOwogICAgIGJvb2wgbV9zaGFk
b3dSb290SXNBbHdheXNPcGVuIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkRGlzYWJsZU92
ZXJyaWRlQnVpbHRpbnNCZWhhdmlvciB7IGZhbHNlIH07CiB9OwogCiBET01XcmFwcGVyV29ybGQm
IG5vcm1hbFdvcmxkKEpTQzo6Vk0mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oCmluZGV4IDNmODExNGY3NTk5NzUxM2ZjMTk2
OWFmNTVjMDg1NDBiODNhNjcwMTUuLjU2M2IyNDI2ODRmYWZjOTk5MThiNTY5Yjk0OTMxZTcxOTI3
MWI3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQWJzdHJh
Y3RPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01BYnN0
cmFjdE9wZXJhdGlvbnMuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBhdXRvIGFjY2Vzc1Zp
c2libGVOYW1lZFByb3BlcnR5KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDbGFzcyYgdGhpc09i
amVjCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICAvLyAzLiBJZiBPIGltcGxl
bWVudHMgYW4gaW50ZXJmYWNlIHRoYXQgaGFzIHRoZSBbT3ZlcnJpZGVCdWlsdGluc10gZXh0ZW5k
ZWQgYXR0cmlidXRlLCB0aGVuIHJldHVybiB0cnVlLgotICAgIGlmIChvdmVycmlkZUJ1aWx0aW5z
ID09IE92ZXJyaWRlQnVpbHRpbnM6OlllcykKKyAgICBpZiAob3ZlcnJpZGVCdWlsdGlucyA9PSBP
dmVycmlkZUJ1aWx0aW5zOjpZZXMgJiYgIXdvcmxkRm9yRE9NT2JqZWN0KCZ0aGlzT2JqZWN0KS5z
aG91bGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKCkpCiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAKICAgICAvLyA0LiBJbml0aWFsaXplIHByb3RvdHlwZSB0byBiZSB0aGUgdmFsdWUg
b2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgTy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaAppbmRl
eCA2NDcwN2JiZWE3ZDc5ZGVkNjIwODU2YmUyMGI4ZWJhNjM0ZjA5NGVjLi5iMjkyYTRmNDE3OTIw
MTk1MzA4ZTgzMWM3YTdlYjU5ZjY5MGVjM2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlw
dFdvcmxkLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oCkBAIC0zOSw2ICszOSw3IEBA
IFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKIAogLSAodm9pZClj
bGVhcldyYXBwZXJzOwogLSAodm9pZCltYWtlQWxsU2hhZG93Um9vdHNPcGVuIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKKy0gKHZvaWQpZGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvciBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdv
cmxkLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5tbQppbmRleCA4Y2M2MjhhYzE3NjNmYTU2
OTVkNzQxMDVjM2U0OGU5OGU4Nzg0ZDYxLi42ZWJhMDEyOWQ3Nzc0OTRiN2IwYWE1ODg4MDQ0OTIx
MDgwZTY3MzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luU2NyaXB0V29ybGQubW0KQEAgLTYxLDYgKzYxLDExIEBAIC0gKHZvaWQpbWFrZUFs
bFNoYWRvd1Jvb3RzT3BlbgogICAgIF93b3JsZC0+bWFrZUFsbFNoYWRvd1Jvb3RzT3BlbigpOwog
fQogCistICh2b2lkKWRpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IKK3sKKyAgICBfd29y
bGQtPmRpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IoKTsKK30KKwogLSAoTlNTdHJpbmcg
KiluYW1lCiB7CiAgICAgcmV0dXJuIF93b3JsZC0+bmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29y
bGQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlU2NyaXB0V29ybGQuY3BwCmluZGV4IGI0MDljNTlkNmQ1OTEyNTJjOWY3OGUyZjYzYjVi
MDEzNWU3ZTRhZGEuLmVmNjk3NzljZjRhNjlkOTdhNzNmMzM5NDAxY2E3Y2JmZDBkYzdlMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVNjcmlwdFdvcmxkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAKQEAgLTU4LDYgKzU4LDEx
IEBAIHZvaWQgV0tCdW5kbGVTY3JpcHRXb3JsZE1ha2VBbGxTaGFkb3dSb290c09wZW4oV0tCdW5k
bGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsCiAgICAgdG9JbXBsKHNjcmlwdFdvcmxkUmVmKS0+
bWFrZUFsbFNoYWRvd1Jvb3RzT3BlbigpOwogfQogCit2b2lkIFdLQnVuZGxlU2NyaXB0V29ybGRE
aXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgc2Ny
aXB0V29ybGRSZWYpCit7CisgICAgdG9JbXBsKHNjcmlwdFdvcmxkUmVmKS0+ZGlzYWJsZU92ZXJy
aWRlQnVpbHRpbnNCZWhhdmlvcigpOworfQorCiBXS1N0cmluZ1JlZiBXS0J1bmRsZVNjcmlwdFdv
cmxkQ29weU5hbWUoV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsZFJlZikKIHsKICAg
ICByZXR1cm4gdG9Db3BpZWRBUEkodG9JbXBsKHNjcmlwdFdvcmxkUmVmKS0+bmFtZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVNjcmlwdFdvcmxkLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oCmluZGV4IDMyNTM1OWQxZWRiZWI5OGJi
MGYyYTE2NDYyNWUzNmZjZmQ3NjQ0NTkuLjM2NWE2ZDM1MTA4MmViNTlmYjU2ZDhjOWQ0ZTBhODA0
MzZiMDM2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuaApAQCAtMzgs
NiArMzgsNyBAQCBXS19FWFBPUlQgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBXS0J1bmRsZVNjcmlw
dFdvcmxkQ3JlYXRlV29ybGQoKTsKIFdLX0VYUE9SVCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIFdL
QnVuZGxlU2NyaXB0V29ybGROb3JtYWxXb3JsZCgpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVT
Y3JpcHRXb3JsZENsZWFyV3JhcHBlcnMoV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3Js
ZCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNjcmlwdFdvcmxkTWFrZUFsbFNoYWRvd1Jvb3Rz
T3BlbihXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHNjcmlwdFdvcmxkKTsKK1dLX0VYUE9SVCB2b2lk
IFdLQnVuZGxlU2NyaXB0V29ybGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKFdLQnVu
ZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0V29ybGQpOwogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdL
QnVuZGxlU2NyaXB0V29ybGRDb3B5TmFtZShXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHNjcmlwdFdv
cmxkKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZC5jcHAKaW5kZXggYjE3ODMxZDJjN2E5NDNkYzRkNmMzNDU1MWQzMmJiMGIyZjQ4NmZj
OC4uZDE5YjM3ZTM4YWRjNTkxNzBjZDFiNWJlOTUwM2EzNDQ2ZGVhMGJlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2Ny
aXB0V29ybGQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcApAQCAtMTEyLDQgKzExMiw5IEBAIHZvaWQg
SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6bWFrZUFsbFNoYWRvd1Jvb3RzT3BlbigpCiAgICAg
bV93b3JsZC0+c2V0U2hhZG93Um9vdElzQWx3YXlzT3BlbigpOwogfQogCit2b2lkIEluamVjdGVk
QnVuZGxlU2NyaXB0V29ybGQ6OmRpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IoKQorewor
ICAgIG1fd29ybGQtPmRpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaApp
bmRleCA1MDkyYWU3MjU3NmVjYTE4NmIyYjU0ODZiZGY1ZjE2ZGE5Njc5NTAzLi4zMTJkZTI3ZDQ1
NDYyMGUyNDdhMzIxYjBiZGM2NGFkYWU5ZTFlMTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVh
cldyYXBwZXJzKCk7CiAgICAgdm9pZCBtYWtlQWxsU2hhZG93Um9vdHNPcGVuKCk7CisgICAgdm9p
ZCBkaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKCk7CiAKICAgICBjb25zdCBTdHJpbmcm
IG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI3YTEzYjdmYzBmMWI4Yzk1YWM3MGJhY2Vm
ZTE0NmI0NGVjZDg1ZTAuLjNjODQxNWFiOTcyMjZiNzAwOTZlNjc4MGZkYjhjZDMyYjVlNDljNjMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOC0wMi0wNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFRoZXJlIHNob3VsZCBiZSBhIHdheSB0byBkaXNhYmxlIFtPdmVycmlkZUJ1aWx0
aW5zXSBiZWhhdmlvciBpbiBhIGdpdmVuIERPTVdyYXBwZXJXb3JsZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTI0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS85MDU3MzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvci5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cnVuSmF2
YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3Q6Oklu
amVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6SW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0Jl
aGF2aW9yVGVzdDo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sOiBBZGRlZC4KKwogMjAxOC0wMi0wNyAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OKHIyMjYzOTYpOiBGaWxlIHBhdGhzIGFyZSBpbnNlcnRlZCB3aGVuIGRyb3BwaW5nIGltYWdl
IGZpbGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJiYjE3Zjk2OWJhYzkyYzczZDNiYzcw
NTkyNzJmZDkxYTU0NDI1ZmIuLjJhZmNlZWU5NmMxOWYwZjhmMWEyZmFmYThjMTUyNmNiZjI0ZGRl
YzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MzQsNiArNTM0LDkgQEAKIAkJN0NENEMy
NkUxRTJDMEU2RTAwOTI5NDcwIC8qIFN0cmluZ0NvbmNhdGVuYXRlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRDRDMjZDMUUyQzBFNkUwMDkyOTQ3
MCAvKiBTdHJpbmdDb25jYXRlbmF0ZS5jcHAgKi87IH07CiAJCTdDRUZBOTY2MUFDMEI5RTIwMEI5
MTBGRCAvKiBfV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NFRkE5NjQxQUMwQjlFMjAwQjkxMEZEIC8q
IF9XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0gKi87IH07CiAJCTdDRkJDQUU1MTc0MzIz
OEYwMEIyQkZDRiAvKiBXaWxsTG9hZF9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NGQkNBRTMxNzQzMjM4RTAwQjJCRkNGIC8qIFdpbGxM
b2FkX0J1bmRsZS5jcHAgKi87IH07CisJCTgzMTQ4QjA2MjAyQUM2QTQwMEJBREU5OSAvKiBJbmpl
Y3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMxNDhCMDUyMDJBQzY4MjAwQkFE
RTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAg
Ki87IH07CisJCTgzMTQ4QjA3MjAyQUM2QUQwMEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURpc2Fi
bGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTQ4QjA0MjAyQUM2ODIwMEJBREU5OSAvKiBJ
bmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcCAq
LzsgfTsKKwkJODMxNDhCMDkyMDJBQzc4RDAwQkFERTk5IC8qIG92ZXJyaWRlLWJ1aWx0aW5zLXRl
c3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzE0OEIwODIwMkFDNzY4MDBCQURFOTkgLyogb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5o
dG1sICovOyB9OwogCQk4MzQ5RDNDMjFEQjk2RERFMDA0QTlGNjUgLyogQ29udGV4dE1lbnVEb3du
bG9hZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
NDlEM0MxMURCOTZEREEwMDRBOUY2NSAvKiBDb250ZXh0TWVudURvd25sb2FkLm1tICovOyB9Owog
CQk4MzQ5RDNDNDFEQjk3MjhFMDA0QTlGNjUgLyogbGluay13aXRoLWRvd25sb2FkLWF0dHJpYnV0
ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzNDlEM0MzMURCOTcyNEYwMDRBOUY2NSAvKiBsaW5rLXdpdGgtZG93bmxvYWQtYXR0cmli
dXRlLmh0bWwgKi87IH07CiAJCTgzNUNGOTY3MUQyNUZDRDYwMDFBNjVENCAvKiBSZXN0b3JlU2Vz
c2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM1Q0Y5NjYxRDI1RkNENjAwMUE2NUQ0IC8qIFJlc3RvcmVT
ZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbi5jcHAgKi87IH07CkBAIC0xMDIwLDYgKzEwMjMs
NyBAQAogCQkJCUNFQTZDRjI4MTlDQ0Y2OUQwMDY0RjVBNyAvKiBvcGVuLWFuZC1jbG9zZS13aW5k
b3cuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3Q0NCOTkyMzFEM0I0QTQ2MDAzOTIy
RjYgLyogb3Blbi1tdWx0aXBsZS1leHRlcm5hbC11cmwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQkyOTBBOUJCOTE3MzVGNjM4MDBENzFCQkMgLyogT3Blbk5ld1dpbmRvdy5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAorCQkJCTgzMTQ4QjA5MjAyQUM3OEQwMEJBREU5OSAvKiBvdmVy
cmlkZS1idWlsdGlucy10ZXN0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0VCQ0Ex
MzkxRTNBODA3QTAwQzczMjkzIC8qIHBhZ2Utd2l0aC1jc3AtaWZyYW1lLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8sCiAJCQkJQ0VCQ0ExMzgxRTNBODA3QTAwQzczMjkzIC8qIHBhZ2Utd2l0aC1j
c3AuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDRUJDQTEzQjFFM0E4MDdBMDBDNzMy
OTMgLyogcGFnZS13aXRob3V0LWNzcC1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
QEAgLTE1MjIsNiArMTUyNiw5IEBACiAJCTdDRkJDQUREMTc0MzIzNEYwMEIyQkZDRiAvKiBXaWxs
TG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWxsTG9hZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRkJDQUUzMTc0MzIzOEUwMEIyQkZD
RiAvKiBXaWxsTG9hZF9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2lsbExvYWRfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODFCNTAxOTIxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nQnVpbGRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTgzMTQ4QjA0MjAyQUM2ODIwMEJBREU5OSAvKiBJbmplY3RlZEJ1
bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk4MzE0OEIwNTIwMkFDNjgyMDBCQURFOTkgLyogSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJp
ZGVCdWlsdGluc0JlaGF2aW9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMTQ4QjA4MjAyQUM3NjgwMEJBREU5OSAvKiBv
dmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
b3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODM0OUQzQzExREI5NkREQTAwNEE5RjY1IC8qIENvbnRleHRNZW51RG93bmxvYWQubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb250ZXh0TWVudURvd25sb2Fk
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzQ5RDNDMzFEQjk3MjRGMDA0QTlG
NjUgLyogbGluay13aXRoLWRvd25sb2FkLWF0dHJpYnV0ZS5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gImxpbmstd2l0aC1kb3dubG9hZC1hdHRyaWJ1dGUuaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNUNGOTY2MUQyNUZDRDYwMDFBNjVENCAvKiBSZXN0b3Jl
U2Vzc2lvblN0YXRlV2l0aG91dE5hdmlnYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1ODUsNiArMjU5Miw4IEBACiAJCQkJNEJG
REZGQTYxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5j
cHAgKi8sCiAJCQkJQkM1NzVBQUMxMjZFODNCOTAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlQmFz
aWMuY3BwICovLAogCQkJCUJDNTc1QUFGMTI2RTgzQzgwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRs
ZUJhc2ljX0J1bmRsZS5jcHAgKi8sCisJCQkJODMxNDhCMDUyMDJBQzY4MjAwQkFERTk5IC8qIElu
amVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAgKi8sCisJCQkJ
ODMxNDhCMDQyMDJBQzY4MjAwQkFERTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwICovLAogCQkJCTM3OEU2NDcxMTYzMjY0NkQwMEI2
QzY3NiAvKiBJbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdC5jcHAgKi8sCiAJCQkJMzc4RTY0NzUx
NjMyNjU1RDAwQjZDNjc2IC8qIEluamVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0X0J1bmRsZS5jcHAg
Ki8sCiAJCQkJRjY2MEFBMTIxNUE2MTlDODAwM0ExMjQzIC8qIEluamVjdGVkQnVuZGxlSW5pdGlh
bGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2lucy5jcHAgKi8sCkBAIC0yODEwLDYgKzI4MTksNyBA
QAogCQkJCTU3OTdGRTMyMUVCMTVBODkwMEIyRjRBMCAvKiBuYXZpZ2F0aW9uLWNsaWVudC1kZWZh
dWx0LWNyeXB0by5odG1sICovLAogCQkJCUM5OUI2NzVFMUUzOTczNUMwMEZDNkM4MCAvKiBuby1h
dXRvcGxheS13aXRoLWNvbnRyb2xzLmh0bWwgKi8sCiAJCQkJQ0VBNkNGMjcxOUNDRjY5RDAwNjRG
NUE3IC8qIG9wZW4tYW5kLWNsb3NlLXdpbmRvdy5odG1sICovLAorCQkJCTgzMTQ4QjA4MjAyQUM3
NjgwMEJBREU5OSAvKiBvdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwgKi8sCiAJCQkJMEVCQkND
NjUxRkZGOURDRTAwRkE0MkFCIC8qIHBvcC11cC1jaGVjay5odG1sICovLAogCQkJCUY2RkREREQ1
MTQyNDFDNDgwMDRGMTcyOSAvKiBwdXNoLXN0YXRlLmh0bWwgKi8sCiAJCQkJMEY1NjUxRjgxRkNF
NTBFODAwMzEwRkJDIC8qIHNjcm9sbC10by1hbmNob3IuaHRtbCAqLywKQEAgLTM0NzYsNiArMzQ4
Niw3IEBACiAJCQkJNTE5OEEyNDAxRUE3RTU5RjAwODkxMEI3IC8qIEluaXRpYWxXYXJtZWRQcm9j
ZXNzVXNlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBOTVCREUxMUU5QkVDNUYwMDg2NTQ5OCAv
KiBJbmplY3RlZEJ1bmRsZUFwcGxlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
RkIxQTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxlQmFzaWMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJODMxNDhCMDYyMDJBQzZBNDAwQkFERTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJs
ZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VG
QzFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRCdW5kbGVGcmFtZUhpdFRlc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFRkQxQTQxMUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxl
SW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2lucy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3QzgzRTBCODFEMEE2NEJEMDBGRUJDRjMgLyogSW5qZWN0ZWRCdW5kbGVNYWtlQWxsU2hhZG93
Um9vdHNPcGVuLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzUxNiw2ICszNTI3LDcgQEAKIAkJCQk1
QzBCRjg4RDFERDU5NjREMDBCMDAzMjggLyogTWVtb3J5UHJlc3N1cmVIYW5kbGVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0M4M0UwQjcxRDBBNjRCODAwRkVCQ0YzIC8qIE1lbnVUeXBlc0Zvck1v
dXNlRXZlbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMEJGODk0MURENTk5QzkwMEIwMDMy
OCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxNjVG
RTA0MjAxRUU2MjAwMDlGN0VDMyAvKiBNZXNzYWdlUG9ydFByb3ZpZGVycy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUE1QjE0OURFMUY1QTE5RUEwMEM2REFGRiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTUxQ0QxQzZDMUIzOENFNDMwMDE0MkNBNSAvKiBNb2RhbEFs
ZXJ0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEI2MUQwQTY0QjMwMEZFQkNGMyAvKiBN
b2RhbEFsZXJ0c1NQSS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTM1NjAsNyArMzU3Miw2IEBACiAJ
CQkJN0NDRTdGMEMxQTQxMUFFNjAwNDQ3QzRDIC8qIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5v
SGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2NDdCMTI2MUVCQTNCODUw
MDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
ODNFMEMxMUQwQTY1MkYwMEZFQkNGMyAvKiBQcm92aXNpb25hbFVSTE5vdENoYW5nZS5tbSBpbiBT
b3VyY2VzICovLAotCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlGN0VDMyAvKiBNZXNzYWdlUG9ydFBy
b3ZpZGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUM4MUE0MTFBN0UwMDQ0N0M0QyAv
KiBQdWJsaWNTdWZmaXgubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBDMjFEMEE2NTM1MDBG
RUJDRjMgLyogUXVpY2tMb29rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMEQxQTQxMUFF
NjAwNDQ3QzRDIC8qIFJlbG9hZFBhZ2VBZnRlckNyYXNoLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
Mzc1Niw2ICszNzY3LDcgQEAKIAkJCQlCQzU3NUFCMDEyNkU4M0M4MDA2RjBGMTIgLyogSW5qZWN0
ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1NzVBQTIxMjZF
NzY2MDAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQUVERTIyNjEzRTVFN0U3MDBFNjJGRTggLyogSW5qZWN0ZWRCdW5kbGVDb250cm9s
bGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJODMxNDhCMDcyMDJBQzZBRDAwQkFERTk5IC8q
IEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzc4RTY0NzcxNjMyNjU1RTAwQjZDNjc2IC8qIEluamVjdGVk
QnVuZGxlRnJhbWVIaXRUZXN0X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjYwQUEx
NTE1QTYxQUJGMDAzQTEyNDMgLyogSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRh
Q2FsbGJhY2tXaW5zX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzU3NUE5NzEyNkU3
NEYxMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVNYWluLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVE
aXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlv
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmQwZWMyYmEwMTk3ODVmNDMwMTJmY2I0Mzk2YWY0OTQ4NTBlNWUw
MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0lu
amVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHAKQEAgLTAsMCAr
MSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBXS19IQVZF
X0NfU1BJCisKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtV2ViVmlldy5oIgorI2luY2x1ZGUgIlRlc3QuaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tSZXRh
aW5QdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgdW5zaWduZWQg
dGVzdE51bWJlciA9IDA7CitzdGF0aWMgYm9vbCBkb25lID0gZmFsc2U7CisKK3N0YXRpYyB2b2lk
IHJ1bkphdmFTY3JpcHRBbGVydEVuYWJsZWQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIGFs
ZXJ0VGV4dCwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sgICAK
KyAgICBBU1NFUlRfTk9UX05VTEwoZnJhbWUpOyAgICAKKyAgICBFWFBFQ1RfRVEocGFnZSwgV0tG
cmFtZUdldFBhZ2UoZnJhbWUpKTsKKyAgICAKKyAgICArK3Rlc3ROdW1iZXI7CisgICAgRVhQRUNU
X1dLX1NUUkVRKCJQQVNTOiBbT3ZlcnJpZGVCdWlsdGluc10gd2FzIG5vdCBkaXNhYmxlZCIsIGFs
ZXJ0VGV4dCk7CisgICAgaWYgKHRlc3ROdW1iZXIgPT0gMikKKyAgICAgICAgZG9uZSA9IHRydWU7
Cit9CisKK1RFU1QoV2ViS2l0LCBJbmplY3RlZEJ1bmRsZU5vRGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvclRlc3QpCit7CisgICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VH
cm91cChBZG9wdFdLLCBXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJJbmplY3RlZEJ1bmRsZU5vRGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvclRlc3RQYWdlR3JvdXAiKSkpOworCisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0
UmVmPiBjb250ZXh0KEFkb3B0V0ssIFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRs
ZVRlc3QoIkluamVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVz
dCIsIHBhZ2VHcm91cC5nZXQoKSkpOworICAgIFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRl
eHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7CisKKyAgICBXS1BhZ2VVSUNsaWVudFYwIHVpQ2xp
ZW50OworICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOworCisgICAg
dWlDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsKKyAgICB1aUNsaWVudC5ydW5KYXZhU2NyaXB0QWxl
cnQgPSBydW5KYXZhU2NyaXB0QWxlcnRFbmFibGVkOworCisgICAgV0tQYWdlU2V0UGFnZVVJQ2xp
ZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQuYmFzZSk7CisKKyAgICB0ZXN0TnVtYmVyID0g
MDsKKyAgICBkb25lID0gZmFsc2U7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybChBZG9w
dFdLLCBVdGlsOjpjcmVhdGVVUkxGb3JSZXNvdXJjZSgib3ZlcnJpZGUtYnVpbHRpbnMtdGVzdCIs
ICJodG1sIikpOworICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7
CisKKyAgICBVdGlsOjpydW4oJmRvbmUpOworfQorCitzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0
QWxlcnREaXNhYmxlZChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0Zy
YW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreyAgIAorICAgIEFTU0VSVF9O
T1RfTlVMTChmcmFtZSk7ICAgIAorICAgIEVYUEVDVF9FUShwYWdlLCBXS0ZyYW1lR2V0UGFnZShm
cmFtZSkpOworCisgICAgKyt0ZXN0TnVtYmVyOworICAgIEVYUEVDVF9XS19TVFJFUSgiUEFTUzog
W092ZXJyaWRlQnVpbHRpbnNdIHdhcyBkaXNhYmxlZCIsIGFsZXJ0VGV4dCk7CisgICAgaWYgKHRl
c3ROdW1iZXIgPT0gMikKKyAgICAgICAgZG9uZSA9IHRydWU7Cit9CisKK1RFU1QoV2ViS2l0LCBJ
bmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0KQoreworICAg
IFdLUmV0YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAoQWRvcHRXSywgV0tQYWdlR3Jv
dXBDcmVhdGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSW5q
ZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdFBhZ2VHcm91cCIp
KSk7CisKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQoQWRvcHRXSywgVXRp
bDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVuZGxlVGVzdCgiSW5qZWN0ZWRCdW5kbGVEaXNh
YmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCIsIHBhZ2VHcm91cC5nZXQoKSkpOworICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCksIHBhZ2VHcm91cC5nZXQoKSk7
CisKKyAgICBXS1BhZ2VVSUNsaWVudFYwIHVpQ2xpZW50OworICAgIG1lbXNldCgmdWlDbGllbnQs
IDAsIHNpemVvZih1aUNsaWVudCkpOworCisgICAgdWlDbGllbnQuYmFzZS52ZXJzaW9uID0gMDsK
KyAgICB1aUNsaWVudC5ydW5KYXZhU2NyaXB0QWxlcnQgPSBydW5KYXZhU2NyaXB0QWxlcnREaXNh
YmxlZDsKKworICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xp
ZW50LmJhc2UpOworCisgICAgdGVzdE51bWJlciA9IDA7CisgICAgZG9uZSA9IGZhbHNlOworICAg
IFdLUmV0YWluUHRyPFdLVVJMUmVmPiB1cmwoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVz
b3VyY2UoIm92ZXJyaWRlLWJ1aWx0aW5zLXRlc3QiLCAiaHRtbCIpKTsKKyAgICBXS1BhZ2VMb2Fk
VVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOworCisgICAgVXRpbDo6cnVuKCZkb25lKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92
ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9y
X0J1bmRsZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmZkYmVjNDdmZDJhMDg2MDYwNzk3YmY0ZDAyMzM4NmEx
ZDk3NWYxZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUu
Y3BwCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpZiBXS19IQVZFX0NfU1BJCisKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVRlc3QuaCIKKyNp
bmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tC
dW5kbGVQcml2YXRlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlU2NyaXB0V29ybGQuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKwor
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitjbGFzcyBJbmplY3RlZEJ1bmRsZU5vRGlzYWJs
ZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QgOiBwdWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0
IHsKK3B1YmxpYzoKKyAgICBJbmplY3RlZEJ1bmRsZU5vRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNC
ZWhhdmlvclRlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIGlkZW50aWZpZXIpCisgICAgICAgIDogSW5q
ZWN0ZWRCdW5kbGVUZXN0KGlkZW50aWZpZXIpCisgICAgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQg
aW5pdGlhbGl6ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLVHlwZVJlZiB1c2VyRGF0YSkKKyAgICB7
CisgICAgICAgIGFzc2VydChXS0dldFR5cGVJRCh1c2VyRGF0YSkgPT0gV0tCdW5kbGVQYWdlR3Jv
dXBHZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCA9
IHN0YXRpY19jYXN0PFdLQnVuZGxlUGFnZUdyb3VwUmVmPih1c2VyRGF0YSk7CisKKyAgICAgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNvdXJjZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygKKyAgICAgICAgICAgICJ3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkg
e1xuIgorICAgICAgICAgICAgIiAgICBjb25zdCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3QnKS5wYXJlbnROb2RlO1xuIgorICAgICAgICAgICAgIiAgICBhbGVydChmb3JtLnRh
Z05hbWUgIT0gJ0ZPUk0nID8gJ1BBU1M6IFtPdmVycmlkZUJ1aWx0aW5zXSB3YXMgbm90IGRpc2Fi
bGVkJyA6ICdGQUlMOiBbT3ZlcnJpZGVCdWlsdGluc10gd2FzIGRpc2FibGVkJyk7XG4iCisgICAg
ICAgICAgICAifVxuIikpOworCisgICAgICAgIGF1dG8gbm9ybWFsV29ybGQgPSBXS0J1bmRsZVNj
cmlwdFdvcmxkTm9ybWFsV29ybGQoKTsKKyAgICAgICAgV0tCdW5kbGVBZGRVc2VyU2NyaXB0KGJ1
bmRsZSwgcGFnZUdyb3VwLCBub3JtYWxXb3JsZCwgc291cmNlLmdldCgpLCAwLCAwLCAwLCBrV0tJ
bmplY3RBdERvY3VtZW50RW5kLCBrV0tJbmplY3RJbkFsbEZyYW1lcyk7CisKKyAgICAgICAgYXV0
byBpc29sYXRlZFdvcmxkID0gV0tCdW5kbGVTY3JpcHRXb3JsZENyZWF0ZVdvcmxkKCk7CisgICAg
ICAgIFdLQnVuZGxlQWRkVXNlclNjcmlwdChidW5kbGUsIHBhZ2VHcm91cCwgaXNvbGF0ZWRXb3Js
ZCwgc291cmNlLmdldCgpLCAwLCAwLCAwLCBrV0tJbmplY3RBdERvY3VtZW50RW5kLCBrV0tJbmpl
Y3RJbkFsbEZyYW1lcyk7CisgICAgfQorfTsKKworY2xhc3MgSW5qZWN0ZWRCdW5kbGVEaXNhYmxl
T3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCA6IHB1YmxpYyBJbmplY3RlZEJ1bmRsZVRlc3Qg
eworcHVibGljOgorICAgIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhh
dmlvclRlc3QoY29uc3Qgc3RkOjpzdHJpbmcmIGlkZW50aWZpZXIpCisgICAgICAgIDogSW5qZWN0
ZWRCdW5kbGVUZXN0KGlkZW50aWZpZXIpCisgICAgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgaW5p
dGlhbGl6ZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLVHlwZVJlZiB1c2VyRGF0YSkKKyAgICB7Cisg
ICAgICAgIGFzc2VydChXS0dldFR5cGVJRCh1c2VyRGF0YSkgPT0gV0tCdW5kbGVQYWdlR3JvdXBH
ZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCA9IHN0
YXRpY19jYXN0PFdLQnVuZGxlUGFnZUdyb3VwUmVmPih1c2VyRGF0YSk7CisKKyAgICAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNvdXJjZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygKKyAgICAgICAgICAgICJ3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkge1xu
IgorICAgICAgICAgICAgIiAgICBjb25zdCBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3QnKS5wYXJlbnROb2RlO1xuIgorICAgICAgICAgICAgIiAgICBhbGVydChmb3JtLnRhZ05h
bWUgPT09ICdGT1JNJyA/ICdQQVNTOiBbT3ZlcnJpZGVCdWlsdGluc10gd2FzIGRpc2FibGVkJyA6
ICdGQUlMOiBbT3ZlcnJpZGVCdWlsdGluc10gd2FzIG5vdCBkaXNhYmxlZCcpO1xuIgorICAgICAg
ICAgICAgIn1cbiIpKTsKKworICAgICAgICBhdXRvIG5vcm1hbFdvcmxkID0gV0tCdW5kbGVTY3Jp
cHRXb3JsZE5vcm1hbFdvcmxkKCk7CisgICAgICAgIFdLQnVuZGxlU2NyaXB0V29ybGREaXNhYmxl
T3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKG5vcm1hbFdvcmxkKTsKKyAgICAgICAgV0tCdW5kbGVB
ZGRVc2VyU2NyaXB0KGJ1bmRsZSwgcGFnZUdyb3VwLCBub3JtYWxXb3JsZCwgc291cmNlLmdldCgp
LCAwLCAwLCAwLCBrV0tJbmplY3RBdERvY3VtZW50RW5kLCBrV0tJbmplY3RJbkFsbEZyYW1lcyk7
CisKKyAgICAgICAgYXV0byBpc29sYXRlZFdvcmxkID0gV0tCdW5kbGVTY3JpcHRXb3JsZENyZWF0
ZVdvcmxkKCk7CisgICAgICAgIFdLQnVuZGxlU2NyaXB0V29ybGREaXNhYmxlT3ZlcnJpZGVCdWls
dGluc0JlaGF2aW9yKGlzb2xhdGVkV29ybGQpOworICAgICAgICBXS0J1bmRsZUFkZFVzZXJTY3Jp
cHQoYnVuZGxlLCBwYWdlR3JvdXAsIGlzb2xhdGVkV29ybGQsIHNvdXJjZS5nZXQoKSwgMCwgMCwg
MCwga1dLSW5qZWN0QXREb2N1bWVudEVuZCwga1dLSW5qZWN0SW5BbGxGcmFtZXMpOworICAgIH0K
K307CisKK3N0YXRpYyBJbmplY3RlZEJ1bmRsZVRlc3Q6OlJlZ2lzdGVyPEluamVjdGVkQnVuZGxl
Tm9EaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdD4gcmVnaXN0cmFyMSgiSW5qZWN0
ZWRCdW5kbGVOb0Rpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0Iik7CitzdGF0aWMg
SW5qZWN0ZWRCdW5kbGVUZXN0OjpSZWdpc3RlcjxJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3JUZXN0PiByZWdpc3RyYXIyKCJJbmplY3RlZEJ1bmRsZURpc2FibGVP
dmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0Iik7CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9vdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9vdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U2YTBj
Njk5Nzg1Mjk5ZjhiOTNhNGE2YzI5MjgyMDk4OTBhNDdiZAotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L292ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRt
bApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxmb3Jt
PgorPGlucHV0IGlkPSJ0ZXN0IiBuYW1lPSJ0YWdOYW1lIj4KKzwvZm9ybT4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333352</attachid>
            <date>2018-02-07 19:05:35 -0800</date>
            <delta_ts>2018-02-08 19:20:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182524-20180207190534.patch</filename>
            <type>text/plain</type>
            <size>27881</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTZjMTAxYTIwNTY2ZGE0
OTkzYWNmMGQ1ZjNjZWM2YWQ3N2I2ZGZlMy4uNDNiNjA2OTkzYWY5YmM1YmNmNDcwODI4ZDI3YmFj
ZTNjMWVhMDFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTAyLTA3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGhlcmUgc2hvdWxkIGJlIGEg
d2F5IHRvIGRpc2FibGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIGluIGEgZ2l2ZW4gRE9N
V3JhcHBlcldvcmxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODI1MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNTczMjc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBmbGFnIG9uIERP
TVdyYXBwZXJXb3JsZCBpbmRpY2F0aW5nIGlmIHRoZSBbT3ZlcnJpZGVCdWlsdGluc10gYmVoYXZp
b3Igc2hvdWxkCisgICAgICAgIGJlIGVuYWJsZWQgaW4gdGhpcyB3b3JsZCBvciBub3QuIFRoZSBi
ZWhhdmlvciBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIFdlYi1jb21wYXRpYmlsaXR5LgorICAg
ICAgICBUaGlzIGZsYWcgaXMgcXVlcmllZCBpbiBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eSgp
IHdoZW4gZG9pbmcgdGhlIG5hbWVkIHByb3BlcnR5CisgICAgICAgIGxvb2t1cC4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0RPTVdy
YXBwZXJXb3JsZC5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkOjpkaXNhYmxl
T3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdyYXBwZXJX
b3JsZDo6c2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvciBjb25zdCk6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OmFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5KToKKwogMjAxOC0wMi0wNyAgUnlhbiBI
YWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMjI4MjQzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyOWRlM2UzZWI3MTIwMjM0Y2ZmYjBmNWZiM2My
MGI2NjUxZjUzMTU2Li5iYWM5YzM2ZDUyOWEwMWFiOTFjMDcxNjM0OTlhYjQxYzkxMTM1NGRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTAyLTA3ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgVGhlcmUgc2hvdWxkIGJlIGEgd2F5IHRvIGRpc2FibGUg
W092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIGluIGEgZ2l2ZW4gRE9NV3JhcHBlcldvcmxkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI1MjQKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNTczMjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEMgQVBJIG9uIFdLQnVuZGxlU2NyaXB0V29ybGQg
YW5kIENvY29hIEFQSSBvbiBXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCB0bworICAgICAg
ICBkaXNhYmxlIHRoZSBbT3ZlcnJpZGVCdWlsdGluc10gYmVoYXZpb3Igb24gYSBnaXZlbiBzY3Jp
cHQgd29ybGQuCisKKyAgICAgICAgVGhlIFtPdmVycmlkZUJ1aWx0aW5zXSBiZWhhdmlvciBbMV0g
aXMgbGVnYWN5IGJlaGF2aW9yIHRoYXQgaXMgbmVlZGVkIGZvciBXZWIgY29tcGF0aWJpbGl0eQor
ICAgICAgICBidXQgYWxsb3dpbmcgdGhlIGNsaWVudCB0byBkaXNhYmxlIHRoaXMgYmVoYXZpb3Ig
aW4gYSBnaXZlbiB3b3JsZCBtYWtlcyBkZXZlbG9wbWVudCBlYXNpZXIKKyAgICAgICAgYW5kIHJ1
bm5pbmcgaW5qZWN0ZWQgc2NyaXB0IG9uIHVuY29udHJvbGxlZCBjb250ZW50IGEgbG90IG1vcmUg
cmVsaWFibGUuCisKKyAgICAgICAgWzFdIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwv
I092ZXJyaWRlQnVpbHRpbnMKKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0
V29ybGQubW06CisgICAgICAgICgtW1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkIGRpc2Fi
bGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuY3BwOgorICAgICAgICAoV0tCdW5k
bGVTY3JpcHRXb3JsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRX
b3JsZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6OmRp
c2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oOgorCiAyMDE4LTAyLTA3ICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEV2ZXJub3Rl
IGRldmljZSBtYW5hZ2VtZW50IHdlYiB2aWV3IHNvbWV0aW1lcyBkaXNwbGF5cyBhdCB0aGUgd3Jv
bmcgc2NhbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBw
ZXJXb3JsZC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmgK
aW5kZXggYjM2YzA5ODcxMGNmZjJmZTlhYTZiYWJiYmJiNGYzNTU1YmNiNjg3MC4uMjE3NzAxYTE4
ZTkxM2M3NjgwODYxODg2ZjJlNjdlOGJhN2MxMWZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvRE9NV3JhcHBlcldvcmxkLmgKQEAgLTQ3LDYgKzQ3LDkgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0U2hhZG93Um9vdElzQWx3YXlzT3BlbigpIHsgbV9zaGFkb3dSb290SXNBbHdheXNP
cGVuID0gdHJ1ZTsgfQogICAgIGJvb2wgc2hhZG93Um9vdElzQWx3YXlzT3BlbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2hhZG93Um9vdElzQWx3YXlzT3BlbjsgfQogCisgICAgdm9pZCBkaXNhYmxlT3Zl
cnJpZGVCdWlsdGluc0JlaGF2aW9yKCkgeyBtX3Nob3VsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5z
QmVoYXZpb3IgPSB0cnVlOyB9CisgICAgYm9vbCBzaG91bGREaXNhYmxlT3ZlcnJpZGVCdWlsdGlu
c0JlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGREaXNhYmxlT3ZlcnJpZGVCdWlsdGlu
c0JlaGF2aW9yOyB9CisKICAgICBET01PYmplY3RXcmFwcGVyTWFwJiB3cmFwcGVycygpIHsgcmV0
dXJuIG1fd3JhcHBlcnM7IH0KIAogICAgIGJvb2wgaXNOb3JtYWwoKSBjb25zdCB7IHJldHVybiBt
X2lzTm9ybWFsOyB9CkBAIC02Myw2ICs2Niw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1faXNO
b3JtYWw7CiAgICAgYm9vbCBtX3NoYWRvd1Jvb3RJc0Fsd2F5c09wZW4geyBmYWxzZSB9OworICAg
IGJvb2wgbV9zaG91bGREaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yIHsgZmFsc2UgfTsK
IH07CiAKIERPTVdyYXBwZXJXb3JsZCYgbm9ybWFsV29ybGQoSlNDOjpWTSYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgKaW5k
ZXggM2Y4MTE0Zjc1OTk3NTEzZmMxOTY5YWY1NWMwODU0MGI4M2E2NzAxNS4uNTYzYjI0MjY4NGZh
ZmM5OTkxOGI1NjliOTQ5MzFlNzE5MjcxYjdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oCkBAIC0xMDQsNyArMTA0LDcg
QEAgc3RhdGljIGF1dG8gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUm
IHN0YXRlLCBKU0NsYXNzJiB0aGlzT2JqZWMKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
IAogICAgIC8vIDMuIElmIE8gaW1wbGVtZW50cyBhbiBpbnRlcmZhY2UgdGhhdCBoYXMgdGhlIFtP
dmVycmlkZUJ1aWx0aW5zXSBleHRlbmRlZCBhdHRyaWJ1dGUsIHRoZW4gcmV0dXJuIHRydWUuCi0g
ICAgaWYgKG92ZXJyaWRlQnVpbHRpbnMgPT0gT3ZlcnJpZGVCdWlsdGluczo6WWVzKQorICAgIGlm
IChvdmVycmlkZUJ1aWx0aW5zID09IE92ZXJyaWRlQnVpbHRpbnM6OlllcyAmJiAhd29ybGRGb3JE
T01PYmplY3QoJnRoaXNPYmplY3QpLnNob3VsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZp
b3IoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAogICAgIC8vIDQuIEluaXRpYWxpemUgcHJv
dG90eXBlIHRvIGJlIHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9w
ZXJ0eSBvZiBPLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5TY3JpcHRXb3JsZC5oCmluZGV4IDY0NzA3YmJlYTdkNzlkZWQ2MjA4NTZiZTIwYjhlYmE2
MzRmMDk0ZWMuLmIyOTJhNGY0MTc5MjAxOTUzMDhlODMxYzdhN2ViNTlmNjkwZWMzZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdv
cmxkLmgKQEAgLTM5LDYgKzM5LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCks
IGlvcyg4LjApKQogCiAtICh2b2lkKWNsZWFyV3JhcHBlcnM7CiAtICh2b2lkKW1ha2VBbGxTaGFk
b3dSb290c09wZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwor
LSAodm9pZClkaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkLm1t
CmluZGV4IDhjYzYyOGFjMTc2M2ZhNTY5NWQ3NDEwNWMzZTQ4ZTk4ZTg3ODRkNjEuLjZlYmEwMTI5
ZDc3NzQ5NGI3YjBhYTU4ODgwNDQ5MjEwODBlNjczN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0lu
U2NyaXB0V29ybGQubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5tbQpAQCAtNjEsNiAr
NjEsMTEgQEAgLSAodm9pZCltYWtlQWxsU2hhZG93Um9vdHNPcGVuCiAgICAgX3dvcmxkLT5tYWtl
QWxsU2hhZG93Um9vdHNPcGVuKCk7CiB9CiAKKy0gKHZvaWQpZGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvcgoreworICAgIF93b3JsZC0+ZGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlv
cigpOworfQorCiAtIChOU1N0cmluZyAqKW5hbWUKIHsKICAgICByZXR1cm4gX3dvcmxkLT5uYW1l
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAKaW5kZXggYjQwOWM1
OWQ2ZDU5MTI1MmM5Zjc4ZTJmNjNiNWIwMTM1ZTdlNGFkYS4uZWY2OTc3OWNmNGE2OWQ5N2E3M2Yz
Mzk0MDFjYTdjYmZkMGRjN2UyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdv
cmxkLmNwcApAQCAtNTgsNiArNTgsMTEgQEAgdm9pZCBXS0J1bmRsZVNjcmlwdFdvcmxkTWFrZUFs
bFNoYWRvd1Jvb3RzT3BlbihXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHNjcmlwdFdvcmwKICAgICB0
b0ltcGwoc2NyaXB0V29ybGRSZWYpLT5tYWtlQWxsU2hhZG93Um9vdHNPcGVuKCk7CiB9CiAKK3Zv
aWQgV0tCdW5kbGVTY3JpcHRXb3JsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IoV0tC
dW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsZFJlZikKK3sKKyAgICB0b0ltcGwoc2NyaXB0
V29ybGRSZWYpLT5kaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yKCk7Cit9CisKIFdLU3Ry
aW5nUmVmIFdLQnVuZGxlU2NyaXB0V29ybGRDb3B5TmFtZShXS0J1bmRsZVNjcmlwdFdvcmxkUmVm
IHNjcmlwdFdvcmxkUmVmKQogewogICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwoc2NyaXB0
V29ybGRSZWYpLT5uYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmgK
aW5kZXggMzI1MzU5ZDFlZGJlYjk4YmIwZjJhMTY0NjI1ZTM2ZmNmZDc2NDQ1OS4uMzY1YTZkMzUx
MDgyZWI1OWZiNTZkOGM5ZDRlMGE4MDQzNmIwMzY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVTY3JpcHRXb3JsZC5oCkBAIC0zOCw2ICszOCw3IEBAIFdLX0VYUE9SVCBXS0J1bmRsZVNjcmlw
dFdvcmxkUmVmIFdLQnVuZGxlU2NyaXB0V29ybGRDcmVhdGVXb3JsZCgpOwogV0tfRVhQT1JUIFdL
QnVuZGxlU2NyaXB0V29ybGRSZWYgV0tCdW5kbGVTY3JpcHRXb3JsZE5vcm1hbFdvcmxkKCk7CiBX
S19FWFBPUlQgdm9pZCBXS0J1bmRsZVNjcmlwdFdvcmxkQ2xlYXJXcmFwcGVycyhXS0J1bmRsZVNj
cmlwdFdvcmxkUmVmIHNjcmlwdFdvcmxkKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU2NyaXB0
V29ybGRNYWtlQWxsU2hhZG93Um9vdHNPcGVuKFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0
V29ybGQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTY3JpcHRXb3JsZERpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3IoV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsZCk7CiBX
S19FWFBPUlQgV0tTdHJpbmdSZWYgV0tCdW5kbGVTY3JpcHRXb3JsZENvcHlOYW1lKFdLQnVuZGxl
U2NyaXB0V29ybGRSZWYgc2NyaXB0V29ybGQpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVNjcmlwdFdvcmxkLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcAppbmRleCBiMTc4MzFkMmM3YTk0M2Rj
NGQ2YzM0NTUxZDMyYmIwYjJmNDg2ZmM4Li5kMTliMzdlMzhhZGM1OTE3MGNkMWI1YmU5NTAzYTM0
NDZkZWEwYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3BwCkBA
IC0xMTIsNCArMTEyLDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkOjptYWtlQWxs
U2hhZG93Um9vdHNPcGVuKCkKICAgICBtX3dvcmxkLT5zZXRTaGFkb3dSb290SXNBbHdheXNPcGVu
KCk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6ZGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvcigpCit7CisgICAgbV93b3JsZC0+ZGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlw
dFdvcmxkLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVTY3JpcHRXb3JsZC5oCmluZGV4IDUwOTJhZTcyNTc2ZWNhMTg2YjJiNTQ4NmJkZjVm
MTZkYTk2Nzk1MDMuLjMxMmRlMjdkNDU0NjIwZTI0N2EzMjFiMGJkYzY0YWRhZTllMWUxNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVNjcmlwdFdvcmxkLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaApAQCAtNTEsNiArNTEsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGNsZWFyV3JhcHBlcnMoKTsKICAgICB2b2lkIG1ha2VBbGxTaGFk
b3dSb290c09wZW4oKTsKKyAgICB2b2lkIGRpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3Io
KTsKIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQog
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGQ0
MWM4MWU3ZWZiYTMxOGMxZTBlODNkNGZlNWY0MWU4NGZlYWQ4Yi4uNjA1Y2M4M2ExZjNiZDM2Nzcw
MjE3N2NmZmNkYWYxZWI3ZDY1M2Y1ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTAyLTA3ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGhlcmUgc2hvdWxkIGJlIGEgd2F5IHRv
IGRpc2FibGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIGluIGEgZ2l2ZW4gRE9NV3JhcHBl
cldvcmxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODI1MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNTczMjc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRC
dW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcDogQWRkZWQuCisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpydW5KYXZhU2NyaXB0QWxlcnQpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0
ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRsZS5jcHA6IEFkZGVk
LgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVC
dWlsdGluc0JlaGF2aW9yVGVzdDo6SW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGlu
c0JlaGF2aW9yVGVzdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpJbmplY3RlZEJ1bmRsZURp
c2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0Ojppbml0aWFsaXplKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9vdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWw6
IEFkZGVkLgorCiAyMDE4LTAyLTA3ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgogCiAgICAgICAgIEV2ZXJub3RlIGRldmljZSBtYW5hZ2VtZW50IHdlYiB2aWV3IHNvbWV0
aW1lcyBkaXNwbGF5cyBhdCB0aGUgd3Jvbmcgc2NhbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNWI4NmQ2ZWExYmJiOTI1Y2Y1NmY0MWQ2NmM5MjdlM2VhZDE0MjBiNS4uM2FmOGQyNGExZGRi
N2ZmMWZlZmE5MjU5YThhYjkyZjU1Y2I4NjZiZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTUzNCw2ICs1MzQsOSBAQAogCQk3Q0Q0QzI2RTFFMkMwRTZFMDA5Mjk0NzAgLyogU3RyaW5nQ29u
Y2F0ZW5hdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0NENEMyNkMxRTJDMEU2RTAwOTI5NDcwIC8qIFN0cmluZ0NvbmNhdGVuYXRlLmNwcCAqLzsg
fTsKIAkJN0NFRkE5NjYxQUMwQjlFMjAwQjkxMEZEIC8qIF9XS1VzZXJDb250ZW50RXh0ZW5zaW9u
U3RvcmUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0VGQTk2NDFBQzBCOUUyMDBCOTEwRkQgLyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5t
bSAqLzsgfTsKIAkJN0NGQkNBRTUxNzQzMjM4RjAwQjJCRkNGIC8qIFdpbGxMb2FkX0J1bmRsZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0ZCQ0FF
MzE3NDMyMzhFMDBCMkJGQ0YgLyogV2lsbExvYWRfQnVuZGxlLmNwcCAqLzsgfTsKKwkJODMxNDhC
MDYyMDJBQzZBNDAwQkFERTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRp
bnNCZWhhdmlvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzE0OEIwNTIwMkFDNjgyMDBCQURFOTkgLyogSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3Zl
cnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcCAqLzsgfTsKKwkJODMxNDhCMDcyMDJBQzZBRDAwQkFE
RTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcl9CdW5k
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMx
NDhCMDQyMDJBQzY4MjAwQkFERTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwICovOyB9OworCQk4MzE0OEIwOTIwMkFDNzhEMDBCQURF
OTkgLyogb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTQ4QjA4MjAyQUM3NjgwMEJBREU5OSAv
KiBvdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwgKi87IH07CiAJCTgzNDlEM0MyMURCOTZEREUw
MDRBOUY2NSAvKiBDb250ZXh0TWVudURvd25sb2FkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0OUQzQzExREI5NkREQTAwNEE5RjY1IC8qIENvbnRl
eHRNZW51RG93bmxvYWQubW0gKi87IH07CiAJCTgzNDlEM0M0MURCOTcyOEUwMDRBOUY2NSAvKiBs
aW5rLXdpdGgtZG93bmxvYWQtYXR0cmlidXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0OUQzQzMxREI5NzI0RjAwNEE5RjY1IC8q
IGxpbmstd2l0aC1kb3dubG9hZC1hdHRyaWJ1dGUuaHRtbCAqLzsgfTsKIAkJODM1Q0Y5NjcxRDI1
RkNENjAwMUE2NUQ0IC8qIFJlc3RvcmVTZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzVDRjk2NjFE
MjVGQ0Q2MDAxQTY1RDQgLyogUmVzdG9yZVNlc3Npb25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLmNw
cCAqLzsgfTsKQEAgLTEwMjAsNiArMTAyMyw3IEBACiAJCQkJQ0VBNkNGMjgxOUNDRjY5RDAwNjRG
NUE3IC8qIG9wZW4tYW5kLWNsb3NlLXdpbmRvdy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTdDQ0I5OTIzMUQzQjRBNDYwMDM5MjJGNiAvKiBvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVy
bC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTI5MEE5QkI5MTczNUY2MzgwMEQ3MUJC
QyAvKiBPcGVuTmV3V2luZG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJODMxNDhC
MDkyMDJBQzc4RDAwQkFERTk5IC8qIG92ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQlDRUJDQTEzOTFFM0E4MDdBMDBDNzMyOTMgLyogcGFnZS13aXRo
LWNzcC1pZnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDRUJDQTEzODFFM0E4
MDdBMDBDNzMyOTMgLyogcGFnZS13aXRoLWNzcC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCUNFQkNBMTNCMUUzQTgwN0EwMEM3MzI5MyAvKiBwYWdlLXdpdGhvdXQtY3NwLWlmcmFtZS5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTUyMiw2ICsxNTI2LDkgQEAKIAkJN0NGQkNB
REQxNzQzMjM0RjAwQjJCRkNGIC8qIFdpbGxMb2FkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdpbGxMb2FkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0NGQkNBRTMxNzQzMjM4RTAwQjJCRkNGIC8qIFdpbGxMb2FkX0J1bmRsZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXaWxsTG9hZF9CdW5kbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3Ry
aW5nQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHJp
bmdCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMxNDhCMDQyMDJB
QzY4MjAwQkFERTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhh
dmlvcl9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5q
ZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRsZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMTQ4QjA1MjAyQUM2ODIwMEJBREU5OSAvKiBJ
bmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJp
ZGVCdWlsdGluc0JlaGF2aW9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMx
NDhCMDgyMDJBQzc2ODAwQkFERTk5IC8qIG92ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJvdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzQ5RDNDMTFEQjk2RERBMDA0QTlGNjUgLyog
Q29udGV4dE1lbnVEb3dubG9hZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IENvbnRleHRNZW51RG93bmxvYWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzNDlEM0MzMURCOTcyNEYwMDRBOUY2NSAvKiBsaW5rLXdpdGgtZG93bmxvYWQtYXR0cmli
dXRlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGluay13aXRoLWRvd25sb2Fk
LWF0dHJpYnV0ZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1Q0Y5NjYx
RDI1RkNENjAwMUE2NUQ0IC8qIFJlc3RvcmVTZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXN0b3JlU2Vzc2lvblN0
YXRlV2l0aG91dE5hdmlnYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjU4NSw2ICsyNTkyLDggQEAKIAkJCQk0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVz
dFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCAqLywKIAkJCQlCQzU3NUFBQzEyNkU4M0I5MDA2
RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVCYXNpYy5jcHAgKi8sCiAJCQkJQkM1NzVBQUYxMjZFODND
ODAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlQmFzaWNfQnVuZGxlLmNwcCAqLywKKwkJCQk4MzE0
OEIwNTIwMkFDNjgyMDBCQURFOTkgLyogSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWls
dGluc0JlaGF2aW9yLmNwcCAqLywKKwkJCQk4MzE0OEIwNDIwMkFDNjgyMDBCQURFOTkgLyogSW5q
ZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRsZS5jcHAgKi8s
CiAJCQkJMzc4RTY0NzExNjMyNjQ2RDAwQjZDNjc2IC8qIEluamVjdGVkQnVuZGxlRnJhbWVIaXRU
ZXN0LmNwcCAqLywKIAkJCQkzNzhFNjQ3NTE2MzI2NTVEMDBCNkM2NzYgLyogSW5qZWN0ZWRCdW5k
bGVGcmFtZUhpdFRlc3RfQnVuZGxlLmNwcCAqLywKIAkJCQlGNjYwQUExMjE1QTYxOUM4MDAzQTEy
NDMgLyogSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zLmNw
cCAqLywKQEAgLTI4MTAsNiArMjgxOSw3IEBACiAJCQkJNTc5N0ZFMzIxRUIxNUE4OTAwQjJGNEEw
IC8qIG5hdmlnYXRpb24tY2xpZW50LWRlZmF1bHQtY3J5cHRvLmh0bWwgKi8sCiAJCQkJQzk5QjY3
NUUxRTM5NzM1QzAwRkM2QzgwIC8qIG5vLWF1dG9wbGF5LXdpdGgtY29udHJvbHMuaHRtbCAqLywK
IAkJCQlDRUE2Q0YyNzE5Q0NGNjlEMDA2NEY1QTcgLyogb3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0
bWwgKi8sCisJCQkJODMxNDhCMDgyMDJBQzc2ODAwQkFERTk5IC8qIG92ZXJyaWRlLWJ1aWx0aW5z
LXRlc3QuaHRtbCAqLywKIAkJCQkwRUJCQ0M2NTFGRkY5RENFMDBGQTQyQUIgLyogcG9wLXVwLWNo
ZWNrLmh0bWwgKi8sCiAJCQkJRjZGRERERDUxNDI0MUM0ODAwNEYxNzI5IC8qIHB1c2gtc3RhdGUu
aHRtbCAqLywKIAkJCQkwRjU2NTFGODFGQ0U1MEU4MDAzMTBGQkMgLyogc2Nyb2xsLXRvLWFuY2hv
ci5odG1sICovLApAQCAtMzQ3Niw2ICszNDg2LDcgQEAKIAkJCQk1MTk4QTI0MDFFQTdFNTlGMDA4
OTEwQjcgLyogSW5pdGlhbFdhcm1lZFByb2Nlc3NVc2VkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0E5NUJERTExRTlCRUM1RjAwODY1NDk4IC8qIEluamVjdGVkQnVuZGxlQXBwbGVFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGQjFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRC
dW5kbGVCYXNpYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4MzE0OEIwNjIwMkFDNkE0MDBCQURF
OTkgLyogSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUZDMUE0MTFBRTYwMDQ0N0M0QyAvKiBJbmplY3RlZEJ1
bmRsZUZyYW1lSGl0VGVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGRDFBNDExQUU2
MDA0NDdDNEMgLyogSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tX
aW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEI4MUQwQTY0QkQwMEZFQkNGMyAvKiBJ
bmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0zNzU2LDYgKzM3NjcsNyBAQAogCQkJCUJDNTc1QUIwMTI2RTgzQzgwMDZGMEYxMiAvKiBJbmpl
Y3RlZEJ1bmRsZUJhc2ljX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzU3NUFBMjEy
NkU3NjYwMDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBRURFMjI2MTNFNUU3RTcwMEU2MkZFOCAvKiBJbmplY3RlZEJ1bmRsZUNvbnRy
b2xsZXJNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQk4MzE0OEIwNzIwMkFDNkFEMDBCQURFOTkg
LyogSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRsZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzhFNjQ3NzE2MzI2NTVFMDBCNkM2NzYgLyogSW5qZWN0
ZWRCdW5kbGVGcmFtZUhpdFRlc3RfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY2NjBB
QTE1MTVBNjFBQkYwMDNBMTI0MyAvKiBJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRh
dGFDYWxsYmFja1dpbnNfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNTc1QTk3MTI2
RTc0RjEwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZU1haW4uY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRs
ZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2
aW9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZDBlYzJiYTAxOTc4NWY0MzAxMmZjYjQzOTZhZjQ5NDg1MGU1
ZTAyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
SW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcApAQCAtMCww
ICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hB
VkVfQ19TUEkKKworI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSAiVGVzdC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1Jl
dGFpblB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyB1bnNpZ25l
ZCB0ZXN0TnVtYmVyID0gMDsKK3N0YXRpYyBib29sIGRvbmUgPSBmYWxzZTsKKworc3RhdGljIHZv
aWQgcnVuSmF2YVNjcmlwdEFsZXJ0RW5hYmxlZChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYg
YWxlcnRUZXh0LCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreyAg
IAorICAgIEFTU0VSVF9OT1RfTlVMTChmcmFtZSk7ICAgIAorICAgIEVYUEVDVF9FUShwYWdlLCBX
S0ZyYW1lR2V0UGFnZShmcmFtZSkpOworICAgIAorICAgICsrdGVzdE51bWJlcjsKKyAgICBFWFBF
Q1RfV0tfU1RSRVEoIlBBU1M6IFtPdmVycmlkZUJ1aWx0aW5zXSB3YXMgbm90IGRpc2FibGVkIiwg
YWxlcnRUZXh0KTsKKyAgICBpZiAodGVzdE51bWJlciA9PSAyKQorICAgICAgICBkb25lID0gdHJ1
ZTsKK30KKworVEVTVChXZWJLaXQsIEluamVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVCdWls
dGluc0JlaGF2aW9yVGVzdCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4gcGFn
ZUdyb3VwKEFkb3B0V0ssIFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVCdWls
dGluc0JlaGF2aW9yVGVzdFBhZ2VHcm91cCIpKSk7CisKKyAgICBXS1JldGFpblB0cjxXS0NvbnRl
eHRSZWY+IGNvbnRleHQoQWRvcHRXSywgVXRpbDo6Y3JlYXRlQ29udGV4dEZvckluamVjdGVkQnVu
ZGxlVGVzdCgiSW5qZWN0ZWRCdW5kbGVOb0Rpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JU
ZXN0IiwgcGFnZUdyb3VwLmdldCgpKSk7CisgICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29u
dGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgpKTsKKworICAgIFdLUGFnZVVJQ2xpZW50VjAgdWlD
bGllbnQ7CisgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CisKKyAg
ICB1aUNsaWVudC5iYXNlLnZlcnNpb24gPSAwOworICAgIHVpQ2xpZW50LnJ1bkphdmFTY3JpcHRB
bGVydCA9IHJ1bkphdmFTY3JpcHRBbGVydEVuYWJsZWQ7CisKKyAgICBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKKworICAgIHRlc3ROdW1iZXIg
PSAwOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsKEFk
b3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJvdmVycmlkZS1idWlsdGlucy10ZXN0
IiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgp
KTsKKworICAgIFV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK3N0YXRpYyB2b2lkIHJ1bkphdmFTY3Jp
cHRBbGVydERpc2FibGVkKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBhbGVydFRleHQsIFdL
RnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7ICAgCisgICAgQVNTRVJU
X05PVF9OVUxMKGZyYW1lKTsgICAgCisgICAgRVhQRUNUX0VRKHBhZ2UsIFdLRnJhbWVHZXRQYWdl
KGZyYW1lKSk7CisKKyAgICArK3Rlc3ROdW1iZXI7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJQQVNT
OiBbT3ZlcnJpZGVCdWlsdGluc10gd2FzIGRpc2FibGVkIiwgYWxlcnRUZXh0KTsKKyAgICBpZiAo
dGVzdE51bWJlciA9PSAyKQorICAgICAgICBkb25lID0gdHJ1ZTsKK30KKworVEVTVChXZWJLaXQs
IEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QpCit7Cisg
ICAgV0tSZXRhaW5QdHI8V0tQYWdlR3JvdXBSZWY+IHBhZ2VHcm91cChBZG9wdFdLLCBXS1BhZ2VH
cm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJ
bmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0UGFnZUdyb3Vw
IikpKTsKKworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBV
dGlsOjpjcmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZURp
c2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0IiwgcGFnZUdyb3VwLmdldCgpKSk7Cisg
ICAgUGxhdGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSwgcGFnZUdyb3VwLmdldCgp
KTsKKworICAgIFdLUGFnZVVJQ2xpZW50VjAgdWlDbGllbnQ7CisgICAgbWVtc2V0KCZ1aUNsaWVu
dCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CisKKyAgICB1aUNsaWVudC5iYXNlLnZlcnNpb24gPSAw
OworICAgIHVpQ2xpZW50LnJ1bkphdmFTY3JpcHRBbGVydCA9IHJ1bkphdmFTY3JpcHRBbGVydERp
c2FibGVkOworCisgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlD
bGllbnQuYmFzZSk7CisKKyAgICB0ZXN0TnVtYmVyID0gMDsKKyAgICBkb25lID0gZmFsc2U7Cisg
ICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHVybChBZG9wdFdLLCBVdGlsOjpjcmVhdGVVUkxGb3JS
ZXNvdXJjZSgib3ZlcnJpZGUtYnVpbHRpbnMtdGVzdCIsICJodG1sIikpOworICAgIFdLUGFnZUxv
YWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CisKKyAgICBVdGlsOjpydW4oJmRvbmUp
OworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxl
T3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRsZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZp
b3JfQnVuZGxlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmRiZWM0N2ZkMmEwODYwNjA3OTdiZjRkMDIzMzg2
YTFkOTc1ZjFlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRs
ZS5jcHAKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIFdLX0hBVkVfQ19TUEkKKworI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVGVzdC5oIgor
I2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VHcm91cC5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0J1bmRsZVByaXZhdGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVTY3JpcHRXb3JsZC5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPGFzc2VydC5oPgor
CituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK2NsYXNzIEluamVjdGVkQnVuZGxlTm9EaXNh
YmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCA6IHB1YmxpYyBJbmplY3RlZEJ1bmRsZVRl
c3QgeworcHVibGljOgorICAgIEluamVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVCdWlsdGlu
c0JlaGF2aW9yVGVzdChjb25zdCBzdGQ6OnN0cmluZyYgaWRlbnRpZmllcikKKyAgICAgICAgOiBJ
bmplY3RlZEJ1bmRsZVRlc3QoaWRlbnRpZmllcikKKyAgICB7IH0KKworICAgIHZpcnR1YWwgdm9p
ZCBpbml0aWFsaXplKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tUeXBlUmVmIHVzZXJEYXRhKQorICAg
IHsKKyAgICAgICAgYXNzZXJ0KFdLR2V0VHlwZUlEKHVzZXJEYXRhKSA9PSBXS0J1bmRsZVBhZ2VH
cm91cEdldFR5cGVJRCgpKTsKKyAgICAgICAgV0tCdW5kbGVQYWdlR3JvdXBSZWYgcGFnZUdyb3Vw
ID0gc3RhdGljX2Nhc3Q8V0tCdW5kbGVQYWdlR3JvdXBSZWY+KHVzZXJEYXRhKTsKKworICAgICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc291cmNlKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKAorICAgICAgICAgICAgIndpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAo
KSB7XG4iCisgICAgICAgICAgICAiICAgIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdCcpLnBhcmVudE5vZGU7XG4iCisgICAgICAgICAgICAiICAgIGFsZXJ0KGZvcm0u
dGFnTmFtZSAhPSAnRk9STScgPyAnUEFTUzogW092ZXJyaWRlQnVpbHRpbnNdIHdhcyBub3QgZGlz
YWJsZWQnIDogJ0ZBSUw6IFtPdmVycmlkZUJ1aWx0aW5zXSB3YXMgZGlzYWJsZWQnKTtcbiIKKyAg
ICAgICAgICAgICJ9XG4iKSk7CisKKyAgICAgICAgYXV0byBub3JtYWxXb3JsZCA9IFdLQnVuZGxl
U2NyaXB0V29ybGROb3JtYWxXb3JsZCgpOworICAgICAgICBXS0J1bmRsZUFkZFVzZXJTY3JpcHQo
YnVuZGxlLCBwYWdlR3JvdXAsIG5vcm1hbFdvcmxkLCBzb3VyY2UuZ2V0KCksIDAsIDAsIDAsIGtX
S0luamVjdEF0RG9jdW1lbnRFbmQsIGtXS0luamVjdEluQWxsRnJhbWVzKTsKKworICAgICAgICBh
dXRvIGlzb2xhdGVkV29ybGQgPSBXS0J1bmRsZVNjcmlwdFdvcmxkQ3JlYXRlV29ybGQoKTsKKyAg
ICAgICAgV0tCdW5kbGVBZGRVc2VyU2NyaXB0KGJ1bmRsZSwgcGFnZUdyb3VwLCBpc29sYXRlZFdv
cmxkLCBzb3VyY2UuZ2V0KCksIDAsIDAsIDAsIGtXS0luamVjdEF0RG9jdW1lbnRFbmQsIGtXS0lu
amVjdEluQWxsRnJhbWVzKTsKKyAgICB9Cit9OworCitjbGFzcyBJbmplY3RlZEJ1bmRsZURpc2Fi
bGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0IDogcHVibGljIEluamVjdGVkQnVuZGxlVGVz
dCB7CitwdWJsaWM6CisgICAgSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0Jl
aGF2aW9yVGVzdChjb25zdCBzdGQ6OnN0cmluZyYgaWRlbnRpZmllcikKKyAgICAgICAgOiBJbmpl
Y3RlZEJ1bmRsZVRlc3QoaWRlbnRpZmllcikKKyAgICB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBp
bml0aWFsaXplKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tUeXBlUmVmIHVzZXJEYXRhKQorICAgIHsK
KyAgICAgICAgYXNzZXJ0KFdLR2V0VHlwZUlEKHVzZXJEYXRhKSA9PSBXS0J1bmRsZVBhZ2VHcm91
cEdldFR5cGVJRCgpKTsKKyAgICAgICAgV0tCdW5kbGVQYWdlR3JvdXBSZWYgcGFnZUdyb3VwID0g
c3RhdGljX2Nhc3Q8V0tCdW5kbGVQYWdlR3JvdXBSZWY+KHVzZXJEYXRhKTsKKworICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc291cmNlKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKAorICAgICAgICAgICAgIndpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7
XG4iCisgICAgICAgICAgICAiICAgIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdCcpLnBhcmVudE5vZGU7XG4iCisgICAgICAgICAgICAiICAgIGFsZXJ0KGZvcm0udGFn
TmFtZSA9PT0gJ0ZPUk0nID8gJ1BBU1M6IFtPdmVycmlkZUJ1aWx0aW5zXSB3YXMgZGlzYWJsZWQn
IDogJ0ZBSUw6IFtPdmVycmlkZUJ1aWx0aW5zXSB3YXMgbm90IGRpc2FibGVkJyk7XG4iCisgICAg
ICAgICAgICAifVxuIikpOworCisgICAgICAgIGF1dG8gbm9ybWFsV29ybGQgPSBXS0J1bmRsZVNj
cmlwdFdvcmxkTm9ybWFsV29ybGQoKTsKKyAgICAgICAgV0tCdW5kbGVTY3JpcHRXb3JsZERpc2Fi
bGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3Iobm9ybWFsV29ybGQpOworICAgICAgICBXS0J1bmRs
ZUFkZFVzZXJTY3JpcHQoYnVuZGxlLCBwYWdlR3JvdXAsIG5vcm1hbFdvcmxkLCBzb3VyY2UuZ2V0
KCksIDAsIDAsIDAsIGtXS0luamVjdEF0RG9jdW1lbnRFbmQsIGtXS0luamVjdEluQWxsRnJhbWVz
KTsKKworICAgICAgICBhdXRvIGlzb2xhdGVkV29ybGQgPSBXS0J1bmRsZVNjcmlwdFdvcmxkQ3Jl
YXRlV29ybGQoKTsKKyAgICAgICAgV0tCdW5kbGVTY3JpcHRXb3JsZERpc2FibGVPdmVycmlkZUJ1
aWx0aW5zQmVoYXZpb3IoaXNvbGF0ZWRXb3JsZCk7CisgICAgICAgIFdLQnVuZGxlQWRkVXNlclNj
cmlwdChidW5kbGUsIHBhZ2VHcm91cCwgaXNvbGF0ZWRXb3JsZCwgc291cmNlLmdldCgpLCAwLCAw
LCAwLCBrV0tJbmplY3RBdERvY3VtZW50RW5kLCBrV0tJbmplY3RJbkFsbEZyYW1lcyk7CisgICAg
fQorfTsKKworc3RhdGljIEluamVjdGVkQnVuZGxlVGVzdDo6UmVnaXN0ZXI8SW5qZWN0ZWRCdW5k
bGVOb0Rpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0PiByZWdpc3RyYXIxKCJJbmpl
Y3RlZEJ1bmRsZU5vRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QiKTsKK3N0YXRp
YyBJbmplY3RlZEJ1bmRsZVRlc3Q6OlJlZ2lzdGVyPEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJy
aWRlQnVpbHRpbnNCZWhhdmlvclRlc3Q+IHJlZ2lzdHJhcjIoIkluamVjdGVkQnVuZGxlRGlzYWJs
ZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QiKTsKKworfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L292ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L292ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTZh
MGM2OTk3ODUyOTlmOGI5M2E0YTZjMjkyODIwOTg5MGE0N2JkCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5o
dG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGZv
cm0+Cis8aW5wdXQgaWQ9InRlc3QiIG5hbWU9InRhZ05hbWUiPgorPC9mb3JtPgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333439</attachid>
            <date>2018-02-08 19:20:26 -0800</date>
            <delta_ts>2018-02-08 20:16:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182524-20180208192029.patch</filename>
            <type>text/plain</type>
            <size>27907</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDE0YjlmODg1MTBmMzUx
MDBmMjcwNmZiMDM3NzE5Mjc3ZTQ4Zjg4Ny4uMDhkZDY0ODIwYjNiZDBhZDIzMjExOTQxMTM0ZGJh
MTM4MzBmNGY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE4LTAyLTA4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGhlcmUgc2hvdWxkIGJlIGEg
d2F5IHRvIGRpc2FibGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIGluIGEgZ2l2ZW4gRE9N
V3JhcHBlcldvcmxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODI1MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNTczMjc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIEFkZCBuZXcgZmxhZyBvbiBET01X
cmFwcGVyV29ybGQgaW5kaWNhdGluZyBpZiB0aGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9y
IHNob3VsZAorICAgICAgICBiZSBlbmFibGVkIGluIHRoaXMgd29ybGQgb3Igbm90LiBUaGUgYmVo
YXZpb3IgaXMgZW5hYmxlZCBieSBkZWZhdWx0IGZvciBXZWItY29tcGF0aWJpbGl0eS4KKyAgICAg
ICAgVGhpcyBmbGFnIGlzIHF1ZXJpZWQgaW4gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHkoKSB3
aGVuIGRvaW5nIHRoZSBuYW1lZCBwcm9wZXJ0eQorICAgICAgICBsb29rdXAuCisKKyAgICAgICAg
Q292ZXJlZCBieSBuZXcgQVBJIHRlc3QuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ET01XcmFw
cGVyV29ybGQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZDo6ZGlzYWJsZU92
ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcik6CisgICAgICAgIChXZWJDb3JlOjpET01XcmFwcGVyV29y
bGQ6OnNob3VsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IgY29uc3QpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmg6CisgICAgICAgIChXZWJD
b3JlOjphY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eSk6CisKIDIwMTgtMDItMDggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBGb3JtIHN1Ym1pc3Npb24gYWZ0ZXIg
bmF2aWdhdGlvbiBmYWlscyB3aGVuIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gaXMg
YXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggNjRiNmFkNWFmNGQ5MjA3ZjUzNDkxNTRmZWNiYmUzZTY5MzE2ZjRh
MS4uNTA2ZDNlOTgyZmE3M2ZkZmNkZGRjNDRjZTUyYWJiMGU2OGE0ZjRiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMCBAQAorMjAxOC0wMi0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgorCisgICAgICAgIFRoZXJlIHNob3VsZCBiZSBhIHdheSB0byBkaXNhYmxlIFtPdmVycmlkZUJ1
aWx0aW5zXSBiZWhhdmlvciBpbiBhIGdpdmVuIERPTVdyYXBwZXJXb3JsZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyNTI0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS85MDU3MzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4K
KworICAgICAgICBBZGQgQyBBUEkgb24gV0tCdW5kbGVTY3JpcHRXb3JsZCBhbmQgQ29jb2EgQVBJ
IG9uIFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkIHRvCisgICAgICAgIGRpc2FibGUgdGhl
IFtPdmVycmlkZUJ1aWx0aW5zXSBiZWhhdmlvciBvbiBhIGdpdmVuIHNjcmlwdCB3b3JsZC4KKwor
ICAgICAgICBUaGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIFsxXSBpcyBsZWdhY3kgYmVo
YXZpb3IgdGhhdCBpcyBuZWVkZWQgZm9yIFdlYiBjb21wYXRpYmlsaXR5CisgICAgICAgIGJ1dCBh
bGxvd2luZyB0aGUgY2xpZW50IHRvIGRpc2FibGUgdGhpcyBiZWhhdmlvciBpbiBhIGdpdmVuIHdv
cmxkIG1ha2VzIGRldmVsb3BtZW50IGVhc2llcgorICAgICAgICBhbmQgcnVubmluZyBpbmplY3Rl
ZCBzY3JpcHQgb24gdW5jb250cm9sbGVkIGNvbnRlbnQgYSBsb3QgbW9yZSByZWxpYWJsZS4KKwor
ICAgICAgICBbMV0gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jT3ZlcnJpZGVCdWls
dGlucworCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5tbToKKyAg
ICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQgZGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvcl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHA6CisgICAgICAgIChXS0J1bmRsZVNjcmlwdFdvcmxk
RGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6ZGlzYWJsZU92ZXJyaWRl
QnVpbHRpbnNCZWhhdmlvcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmg6CisKIDIwMTgtMDItMDggIFJvc3MgS2lyc2xpbmcg
IDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFJlbW92ZSBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplIHN0dWIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9ET01XcmFwcGVyV29ybGQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0RPTVdyYXBwZXJXb3JsZC5oCmluZGV4IGQxYTc2Njg3MjI3MTVmOTAxNGZhZTU1MmMwYTU2ZmRh
M2VmMjExMjguLmUwYWNiODI2YTE2NTA4NjJiODAzMWUzNWU3OGFlZDMwZGJmZDgzODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVdyYXBwZXJXb3JsZC5oCkBAIC00Nyw2ICs0
Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNoYWRvd1Jvb3RJc0Fsd2F5c09wZW4oKSB7IG1f
c2hhZG93Um9vdElzQWx3YXlzT3BlbiA9IHRydWU7IH0KICAgICBib29sIHNoYWRvd1Jvb3RJc0Fs
d2F5c09wZW4oKSBjb25zdCB7IHJldHVybiBtX3NoYWRvd1Jvb3RJc0Fsd2F5c09wZW47IH0KIAor
ICAgIHZvaWQgZGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigpIHsgbV9zaG91bGREaXNh
YmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yID0gdHJ1ZTsgfQorICAgIGJvb2wgc2hvdWxkRGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcjsgfQorCiAgICAgRE9NT2JqZWN0V3JhcHBlck1h
cCYgd3JhcHBlcnMoKSB7IHJldHVybiBtX3dyYXBwZXJzOyB9CiAKICAgICBib29sIGlzTm9ybWFs
KCkgY29uc3QgeyByZXR1cm4gbV9pc05vcm1hbDsgfQpAQCAtNjMsNiArNjYsNyBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBtX2lzTm9ybWFsOwogICAgIGJvb2wgbV9zaGFkb3dSb290SXNBbHdheXNP
cGVuIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNC
ZWhhdmlvciB7IGZhbHNlIH07CiB9OwogCiBET01XcmFwcGVyV29ybGQmIG5vcm1hbFdvcmxkKEpT
Qzo6Vk0mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQWJz
dHJhY3RPcGVyYXRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUFic3Ry
YWN0T3BlcmF0aW9ucy5oCmluZGV4IDNmODExNGY3NTk5NzUxM2ZjMTk2OWFmNTVjMDg1NDBiODNh
NjcwMTUuLjE3OWFiZjRiMTc1YmRjNTU0ZjA1ODE2Mzk3NjQ0MDNkNmQyMTZhNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMu
aApAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBhdXRvIGFjY2Vzc1Zpc2libGVOYW1lZFByb3Bl
cnR5KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDbGFzcyYgdGhpc09iamVjCiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICAvLyAzLiBJZiBPIGltcGxlbWVudHMgYW4gaW50ZXJm
YWNlIHRoYXQgaGFzIHRoZSBbT3ZlcnJpZGVCdWlsdGluc10gZXh0ZW5kZWQgYXR0cmlidXRlLCB0
aGVuIHJldHVybiB0cnVlLgotICAgIGlmIChvdmVycmlkZUJ1aWx0aW5zID09IE92ZXJyaWRlQnVp
bHRpbnM6OlllcykKKyAgICBpZiAob3ZlcnJpZGVCdWlsdGlucyA9PSBPdmVycmlkZUJ1aWx0aW5z
OjpZZXMgJiYgIXdvcmxkRm9yRE9NT2JqZWN0KHRoaXNPYmplY3QpLnNob3VsZERpc2FibGVPdmVy
cmlkZUJ1aWx0aW5zQmVoYXZpb3IoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAogICAgIC8v
IDQuIEluaXRpYWxpemUgcHJvdG90eXBlIHRvIGJlIHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwg
W1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBPLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3Jp
cHRXb3JsZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oCmluZGV4IDY0NzA3YmJlYTdkNzlk
ZWQ2MjA4NTZiZTIwYjhlYmE2MzRmMDk0ZWMuLmIyOTJhNGY0MTc5MjAxOTUzMDhlODMxYzdhN2Vi
NTlmNjkwZWMzZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJblNjcmlwdFdvcmxkLmgKQEAgLTM5LDYgKzM5LDcgQEAgV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQogCiAtICh2b2lkKWNsZWFyV3JhcHBlcnM7CiAt
ICh2b2lkKW1ha2VBbGxTaGFkb3dSb290c09wZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClkaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9y
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJblNjcmlwdFdvcmxkLm1tCmluZGV4IDhjYzYyOGFjMTc2M2ZhNTY5NWQ3NDEwNWMzZTQ4ZTk4
ZTg3ODRkNjEuLjZlYmEwMTI5ZDc3NzQ5NGI3YjBhYTU4ODgwNDQ5MjEwODBlNjczN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRX
b3JsZC5tbQpAQCAtNjEsNiArNjEsMTEgQEAgLSAodm9pZCltYWtlQWxsU2hhZG93Um9vdHNPcGVu
CiAgICAgX3dvcmxkLT5tYWtlQWxsU2hhZG93Um9vdHNPcGVuKCk7CiB9CiAKKy0gKHZvaWQpZGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcgoreworICAgIF93b3JsZC0+ZGlzYWJsZU92ZXJy
aWRlQnVpbHRpbnNCZWhhdmlvcigpOworfQorCiAtIChOU1N0cmluZyAqKW5hbWUKIHsKICAgICBy
ZXR1cm4gX3dvcmxkLT5uYW1lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3Js
ZC5jcHAKaW5kZXggYjQwOWM1OWQ2ZDU5MTI1MmM5Zjc4ZTJmNjNiNWIwMTM1ZTdlNGFkYS4uZWY2
OTc3OWNmNGE2OWQ5N2E3M2YzMzk0MDFjYTdjYmZkMGRjN2UyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29y
bGQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVNjcmlwdFdvcmxkLmNwcApAQCAtNTgsNiArNTgsMTEgQEAgdm9pZCBXS0J1bmRs
ZVNjcmlwdFdvcmxkTWFrZUFsbFNoYWRvd1Jvb3RzT3BlbihXS0J1bmRsZVNjcmlwdFdvcmxkUmVm
IHNjcmlwdFdvcmwKICAgICB0b0ltcGwoc2NyaXB0V29ybGRSZWYpLT5tYWtlQWxsU2hhZG93Um9v
dHNPcGVuKCk7CiB9CiAKK3ZvaWQgV0tCdW5kbGVTY3JpcHRXb3JsZERpc2FibGVPdmVycmlkZUJ1
aWx0aW5zQmVoYXZpb3IoV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiBzY3JpcHRXb3JsZFJlZikKK3sK
KyAgICB0b0ltcGwoc2NyaXB0V29ybGRSZWYpLT5kaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2
aW9yKCk7Cit9CisKIFdLU3RyaW5nUmVmIFdLQnVuZGxlU2NyaXB0V29ybGRDb3B5TmFtZShXS0J1
bmRsZVNjcmlwdFdvcmxkUmVmIHNjcmlwdFdvcmxkUmVmKQogewogICAgIHJldHVybiB0b0NvcGll
ZEFQSSh0b0ltcGwoc2NyaXB0V29ybGRSZWYpLT5uYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29y
bGQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVNjcmlwdFdvcmxkLmgKaW5kZXggMzI1MzU5ZDFlZGJlYjk4YmIwZjJhMTY0NjI1ZTM2ZmNm
ZDc2NDQ1OS4uMzY1YTZkMzUxMDgyZWI1OWZiNTZkOGM5ZDRlMGE4MDQzNmIwMzY0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlU2NyaXB0V29ybGQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oCkBAIC0zOCw2ICszOCw3IEBAIFdLX0VY
UE9SVCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIFdLQnVuZGxlU2NyaXB0V29ybGRDcmVhdGVXb3Js
ZCgpOwogV0tfRVhQT1JUIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgV0tCdW5kbGVTY3JpcHRXb3Js
ZE5vcm1hbFdvcmxkKCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNjcmlwdFdvcmxkQ2xlYXJX
cmFwcGVycyhXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIHNjcmlwdFdvcmxkKTsKIFdLX0VYUE9SVCB2
b2lkIFdLQnVuZGxlU2NyaXB0V29ybGRNYWtlQWxsU2hhZG93Um9vdHNPcGVuKFdLQnVuZGxlU2Ny
aXB0V29ybGRSZWYgc2NyaXB0V29ybGQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTY3JpcHRX
b3JsZERpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IoV0tCdW5kbGVTY3JpcHRXb3JsZFJl
ZiBzY3JpcHRXb3JsZCk7CiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tCdW5kbGVTY3JpcHRXb3Js
ZENvcHlOYW1lKFdLQnVuZGxlU2NyaXB0V29ybGRSZWYgc2NyaXB0V29ybGQpOwogCiAjaWZkZWYg
X19jcGx1c3BsdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcAppbmRl
eCBiMTc4MzFkMmM3YTk0M2RjNGQ2YzM0NTUxZDMyYmIwYjJmNDg2ZmM4Li5kMTliMzdlMzhhZGM1
OTE3MGNkMWI1YmU5NTAzYTM0NDZkZWEwYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
U2NyaXB0V29ybGQuY3BwCkBAIC0xMTIsNCArMTEyLDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVNj
cmlwdFdvcmxkOjptYWtlQWxsU2hhZG93Um9vdHNPcGVuKCkKICAgICBtX3dvcmxkLT5zZXRTaGFk
b3dSb290SXNBbHdheXNPcGVuKCk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3Js
ZDo6ZGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigpCit7CisgICAgbV93b3JsZC0+ZGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oCmluZGV4IDUwOTJhZTcyNTc2
ZWNhMTg2YjJiNTQ4NmJkZjVmMTZkYTk2Nzk1MDMuLjMxMmRlMjdkNDU0NjIwZTI0N2EzMjFiMGJk
YzY0YWRhZTllMWUxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaApA
QCAtNTEsNiArNTEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsZWFyV3JhcHBlcnMoKTsKICAg
ICB2b2lkIG1ha2VBbGxTaGFkb3dSb290c09wZW4oKTsKKyAgICB2b2lkIGRpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3IoKTsKIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbmFtZTsgfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggMGFlOTMzYTc5YWE5NWEyOWM5M2I1NmEzNGI2YjVkOTcyZDkyYzk5Yi4u
MGVmZDQ2MDVhNGVlY2Q5YWJmZGI0N2ZlOGRjZjYwOWRmNTFlZjFhZiAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4
LTAyLTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVGhlcmUg
c2hvdWxkIGJlIGEgd2F5IHRvIGRpc2FibGUgW092ZXJyaWRlQnVpbHRpbnNdIGJlaGF2aW9yIGlu
IGEgZ2l2ZW4gRE9NV3JhcHBlcldvcmxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODI1MjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwNTczMjc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIEFkZCBBUEkg
dGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvci5jcHA6
IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcl9C
dW5kbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkluamVjdGVkQnVuZGxl
RGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3Q6OkluamVjdGVkQnVuZGxlRGlzYWJs
ZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
SW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdDo6aW5pdGlh
bGl6ZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvb3ZlcnJpZGUtYnVp
bHRpbnMtdGVzdC5odG1sOiBBZGRlZC4KKwogMjAxOC0wMi0wOCAgTWljaGFlbCBDYXRhbnphcm8g
IDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgVGVzdENvbnRyb2xsZXIgc2hvdWxk
IG5vdCBleGVyY2lzZSBjb2NvYS1zcGVjaWZpYyByZXNvdXJjZSBsb2FkIHN0YXRpc3RpY3MgQVBJ
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1Yjg2ZDZlYTFiYmI5MjVjZjU2ZjQxZDY2Yzky
N2UzZWFkMTQyMGI1Li4zYWY4ZDI0YTFkZGI3ZmYxZmVmYTkyNTlhOGFiOTJmNTVjYjg2NmJlIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTM0LDYgKzUzNCw5IEBACiAJCTdDRDRDMjZFMUUy
QzBFNkUwMDkyOTQ3MCAvKiBTdHJpbmdDb25jYXRlbmF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0Q0QzI2QzFFMkMwRTZFMDA5Mjk0NzAgLyog
U3RyaW5nQ29uY2F0ZW5hdGUuY3BwICovOyB9OwogCQk3Q0VGQTk2NjFBQzBCOUUyMDBCOTEwRkQg
LyogX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRUZBOTY0MUFDMEI5RTIwMEI5MTBGRCAvKiBfV0tV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tICovOyB9OwogCQk3Q0ZCQ0FFNTE3NDMyMzhGMDBC
MkJGQ0YgLyogV2lsbExvYWRfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDRkJDQUUzMTc0MzIzOEUwMEIyQkZDRiAvKiBXaWxsTG9hZF9C
dW5kbGUuY3BwICovOyB9OworCQk4MzE0OEIwNjIwMkFDNkE0MDBCQURFOTkgLyogSW5qZWN0ZWRC
dW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMTQ4QjA1MjAyQUM2ODIwMEJBREU5OSAv
KiBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwICovOyB9
OworCQk4MzE0OEIwNzIwMkFDNkFEMDBCQURFOTkgLyogSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3Zl
cnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzE0OEIwNDIwMkFDNjgyMDBCQURFOTkgLyogSW5qZWN0
ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRsZS5jcHAgKi87IH07
CisJCTgzMTQ4QjA5MjAyQUM3OEQwMEJBREU5OSAvKiBvdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODMxNDhCMDgyMDJBQzc2ODAwQkFERTk5IC8qIG92ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRtbCAq
LzsgfTsKIAkJODM0OUQzQzIxREI5NkRERTAwNEE5RjY1IC8qIENvbnRleHRNZW51RG93bmxvYWQu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzQ5RDND
MTFEQjk2RERBMDA0QTlGNjUgLyogQ29udGV4dE1lbnVEb3dubG9hZC5tbSAqLzsgfTsKIAkJODM0
OUQzQzQxREI5NzI4RTAwNEE5RjY1IC8qIGxpbmstd2l0aC1kb3dubG9hZC1hdHRyaWJ1dGUuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzQ5RDNDMzFEQjk3MjRGMDA0QTlGNjUgLyogbGluay13aXRoLWRvd25sb2FkLWF0dHJpYnV0ZS5o
dG1sICovOyB9OwogCQk4MzVDRjk2NzFEMjVGQ0Q2MDAxQTY1RDQgLyogUmVzdG9yZVNlc3Npb25T
dGF0ZVdpdGhvdXROYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzNUNGOTY2MUQyNUZDRDYwMDFBNjVENCAvKiBSZXN0b3JlU2Vzc2lv
blN0YXRlV2l0aG91dE5hdmlnYXRpb24uY3BwICovOyB9OwpAQCAtMTAyMCw2ICsxMDIzLDcgQEAK
IAkJCQlDRUE2Q0YyODE5Q0NGNjlEMDA2NEY1QTcgLyogb3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJN0NDQjk5MjMxRDNCNEE0NjAwMzkyMkY2IC8q
IG9wZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJMjkwQTlCQjkxNzM1RjYzODAwRDcxQkJDIC8qIE9wZW5OZXdXaW5kb3cuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKKwkJCQk4MzE0OEIwOTIwMkFDNzhEMDBCQURFOTkgLyogb3ZlcnJpZGUt
YnVpbHRpbnMtdGVzdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNFQkNBMTM5MUUz
QTgwN0EwMEM3MzI5MyAvKiBwYWdlLXdpdGgtY3NwLWlmcmFtZS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCUNFQkNBMTM4MUUzQTgwN0EwMEM3MzI5MyAvKiBwYWdlLXdpdGgtY3NwLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0VCQ0ExM0IxRTNBODA3QTAwQzczMjkzIC8q
IHBhZ2Utd2l0aG91dC1jc3AtaWZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0x
NTIyLDYgKzE1MjYsOSBAQAogCQk3Q0ZCQ0FERDE3NDMyMzRGMDBCMkJGQ0YgLyogV2lsbExvYWQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2lsbExvYWQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0ZCQ0FFMzE3NDMyMzhFMDBCMkJGQ0YgLyog
V2lsbExvYWRfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdpbGxMb2FkX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQjUw
MTkyMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ0J1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4MzE0OEIwNDIwMkFDNjgyMDBCQURFOTkgLyogSW5qZWN0ZWRCdW5kbGVE
aXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0
aW5zQmVoYXZpb3JfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODMx
NDhCMDUyMDJBQzY4MjAwQkFERTk5IC8qIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJ
bmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MzE0OEIwODIwMkFDNzY4MDBCQURFOTkgLyogb3ZlcnJp
ZGUtYnVpbHRpbnMtdGVzdC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm92ZXJy
aWRlLWJ1aWx0aW5zLXRlc3QuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
NDlEM0MxMURCOTZEREEwMDRBOUY2NSAvKiBDb250ZXh0TWVudURvd25sb2FkLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29udGV4dE1lbnVEb3dubG9hZC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM0OUQzQzMxREI5NzI0RjAwNEE5RjY1IC8q
IGxpbmstd2l0aC1kb3dubG9hZC1hdHRyaWJ1dGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJsaW5rLXdpdGgtZG93bmxvYWQtYXR0cmlidXRlLmh0bWwiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4MzVDRjk2NjFEMjVGQ0Q2MDAxQTY1RDQgLyogUmVzdG9yZVNlc3Np
b25TdGF0ZVdpdGhvdXROYXZpZ2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlc3RvcmVTZXNzaW9uU3RhdGVXaXRob3V0TmF2aWdhdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTg1LDYgKzI1OTIsOCBAQAogCQkJCTRCRkRGRkE2
MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICov
LAogCQkJCUJDNTc1QUFDMTI2RTgzQjkwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRsZUJhc2ljLmNw
cCAqLywKIAkJCQlCQzU3NUFBRjEyNkU4M0M4MDA2RjBGMTIgLyogSW5qZWN0ZWRCdW5kbGVCYXNp
Y19CdW5kbGUuY3BwICovLAorCQkJCTgzMTQ4QjA1MjAyQUM2ODIwMEJBREU5OSAvKiBJbmplY3Rl
ZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwICovLAorCQkJCTgzMTQ4
QjA0MjAyQUM2ODIwMEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0
aW5zQmVoYXZpb3JfQnVuZGxlLmNwcCAqLywKIAkJCQkzNzhFNjQ3MTE2MzI2NDZEMDBCNkM2NzYg
LyogSW5qZWN0ZWRCdW5kbGVGcmFtZUhpdFRlc3QuY3BwICovLAogCQkJCTM3OEU2NDc1MTYzMjY1
NUQwMEI2QzY3NiAvKiBJbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdF9CdW5kbGUuY3BwICovLAog
CQkJCUY2NjBBQTEyMTVBNjE5QzgwMDNBMTI0MyAvKiBJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0
aW9uVXNlckRhdGFDYWxsYmFja1dpbnMuY3BwICovLApAQCAtMjgxMCw2ICsyODE5LDcgQEAKIAkJ
CQk1Nzk3RkUzMjFFQjE1QTg5MDBCMkY0QTAgLyogbmF2aWdhdGlvbi1jbGllbnQtZGVmYXVsdC1j
cnlwdG8uaHRtbCAqLywKIAkJCQlDOTlCNjc1RTFFMzk3MzVDMDBGQzZDODAgLyogbm8tYXV0b3Bs
YXktd2l0aC1jb250cm9scy5odG1sICovLAogCQkJCUNFQTZDRjI3MTlDQ0Y2OUQwMDY0RjVBNyAv
KiBvcGVuLWFuZC1jbG9zZS13aW5kb3cuaHRtbCAqLywKKwkJCQk4MzE0OEIwODIwMkFDNzY4MDBC
QURFOTkgLyogb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sICovLAogCQkJCTBFQkJDQzY1MUZG
RjlEQ0UwMEZBNDJBQiAvKiBwb3AtdXAtY2hlY2suaHRtbCAqLywKIAkJCQlGNkZERERENTE0MjQx
QzQ4MDA0RjE3MjkgLyogcHVzaC1zdGF0ZS5odG1sICovLAogCQkJCTBGNTY1MUY4MUZDRTUwRTgw
MDMxMEZCQyAvKiBzY3JvbGwtdG8tYW5jaG9yLmh0bWwgKi8sCkBAIC0zNDc2LDYgKzM0ODYsNyBA
QAogCQkJCTUxOThBMjQwMUVBN0U1OUYwMDg5MTBCNyAvKiBJbml0aWFsV2FybWVkUHJvY2Vzc1Vz
ZWQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QTk1QkRFMTFFOUJFQzVGMDA4NjU0OTggLyogSW5q
ZWN0ZWRCdW5kbGVBcHBsZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUZCMUE0
MTFBRTYwMDQ0N0M0QyAvKiBJbmplY3RlZEJ1bmRsZUJhc2ljLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTgzMTQ4QjA2MjAyQUM2QTQwMEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVy
cmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRkMxQTQx
MUFFNjAwNDQ3QzRDIC8qIEluamVjdGVkQnVuZGxlRnJhbWVIaXRUZXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0U3RUZEMUE0MTFBRTYwMDQ0N0M0QyAvKiBJbmplY3RlZEJ1bmRsZUluaXRp
YWxpemF0aW9uVXNlckRhdGFDYWxsYmFja1dpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4
M0UwQjgxRDBBNjRCRDAwRkVCQ0YzIC8qIEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3Rz
T3Blbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTM3NTYsNiArMzc2Nyw3IEBACiAJCQkJQkM1NzVB
QjAxMjZFODNDODAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxlQmFzaWNfQnVuZGxlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDNTc1QUEyMTI2RTc2NjAwMDZGMEYxMiAvKiBJbmplY3RlZEJ1bmRs
ZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFREUyMjYxM0U1RTdFNzAwRTYy
RkU4IC8qIEluamVjdGVkQnVuZGxlQ29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CTgzMTQ4QjA3MjAyQUM2QUQwMEJBREU5OSAvKiBJbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlk
ZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3OEU2NDc3
MTYzMjY1NUUwMEI2QzY3NiAvKiBJbmplY3RlZEJ1bmRsZUZyYW1lSGl0VGVzdF9CdW5kbGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjY2MEFBMTUxNUE2MUFCRjAwM0ExMjQzIC8qIEluamVjdGVk
QnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2luc19CdW5kbGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM1NzVBOTcxMjZFNzRGMTAwNkYwRjEyIC8qIEluamVjdGVkQnVuZGxl
TWFpbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlv
ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURp
c2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkMGVjMmJhMDE5
Nzg1ZjQzMDEyZmNiNDM5NmFmNDk0ODUwZTVlMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1
aWx0aW5zQmVoYXZpb3IuY3BwCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisjaW5jbHVkZSAiUGxhdGZvcm1V
dGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlICJUZXN0
LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJIHsKKworc3RhdGljIHVuc2lnbmVkIHRlc3ROdW1iZXIgPSAwOworc3RhdGljIGJvb2wg
ZG9uZSA9IGZhbHNlOworCitzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnRFbmFibGVkKFdL
UGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBhbGVydFRleHQsIFdLRnJhbWVSZWYgZnJhbWUsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pCit7ICAgCisgICAgQVNTRVJUX05PVF9OVUxMKGZyYW1lKTsg
ICAgCisgICAgRVhQRUNUX0VRKHBhZ2UsIFdLRnJhbWVHZXRQYWdlKGZyYW1lKSk7CisgICAgCisg
ICAgKyt0ZXN0TnVtYmVyOworICAgIEVYUEVDVF9XS19TVFJFUSgiUEFTUzogW092ZXJyaWRlQnVp
bHRpbnNdIHdhcyBub3QgZGlzYWJsZWQiLCBhbGVydFRleHQpOworICAgIGlmICh0ZXN0TnVtYmVy
ID09IDIpCisgICAgICAgIGRvbmUgPSB0cnVlOworfQorCitURVNUKFdlYktpdCwgSW5qZWN0ZWRC
dW5kbGVOb0Rpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0KQoreworICAgIFdLUmV0
YWluUHRyPFdLUGFnZUdyb3VwUmVmPiBwYWdlR3JvdXAoQWRvcHRXSywgV0tQYWdlR3JvdXBDcmVh
dGVXaXRoSWRlbnRpZmllcihXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSW5qZWN0ZWRC
dW5kbGVOb0Rpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0UGFnZUdyb3VwIikpKTsK
KworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dChBZG9wdFdLLCBVdGlsOjpj
cmVhdGVDb250ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbmplY3RlZEJ1bmRsZU5vRGlzYWJs
ZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3QiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKKyAgICBQ
bGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOwor
CisgICAgV0tQYWdlVUlDbGllbnRWMCB1aUNsaWVudDsKKyAgICBtZW1zZXQoJnVpQ2xpZW50LCAw
LCBzaXplb2YodWlDbGllbnQpKTsKKworICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7Cisg
ICAgdWlDbGllbnQucnVuSmF2YVNjcmlwdEFsZXJ0ID0gcnVuSmF2YVNjcmlwdEFsZXJ0RW5hYmxl
ZDsKKworICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50
LmJhc2UpOworCisgICAgdGVzdE51bWJlciA9IDA7CisgICAgZG9uZSA9IGZhbHNlOworICAgIFdL
UmV0YWluUHRyPFdLVVJMUmVmPiB1cmwoQWRvcHRXSywgVXRpbDo6Y3JlYXRlVVJMRm9yUmVzb3Vy
Y2UoIm92ZXJyaWRlLWJ1aWx0aW5zLXRlc3QiLCAiaHRtbCIpKTsKKyAgICBXS1BhZ2VMb2FkVVJM
KHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOworCisgICAgVXRpbDo6cnVuKCZkb25lKTsKK30K
Kworc3RhdGljIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0RGlzYWJsZWQoV0tQYWdlUmVmIHBhZ2Us
IFdLU3RyaW5nUmVmIGFsZXJ0VGV4dCwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKK3sgICAKKyAgICBBU1NFUlRfTk9UX05VTEwoZnJhbWUpOyAgICAKKyAgICBFWFBF
Q1RfRVEocGFnZSwgV0tGcmFtZUdldFBhZ2UoZnJhbWUpKTsKKworICAgICsrdGVzdE51bWJlcjsK
KyAgICBFWFBFQ1RfV0tfU1RSRVEoIlBBU1M6IFtPdmVycmlkZUJ1aWx0aW5zXSB3YXMgZGlzYWJs
ZWQiLCBhbGVydFRleHQpOworICAgIGlmICh0ZXN0TnVtYmVyID09IDIpCisgICAgICAgIGRvbmUg
PSB0cnVlOworfQorCitURVNUKFdlYktpdCwgSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVC
dWlsdGluc0JlaGF2aW9yVGVzdCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1BhZ2VHcm91cFJlZj4g
cGFnZUdyb3VwKEFkb3B0V0ssIFdLUGFnZUdyb3VwQ3JlYXRlV2l0aElkZW50aWZpZXIoV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVp
bHRpbnNCZWhhdmlvclRlc3RQYWdlR3JvdXAiKSkpOworCisgICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0UmVmPiBjb250ZXh0KEFkb3B0V0ssIFV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1
bmRsZVRlc3QoIkluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRl
c3QiLCBwYWdlR3JvdXAuZ2V0KCkpKTsKKyAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250
ZXh0LmdldCgpLCBwYWdlR3JvdXAuZ2V0KCkpOworCisgICAgV0tQYWdlVUlDbGllbnRWMCB1aUNs
aWVudDsKKyAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKKworICAg
IHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDA7CisgICAgdWlDbGllbnQucnVuSmF2YVNjcmlwdEFs
ZXJ0ID0gcnVuSmF2YVNjcmlwdEFsZXJ0RGlzYWJsZWQ7CisKKyAgICBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKKworICAgIHRlc3ROdW1iZXIg
PSAwOworICAgIGRvbmUgPSBmYWxzZTsKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJsKEFk
b3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJvdmVycmlkZS1idWlsdGlucy10ZXN0
IiwgImh0bWwiKSk7CisgICAgV0tQYWdlTG9hZFVSTCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgp
KTsKKworICAgIFV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxl
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0luamVjdGVkQnVuZGxlRGlz
YWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcl9CdW5kbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmZGJl
YzQ3ZmQyYTA4NjA2MDc5N2JmNGQwMjMzODZhMWQ5NzVmMWUKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9JbmplY3RlZEJ1bmRsZURpc2FibGVPdmVy
cmlkZUJ1aWx0aW5zQmVoYXZpb3JfQnVuZGxlLmNwcApAQCAtMCwwICsxLDk2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVUZXN0LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUdy
b3VwLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUHJpdmF0ZS5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS0J1bmRsZVNjcmlwdFdvcmxkLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUmV0YWluUHRy
Lmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwor
Y2xhc3MgSW5qZWN0ZWRCdW5kbGVOb0Rpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0
IDogcHVibGljIEluamVjdGVkQnVuZGxlVGVzdCB7CitwdWJsaWM6CisgICAgSW5qZWN0ZWRCdW5k
bGVOb0Rpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0KGNvbnN0IHN0ZDo6c3RyaW5n
JiBpZGVudGlmaWVyKQorICAgICAgICA6IEluamVjdGVkQnVuZGxlVGVzdChpZGVudGlmaWVyKQor
ICAgIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoV0tCdW5kbGVSZWYgYnVuZGxl
LCBXS1R5cGVSZWYgdXNlckRhdGEpCisgICAgeworICAgICAgICBhc3NlcnQoV0tHZXRUeXBlSUQo
dXNlckRhdGEpID09IFdLQnVuZGxlUGFnZUdyb3VwR2V0VHlwZUlEKCkpOworICAgICAgICBXS0J1
bmRsZVBhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBzdGF0aWNfY2FzdDxXS0J1bmRsZVBhZ2VHcm91
cFJlZj4odXNlckRhdGEpOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzb3Vy
Y2UoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoCisgICAgICAgICAgICAi
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiIKKyAgICAgICAgICAgICIgICAgY29uc3Qg
Zm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0JykucGFyZW50Tm9kZTtcbiIKKyAg
ICAgICAgICAgICIgICAgYWxlcnQoZm9ybS50YWdOYW1lICE9ICdGT1JNJyA/ICdQQVNTOiBbT3Zl
cnJpZGVCdWlsdGluc10gd2FzIG5vdCBkaXNhYmxlZCcgOiAnRkFJTDogW092ZXJyaWRlQnVpbHRp
bnNdIHdhcyBkaXNhYmxlZCcpO1xuIgorICAgICAgICAgICAgIn1cbiIpKTsKKworICAgICAgICBh
dXRvIG5vcm1hbFdvcmxkID0gV0tCdW5kbGVTY3JpcHRXb3JsZE5vcm1hbFdvcmxkKCk7CisgICAg
ICAgIFdLQnVuZGxlQWRkVXNlclNjcmlwdChidW5kbGUsIHBhZ2VHcm91cCwgbm9ybWFsV29ybGQs
IHNvdXJjZS5nZXQoKSwgMCwgMCwgMCwga1dLSW5qZWN0QXREb2N1bWVudEVuZCwga1dLSW5qZWN0
SW5BbGxGcmFtZXMpOworCisgICAgICAgIGF1dG8gaXNvbGF0ZWRXb3JsZCA9IFdLQnVuZGxlU2Ny
aXB0V29ybGRDcmVhdGVXb3JsZCgpOworICAgICAgICBXS0J1bmRsZUFkZFVzZXJTY3JpcHQoYnVu
ZGxlLCBwYWdlR3JvdXAsIGlzb2xhdGVkV29ybGQsIHNvdXJjZS5nZXQoKSwgMCwgMCwgMCwga1dL
SW5qZWN0QXREb2N1bWVudEVuZCwga1dLSW5qZWN0SW5BbGxGcmFtZXMpOworICAgIH0KK307CisK
K2NsYXNzIEluamVjdGVkQnVuZGxlRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvclRlc3Qg
OiBwdWJsaWMgSW5qZWN0ZWRCdW5kbGVUZXN0IHsKK3B1YmxpYzoKKyAgICBJbmplY3RlZEJ1bmRs
ZURpc2FibGVPdmVycmlkZUJ1aWx0aW5zQmVoYXZpb3JUZXN0KGNvbnN0IHN0ZDo6c3RyaW5nJiBp
ZGVudGlmaWVyKQorICAgICAgICA6IEluamVjdGVkQnVuZGxlVGVzdChpZGVudGlmaWVyKQorICAg
IHsgfQorCisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoV0tCdW5kbGVSZWYgYnVuZGxlLCBX
S1R5cGVSZWYgdXNlckRhdGEpCisgICAgeworICAgICAgICBhc3NlcnQoV0tHZXRUeXBlSUQodXNl
ckRhdGEpID09IFdLQnVuZGxlUGFnZUdyb3VwR2V0VHlwZUlEKCkpOworICAgICAgICBXS0J1bmRs
ZVBhZ2VHcm91cFJlZiBwYWdlR3JvdXAgPSBzdGF0aWNfY2FzdDxXS0J1bmRsZVBhZ2VHcm91cFJl
Zj4odXNlckRhdGEpOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzb3VyY2Uo
QWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoCisgICAgICAgICAgICAid2lu
ZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiIKKyAgICAgICAgICAgICIgICAgY29uc3QgZm9y
bSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0JykucGFyZW50Tm9kZTtcbiIKKyAgICAg
ICAgICAgICIgICAgYWxlcnQoZm9ybS50YWdOYW1lID09PSAnRk9STScgPyAnUEFTUzogW092ZXJy
aWRlQnVpbHRpbnNdIHdhcyBkaXNhYmxlZCcgOiAnRkFJTDogW092ZXJyaWRlQnVpbHRpbnNdIHdh
cyBub3QgZGlzYWJsZWQnKTtcbiIKKyAgICAgICAgICAgICJ9XG4iKSk7CisKKyAgICAgICAgYXV0
byBub3JtYWxXb3JsZCA9IFdLQnVuZGxlU2NyaXB0V29ybGROb3JtYWxXb3JsZCgpOworICAgICAg
ICBXS0J1bmRsZVNjcmlwdFdvcmxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcihub3Jt
YWxXb3JsZCk7CisgICAgICAgIFdLQnVuZGxlQWRkVXNlclNjcmlwdChidW5kbGUsIHBhZ2VHcm91
cCwgbm9ybWFsV29ybGQsIHNvdXJjZS5nZXQoKSwgMCwgMCwgMCwga1dLSW5qZWN0QXREb2N1bWVu
dEVuZCwga1dLSW5qZWN0SW5BbGxGcmFtZXMpOworCisgICAgICAgIGF1dG8gaXNvbGF0ZWRXb3Js
ZCA9IFdLQnVuZGxlU2NyaXB0V29ybGRDcmVhdGVXb3JsZCgpOworICAgICAgICBXS0J1bmRsZVNj
cmlwdFdvcmxkRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhhdmlvcihpc29sYXRlZFdvcmxkKTsK
KyAgICAgICAgV0tCdW5kbGVBZGRVc2VyU2NyaXB0KGJ1bmRsZSwgcGFnZUdyb3VwLCBpc29sYXRl
ZFdvcmxkLCBzb3VyY2UuZ2V0KCksIDAsIDAsIDAsIGtXS0luamVjdEF0RG9jdW1lbnRFbmQsIGtX
S0luamVjdEluQWxsRnJhbWVzKTsKKyAgICB9Cit9OworCitzdGF0aWMgSW5qZWN0ZWRCdW5kbGVU
ZXN0OjpSZWdpc3RlcjxJbmplY3RlZEJ1bmRsZU5vRGlzYWJsZU92ZXJyaWRlQnVpbHRpbnNCZWhh
dmlvclRlc3Q+IHJlZ2lzdHJhcjEoIkluamVjdGVkQnVuZGxlTm9EaXNhYmxlT3ZlcnJpZGVCdWls
dGluc0JlaGF2aW9yVGVzdCIpOworc3RhdGljIEluamVjdGVkQnVuZGxlVGVzdDo6UmVnaXN0ZXI8
SW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdD4gcmVnaXN0
cmFyMigiSW5qZWN0ZWRCdW5kbGVEaXNhYmxlT3ZlcnJpZGVCdWlsdGluc0JlaGF2aW9yVGVzdCIp
OworCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5o
dG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvb3ZlcnJpZGUtYnVpbHRpbnMt
dGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlNmEwYzY5OTc4NTI5OWY4YjkzYTRhNmMyOTI4MjA5ODkw
YTQ3YmQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9vdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHk+Cis8Zm9ybT4KKzxpbnB1dCBpZD0idGVzdCIgbmFtZT0idGFn
TmFtZSI+Cis8L2Zvcm0+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>