<?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>81021</bug_id>
          
          <creation_ts>2012-03-13 12:20:22 -0700</creation_ts>
          <short_desc>[CSSRegions]NamedFlow::getRegionsByContentNode should not return a live NodeList</short_desc>
          <delta_ts>2012-03-13 18:26:03 -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>CSS</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>
          
          <blocked>80900</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihnea Ovidenie">mihnea</reporter>
          <assigned_to name="Mihnea Ovidenie">mihnea</assigned_to>
          <cc>abarth</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>577654</commentid>
    <comment_count>0</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-03-13 12:20:22 -0700</bug_when>
    <thetext>Making the NamedFlow::getRegionsByContentNode return a live NodeList of regions is difficult and error prone. It also prevents refactoring like in https://bugs.webkit.org/show_bug.cgi?id=80900. I am reverting the original patch for https://bugs.webkit.org/show_bug.cgi?id=77746.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577686</commentid>
    <comment_count>1</comment_count>
      <attachid>131696</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-03-13 12:46:15 -0700</bug_when>
    <thetext>Created attachment 131696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577988</commentid>
    <comment_count>2</comment_count>
      <attachid>131696</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-13 16:43:26 -0700</bug_when>
    <thetext>Comment on attachment 131696
Patch

Clearing flags on attachment: 131696

Committed r110639: &lt;http://trac.webkit.org/changeset/110639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577989</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-13 16:43:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131696</attachid>
            <date>2012-03-13 12:46:15 -0700</date>
            <delta_ts>2012-03-13 16:43:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>81021-2.patch</filename>
            <type>text/plain</type>
            <size>89437</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNWJmNzc1Li4zMTM4YTA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDMt
MTMgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAgICAgICAgW0NTU1Jl
Z2lvbnNdTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZSBzaG91bGQgbm90IHJldHVy
biBhIGxpdmUgTm9kZUxpc3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgxMDIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmV2ZXJ0aW5nIHRoZSBvcmlnaW5hbCBwYXRjaCBhcyB3ZSBuZWVkIGEgYmV0dGVy
IHNvbHV0aW9uLgorCisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRl
bnQtbm9kZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2dl
dC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1idC1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jp
ei1idC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1i
eS1jb250ZW50LW5vZGUtaG9yaXotdGItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotdGIuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1u
b2RlLXZlcnQtbHItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcmVnaW9u
cy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1sci5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtdmVydC1ybC1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2dldC1yZWdpb25z
LWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LXJsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9y
ZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGZhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVu
dC1ub2RlMi5odG1sOiBSZW1vdmVkLgorCiAyMDEyLTAzLTEzICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm90ZSB0aGF0IGZhc3QvbG9hZGVyL3dpbmRvdy1wcm9w
ZXJ0aWVzLXJlc3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjk2YjEzLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50
LW5vZGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotVGVzdCBm
b3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlCi0KLU9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mIFBBU1Mg
YmVsb3cuCi0KLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MK
LQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1i
eS1jb250ZW50LW5vZGUtaG9yaXotYnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1idC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkZGMyMDEuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jpei1i
dC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi1UZXN0IGZvciA3
Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVu
dE5vZGUKLQotT24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxv
dy4KLQotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFT
UwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwot
UEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFT
UwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwot
UEFTUwotUEFTUwotUEFTUwotCi0KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LWJ0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LWJ0Lmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjMTNiMzUuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jp
ei1idC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTcxICswLDAgQEAKLTwhZG9jdHlwZSBodG1s
PgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0icmVzb3VyY2VzL3JlZ2lvbi1zdHlsZS5jc3MiPgotICAgICAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2hlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzdHlsZT4KLSAgICAgICAgICAg
IGh0bWwgeyAtd2Via2l0LXdyaXRpbmctbW9kZTogaG9yaXpvbnRhbC1idDsgfQotICAgICAgICAg
ICAgYm9keSB7IGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IH0KLSAgICAgICAgICAgIC5yZWdpb25C
b3ggeyB3aWR0aDogMjUwcHg7IGhlaWdodDogNTBweDsgfQotICAgICAgICAgICAgI2FydGljbGUg
eyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzsgfQotICAgICAgICAgICAgI3JlZ2lvbiwgI3JlZ2lv
bjIsICNyZWdpb24zIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IH0KLQotICAgICAgICAgICAg
I2FydGljbGUyIHsgLXdlYmtpdC1mbG93LWludG86IGZsb3cyOyB9Ci0gICAgICAgICAgICAjcmVn
aW9uNCwgI3JlZ2lvbjUgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7IH0KLSAgICAgICAgPC9z
dHlsZT4KLSAgICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5l
ck1lc3NhZ2UiPgotICAgICAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzQ2Ij4KLSAgICAgICAgICAgIDc3NzQ2OiBb
Q1NTUmVnaW9uc11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZTwv
YT48L3A+Ci0gICAgICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmll
cyBvZiBQQVNTIGJlbG93LjwvcD4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgotICAgICAgICA8IS0tIHNvbWUgdGVzdHMgd2l0aCBpbmxpbmUgZWxlbWVu
dHMgLS0+Ci0gICAgICAgIDxkaXYgaWQ9ImFydGljbGUiPgotICAgICAgICAgICAgPHNwYW4gaWQ9
InNwYW5Ob2RlIj5UZXh0IGluc2lkZSBzcGFuLjwvc3Bhbj4KLSAgICAgICAgICAgIFRleHQgb3V0
c2lkZSBzcGFuLiBUZXh0IG91dHNpZGUgc3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4uCi0gICAgICAg
ICAgICA8c3BhbiBpZD0ic3Bhbk5vZGUyIj5UZXh0IGluc2lkZSBzcGFuMi48L3NwYW4+Ci0gICAg
ICAgICAgICA8c3BhbiBpZD0ic3Bhbk5vZGUzIj5UZXh0IGluc2lkZSBzcGFuMzwvc3Bhbj4KLSAg
ICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9InJlZ2lvbkJveCI+
PC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9InJlZ2lvbjIiIGNsYXNzPSJyZWdpb25Cb3giPjwvZGl2
PgotCi0gICAgICAgIDwhLS0gc29tZSB0ZXN0cyB3aXRoIGJsb2NrIGVsZW1lbnRzIC0tPgotICAg
ICAgICA8ZGl2IGlkPSJhcnRpY2xlMiI+Ci0gICAgICAgICAgICA8cCBpZD0icDEiPlRleHQgaW5z
aWRlIHBhcmFncmFwaCBwMS48L3A+Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2IGlkPSJy
ZWdpb240IiBjbGFzcz0icmVnaW9uQm94Ij48L3JlZ2lvbj4KLSAgICAgICAgPHNjcmlwdD4KLSAg
ICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICAg
ICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAg
IHZhciBuYW1lZEZsb3cgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93Iik7Ci0K
LSAgICAgICAgICAgIGZ1bmN0aW9uIGhpZGVSZWdpb25zKCkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLnN0eWxlLnZpc2li
aWxpdHkgPSAiaGlkZGVuIjsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYXJ0aWNsZTIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7Ci0gICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLnN0eWxlLnZpc2liaWxpdHkgPSAi
aGlkZGVuIjsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9u
MiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLSAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMyIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsK
LSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLnN0eWxl
LnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVnaW9uNSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RBcnRpY2xlID0gbmFtZWRGbG93Lmdl
dFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikp
OwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlICE9IG51bGwsICJSZWdpb24g
bGlzdCBmb3IgYXJ0aWNsZSBzaG91bGQgbm90IGJlIG51bGwiKTsKLSAgICAgICAgICAgIGFzc2Vy
dChyZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZvciBhcnRpY2xl
IHNob3VsZCBoYXZlIDIgZWxlbWVudHMsIGhhcyAiICsgcmVnaW9uTGlzdEFydGljbGUubGVuZ3Ro
KTsKLSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGggPiAwKQotICAgICAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApID09IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0IGVsZW1lbnQgaW4gcmVnaW9uIGxpc3QgZm9y
IGFydGljbGUgc2hvdWxkIGJlIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RBcnRpY2xlLml0
ZW0oMCkuaWQpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCA+IDEp
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSkgPT0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIlNlY29uZCBlbGVtZW50IGluIHJlZ2lv
biBsaXN0IGZvciBhcnRpY2xlIHNob3VsZCBiZSByZWdpb24yLCBpdCBpcyAiICsgcmVnaW9uTGlz
dEFydGljbGUuaXRlbSgxKS5pZCk7Ci0KLSAgICAgICAgICAgIHZhciBzcGFuTm9kZSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZSIpOwotICAgICAgICAgICAgdmFyIHJlZ2lvbkxp
c3RTcGFuID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlKTsKLSAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9y
IHNwYW4gc2hvdWxkIG5vdCBiZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlz
dFNwYW4ubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3Igc3BhbiBzaG91bGQgaGF2ZSAxIGVs
ZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFNwYW4ubGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChy
ZWdpb25MaXN0U3Bhbi5sZW5ndGggPiAwKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0U3Bhbi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKSwgIkZp
cnN0IHJlZ2lvbiBmb3Igc3BhbiBzaG91bGQgYmUgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlz
dFNwYW4uaXRlbSgwKS5pZCk7Ci0KLSAgICAgICAgICAgIHZhciBzcGFuTm9kZTIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUyIik7Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlz
dFNwYW4yID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlMik7Ci0g
ICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4yICE9IG51bGwsICJSZWdpb24gbGlzdCBm
b3Igc3BhbjIgc2hvdWxkIG5vdCBiZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9u
TGlzdFNwYW4yLmxlbmd0aCA9PSAyLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4yIHNob3VsZCBoYXZl
IDIgZWxlbWVudHMsIGhhcyAiICsgcmVnaW9uTGlzdFNwYW4yLmxlbmd0aCk7Ci0KLSAgICAgICAg
ICAgIHZhciBzcGFuTm9kZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUzIik7
Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4zID0gbmFtZWRGbG93LmdldFJlZ2lvbnNC
eUNvbnRlbnROb2RlKHNwYW5Ob2RlMyk7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNw
YW4zICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3Igc3BhbjMgc2hvdWxkIG5vdCBiZSBudWxsIik7
Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4zLmxlbmd0aCA9PSAxLCAiUmVnaW9u
IGxpc3QgZm9yIHNwYW4zIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0
U3BhbjMubGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0U3BhbjMubGVuZ3RoID4g
MCkKLSAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkgPT0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3Igc3BhbiBu
b2RlIDMgc2hvdWxkIGJlIHRoZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFNw
YW4zLml0ZW0oMCkuaWQpOwotCi0gICAgICAgICAgICB2YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2Rl
LiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiAiKTsKLSAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAg
ICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlD
b250ZW50Tm9kZSh0ZXh0Tm9kZSk7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHRO
b2RlICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBub3QgYmUgbnVs
bCIpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGggPT0gMSwg
IlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiAr
IHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGgpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RU
ZXh0Tm9kZS5sZW5ndGggPiAwKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4
dE5vZGUuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmly
c3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgc2hvdWxkIGJlIHNlY29uZCByZWdpb24sIGl0IGlzICIg
KyByZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgwKS5pZCk7Ci0KLSAgICAgICAgICAgIC8vIEFkZCBh
bm90aGVyIHRleHQgbm9kZSB0aGF0IHdpbGwgb3ZlcmZsb3cgdGhlIHJlZ2lvbjIuCi0gICAgICAg
ICAgICB2YXIgdGV4dE5vZGUyID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZTIu
Iik7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVu
ZENoaWxkKHRleHROb2RlMik7Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMiA9
IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTIpOwotICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciB0
ZXh0IG5vZGUgMiBzaG91bGQgbm90IGJlIG51bGwiKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdp
b25MaXN0VGV4dE5vZGUyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAy
IHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0
aCk7Ci0gICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPiAwKQotICAg
ICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkgPT0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2Rl
IDIgc2hvdWxkIGJlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUy
Lml0ZW0oMCkuaWQpOwotCi0gICAgICAgICAgICAvLyBBZGQgYW5vdGhlciB0ZXh0IG5vZGUgdGhh
dCBpcyBpbiB0aGUgb3ZlcmZsb3cgb2YgdGhlIGxhc3QgcmVnaW9uLgotICAgICAgICAgICAgdmFy
IHRleHROb2RlMyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUzLiIpOwotICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0
ZXh0Tm9kZTMpOwotICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTMgPSBuYW1lZEZs
b3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUzKTsKLSAgICAgICAgICAgIGFzc2Vy
dChyZWdpb25MaXN0VGV4dE5vZGUzICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2Rl
IDMgc2hvdWxkIG5vdCBiZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRl
eHROb2RlMy5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMyBzaG91bGQg
aGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgpOwotICAg
ICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoID4gMCkKLSAgICAgICAgICAg
ICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDApID09IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSAzIHNob3Vs
ZCBiZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDAp
LmlkKTsKLQotICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIgcmVnaW9uIHRvIHRha2UgdGhlIG92
ZXJmbG93aW5nIGVsZW1lbnRzIGZyb20gc2Vjb25kIHJlZ2lvbi4KLSAgICAgICAgICAgIHZhciBy
ZWdpb24zID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICByZWdp
b24zLmlkID0gInJlZ2lvbjMiOwotICAgICAgICAgICAgcmVnaW9uMy5jbGFzc05hbWUgPSAicmVn
aW9uQm94IjsKLSAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVnaW9uMyk7
Ci0KLSAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUyID0gbmFtZWRGbG93LmdldFJl
Z2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0VGV4dE5vZGUgPT0gcmVnaW9uTGlzdFRleHROb2RlMiwgIlJlZ2lvbiBsaXN0cyBmb3IgdGV4
dCBub2RlIHNob3VsZCByZWZlcmVuY2UgdGhlIHNhbWUgb2JqZWN0Iik7Ci0gICAgICAgICAgICBh
c3NlcnQocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZvciB0
ZXh0IG5vZGUgc2hvdWxkIGhhdmUgMiBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9k
ZTIubGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA+
IDApCi0gICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKSA9
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0
ZXh0IG5vZGUgc2hvdWxkIGJlIHRoZSBzZWNvbmQgcmVnaW9uIGZyb20gZmxvdywgaXQgaXMgIiAr
IHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKS5pZCk7Ci0gICAgICAgICAgICBpZiAocmVnaW9u
TGlzdFRleHROb2RlMi5sZW5ndGggPiAxKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0VGV4dE5vZGUyLml0ZW0oMSkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMi
KSwgIlNlY29uZCByZWdpb24gZm9yIHRleHQgbm9kZSBzaG91bGQgYmUgdGhlIHRoaXJkIHJlZ2lv
biBmcm9tIGZsb3csIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkuaWQpOwot
Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMzIgPSBuYW1lZEZsb3cuZ2V0UmVn
aW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUzKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0VGV4dE5vZGUzID09IHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLCAiUmVnaW9uIGxpc3RzIGZvciB0
ZXh0IG5vZGUgMyBzaG91bGQgcmVmZXJlbmNlIHRoZSBzYW1lIG9iamVjdCIpOwotICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3Qg
Zm9yIHRleHQgbm9kZSAzIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0
VGV4dE5vZGUzLmxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMzIu
bGVuZ3RoID4gMCkKLSAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMzIu
aXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMyIpLCAiRmlyc3QgcmVn
aW9uIGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgYmUgdGhlIHRoaXJkIHJlZ2lvbiBmcm9tIGZsb3cs
IGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUzMi5pdGVtKDApLmlkKTsKLQotICAgICAgICAg
ICAgdmFyIG5hbWVkRmxvdzIgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93MiIp
OwotICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMSA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5
Q29udGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAxIikpOwotICAgICAgICAgICAg
YXNzZXJ0KHJlZ2lvbkxpc3RQMSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHAxIG5vZGUgc2hv
dWxkIG5vdCBiZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAxLmxlbmd0
aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAxIG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBo
YXMgIiArIHJlZ2lvbkxpc3RQMS5sZW5ndGgpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RQ
MS5sZW5ndGggPiAwKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDEuaXRlbSgw
KSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZv
ciBwMSBub2RlIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAxLml0ZW0o
MCkuaWQpOwotCi0gICAgICAgICAgICB2YXIgcDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJw
Iik7Ci0gICAgICAgICAgICBwMi5pZCA9ICJwMiI7Ci0gICAgICAgICAgICBwMi5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAyLiIpKTsK
LSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENo
aWxkKHAyKTsKLSAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDIgPSBuYW1lZEZsb3cyLmdldFJl
Z2lvbnNCeUNvbnRlbnROb2RlKHAyKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIg
IT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBwMiBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOwot
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0
IGZvciBwMiBub2RlIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDIu
bGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0UDIubGVuZ3RoID4gMCkKLSAgICAg
ICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlZ2lvbjQiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDIgc2hvdWxkIGJlIHJlZ2lv
bjQsIGl0IGlzICIgKyByZWdpb25MaXN0UDIuaXRlbSgwKS5pZCk7Ci0gCi0gICAgICAgICAgICAv
LyBhZGQgYW5vdGhlciBlbGVtZW50IHAsIGluIHRoZSBvdmVyZmxvdyBwYXJ0IG9mIHRoZSByZWdp
b240Ci0gICAgICAgICAgICB2YXIgcDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7Ci0g
ICAgICAgICAgICBwMy5pZCA9ICJwMyI7Ci0gICAgICAgICAgICBwMy5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAzLiIpKTsKLSAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxkKHAz
KTsKLSAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDMgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNC
eUNvbnRlbnROb2RlKHAzKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDMgIT0gbnVs
bCwgIlJlZ2lvbiBsaXN0IGZvciBwMyBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOwotICAgICAg
ICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMy5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBw
MyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFAzLmxlbmd0aCk7Ci0g
ICAgICAgICAgICBpZiAocmVnaW9uTGlzdFAzLmxlbmd0aCA+IDApCi0gICAgICAgICAgICAgICAg
YXNzZXJ0KHJlZ2lvbkxpc3RQMy5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZWdpb240IiksICJGaXJzdCByZWdpb24gZm9yIHAzIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAi
ICsgcmVnaW9uTGlzdFAzLml0ZW0oMCkuaWQpOwotCi0gICAgICAgICAgICAvLyBhZGQgYW5vdGhl
ciByZWdpb24gdG8gZmxvdzIsIHAyIGFuZCBwMyBnbyB0byByZWdpb241Ci0gICAgICAgICAgICB2
YXIgcmVnaW9uNSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICAgICAg
cmVnaW9uNS5pZCA9ICJyZWdpb241IjsKLSAgICAgICAgICAgIHJlZ2lvbjUuY2xhc3NOYW1lID0g
InJlZ2lvbkJveCI7Ci0gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlZ2lv
bjUpOwotCi0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAyMiA9IG5hbWVkRmxvdzIuZ2V0UmVn
aW9uc0J5Q29udGVudE5vZGUocDIpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMiA9
PSByZWdpb25MaXN0UDIyLCAiUmVnaW9uIGxpc3RzIGZvciBwMiBzaG91bGQgcmVmZXIgdGhlIHNh
bWUgcmVnaW9uIGxpc3QiKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIyLmxlbmd0
aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAyIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIg
KyByZWdpb25MaXN0UDIubGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0UDIyLmxl
bmd0aCA+IDApCi0gICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMjIuaXRlbSgwKSA9
PSByZWdpb241LCAiRmlyc3QgcmVnaW9uIGZvciBwMiBzaG91bGQgYmUgcmVnaW9uNSwgaXQgaXMg
IiArIHJlZ2lvbkxpc3RQMi5pdGVtKDApLmlkKTsKLQotICAgICAgICAgICAgaGlkZVJlZ2lvbnMo
KTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS1ob3Jp
ei10Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMt
YnktY29udGVudC1ub2RlLWhvcml6LXRiLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNWRkYzIwMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LXRiLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLVRlc3QgZm9yIDc3NzQ2OiBbQ1NTUmVnaW9uc11J
bXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZQotCi1PbiBzdWNjZXNz
LCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNTIGJlbG93LgotCi1QQVNTCi1QQVNTCi1Q
QVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNT
Ci1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1Q
QVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNT
Ci1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi1QQVNTCi0K
LQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1i
eS1jb250ZW50LW5vZGUtaG9yaXotdGIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9n
ZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUtaG9yaXotdGIuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDMwYWE1ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLWhvcml6LXRiLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwxNzEgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4KLSAgICA8aGVh
ZD4KLSAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvcmVnaW9u
LXN0eWxlLmNzcyI+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaGVscGVyLmpzIj48
L3NjcmlwdD4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAgICAgYm9keSB7IGZvbnQtZmFtaWx5
OiBtb25vc3BhY2U7IH0KLSAgICAgICAgICAgIC5yZWdpb25Cb3ggeyB3aWR0aDogMjUwcHg7IGhl
aWdodDogNTBweDsgfSAKLSAgICAgICAgICAgICNhcnRpY2xlIHsgLXdlYmtpdC1mbG93LWludG86
IGZsb3c7IH0KLSAgICAgICAgICAgICNyZWdpb24sICNyZWdpb24yLCAjcmVnaW9uMyB7IC13ZWJr
aXQtZmxvdy1mcm9tOiBmbG93OyB9Ci0KLSAgICAgICAgICAgICNhcnRpY2xlMiB7IC13ZWJraXQt
Zmxvdy1pbnRvOiBmbG93MjsgfQotICAgICAgICAgICAgI3JlZ2lvbjQsICNyZWdpb241IHsgLXdl
YmtpdC1mbG93LWZyb206IGZsb3cyOyB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgot
ICAgIDxib2R5PgotICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3NDYiPgotICAgICAgICA3Nzc0NjogW0NTU1JlZ2lv
bnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGU8L2E+PC9wPgot
ICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNTIGJl
bG93LjwvcD4KLSAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0gICAgICAgIDwhLS0g
c29tZSB0ZXN0cyB3aXRoIGlubGluZSBlbGVtZW50cyAtLT4KLSAgICAgICAgPGRpdiBpZD0iYXJ0
aWNsZSI+Ci0gICAgICAgICAgICA8c3BhbiBpZD0ic3Bhbk5vZGUiPlRleHQgaW5zaWRlIHNwYW4u
PC9zcGFuPgotICAgICAgICAgICAgVGV4dCBvdXRzaWRlIHNwYW4uIFRleHQgb3V0c2lkZSBzcGFu
LiBUZXh0IG91dHNpZGUgc3Bhbi4KLSAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZTIiPlRl
eHQgaW5zaWRlIHNwYW4yLjwvc3Bhbj4KLSAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZTMi
PlRleHQgaW5zaWRlIHNwYW4zPC9zcGFuPgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBp
ZD0icmVnaW9uIiBjbGFzcz0icmVnaW9uQm94Ij48L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0icmVn
aW9uMiIgY2xhc3M9InJlZ2lvbkJveCI+PC9kaXY+Ci0KLSAgICAgICAgPCEtLSBzb21lIHRlc3Rz
IHdpdGggYmxvY2sgZWxlbWVudHMgLS0+Ci0gICAgICAgIDxkaXYgaWQ9ImFydGljbGUyIj4KLSAg
ICAgICAgICAgIDxwIGlkPSJwMSI+VGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAxLjwvcD4KLSAgICAg
ICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9InJlZ2lvbjQiIGNsYXNzPSJyZWdpb25Cb3giPjwv
cmVnaW9uPgotCi0gICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGhpZGVSZWdpb25zKCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
YXJ0aWNsZSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLSAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZTIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhp
ZGRlbiI7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIp
LnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLSAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMyIpLnN0eWxlLnZp
c2liaWxpdHkgPSAiaGlkZGVuIjsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVnaW9uNCIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLSAgICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNSIpLnN0eWxlLnZpc2liaWxpdHkg
PSAiaGlkZGVuIjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdmFyIG5hbWVkRmxvdyA9
IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5hbWUoImZsb3ciKTsKLQotICAgICAgICAgICAgdmFy
IHJlZ2lvbkxpc3RBcnRpY2xlID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikpOwotICAgICAgICAgICAgYXNzZXJ0KHJl
Z2lvbkxpc3RBcnRpY2xlICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgYXJ0aWNsZSBzaG91bGQg
bm90IGJlIG51bGwiKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0QXJ0aWNsZS5sZW5n
dGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZvciBhcnRpY2xlIHNob3VsZCBoYXZlIDIgZWxlbWVudHMs
IGhhcyAiICsgcmVnaW9uTGlzdEFydGljbGUubGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdp
b25MaXN0QXJ0aWNsZS5sZW5ndGggPiAwKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0QXJ0aWNsZS5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKSwg
IkZpcnN0IGVsZW1lbnQgaW4gcmVnaW9uIGxpc3QgZm9yIGFydGljbGUgc2hvdWxkIGJlIHJlZ2lv
biwgaXQgaXMgIiArIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMCkuaWQpOwotICAgICAgICAgICAg
aWYgKHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCA+IDEpCi0gICAgICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
Z2lvbjIiKSwgIlNlY29uZCBlbGVtZW50IGluIHJlZ2lvbiBsaXN0IGZvciBhcnRpY2xlIHNob3Vs
ZCBiZSByZWdpb24yLCBpdCBpcyAiICsgcmVnaW9uTGlzdEFydGljbGUuaXRlbSgxKS5pZCk7Ci0K
LSAgICAgICAgICAgIHZhciBzcGFuTm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFu
Tm9kZSIpOwotICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RTcGFuID0gbmFtZWRGbG93LmdldFJl
Z2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0U3BhbiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4gc2hvdWxkIG5vdCBiZSBudWxs
Iik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4ubGVuZ3RoID09IDEsICJSZWdp
b24gbGlzdCBmb3Igc3BhbiBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlz
dFNwYW4ubGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0U3Bhbi5sZW5ndGggPiAw
KQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3Bhbi5pdGVtKDApID09IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0IHJlZ2lvbiBmb3Igc3BhbiBzaG91
bGQgYmUgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFNwYW4uaXRlbSgwKS5pZCk7Ci0KLSAg
ICAgICAgICAgIHZhciBzcGFuTm9kZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5v
ZGUyIik7Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4yID0gbmFtZWRGbG93LmdldFJl
Z2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlMik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9u
TGlzdFNwYW4yICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3Igc3BhbjIgc2hvdWxkIG5vdCBiZSBu
dWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4yLmxlbmd0aCA9PSAyLCAi
UmVnaW9uIGxpc3QgZm9yIHNwYW4yIHNob3VsZCBoYXZlIDIgZWxlbWVudHMsIGhhcyAiICsgcmVn
aW9uTGlzdFNwYW4yLmxlbmd0aCk7Ci0KLSAgICAgICAgICAgIHZhciBzcGFuTm9kZTMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUzIik7Ci0gICAgICAgICAgICB2YXIgcmVnaW9u
TGlzdFNwYW4zID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlMyk7
Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4zICE9IG51bGwsICJSZWdpb24gbGlz
dCBmb3Igc3BhbjMgc2hvdWxkIG5vdCBiZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVn
aW9uTGlzdFNwYW4zLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4zIHNob3VsZCBo
YXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0U3BhbjMubGVuZ3RoKTsKLSAgICAgICAg
ICAgIGlmIChyZWdpb25MaXN0U3BhbjMubGVuZ3RoID4gMCkKLSAgICAgICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
Z2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3Igc3BhbiBub2RlIDMgc2hvdWxkIGJlIHRoZSBzZWNv
bmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkuaWQpOwotCi0gICAg
ICAgICAgICB2YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBub2Rl
LiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4g
VGV4dCBub2RlLiAiKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRp
Y2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RU
ZXh0Tm9kZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZSk7Ci0g
ICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlICE9IG51bGwsICJSZWdpb24gbGlz
dCBmb3IgdGV4dCBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOwotICAgICAgICAgICAgYXNzZXJ0
KHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5v
ZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5n
dGgpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGggPiAwKQotICAg
ICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgwKSA9PSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUg
c2hvdWxkIGJlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUuaXRl
bSgwKS5pZCk7Ci0KLSAgICAgICAgICAgIC8vIEFkZCBhbm90aGVyIHRleHQgbm9kZSB0aGF0IHdp
bGwgb3ZlcmZsb3cgdGhlIHJlZ2lvbjIuCi0gICAgICAgICAgICB2YXIgdGV4dE5vZGUyID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZTIuIik7Ci0gICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENoaWxkKHRleHROb2RlMik7Ci0gICAg
ICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMiA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlD
b250ZW50Tm9kZSh0ZXh0Tm9kZTIpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0
Tm9kZTIgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMiBzaG91bGQgbm90IGJl
IG51bGwiKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA9
PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAyIHNob3VsZCBoYXZlIDEgZWxlbWVudCwg
aGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAocmVn
aW9uTGlzdFRleHROb2RlMi5sZW5ndGggPiAwKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdp
b25MaXN0VGV4dE5vZGUyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lv
bjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIDIgc2hvdWxkIGJlIHNlY29uZCByZWdp
b24sIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkuaWQpOwotCi0gICAgICAg
ICAgICAvLyBBZGQgYW5vdGhlciB0ZXh0IG5vZGUgdGhhdCBpcyBpbiB0aGUgb3ZlcmZsb3cgb2Yg
dGhlIGxhc3QgcmVnaW9uLgotICAgICAgICAgICAgdmFyIHRleHROb2RlMyA9IGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUzLiIpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0Tm9kZTMpOwotICAgICAgICAgICAg
dmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5v
ZGUodGV4dE5vZGUzKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzICE9
IG51bGwsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIG5vdCBiZSBudWxsIik7
Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGggPT0gMSwgIlJl
Z2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsg
cmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RU
ZXh0Tm9kZTMubGVuZ3RoID4gMCkKLSAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRl
eHROb2RlMy5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJG
aXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSAzIHNob3VsZCBiZSBzZWNvbmQgcmVnaW9uLCBpdCBp
cyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDApLmlkKTsKLQotICAgICAgICAgICAgLy8g
QWRkIGFub3RoZXIgcmVnaW9uIHRvIHRha2UgdGhlIG92ZXJmbG93aW5nIGVsZW1lbnRzIGZyb20g
c2Vjb25kIHJlZ2lvbi4KLSAgICAgICAgICAgIHZhciByZWdpb24zID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICByZWdpb24zLmlkID0gInJlZ2lvbjMiOwotICAg
ICAgICAgICAgcmVnaW9uMy5jbGFzc05hbWUgPSAicmVnaW9uQm94IjsKLSAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVnaW9uMyk7Ci0KLSAgICAgICAgICAgIHZhciByZWdp
b25MaXN0VGV4dE5vZGUyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHRO
b2RlKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUgPT0gcmVnaW9uTGlz
dFRleHROb2RlMiwgIlJlZ2lvbiBsaXN0cyBmb3IgdGV4dCBub2RlIHNob3VsZCByZWZlcmVuY2Ug
dGhlIHNhbWUgb2JqZWN0Iik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2Rl
Mi5sZW5ndGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgc2hvdWxkIGhhdmUgMiBl
bGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoKTsKLSAgICAgICAgICAg
IGlmIChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA+IDApCi0gICAgICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgc2hvdWxkIGJlIHRoZSBz
ZWNvbmQgcmVnaW9uIGZyb20gZmxvdywgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRl
bSgwKS5pZCk7Ci0gICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPiAx
KQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkgPT0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMiKSwgIlNlY29uZCByZWdpb24gZm9yIHRl
eHQgbm9kZSBzaG91bGQgYmUgdGhlIHRoaXJkIHJlZ2lvbiBmcm9tIGZsb3csIGl0IGlzICIgKyBy
ZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkuaWQpOwotCi0gICAgICAgICAgICB2YXIgcmVnaW9u
TGlzdFRleHROb2RlMzIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5v
ZGUzKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzID09IHJlZ2lvbkxp
c3RUZXh0Tm9kZTMyLCAiUmVnaW9uIGxpc3RzIGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgcmVmZXJl
bmNlIHRoZSBzYW1lIG9iamVjdCIpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0
Tm9kZTMyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAzIHNob3VsZCBo
YXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUzLmxlbmd0aCk7Ci0gICAg
ICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMzIubGVuZ3RoID4gMCkKLSAgICAgICAgICAg
ICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMzIuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVnaW9uMyIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0IG5vZGUgMyBzaG91
bGQgYmUgdGhlIHRoaXJkIHJlZ2lvbiBmcm9tIGZsb3csIGl0IGlzICIgKyByZWdpb25MaXN0VGV4
dE5vZGUzMi5pdGVtKDApLmlkKTsKLQotICAgICAgICAgICAgdmFyIG5hbWVkRmxvdzIgPSBkb2N1
bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93MiIpOwotICAgICAgICAgICAgdmFyIHJlZ2lv
bkxpc3RQMSA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInAxIikpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMSAhPSBu
dWxsLCAiUmVnaW9uIGxpc3QgZm9yIHAxIG5vZGUgc2hvdWxkIG5vdCBiZSBudWxsIik7Ci0gICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAxLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9y
IHAxIG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RQMS5sZW5n
dGgpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RQMS5sZW5ndGggPiAwKQotICAgICAgICAg
ICAgICAgIGFzc2VydChyZWdpb25MaXN0UDEuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMSBub2RlIHNob3VsZCBiZSByZWdp
b240LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAxLml0ZW0oMCkuaWQpOwotCi0gICAgICAgICAgICB2
YXIgcDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7Ci0gICAgICAgICAgICBwMi5pZCA9
ICJwMiI7Ci0gICAgICAgICAgICBwMi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAyLiIpKTsKLSAgICAgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxkKHAyKTsKLSAgICAgICAgICAgIHZh
ciByZWdpb25MaXN0UDIgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHAyKTsK
LSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZv
ciBwMiBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lv
bkxpc3RQMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMiBub2RlIHNob3VsZCBoYXZl
IDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDIubGVuZ3RoKTsKLSAgICAgICAgICAgIGlm
IChyZWdpb25MaXN0UDIubGVuZ3RoID4gMCkKLSAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9u
TGlzdFAyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjQiKSwgIkZp
cnN0IHJlZ2lvbiBmb3IgcDIgc2hvdWxkIGJlIHJlZ2lvbjQsIGl0IGlzICIgKyByZWdpb25MaXN0
UDIuaXRlbSgwKS5pZCk7Ci0gCi0gICAgICAgICAgICAvLyBhZGQgYW5vdGhlciBlbGVtZW50IHAs
IGluIHRoZSBvdmVyZmxvdyBwYXJ0IG9mIHRoZSByZWdpb240Ci0gICAgICAgICAgICB2YXIgcDMg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7Ci0gICAgICAgICAgICBwMy5pZCA9ICJwMyI7
Ci0gICAgICAgICAgICBwMy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4
dCBpbnNpZGUgcGFyYWdyYXBoIHAzLiIpKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxkKHAzKTsKLSAgICAgICAgICAgIHZhciByZWdp
b25MaXN0UDMgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHAzKTsKLSAgICAg
ICAgICAgIGFzc2VydChyZWdpb25MaXN0UDMgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBwMyBu
b2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQ
My5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMyBzaG91bGQgaGF2ZSAxIGVsZW1lbnQs
IGhhcyAiICsgcmVnaW9uTGlzdFAzLmxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAocmVnaW9uTGlz
dFAzLmxlbmd0aCA+IDApCi0gICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMy5pdGVt
KDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240IiksICJGaXJzdCByZWdpb24g
Zm9yIHAzIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAzLml0ZW0oMCku
aWQpOwotCi0gICAgICAgICAgICAvLyBhZGQgYW5vdGhlciByZWdpb24gdG8gZmxvdzIsIHAyIGFu
ZCBwMyBnbyB0byByZWdpb241Ci0gICAgICAgICAgICB2YXIgcmVnaW9uNSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICAgICAgcmVnaW9uNS5pZCA9ICJyZWdpb241IjsK
LSAgICAgICAgICAgIHJlZ2lvbjUuY2xhc3NOYW1lID0gInJlZ2lvbkJveCI7Ci0gICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlZ2lvbjUpOwotCi0gICAgICAgICAgICB2YXIg
cmVnaW9uTGlzdFAyMiA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocDIpOwot
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMiA9PSByZWdpb25MaXN0UDIyLCAiUmVnaW9u
IGxpc3RzIGZvciBwMiBzaG91bGQgcmVmZXIgdGhlIHNhbWUgcmVnaW9uIGxpc3QiKTsKLSAgICAg
ICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9y
IHAyIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDIubGVuZ3RoKTsK
LSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0UDIyLmxlbmd0aCA+IDApCi0gICAgICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMjIuaXRlbSgwKSA9PSByZWdpb241LCAiRmlyc3QgcmVnaW9u
IGZvciBwMiBzaG91bGQgYmUgcmVnaW9uNSwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMi5pdGVtKDAp
LmlkKTsKLQotICAgICAgICAgICAgaGlkZVJlZ2lvbnMoKTsKLSAgICAgICAgPC9zY3JpcHQ+Ci0g
ICAgPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtbHItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxy
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWRkYzIwMS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVu
dC1ub2RlLXZlcnQtbHItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBA
QAotVGVzdCBmb3IgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJl
Z2lvbnNCeUNvbnRlbnROb2RlCi0KLU9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgc2VyaWVz
IG9mIFBBU1MgYmVsb3cuCi0KLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBB
U1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MK
LVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBB
U1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MK
LVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLQotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LWxyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2Rl
LXZlcnQtbHIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQzOTQ0ZC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVu
dC1ub2RlLXZlcnQtbHIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE3MiArMCwwIEBACi08IWRv
Y3R5cGUgaHRtbD4KLTxodG1sPgotICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9InJlc291cmNlcy9yZWdpb24tc3R5bGUuY3NzIj4KLSAgICAgICAgPHNjcmlw
dCBzcmM9InJlc291cmNlcy9oZWxwZXIuanMiPjwvc2NyaXB0PgotICAgICAgICA8c3R5bGU+Ci0g
ICAgICAgICAgICBodG1sIHsgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOyB9Ci0g
ICAgICAgICAgICBib2R5IHsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgfQotICAgICAgICAgICAg
LnJlZ2lvbkJveCB7ICBoZWlnaHQ6IDI1MHB4OyB3aWR0aDogNTBweDsgfQotCi0gICAgICAgICAg
ICAjYXJ0aWNsZSB7IC13ZWJraXQtZmxvdy1pbnRvOiBmbG93OyB9Ci0gICAgICAgICAgICAjcmVn
aW9uLCAjcmVnaW9uMiwgI3JlZ2lvbjMgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgfQotCi0g
ICAgICAgICAgICAjYXJ0aWNsZTIgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzI7IH0KLSAgICAg
ICAgICAgICNyZWdpb240LCAjcmVnaW9uNSB7IC13ZWJraXQtZmxvdy1mcm9tOiBmbG93MjsgfQot
ICAgICAgICA8L3N0eWxlPgotICAgIDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPGRpdiBp
ZD0iY29udGFpbmVyTWVzc2FnZSI+Ci0gICAgICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3NDYiPgotICAgICAgICAg
ICAgNzc3NDY6IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlPC9hPjwvcD4KLSAgICAgICAgICAgIDxwPk9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQg
c2VlIGEgc2VyaWVzIG9mIFBBU1MgYmVsb3cuPC9wPgotICAgICAgICA8L2Rpdj4KLSAgICAgICAg
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0gICAgICAgIDwhLS0gc29tZSB0ZXN0cyB3aXRoIGlu
bGluZSBlbGVtZW50cyAtLT4KLSAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZSI+Ci0gICAgICAgICAg
ICA8c3BhbiBpZD0ic3Bhbk5vZGUiPlRleHQgaW5zaWRlIHNwYW4uPC9zcGFuPgotICAgICAgICAg
ICAgVGV4dCBvdXRzaWRlIHNwYW4uIFRleHQgb3V0c2lkZSBzcGFuLiBUZXh0IG91dHNpZGUgc3Bh
bi4KLSAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZTIiPlRleHQgaW5zaWRlIHNwYW4yLiBU
ZXh0Ljwvc3Bhbj4KLSAgICAgICAgICAgIDxzcGFuIGlkPSJzcGFuTm9kZTMiPlRleHQgaW5zaWRl
IHNwYW4zPC9zcGFuPgotICAgICAgICA8L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBj
bGFzcz0icmVnaW9uQm94Ij48L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0icmVnaW9uMiIgY2xhc3M9
InJlZ2lvbkJveCI+PC9kaXY+Ci0KLSAgICAgICAgPCEtLSBzb21lIHRlc3RzIHdpdGggYmxvY2sg
ZWxlbWVudHMgLS0+Ci0gICAgICAgIDxkaXYgaWQ9ImFydGljbGUyIj4KLSAgICAgICAgICAgIDxw
IGlkPSJwMSI+VGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAxLjwvcD4KLSAgICAgICAgPC9kaXY+Ci0g
ICAgICAgIDxkaXYgaWQ9InJlZ2lvbjQiIGNsYXNzPSJyZWdpb25Cb3giPjwvcmVnaW9uPgotICAg
ICAgICA8c2NyaXB0PgotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICAgICAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICAgICAgICAgICAgdmFyIG5hbWVkRmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dC
eU5hbWUoImZsb3ciKTsKLQotICAgICAgICAgICAgZnVuY3Rpb24gaGlkZVJlZ2lvbnMoKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRp
Y2xlIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwotICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVu
IjsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uIikuc3R5
bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZWdpb24yIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwotICAgICAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24zIikuc3R5bGUudmlzaWJp
bGl0eSA9ICJoaWRkZW4iOwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZWdpb240Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwotICAgICAgICAgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb241Iikuc3R5bGUudmlzaWJpbGl0eSA9ICJo
aWRkZW4iOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdEFydGlj
bGUgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImFydGljbGUiKSk7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGljbGUg
IT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBhcnRpY2xlIHNob3VsZCBub3QgYmUgbnVsbCIpOwot
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCA9PSAyLCAiUmVnaW9u
IGxpc3QgZm9yIGFydGljbGUgc2hvdWxkIGhhdmUgMiBlbGVtZW50cywgaGFzICIgKyByZWdpb25M
aXN0QXJ0aWNsZS5sZW5ndGgpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RBcnRpY2xlLmxl
bmd0aCA+IDApCi0gICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0o
MCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLCAiRmlyc3QgZWxlbWVudCBp
biByZWdpb24gbGlzdCBmb3IgYXJ0aWNsZSBzaG91bGQgYmUgcmVnaW9uLCBpdCBpcyAiICsgcmVn
aW9uTGlzdEFydGljbGUuaXRlbSgwKS5pZCk7Ci0gICAgICAgICAgICBpZiAocmVnaW9uTGlzdEFy
dGljbGUubGVuZ3RoID4gMSkKLSAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdEFydGlj
bGUuaXRlbSgxKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiU2Vjb25k
IGVsZW1lbnQgaW4gcmVnaW9uIGxpc3QgZm9yIGFydGljbGUgc2hvdWxkIGJlIHJlZ2lvbjIsIGl0
IGlzICIgKyByZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDEpLmlkKTsKLQotICAgICAgICAgICAgdmFy
IHNwYW5Ob2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW5Ob2RlIik7Ci0gICAgICAg
ICAgICB2YXIgcmVnaW9uTGlzdFNwYW4gPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5v
ZGUoc3Bhbk5vZGUpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuICE9IG51bGws
ICJSZWdpb24gbGlzdCBmb3Igc3BhbiBzaG91bGQgbm90IGJlIG51bGwiKTsKLSAgICAgICAgICAg
IGFzc2VydChyZWdpb25MaXN0U3Bhbi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBzcGFu
IHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0U3Bhbi5sZW5ndGgpOwot
ICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RTcGFuLmxlbmd0aCA+IDApCi0gICAgICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RTcGFuLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlZ2lvbiIpLCAiRmlyc3QgcmVnaW9uIGZvciBzcGFuIHNob3VsZCBiZSByZWdpb24sIGl0
IGlzICIgKyByZWdpb25MaXN0U3Bhbi5pdGVtKDApLmlkKTsKLQotICAgICAgICAgICAgdmFyIHNw
YW5Ob2RlMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZTIiKTsKLSAgICAgICAg
ICAgIHZhciByZWdpb25MaXN0U3BhbjIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5v
ZGUoc3Bhbk5vZGUyKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjIgIT0gbnVs
bCwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMiBzaG91bGQgbm90IGJlIG51bGwiKTsKLSAgICAgICAg
ICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjIubGVuZ3RoID09IDIsICJSZWdpb24gbGlzdCBmb3Ig
c3BhbjIgc2hvdWxkIGhhdmUgMiBlbGVtZW50cywgaGFzICIgKyByZWdpb25MaXN0U3BhbjIubGVu
Z3RoKTsKLQotICAgICAgICAgICAgdmFyIHNwYW5Ob2RlMyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzcGFuTm9kZTMiKTsKLSAgICAgICAgICAgIHZhciByZWdpb25MaXN0U3BhbjMgPSBuYW1l
ZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUoc3Bhbk5vZGUzKTsKLSAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0U3BhbjMgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBzcGFuMyBzaG91
bGQgbm90IGJlIG51bGwiKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbjMubGVu
Z3RoID09IDEsICJSZWdpb24gbGlzdCBmb3Igc3BhbjMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBo
YXMgIiArIHJlZ2lvbkxpc3RTcGFuMy5sZW5ndGgpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxp
c3RTcGFuMy5sZW5ndGggPiAwKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0U3Bh
bjMuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3Qg
cmVnaW9uIGZvciBzcGFuIG5vZGUgMyBzaG91bGQgYmUgdGhlIHNlY29uZCByZWdpb24sIGl0IGlz
ICIgKyByZWdpb25MaXN0U3BhbjMuaXRlbSgwKS5pZCk7Ci0KLSAgICAgICAgICAgIHZhciB0ZXh0
Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4
dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBUZXh0IG5vZGUuICIpOwot
ICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGls
ZCh0ZXh0Tm9kZSk7Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlID0gbmFtZWRG
bG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHROb2RlKTsKLSAgICAgICAgICAgIGFzc2Vy
dChyZWdpb25MaXN0VGV4dE5vZGUgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUg
c2hvdWxkIG5vdCBiZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHRO
b2RlLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSBzaG91bGQgaGF2ZSAx
IGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlLmxlbmd0aCk7Ci0gICAgICAgICAg
ICBpZiAocmVnaW9uTGlzdFRleHROb2RlLmxlbmd0aCA+IDApCi0gICAgICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZS5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSBzaG91bGQgYmUgc2Vjb25k
IHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZS5pdGVtKDApLmlkKTsKLQotICAg
ICAgICAgICAgLy8gQWRkIGFub3RoZXIgdGV4dCBub2RlIHRoYXQgd2lsbCBvdmVyZmxvdyB0aGUg
cmVnaW9uMi4KLSAgICAgICAgICAgIHZhciB0ZXh0Tm9kZTIgPSBkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgiVGV4dCBub2RlMi4iKTsKLSAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUyKTsKLSAgICAgICAgICAgIHZhciByZWdp
b25MaXN0VGV4dE5vZGUyID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHRleHRO
b2RlMik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMiAhPSBudWxsLCAi
UmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAyIHNob3VsZCBub3QgYmUgbnVsbCIpOwotICAgICAg
ICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIubGVuZ3RoID09IDEsICJSZWdpb24gbGlz
dCBmb3IgdGV4dCBub2RlIDIgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxp
c3RUZXh0Tm9kZTIubGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUy
Lmxlbmd0aCA+IDApCi0gICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIu
aXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVn
aW9uIGZvciB0ZXh0IG5vZGUgMiBzaG91bGQgYmUgc2Vjb25kIHJlZ2lvbiwgaXQgaXMgIiArIHJl
Z2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKS5pZCk7Ci0KLSAgICAgICAgICAgIC8vIEFkZCBhbm90
aGVyIHRleHQgbm9kZSB0aGF0IGlzIGluIHRoZSBvdmVyZmxvdyBvZiB0aGUgbGFzdCByZWdpb24u
Ci0gICAgICAgICAgICB2YXIgdGV4dE5vZGUzID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRl
eHQgbm9kZTMuIik7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNs
ZSIpLmFwcGVuZENoaWxkKHRleHROb2RlMyk7Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRl
eHROb2RlMyA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTMpOwot
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMgIT0gbnVsbCwgIlJlZ2lvbiBs
aXN0IGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgbm90IGJlIG51bGwiKTsKLSAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0VGV4dE5vZGUzLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRl
eHQgbm9kZSAzIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5v
ZGUzLmxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgg
PiAwKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUzLml0ZW0oMCkg
PT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3Ig
dGV4dCBub2RlIDMgc2hvdWxkIGJlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0
VGV4dE5vZGUzLml0ZW0oMCkuaWQpOwotCi0gICAgICAgICAgICAvLyBBZGQgYW5vdGhlciByZWdp
b24gdG8gdGFrZSB0aGUgb3ZlcmZsb3dpbmcgZWxlbWVudHMgZnJvbSBzZWNvbmQgcmVnaW9uLgot
ICAgICAgICAgICAgdmFyIHJlZ2lvbjMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
LSAgICAgICAgICAgIHJlZ2lvbjMuaWQgPSAicmVnaW9uMyI7Ci0gICAgICAgICAgICByZWdpb24z
LmNsYXNzTmFtZSA9ICJyZWdpb25Cb3giOwotICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChyZWdpb24zKTsKLQotICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTIg
PSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUpOwotICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZSA9PSByZWdpb25MaXN0VGV4dE5vZGUyLCAiUmVn
aW9uIGxpc3RzIGZvciB0ZXh0IG5vZGUgc2hvdWxkIHJlZmVyZW5jZSB0aGUgc2FtZSBvYmplY3Qi
KTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA9PSAyLCAi
UmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSBzaG91bGQgaGF2ZSAyIGVsZW1lbnQsIGhhcyAiICsg
cmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGgpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RU
ZXh0Tm9kZTIubGVuZ3RoID4gMCkKLSAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRl
eHROb2RlMi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yIiksICJG
aXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSBzaG91bGQgYmUgdGhlIHNlY29uZCByZWdpb24gZnJv
bSBmbG93LCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMi5pdGVtKDApLmlkKTsKLSAgICAg
ICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA+IDEpCi0gICAgICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgxKSA9PSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVnaW9uMyIpLCAiU2Vjb25kIHJlZ2lvbiBmb3IgdGV4dCBub2RlIHNob3VsZCBi
ZSB0aGUgdGhpcmQgcmVnaW9uIGZyb20gZmxvdywgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9k
ZTIuaXRlbSgxKS5pZCk7Ci0KLSAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUzMiA9
IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTMpOwotICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMgPT0gcmVnaW9uTGlzdFRleHROb2RlMzIsICJS
ZWdpb24gbGlzdHMgZm9yIHRleHQgbm9kZSAzIHNob3VsZCByZWZlcmVuY2UgdGhlIHNhbWUgb2Jq
ZWN0Iik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMzIubGVuZ3RoID09
IDEsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDMgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBo
YXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdp
b25MaXN0VGV4dE5vZGUzMi5sZW5ndGggPiAwKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdp
b25MaXN0VGV4dE5vZGUzMi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdp
b24zIiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSAzIHNob3VsZCBiZSB0aGUgdGhpcmQg
cmVnaW9uIGZyb20gZmxvdywgaXQgaXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLml0ZW0oMCku
aWQpOwotCi0gICAgICAgICAgICB2YXIgbmFtZWRGbG93MiA9IGRvY3VtZW50LndlYmtpdEdldEZs
b3dCeU5hbWUoImZsb3cyIik7Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAxID0gbmFtZWRG
bG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDEi
KSk7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAxICE9IG51bGwsICJSZWdpb24gbGlz
dCBmb3IgcDEgbm9kZSBzaG91bGQgbm90IGJlIG51bGwiKTsKLSAgICAgICAgICAgIGFzc2VydChy
ZWdpb25MaXN0UDEubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgcDEgbm9kZSBzaG91bGQg
aGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFAxLmxlbmd0aCk7Ci0gICAgICAgICAg
ICBpZiAocmVnaW9uTGlzdFAxLmxlbmd0aCA+IDApCi0gICAgICAgICAgICAgICAgYXNzZXJ0KHJl
Z2lvbkxpc3RQMS5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb240Iiks
ICJGaXJzdCByZWdpb24gZm9yIHAxIG5vZGUgc2hvdWxkIGJlIHJlZ2lvbjQsIGl0IGlzICIgKyBy
ZWdpb25MaXN0UDEuaXRlbSgwKS5pZCk7Ci0KLSAgICAgICAgICAgIHZhciBwMiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInAiKTsKLSAgICAgICAgICAgIHAyLmlkID0gInAyIjsKLSAgICAgICAg
ICAgIHAyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IGluc2lkZSBw
YXJhZ3JhcGggcDIuIikpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFy
dGljbGUyIikuYXBwZW5kQ2hpbGQocDIpOwotICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMiA9
IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocDIpOwotICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RQMiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHAyIG5vZGUgc2hvdWxk
IG5vdCBiZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyLmxlbmd0aCA9
PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAyIG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMg
IiArIHJlZ2lvbkxpc3RQMi5sZW5ndGgpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RQMi5s
ZW5ndGggPiAwKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIuaXRlbSgwKSA9
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBw
MiBzaG91bGQgYmUgcmVnaW9uNCwgaXQgaXMgIiArIHJlZ2lvbkxpc3RQMi5pdGVtKDApLmlkKTsK
LSAKLSAgICAgICAgICAgIC8vIGFkZCBhbm90aGVyIGVsZW1lbnQgcCwgaW4gdGhlIG92ZXJmbG93
IHBhcnQgb2YgdGhlIHJlZ2lvbjQKLSAgICAgICAgICAgIHZhciBwMyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInAiKTsKLSAgICAgICAgICAgIHAzLmlkID0gInAzIjsKLSAgICAgICAgICAgIHAz
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IGluc2lkZSBwYXJhZ3Jh
cGggcDMuIikpOwotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUy
IikuYXBwZW5kQ2hpbGQocDMpOwotICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMyA9IG5hbWVk
RmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocDMpOwotICAgICAgICAgICAgYXNzZXJ0KHJl
Z2lvbkxpc3RQMyAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHAzIG5vZGUgc2hvdWxkIG5vdCBi
ZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAzLmxlbmd0aCA9PSAxLCAi
UmVnaW9uIGxpc3QgZm9yIHAzIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25M
aXN0UDMubGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0UDMubGVuZ3RoID4gMCkK
LSAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAzLml0ZW0oMCkgPT0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlZ2lvbjQiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDMgc2hvdWxkIGJl
IHJlZ2lvbjQsIGl0IGlzICIgKyByZWdpb25MaXN0UDMuaXRlbSgwKS5pZCk7Ci0KLSAgICAgICAg
ICAgIC8vIGFkZCBhbm90aGVyIHJlZ2lvbiB0byBmbG93MiwgcDIgYW5kIHAzIGdvIHRvIHJlZ2lv
bjUKLSAgICAgICAgICAgIHZhciByZWdpb241ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7Ci0gICAgICAgICAgICByZWdpb241LmlkID0gInJlZ2lvbjUiOwotICAgICAgICAgICAgcmVn
aW9uNS5jbGFzc05hbWUgPSAicmVnaW9uQm94IjsKLSAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQocmVnaW9uNSk7Ci0KLSAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDIyID0g
bmFtZWRGbG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwMik7Ci0gICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFAyID09IHJlZ2lvbkxpc3RQMjIsICJSZWdpb24gbGlzdHMgZm9yIHAyIHNo
b3VsZCByZWZlciB0aGUgc2FtZSByZWdpb24gbGlzdCIpOwotICAgICAgICAgICAgYXNzZXJ0KHJl
Z2lvbkxpc3RQMjIubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3IgcDIgc2hvdWxkIGhhdmUg
MSBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RQMi5sZW5ndGgpOwotICAgICAgICAgICAgaWYg
KHJlZ2lvbkxpc3RQMjIubGVuZ3RoID4gMCkKLSAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9u
TGlzdFAyMi5pdGVtKDApID09IHJlZ2lvbjUsICJGaXJzdCByZWdpb24gZm9yIHAyIHNob3VsZCBi
ZSByZWdpb241LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAyLml0ZW0oMCkuaWQpOwotCi0gICAgICAg
ICAgICBoaWRlUmVnaW9ucygpOwotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnkt
Y29udGVudC1ub2RlLXZlcnQtcmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdp
b25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LXJsLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWRkYzIwMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtcmwtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotVGVzdCBmb3IgNzc3NDY6
IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSBzaG91bGQgc2VlIGEgc2VyaWVzIG9mIFBBU1MgYmVsb3cuCi0K
LVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBB
U1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MK
LVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBB
U1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MKLVBBU1MK
LVBBU1MKLVBBU1MKLQotCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS12ZXJ0LXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtcmwuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTBmNzcwMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLXZlcnQtcmwuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDE3MiArMCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxodG1s
PgotICAgIDxoZWFkPgotICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291
cmNlcy9yZWdpb24tc3R5bGUuY3NzIj4KLSAgICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9o
ZWxwZXIuanMiPjwvc2NyaXB0PgotICAgICAgICA8c3R5bGU+Ci0gICAgICAgICAgICBodG1sIHsg
LXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOyB9Ci0gICAgICAgICAgICBib2R5IHsg
Zm9udC1mYW1pbHk6IG1vbm9zcGFjZTsgfQotICAgICAgICAgICAgLnJlZ2lvbkJveCB7ICBoZWln
aHQ6IDI1MHB4OyB3aWR0aDogNTBweDsgfQotICAgICAgICAgICAgI2FydGljbGUgeyAtd2Via2l0
LWZsb3ctaW50bzogZmxvdzsgfQotICAgICAgICAgICAgI3JlZ2lvbiwgI3JlZ2lvbjIsICNyZWdp
b24zIHsgLXdlYmtpdC1mbG93LWZyb206IGZsb3c7IH0KLQotICAgICAgICAgICAgI2FydGljbGUy
IHsgLXdlYmtpdC1mbG93LWludG86IGZsb3cyOyB9Ci0gICAgICAgICAgICAjcmVnaW9uNCwgI3Jl
Z2lvbjUgeyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7IH0KLSAgICAgICAgPC9zdHlsZT4KLSAg
ICA8L2hlYWQ+Ci0gICAgPGJvZHk+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lck1lc3NhZ2Ui
PgotICAgICAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc3NzQ2Ij4KLSAgICAgICAgICAgIDc3NzQ2OiBbQ1NTUmVnaW9u
c11JbXBsZW1lbnQgTmFtZWRGbG93OjpnZXRSZWdpb25zQnlDb250ZW50Tm9kZTwvYT48L3A+Ci0g
ICAgICAgICAgICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNT
IGJlbG93LjwvcD4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgotICAgICAgICA8IS0tIHNvbWUgdGVzdHMgd2l0aCBpbmxpbmUgZWxlbWVudHMgLS0+Ci0g
ICAgICAgIDxkaXYgaWQ9ImFydGljbGUiPgotICAgICAgICAgICAgPHNwYW4gaWQ9InNwYW5Ob2Rl
Ij5UZXh0IGluc2lkZSBzcGFuLjwvc3Bhbj4KLSAgICAgICAgICAgIFRleHQgb3V0c2lkZSBzcGFu
LiBUZXh0IG91dHNpZGUgc3Bhbi4gVGV4dCBvdXRzaWRlIHNwYW4uCi0gICAgICAgICAgICA8c3Bh
biBpZD0ic3Bhbk5vZGUyIj5UZXh0IGluc2lkZSBzcGFuMi4gVGV4dC48L3NwYW4+Ci0gICAgICAg
ICAgICA8c3BhbiBpZD0ic3Bhbk5vZGUzIj5UZXh0IGluc2lkZSBzcGFuMzwvc3Bhbj4KLSAgICAg
ICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9InJlZ2lvbiIgY2xhc3M9InJlZ2lvbkJveCI+PC9k
aXY+Ci0gICAgICAgIDxkaXYgaWQ9InJlZ2lvbjIiIGNsYXNzPSJyZWdpb25Cb3giPjwvZGl2Pgot
Ci0gICAgICAgIDwhLS0gc29tZSB0ZXN0cyB3aXRoIGJsb2NrIGVsZW1lbnRzIC0tPgotICAgICAg
ICA8ZGl2IGlkPSJhcnRpY2xlMiI+Ci0gICAgICAgICAgICA8cCBpZD0icDEiPlRleHQgaW5zaWRl
IHBhcmFncmFwaCBwMS48L3A+Ci0gICAgICAgIDwvZGl2PgotICAgICAgICA8ZGl2IGlkPSJyZWdp
b240IiBjbGFzcz0icmVnaW9uQm94Ij48L3JlZ2lvbj4KLSAgICAgICAgPHNjcmlwdD4KLSAgICAg
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICAgICAg
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIHZh
ciBuYW1lZEZsb3cgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93Iik7Ci0KLSAg
ICAgICAgICAgIGZ1bmN0aW9uIGhpZGVSZWdpb25zKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLnN0eWxlLnZpc2liaWxp
dHkgPSAiaGlkZGVuIjsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
YXJ0aWNsZTIiKS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7Ci0gICAgICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlk
ZGVuIjsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIp
LnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVnaW9uMyIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLSAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLnN0eWxlLnZp
c2liaWxpdHkgPSAiaGlkZGVuIjsKLSAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVnaW9uNSIpLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RBcnRpY2xlID0gbmFtZWRGbG93LmdldFJl
Z2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikpOwot
ICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlICE9IG51bGwsICJSZWdpb24gbGlz
dCBmb3IgYXJ0aWNsZSBzaG91bGQgbm90IGJlIG51bGwiKTsKLSAgICAgICAgICAgIGFzc2VydChy
ZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZvciBhcnRpY2xlIHNo
b3VsZCBoYXZlIDIgZWxlbWVudHMsIGhhcyAiICsgcmVnaW9uTGlzdEFydGljbGUubGVuZ3RoKTsK
LSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0QXJ0aWNsZS5sZW5ndGggPiAwKQotICAgICAgICAg
ICAgICAgIGFzc2VydChyZWdpb25MaXN0QXJ0aWNsZS5pdGVtKDApID09IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0IGVsZW1lbnQgaW4gcmVnaW9uIGxpc3QgZm9yIGFy
dGljbGUgc2hvdWxkIGJlIHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0o
MCkuaWQpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RBcnRpY2xlLmxlbmd0aCA+IDEpCi0g
ICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RBcnRpY2xlLml0ZW0oMSkgPT0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIlNlY29uZCBlbGVtZW50IGluIHJlZ2lvbiBs
aXN0IGZvciBhcnRpY2xlIHNob3VsZCBiZSByZWdpb24yLCBpdCBpcyAiICsgcmVnaW9uTGlzdEFy
dGljbGUuaXRlbSgxKS5pZCk7Ci0KLSAgICAgICAgICAgIHZhciBzcGFuTm9kZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzcGFuTm9kZSIpOwotICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RT
cGFuID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlKTsKLSAgICAg
ICAgICAgIGFzc2VydChyZWdpb25MaXN0U3BhbiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHNw
YW4gc2hvdWxkIG5vdCBiZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNw
YW4ubGVuZ3RoID09IDEsICJSZWdpb24gbGlzdCBmb3Igc3BhbiBzaG91bGQgaGF2ZSAxIGVsZW1l
bnQsIGhhcyAiICsgcmVnaW9uTGlzdFNwYW4ubGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdp
b25MaXN0U3Bhbi5sZW5ndGggPiAwKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
U3Bhbi5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0
IHJlZ2lvbiBmb3Igc3BhbiBzaG91bGQgYmUgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFNw
YW4uaXRlbSgwKS5pZCk7Ci0KLSAgICAgICAgICAgIHZhciBzcGFuTm9kZTIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUyIik7Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNw
YW4yID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHNwYW5Ob2RlMik7Ci0gICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4yICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3Ig
c3BhbjIgc2hvdWxkIG5vdCBiZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlz
dFNwYW4yLmxlbmd0aCA9PSAyLCAiUmVnaW9uIGxpc3QgZm9yIHNwYW4yIHNob3VsZCBoYXZlIDIg
ZWxlbWVudHMsIGhhcyAiICsgcmVnaW9uTGlzdFNwYW4yLmxlbmd0aCk7Ci0KLSAgICAgICAgICAg
IHZhciBzcGFuTm9kZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Bhbk5vZGUzIik7Ci0g
ICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFNwYW4zID0gbmFtZWRGbG93LmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlKHNwYW5Ob2RlMyk7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4z
ICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3Igc3BhbjMgc2hvdWxkIG5vdCBiZSBudWxsIik7Ci0g
ICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4zLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxp
c3QgZm9yIHNwYW4zIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0U3Bh
bjMubGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0U3BhbjMubGVuZ3RoID4gMCkK
LSAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFNwYW4zLml0ZW0oMCkgPT0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3Igc3BhbiBub2Rl
IDMgc2hvdWxkIGJlIHRoZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFNwYW4z
Lml0ZW0oMCkuaWQpOwotCi0gICAgICAgICAgICB2YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgiVGV4dCBub2RlLiBUZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiBU
ZXh0IG5vZGUuIFRleHQgbm9kZS4gVGV4dCBub2RlLiAiKTsKLSAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlIikuYXBwZW5kQ2hpbGQodGV4dE5vZGUpOwotICAgICAg
ICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZSA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250
ZW50Tm9kZSh0ZXh0Tm9kZSk7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2Rl
ICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIp
OwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGggPT0gMSwgIlJl
Z2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMgIiArIHJl
Z2lvbkxpc3RUZXh0Tm9kZS5sZW5ndGgpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0
Tm9kZS5sZW5ndGggPiAwKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5v
ZGUuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3Qg
cmVnaW9uIGZvciB0ZXh0IG5vZGUgc2hvdWxkIGJlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyBy
ZWdpb25MaXN0VGV4dE5vZGUuaXRlbSgwKS5pZCk7Ci0KLSAgICAgICAgICAgIC8vIEFkZCBhbm90
aGVyIHRleHQgbm9kZSB0aGF0IHdpbGwgb3ZlcmZsb3cgdGhlIHJlZ2lvbjIuCi0gICAgICAgICAg
ICB2YXIgdGV4dE5vZGUyID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRleHQgbm9kZTIuIik7
Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmFwcGVuZENo
aWxkKHRleHROb2RlMik7Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMiA9IG5h
bWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZSh0ZXh0Tm9kZTIpOwotICAgICAgICAgICAg
YXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0
IG5vZGUgMiBzaG91bGQgbm90IGJlIG51bGwiKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25M
aXN0VGV4dE5vZGUyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHRleHQgbm9kZSAyIHNo
b3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCk7
Ci0gICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPiAwKQotICAgICAg
ICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMCkgPT0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlZ2lvbjIiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgdGV4dCBub2RlIDIg
c2hvdWxkIGJlIHNlY29uZCByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLml0
ZW0oMCkuaWQpOwotCi0gICAgICAgICAgICAvLyBBZGQgYW5vdGhlciB0ZXh0IG5vZGUgdGhhdCBp
cyBpbiB0aGUgb3ZlcmZsb3cgb2YgdGhlIGxhc3QgcmVnaW9uLgotICAgICAgICAgICAgdmFyIHRl
eHROb2RlMyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUZXh0IG5vZGUzLiIpOwotICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUiKS5hcHBlbmRDaGlsZCh0ZXh0
Tm9kZTMpOwotICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RUZXh0Tm9kZTMgPSBuYW1lZEZsb3cu
Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGV4dE5vZGUzKTsKLSAgICAgICAgICAgIGFzc2VydChy
ZWdpb25MaXN0VGV4dE5vZGUzICE9IG51bGwsICJSZWdpb24gbGlzdCBmb3IgdGV4dCBub2RlIDMg
c2hvdWxkIG5vdCBiZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHRO
b2RlMy5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgaGF2
ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5sZW5ndGgpOwotICAgICAg
ICAgICAgaWYgKHJlZ2lvbkxpc3RUZXh0Tm9kZTMubGVuZ3RoID4gMCkKLSAgICAgICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWdpb24yIiksICJGaXJzdCByZWdpb24gZm9yIHRleHQgbm9kZSAzIHNob3VsZCBi
ZSBzZWNvbmQgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdFRleHROb2RlMy5pdGVtKDApLmlk
KTsKLQotICAgICAgICAgICAgLy8gQWRkIGFub3RoZXIgcmVnaW9uIHRvIHRha2UgdGhlIG92ZXJm
bG93aW5nIGVsZW1lbnRzIGZyb20gc2Vjb25kIHJlZ2lvbi4KLSAgICAgICAgICAgIHZhciByZWdp
b24zID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgICAgICByZWdpb24z
LmlkID0gInJlZ2lvbjMiOwotICAgICAgICAgICAgcmVnaW9uMy5jbGFzc05hbWUgPSAicmVnaW9u
Qm94IjsKLSAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVnaW9uMyk7Ci0K
LSAgICAgICAgICAgIHZhciByZWdpb25MaXN0VGV4dE5vZGUyID0gbmFtZWRGbG93LmdldFJlZ2lv
bnNCeUNvbnRlbnROb2RlKHRleHROb2RlKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
VGV4dE5vZGUgPT0gcmVnaW9uTGlzdFRleHROb2RlMiwgIlJlZ2lvbiBsaXN0cyBmb3IgdGV4dCBu
b2RlIHNob3VsZCByZWZlcmVuY2UgdGhlIHNhbWUgb2JqZWN0Iik7Ci0gICAgICAgICAgICBhc3Nl
cnQocmVnaW9uTGlzdFRleHROb2RlMi5sZW5ndGggPT0gMiwgIlJlZ2lvbiBsaXN0IGZvciB0ZXh0
IG5vZGUgc2hvdWxkIGhhdmUgMiBlbGVtZW50LCBoYXMgIiArIHJlZ2lvbkxpc3RUZXh0Tm9kZTIu
bGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0VGV4dE5vZGUyLmxlbmd0aCA+IDAp
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKSA9PSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMiIpLCAiRmlyc3QgcmVnaW9uIGZvciB0ZXh0
IG5vZGUgc2hvdWxkIGJlIHRoZSBzZWNvbmQgcmVnaW9uIGZyb20gZmxvdywgaXQgaXMgIiArIHJl
Z2lvbkxpc3RUZXh0Tm9kZTIuaXRlbSgwKS5pZCk7Ci0gICAgICAgICAgICBpZiAocmVnaW9uTGlz
dFRleHROb2RlMi5sZW5ndGggPiAxKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
VGV4dE5vZGUyLml0ZW0oMSkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbjMiKSwg
IlNlY29uZCByZWdpb24gZm9yIHRleHQgbm9kZSBzaG91bGQgYmUgdGhlIHRoaXJkIHJlZ2lvbiBm
cm9tIGZsb3csIGl0IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUyLml0ZW0oMSkuaWQpOwotCi0g
ICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFRleHROb2RlMzIgPSBuYW1lZEZsb3cuZ2V0UmVnaW9u
c0J5Q29udGVudE5vZGUodGV4dE5vZGUzKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0
VGV4dE5vZGUzID09IHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLCAiUmVnaW9uIGxpc3RzIGZvciB0ZXh0
IG5vZGUgMyBzaG91bGQgcmVmZXJlbmNlIHRoZSBzYW1lIG9iamVjdCIpOwotICAgICAgICAgICAg
YXNzZXJ0KHJlZ2lvbkxpc3RUZXh0Tm9kZTMyLmxlbmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgZm9y
IHRleHQgbm9kZSAzIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0VGV4
dE5vZGUzLmxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAocmVnaW9uTGlzdFRleHROb2RlMzIubGVu
Z3RoID4gMCkKLSAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFRleHROb2RlMzIuaXRl
bSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMyIpLCAiRmlyc3QgcmVnaW9u
IGZvciB0ZXh0IG5vZGUgMyBzaG91bGQgYmUgdGhlIHRoaXJkIHJlZ2lvbiBmcm9tIGZsb3csIGl0
IGlzICIgKyByZWdpb25MaXN0VGV4dE5vZGUzMi5pdGVtKDApLmlkKTsKLQotICAgICAgICAgICAg
dmFyIG5hbWVkRmxvdzIgPSBkb2N1bWVudC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93MiIpOwot
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3RQMSA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29u
dGVudE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAxIikpOwotICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RQMSAhPSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIHAxIG5vZGUgc2hvdWxk
IG5vdCBiZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAxLmxlbmd0aCA9
PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAxIG5vZGUgc2hvdWxkIGhhdmUgMSBlbGVtZW50LCBoYXMg
IiArIHJlZ2lvbkxpc3RQMS5sZW5ndGgpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3RQMS5s
ZW5ndGggPiAwKQotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDEuaXRlbSgwKSA9
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uNCIpLCAiRmlyc3QgcmVnaW9uIGZvciBw
MSBub2RlIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsgcmVnaW9uTGlzdFAxLml0ZW0oMCku
aWQpOwotCi0gICAgICAgICAgICB2YXIgcDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7
Ci0gICAgICAgICAgICBwMi5pZCA9ICJwMiI7Ci0gICAgICAgICAgICBwMi5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAyLiIpKTsKLSAg
ICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxk
KHAyKTsKLSAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDIgPSBuYW1lZEZsb3cyLmdldFJlZ2lv
bnNCeUNvbnRlbnROb2RlKHAyKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIgIT0g
bnVsbCwgIlJlZ2lvbiBsaXN0IGZvciBwMiBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOwotICAg
ICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMi5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZv
ciBwMiBub2RlIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyByZWdpb25MaXN0UDIubGVu
Z3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0UDIubGVuZ3RoID4gMCkKLSAgICAgICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdFAyLml0ZW0oMCkgPT0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZ2lvbjQiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDIgc2hvdWxkIGJlIHJlZ2lvbjQs
IGl0IGlzICIgKyByZWdpb25MaXN0UDIuaXRlbSgwKS5pZCk7Ci0gCi0gICAgICAgICAgICAvLyBh
ZGQgYW5vdGhlciBlbGVtZW50IHAsIGluIHRoZSBvdmVyZmxvdyBwYXJ0IG9mIHRoZSByZWdpb240
Ci0gICAgICAgICAgICB2YXIgcDMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7Ci0gICAg
ICAgICAgICBwMy5pZCA9ICJwMyI7Ci0gICAgICAgICAgICBwMy5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiVGV4dCBpbnNpZGUgcGFyYWdyYXBoIHAzLiIpKTsKLSAgICAgICAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcnRpY2xlMiIpLmFwcGVuZENoaWxkKHAzKTsK
LSAgICAgICAgICAgIHZhciByZWdpb25MaXN0UDMgPSBuYW1lZEZsb3cyLmdldFJlZ2lvbnNCeUNv
bnRlbnROb2RlKHAzKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDMgIT0gbnVsbCwg
IlJlZ2lvbiBsaXN0IGZvciBwMyBub2RlIHNob3VsZCBub3QgYmUgbnVsbCIpOwotICAgICAgICAg
ICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMy5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IGZvciBwMyBz
aG91bGQgaGF2ZSAxIGVsZW1lbnQsIGhhcyAiICsgcmVnaW9uTGlzdFAzLmxlbmd0aCk7Ci0gICAg
ICAgICAgICBpZiAocmVnaW9uTGlzdFAzLmxlbmd0aCA+IDApCi0gICAgICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3RQMy5pdGVtKDApID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdp
b240IiksICJGaXJzdCByZWdpb24gZm9yIHAzIHNob3VsZCBiZSByZWdpb240LCBpdCBpcyAiICsg
cmVnaW9uTGlzdFAzLml0ZW0oMCkuaWQpOwotCi0gICAgICAgICAgICAvLyBhZGQgYW5vdGhlciBy
ZWdpb24gdG8gZmxvdzIsIHAyIGFuZCBwMyBnbyB0byByZWdpb241Ci0gICAgICAgICAgICB2YXIg
cmVnaW9uNSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgICAgICAgICAgcmVn
aW9uNS5pZCA9ICJyZWdpb241IjsKLSAgICAgICAgICAgIHJlZ2lvbjUuY2xhc3NOYW1lID0gInJl
Z2lvbkJveCI7Ci0gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJlZ2lvbjUp
OwotCi0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdFAyMiA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9u
c0J5Q29udGVudE5vZGUocDIpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMiA9PSBy
ZWdpb25MaXN0UDIyLCAiUmVnaW9uIGxpc3RzIGZvciBwMiBzaG91bGQgcmVmZXIgdGhlIHNhbWUg
cmVnaW9uIGxpc3QiKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0UDIyLmxlbmd0aCA9
PSAxLCAiUmVnaW9uIGxpc3QgZm9yIHAyIHNob3VsZCBoYXZlIDEgZWxlbWVudCwgaGFzICIgKyBy
ZWdpb25MaXN0UDIubGVuZ3RoKTsKLSAgICAgICAgICAgIGlmIChyZWdpb25MaXN0UDIyLmxlbmd0
aCA+IDApCi0gICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3RQMjIuaXRlbSgwKSA9PSBy
ZWdpb241LCAiRmlyc3QgcmVnaW9uIGZvciBwMiBzaG91bGQgYmUgcmVnaW9uNSwgaXQgaXMgIiAr
IHJlZ2lvbkxpc3RQMi5pdGVtKDApLmlkKTsKLQotICAgICAgICAgICAgaGlkZVJlZ2lvbnMoKTsK
LSAgICAgICAgPC9zY3JpcHQ+Ci0gICAgPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2RlLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFlMmE3MjIuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNvbnRlbnQtbm9kZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4K
LSAgICA8aGVhZD4KLSAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJj
ZXMvcmVnaW9uLXN0eWxlLmNzcyI+Ci0gICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaGVs
cGVyLmpzIj48L3NjcmlwdD4KLSAgICAgICAgPHN0eWxlPgotICAgICAgICAgICAgYm9keSB7IGZv
bnQtZmFtaWx5OiBtb25vc3BhY2U7IH0KLSAgICAgICAgICAgICNhcnRpY2xlIHsgLXdlYmtpdC1m
bG93LWludG86IGZsb3c7IH0KLSAgICAgICAgICAgIC5ib3JkZXIgeyBib3JkZXI6IDFweCBzb2xp
ZCByZWQ7IH0KLSAgICAgICAgICAgICNyZWdpb24geyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsg
d2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBw
eDsgdG9wOiAyMDBweDsgfQotCi0gICAgICAgICAgICAjYXJ0aWNsZTIgeyAtd2Via2l0LWZsb3ct
aW50bzogZmxvdzI7IH0KLSAgICAgICAgICAgICNyZWdpb24yMSB7IC13ZWJraXQtZmxvdy1mcm9t
OiBmbG93Mjsgd2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDUwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsg
bGVmdDogMjBweDsgdG9wOiAzMDBweDt9Ci0gICAgICAgICAgICAjcmVnaW9uMjIgeyAtd2Via2l0
LWZsb3ctZnJvbTogZmxvdzI7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyBwb3NpdGlvbjog
YWJzb2x1dGU7IGxlZnQ6IDIwcHg7IHRvcDogMzUwcHg7fQotICAgICAgICA8L3N0eWxlPgotICAg
IDwvaGVhZD4KLSAgICA8Ym9keT4KLSAgICAgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NzQ2Ij4KLSAgICAgICAgNzc3NDY6
IFtDU1NSZWdpb25zXUltcGxlbWVudCBOYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2Rl
PC9hPjwvcD4KLSAgICAgICAgPHA+T24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMg
b2YgUEFTUyBiZWxvdy48L3A+Ci0KLSAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0g
ICAgICAgIDxkaXYgaWQ9ImFydGljbGUiPgotICAgICAgICAgICAgPHAgaWQ9InAxIj5UZXh0IGZs
b3duIGludG8gcmVnaW9uLjwvcD4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9InJl
Z2lvbiIgY2xhc3M9ImJvcmRlciI+PC9kaXY+Ci0KLSAgICAgICAgPGRpdiBpZD0iYXJ0aWNsZTIi
PgotICAgICAgICAgICAgPHAgaWQ9InAyIj5UZXh0IGZsb3duIGluIHR3byByZWdpb25zLiBUZXh0
IGZsb3duIGluIHR3byByZWdpb25zLiBUZXh0IGZsb3duIGluIHR3byByZWdpb25zLjwvcD4KLSAg
ICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9InJlZ2lvbjIxIiBjbGFzcz0iYm9yZGVyIj48
L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0icmVnaW9uMjIiIGNsYXNzPSJib3JkZXIiPjwvZGl2Pgot
ICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0KLSAgICAgICAgICAgIHZhciBuYW1lZEZsb3cxID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5
TmFtZSgiZmxvdyIpOwotICAgICAgICAgICAgdmFyIHAxUmVnaW9uc0luRmxvdzEgPSBuYW1lZEZs
b3cxLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMSIp
KTsKLSAgICAgICAgICAgIHZhciBuYW1lZEZsb3cyID0gZG9jdW1lbnQud2Via2l0R2V0Rmxvd0J5
TmFtZSgiZmxvdzIiKTsKLSAgICAgICAgICAgIHZhciBwMlJlZ2lvbnNJbkZsb3cyID0gbmFtZWRG
bG93Mi5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDIi
KSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RHZXRSZWdpb25zQnlDb250ZW50Tm9kZTEo
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciBuYW1lZEZsb3cgPSBkb2N1bWVu
dC53ZWJraXRHZXRGbG93QnlOYW1lKCJmbG93Iik7Ci0gICAgICAgICAgICAgICAgdmFyIHRhcmdl
dE5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDEiKTsKLSAgICAgICAgICAgICAgICB2
YXIgcmVnaW9uc0xpc3QgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGFyZ2V0
Tm9kZSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uc0xpc3QgPT0gcDFSZWdpb25z
SW5GbG93MSwgIlJlZ2lvbiBsaXN0IGZvciBwMSBpbiBmbG93MSBzaG91bGQgYmUgYSBsaXZlIG9i
amVjdCIpOwotICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25zTGlzdC5sZW5ndGggPT0gMSwg
IlRoZSByZWdpb24gbGlzdCBjb3VudCBzaG91bGQgYmUgMSwgaXQgaXMgIiArIHJlZ2lvbnNMaXN0
Lmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlZ2lvbnNMaXN0Lmxlbmd0aCA+IDApCi0g
ICAgICAgICAgICAgICAgICAgIGFzc2VydChyZWdpb25zTGlzdC5pdGVtKDApID09IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDEgc2hvdWxkIGJl
IHJlZ2lvbiwgaXQgaXMgIiArIHJlZ2lvbnNMaXN0Lml0ZW0oMCkuaWQpOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0UmVnaW9uc0J5Q29udGVudE5vZGUyKCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgbmFtZWRGbG93ID0gZG9jdW1lbnQu
d2Via2l0R2V0Rmxvd0J5TmFtZSgiZmxvdzIiKTsKLQotICAgICAgICAgICAgICAgIC8vIFRlc3Qg
dGhhdCB0aGUgcDIgZWxlbWVudCBpcyBmbG93biBpbnRvIDIgcmVnaW9ucwotICAgICAgICAgICAg
ICAgIHZhciB0YXJnZXROb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAyIik7Ci0gICAg
ICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3QgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVu
dE5vZGUodGFyZ2V0Tm9kZSk7Ci0KLSAgICAgICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdCA9
PSBwMlJlZ2lvbnNJbkZsb3cyLCAiUmVnaW9uIGxpc3QgZm9yIHAyIGluIGZsb3cyIHNob3VsZCBi
ZSBhIGxpdmUgb2JqZWN0Iik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3QubGVu
Z3RoID09IDIsICJUaGUgcmVnaW9uIGxpc3QgY291bnQgc2hvdWxkIGJlIDIsIGl0IGlzICIgKyBy
ZWdpb25MaXN0Lmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3QubGVuZ3Ro
ID4gMCkKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3QuaXRlbSgwKSA9PSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVnaW9uMjEiKSwgIkZpcnN0IHJlZ2lvbiBmb3IgcDIg
c2hvdWxkIGJlIHJlZ2lvbjIxLCBpdCBpcyAiICsgcmVnaW9uTGlzdC5pdGVtKDApLmlkKTsKLSAg
ICAgICAgICAgICAgICBpZiAocmVnaW9uTGlzdC5sZW5ndGggPiAxKQotICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQocmVnaW9uTGlzdC5pdGVtKDEpID09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZWdpb24yMiIpLCAiRmlyc3QgcmVnaW9uIGZvciBwMiBzaG91bGQgYmUgcmVnaW9uMjIsIGl0
IGlzICIgKyByZWdpb25MaXN0Lml0ZW0oMSkuaWQpOwotCi0gICAgICAgICAgICAgICAgLy8gVGVz
dCB0aGF0IHAxIGVsZW1lbnQgaXMgbm90IGluIGZsb3cyCi0gICAgICAgICAgICAgICAgdGFyZ2V0
Tm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMSIpOwotICAgICAgICAgICAgICAgIHJl
Z2lvbkxpc3QgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUodGFyZ2V0Tm9kZSk7
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3QubGVuZ3RoID09IDAsICJUaGUgcmVn
aW9uIGxpc3QgY291bnQgc2hvdWxkIGJlIDAsIGl0IGlzICIgKyByZWdpb25MaXN0Lmxlbmd0aCk7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGhpZGVSZWdpb25zQW5kRmxv
d3MoKSB7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFydGljbGUi
KS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImFydGljbGUyIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwot
ICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24iKS5zdHlsZS52
aXNpYmlsaXR5ID0gImhpZGRlbiI7Ci0gICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZ2lvbjIxIikuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwotICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWdpb24yMiIpLnN0eWxlLnZpc2liaWxp
dHkgPSAiaGlkZGVuIjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgdGVzdEdldFJlZ2lv
bnNCeUNvbnRlbnROb2RlMSgpOwotICAgICAgICAgICAgdGVzdEdldFJlZ2lvbnNCeUNvbnRlbnRO
b2RlMigpOwotCi0gICAgICAgICAgICBoaWRlUmVnaW9uc0FuZEZsb3dzKCk7Ci0gICAgICAgIDwv
c2NyaXB0PgotICAgIDwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9nZXQtcmVnaW9ucy1ieS1jb250ZW50LW5vZGUyLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2NiNTY5Mi4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVudC1ub2Rl
Mi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1UZXN0IGZvciA3
Nzc0NjogW0NTU1JlZ2lvbnNdSW1wbGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVu
dE5vZGUKLQotT24gc3VjY2VzcywgeW91IHNob3VsZCBzZWUgYSBzZXJpZXMgb2YgUEFTUyBiZWxv
dy4KLQotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFT
UwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwot
UEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotUEFTUwotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29udGVu
dC1ub2RlMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2dldC1yZWdpb25zLWJ5LWNv
bnRlbnQtbm9kZTIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjY5YTg5My4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvZ2V0LXJlZ2lvbnMtYnktY29u
dGVudC1ub2RlMi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLTwhZG9jdHlw
ZSBodG1sPgotPGh0bWw+Ci0gICAgPGhlYWQ+Ci0gICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0icmVzb3VyY2VzL3JlZ2lvbi1zdHlsZS5jc3MiPgotICAgICAgICA8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2hlbHBlci5qcyI+PC9zY3JpcHQ+Ci0gICAgICAgIDxzdHlsZT4KLSAgICAg
ICAgICAgIGJvZHkgeyBmb250LWZhbWlseTogbW9ub3NwYWNlOyB9Ci0gICAgICAgICAgICAjcmVn
aW9uLCAjcmVnaW9uMiB7IHdpZHRoOiAyNTBweDsgaGVpZ2h0OiA1MHB4OyB9Ci0gICAgICAgICAg
ICAuYXJ0aWNsZSB7IC13ZWJraXQtZmxvdy1pbnRvOiBmbG93OyB9Ci0gICAgICAgICAgICAuYXJ0
aWNsZTIgeyAtd2Via2l0LWZsb3ctaW50bzogZmxvdzI7IH0KLSAgICAgICAgICAgIC5yZWdpb24g
eyAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzsgfQotICAgICAgICAgICAgLnJlZ2lvbjIgeyAtd2Vi
a2l0LWZsb3ctZnJvbTogZmxvdzI7IH0KLSAgICAgICAgICAgIC5ub1JlZ2lvbiB7IC13ZWJraXQt
Zmxvdy1mcm9tOiBub25lOyB9Ci0gICAgICAgIDwvc3R5bGU+Ci0gICAgPC9oZWFkPgotICAgIDxi
b2R5PgotICAgICAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Nzc3NDYiPgotICAgICAgICA3Nzc0NjogW0NTU1JlZ2lvbnNdSW1w
bGVtZW50IE5hbWVkRmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGU8L2E+PC9wPgotICAgICAg
ICA8cD5PbiBzdWNjZXNzLCB5b3Ugc2hvdWxkIHNlZSBhIHNlcmllcyBvZiBQQVNTIGJlbG93Ljwv
cD4KLSAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ImFy
dGljbGUiIGNsYXNzPSJhcnRpY2xlIj48L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0icmVnaW9uIiBj
bGFzcz0icmVnaW9uIj48L2Rpdj4KLSAgICAgICAgPGRpdiBpZD0icmVnaW9uMiI+PC9kaXY+Ci0g
ICAgICAgIDxzY3JpcHQ+Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LQotICAgICAgICAgICAgdmFyIG5hbWVkRmxvdyA9IGRvY3VtZW50LndlYmtpdEdldEZsb3dCeU5h
bWUoImZsb3ciKTsKLQotICAgICAgICAgICAgLy8gR2V0dGluZyB0aGUgcmVnaW9ucyBmb3IgYSBu
b24gZXhpc3RhbnQgbm9kZSBzaG91bGQgcmV0dXJuIG51bGwuCi0gICAgICAgICAgICB2YXIgcEVs
ZW1lbnQ7Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdCA9IG5hbWVkRmxvdy5nZXRSZWdpb25z
QnlDb250ZW50Tm9kZShwRWxlbWVudCk7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdCA9
PSBudWxsLCAiUmVnaW9uIGxpc3QgZm9yIGEgbm9uLWV4aXN0YW50IG5vZGUgc2hvdWxkIHJldHVy
biBudWxsIik7Ci0KLSAgICAgICAgICAgIC8vIEdldHRpbmcgdGhlIHJlZ2lvbnMgZm9yIGFuIGVs
ZW1lbnQgdGhhdCB3YXMgbm90IGFkZGVkIHRvIHRoZSBkb20gc2hvdWxkIHJldHVybiBhbiBlbXB0
eSBsaXN0LgotICAgICAgICAgICAgcEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJw
Iik7Ci0KLSAgICAgICAgICAgIHZhciByZWdpb25MaXN0MiA9IG5hbWVkRmxvdy5nZXRSZWdpb25z
QnlDb250ZW50Tm9kZShwRWxlbWVudCk7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDIg
IT0gbnVsbCwgIlJlZ2lvbiBsaXN0IDIgc2hvdWxkIG5vdCBiZSBudWxsIik7Ci0gICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdDIubGVuZ3RoID09IDAsICJSZWdpb24gbGlzdCAyIHNob3VsZCBi
ZSBlbXB0eSwgaGFzICIgKyByZWdpb25MaXN0Mi5sZW5ndGggKyAiIGVsZW1lbnRzLiIpOwotICAg
ICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3QgIT0gcmVnaW9uTGlzdDIsICJSZWdpb24gbGlzdHMg
c2hvdWxkIGJlIGRpZmZlcmVudCIpOwotCi0gICAgICAgICAgICAvLyBBZGQgdGhlIGVsZW1lbnQg
dG8gdGhlIGRvbSBidXQgbm90IGluIHRoZSBmbG93LiBUaGUgcmVnaW9uIGxpc3Qgc2hvdWxkIGJl
IGVtcHR5LgotICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChwRWxlbWVudCk7
Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdDMgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29u
dGVudE5vZGUocEVsZW1lbnQpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3QzICE9IG51
bGwsICJSZWdpb24gbGlzdCAzIHNob3VsZCBub3QgYmUgbnVsbCIpOwotICAgICAgICAgICAgYXNz
ZXJ0KHJlZ2lvbkxpc3QzLmxlbmd0aCA9PSAwLCAiUmVnaW9uIGxpc3QgMyBzaG91bGQgYmUgZW1w
dHksIGhhcyAiICsgcmVnaW9uTGlzdDMubGVuZ3RoICsgIiBlbGVtZW50cy4iKTsKLSAgICAgICAg
ICAgIGFzc2VydChyZWdpb25MaXN0MiA9PSByZWdpb25MaXN0MywgIlJlZ2lvbnMgbGlzdCAyIGFu
ZCAzIHNob3VsZCByZWZlciB0aGUgc2FtZSBOb2RlTGlzdCBvYmplY3QiKTsKLQotICAgICAgICAg
ICAgLy8gQWRkIHRoZSBzYW1lIGVsZW1lbnQgdG8gdGhlIGZsb3cuIFRoZSByZWdpb24gbGlzdCBz
aG91bGQgY29udGFpbiBvbmUgcmVnaW9uLgotICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1v
dmVDaGlsZChwRWxlbWVudCk7Ci0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
YXJ0aWNsZSIpLmFwcGVuZENoaWxkKHBFbGVtZW50KTsKLSAgICAgICAgICAgIHZhciByZWdpb25M
aXN0NCA9IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVudCk7Ci0gICAg
ICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDQgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IDQgZm9yIG5v
ZGUgaW4gZmxvdyBzaG91bGQgbm90IGJlIG51bGwiKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdp
b25MaXN0NC5sZW5ndGggPT0gMSwgIlJlZ2lvbiBsaXN0IDQgZm9yIG5vZGUgaW4gZmxvdyBzaG91
bGQgaGF2ZSAxIHJlZ2lvbiwgaGFzICIgKyByZWdpb25MaXN0NC5sZW5ndGggKyAiIGVsZW1lbnRz
Iik7Ci0gICAgICAgICAgICBpZiAocmVnaW9uTGlzdDQubGVuZ3RoID4gMCkKLSAgICAgICAgICAg
ICAgICBhc3NlcnQocmVnaW9uTGlzdDQuaXRlbSgwKSA9PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVnaW9uIiksICJGaXJzdCBlbGVtZW50IGluIHJlZ2lvbiBsaXN0IDQgc2hvdWxkIGJlIHRo
ZSBmaXJzdCByZWdpb24sIGl0IGlzICIgKyByZWdpb25MaXN0NC5pdGVtKDApLmlkKTsKLSAgICAg
ICAgICAgIGFzc2VydChyZWdpb25MaXN0NCA9PSByZWdpb25MaXN0MywgIlJlZ2lvbnMgbGlzdCAz
IGFuZCA0IHNob3VsZCByZWZlciB0aGUgc2FtZSBOb2RlTGlzdCBvYmplY3QiKTsKLQotICAgICAg
ICAgICAgLy8gUmVtb3ZlIHRoZSByZWdpb24gbm9kZSBhbmQgZ2V0IHRoZSByZWdpb24gbGlzdC4g
VGhlIGxpc3Qgc2hvdWxkIGJlIGVtcHR5LgotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInJlZ2lvbiIpLmNsYXNzTmFtZSA9ICJub1JlZ2lvbiI7Ci0gICAgICAgICAgICB2YXIg
cmVnaW9uTGlzdDUgPSBuYW1lZEZsb3cuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1lbnQp
OwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q1ICE9IG51bGwsICJSZWdpb24gbGlzdCA1
IHNob3VsZCBub3QgYmUgbnVsbCIpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q1Lmxl
bmd0aCA9PSAwLCAiUmVnaW9uIGxpc3QgNSBzaG91bGQgYmUgZW1wdHksIGhhcyAiICsgcmVnaW9u
TGlzdDUubGVuZ3RoICsgIiBlbGVtZW50cyIpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxp
c3Q1ID09IHJlZ2lvbkxpc3Q0LCAiUmVnaW9ucyBsaXN0IDQgYW5kIDUgc2hvdWxkIHJlZmVyIHRo
ZSBzYW1lIE5vZGVMaXN0IG9iamVjdCIpOwotCi0gICAgICAgICAgICAvLyBCcmluZyBiYWNrIHRo
ZSByZWdpb24gYW5kIGdldCB0aGUgcmVnaW9uIGxpc3QuIFRoZSBsaXN0IHNob3VsZCBoYXZlIG9u
ZSBlbGVtZW50LgotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIp
LmNsYXNzTmFtZSA9ICJyZWdpb24iOwotICAgICAgICAgICAgdmFyIHJlZ2lvbkxpc3Q2ID0gbmFt
ZWRGbG93LmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHBFbGVtZW50KTsKLSAgICAgICAgICAgIGFz
c2VydChyZWdpb25MaXN0NiAhPSBudWxsLCAiUmVnaW9uIGxpc3QgNiBzaG91bGQgbm90IGJlIG51
bGwiKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0Ni5sZW5ndGggPT0gMSwgIlJlZ2lv
biBsaXN0IDYgc2hvdWxkIGhhdmUgMSByZWdpb24sIGhhcyAiICsgcmVnaW9uTGlzdDYubGVuZ3Ro
ICsgIiBlbGVtZW50cyIpOwotICAgICAgICAgICAgaWYgKHJlZ2lvbkxpc3Q2Lmxlbmd0aCA+IDAp
Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q2Lml0ZW0oMCkgPT0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlZ2lvbiIpLCAiRmlyc3QgZWxlbWVudCBpbiByZWdpb24gbGlzdCA2
IHNob3VsZCBiZSB0aGUgZmlyc3QgcmVnaW9uLCBpdCBpcyAiICsgcmVnaW9uTGlzdDYuaXRlbSgw
KS5pZCk7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDYgPT0gcmVnaW9uTGlzdDUsICJS
ZWdpb24gbGlzdCA1IGFuZCA2IHNob3VsZCByZWZlciB0aGUgc2FtZSBOb2RlTGlzdCBvYmplY3Qi
KTsKLQotICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSBuYW1lZCBmbG93LCB0aGUgcmVnaW9uIGxp
c3Qgc2hvdWxkIGJlIGVtcHR5LgotICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImFydGljbGUiKS5jbGFzc05hbWUgPSAiIjsKLSAgICAgICAgICAgIHZhciByZWdpb25MaXN0NyA9
IG5hbWVkRmxvdy5nZXRSZWdpb25zQnlDb250ZW50Tm9kZShwRWxlbWVudCk7Ci0gICAgICAgICAg
ICBhc3NlcnQocmVnaW9uTGlzdDcgIT0gbnVsbCwgIlJlZ2lvbiBsaXN0IDcgc2hvdWxkIG5vdCBi
ZSBudWxsIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDcubGVuZ3RoID09IDAsICJS
ZWdpb24gbGlzdCA3IHNob3VsZCBiZSBlbXB0eSwgaXQgaGFzICIgKyByZWdpb25MaXN0Ny5sZW5n
dGggKyAiIGVsZW1lbnRzIik7Ci0gICAgICAgICAgICBhc3NlcnQocmVnaW9uTGlzdDcgPT0gcmVn
aW9uTGlzdDYsICJSZWdpb24gbGlzdCA2IGFuZCA3IHNob3VsZCByZWZlciB0aGUgc2FtZSBOb2Rl
TGlzdCBvYmplY3QiKTsKLQotICAgICAgICAgICAgLy8gTW92ZSB0aGUgYXJ0aWNsZSB0byBhbm90
aGVyIG5hbWVkIGZsb3csIHRoZSByZWdpb24gbGlzdCBzaG91bGQgYmUgZW1wdHkuCi0gICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXJ0aWNsZSIpLmNsYXNzTmFtZSA9ICJhcnRp
Y2xlMiI7Ci0gICAgICAgICAgICB2YXIgbmFtZWRGbG93MiA9IGRvY3VtZW50LndlYmtpdEdldEZs
b3dCeU5hbWUoImZsb3cyIik7Ci0gICAgICAgICAgICB2YXIgcmVnaW9uTGlzdDggPSBuYW1lZEZs
b3cyLmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKHBFbGVtZW50KTsKLSAgICAgICAgICAgIGFzc2Vy
dChyZWdpb25MaXN0OCAhPSBudWxsLCAiUmVnaW9uIGxpc3QgOCBzaG91bGQgbm90IGJlIG51bGwi
KTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0OC5sZW5ndGggPT0gMCwgIlJlZ2lvbiBs
aXN0IDggc2hvdWxkIGJlIGVtcHR5LCBpdCBoYXMgIiArIHJlZ2lvbkxpc3Q4Lmxlbmd0aCArICIg
ZWxlbWVudHMiKTsKLSAgICAgICAgICAgIGFzc2VydChyZWdpb25MaXN0OCAhPSByZWdpb25MaXN0
NywgIlJlZ2lvbiBsaXN0IDcgYW5kIDggc2hvdWxkIHJlZmVyIGRpZmZlcmVudCBOb2RlTGlzdCBv
YmplY3RzIik7Ci0KLSAgICAgICAgICAgIC8vIEFkZCBhIHJlZ2lvbiB0byB0aGUgc2Vjb25kIG5h
bWVkIGZsb3csIHRoZSByZWdpb24gbGlzdCBzaG91bGQgY29udGFpbiBvbmUgZWxlbWVudAotICAg
ICAgICAgICAgLy8gc2luY2UgdGhlIHAgZWxlbWVudCBpcyBhIGNoaWxkIG9mIGFydGljbGUgdGhh
dCBpcyBjb2xsZWN0ZWQgYnkgZmxvdzIuCi0gICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgicmVnaW9uMiIpLmNsYXNzTmFtZSA9ICJyZWdpb24yIjsKLSAgICAgICAgICAgIHZhciBy
ZWdpb25MaXN0OSA9IG5hbWVkRmxvdzIuZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUocEVsZW1lbnQp
OwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q5ICE9IG51bGwsICJSZWdpb24gbGlzdCA5
IHNob3VsZCBub3QgYmUgbnVsbCIpOwotICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q5Lmxl
bmd0aCA9PSAxLCAiUmVnaW9uIGxpc3QgOSBzaG91bGQgaGF2ZSAxIGVsZW1lbnQsIGl0IGhhcyAi
ICsgcmVnaW9uTGlzdDkubGVuZ3RoICsgIiBlbGVtZW50cyIpOwotICAgICAgICAgICAgaWYgKHJl
Z2lvbkxpc3Q5Lmxlbmd0aCA+IDApCi0gICAgICAgICAgICAgICAgYXNzZXJ0KHJlZ2lvbkxpc3Q5
ID09IHJlZ2lvbkxpc3Q4LCAiUmVnaW9uIGxpc3QgOCBhbmQgOSBzaG91bGQgcmVmZXJlIHRoZSBz
YW1lIE5vZGVMaXN0IG9iamVjdCIpOwotICAgICAgICA8L3NjcmlwdD4KLSAgICA8L2JvZHk+Ci08
L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmZjYzI2NS4uM2ZmM2NlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTYwOSw3ICs2MDksNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgZG9tL1F1YWxpZmllZE5hbWUuY3BwCiAgICAgZG9tL1JhbmdlLmNwcAogICAgIGRvbS9SYW5n
ZUV4Y2VwdGlvbi5jcHAKLSAgICBkb20vUmVnaW9uTm9kZUxpc3QuY3BwCiAgICAgZG9tL1JlZ2lz
dGVyZWRFdmVudExpc3RlbmVyLmNwcAogICAgIGRvbS9TY29wZWRFdmVudFF1ZXVlLmNwcAogICAg
IGRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRiZTBiYS4u
YTkzZWJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTAzLTEzICBNaWhuZWEg
T3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXU5hbWVk
Rmxvdzo6Z2V0UmVnaW9uc0J5Q29udGVudE5vZGUgc2hvdWxkIG5vdCByZXR1cm4gYSBsaXZlIE5v
ZGVMaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MTAyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
dmVydGluZyB0aGUgb3JpZ2luYWwgcGF0Y2ggYXMgd2UgbmVlZCBhIGJldHRlciBzb2x1dGlvbi4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3Qu
YW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRhOjppc0VtcHR5KToKKyAgICAgICAgKiBkb20v
Tm9kZS5oOgorICAgICAgICAoTm9kZSk6CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5oOgor
ICAgICAgICAoTm9kZUxpc3RzTm9kZURhdGEpOgorICAgICAgICAqIGRvbS9SZWdpb25Ob2RlTGlz
dC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogZG9tL1JlZ2lvbk5vZGVMaXN0Lmg6IFJlbW92ZWQu
CisgICAgICAgICogZG9tL1dlYktpdE5hbWVkRmxvdy5jcHA6CisgICAgICAgICogZG9tL1dlYktp
dE5hbWVkRmxvdy5oOgorICAgICAgICAoV2ViS2l0TmFtZWRGbG93KToKKyAgICAgICAgKiBkb20v
V2ViS2l0TmFtZWRGbG93LmlkbDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVh
ZC5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisgICAgICAgIChSZW5kZXJSZWdpb24pOgorCiAy
MDEyLTAzLTEzICBLb25yYWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+CiAKICAgICAgICAg
W0JsYWNrQmVycnldIFJlbW92ZSBzdWJsYXllcnMgYmVmb3JlIGNsYW1waW5nIGp1c3QgaW4gY2Fz
ZSB0aGUgbGF5ZXIgYWxyZWFkeSBleGlzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmlu
ZGV4IGZhMmQ2OTEuLjZiNDI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
MTgzOCw4ICsxODM4LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2VFeGNlcHRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmggXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaCBcCi0JU291cmNlL1dlYkNv
cmUvZG9tL1JlZ2lvbk5vZGVMaXN0LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lvbk5v
ZGVMaXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmlu
ZGV4IGU5M2NmYTguLjlhYTY5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTY5LDcgKzU2OSw2IEBAIFNP
VVJDRVMgKz0gXAogICAgIGRvbS9SYW5nZS5jcHAgXAogICAgIGRvbS9SYW5nZUV4Y2VwdGlvbi5j
cHAgXAogICAgIGRvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaCBcCi0gICAgZG9tL1JlZ2lvbk5v
ZGVMaXN0LmNwcCBcCiAgICAgZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmNwcCBcCiAgICAg
ZG9tL1Njb3BlZEV2ZW50UXVldWUuY3BwIFwKICAgICBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjRiNWYzMS4uNTY4YTY0NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtNTE3OCw4ICs1MTc4LDYgQEAKICAgICAgICAgICAgICdkb20vUmFuZ2Uu
Y3BwJywKICAgICAgICAgICAgICdkb20vUmFuZ2VFeGNlcHRpb24uY3BwJywKICAgICAgICAgICAg
ICdkb20vUmFuZ2VFeGNlcHRpb24uaCcsCi0gICAgICAgICAgICAnZG9tL1JlZ2lvbk5vZGVMaXN0
LmNwcCcsCi0gICAgICAgICAgICAnZG9tL1JlZ2lvbk5vZGVMaXN0LmgnLAogICAgICAgICAgICAg
J2RvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1JlZ2lzdGVy
ZWRFdmVudExpc3RlbmVyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1JlcXVlc3RBbmltYXRpb25G
cmFtZUNhbGxiYWNrLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCA2ZTM5ZWE1Li43YWYyMWI0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTE1NTAsMTQgKzUxNTUwLDYgQEAKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFJlZ2lvbk5v
ZGVMaXN0LmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXFJlZ2lvbk5vZGVMaXN0LmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAiCiAJ
CQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc5Nzc4NTMuLjc4MjEzYWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTI5ODYsOCArMjk4Niw2IEBACiAJCThBQTYxQ0ZGMTQ0RDU5NUIwMEYzNzM1MCAvKiBXZWJLaXRD
U1NSZWdpb25SdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDhBQTYxQ0ZEMTQ0RDU5NUIwMEYzNzM1MCAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmNw
cCAqLzsgfTsKIAkJOEFBNjFEMDAxNDRENTk1QjAwRjM3MzUwIC8qIFdlYktpdENTU1JlZ2lvblJ1
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBQTYx
Q0ZFMTQ0RDU5NUIwMEYzNzM1MCAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmggKi87IH07CiAJCThB
QjRCQzc3MTI2RkRCNzEwMERFQjcyNyAvKiBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNy
ZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEFCNEJDNzYxMjZGREI3MTAwREVCNzI3IC8qIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudElu
Y3JlbWVudGVyLmggKi87IH07Ci0JCThBQkFGQjlGMTRGNTEwNzUwMEE0OTg0QiAvKiBSZWdpb25O
b2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4QUJBRkI5RDE0RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3QuY3BwICovOyB9Owot
CQk4QUJBRkJBMDE0RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBQkFGQjlFMTRGNTEwNzUwMEE0
OTg0QiAvKiBSZWdpb25Ob2RlTGlzdC5oICovOyB9OwogCQk4QUQwQTU5NDE0Qzg4MzM2MDAwRDgz
QzUgLyogSlNXZWJLaXRDU1NSZWdpb25SdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBQ0MyNENEMTQ4RTI0QjIwMEVGQ0MwRCAvKiBKU1dlYktp
dENTU1JlZ2lvblJ1bGUuY3BwICovOyB9OwogCQk4QUQwQTU5NTE0Qzg4MzM2MDAwRDgzQzUgLyog
SlNXZWJLaXRDU1NSZWdpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4QUNDMjRDRTE0OEUyNEIyMDBFRkNDMEQgLyogSlNXZWJLaXRDU1NSZWdp
b25SdWxlLmggKi87IH07CiAJCThBRDBBNTk2MTRDODgzNTgwMDBEODNDNSAvKiBET01XZWJLaXRD
U1NSZWdpb25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4QUNDMjgxNzE0OEU0N0U3MDBFRkNDMEQgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZS5o
ICovOyB9OwpAQCAtOTkwNiw4ICs5OTA0LDYgQEAKIAkJOEFBNjFDRkQxNDRENTk1QjAwRjM3MzUw
IC8qIFdlYktpdENTU1JlZ2lvblJ1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCThBQTYxQ0ZFMTQ0RDU5NUIwMEYzNzM1MCAvKiBXZWJLaXRDU1NSZWdpb25SdWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdENTU1JlZ2lvblJ1bGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEFCNEJDNzYxMjZGREI3MTAwREVCNzI3IC8q
IElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThBQkFGQjlEMTRGNTEwNzUwMEE0OTg0
QiAvKiBSZWdpb25Ob2RlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZWdpb25Ob2RlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThB
QkFGQjlFMTRGNTEwNzUwMEE0OTg0QiAvKiBSZWdpb25Ob2RlTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZWdpb25Ob2RlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4QUNDMjRDRDE0OEUyNEIyMDBFRkNDMEQgLyogSlNXZWJLaXRDU1NSZWdpb25S
dWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0Q1NT
UmVnaW9uUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBQ0MyNENFMTQ4
RTI0QjIwMEVGQ0MwRCAvKiBKU1dlYktpdENTU1JlZ2lvblJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRDU1NSZWdpb25SdWxlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCThBQ0MyODE3MTQ4RTQ3RTcwMEVGQ0MwRCAvKiBET01XZWJLaXRDU1NS
ZWdpb25SdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdENT
U1JlZ2lvblJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMDIzLDggKzIx
MDE5LDYgQEAKIAkJCQlEMjNDQTU2QjBBQjBFQjhEMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24u
aCAqLywKIAkJCQlEMjNDQTU0ODBBQjBFOTgzMDA1MTA4QTUgLyogUmFuZ2VFeGNlcHRpb24uaWRs
ICovLAogCQkJCUE4NEQ4MjdCMTFEMzMzRUQwMDk3Mjk5MCAvKiBSYXdEYXRhRG9jdW1lbnRQYXJz
ZXIuaCAqLywKLQkJCQk4QUJBRkI5RDE0RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3Qu
Y3BwICovLAotCQkJCThBQkFGQjlFMTRGNTEwNzUwMEE0OTg0QiAvKiBSZWdpb25Ob2RlTGlzdC5o
ICovLAogCQkJCTg1MDMxQjM1MEE0NEVGQzcwMEY5OTJFMCAvKiBSZWdpc3RlcmVkRXZlbnRMaXN0
ZW5lci5jcHAgKi8sCiAJCQkJODUwMzFCMzYwQTQ0RUZDNzAwRjk5MkUwIC8qIFJlZ2lzdGVyZWRF
dmVudExpc3RlbmVyLmggKi8sCiAJCQkJQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRl
cmVkRG9jdW1lbnRNYXJrZXIuaCAqLywKQEAgLTIzNzIwLDcgKzIzNzE0LDYgQEAKIAkJCQlGRDMx
NjAzRTEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlck5vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNDM2OEU4MEMyMjZFMzIwMDVFRkI1RiAvKiBSZWN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0FCNDE4MjEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmggaW4gSGVhZGVycyAq
LywKLQkJCQk4QUJBRkJBMDE0RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1MDMxQjRDMEE0NEVGQzcwMEY5OTJFMCAvKiBSZWdpc3RlcmVkRXZl
bnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBMkQwRDAwNkMxRDAwRUY2RjI2
IC8qIFJlZ3VsYXJFeHByZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUwMTA5OUU2
NDkyMDA1NkU1ODEgLyogUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmggaW4gSGVhZGVycyAqLywK
QEAgLTI2ODYxLDcgKzI2ODU0LDYgQEAKIAkJCQlGRDMxNjAzQjEyQjAyNjc2MDBDMUEzNTkgLyog
UmVhbHRpbWVBbmFseXNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAzRDEyQjAyNjc2
MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNBQjQxODExM0UzNTZFODAwRDhBQUYzIC8qIFJlZ2lvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk4QUJBRkI5RjE0RjUxMDc1MDBBNDk4NEIgLyogUmVnaW9uTm9kZUxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODUwMzFCNEIwQTQ0RUZDNzAwRjk5MkUwIC8qIFJlZ2lzdGVyZWRFdmVudExp
c3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQzNEQTJDMEQwMDZDMUQwMEVGNkYyNiAv
KiBSZWd1bGFyRXhwcmVzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUwMDA5OUU2
NDkyMDA1NkU1ODEgLyogUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCmluZGV4IGI2NTJmNjMuLmY1YzIxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTEwMzksMTYgKzEwMzksNiBAQCB2b2lkIE5vZGU6OnJlbW92ZUNhY2hlZENsYXNzTm9kZUxp
c3QoQ2xhc3NOb2RlTGlzdCogbGlzdCwgY29uc3QgU3RyaW5nJiBjbGFzc05hbQogICAgIGRhdGEt
Pm1fY2xhc3NOb2RlTGlzdENhY2hlLnJlbW92ZShjbGFzc05hbWUpOwogfQogCi12b2lkIE5vZGU6
OnJlbW92ZUNhY2hlZFJlZ2lvbk5vZGVMaXN0KFJlZ2lvbk5vZGVMaXN0KiBsaXN0LCBjb25zdCBB
dG9taWNTdHJpbmcmIGZsb3dOYW1lKQotewotICAgIEFTU0VSVChyYXJlRGF0YSgpKTsKLSAgICBB
U1NFUlQocmFyZURhdGEoKS0+bm9kZUxpc3RzKCkpOwotCi0gICAgTm9kZUxpc3RzTm9kZURhdGEq
IGRhdGEgPSByYXJlRGF0YSgpLT5ub2RlTGlzdHMoKTsKLSAgICBBU1NFUlRfVU5VU0VEKGxpc3Qs
IGxpc3QgPT0gZGF0YS0+bV9yZWdpb25Ob2RlTGlzdENhY2hlLmdldChmbG93TmFtZSkpOwotICAg
IGRhdGEtPm1fcmVnaW9uTm9kZUxpc3RDYWNoZS5yZW1vdmUoZmxvd05hbWUpOwotfQotCiB2b2lk
IE5vZGU6OnJlbW92ZUNhY2hlZE5hbWVOb2RlTGlzdChOYW1lTm9kZUxpc3QqIGxpc3QsIGNvbnN0
IFN0cmluZyYgbm9kZU5hbWUpCiB7CiAgICAgQVNTRVJUKHJhcmVEYXRhKCkpOwpAQCAtMTY3OSwx
OCArMTY2OSw2IEBAIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IE5vZGU6OmdldEVsZW1lbnRzQnlDbGFz
c05hbWUoY29uc3QgU3RyaW5nJiBjbGFzc05hbWVzKQogICAgIHJldHVybiBsaXN0LnJlbGVhc2Uo
KTsKIH0KIAotUGFzc1JlZlB0cjxOb2RlTGlzdD4gTm9kZTo6Z2V0UmVnaW9uc0J5Q29udGVudE5v
ZGUoY29uc3QgQXRvbWljU3RyaW5nJiBmbG93TmFtZSkKLXsKLSAgICBwYWlyPE5vZGVMaXN0c05v
ZGVEYXRhOjpSZWdpb25Ob2RlTGlzdENhY2hlOjppdGVyYXRvciwgYm9vbD4gcmVzdWx0Ci0gICAg
PSBlbnN1cmVSYXJlRGF0YSgpLT5lbnN1cmVOb2RlTGlzdHModGhpcyktPm1fcmVnaW9uTm9kZUxp
c3RDYWNoZS5hZGQoZmxvd05hbWUsIDApOwotICAgIGlmICghcmVzdWx0LnNlY29uZCkKLSAgICAg
ICAgcmV0dXJuIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+KHJlc3VsdC5maXJzdC0+c2Vjb25kKTsKLSAg
ICAKLSAgICBSZWZQdHI8UmVnaW9uTm9kZUxpc3Q+IGxpc3QgPSBSZWdpb25Ob2RlTGlzdDo6Y3Jl
YXRlKHRoaXMsIGZsb3dOYW1lKTsKLSAgICByZXN1bHQuZmlyc3QtPnNlY29uZCA9IGxpc3QuZ2V0
KCk7Ci0gICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwotfQotCiBQYXNzUmVmUHRyPEVsZW1lbnQ+
IE5vZGU6OnF1ZXJ5U2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvcnMsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIGlmIChzZWxlY3RvcnMuaXNFbXB0eSgpKSB7CkBAIC0yMzM3LDkgKzIz
MTUsNiBAQCB2b2lkIE5vZGVMaXN0c05vZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzKCkKICAgICBU
YWdOb2RlTGlzdENhY2hlTlM6OmNvbnN0X2l0ZXJhdG9yIHRhZ0NhY2hlTlNFbmQgPSBtX3RhZ05v
ZGVMaXN0Q2FjaGVOUy5lbmQoKTsKICAgICBmb3IgKFRhZ05vZGVMaXN0Q2FjaGVOUzo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBtX3RhZ05vZGVMaXN0Q2FjaGVOUy5iZWdpbigpOyBpdCAhPSB0YWdDYWNo
ZU5TRW5kOyArK2l0KQogICAgICAgICBpdC0+c2Vjb25kLT5pbnZhbGlkYXRlQ2FjaGUoKTsKLSAg
ICBSZWdpb25Ob2RlTGlzdENhY2hlOjpjb25zdF9pdGVyYXRvciByZWdpb25MaXN0Q2FjaGVFbmQg
PSBtX3JlZ2lvbk5vZGVMaXN0Q2FjaGUuZW5kKCk7Ci0gICAgZm9yIChSZWdpb25Ob2RlTGlzdENh
Y2hlOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fcmVnaW9uTm9kZUxpc3RDYWNoZS5iZWdpbigpOyBp
dCAhPSByZWdpb25MaXN0Q2FjaGVFbmQ7ICsraXQpCi0gICAgICAgIGl0LT5zZWNvbmQtPmludmFs
aWRhdGVDYWNoZSgpOwogICAgIGludmFsaWRhdGVDYWNoZXNUaGF0RGVwZW5kT25BdHRyaWJ1dGVz
KCk7CiB9CiAKQEAgLTIzNzksOCArMjM1NCw2IEBAIGJvb2wgTm9kZUxpc3RzTm9kZURhdGE6Omlz
RW1wdHkoKSBjb25zdAogICAgIGlmICghbV9taWNyb0RhdGFJdGVtTGlzdENhY2hlLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCi0gICAgaWYgKCFtX3JlZ2lvbk5vZGVM
aXN0Q2FjaGUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobV9s
YWJlbHNOb2RlTGlzdENhY2hlKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRl
eCBiMmQ0MDNlLi4wZDFkNjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTc1LDcgKzc1LDYgQEAgY2xhc3Mg
UGxhdGZvcm1LZXlib2FyZEV2ZW50OwogY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50OwogY2xhc3Mg
UGxhdGZvcm1XaGVlbEV2ZW50OwogY2xhc3MgUXVhbGlmaWVkTmFtZTsKLWNsYXNzIFJlZ2lvbk5v
ZGVMaXN0OwogY2xhc3MgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXI7CiBjbGFzcyBSZW5kZXJBcmVu
YTsKIGNsYXNzIFJlbmRlckJveDsKQEAgLTUyOSw3ICs1MjgsNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdChEeW5hbWljU3VidHJlZU5vZGVMaXN0
Kik7CiAgICAgdm9pZCBpbnZhbGlkYXRlTm9kZUxpc3RzQ2FjaGVBZnRlckF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZvaWQgaW52YWxpZGF0ZU5vZGVMaXN0c0Nh
Y2hlQWZ0ZXJDaGlsZHJlbkNoYW5nZWQoKTsKLSAgICB2b2lkIGludmFsaWRhdGVSZWdpb25MaXN0
Q2FjaGUoKTsKICAgICB2b2lkIG5vdGlmeUxvY2FsTm9kZUxpc3RzTGFiZWxDaGFuZ2VkKCk7CiAg
ICAgdm9pZCByZW1vdmVDYWNoZWRDbGFzc05vZGVMaXN0KENsYXNzTm9kZUxpc3QqLCBjb25zdCBT
dHJpbmcmKTsKIApAQCAtNTM3LDcgKzUzNSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZUNh
Y2hlZFRhZ05vZGVMaXN0KFRhZ05vZGVMaXN0KiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAg
dm9pZCByZW1vdmVDYWNoZWRUYWdOb2RlTGlzdChUYWdOb2RlTGlzdCosIGNvbnN0IFF1YWxpZmll
ZE5hbWUmKTsKICAgICB2b2lkIHJlbW92ZUNhY2hlZExhYmVsc05vZGVMaXN0KER5bmFtaWNTdWJ0
cmVlTm9kZUxpc3QqKTsKLSAgICB2b2lkIHJlbW92ZUNhY2hlZFJlZ2lvbk5vZGVMaXN0KFJlZ2lv
bk5vZGVMaXN0KiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAKICAgICB2b2lkIHJlbW92ZUNhY2hl
ZENoaWxkTm9kZUxpc3QoKTsKIApAQCAtNTQ1LDcgKzU0Miw2IEBAIHB1YmxpYzoKICAgICBQYXNz
UmVmUHRyPE5vZGVMaXN0PiBnZXRFbGVtZW50c0J5VGFnTmFtZU5TKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSk7CiAgICAgUGFz
c1JlZlB0cjxOb2RlTGlzdD4gZ2V0RWxlbWVudHNCeU5hbWUoY29uc3QgU3RyaW5nJiBlbGVtZW50
TmFtZSk7CiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShj
b25zdCBTdHJpbmcmIGNsYXNzTmFtZXMpOwotICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGdldFJl
Z2lvbnNCeUNvbnRlbnROb2RlKGNvbnN0IEF0b21pY1N0cmluZyYgZmxvd05hbWUpOwogCiAgICAg
UGFzc1JlZlB0cjxFbGVtZW50PiBxdWVyeVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3Jz
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gcXVlcnlTZWxlY3Rv
ckFsbChjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSYXJlRGF0YS5oCmluZGV4IDk3YTBmYmEuLjAwNGY1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJhcmVEYXRhLmgKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJNdXRhdGlvbk9ic2VydmVy
UmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVkZSAiTmFtZU5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiUXVh
bGlmaWVkTmFtZS5oIgotI2luY2x1ZGUgIlJlZ2lvbk5vZGVMaXN0LmgiCiAjaW5jbHVkZSAiVGFn
Tm9kZUxpc3QuaCIKICNpbmNsdWRlICJXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTczLDkgKzcyLDYgQEAgcHVibGljOgogCiAgICAgTGFiZWxz
Tm9kZUxpc3QqIG1fbGFiZWxzTm9kZUxpc3RDYWNoZTsKIAotICAgIHR5cGVkZWYgSGFzaE1hcDxB
dG9taWNTdHJpbmcsIFJlZ2lvbk5vZGVMaXN0Kj4gUmVnaW9uTm9kZUxpc3RDYWNoZTsKLSAgICBS
ZWdpb25Ob2RlTGlzdENhY2hlIG1fcmVnaW9uTm9kZUxpc3RDYWNoZTsKLSAKICAgICBzdGF0aWMg
UGFzc093blB0cjxOb2RlTGlzdHNOb2RlRGF0YT4gY3JlYXRlKCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgTm9kZUxpc3RzTm9kZURhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1JlZ2lvbk5vZGVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SZWdp
b25Ob2RlTGlzdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxMTZkM2IuLjAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lvbk5vZGVMaXN0LmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDY4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgMjAxMiBBZG9iZSBTeXN0
ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKLSAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQg
SE9MREVSIEJFCi0gKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksCi0gKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
Ci0gKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YKLSAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlZ2lvbk5vZGVMaXN0LmgiCi0KLSNpbmNsdWRlICJE
b2N1bWVudC5oIgotI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKLSNpbmNsdWRlICJSZW5k
ZXJSZWdpb24uaCIKLSNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3cuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1SZWdpb25Ob2RlTGlzdDo6UmVnaW9uTm9kZUxpc3QoUGFzc1JlZlB0cjxOb2Rl
PiBub2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIGZsb3dOYW1lKQotOiBEeW5hbWljU3VidHJlZU5v
ZGVMaXN0KG5vZGUtPmRvY3VtZW50KCkpCi0sIG1fY29udGVudE5vZGUobm9kZSkKLSwgbV9mbG93
TmFtZShmbG93TmFtZSkKLXsKLX0KLQotUmVnaW9uTm9kZUxpc3Q6On5SZWdpb25Ob2RlTGlzdCgp
Ci17Ci0gICAgbV9jb250ZW50Tm9kZS0+cmVtb3ZlQ2FjaGVkUmVnaW9uTm9kZUxpc3QodGhpcywg
bV9mbG93TmFtZSk7Ci19IAotCi1ib29sIFJlZ2lvbk5vZGVMaXN0Ojpub2RlTWF0Y2hlcyhFbGVt
ZW50KiB0ZXN0Tm9kZSkgY29uc3QKLXsKLSAgICBpZiAoIW1fY29udGVudE5vZGUtPnJlbmRlcmVy
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghdGVzdE5vZGUtPnJlbmRlcmVy
KCkgfHwgIXRlc3ROb2RlLT5yZW5kZXJlcigpLT5pc1JlbmRlclJlZ2lvbigpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IHRvUmVuZGVyUmVnaW9u
KHRlc3ROb2RlLT5yZW5kZXJlcigpKTsKLSAgICBpZiAoIXJlZ2lvbi0+aXNWYWxpZCgpIHx8IChy
ZWdpb24tPnN0eWxlKCktPnJlZ2lvblRocmVhZCgpICE9IG1fZmxvd05hbWUpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gcmVnaW9uLT5mbG93VGhyZWFkKCktPm9iamVjdElu
Rmxvd1JlZ2lvbihtX2NvbnRlbnROb2RlLT5yZW5kZXJlcigpLCByZWdpb24pOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SZWdp
b25Ob2RlTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lvbk5vZGVMaXN0LmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxMzk1N2QuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1JlZ2lvbk5vZGVMaXN0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiAgICBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwot
ICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzCi0gKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQotICogTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAot
ICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgotICogVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCi0gKiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUmVnaW9uTm9kZUxpc3RfaAotI2Rl
ZmluZSBSZWdpb25Ob2RlTGlzdF9oCi0KLSNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKLSNp
bmNsdWRlICJOb2RlLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUmVnaW9uTm9k
ZUxpc3QgOiBwdWJsaWMgRHluYW1pY1N1YnRyZWVOb2RlTGlzdCB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8UmVnaW9uTm9kZUxpc3Q+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5v
ZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgZmxvd05hbWUpCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJlZ2lvbk5vZGVMaXN0KG5vZGUsIGZsb3dOYW1lKSk7Ci0gICAgfQotICAg
IAotICAgIHZpcnR1YWwgflJlZ2lvbk5vZGVMaXN0KCk7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0
dWFsIGJvb2wgbm9kZU1hdGNoZXMoRWxlbWVudCopIGNvbnN0OwotCi1wcml2YXRlOgotICAgIFJl
Z2lvbk5vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4sIGNvbnN0IEF0b21pY1N0cmluZyYgZmxvd05h
bWUpOwotICAgIAotICAgIFJlZlB0cjxOb2RlPiBtX2NvbnRlbnROb2RlOwotICAgIEF0b21pY1N0
cmluZyBtX2Zsb3dOYW1lOwotfTsKLSAgICAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKaW5kZXggYzM2Mjk5NC4u
MTI5OWI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5jcHAKQEAgLTMwLDgg
KzMwLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXROYW1lZEZsb3cu
aCIKIAotI2luY2x1ZGUgIk5vZGUuaCIKLSNpbmNsdWRlICJOb2RlTGlzdC5oIgogI2luY2x1ZGUg
IlJlbmRlckZsb3dUaHJlYWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTEsMTMgKzQ5
LDUgQEAgYm9vbCBXZWJLaXROYW1lZEZsb3c6Om92ZXJmbG93KCkgY29uc3QKICAgICByZXR1cm4g
bV9wYXJlbnRGbG93VGhyZWFkLT5vdmVyZmxvdygpOwogfQogCi1QYXNzUmVmUHRyPE5vZGVMaXN0
PiBXZWJLaXROYW1lZEZsb3c6OmdldFJlZ2lvbnNCeUNvbnRlbnROb2RlKE5vZGUqIGNvbnRlbnRO
b2RlKQotewotICAgIGlmICghY29udGVudE5vZGUpCi0gICAgICAgIHJldHVybiAwOwotICAgIG1f
cGFyZW50Rmxvd1RocmVhZC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7IAotICAgIHJldHVybiBjb250ZW50Tm9kZS0+Z2V0UmVnaW9uc0J5Q29udGVu
dE5vZGUobV9wYXJlbnRGbG93VGhyZWFkLT5mbG93VGhyZWFkKCkpOwotfQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1l
ZEZsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaAppbmRleCBiNmY1
OGMxLi5mNzZmMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRG
bG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYktpdE5hbWVkRmxvdy5oCkBAIC0zNSw4
ICszNSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTm9kZTsKLWNsYXNzIE5v
ZGVMaXN0OwogY2xhc3MgUmVuZGVyRmxvd1RocmVhZDsKIAogY2xhc3MgV2ViS2l0TmFtZWRGbG93
IDogcHVibGljIFJlZkNvdW50ZWQ8V2ViS2l0TmFtZWRGbG93PiB7CkBAIC00OSw3ICs0Nyw2IEBA
IHB1YmxpYzoKICAgICB+V2ViS2l0TmFtZWRGbG93KCk7CiAKICAgICBib29sIG92ZXJmbG93KCkg
Y29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gZ2V0UmVnaW9uc0J5Q29udGVudE5vZGUo
Tm9kZSopOwogCiBwcml2YXRlOgogICAgIFdlYktpdE5hbWVkRmxvdyhSZW5kZXJGbG93VGhyZWFk
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViS2l0TmFtZWRGbG93LmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsCmluZGV4IDEwYTRkOWUuLjI2
MWQ0NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJLaXROYW1lZEZsb3cuaWRsCkBAIC0zMiw3ICsz
Miw2IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKICAgICBd
IFdlYktpdE5hbWVkRmxvdyB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIG92
ZXJmbG93OwotICAgICAgICBOb2RlTGlzdCBnZXRSZWdpb25zQnlDb250ZW50Tm9kZShpbiBOb2Rl
IGNvbnRlbnROb2RlKTsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXggZTI0MWQ5Ni4uNjYxZDIzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtOTA1LDcwICs5MDUs
NSBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9u
cyhMYXlvdXRVbml0IG9sZENsaWVudEFmdGVyRQogICAgIG1fb3ZlcmZsb3cgPSBsYXN0UmVnICYm
IChsYXN0UmVnLT5yZWdpb25TdGF0ZSgpID09IFJlbmRlclJlZ2lvbjo6UmVnaW9uT3ZlcmZsb3cp
OwogfQogCi1ib29sIFJlbmRlckZsb3dUaHJlYWQ6OnJlZ2lvbkluUmFuZ2UoY29uc3QgUmVuZGVy
UmVnaW9uKiB0YXJnZXRSZWdpb24sIGNvbnN0IFJlbmRlclJlZ2lvbiogc3RhcnRSZWdpb24sIGNv
bnN0IFJlbmRlclJlZ2lvbiogZW5kUmVnaW9uKSBjb25zdAotewotICAgIEFTU0VSVCh0YXJnZXRS
ZWdpb24pOwotCi0gICAgZm9yIChSZW5kZXJSZWdpb25MaXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9
IG1fcmVnaW9uTGlzdC5maW5kKGNvbnN0X2Nhc3Q8UmVuZGVyUmVnaW9uKj4oc3RhcnRSZWdpb24p
KTsgaXQgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0KSB7Ci0gICAgICAgIGNvbnN0IFJlbmRl
clJlZ2lvbiogY3VyclJlZ2lvbiA9ICppdDsKLSAgICAgICAgaWYgKCFjdXJyUmVnaW9uLT5pc1Zh
bGlkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKHRhcmdldFJlZ2lvbiA9
PSBjdXJyUmVnaW9uKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChjdXJy
UmVnaW9uID09IGVuZFJlZ2lvbikKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQotYm9vbCBSZW5kZXJGbG93VGhyZWFkOjpvYmplY3RJbkZsb3dSZWdp
b24oY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJlbmRlclJlZ2lvbiogcmVnaW9u
KSBjb25zdAotewotICAgIEFTU0VSVChvYmplY3QpOwotICAgIEFTU0VSVChyZWdpb24pOwotCi0g
ICAgaWYgKCFvYmplY3QtPmluUmVuZGVyRmxvd1RocmVhZCgpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKG9iamVjdC0+ZW5jbG9zaW5nUmVuZGVyRmxvd1RocmVhZCgpICE9IHRoaXMp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIW1fcmVnaW9uTGlzdC5jb250YWlucyhj
b25zdF9jYXN0PFJlbmRlclJlZ2lvbio+KHJlZ2lvbikpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBSZW5kZXJCb3gqIGVuY2xvc2luZ0JveCA9IG9iamVjdC0+ZW5jbG9zaW5nQm94KCk7
Ci0gICAgUmVuZGVyUmVnaW9uKiBlbmNsb3NpbmdCb3hTdGFydFJlZ2lvbiA9IDA7Ci0gICAgUmVu
ZGVyUmVnaW9uKiBlbmNsb3NpbmdCb3hFbmRSZWdpb24gPSAwOwotICAgIGdldFJlZ2lvblJhbmdl
Rm9yQm94KGVuY2xvc2luZ0JveCwgZW5jbG9zaW5nQm94U3RhcnRSZWdpb24sIGVuY2xvc2luZ0Jv
eEVuZFJlZ2lvbik7Ci0gICAgaWYgKCFyZWdpb25JblJhbmdlKHJlZ2lvbiwgZW5jbG9zaW5nQm94
U3RhcnRSZWdpb24sIGVuY2xvc2luZ0JveEVuZFJlZ2lvbikpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGlmIChvYmplY3QtPmlzQm94KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgTGF5b3V0UmVjdCBvYmplY3RBQkJSZWN0ID0gb2JqZWN0LT5hYnNvbHV0ZUJvdW5kaW5nQm94
UmVjdCh0cnVlKTsKLSAgICBpZiAoIW9iamVjdEFCQlJlY3Qud2lkdGgoKSkKLSAgICAgICAgb2Jq
ZWN0QUJCUmVjdC5zZXRXaWR0aCgxKTsKLSAgICBpZiAoIW9iamVjdEFCQlJlY3QuaGVpZ2h0KCkp
Ci0gICAgICAgIG9iamVjdEFCQlJlY3Quc2V0SGVpZ2h0KDEpOyAKLSAgICBpZiAob2JqZWN0QUJC
UmVjdC5pbnRlcnNlY3RzKHJlZ2lvbi0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSkpKQot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmIChyZWdpb24gPT0gbGFzdFJlZ2lvbigpKSB7
Ci0gICAgICAgIC8vIElmIHRoZSBvYmplY3QgZG9lcyBub3QgaW50ZXJzZWN0IGFueSBvZiB0aGUg
ZW5jbG9zaW5nIGJveCByZWdpb25zCi0gICAgICAgIC8vIHRoZW4gdGhlIG9iamVjdCBpcyBpbiBs
YXN0IHJlZ2lvbi4KLSAgICAgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0Ojpjb25zdF9pdGVyYXRv
ciBpdCA9IG1fcmVnaW9uTGlzdC5maW5kKGVuY2xvc2luZ0JveFN0YXJ0UmVnaW9uKTsgaXQgIT0g
bV9yZWdpb25MaXN0LmVuZCgpOyArK2l0KSB7Ci0gICAgICAgICAgICBjb25zdCBSZW5kZXJSZWdp
b24qIGN1cnJSZWdpb24gPSAqaXQ7Ci0gICAgICAgICAgICBpZiAoIXJlZ2lvbi0+aXNWYWxpZCgp
KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKGN1cnJSZWdpb24g
PT0gcmVnaW9uKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgaWYgKG9iamVj
dEFCQlJlY3QuaW50ZXJzZWN0cyhjdXJyUmVnaW9uLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCh0
cnVlKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxvd1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJl
YWQuaAppbmRleCBiOTU4ZWIxLi44ZjRmYjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmgKQEAgLTEzNyw5ICsxMzcsNiBAQCBwdWJsaWM6CiAKICAgICBi
b29sIG92ZXJmbG93KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvdzsgfQogCi0gICAgLy8gQ2hl
Y2sgaWYgdGhlIG9iamVjdCBpcyBpbiByZWdpb24gYW5kIHRoZSByZWdpb24gaXMgcGFydCBvZiB0
aGlzIGZsb3cgdGhyZWFkLgotICAgIGJvb2wgb2JqZWN0SW5GbG93UmVnaW9uKGNvbnN0IFJlbmRl
ck9iamVjdCosIGNvbnN0IFJlbmRlclJlZ2lvbiopIGNvbnN0OwotCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJGbG93
VGhyZWFkIjsgfQogCkBAIC0xNTAsOCArMTQ3LDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hv
dWxkUmVwYWludChjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CiAKLSAgICBib29sIHJlZ2lvbklu
UmFuZ2UoY29uc3QgUmVuZGVyUmVnaW9uKiB0YXJnZXRSZWdpb24sIGNvbnN0IFJlbmRlclJlZ2lv
biogc3RhcnRSZWdpb24sIGNvbnN0IFJlbmRlclJlZ2lvbiogZW5kUmVnaW9uKSBjb25zdDsKLQog
ICAgIHR5cGVkZWYgTGlzdEhhc2hTZXQ8UmVuZGVyT2JqZWN0Kj4gRmxvd1RocmVhZENoaWxkTGlz
dDsKICAgICBGbG93VGhyZWFkQ2hpbGRMaXN0IG1fZmxvd1RocmVhZENoaWxkTGlzdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCmluZGV4IDcwZmEyM2IuLjE0M2VhY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKQEAgLTU2LDcgKzU2LDYg
QEAgcHVibGljOgogICAgIHZvaWQgYXR0YWNoUmVnaW9uKCk7CiAgICAgdm9pZCBkZXRhY2hSZWdp
b24oKTsKIAotICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQoKSBjb25zdCB7IHJldHVy
biBtX2Zsb3dUaHJlYWQ7IH0KICAgICBSZW5kZXJGbG93VGhyZWFkKiBwYXJlbnRGbG93VGhyZWFk
KCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnRGbG93VGhyZWFkOyB9CiAKICAgICAvLyBWYWxpZCBy
ZWdpb25zIGRvIG5vdCBjcmVhdGUgY2lyY3VsYXIgZGVwZW5kZW5jaWVzIHdpdGggb3RoZXIgZmxv
d3MuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>