<?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>95915</bug_id>
          
          <creation_ts>2012-09-05 17:12:00 -0700</creation_ts>
          <short_desc>Extend third-party storage blocking API to optionally allow blocking all storage</short_desc>
          <delta_ts>2012-09-12 09:16:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vicki Pfau">jeffrey+webkit</reporter>
          <assigned_to name="Vicki Pfau">jeffrey+webkit</assigned_to>
          <cc>beidson</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jeffm</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>712691</commentid>
    <comment_count>0</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2012-09-05 17:12:00 -0700</bug_when>
    <thetext>The third-party storage blocking API should be extended to allow a user to block all storage instead of either no data or third-party data. This mirrors what we already have in place for cookies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712699</commentid>
    <comment_count>1</comment_count>
      <attachid>162377</attachid>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2012-09-05 17:27:08 -0700</bug_when>
    <thetext>Created attachment 162377
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713667</commentid>
    <comment_count>2</comment_count>
      <attachid>162377</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 14:03:21 -0700</bug_when>
    <thetext>Comment on attachment 162377
Patch

Attachment 162377 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13774441

New failing tests:
http/tests/security/same-origin-storage-blocked.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713674</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-06 14:08:34 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 162377 [details])
&gt; Attachment 162377 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/13774441
&gt; 
&gt; New failing tests:
&gt; http/tests/security/same-origin-storage-blocked.html

This seems bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713676</commentid>
    <comment_count>4</comment_count>
      <attachid>162377</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-06 14:09:42 -0700</bug_when>
    <thetext>Comment on attachment 162377
Patch

Since there&apos;s a test failing, I did more of a &quot;glance-over&quot; instead of a full review.  Seems fine as a general approach.  I&apos;ll look more closely with the new patch that resolves the failing test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713763</commentid>
    <comment_count>5</comment_count>
      <attachid>162604</attachid>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2012-09-06 15:20:35 -0700</bug_when>
    <thetext>Created attachment 162604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713913</commentid>
    <comment_count>6</comment_count>
      <attachid>162604</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-06 17:36:23 -0700</bug_when>
    <thetext>Comment on attachment 162604
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKPreferences.h:210
&gt; -WK_EXPORT void WKPreferencesSetThirdPartyStorageBlockingEnabled(WKPreferencesRef preferencesRef, bool enabled);
&gt; -WK_EXPORT bool WKPreferencesGetThirdPartyStorageBlockingEnabled(WKPreferencesRef preferencesRef);
&gt; +WK_EXPORT void WKPreferencesSetStorageBlockingPolicy(WKPreferencesRef preferencesRef, uint32_t policy);
&gt; +WK_EXPORT uint32_t WKPreferencesGetStorageBlockingPolicy(WKPreferencesRef preferencesRef);

This should be exposed as an enum, not a uint32_t

There&apos;s precedent for this - See WKPreferencesPrivate.h for a directly comparable example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713953</commentid>
    <comment_count>7</comment_count>
      <attachid>162636</attachid>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2012-09-06 18:12:47 -0700</bug_when>
    <thetext>Created attachment 162636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714027</commentid>
    <comment_count>8</comment_count>
      <attachid>162636</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-06 19:37:51 -0700</bug_when>
    <thetext>Comment on attachment 162636
Patch

Attachment 162636 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13764931</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714842</commentid>
    <comment_count>9</comment_count>
      <attachid>162843</attachid>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2012-09-07 12:19:29 -0700</bug_when>
    <thetext>Created attachment 162843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715108</commentid>
    <comment_count>10</comment_count>
      <attachid>162843</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-09-07 16:33:57 -0700</bug_when>
    <thetext>Comment on attachment 162843
Patch

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

I&apos;d like you to consider making the changes I suggested, but won&apos;t hold up the patch any longer.

&gt; Source/WebCore/page/SecurityOrigin.h:52
&gt; +    enum StorageBlockingPolicy {
&gt; +        AllowAllStorage = 0,
&gt; +        BlockAllStorage,
&gt; +        BlockThirdPartyStorage
&gt; +    };

It reads better to me if these enums move from most permissive to least permissive.

-Allow All
-Block 3rd Parties
-Block All.

&gt; Source/WebKit2/UIProcess/API/C/WKPreferences.h:43
&gt; +enum WKStorageBlockingPolicy {
&gt; +    kWKAllowAllStorage = 0,
&gt; +    kWKBlockAllStorage,
&gt; +    kWKBlockThirdPartyStorage
&gt; +};

Same comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715220</commentid>
    <comment_count>11</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2012-09-07 19:05:49 -0700</bug_when>
    <thetext>Committed r127956: &lt;http://trac.webkit.org/changeset/127956&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715221</commentid>
    <comment_count>12</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2012-09-07 19:06:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/12259830&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162377</attachid>
            <date>2012-09-05 17:27:08 -0700</date>
            <delta_ts>2012-09-06 15:20:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95915-20120905172727.patch</filename>
            <type>text/plain</type>
            <size>29696</size>
            <attacher name="Vicki Pfau">jeffrey+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFkNmM4M2E0Y2Y0Yzgz
