<?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>94637</bug_id>
          
          <creation_ts>2012-08-21 14:28:02 -0700</creation_ts>
          <short_desc>Remove UndoManager&apos;s undoscope content attribute</short_desc>
          <delta_ts>2012-08-21 18:42:24 -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>HTML Editing</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sukolsak Sakshuwong">sukolsak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>mifenton</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>701129</commentid>
    <comment_count>0</comment_count>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2012-08-21 14:28:02 -0700</bug_when>
    <thetext>Remove UndoManager&apos;s undoscope content attribute as per discussion on #whatwg.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701179</commentid>
    <comment_count>1</comment_count>
      <attachid>159779</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2012-08-21 15:26:06 -0700</bug_when>
    <thetext>Created attachment 159779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701190</commentid>
    <comment_count>2</comment_count>
      <attachid>159779</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-21 15:30:53 -0700</bug_when>
    <thetext>Comment on attachment 159779
Patch

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

&gt; Source/WebCore/bindings/v8/DOMTransaction.cpp:96
&gt; +    Frame* frame = m_undoManager-&gt;undoScopeHost()-&gt;frame();

We should probably rename undoScopeHost() to document().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701209</commentid>
    <comment_count>3</comment_count>
      <attachid>159782</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2012-08-21 15:46:32 -0700</bug_when>
    <thetext>Created attachment 159782
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701216</commentid>
    <comment_count>4</comment_count>
      <attachid>159782</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-21 15:51:45 -0700</bug_when>
    <thetext>Comment on attachment 159782
Patch for landing

Let&apos;s wait until we can sort out all the details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701219</commentid>
    <comment_count>5</comment_count>
      <attachid>159784</attachid>
    <who name="Sukolsak Sakshuwong">sukolsak</who>
    <bug_when>2012-08-21 15:54:38 -0700</bug_when>
    <thetext>Created attachment 159784
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701465</commentid>
    <comment_count>6</comment_count>
      <attachid>159784</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-21 18:42:21 -0700</bug_when>
    <thetext>Comment on attachment 159784
Patch for landing

Clearing flags on attachment: 159784

Committed r126245: &lt;http://trac.webkit.org/changeset/126245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701466</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-21 18:42:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159779</attachid>
            <date>2012-08-21 15:26:06 -0700</date>
            <delta_ts>2012-08-21 15:46:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94637-20120821152846.patch</filename>
            <type>text/plain</type>
            <size>34477</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNjE5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA4LTIxICBTdWtvbHNh
ayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZW1vdmUgVW5k
b01hbmFnZXIncyB1bmRvc2NvcGUgY29udGVudCBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NjM3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4
aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogYmluZGluZ3MvdjgvRE9NVHJhbnNhY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NVHJhbnNhY3Rpb246OmNhbGxGdW5jdGlvbik6CisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1bmRv
TWFuYWdlcik6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6fkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0Vs
ZW1lbnQuaDoKKyAgICAgICAgKEVsZW1lbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmlkbDoK
KyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChFbGVtZW50UmFyZURh
dGEpOgorICAgICAgICAqIGVkaXRpbmcvVW5kb01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VW5kb01hbmFnZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6
VW5kb01hbmFnZXIpOgorICAgICAgICAoV2ViQ29yZTo6VW5kb01hbmFnZXI6OnRyYW5zYWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjp1bmRvKToKKyAgICAgICAgKFdlYkNvcmU6
OlVuZG9NYW5hZ2VyOjpyZWRvKToKKyAgICAgICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjpjbGVh
clVuZG8pOgorICAgICAgICAoV2ViQ29yZTo6VW5kb01hbmFnZXI6OmNsZWFyUmVkbyk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBlZGl0aW5nL1VuZG9NYW5hZ2VyLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFVuZG9NYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlVu
ZG9NYW5hZ2VyOjp1bmRvU2NvcGVIb3N0KToKKyAgICAgICAgKiBodG1sL0hUTUxBdHRyaWJ1dGVO
YW1lcy5pbjoKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
RWxlbWVudDo6c2V0Q29udGVudEVkaXRhYmxlKToKKwogMjAxMi0wOC0yMSAgVGFpanUgVHN1aWtp
ICA8dHppa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogU3BsaXQgb3V0
IGNydW1iIGxpc3QgcGFydCBvZiBzdHlsZXMgZnJvbSBlbGVtZW50c1BhbmVsLmNzcwpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NVHJhbnNhY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVRyYW5zYWN0aW9uLmNwcAkocmV2aXNp
b24gMTI2MTg0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NVHJhbnNhY3Rpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MywxMSArOTMsNyBAQCB2b2lkIERPTVRyYW5zYWN0aW9u
OjpjYWxsRnVuY3Rpb24oY29uc3QgCiAgICAgaWYgKCFtX3VuZG9NYW5hZ2VyIHx8ICFtX3VuZG9N
YW5hZ2VyLT51bmRvU2NvcGVIb3N0KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IG1fdW5kb01hbmFnZXItPnVuZG9TY29wZUhvc3QoKS0+ZG9jdW1lbnQoKTsK
LSAgICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBGcmFtZSogZnJhbWUg
PSBkb2N1bWVudC0+ZnJhbWUoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBtX3VuZG9NYW5hZ2VyLT51
bmRvU2NvcGVIb3N0KCktPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPnNjcmlw
dCgpLT5jYW5FeGVjdXRlU2NyaXB0cyhBYm91dFRvRXhlY3V0ZVNjcmlwdCkpCiAgICAgICAgIHJl
dHVybjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAxMjYxODQpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTU1
LDcgKzYxNTUsNyBAQCB2b2lkIERvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPCiBQ
YXNzUmVmUHRyPFVuZG9NYW5hZ2VyPiBEb2N1bWVudDo6dW5kb01hbmFnZXIoKQogewogICAgIGlm
ICghbV91bmRvTWFuYWdlcikKLSAgICAgICAgbV91bmRvTWFuYWdlciA9IFVuZG9NYW5hZ2VyOjpj
cmVhdGUodGhpcywgdGhpcyk7CisgICAgICAgIG1fdW5kb01hbmFnZXIgPSBVbmRvTWFuYWdlcjo6
Y3JlYXRlKHRoaXMpOwogICAgIHJldHVybiBtX3VuZG9NYW5hZ2VyOwogfQogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiAxMjYxODQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NiwxMyArMTQ2LDYgQEAgRWxl
bWVudDo6fkVsZW1lbnQoKQogICAgICAgICBBU1NFUlQobV9hdHRyaWJ1dGVEYXRhKTsKICAgICAg
ICAgbV9hdHRyaWJ1dGVEYXRhLT5kZXRhY2hBdHRyT2JqZWN0c0Zyb21FbGVtZW50KHRoaXMpOwog
ICAgIH0KLQotI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCi0gICAgaWYgKGhhc1JhcmVEYXRhKCkg
JiYgZWxlbWVudFJhcmVEYXRhKCktPm1fdW5kb01hbmFnZXIpIHsKLSAgICAgICAgZWxlbWVudFJh
cmVEYXRhKCktPm1fdW5kb01hbmFnZXItPmRpc2Nvbm5lY3QoKTsKLSAgICAgICAgZWxlbWVudFJh
cmVEYXRhKCktPm1fdW5kb01hbmFnZXIuY2xlYXIoKTsKLSAgICB9Ci0jZW5kaWYKIH0KIAogaW5s
aW5lIEVsZW1lbnRSYXJlRGF0YSogRWxlbWVudDo6ZWxlbWVudFJhcmVEYXRhKCkgY29uc3QKQEAg
LTIyMjIsNjEgKzIyMTUsNCBAQCB2b2lkIEVsZW1lbnQ6OmNyZWF0ZU11dGFibGVBdHRyaWJ1dGVE
YXRhCiAgICAgICAgIG1fYXR0cmlidXRlRGF0YSA9IG1fYXR0cmlidXRlRGF0YS0+bWFrZU11dGFi
bGUoKTsKIH0KIAotI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCi1ib29sIEVsZW1lbnQ6OnVuZG9T
Y29wZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgJiYgZWxlbWVudFJhcmVE
YXRhKCktPm1fdW5kb1Njb3BlOwotfQotCi12b2lkIEVsZW1lbnQ6OnNldFVuZG9TY29wZShib29s
IHVuZG9TY29wZSkKLXsKLSAgICBFbGVtZW50UmFyZURhdGEqIGRhdGEgPSBlbnN1cmVFbGVtZW50
UmFyZURhdGEoKTsKLSAgICBkYXRhLT5tX3VuZG9TY29wZSA9IHVuZG9TY29wZTsKLSAgICBpZiAo
IXVuZG9TY29wZSkKLSAgICAgICAgZGlzY29ubmVjdFVuZG9NYW5hZ2VyKCk7Ci19Ci0KLVBhc3NS
ZWZQdHI8VW5kb01hbmFnZXI+IEVsZW1lbnQ6OnVuZG9NYW5hZ2VyKCkKLXsKLSAgICBpZiAoIXVu
ZG9TY29wZSgpIHx8IChpc0NvbnRlbnRFZGl0YWJsZSgpICYmICFpc1Jvb3RFZGl0YWJsZUVsZW1l
bnQoKSkpIHsKLSAgICAgICAgZGlzY29ubmVjdFVuZG9NYW5hZ2VyKCk7Ci0gICAgICAgIHJldHVy
biAwOwotICAgIH0KLSAgICBFbGVtZW50UmFyZURhdGEqIGRhdGEgPSBlbnN1cmVFbGVtZW50UmFy
ZURhdGEoKTsKLSAgICBpZiAoIWRhdGEtPm1fdW5kb01hbmFnZXIpCi0gICAgICAgIGRhdGEtPm1f
dW5kb01hbmFnZXIgPSBVbmRvTWFuYWdlcjo6Y3JlYXRlKGRvY3VtZW50KCksIHRoaXMpOwotICAg
IHJldHVybiBkYXRhLT5tX3VuZG9NYW5hZ2VyOwotfQotCi12b2lkIEVsZW1lbnQ6OmRpc2Nvbm5l
Y3RVbmRvTWFuYWdlcigpCi17Ci0gICAgaWYgKCFoYXNSYXJlRGF0YSgpKQotICAgICAgICByZXR1
cm47Ci0gICAgRWxlbWVudFJhcmVEYXRhKiBkYXRhID0gZWxlbWVudFJhcmVEYXRhKCk7Ci0gICAg
VW5kb01hbmFnZXIqIHVuZG9NYW5hZ2VyID0gZGF0YS0+bV91bmRvTWFuYWdlci5nZXQoKTsKLSAg
ICBpZiAoIXVuZG9NYW5hZ2VyKQotICAgICAgICByZXR1cm47Ci0gICAgdW5kb01hbmFnZXItPmRp
c2Nvbm5lY3QoKTsKLSAgICBkYXRhLT5tX3VuZG9NYW5hZ2VyLmNsZWFyKCk7Ci19Ci0KLXZvaWQg
RWxlbWVudDo6ZGlzY29ubmVjdFVuZG9NYW5hZ2Vyc0luU3VidHJlZSgpCi17Ci0gICAgTm9kZSog
bm9kZSA9IGZpcnN0Q2hpbGQoKTsKLSAgICB3aGlsZSAobm9kZSkgewotICAgICAgICBpZiAobm9k
ZS0+aXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gdG9F
bGVtZW50KG5vZGUpOwotICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmhhc1JhcmVEYXRhKCkgJiYg
ZWxlbWVudC0+ZWxlbWVudFJhcmVEYXRhKCktPm1fdW5kb01hbmFnZXIpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoIW5vZGUtPmlzQ29udGVudEVkaXRhYmxlKCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcodGhpcyk7Ci0gICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbGVt
ZW50LT5kaXNjb25uZWN0VW5kb01hbmFnZXIoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgICBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlzKTsKLSAgICB9Ci19Ci0j
ZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCShy
ZXZpc2lvbiAxMjYxODQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NDAsMTQgKzQ0MCw2IEBAIHB1YmxpYzoKICAgICAgICAgaW5mby5hZGRJbnN0
cnVtZW50ZWRNZW1iZXIobV9hdHRyaWJ1dGVEYXRhKTsKICAgICB9CiAKLSNpZiBFTkFCTEUoVU5E
T19NQU5BR0VSKQotICAgIGJvb2wgdW5kb1Njb3BlKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRVbmRv
U2NvcGUoYm9vbCk7Ci0gICAgUGFzc1JlZlB0cjxVbmRvTWFuYWdlcj4gdW5kb01hbmFnZXIoKTsK
LSAgICB2b2lkIGRpc2Nvbm5lY3RVbmRvTWFuYWdlcigpOwotICAgIHZvaWQgZGlzY29ubmVjdFVu
ZG9NYW5hZ2Vyc0luU3VidHJlZSgpOwotI2VuZGlmCi0KIHByb3RlY3RlZDoKICAgICBFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3Ry
dWN0aW9uVHlwZSB0eXBlKQogICAgICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQsIHR5cGUp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCShyZXZpc2lvbiAxMjYxODQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE0NSwxMSArMTQ1LDYg
QEAgbW9kdWxlIGNvcmUgewogICAgICAgICAvLyBDU1MgUmVnaW9ucyBBUEkKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB3ZWJraXRSZWdpb25PdmVyc2V0OwogCi0jaWYgZGVm
aW5lZChMQU5HVUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCi0gICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9VU5ET19NQU5BR0VSXSBVbmRvTWFuYWdl
ciB1bmRvTWFuYWdlcjsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1VTkRPX01BTkFH
RVIsIFJlZmxlY3RdIGJvb2xlYW4gdW5kb1Njb3BlOwotI2VuZGlmCi0KICNpZiAhZGVmaW5lZChM
QU5HVUFHRV9PQkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCiAgICAgICAgIC8v
IEV2ZW50IGhhbmRsZXIgRE9NIGF0dHJpYnV0ZXMKICAgICAgICAgYXR0cmlidXRlIFtOb3RFbnVt
ZXJhYmxlXSBFdmVudExpc3RlbmVyIG9uYWJvcnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudFJhcmVEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnRSYXJlRGF0YS5oCShyZXZpc2lvbiAxMjYxODQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRl
ICJIVE1MQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgogI2luY2x1ZGUg
Ik5vZGVSYXJlRGF0YS5oIgotI2luY2x1ZGUgIlVuZG9NYW5hZ2VyLmgiCiAjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMTksMTEgKzExOCw2IEBAIHB1
YmxpYzoKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgYm9vbCBtX2NvbnRhaW5zRnVs
bFNjcmVlbkVsZW1lbnQ7CiAjZW5kaWYKLQotI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCi0gICAg
UmVmUHRyPFVuZG9NYW5hZ2VyPiBtX3VuZG9NYW5hZ2VyOwotICAgIGJvb2wgbV91bmRvU2NvcGU7
Ci0jZW5kaWYKIH07CiAKIGlubGluZSBJbnRTaXplIGRlZmF1bHRNaW5pbXVtU2l6ZUZvclJlc2l6
aW5nKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb01hbmFnZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb01hbmFnZXIuY3BwCShyZXZpc2lv
biAxMjYxODQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9NYW5hZ2VyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjksMjQgKzI5LDI1IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIlVuZG9NYW5hZ2VyLmgiCiAKICNpZiBFTkFCTEUoVU5ET19NQU5BR0VSKQog
CisjaW5jbHVkZSAiVW5kb01hbmFnZXIuaCIKKwogI2luY2x1ZGUgIkRPTVRyYW5zYWN0aW9uLmgi
Ci0jaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFVuZG9NYW5hZ2VyPiBVbmRvTWFuYWdlcjo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIE5vZGUqIGhvc3QpCitQYXNz
UmVmUHRyPFVuZG9NYW5hZ2VyPiBVbmRvTWFuYWdlcjo6Y3JlYXRlKERvY3VtZW50KiBob3N0KQog
ewotICAgIFJlZlB0cjxVbmRvTWFuYWdlcj4gdW5kb01hbmFnZXIgPSBhZG9wdFJlZihuZXcgVW5k
b01hbmFnZXIoY29udGV4dCwgaG9zdCkpOworICAgIFJlZlB0cjxVbmRvTWFuYWdlcj4gdW5kb01h
bmFnZXIgPSBhZG9wdFJlZihuZXcgVW5kb01hbmFnZXIoaG9zdCkpOwogICAgIHVuZG9NYW5hZ2Vy
LT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4gdW5kb01hbmFnZXIucmVsZWFzZSgpOwog
fQogCi1VbmRvTWFuYWdlcjo6VW5kb01hbmFnZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgTm9kZSogaG9zdCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQor
VW5kb01hbmFnZXI6OlVuZG9NYW5hZ2VyKERvY3VtZW50KiBob3N0KQorICAgIDogQWN0aXZlRE9N
T2JqZWN0KGhvc3QsIHRoaXMpCiAgICAgLCBtX3VuZG9TY29wZUhvc3QoaG9zdCkKICAgICAsIG1f
aXNJblByb2dyZXNzKGZhbHNlKQogewpAQCAtODksNyArOTAsNyBAQCBzdGF0aWMgaW5saW5lIFBh
c3NPd25QdHI8VW5kb01hbmFnZXJFbnRyCiAKIHZvaWQgVW5kb01hbmFnZXI6OnRyYW5zYWN0KFBh
c3NSZWZQdHI8RE9NVHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uLCBib29sIG1lcmdlLCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKLSAgICBpZiAobV9pc0luUHJvZ3Jlc3MgfHwgIWlzQ29ubmVjdGVkKCkp
IHsKKyAgICBpZiAobV9pc0luUHJvZ3Jlc3MgfHwgIW1fdW5kb1Njb3BlSG9zdCkgewogICAgICAg
ICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEx
MCw3ICsxMTEsNyBAQCB2b2lkIFVuZG9NYW5hZ2VyOjp0cmFuc2FjdChQYXNzUmVmUHRyPERPCiAK
IHZvaWQgVW5kb01hbmFnZXI6OnVuZG8oRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKG1f
aXNJblByb2dyZXNzIHx8ICFpc0Nvbm5lY3RlZCgpKSB7CisgICAgaWYgKG1faXNJblByb2dyZXNz
IHx8ICFtX3VuZG9TY29wZUhvc3QpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMzUsNyArMTM2LDcgQEAgdm9pZCBVbmRvTWFu
YWdlcjo6dW5kbyhFeGNlcHRpb25Db2RlJiBlYwogCiB2b2lkIFVuZG9NYW5hZ2VyOjpyZWRvKEV4
Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlmIChtX2lzSW5Qcm9ncmVzcyB8fCAhaXNDb25uZWN0
ZWQoKSkgeworICAgIGlmIChtX2lzSW5Qcm9ncmVzcyB8fCAhbV91bmRvU2NvcGVIb3N0KSB7CiAg
ICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMTgyLDcgKzE4Myw3IEBAIHZvaWQgVW5kb01hbmFnZXI6OnJlZ2lzdGVyUmVkb1N0ZXAoUGFz
c1IKIAogdm9pZCBVbmRvTWFuYWdlcjo6Y2xlYXJVbmRvKEV4Y2VwdGlvbkNvZGUmIGVjKQogewot
ICAgIGlmIChtX2lzSW5Qcm9ncmVzcyB8fCAhaXNDb25uZWN0ZWQoKSkgeworICAgIGlmIChtX2lz
SW5Qcm9ncmVzcyB8fCAhbV91bmRvU2NvcGVIb3N0KSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTkxLDI4ICsxOTIsMTMgQEAg
dm9pZCBVbmRvTWFuYWdlcjo6Y2xlYXJVbmRvKEV4Y2VwdGlvbkNvZAogCiB2b2lkIFVuZG9NYW5h
Z2VyOjpjbGVhclJlZG8oRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgaWYgKG1faXNJblByb2dy
ZXNzIHx8ICFpc0Nvbm5lY3RlZCgpKSB7CisgICAgaWYgKG1faXNJblByb2dyZXNzIHx8ICFtX3Vu
ZG9TY29wZUhvc3QpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgY2xlYXJTdGFjayhtX3JlZG9TdGFjayk7CiB9CiAKLWJvb2wg
VW5kb01hbmFnZXI6OmlzQ29ubmVjdGVkKCkKLXsKLSAgICBpZiAoIW1fdW5kb1Njb3BlSG9zdCkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghbV91bmRvU2NvcGVIb3N0LT5pc0VsZW1l
bnROb2RlKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0
b0VsZW1lbnQobV91bmRvU2NvcGVIb3N0KTsKLSAgICBBU1NFUlQoZWxlbWVudC0+dW5kb1Njb3Bl
KCkpOwotICAgIGlmIChlbGVtZW50LT5pc0NvbnRlbnRFZGl0YWJsZSgpICYmICFlbGVtZW50LT5p
c1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSkgewotICAgICAgICBlbGVtZW50LT5kaXNjb25uZWN0VW5k
b01hbmFnZXIoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb01h
bmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1VuZG9NYW5hZ2Vy
LmgJKHJldmlzaW9uIDEyNjE4NCkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb01hbmFn
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lmIEVOQUJMRShVTkRPX01B
TkFHRVIpCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIlVu
ZG9TdGVwLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtNDYsMTQgKzQ3LDEzIEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVRyYW5zYWN0aW9uOwotY2xhc3MgTm9kZTsK
IAogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFVuZG9TdGVwPiA+IFVuZG9NYW5hZ2VyRW50cnk7CiB0
eXBlZGVmIFZlY3RvcjxPd25QdHI8VW5kb01hbmFnZXJFbnRyeT4gPiBVbmRvTWFuYWdlclN0YWNr
OwogCiBjbGFzcyBVbmRvTWFuYWdlciA6IHB1YmxpYyBSZWZDb3VudGVkPFVuZG9NYW5hZ2VyPiwg
cHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
VW5kb01hbmFnZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTm9kZSogaG9zdCk7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VW5kb01hbmFnZXI+IGNyZWF0ZShEb2N1bWVudCogaG9z
dCk7CiAgICAgdm9pZCBkaXNjb25uZWN0KCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3AoKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIH5VbmRvTWFuYWdlcigpOwpAQCAtNzUsMTQgKzc1LDEzIEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUGFzc1JlZlB0cjxVbmRvU3RlcD4pOwog
ICAgIHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChQYXNzUmVmUHRyPFVuZG9TdGVwPik7CiAgICAgCi0g
ICAgTm9kZSogdW5kb1Njb3BlSG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5kb1Njb3BlSG9zdDsg
fQorICAgIERvY3VtZW50KiB1bmRvU2NvcGVIb3N0KCkgY29uc3QgeyByZXR1cm4gbV91bmRvU2Nv
cGVIb3N0OyB9CiAgICAgTm9kZSogb3duZXJOb2RlKCkgY29uc3QgeyByZXR1cm4gbV91bmRvU2Nv
cGVIb3N0OyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgVW5kb01hbmFnZXIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIE5vZGUqIGhvc3QpOwotICAgIGJvb2wgaXNDb25uZWN0ZWQoKTsKKyAg
ICBleHBsaWNpdCBVbmRvTWFuYWdlcihEb2N1bWVudCogaG9zdCk7CiAgICAgCi0gICAgTm9kZSog
bV91bmRvU2NvcGVIb3N0OworICAgIERvY3VtZW50KiBtX3VuZG9TY29wZUhvc3Q7CiAgICAgVW5k
b01hbmFnZXJTdGFjayBtX3VuZG9TdGFjazsKICAgICBVbmRvTWFuYWdlclN0YWNrIG1fcmVkb1N0
YWNrOwogICAgIGJvb2wgbV9pc0luUHJvZ3Jlc3M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgkocmV2aXNpb24gMTI2MTg0KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTMxOSw3ICsz
MTksNiBAQCB0b3BtYXJnaW4KIHRyYW5zbGF0ZQogdHJ1ZXNwZWVkCiB0eXBlCi11bmRvc2NvcGUK
IHVzZW1hcAogdmFsaWduCiB2YWx1ZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5j
cHAJKHJldmlzaW9uIDEyNjE4NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsMTAgKzIzNSw2IEBAIHZvaWQgSFRNTEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IEEKICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZS5uYW1lKCkg
PT0gaXRlbXR5cGVBdHRyKSB7CiAgICAgICAgIHNldEl0ZW1UeXBlKGF0dHJpYnV0ZS52YWx1ZSgp
KTsKICNlbmRpZgotI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCi0gICAgfSBlbHNlIGlmIChhdHRy
aWJ1dGUubmFtZSgpID09IHVuZG9zY29wZUF0dHIpIHsKLSAgICAgICAgc2V0VW5kb1Njb3BlKCFh
dHRyaWJ1dGUuaXNOdWxsKCkpOwotI2VuZGlmCiAgICAgfQogLy8gc3RhbmRhcmQgZXZlbnRzCiAg
ICAgZWxzZSBpZiAoYXR0cmlidXRlLm5hbWUoKSA9PSBvbmNsaWNrQXR0cikgewpAQCAtNjYzLDE0
ICs2NTksOCBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRDb250ZW50RWRpdGFibGUoY29uCiAgICAg
ICAgIHNldEF0dHJpYnV0ZShjb250ZW50ZWRpdGFibGVBdHRyLCAicGxhaW50ZXh0LW9ubHkiKTsK
ICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShlbmFibGVkLCAiaW5oZXJpdCIpKQogICAg
ICAgICByZW1vdmVBdHRyaWJ1dGUoY29udGVudGVkaXRhYmxlQXR0cik7Ci0gICAgZWxzZSB7Cisg
ICAgZWxzZQogICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0jaWYgRU5BQkxFKFVORE9fTUFOQUdFUikKLSAgICBpZiAoaXNDb250ZW50RWRpdGFibGUoKSkK
LSAgICAgICAgZGlzY29ubmVjdFVuZG9NYW5hZ2Vyc0luU3VidHJlZSgpOwotI2VuZGlmCiB9CiAK
IGJvb2wgSFRNTEVsZW1lbnQ6OmRyYWdnYWJsZSgpIGNvbnN0CkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
MjYxOTMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxOCBAQAorMjAxMi0wOC0yMSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFVuZG9NYW5hZ2VyJ3MgdW5kb3Njb3BlIGNvbnRlbnQg
YXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NDYzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdlci1yZWVudGVyLWV4cGVjdGVkLnR4dDog
Q29waWVkIGZyb20gTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdlci11
c2UtYWZ0ZXItZnJlZS1leHBlY3RlZC50eHQuCisgICAgICAgICogZWRpdGluZy91bmRvbWFuYWdl
ci91bmRvbWFuYWdlci1yZWVudGVyLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2VkaXRp
bmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItdXNlLWFmdGVyLWZyZWUuaHRtbC4KKyAgICAgICAg
KiBlZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXVzZS1hZnRlci1mcmVlLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBlZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2Vy
LXVzZS1hZnRlci1mcmVlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZWRpdGluZy91bmRvbWFu
YWdlci91bmRvc2NvcGUtYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBlZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9zY29wZS1hdHRyaWJ1dGUuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBlZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9zY29wZWhvc3QtdXNlLWFmdGVyLWZy
ZWUuaHRtbDoKKwogMjAxMi0wOC0yMSAgU3VkYXJzYW5hIE5hZ2luZW5pICA8c3VkYXJzYW5hLm5h
Z2luZW5pQGxpbnV4LmludGVsLmNvbT4KIAogICAgICAgICBjYW52YXMvcGhpbGlwL3Rlc3RzLzJk
LmZpbGxTdHlsZS5wYXJzZS5pbnZhbGlkLnJnYmEtNi5odG1sIGZhaWxzCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXJlZW50ZXItZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFn
ZXItcmVlbnRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEyNjE4NCkJKGZyb20gTGF5b3V0VGVz
dHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdlci11c2UtYWZ0ZXItZnJlZS1leHBlY3Rl
ZC50eHQ6MTI2MTg0KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFu
YWdlci1yZWVudGVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI0IEBA
CitFbnN1cmUgdGhhdCB1bmRvTWFuYWdlciBkb2Vzbid0IGhhdmUgdXNlLWFmdGVyLWZyZWUgdnVs
bmVyYWJpbGl0aWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworY2FsbCB1bmRv
TWFuYWdlci50cmFuc2FjdCgpIGR1cmluZyB0aGUgZXhlY3V0ZSBjYWxsYmFjaworUEFTUyB1bmRv
TWFuYWdlci50cmFuc2FjdCh0cmFuc2FjdGlvbikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZB
TElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitjYWxsIHVuZG9NYW5hZ2VyLnVuZG8o
KSBkdXJpbmcgdGhlIHVuZG8gY2FsbGJhY2sKK1BBU1MgdW5kb01hbmFnZXIudW5kbygpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1Lgor
Y2FsbCB1bmRvTWFuYWdlci5jbGVhclJlZG8oKSBkdXJpbmcgdGhlIHJlZG8gY2FsbGJhY2sKK1BB
U1MgdW5kb01hbmFnZXIucmVkbygpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NF
U1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgorY2FsbCB1bmRvTWFuYWdlci50cmFuc2FjdCgpIHdp
dGggYSB0cmFuc2FjdGlvbiB0aGF0IGRpc2Nvbm5lY3RzIHRoZSB1bmRvTWFuYWdlciB3aGVuIHVu
ZG9pbmcKK1BBU1MgcmVzdWx0IGlzICJleGVjdXRlICIKK2NhbGwgdW5kb01hbmFnZXIudW5kbygp
CitQQVNTIHJlc3VsdCBpcyAiZXhlY3V0ZSB1bmRvICIKK1BBU1MgZWRpdC51bmRvTWFuYWdlciBp
cyBudWxsCitQQVNTIHVuZG9NYW5hZ2VyLmxlbmd0aCBpcyAwCitjYWxsIHVuZG9NYW5hZ2VyLnJl
ZG8oKSB3aGVuIHRoZSB1bmRvTWFuYWdlciBpcyBkaXNjb25uZWN0ZWQKK1BBU1MgdW5kb01hbmFn
ZXIucmVkbygpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00g
RXhjZXB0aW9uIDE1LgorUEFTUyByZXN1bHQgaXMgImV4ZWN1dGUgdW5kbyAiCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVz
dHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdlci1yZWVudGVyLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2Vy
LXJlZW50ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMjYxODQpCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXJlZW50ZXItZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotRW5zdXJlIHRoYXQgdW5kb01hbmFnZXIgZG9lc24n
dCBoYXZlIHVzZS1hZnRlci1mcmVlIHZ1bG5lcmFiaWxpdGllcy4KK0Vuc3VyZSB0aGF0IHVuZG9N
YW5hZ2VyIHRocm93cyBhbiBleGNlcHRpb24gd2hlbiB3ZSByZS1lbnRlciBpdCBieSBjYWxsaW5n
IHVuZG9NYW5hZ2VyIGZ1bmN0aW9ucyBkdXJpbmcgY2FsbGJhY2tzLgogCiBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCiAKQEAgLTksMTUgKzksNiBAQCBjYWxsIHVuZG9NYW5hZ2VyLnVuZG8oKSBk
dXJpbmcgdGhlIHVuZG8gCiBQQVNTIHVuZG9NYW5hZ2VyLnVuZG8oKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KIGNhbGwgdW5kb01h
bmFnZXIuY2xlYXJSZWRvKCkgZHVyaW5nIHRoZSByZWRvIGNhbGxiYWNrCiBQQVNTIHVuZG9NYW5h
Z2VyLnJlZG8oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9N
IEV4Y2VwdGlvbiAxNS4KLWNhbGwgdW5kb01hbmFnZXIudHJhbnNhY3QoKSB3aXRoIGEgdHJhbnNh
Y3Rpb24gdGhhdCBkaXNjb25uZWN0cyB0aGUgdW5kb01hbmFnZXIgd2hlbiB1bmRvaW5nCi1QQVNT
IHJlc3VsdCBpcyAiZXhlY3V0ZSAiCi1jYWxsIHVuZG9NYW5hZ2VyLnVuZG8oKQotUEFTUyByZXN1
bHQgaXMgImV4ZWN1dGUgdW5kbyAiCi1QQVNTIGVkaXQudW5kb01hbmFnZXIgaXMgbnVsbAotUEFT
UyB1bmRvTWFuYWdlci5sZW5ndGggaXMgMAotY2FsbCB1bmRvTWFuYWdlci5yZWRvKCkgd2hlbiB0
aGUgdW5kb01hbmFnZXIgaXMgZGlzY29ubmVjdGVkCi1QQVNTIHVuZG9NYW5hZ2VyLnJlZG8oKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAx
NS4KLVBBU1MgcmVzdWx0IGlzICJleGVjdXRlIHVuZG8gIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Vu
ZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXJlZW50ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXJlZW50ZXIuaHRtbAkocmV2aXNp
b24gMTI2MTg0KQkoZnJvbSBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5h
Z2VyLXVzZS1hZnRlci1mcmVlLmh0bWw6MTI2MTg0KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91
bmRvbWFuYWdlci91bmRvbWFuYWdlci1yZWVudGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0iZWRpdCIgY29udGVudEVkaXRhYmxlPSJ0cnVlIiB1bmRvc2Nv
cGU+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IHVuZG9NYW5hZ2Vy
IGRvZXNuJ3QgaGF2ZSB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMuIik7CisKK3ZhciBl
ZGl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXQiKTsKK3ZhciB1bmRvTWFuYWdlciA9
IGVkaXQudW5kb01hbmFnZXI7CisKK3ZhciB0cmFuc2FjdGlvbiA9IHsKKyAgICAiZXhlY3V0ZSI6
IGZ1bmN0aW9uKCkgeworICAgICAgICB1bmRvTWFuYWdlci50cmFuc2FjdCh7CisgICAgICAgICAg
ICAiZXhlY3V0ZSI6IGZ1bmN0aW9uKCkgeyB9LAorICAgICAgICAgICAgInVuZG8iOiBmdW5jdGlv
bigpIHsgfSwKKyAgICAgICAgICAgICJyZWRvIjogZnVuY3Rpb24oKSB7IH0KKyAgICAgICAgfSk7
CisgICAgfSwKKyAgICAidW5kbyI6IGZ1bmN0aW9uKCkgeworICAgICAgICB1bmRvTWFuYWdlci51
bmRvKCk7CisgICAgfSwKKyAgICAicmVkbyI6IGZ1bmN0aW9uKCkgeworICAgICAgICB1bmRvTWFu
YWdlci5jbGVhclJlZG8oKTsKKyAgICB9Cit9OworCitkZWJ1ZygiY2FsbCB1bmRvTWFuYWdlci50
cmFuc2FjdCgpIGR1cmluZyB0aGUgZXhlY3V0ZSBjYWxsYmFjayIpOworc2hvdWxkVGhyb3coInVu
ZG9NYW5hZ2VyLnRyYW5zYWN0KHRyYW5zYWN0aW9uKSIsICInRXJyb3I6IElOVkFMSURfQUNDRVNT
X0VSUjogRE9NIEV4Y2VwdGlvbiAxNSciKTsKKworZGVidWcoImNhbGwgdW5kb01hbmFnZXIudW5k
bygpIGR1cmluZyB0aGUgdW5kbyBjYWxsYmFjayIpOworc2hvdWxkVGhyb3coInVuZG9NYW5hZ2Vy
LnVuZG8oKSIsICInRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNSci
KTsKKworZGVidWcoImNhbGwgdW5kb01hbmFnZXIuY2xlYXJSZWRvKCkgZHVyaW5nIHRoZSByZWRv
IGNhbGxiYWNrIik7CitzaG91bGRUaHJvdygidW5kb01hbmFnZXIucmVkbygpIiwgIidFcnJvcjog
SU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1JyIpOworCit2YXIgcmVzdWx0ID0g
IiI7Cit1bmRvTWFuYWdlci5jbGVhclVuZG8oKTsKK3VuZG9NYW5hZ2VyLmNsZWFyUmVkbygpOwor
CitkZWJ1ZygiY2FsbCB1bmRvTWFuYWdlci50cmFuc2FjdCgpIHdpdGggYSB0cmFuc2FjdGlvbiB0
aGF0IGRpc2Nvbm5lY3RzIHRoZSB1bmRvTWFuYWdlciB3aGVuIHVuZG9pbmciKTsKK3VuZG9NYW5h
Z2VyLnRyYW5zYWN0KHsKKyAgICAiZXhlY3V0ZSI6IGZ1bmN0aW9uKCkgeworICAgICAgICByZXN1
bHQgKz0gImV4ZWN1dGUgIjsKKyAgICB9LAorICAgICJ1bmRvIjogZnVuY3Rpb24oKSB7CisgICAg
ICAgIHJlc3VsdCArPSAidW5kbyAiOworICAgICAgICBlZGl0LnVuZG9TY29wZSA9IGZhbHNlOwor
ICAgICAgICBnYygpOworICAgIH0sCisgICAgInJlZG8iOiBmdW5jdGlvbigpIHsKKyAgICAgICAg
cmVzdWx0ICs9ICJyZWRvICI7CisgICAgfQorfSk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJl
c3VsdCIsICJleGVjdXRlICIpOworCitkZWJ1ZygiY2FsbCB1bmRvTWFuYWdlci51bmRvKCkiKTsK
K3VuZG9NYW5hZ2VyLnVuZG8oKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImV4
ZWN1dGUgdW5kbyAiKTsKK3Nob3VsZEJlTnVsbCgiZWRpdC51bmRvTWFuYWdlciIpOworc2hvdWxk
QmUoInVuZG9NYW5hZ2VyLmxlbmd0aCIsICIwIik7CisKK2RlYnVnKCJjYWxsIHVuZG9NYW5hZ2Vy
LnJlZG8oKSB3aGVuIHRoZSB1bmRvTWFuYWdlciBpcyBkaXNjb25uZWN0ZWQiKTsKK3Nob3VsZFRo
cm93KCJ1bmRvTWFuYWdlci5yZWRvKCkiLCAiJ0Vycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERP
TSBFeGNlcHRpb24gMTUnIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJleGVj
dXRlIHVuZG8gIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvdW5k
b21hbmFnZXIvdW5kb21hbmFnZXItcmVlbnRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItcmVlbnRlci5odG1sCShyZXZpc2lv
biAxMjYxODQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2Vy
LXJlZW50ZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCwxMiArNCwxMSBAQAogPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwv
aGVhZD4KIDxib2R5PgotPGRpdiBpZD0iZWRpdCIgY29udGVudEVkaXRhYmxlPSJ0cnVlIiB1bmRv
c2NvcGU+PC9kaXY+CiA8c2NyaXB0PgotZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IHVuZG9NYW5h
Z2VyIGRvZXNuJ3QgaGF2ZSB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMuIik7CitkZXNj
cmlwdGlvbigiRW5zdXJlIHRoYXQgdW5kb01hbmFnZXIgdGhyb3dzIGFuIGV4Y2VwdGlvbiB3aGVu
IHdlIHJlLWVudGVyIGl0IGJ5IGNhbGxpbmcgIgorICAgICsgInVuZG9NYW5hZ2VyIGZ1bmN0aW9u
cyBkdXJpbmcgY2FsbGJhY2tzLiIpOwogCi12YXIgZWRpdCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJlZGl0Iik7Ci12YXIgdW5kb01hbmFnZXIgPSBlZGl0LnVuZG9NYW5hZ2VyOwordmFyIHVu
ZG9NYW5hZ2VyID0gZG9jdW1lbnQudW5kb01hbmFnZXI7CiAKIHZhciB0cmFuc2FjdGlvbiA9IHsK
ICAgICAiZXhlY3V0ZSI6IGZ1bmN0aW9uKCkgewpAQCAtMzYsMzYgKzM1LDYgQEAgc2hvdWxkVGhy
b3coInVuZG9NYW5hZ2VyLnVuZG8oKSIsICInRXJybwogZGVidWcoImNhbGwgdW5kb01hbmFnZXIu
Y2xlYXJSZWRvKCkgZHVyaW5nIHRoZSByZWRvIGNhbGxiYWNrIik7CiBzaG91bGRUaHJvdygidW5k
b01hbmFnZXIucmVkbygpIiwgIidFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0
aW9uIDE1JyIpOwogCi12YXIgcmVzdWx0ID0gIiI7Ci11bmRvTWFuYWdlci5jbGVhclVuZG8oKTsK
LXVuZG9NYW5hZ2VyLmNsZWFyUmVkbygpOwotCi1kZWJ1ZygiY2FsbCB1bmRvTWFuYWdlci50cmFu
c2FjdCgpIHdpdGggYSB0cmFuc2FjdGlvbiB0aGF0IGRpc2Nvbm5lY3RzIHRoZSB1bmRvTWFuYWdl
ciB3aGVuIHVuZG9pbmciKTsKLXVuZG9NYW5hZ2VyLnRyYW5zYWN0KHsKLSAgICAiZXhlY3V0ZSI6
IGZ1bmN0aW9uKCkgewotICAgICAgICByZXN1bHQgKz0gImV4ZWN1dGUgIjsKLSAgICB9LAotICAg
ICJ1bmRvIjogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJlc3VsdCArPSAidW5kbyAiOwotICAgICAg
ICBlZGl0LnVuZG9TY29wZSA9IGZhbHNlOwotICAgICAgICBnYygpOwotICAgIH0sCi0gICAgInJl
ZG8iOiBmdW5jdGlvbigpIHsKLSAgICAgICAgcmVzdWx0ICs9ICJyZWRvICI7Ci0gICAgfQotfSk7
Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJleGVjdXRlICIpOwotCi1kZWJ1Zygi
Y2FsbCB1bmRvTWFuYWdlci51bmRvKCkiKTsKLXVuZG9NYW5hZ2VyLnVuZG8oKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVzdWx0IiwgImV4ZWN1dGUgdW5kbyAiKTsKLXNob3VsZEJlTnVsbCgi
ZWRpdC51bmRvTWFuYWdlciIpOwotc2hvdWxkQmUoInVuZG9NYW5hZ2VyLmxlbmd0aCIsICIwIik7
Ci0KLWRlYnVnKCJjYWxsIHVuZG9NYW5hZ2VyLnJlZG8oKSB3aGVuIHRoZSB1bmRvTWFuYWdlciBp
cyBkaXNjb25uZWN0ZWQiKTsKLXNob3VsZFRocm93KCJ1bmRvTWFuYWdlci5yZWRvKCkiLCAiJ0Vy
cm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUnIik7Ci1zaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdCIsICJleGVjdXRlIHVuZG8gIik7Ci0KIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Vk
aXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItdXNlLWFmdGVyLWZyZWUtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFn
ZXItdXNlLWFmdGVyLWZyZWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMjYxODQpCisrKyBMYXlv
dXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXVzZS1hZnRlci1mcmVlLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyNCArMCwwIEBACi1FbnN1cmUgdGhhdCB1
bmRvTWFuYWdlciBkb2Vzbid0IGhhdmUgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0aWVzLgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotY2FsbCB1bmRvTWFuYWdlci50cmFuc2Fj
dCgpIGR1cmluZyB0aGUgZXhlY3V0ZSBjYWxsYmFjawotUEFTUyB1bmRvTWFuYWdlci50cmFuc2Fj
dCh0cmFuc2FjdGlvbikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6
IERPTSBFeGNlcHRpb24gMTUuCi1jYWxsIHVuZG9NYW5hZ2VyLnVuZG8oKSBkdXJpbmcgdGhlIHVu
ZG8gY2FsbGJhY2sKLVBBU1MgdW5kb01hbmFnZXIudW5kbygpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgotY2FsbCB1bmRvTWFuYWdl
ci5jbGVhclJlZG8oKSBkdXJpbmcgdGhlIHJlZG8gY2FsbGJhY2sKLVBBU1MgdW5kb01hbmFnZXIu
cmVkbygpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhj
ZXB0aW9uIDE1LgotY2FsbCB1bmRvTWFuYWdlci50cmFuc2FjdCgpIHdpdGggYSB0cmFuc2FjdGlv
biB0aGF0IGRpc2Nvbm5lY3RzIHRoZSB1bmRvTWFuYWdlciB3aGVuIHVuZG9pbmcKLVBBU1MgcmVz
dWx0IGlzICJleGVjdXRlICIKLWNhbGwgdW5kb01hbmFnZXIudW5kbygpCi1QQVNTIHJlc3VsdCBp
cyAiZXhlY3V0ZSB1bmRvICIKLVBBU1MgZWRpdC51bmRvTWFuYWdlciBpcyBudWxsCi1QQVNTIHVu
ZG9NYW5hZ2VyLmxlbmd0aCBpcyAwCi1jYWxsIHVuZG9NYW5hZ2VyLnJlZG8oKSB3aGVuIHRoZSB1
bmRvTWFuYWdlciBpcyBkaXNjb25uZWN0ZWQKLVBBU1MgdW5kb01hbmFnZXIucmVkbygpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1Lgot
UEFTUyByZXN1bHQgaXMgImV4ZWN1dGUgdW5kbyAiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy91bmRv
bWFuYWdlci91bmRvbWFuYWdlci11c2UtYWZ0ZXItZnJlZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItdXNlLWFmdGVyLWZyZWUu
aHRtbAkocmV2aXNpb24gMTI2MTg0KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdl
ci91bmRvbWFuYWdlci11c2UtYWZ0ZXItZnJlZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcz
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxkaXYgaWQ9ImVkaXQiIGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSIgdW5kb3Njb3Bl
PjwvZGl2PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCB1bmRvTWFuYWdlciBk
b2Vzbid0IGhhdmUgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0aWVzLiIpOwotCi12YXIgZWRp
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlZGl0Iik7Ci12YXIgdW5kb01hbmFnZXIgPSBl
ZGl0LnVuZG9NYW5hZ2VyOwotCi12YXIgdHJhbnNhY3Rpb24gPSB7Ci0gICAgImV4ZWN1dGUiOiBm
dW5jdGlvbigpIHsKLSAgICAgICAgdW5kb01hbmFnZXIudHJhbnNhY3QoewotICAgICAgICAgICAg
ImV4ZWN1dGUiOiBmdW5jdGlvbigpIHsgfSwKLSAgICAgICAgICAgICJ1bmRvIjogZnVuY3Rpb24o
KSB7IH0sCi0gICAgICAgICAgICAicmVkbyI6IGZ1bmN0aW9uKCkgeyB9Ci0gICAgICAgIH0pOwot
ICAgIH0sCi0gICAgInVuZG8iOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdW5kb01hbmFnZXIudW5k
bygpOwotICAgIH0sCi0gICAgInJlZG8iOiBmdW5jdGlvbigpIHsKLSAgICAgICAgdW5kb01hbmFn
ZXIuY2xlYXJSZWRvKCk7Ci0gICAgfQotfTsKLQotZGVidWcoImNhbGwgdW5kb01hbmFnZXIudHJh
bnNhY3QoKSBkdXJpbmcgdGhlIGV4ZWN1dGUgY2FsbGJhY2siKTsKLXNob3VsZFRocm93KCJ1bmRv
TWFuYWdlci50cmFuc2FjdCh0cmFuc2FjdGlvbikiLCAiJ0Vycm9yOiBJTlZBTElEX0FDQ0VTU19F
UlI6IERPTSBFeGNlcHRpb24gMTUnIik7Ci0KLWRlYnVnKCJjYWxsIHVuZG9NYW5hZ2VyLnVuZG8o
KSBkdXJpbmcgdGhlIHVuZG8gY2FsbGJhY2siKTsKLXNob3VsZFRocm93KCJ1bmRvTWFuYWdlci51
bmRvKCkiLCAiJ0Vycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUnIik7
Ci0KLWRlYnVnKCJjYWxsIHVuZG9NYW5hZ2VyLmNsZWFyUmVkbygpIGR1cmluZyB0aGUgcmVkbyBj
YWxsYmFjayIpOwotc2hvdWxkVGhyb3coInVuZG9NYW5hZ2VyLnJlZG8oKSIsICInRXJyb3I6IElO
VkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNSciKTsKLQotdmFyIHJlc3VsdCA9ICIi
OwotdW5kb01hbmFnZXIuY2xlYXJVbmRvKCk7Ci11bmRvTWFuYWdlci5jbGVhclJlZG8oKTsKLQot
ZGVidWcoImNhbGwgdW5kb01hbmFnZXIudHJhbnNhY3QoKSB3aXRoIGEgdHJhbnNhY3Rpb24gdGhh
dCBkaXNjb25uZWN0cyB0aGUgdW5kb01hbmFnZXIgd2hlbiB1bmRvaW5nIik7Ci11bmRvTWFuYWdl
ci50cmFuc2FjdCh7Ci0gICAgImV4ZWN1dGUiOiBmdW5jdGlvbigpIHsKLSAgICAgICAgcmVzdWx0
ICs9ICJleGVjdXRlICI7Ci0gICAgfSwKLSAgICAidW5kbyI6IGZ1bmN0aW9uKCkgewotICAgICAg
ICByZXN1bHQgKz0gInVuZG8gIjsKLSAgICAgICAgZWRpdC51bmRvU2NvcGUgPSBmYWxzZTsKLSAg
ICAgICAgZ2MoKTsKLSAgICB9LAotICAgICJyZWRvIjogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJl
c3VsdCArPSAicmVkbyAiOwotICAgIH0KLX0pOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1
bHQiLCAiZXhlY3V0ZSAiKTsKLQotZGVidWcoImNhbGwgdW5kb01hbmFnZXIudW5kbygpIik7Ci11
bmRvTWFuYWdlci51bmRvKCk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJleGVj
dXRlIHVuZG8gIik7Ci1zaG91bGRCZU51bGwoImVkaXQudW5kb01hbmFnZXIiKTsKLXNob3VsZEJl
KCJ1bmRvTWFuYWdlci5sZW5ndGgiLCAiMCIpOwotCi1kZWJ1ZygiY2FsbCB1bmRvTWFuYWdlci5y
ZWRvKCkgd2hlbiB0aGUgdW5kb01hbmFnZXIgaXMgZGlzY29ubmVjdGVkIik7Ci1zaG91bGRUaHJv
dygidW5kb01hbmFnZXIucmVkbygpIiwgIidFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00g
RXhjZXB0aW9uIDE1JyIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZXhlY3V0
ZSB1bmRvICIpOwotCi12YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLTwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9t
YW5hZ2VyL3VuZG9zY29wZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb3Njb3BlLWF0dHJpYnV0ZS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDEyNjE4NCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFn
ZXIvdW5kb3Njb3BlLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
MjEgKzAsMCBAQAotVGhpcyB0ZXN0cyBlbGVtZW50J3MgdW5kb3Njb3BlIGF0dHJpYnV0ZS4KLQot
UEFTUyBBbiBlbGVtZW50IGhhcyB0aGUgdW5kb3Njb3BlIGF0dHJpYnV0ZSBzZXQgdG8gdHJ1ZS4g
Ci1QQVNTIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBhbiBVbmRvTWFuYWdlciBvYmplY3Qu
IAotUEFTUyBBZnRlciBlbGVtZW50LnVuZG9TY29wZSA9IGZhbHNlLCBlbGVtZW50LnVuZG9NYW5h
Z2VyIHJldHVybnMgbnVsbC4gCi1QQVNTIEFmdGVyIGVsZW1lbnQudW5kb1Njb3BlID0gdHJ1ZSwg
ZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5zIGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4gCi1QQVNT
IEFmdGVyIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCd1bmRvc2NvcGUnKSwgZWxlbWVudC51bmRv
TWFuYWdlciByZXR1cm5zIG51bGwuIAotUEFTUyBBZnRlciBlbGVtZW50LnNldEF0dHJpYnV0ZSgn
dW5kb3Njb3BlJywgJycpLCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgYW4gVW5kb01hbmFn
ZXIgb2JqZWN0LiAKLVBBU1MgQWZ0ZXIgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3VuZG9zY29wZScs
ICd1bmRvc2NvcGUnKSwgZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5zIGFuIFVuZG9NYW5hZ2Vy
IG9iamVjdC4gCi1QQVNTIEFmdGVyIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd1bmRvc2NvcGUnLCAn
Jyk7IGVsZW1lbnQudW5kb1Njb3BlID0gZmFsc2U7LCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVy
bnMgbnVsbC4gCi1QQVNTIEFmdGVyIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCd1bmRvc2NvcGUn
KTsgZWxlbWVudC51bmRvU2NvcGUgPSB0cnVlOywgZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5z
IGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4gCi1QQVNTIEFmdGVyIGVsZW1lbnQudW5kb1Njb3BlID0g
dHJ1ZTsgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3VuZG9zY29wZScpOywgZWxlbWVudC51bmRv
TWFuYWdlciByZXR1cm5zIG51bGwuIAotUEFTUyBBZnRlciBlbGVtZW50LnVuZG9TY29wZSA9IGZh
bHNlOyBlbGVtZW50LnNldEF0dHJpYnV0ZSgndW5kb3Njb3BlJywgJycpOywgZWxlbWVudC51bmRv
TWFuYWdlciByZXR1cm5zIGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4gCi1QQVNTIEFmdGVyIHRoZSBw
YXJhbnQgb2YgZWxlbWVudCBiZWNvbWVzIGVkaXRhYmxlLCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJl
dHVybnMgbnVsbC4gCi1QQVNTIEFmdGVyIHRoZSBwYXJhbnQgb2YgZWxlbWVudCBiZWNvbWVzIG5v
bi1lZGl0YWJsZSwgZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5zIGFuIFVuZG9NYW5hZ2VyIG9i
amVjdC4gCi1QQVNTIEFmdGVyIHRoZSBwYXJhbnQgb2YgZWxlbWVudCBiZWNvbWVzIGVkaXRhYmxl
IHRocm91Z2ggaW5oZXJpdGFuY2UsIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBudWxsLiAK
LVBBU1MgQWZ0ZXIgdGhlIHBhcmFudCBvZiBlbGVtZW50IGJlY29tZXMgbm9uLWVkaXRhYmxlIGFu
ZCBlbGVtZW50IGJlY29tZXMgZWRpdGFibGUsIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBh
biBVbmRvTWFuYWdlciBvYmplY3QuIAotUEFTUyBlbGVtZW50LnVuZG9NYW5hZ2VyIGlzIGRpc2Nv
bm5lY3RlZCB3aGVuIGVsZW1lbnQudW5kb1Njb3BlID0gZmFsc2UuIAotUEFTUyBlbGVtZW50LnVu
ZG9NYW5hZ2VyIGlzIGRpc2Nvbm5lY3RlZCB3aGVuIGl0cyBwYXJlbnQgYmVjb21lcyBlZGl0YWJs
ZS4gCi1QQVNTIFNldHRpbmcgY29udGVudEVkaXRhYmxlIG9mIGFuIGFuY2VzdG9yIG9mIGVsZW1l
bnQgdG8gdHJ1ZSBkb2Vzbid0IGRpc2Nvbm5lY3QgZWxlbWVudC51bmRvTWFuYWdlciBpZiBlbGVt
ZW50IGlzIHN0aWxsIGFuIGVkaXRpbmcgaG9zdC4gCi0KSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvdW5kb21hbmFnZXIvdW5kb3Njb3BlLWF0dHJpYnV0ZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb3Njb3BlLWF0dHJpYnV0ZS5odG1sCShy
ZXZpc2lvbiAxMjYxODQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9z
Y29wZS1hdHRyaWJ1dGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNTkgKzAsMCBAQAotPCFk
b2N0eXBlIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHRpdGxlPnVuZG9zY29wZSBhdHRyaWJ1dGU8
L3RpdGxlPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotVGhpcyB0ZXN0cyBlbGVtZW50J3MgdW5kb3Nj
b3BlIGF0dHJpYnV0ZS4KLQotPGRpdiBpZD0ib3V0ZXJDb250YWluZXIiPgotICAgIDxkaXYgaWQ9
ImlubmVyQ29udGFpbmVyIj4KLSAgICAgICAgPGRpdiBpZD0iZWxlbWVudCIgdW5kb3Njb3BlPjwv
ZGl2PgotICAgIDwvZGl2PgotPC9kaXY+Ci0KLTxzY3JpcHQ+Ci12YXIgb3V0ZXJDb250YWluZXIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0ZXJDb250YWluZXIiKTsKLXZhciBpbm5lckNv
bnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbm5lckNvbnRhaW5lciIpOwotdmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWxlbWVudCIpOwotCi1mdW5jdGlv
biBhc3NlcnRfZWxlbWVudF9oYXNfdW5kb21hbmFnZXIoKSB7Ci0gICAgYXNzZXJ0X2VxdWFscyhl
bGVtZW50LnVuZG9NYW5hZ2VyLnRvU3RyaW5nKCksICJbb2JqZWN0IFVuZG9NYW5hZ2VyXSIpOwot
fQotCi1mdW5jdGlvbiBhc3NlcnRfZWxlbWVudF9ub3RfaGF2ZV91bmRvbWFuYWdlcigpIHsKLSAg
ICBhc3NlcnRfZXF1YWxzKGVsZW1lbnQudW5kb01hbmFnZXIsIG51bGwpOwotfQotCi10ZXN0KGZ1
bmN0aW9uKCkgewotICAgIGFzc2VydF9vd25fcHJvcGVydHkoZWxlbWVudCwgInVuZG9TY29wZSIp
OwotICAgIGFzc2VydF9lcXVhbHMoZWxlbWVudC51bmRvU2NvcGUsIHRydWUpOwotfSwgIkFuIGVs
ZW1lbnQgaGFzIHRoZSB1bmRvc2NvcGUgYXR0cmlidXRlIHNldCB0byB0cnVlLiIpOwotCi10ZXN0
KGZ1bmN0aW9uKCkgewotICAgIGFzc2VydF9lbGVtZW50X2hhc191bmRvbWFuYWdlcigpOwotfSwg
ImVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBhbiBVbmRvTWFuYWdlciBvYmplY3QuIik7Ci0K
LXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgZWxlbWVudC51bmRvU2NvcGUgPSBmYWxzZTsKLQotICAg
IGFzc2VydF9lbGVtZW50X25vdF9oYXZlX3VuZG9tYW5hZ2VyKCk7Ci19LCAiQWZ0ZXIgZWxlbWVu
dC51bmRvU2NvcGUgPSBmYWxzZSwgZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5zIG51bGwuIik7
Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgZWxlbWVudC51bmRvU2NvcGUgPSB0cnVlOwotCi0g
ICAgYXNzZXJ0X2VsZW1lbnRfaGFzX3VuZG9tYW5hZ2VyKCk7Ci19LCAiQWZ0ZXIgZWxlbWVudC51
bmRvU2NvcGUgPSB0cnVlLCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgYW4gVW5kb01hbmFn
ZXIgb2JqZWN0LiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGVsZW1lbnQuc2V0QXR0cmli
dXRlKCd1bmRvc2NvcGUnLCAnJyk7Ci0gICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3VuZG9z
Y29wZScpOwotCi0gICAgYXNzZXJ0X2VsZW1lbnRfbm90X2hhdmVfdW5kb21hbmFnZXIoKTsKLX0s
ICJBZnRlciBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgndW5kb3Njb3BlJyksIGVsZW1lbnQudW5k
b01hbmFnZXIgcmV0dXJucyBudWxsLiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGVsZW1l
bnQuc2V0QXR0cmlidXRlKCd1bmRvc2NvcGUnLCAnJyk7Ci0KLSAgICBhc3NlcnRfZWxlbWVudF9o
YXNfdW5kb21hbmFnZXIoKTsKLX0sICJBZnRlciBlbGVtZW50LnNldEF0dHJpYnV0ZSgndW5kb3Nj
b3BlJywgJycpLCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgYW4gVW5kb01hbmFnZXIgb2Jq
ZWN0LiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd1
bmRvc2NvcGUnLCAndW5kb3Njb3BlJyk7Ci0KLSAgICBhc3NlcnRfZWxlbWVudF9oYXNfdW5kb21h
bmFnZXIoKTsKLX0sICJBZnRlciBlbGVtZW50LnNldEF0dHJpYnV0ZSgndW5kb3Njb3BlJywgJ3Vu
ZG9zY29wZScpLCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgYW4gVW5kb01hbmFnZXIgb2Jq
ZWN0LiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd1
bmRvc2NvcGUnLCAnJyk7Ci0gICAgZWxlbWVudC51bmRvU2NvcGUgPSBmYWxzZTsKLQotICAgIGFz
c2VydF9lbGVtZW50X25vdF9oYXZlX3VuZG9tYW5hZ2VyKCk7Ci19LCAiQWZ0ZXIgZWxlbWVudC5z
ZXRBdHRyaWJ1dGUoJ3VuZG9zY29wZScsICcnKTsgZWxlbWVudC51bmRvU2NvcGUgPSBmYWxzZTss
IGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBudWxsLiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkg
ewotICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCd1bmRvc2NvcGUnKTsKLSAgICBlbGVtZW50
LnVuZG9TY29wZSA9IHRydWU7Ci0KLSAgICBhc3NlcnRfZWxlbWVudF9oYXNfdW5kb21hbmFnZXIo
KTsKLX0sICJBZnRlciBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgndW5kb3Njb3BlJyk7IGVsZW1l
bnQudW5kb1Njb3BlID0gdHJ1ZTssIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBhbiBVbmRv
TWFuYWdlciBvYmplY3QuIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgZWxlbWVudC51bmRv
U2NvcGUgPSB0cnVlOwotICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCd1bmRvc2NvcGUnKTsK
LQotICAgIGFzc2VydF9lbGVtZW50X25vdF9oYXZlX3VuZG9tYW5hZ2VyKCk7Ci19LCAiQWZ0ZXIg
ZWxlbWVudC51bmRvU2NvcGUgPSB0cnVlOyBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgndW5kb3Nj
b3BlJyk7LCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgbnVsbC4iKTsKLQotdGVzdChmdW5j
dGlvbigpIHsKLSAgICBlbGVtZW50LnVuZG9TY29wZSA9IGZhbHNlOwotICAgIGVsZW1lbnQuc2V0
QXR0cmlidXRlKCd1bmRvc2NvcGUnLCAnJyk7Ci0KLSAgICBhc3NlcnRfZWxlbWVudF9oYXNfdW5k
b21hbmFnZXIoKTsKLX0sICJBZnRlciBlbGVtZW50LnVuZG9TY29wZSA9IGZhbHNlOyBlbGVtZW50
LnNldEF0dHJpYnV0ZSgndW5kb3Njb3BlJywgJycpOywgZWxlbWVudC51bmRvTWFuYWdlciByZXR1
cm5zIGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4iKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgICBp
bm5lckNvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSAidHJ1ZSI7Ci0KLSAgICBhc3NlcnRfZWxl
bWVudF9ub3RfaGF2ZV91bmRvbWFuYWdlcigpOwotfSwgIkFmdGVyIHRoZSBwYXJhbnQgb2YgZWxl
bWVudCBiZWNvbWVzIGVkaXRhYmxlLCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgbnVsbC4i
KTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgICBpbm5lckNvbnRhaW5lci5jb250ZW50RWRpdGFi
bGUgPSAiZmFsc2UiOwotCi0gICAgYXNzZXJ0X2VsZW1lbnRfaGFzX3VuZG9tYW5hZ2VyKCk7Ci19
LCAiQWZ0ZXIgdGhlIHBhcmFudCBvZiBlbGVtZW50IGJlY29tZXMgbm9uLWVkaXRhYmxlLCBlbGVt
ZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgYW4gVW5kb01hbmFnZXIgb2JqZWN0LiIpOwotCi10ZXN0
KGZ1bmN0aW9uKCkgewotICAgIG91dGVyQ29udGFpbmVyLmNvbnRlbnRFZGl0YWJsZSA9ICJ0cnVl
IjsKLSAgICBpbm5lckNvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSAiaW5oZXJpdCI7Ci0KLSAg
ICBhc3NlcnRfZWxlbWVudF9ub3RfaGF2ZV91bmRvbWFuYWdlcigpOwotfSwgIkFmdGVyIHRoZSBw
YXJhbnQgb2YgZWxlbWVudCBiZWNvbWVzIGVkaXRhYmxlIHRocm91Z2ggaW5oZXJpdGFuY2UsIGVs
ZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBudWxsLiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewot
ICAgIGlubmVyQ29udGFpbmVyLmNvbnRlbnRFZGl0YWJsZSA9ICJmYWxzZSI7Ci0gICAgZWxlbWVu
dC5jb250ZW50RWRpYWJsZSA9ICJ0cnVlIjsKLQotICAgIGFzc2VydF9lbGVtZW50X2hhc191bmRv
bWFuYWdlcigpOwotfSwgIkFmdGVyIHRoZSBwYXJhbnQgb2YgZWxlbWVudCBiZWNvbWVzIG5vbi1l
ZGl0YWJsZSBhbmQgZWxlbWVudCBiZWNvbWVzIGVkaXRhYmxlLCBlbGVtZW50LnVuZG9NYW5hZ2Vy
IHJldHVybnMgYW4gVW5kb01hbmFnZXIgb2JqZWN0LiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewot
ICAgIGVsZW1lbnQudW5kb01hbmFnZXIudHJhbnNhY3QoeyJleGVjdXRlIjogZnVuY3Rpb24gKCkg
eyB9fSwgZmFsc2UpOwotICAgIAotICAgIGFzc2VydF9lcXVhbHMoZWxlbWVudC51bmRvTWFuYWdl
ci5sZW5ndGgsIDEpOwotCi0gICAgZWxlbWVudC51bmRvU2NvcGUgPSBmYWxzZTsKLSAgICBlbGVt
ZW50LnVuZG9TY29wZSA9IHRydWU7Ci0KLSAgICBhc3NlcnRfZXF1YWxzKGVsZW1lbnQudW5kb01h
bmFnZXIubGVuZ3RoLCAwKTsKLX0sICJlbGVtZW50LnVuZG9NYW5hZ2VyIGlzIGRpc2Nvbm5lY3Rl
ZCB3aGVuIGVsZW1lbnQudW5kb1Njb3BlID0gZmFsc2UuIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7
Ci0gICAgZWxlbWVudC51bmRvTWFuYWdlci50cmFuc2FjdCh7ImV4ZWN1dGUiOiBmdW5jdGlvbiAo
KSB7IH19LCBmYWxzZSk7Ci0gICAgCi0gICAgYXNzZXJ0X2VxdWFscyhlbGVtZW50LnVuZG9NYW5h
Z2VyLmxlbmd0aCwgMSk7Ci0KLSAgICBpbm5lckNvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSAi
dHJ1ZSI7Ci0gICAgaW5uZXJDb250YWluZXIuY29udGVudEVkaXRhYmxlID0gImZhbHNlIjsKLQot
ICAgIGFzc2VydF9lcXVhbHMoZWxlbWVudC51bmRvTWFuYWdlci5sZW5ndGgsIDApOwotfSwgImVs
ZW1lbnQudW5kb01hbmFnZXIgaXMgZGlzY29ubmVjdGVkIHdoZW4gaXRzIHBhcmVudCBiZWNvbWVz
IGVkaXRhYmxlLiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIG91dGVyQ29udGFpbmVyLmNv
bnRlbnRFZGl0YWJsZSA9ICJmYWxzZSI7Ci0gICAgaW5uZXJDb250YWluZXIuY29udGVudEVkaXRh
YmxlID0gImZhbHNlIjsKLSAgICBlbGVtZW50LnVuZG9NYW5hZ2VyLnRyYW5zYWN0KHsiZXhlY3V0
ZSI6IGZ1bmN0aW9uICgpIHsgfX0sIGZhbHNlKTsKLQotICAgIGFzc2VydF9lcXVhbHMoZWxlbWVu
dC51bmRvTWFuYWdlci5sZW5ndGgsIDEpOwotCi0gICAgb3V0ZXJDb250YWluZXIuY29udGVudEVk
aXRhYmxlID0gInRydWUiOwotCi0gICAgYXNzZXJ0X2VxdWFscyhlbGVtZW50LnVuZG9NYW5hZ2Vy
Lmxlbmd0aCwgMSk7Ci19LCAiU2V0dGluZyBjb250ZW50RWRpdGFibGUgb2YgYW4gYW5jZXN0b3Ig
b2YgZWxlbWVudCB0byB0cnVlIGRvZXNuJ3QgZGlzY29ubmVjdCBlbGVtZW50LnVuZG9NYW5hZ2Vy
IGlmIGVsZW1lbnQgaXMgc3RpbGwgYW4gZWRpdGluZyBob3N0LiIpOwotPC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9z
Y29wZWhvc3QtdXNlLWFmdGVyLWZyZWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9zY29wZWhvc3QtdXNlLWFmdGVyLWZyZWUuaHRtbAkocmV2
aXNpb24gMTI2MTg0KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvc2Nv
cGVob3N0LXVzZS1hZnRlci1mcmVlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsMTYgKzQsMTYg
QEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxkaXYgaWQ9ImRpdiIgdW5kb3Njb3BlPjwvZGl2
PgorPGlmcmFtZSBpZD0iZnJhbWUiPjwvaWZyYW1lPgogPHNjcmlwdD4KIGRlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIHRoYXQgdW5kb01hbmFnZXIgZG9lc24ndCBoYXZlIHVzZS1hZnRlci1mcmVlIHZ1
bG5lcmFiaWxpdGllcyAiCiAgICAgKyAiYWZ0ZXIgaXRzIHVuZG9TY29wZUhvc3QgaGFzIGJlZW4g
cmVjbGFpbWVkIGJ5IEdDLiIpOwogCi12YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImRpdiIpOwotdmFyIHVuZG9NYW5hZ2VyID0gZGl2LnVuZG9NYW5hZ2VyOwordmFyIGZyYW1lID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lIik7Cit2YXIgdW5kb01hbmFnZXIgPSBmcmFt
ZS5jb250ZW50RG9jdW1lbnQudW5kb01hbmFnZXI7CiAKLWRpdi5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKGRpdik7Ci1kaXYgPSBudWxsOworZnJhbWUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmcmFt
ZSk7CitmcmFtZSA9IG51bGw7CiBnYygpOwogCiB2YXIgdHJhbnNhY3Rpb24gPSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159782</attachid>
            <date>2012-08-21 15:46:32 -0700</date>
            <delta_ts>2012-08-21 15:54:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-94637-20120821154912.patch</filename>
            <type>text/plain</type>
            <size>35646</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA4LTIxICBTdWtvbHNh
ayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZW1vdmUgVW5k
b01hbmFnZXIncyB1bmRvc2NvcGUgY29udGVudCBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NjM3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gQ292ZXJlZCBieSBleGlz
dGluZyB0ZXN0cy4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L0RPTVRyYW5zYWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVRyYW5zYWN0aW9uOjpjYWxsRnVuY3Rpb24pOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dW5kb01h
bmFnZXIpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6On5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9FbGVt
ZW50Lmg6CisgICAgICAgIChFbGVtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6Cisg
ICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAoRWxlbWVudFJhcmVEYXRh
KToKKyAgICAgICAgKiBlZGl0aW5nL1VuZG9NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlVuZG9NYW5hZ2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VW5kb01hbmFnZXI6OlVu
ZG9NYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjpkaXNjb25uZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjp0cmFuc2FjdCk6CisgICAgICAgIChXZWJD
b3JlOjpVbmRvTWFuYWdlcjo6dW5kbyk6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6
cmVkbyk6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6Y2xlYXJVbmRvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjpjbGVhclJlZG8pOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogZWRpdGluZy9VbmRvTWFuYWdlci5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChVbmRvTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6ZG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6VW5kb01hbmFnZXI6Om93bmVyTm9kZSk6CisgICAg
ICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNldENvbnRlbnRFZGl0YWJsZSk6CisK
IDIwMTItMDgtMjEgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEluZGV4ZWREQjogcmVtb3ZlIG9sZCB1cGRhdGUvb3BlbkN1cnNvciBnbHVlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01UcmFuc2FjdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NVHJhbnNhY3Rpb24uY3BwCShyZXZpc2lv
biAxMjYxOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01UcmFuc2FjdGlvbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTkwLDE0ICs5MCwxMCBAQCB2ODo6SGFuZGxlPHY4OjpGdW5j
dGlvbj4gRE9NVHJhbnNhY3Rpb246CiAKIHZvaWQgRE9NVHJhbnNhY3Rpb246OmNhbGxGdW5jdGlv
bihjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgaWYgKCFtX3VuZG9NYW5hZ2VyIHx8
ICFtX3VuZG9NYW5hZ2VyLT51bmRvU2NvcGVIb3N0KCkpCisgICAgaWYgKCFtX3VuZG9NYW5hZ2Vy
IHx8ICFtX3VuZG9NYW5hZ2VyLT5kb2N1bWVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSBtX3VuZG9NYW5hZ2VyLT51bmRvU2NvcGVIb3N0KCktPmRvY3Vt
ZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgRnJhbWUqIGZyYW1lID0gbV91bmRvTWFu
YWdlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+c2Ny
aXB0KCktPmNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9FeGVjdXRlU2NyaXB0KSkKICAgICAgICAg
cmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDEyNjE5OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYx
NTUsNyArNjE1NSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU8K
IFBhc3NSZWZQdHI8VW5kb01hbmFnZXI+IERvY3VtZW50Ojp1bmRvTWFuYWdlcigpCiB7CiAgICAg
aWYgKCFtX3VuZG9NYW5hZ2VyKQotICAgICAgICBtX3VuZG9NYW5hZ2VyID0gVW5kb01hbmFnZXI6
OmNyZWF0ZSh0aGlzLCB0aGlzKTsKKyAgICAgICAgbV91bmRvTWFuYWdlciA9IFVuZG9NYW5hZ2Vy
OjpjcmVhdGUodGhpcyk7CiAgICAgcmV0dXJuIG1fdW5kb01hbmFnZXI7CiB9CiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDEzICsxNDYsNiBAQCBF
bGVtZW50Ojp+RWxlbWVudCgpCiAgICAgICAgIEFTU0VSVChtX2F0dHJpYnV0ZURhdGEpOwogICAg
ICAgICBtX2F0dHJpYnV0ZURhdGEtPmRldGFjaEF0dHJPYmplY3RzRnJvbUVsZW1lbnQodGhpcyk7
CiAgICAgfQotCi0jaWYgRU5BQkxFKFVORE9fTUFOQUdFUikKLSAgICBpZiAoaGFzUmFyZURhdGEo
KSAmJiBlbGVtZW50UmFyZURhdGEoKS0+bV91bmRvTWFuYWdlcikgewotICAgICAgICBlbGVtZW50
UmFyZURhdGEoKS0+bV91bmRvTWFuYWdlci0+ZGlzY29ubmVjdCgpOwotICAgICAgICBlbGVtZW50
UmFyZURhdGEoKS0+bV91bmRvTWFuYWdlci5jbGVhcigpOwotICAgIH0KLSNlbmRpZgogfQogCiBp
bmxpbmUgRWxlbWVudFJhcmVEYXRhKiBFbGVtZW50OjplbGVtZW50UmFyZURhdGEoKSBjb25zdApA
QCAtMjIyMiw2MSArMjIxNSw0IEBAIHZvaWQgRWxlbWVudDo6Y3JlYXRlTXV0YWJsZUF0dHJpYnV0
ZURhdGEKICAgICAgICAgbV9hdHRyaWJ1dGVEYXRhID0gbV9hdHRyaWJ1dGVEYXRhLT5tYWtlTXV0
YWJsZSgpOwogfQogCi0jaWYgRU5BQkxFKFVORE9fTUFOQUdFUikKLWJvb2wgRWxlbWVudDo6dW5k
b1Njb3BlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiBlbGVtZW50UmFy
ZURhdGEoKS0+bV91bmRvU2NvcGU7Ci19Ci0KLXZvaWQgRWxlbWVudDo6c2V0VW5kb1Njb3BlKGJv
b2wgdW5kb1Njb3BlKQotewotICAgIEVsZW1lbnRSYXJlRGF0YSogZGF0YSA9IGVuc3VyZUVsZW1l
bnRSYXJlRGF0YSgpOwotICAgIGRhdGEtPm1fdW5kb1Njb3BlID0gdW5kb1Njb3BlOwotICAgIGlm
ICghdW5kb1Njb3BlKQotICAgICAgICBkaXNjb25uZWN0VW5kb01hbmFnZXIoKTsKLX0KLQotUGFz
c1JlZlB0cjxVbmRvTWFuYWdlcj4gRWxlbWVudDo6dW5kb01hbmFnZXIoKQotewotICAgIGlmICgh
dW5kb1Njb3BlKCkgfHwgKGlzQ29udGVudEVkaXRhYmxlKCkgJiYgIWlzUm9vdEVkaXRhYmxlRWxl
bWVudCgpKSkgewotICAgICAgICBkaXNjb25uZWN0VW5kb01hbmFnZXIoKTsKLSAgICAgICAgcmV0
dXJuIDA7Ci0gICAgfQotICAgIEVsZW1lbnRSYXJlRGF0YSogZGF0YSA9IGVuc3VyZUVsZW1lbnRS
YXJlRGF0YSgpOwotICAgIGlmICghZGF0YS0+bV91bmRvTWFuYWdlcikKLSAgICAgICAgZGF0YS0+
bV91bmRvTWFuYWdlciA9IFVuZG9NYW5hZ2VyOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGhpcyk7Ci0g
ICAgcmV0dXJuIGRhdGEtPm1fdW5kb01hbmFnZXI7Ci19Ci0KLXZvaWQgRWxlbWVudDo6ZGlzY29u
bmVjdFVuZG9NYW5hZ2VyKCkKLXsKLSAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCi0gICAgICAgIHJl
dHVybjsKLSAgICBFbGVtZW50UmFyZURhdGEqIGRhdGEgPSBlbGVtZW50UmFyZURhdGEoKTsKLSAg
ICBVbmRvTWFuYWdlciogdW5kb01hbmFnZXIgPSBkYXRhLT5tX3VuZG9NYW5hZ2VyLmdldCgpOwot
ICAgIGlmICghdW5kb01hbmFnZXIpCi0gICAgICAgIHJldHVybjsKLSAgICB1bmRvTWFuYWdlci0+
ZGlzY29ubmVjdCgpOwotICAgIGRhdGEtPm1fdW5kb01hbmFnZXIuY2xlYXIoKTsKLX0KLQotdm9p
ZCBFbGVtZW50OjpkaXNjb25uZWN0VW5kb01hbmFnZXJzSW5TdWJ0cmVlKCkKLXsKLSAgICBOb2Rl
KiBub2RlID0gZmlyc3RDaGlsZCgpOwotICAgIHdoaWxlIChub2RlKSB7Ci0gICAgICAgIGlmIChu
b2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKLSAgICAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0
b0VsZW1lbnQobm9kZSk7Ci0gICAgICAgICAgICBpZiAoZWxlbWVudC0+aGFzUmFyZURhdGEoKSAm
JiBlbGVtZW50LT5lbGVtZW50UmFyZURhdGEoKS0+bV91bmRvTWFuYWdlcikgewotICAgICAgICAg
ICAgICAgIGlmICghbm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkgewotICAgICAgICAgICAgICAg
ICAgICBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0U2libGluZyh0aGlzKTsKLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVs
ZW1lbnQtPmRpc2Nvbm5lY3RVbmRvTWFuYWdlcigpOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgICAgIG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKHRoaXMpOwotICAgIH0KLX0K
LSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJ
KHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ0MCwxNCArNDQwLDYgQEAgcHVibGljOgogICAgICAgICBpbmZvLmFkZElu
c3RydW1lbnRlZE1lbWJlcihtX2F0dHJpYnV0ZURhdGEpOwogICAgIH0KIAotI2lmIEVOQUJMRShV
TkRPX01BTkFHRVIpCi0gICAgYm9vbCB1bmRvU2NvcGUoKSBjb25zdDsKLSAgICB2b2lkIHNldFVu
ZG9TY29wZShib29sKTsKLSAgICBQYXNzUmVmUHRyPFVuZG9NYW5hZ2VyPiB1bmRvTWFuYWdlcigp
OwotICAgIHZvaWQgZGlzY29ubmVjdFVuZG9NYW5hZ2VyKCk7Ci0gICAgdm9pZCBkaXNjb25uZWN0
VW5kb01hbmFnZXJzSW5TdWJ0cmVlKCk7Ci0jZW5kaWYKLQogcHJvdGVjdGVkOgogICAgIEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBDb25z
dHJ1Y3Rpb25UeXBlIHR5cGUpCiAgICAgICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCwgdHlw
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwJKHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTQ1LDExICsxNDUs
NiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIENTUyBSZWdpb25zIEFQSQogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdlYmtpdFJlZ2lvbk92ZXJzZXQ7CiAKLSNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1VTkRPX01BTkFHRVJdIFVuZG9NYW5h
Z2VyIHVuZG9NYW5hZ2VyOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVVORE9fTUFO
QUdFUiwgUmVmbGVjdF0gYm9vbGVhbiB1bmRvU2NvcGU7Ci0jZW5kaWYKLQogI2lmICFkZWZpbmVk
KExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAg
Ly8gRXZlbnQgaGFuZGxlciBET00gYXR0cmlidXRlcwogICAgICAgICBhdHRyaWJ1dGUgW05vdEVu
dW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25hYm9ydDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50UmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmgJKHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50UmFyZURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2luY2x1
ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAjaW5jbHVk
ZSAiTm9kZVJhcmVEYXRhLmgiCi0jaW5jbHVkZSAiVW5kb01hbmFnZXIuaCIKICNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExOSwxMSArMTE4LDYgQEAg
cHVibGljOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29sIG1fY29udGFpbnNG
dWxsU2NyZWVuRWxlbWVudDsKICNlbmRpZgotCi0jaWYgRU5BQkxFKFVORE9fTUFOQUdFUikKLSAg
ICBSZWZQdHI8VW5kb01hbmFnZXI+IG1fdW5kb01hbmFnZXI7Ci0gICAgYm9vbCBtX3VuZG9TY29w
ZTsKLSNlbmRpZgogfTsKIAogaW5saW5lIEludFNpemUgZGVmYXVsdE1pbmltdW1TaXplRm9yUmVz
aXppbmcoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmRvTWFuYWdlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmRvTWFuYWdlci5jcHAJKHJldmlz
aW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb01hbmFnZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwyNSArMjksMjYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiVW5kb01hbmFnZXIuaCIKIAogI2lmIEVOQUJMRShVTkRPX01BTkFHRVIp
CiAKKyNpbmNsdWRlICJVbmRvTWFuYWdlci5oIgorCiAjaW5jbHVkZSAiRE9NVHJhbnNhY3Rpb24u
aCIKLSNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8VW5kb01hbmFnZXI+IFVuZG9NYW5hZ2Vy
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTm9kZSogaG9zdCkKK1Bh
c3NSZWZQdHI8VW5kb01hbmFnZXI+IFVuZG9NYW5hZ2VyOjpjcmVhdGUoRG9jdW1lbnQqIGRvY3Vt
ZW50KQogewotICAgIFJlZlB0cjxVbmRvTWFuYWdlcj4gdW5kb01hbmFnZXIgPSBhZG9wdFJlZihu
ZXcgVW5kb01hbmFnZXIoY29udGV4dCwgaG9zdCkpOworICAgIFJlZlB0cjxVbmRvTWFuYWdlcj4g
dW5kb01hbmFnZXIgPSBhZG9wdFJlZihuZXcgVW5kb01hbmFnZXIoZG9jdW1lbnQpKTsKICAgICB1
bmRvTWFuYWdlci0+c3VzcGVuZElmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHVuZG9NYW5hZ2VyLnJl
bGVhc2UoKTsKIH0KIAotVW5kb01hbmFnZXI6OlVuZG9NYW5hZ2VyKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIE5vZGUqIGhvc3QpCi0gICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4
dCwgdGhpcykKLSAgICAsIG1fdW5kb1Njb3BlSG9zdChob3N0KQorVW5kb01hbmFnZXI6OlVuZG9N
YW5hZ2VyKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVu
dCwgdGhpcykKKyAgICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX2lzSW5Qcm9ncmVz
cyhmYWxzZSkKIHsKIH0KQEAgLTY3LDcgKzY4LDcgQEAgc3RhdGljIHZvaWQgY2xlYXJTdGFjayhV
bmRvTWFuYWdlclN0YWNrJgogCiB2b2lkIFVuZG9NYW5hZ2VyOjpkaXNjb25uZWN0KCkKIHsKLSAg
ICBtX3VuZG9TY29wZUhvc3QgPSAwOworICAgIG1fZG9jdW1lbnQgPSAwOwogICAgIGNsZWFyU3Rh
Y2sobV91bmRvU3RhY2spOwogICAgIGNsZWFyU3RhY2sobV9yZWRvU3RhY2spOwogfQpAQCAtODks
NyArOTAsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NPd25QdHI8VW5kb01hbmFnZXJFbnRyCiAKIHZv
aWQgVW5kb01hbmFnZXI6OnRyYW5zYWN0KFBhc3NSZWZQdHI8RE9NVHJhbnNhY3Rpb24+IHRyYW5z
YWN0aW9uLCBib29sIG1lcmdlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAobV9pc0lu
UHJvZ3Jlc3MgfHwgIWlzQ29ubmVjdGVkKCkpIHsKKyAgICBpZiAobV9pc0luUHJvZ3Jlc3MgfHwg
IW1fZG9jdW1lbnQpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0xMDEsNyArMTAyLDcgQEAgdm9pZCBVbmRvTWFuYWdlcjo6dHJh
bnNhY3QoUGFzc1JlZlB0cjxETwogICAgIHRyYW5zYWN0aW9uLT5hcHBseSgpOwogICAgIG1faXNJ
blByb2dyZXNzID0gZmFsc2U7CiAKLSAgICBpZiAoIW1fdW5kb1Njb3BlSG9zdCkKKyAgICBpZiAo
IW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIW1lcmdlIHx8IG1fdW5kb1N0
YWNrLmlzRW1wdHkoKSkKICAgICAgICAgbV91bmRvU3RhY2suYXBwZW5kKGNyZWF0ZVVuZG9NYW5h
Z2VyRW50cnkoKSk7CkBAIC0xMTAsNyArMTExLDcgQEAgdm9pZCBVbmRvTWFuYWdlcjo6dHJhbnNh
Y3QoUGFzc1JlZlB0cjxETwogCiB2b2lkIFVuZG9NYW5hZ2VyOjp1bmRvKEV4Y2VwdGlvbkNvZGUm
IGVjKQogewotICAgIGlmIChtX2lzSW5Qcm9ncmVzcyB8fCAhaXNDb25uZWN0ZWQoKSkgeworICAg
IGlmIChtX2lzSW5Qcm9ncmVzcyB8fCAhbV9kb2N1bWVudCkgewogICAgICAgICBlYyA9IElOVkFM
SURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyNSw3ICsxMjYsNyBA
QCB2b2lkIFVuZG9NYW5hZ2VyOjp1bmRvKEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgICAgIGVudHJ5
W2kgLSAxXS0+dW5hcHBseSgpOwogICAgIG1faXNJblByb2dyZXNzID0gZmFsc2U7CiAKLSAgICBp
ZiAoIW1fdW5kb1Njb3BlSG9zdCkgeworICAgIGlmICghbV9kb2N1bWVudCkgewogICAgICAgICBt
X2luUHJvZ3Jlc3NFbnRyeS5jbGVhcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTM1
LDcgKzEzNiw3IEBAIHZvaWQgVW5kb01hbmFnZXI6OnVuZG8oRXhjZXB0aW9uQ29kZSYgZWMKIAog
dm9pZCBVbmRvTWFuYWdlcjo6cmVkbyhFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAobV9p
c0luUHJvZ3Jlc3MgfHwgIWlzQ29ubmVjdGVkKCkpIHsKKyAgICBpZiAobV9pc0luUHJvZ3Jlc3Mg
fHwgIW1fZG9jdW1lbnQpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0xNTAsNyArMTUxLDcgQEAgdm9pZCBVbmRvTWFuYWdlcjo6
cmVkbyhFeGNlcHRpb25Db2RlJiBlYwogICAgICAgICBlbnRyeVtpIC0gMV0tPnJlYXBwbHkoKTsK
ICAgICBtX2lzSW5Qcm9ncmVzcyA9IGZhbHNlOwogCi0gICAgaWYgKCFtX3VuZG9TY29wZUhvc3Qp
IHsKKyAgICBpZiAoIW1fZG9jdW1lbnQpIHsKICAgICAgICAgbV9pblByb2dyZXNzRW50cnkuY2xl
YXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE4Miw3ICsxODMsNyBAQCB2b2lkIFVu
ZG9NYW5hZ2VyOjpyZWdpc3RlclJlZG9TdGVwKFBhc3NSCiAKIHZvaWQgVW5kb01hbmFnZXI6OmNs
ZWFyVW5kbyhFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAobV9pc0luUHJvZ3Jlc3MgfHwg
IWlzQ29ubmVjdGVkKCkpIHsKKyAgICBpZiAobV9pc0luUHJvZ3Jlc3MgfHwgIW1fZG9jdW1lbnQp
IHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0xOTEsMjggKzE5MiwxMyBAQCB2b2lkIFVuZG9NYW5hZ2VyOjpjbGVhclVuZG8oRXhj
ZXB0aW9uQ29kCiAKIHZvaWQgVW5kb01hbmFnZXI6OmNsZWFyUmVkbyhFeGNlcHRpb25Db2RlJiBl
YykKIHsKLSAgICBpZiAobV9pc0luUHJvZ3Jlc3MgfHwgIWlzQ29ubmVjdGVkKCkpIHsKKyAgICBp
ZiAobV9pc0luUHJvZ3Jlc3MgfHwgIW1fZG9jdW1lbnQpIHsKICAgICAgICAgZWMgPSBJTlZBTElE
X0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2xlYXJTdGFjayhtX3Jl
ZG9TdGFjayk7CiB9CiAKLWJvb2wgVW5kb01hbmFnZXI6OmlzQ29ubmVjdGVkKCkKLXsKLSAgICBp
ZiAoIW1fdW5kb1Njb3BlSG9zdCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghbV91
bmRvU2NvcGVIb3N0LT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IEVsZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1lbnQobV91bmRvU2NvcGVIb3N0KTsKLSAgICBBU1NF
UlQoZWxlbWVudC0+dW5kb1Njb3BlKCkpOwotICAgIGlmIChlbGVtZW50LT5pc0NvbnRlbnRFZGl0
YWJsZSgpICYmICFlbGVtZW50LT5pc1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSkgewotICAgICAgICBl
bGVtZW50LT5kaXNjb25uZWN0VW5kb01hbmFnZXIoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVW5kb01hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1VuZG9NYW5hZ2VyLmgJKHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVW5kb01hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBA
QAogI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhv
bGRlci5oIgogI2luY2x1ZGUgIlVuZG9TdGVwLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpA
QCAtNDYsMTQgKzQ3LDEzIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVRyYW5z
YWN0aW9uOwotY2xhc3MgTm9kZTsKIAogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFVuZG9TdGVwPiA+
IFVuZG9NYW5hZ2VyRW50cnk7CiB0eXBlZGVmIFZlY3RvcjxPd25QdHI8VW5kb01hbmFnZXJFbnRy
eT4gPiBVbmRvTWFuYWdlclN0YWNrOwogCiBjbGFzcyBVbmRvTWFuYWdlciA6IHB1YmxpYyBSZWZD
b3VudGVkPFVuZG9NYW5hZ2VyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8VW5kb01hbmFnZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgTm9kZSogaG9zdCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VW5kb01hbmFnZXI+
IGNyZWF0ZShEb2N1bWVudCogaG9zdCk7CiAgICAgdm9pZCBkaXNjb25uZWN0KCk7CiAgICAgdmly
dHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIH5VbmRvTWFuYWdlcigpOwpA
QCAtNzUsMTQgKzc1LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZ2lzdGVyVW5kb1N0ZXAoUGFz
c1JlZlB0cjxVbmRvU3RlcD4pOwogICAgIHZvaWQgcmVnaXN0ZXJSZWRvU3RlcChQYXNzUmVmUHRy
PFVuZG9TdGVwPik7CiAgICAgCi0gICAgTm9kZSogdW5kb1Njb3BlSG9zdCgpIGNvbnN0IHsgcmV0
dXJuIG1fdW5kb1Njb3BlSG9zdDsgfQotICAgIE5vZGUqIG93bmVyTm9kZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdW5kb1Njb3BlSG9zdDsgfQorICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fZG9jdW1lbnQ7IH0KKyAgICBOb2RlKiBvd25lck5vZGUoKSBjb25zdCB7IHJldHVy
biBtX2RvY3VtZW50OyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgVW5kb01hbmFnZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIE5vZGUqIGhvc3QpOwotICAgIGJvb2wgaXNDb25uZWN0ZWQo
KTsKKyAgICBleHBsaWNpdCBVbmRvTWFuYWdlcihEb2N1bWVudCogaG9zdCk7CiAgICAgCi0gICAg
Tm9kZSogbV91bmRvU2NvcGVIb3N0OworICAgIERvY3VtZW50KiBtX2RvY3VtZW50OwogICAgIFVu
ZG9NYW5hZ2VyU3RhY2sgbV91bmRvU3RhY2s7CiAgICAgVW5kb01hbmFnZXJTdGFjayBtX3JlZG9T
dGFjazsKICAgICBib29sIG1faXNJblByb2dyZXNzOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4JKHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0zMTksNyAr
MzE5LDYgQEAgdG9wbWFyZ2luCiB0cmFuc2xhdGUKIHRydWVzcGVlZAogdHlwZQotdW5kb3Njb3Bl
CiB1c2VtYXAKIHZhbGlnbgogdmFsdWUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxMjYxOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM1LDEwICsyMzUsNiBAQCB2b2lkIEhUTUxFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBBCiAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUubmFtZSgp
ID09IGl0ZW10eXBlQXR0cikgewogICAgICAgICBzZXRJdGVtVHlwZShhdHRyaWJ1dGUudmFsdWUo
KSk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoVU5ET19NQU5BR0VSKQotICAgIH0gZWxzZSBpZiAoYXR0
cmlidXRlLm5hbWUoKSA9PSB1bmRvc2NvcGVBdHRyKSB7Ci0gICAgICAgIHNldFVuZG9TY29wZSgh
YXR0cmlidXRlLmlzTnVsbCgpKTsKLSNlbmRpZgogICAgIH0KIC8vIHN0YW5kYXJkIGV2ZW50cwog
ICAgIGVsc2UgaWYgKGF0dHJpYnV0ZS5uYW1lKCkgPT0gb25jbGlja0F0dHIpIHsKQEAgLTY2Mywx
NCArNjU5LDggQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0Q29udGVudEVkaXRhYmxlKGNvbgogICAg
ICAgICBzZXRBdHRyaWJ1dGUoY29udGVudGVkaXRhYmxlQXR0ciwgInBsYWludGV4dC1vbmx5Iik7
CiAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZW5hYmxlZCwgImluaGVyaXQiKSkKICAg
ICAgICAgcmVtb3ZlQXR0cmlidXRlKGNvbnRlbnRlZGl0YWJsZUF0dHIpOwotICAgIGVsc2Ugewor
ICAgIGVsc2UKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCi0gICAgaWYgKGlzQ29udGVudEVkaXRhYmxlKCkp
Ci0gICAgICAgIGRpc2Nvbm5lY3RVbmRvTWFuYWdlcnNJblN1YnRyZWUoKTsKLSNlbmRpZgogfQog
CiBib29sIEhUTUxFbGVtZW50OjpkcmFnZ2FibGUoKSBjb25zdApJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTI2MTk5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTItMDgtMjEgIFN1a29sc2FrIFNha3NodXdvbmcgIDxzdWtvbHNha0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJlbW92ZSBVbmRvTWFuYWdlcidzIHVuZG9zY29wZSBjb250ZW50
IGF0dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTQ2MzcKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAg
KiBlZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXJlZW50ZXItZXhwZWN0ZWQudHh0OiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXVz
ZS1hZnRlci1mcmVlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBlZGl0aW5nL3VuZG9tYW5hZ2Vy
L3VuZG9tYW5hZ2VyLXJlZW50ZXIuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZWRpdGlu
Zy91bmRvbWFuYWdlci91bmRvbWFuYWdlci11c2UtYWZ0ZXItZnJlZS5odG1sLgorICAgICAgICAq
IGVkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItdXNlLWFmdGVyLWZyZWUtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGVkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXIt
dXNlLWFmdGVyLWZyZWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBlZGl0aW5nL3VuZG9tYW5h
Z2VyL3VuZG9zY29wZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGVkaXRpbmcvdW5kb21hbmFnZXIvdW5kb3Njb3BlLWF0dHJpYnV0ZS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGVkaXRpbmcvdW5kb21hbmFnZXIvdW5kb3Njb3BlaG9zdC11c2UtYWZ0ZXItZnJl
ZS5odG1sOgorCiAyMDEyLTA4LTIxICBUaGlhZ28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5z
YW50b3NAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIEVuYWJsZSBDU1MgVGV4dCBEZWNvcmF0
aW9uIGJ5IGRlZmF1bHQKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5k
b21hbmFnZXItcmVlbnRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdlci1yZWVudGVyLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTI2MTg0KQkoZnJvbSBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9t
YW5hZ2VyLXVzZS1hZnRlci1mcmVlLWV4cGVjdGVkLnR4dDoxMjYxODQpCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXJlZW50ZXItZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjQgQEAKK0Vuc3VyZSB0aGF0IHVuZG9NYW5hZ2VyIGRv
ZXNuJ3QgaGF2ZSB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitjYWxsIHVuZG9NYW5hZ2VyLnRyYW5zYWN0KCkgZHVyaW5nIHRo
ZSBleGVjdXRlIGNhbGxiYWNrCitQQVNTIHVuZG9NYW5hZ2VyLnRyYW5zYWN0KHRyYW5zYWN0aW9u
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlv
biAxNS4KK2NhbGwgdW5kb01hbmFnZXIudW5kbygpIGR1cmluZyB0aGUgdW5kbyBjYWxsYmFjawor
UEFTUyB1bmRvTWFuYWdlci51bmRvKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FD
Q0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitjYWxsIHVuZG9NYW5hZ2VyLmNsZWFyUmVkbygp
IGR1cmluZyB0aGUgcmVkbyBjYWxsYmFjaworUEFTUyB1bmRvTWFuYWdlci5yZWRvKCkgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitj
YWxsIHVuZG9NYW5hZ2VyLnRyYW5zYWN0KCkgd2l0aCBhIHRyYW5zYWN0aW9uIHRoYXQgZGlzY29u
bmVjdHMgdGhlIHVuZG9NYW5hZ2VyIHdoZW4gdW5kb2luZworUEFTUyByZXN1bHQgaXMgImV4ZWN1
dGUgIgorY2FsbCB1bmRvTWFuYWdlci51bmRvKCkKK1BBU1MgcmVzdWx0IGlzICJleGVjdXRlIHVu
ZG8gIgorUEFTUyBlZGl0LnVuZG9NYW5hZ2VyIGlzIG51bGwKK1BBU1MgdW5kb01hbmFnZXIubGVu
Z3RoIGlzIDAKK2NhbGwgdW5kb01hbmFnZXIucmVkbygpIHdoZW4gdGhlIHVuZG9NYW5hZ2VyIGlz
IGRpc2Nvbm5lY3RlZAorUEFTUyB1bmRvTWFuYWdlci5yZWRvKCkgdGhyZXcgZXhjZXB0aW9uIEVy
cm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCitQQVNTIHJlc3VsdCBp
cyAiZXhlY3V0ZSB1bmRvICIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9t
YW5hZ2VyLXJlZW50ZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Vk
aXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItcmVlbnRlci1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDEyNjE4NCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFn
ZXItcmVlbnRlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi1F
bnN1cmUgdGhhdCB1bmRvTWFuYWdlciBkb2Vzbid0IGhhdmUgdXNlLWFmdGVyLWZyZWUgdnVsbmVy
YWJpbGl0aWVzLgorRW5zdXJlIHRoYXQgdW5kb01hbmFnZXIgdGhyb3dzIGFuIGV4Y2VwdGlvbiB3
aGVuIHdlIHJlLWVudGVyIGl0IGJ5IGNhbGxpbmcgdW5kb01hbmFnZXIgZnVuY3Rpb25zIGR1cmlu
ZyBjYWxsYmFja3MuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApAQCAtOSwxNSArOSw2
IEBAIGNhbGwgdW5kb01hbmFnZXIudW5kbygpIGR1cmluZyB0aGUgdW5kbyAKIFBBU1MgdW5kb01h
bmFnZXIudW5kbygpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBE
T00gRXhjZXB0aW9uIDE1LgogY2FsbCB1bmRvTWFuYWdlci5jbGVhclJlZG8oKSBkdXJpbmcgdGhl
IHJlZG8gY2FsbGJhY2sKIFBBU1MgdW5kb01hbmFnZXIucmVkbygpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgotY2FsbCB1bmRvTWFu
YWdlci50cmFuc2FjdCgpIHdpdGggYSB0cmFuc2FjdGlvbiB0aGF0IGRpc2Nvbm5lY3RzIHRoZSB1
bmRvTWFuYWdlciB3aGVuIHVuZG9pbmcKLVBBU1MgcmVzdWx0IGlzICJleGVjdXRlICIKLWNhbGwg
dW5kb01hbmFnZXIudW5kbygpCi1QQVNTIHJlc3VsdCBpcyAiZXhlY3V0ZSB1bmRvICIKLVBBU1Mg
ZWRpdC51bmRvTWFuYWdlciBpcyBudWxsCi1QQVNTIHVuZG9NYW5hZ2VyLmxlbmd0aCBpcyAwCi1j
YWxsIHVuZG9NYW5hZ2VyLnJlZG8oKSB3aGVuIHRoZSB1bmRvTWFuYWdlciBpcyBkaXNjb25uZWN0
ZWQKLVBBU1MgdW5kb01hbmFnZXIucmVkbygpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJ
RF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgotUEFTUyByZXN1bHQgaXMgImV4ZWN1dGUg
dW5kbyAiCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
SW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItcmVlbnRl
ci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5k
b21hbmFnZXItcmVlbnRlci5odG1sCShyZXZpc2lvbiAxMjYxODQpCShmcm9tIExheW91dFRlc3Rz
L2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItdXNlLWFmdGVyLWZyZWUuaHRtbDoxMjYx
ODQpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXJlZW50
ZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJlZGl0IiBj
b250ZW50RWRpdGFibGU9InRydWUiIHVuZG9zY29wZT48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiRW5zdXJlIHRoYXQgdW5kb01hbmFnZXIgZG9lc24ndCBoYXZlIHVzZS1hZnRlci1mcmVl
IHZ1bG5lcmFiaWxpdGllcy4iKTsKKwordmFyIGVkaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZWRpdCIpOwordmFyIHVuZG9NYW5hZ2VyID0gZWRpdC51bmRvTWFuYWdlcjsKKwordmFyIHRy
YW5zYWN0aW9uID0geworICAgICJleGVjdXRlIjogZnVuY3Rpb24oKSB7CisgICAgICAgIHVuZG9N
YW5hZ2VyLnRyYW5zYWN0KHsKKyAgICAgICAgICAgICJleGVjdXRlIjogZnVuY3Rpb24oKSB7IH0s
CisgICAgICAgICAgICAidW5kbyI6IGZ1bmN0aW9uKCkgeyB9LAorICAgICAgICAgICAgInJlZG8i
OiBmdW5jdGlvbigpIHsgfQorICAgICAgICB9KTsKKyAgICB9LAorICAgICJ1bmRvIjogZnVuY3Rp
b24oKSB7CisgICAgICAgIHVuZG9NYW5hZ2VyLnVuZG8oKTsKKyAgICB9LAorICAgICJyZWRvIjog
ZnVuY3Rpb24oKSB7CisgICAgICAgIHVuZG9NYW5hZ2VyLmNsZWFyUmVkbygpOworICAgIH0KK307
CisKK2RlYnVnKCJjYWxsIHVuZG9NYW5hZ2VyLnRyYW5zYWN0KCkgZHVyaW5nIHRoZSBleGVjdXRl
IGNhbGxiYWNrIik7CitzaG91bGRUaHJvdygidW5kb01hbmFnZXIudHJhbnNhY3QodHJhbnNhY3Rp
b24pIiwgIidFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1JyIpOwor
CitkZWJ1ZygiY2FsbCB1bmRvTWFuYWdlci51bmRvKCkgZHVyaW5nIHRoZSB1bmRvIGNhbGxiYWNr
Iik7CitzaG91bGRUaHJvdygidW5kb01hbmFnZXIudW5kbygpIiwgIidFcnJvcjogSU5WQUxJRF9B
Q0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1JyIpOworCitkZWJ1ZygiY2FsbCB1bmRvTWFuYWdl
ci5jbGVhclJlZG8oKSBkdXJpbmcgdGhlIHJlZG8gY2FsbGJhY2siKTsKK3Nob3VsZFRocm93KCJ1
bmRvTWFuYWdlci5yZWRvKCkiLCAiJ0Vycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNl
cHRpb24gMTUnIik7CisKK3ZhciByZXN1bHQgPSAiIjsKK3VuZG9NYW5hZ2VyLmNsZWFyVW5kbygp
OwordW5kb01hbmFnZXIuY2xlYXJSZWRvKCk7CisKK2RlYnVnKCJjYWxsIHVuZG9NYW5hZ2VyLnRy
YW5zYWN0KCkgd2l0aCBhIHRyYW5zYWN0aW9uIHRoYXQgZGlzY29ubmVjdHMgdGhlIHVuZG9NYW5h
Z2VyIHdoZW4gdW5kb2luZyIpOwordW5kb01hbmFnZXIudHJhbnNhY3QoeworICAgICJleGVjdXRl
IjogZnVuY3Rpb24oKSB7CisgICAgICAgIHJlc3VsdCArPSAiZXhlY3V0ZSAiOworICAgIH0sCisg
ICAgInVuZG8iOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmVzdWx0ICs9ICJ1bmRvICI7CisgICAg
ICAgIGVkaXQudW5kb1Njb3BlID0gZmFsc2U7CisgICAgICAgIGdjKCk7CisgICAgfSwKKyAgICAi
cmVkbyI6IGZ1bmN0aW9uKCkgeworICAgICAgICByZXN1bHQgKz0gInJlZG8gIjsKKyAgICB9Cit9
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImV4ZWN1dGUgIik7CisKK2RlYnVn
KCJjYWxsIHVuZG9NYW5hZ2VyLnVuZG8oKSIpOwordW5kb01hbmFnZXIudW5kbygpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZXhlY3V0ZSB1bmRvICIpOworc2hvdWxkQmVOdWxs
KCJlZGl0LnVuZG9NYW5hZ2VyIik7CitzaG91bGRCZSgidW5kb01hbmFnZXIubGVuZ3RoIiwgIjAi
KTsKKworZGVidWcoImNhbGwgdW5kb01hbmFnZXIucmVkbygpIHdoZW4gdGhlIHVuZG9NYW5hZ2Vy
IGlzIGRpc2Nvbm5lY3RlZCIpOworc2hvdWxkVGhyb3coInVuZG9NYW5hZ2VyLnJlZG8oKSIsICIn
RXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNSciKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygicmVzdWx0IiwgImV4ZWN1dGUgdW5kbyAiKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdlci1yZWVudGVy
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRv
bWFuYWdlci1yZWVudGVyLmh0bWwJKHJldmlzaW9uIDEyNjE4NCkKKysrIExheW91dFRlc3RzL2Vk
aXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItcmVlbnRlci5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC00LDEyICs0LDExIEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08ZGl2IGlkPSJlZGl0
IiBjb250ZW50RWRpdGFibGU9InRydWUiIHVuZG9zY29wZT48L2Rpdj4KIDxzY3JpcHQ+Ci1kZXNj
cmlwdGlvbigiRW5zdXJlIHRoYXQgdW5kb01hbmFnZXIgZG9lc24ndCBoYXZlIHVzZS1hZnRlci1m
cmVlIHZ1bG5lcmFiaWxpdGllcy4iKTsKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgdGhhdCB1bmRvTWFu
YWdlciB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW4gd2UgcmUtZW50ZXIgaXQgYnkgY2FsbGluZyAi
CisgICAgKyAidW5kb01hbmFnZXIgZnVuY3Rpb25zIGR1cmluZyBjYWxsYmFja3MuIik7CiAKLXZh
ciBlZGl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXQiKTsKLXZhciB1bmRvTWFuYWdl
ciA9IGVkaXQudW5kb01hbmFnZXI7Cit2YXIgdW5kb01hbmFnZXIgPSBkb2N1bWVudC51bmRvTWFu
YWdlcjsKIAogdmFyIHRyYW5zYWN0aW9uID0gewogICAgICJleGVjdXRlIjogZnVuY3Rpb24oKSB7
CkBAIC0zNiwzNiArMzUsNiBAQCBzaG91bGRUaHJvdygidW5kb01hbmFnZXIudW5kbygpIiwgIidF
cnJvCiBkZWJ1ZygiY2FsbCB1bmRvTWFuYWdlci5jbGVhclJlZG8oKSBkdXJpbmcgdGhlIHJlZG8g
Y2FsbGJhY2siKTsKIHNob3VsZFRocm93KCJ1bmRvTWFuYWdlci5yZWRvKCkiLCAiJ0Vycm9yOiBJ
TlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUnIik7CiAKLXZhciByZXN1bHQgPSAi
IjsKLXVuZG9NYW5hZ2VyLmNsZWFyVW5kbygpOwotdW5kb01hbmFnZXIuY2xlYXJSZWRvKCk7Ci0K
LWRlYnVnKCJjYWxsIHVuZG9NYW5hZ2VyLnRyYW5zYWN0KCkgd2l0aCBhIHRyYW5zYWN0aW9uIHRo
YXQgZGlzY29ubmVjdHMgdGhlIHVuZG9NYW5hZ2VyIHdoZW4gdW5kb2luZyIpOwotdW5kb01hbmFn
ZXIudHJhbnNhY3QoewotICAgICJleGVjdXRlIjogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJlc3Vs
dCArPSAiZXhlY3V0ZSAiOwotICAgIH0sCi0gICAgInVuZG8iOiBmdW5jdGlvbigpIHsKLSAgICAg
ICAgcmVzdWx0ICs9ICJ1bmRvICI7Ci0gICAgICAgIGVkaXQudW5kb1Njb3BlID0gZmFsc2U7Ci0g
ICAgICAgIGdjKCk7Ci0gICAgfSwKLSAgICAicmVkbyI6IGZ1bmN0aW9uKCkgewotICAgICAgICBy
ZXN1bHQgKz0gInJlZG8gIjsKLSAgICB9Ci19KTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygicmVz
dWx0IiwgImV4ZWN1dGUgIik7Ci0KLWRlYnVnKCJjYWxsIHVuZG9NYW5hZ2VyLnVuZG8oKSIpOwot
dW5kb01hbmFnZXIudW5kbygpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZXhl
Y3V0ZSB1bmRvICIpOwotc2hvdWxkQmVOdWxsKCJlZGl0LnVuZG9NYW5hZ2VyIik7Ci1zaG91bGRC
ZSgidW5kb01hbmFnZXIubGVuZ3RoIiwgIjAiKTsKLQotZGVidWcoImNhbGwgdW5kb01hbmFnZXIu
cmVkbygpIHdoZW4gdGhlIHVuZG9NYW5hZ2VyIGlzIGRpc2Nvbm5lY3RlZCIpOwotc2hvdWxkVGhy
b3coInVuZG9NYW5hZ2VyLnJlZG8oKSIsICInRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9N
IEV4Y2VwdGlvbiAxNSciKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygicmVzdWx0IiwgImV4ZWN1
dGUgdW5kbyAiKTsKLQogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdl
ci11c2UtYWZ0ZXItZnJlZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdlci11c2UtYWZ0ZXItZnJlZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDEyNjE5OSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIv
dW5kb21hbmFnZXItdXNlLWFmdGVyLWZyZWUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDI0ICswLDAgQEAKLUVuc3VyZSB0aGF0IHVuZG9NYW5hZ2VyIGRvZXNuJ3QgaGF2ZSB1c2Ut
YWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1jYWxsIHVuZG9NYW5hZ2VyLnRyYW5zYWN0KCkgZHVyaW5nIHRoZSBleGVjdXRlIGNhbGxi
YWNrCi1QQVNTIHVuZG9NYW5hZ2VyLnRyYW5zYWN0KHRyYW5zYWN0aW9uKSB0aHJldyBleGNlcHRp
b24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KLWNhbGwgdW5k
b01hbmFnZXIudW5kbygpIGR1cmluZyB0aGUgdW5kbyBjYWxsYmFjawotUEFTUyB1bmRvTWFuYWdl
ci51bmRvKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBF
eGNlcHRpb24gMTUuCi1jYWxsIHVuZG9NYW5hZ2VyLmNsZWFyUmVkbygpIGR1cmluZyB0aGUgcmVk
byBjYWxsYmFjawotUEFTUyB1bmRvTWFuYWdlci5yZWRvKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCi1jYWxsIHVuZG9NYW5hZ2Vy
LnRyYW5zYWN0KCkgd2l0aCBhIHRyYW5zYWN0aW9uIHRoYXQgZGlzY29ubmVjdHMgdGhlIHVuZG9N
YW5hZ2VyIHdoZW4gdW5kb2luZwotUEFTUyByZXN1bHQgaXMgImV4ZWN1dGUgIgotY2FsbCB1bmRv
TWFuYWdlci51bmRvKCkKLVBBU1MgcmVzdWx0IGlzICJleGVjdXRlIHVuZG8gIgotUEFTUyBlZGl0
LnVuZG9NYW5hZ2VyIGlzIG51bGwKLVBBU1MgdW5kb01hbmFnZXIubGVuZ3RoIGlzIDAKLWNhbGwg
dW5kb01hbmFnZXIucmVkbygpIHdoZW4gdGhlIHVuZG9NYW5hZ2VyIGlzIGRpc2Nvbm5lY3RlZAot
UEFTUyB1bmRvTWFuYWdlci5yZWRvKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FD
Q0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCi1QQVNTIHJlc3VsdCBpcyAiZXhlY3V0ZSB1bmRv
ICIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCklu
ZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXVzZS1hZnRl
ci1mcmVlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdl
ci91bmRvbWFuYWdlci11c2UtYWZ0ZXItZnJlZS5odG1sCShyZXZpc2lvbiAxMjYxOTkpCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXVzZS1hZnRlci1mcmVl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNzMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iZWRpdCIgY29u
dGVudEVkaXRhYmxlPSJ0cnVlIiB1bmRvc2NvcGU+PC9kaXY+Ci08c2NyaXB0PgotZGVzY3JpcHRp
b24oIkVuc3VyZSB0aGF0IHVuZG9NYW5hZ2VyIGRvZXNuJ3QgaGF2ZSB1c2UtYWZ0ZXItZnJlZSB2
dWxuZXJhYmlsaXRpZXMuIik7Ci0KLXZhciBlZGl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImVkaXQiKTsKLXZhciB1bmRvTWFuYWdlciA9IGVkaXQudW5kb01hbmFnZXI7Ci0KLXZhciB0cmFu
c2FjdGlvbiA9IHsKLSAgICAiZXhlY3V0ZSI6IGZ1bmN0aW9uKCkgewotICAgICAgICB1bmRvTWFu
YWdlci50cmFuc2FjdCh7Ci0gICAgICAgICAgICAiZXhlY3V0ZSI6IGZ1bmN0aW9uKCkgeyB9LAot
ICAgICAgICAgICAgInVuZG8iOiBmdW5jdGlvbigpIHsgfSwKLSAgICAgICAgICAgICJyZWRvIjog
ZnVuY3Rpb24oKSB7IH0KLSAgICAgICAgfSk7Ci0gICAgfSwKLSAgICAidW5kbyI6IGZ1bmN0aW9u
KCkgewotICAgICAgICB1bmRvTWFuYWdlci51bmRvKCk7Ci0gICAgfSwKLSAgICAicmVkbyI6IGZ1
bmN0aW9uKCkgewotICAgICAgICB1bmRvTWFuYWdlci5jbGVhclJlZG8oKTsKLSAgICB9Ci19Owot
Ci1kZWJ1ZygiY2FsbCB1bmRvTWFuYWdlci50cmFuc2FjdCgpIGR1cmluZyB0aGUgZXhlY3V0ZSBj
YWxsYmFjayIpOwotc2hvdWxkVGhyb3coInVuZG9NYW5hZ2VyLnRyYW5zYWN0KHRyYW5zYWN0aW9u
KSIsICInRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNSciKTsKLQot
ZGVidWcoImNhbGwgdW5kb01hbmFnZXIudW5kbygpIGR1cmluZyB0aGUgdW5kbyBjYWxsYmFjayIp
Owotc2hvdWxkVGhyb3coInVuZG9NYW5hZ2VyLnVuZG8oKSIsICInRXJyb3I6IElOVkFMSURfQUND
RVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNSciKTsKLQotZGVidWcoImNhbGwgdW5kb01hbmFnZXIu
Y2xlYXJSZWRvKCkgZHVyaW5nIHRoZSByZWRvIGNhbGxiYWNrIik7Ci1zaG91bGRUaHJvdygidW5k
b01hbmFnZXIucmVkbygpIiwgIidFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0
aW9uIDE1JyIpOwotCi12YXIgcmVzdWx0ID0gIiI7Ci11bmRvTWFuYWdlci5jbGVhclVuZG8oKTsK
LXVuZG9NYW5hZ2VyLmNsZWFyUmVkbygpOwotCi1kZWJ1ZygiY2FsbCB1bmRvTWFuYWdlci50cmFu
c2FjdCgpIHdpdGggYSB0cmFuc2FjdGlvbiB0aGF0IGRpc2Nvbm5lY3RzIHRoZSB1bmRvTWFuYWdl
ciB3aGVuIHVuZG9pbmciKTsKLXVuZG9NYW5hZ2VyLnRyYW5zYWN0KHsKLSAgICAiZXhlY3V0ZSI6
IGZ1bmN0aW9uKCkgewotICAgICAgICByZXN1bHQgKz0gImV4ZWN1dGUgIjsKLSAgICB9LAotICAg
ICJ1bmRvIjogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJlc3VsdCArPSAidW5kbyAiOwotICAgICAg
ICBlZGl0LnVuZG9TY29wZSA9IGZhbHNlOwotICAgICAgICBnYygpOwotICAgIH0sCi0gICAgInJl
ZG8iOiBmdW5jdGlvbigpIHsKLSAgICAgICAgcmVzdWx0ICs9ICJyZWRvICI7Ci0gICAgfQotfSk7
Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJleGVjdXRlICIpOwotCi1kZWJ1Zygi
Y2FsbCB1bmRvTWFuYWdlci51bmRvKCkiKTsKLXVuZG9NYW5hZ2VyLnVuZG8oKTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVzdWx0IiwgImV4ZWN1dGUgdW5kbyAiKTsKLXNob3VsZEJlTnVsbCgi
ZWRpdC51bmRvTWFuYWdlciIpOwotc2hvdWxkQmUoInVuZG9NYW5hZ2VyLmxlbmd0aCIsICIwIik7
Ci0KLWRlYnVnKCJjYWxsIHVuZG9NYW5hZ2VyLnJlZG8oKSB3aGVuIHRoZSB1bmRvTWFuYWdlciBp
cyBkaXNjb25uZWN0ZWQiKTsKLXNob3VsZFRocm93KCJ1bmRvTWFuYWdlci5yZWRvKCkiLCAiJ0Vy
cm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUnIik7Ci1zaG91bGRCZUVx
dWFsVG9TdHJpbmcoInJlc3VsdCIsICJleGVjdXRlIHVuZG8gIik7Ci0KLXZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb3Njb3BlLWF0dHJpYnV0ZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdl
ci91bmRvc2NvcGUtYXR0cmlidXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTI2MTk5KQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvc2NvcGUtYXR0cmlidXRlLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyMSArMCwwIEBACi1UaGlzIHRlc3RzIGVsZW1l
bnQncyB1bmRvc2NvcGUgYXR0cmlidXRlLgotCi1QQVNTIEFuIGVsZW1lbnQgaGFzIHRoZSB1bmRv
c2NvcGUgYXR0cmlidXRlIHNldCB0byB0cnVlLiAKLVBBU1MgZWxlbWVudC51bmRvTWFuYWdlciBy
ZXR1cm5zIGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4gCi1QQVNTIEFmdGVyIGVsZW1lbnQudW5kb1Nj
b3BlID0gZmFsc2UsIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBudWxsLiAKLVBBU1MgQWZ0
ZXIgZWxlbWVudC51bmRvU2NvcGUgPSB0cnVlLCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMg
YW4gVW5kb01hbmFnZXIgb2JqZWN0LiAKLVBBU1MgQWZ0ZXIgZWxlbWVudC5yZW1vdmVBdHRyaWJ1
dGUoJ3VuZG9zY29wZScpLCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgbnVsbC4gCi1QQVNT
IEFmdGVyIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd1bmRvc2NvcGUnLCAnJyksIGVsZW1lbnQudW5k
b01hbmFnZXIgcmV0dXJucyBhbiBVbmRvTWFuYWdlciBvYmplY3QuIAotUEFTUyBBZnRlciBlbGVt
ZW50LnNldEF0dHJpYnV0ZSgndW5kb3Njb3BlJywgJ3VuZG9zY29wZScpLCBlbGVtZW50LnVuZG9N
YW5hZ2VyIHJldHVybnMgYW4gVW5kb01hbmFnZXIgb2JqZWN0LiAKLVBBU1MgQWZ0ZXIgZWxlbWVu
dC5zZXRBdHRyaWJ1dGUoJ3VuZG9zY29wZScsICcnKTsgZWxlbWVudC51bmRvU2NvcGUgPSBmYWxz
ZTssIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBudWxsLiAKLVBBU1MgQWZ0ZXIgZWxlbWVu
dC5yZW1vdmVBdHRyaWJ1dGUoJ3VuZG9zY29wZScpOyBlbGVtZW50LnVuZG9TY29wZSA9IHRydWU7
LCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgYW4gVW5kb01hbmFnZXIgb2JqZWN0LiAKLVBB
U1MgQWZ0ZXIgZWxlbWVudC51bmRvU2NvcGUgPSB0cnVlOyBlbGVtZW50LnJlbW92ZUF0dHJpYnV0
ZSgndW5kb3Njb3BlJyk7LCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgbnVsbC4gCi1QQVNT
IEFmdGVyIGVsZW1lbnQudW5kb1Njb3BlID0gZmFsc2U7IGVsZW1lbnQuc2V0QXR0cmlidXRlKCd1
bmRvc2NvcGUnLCAnJyk7LCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgYW4gVW5kb01hbmFn
ZXIgb2JqZWN0LiAKLVBBU1MgQWZ0ZXIgdGhlIHBhcmFudCBvZiBlbGVtZW50IGJlY29tZXMgZWRp
dGFibGUsIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBudWxsLiAKLVBBU1MgQWZ0ZXIgdGhl
IHBhcmFudCBvZiBlbGVtZW50IGJlY29tZXMgbm9uLWVkaXRhYmxlLCBlbGVtZW50LnVuZG9NYW5h
Z2VyIHJldHVybnMgYW4gVW5kb01hbmFnZXIgb2JqZWN0LiAKLVBBU1MgQWZ0ZXIgdGhlIHBhcmFu
dCBvZiBlbGVtZW50IGJlY29tZXMgZWRpdGFibGUgdGhyb3VnaCBpbmhlcml0YW5jZSwgZWxlbWVu
dC51bmRvTWFuYWdlciByZXR1cm5zIG51bGwuIAotUEFTUyBBZnRlciB0aGUgcGFyYW50IG9mIGVs
ZW1lbnQgYmVjb21lcyBub24tZWRpdGFibGUgYW5kIGVsZW1lbnQgYmVjb21lcyBlZGl0YWJsZSwg
ZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5zIGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4gCi1QQVNT
IGVsZW1lbnQudW5kb01hbmFnZXIgaXMgZGlzY29ubmVjdGVkIHdoZW4gZWxlbWVudC51bmRvU2Nv
cGUgPSBmYWxzZS4gCi1QQVNTIGVsZW1lbnQudW5kb01hbmFnZXIgaXMgZGlzY29ubmVjdGVkIHdo
ZW4gaXRzIHBhcmVudCBiZWNvbWVzIGVkaXRhYmxlLiAKLVBBU1MgU2V0dGluZyBjb250ZW50RWRp
dGFibGUgb2YgYW4gYW5jZXN0b3Igb2YgZWxlbWVudCB0byB0cnVlIGRvZXNuJ3QgZGlzY29ubmVj
dCBlbGVtZW50LnVuZG9NYW5hZ2VyIGlmIGVsZW1lbnQgaXMgc3RpbGwgYW4gZWRpdGluZyBob3N0
LiAKLQpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvc2NvcGUtYXR0
cmlidXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdl
ci91bmRvc2NvcGUtYXR0cmlidXRlLmh0bWwJKHJldmlzaW9uIDEyNjE5OSkKKysrIExheW91dFRl
c3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb3Njb3BlLWF0dHJpYnV0ZS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDE1OSArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08dGl0bGU+dW5kb3Njb3BlIGF0dHJpYnV0ZTwvdGl0bGU+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci1UaGlzIHRlc3RzIGVsZW1lbnQncyB1bmRvc2NvcGUgYXR0cmlidXRlLgotCi08ZGl2IGlkPSJv
dXRlckNvbnRhaW5lciI+Ci0gICAgPGRpdiBpZD0iaW5uZXJDb250YWluZXIiPgotICAgICAgICA8
ZGl2IGlkPSJlbGVtZW50IiB1bmRvc2NvcGU+PC9kaXY+Ci0gICAgPC9kaXY+Ci08L2Rpdj4KLQot
PHNjcmlwdD4KLXZhciBvdXRlckNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJv
dXRlckNvbnRhaW5lciIpOwotdmFyIGlubmVyQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImlubmVyQ29udGFpbmVyIik7Ci12YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJlbGVtZW50Iik7Ci0KLWZ1bmN0aW9uIGFzc2VydF9lbGVtZW50X2hhc191bmRvbWFu
YWdlcigpIHsKLSAgICBhc3NlcnRfZXF1YWxzKGVsZW1lbnQudW5kb01hbmFnZXIudG9TdHJpbmco
KSwgIltvYmplY3QgVW5kb01hbmFnZXJdIik7Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydF9lbGVtZW50
X25vdF9oYXZlX3VuZG9tYW5hZ2VyKCkgewotICAgIGFzc2VydF9lcXVhbHMoZWxlbWVudC51bmRv
TWFuYWdlciwgbnVsbCk7Ci19Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgYXNzZXJ0X293bl9w
cm9wZXJ0eShlbGVtZW50LCAidW5kb1Njb3BlIik7Ci0gICAgYXNzZXJ0X2VxdWFscyhlbGVtZW50
LnVuZG9TY29wZSwgdHJ1ZSk7Ci19LCAiQW4gZWxlbWVudCBoYXMgdGhlIHVuZG9zY29wZSBhdHRy
aWJ1dGUgc2V0IHRvIHRydWUuIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgYXNzZXJ0X2Vs
ZW1lbnRfaGFzX3VuZG9tYW5hZ2VyKCk7Ci19LCAiZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5z
IGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4iKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgICBlbGVt
ZW50LnVuZG9TY29wZSA9IGZhbHNlOwotCi0gICAgYXNzZXJ0X2VsZW1lbnRfbm90X2hhdmVfdW5k
b21hbmFnZXIoKTsKLX0sICJBZnRlciBlbGVtZW50LnVuZG9TY29wZSA9IGZhbHNlLCBlbGVtZW50
LnVuZG9NYW5hZ2VyIHJldHVybnMgbnVsbC4iKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgICBl
bGVtZW50LnVuZG9TY29wZSA9IHRydWU7Ci0KLSAgICBhc3NlcnRfZWxlbWVudF9oYXNfdW5kb21h
bmFnZXIoKTsKLX0sICJBZnRlciBlbGVtZW50LnVuZG9TY29wZSA9IHRydWUsIGVsZW1lbnQudW5k
b01hbmFnZXIgcmV0dXJucyBhbiBVbmRvTWFuYWdlciBvYmplY3QuIik7Ci0KLXRlc3QoZnVuY3Rp
b24oKSB7Ci0gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3VuZG9zY29wZScsICcnKTsKLSAgICBl
bGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgndW5kb3Njb3BlJyk7Ci0KLSAgICBhc3NlcnRfZWxlbWVu
dF9ub3RfaGF2ZV91bmRvbWFuYWdlcigpOwotfSwgIkFmdGVyIGVsZW1lbnQucmVtb3ZlQXR0cmli
dXRlKCd1bmRvc2NvcGUnKSwgZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5zIG51bGwuIik7Ci0K
LXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3VuZG9zY29wZScs
ICcnKTsKLQotICAgIGFzc2VydF9lbGVtZW50X2hhc191bmRvbWFuYWdlcigpOwotfSwgIkFmdGVy
IGVsZW1lbnQuc2V0QXR0cmlidXRlKCd1bmRvc2NvcGUnLCAnJyksIGVsZW1lbnQudW5kb01hbmFn
ZXIgcmV0dXJucyBhbiBVbmRvTWFuYWdlciBvYmplY3QuIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7
Ci0gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3VuZG9zY29wZScsICd1bmRvc2NvcGUnKTsKLQot
ICAgIGFzc2VydF9lbGVtZW50X2hhc191bmRvbWFuYWdlcigpOwotfSwgIkFmdGVyIGVsZW1lbnQu
c2V0QXR0cmlidXRlKCd1bmRvc2NvcGUnLCAndW5kb3Njb3BlJyksIGVsZW1lbnQudW5kb01hbmFn
ZXIgcmV0dXJucyBhbiBVbmRvTWFuYWdlciBvYmplY3QuIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7
Ci0gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3VuZG9zY29wZScsICcnKTsKLSAgICBlbGVtZW50
LnVuZG9TY29wZSA9IGZhbHNlOwotCi0gICAgYXNzZXJ0X2VsZW1lbnRfbm90X2hhdmVfdW5kb21h
bmFnZXIoKTsKLX0sICJBZnRlciBlbGVtZW50LnNldEF0dHJpYnV0ZSgndW5kb3Njb3BlJywgJycp
OyBlbGVtZW50LnVuZG9TY29wZSA9IGZhbHNlOywgZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5z
IG51bGwuIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1
dGUoJ3VuZG9zY29wZScpOwotICAgIGVsZW1lbnQudW5kb1Njb3BlID0gdHJ1ZTsKLQotICAgIGFz
c2VydF9lbGVtZW50X2hhc191bmRvbWFuYWdlcigpOwotfSwgIkFmdGVyIGVsZW1lbnQucmVtb3Zl
QXR0cmlidXRlKCd1bmRvc2NvcGUnKTsgZWxlbWVudC51bmRvU2NvcGUgPSB0cnVlOywgZWxlbWVu
dC51bmRvTWFuYWdlciByZXR1cm5zIGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4iKTsKLQotdGVzdChm
dW5jdGlvbigpIHsKLSAgICBlbGVtZW50LnVuZG9TY29wZSA9IHRydWU7Ci0gICAgZWxlbWVudC5y
ZW1vdmVBdHRyaWJ1dGUoJ3VuZG9zY29wZScpOwotCi0gICAgYXNzZXJ0X2VsZW1lbnRfbm90X2hh
dmVfdW5kb21hbmFnZXIoKTsKLX0sICJBZnRlciBlbGVtZW50LnVuZG9TY29wZSA9IHRydWU7IGVs
ZW1lbnQucmVtb3ZlQXR0cmlidXRlKCd1bmRvc2NvcGUnKTssIGVsZW1lbnQudW5kb01hbmFnZXIg
cmV0dXJucyBudWxsLiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGVsZW1lbnQudW5kb1Nj
b3BlID0gZmFsc2U7Ci0gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3VuZG9zY29wZScsICcnKTsK
LQotICAgIGFzc2VydF9lbGVtZW50X2hhc191bmRvbWFuYWdlcigpOwotfSwgIkFmdGVyIGVsZW1l
bnQudW5kb1Njb3BlID0gZmFsc2U7IGVsZW1lbnQuc2V0QXR0cmlidXRlKCd1bmRvc2NvcGUnLCAn
Jyk7LCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgYW4gVW5kb01hbmFnZXIgb2JqZWN0LiIp
OwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGlubmVyQ29udGFpbmVyLmNvbnRlbnRFZGl0YWJs
ZSA9ICJ0cnVlIjsKLQotICAgIGFzc2VydF9lbGVtZW50X25vdF9oYXZlX3VuZG9tYW5hZ2VyKCk7
Ci19LCAiQWZ0ZXIgdGhlIHBhcmFudCBvZiBlbGVtZW50IGJlY29tZXMgZWRpdGFibGUsIGVsZW1l
bnQudW5kb01hbmFnZXIgcmV0dXJucyBudWxsLiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAg
IGlubmVyQ29udGFpbmVyLmNvbnRlbnRFZGl0YWJsZSA9ICJmYWxzZSI7Ci0KLSAgICBhc3NlcnRf
ZWxlbWVudF9oYXNfdW5kb21hbmFnZXIoKTsKLX0sICJBZnRlciB0aGUgcGFyYW50IG9mIGVsZW1l
bnQgYmVjb21lcyBub24tZWRpdGFibGUsIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBhbiBV
bmRvTWFuYWdlciBvYmplY3QuIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgb3V0ZXJDb250
YWluZXIuY29udGVudEVkaXRhYmxlID0gInRydWUiOwotICAgIGlubmVyQ29udGFpbmVyLmNvbnRl
bnRFZGl0YWJsZSA9ICJpbmhlcml0IjsKLQotICAgIGFzc2VydF9lbGVtZW50X25vdF9oYXZlX3Vu
ZG9tYW5hZ2VyKCk7Ci19LCAiQWZ0ZXIgdGhlIHBhcmFudCBvZiBlbGVtZW50IGJlY29tZXMgZWRp
dGFibGUgdGhyb3VnaCBpbmhlcml0YW5jZSwgZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5zIG51
bGwuIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgaW5uZXJDb250YWluZXIuY29udGVudEVk
aXRhYmxlID0gImZhbHNlIjsKLSAgICBlbGVtZW50LmNvbnRlbnRFZGlhYmxlID0gInRydWUiOwot
Ci0gICAgYXNzZXJ0X2VsZW1lbnRfaGFzX3VuZG9tYW5hZ2VyKCk7Ci19LCAiQWZ0ZXIgdGhlIHBh
cmFudCBvZiBlbGVtZW50IGJlY29tZXMgbm9uLWVkaXRhYmxlIGFuZCBlbGVtZW50IGJlY29tZXMg
ZWRpdGFibGUsIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBhbiBVbmRvTWFuYWdlciBvYmpl
Y3QuIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgZWxlbWVudC51bmRvTWFuYWdlci50cmFu
c2FjdCh7ImV4ZWN1dGUiOiBmdW5jdGlvbiAoKSB7IH19LCBmYWxzZSk7Ci0gICAgCi0gICAgYXNz
ZXJ0X2VxdWFscyhlbGVtZW50LnVuZG9NYW5hZ2VyLmxlbmd0aCwgMSk7Ci0KLSAgICBlbGVtZW50
LnVuZG9TY29wZSA9IGZhbHNlOwotICAgIGVsZW1lbnQudW5kb1Njb3BlID0gdHJ1ZTsKLQotICAg
IGFzc2VydF9lcXVhbHMoZWxlbWVudC51bmRvTWFuYWdlci5sZW5ndGgsIDApOwotfSwgImVsZW1l
bnQudW5kb01hbmFnZXIgaXMgZGlzY29ubmVjdGVkIHdoZW4gZWxlbWVudC51bmRvU2NvcGUgPSBm
YWxzZS4iKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgICBlbGVtZW50LnVuZG9NYW5hZ2VyLnRy
YW5zYWN0KHsiZXhlY3V0ZSI6IGZ1bmN0aW9uICgpIHsgfX0sIGZhbHNlKTsKLSAgICAKLSAgICBh
c3NlcnRfZXF1YWxzKGVsZW1lbnQudW5kb01hbmFnZXIubGVuZ3RoLCAxKTsKLQotICAgIGlubmVy
Q29udGFpbmVyLmNvbnRlbnRFZGl0YWJsZSA9ICJ0cnVlIjsKLSAgICBpbm5lckNvbnRhaW5lci5j
b250ZW50RWRpdGFibGUgPSAiZmFsc2UiOwotCi0gICAgYXNzZXJ0X2VxdWFscyhlbGVtZW50LnVu
ZG9NYW5hZ2VyLmxlbmd0aCwgMCk7Ci19LCAiZWxlbWVudC51bmRvTWFuYWdlciBpcyBkaXNjb25u
ZWN0ZWQgd2hlbiBpdHMgcGFyZW50IGJlY29tZXMgZWRpdGFibGUuIik7Ci0KLXRlc3QoZnVuY3Rp
b24oKSB7Ci0gICAgb3V0ZXJDb250YWluZXIuY29udGVudEVkaXRhYmxlID0gImZhbHNlIjsKLSAg
ICBpbm5lckNvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSAiZmFsc2UiOwotICAgIGVsZW1lbnQu
dW5kb01hbmFnZXIudHJhbnNhY3QoeyJleGVjdXRlIjogZnVuY3Rpb24gKCkgeyB9fSwgZmFsc2Up
OwotCi0gICAgYXNzZXJ0X2VxdWFscyhlbGVtZW50LnVuZG9NYW5hZ2VyLmxlbmd0aCwgMSk7Ci0K
LSAgICBvdXRlckNvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSAidHJ1ZSI7Ci0KLSAgICBhc3Nl
cnRfZXF1YWxzKGVsZW1lbnQudW5kb01hbmFnZXIubGVuZ3RoLCAxKTsKLX0sICJTZXR0aW5nIGNv
bnRlbnRFZGl0YWJsZSBvZiBhbiBhbmNlc3RvciBvZiBlbGVtZW50IHRvIHRydWUgZG9lc24ndCBk
aXNjb25uZWN0IGVsZW1lbnQudW5kb01hbmFnZXIgaWYgZWxlbWVudCBpcyBzdGlsbCBhbiBlZGl0
aW5nIGhvc3QuIik7Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb3Njb3BlaG9zdC11c2UtYWZ0ZXItZnJlZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb3Njb3Bl
aG9zdC11c2UtYWZ0ZXItZnJlZS5odG1sCShyZXZpc2lvbiAxMjYxOTkpCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9zY29wZWhvc3QtdXNlLWFmdGVyLWZyZWUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNCwxNiArNCwxNiBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5Pgot
PGRpdiBpZD0iZGl2IiB1bmRvc2NvcGU+PC9kaXY+Cis8aWZyYW1lIGlkPSJmcmFtZSI+PC9pZnJh
bWU+CiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB1bmRvTWFuYWdlciBk
b2Vzbid0IGhhdmUgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJpbGl0aWVzICIKICAgICArICJhZnRl
ciBpdHMgdW5kb1Njb3BlSG9zdCBoYXMgYmVlbiByZWNsYWltZWQgYnkgR0MuIik7CiAKLXZhciBk
aXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Iik7Ci12YXIgdW5kb01hbmFnZXIgPSBk
aXYudW5kb01hbmFnZXI7Cit2YXIgZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZnJh
bWUiKTsKK3ZhciB1bmRvTWFuYWdlciA9IGZyYW1lLmNvbnRlbnREb2N1bWVudC51bmRvTWFuYWdl
cjsKIAotZGl2LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZGl2KTsKLWRpdiA9IG51bGw7CitmcmFt
ZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZyYW1lKTsKK2ZyYW1lID0gbnVsbDsKIGdjKCk7CiAK
IHZhciB0cmFuc2FjdGlvbiA9IHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159784</attachid>
            <date>2012-08-21 15:54:38 -0700</date>
            <delta_ts>2012-08-21 18:42:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-94637-20120821155718.patch</filename>
            <type>text/plain</type>
            <size>35636</size>
            <attacher name="Sukolsak Sakshuwong">sukolsak</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA4LTIxICBTdWtvbHNh
ayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZW1vdmUgVW5k
b01hbmFnZXIncyB1bmRvc2NvcGUgY29udGVudCBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NjM3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gQ292ZXJlZCBieSBleGlz
dGluZyB0ZXN0cy4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L0RPTVRyYW5zYWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVRyYW5zYWN0aW9uOjpjYWxsRnVuY3Rpb24pOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dW5kb01h
bmFnZXIpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6On5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9FbGVt
ZW50Lmg6CisgICAgICAgIChFbGVtZW50KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6Cisg
ICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAoRWxlbWVudFJhcmVEYXRh
KToKKyAgICAgICAgKiBlZGl0aW5nL1VuZG9NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlVuZG9NYW5hZ2VyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VW5kb01hbmFnZXI6OlVu
ZG9NYW5hZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjpkaXNjb25uZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjp0cmFuc2FjdCk6CisgICAgICAgIChXZWJD
b3JlOjpVbmRvTWFuYWdlcjo6dW5kbyk6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6
cmVkbyk6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6Y2xlYXJVbmRvKToKKyAgICAg
ICAgKFdlYkNvcmU6OlVuZG9NYW5hZ2VyOjpjbGVhclJlZG8pOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogZWRpdGluZy9VbmRvTWFuYWdlci5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChVbmRvTWFuYWdlcik6CisgICAgICAgIChXZWJDb3JlOjpVbmRvTWFuYWdlcjo6ZG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6VW5kb01hbmFnZXI6Om93bmVyTm9kZSk6CisgICAg
ICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1MRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNldENvbnRlbnRFZGl0YWJsZSk6CisK
IDIwMTItMDgtMjEgIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEluZGV4ZWREQjogcmVtb3ZlIG9sZCB1cGRhdGUvb3BlbkN1cnNvciBnbHVlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01UcmFuc2FjdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NVHJhbnNhY3Rpb24uY3BwCShyZXZpc2lv
biAxMjYxOTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01UcmFuc2FjdGlvbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTkwLDE0ICs5MCwxMCBAQCB2ODo6SGFuZGxlPHY4OjpGdW5j
dGlvbj4gRE9NVHJhbnNhY3Rpb246CiAKIHZvaWQgRE9NVHJhbnNhY3Rpb246OmNhbGxGdW5jdGlv
bihjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgaWYgKCFtX3VuZG9NYW5hZ2VyIHx8
ICFtX3VuZG9NYW5hZ2VyLT51bmRvU2NvcGVIb3N0KCkpCisgICAgaWYgKCFtX3VuZG9NYW5hZ2Vy
IHx8ICFtX3VuZG9NYW5hZ2VyLT5kb2N1bWVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSBtX3VuZG9NYW5hZ2VyLT51bmRvU2NvcGVIb3N0KCktPmRvY3Vt
ZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCk7CisgICAgRnJhbWUqIGZyYW1lID0gbV91bmRvTWFu
YWdlci0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+c2Ny
aXB0KCktPmNhbkV4ZWN1dGVTY3JpcHRzKEFib3V0VG9FeGVjdXRlU2NyaXB0KSkKICAgICAgICAg
cmV0dXJuOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDEyNjE5OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYx
NTUsNyArNjE1NSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU8K
IFBhc3NSZWZQdHI8VW5kb01hbmFnZXI+IERvY3VtZW50Ojp1bmRvTWFuYWdlcigpCiB7CiAgICAg
aWYgKCFtX3VuZG9NYW5hZ2VyKQotICAgICAgICBtX3VuZG9NYW5hZ2VyID0gVW5kb01hbmFnZXI6
OmNyZWF0ZSh0aGlzLCB0aGlzKTsKKyAgICAgICAgbV91bmRvTWFuYWdlciA9IFVuZG9NYW5hZ2Vy
OjpjcmVhdGUodGhpcyk7CiAgICAgcmV0dXJuIG1fdW5kb01hbmFnZXI7CiB9CiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDEzICsxNDYsNiBAQCBF
bGVtZW50Ojp+RWxlbWVudCgpCiAgICAgICAgIEFTU0VSVChtX2F0dHJpYnV0ZURhdGEpOwogICAg
ICAgICBtX2F0dHJpYnV0ZURhdGEtPmRldGFjaEF0dHJPYmplY3RzRnJvbUVsZW1lbnQodGhpcyk7
CiAgICAgfQotCi0jaWYgRU5BQkxFKFVORE9fTUFOQUdFUikKLSAgICBpZiAoaGFzUmFyZURhdGEo
KSAmJiBlbGVtZW50UmFyZURhdGEoKS0+bV91bmRvTWFuYWdlcikgewotICAgICAgICBlbGVtZW50
UmFyZURhdGEoKS0+bV91bmRvTWFuYWdlci0+ZGlzY29ubmVjdCgpOwotICAgICAgICBlbGVtZW50
UmFyZURhdGEoKS0+bV91bmRvTWFuYWdlci5jbGVhcigpOwotICAgIH0KLSNlbmRpZgogfQogCiBp
bmxpbmUgRWxlbWVudFJhcmVEYXRhKiBFbGVtZW50OjplbGVtZW50UmFyZURhdGEoKSBjb25zdApA
QCAtMjIyMiw2MSArMjIxNSw0IEBAIHZvaWQgRWxlbWVudDo6Y3JlYXRlTXV0YWJsZUF0dHJpYnV0
ZURhdGEKICAgICAgICAgbV9hdHRyaWJ1dGVEYXRhID0gbV9hdHRyaWJ1dGVEYXRhLT5tYWtlTXV0
YWJsZSgpOwogfQogCi0jaWYgRU5BQkxFKFVORE9fTUFOQUdFUikKLWJvb2wgRWxlbWVudDo6dW5k
b1Njb3BlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gaGFzUmFyZURhdGEoKSAmJiBlbGVtZW50UmFy
ZURhdGEoKS0+bV91bmRvU2NvcGU7Ci19Ci0KLXZvaWQgRWxlbWVudDo6c2V0VW5kb1Njb3BlKGJv
b2wgdW5kb1Njb3BlKQotewotICAgIEVsZW1lbnRSYXJlRGF0YSogZGF0YSA9IGVuc3VyZUVsZW1l
bnRSYXJlRGF0YSgpOwotICAgIGRhdGEtPm1fdW5kb1Njb3BlID0gdW5kb1Njb3BlOwotICAgIGlm
ICghdW5kb1Njb3BlKQotICAgICAgICBkaXNjb25uZWN0VW5kb01hbmFnZXIoKTsKLX0KLQotUGFz
c1JlZlB0cjxVbmRvTWFuYWdlcj4gRWxlbWVudDo6dW5kb01hbmFnZXIoKQotewotICAgIGlmICgh
dW5kb1Njb3BlKCkgfHwgKGlzQ29udGVudEVkaXRhYmxlKCkgJiYgIWlzUm9vdEVkaXRhYmxlRWxl
bWVudCgpKSkgewotICAgICAgICBkaXNjb25uZWN0VW5kb01hbmFnZXIoKTsKLSAgICAgICAgcmV0
dXJuIDA7Ci0gICAgfQotICAgIEVsZW1lbnRSYXJlRGF0YSogZGF0YSA9IGVuc3VyZUVsZW1lbnRS
YXJlRGF0YSgpOwotICAgIGlmICghZGF0YS0+bV91bmRvTWFuYWdlcikKLSAgICAgICAgZGF0YS0+
bV91bmRvTWFuYWdlciA9IFVuZG9NYW5hZ2VyOjpjcmVhdGUoZG9jdW1lbnQoKSwgdGhpcyk7Ci0g
ICAgcmV0dXJuIGRhdGEtPm1fdW5kb01hbmFnZXI7Ci19Ci0KLXZvaWQgRWxlbWVudDo6ZGlzY29u
bmVjdFVuZG9NYW5hZ2VyKCkKLXsKLSAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCi0gICAgICAgIHJl
dHVybjsKLSAgICBFbGVtZW50UmFyZURhdGEqIGRhdGEgPSBlbGVtZW50UmFyZURhdGEoKTsKLSAg
ICBVbmRvTWFuYWdlciogdW5kb01hbmFnZXIgPSBkYXRhLT5tX3VuZG9NYW5hZ2VyLmdldCgpOwot
ICAgIGlmICghdW5kb01hbmFnZXIpCi0gICAgICAgIHJldHVybjsKLSAgICB1bmRvTWFuYWdlci0+
ZGlzY29ubmVjdCgpOwotICAgIGRhdGEtPm1fdW5kb01hbmFnZXIuY2xlYXIoKTsKLX0KLQotdm9p
ZCBFbGVtZW50OjpkaXNjb25uZWN0VW5kb01hbmFnZXJzSW5TdWJ0cmVlKCkKLXsKLSAgICBOb2Rl
KiBub2RlID0gZmlyc3RDaGlsZCgpOwotICAgIHdoaWxlIChub2RlKSB7Ci0gICAgICAgIGlmIChu
b2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKLSAgICAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSB0
b0VsZW1lbnQobm9kZSk7Ci0gICAgICAgICAgICBpZiAoZWxlbWVudC0+aGFzUmFyZURhdGEoKSAm
JiBlbGVtZW50LT5lbGVtZW50UmFyZURhdGEoKS0+bV91bmRvTWFuYWdlcikgewotICAgICAgICAg
ICAgICAgIGlmICghbm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkgewotICAgICAgICAgICAgICAg
ICAgICBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0U2libGluZyh0aGlzKTsKLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVs
ZW1lbnQtPmRpc2Nvbm5lY3RVbmRvTWFuYWdlcigpOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgICAgIG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKHRoaXMpOwotICAgIH0KLX0K
LSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJ
KHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ0MCwxNCArNDQwLDYgQEAgcHVibGljOgogICAgICAgICBpbmZvLmFkZElu
c3RydW1lbnRlZE1lbWJlcihtX2F0dHJpYnV0ZURhdGEpOwogICAgIH0KIAotI2lmIEVOQUJMRShV
TkRPX01BTkFHRVIpCi0gICAgYm9vbCB1bmRvU2NvcGUoKSBjb25zdDsKLSAgICB2b2lkIHNldFVu
ZG9TY29wZShib29sKTsKLSAgICBQYXNzUmVmUHRyPFVuZG9NYW5hZ2VyPiB1bmRvTWFuYWdlcigp
OwotICAgIHZvaWQgZGlzY29ubmVjdFVuZG9NYW5hZ2VyKCk7Ci0gICAgdm9pZCBkaXNjb25uZWN0
VW5kb01hbmFnZXJzSW5TdWJ0cmVlKCk7Ci0jZW5kaWYKLQogcHJvdGVjdGVkOgogICAgIEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBDb25z
dHJ1Y3Rpb25UeXBlIHR5cGUpCiAgICAgICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCwgdHlw
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwJKHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTQ1LDExICsxNDUs
NiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIC8vIENTUyBSZWdpb25zIEFQSQogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdlYmtpdFJlZ2lvbk92ZXJzZXQ7CiAKLSNpZiBk
ZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKLSAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25hbD1VTkRPX01BTkFHRVJdIFVuZG9NYW5h
Z2VyIHVuZG9NYW5hZ2VyOwotICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPVVORE9fTUFO
QUdFUiwgUmVmbGVjdF0gYm9vbGVhbiB1bmRvU2NvcGU7Ci0jZW5kaWYKLQogI2lmICFkZWZpbmVk
KExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VBR0VfT0JKRUNUSVZFX0MKICAgICAgICAg
Ly8gRXZlbnQgaGFuZGxlciBET00gYXR0cmlidXRlcwogICAgICAgICBhdHRyaWJ1dGUgW05vdEVu
dW1lcmFibGVdIEV2ZW50TGlzdGVuZXIgb25hYm9ydDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50UmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmgJKHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50UmFyZURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2luY2x1
ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAjaW5jbHVk
ZSAiTm9kZVJhcmVEYXRhLmgiCi0jaW5jbHVkZSAiVW5kb01hbmFnZXIuaCIKICNpbmNsdWRlIDx3
dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTExOSwxMSArMTE4LDYgQEAg
cHVibGljOgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29sIG1fY29udGFpbnNG
dWxsU2NyZWVuRWxlbWVudDsKICNlbmRpZgotCi0jaWYgRU5BQkxFKFVORE9fTUFOQUdFUikKLSAg
ICBSZWZQdHI8VW5kb01hbmFnZXI+IG1fdW5kb01hbmFnZXI7Ci0gICAgYm9vbCBtX3VuZG9TY29w
ZTsKLSNlbmRpZgogfTsKIAogaW5saW5lIEludFNpemUgZGVmYXVsdE1pbmltdW1TaXplRm9yUmVz
aXppbmcoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmRvTWFuYWdlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9VbmRvTWFuYWdlci5jcHAJKHJldmlz
aW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVW5kb01hbmFnZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwyNSArMjksMjYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiVW5kb01hbmFnZXIuaCIKIAogI2lmIEVOQUJMRShVTkRPX01BTkFHRVIp
CiAKKyNpbmNsdWRlICJVbmRvTWFuYWdlci5oIgorCiAjaW5jbHVkZSAiRE9NVHJhbnNhY3Rpb24u
aCIKLSNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8VW5kb01hbmFnZXI+IFVuZG9NYW5hZ2Vy
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTm9kZSogaG9zdCkKK1Bh
c3NSZWZQdHI8VW5kb01hbmFnZXI+IFVuZG9NYW5hZ2VyOjpjcmVhdGUoRG9jdW1lbnQqIGRvY3Vt
ZW50KQogewotICAgIFJlZlB0cjxVbmRvTWFuYWdlcj4gdW5kb01hbmFnZXIgPSBhZG9wdFJlZihu
ZXcgVW5kb01hbmFnZXIoY29udGV4dCwgaG9zdCkpOworICAgIFJlZlB0cjxVbmRvTWFuYWdlcj4g
dW5kb01hbmFnZXIgPSBhZG9wdFJlZihuZXcgVW5kb01hbmFnZXIoZG9jdW1lbnQpKTsKICAgICB1
bmRvTWFuYWdlci0+c3VzcGVuZElmTmVlZGVkKCk7CiAgICAgcmV0dXJuIHVuZG9NYW5hZ2VyLnJl
bGVhc2UoKTsKIH0KIAotVW5kb01hbmFnZXI6OlVuZG9NYW5hZ2VyKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIE5vZGUqIGhvc3QpCi0gICAgOiBBY3RpdmVET01PYmplY3QoY29udGV4
dCwgdGhpcykKLSAgICAsIG1fdW5kb1Njb3BlSG9zdChob3N0KQorVW5kb01hbmFnZXI6OlVuZG9N
YW5hZ2VyKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVu
dCwgdGhpcykKKyAgICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX2lzSW5Qcm9ncmVz
cyhmYWxzZSkKIHsKIH0KQEAgLTY3LDcgKzY4LDcgQEAgc3RhdGljIHZvaWQgY2xlYXJTdGFjayhV
bmRvTWFuYWdlclN0YWNrJgogCiB2b2lkIFVuZG9NYW5hZ2VyOjpkaXNjb25uZWN0KCkKIHsKLSAg
ICBtX3VuZG9TY29wZUhvc3QgPSAwOworICAgIG1fZG9jdW1lbnQgPSAwOwogICAgIGNsZWFyU3Rh
Y2sobV91bmRvU3RhY2spOwogICAgIGNsZWFyU3RhY2sobV9yZWRvU3RhY2spOwogfQpAQCAtODks
NyArOTAsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NPd25QdHI8VW5kb01hbmFnZXJFbnRyCiAKIHZv
aWQgVW5kb01hbmFnZXI6OnRyYW5zYWN0KFBhc3NSZWZQdHI8RE9NVHJhbnNhY3Rpb24+IHRyYW5z
YWN0aW9uLCBib29sIG1lcmdlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAobV9pc0lu
UHJvZ3Jlc3MgfHwgIWlzQ29ubmVjdGVkKCkpIHsKKyAgICBpZiAobV9pc0luUHJvZ3Jlc3MgfHwg
IW1fZG9jdW1lbnQpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0xMDEsNyArMTAyLDcgQEAgdm9pZCBVbmRvTWFuYWdlcjo6dHJh
bnNhY3QoUGFzc1JlZlB0cjxETwogICAgIHRyYW5zYWN0aW9uLT5hcHBseSgpOwogICAgIG1faXNJ
blByb2dyZXNzID0gZmFsc2U7CiAKLSAgICBpZiAoIW1fdW5kb1Njb3BlSG9zdCkKKyAgICBpZiAo
IW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIW1lcmdlIHx8IG1fdW5kb1N0
YWNrLmlzRW1wdHkoKSkKICAgICAgICAgbV91bmRvU3RhY2suYXBwZW5kKGNyZWF0ZVVuZG9NYW5h
Z2VyRW50cnkoKSk7CkBAIC0xMTAsNyArMTExLDcgQEAgdm9pZCBVbmRvTWFuYWdlcjo6dHJhbnNh
Y3QoUGFzc1JlZlB0cjxETwogCiB2b2lkIFVuZG9NYW5hZ2VyOjp1bmRvKEV4Y2VwdGlvbkNvZGUm
IGVjKQogewotICAgIGlmIChtX2lzSW5Qcm9ncmVzcyB8fCAhaXNDb25uZWN0ZWQoKSkgeworICAg
IGlmIChtX2lzSW5Qcm9ncmVzcyB8fCAhbV9kb2N1bWVudCkgewogICAgICAgICBlYyA9IElOVkFM
SURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyNSw3ICsxMjYsNyBA
QCB2b2lkIFVuZG9NYW5hZ2VyOjp1bmRvKEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgICAgIGVudHJ5
W2kgLSAxXS0+dW5hcHBseSgpOwogICAgIG1faXNJblByb2dyZXNzID0gZmFsc2U7CiAKLSAgICBp
ZiAoIW1fdW5kb1Njb3BlSG9zdCkgeworICAgIGlmICghbV9kb2N1bWVudCkgewogICAgICAgICBt
X2luUHJvZ3Jlc3NFbnRyeS5jbGVhcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTM1
LDcgKzEzNiw3IEBAIHZvaWQgVW5kb01hbmFnZXI6OnVuZG8oRXhjZXB0aW9uQ29kZSYgZWMKIAog
dm9pZCBVbmRvTWFuYWdlcjo6cmVkbyhFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAobV9p
c0luUHJvZ3Jlc3MgfHwgIWlzQ29ubmVjdGVkKCkpIHsKKyAgICBpZiAobV9pc0luUHJvZ3Jlc3Mg
fHwgIW1fZG9jdW1lbnQpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0xNTAsNyArMTUxLDcgQEAgdm9pZCBVbmRvTWFuYWdlcjo6
cmVkbyhFeGNlcHRpb25Db2RlJiBlYwogICAgICAgICBlbnRyeVtpIC0gMV0tPnJlYXBwbHkoKTsK
ICAgICBtX2lzSW5Qcm9ncmVzcyA9IGZhbHNlOwogCi0gICAgaWYgKCFtX3VuZG9TY29wZUhvc3Qp
IHsKKyAgICBpZiAoIW1fZG9jdW1lbnQpIHsKICAgICAgICAgbV9pblByb2dyZXNzRW50cnkuY2xl
YXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE4Miw3ICsxODMsNyBAQCB2b2lkIFVu
ZG9NYW5hZ2VyOjpyZWdpc3RlclJlZG9TdGVwKFBhc3NSCiAKIHZvaWQgVW5kb01hbmFnZXI6OmNs
ZWFyVW5kbyhFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAobV9pc0luUHJvZ3Jlc3MgfHwg
IWlzQ29ubmVjdGVkKCkpIHsKKyAgICBpZiAobV9pc0luUHJvZ3Jlc3MgfHwgIW1fZG9jdW1lbnQp
IHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0xOTEsMjggKzE5MiwxMyBAQCB2b2lkIFVuZG9NYW5hZ2VyOjpjbGVhclVuZG8oRXhj
ZXB0aW9uQ29kCiAKIHZvaWQgVW5kb01hbmFnZXI6OmNsZWFyUmVkbyhFeGNlcHRpb25Db2RlJiBl
YykKIHsKLSAgICBpZiAobV9pc0luUHJvZ3Jlc3MgfHwgIWlzQ29ubmVjdGVkKCkpIHsKKyAgICBp
ZiAobV9pc0luUHJvZ3Jlc3MgfHwgIW1fZG9jdW1lbnQpIHsKICAgICAgICAgZWMgPSBJTlZBTElE
X0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2xlYXJTdGFjayhtX3Jl
ZG9TdGFjayk7CiB9CiAKLWJvb2wgVW5kb01hbmFnZXI6OmlzQ29ubmVjdGVkKCkKLXsKLSAgICBp
ZiAoIW1fdW5kb1Njb3BlSG9zdCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghbV91
bmRvU2NvcGVIb3N0LT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IEVsZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1lbnQobV91bmRvU2NvcGVIb3N0KTsKLSAgICBBU1NF
UlQoZWxlbWVudC0+dW5kb1Njb3BlKCkpOwotICAgIGlmIChlbGVtZW50LT5pc0NvbnRlbnRFZGl0
YWJsZSgpICYmICFlbGVtZW50LT5pc1Jvb3RFZGl0YWJsZUVsZW1lbnQoKSkgewotICAgICAgICBl
bGVtZW50LT5kaXNjb25uZWN0VW5kb01hbmFnZXIoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVW5kb01hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1VuZG9NYW5hZ2VyLmgJKHJldmlzaW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVW5kb01hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBA
QAogI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVQbGFjZWhv
bGRlci5oIgogI2luY2x1ZGUgIlVuZG9TdGVwLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpA
QCAtNDYsMTQgKzQ3LDEzIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVRyYW5z
YWN0aW9uOwotY2xhc3MgTm9kZTsKIAogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFVuZG9TdGVwPiA+
IFVuZG9NYW5hZ2VyRW50cnk7CiB0eXBlZGVmIFZlY3RvcjxPd25QdHI8VW5kb01hbmFnZXJFbnRy
eT4gPiBVbmRvTWFuYWdlclN0YWNrOwogCiBjbGFzcyBVbmRvTWFuYWdlciA6IHB1YmxpYyBSZWZD
b3VudGVkPFVuZG9NYW5hZ2VyPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8VW5kb01hbmFnZXI+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgTm9kZSogaG9zdCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VW5kb01hbmFnZXI+
IGNyZWF0ZShEb2N1bWVudCopOwogICAgIHZvaWQgZGlzY29ubmVjdCgpOwogICAgIHZpcnR1YWwg
dm9pZCBzdG9wKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB+VW5kb01hbmFnZXIoKTsKQEAgLTc1
LDE0ICs3NSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlclVuZG9TdGVwKFBhc3NSZWZQ
dHI8VW5kb1N0ZXA+KTsKICAgICB2b2lkIHJlZ2lzdGVyUmVkb1N0ZXAoUGFzc1JlZlB0cjxVbmRv
U3RlcD4pOwogICAgIAotICAgIE5vZGUqIHVuZG9TY29wZUhvc3QoKSBjb25zdCB7IHJldHVybiBt
X3VuZG9TY29wZUhvc3Q7IH0KLSAgICBOb2RlKiBvd25lck5vZGUoKSBjb25zdCB7IHJldHVybiBt
X3VuZG9TY29wZUhvc3Q7IH0KKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2RvY3VtZW50OyB9CisgICAgTm9kZSogb3duZXJOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9k
b2N1bWVudDsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFVuZG9NYW5hZ2VyKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBOb2RlKiBob3N0KTsKLSAgICBib29sIGlzQ29ubmVjdGVkKCk7Cisg
ICAgZXhwbGljaXQgVW5kb01hbmFnZXIoRG9jdW1lbnQqKTsKICAgICAKLSAgICBOb2RlKiBtX3Vu
ZG9TY29wZUhvc3Q7CisgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CiAgICAgVW5kb01hbmFnZXJT
dGFjayBtX3VuZG9TdGFjazsKICAgICBVbmRvTWFuYWdlclN0YWNrIG1fcmVkb1N0YWNrOwogICAg
IGJvb2wgbV9pc0luUHJvZ3Jlc3M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRy
aWJ1dGVOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRy
aWJ1dGVOYW1lcy5pbgkocmV2aXNpb24gMTI2MTk5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTMxOSw3ICszMTksNiBAQCB0
b3BtYXJnaW4KIHRyYW5zbGF0ZQogdHJ1ZXNwZWVkCiB0eXBlCi11bmRvc2NvcGUKIHVzZW1hcAog
dmFsaWduCiB2YWx1ZQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlz
aW9uIDEyNjE5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMzUsMTAgKzIzNSw2IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IEEKICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZS5uYW1lKCkgPT0gaXRlbXR5
cGVBdHRyKSB7CiAgICAgICAgIHNldEl0ZW1UeXBlKGF0dHJpYnV0ZS52YWx1ZSgpKTsKICNlbmRp
ZgotI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCi0gICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUubmFt
ZSgpID09IHVuZG9zY29wZUF0dHIpIHsKLSAgICAgICAgc2V0VW5kb1Njb3BlKCFhdHRyaWJ1dGUu
aXNOdWxsKCkpOwotI2VuZGlmCiAgICAgfQogLy8gc3RhbmRhcmQgZXZlbnRzCiAgICAgZWxzZSBp
ZiAoYXR0cmlidXRlLm5hbWUoKSA9PSBvbmNsaWNrQXR0cikgewpAQCAtNjYzLDE0ICs2NTksOCBA
QCB2b2lkIEhUTUxFbGVtZW50OjpzZXRDb250ZW50RWRpdGFibGUoY29uCiAgICAgICAgIHNldEF0
dHJpYnV0ZShjb250ZW50ZWRpdGFibGVBdHRyLCAicGxhaW50ZXh0LW9ubHkiKTsKICAgICBlbHNl
IGlmIChlcXVhbElnbm9yaW5nQ2FzZShlbmFibGVkLCAiaW5oZXJpdCIpKQogICAgICAgICByZW1v
dmVBdHRyaWJ1dGUoY29udGVudGVkaXRhYmxlQXR0cik7Ci0gICAgZWxzZSB7CisgICAgZWxzZQog
ICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jaWYgRU5B
QkxFKFVORE9fTUFOQUdFUikKLSAgICBpZiAoaXNDb250ZW50RWRpdGFibGUoKSkKLSAgICAgICAg
ZGlzY29ubmVjdFVuZG9NYW5hZ2Vyc0luU3VidHJlZSgpOwotI2VuZGlmCiB9CiAKIGJvb2wgSFRN
TEVsZW1lbnQ6OmRyYWdnYWJsZSgpIGNvbnN0CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjYxOTkpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAor
MjAxMi0wOC0yMSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIFVuZG9NYW5hZ2VyJ3MgdW5kb3Njb3BlIGNvbnRlbnQgYXR0cmlidXRl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDYzNwor
CisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICAqIGVkaXRpbmcv
dW5kb21hbmFnZXIvdW5kb21hbmFnZXItcmVlbnRlci1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItdXNlLWFmdGVyLWZy
ZWUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGVkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFn
ZXItcmVlbnRlci5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5h
Z2VyL3VuZG9tYW5hZ2VyLXVzZS1hZnRlci1mcmVlLmh0bWwuCisgICAgICAgICogZWRpdGluZy91
bmRvbWFuYWdlci91bmRvbWFuYWdlci11c2UtYWZ0ZXItZnJlZS1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdlci11c2UtYWZ0ZXIt
ZnJlZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGVkaXRpbmcvdW5kb21hbmFnZXIvdW5kb3Nj
b3BlLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZWRpdGluZy91
bmRvbWFuYWdlci91bmRvc2NvcGUtYXR0cmlidXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
ZWRpdGluZy91bmRvbWFuYWdlci91bmRvc2NvcGVob3N0LXVzZS1hZnRlci1mcmVlLmh0bWw6CisK
IDIwMTItMDgtMjEgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRl
bC5jb20+CiAKICAgICAgICAgW0VGTF0gRW5hYmxlIENTUyBUZXh0IERlY29yYXRpb24gYnkgZGVm
YXVsdApJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdlci1y
ZWVudGVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Vu
ZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXJlZW50ZXItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMjYx
ODQpCShmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItdXNl
LWFmdGVyLWZyZWUtZXhwZWN0ZWQudHh0OjEyNjE4NCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
dW5kb21hbmFnZXIvdW5kb21hbmFnZXItcmVlbnRlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwyNCBAQAorRW5zdXJlIHRoYXQgdW5kb01hbmFnZXIgZG9lc24ndCBoYXZl
IHVzZS1hZnRlci1mcmVlIHZ1bG5lcmFiaWxpdGllcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK2NhbGwgdW5kb01hbmFnZXIudHJhbnNhY3QoKSBkdXJpbmcgdGhlIGV4ZWN1dGUg
Y2FsbGJhY2sKK1BBU1MgdW5kb01hbmFnZXIudHJhbnNhY3QodHJhbnNhY3Rpb24pIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgorY2Fs
bCB1bmRvTWFuYWdlci51bmRvKCkgZHVyaW5nIHRoZSB1bmRvIGNhbGxiYWNrCitQQVNTIHVuZG9N
YW5hZ2VyLnVuZG8oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjog
RE9NIEV4Y2VwdGlvbiAxNS4KK2NhbGwgdW5kb01hbmFnZXIuY2xlYXJSZWRvKCkgZHVyaW5nIHRo
ZSByZWRvIGNhbGxiYWNrCitQQVNTIHVuZG9NYW5hZ2VyLnJlZG8oKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK2NhbGwgdW5kb01h
bmFnZXIudHJhbnNhY3QoKSB3aXRoIGEgdHJhbnNhY3Rpb24gdGhhdCBkaXNjb25uZWN0cyB0aGUg
dW5kb01hbmFnZXIgd2hlbiB1bmRvaW5nCitQQVNTIHJlc3VsdCBpcyAiZXhlY3V0ZSAiCitjYWxs
IHVuZG9NYW5hZ2VyLnVuZG8oKQorUEFTUyByZXN1bHQgaXMgImV4ZWN1dGUgdW5kbyAiCitQQVNT
IGVkaXQudW5kb01hbmFnZXIgaXMgbnVsbAorUEFTUyB1bmRvTWFuYWdlci5sZW5ndGggaXMgMAor
Y2FsbCB1bmRvTWFuYWdlci5yZWRvKCkgd2hlbiB0aGUgdW5kb01hbmFnZXIgaXMgZGlzY29ubmVj
dGVkCitQQVNTIHVuZG9NYW5hZ2VyLnJlZG8oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFM
SURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KK1BBU1MgcmVzdWx0IGlzICJleGVjdXRl
IHVuZG8gIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItcmVl
bnRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy91bmRv
bWFuYWdlci91bmRvbWFuYWdlci1yZWVudGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTI2MTg0
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdlci1yZWVudGVy
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLUVuc3VyZSB0aGF0
IHVuZG9NYW5hZ2VyIGRvZXNuJ3QgaGF2ZSB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMu
CitFbnN1cmUgdGhhdCB1bmRvTWFuYWdlciB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW4gd2UgcmUt
ZW50ZXIgaXQgYnkgY2FsbGluZyB1bmRvTWFuYWdlciBmdW5jdGlvbnMgZHVyaW5nIGNhbGxiYWNr
cy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCkBAIC05LDE1ICs5LDYgQEAgY2FsbCB1
bmRvTWFuYWdlci51bmRvKCkgZHVyaW5nIHRoZSB1bmRvIAogUEFTUyB1bmRvTWFuYWdlci51bmRv
KCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRp
b24gMTUuCiBjYWxsIHVuZG9NYW5hZ2VyLmNsZWFyUmVkbygpIGR1cmluZyB0aGUgcmVkbyBjYWxs
YmFjawogUEFTUyB1bmRvTWFuYWdlci5yZWRvKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZB
TElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUuCi1jYWxsIHVuZG9NYW5hZ2VyLnRyYW5z
YWN0KCkgd2l0aCBhIHRyYW5zYWN0aW9uIHRoYXQgZGlzY29ubmVjdHMgdGhlIHVuZG9NYW5hZ2Vy
IHdoZW4gdW5kb2luZwotUEFTUyByZXN1bHQgaXMgImV4ZWN1dGUgIgotY2FsbCB1bmRvTWFuYWdl
ci51bmRvKCkKLVBBU1MgcmVzdWx0IGlzICJleGVjdXRlIHVuZG8gIgotUEFTUyBlZGl0LnVuZG9N
YW5hZ2VyIGlzIG51bGwKLVBBU1MgdW5kb01hbmFnZXIubGVuZ3RoIGlzIDAKLWNhbGwgdW5kb01h
bmFnZXIucmVkbygpIHdoZW4gdGhlIHVuZG9NYW5hZ2VyIGlzIGRpc2Nvbm5lY3RlZAotUEFTUyB1
bmRvTWFuYWdlci5yZWRvKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX0FDQ0VTU19F
UlI6IERPTSBFeGNlcHRpb24gMTUuCi1QQVNTIHJlc3VsdCBpcyAiZXhlY3V0ZSB1bmRvICIKIFBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdlci1yZWVudGVyLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdlci1y
ZWVudGVyLmh0bWwJKHJldmlzaW9uIDEyNjE4NCkJKGZyb20gTGF5b3V0VGVzdHMvZWRpdGluZy91
bmRvbWFuYWdlci91bmRvbWFuYWdlci11c2UtYWZ0ZXItZnJlZS5odG1sOjEyNjE4NCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItcmVlbnRlci5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImVkaXQiIGNvbnRlbnRFZGl0
YWJsZT0idHJ1ZSIgdW5kb3Njb3BlPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJFbnN1
cmUgdGhhdCB1bmRvTWFuYWdlciBkb2Vzbid0IGhhdmUgdXNlLWFmdGVyLWZyZWUgdnVsbmVyYWJp
bGl0aWVzLiIpOworCit2YXIgZWRpdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlZGl0Iik7
Cit2YXIgdW5kb01hbmFnZXIgPSBlZGl0LnVuZG9NYW5hZ2VyOworCit2YXIgdHJhbnNhY3Rpb24g
PSB7CisgICAgImV4ZWN1dGUiOiBmdW5jdGlvbigpIHsKKyAgICAgICAgdW5kb01hbmFnZXIudHJh
bnNhY3QoeworICAgICAgICAgICAgImV4ZWN1dGUiOiBmdW5jdGlvbigpIHsgfSwKKyAgICAgICAg
ICAgICJ1bmRvIjogZnVuY3Rpb24oKSB7IH0sCisgICAgICAgICAgICAicmVkbyI6IGZ1bmN0aW9u
KCkgeyB9CisgICAgICAgIH0pOworICAgIH0sCisgICAgInVuZG8iOiBmdW5jdGlvbigpIHsKKyAg
ICAgICAgdW5kb01hbmFnZXIudW5kbygpOworICAgIH0sCisgICAgInJlZG8iOiBmdW5jdGlvbigp
IHsKKyAgICAgICAgdW5kb01hbmFnZXIuY2xlYXJSZWRvKCk7CisgICAgfQorfTsKKworZGVidWco
ImNhbGwgdW5kb01hbmFnZXIudHJhbnNhY3QoKSBkdXJpbmcgdGhlIGV4ZWN1dGUgY2FsbGJhY2si
KTsKK3Nob3VsZFRocm93KCJ1bmRvTWFuYWdlci50cmFuc2FjdCh0cmFuc2FjdGlvbikiLCAiJ0Vy
cm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUnIik7CisKK2RlYnVnKCJj
YWxsIHVuZG9NYW5hZ2VyLnVuZG8oKSBkdXJpbmcgdGhlIHVuZG8gY2FsbGJhY2siKTsKK3Nob3Vs
ZFRocm93KCJ1bmRvTWFuYWdlci51bmRvKCkiLCAiJ0Vycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6
IERPTSBFeGNlcHRpb24gMTUnIik7CisKK2RlYnVnKCJjYWxsIHVuZG9NYW5hZ2VyLmNsZWFyUmVk
bygpIGR1cmluZyB0aGUgcmVkbyBjYWxsYmFjayIpOworc2hvdWxkVGhyb3coInVuZG9NYW5hZ2Vy
LnJlZG8oKSIsICInRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNSci
KTsKKwordmFyIHJlc3VsdCA9ICIiOwordW5kb01hbmFnZXIuY2xlYXJVbmRvKCk7Cit1bmRvTWFu
YWdlci5jbGVhclJlZG8oKTsKKworZGVidWcoImNhbGwgdW5kb01hbmFnZXIudHJhbnNhY3QoKSB3
aXRoIGEgdHJhbnNhY3Rpb24gdGhhdCBkaXNjb25uZWN0cyB0aGUgdW5kb01hbmFnZXIgd2hlbiB1
bmRvaW5nIik7Cit1bmRvTWFuYWdlci50cmFuc2FjdCh7CisgICAgImV4ZWN1dGUiOiBmdW5jdGlv
bigpIHsKKyAgICAgICAgcmVzdWx0ICs9ICJleGVjdXRlICI7CisgICAgfSwKKyAgICAidW5kbyI6
IGZ1bmN0aW9uKCkgeworICAgICAgICByZXN1bHQgKz0gInVuZG8gIjsKKyAgICAgICAgZWRpdC51
bmRvU2NvcGUgPSBmYWxzZTsKKyAgICAgICAgZ2MoKTsKKyAgICB9LAorICAgICJyZWRvIjogZnVu
Y3Rpb24oKSB7CisgICAgICAgIHJlc3VsdCArPSAicmVkbyAiOworICAgIH0KK30pOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZXhlY3V0ZSAiKTsKKworZGVidWcoImNhbGwgdW5k
b01hbmFnZXIudW5kbygpIik7Cit1bmRvTWFuYWdlci51bmRvKCk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInJlc3VsdCIsICJleGVjdXRlIHVuZG8gIik7CitzaG91bGRCZU51bGwoImVkaXQudW5k
b01hbmFnZXIiKTsKK3Nob3VsZEJlKCJ1bmRvTWFuYWdlci5sZW5ndGgiLCAiMCIpOworCitkZWJ1
ZygiY2FsbCB1bmRvTWFuYWdlci5yZWRvKCkgd2hlbiB0aGUgdW5kb01hbmFnZXIgaXMgZGlzY29u
bmVjdGVkIik7CitzaG91bGRUaHJvdygidW5kb01hbmFnZXIucmVkbygpIiwgIidFcnJvcjogSU5W
QUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1JyIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZXN1bHQiLCAiZXhlY3V0ZSB1bmRvICIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXJlZW50ZXIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXJl
ZW50ZXIuaHRtbAkocmV2aXNpb24gMTI2MTg0KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91bmRv
bWFuYWdlci91bmRvbWFuYWdlci1yZWVudGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsMTIg
KzQsMTEgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KLTxkaXYgaWQ9ImVkaXQiIGNvbnRlbnRF
ZGl0YWJsZT0idHJ1ZSIgdW5kb3Njb3BlPjwvZGl2PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJF
bnN1cmUgdGhhdCB1bmRvTWFuYWdlciBkb2Vzbid0IGhhdmUgdXNlLWFmdGVyLWZyZWUgdnVsbmVy
YWJpbGl0aWVzLiIpOworZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IHVuZG9NYW5hZ2VyIHRocm93
cyBhbiBleGNlcHRpb24gd2hlbiB3ZSByZS1lbnRlciBpdCBieSBjYWxsaW5nICIKKyAgICArICJ1
bmRvTWFuYWdlciBmdW5jdGlvbnMgZHVyaW5nIGNhbGxiYWNrcy4iKTsKIAotdmFyIGVkaXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdCIpOwotdmFyIHVuZG9NYW5hZ2VyID0gZWRpdC51
bmRvTWFuYWdlcjsKK3ZhciB1bmRvTWFuYWdlciA9IGRvY3VtZW50LnVuZG9NYW5hZ2VyOwogCiB2
YXIgdHJhbnNhY3Rpb24gPSB7CiAgICAgImV4ZWN1dGUiOiBmdW5jdGlvbigpIHsKQEAgLTM2LDM2
ICszNSw2IEBAIHNob3VsZFRocm93KCJ1bmRvTWFuYWdlci51bmRvKCkiLCAiJ0Vycm8KIGRlYnVn
KCJjYWxsIHVuZG9NYW5hZ2VyLmNsZWFyUmVkbygpIGR1cmluZyB0aGUgcmVkbyBjYWxsYmFjayIp
Owogc2hvdWxkVGhyb3coInVuZG9NYW5hZ2VyLnJlZG8oKSIsICInRXJyb3I6IElOVkFMSURfQUND
RVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNSciKTsKIAotdmFyIHJlc3VsdCA9ICIiOwotdW5kb01h
bmFnZXIuY2xlYXJVbmRvKCk7Ci11bmRvTWFuYWdlci5jbGVhclJlZG8oKTsKLQotZGVidWcoImNh
bGwgdW5kb01hbmFnZXIudHJhbnNhY3QoKSB3aXRoIGEgdHJhbnNhY3Rpb24gdGhhdCBkaXNjb25u
ZWN0cyB0aGUgdW5kb01hbmFnZXIgd2hlbiB1bmRvaW5nIik7Ci11bmRvTWFuYWdlci50cmFuc2Fj
dCh7Ci0gICAgImV4ZWN1dGUiOiBmdW5jdGlvbigpIHsKLSAgICAgICAgcmVzdWx0ICs9ICJleGVj
dXRlICI7Ci0gICAgfSwKLSAgICAidW5kbyI6IGZ1bmN0aW9uKCkgewotICAgICAgICByZXN1bHQg
Kz0gInVuZG8gIjsKLSAgICAgICAgZWRpdC51bmRvU2NvcGUgPSBmYWxzZTsKLSAgICAgICAgZ2Mo
KTsKLSAgICB9LAotICAgICJyZWRvIjogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHJlc3VsdCArPSAi
cmVkbyAiOwotICAgIH0KLX0pOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZXhl
Y3V0ZSAiKTsKLQotZGVidWcoImNhbGwgdW5kb01hbmFnZXIudW5kbygpIik7Ci11bmRvTWFuYWdl
ci51bmRvKCk7Ci1zaG91bGRCZUVxdWFsVG9TdHJpbmcoInJlc3VsdCIsICJleGVjdXRlIHVuZG8g
Iik7Ci1zaG91bGRCZU51bGwoImVkaXQudW5kb01hbmFnZXIiKTsKLXNob3VsZEJlKCJ1bmRvTWFu
YWdlci5sZW5ndGgiLCAiMCIpOwotCi1kZWJ1ZygiY2FsbCB1bmRvTWFuYWdlci5yZWRvKCkgd2hl
biB0aGUgdW5kb01hbmFnZXIgaXMgZGlzY29ubmVjdGVkIik7Ci1zaG91bGRUaHJvdygidW5kb01h
bmFnZXIucmVkbygpIiwgIidFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9u
IDE1JyIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJyZXN1bHQiLCAiZXhlY3V0ZSB1bmRvICIp
OwotCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXVzZS1hZnRl
ci1mcmVlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Vu
ZG9tYW5hZ2VyL3VuZG9tYW5hZ2VyLXVzZS1hZnRlci1mcmVlLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMTI2MTk5KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvbWFuYWdl
ci11c2UtYWZ0ZXItZnJlZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjQgKzAs
MCBAQAotRW5zdXJlIHRoYXQgdW5kb01hbmFnZXIgZG9lc24ndCBoYXZlIHVzZS1hZnRlci1mcmVl
IHZ1bG5lcmFiaWxpdGllcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLWNhbGwg
dW5kb01hbmFnZXIudHJhbnNhY3QoKSBkdXJpbmcgdGhlIGV4ZWN1dGUgY2FsbGJhY2sKLVBBU1Mg
dW5kb01hbmFnZXIudHJhbnNhY3QodHJhbnNhY3Rpb24pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1LgotY2FsbCB1bmRvTWFuYWdlci51
bmRvKCkgZHVyaW5nIHRoZSB1bmRvIGNhbGxiYWNrCi1QQVNTIHVuZG9NYW5hZ2VyLnVuZG8oKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAx
NS4KLWNhbGwgdW5kb01hbmFnZXIuY2xlYXJSZWRvKCkgZHVyaW5nIHRoZSByZWRvIGNhbGxiYWNr
Ci1QQVNTIHVuZG9NYW5hZ2VyLnJlZG8oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURf
QUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNS4KLWNhbGwgdW5kb01hbmFnZXIudHJhbnNhY3Qo
KSB3aXRoIGEgdHJhbnNhY3Rpb24gdGhhdCBkaXNjb25uZWN0cyB0aGUgdW5kb01hbmFnZXIgd2hl
biB1bmRvaW5nCi1QQVNTIHJlc3VsdCBpcyAiZXhlY3V0ZSAiCi1jYWxsIHVuZG9NYW5hZ2VyLnVu
ZG8oKQotUEFTUyByZXN1bHQgaXMgImV4ZWN1dGUgdW5kbyAiCi1QQVNTIGVkaXQudW5kb01hbmFn
ZXIgaXMgbnVsbAotUEFTUyB1bmRvTWFuYWdlci5sZW5ndGggaXMgMAotY2FsbCB1bmRvTWFuYWdl
ci5yZWRvKCkgd2hlbiB0aGUgdW5kb01hbmFnZXIgaXMgZGlzY29ubmVjdGVkCi1QQVNTIHVuZG9N
YW5hZ2VyLnJlZG8oKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfQUNDRVNTX0VSUjog
RE9NIEV4Y2VwdGlvbiAxNS4KLVBBU1MgcmVzdWx0IGlzICJleGVjdXRlIHVuZG8gIgotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItdXNlLWFmdGVyLWZyZWUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9tYW5h
Z2VyLXVzZS1hZnRlci1mcmVlLmh0bWwJKHJldmlzaW9uIDEyNjE5OSkKKysrIExheW91dFRlc3Rz
L2VkaXRpbmcvdW5kb21hbmFnZXIvdW5kb21hbmFnZXItdXNlLWFmdGVyLWZyZWUuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw3MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJlZGl0IiBjb250ZW50RWRpdGFi
bGU9InRydWUiIHVuZG9zY29wZT48L2Rpdj4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiRW5zdXJl
IHRoYXQgdW5kb01hbmFnZXIgZG9lc24ndCBoYXZlIHVzZS1hZnRlci1mcmVlIHZ1bG5lcmFiaWxp
dGllcy4iKTsKLQotdmFyIGVkaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdCIpOwot
dmFyIHVuZG9NYW5hZ2VyID0gZWRpdC51bmRvTWFuYWdlcjsKLQotdmFyIHRyYW5zYWN0aW9uID0g
ewotICAgICJleGVjdXRlIjogZnVuY3Rpb24oKSB7Ci0gICAgICAgIHVuZG9NYW5hZ2VyLnRyYW5z
YWN0KHsKLSAgICAgICAgICAgICJleGVjdXRlIjogZnVuY3Rpb24oKSB7IH0sCi0gICAgICAgICAg
ICAidW5kbyI6IGZ1bmN0aW9uKCkgeyB9LAotICAgICAgICAgICAgInJlZG8iOiBmdW5jdGlvbigp
IHsgfQotICAgICAgICB9KTsKLSAgICB9LAotICAgICJ1bmRvIjogZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIHVuZG9NYW5hZ2VyLnVuZG8oKTsKLSAgICB9LAotICAgICJyZWRvIjogZnVuY3Rpb24oKSB7
Ci0gICAgICAgIHVuZG9NYW5hZ2VyLmNsZWFyUmVkbygpOwotICAgIH0KLX07Ci0KLWRlYnVnKCJj
YWxsIHVuZG9NYW5hZ2VyLnRyYW5zYWN0KCkgZHVyaW5nIHRoZSBleGVjdXRlIGNhbGxiYWNrIik7
Ci1zaG91bGRUaHJvdygidW5kb01hbmFnZXIudHJhbnNhY3QodHJhbnNhY3Rpb24pIiwgIidFcnJv
cjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBET00gRXhjZXB0aW9uIDE1JyIpOwotCi1kZWJ1ZygiY2Fs
bCB1bmRvTWFuYWdlci51bmRvKCkgZHVyaW5nIHRoZSB1bmRvIGNhbGxiYWNrIik7Ci1zaG91bGRU
aHJvdygidW5kb01hbmFnZXIudW5kbygpIiwgIidFcnJvcjogSU5WQUxJRF9BQ0NFU1NfRVJSOiBE
T00gRXhjZXB0aW9uIDE1JyIpOwotCi1kZWJ1ZygiY2FsbCB1bmRvTWFuYWdlci5jbGVhclJlZG8o
KSBkdXJpbmcgdGhlIHJlZG8gY2FsbGJhY2siKTsKLXNob3VsZFRocm93KCJ1bmRvTWFuYWdlci5y
ZWRvKCkiLCAiJ0Vycm9yOiBJTlZBTElEX0FDQ0VTU19FUlI6IERPTSBFeGNlcHRpb24gMTUnIik7
Ci0KLXZhciByZXN1bHQgPSAiIjsKLXVuZG9NYW5hZ2VyLmNsZWFyVW5kbygpOwotdW5kb01hbmFn
ZXIuY2xlYXJSZWRvKCk7Ci0KLWRlYnVnKCJjYWxsIHVuZG9NYW5hZ2VyLnRyYW5zYWN0KCkgd2l0
aCBhIHRyYW5zYWN0aW9uIHRoYXQgZGlzY29ubmVjdHMgdGhlIHVuZG9NYW5hZ2VyIHdoZW4gdW5k
b2luZyIpOwotdW5kb01hbmFnZXIudHJhbnNhY3QoewotICAgICJleGVjdXRlIjogZnVuY3Rpb24o
KSB7Ci0gICAgICAgIHJlc3VsdCArPSAiZXhlY3V0ZSAiOwotICAgIH0sCi0gICAgInVuZG8iOiBm
dW5jdGlvbigpIHsKLSAgICAgICAgcmVzdWx0ICs9ICJ1bmRvICI7Ci0gICAgICAgIGVkaXQudW5k
b1Njb3BlID0gZmFsc2U7Ci0gICAgICAgIGdjKCk7Ci0gICAgfSwKLSAgICAicmVkbyI6IGZ1bmN0
aW9uKCkgewotICAgICAgICByZXN1bHQgKz0gInJlZG8gIjsKLSAgICB9Ci19KTsKLXNob3VsZEJl
RXF1YWxUb1N0cmluZygicmVzdWx0IiwgImV4ZWN1dGUgIik7Ci0KLWRlYnVnKCJjYWxsIHVuZG9N
YW5hZ2VyLnVuZG8oKSIpOwotdW5kb01hbmFnZXIudW5kbygpOwotc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJyZXN1bHQiLCAiZXhlY3V0ZSB1bmRvICIpOwotc2hvdWxkQmVOdWxsKCJlZGl0LnVuZG9N
YW5hZ2VyIik7Ci1zaG91bGRCZSgidW5kb01hbmFnZXIubGVuZ3RoIiwgIjAiKTsKLQotZGVidWco
ImNhbGwgdW5kb01hbmFnZXIucmVkbygpIHdoZW4gdGhlIHVuZG9NYW5hZ2VyIGlzIGRpc2Nvbm5l
Y3RlZCIpOwotc2hvdWxkVGhyb3coInVuZG9NYW5hZ2VyLnJlZG8oKSIsICInRXJyb3I6IElOVkFM
SURfQUNDRVNTX0VSUjogRE9NIEV4Y2VwdGlvbiAxNSciKTsKLXNob3VsZEJlRXF1YWxUb1N0cmlu
ZygicmVzdWx0IiwgImV4ZWN1dGUgdW5kbyAiKTsKLQotdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvc2NvcGUtYXR0cmlidXRlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9zY29w
ZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMjYxOTkpCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9zY29wZS1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDIxICswLDAgQEAKLVRoaXMgdGVzdHMgZWxlbWVudCdzIHVuZG9z
Y29wZSBhdHRyaWJ1dGUuCi0KLVBBU1MgQW4gZWxlbWVudCBoYXMgdGhlIHVuZG9zY29wZSBhdHRy
aWJ1dGUgc2V0IHRvIHRydWUuIAotUEFTUyBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgYW4g
VW5kb01hbmFnZXIgb2JqZWN0LiAKLVBBU1MgQWZ0ZXIgZWxlbWVudC51bmRvU2NvcGUgPSBmYWxz
ZSwgZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5zIG51bGwuIAotUEFTUyBBZnRlciBlbGVtZW50
LnVuZG9TY29wZSA9IHRydWUsIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBhbiBVbmRvTWFu
YWdlciBvYmplY3QuIAotUEFTUyBBZnRlciBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgndW5kb3Nj
b3BlJyksIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBudWxsLiAKLVBBU1MgQWZ0ZXIgZWxl
bWVudC5zZXRBdHRyaWJ1dGUoJ3VuZG9zY29wZScsICcnKSwgZWxlbWVudC51bmRvTWFuYWdlciBy
ZXR1cm5zIGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4gCi1QQVNTIEFmdGVyIGVsZW1lbnQuc2V0QXR0
cmlidXRlKCd1bmRvc2NvcGUnLCAndW5kb3Njb3BlJyksIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0
dXJucyBhbiBVbmRvTWFuYWdlciBvYmplY3QuIAotUEFTUyBBZnRlciBlbGVtZW50LnNldEF0dHJp
YnV0ZSgndW5kb3Njb3BlJywgJycpOyBlbGVtZW50LnVuZG9TY29wZSA9IGZhbHNlOywgZWxlbWVu
dC51bmRvTWFuYWdlciByZXR1cm5zIG51bGwuIAotUEFTUyBBZnRlciBlbGVtZW50LnJlbW92ZUF0
dHJpYnV0ZSgndW5kb3Njb3BlJyk7IGVsZW1lbnQudW5kb1Njb3BlID0gdHJ1ZTssIGVsZW1lbnQu
dW5kb01hbmFnZXIgcmV0dXJucyBhbiBVbmRvTWFuYWdlciBvYmplY3QuIAotUEFTUyBBZnRlciBl
bGVtZW50LnVuZG9TY29wZSA9IHRydWU7IGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCd1bmRvc2Nv
cGUnKTssIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBudWxsLiAKLVBBU1MgQWZ0ZXIgZWxl
bWVudC51bmRvU2NvcGUgPSBmYWxzZTsgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3VuZG9zY29wZScs
ICcnKTssIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJucyBhbiBVbmRvTWFuYWdlciBvYmplY3Qu
IAotUEFTUyBBZnRlciB0aGUgcGFyYW50IG9mIGVsZW1lbnQgYmVjb21lcyBlZGl0YWJsZSwgZWxl
bWVudC51bmRvTWFuYWdlciByZXR1cm5zIG51bGwuIAotUEFTUyBBZnRlciB0aGUgcGFyYW50IG9m
IGVsZW1lbnQgYmVjb21lcyBub24tZWRpdGFibGUsIGVsZW1lbnQudW5kb01hbmFnZXIgcmV0dXJu
cyBhbiBVbmRvTWFuYWdlciBvYmplY3QuIAotUEFTUyBBZnRlciB0aGUgcGFyYW50IG9mIGVsZW1l
bnQgYmVjb21lcyBlZGl0YWJsZSB0aHJvdWdoIGluaGVyaXRhbmNlLCBlbGVtZW50LnVuZG9NYW5h
Z2VyIHJldHVybnMgbnVsbC4gCi1QQVNTIEFmdGVyIHRoZSBwYXJhbnQgb2YgZWxlbWVudCBiZWNv
bWVzIG5vbi1lZGl0YWJsZSBhbmQgZWxlbWVudCBiZWNvbWVzIGVkaXRhYmxlLCBlbGVtZW50LnVu
ZG9NYW5hZ2VyIHJldHVybnMgYW4gVW5kb01hbmFnZXIgb2JqZWN0LiAKLVBBU1MgZWxlbWVudC51
bmRvTWFuYWdlciBpcyBkaXNjb25uZWN0ZWQgd2hlbiBlbGVtZW50LnVuZG9TY29wZSA9IGZhbHNl
LiAKLVBBU1MgZWxlbWVudC51bmRvTWFuYWdlciBpcyBkaXNjb25uZWN0ZWQgd2hlbiBpdHMgcGFy
ZW50IGJlY29tZXMgZWRpdGFibGUuIAotUEFTUyBTZXR0aW5nIGNvbnRlbnRFZGl0YWJsZSBvZiBh
biBhbmNlc3RvciBvZiBlbGVtZW50IHRvIHRydWUgZG9lc24ndCBkaXNjb25uZWN0IGVsZW1lbnQu
dW5kb01hbmFnZXIgaWYgZWxlbWVudCBpcyBzdGlsbCBhbiBlZGl0aW5nIGhvc3QuIAotCkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9zY29wZS1hdHRyaWJ1dGUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG9tYW5hZ2VyL3VuZG9zY29w
ZS1hdHRyaWJ1dGUuaHRtbAkocmV2aXNpb24gMTI2MTk5KQorKysgTGF5b3V0VGVzdHMvZWRpdGlu
Zy91bmRvbWFuYWdlci91bmRvc2NvcGUtYXR0cmlidXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTU5ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT51
bmRvc2NvcGUgYXR0cmlidXRlPC90aXRsZT4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLVRoaXMgdGVz
dHMgZWxlbWVudCdzIHVuZG9zY29wZSBhdHRyaWJ1dGUuCi0KLTxkaXYgaWQ9Im91dGVyQ29udGFp
bmVyIj4KLSAgICA8ZGl2IGlkPSJpbm5lckNvbnRhaW5lciI+Ci0gICAgICAgIDxkaXYgaWQ9ImVs
ZW1lbnQiIHVuZG9zY29wZT48L2Rpdj4KLSAgICA8L2Rpdj4KLTwvZGl2PgotCi08c2NyaXB0Pgot
dmFyIG91dGVyQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dGVyQ29udGFp
bmVyIik7Ci12YXIgaW5uZXJDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5u
ZXJDb250YWluZXIiKTsKLXZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVs
ZW1lbnQiKTsKLQotZnVuY3Rpb24gYXNzZXJ0X2VsZW1lbnRfaGFzX3VuZG9tYW5hZ2VyKCkgewot
ICAgIGFzc2VydF9lcXVhbHMoZWxlbWVudC51bmRvTWFuYWdlci50b1N0cmluZygpLCAiW29iamVj
dCBVbmRvTWFuYWdlcl0iKTsKLX0KLQotZnVuY3Rpb24gYXNzZXJ0X2VsZW1lbnRfbm90X2hhdmVf
dW5kb21hbmFnZXIoKSB7Ci0gICAgYXNzZXJ0X2VxdWFscyhlbGVtZW50LnVuZG9NYW5hZ2VyLCBu
dWxsKTsKLX0KLQotdGVzdChmdW5jdGlvbigpIHsKLSAgICBhc3NlcnRfb3duX3Byb3BlcnR5KGVs
ZW1lbnQsICJ1bmRvU2NvcGUiKTsKLSAgICBhc3NlcnRfZXF1YWxzKGVsZW1lbnQudW5kb1Njb3Bl
LCB0cnVlKTsKLX0sICJBbiBlbGVtZW50IGhhcyB0aGUgdW5kb3Njb3BlIGF0dHJpYnV0ZSBzZXQg
dG8gdHJ1ZS4iKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgICBhc3NlcnRfZWxlbWVudF9oYXNf
dW5kb21hbmFnZXIoKTsKLX0sICJlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgYW4gVW5kb01h
bmFnZXIgb2JqZWN0LiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGVsZW1lbnQudW5kb1Nj
b3BlID0gZmFsc2U7Ci0KLSAgICBhc3NlcnRfZWxlbWVudF9ub3RfaGF2ZV91bmRvbWFuYWdlcigp
OwotfSwgIkFmdGVyIGVsZW1lbnQudW5kb1Njb3BlID0gZmFsc2UsIGVsZW1lbnQudW5kb01hbmFn
ZXIgcmV0dXJucyBudWxsLiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGVsZW1lbnQudW5k
b1Njb3BlID0gdHJ1ZTsKLQotICAgIGFzc2VydF9lbGVtZW50X2hhc191bmRvbWFuYWdlcigpOwot
fSwgIkFmdGVyIGVsZW1lbnQudW5kb1Njb3BlID0gdHJ1ZSwgZWxlbWVudC51bmRvTWFuYWdlciBy
ZXR1cm5zIGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4iKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAg
ICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndW5kb3Njb3BlJywgJycpOwotICAgIGVsZW1lbnQucmVt
b3ZlQXR0cmlidXRlKCd1bmRvc2NvcGUnKTsKLQotICAgIGFzc2VydF9lbGVtZW50X25vdF9oYXZl
X3VuZG9tYW5hZ2VyKCk7Ci19LCAiQWZ0ZXIgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoJ3VuZG9z
Y29wZScpLCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgbnVsbC4iKTsKLQotdGVzdChmdW5j
dGlvbigpIHsKLSAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndW5kb3Njb3BlJywgJycpOwotCi0g
ICAgYXNzZXJ0X2VsZW1lbnRfaGFzX3VuZG9tYW5hZ2VyKCk7Ci19LCAiQWZ0ZXIgZWxlbWVudC5z
ZXRBdHRyaWJ1dGUoJ3VuZG9zY29wZScsICcnKSwgZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5z
IGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4iKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgICBlbGVt
ZW50LnNldEF0dHJpYnV0ZSgndW5kb3Njb3BlJywgJ3VuZG9zY29wZScpOwotCi0gICAgYXNzZXJ0
X2VsZW1lbnRfaGFzX3VuZG9tYW5hZ2VyKCk7Ci19LCAiQWZ0ZXIgZWxlbWVudC5zZXRBdHRyaWJ1
dGUoJ3VuZG9zY29wZScsICd1bmRvc2NvcGUnKSwgZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5z
IGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4iKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgICBlbGVt
ZW50LnNldEF0dHJpYnV0ZSgndW5kb3Njb3BlJywgJycpOwotICAgIGVsZW1lbnQudW5kb1Njb3Bl
ID0gZmFsc2U7Ci0KLSAgICBhc3NlcnRfZWxlbWVudF9ub3RfaGF2ZV91bmRvbWFuYWdlcigpOwot
fSwgIkFmdGVyIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd1bmRvc2NvcGUnLCAnJyk7IGVsZW1lbnQu
dW5kb1Njb3BlID0gZmFsc2U7LCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgbnVsbC4iKTsK
LQotdGVzdChmdW5jdGlvbigpIHsKLSAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgndW5kb3Nj
b3BlJyk7Ci0gICAgZWxlbWVudC51bmRvU2NvcGUgPSB0cnVlOwotCi0gICAgYXNzZXJ0X2VsZW1l
bnRfaGFzX3VuZG9tYW5hZ2VyKCk7Ci19LCAiQWZ0ZXIgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUo
J3VuZG9zY29wZScpOyBlbGVtZW50LnVuZG9TY29wZSA9IHRydWU7LCBlbGVtZW50LnVuZG9NYW5h
Z2VyIHJldHVybnMgYW4gVW5kb01hbmFnZXIgb2JqZWN0LiIpOwotCi10ZXN0KGZ1bmN0aW9uKCkg
ewotICAgIGVsZW1lbnQudW5kb1Njb3BlID0gdHJ1ZTsKLSAgICBlbGVtZW50LnJlbW92ZUF0dHJp
YnV0ZSgndW5kb3Njb3BlJyk7Ci0KLSAgICBhc3NlcnRfZWxlbWVudF9ub3RfaGF2ZV91bmRvbWFu
YWdlcigpOwotfSwgIkFmdGVyIGVsZW1lbnQudW5kb1Njb3BlID0gdHJ1ZTsgZWxlbWVudC5yZW1v
dmVBdHRyaWJ1dGUoJ3VuZG9zY29wZScpOywgZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5zIG51
bGwuIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgZWxlbWVudC51bmRvU2NvcGUgPSBmYWxz
ZTsKLSAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndW5kb3Njb3BlJywgJycpOwotCi0gICAgYXNz
ZXJ0X2VsZW1lbnRfaGFzX3VuZG9tYW5hZ2VyKCk7Ci19LCAiQWZ0ZXIgZWxlbWVudC51bmRvU2Nv
cGUgPSBmYWxzZTsgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3VuZG9zY29wZScsICcnKTssIGVsZW1l
bnQudW5kb01hbmFnZXIgcmV0dXJucyBhbiBVbmRvTWFuYWdlciBvYmplY3QuIik7Ci0KLXRlc3Qo
ZnVuY3Rpb24oKSB7Ci0gICAgaW5uZXJDb250YWluZXIuY29udGVudEVkaXRhYmxlID0gInRydWUi
OwotCi0gICAgYXNzZXJ0X2VsZW1lbnRfbm90X2hhdmVfdW5kb21hbmFnZXIoKTsKLX0sICJBZnRl
ciB0aGUgcGFyYW50IG9mIGVsZW1lbnQgYmVjb21lcyBlZGl0YWJsZSwgZWxlbWVudC51bmRvTWFu
YWdlciByZXR1cm5zIG51bGwuIik7Ci0KLXRlc3QoZnVuY3Rpb24oKSB7Ci0gICAgaW5uZXJDb250
YWluZXIuY29udGVudEVkaXRhYmxlID0gImZhbHNlIjsKLQotICAgIGFzc2VydF9lbGVtZW50X2hh
c191bmRvbWFuYWdlcigpOwotfSwgIkFmdGVyIHRoZSBwYXJhbnQgb2YgZWxlbWVudCBiZWNvbWVz
IG5vbi1lZGl0YWJsZSwgZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5zIGFuIFVuZG9NYW5hZ2Vy
IG9iamVjdC4iKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAgICBvdXRlckNvbnRhaW5lci5jb250
ZW50RWRpdGFibGUgPSAidHJ1ZSI7Ci0gICAgaW5uZXJDb250YWluZXIuY29udGVudEVkaXRhYmxl
ID0gImluaGVyaXQiOwotCi0gICAgYXNzZXJ0X2VsZW1lbnRfbm90X2hhdmVfdW5kb21hbmFnZXIo
KTsKLX0sICJBZnRlciB0aGUgcGFyYW50IG9mIGVsZW1lbnQgYmVjb21lcyBlZGl0YWJsZSB0aHJv
dWdoIGluaGVyaXRhbmNlLCBlbGVtZW50LnVuZG9NYW5hZ2VyIHJldHVybnMgbnVsbC4iKTsKLQot
dGVzdChmdW5jdGlvbigpIHsKLSAgICBpbm5lckNvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSAi
ZmFsc2UiOwotICAgIGVsZW1lbnQuY29udGVudEVkaWFibGUgPSAidHJ1ZSI7Ci0KLSAgICBhc3Nl
cnRfZWxlbWVudF9oYXNfdW5kb21hbmFnZXIoKTsKLX0sICJBZnRlciB0aGUgcGFyYW50IG9mIGVs
ZW1lbnQgYmVjb21lcyBub24tZWRpdGFibGUgYW5kIGVsZW1lbnQgYmVjb21lcyBlZGl0YWJsZSwg
ZWxlbWVudC51bmRvTWFuYWdlciByZXR1cm5zIGFuIFVuZG9NYW5hZ2VyIG9iamVjdC4iKTsKLQot
dGVzdChmdW5jdGlvbigpIHsKLSAgICBlbGVtZW50LnVuZG9NYW5hZ2VyLnRyYW5zYWN0KHsiZXhl
Y3V0ZSI6IGZ1bmN0aW9uICgpIHsgfX0sIGZhbHNlKTsKLSAgICAKLSAgICBhc3NlcnRfZXF1YWxz
KGVsZW1lbnQudW5kb01hbmFnZXIubGVuZ3RoLCAxKTsKLQotICAgIGVsZW1lbnQudW5kb1Njb3Bl
ID0gZmFsc2U7Ci0gICAgZWxlbWVudC51bmRvU2NvcGUgPSB0cnVlOwotCi0gICAgYXNzZXJ0X2Vx
dWFscyhlbGVtZW50LnVuZG9NYW5hZ2VyLmxlbmd0aCwgMCk7Ci19LCAiZWxlbWVudC51bmRvTWFu
YWdlciBpcyBkaXNjb25uZWN0ZWQgd2hlbiBlbGVtZW50LnVuZG9TY29wZSA9IGZhbHNlLiIpOwot
Ci10ZXN0KGZ1bmN0aW9uKCkgewotICAgIGVsZW1lbnQudW5kb01hbmFnZXIudHJhbnNhY3QoeyJl
eGVjdXRlIjogZnVuY3Rpb24gKCkgeyB9fSwgZmFsc2UpOwotICAgIAotICAgIGFzc2VydF9lcXVh
bHMoZWxlbWVudC51bmRvTWFuYWdlci5sZW5ndGgsIDEpOwotCi0gICAgaW5uZXJDb250YWluZXIu
Y29udGVudEVkaXRhYmxlID0gInRydWUiOwotICAgIGlubmVyQ29udGFpbmVyLmNvbnRlbnRFZGl0
YWJsZSA9ICJmYWxzZSI7Ci0KLSAgICBhc3NlcnRfZXF1YWxzKGVsZW1lbnQudW5kb01hbmFnZXIu
bGVuZ3RoLCAwKTsKLX0sICJlbGVtZW50LnVuZG9NYW5hZ2VyIGlzIGRpc2Nvbm5lY3RlZCB3aGVu
IGl0cyBwYXJlbnQgYmVjb21lcyBlZGl0YWJsZS4iKTsKLQotdGVzdChmdW5jdGlvbigpIHsKLSAg
ICBvdXRlckNvbnRhaW5lci5jb250ZW50RWRpdGFibGUgPSAiZmFsc2UiOwotICAgIGlubmVyQ29u
dGFpbmVyLmNvbnRlbnRFZGl0YWJsZSA9ICJmYWxzZSI7Ci0gICAgZWxlbWVudC51bmRvTWFuYWdl
ci50cmFuc2FjdCh7ImV4ZWN1dGUiOiBmdW5jdGlvbiAoKSB7IH19LCBmYWxzZSk7Ci0KLSAgICBh
c3NlcnRfZXF1YWxzKGVsZW1lbnQudW5kb01hbmFnZXIubGVuZ3RoLCAxKTsKLQotICAgIG91dGVy
Q29udGFpbmVyLmNvbnRlbnRFZGl0YWJsZSA9ICJ0cnVlIjsKLQotICAgIGFzc2VydF9lcXVhbHMo
ZWxlbWVudC51bmRvTWFuYWdlci5sZW5ndGgsIDEpOwotfSwgIlNldHRpbmcgY29udGVudEVkaXRh
YmxlIG9mIGFuIGFuY2VzdG9yIG9mIGVsZW1lbnQgdG8gdHJ1ZSBkb2Vzbid0IGRpc2Nvbm5lY3Qg
ZWxlbWVudC51bmRvTWFuYWdlciBpZiBlbGVtZW50IGlzIHN0aWxsIGFuIGVkaXRpbmcgaG9zdC4i
KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy91bmRvbWFuYWdlci91bmRvc2NvcGVob3N0LXVzZS1hZnRlci1mcmVlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvbWFuYWdlci91bmRvc2NvcGVob3N0LXVzZS1h
ZnRlci1mcmVlLmh0bWwJKHJldmlzaW9uIDEyNjE5OSkKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
dW5kb21hbmFnZXIvdW5kb3Njb3BlaG9zdC11c2UtYWZ0ZXItZnJlZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC00LDE2ICs0LDE2IEBACiA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+Ci08ZGl2IGlkPSJk
aXYiIHVuZG9zY29wZT48L2Rpdj4KKzxpZnJhbWUgaWQ9ImZyYW1lIj48L2lmcmFtZT4KIDxzY3Jp
cHQ+CiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IHVuZG9NYW5hZ2VyIGRvZXNuJ3QgaGF2
ZSB1c2UtYWZ0ZXItZnJlZSB2dWxuZXJhYmlsaXRpZXMgIgogICAgICsgImFmdGVyIGl0cyB1bmRv
U2NvcGVIb3N0IGhhcyBiZWVuIHJlY2xhaW1lZCBieSBHQy4iKTsKIAotdmFyIGRpdiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJkaXYiKTsKLXZhciB1bmRvTWFuYWdlciA9IGRpdi51bmRvTWFu
YWdlcjsKK3ZhciBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZSIpOwordmFy
IHVuZG9NYW5hZ2VyID0gZnJhbWUuY29udGVudERvY3VtZW50LnVuZG9NYW5hZ2VyOwogCi1kaXYu
cGFyZW50Tm9kZS5yZW1vdmVDaGlsZChkaXYpOwotZGl2ID0gbnVsbDsKK2ZyYW1lLnBhcmVudE5v
ZGUucmVtb3ZlQ2hpbGQoZnJhbWUpOworZnJhbWUgPSBudWxsOwogZ2MoKTsKIAogdmFyIHRyYW5z
YWN0aW9uID0gewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>