MTAxOGVmMmFhNzkzNGQzNjE5M2QxZWI1Ny4uN2IyYTBkYzE4MzBlN2EyYjI5ZTBhMmIwZDBlMGRi
MDNiMjM0M2NkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTA1ICBKZWZm
cmV5IFBmYXUgIDxqcGZhdUBhcHBsZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIHRoaXJkLXBhcnR5
IHN0b3JhZ2UgYmxvY2tpbmcgQVBJIHRvIG9wdGlvbmFsbHkgYWxsb3cgYmxvY2tpbmcgYWxsIHN0
b3JhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1
OTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVw
bGFjZSBib29sZWFuIEFQSSB3aXRoIHRyaS1zdGF0ZSBBUEkgdGhhdCBhbGxvd3MgZm9yIGJsb2Nr
aW5nIG5vLCB0aGlyZC1wYXJ0eSwgb3IgYWxsIHN0b3JhZ2UuCisKKyAgICAgICAgVGVzdDogaHR0
cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zdG9yYWdlLWJsb2NrZWQuaHRtbAorCisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojppbml0
U2VjdXJpdHlDb250ZXh0KToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbik6CisgICAgICAg
IChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3RvcmFnZSk6CisgICAgICAgICog
cGFnZS9TZWN1cml0eU9yaWdpbi5oOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46
OnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgIChTZWN1cml0eU9yaWdpbik6Cisg
ICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6
U2V0dGluZ3MpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNldHRpbmdzOjpzZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6
U2V0dGluZ3M6OnN0b3JhZ2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgIChTZXR0aW5ncyk6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsU2V0dGluZ3M6OnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDEyLTA5LTA0ICBB
bGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6
IHJlbW92ZSBmaW5hbCBjcmVhdGVJbmRleCBiYWNrZW5kIGdsdWUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ZTBi
OWI3YmYyN2FmMDU3NmVlNzQ5Zjk2ODZiNjMyMDQ5ZDljYTU4Li4wMzdjZjJmNDAxNjYwYWU5YWZh
YjIwYjZhMThjZjlhZDQyNTVhYmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTIt
MDktMDUgIEplZmZyZXkgUGZhdSAgPGpwZmF1QGFwcGxlLmNvbT4KKworICAgICAgICBFeHRlbmQg
dGhpcmQtcGFydHkgc3RvcmFnZSBibG9ja2luZyBBUEkgdG8gb3B0aW9uYWxseSBhbGxvdyBibG9j
a2luZyBhbGwgc3RvcmFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTU5MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVcGRhdGUgV0syIEFQSSB0byB1c2UgcmV2aXNlZCBTZXR0aW5ncyBBUEkuCisKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChX
S1ByZWZlcmVuY2VzU2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KToKKyAgICAgICAgKFdLUHJlZmVy
ZW5jZXNHZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIw
MTItMDktMDMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBQYXJ0IDEg
b2YgcmVtb3ZpbmcgUGxhdGZvcm1TdHJpbmcuaCwgbW92ZSByZW1haW5pbmcgZnVuY3Rpb25zIHRv
IG5ldyBob21lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDQ2NTc1MTM3MTRkODJjYjlh
MjlhOTA1OWYzMDUwNjVmNDk1ZDc1Zi4uMTcwOTRiMzllOWEwYjQ2OWIwNTNiZmI5MGI5ZTQ2ODU3
NDUzNmEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01MDQzLDggKzUwNDMsNyBAQCB2
b2lkIERvY3VtZW50Ojppbml0U2VjdXJpdHlDb250ZXh0KCkKICAgICAgICAgICAgICAgICBzZWN1
cml0eU9yaWdpbigpLT5lbmZvcmNlRmlsZVBhdGhTZXBhcmF0aW9uKCk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHNldHRpbmdzLT50aGlyZFBhcnR5U3RvcmFnZUJsb2Nr
aW5nRW5hYmxlZCgpKQotICAgICAgICAgICAgc2VjdXJpdHlPcmlnaW4oKS0+YmxvY2tUaGlyZFBh
cnR5U3RvcmFnZSgpOworICAgICAgICBzZWN1cml0eU9yaWdpbigpLT5zZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3koc2V0dGluZ3MtPnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKTsKICAgICB9CiAKICAg
ICBEb2N1bWVudCogcGFyZW50RG9jdW1lbnQgPSBvd25lckVsZW1lbnQoKSA/IG93bmVyRWxlbWVu
dCgpLT5kb2N1bWVudCgpIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlPcmlnaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAK
aW5kZXggNjkzNDcxNzc1YjAzODI5NzBmMmVhZjlhOGU1YmQ2MDlkOTA1MGVkMS4uYjkyNzc1Nzlh
ZDkwM2RhZTFlMzkwYzBkMjQ3Yzc1NzRmYjU5MDkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBTZWN1cml0eU9yaWdpbjo6U2VjdXJp
dHlPcmlnaW4oY29uc3QgS1VSTCYgdXJsKQogICAgICwgbV9pc1VuaXF1ZShmYWxzZSkKICAgICAs
IG1fdW5pdmVyc2FsQWNjZXNzKGZhbHNlKQogICAgICwgbV9kb21haW5XYXNTZXRJbkRPTShmYWxz
ZSkKLSAgICAsIG1fYmxvY2tUaGlyZFBhcnR5U3RvcmFnZShmYWxzZSkKKyAgICAsIG1fc3RvcmFn
ZUJsb2NraW5nUG9saWN5KEFsbG93QWxsU3RvcmFnZSkKICAgICAsIG1fZW5mb3JjZUZpbGVQYXRo
U2VwYXJhdGlvbihmYWxzZSkKICAgICAsIG1fbmVlZHNEYXRhYmFzZUlkZW50aWZpZXJRdWlya0Zv
ckZpbGVzKGZhbHNlKQogewpAQCAtMTQ4LDcgKzE0OCw3IEBAIFNlY3VyaXR5T3JpZ2luOjpTZWN1
cml0eU9yaWdpbigpCiAgICAgLCBtX3VuaXZlcnNhbEFjY2VzcyhmYWxzZSkKICAgICAsIG1fZG9t
YWluV2FzU2V0SW5ET00oZmFsc2UpCiAgICAgLCBtX2NhbkxvYWRMb2NhbFJlc291cmNlcyhmYWxz
ZSkKLSAgICAsIG1fYmxvY2tUaGlyZFBhcnR5U3RvcmFnZShmYWxzZSkKKyAgICAsIG1fc3RvcmFn
ZUJsb2NraW5nUG9saWN5KEFsbG93QWxsU3RvcmFnZSkKICAgICAsIG1fZW5mb3JjZUZpbGVQYXRo
U2VwYXJhdGlvbihmYWxzZSkKICAgICAsIG1fbmVlZHNEYXRhYmFzZUlkZW50aWZpZXJRdWlya0Zv
ckZpbGVzKGZhbHNlKQogewpAQCAtMTY1LDcgKzE2NSw3IEBAIFNlY3VyaXR5T3JpZ2luOjpTZWN1
cml0eU9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiogb3RoZXIpCiAgICAgLCBtX3VuaXZlcnNh
bEFjY2VzcyhvdGhlci0+bV91bml2ZXJzYWxBY2Nlc3MpCiAgICAgLCBtX2RvbWFpbldhc1NldElu
RE9NKG90aGVyLT5tX2RvbWFpbldhc1NldEluRE9NKQogICAgICwgbV9jYW5Mb2FkTG9jYWxSZXNv
dXJjZXMob3RoZXItPm1fY2FuTG9hZExvY2FsUmVzb3VyY2VzKQotICAgICwgbV9ibG9ja1RoaXJk
UGFydHlTdG9yYWdlKG90aGVyLT5tX2Jsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UpCisgICAgLCBtX3N0
b3JhZ2VCbG9ja2luZ1BvbGljeShvdGhlci0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kpCiAgICAg
LCBtX2VuZm9yY2VGaWxlUGF0aFNlcGFyYXRpb24ob3RoZXItPm1fZW5mb3JjZUZpbGVQYXRoU2Vw
YXJhdGlvbikKICAgICAsIG1fbmVlZHNEYXRhYmFzZUlkZW50aWZpZXJRdWlya0ZvckZpbGVzKG90
aGVyLT5tX25lZWRzRGF0YWJhc2VJZGVudGlmaWVyUXVpcmtGb3JGaWxlcykKIHsKQEAgLTM4OSw3
ICszODksMTEgQEAgYm9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3RvcmFnZShjb25zdCBT
ZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKSBjb25zdAogICAgIGlmICghdG9wT3JpZ2luKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmICgobV9ibG9ja1RoaXJkUGFydHlTdG9yYWdlIHx8
IHRvcE9yaWdpbi0+bV9ibG9ja1RoaXJkUGFydHlTdG9yYWdlKSAmJiB0b3BPcmlnaW4tPmlzVGhp
cmRQYXJ0eSh0aGlzKSkKKyAgICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tB
bGxTdG9yYWdlIHx8IHRvcE9yaWdpbi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tB
bGxTdG9yYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKworICAgIGlmICgobV9zdG9yYWdl
QmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tUaGlyZFBhcnR5U3RvcmFnZSB8fCB0b3BPcmlnaW4tPm1f
c3RvcmFnZUJsb2NraW5nUG9saWN5ID09IEJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UpICYmIHRvcE9y
aWdpbi0+aXNUaGlyZFBhcnR5KHRoaXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmln
aW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAppbmRleCA1OWYwYzQw
MTgyODRkYjk0ODYwNzJmNzdjYWY1Y2VjMmYxYWI0ZTAwLi5kN2IyYWVkYWFmZjMxZjM2ZTA4OTFm
NjU2YjViYmM0MTA2OTVkNGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3Vy
aXR5T3JpZ2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBA
IC00NSw2ICs0NSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIEFzawogICAgIH07CiAKKyAgICBlbnVt
IFN0b3JhZ2VCbG9ja2luZ1BvbGljeSB7CisgICAgICAgIEFsbG93QWxsU3RvcmFnZSA9IDAsCisg
ICAgICAgIEJsb2NrQWxsU3RvcmFnZSwKKyAgICAgICAgQmxvY2tUaGlyZFBhcnR5U3RvcmFnZQor
ICAgIH07CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNv
bnN0IEtVUkwmKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRl
VW5pcXVlKCk7CiAKQEAgLTEzNCw3ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgLy8gV0FSTklORzog
VGhpcyBpcyBhbiBleHRyZW1lbHkgcG93ZXJmdWwgYWJpbGl0eS4gVXNlIHdpdGggY2F1dGlvbiEK
ICAgICB2b2lkIGdyYW50VW5pdmVyc2FsQWNjZXNzKCk7CiAKLSAgICB2b2lkIGJsb2NrVGhpcmRQ
YXJ0eVN0b3JhZ2UoKSB7IG1fYmxvY2tUaGlyZFBhcnR5U3RvcmFnZSA9IHRydWU7IH0KKyAgICB2
b2lkIHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5
KSB7IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID0gcG9saWN5OyB9CiAKICAgICBib29sIGNhbkFj
Y2Vzc0RhdGFiYXNlKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4gPSAwKSBjb25zdCB7
IHJldHVybiBjYW5BY2Nlc3NTdG9yYWdlKHRvcE9yaWdpbik7IH07CiAgICAgYm9vbCBjYW5BY2Nl
c3NMb2NhbFN0b3JhZ2UoY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikgY29uc3QgeyBy
ZXR1cm4gY2FuQWNjZXNzU3RvcmFnZSh0b3BPcmlnaW4pOyB9OwpAQCAtMjE5LDcgKzIyNSw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX3VuaXZlcnNhbEFjY2VzczsKICAgICBib29sIG1fZG9tYWlu
V2FzU2V0SW5ET007CiAgICAgYm9vbCBtX2NhbkxvYWRMb2NhbFJlc291cmNlczsKLSAgICBib29s
IG1fYmxvY2tUaGlyZFBhcnR5U3RvcmFnZTsKKyAgICBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgbV9z
dG9yYWdlQmxvY2tpbmdQb2xpY3k7CiAgICAgYm9vbCBtX2VuZm9yY2VGaWxlUGF0aFNlcGFyYXRp
b247CiAgICAgYm9vbCBtX25lZWRzRGF0YWJhc2VJZGVudGlmaWVyUXVpcmtGb3JGaWxlczsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IGU5N2M2NGY3M2RjYjBlMjdhZTQ5NjRkNDc1
ZTYyYWI4MjliM2ZjNTQuLmYyNTE1MGI1MTZjMzk2NTM1YzM4YmVmY2EzY2IyYTJhNjhmZWVhMGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC0xMzgsNiArMTM4LDcgQEAgU2V0dGluZ3M6
OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX3Nlc3Npb25TdG9yYWdlUXVvdGEoU3RvcmFn
ZU1hcDo6bm9RdW90YSkKICAgICAsIG1fZWRpdGluZ0JlaGF2aW9yVHlwZShlZGl0aW5nQmVoYXZp
b3JUeXBlRm9yUGxhdGZvcm0oKSkKICAgICAsIG1fbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVw
dGgoZGVmYXVsdE1heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoKQorICAgICwgbV9zdG9yYWdl
QmxvY2tpbmdQb2xpY3koU2VjdXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZSkKICNpZiBFTkFC
TEUoVEVYVF9BVVRPU0laSU5HKQogICAgICwgbV90ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3Rv
cigxKQogI2lmIEhBQ0tfRk9SQ0VfVEVYVF9BVVRPU0laSU5HX09OX0RFU0tUT1AKQEAgLTI4NCw3
ICsyODUsNiBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fY29va2ll
RW5hYmxlZCh0cnVlKQogICAgICwgbV93aW5kb3dGb2N1c1Jlc3RyaWN0ZWQodHJ1ZSkKICAgICAs
IG1fZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkKGZhbHNlKQotICAgICwgbV90aGlyZFBhcnR5U3Rv
cmFnZUJsb2NraW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VM
b2dnaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5VGlt
ZXIodGhpcywgJlNldHRpbmdzOjpsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lckZpcmVkKQog
ICAgICwgbV9pbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcyhk
ZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggZmQ0ZDlhOTkyYjY5ZWZkY2Y0YTRkYmQ0ZTg1MDU0OWUy
NWM3YzRhZC4uNmZhM2JjMDI0YjhiOGMyZjlhY2MwZWQwM2QyNjE5ZDQ2NjUzMjk2MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkVkaXRpbmdCZWhh
dmlvclR5cGVzLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJL
VVJMLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg+CkBAIC02MDEsOCArNjAyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lk
IHNldFdpbmRvd0ZvY3VzUmVzdHJpY3RlZChib29sIHJlc3RyaWN0ZWQpIHsgbV93aW5kb3dGb2N1
c1Jlc3RyaWN0ZWQgPSByZXN0cmljdGVkOyB9CiAgICAgICAgIGJvb2wgd2luZG93Rm9jdXNSZXN0
cmljdGVkKCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dGb2N1c1Jlc3RyaWN0ZWQ7IH0KIAotICAg
ICAgICB2b2lkIHNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKGJvb2wgZW5hYmxl
ZCkgeyBtX3RoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkID0gZW5hYmxlZDsgfQotICAg
ICAgICBib29sIHRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV90aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZDsgfQorICAgICAgICB2b2lkIHNl
dFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9s
aWN5IHBvbGljeSkgeyBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeSA9IHBvbGljeTsgfQorICAgICAg
ICBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5OyB9CiAKICAgICAg
ICAgdm9pZCBzZXRTY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wpOwogICAg
ICAgICBib29sIHNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQoKSB7IHJldHVybiBt
X3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQ7IH0KQEAgLTY1Miw2ICs2NTMsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHVuc2lnbmVkIG1fc2Vzc2lvblN0b3JhZ2VR
dW90YTsKICAgICAgICAgdW5zaWduZWQgbV9lZGl0aW5nQmVoYXZpb3JUeXBlOwogICAgICAgICB1
bnNpZ25lZCBtX21heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoOworICAgICAgICBTZWN1cml0
eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5Owog
I2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgICAgIGZsb2F0IG1fdGV4dEF1dG9zaXpp
bmdGb250U2NhbGVGYWN0b3I7CiAgICAgICAgIEludFNpemUgbV90ZXh0QXV0b3NpemluZ1dpbmRv
d1NpemVPdmVycmlkZTsKQEAgLTc5NSw4ICs3OTcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgYm9vbCBtX2RpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCA6IDE7CiAKLSAgICAgICAg
Ym9vbCBtX3RoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkIDogMTsKLQogICAgICAgICBi
b29sIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCA6IDE7CiAKICAgICAgICAg
VGltZXI8U2V0dGluZ3M+IG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5VGltZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCBjZDY3Mzk4MmMwNjI4
YTk1ZDY4YWVjODM2ZjI1NjJjNmYwMmE5MDc3Li40MDIyZjg3NWZkMGU4MjkxMjY3ZTM2Mzk2NjMz
NzdkYzZkOWM1YjcyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHAKQEAgLTYyOCwxMCArNjI4LDE4IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0TWVt
b3J5SW5mb0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBzZXR0
aW5ncygpLT5zZXRNZW1vcnlJbmZvRW5hYmxlZChlbmFibGVkKTsKIH0KIAotdm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpzZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChib29sIGVuYWJs
ZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koY29uc3QgU3RyaW5nJiBtb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOwotICAgIHNldHRpbmdzKCkt
PnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKGVuYWJsZWQpOworCisgICAgaWYg
KG1vZGUgPT0gIkFsbG93QWxsIikKKyAgICAgICAgc2V0dGluZ3MoKS0+c2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2UpOworICAgIGVsc2UgaWYg
KG1vZGUgPT0gIkJsb2NrVGhpcmRQYXJ0eSIpCisgICAgICAgIHNldHRpbmdzKCktPnNldFN0b3Jh
Z2VCbG9ja2luZ1BvbGljeShTZWN1cml0eU9yaWdpbjo6QmxvY2tUaGlyZFBhcnR5U3RvcmFnZSk7
CisgICAgZWxzZSBpZiAobW9kZSA9PSAiQmxvY2tBbGwiKQorICAgICAgICBzZXR0aW5ncygpLT5z
ZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koU2VjdXJpdHlPcmlnaW46OkJsb2NrQWxsU3RvcmFnZSk7
CisgICAgZWxzZQorICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggY2ZhZTk0ZmJiMmU3ZDNjMjEwNTJi
MDllOGM3Yzc3MmQyYzk2ZWIxZC4uODNhYjliMmQ0YTExYTliNmU4MDhkODdmNDZhOTkwMDMzZjhl
ZDgwZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTE0
MSw3ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRFbmFibGVNb2NrUGFnZVBvcHVwKGJv
b2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTdHJpbmcgY29uZmlndXJhdGlvbkZvclZpZXdwb3J0
KGZsb2F0IGRldmljZVBpeGVsUmF0aW8sIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdo
dCwgaW50IGF2YWlsYWJsZVdpZHRoLCBpbnQgYXZhaWxhYmxlSGVpZ2h0LCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgdm9pZCBzZXRNZW1vcnlJbmZvRW5hYmxlZChib29sLCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgdm9pZCBzZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChib29sLCBFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koY29uc3QgU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbFNl
dHRpbmdzKFBhZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgaG9zdERlc3Ryb3llZCgpIE9WRVJSSURF
IHsgbV9wYWdlID0gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5pZGwKaW5kZXggYjljOGYzZWJmNjNhNGY2NzA2NzNiOGMyODRlODNiMzY1N2NhN2ZhZi4uNTE3
YmFhNjMzZTM3OTc2MzJmZjUxMjY2ZjI4ZTU5NzNmNGRlYTM5MCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC03OSw3ICs3OSw3IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICBib29sZWFuIHNob3VsZERpc3BsYXlUcmFja0tpbmQoaW4gRE9NU3Ry
aW5nIHRyYWNrS2luZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogI2VuZGlmCiAgICAgICAgIHZv
aWQgc2V0TWVtb3J5SW5mb0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxl
ZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lk
IHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShpbiBET01TdHJpbmcgcG9saWN5KSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZl
cmVuY2VzU3RvcmUuaAppbmRleCA1NjljNTE4NmQ2OTIxMmEwZWFiMjExZTZjZjg0MDlkM2JjODIy
ZTc1Li42ZWQ2OWMwNTJmYWY2YmIxNzc2M2U5NGVmOWI1NTViZmEyYmEyYTkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKQEAgLTEyNCw3ICsxMjQsNyBA
QCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICBtYWNybyhBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFs
aXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zLCBhc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXph
dGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3Jv
KEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCwgYXJ0aWZpY2lhbFBs
dWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAg
IG1hY3JvKFNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQsIHNjcm9sbGluZ1BlcmZv
cm1hbmNlTG9nZ2luZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oVGhp
cmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQsIHRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdF
bmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSwgc3RvcmFnZUJsb2NraW5nUG9saWN5LCBVSW50MzIsIHVpbnQzMl90LCAwKSBcCiAgICAg
bWFjcm8oU2Nyb2xsQW5pbWF0b3JFbmFibGVkLCBzY3JvbGxBbmltYXRvckVuYWJsZWQsIEJvb2ws
IGJvb2wsIERFRkFVTFRfV0VCS0lUX1NDUk9MTF9BTklNQVRPUl9FTkFCTEVEKSBcCiAgICAgXAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAK
aW5kZXggNjZkNGRjZDk4NWFlNDZiYzVjODg3OGRmMjZlMzc1M2MwODNkNWUzMy4uZGZlNjdjZGY4
ZWYxNzBiN2JlYzY2MjIxODBjYWJkNjk4NGQ0ZmI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtODE3LDE0ICs4MTcsMTQgQEAg
Ym9vbCBXS1ByZWZlcmVuY2VzR2V0UmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZChXS1ByZWZl
cmVuY2VzUmVmIHByZWZlcmVuY2VzUmUKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCgpOwogfQogCi12b2lkIFdLUHJlZmVyZW5j
ZXNTZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHBy
ZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxv
Y2tpbmdQb2xpY3koV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgdWludDMyX3QgcG9s
aWN5KQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFRoaXJkUGFydHlTdG9yYWdl
QmxvY2tpbmdFbmFibGVkKGZsYWcpOworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFN0
b3JhZ2VCbG9ja2luZ1BvbGljeShwb2xpY3kpOwogfQogCi1ib29sIFdLUHJlZmVyZW5jZXNHZXRU
aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmKQordWludDMyX3QgV0tQcmVmZXJlbmNlc0dldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShX
S1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogewotICAgIHJldHVybiB0b0ltcGwocHJl
ZmVyZW5jZXNSZWYpLT50aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCgpOworICAgIHJl
dHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zdG9yYWdlQmxvY2tpbmdQb2xpY3koKTsKIH0K
IAogdm9pZCBXS1ByZWZlcmVuY2VzUmVzZXRUZXN0UnVubmVyT3ZlcnJpZGVzKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXMuaAppbmRleCA4ODNmYmZmNjFiNzY5MTljZTIyMTYxNDQyZTcwYzc3NmM4
YWNkNzdiLi45ZmNlOGI5ZDdhYWU0MjhkMGUxZDM5MWIwNWMyZDM5YjRiMzFmZmVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgKQEAgLTIwNiw4
ICsyMDYsOCBAQCBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U2hvdWxkUmVzcGVjdElt
YWdlT3JpZW50YXRpb24oV0tQcmVmZXJlbmNlc1JlZiBwcgogV0tfRVhQT1JUIGJvb2wgV0tQcmVm
ZXJlbmNlc0dldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYpOwogCiAvLyBEZWZhdWx0cyB0byBmYWxzZQotV0tfRVhQT1JUIHZvaWQg
V0tQcmVmZXJlbmNlc1NldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCk7Ci1XS19FWFBPUlQgYm9vbCBX
S1ByZWZlcmVuY2VzR2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0
U3RvcmFnZUJsb2NraW5nUG9saWN5KFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVp
bnQzMl90IHBvbGljeSk7CitXS19FWFBPUlQgdWludDMyX3QgV0tQcmVmZXJlbmNlc0dldFN0b3Jh
Z2VCbG9ja2luZ1BvbGljeShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKIAogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggZjQwYWEwYTNlMzNhMGYwNDMxMmU1YmZmYmEwNTBkZTFjMzk0ZDBi
MS4uNWNkYzg4MTI3MWI4Zjc4ODhkNDJiYWY1ZDdhNmQyOTc0OGJkNzRiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjExMyw3ICsyMTEz
LDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNl
c1N0b3JlJiBzdG9yZSkKICNlbmRpZgogCiAgICAgc2V0dGluZ3MtPnNldFNob3VsZFJlc3BlY3RJ
bWFnZU9yaWVudGF0aW9uKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb25LZXkoKSkpOwotICAgIHNldHRpbmdzLT5z
ZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JL
ZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkS2V5
KCkpKTsKKyAgICBzZXR0aW5ncy0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHN0YXRpY19jYXN0
PFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHN0b3JlLmdldFVJbnQzMlZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSkp
KTsKIAogICAgIHNldHRpbmdzLT5zZXREaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQoc3RvcmUuZ2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpkaWFnbm9zdGljTG9nZ2luZ0VuYWJs
ZWRLZXkoKSkpOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggYjU0NjVhY2QwODA1YWU0ZTFlYmFiMWI1YzIyODc2MmE1ZDcwZDRhMi4uNTM0NzMx
MGY5MzJkOWUyNzJjNTdjNDMyNTY4NjY2ZTE1ZjUxNTllYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA5LTA1
ICBKZWZmcmV5IFBmYXUgIDxqcGZhdUBhcHBsZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIHRoaXJk
LXBhcnR5IHN0b3JhZ2UgYmxvY2tpbmcgQVBJIHRvIG9wdGlvbmFsbHkgYWxsb3cgYmxvY2tpbmcg
YWxsIHN0b3JhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk1OTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW9kaWZpZWQgQVBJIHRlc3QgdG8gdXNlIG5ldyByZXZpc2VkIEFQSS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDEyLTA5LTA0ICBYaWFuemh1IFdhbmcgIDx3YW5n
eGlhbnpodUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtLUFuZHJvaWRdIEluY2x1
ZGUgZGV2aWNlIHNlcmlhbCBudW1iZXIgaW4gQ2hyb21pdW1BbmRyb2lkRHJpdmVyIGxvZyBtZXNz
YWdlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLUHJl
ZmVyZW5jZXMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLUHJlZmVy
ZW5jZXMuY3BwCmluZGV4IGJkZmE1NWZjYmI4ZjZlMjkxYzBkYjZjMDljYzk5Y2UwNmVmYmFhMzku
LjA0ZWJkZTQ3N2FiODA2MDMxNjlkMDJhMjU4MWE1OWI3NWY0MTI2OWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTEw
MSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdDIsIFdLUHJlZmVyZW5jZXNEZWZhdWx0cykKICAgICBF
WFBFQ1RfRkFMU0UoV0tQcmVmZXJlbmNlc0dldENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUocHJl
ZmVyZW5jZSkpOwogICAgIEVYUEVDVF9GQUxTRShXS1ByZWZlcmVuY2VzR2V0Q29tcG9zaXRpbmdS
ZXBhaW50Q291bnRlcnNWaXNpYmxlKHByZWZlcmVuY2UpKTsKICAgICBFWFBFQ1RfRkFMU0UoV0tQ
cmVmZXJlbmNlc0dldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKHByZWZlcmVuY2UpKTsKLSAgICBF
WFBFQ1RfRkFMU0UoV0tQcmVmZXJlbmNlc0dldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFi
bGVkKHByZWZlcmVuY2UpKTsKKyAgICBFWFBFQ1RfRVEoMHUsIFdLUHJlZmVyZW5jZXNHZXRTdG9y
YWdlQmxvY2tpbmdQb2xpY3kocHJlZmVyZW5jZSkpOwogCiAgICAgV0tSZWxlYXNlKHByZWZlcmVu
Y2UpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDdjZWYyOTcwNWI3MzNhMWRhZjc2NGYzYjhkOWU5ZDdlMjdmYzYzOTQu
LjQ2YjRkYTBlMDk1ZWMyNDM3NGEwM2Y0OGM3MjM4OTk4MmM1YjNmMDYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNCBAQAorMjAxMi0wOS0wNSAgSmVmZnJleSBQZmF1ICA8anBmYXVAYXBwbGUuY29tPgorCisg
ICAgICAgIEV4dGVuZCB0aGlyZC1wYXJ0eSBzdG9yYWdlIGJsb2NraW5nIEFQSSB0byBvcHRpb25h
bGx5IGFsbG93IGJsb2NraW5nIGFsbCBzdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTkxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0ZXN0cyB0byB1c2UgcmV2aXNlZCBBUEkuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1sb2NhbC1zdG9yYWdl
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1Z2lu
LXByaXZhdGUtYnJvd3NpbmctdG9nZ2xlZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLXNlc3Npb24tc3RvcmFnZS5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXNoYXJlZC13b3JrZXIuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13ZWJzcWwuaHRtbDoKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItd2Vic3FsLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvZG9jdW1lbnQtZm9yLWNyb3Nz
LW9yaWdpbi13b3JrZXItd2Vic3FsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9zYW1lLW9yaWdpbi1kb2N1bWVudC1kb21haW4tc3RvcmFnZS1hbGxvd2VkLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zdG9yYWdlLWJsb2NrZWQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3Jp
Z2luLXN0b3JhZ2UtYmxvY2tlZC5odG1sOiBBZGRlZC4KKwogMjAxMi0wOS0wNCAgU2VyZ2V5IEds
YXp1bm92ICA8c2VyZy5nbGF6dW5vdkBnbWFpbC5jb20+CiAKICAgICAgICAgRnJhbWUgZWxlbWVu
dCBkb2Vzbid0IGFsd2F5cyB1bmxvYWQgaXRzIGNoaWxkIGZyYW1lLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tbG9jYWwtc3RvcmFnZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tbG9jYWwt
c3RvcmFnZS5odG1sCmluZGV4IDExMzg1N2UyY2EzY2I5MjcwZmZkY2ZiYmFlMzFlMTIwNjU1N2Yz
YzEuLjhkNmE3N2VjNmQ5ODAxNzNhZjdjZGRlN2RiOGQ3MjczZWJiMTI3NWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWxvY2FsLXN0b3Jh
Z2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdp
bi1sb2NhbC1zdG9yYWdlLmh0bWwKQEAgLTUsMTMgKzUsMTMgQEAgdmFyIGZyYW1lcyA9IDI7CiBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIAl0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAl0ZXN0
UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwotCWludGVybmFscy5zZXR0aW5ncy5zZXRU
aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCh0cnVlKTsKKwlpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja1RoaXJkUGFydHknKTsKIH0KIAogZnVu
Y3Rpb24gZGVjcmVtZW50KCkgewogCS0tZnJhbWVzOwogCWlmICghZnJhbWVzICYmIHdpbmRvdy50
ZXN0UnVubmVyKQotCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9j
a2luZ0VuYWJsZWQoZmFsc2UpOworCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5KCdBbGxvd0FsbCcpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1wbHVnaW4tcHJp
dmF0ZS1icm93c2luZy10b2dnbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLW9yaWdpbi1wbHVnaW4tcHJpdmF0ZS1icm93c2luZy10b2dnbGVkLmh0bWwKaW5k
ZXggYzkwNjQxZDJlYTE0MzBkZDExMmQ3YmFlNGEzOGE1M2RlMzFmYWY0Zi4uMTQ3MTI1MWRmNjY2
YzM0ZDA2NTY0ODNlODc1M2M0NzEzMmE5ZjNlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1Z2luLXByaXZhdGUtYnJvd3NpbmctdG9n
Z2xlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3Jp
Z2luLXBsdWdpbi1wcml2YXRlLWJyb3dzaW5nLXRvZ2dsZWQuaHRtbApAQCAtNyw3ICs3LDcgQEAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAJdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQoKTsKIAl0ZXN0UnVubmVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1ZSk7CiAJdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0JaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFy
dHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKHRydWUpOworCWludGVybmFscy5zZXR0aW5ncy5zZXRT
dG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScpOwogfQogCiBmdW5jdGlvbiBk
ZWNyZW1lbnQoKSB7CkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIGRlY3JlbWVudCgpIHsKIHdp
bmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbigpIHsKIAktLWZyYW1lczsKIAlpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLQkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxv
Y2tpbmdFbmFibGVkKGZhbHNlKTsKKwkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9j
a2luZ1BvbGljeSgnQWxsb3dBbGwnKTsKIAkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAJfQog
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmln
aW4tcGx1Z2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9y
aWdpbi1wbHVnaW4uaHRtbAppbmRleCBiN2FlNDEyYjgxOGMyZTE1YWRiNTUwZjNhMGE0MWY5N2E1
MzBhZGVmLi42OWQ3NzFjZTBiYzFlZjhkYzJkM2IyNjgyZDBiYzYxZDM5M2FmOGJlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1wbHVnaW4u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1w
bHVnaW4uaHRtbApAQCAtNSwxMyArNSwxMyBAQCB2YXIgZnJhbWVzID0gMjsKIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewogCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCXRlc3RSdW5uZXIuZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0JaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlT
dG9yYWdlQmxvY2tpbmdFbmFibGVkKHRydWUpOworCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9y
YWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScpOwogfQogCiBmdW5jdGlvbiBkZWNy
ZW1lbnQoKSB7CiAJLS1mcmFtZXM7CiAJaWYgKCFmcmFtZXMgJiYgd2luZG93LnRlc3RSdW5uZXIp
Ci0JCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxl
ZChmYWxzZSk7CisJCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3ko
J0FsbG93QWxsJyk7CiB9CiA8L3NjcmlwdD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tc2Vzc2lvbi1zdG9yYWdlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1zZXNzaW9uLXN0
b3JhZ2UuaHRtbAppbmRleCAwMWYxNTA0MGI0ZDU5MWYxMTY2OGJmMWNjZjEwNzllYzhhYTVlZGVj
Li41ZjlhZmQxNzQzODNjOGRhZjU1YTQ1MDQzMDZiMmI3NGI1ZGJjMTFkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1zZXNzaW9uLXN0b3Jh
Z2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdp
bi1zZXNzaW9uLXN0b3JhZ2UuaHRtbApAQCAtNSwxMyArNSwxMyBAQCB2YXIgZnJhbWVzID0gMjsK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCXRl
c3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0JaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKHRydWUpOworCWludGVybmFscy5zZXR0
aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScpOwogfQogCiBm
dW5jdGlvbiBkZWNyZW1lbnQoKSB7CiAJLS1mcmFtZXM7CiAJaWYgKCFmcmFtZXMgJiYgd2luZG93
LnRlc3RSdW5uZXIpCi0JCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5U3RvcmFnZUJs
b2NraW5nRW5hYmxlZChmYWxzZSk7CisJCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxv
Y2tpbmdQb2xpY3koJ0FsbG93QWxsJyk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXNoYXJlZC13
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2lu
LXNoYXJlZC13b3JrZXIuaHRtbAppbmRleCA3NzgzZTBkYWU2YTNhZWE4NTk0NDQwM2UxMWI3NjRm
NmRmZDVkMGZiLi5jMGYwMjUxYTMzOWZjZTY2YWEzNDUxYzBiYWY3YmM4OTM1MDBiNmQxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1zaGFy
ZWQtd29ya2VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4tc2hhcmVkLXdvcmtlci5odG1sCkBAIC02LDEzICs2LDEzIEBAIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewogCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCXRlc3RSdW5uZXIuZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCk7CiAJdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0JaW50
ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKHRydWUp
OworCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhp
cmRQYXJ0eScpOwogfQogCiBmdW5jdGlvbiBkZWNyZW1lbnQoKSB7CiAJLS1mcmFtZXM7CiAJaWYg
KCFmcmFtZXMgJiYgd2luZG93LnRlc3RSdW5uZXIpIHsKLQkJaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKGZhbHNlKTsKKwkJaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgnQWxsb3dBbGwnKTsKIAkJdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAJfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13ZWJzcWwuaHRtbAppbmRleCBkYzAzOWE2MWUzNTM5
ZjdhYTA4ZmZmZGI5MTY4MzNmY2VlNzI3ZjYxLi5iODk1N2I5MWM2ODhhNGYzY2M4NjU4Mjc2YmY0
MDAzYzAxNDc0MjBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLW9yaWdpbi13ZWJzcWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi13ZWJzcWwuaHRtbApAQCAtNSwxMyArNSwxMyBAQCB2YXIgZnJh
bWVzID0gMjsKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogCXRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogCXRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0JaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKHRydWUpOworCWludGVy
bmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScp
OwogfQogCiBmdW5jdGlvbiBkZWNyZW1lbnQoKSB7CiAJLS1mcmFtZXM7CiAJaWYgKCFmcmFtZXMg
JiYgd2luZG93LnRlc3RSdW5uZXIpCi0JCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5
U3RvcmFnZUJsb2NraW5nRW5hYmxlZChmYWxzZSk7CisJCWludGVybmFscy5zZXR0aW5ncy5zZXRT
dG9yYWdlQmxvY2tpbmdQb2xpY3koJ0FsbG93QWxsJyk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2lu
LXdvcmtlci13ZWJzcWwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3Mtb3JpZ2luLXdvcmtlci13ZWJzcWwuaHRtbAppbmRleCA0ZWIxN2YwN2JiNDExMmEzNzQzNDgw
YWRmNDA2NDZhOWMyMjNhZjI0Li5jNmMxYjAyZDJiYTg4Nzk2OGY2NDBkYTA0NzhmNWZjZjYwM2Zk
NTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9y
aWdpbi13b3JrZXItd2Vic3FsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLXdlYnNxbC5odG1sCkBAIC04LDcgKzgsNyBAQCBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKIAl0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAl0ZXN0
UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKHRydWUpOwogCXRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1h
aW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOwotCWludGVybmFscy5zZXR0aW5ncy5zZXRU
aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCh0cnVlKTsKKwlpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja1RoaXJkUGFydHknKTsKIH0KIAogZG9j
dW1lbnQubG9jYXRpb24gPSAicmVzb3VyY2VzL2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29y
a2VyLXdlYnNxbC5odG1sIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9yZXNvdXJjZXMvZG9jdW1lbnQtZm9yLWNyb3NzLW9yaWdpbi13b3JrZXItd2Vic3FsLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9kb2N1bWVudC1m
b3ItY3Jvc3Mtb3JpZ2luLXdvcmtlci13ZWJzcWwuaHRtbAppbmRleCAyZGMyZTNkNGNhMWI1M2Ez
MzZjNDgwNWMwOGQyMDE5ZGRlMjFlMGM1Li4xYThmNTM1MTI5Yzc1Y2MwZmUyYmZlZmY4NmYzMmVi
NTAzNTg1ZGM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9kb2N1bWVudC1mb3ItY3Jvc3Mtb3JpZ2luLXdvcmtlci13ZWJzcWwuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9kb2N1bWVudC1mb3It
Y3Jvc3Mtb3JpZ2luLXdvcmtlci13ZWJzcWwuaHRtbApAQCAtNiw3ICs2LDcgQEAgdmFyIGZyYW1l
cyA9IDI7CiBmdW5jdGlvbiBkZWNyZW1lbnQoZXZlbnQpIHsKIAktLWZyYW1lczsKIAlpZiAoIWZy
YW1lcyAmJiB3aW5kb3cudGVzdFJ1bm5lcikgewotCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhp
cmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoZmFsc2UpOworCQlpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdBbGxvd0FsbCcpOwogCQl0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3NhbWUtb3JpZ2luLWRvY3VtZW50LWRvbWFpbi1zdG9yYWdlLWFsbG93ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tZG9jdW1lbnQtZG9t
YWluLXN0b3JhZ2UtYWxsb3dlZC5odG1sCmluZGV4IDM4NmZlYTE3MGU1NjBmY2ZiNTg1OTVkMGY3
YTc1ZTgwMTY1YWU2NGMuLjVhZDgzNDk5ZTQwZjcwM2JkMDNkNDliZjZlNmJhZWM2N2RkNjY2ODIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4t
ZG9jdW1lbnQtZG9tYWluLXN0b3JhZ2UtYWxsb3dlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tZG9jdW1lbnQtZG9tYWluLXN0b3JhZ2UtYWxs
b3dlZC5odG1sCkBAIC01LDEzICs1LDEzIEBAIHZhciBmcmFtZXMgPSAyOwogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CiAJdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAJdGVzdFJ1bm5lci5kdW1w
Q2hpbGRGcmFtZXNBc1RleHQoKTsKLQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0eVN0
b3JhZ2VCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSgnQmxvY2tUaGlyZFBhcnR5Jyk7CiB9CiAKIGZ1bmN0aW9uIGRlY3Jl
bWVudCgpIHsKIAktLWZyYW1lczsKIAlpZiAoIWZyYW1lcyAmJiB3aW5kb3cudGVzdFJ1bm5lcikK
LQkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVk
KGZhbHNlKTsKKwkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgn
QWxsb3dBbGwnKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zdG9yYWdlLWJsb2NrZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zdG9y
YWdlLWJsb2NrZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4NWViYTE0YmQwMjE4YWFjNTVj
NDUxZmFhZGEyZjIyMTc0YWY0MDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXN0b3JhZ2UtYmxvY2tlZC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzMiBAQAorVGhpcyBpZnJhbWUgc2hvdWxkIHJldHVybiBhIHNlY3VyaXR5IGVy
cm9yOgorCisKK1RoaXMgaWZyYW1lIHNob3VsZCByZXR1cm4gYSBzZWN1cml0eSBlcnJvcjoKKwor
CitUaGlzIGlmcmFtZSBzaG91bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJyb3I6CisKKworVGhpcyBp
ZnJhbWUgc2hvdWxkIHJldHVybiBhIHNlY3VyaXR5IGVycm9yOgorCisKKworLS0tLS0tLS0KK0Zy
YW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorU0VDVVJJ
VFlfRVJSCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+
LS0+JworLS0tLS0tLS0KK1NFQ1VSSVRZX0VSUgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWVQYXRoIC8vPCEtLWZyYW1lMi0tPi0tPicKKy0tLS0tLS0tCitTRUNVUklUWV9FUlIKKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTMtLT4tLT4nCistLS0tLS0t
LQorU0VDVVJJVFlfRVJSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3NhbWUtb3JpZ2luLXN0b3JhZ2UtYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zdG9yYWdlLWJsb2NrZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kOTZiZWY4ZWMyYTgwNGU1ZDQyMzAwYzIzZGE0YzJhMTJkYjZhMjRjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zdG9yYWdl
LWJsb2NrZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4K
K3ZhciBmcmFtZXMgPSA0OzQ7NDs0OworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisJdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisJdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsK
KwlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja0FsbCcp
OworfQorCitmdW5jdGlvbiBkZWNyZW1lbnQoKSB7CisJLS1mcmFtZXM7CisJaWYgKCFmcmFtZXMg
JiYgd2luZG93LnRlc3RSdW5uZXIpCisJCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxv
Y2tpbmdQb2xpY3koJ0FsbG93QWxsJyk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyBpZnJhbWUgc2hvdWxkIHJldHVybiBhIHNlY3VyaXR5IGVycm9yOjwvcD4KKzxpZnJh
bWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9y
aWdpbi1pZnJhbWUtZm9yLWxvY2FsLXN0b3JhZ2UuaHRtbCIgb25sb2FkPSJkZWNyZW1lbnQoKSI+
PC9pZnJhbWU+Cis8cD5UaGlzIGlmcmFtZSBzaG91bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJyb3I6
PC9wPgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJj
ZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3Itc2Vzc2lvbi1zdG9yYWdlLmh0bWwiIG9ubG9hZD0i
ZGVjcmVtZW50KCkiPjwvaWZyYW1lPgorPHA+VGhpcyBpZnJhbWUgc2hvdWxkIHJldHVybiBhIHNl
Y3VyaXR5IGVycm9yOjwvcD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2Vj
dXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLXNoYXJlZC13b3JrZXIuaHRt
bCIgb25sb2FkPSJkZWNyZW1lbnQoKSI+PC9pZnJhbWU+Cis8cD5UaGlzIGlmcmFtZSBzaG91bGQg
cmV0dXJuIGEgc2VjdXJpdHkgZXJyb3I6PC9wPgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3Itd2Vic3Fs
Lmh0bWwiIG9ubG9hZD0iZGVjcmVtZW50KCkiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162604</attachid>
            <date>2012-09-06 15:20:35 -0700</date>
            <delta_ts>2012-09-06 18:12:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95915-20120906152049.patch</filename>
            <type>text/plain</type>
            <size>33329</size>
            <attacher name="Vicki Pfau">jeffrey+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFkNmM4M2E0Y2Y0Yzgz
MTAxOGVmMmFhNzkzNGQzNjE5M2QxZWI1Ny4uZmZjNzAwODQ4MzM1NWMwODg1YThiNmMxYzE3YTRj
YWVlNTZhMjNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA5LTA2ICBKZWZm
cmV5IFBmYXUgIDxqcGZhdUBhcHBsZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIHRoaXJkLXBhcnR5
IHN0b3JhZ2UgYmxvY2tpbmcgQVBJIHRvIG9wdGlvbmFsbHkgYWxsb3cgYmxvY2tpbmcgYWxsIHN0
b3JhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1
OTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVw
bGFjZSBib29sZWFuIEFQSSB3aXRoIHRyaS1zdGF0ZSBBUEkgdGhhdCBhbGxvd3MgZm9yIGJsb2Nr
aW5nIG5vLCB0aGlyZC1wYXJ0eSwgb3IgYWxsIHN0b3JhZ2UuCisKKyAgICAgICAgVGVzdHM6IGh0
dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc2hhcmVkLXdvcmtlci1ibG9ja2VkLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc3RvcmFnZS1i
bG9ja2VkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmln
aW4td2Vic3FsLWJsb2NrZWQuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojppbml0U2VjdXJpdHlDb250ZXh0KToKKyAgICAgICAg
KiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
Y2FuQWNjZXNzU3RvcmFnZSk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSk6
CisgICAgICAgIChTZWN1cml0eU9yaWdpbik6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSk6CisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6
CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsOgorCiAyMDEyLTA5LTA0ICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IHJlbW92ZSBmaW5hbCBjcmVhdGVJbmRleCBi
YWNrZW5kIGdsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ZTBiOWI3YmYyN2FmMDU3NmVlNzQ5Zjk2ODZiNjMy
MDQ5ZDljYTU4Li44NDBlMDFjY2ZhMGZiNDI4NmNmODg5ZDFiOGNmOTUyODY3NDA2MzhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMDktMDYgIEplZmZyZXkgUGZhdSAgPGpwZmF1
QGFwcGxlLmNvbT4KKworICAgICAgICBFeHRlbmQgdGhpcmQtcGFydHkgc3RvcmFnZSBibG9ja2lu
ZyBBUEkgdG8gb3B0aW9uYWxseSBhbGxvdyBibG9ja2luZyBhbGwgc3RvcmFnZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5MTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgV0syIEFQSSB0byB1
c2UgcmV2aXNlZCBTZXR0aW5ncyBBUEkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5j
ZXNTdG9yZS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRTdG9yYWdlQmxvY2tpbmdQb2xp
Y3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMTItMDktMDMgIFNhbSBXZWluaWcgIDxzYW1A
d2Via2l0Lm9yZz4KIAogICAgICAgICBQYXJ0IDEgb2YgcmVtb3ZpbmcgUGxhdGZvcm1TdHJpbmcu
aCwgbW92ZSByZW1haW5pbmcgZnVuY3Rpb25zIHRvIG5ldyBob21lcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggNDQ2NTc1MTM3MTRkODJjYjlhMjlhOTA1OWYzMDUwNjVmNDk1ZDc1Zi4uMTcw
OTRiMzllOWEwYjQ2OWIwNTNiZmI5MGI5ZTQ2ODU3NDUzNmEwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC01MDQzLDggKzUwNDMsNyBAQCB2b2lkIERvY3VtZW50Ojppbml0U2VjdXJpdHlD
b250ZXh0KCkKICAgICAgICAgICAgICAgICBzZWN1cml0eU9yaWdpbigpLT5lbmZvcmNlRmlsZVBh
dGhTZXBhcmF0aW9uKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgaWYgKHNl
dHRpbmdzLT50aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCgpKQotICAgICAgICAgICAg
c2VjdXJpdHlPcmlnaW4oKS0+YmxvY2tUaGlyZFBhcnR5U3RvcmFnZSgpOworICAgICAgICBzZWN1
cml0eU9yaWdpbigpLT5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koc2V0dGluZ3MtPnN0b3JhZ2VC
bG9ja2luZ1BvbGljeSgpKTsKICAgICB9CiAKICAgICBEb2N1bWVudCogcGFyZW50RG9jdW1lbnQg
PSBvd25lckVsZW1lbnQoKSA/IG93bmVyRWxlbWVudCgpLT5kb2N1bWVudCgpIDogMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggNjkzNDcxNzc1YjAzODI5NzBmMmVh
ZjlhOGU1YmQ2MDlkOTA1MGVkMS4uYjkyNzc1NzlhZDkwM2RhZTFlMzkwYzBkMjQ3Yzc1NzRmYjU5
MDkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTEyMiw3ICsx
MjIsNyBAQCBTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oY29uc3QgS1VSTCYgdXJsKQog
ICAgICwgbV9pc1VuaXF1ZShmYWxzZSkKICAgICAsIG1fdW5pdmVyc2FsQWNjZXNzKGZhbHNlKQog
ICAgICwgbV9kb21haW5XYXNTZXRJbkRPTShmYWxzZSkKLSAgICAsIG1fYmxvY2tUaGlyZFBhcnR5
U3RvcmFnZShmYWxzZSkKKyAgICAsIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5KEFsbG93QWxsU3Rv
cmFnZSkKICAgICAsIG1fZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbihmYWxzZSkKICAgICAsIG1f
bmVlZHNEYXRhYmFzZUlkZW50aWZpZXJRdWlya0ZvckZpbGVzKGZhbHNlKQogewpAQCAtMTQ4LDcg
KzE0OCw3IEBAIFNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbigpCiAgICAgLCBtX3VuaXZl
cnNhbEFjY2VzcyhmYWxzZSkKICAgICAsIG1fZG9tYWluV2FzU2V0SW5ET00oZmFsc2UpCiAgICAg
LCBtX2NhbkxvYWRMb2NhbFJlc291cmNlcyhmYWxzZSkKLSAgICAsIG1fYmxvY2tUaGlyZFBhcnR5
U3RvcmFnZShmYWxzZSkKKyAgICAsIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5KEFsbG93QWxsU3Rv
cmFnZSkKICAgICAsIG1fZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbihmYWxzZSkKICAgICAsIG1f
bmVlZHNEYXRhYmFzZUlkZW50aWZpZXJRdWlya0ZvckZpbGVzKGZhbHNlKQogewpAQCAtMTY1LDcg
KzE2NSw3IEBAIFNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbihjb25zdCBTZWN1cml0eU9y
aWdpbiogb3RoZXIpCiAgICAgLCBtX3VuaXZlcnNhbEFjY2VzcyhvdGhlci0+bV91bml2ZXJzYWxB
Y2Nlc3MpCiAgICAgLCBtX2RvbWFpbldhc1NldEluRE9NKG90aGVyLT5tX2RvbWFpbldhc1NldElu
RE9NKQogICAgICwgbV9jYW5Mb2FkTG9jYWxSZXNvdXJjZXMob3RoZXItPm1fY2FuTG9hZExvY2Fs
UmVzb3VyY2VzKQotICAgICwgbV9ibG9ja1RoaXJkUGFydHlTdG9yYWdlKG90aGVyLT5tX2Jsb2Nr
VGhpcmRQYXJ0eVN0b3JhZ2UpCisgICAgLCBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeShvdGhlci0+
bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kpCiAgICAgLCBtX2VuZm9yY2VGaWxlUGF0aFNlcGFyYXRp
b24ob3RoZXItPm1fZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbikKICAgICAsIG1fbmVlZHNEYXRh
YmFzZUlkZW50aWZpZXJRdWlya0ZvckZpbGVzKG90aGVyLT5tX25lZWRzRGF0YWJhc2VJZGVudGlm
aWVyUXVpcmtGb3JGaWxlcykKIHsKQEAgLTM4OSw3ICszODksMTEgQEAgYm9vbCBTZWN1cml0eU9y
aWdpbjo6Y2FuQWNjZXNzU3RvcmFnZShjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKSBj
b25zdAogICAgIGlmICghdG9wT3JpZ2luKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlm
ICgobV9ibG9ja1RoaXJkUGFydHlTdG9yYWdlIHx8IHRvcE9yaWdpbi0+bV9ibG9ja1RoaXJkUGFy
dHlTdG9yYWdlKSAmJiB0b3BPcmlnaW4tPmlzVGhpcmRQYXJ0eSh0aGlzKSkKKyAgICBpZiAobV9z
dG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tBbGxTdG9yYWdlIHx8IHRvcE9yaWdpbi0+bV9z
dG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tBbGxTdG9yYWdlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKworICAgIGlmICgobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tUaGly
ZFBhcnR5U3RvcmFnZSB8fCB0b3BPcmlnaW4tPm1fc3RvcmFnZUJsb2NraW5nUG9saWN5ID09IEJs
b2NrVGhpcmRQYXJ0eVN0b3JhZ2UpICYmIHRvcE9yaWdpbi0+aXNUaGlyZFBhcnR5KHRoaXMpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2VjdXJpdHlPcmlnaW4uaAppbmRleCA1OWYwYzQwMTgyODRkYjk0ODYwNzJmNzdjYWY1Y2VjMmYx
YWI0ZTAwLi5kN2IyYWVkYWFmZjMxZjM2ZTA4OTFmNjU2YjViYmM0MTA2OTVkNGNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBAIC00NSw2ICs0NSwxMiBAQCBwdWJsaWM6CiAg
ICAgICAgIEFzawogICAgIH07CiAKKyAgICBlbnVtIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSB7Cisg
ICAgICAgIEFsbG93QWxsU3RvcmFnZSA9IDAsCisgICAgICAgIEJsb2NrQWxsU3RvcmFnZSwKKyAg
ICAgICAgQmxvY2tUaGlyZFBhcnR5U3RvcmFnZQorICAgIH07CisKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNvbnN0IEtVUkwmKTsKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlVW5pcXVlKCk7CiAKQEAgLTEzNCw3ICsxNDAs
NyBAQCBwdWJsaWM6CiAgICAgLy8gV0FSTklORzogVGhpcyBpcyBhbiBleHRyZW1lbHkgcG93ZXJm
dWwgYWJpbGl0eS4gVXNlIHdpdGggY2F1dGlvbiEKICAgICB2b2lkIGdyYW50VW5pdmVyc2FsQWNj
ZXNzKCk7CiAKLSAgICB2b2lkIGJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UoKSB7IG1fYmxvY2tUaGly
ZFBhcnR5U3RvcmFnZSA9IHRydWU7IH0KKyAgICB2b2lkIHNldFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eShTdG9yYWdlQmxvY2tpbmdQb2xpY3kgcG9saWN5KSB7IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5
ID0gcG9saWN5OyB9CiAKICAgICBib29sIGNhbkFjY2Vzc0RhdGFiYXNlKGNvbnN0IFNlY3VyaXR5
T3JpZ2luKiB0b3BPcmlnaW4gPSAwKSBjb25zdCB7IHJldHVybiBjYW5BY2Nlc3NTdG9yYWdlKHRv
cE9yaWdpbik7IH07CiAgICAgYm9vbCBjYW5BY2Nlc3NMb2NhbFN0b3JhZ2UoY29uc3QgU2VjdXJp
dHlPcmlnaW4qIHRvcE9yaWdpbikgY29uc3QgeyByZXR1cm4gY2FuQWNjZXNzU3RvcmFnZSh0b3BP
cmlnaW4pOyB9OwpAQCAtMjE5LDcgKzIyNSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3VuaXZl
cnNhbEFjY2VzczsKICAgICBib29sIG1fZG9tYWluV2FzU2V0SW5ET007CiAgICAgYm9vbCBtX2Nh
bkxvYWRMb2NhbFJlc291cmNlczsKLSAgICBib29sIG1fYmxvY2tUaGlyZFBhcnR5U3RvcmFnZTsK
KyAgICBTdG9yYWdlQmxvY2tpbmdQb2xpY3kgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3k7CiAgICAg
Ym9vbCBtX2VuZm9yY2VGaWxlUGF0aFNlcGFyYXRpb247CiAgICAgYm9vbCBtX25lZWRzRGF0YWJh
c2VJZGVudGlmaWVyUXVpcmtGb3JGaWxlczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmlu
ZGV4IGU5N2M2NGY3M2RjYjBlMjdhZTQ5NjRkNDc1ZTYyYWI4MjliM2ZjNTQuLmYyNTE1MGI1MTZj
Mzk2NTM1YzM4YmVmY2EzY2IyYTJhNjhmZWVhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
CkBAIC0xMzgsNiArMTM4LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAg
LCBtX3Nlc3Npb25TdG9yYWdlUXVvdGEoU3RvcmFnZU1hcDo6bm9RdW90YSkKICAgICAsIG1fZWRp
dGluZ0JlaGF2aW9yVHlwZShlZGl0aW5nQmVoYXZpb3JUeXBlRm9yUGxhdGZvcm0oKSkKICAgICAs
IG1fbWF4aW11bUhUTUxQYXJzZXJET01UcmVlRGVwdGgoZGVmYXVsdE1heGltdW1IVE1MUGFyc2Vy
RE9NVHJlZURlcHRoKQorICAgICwgbV9zdG9yYWdlQmxvY2tpbmdQb2xpY3koU2VjdXJpdHlPcmln
aW46OkFsbG93QWxsU3RvcmFnZSkKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgICwg
bV90ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcigxKQogI2lmIEhBQ0tfRk9SQ0VfVEVYVF9B
VVRPU0laSU5HX09OX0RFU0tUT1AKQEAgLTI4NCw3ICsyODUsNiBAQCBTZXR0aW5nczo6U2V0dGlu
Z3MoUGFnZSogcGFnZSkKICAgICAsIG1fY29va2llRW5hYmxlZCh0cnVlKQogICAgICwgbV93aW5k
b3dGb2N1c1Jlc3RyaWN0ZWQodHJ1ZSkKICAgICAsIG1fZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVk
KGZhbHNlKQotICAgICwgbV90aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChmYWxzZSkK
ICAgICAsIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChmYWxzZSkKICAgICAs
IG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5VGltZXIodGhpcywgJlNldHRpbmdzOjpsb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHlUaW1lckZpcmVkKQogICAgICwgbV9pbmNyZW1lbnRhbFJlbmRlcmlu
Z1N1cHByZXNzaW9uVGltZW91dEluU2Vjb25kcyhkZWZhdWx0SW5jcmVtZW50YWxSZW5kZXJpbmdT
dXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggZmQ0
ZDlhOTkyYjY5ZWZkY2Y0YTRkYmQ0ZTg1MDU0OWUyNWM3YzRhZC4uNmZhM2JjMDI0YjhiOGMyZjlh
Y2MwZWQwM2QyNjE5ZDQ2NjUzMjk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCiAjaW5jbHVkZSAiRm9u
dFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC02MDEsOCArNjAyLDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldFdpbmRvd0ZvY3VzUmVzdHJpY3RlZChi
b29sIHJlc3RyaWN0ZWQpIHsgbV93aW5kb3dGb2N1c1Jlc3RyaWN0ZWQgPSByZXN0cmljdGVkOyB9
CiAgICAgICAgIGJvb2wgd2luZG93Rm9jdXNSZXN0cmljdGVkKCkgY29uc3QgeyByZXR1cm4gbV93
aW5kb3dGb2N1c1Jlc3RyaWN0ZWQ7IH0KIAotICAgICAgICB2b2lkIHNldFRoaXJkUGFydHlTdG9y
YWdlQmxvY2tpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3RoaXJkUGFydHlTdG9yYWdlQmxv
Y2tpbmdFbmFibGVkID0gZW5hYmxlZDsgfQotICAgICAgICBib29sIHRoaXJkUGFydHlTdG9yYWdl
QmxvY2tpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV90aGlyZFBhcnR5U3RvcmFnZUJsb2Nr
aW5nRW5hYmxlZDsgfQorICAgICAgICB2b2lkIHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1
cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkgeyBtX3N0b3JhZ2VCbG9j
a2luZ1BvbGljeSA9IHBvbGljeTsgfQorICAgICAgICBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJs
b2NraW5nUG9saWN5IHN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rv
cmFnZUJsb2NraW5nUG9saWN5OyB9CiAKICAgICAgICAgdm9pZCBzZXRTY3JvbGxpbmdQZXJmb3Jt
YW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIHNjcm9sbGluZ1BlcmZvcm1h
bmNlTG9nZ2luZ0VuYWJsZWQoKSB7IHJldHVybiBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2lu
Z0VuYWJsZWQ7IH0KQEAgLTY1Miw2ICs2NTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHVuc2lnbmVkIG1fc2Vzc2lvblN0b3JhZ2VRdW90YTsKICAgICAgICAgdW5zaWduZWQgbV9l
ZGl0aW5nQmVoYXZpb3JUeXBlOwogICAgICAgICB1bnNpZ25lZCBtX21heGltdW1IVE1MUGFyc2Vy
RE9NVHJlZURlcHRoOworICAgICAgICBTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9s
aWN5IG1fc3RvcmFnZUJsb2NraW5nUG9saWN5OwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcp
CiAgICAgICAgIGZsb2F0IG1fdGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3I7CiAgICAgICAg
IEludFNpemUgbV90ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZTsKQEAgLTc5NSw4ICs3
OTcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBtX2RpYWdub3N0aWNM
b2dnaW5nRW5hYmxlZCA6IDE7CiAKLSAgICAgICAgYm9vbCBtX3RoaXJkUGFydHlTdG9yYWdlQmxv
Y2tpbmdFbmFibGVkIDogMTsKLQogICAgICAgICBib29sIG1fc2Nyb2xsaW5nUGVyZm9ybWFuY2VM
b2dnaW5nRW5hYmxlZCA6IDE7CiAKICAgICAgICAgVGltZXI8U2V0dGluZ3M+IG1fbG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5VGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcAppbmRleCBjZDY3Mzk4MmMwNjI4YTk1ZDY4YWVjODM2ZjI1NjJjNmYwMmE5MDc3
Li40MDIyZjg3NWZkMGU4MjkxMjY3ZTM2Mzk2NjMzNzdkYzZkOWM1YjcyIDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTYyOCwxMCArNjI4LDE4IEBA
IHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0TWVtb3J5SW5mb0VuYWJsZWQoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBzZXR0aW5ncygpLT5zZXRNZW1vcnlJbmZvRW5hYmxl
ZChlbmFibGVkKTsKIH0KIAotdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRUaGlyZFBhcnR5U3Rv
cmFnZUJsb2NraW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9p
ZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koY29uc3QgU3RyaW5n
JiBtb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRG
b3JTZXR0aW5ncygpOwotICAgIHNldHRpbmdzKCktPnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tp
bmdFbmFibGVkKGVuYWJsZWQpOworCisgICAgaWYgKG1vZGUgPT0gIkFsbG93QWxsIikKKyAgICAg
ICAgc2V0dGluZ3MoKS0+c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpB
bGxvd0FsbFN0b3JhZ2UpOworICAgIGVsc2UgaWYgKG1vZGUgPT0gIkJsb2NrVGhpcmRQYXJ0eSIp
CisgICAgICAgIHNldHRpbmdzKCktPnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1cml0eU9y
aWdpbjo6QmxvY2tUaGlyZFBhcnR5U3RvcmFnZSk7CisgICAgZWxzZSBpZiAobW9kZSA9PSAiQmxv
Y2tBbGwiKQorICAgICAgICBzZXR0aW5ncygpLT5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koU2Vj
dXJpdHlPcmlnaW46OkJsb2NrQWxsU3RvcmFnZSk7CisgICAgZWxzZQorICAgICAgICBlYyA9IFNZ
TlRBWF9FUlI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmgKaW5kZXggY2ZhZTk0ZmJiMmU3ZDNjMjEwNTJiMDllOGM3Yzc3MmQyYzk2ZWIxZC4uODNhYjli
MmQ0YTExYTliNmU4MDhkODdmNDZhOTkwMDMzZjhlZDgwZCAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTE0MSw3ICsxNDEsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRFbmFibGVNb2NrUGFnZVBvcHVwKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBT
dHJpbmcgY29uZmlndXJhdGlvbkZvclZpZXdwb3J0KGZsb2F0IGRldmljZVBpeGVsUmF0aW8sIGlu
dCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWlsYWJsZVdpZHRoLCBpbnQg
YXZhaWxhYmxlSGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRNZW1vcnlJbmZv
RW5hYmxlZChib29sLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRUaGlyZFBhcnR5U3Rv
cmFnZUJsb2NraW5nRW5hYmxlZChib29sLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRT
dG9yYWdlQmxvY2tpbmdQb2xpY3koY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbFNldHRpbmdzKFBhZ2UqKTsKICAgICB2aXJ0dWFs
IHZvaWQgaG9zdERlc3Ryb3llZCgpIE9WRVJSSURFIHsgbV9wYWdlID0gMDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggYjljOGYzZWJmNjNhNGY2
NzA2NzNiOGMyODRlODNiMzY1N2NhN2ZhZi4uNTE3YmFhNjMzZTM3OTc2MzJmZjUxMjY2ZjI4ZTU5
NzNmNGRlYTM5MCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aWRsCkBAIC03OSw3ICs3OSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBib29sZWFuIHNo
b3VsZERpc3BsYXlUcmFja0tpbmQoaW4gRE9NU3RyaW5nIHRyYWNrS2luZCkgcmFpc2VzIChET01F
eGNlcHRpb24pOwogI2VuZGlmCiAgICAgICAgIHZvaWQgc2V0TWVtb3J5SW5mb0VuYWJsZWQoaW4g
Ym9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRU
aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShp
biBET01TdHJpbmcgcG9saWN5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCA1NjljNTE4
NmQ2OTIxMmEwZWFiMjExZTZjZjg0MDlkM2JjODIyZTc1Li42ZWQ2OWMwNTJmYWY2YmIxNzc2M2U5
NGVmOWI1NTViZmEyYmEyYTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJl
bmNlc1N0b3JlLmgKQEAgLTEyNCw3ICsxMjQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICBt
YWNybyhBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5z
LCBhc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zLCBC
b29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXph
dGlvbkRlbGF5RW5hYmxlZCwgYXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFi
bGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKFNjcm9sbGluZ1BlcmZvcm1hbmNl
TG9nZ2luZ0VuYWJsZWQsIHNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQsIEJvb2ws
IGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oVGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJs
ZWQsIHRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkg
XAorICAgIG1hY3JvKFN0b3JhZ2VCbG9ja2luZ1BvbGljeSwgc3RvcmFnZUJsb2NraW5nUG9saWN5
LCBVSW50MzIsIHVpbnQzMl90LCAwKSBcCiAgICAgbWFjcm8oU2Nyb2xsQW5pbWF0b3JFbmFibGVk
LCBzY3JvbGxBbmltYXRvckVuYWJsZWQsIEJvb2wsIGJvb2wsIERFRkFVTFRfV0VCS0lUX1NDUk9M
TF9BTklNQVRPUl9FTkFCTEVEKSBcCiAgICAgXAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggNjZkNGRjZDk4NWFlNDZiYzVjODg3
OGRmMjZlMzc1M2MwODNkNWUzMy4uZGZlNjdjZGY4ZWYxNzBiN2JlYzY2MjIxODBjYWJkNjk4NGQ0
ZmI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmNwcApAQCAtODE3LDE0ICs4MTcsMTQgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0UmVxdWVz
dEFuaW1hdGlvbkZyYW1lRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmUKICAg
ICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+cmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5h
YmxlZCgpOwogfQogCi12b2lkIFdLUHJlZmVyZW5jZXNTZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2Nr
aW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcpCit2
b2lkIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZiwgdWludDMyX3QgcG9saWN5KQogewotICAgIHRvSW1wbChwcmVmZXJl
bmNlc1JlZiktPnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKGZsYWcpOworICAg
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShwb2xpY3kp
OwogfQogCi1ib29sIFdLUHJlZmVyZW5jZXNHZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5h
YmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQordWludDMyX3QgV0tQcmVmZXJl
bmNlc0dldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
UmVmKQogewotICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT50aGlyZFBhcnR5U3Rv
cmFnZUJsb2NraW5nRW5hYmxlZCgpOworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYp
LT5zdG9yYWdlQmxvY2tpbmdQb2xpY3koKTsKIH0KIAogdm9pZCBXS1ByZWZlcmVuY2VzUmVzZXRU
ZXN0UnVubmVyT3ZlcnJpZGVzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuaAppbmRleCA4ODNm
YmZmNjFiNzY5MTljZTIyMTYxNDQyZTcwYzc3NmM4YWNkNzdiLi45ZmNlOGI5ZDdhYWU0MjhkMGUx
ZDM5MWIwNWMyZDM5YjRiMzFmZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzLmgKQEAgLTIwNiw4ICsyMDYsOCBAQCBXS19FWFBPUlQgdm9pZCBX
S1ByZWZlcmVuY2VzU2V0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oV0tQcmVmZXJlbmNl
c1JlZiBwcgogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNob3VsZFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOwogCiAvLyBEZWZh
dWx0cyB0byBmYWxzZQotV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFRoaXJkUGFydHlT
dG9yYWdlQmxvY2tpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgZW5hYmxlZCk7Ci1XS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0VGhpcmRQYXJ0eVN0
b3JhZ2VCbG9ja2luZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CitX
S19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIHVpbnQzMl90IHBvbGljeSk7CitXS19FWFBPUlQg
dWludDMyX3QgV0tQcmVmZXJlbmNlc0dldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjQwYWEwYTNl
MzNhMGYwNDMxMmU1YmZmYmEwNTBkZTFjMzk0ZDBiMS4uNWNkYzg4MTI3MWI4Zjc4ODhkNDJiYWY1
ZDdhNmQyOTc0OGJkNzRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtMjExMyw3ICsyMTEzLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQ
cmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICNlbmRpZgogCiAg
ICAgc2V0dGluZ3MtPnNldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKHN0b3JlLmdldEJv
b2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c2hvdWxkUmVzcGVjdEltYWdlT3JpZW50
YXRpb25LZXkoKSkpOwotICAgIHNldHRpbmdzLT5zZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5n
RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnRoaXJk
UGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkS2V5KCkpKTsKKyAgICBzZXR0aW5ncy0+c2V0U3Rv
cmFnZUJsb2NraW5nUG9saWN5KHN0YXRpY19jYXN0PFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxv
Y2tpbmdQb2xpY3k+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSkpKTsKIAogICAgIHNldHRpbmdzLT5zZXREaWFn
bm9zdGljTG9nZ2luZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVu
Y2VzS2V5OjpkaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWRLZXkoKSkpOwogCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjU0NjVhY2QwODA1YWU0ZTFl
YmFiMWI1YzIyODc2MmE1ZDcwZDRhMi4uY2Y1MWIxYTk0NjQwMjc0MGM2NzIxZGNlNGFjYTZkNzQx
NzQ3ZDhmZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA5LTA2ICBKZWZmcmV5IFBmYXUgIDxqcGZhdUBhcHBs
ZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIHRoaXJkLXBhcnR5IHN0b3JhZ2UgYmxvY2tpbmcgQVBJ
IHRvIG9wdGlvbmFsbHkgYWxsb3cgYmxvY2tpbmcgYWxsIHN0b3JhZ2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1OTE1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW9kaWZpZWQgQVBJIHRlc3QgdG8gdXNl
IG5ldyByZXZpc2VkIEFQSS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAy
MDEyLTA5LTA0ICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtLUFuZHJvaWRdIEluY2x1ZGUgZGV2aWNlIHNlcmlhbCBudW1iZXIgaW4g
Q2hyb21pdW1BbmRyb2lkRHJpdmVyIGxvZyBtZXNzYWdlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IGJkZmE1NWZjYmI4
ZjZlMjkxYzBkYjZjMDljYzk5Y2UwNmVmYmFhMzkuLjA0ZWJkZTQ3N2FiODA2MDMxNjlkMDJhMjU4
MWE1OWI3NWY0MTI2OWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9XS1ByZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvV0tQcmVmZXJlbmNlcy5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBURVNUKFdlYktpdDIs
IFdLUHJlZmVyZW5jZXNEZWZhdWx0cykKICAgICBFWFBFQ1RfRkFMU0UoV0tQcmVmZXJlbmNlc0dl
dENvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUocHJlZmVyZW5jZSkpOwogICAgIEVYUEVDVF9GQUxT
RShXS1ByZWZlcmVuY2VzR2V0Q29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlKHByZWZl
cmVuY2UpKTsKICAgICBFWFBFQ1RfRkFMU0UoV0tQcmVmZXJlbmNlc0dldE5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzKHByZWZlcmVuY2UpKTsKLSAgICBFWFBFQ1RfRkFMU0UoV0tQcmVmZXJlbmNlc0dl
dFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKHByZWZlcmVuY2UpKTsKKyAgICBFWFBF
Q1RfRVEoMHUsIFdLUHJlZmVyZW5jZXNHZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3kocHJlZmVyZW5j
ZSkpOwogCiAgICAgV0tSZWxlYXNlKHByZWZlcmVuY2UpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdjZWYyOTcwNWI3
MzNhMWRhZjc2NGYzYjhkOWU5ZDdlMjdmYzYzOTQuLjQ1MDhiZmM1MWU4YjY5NmFjYmYwMjJlNWE2
NmVlZGUwMzU2NjY1MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0wOS0wNiAgSmVmZnJl
eSBQZmF1ICA8anBmYXVAYXBwbGUuY29tPgorCisgICAgICAgIEV4dGVuZCB0aGlyZC1wYXJ0eSBz
dG9yYWdlIGJsb2NraW5nIEFQSSB0byBvcHRpb25hbGx5IGFsbG93IGJsb2NraW5nIGFsbCBzdG9y
YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTkx
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0
ZSB0ZXN0cyB0byB1c2UgcmV2aXNlZCBBUEkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLW9yaWdpbi1sb2NhbC1zdG9yYWdlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1Z2luLXByaXZhdGUtYnJvd3NpbmctdG9nZ2xlZC5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbi5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXNlc3Npb24t
c3RvcmFnZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2lu
LXNoYXJlZC13b3JrZXIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi13ZWJzcWwuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi13b3JrZXItd2Vic3FsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9yZXNvdXJjZXMvZG9jdW1lbnQtZm9yLWNyb3NzLW9yaWdpbi13b3JrZXItd2Vic3FsLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1kb2N1bWVudC1kb21h
aW4tc3RvcmFnZS1hbGxvd2VkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9z
YW1lLW9yaWdpbi1zaGFyZWQtd29ya2VyLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXNoYXJlZC13b3JrZXItYmxv
Y2tlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3Jp
Z2luLXN0b3JhZ2UtYmxvY2tlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc3RvcmFnZS1ibG9ja2VkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4td2Vic3FsLWJsb2NrZWQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUt
b3JpZ2luLXdlYnNxbC1ibG9ja2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMDktMDQgIFNlcmdleSBHbGF6dW5vdiAg
PHNlcmcuZ2xhenVub3ZAZ21haWwuY29tPgogCiAgICAgICAgIEZyYW1lIGVsZW1lbnQgZG9lc24n
dCBhbHdheXMgdW5sb2FkIGl0cyBjaGlsZCBmcmFtZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWxvY2FsLXN0b3JhZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWxvY2FsLXN0b3JhZ2Uu
aHRtbAppbmRleCAxMTM4NTdlMmNhM2NiOTI3MGZmZGNmYmJhZTMxZTEyMDY1NTdmM2MxLi44ZDZh
NzdlYzZkOTgwMTczYWY3Y2RkZTdkYjhkNzI3M2ViYjEyNzVmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1sb2NhbC1zdG9yYWdlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tbG9jYWwt
c3RvcmFnZS5odG1sCkBAIC01LDEzICs1LDEzIEBAIHZhciBmcmFtZXMgPSAyOwogaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CiAJdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAJdGVzdFJ1bm5lci5k
dW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKLQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0
eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0
b3JhZ2VCbG9ja2luZ1BvbGljeSgnQmxvY2tUaGlyZFBhcnR5Jyk7CiB9CiAKIGZ1bmN0aW9uIGRl
Y3JlbWVudCgpIHsKIAktLWZyYW1lczsKIAlpZiAoIWZyYW1lcyAmJiB3aW5kb3cudGVzdFJ1bm5l
cikKLQkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFi
bGVkKGZhbHNlKTsKKwkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSgnQWxsb3dBbGwnKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1Z2luLXByaXZhdGUtYnJv
d3NpbmctdG9nZ2xlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4tcGx1Z2luLXByaXZhdGUtYnJvd3NpbmctdG9nZ2xlZC5odG1sCmluZGV4IGM5MDY0
MWQyZWExNDMwZGQxMTJkN2JhZTRhMzhhNTNkZTMxZmFmNGYuLjE0NzEyNTFkZjY2NmMzNGQwNjU2
NDgzZTg3NTNjNDcxMzJhOWYzZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbi1wcml2YXRlLWJyb3dzaW5nLXRvZ2dsZWQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1wbHVn
aW4tcHJpdmF0ZS1icm93c2luZy10b2dnbGVkLmh0bWwKQEAgLTcsNyArNyw3IEBAIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewogCXRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CiAJ
dGVzdFJ1bm5lci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOwogCXRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwotCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5U3RvcmFn
ZUJsb2NraW5nRW5hYmxlZCh0cnVlKTsKKwlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJs
b2NraW5nUG9saWN5KCdCbG9ja1RoaXJkUGFydHknKTsKIH0KIAogZnVuY3Rpb24gZGVjcmVtZW50
KCkgewpAQCAtMjYsNyArMjYsNyBAQCBmdW5jdGlvbiBkZWNyZW1lbnQoKSB7CiB3aW5kb3cub25t
ZXNzYWdlID0gZnVuY3Rpb24oKSB7CiAJLS1mcmFtZXM7CiAJaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7Ci0JCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5h
YmxlZChmYWxzZSk7CisJCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xp
Y3koJ0FsbG93QWxsJyk7CiAJCXRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogCX0KIH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdp
bi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1
Z2luLmh0bWwKaW5kZXggYjdhZTQxMmI4MThjMmUxNWFkYjU1MGYzYTBhNDFmOTdhNTMwYWRlZi4u
NjlkNzcxY2UwYmMxZWY4ZGMyZDNiMjY4MmQwYmM2MWQzOTNhZjhiZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1Z2luLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1Z2luLmh0
bWwKQEAgLTUsMTMgKzUsMTMgQEAgdmFyIGZyYW1lcyA9IDI7CiBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKIAl0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAl0ZXN0UnVubmVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOwotCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5U3RvcmFnZUJs
b2NraW5nRW5hYmxlZCh0cnVlKTsKKwlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5KCdCbG9ja1RoaXJkUGFydHknKTsKIH0KIAogZnVuY3Rpb24gZGVjcmVtZW50KCkg
ewogCS0tZnJhbWVzOwogCWlmICghZnJhbWVzICYmIHdpbmRvdy50ZXN0UnVubmVyKQotCQlpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoZmFsc2Up
OworCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdBbGxvd0Fs
bCcpOwogfQogPC9zY3JpcHQ+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXNlc3Npb24tc3RvcmFnZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tc2Vzc2lvbi1zdG9yYWdlLmh0
bWwKaW5kZXggMDFmMTUwNDBiNGQ1OTFmMTE2NjhiZjFjY2YxMDc5ZWM4YWE1ZWRlYy4uNWY5YWZk
MTc0MzgzYzhkYWY1NWE0NTA0MzA2YjJiNzRiNWRiYzExZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tc2Vzc2lvbi1zdG9yYWdlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tc2Vzc2lv
bi1zdG9yYWdlLmh0bWwKQEAgLTUsMTMgKzUsMTMgQEAgdmFyIGZyYW1lcyA9IDI7CiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKIAl0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAl0ZXN0UnVubmVy
LmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwotCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBh
cnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCh0cnVlKTsKKwlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
U3RvcmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja1RoaXJkUGFydHknKTsKIH0KIAogZnVuY3Rpb24g
ZGVjcmVtZW50KCkgewogCS0tZnJhbWVzOwogCWlmICghZnJhbWVzICYmIHdpbmRvdy50ZXN0UnVu
bmVyKQotCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0Vu
YWJsZWQoZmFsc2UpOworCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9s
aWN5KCdBbGxvd0FsbCcpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1zaGFyZWQtd29ya2VyLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1zaGFyZWQt
d29ya2VyLmh0bWwKaW5kZXggNzc4M2UwZGFlNmEzYWVhODU5NDQ0MDNlMTFiNzY0ZjZkZmQ1ZDBm
Yi4uYzBmMDI1MWEzMzlmY2U2NmFhMzQ1MWMwYmFmN2JjODkzNTAwYjZkMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tc2hhcmVkLXdvcmtl
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2lu
LXNoYXJlZC13b3JrZXIuaHRtbApAQCAtNiwxMyArNiwxMyBAQCBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKIAl0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAl0ZXN0UnVubmVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOwogCXRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCWludGVybmFscy5z
ZXR0aW5ncy5zZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCh0cnVlKTsKKwlpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja1RoaXJkUGFydHkn
KTsKIH0KIAogZnVuY3Rpb24gZGVjcmVtZW50KCkgewogCS0tZnJhbWVzOwogCWlmICghZnJhbWVz
ICYmIHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0JCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBh
cnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChmYWxzZSk7CisJCWludGVybmFscy5zZXR0aW5ncy5z
ZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0FsbG93QWxsJyk7CiAJCXRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwogCX0KIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3Mtb3JpZ2luLXdlYnNxbC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLmh0bWwKaW5kZXggZGMwMzlhNjFlMzUzOWY3YWEwOGZm
ZmRiOTE2ODMzZmNlZTcyN2Y2MS4uYjg5NTdiOTFjNjg4YTRmM2NjODY1ODI3NmJmNDAwM2MwMTQ3
NDIwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1v
cmlnaW4td2Vic3FsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1vcmlnaW4td2Vic3FsLmh0bWwKQEAgLTUsMTMgKzUsMTMgQEAgdmFyIGZyYW1lcyA9IDI7
CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIAl0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAl0
ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwotCWludGVybmFscy5zZXR0aW5ncy5z
ZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCh0cnVlKTsKKwlpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja1RoaXJkUGFydHknKTsKIH0KIAog
ZnVuY3Rpb24gZGVjcmVtZW50KCkgewogCS0tZnJhbWVzOwogCWlmICghZnJhbWVzICYmIHdpbmRv
dy50ZXN0UnVubmVyKQotCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0eVN0b3JhZ2VC
bG9ja2luZ0VuYWJsZWQoZmFsc2UpOworCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJs
b2NraW5nUG9saWN5KCdBbGxvd0FsbCcpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXIt
d2Vic3FsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdp
bi13b3JrZXItd2Vic3FsLmh0bWwKaW5kZXggNGViMTdmMDdiYjQxMTJhMzc0MzQ4MGFkZjQwNjQ2
YTljMjIzYWYyNC4uYzZjMWIwMmQyYmE4ODc5NjhmNjQwZGEwNDc4ZjVmY2Y2MDNmZDU0YiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29y
a2VyLXdlYnNxbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3Mtb3JpZ2luLXdvcmtlci13ZWJzcWwuaHRtbApAQCAtOCw3ICs4LDcgQEAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CiAJdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAJdGVzdFJ1bm5lci5z
ZXRDYW5PcGVuV2luZG93cyh0cnVlKTsKIAl0ZXN0UnVubmVyLnNldENsb3NlUmVtYWluaW5nV2lu
ZG93c1doZW5Db21wbGV0ZSh0cnVlKTsKLQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0
eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0
b3JhZ2VCbG9ja2luZ1BvbGljeSgnQmxvY2tUaGlyZFBhcnR5Jyk7CiB9CiAKIGRvY3VtZW50Lmxv
Y2F0aW9uID0gInJlc291cmNlcy9kb2N1bWVudC1mb3ItY3Jvc3Mtb3JpZ2luLXdvcmtlci13ZWJz
cWwuaHRtbCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVz
b3VyY2VzL2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29ya2VyLXdlYnNxbC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvZG9jdW1lbnQtZm9yLWNyb3Nz
LW9yaWdpbi13b3JrZXItd2Vic3FsLmh0bWwKaW5kZXggMmRjMmUzZDRjYTFiNTNhMzM2YzQ4MDVj
MDhkMjAxOWRkZTIxZTBjNS4uMWE4ZjUzNTEyOWM3NWNjMGZlMmJmZWZmODZmMzJlYjUwMzU4NWRj
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMv
ZG9jdW1lbnQtZm9yLWNyb3NzLW9yaWdpbi13b3JrZXItd2Vic3FsLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvZG9jdW1lbnQtZm9yLWNyb3NzLW9y
aWdpbi13b3JrZXItd2Vic3FsLmh0bWwKQEAgLTYsNyArNiw3IEBAIHZhciBmcmFtZXMgPSAyOwog
ZnVuY3Rpb24gZGVjcmVtZW50KGV2ZW50KSB7CiAJLS1mcmFtZXM7CiAJaWYgKCFmcmFtZXMgJiYg
d2luZG93LnRlc3RSdW5uZXIpIHsKLQkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlT
dG9yYWdlQmxvY2tpbmdFbmFibGVkKGZhbHNlKTsKKwkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0
b3JhZ2VCbG9ja2luZ1BvbGljeSgnQWxsb3dBbGwnKTsKIAkJdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiAJfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9z
YW1lLW9yaWdpbi1kb2N1bWVudC1kb21haW4tc3RvcmFnZS1hbGxvd2VkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWRvY3VtZW50LWRvbWFpbi1zdG9y
YWdlLWFsbG93ZWQuaHRtbAppbmRleCAzODZmZWExNzBlNTYwZmNmYjU4NTk1ZDBmN2E3NWU4MDE2
NWFlNjRjLi41YWQ4MzQ5OWU0MGY3MDNiZDAzZDQ5YmY2ZTZiYWVjNjdkZDY2NjgyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWRvY3VtZW50
LWRvbWFpbi1zdG9yYWdlLWFsbG93ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3NhbWUtb3JpZ2luLWRvY3VtZW50LWRvbWFpbi1zdG9yYWdlLWFsbG93ZWQuaHRt
bApAQCAtNSwxMyArNSwxMyBAQCB2YXIgZnJhbWVzID0gMjsKIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCXRlc3RSdW5uZXIuZHVtcENoaWxkRnJh
bWVzQXNUZXh0KCk7Ci0JaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxv
Y2tpbmdFbmFibGVkKHRydWUpOworCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScpOwogfQogCiBmdW5jdGlvbiBkZWNyZW1lbnQoKSB7
CiAJLS1mcmFtZXM7CiAJaWYgKCFmcmFtZXMgJiYgd2luZG93LnRlc3RSdW5uZXIpCi0JCWludGVy
bmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChmYWxzZSk7
CisJCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0FsbG93QWxs
Jyk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc2hhcmVkLXdvcmtlci1ibG9ja2VkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc2hhcmVk
LXdvcmtlci1ibG9ja2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODMwMWFkYWFiOGMyOWY5
NmNlMjQwYjgyNWUzYjVjMTAyOTA0ZDc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zaGFyZWQtd29ya2VyLWJsb2NrZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGhpcyBpZnJhbWUgc2hvdWxkIHJldHVybiBhIHNl
Y3VyaXR5IGVycm9yOgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwh
LS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorU0VDVVJJVFlfRVJSCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXNoYXJlZC13b3JrZXItYmxv
Y2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1z
aGFyZWQtd29ya2VyLWJsb2NrZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNGE0N2UyY2Q3ZmYzMzQ5MzA3
NDliNWU1YjVhM2M3NTBlMzBkNTU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zaGFyZWQtd29ya2VyLWJsb2NrZWQuaHRtbApA
QCAtMCwwICsxLDIyIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3ZhciBmcmFtZXMgPSAx
OworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisJdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisJ
dGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKwlpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja0FsbCcpOworfQorCitmdW5jdGlvbiBkZWNy
ZW1lbnQoKSB7CisJLS1mcmFtZXM7CisJaWYgKCFmcmFtZXMgJiYgd2luZG93LnRlc3RSdW5uZXIp
CisJCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0FsbG93QWxs
Jyk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyBpZnJhbWUgc2hvdWxk
IHJldHVybiBhIHNlY3VyaXR5IGVycm9yOjwvcD4KKzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLXNoYXJl
ZC13b3JrZXIuaHRtbCIgb25sb2FkPSJkZWNyZW1lbnQoKSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUt
b3JpZ2luLXN0b3JhZ2UtYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXN0b3JhZ2UtYmxvY2tlZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWUyOWYzY2Q2NzQwZTVhOWZkMDg1ODQ4N2FlMzQzMGVmZjQ0NTg3OAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4t
c3RvcmFnZS1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUaGlzIGlmcmFt
ZSBzaG91bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJyb3I6CisKKworVGhpcyBpZnJhbWUgc2hvdWxk
IHJldHVybiBhIHNlY3VyaXR5IGVycm9yOgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZy
YW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorU0VDVVJJVFlfRVJSCisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+JworLS0tLS0t
LS0KK1NFQ1VSSVRZX0VSUgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9zYW1lLW9yaWdpbi1zdG9yYWdlLWJsb2NrZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc3RvcmFnZS1ibG9ja2VkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTQyYTlhMTU1ZDU5NmQ0ZjZmMGI4MzAwMTc1YzQzNGY1ZGMwNzJlMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc3RvcmFn
ZS1ibG9ja2VkLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+
Cit2YXIgZnJhbWVzID0gMjsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworCXRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworCXRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisJaW50
ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgnQmxvY2tBbGwnKTsKK30K
KworZnVuY3Rpb24gZGVjcmVtZW50KCkgeworCS0tZnJhbWVzOworCWlmICghZnJhbWVzICYmIHdp
bmRvdy50ZXN0UnVubmVyKQorCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5n
UG9saWN5KCdBbGxvd0FsbCcpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgaWZyYW1lIHNob3VsZCByZXR1cm4gYSBzZWN1cml0eSBlcnJvcjo8L3A+Cis8aWZyYW1lIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4t
aWZyYW1lLWZvci1sb2NhbC1zdG9yYWdlLmh0bWwiIG9ubG9hZD0iZGVjcmVtZW50KCkiPjwvaWZy
YW1lPgorPHA+VGhpcyBpZnJhbWUgc2hvdWxkIHJldHVybiBhIHNlY3VyaXR5IGVycm9yOjwvcD4K
KzxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Ny
b3NzLW9yaWdpbi1pZnJhbWUtZm9yLXNlc3Npb24tc3RvcmFnZS5odG1sIiBvbmxvYWQ9ImRlY3Jl
bWVudCgpIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4td2Vic3FsLWJsb2NrZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi13ZWJz
cWwtYmxvY2tlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgzMDFhZGFhYjhjMjlmOTZjZTI0
MGI4MjVlM2I1YzEwMjkwNGQ3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4td2Vic3FsLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOCBAQAorVGhpcyBpZnJhbWUgc2hvdWxkIHJldHVybiBhIHNlY3VyaXR5IGVycm9y
OgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4t
LT4nCistLS0tLS0tLQorU0VDVVJJVFlfRVJSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXdlYnNxbC1ibG9ja2VkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXdlYnNxbC1ibG9ja2VkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTQ5MDg1ZDI3MWY2YjI4MmY1M2U5MmExNGU5ZGZhMTlmMWMwYTI5MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmln
aW4td2Vic3FsLWJsb2NrZWQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdD4KK3ZhciBmcmFtZXMgPSAxOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisJdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisJdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQo
KTsKKwlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja0Fs
bCcpOworfQorCitmdW5jdGlvbiBkZWNyZW1lbnQoKSB7CisJLS1mcmFtZXM7CisJaWYgKCFmcmFt
ZXMgJiYgd2luZG93LnRlc3RSdW5uZXIpCisJCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koJ0FsbG93QWxsJyk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyBpZnJhbWUgc2hvdWxkIHJldHVybiBhIHNlY3VyaXR5IGVycm9yOjwvcD4KKzxp
ZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3Nz
LW9yaWdpbi1pZnJhbWUtZm9yLXdlYnNxbC5odG1sIiBvbmxvYWQ9ImRlY3JlbWVudCgpIj48L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDEwOGJmMjBlMTliNGUzMzFmOTEyZDUyMzc3YWQxOTI1
ODY4MzExM2IuLjQ2YTAxMDlkY2VmODQzMTA5NDNmMWM4MWUzYjMzZmI5YmQ0Zjk5ODAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTQw
LDYgKzU0MCw3IEBAIFdPTlRGSVggU0tJUCA6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3NoYXJlZC13b3JrZXItY29ubmVjdC1zCiBXT05URklYIFNLSVAgOiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zaGFyZWQtd29ya2VyLWNvbm5l
Y3Qtc3JjLWJsb2NrZWQuaHRtbCA9IFRFWFQKIFdPTlRGSVggU0tJUCA6IGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLXNoYXJlZC13b3JrZXIuaHRtbCA9IFRFWFQKIFdPTlRGSVggU0tJ
UCA6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXNoYXJlZC13b3JrZXItYWxsb3dl
ZC5odG1sID0gVEVYVAorV09OVEZJWCBTS0lQIDogaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9y
aWdpbi1zaGFyZWQtd29ya2VyLWJsb2NrZWQuaHRtbCA9IFRFWFQKIFdPTlRGSVggU0tJUCA6IHN0
b3JhZ2UvaW5kZXhlZGRiL2Jhc2ljcy1zaGFyZWQtd29ya2Vycy5odG1sID0gUEFTUwogCiAvLyB0
ZXN0X3NoZWxsIGRvZXMgbm90IHN1cHBvcnQgbWVzc2FnZSBwb3J0cwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162636</attachid>
            <date>2012-09-06 18:12:47 -0700</date>
            <delta_ts>2012-09-07 12:19:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95915-20120906181301.patch</filename>
            <type>text/plain</type>
            <size>35772</size>
            <attacher name="Vicki Pfau">jeffrey+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFkNmM4M2E0Y2Y0Yzgz
MTAxOGVmMmFhNzkzNGQzNjE5M2QxZWI1Ny4uZmZjNzAwODQ4MzM1NWMwODg1YThiNmMxYzE3YTRj
YWVlNTZhMjNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA5LTA2ICBKZWZm
cmV5IFBmYXUgIDxqcGZhdUBhcHBsZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIHRoaXJkLXBhcnR5
IHN0b3JhZ2UgYmxvY2tpbmcgQVBJIHRvIG9wdGlvbmFsbHkgYWxsb3cgYmxvY2tpbmcgYWxsIHN0
b3JhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1
OTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVw
bGFjZSBib29sZWFuIEFQSSB3aXRoIHRyaS1zdGF0ZSBBUEkgdGhhdCBhbGxvd3MgZm9yIGJsb2Nr
aW5nIG5vLCB0aGlyZC1wYXJ0eSwgb3IgYWxsIHN0b3JhZ2UuCisKKyAgICAgICAgVGVzdHM6IGh0
dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc2hhcmVkLXdvcmtlci1ibG9ja2VkLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc3RvcmFnZS1i
bG9ja2VkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmln
aW4td2Vic3FsLWJsb2NrZWQuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojppbml0U2VjdXJpdHlDb250ZXh0KToKKyAgICAgICAg
KiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
Y2FuQWNjZXNzU3RvcmFnZSk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSk6
CisgICAgICAgIChTZWN1cml0eU9yaWdpbik6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSk6CisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6
CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsOgorCiAyMDEyLTA5LTA0ICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IHJlbW92ZSBmaW5hbCBjcmVhdGVJbmRleCBi
YWNrZW5kIGdsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ZTBiOWI3YmYyN2FmMDU3NmVlNzQ5Zjk2ODZiNjMy
MDQ5ZDljYTU4Li45YWZlODE3YzlmYzg1NDhmNzcwZjM2YzhiZjk0YWE2OTU1YjFjMTllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDktMDYgIEplZmZyZXkgUGZhdSAgPGpwZmF1
QGFwcGxlLmNvbT4KKworICAgICAgICBFeHRlbmQgdGhpcmQtcGFydHkgc3RvcmFnZSBibG9ja2lu
ZyBBUEkgdG8gb3B0aW9uYWxseSBhbGxvdyBibG9ja2luZyBhbGwgc3RvcmFnZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5MTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgV0syIEFQSSB0byB1
c2UgcmV2aXNlZCBTZXR0aW5ncyBBUEkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5j
ZXNTdG9yZS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvU3RvcmFnZUJsb2NraW5nUG9saWN5KToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2Vz
U2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRTdG9y
YWdlQmxvY2tpbmdQb2xpY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMTItMDktMDMgIFNh
bSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBQYXJ0IDEgb2YgcmVtb3Zpbmcg
UGxhdGZvcm1TdHJpbmcuaCwgbW92ZSByZW1haW5pbmcgZnVuY3Rpb25zIHRvIG5ldyBob21lcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDQ2NTc1MTM3MTRkODJjYjlhMjlhOTA1OWYzMDUw
NjVmNDk1ZDc1Zi4uMTcwOTRiMzllOWEwYjQ2OWIwNTNiZmI5MGI5ZTQ2ODU3NDUzNmEwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01MDQzLDggKzUwNDMsNyBAQCB2b2lkIERvY3VtZW50
Ojppbml0U2VjdXJpdHlDb250ZXh0KCkKICAgICAgICAgICAgICAgICBzZWN1cml0eU9yaWdpbigp
LT5lbmZvcmNlRmlsZVBhdGhTZXBhcmF0aW9uKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKHNldHRpbmdzLT50aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCgp
KQotICAgICAgICAgICAgc2VjdXJpdHlPcmlnaW4oKS0+YmxvY2tUaGlyZFBhcnR5U3RvcmFnZSgp
OworICAgICAgICBzZWN1cml0eU9yaWdpbigpLT5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koc2V0
dGluZ3MtPnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKTsKICAgICB9CiAKICAgICBEb2N1bWVudCog
cGFyZW50RG9jdW1lbnQgPSBvd25lckVsZW1lbnQoKSA/IG93bmVyRWxlbWVudCgpLT5kb2N1bWVu
dCgpIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggNjkzNDcx
Nzc1YjAzODI5NzBmMmVhZjlhOGU1YmQ2MDlkOTA1MGVkMS4uMjdhMTc0MDNiYjliYzQ4N2JkMmIz
YTI3ODI0YWNhYmZlYmJjYmNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5j
cHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oY29u
c3QgS1VSTCYgdXJsKQogICAgICwgbV9pc1VuaXF1ZShmYWxzZSkKICAgICAsIG1fdW5pdmVyc2Fs
QWNjZXNzKGZhbHNlKQogICAgICwgbV9kb21haW5XYXNTZXRJbkRPTShmYWxzZSkKLSAgICAsIG1f
YmxvY2tUaGlyZFBhcnR5U3RvcmFnZShmYWxzZSkKKyAgICAsIG1fc3RvcmFnZUJsb2NraW5nUG9s
aWN5KEFsbG93QWxsU3RvcmFnZSkKICAgICAsIG1fZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbihm
YWxzZSkKICAgICAsIG1fbmVlZHNEYXRhYmFzZUlkZW50aWZpZXJRdWlya0ZvckZpbGVzKGZhbHNl
KQogewpAQCAtMTQ4LDcgKzE0OCw3IEBAIFNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbigp
CiAgICAgLCBtX3VuaXZlcnNhbEFjY2VzcyhmYWxzZSkKICAgICAsIG1fZG9tYWluV2FzU2V0SW5E
T00oZmFsc2UpCiAgICAgLCBtX2NhbkxvYWRMb2NhbFJlc291cmNlcyhmYWxzZSkKLSAgICAsIG1f
YmxvY2tUaGlyZFBhcnR5U3RvcmFnZShmYWxzZSkKKyAgICAsIG1fc3RvcmFnZUJsb2NraW5nUG9s
aWN5KEFsbG93QWxsU3RvcmFnZSkKICAgICAsIG1fZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbihm
YWxzZSkKICAgICAsIG1fbmVlZHNEYXRhYmFzZUlkZW50aWZpZXJRdWlya0ZvckZpbGVzKGZhbHNl
KQogewpAQCAtMTY1LDcgKzE2NSw3IEBAIFNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbihj
b25zdCBTZWN1cml0eU9yaWdpbiogb3RoZXIpCiAgICAgLCBtX3VuaXZlcnNhbEFjY2VzcyhvdGhl
ci0+bV91bml2ZXJzYWxBY2Nlc3MpCiAgICAgLCBtX2RvbWFpbldhc1NldEluRE9NKG90aGVyLT5t
X2RvbWFpbldhc1NldEluRE9NKQogICAgICwgbV9jYW5Mb2FkTG9jYWxSZXNvdXJjZXMob3RoZXIt
Pm1fY2FuTG9hZExvY2FsUmVzb3VyY2VzKQotICAgICwgbV9ibG9ja1RoaXJkUGFydHlTdG9yYWdl
KG90aGVyLT5tX2Jsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UpCisgICAgLCBtX3N0b3JhZ2VCbG9ja2lu
Z1BvbGljeShvdGhlci0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kpCiAgICAgLCBtX2VuZm9yY2VG
aWxlUGF0aFNlcGFyYXRpb24ob3RoZXItPm1fZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbikKICAg
ICAsIG1fbmVlZHNEYXRhYmFzZUlkZW50aWZpZXJRdWlya0ZvckZpbGVzKG90aGVyLT5tX25lZWRz
RGF0YWJhc2VJZGVudGlmaWVyUXVpcmtGb3JGaWxlcykKIHsKQEAgLTM4OSw3ICszODksMTAgQEAg
Ym9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3RvcmFnZShjb25zdCBTZWN1cml0eU9yaWdp
biogdG9wT3JpZ2luKSBjb25zdAogICAgIGlmICghdG9wT3JpZ2luKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAotICAgIGlmICgobV9ibG9ja1RoaXJkUGFydHlTdG9yYWdlIHx8IHRvcE9yaWdpbi0+
bV9ibG9ja1RoaXJkUGFydHlTdG9yYWdlKSAmJiB0b3BPcmlnaW4tPmlzVGhpcmRQYXJ0eSh0aGlz
KSkKKyAgICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tBbGxTdG9yYWdlIHx8
IHRvcE9yaWdpbi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tBbGxTdG9yYWdlKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5
ID09IEJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UgfHwgdG9wT3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2lu
Z1BvbGljeSA9PSBCbG9ja1RoaXJkUGFydHlTdG9yYWdlKSAmJiB0b3BPcmlnaW4tPmlzVGhpcmRQ
YXJ0eSh0aGlzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKaW5kZXggNTlmMGM0MDE4Mjg0ZGI5NDg2MDcy
Zjc3Y2FmNWNlYzJmMWFiNGUwMC4uZDdiMmFlZGFhZmYzMWYzNmUwODkxZjY1NmI1YmJjNDEwNjk1
ZDRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaApAQCAtNDUsNiArNDUsMTIg
QEAgcHVibGljOgogICAgICAgICBBc2sKICAgICB9OwogCisgICAgZW51bSBTdG9yYWdlQmxvY2tp
bmdQb2xpY3kgeworICAgICAgICBBbGxvd0FsbFN0b3JhZ2UgPSAwLAorICAgICAgICBCbG9ja0Fs
bFN0b3JhZ2UsCisgICAgICAgIEJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UKKyAgICB9OworCiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZShjb25zdCBLVVJMJik7CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZVVuaXF1ZSgpOwogCkBA
IC0xMzQsNyArMTQwLDcgQEAgcHVibGljOgogICAgIC8vIFdBUk5JTkc6IFRoaXMgaXMgYW4gZXh0
cmVtZWx5IHBvd2VyZnVsIGFiaWxpdHkuIFVzZSB3aXRoIGNhdXRpb24hCiAgICAgdm9pZCBncmFu
dFVuaXZlcnNhbEFjY2VzcygpOwogCi0gICAgdm9pZCBibG9ja1RoaXJkUGFydHlTdG9yYWdlKCkg
eyBtX2Jsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koU3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkgeyBtX3N0b3JhZ2VC
bG9ja2luZ1BvbGljeSA9IHBvbGljeTsgfQogCiAgICAgYm9vbCBjYW5BY2Nlc3NEYXRhYmFzZShj
b25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luID0gMCkgY29uc3QgeyByZXR1cm4gY2FuQWNj
ZXNzU3RvcmFnZSh0b3BPcmlnaW4pOyB9OwogICAgIGJvb2wgY2FuQWNjZXNzTG9jYWxTdG9yYWdl
KGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pIGNvbnN0IHsgcmV0dXJuIGNhbkFjY2Vz
c1N0b3JhZ2UodG9wT3JpZ2luKTsgfTsKQEAgLTIxOSw3ICsyMjUsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV91bml2ZXJzYWxBY2Nlc3M7CiAgICAgYm9vbCBtX2RvbWFpbldhc1NldEluRE9NOwog
ICAgIGJvb2wgbV9jYW5Mb2FkTG9jYWxSZXNvdXJjZXM7Ci0gICAgYm9vbCBtX2Jsb2NrVGhpcmRQ
YXJ0eVN0b3JhZ2U7CisgICAgU3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5n
UG9saWN5OwogICAgIGJvb2wgbV9lbmZvcmNlRmlsZVBhdGhTZXBhcmF0aW9uOwogICAgIGJvb2wg
bV9uZWVkc0RhdGFiYXNlSWRlbnRpZmllclF1aXJrRm9yRmlsZXM7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcAppbmRleCBlOTdjNjRmNzNkY2IwZTI3YWU0OTY0ZDQ3NWU2MmFiODI5YjNmYzU0
Li5mMjUxNTBiNTE2YzM5NjUzNWMzOGJlZmNhM2NiMmEyYTY4ZmVlYTBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmNwcApAQCAtMTM4LDYgKzEzOCw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdl
KiBwYWdlKQogICAgICwgbV9zZXNzaW9uU3RvcmFnZVF1b3RhKFN0b3JhZ2VNYXA6Om5vUXVvdGEp
CiAgICAgLCBtX2VkaXRpbmdCZWhhdmlvclR5cGUoZWRpdGluZ0JlaGF2aW9yVHlwZUZvclBsYXRm
b3JtKCkpCiAgICAgLCBtX21heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoKGRlZmF1bHRNYXhp
bXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCkKKyAgICAsIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5
KFNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2UpCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJ
WklORykKICAgICAsIG1fdGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoMSkKICNpZiBIQUNL
X0ZPUkNFX1RFWFRfQVVUT1NJWklOR19PTl9ERVNLVE9QCkBAIC0yODQsNyArMjg1LDYgQEAgU2V0
dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2Nvb2tpZUVuYWJsZWQodHJ1ZSkK
ICAgICAsIG1fd2luZG93Rm9jdXNSZXN0cmljdGVkKHRydWUpCiAgICAgLCBtX2RpYWdub3N0aWNM
b2dnaW5nRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fdGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0Vu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQo
ZmFsc2UpCiAgICAgLCBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyKHRoaXMsICZTZXR0
aW5nczo6bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5VGltZXJGaXJlZCkKICAgICAsIG1faW5jcmVt
ZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMoZGVmYXVsdEluY3JlbWVu
dGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oCmluZGV4IGZkNGQ5YTk5MmI2OWVmZGNmNGE0ZGJkNGU4NTA1NDllMjVjN2M0YWQuLjZmYTNi
YzAyNGI4YjhjMmY5YWNjMGVkMDNkMjYxOWQ0NjY1MzI5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgog
I2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtNjAxLDgg
KzYwMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRXaW5kb3dGb2N1
c1Jlc3RyaWN0ZWQoYm9vbCByZXN0cmljdGVkKSB7IG1fd2luZG93Rm9jdXNSZXN0cmljdGVkID0g
cmVzdHJpY3RlZDsgfQogICAgICAgICBib29sIHdpbmRvd0ZvY3VzUmVzdHJpY3RlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fd2luZG93Rm9jdXNSZXN0cmljdGVkOyB9CiAKLSAgICAgICAgdm9pZCBzZXRU
aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV90aGlyZFBh
cnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCB0aGly
ZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhpcmRQYXJ0
eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQ7IH0KKyAgICAgICAgdm9pZCBzZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3koU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpIHsg
bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPSBwb2xpY3k7IH0KKyAgICAgICAgU2VjdXJpdHlPcmln
aW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tpbmdQb2xpY3koKSBjb25zdCB7
IHJldHVybiBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsgfQogCiAgICAgICAgIHZvaWQgc2V0U2Ny
b2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBzY3Jv
bGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKCkgeyByZXR1cm4gbV9zY3JvbGxpbmdQZXJm
b3JtYW5jZUxvZ2dpbmdFbmFibGVkOyB9CkBAIC02NTIsNiArNjUzLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB1bnNpZ25lZCBtX3Nlc3Npb25TdG9yYWdlUXVvdGE7CiAgICAgICAg
IHVuc2lnbmVkIG1fZWRpdGluZ0JlaGF2aW9yVHlwZTsKICAgICAgICAgdW5zaWduZWQgbV9tYXhp
bXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aDsKKyAgICAgICAgU2VjdXJpdHlPcmlnaW46OlN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsKICNpZiBFTkFCTEUoVEVY
VF9BVVRPU0laSU5HKQogICAgICAgICBmbG9hdCBtX3RleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFj
dG9yOwogICAgICAgICBJbnRTaXplIG1fdGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGU7
CkBAIC03OTUsOCArNzk3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wg
bV9kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQgOiAxOwogCi0gICAgICAgIGJvb2wgbV90aGlyZFBh
cnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCA6IDE7Ci0KICAgICAgICAgYm9vbCBtX3Njcm9sbGlu
Z1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQgOiAxOwogCiAgICAgICAgIFRpbWVyPFNldHRpbmdz
PiBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggY2Q2NzM5ODJjMDYyOGE5NWQ2OGFlYzgzNmYy
NTYyYzZmMDJhOTA3Ny4uNDAyMmY4NzVmZDBlODI5MTI2N2UzNjM5NjYzMzc3ZGM2ZDljNWI3MiAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC02Mjgs
MTAgKzYyOCwxOCBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldE1lbW9yeUluZm9FbmFibGVk
KGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgc2V0dGluZ3MoKS0+c2V0TWVt
b3J5SW5mb0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKLXZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0
VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJiBlYykKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5
KGNvbnN0IFN0cmluZyYgbW9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSW50ZXJuYWxT
ZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKLSAgICBzZXR0aW5ncygpLT5zZXRUaGlyZFBhcnR5
U3RvcmFnZUJsb2NraW5nRW5hYmxlZChlbmFibGVkKTsKKworICAgIGlmIChtb2RlID09ICJBbGxv
d0FsbCIpCisgICAgICAgIHNldHRpbmdzKCktPnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1
cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlKTsKKyAgICBlbHNlIGlmIChtb2RlID09ICJCbG9j
a1RoaXJkUGFydHkiKQorICAgICAgICBzZXR0aW5ncygpLT5zZXRTdG9yYWdlQmxvY2tpbmdQb2xp
Y3koU2VjdXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UpOworICAgIGVsc2UgaWYg
KG1vZGUgPT0gIkJsb2NrQWxsIikKKyAgICAgICAgc2V0dGluZ3MoKS0+c2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2UpOworICAgIGVsc2UKKyAg
ICAgICAgZWMgPSBTWU5UQVhfRVJSOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGNmYWU5NGZiYjJlN2QzYzIxMDUyYjA5ZThjN2M3NzJkMmM5
NmViMWQuLjgzYWI5YjJkNGExMWE5YjZlODA4ZDg3ZjQ2YTk5MDAzM2Y4ZWQ4MGQgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xNDEsNyArMTQxLDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0RW5hYmxlTW9ja1BhZ2VQb3B1cChib29sLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgU3RyaW5nIGNvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChmbG9hdCBkZXZpY2VQ
aXhlbFJhdGlvLCBpbnQgZGV2aWNlV2lkdGgsIGludCBkZXZpY2VIZWlnaHQsIGludCBhdmFpbGFi
bGVXaWR0aCwgaW50IGF2YWlsYWJsZUhlaWdodCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQg
c2V0TWVtb3J5SW5mb0VuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0
VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHZvaWQgc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKTsKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxTZXR0aW5ncyhQYWdlKik7
CiAgICAgdmlydHVhbCB2b2lkIGhvc3REZXN0cm95ZWQoKSBPVkVSUklERSB7IG1fcGFnZSA9IDA7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IGI5
YzhmM2ViZjYzYTRmNjcwNjczYjhjMjg0ZTgzYjM2NTdjYTdmYWYuLjUxN2JhYTYzM2UzNzk3NjMy
ZmY1MTI2NmYyOGU1OTczZjRkZWEzOTAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbApAQCAtNzksNyArNzksNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgYm9vbGVhbiBzaG91bGREaXNwbGF5VHJhY2tLaW5kKGluIERPTVN0cmluZyB0cmFja0tpbmQp
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAgICAgICB2b2lkIHNldE1lbW9yeUlu
Zm9FbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIHZvaWQgc2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoaW4gYm9vbGVhbiBl
bmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRTdG9yYWdlQmxv
Y2tpbmdQb2xpY3koaW4gRE9NU3RyaW5nIHBvbGljeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgK
aW5kZXggNTY5YzUxODZkNjkyMTJhMGVhYjIxMWU2Y2Y4NDA5ZDNiYzgyMmU3NS4uNmVkNjljMDUy
ZmFmNmJiMTc3NjNlOTRlZjliNTU1YmZhMmJhMmE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCkBAIC0xMjQsNyArMTI0LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAgICAgbWFjcm8oQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVk
Rm9yQWxsUGx1Z2lucywgYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9y
QWxsUGx1Z2lucywgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhBcnRpZmljaWFsUGx1
Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQsIGFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXph
dGlvbkRlbGF5RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhTY3JvbGxp
bmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkLCBzY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdF
bmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFRoaXJkUGFydHlTdG9yYWdl
QmxvY2tpbmdFbmFibGVkLCB0aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhTdG9yYWdlQmxvY2tpbmdQb2xpY3ksIHN0b3JhZ2VC
bG9ja2luZ1BvbGljeSwgVUludDMyLCB1aW50MzJfdCwgMCkgXAogICAgIG1hY3JvKFNjcm9sbEFu
aW1hdG9yRW5hYmxlZCwgc2Nyb2xsQW5pbWF0b3JFbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxU
X1dFQktJVF9TQ1JPTExfQU5JTUFUT1JfRU5BQkxFRCkgXAogICAgIFwKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IGMxMWY3NDBlNWE4OWY4YjBjZDc4
OGQzZmNkNTAzZWJmZGFmNGUyYTYuLmQwZDdiMzJmY2VkZWMxYWMxYzVkNmQ4N2I0ZjllMDJmYjNi
MzRmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAg
LTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJXS0Nvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlICJX
S0NyZWRlbnRpYWxUeXBlcy5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgorI2luY2x1ZGUgIldLUHJl
ZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIgogI2luY2x1ZGUg
IldLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCIKICNpbmNsdWRlICJXS1Jlc291cmNlQ2FjaGVNYW5h
Z2VyLmgiCkBAIC0zODUsNiArMzg2LDM2IEBAIGlubGluZSBXS0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kgdG9BUEkoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiAgICAgcmV0dXJuIGtXS0hU
VFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7CiB9CiAKK2lubGluZSBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KFdL
U3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBzd2l0Y2ggKHBvbGljeSkgewor
ICAgIGNhc2Uga1dLQWxsb3dBbGxTdG9yYWdlOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZTsKKyAgICBjYXNlIGtXS0Jsb2NrVGhpcmRQYXJ0
eVN0b3JhZ2U6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tU
aGlyZFBhcnR5U3RvcmFnZTsKKyAgICBjYXNlIGtXS0Jsb2NrQWxsU3RvcmFnZToKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2U7CisgICAgfQor
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U7Cit9CisKK2lubGluZSBXS1N0b3JhZ2VCbG9ja2luZ1Bv
bGljeSB0b0FQSShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5
IHBvbGljeSkKK3sKKyAgICBzd2l0Y2ggKHBvbGljeSkgeworICAgIGNhc2UgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZToKKyAgICAgICAgcmV0dXJuIGtXS0FsbG93QWxs
U3RvcmFnZTsKKyAgICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFy
dHlTdG9yYWdlOgorICAgICAgICByZXR1cm4ga1dLQmxvY2tUaGlyZFBhcnR5U3RvcmFnZTsKKyAg
ICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2U6CisgICAgICAg
IHJldHVybiBrV0tCbG9ja0FsbFN0b3JhZ2U7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIGtXS0FsbG93QWxsU3RvcmFnZTsKK30KKwogaW5saW5lIFByb3h5
aW5nUmVmUHRyPFdlYkdyYW1tYXJEZXRhaWw+IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJE
ZXRhaWwmIGdyYW1tYXJEZXRhaWwpCiB7CiAgICAgcmV0dXJuIFByb3h5aW5nUmVmUHRyPFdlYkdy
YW1tYXJEZXRhaWw+KFdlYkdyYW1tYXJEZXRhaWw6OmNyZWF0ZShncmFtbWFyRGV0YWlsKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5k
ZXggNjZkNGRjZDk4NWFlNDZiYzVjODg3OGRmMjZlMzc1M2MwODNkNWUzMy4uMTc4ZTIxNDcxODdh
MGU3NWViZmJjN2VlZGY3NWZkY2ViOTBmZmYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtODE3LDE0ICs4MTcsMTQgQEAgYm9v
bCBXS1ByZWZlcmVuY2VzR2V0UmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZChXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzUmUKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
cmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCgpOwogfQogCi12b2lkIFdLUHJlZmVyZW5jZXNT
ZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmLCBib29sIGZsYWcpCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3koV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tTdG9yYWdlQmxvY2tp
bmdQb2xpY3kgcG9saWN5KQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFRoaXJk
UGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKGZsYWcpOworICAgIHRvSW1wbChwcmVmZXJlbmNl
c1JlZiktPnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSh0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShw
b2xpY3kpKTsKIH0KIAotYm9vbCBXS1ByZWZlcmVuY2VzR2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9j
a2luZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK1dLU3RvcmFnZUJs
b2NraW5nUG9saWN5IFdLUHJlZmVyZW5jZXNHZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVu
Y2VzUmVmKS0+dGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoKTsKKyAgICByZXR1cm4g
dG9BUEkoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeT4odG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c3RvcmFnZUJsb2NraW5nUG9saWN5KCkp
KTsKIH0KIAogdm9pZCBXS1ByZWZlcmVuY2VzUmVzZXRUZXN0UnVubmVyT3ZlcnJpZGVzKFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuaAppbmRleCA4ODNmYmZmNjFiNzY5MTljZTIyMTYxNDQyZTcw
Yzc3NmM4YWNkNzdiLi41ZjMyNDU0OTRiMDllNDZlM2E5MDgyOWUzZTc1NTBhMDhmYWU2ODk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgKQEAg
LTM2LDYgKzM2LDEzIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCitlbnVtIFdLU3RvcmFnZUJs
b2NraW5nUG9saWN5IHsKKyAgICBrV0tBbGxvd0FsbFN0b3JhZ2UgPSAwLAorICAgIGtXS0Jsb2Nr
QWxsU3RvcmFnZSwKKyAgICBrV0tCbG9ja1RoaXJkUGFydHlTdG9yYWdlCit9OwordHlwZWRlZiBl
bnVtIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5IFdLU3RvcmFnZUJsb2NraW5nUG9saWN5OworCiBX
S19FWFBPUlQgV0tUeXBlSUQgV0tQcmVmZXJlbmNlc0dldFR5cGVJRCgpOwogCiBXS19FWFBPUlQg
V0tQcmVmZXJlbmNlc1JlZiBXS1ByZWZlcmVuY2VzQ3JlYXRlKCk7CkBAIC0yMDYsOCArMjEzLDgg
QEAgV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKFdLUHJlZmVyZW5jZXNSZWYgcHIKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNH
ZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbihXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmKTsKIAogLy8gRGVmYXVsdHMgdG8gZmFsc2UKLVdLX0VYUE9SVCB2b2lkIFdLUHJlZmVy
ZW5jZXNTZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpOwotV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJl
bmNlc0dldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBXS1N0b3JhZ2VC
bG9ja2luZ1BvbGljeSBwb2xpY3kpOworV0tfRVhQT1JUIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5
IFdLUHJlZmVyZW5jZXNHZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGY0MGFhMGEzZTMzYTBmMDQz
MTJlNWJmZmJhMDUwZGUxYzM5NGQwYjEuLjVjZGM4ODEyNzFiOGY3ODg4ZDQyYmFmNWQ3YTZkMjk3
NDhiZDc0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTIxMTMsNyArMjExMyw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5j
ZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAjZW5kaWYKIAogICAgIHNldHRp
bmdzLT5zZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbihzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uS2V5
KCkpKTsKLSAgICBzZXR0aW5ncy0+c2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQo
c3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp0aGlyZFBhcnR5U3Rv
cmFnZUJsb2NraW5nRW5hYmxlZEtleSgpKSk7CisgICAgc2V0dGluZ3MtPnNldFN0b3JhZ2VCbG9j
a2luZ1BvbGljeShzdGF0aWNfY2FzdDxTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9s
aWN5PihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFn
ZUJsb2NraW5nUG9saWN5S2V5KCkpKSk7CiAKICAgICBzZXR0aW5ncy0+c2V0RGlhZ25vc3RpY0xv
Z2dpbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
ZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkS2V5KCkpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI1NDY1YWNkMDgwNWFlNGUxZWJhYjFiNWMy
Mjg3NjJhNWQ3MGQ0YTIuLmNmNTFiMWE5NDY0MDI3NDBjNjcyMWRjZTRhY2E2ZDc0MTc0N2Q4ZmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMi0wOS0wNiAgSmVmZnJleSBQZmF1ICA8anBmYXVAYXBwbGUuY29tPgor
CisgICAgICAgIEV4dGVuZCB0aGlyZC1wYXJ0eSBzdG9yYWdlIGJsb2NraW5nIEFQSSB0byBvcHRp
b25hbGx5IGFsbG93IGJsb2NraW5nIGFsbCBzdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTkxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vZGlmaWVkIEFQSSB0ZXN0IHRvIHVzZSBuZXcgcmV2
aXNlZCBBUEkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tQcmVm
ZXJlbmNlcy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxMi0wOS0w
NCAgWGlhbnpodSBXYW5nICA8d2FuZ3hpYW56aHVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bS1BbmRyb2lkXSBJbmNsdWRlIGRldmljZSBzZXJpYWwgbnVtYmVyIGluIENocm9taXVt
QW5kcm9pZERyaXZlciBsb2cgbWVzc2FnZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCBiZGZhNTVmY2JiOGY2ZTI5MWMw
ZGI2YzA5Y2M5OWNlMDZlZmJhYTM5Li4wNGViZGU0NzdhYjgwNjAzMTY5ZDAyYTI1ODFhNTliNzVm
NDEyNjliIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tQ
cmVmZXJlbmNlcy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dL
UHJlZmVyZW5jZXMuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgVEVTVChXZWJLaXQyLCBXS1ByZWZl
cmVuY2VzRGVmYXVsdHMpCiAgICAgRVhQRUNUX0ZBTFNFKFdLUHJlZmVyZW5jZXNHZXRDb21wb3Np
dGluZ0JvcmRlcnNWaXNpYmxlKHByZWZlcmVuY2UpKTsKICAgICBFWFBFQ1RfRkFMU0UoV0tQcmVm
ZXJlbmNlc0dldENvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZShwcmVmZXJlbmNlKSk7
CiAgICAgRVhQRUNUX0ZBTFNFKFdLUHJlZmVyZW5jZXNHZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cyhwcmVmZXJlbmNlKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFdLUHJlZmVyZW5jZXNHZXRUaGlyZFBh
cnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChwcmVmZXJlbmNlKSk7CisgICAgRVhQRUNUX0VRKDB1
LCBXS1ByZWZlcmVuY2VzR2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHByZWZlcmVuY2UpKTsKIAog
ICAgIFdLUmVsZWFzZShwcmVmZXJlbmNlKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3Y2VmMjk3MDViNzMzYTFkYWY3
NjRmM2I4ZDllOWQ3ZTI3ZmM2Mzk0Li40NTA4YmZjNTFlOGI2OTZhY2JmMDIyZTVhNjZlZWRlMDM1
NjY2NTFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDktMDYgIEplZmZyZXkgUGZhdSAg
PGpwZmF1QGFwcGxlLmNvbT4KKworICAgICAgICBFeHRlbmQgdGhpcmQtcGFydHkgc3RvcmFnZSBi
bG9ja2luZyBBUEkgdG8gb3B0aW9uYWxseSBhbGxvdyBibG9ja2luZyBhbGwgc3RvcmFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5MTUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdHMg
dG8gdXNlIHJldmlzZWQgQVBJLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4tbG9jYWwtc3RvcmFnZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbi1wcml2YXRlLWJyb3dzaW5nLXRvZ2dsZWQuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1wbHVnaW4uaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1zZXNzaW9uLXN0b3JhZ2Uu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1zaGFyZWQt
d29ya2VyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
d2Vic3FsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
d29ya2VyLXdlYnNxbC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3Vy
Y2VzL2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29ya2VyLXdlYnNxbC5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tZG9jdW1lbnQtZG9tYWluLXN0b3Jh
Z2UtYWxsb3dlZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmln
aW4tc2hhcmVkLXdvcmtlci1ibG9ja2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zaGFyZWQtd29ya2VyLWJsb2NrZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zdG9y
YWdlLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3NhbWUtb3JpZ2luLXN0b3JhZ2UtYmxvY2tlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXdlYnNxbC1ibG9ja2VkLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi13
ZWJzcWwtYmxvY2tlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9U
ZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTA5LTA0ICBTZXJnZXkgR2xhenVub3YgIDxzZXJnLmds
YXp1bm92QGdtYWlsLmNvbT4KIAogICAgICAgICBGcmFtZSBlbGVtZW50IGRvZXNuJ3QgYWx3YXlz
IHVubG9hZCBpdHMgY2hpbGQgZnJhbWUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1sb2NhbC1zdG9yYWdlLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1sb2NhbC1zdG9yYWdlLmh0bWwKaW5k
ZXggMTEzODU3ZTJjYTNjYjkyNzBmZmRjZmJiYWUzMWUxMjA2NTU3ZjNjMS4uOGQ2YTc3ZWM2ZDk4
MDE3M2FmN2NkZGU3ZGI4ZDcyNzNlYmIxMjc1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tbG9jYWwtc3RvcmFnZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWxvY2FsLXN0b3JhZ2Uu
aHRtbApAQCAtNSwxMyArNSwxMyBAQCB2YXIgZnJhbWVzID0gMjsKIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewogCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCXRlc3RSdW5uZXIuZHVtcENoaWxk
RnJhbWVzQXNUZXh0KCk7Ci0JaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdl
QmxvY2tpbmdFbmFibGVkKHRydWUpOworCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxv
Y2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScpOwogfQogCiBmdW5jdGlvbiBkZWNyZW1lbnQo
KSB7CiAJLS1mcmFtZXM7CiAJaWYgKCFmcmFtZXMgJiYgd2luZG93LnRlc3RSdW5uZXIpCi0JCWlu
dGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChmYWxz
ZSk7CisJCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0FsbG93
QWxsJyk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbi1wcml2YXRlLWJyb3dzaW5nLXRv
Z2dsZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2lu
LXBsdWdpbi1wcml2YXRlLWJyb3dzaW5nLXRvZ2dsZWQuaHRtbAppbmRleCBjOTA2NDFkMmVhMTQz
MGRkMTEyZDdiYWU0YTM4YTUzZGUzMWZhZjRmLi4xNDcxMjUxZGY2NjZjMzRkMDY1NjQ4M2U4NzUz
YzQ3MTMyYTlmM2UwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLW9yaWdpbi1wbHVnaW4tcHJpdmF0ZS1icm93c2luZy10b2dnbGVkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1Z2luLXByaXZh
dGUtYnJvd3NpbmctdG9nZ2xlZC5odG1sCkBAIC03LDcgKzcsNyBAQCBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKIAl0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwogCXRlc3RSdW5u
ZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKIAl0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKLQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2lu
Z0VuYWJsZWQodHJ1ZSk7CisJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSgnQmxvY2tUaGlyZFBhcnR5Jyk7CiB9CiAKIGZ1bmN0aW9uIGRlY3JlbWVudCgpIHsKQEAg
LTI2LDcgKzI2LDcgQEAgZnVuY3Rpb24gZGVjcmVtZW50KCkgewogd2luZG93Lm9ubWVzc2FnZSA9
IGZ1bmN0aW9uKCkgewogCS0tZnJhbWVzOwogCWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotCQlp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoZmFs
c2UpOworCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdBbGxv
d0FsbCcpOwogCQl0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1wbHVnaW4uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbi5odG1s
CmluZGV4IGI3YWU0MTJiODE4YzJlMTVhZGI1NTBmM2EwYTQxZjk3YTUzMGFkZWYuLjY5ZDc3MWNl
MGJjMWVmOGRjMmQzYjI2ODJkMGJjNjFkMzkzYWY4YmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXBsdWdpbi5odG1sCkBAIC01
LDEzICs1LDEzIEBAIHZhciBmcmFtZXMgPSAyOwogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAJ
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAJdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQoKTsKLQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0Vu
YWJsZWQodHJ1ZSk7CisJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eSgnQmxvY2tUaGlyZFBhcnR5Jyk7CiB9CiAKIGZ1bmN0aW9uIGRlY3JlbWVudCgpIHsKIAktLWZy
YW1lczsKIAlpZiAoIWZyYW1lcyAmJiB3aW5kb3cudGVzdFJ1bm5lcikKLQkJaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKGZhbHNlKTsKKwkJaW50
ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgnQWxsb3dBbGwnKTsKIH0K
IDwvc2NyaXB0PgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi1zZXNzaW9uLXN0b3JhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXNlc3Npb24tc3RvcmFnZS5odG1sCmluZGV4
IDAxZjE1MDQwYjRkNTkxZjExNjY4YmYxY2NmMTA3OWVjOGFhNWVkZWMuLjVmOWFmZDE3NDM4M2M4
ZGFmNTVhNDUwNDMwNmIyYjc0YjVkYmMxMWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXNlc3Npb24tc3RvcmFnZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXNlc3Npb24tc3RvcmFn
ZS5odG1sCkBAIC01LDEzICs1LDEzIEBAIHZhciBmcmFtZXMgPSAyOwogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAJdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAJdGVzdFJ1bm5lci5kdW1wQ2hp
bGRGcmFtZXNBc1RleHQoKTsKLQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0eVN0b3Jh
Z2VCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeSgnQmxvY2tUaGlyZFBhcnR5Jyk7CiB9CiAKIGZ1bmN0aW9uIGRlY3JlbWVu
dCgpIHsKIAktLWZyYW1lczsKIAlpZiAoIWZyYW1lcyAmJiB3aW5kb3cudGVzdFJ1bm5lcikKLQkJ
aW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKGZh
bHNlKTsKKwkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgnQWxs
b3dBbGwnKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tc2hhcmVkLXdvcmtlci5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tc2hhcmVkLXdvcmtlci5o
dG1sCmluZGV4IDc3ODNlMGRhZTZhM2FlYTg1OTQ0NDAzZTExYjc2NGY2ZGZkNWQwZmIuLmMwZjAy
NTFhMzM5ZmNlNjZhYTM0NTFjMGJhZjdiYzg5MzUwMGI2ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXNoYXJlZC13b3JrZXIuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1zaGFyZWQt
d29ya2VyLmh0bWwKQEAgLTYsMTMgKzYsMTMgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAJ
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAJdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQoKTsKIAl0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQlpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisJaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgnQmxvY2tUaGlyZFBhcnR5Jyk7CiB9CiAK
IGZ1bmN0aW9uIGRlY3JlbWVudCgpIHsKIAktLWZyYW1lczsKIAlpZiAoIWZyYW1lcyAmJiB3aW5k
b3cudGVzdFJ1bm5lcikgewotCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0eVN0b3Jh
Z2VCbG9ja2luZ0VuYWJsZWQoZmFsc2UpOworCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFn
ZUJsb2NraW5nUG9saWN5KCdBbGxvd0FsbCcpOwogCQl0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
IAl9CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi13ZWJzcWwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3Mtb3JpZ2luLXdlYnNxbC5odG1sCmluZGV4IGRjMDM5YTYxZTM1MzlmN2FhMDhmZmZkYjkxNjgz
M2ZjZWU3MjdmNjEuLmI4OTU3YjkxYzY4OGE0ZjNjYzg2NTgyNzZiZjQwMDNjMDE0NzQyMGIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdl
YnNxbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3Jp
Z2luLXdlYnNxbC5odG1sCkBAIC01LDEzICs1LDEzIEBAIHZhciBmcmFtZXMgPSAyOwogaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CiAJdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAJdGVzdFJ1bm5l
ci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKLQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQ
YXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisJaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgnQmxvY2tUaGlyZFBhcnR5Jyk7CiB9CiAKIGZ1bmN0aW9u
IGRlY3JlbWVudCgpIHsKIAktLWZyYW1lczsKIAlpZiAoIWZyYW1lcyAmJiB3aW5kb3cudGVzdFJ1
bm5lcikKLQkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdF
bmFibGVkKGZhbHNlKTsKKwkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSgnQWxsb3dBbGwnKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLXdlYnNxbC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2Vy
LXdlYnNxbC5odG1sCmluZGV4IDRlYjE3ZjA3YmI0MTEyYTM3NDM0ODBhZGY0MDY0NmE5YzIyM2Fm
MjQuLmM2YzFiMDJkMmJhODg3OTY4ZjY0MGRhMDQ3OGY1ZmNmNjAzZmQ1NGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci13ZWJz
cWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdp
bi13b3JrZXItd2Vic3FsLmh0bWwKQEAgLTgsNyArOCw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogCXRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCXRlc3RSdW5uZXIuc2V0Q2FuT3Bl
bldpbmRvd3ModHJ1ZSk7CiAJdGVzdFJ1bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVu
Q29tcGxldGUodHJ1ZSk7Ci0JaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdl
QmxvY2tpbmdFbmFibGVkKHRydWUpOworCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxv
Y2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScpOwogfQogCiBkb2N1bWVudC5sb2NhdGlvbiA9
ICJyZXNvdXJjZXMvZG9jdW1lbnQtZm9yLWNyb3NzLW9yaWdpbi13b3JrZXItd2Vic3FsLmh0bWwi
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9k
b2N1bWVudC1mb3ItY3Jvc3Mtb3JpZ2luLXdvcmtlci13ZWJzcWwuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4t
d29ya2VyLXdlYnNxbC5odG1sCmluZGV4IDJkYzJlM2Q0Y2ExYjUzYTMzNmM0ODA1YzA4ZDIwMTlk
ZGUyMWUwYzUuLjFhOGY1MzUxMjljNzVjYzBmZTJiZmVmZjg2ZjMyZWI1MDM1ODVkYzQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2RvY3VtZW50
LWZvci1jcm9zcy1vcmlnaW4td29ya2VyLXdlYnNxbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29y
a2VyLXdlYnNxbC5odG1sCkBAIC02LDcgKzYsNyBAQCB2YXIgZnJhbWVzID0gMjsKIGZ1bmN0aW9u
IGRlY3JlbWVudChldmVudCkgewogCS0tZnJhbWVzOwogCWlmICghZnJhbWVzICYmIHdpbmRvdy50
ZXN0UnVubmVyKSB7Ci0JCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5U3RvcmFnZUJs
b2NraW5nRW5hYmxlZChmYWxzZSk7CisJCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxv
Y2tpbmdQb2xpY3koJ0FsbG93QWxsJyk7CiAJCXRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogCX0K
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmln
aW4tZG9jdW1lbnQtZG9tYWluLXN0b3JhZ2UtYWxsb3dlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1kb2N1bWVudC1kb21haW4tc3RvcmFnZS1hbGxv
d2VkLmh0bWwKaW5kZXggMzg2ZmVhMTcwZTU2MGZjZmI1ODU5NWQwZjdhNzVlODAxNjVhZTY0Yy4u
NWFkODM0OTllNDBmNzAzYmQwM2Q0OWJmNmU2YmFlYzY3ZGQ2NjY4MiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1kb2N1bWVudC1kb21haW4t
c3RvcmFnZS1hbGxvd2VkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9zYW1lLW9yaWdpbi1kb2N1bWVudC1kb21haW4tc3RvcmFnZS1hbGxvd2VkLmh0bWwKQEAgLTUs
MTMgKzUsMTMgQEAgdmFyIGZyYW1lcyA9IDI7CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIAl0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAl0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4
dCgpOwotCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5h
YmxlZCh0cnVlKTsKKwlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5
KCdCbG9ja1RoaXJkUGFydHknKTsKIH0KIAogZnVuY3Rpb24gZGVjcmVtZW50KCkgewogCS0tZnJh
bWVzOwogCWlmICghZnJhbWVzICYmIHdpbmRvdy50ZXN0UnVubmVyKQotCQlpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoZmFsc2UpOworCQlpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdBbGxvd0FsbCcpOwogfQog
PC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3NhbWUtb3JpZ2luLXNoYXJlZC13b3JrZXItYmxvY2tlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXNoYXJlZC13b3JrZXIt
YmxvY2tlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgzMDFhZGFhYjhjMjlmOTZjZTI0MGI4
MjVlM2I1YzEwMjkwNGQ3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc2hhcmVkLXdvcmtlci1ibG9ja2VkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDggQEAKK1RoaXMgaWZyYW1lIHNob3VsZCByZXR1cm4gYSBzZWN1cml0eSBl
cnJvcjoKKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUw
LS0+LS0+JworLS0tLS0tLS0KK1NFQ1VSSVRZX0VSUgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zaGFyZWQtd29ya2VyLWJsb2NrZWQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc2hhcmVkLXdv
cmtlci1ibG9ja2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjRhNDdlMmNkN2ZmMzM0OTMwNzQ5YjVlNWI1
YTNjNzUwZTMwZDU1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvc2FtZS1vcmlnaW4tc2hhcmVkLXdvcmtlci1ibG9ja2VkLmh0bWwKQEAgLTAsMCAr
MSwyMiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Cit2YXIgZnJhbWVzID0gMTsKK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCXRlc3RSdW5u
ZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSgnQmxvY2tBbGwnKTsKK30KKworZnVuY3Rpb24gZGVjcmVtZW50KCkg
eworCS0tZnJhbWVzOworCWlmICghZnJhbWVzICYmIHdpbmRvdy50ZXN0UnVubmVyKQorCQlpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdBbGxvd0FsbCcpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgaWZyYW1lIHNob3VsZCByZXR1cm4g
YSBzZWN1cml0eSBlcnJvcjo8L3A+Cis8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLWZvci1zaGFyZWQtd29ya2Vy
Lmh0bWwiIG9ubG9hZD0iZGVjcmVtZW50KCkiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1z
dG9yYWdlLWJsb2NrZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9zYW1lLW9yaWdpbi1zdG9yYWdlLWJsb2NrZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVlMjlmM2NkNjc0MGU1YTlmZDA4NTg0ODdhZTM0MzBlZmY0NDU4NzgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXN0b3JhZ2Ut
YmxvY2tlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGhpcyBpZnJhbWUgc2hvdWxk
IHJldHVybiBhIHNlY3VyaXR5IGVycm9yOgorCisKK1RoaXMgaWZyYW1lIHNob3VsZCByZXR1cm4g
YSBzZWN1cml0eSBlcnJvcjoKKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGgg
Ly88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1NFQ1VSSVRZX0VSUgorCistLS0tLS0tLQor
RnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMS0tPi0tPicKKy0tLS0tLS0tCitTRUNV
UklUWV9FUlIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2Ft
ZS1vcmlnaW4tc3RvcmFnZS1ibG9ja2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3NhbWUtb3JpZ2luLXN0b3JhZ2UtYmxvY2tlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0MmE5
YTE1NWQ1OTZkNGY2ZjBiODMwMDE3NWM0MzRmNWRjMDcyZTMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXN0b3JhZ2UtYmxvY2tl
ZC5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgordmFyIGZy
YW1lcyA9IDI7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKwl0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKwl0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworCWludGVybmFscy5z
ZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrQWxsJyk7Cit9CisKK2Z1bmN0
aW9uIGRlY3JlbWVudCgpIHsKKwktLWZyYW1lczsKKwlpZiAoIWZyYW1lcyAmJiB3aW5kb3cudGVz
dFJ1bm5lcikKKwkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgn
QWxsb3dBbGwnKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIGlmcmFt
ZSBzaG91bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJyb3I6PC9wPgorPGlmcmFtZSBzcmM9Imh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1m
b3ItbG9jYWwtc3RvcmFnZS5odG1sIiBvbmxvYWQ9ImRlY3JlbWVudCgpIj48L2lmcmFtZT4KKzxw
PlRoaXMgaWZyYW1lIHNob3VsZCByZXR1cm4gYSBzZWN1cml0eSBlcnJvcjo8L3A+Cis8aWZyYW1l
IHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmln
aW4taWZyYW1lLWZvci1zZXNzaW9uLXN0b3JhZ2UuaHRtbCIgb25sb2FkPSJkZWNyZW1lbnQoKSI+
PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXdlYnNxbC1ibG9ja2VkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4td2Vic3FsLWJsb2Nr
ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MzAxYWRhYWI4YzI5Zjk2Y2UyNDBiODI1ZTNi
NWMxMDI5MDRkNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3NhbWUtb3JpZ2luLXdlYnNxbC1ibG9ja2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDggQEAKK1RoaXMgaWZyYW1lIHNob3VsZCByZXR1cm4gYSBzZWN1cml0eSBlcnJvcjoKKworCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0t
LS0tLS0KK1NFQ1VSSVRZX0VSUgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9zYW1lLW9yaWdpbi13ZWJzcWwtYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi13ZWJzcWwtYmxvY2tlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE0OTA4NWQyNzFmNmIyODJmNTNlOTJhMTRlOWRmYTE5ZjFjMGEyOTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXdlYnNx
bC1ibG9ja2VkLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+
Cit2YXIgZnJhbWVzID0gMTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworCXRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworCXRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisJaW50
ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgnQmxvY2tBbGwnKTsKK30K
KworZnVuY3Rpb24gZGVjcmVtZW50KCkgeworCS0tZnJhbWVzOworCWlmICghZnJhbWVzICYmIHdp
bmRvdy50ZXN0UnVubmVyKQorCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5n
UG9saWN5KCdBbGxvd0FsbCcpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgaWZyYW1lIHNob3VsZCByZXR1cm4gYSBzZWN1cml0eSBlcnJvcjo8L3A+Cis8aWZyYW1lIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4t
aWZyYW1lLWZvci13ZWJzcWwuaHRtbCIgb25sb2FkPSJkZWNyZW1lbnQoKSI+PC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAxMDhiZjIwZTE5YjRlMzMxZjkxMmQ1MjM3N2FkMTkyNTg2ODMxMTNi
Li40NmEwMTA5ZGNlZjg0MzEwOTQzZjFjODFlM2IzM2ZiOWJkNGY5OTgwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU0MCw2ICs1NDAs
NyBAQCBXT05URklYIFNLSVAgOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9zaGFyZWQtd29ya2VyLWNvbm5lY3QtcwogV09OVEZJWCBTS0lQIDogaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2hhcmVkLXdvcmtlci1jb25uZWN0LXNyYy1i
bG9ja2VkLmh0bWwgPSBURVhUCiBXT05URklYIFNLSVAgOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLW9yaWdpbi1zaGFyZWQtd29ya2VyLmh0bWwgPSBURVhUCiBXT05URklYIFNLSVAgOiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1zaGFyZWQtd29ya2VyLWFsbG93ZWQuaHRtbCA9
IFRFWFQKK1dPTlRGSVggU0tJUCA6IGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc2hh
cmVkLXdvcmtlci1ibG9ja2VkLmh0bWwgPSBURVhUCiBXT05URklYIFNLSVAgOiBzdG9yYWdlL2lu
ZGV4ZWRkYi9iYXNpY3Mtc2hhcmVkLXdvcmtlcnMuaHRtbCA9IFBBU1MKIAogLy8gdGVzdF9zaGVs
bCBkb2VzIG5vdCBzdXBwb3J0IG1lc3NhZ2UgcG9ydHMK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162843</attachid>
            <date>2012-09-07 12:19:29 -0700</date>
            <delta_ts>2012-09-07 16:33:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95915-20120907121939.patch</filename>
            <type>text/plain</type>
            <size>35788</size>
            <attacher name="Vicki Pfau">jeffrey+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFkNmM4M2E0Y2Y0Yzgz
MTAxOGVmMmFhNzkzNGQzNjE5M2QxZWI1Ny4uZmZjNzAwODQ4MzM1NWMwODg1YThiNmMxYzE3YTRj
YWVlNTZhMjNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA5LTA2ICBKZWZm
cmV5IFBmYXUgIDxqcGZhdUBhcHBsZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIHRoaXJkLXBhcnR5
IHN0b3JhZ2UgYmxvY2tpbmcgQVBJIHRvIG9wdGlvbmFsbHkgYWxsb3cgYmxvY2tpbmcgYWxsIHN0
b3JhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1
OTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVw
bGFjZSBib29sZWFuIEFQSSB3aXRoIHRyaS1zdGF0ZSBBUEkgdGhhdCBhbGxvd3MgZm9yIGJsb2Nr
aW5nIG5vLCB0aGlyZC1wYXJ0eSwgb3IgYWxsIHN0b3JhZ2UuCisKKyAgICAgICAgVGVzdHM6IGh0
dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc2hhcmVkLXdvcmtlci1ibG9ja2VkLmh0bWwK
KyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc3RvcmFnZS1i
bG9ja2VkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmln
aW4td2Vic3FsLWJsb2NrZWQuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojppbml0U2VjdXJpdHlDb250ZXh0KToKKyAgICAgICAg
KiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
Y2FuQWNjZXNzU3RvcmFnZSk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSk6
CisgICAgICAgIChTZWN1cml0eU9yaWdpbik6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnN0b3JhZ2VCbG9ja2luZ1Bv
bGljeSk6CisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6
CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsOgorCiAyMDEyLTA5LTA0ICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IHJlbW92ZSBmaW5hbCBjcmVhdGVJbmRleCBi
YWNrZW5kIGdsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5ZTBiOWI3YmYyN2FmMDU3NmVlNzQ5Zjk2ODZiNjMy
MDQ5ZDljYTU4Li45YWZlODE3YzlmYzg1NDhmNzcwZjM2YzhiZjk0YWE2OTU1YjFjMTllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDktMDYgIEplZmZyZXkgUGZhdSAgPGpwZmF1
QGFwcGxlLmNvbT4KKworICAgICAgICBFeHRlbmQgdGhpcmQtcGFydHkgc3RvcmFnZSBibG9ja2lu
ZyBBUEkgdG8gb3B0aW9uYWxseSBhbGxvdyBibG9ja2luZyBhbGwgc3RvcmFnZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5MTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgV0syIEFQSSB0byB1
c2UgcmV2aXNlZCBTZXR0aW5ncyBBUEkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5j
ZXNTdG9yZS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvU3RvcmFnZUJsb2NraW5nUG9saWN5KToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2Vz
U2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRTdG9y
YWdlQmxvY2tpbmdQb2xpY3kpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMTItMDktMDMgIFNh
bSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBQYXJ0IDEgb2YgcmVtb3Zpbmcg
UGxhdGZvcm1TdHJpbmcuaCwgbW92ZSByZW1haW5pbmcgZnVuY3Rpb25zIHRvIG5ldyBob21lcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDQ2NTc1MTM3MTRkODJjYjlhMjlhOTA1OWYzMDUw
NjVmNDk1ZDc1Zi4uMTcwOTRiMzllOWEwYjQ2OWIwNTNiZmI5MGI5ZTQ2ODU3NDUzNmEwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01MDQzLDggKzUwNDMsNyBAQCB2b2lkIERvY3VtZW50
Ojppbml0U2VjdXJpdHlDb250ZXh0KCkKICAgICAgICAgICAgICAgICBzZWN1cml0eU9yaWdpbigp
LT5lbmZvcmNlRmlsZVBhdGhTZXBhcmF0aW9uKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKHNldHRpbmdzLT50aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCgp
KQotICAgICAgICAgICAgc2VjdXJpdHlPcmlnaW4oKS0+YmxvY2tUaGlyZFBhcnR5U3RvcmFnZSgp
OworICAgICAgICBzZWN1cml0eU9yaWdpbigpLT5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koc2V0
dGluZ3MtPnN0b3JhZ2VCbG9ja2luZ1BvbGljeSgpKTsKICAgICB9CiAKICAgICBEb2N1bWVudCog
cGFyZW50RG9jdW1lbnQgPSBvd25lckVsZW1lbnQoKSA/IG93bmVyRWxlbWVudCgpLT5kb2N1bWVu
dCgpIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggNjkzNDcx
Nzc1YjAzODI5NzBmMmVhZjlhOGU1YmQ2MDlkOTA1MGVkMS4uMjdhMTc0MDNiYjliYzQ4N2JkMmIz
YTI3ODI0YWNhYmZlYmJjYmNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5j
cHAKQEAgLTEyMiw3ICsxMjIsNyBAQCBTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oY29u
c3QgS1VSTCYgdXJsKQogICAgICwgbV9pc1VuaXF1ZShmYWxzZSkKICAgICAsIG1fdW5pdmVyc2Fs
QWNjZXNzKGZhbHNlKQogICAgICwgbV9kb21haW5XYXNTZXRJbkRPTShmYWxzZSkKLSAgICAsIG1f
YmxvY2tUaGlyZFBhcnR5U3RvcmFnZShmYWxzZSkKKyAgICAsIG1fc3RvcmFnZUJsb2NraW5nUG9s
aWN5KEFsbG93QWxsU3RvcmFnZSkKICAgICAsIG1fZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbihm
YWxzZSkKICAgICAsIG1fbmVlZHNEYXRhYmFzZUlkZW50aWZpZXJRdWlya0ZvckZpbGVzKGZhbHNl
KQogewpAQCAtMTQ4LDcgKzE0OCw3IEBAIFNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbigp
CiAgICAgLCBtX3VuaXZlcnNhbEFjY2VzcyhmYWxzZSkKICAgICAsIG1fZG9tYWluV2FzU2V0SW5E
T00oZmFsc2UpCiAgICAgLCBtX2NhbkxvYWRMb2NhbFJlc291cmNlcyhmYWxzZSkKLSAgICAsIG1f
YmxvY2tUaGlyZFBhcnR5U3RvcmFnZShmYWxzZSkKKyAgICAsIG1fc3RvcmFnZUJsb2NraW5nUG9s
aWN5KEFsbG93QWxsU3RvcmFnZSkKICAgICAsIG1fZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbihm
YWxzZSkKICAgICAsIG1fbmVlZHNEYXRhYmFzZUlkZW50aWZpZXJRdWlya0ZvckZpbGVzKGZhbHNl
KQogewpAQCAtMTY1LDcgKzE2NSw3IEBAIFNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbihj
b25zdCBTZWN1cml0eU9yaWdpbiogb3RoZXIpCiAgICAgLCBtX3VuaXZlcnNhbEFjY2VzcyhvdGhl
ci0+bV91bml2ZXJzYWxBY2Nlc3MpCiAgICAgLCBtX2RvbWFpbldhc1NldEluRE9NKG90aGVyLT5t
X2RvbWFpbldhc1NldEluRE9NKQogICAgICwgbV9jYW5Mb2FkTG9jYWxSZXNvdXJjZXMob3RoZXIt
Pm1fY2FuTG9hZExvY2FsUmVzb3VyY2VzKQotICAgICwgbV9ibG9ja1RoaXJkUGFydHlTdG9yYWdl
KG90aGVyLT5tX2Jsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UpCisgICAgLCBtX3N0b3JhZ2VCbG9ja2lu
Z1BvbGljeShvdGhlci0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kpCiAgICAgLCBtX2VuZm9yY2VG
aWxlUGF0aFNlcGFyYXRpb24ob3RoZXItPm1fZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbikKICAg
ICAsIG1fbmVlZHNEYXRhYmFzZUlkZW50aWZpZXJRdWlya0ZvckZpbGVzKG90aGVyLT5tX25lZWRz
RGF0YWJhc2VJZGVudGlmaWVyUXVpcmtGb3JGaWxlcykKIHsKQEAgLTM4OSw3ICszODksMTAgQEAg
Ym9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzU3RvcmFnZShjb25zdCBTZWN1cml0eU9yaWdp
biogdG9wT3JpZ2luKSBjb25zdAogICAgIGlmICghdG9wT3JpZ2luKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAotICAgIGlmICgobV9ibG9ja1RoaXJkUGFydHlTdG9yYWdlIHx8IHRvcE9yaWdpbi0+
bV9ibG9ja1RoaXJkUGFydHlTdG9yYWdlKSAmJiB0b3BPcmlnaW4tPmlzVGhpcmRQYXJ0eSh0aGlz
KSkKKyAgICBpZiAobV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tBbGxTdG9yYWdlIHx8
IHRvcE9yaWdpbi0+bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPT0gQmxvY2tBbGxTdG9yYWdlKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoKG1fc3RvcmFnZUJsb2NraW5nUG9saWN5
ID09IEJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UgfHwgdG9wT3JpZ2luLT5tX3N0b3JhZ2VCbG9ja2lu
Z1BvbGljeSA9PSBCbG9ja1RoaXJkUGFydHlTdG9yYWdlKSAmJiB0b3BPcmlnaW4tPmlzVGhpcmRQ
YXJ0eSh0aGlzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKaW5kZXggNTlmMGM0MDE4Mjg0ZGI5NDg2MDcy
Zjc3Y2FmNWNlYzJmMWFiNGUwMC4uZDdiMmFlZGFhZmYzMWYzNmUwODkxZjY1NmI1YmJjNDEwNjk1
ZDRjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaApAQCAtNDUsNiArNDUsMTIg
QEAgcHVibGljOgogICAgICAgICBBc2sKICAgICB9OwogCisgICAgZW51bSBTdG9yYWdlQmxvY2tp
bmdQb2xpY3kgeworICAgICAgICBBbGxvd0FsbFN0b3JhZ2UgPSAwLAorICAgICAgICBCbG9ja0Fs
bFN0b3JhZ2UsCisgICAgICAgIEJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UKKyAgICB9OworCiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZShjb25zdCBLVVJMJik7CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZVVuaXF1ZSgpOwogCkBA
IC0xMzQsNyArMTQwLDcgQEAgcHVibGljOgogICAgIC8vIFdBUk5JTkc6IFRoaXMgaXMgYW4gZXh0
cmVtZWx5IHBvd2VyZnVsIGFiaWxpdHkuIFVzZSB3aXRoIGNhdXRpb24hCiAgICAgdm9pZCBncmFu
dFVuaXZlcnNhbEFjY2VzcygpOwogCi0gICAgdm9pZCBibG9ja1RoaXJkUGFydHlTdG9yYWdlKCkg
eyBtX2Jsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koU3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkgeyBtX3N0b3JhZ2VC
bG9ja2luZ1BvbGljeSA9IHBvbGljeTsgfQogCiAgICAgYm9vbCBjYW5BY2Nlc3NEYXRhYmFzZShj
b25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luID0gMCkgY29uc3QgeyByZXR1cm4gY2FuQWNj
ZXNzU3RvcmFnZSh0b3BPcmlnaW4pOyB9OwogICAgIGJvb2wgY2FuQWNjZXNzTG9jYWxTdG9yYWdl
KGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pIGNvbnN0IHsgcmV0dXJuIGNhbkFjY2Vz
c1N0b3JhZ2UodG9wT3JpZ2luKTsgfTsKQEAgLTIxOSw3ICsyMjUsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV91bml2ZXJzYWxBY2Nlc3M7CiAgICAgYm9vbCBtX2RvbWFpbldhc1NldEluRE9NOwog
ICAgIGJvb2wgbV9jYW5Mb2FkTG9jYWxSZXNvdXJjZXM7Ci0gICAgYm9vbCBtX2Jsb2NrVGhpcmRQ
YXJ0eVN0b3JhZ2U7CisgICAgU3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5n
UG9saWN5OwogICAgIGJvb2wgbV9lbmZvcmNlRmlsZVBhdGhTZXBhcmF0aW9uOwogICAgIGJvb2wg
bV9uZWVkc0RhdGFiYXNlSWRlbnRpZmllclF1aXJrRm9yRmlsZXM7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcAppbmRleCBlOTdjNjRmNzNkY2IwZTI3YWU0OTY0ZDQ3NWU2MmFiODI5YjNmYzU0
Li5mMjUxNTBiNTE2YzM5NjUzNWMzOGJlZmNhM2NiMmEyYTY4ZmVlYTBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmNwcApAQCAtMTM4LDYgKzEzOCw3IEBAIFNldHRpbmdzOjpTZXR0aW5ncyhQYWdl
KiBwYWdlKQogICAgICwgbV9zZXNzaW9uU3RvcmFnZVF1b3RhKFN0b3JhZ2VNYXA6Om5vUXVvdGEp
CiAgICAgLCBtX2VkaXRpbmdCZWhhdmlvclR5cGUoZWRpdGluZ0JlaGF2aW9yVHlwZUZvclBsYXRm
b3JtKCkpCiAgICAgLCBtX21heGltdW1IVE1MUGFyc2VyRE9NVHJlZURlcHRoKGRlZmF1bHRNYXhp
bXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aCkKKyAgICAsIG1fc3RvcmFnZUJsb2NraW5nUG9saWN5
KFNlY3VyaXR5T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2UpCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJ
WklORykKICAgICAsIG1fdGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoMSkKICNpZiBIQUNL
X0ZPUkNFX1RFWFRfQVVUT1NJWklOR19PTl9ERVNLVE9QCkBAIC0yODQsNyArMjg1LDYgQEAgU2V0
dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2Nvb2tpZUVuYWJsZWQodHJ1ZSkK
ICAgICAsIG1fd2luZG93Rm9jdXNSZXN0cmljdGVkKHRydWUpCiAgICAgLCBtX2RpYWdub3N0aWNM
b2dnaW5nRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fdGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0Vu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX3Njcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQo
ZmFsc2UpCiAgICAgLCBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyKHRoaXMsICZTZXR0
aW5nczo6bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5VGltZXJGaXJlZCkKICAgICAsIG1faW5jcmVt
ZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMoZGVmYXVsdEluY3JlbWVu
dGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oCmluZGV4IGZkNGQ5YTk5MmI2OWVmZGNmNGE0ZGJkNGU4NTA1NDllMjVjN2M0YWQuLjZmYTNi
YzAyNGI4YjhjMmY5YWNjMGVkMDNkMjYxOWQ0NjY1MzI5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgog
I2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtNjAxLDgg
KzYwMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRXaW5kb3dGb2N1
c1Jlc3RyaWN0ZWQoYm9vbCByZXN0cmljdGVkKSB7IG1fd2luZG93Rm9jdXNSZXN0cmljdGVkID0g
cmVzdHJpY3RlZDsgfQogICAgICAgICBib29sIHdpbmRvd0ZvY3VzUmVzdHJpY3RlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fd2luZG93Rm9jdXNSZXN0cmljdGVkOyB9CiAKLSAgICAgICAgdm9pZCBzZXRU
aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV90aGlyZFBh
cnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KLSAgICAgICAgYm9vbCB0aGly
ZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhpcmRQYXJ0
eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQ7IH0KKyAgICAgICAgdm9pZCBzZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3koU2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBwb2xpY3kpIHsg
bV9zdG9yYWdlQmxvY2tpbmdQb2xpY3kgPSBwb2xpY3k7IH0KKyAgICAgICAgU2VjdXJpdHlPcmln
aW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzdG9yYWdlQmxvY2tpbmdQb2xpY3koKSBjb25zdCB7
IHJldHVybiBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsgfQogCiAgICAgICAgIHZvaWQgc2V0U2Ny
b2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBzY3Jv
bGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKCkgeyByZXR1cm4gbV9zY3JvbGxpbmdQZXJm
b3JtYW5jZUxvZ2dpbmdFbmFibGVkOyB9CkBAIC02NTIsNiArNjUzLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB1bnNpZ25lZCBtX3Nlc3Npb25TdG9yYWdlUXVvdGE7CiAgICAgICAg
IHVuc2lnbmVkIG1fZWRpdGluZ0JlaGF2aW9yVHlwZTsKICAgICAgICAgdW5zaWduZWQgbV9tYXhp
bXVtSFRNTFBhcnNlckRPTVRyZWVEZXB0aDsKKyAgICAgICAgU2VjdXJpdHlPcmlnaW46OlN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9ja2luZ1BvbGljeTsKICNpZiBFTkFCTEUoVEVY
VF9BVVRPU0laSU5HKQogICAgICAgICBmbG9hdCBtX3RleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFj
dG9yOwogICAgICAgICBJbnRTaXplIG1fdGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGU7
CkBAIC03OTUsOCArNzk3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGJvb2wg
bV9kaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQgOiAxOwogCi0gICAgICAgIGJvb2wgbV90aGlyZFBh
cnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCA6IDE7Ci0KICAgICAgICAgYm9vbCBtX3Njcm9sbGlu
Z1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQgOiAxOwogCiAgICAgICAgIFRpbWVyPFNldHRpbmdz
PiBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggY2Q2NzM5ODJjMDYyOGE5NWQ2OGFlYzgzNmYy
NTYyYzZmMDJhOTA3Ny4uNDAyMmY4NzVmZDBlODI5MTI2N2UzNjM5NjYzMzc3ZGM2ZDljNWI3MiAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC02Mjgs
MTAgKzYyOCwxOCBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldE1lbW9yeUluZm9FbmFibGVk
KGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgc2V0dGluZ3MoKS0+c2V0TWVt
b3J5SW5mb0VuYWJsZWQoZW5hYmxlZCk7CiB9CiAKLXZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0
VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJiBlYykKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5
KGNvbnN0IFN0cmluZyYgbW9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSW50ZXJuYWxT
ZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKLSAgICBzZXR0aW5ncygpLT5zZXRUaGlyZFBhcnR5
U3RvcmFnZUJsb2NraW5nRW5hYmxlZChlbmFibGVkKTsKKworICAgIGlmIChtb2RlID09ICJBbGxv
d0FsbCIpCisgICAgICAgIHNldHRpbmdzKCktPnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShTZWN1
cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlKTsKKyAgICBlbHNlIGlmIChtb2RlID09ICJCbG9j
a1RoaXJkUGFydHkiKQorICAgICAgICBzZXR0aW5ncygpLT5zZXRTdG9yYWdlQmxvY2tpbmdQb2xp
Y3koU2VjdXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQYXJ0eVN0b3JhZ2UpOworICAgIGVsc2UgaWYg
KG1vZGUgPT0gIkJsb2NrQWxsIikKKyAgICAgICAgc2V0dGluZ3MoKS0+c2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5KFNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2UpOworICAgIGVsc2UKKyAg
ICAgICAgZWMgPSBTWU5UQVhfRVJSOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGNmYWU5NGZiYjJlN2QzYzIxMDUyYjA5ZThjN2M3NzJkMmM5
NmViMWQuLjgzYWI5YjJkNGExMWE5YjZlODA4ZDg3ZjQ2YTk5MDAzM2Y4ZWQ4MGQgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xNDEsNyArMTQxLDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0RW5hYmxlTW9ja1BhZ2VQb3B1cChib29sLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgU3RyaW5nIGNvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChmbG9hdCBkZXZpY2VQ
aXhlbFJhdGlvLCBpbnQgZGV2aWNlV2lkdGgsIGludCBkZXZpY2VIZWlnaHQsIGludCBhdmFpbGFi
bGVXaWR0aCwgaW50IGF2YWlsYWJsZUhlaWdodCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQg
c2V0TWVtb3J5SW5mb0VuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0
VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHZvaWQgc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlv
bkNvZGUmKTsKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxTZXR0aW5ncyhQYWdlKik7
CiAgICAgdmlydHVhbCB2b2lkIGhvc3REZXN0cm95ZWQoKSBPVkVSUklERSB7IG1fcGFnZSA9IDA7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IGI5
YzhmM2ViZjYzYTRmNjcwNjczYjhjMjg0ZTgzYjM2NTdjYTdmYWYuLjUxN2JhYTYzM2UzNzk3NjMy
ZmY1MTI2NmYyOGU1OTczZjRkZWEzOTAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbApAQCAtNzksNyArNzksNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAg
ICAgYm9vbGVhbiBzaG91bGREaXNwbGF5VHJhY2tLaW5kKGluIERPTVN0cmluZyB0cmFja0tpbmQp
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogICAgICAgICB2b2lkIHNldE1lbW9yeUlu
Zm9FbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAg
ICAgIHZvaWQgc2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoaW4gYm9vbGVhbiBl
bmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRTdG9yYWdlQmxv
Y2tpbmdQb2xpY3koaW4gRE9NU3RyaW5nIHBvbGljeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAg
ICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgK
aW5kZXggNTY5YzUxODZkNjkyMTJhMGVhYjIxMWU2Y2Y4NDA5ZDNiYzgyMmU3NS4uNmVkNjljMDUy
ZmFmNmJiMTc3NjNlOTRlZjliNTU1YmZhMmJhMmE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCkBAIC0xMjQsNyArMTI0LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAgICAgbWFjcm8oQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVk
Rm9yQWxsUGx1Z2lucywgYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkRm9y
QWxsUGx1Z2lucywgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhBcnRpZmljaWFsUGx1
Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQsIGFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXph
dGlvbkRlbGF5RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhTY3JvbGxp
bmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkLCBzY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdF
bmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFRoaXJkUGFydHlTdG9yYWdl
QmxvY2tpbmdFbmFibGVkLCB0aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhTdG9yYWdlQmxvY2tpbmdQb2xpY3ksIHN0b3JhZ2VC
bG9ja2luZ1BvbGljeSwgVUludDMyLCB1aW50MzJfdCwgMCkgXAogICAgIG1hY3JvKFNjcm9sbEFu
aW1hdG9yRW5hYmxlZCwgc2Nyb2xsQW5pbWF0b3JFbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxU
X1dFQktJVF9TQ1JPTExfQU5JTUFUT1JfRU5BQkxFRCkgXAogICAgIFwKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IGMxMWY3NDBlNWE4OWY4YjBjZDc4
OGQzZmNkNTAzZWJmZGFmNGUyYTYuLmQwZDdiMzJmY2VkZWMxYWMxYzVkNmQ4N2I0ZjllMDJmYjNi
MzRmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAg
LTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJXS0Nvb2tpZU1hbmFnZXIuaCIKICNpbmNsdWRlICJX
S0NyZWRlbnRpYWxUeXBlcy5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgorI2luY2x1ZGUgIldLUHJl
ZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIgogI2luY2x1ZGUg
IldLUHJvdGVjdGlvblNwYWNlVHlwZXMuaCIKICNpbmNsdWRlICJXS1Jlc291cmNlQ2FjaGVNYW5h
Z2VyLmgiCkBAIC0zODUsNiArMzg2LDM2IEBAIGlubGluZSBXS0hUVFBDb29raWVBY2NlcHRQb2xp
Y3kgdG9BUEkoSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiAgICAgcmV0dXJuIGtXS0hU
VFBDb29raWVBY2NlcHRQb2xpY3lBbHdheXM7CiB9CiAKK2lubGluZSBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5IHRvU3RvcmFnZUJsb2NraW5nUG9saWN5KFdL
U3RvcmFnZUJsb2NraW5nUG9saWN5IHBvbGljeSkKK3sKKyAgICBzd2l0Y2ggKHBvbGljeSkgewor
ICAgIGNhc2Uga1dLQWxsb3dBbGxTdG9yYWdlOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZTsKKyAgICBjYXNlIGtXS0Jsb2NrVGhpcmRQYXJ0
eVN0b3JhZ2U6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QmxvY2tU
aGlyZFBhcnR5U3RvcmFnZTsKKyAgICBjYXNlIGtXS0Jsb2NrQWxsU3RvcmFnZToKKyAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2U7CisgICAgfQor
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2U7Cit9CisKK2lubGluZSBXS1N0b3JhZ2VCbG9ja2luZ1Bv
bGljeSB0b0FQSShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5
IHBvbGljeSkKK3sKKyAgICBzd2l0Y2ggKHBvbGljeSkgeworICAgIGNhc2UgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OkFsbG93QWxsU3RvcmFnZToKKyAgICAgICAgcmV0dXJuIGtXS0FsbG93QWxs
U3RvcmFnZTsKKyAgICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFy
dHlTdG9yYWdlOgorICAgICAgICByZXR1cm4ga1dLQmxvY2tUaGlyZFBhcnR5U3RvcmFnZTsKKyAg
ICBjYXNlIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja0FsbFN0b3JhZ2U6CisgICAgICAg
IHJldHVybiBrV0tCbG9ja0FsbFN0b3JhZ2U7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIGtXS0FsbG93QWxsU3RvcmFnZTsKK30KKwogaW5saW5lIFByb3h5
aW5nUmVmUHRyPFdlYkdyYW1tYXJEZXRhaWw+IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJE
ZXRhaWwmIGdyYW1tYXJEZXRhaWwpCiB7CiAgICAgcmV0dXJuIFByb3h5aW5nUmVmUHRyPFdlYkdy
YW1tYXJEZXRhaWw+KFdlYkdyYW1tYXJEZXRhaWw6OmNyZWF0ZShncmFtbWFyRGV0YWlsKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5k
ZXggNjZkNGRjZDk4NWFlNDZiYzVjODg3OGRmMjZlMzc1M2MwODNkNWUzMy4uMTc4ZTIxNDcxODdh
MGU3NWViZmJjN2VlZGY3NWZkY2ViOTBmZmYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtODE3LDE0ICs4MTcsMTQgQEAgYm9v
bCBXS1ByZWZlcmVuY2VzR2V0UmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZChXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzUmUKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+
cmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCgpOwogfQogCi12b2lkIFdLUHJlZmVyZW5jZXNT
ZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZl
cmVuY2VzUmVmLCBib29sIGZsYWcpCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3koV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgV0tTdG9yYWdlQmxvY2tp
bmdQb2xpY3kgcG9saWN5KQogewotICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldFRoaXJk
UGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKGZsYWcpOworICAgIHRvSW1wbChwcmVmZXJlbmNl
c1JlZiktPnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSh0b1N0b3JhZ2VCbG9ja2luZ1BvbGljeShw
b2xpY3kpKTsKIH0KIAotYm9vbCBXS1ByZWZlcmVuY2VzR2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9j
a2luZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK1dLU3RvcmFnZUJs
b2NraW5nUG9saWN5IFdLUHJlZmVyZW5jZXNHZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koV0tQcmVm
ZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVu
Y2VzUmVmKS0+dGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoKTsKKyAgICByZXR1cm4g
dG9BUEkoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2lu
Z1BvbGljeT4odG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c3RvcmFnZUJsb2NraW5nUG9saWN5KCkp
KTsKIH0KIAogdm9pZCBXS1ByZWZlcmVuY2VzUmVzZXRUZXN0UnVubmVyT3ZlcnJpZGVzKFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuaAppbmRleCA4ODNmYmZmNjFiNzY5MTljZTIyMTYxNDQyZTcw
Yzc3NmM4YWNkNzdiLi41ZjMyNDU0OTRiMDllNDZlM2E5MDgyOWUzZTc1NTBhMDhmYWU2ODk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmgKQEAg
LTM2LDYgKzM2LDEzIEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCitlbnVtIFdLU3RvcmFnZUJs
b2NraW5nUG9saWN5IHsKKyAgICBrV0tBbGxvd0FsbFN0b3JhZ2UgPSAwLAorICAgIGtXS0Jsb2Nr
QWxsU3RvcmFnZSwKKyAgICBrV0tCbG9ja1RoaXJkUGFydHlTdG9yYWdlCit9OwordHlwZWRlZiBl
bnVtIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5IFdLU3RvcmFnZUJsb2NraW5nUG9saWN5OworCiBX
S19FWFBPUlQgV0tUeXBlSUQgV0tQcmVmZXJlbmNlc0dldFR5cGVJRCgpOwogCiBXS19FWFBPUlQg
V0tQcmVmZXJlbmNlc1JlZiBXS1ByZWZlcmVuY2VzQ3JlYXRlKCk7CkBAIC0yMDYsOCArMjEzLDgg
QEAgV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVu
dGF0aW9uKFdLUHJlZmVyZW5jZXNSZWYgcHIKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNH
ZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbihXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVu
Y2VzUmVmKTsKIAogLy8gRGVmYXVsdHMgdG8gZmFsc2UKLVdLX0VYUE9SVCB2b2lkIFdLUHJlZmVy
ZW5jZXNTZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVm
IHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpOwotV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJl
bmNlc0dldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeShXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBXS1N0b3JhZ2VC
bG9ja2luZ1BvbGljeSBwb2xpY3kpOworV0tfRVhQT1JUIFdLU3RvcmFnZUJsb2NraW5nUG9saWN5
IFdLUHJlZmVyZW5jZXNHZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZik7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGY0MGFhMGEzZTMzYTBmMDQz
MTJlNWJmZmJhMDUwZGUxYzM5NGQwYjEuLjVjZGM4ODEyNzFiOGY3ODg4ZDQyYmFmNWQ3YTZkMjk3
NDhiZDc0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTIxMTMsNyArMjExMyw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5j
ZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAjZW5kaWYKIAogICAgIHNldHRp
bmdzLT5zZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbihzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uS2V5
KCkpKTsKLSAgICBzZXR0aW5ncy0+c2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQo
c3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp0aGlyZFBhcnR5U3Rv
cmFnZUJsb2NraW5nRW5hYmxlZEtleSgpKSk7CisgICAgc2V0dGluZ3MtPnNldFN0b3JhZ2VCbG9j
a2luZ1BvbGljeShzdGF0aWNfY2FzdDxTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9s
aWN5PihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFn
ZUJsb2NraW5nUG9saWN5S2V5KCkpKSk7CiAKICAgICBzZXR0aW5ncy0+c2V0RGlhZ25vc3RpY0xv
Z2dpbmdFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
ZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkS2V5KCkpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI1NDY1YWNkMDgwNWFlNGUxZWJhYjFiNWMy
Mjg3NjJhNWQ3MGQ0YTIuLmNmNTFiMWE5NDY0MDI3NDBjNjcyMWRjZTRhY2E2ZDc0MTc0N2Q4ZmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMi0wOS0wNiAgSmVmZnJleSBQZmF1ICA8anBmYXVAYXBwbGUuY29tPgor
CisgICAgICAgIEV4dGVuZCB0aGlyZC1wYXJ0eSBzdG9yYWdlIGJsb2NraW5nIEFQSSB0byBvcHRp
b25hbGx5IGFsbG93IGJsb2NraW5nIGFsbCBzdG9yYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTkxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vZGlmaWVkIEFQSSB0ZXN0IHRvIHVzZSBuZXcgcmV2
aXNlZCBBUEkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tQcmVm
ZXJlbmNlcy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxMi0wOS0w
NCAgWGlhbnpodSBXYW5nICA8d2FuZ3hpYW56aHVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bS1BbmRyb2lkXSBJbmNsdWRlIGRldmljZSBzZXJpYWwgbnVtYmVyIGluIENocm9taXVt
QW5kcm9pZERyaXZlciBsb2cgbWVzc2FnZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCBiZGZhNTVmY2JiOGY2ZTI5MWMw
ZGI2YzA5Y2M5OWNlMDZlZmJhYTM5Li41YzA3NTFiYjBhMDMxMGY5YmM1MDc3NWI0ZDc1MDhmZjlj
MTJlMDNlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV0tQ
cmVmZXJlbmNlcy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dL
UHJlZmVyZW5jZXMuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgVEVTVChXZWJLaXQyLCBXS1ByZWZl
cmVuY2VzRGVmYXVsdHMpCiAgICAgRVhQRUNUX0ZBTFNFKFdLUHJlZmVyZW5jZXNHZXRDb21wb3Np
dGluZ0JvcmRlcnNWaXNpYmxlKHByZWZlcmVuY2UpKTsKICAgICBFWFBFQ1RfRkFMU0UoV0tQcmVm
ZXJlbmNlc0dldENvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZShwcmVmZXJlbmNlKSk7
CiAgICAgRVhQRUNUX0ZBTFNFKFdLUHJlZmVyZW5jZXNHZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cyhwcmVmZXJlbmNlKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKFdLUHJlZmVyZW5jZXNHZXRUaGlyZFBh
cnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZChwcmVmZXJlbmNlKSk7CisgICAgRVhQRUNUX0VRKGtX
S0FsbG93QWxsU3RvcmFnZSwgV0tQcmVmZXJlbmNlc0dldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShw
cmVmZXJlbmNlKSk7CiAKICAgICBXS1JlbGVhc2UocHJlZmVyZW5jZSk7CiB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2Nl
ZjI5NzA1YjczM2ExZGFmNzY0ZjNiOGQ5ZTlkN2UyN2ZjNjM5NC4uNDUwOGJmYzUxZThiNjk2YWNi
ZjAyMmU1YTY2ZWVkZTAzNTY2NjUxYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA5LTA2
ICBKZWZmcmV5IFBmYXUgIDxqcGZhdUBhcHBsZS5jb20+CisKKyAgICAgICAgRXh0ZW5kIHRoaXJk
LXBhcnR5IHN0b3JhZ2UgYmxvY2tpbmcgQVBJIHRvIG9wdGlvbmFsbHkgYWxsb3cgYmxvY2tpbmcg
YWxsIHN0b3JhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk1OTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXBkYXRlIHRlc3RzIHRvIHVzZSByZXZpc2VkIEFQSS4KKworICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWxvY2FsLXN0b3JhZ2UuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1wbHVnaW4tcHJpdmF0ZS1icm93c2luZy10
b2dnbGVkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
cGx1Z2luLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
c2Vzc2lvbi1zdG9yYWdlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4tc2hhcmVkLXdvcmtlci5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3Mtb3JpZ2luLXdlYnNxbC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci13ZWJzcWwuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3Jlc291cmNlcy9kb2N1bWVudC1mb3ItY3Jvc3Mtb3JpZ2luLXdvcmtlci13ZWJz
cWwuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLWRvY3Vt
ZW50LWRvbWFpbi1zdG9yYWdlLWFsbG93ZWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3NhbWUtb3JpZ2luLXNoYXJlZC13b3JrZXItYmxvY2tlZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc2hhcmVkLXdv
cmtlci1ibG9ja2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
c2FtZS1vcmlnaW4tc3RvcmFnZS1ibG9ja2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zdG9yYWdlLWJsb2NrZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi13ZWJzcWwt
YmxvY2tlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvc2FtZS1vcmlnaW4td2Vic3FsLWJsb2NrZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMi0wOS0wNCAgU2VyZ2V5IEds
YXp1bm92ICA8c2VyZy5nbGF6dW5vdkBnbWFpbC5jb20+CiAKICAgICAgICAgRnJhbWUgZWxlbWVu
dCBkb2Vzbid0IGFsd2F5cyB1bmxvYWQgaXRzIGNoaWxkIGZyYW1lLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tbG9jYWwtc3RvcmFnZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tbG9jYWwt
c3RvcmFnZS5odG1sCmluZGV4IDExMzg1N2UyY2EzY2I5MjcwZmZkY2ZiYmFlMzFlMTIwNjU1N2Yz
YzEuLjhkNmE3N2VjNmQ5ODAxNzNhZjdjZGRlN2RiOGQ3MjczZWJiMTI3NWYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWxvY2FsLXN0b3Jh
Z2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdp
bi1sb2NhbC1zdG9yYWdlLmh0bWwKQEAgLTUsMTMgKzUsMTMgQEAgdmFyIGZyYW1lcyA9IDI7CiBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIAl0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAl0ZXN0
UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwotCWludGVybmFscy5zZXR0aW5ncy5zZXRU
aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCh0cnVlKTsKKwlpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja1RoaXJkUGFydHknKTsKIH0KIAogZnVu
Y3Rpb24gZGVjcmVtZW50KCkgewogCS0tZnJhbWVzOwogCWlmICghZnJhbWVzICYmIHdpbmRvdy50
ZXN0UnVubmVyKQotCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0eVN0b3JhZ2VCbG9j
a2luZ0VuYWJsZWQoZmFsc2UpOworCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5KCdBbGxvd0FsbCcpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1wbHVnaW4tcHJp
dmF0ZS1icm93c2luZy10b2dnbGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLW9yaWdpbi1wbHVnaW4tcHJpdmF0ZS1icm93c2luZy10b2dnbGVkLmh0bWwKaW5k
ZXggYzkwNjQxZDJlYTE0MzBkZDExMmQ3YmFlNGEzOGE1M2RlMzFmYWY0Zi4uMTQ3MTI1MWRmNjY2
YzM0ZDA2NTY0ODNlODc1M2M0NzEzMmE5ZjNlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tcGx1Z2luLXByaXZhdGUtYnJvd3NpbmctdG9n
Z2xlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3Jp
Z2luLXBsdWdpbi1wcml2YXRlLWJyb3dzaW5nLXRvZ2dsZWQuaHRtbApAQCAtNyw3ICs3LDcgQEAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAJdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQoKTsKIAl0ZXN0UnVubmVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1ZSk7CiAJdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0JaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFy
dHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKHRydWUpOworCWludGVybmFscy5zZXR0aW5ncy5zZXRT
dG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScpOwogfQogCiBmdW5jdGlvbiBk
ZWNyZW1lbnQoKSB7CkBAIC0yNiw3ICsyNiw3IEBAIGZ1bmN0aW9uIGRlY3JlbWVudCgpIHsKIHdp
bmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbigpIHsKIAktLWZyYW1lczsKIAlpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKLQkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxv
Y2tpbmdFbmFibGVkKGZhbHNlKTsKKwkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9j
a2luZ1BvbGljeSgnQWxsb3dBbGwnKTsKIAkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAJfQog
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmln
aW4tcGx1Z2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9y
aWdpbi1wbHVnaW4uaHRtbAppbmRleCBiN2FlNDEyYjgxOGMyZTE1YWRiNTUwZjNhMGE0MWY5N2E1
MzBhZGVmLi42OWQ3NzFjZTBiYzFlZjhkYzJkM2IyNjgyZDBiYzYxZDM5M2FmOGJlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1wbHVnaW4u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1w
bHVnaW4uaHRtbApAQCAtNSwxMyArNSwxMyBAQCB2YXIgZnJhbWVzID0gMjsKIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewogCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCXRlc3RSdW5uZXIuZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0JaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlT
dG9yYWdlQmxvY2tpbmdFbmFibGVkKHRydWUpOworCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9y
YWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScpOwogfQogCiBmdW5jdGlvbiBkZWNy
ZW1lbnQoKSB7CiAJLS1mcmFtZXM7CiAJaWYgKCFmcmFtZXMgJiYgd2luZG93LnRlc3RSdW5uZXIp
Ci0JCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxl
ZChmYWxzZSk7CisJCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3ko
J0FsbG93QWxsJyk7CiB9CiA8L3NjcmlwdD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tc2Vzc2lvbi1zdG9yYWdlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1zZXNzaW9uLXN0
b3JhZ2UuaHRtbAppbmRleCAwMWYxNTA0MGI0ZDU5MWYxMTY2OGJmMWNjZjEwNzllYzhhYTVlZGVj
Li41ZjlhZmQxNzQzODNjOGRhZjU1YTQ1MDQzMDZiMmI3NGI1ZGJjMTFkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1zZXNzaW9uLXN0b3Jh
Z2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdp
bi1zZXNzaW9uLXN0b3JhZ2UuaHRtbApAQCAtNSwxMyArNSwxMyBAQCB2YXIgZnJhbWVzID0gMjsK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCXRl
c3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0JaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKHRydWUpOworCWludGVybmFscy5zZXR0
aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScpOwogfQogCiBm
dW5jdGlvbiBkZWNyZW1lbnQoKSB7CiAJLS1mcmFtZXM7CiAJaWYgKCFmcmFtZXMgJiYgd2luZG93
LnRlc3RSdW5uZXIpCi0JCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5U3RvcmFnZUJs
b2NraW5nRW5hYmxlZChmYWxzZSk7CisJCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxv
Y2tpbmdQb2xpY3koJ0FsbG93QWxsJyk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXNoYXJlZC13
b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2lu
LXNoYXJlZC13b3JrZXIuaHRtbAppbmRleCA3NzgzZTBkYWU2YTNhZWE4NTk0NDQwM2UxMWI3NjRm
NmRmZDVkMGZiLi5jMGYwMjUxYTMzOWZjZTY2YWEzNDUxYzBiYWY3YmM4OTM1MDBiNmQxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1zaGFy
ZWQtd29ya2VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4tc2hhcmVkLXdvcmtlci5odG1sCkBAIC02LDEzICs2LDEzIEBAIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewogCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCXRlc3RSdW5uZXIuZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCk7CiAJdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0JaW50
ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKHRydWUp
OworCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhp
cmRQYXJ0eScpOwogfQogCiBmdW5jdGlvbiBkZWNyZW1lbnQoKSB7CiAJLS1mcmFtZXM7CiAJaWYg
KCFmcmFtZXMgJiYgd2luZG93LnRlc3RSdW5uZXIpIHsKLQkJaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKGZhbHNlKTsKKwkJaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgnQWxsb3dBbGwnKTsKIAkJdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAJfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13ZWJzcWwuaHRtbAppbmRleCBkYzAzOWE2MWUzNTM5
ZjdhYTA4ZmZmZGI5MTY4MzNmY2VlNzI3ZjYxLi5iODk1N2I5MWM2ODhhNGYzY2M4NjU4Mjc2YmY0
MDAzYzAxNDc0MjBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLW9yaWdpbi13ZWJzcWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi13ZWJzcWwuaHRtbApAQCAtNSwxMyArNSwxMyBAQCB2YXIgZnJh
bWVzID0gMjsKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogCXRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogCXRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0JaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVkKHRydWUpOworCWludGVy
bmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScp
OwogfQogCiBmdW5jdGlvbiBkZWNyZW1lbnQoKSB7CiAJLS1mcmFtZXM7CiAJaWYgKCFmcmFtZXMg
JiYgd2luZG93LnRlc3RSdW5uZXIpCi0JCWludGVybmFscy5zZXR0aW5ncy5zZXRUaGlyZFBhcnR5
U3RvcmFnZUJsb2NraW5nRW5hYmxlZChmYWxzZSk7CisJCWludGVybmFscy5zZXR0aW5ncy5zZXRT
dG9yYWdlQmxvY2tpbmdQb2xpY3koJ0FsbG93QWxsJyk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2lu
LXdvcmtlci13ZWJzcWwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3Mtb3JpZ2luLXdvcmtlci13ZWJzcWwuaHRtbAppbmRleCA0ZWIxN2YwN2JiNDExMmEzNzQzNDgw
YWRmNDA2NDZhOWMyMjNhZjI0Li5jNmMxYjAyZDJiYTg4Nzk2OGY2NDBkYTA0NzhmNWZjZjYwM2Zk
NTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9y
aWdpbi13b3JrZXItd2Vic3FsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLXdlYnNxbC5odG1sCkBAIC04LDcgKzgsNyBAQCBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKIAl0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAl0ZXN0
UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKHRydWUpOwogCXRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1h
aW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOwotCWludGVybmFscy5zZXR0aW5ncy5zZXRU
aGlyZFBhcnR5U3RvcmFnZUJsb2NraW5nRW5hYmxlZCh0cnVlKTsKKwlpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja1RoaXJkUGFydHknKTsKIH0KIAogZG9j
dW1lbnQubG9jYXRpb24gPSAicmVzb3VyY2VzL2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29y
a2VyLXdlYnNxbC5odG1sIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9yZXNvdXJjZXMvZG9jdW1lbnQtZm9yLWNyb3NzLW9yaWdpbi13b3JrZXItd2Vic3FsLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9kb2N1bWVudC1m
b3ItY3Jvc3Mtb3JpZ2luLXdvcmtlci13ZWJzcWwuaHRtbAppbmRleCAyZGMyZTNkNGNhMWI1M2Ez
MzZjNDgwNWMwOGQyMDE5ZGRlMjFlMGM1Li4xYThmNTM1MTI5Yzc1Y2MwZmUyYmZlZmY4NmYzMmVi
NTAzNTg1ZGM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9kb2N1bWVudC1mb3ItY3Jvc3Mtb3JpZ2luLXdvcmtlci13ZWJzcWwuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9kb2N1bWVudC1mb3It
Y3Jvc3Mtb3JpZ2luLXdvcmtlci13ZWJzcWwuaHRtbApAQCAtNiw3ICs2LDcgQEAgdmFyIGZyYW1l
cyA9IDI7CiBmdW5jdGlvbiBkZWNyZW1lbnQoZXZlbnQpIHsKIAktLWZyYW1lczsKIAlpZiAoIWZy
YW1lcyAmJiB3aW5kb3cudGVzdFJ1bm5lcikgewotCQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhp
cmRQYXJ0eVN0b3JhZ2VCbG9ja2luZ0VuYWJsZWQoZmFsc2UpOworCQlpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdBbGxvd0FsbCcpOwogCQl0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3NhbWUtb3JpZ2luLWRvY3VtZW50LWRvbWFpbi1zdG9yYWdlLWFsbG93ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tZG9jdW1lbnQtZG9t
YWluLXN0b3JhZ2UtYWxsb3dlZC5odG1sCmluZGV4IDM4NmZlYTE3MGU1NjBmY2ZiNTg1OTVkMGY3
YTc1ZTgwMTY1YWU2NGMuLjVhZDgzNDk5ZTQwZjcwM2JkMDNkNDliZjZlNmJhZWM2N2RkNjY2ODIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4t
ZG9jdW1lbnQtZG9tYWluLXN0b3JhZ2UtYWxsb3dlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tZG9jdW1lbnQtZG9tYWluLXN0b3JhZ2UtYWxs
b3dlZC5odG1sCkBAIC01LDEzICs1LDEzIEBAIHZhciBmcmFtZXMgPSAyOwogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CiAJdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAJdGVzdFJ1bm5lci5kdW1w
Q2hpbGRGcmFtZXNBc1RleHQoKTsKLQlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VGhpcmRQYXJ0eVN0
b3JhZ2VCbG9ja2luZ0VuYWJsZWQodHJ1ZSk7CisJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSgnQmxvY2tUaGlyZFBhcnR5Jyk7CiB9CiAKIGZ1bmN0aW9uIGRlY3Jl
bWVudCgpIHsKIAktLWZyYW1lczsKIAlpZiAoIWZyYW1lcyAmJiB3aW5kb3cudGVzdFJ1bm5lcikK
LQkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFRoaXJkUGFydHlTdG9yYWdlQmxvY2tpbmdFbmFibGVk
KGZhbHNlKTsKKwkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgn
QWxsb3dBbGwnKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zaGFyZWQtd29ya2VyLWJsb2NrZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdp
bi1zaGFyZWQtd29ya2VyLWJsb2NrZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MzAxYWRh
YWI4YzI5Zjk2Y2UyNDBiODI1ZTNiNWMxMDI5MDRkNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXNoYXJlZC13b3JrZXItYmxv
Y2tlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUaGlzIGlmcmFtZSBzaG91bGQgcmV0
dXJuIGEgc2VjdXJpdHkgZXJyb3I6CisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQ
YXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCitTRUNVUklUWV9FUlIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc2hhcmVkLXdv
cmtlci1ibG9ja2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUt
b3JpZ2luLXNoYXJlZC13b3JrZXItYmxvY2tlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0YTQ3ZTJjZDdm
ZjMzNDkzMDc0OWI1ZTViNWEzYzc1MGUzMGQ1NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXNoYXJlZC13b3JrZXItYmxvY2tl
ZC5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgordmFyIGZy
YW1lcyA9IDE7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKwl0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKwl0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworCWludGVybmFscy5z
ZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrQWxsJyk7Cit9CisKK2Z1bmN0
aW9uIGRlY3JlbWVudCgpIHsKKwktLWZyYW1lczsKKwlpZiAoIWZyYW1lcyAmJiB3aW5kb3cudGVz
dFJ1bm5lcikKKwkJaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgn
QWxsb3dBbGwnKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIGlmcmFt
ZSBzaG91bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJyb3I6PC9wPgorPGlmcmFtZSBzcmM9Imh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1m
b3Itc2hhcmVkLXdvcmtlci5odG1sIiBvbmxvYWQ9ImRlY3JlbWVudCgpIj48L2lmcmFtZT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvc2FtZS1vcmlnaW4tc3RvcmFnZS1ibG9ja2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4tc3RvcmFnZS1ibG9ja2VkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lZTI5ZjNjZDY3NDBlNWE5ZmQwODU4NDg3YWUzNDMwZWZmNDQ1ODc4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1l
LW9yaWdpbi1zdG9yYWdlLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Ro
aXMgaWZyYW1lIHNob3VsZCByZXR1cm4gYSBzZWN1cml0eSBlcnJvcjoKKworCitUaGlzIGlmcmFt
ZSBzaG91bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJyb3I6CisKKworCistLS0tLS0tLQorRnJhbWU6
ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCitTRUNVUklUWV9F
UlIKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTEtLT4tLT4n
CistLS0tLS0tLQorU0VDVVJJVFlfRVJSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3NhbWUtb3JpZ2luLXN0b3JhZ2UtYmxvY2tlZC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi1zdG9yYWdlLWJsb2NrZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NDJhOWExNTVkNTk2ZDRmNmYwYjgzMDAxNzVjNDM0ZjVkYzA3MmUzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdp
bi1zdG9yYWdlLWJsb2NrZWQuaHRtbApAQCAtMCwwICsxLDI0IEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdD4KK3ZhciBmcmFtZXMgPSAyOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisJdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisJdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQo
KTsKKwlpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja0Fs
bCcpOworfQorCitmdW5jdGlvbiBkZWNyZW1lbnQoKSB7CisJLS1mcmFtZXM7CisJaWYgKCFmcmFt
ZXMgJiYgd2luZG93LnRlc3RSdW5uZXIpCisJCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koJ0FsbG93QWxsJyk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHA+VGhpcyBpZnJhbWUgc2hvdWxkIHJldHVybiBhIHNlY3VyaXR5IGVycm9yOjwvcD4KKzxp
ZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3Nz
LW9yaWdpbi1pZnJhbWUtZm9yLWxvY2FsLXN0b3JhZ2UuaHRtbCIgb25sb2FkPSJkZWNyZW1lbnQo
KSI+PC9pZnJhbWU+Cis8cD5UaGlzIGlmcmFtZSBzaG91bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJy
b3I6PC9wPgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNv
dXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3Itc2Vzc2lvbi1zdG9yYWdlLmh0bWwiIG9ubG9h
ZD0iZGVjcmVtZW50KCkiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi13ZWJzcWwtYmxvY2tl
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbWUtb3Jp
Z2luLXdlYnNxbC1ibG9ja2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODMwMWFkYWFiOGMy
OWY5NmNlMjQwYjgyNWUzYjVjMTAyOTA0ZDc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW1lLW9yaWdpbi13ZWJzcWwtYmxvY2tlZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw4IEBACitUaGlzIGlmcmFtZSBzaG91bGQgcmV0dXJuIGEgc2VjdXJp
dHkgZXJyb3I6CisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZy
YW1lMC0tPi0tPicKKy0tLS0tLS0tCitTRUNVUklUWV9FUlIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4td2Vic3FsLWJsb2NrZWQuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FtZS1vcmlnaW4td2Vic3FsLWJsb2Nr
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xNDkwODVkMjcxZjZiMjgyZjUzZTkyYTE0ZTlkZmExOWYxYzBh
MjkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9z
YW1lLW9yaWdpbi13ZWJzcWwtYmxvY2tlZC5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0PgordmFyIGZyYW1lcyA9IDE7CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKwl0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKwl0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1l
c0FzVGV4dCgpOworCWludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3ko
J0Jsb2NrQWxsJyk7Cit9CisKK2Z1bmN0aW9uIGRlY3JlbWVudCgpIHsKKwktLWZyYW1lczsKKwlp
ZiAoIWZyYW1lcyAmJiB3aW5kb3cudGVzdFJ1bm5lcikKKwkJaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgnQWxsb3dBbGwnKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UaGlzIGlmcmFtZSBzaG91bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJyb3I6
PC9wPgorPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJj
ZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3Itd2Vic3FsLmh0bWwiIG9ubG9hZD0iZGVjcmVtZW50
KCkiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTA4YmYyMGUxOWI0ZTMzMWY5MTJkNTIz
NzdhZDE5MjU4NjgzMTEzYi4uNDZhMDEwOWRjZWY4NDMxMDk0M2YxYzgxZTNiMzNmYjliZDRmOTk4
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25z
CkBAIC01NDAsNiArNTQwLDcgQEAgV09OVEZJWCBTS0lQIDogaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvc2hhcmVkLXdvcmtlci1jb25uZWN0LXMKIFdPTlRGSVggU0tJ
UCA6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NoYXJlZC13b3Jr
ZXItY29ubmVjdC1zcmMtYmxvY2tlZC5odG1sID0gVEVYVAogV09OVEZJWCBTS0lQIDogaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tc2hhcmVkLXdvcmtlci5odG1sID0gVEVYVAogV09O
VEZJWCBTS0lQIDogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tc2hhcmVkLXdvcmtl
ci1hbGxvd2VkLmh0bWwgPSBURVhUCitXT05URklYIFNLSVAgOiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3NhbWUtb3JpZ2luLXNoYXJlZC13b3JrZXItYmxvY2tlZC5odG1sID0gVEVYVAogV09OVEZJWCBT
S0lQIDogc3RvcmFnZS9pbmRleGVkZGIvYmFzaWNzLXNoYXJlZC13b3JrZXJzLmh0bWwgPSBQQVNT
CiAKIC8vIHRlc3Rfc2hlbGwgZG9lcyBub3Qgc3VwcG9ydCBtZXNzYWdlIHBvcnRzCg==
</data>
<flag name="review"
          id="174076"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>