<?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>99469</bug_id>
          
          <creation_ts>2012-10-16 08:45:27 -0700</creation_ts>
          <short_desc>Web Inspector: Get rid of (now empty) JavaScriptSource and StyleSource, rename all usages to UISourceCode.</short_desc>
          <delta_ts>2012-10-16 09:21:31 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>743176</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-16 08:45:27 -0700</bug_when>
    <thetext>Patch to follow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743197</commentid>
    <comment_count>1</comment_count>
      <attachid>168959</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-16 09:17:56 -0700</bug_when>
    <thetext>Created attachment 168959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743200</commentid>
    <comment_count>2</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-10-16 09:21:31 -0700</bug_when>
    <thetext>Committed r131462: &lt;http://trac.webkit.org/changeset/131462&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168959</attachid>
            <date>2012-10-16 09:17:56 -0700</date>
            <delta_ts>2012-10-16 09:18:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99469-20121016201644.patch</filename>
            <type>text/plain</type>
            <size>81222</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmMyNjAyYjI3NmU2MWZl
ZGE5NjgyNGFlMTAzZmVmYTc5YjNiN2YwYS4uN2RlOTBkNDBlZmExYTlhODk4OTE2NDU1ODNiNDUw
ZmQ1NTlmOGEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEyLTEwLTE2ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEdldCByaWQgb2YgKG5vdyBlbXB0eSkgSmF2YVNjcmlwdFNvdXJjZSBhbmQgU3R5bGVTb3Vy
Y2UsIHJlbmFtZSBhbGwgdXNhZ2VzIHRvIFVJU291cmNlQ29kZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NDY5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogaW5zcGVjdG9yL2NvbXBp
bGUtZnJvbnQtZW5kLnB5OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2lu
dE1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIucHJv
dG90eXBlLl91aVNvdXJjZUNvZGVBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludE1hbmFnZXIucHJvdG90eXBlLl91aVNvdXJjZUNvZGVSZW1vdmVkKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qczoKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2UuanM6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJhbWUuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLmNhbkVkaXRTb3VyY2UpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuX29uV29y
a2luZ0NvcHlDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNl
RnJhbWUucHJvdG90eXBlLl9vbldvcmtpbmdDb3B5Q29tbWl0dGVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLl9pbm5lclNldENvbnRlbnQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUu
cG9wdWxhdGVMaW5lR3V0dGVyQ29udGV4dE1lbnUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkph
dmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUucG9wdWxhdGVUZXh0QXJlYUNvbnRleHRNZW51
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBl
Lm9uVGV4dENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VG
cmFtZS5wcm90b3R5cGUuX3N1cHBvcnRzRW5hYmxlZEJyZWFrcG9pbnRzV2hpbGVFZGl0aW5nKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLl9y
ZXN0b3JlQnJlYWtwb2ludHNBZnRlckVkaXRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkph
dmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuX2JyZWFrcG9pbnRBZGRlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5fYnJlYWtwb2lu
dFJlbW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5w
cm90b3R5cGUub25UZXh0RWRpdG9yQ29udGVudExvYWRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZS5faGFuZGxlR3V0dGVyQ2xpY2spOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuX3Rv
Z2dsZUJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VG
cmFtZS5wcm90b3R5cGUuX3NldEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkph
dmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuX2NvbnRpbnVlVG9MaW5lKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBl
Ll9wYXJzZWRTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtVSVNv
dXJjZUNvZGVQcm92aWRlci5wcm90b3R5cGUuX3Jlc291cmNlQWRkZWQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX2dldE9yQ3JlYXRlVGVt
cG9yYXJ5VUlTb3VyY2VDb2RlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dFNuaXBwZXRNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9k
ZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUu
X2FkZFNjcmlwdFNuaXBwZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRN
b2RlbC5wcm90b3R5cGUuZXZhbHVhdGVTY3JpcHRTbmlwcGV0LmdldCB2YXIpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuZXZhbHVhdGVTY3JpcHRT
bmlwcGV0LmNvbXBpbGVDYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0U25p
cHBldE1vZGVsLnByb3RvdHlwZS5ldmFsdWF0ZVNjcmlwdFNuaXBwZXQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX2NyZWF0ZVVJU291cmNlQ29k
ZUZvclNjcmlwdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnBy
b3RvdHlwZS5fcmVtb3ZlQnJlYWtwb2ludHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dFNuaXBwZXRNb2RlbC5wcm90b3R5cGUuX3Byb2plY3RXaWxsUmVzZXQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNuaXBwZXRTY3JpcHRGaWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tbmlw
cGV0U2NyaXB0RmlsZS5wcm90b3R5cGUuX3dvcmtpbmdDb3B5Q29tbWl0dGVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TbmlwcGV0U2NyaXB0RmlsZS5wcm90b3R5cGUuX3dvcmtpbmdDb3B5Q2hh
bmdlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzTmF2aWdhdG9yLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTmF2aWdhdG9yVmlldy5wcm90b3R5cGUu
X2hhbmRsZUV2YWx1YXRlU25pcHBldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNO
YXZpZ2F0b3JWaWV3LnByb3RvdHlwZS5faGFuZGxlUmVtb3ZlU25pcHBldCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fY3JlYXRlU291cmNlRnJhbWUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3VpU291cmNlQ29kZUZvcm1hdHRl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fc2hvd091
dGxpbmVEaWFsb2cpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5
cGUuc2V0IF9maWxlUmVuYW1lZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZS5fc25pcHBldENyZWF0aW9uUmVxdWVzdGVkLmNhbGxiYWNrKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9zbmlwcGV0Q3JlYXRpb25SZXF1
ZXN0ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU25pcHBldEphdmFTY3JpcHRT
b3VyY2VGcmFtZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNv
dXJjZUZyYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJj
ZUZyYW1lLnByb3RvdHlwZS5fcnVuQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9TdHlsZVNoZWV0T3V0bGluZURpYWxvZy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5TdHlsZVNoZWV0T3V0bGluZURpYWxvZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5
bGVTaGVldE91dGxpbmVEaWFsb2cuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU3R5bGVT
aGVldE91dGxpbmVEaWFsb2cucHJvdG90eXBlLnJlcXVlc3RJdGVtcyk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9TdHlsZVNvdXJjZS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuaHRtbDoKKwogMjAxMi0xMC0xNSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlr
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFeHRyYWN0IGRvbWFpbiBz
cGVjaWZpYyBlZGl0aW5nIGhhbmRsaW5nIGxvZ2ljIGZyb20gVUlTb3VyY2VDb2RlIChzdGVwIDIp
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDFlYzdkZDhjZGZhMTQ2NDY5NTVkNjI0NDBhNmJjNzY2NzY3
Y2Y0ODkuLjFiNzdkNjczYTYyODdhODViMjFkNWYzMTE1NDIzYjczNTMwODA5YzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTY0MDAsNyArNjQwMCw2IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zy
b250LWVuZC9JbnNwZWN0b3JWaWV3LmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZh
U2NyaXB0Rm9ybWF0dGVyLmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0ph
dmFTY3JpcHRTb3VyY2UuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvanNk
aWZmbGliLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0tleWJvYXJkU2hv
cnRjdXQuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvTGlua2lmaWVyLmpz
JywKQEAgLTY0NTYsNyArNjQ1NSw2IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC9TcGVjdHJ1bS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TcGxpdFZp
ZXcuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU3RhdHVzQmFyQnV0dG9u
LmpzJywKLSAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlU291cmNlLmpzJywK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NvdXJjZU1hcHBpbmcuanMn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkUGFuZS5qcycsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9UZXN0Q29udHJvbGxlci5qcycsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGIxYzgzMGM3ZGI0
YzRkNTJjYTcyNWRhYjg5MWYwNzQ4MjA3NTVkMTAuLjRjZGI2ZDY5ZjM5NDc2OTcxNGQ3Mzk1Njcy
ZDdlZDIxNjE2OTU2YzggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC03NjQ5MCwxMCArNzY0OTAsNiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxKYXZh
U2NyaXB0U291cmNlLmpzIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJl
bGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxKYXZhU2NyaXB0U291cmNlRnJhbWUu
anMiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC03Njg4MiwxMCArNzY4NzgsNiBAQAogCQkJCQk+
CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9y
XGZyb250LWVuZFxTdHlsZVNvdXJjZS5qcyIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8Rmls
ZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3Rvclxmcm9udC1lbmRcU3VtbWFyeUJhci5q
cyIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9jb21waWxlLWZyb250LWVuZC5weSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21w
aWxlLWZyb250LWVuZC5weQppbmRleCBhN2I0MmYxMmU1ZmVhYWEyZGZjZjM4MDUwZmUyMjBmNjgy
NTE4MGEyLi4xNzEwYzNjNmE2ODFmMTE2NGNjMDc0ODUwYTgwNGQ2NmYwMTM4OWNiIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5CkBAIC04MSw3ICs4
MSw2IEBAIG1vZHVsZXMgPSBbCiAgICAgICAgICAgICAiSEFSRW50cnkuanMiLAogICAgICAgICAg
ICAgIkluZGV4ZWREQk1vZGVsLmpzIiwKICAgICAgICAgICAgICJJbnNwZWN0b3JCYWNrZW5kLmpz
IiwKLSAgICAgICAgICAgICJKYXZhU2NyaXB0U291cmNlLmpzIiwKICAgICAgICAgICAgICJMaW5r
aWZpZXIuanMiLAogICAgICAgICAgICAgIk5ldHdvcmtMb2cuanMiLAogICAgICAgICAgICAgIk5l
dHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcyIsCkBAIC05Myw3ICs5Miw2IEBAIG1vZHVsZXMg
PSBbCiAgICAgICAgICAgICAiU2NyaXB0U25pcHBldE1vZGVsLmpzIiwKICAgICAgICAgICAgICJT
bmlwcGV0U3RvcmFnZS5qcyIsCiAgICAgICAgICAgICAiU291cmNlTWFwcGluZy5qcyIsCi0gICAg
ICAgICAgICAiU3R5bGVTb3VyY2UuanMiLAogICAgICAgICAgICAgIlN0eWxlc1NvdXJjZU1hcHBp
bmcuanMiLAogICAgICAgICAgICAgIlRpbWVsaW5lTWFuYWdlci5qcyIsCiAgICAgICAgICAgICAi
UmVtb3RlT2JqZWN0LmpzIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCmluZGV4IDE2ZjM0ZTkxNDUwODE2MjRlMjUx
ZTVlMDM3ZTJmZWM1NGQyYzQ2MGEuLjFkOWQzZTI4NmViOGMwMWYwZDM3Njg2ZDQ3MzkzZGFkMzli
MDdmYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJl
YWtwb2ludE1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9CcmVha3BvaW50TWFuYWdlci5qcwpAQCAtOTIsNyArOTIsNyBAQCBXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludE1hbmFnZXIucHJvdG90eXBlID0gewogICAgIF91aVNvdXJjZUNvZGVBZGRlZDogZnVu
Y3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gLyoqIEB0eXBl
IHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSAqLyBldmVudC5kYXRhOwotICAgICAgICBpZiAo
dWlTb3VyY2VDb2RlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UpCisg
ICAgICAgIGlmICh1aVNvdXJjZUNvZGUuY29udGVudFR5cGUoKSA9PT0gV2ViSW5zcGVjdG9yLnJl
c291cmNlVHlwZXMuU2NyaXB0IHx8IHVpU291cmNlQ29kZS5jb250ZW50VHlwZSgpID09PSBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudCkKICAgICAgICAgICAgIHRoaXMucmVzdG9y
ZUJyZWFrcG9pbnRzKHVpU291cmNlQ29kZSk7CiAgICAgfSwKIApAQCAtMTAyLDcgKzEwMiw3IEBA
IFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAgICAgX3VpU291
cmNlQ29kZVJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIHVpU291
cmNlQ29kZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gKi8gZXZlbnQu
ZGF0YTsKLSAgICAgICAgaWYgKCEodWlTb3VyY2VDb2RlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9y
LkphdmFTY3JpcHRTb3VyY2UpKQorICAgICAgICBpZiAodWlTb3VyY2VDb2RlLmNvbnRlbnRUeXBl
KCkgIT09IFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCAmJiB1aVNvdXJjZUNvZGUu
Y29udGVudFR5cGUoKSAhPT0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuRG9jdW1lbnQpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlmICh1aVNvdXJjZUNvZGUuZGl2ZXJnZWRWZXJz
aW9uKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db21waWxlclNjcmlwdE1hcHBpbmcuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcwppbmRleCAwNWUy
YjczODdlZGQyZWFiZTAzNTMxYmFmMDg5MmE1MzA3MjI1NjllLi45YTBiMTAzNWYzNWM2NzU4Y2Yx
MWI2OGZkMTRkNjAwNGVmMDMyNDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbXBpbGVyU2NyaXB0TWFwcGluZy5qcwpAQCAtODQsNyAr
ODQsNyBAQCBXZWJJbnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsK
ICAgICAgKi8KICAgICBhZGRTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkKICAgICB7Ci0gICAgICAg
IHZhciBvcmlnaW5hbFVJU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNv
dXJjZShzY3JpcHQuc291cmNlVVJMLCBzY3JpcHQsIHRydWUpOworICAgICAgICB2YXIgb3JpZ2lu
YWxVSVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShzY3JpcHQuc291
cmNlVVJMLCBzY3JpcHQsIHRydWUpOwogICAgICAgICB0aGlzLl9vcmlnaW5hbFVJU291cmNlQ29k
ZUZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF0gPSBvcmlnaW5hbFVJU291cmNlQ29kZTsKICAg
ICAgICAgdGhpcy5fc2NyaXB0Rm9yT3JpZ2luYWxVSVNvdXJjZS5wdXQob3JpZ2luYWxVSVNvdXJj
ZUNvZGUsIHNjcmlwdCk7CiAgICAgICAgIHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkuYWRkVUlT
b3VyY2VDb2RlKG9yaWdpbmFsVUlTb3VyY2VDb2RlKTsKQEAgLTEwOSw3ICsxMDksNyBAQCBXZWJJ
bnNwZWN0b3IuQ29tcGlsZXJTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICBjb250ZW50UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXRpY0NvbnRlbnRQcm92
aWRlcihXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsIHNvdXJjZUNvbnRlbnQpOwog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGNvbnRlbnRQcm92aWRlciA9IG5ldyBX
ZWJJbnNwZWN0b3IuQ29tcGlsZXJTb3VyY2VNYXBwaW5nQ29udGVudFByb3ZpZGVyKHNvdXJjZVVS
TCk7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5KYXZh
U2NyaXB0U291cmNlKHNvdXJjZVVSTCwgY29udGVudFByb3ZpZGVyLCBmYWxzZSk7CisgICAgICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUoc291
cmNlVVJMLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKICAgICAgICAgICAgIHVpU291cmNlQ29k
ZS5zZXRTb3VyY2VNYXBwaW5nKHRoaXMpOwogICAgICAgICAgICAgdWlTb3VyY2VDb2RlLmlzQ29u
dGVudFNjcmlwdCA9IHNjcmlwdC5pc0NvbnRlbnRTY3JpcHQ7CiAgICAgICAgICAgICB0aGlzLl91
aVNvdXJjZUNvZGVCeVVSTFtzb3VyY2VVUkxdID0gdWlTb3VyY2VDb2RlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNWY5MThlMGVkZjA3ZTFiOWFiYWY1NGIyNmIz
M2YwZmNiM2E0NTY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZS5q
cworKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0vKioKLSAqIEBjb25zdHJ1Y3RvcgotICog
QGV4dGVuZHMge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9Ci0gKiBAcGFyYW0ge3N0cmluZ30g
dXJsCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJ9IGNvbnRlbnRQcm92
aWRlcgotICogQHBhcmFtIHtib29sZWFufSBpc0VkaXRhYmxlCi0gKi8KLVdlYkluc3BlY3Rvci5K
YXZhU2NyaXB0U291cmNlID0gZnVuY3Rpb24odXJsLCBjb250ZW50UHJvdmlkZXIsIGlzRWRpdGFi
bGUpCi17Ci0gICAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5jYWxsKHRoaXMsIHVybCwgY29u
dGVudFByb3ZpZGVyLCBpc0VkaXRhYmxlKTsKLX0KLQotV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRT
b3VyY2UucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZS5wcm90b3R5cGUKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJhbWUuanMKaW5kZXggOGE5Y2FjODE5ZGQ1
MjQ1ZmZmZTdhNzA2MzJhMzUxZTNjYjYzZDc2MS4uYjZhYjgyMTgyZTUyYjIzM2VjYWY5M2EwODFl
ZTc3OTAxNWIzOGUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9KYXZhU2NyaXB0U291cmNlRnJhbWUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJhbWUuanMKQEAgLTMyLDIwICszMiwyMCBA
QAogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1l
fQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsfSBzY3JpcHRzUGFuZWwKLSAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2V9IGphdmFTY3JpcHRTb3VyY2UK
KyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgKi8K
LVdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUgPSBmdW5jdGlvbihzY3JpcHRzUGFu
ZWwsIGphdmFTY3JpcHRTb3VyY2UpCitXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1l
ID0gZnVuY3Rpb24oc2NyaXB0c1BhbmVsLCB1aVNvdXJjZUNvZGUpCiB7CiAgICAgdGhpcy5fc2Ny
aXB0c1BhbmVsID0gc2NyaXB0c1BhbmVsOwogICAgIHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyID0g
V2ViSW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5hZ2VyOwotICAgIHRoaXMuX2phdmFTY3JpcHRTb3Vy
Y2UgPSBqYXZhU2NyaXB0U291cmNlOwotICAgIHRoaXMuX3NjcmlwdEZpbGUgPSB0aGlzLl9qYXZh
U2NyaXB0U291cmNlLnNjcmlwdEZpbGUoKTsKKyAgICB0aGlzLl91aVNvdXJjZUNvZGUgPSB1aVNv
dXJjZUNvZGU7CisgICAgdGhpcy5fc2NyaXB0RmlsZSA9IHRoaXMuX3VpU291cmNlQ29kZS5zY3Jp
cHRGaWxlKCk7CiAKLSAgICB2YXIgbG9jYXRpb25zID0gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIu
YnJlYWtwb2ludExvY2F0aW9uc0ZvclVJU291cmNlQ29kZSh0aGlzLl9qYXZhU2NyaXB0U291cmNl
KTsKKyAgICB2YXIgbG9jYXRpb25zID0gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2lu
dExvY2F0aW9uc0ZvclVJU291cmNlQ29kZSh0aGlzLl91aVNvdXJjZUNvZGUpOwogICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbG9jYXRpb25zLmxlbmd0aDsgKytpKQogICAgICAgICB0aGlzLl9icmVh
a3BvaW50QWRkZWQoe2RhdGE6bG9jYXRpb25zW2ldfSk7CiAKLSAgICBXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWUuY2FsbCh0aGlzLCBqYXZhU2NyaXB0U291cmNlKTsKKyAgICBXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWUuY2FsbCh0aGlzLCB1aVNvdXJjZUNvZGUpOwogCiAgICAgdGhpcy5fcG9wb3Zl
ckhlbHBlciA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0UG9wb3ZlckhlbHBlcih0aGlzLnRleHRF
ZGl0b3IuZWxlbWVudCwKICAgICAgICAgICAgIHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmluZCh0
aGlzKSwgdGhpcy5fcmVzb2x2ZU9iamVjdEZvclBvcG92ZXIuYmluZCh0aGlzKSwgdGhpcy5fb25I
aWRlUG9wb3Zlci5iaW5kKHRoaXMpLCB0cnVlKTsKQEAgLTU3LDEyICs1NywxMiBAQCBXZWJJbnNw
ZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lID0gZnVuY3Rpb24oc2NyaXB0c1BhbmVsLCBqYXZh
U2NyaXB0U291cmNlKQogICAgIHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLkV2ZW50cy5CcmVha3BvaW50QWRkZWQs
IHRoaXMuX2JyZWFrcG9pbnRBZGRlZCwgdGhpcyk7CiAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFn
ZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuRXZlbnRz
LkJyZWFrcG9pbnRSZW1vdmVkLCB0aGlzLl9icmVha3BvaW50UmVtb3ZlZCwgdGhpcyk7CiAKLSAg
ICB0aGlzLl9qYXZhU2NyaXB0U291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZS5FdmVudHMuRm9ybWF0dGVkQ2hhbmdlZCwgdGhpcy5fb25Gb3JtYXR0ZWRDaGFu
Z2VkLCB0aGlzKTsKLSAgICB0aGlzLl9qYXZhU2NyaXB0U291cmNlLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMuV29ya2luZ0NvcHlDaGFuZ2VkLCB0aGlz
Ll9vbldvcmtpbmdDb3B5Q2hhbmdlZCwgdGhpcyk7Ci0gICAgdGhpcy5famF2YVNjcmlwdFNvdXJj
ZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLldvcmtp
bmdDb3B5Q29tbWl0dGVkLCB0aGlzLl9vbldvcmtpbmdDb3B5Q29tbWl0dGVkLCB0aGlzKTsKLSAg
ICB0aGlzLl9qYXZhU2NyaXB0U291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZS5FdmVudHMuQ29uc29sZU1lc3NhZ2VBZGRlZCwgdGhpcy5fY29uc29sZU1lc3Nh
Z2VBZGRlZCwgdGhpcyk7Ci0gICAgdGhpcy5famF2YVNjcmlwdFNvdXJjZS5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLkNvbnNvbGVNZXNzYWdlUmVtb3Zl
ZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VSZW1vdmVkLCB0aGlzKTsKLSAgICB0aGlzLl9qYXZhU2Ny
aXB0U291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVu
dHMuQ29uc29sZU1lc3NhZ2VzQ2xlYXJlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VzQ2xlYXJlZCwg
dGhpcyk7CisgICAgdGhpcy5fdWlTb3VyY2VDb2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZS5FdmVudHMuRm9ybWF0dGVkQ2hhbmdlZCwgdGhpcy5fb25Gb3JtYXR0
ZWRDaGFuZ2VkLCB0aGlzKTsKKyAgICB0aGlzLl91aVNvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50cy5Xb3JraW5nQ29weUNoYW5nZWQsIHRo
aXMuX29uV29ya2luZ0NvcHlDaGFuZ2VkLCB0aGlzKTsKKyAgICB0aGlzLl91aVNvdXJjZUNvZGUu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50cy5Xb3JraW5n
Q29weUNvbW1pdHRlZCwgdGhpcy5fb25Xb3JraW5nQ29weUNvbW1pdHRlZCwgdGhpcyk7CisgICAg
dGhpcy5fdWlTb3VyY2VDb2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZS5FdmVudHMuQ29uc29sZU1lc3NhZ2VBZGRlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VBZGRl
ZCwgdGhpcyk7CisgICAgdGhpcy5fdWlTb3VyY2VDb2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMuQ29uc29sZU1lc3NhZ2VSZW1vdmVkLCB0aGlzLl9j
b25zb2xlTWVzc2FnZVJlbW92ZWQsIHRoaXMpOworICAgIHRoaXMuX3VpU291cmNlQ29kZS5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLkNvbnNvbGVNZXNz
YWdlc0NsZWFyZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdlc0NsZWFyZWQsIHRoaXMpOwogCiAgICAg
aWYgKHRoaXMuX3NjcmlwdEZpbGUpIHsKICAgICAgICAgdGhpcy5fc2NyaXB0RmlsZS5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5TY3JpcHRGaWxlLkV2ZW50cy5XaWxsTWVyZ2VUb1ZNLCB0
aGlzLl93aWxsTWVyZ2VUb1ZNLCB0aGlzKTsKQEAgLTkwLDcgKzkwLDcgQEAgV2ViSW5zcGVjdG9y
LkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgY2FuRWRp
dFNvdXJjZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2phdmFTY3Jp
cHRTb3VyY2UuaXNFZGl0YWJsZSgpOworICAgICAgICByZXR1cm4gdGhpcy5fdWlTb3VyY2VDb2Rl
LmlzRWRpdGFibGUoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC05OCwxMSArOTgsMTEgQEAgV2Vi
SW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAg
ICAgY29tbWl0RWRpdGluZzogZnVuY3Rpb24odGV4dCkKICAgICB7Ci0gICAgICAgIGlmICghdGhp
cy5famF2YVNjcmlwdFNvdXJjZS5pc0RpcnR5KCkpCisgICAgICAgIGlmICghdGhpcy5fdWlTb3Vy
Y2VDb2RlLmlzRGlydHkoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLl9p
c0NvbW1pdHRpbmdFZGl0aW5nID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5famF2YVNjcmlwdFNvdXJj
ZS5jb21taXRXb3JraW5nQ29weShmdW5jdGlvbigpIHsgfSk7CisgICAgICAgIHRoaXMuX3VpU291
cmNlQ29kZS5jb21taXRXb3JraW5nQ29weShmdW5jdGlvbigpIHsgfSk7CiAgICAgICAgIGRlbGV0
ZSB0aGlzLl9pc0NvbW1pdHRpbmdFZGl0aW5nOwogICAgIH0sCiAKQEAgLTEyMCw3ICsxMjAsNyBA
QCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAg
Ki8KICAgICBfb25Xb3JraW5nQ29weUNoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAg
ICAgICAgdGhpcy5faW5uZXJTZXRDb250ZW50KHRoaXMuX2phdmFTY3JpcHRTb3VyY2Uud29ya2lu
Z0NvcHkoKSk7CisgICAgICAgIHRoaXMuX2lubmVyU2V0Q29udGVudCh0aGlzLl91aVNvdXJjZUNv
ZGUud29ya2luZ0NvcHkoKSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTI4LDcgKzEyOCw3IEBA
IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAq
LwogICAgIF9vbldvcmtpbmdDb3B5Q29tbWl0dGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0g
ICAgICAgIHRoaXMuX2lubmVyU2V0Q29udGVudCh0aGlzLl9qYXZhU2NyaXB0U291cmNlLndvcmtp
bmdDb3B5KCkpOworICAgICAgICB0aGlzLl9pbm5lclNldENvbnRlbnQodGhpcy5fdWlTb3VyY2VD
b2RlLndvcmtpbmdDb3B5KCkpOwogICAgIH0sCiAKICAgICBfaW5uZXJTZXRDb250ZW50OiBmdW5j
dGlvbihjb250ZW50KQpAQCAtMTM2LDEzICsxMzYsMTMgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3Jp
cHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh0aGlzLl9pc1NldHRpbmdX
b3JraW5nQ29weSB8fCB0aGlzLl9pc0NvbW1pdHRpbmdFZGl0aW5nKQogICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgIGlmICh0aGlzLl9qYXZhU2NyaXB0U291cmNlLnRvZ2dsaW5nRm9ybWF0
dGVyKCkpCi0gICAgICAgICAgICB0aGlzLnNldENvbnRlbnQoY29udGVudCwgZmFsc2UsIHRoaXMu
X2phdmFTY3JpcHRTb3VyY2UubWltZVR5cGUoKSk7CisgICAgICAgIGlmICh0aGlzLl91aVNvdXJj
ZUNvZGUudG9nZ2xpbmdGb3JtYXR0ZXIoKSkKKyAgICAgICAgICAgIHRoaXMuc2V0Q29udGVudChj
b250ZW50LCBmYWxzZSwgdGhpcy5fdWlTb3VyY2VDb2RlLm1pbWVUeXBlKCkpOwogICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIHZhciBicmVha3BvaW50TG9jYXRpb25zID0gdGhpcy5fYnJlYWtw
b2ludE1hbmFnZXIuYnJlYWtwb2ludExvY2F0aW9uc0ZvclVJU291cmNlQ29kZSh0aGlzLl9qYXZh
U2NyaXB0U291cmNlKTsKKyAgICAgICAgICAgIHZhciBicmVha3BvaW50TG9jYXRpb25zID0gdGhp
cy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2ludExvY2F0aW9uc0ZvclVJU291cmNlQ29kZSh0
aGlzLl91aVNvdXJjZUNvZGUpOwogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmVh
a3BvaW50TG9jYXRpb25zLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgICAgIGJyZWFrcG9pbnRM
b2NhdGlvbnNbaV0uYnJlYWtwb2ludC5yZW1vdmUoKTsKLSAgICAgICAgICAgIHRoaXMuc2V0Q29u
dGVudChjb250ZW50LCBmYWxzZSwgdGhpcy5famF2YVNjcmlwdFNvdXJjZS5taW1lVHlwZSgpKTsK
KyAgICAgICAgICAgIHRoaXMuc2V0Q29udGVudChjb250ZW50LCBmYWxzZSwgdGhpcy5fdWlTb3Vy
Y2VDb2RlLm1pbWVUeXBlKCkpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMTUwLDcgKzE1MCw3
IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAg
IHsKICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmco
V2ViSW5zcGVjdG9yLnVzZUxvd2VyQ2FzZU1lbnVUaXRsZXMoKSA/ICJDb250aW51ZSB0byBoZXJl
IiA6ICJDb250aW51ZSB0byBIZXJlIiksIHRoaXMuX2NvbnRpbnVlVG9MaW5lLmJpbmQodGhpcywg
bGluZU51bWJlcikpOwogCi0gICAgICAgIHZhciBicmVha3BvaW50ID0gdGhpcy5fYnJlYWtwb2lu
dE1hbmFnZXIuZmluZEJyZWFrcG9pbnQodGhpcy5famF2YVNjcmlwdFNvdXJjZSwgbGluZU51bWJl
cik7CisgICAgICAgIHZhciBicmVha3BvaW50ID0gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuZmlu
ZEJyZWFrcG9pbnQodGhpcy5fdWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyKTsKICAgICAgICAgaWYg
KCFicmVha3BvaW50KSB7CiAgICAgICAgICAgICAvLyBUaGlzIHJvdyBkb2Vzbid0IGhhdmUgYSBi
cmVha3BvaW50OiBXZSB3YW50IHRvIHNob3cgQWRkIEJyZWFrcG9pbnQgYW5kIEFkZCBhbmQgRWRp
dCBCcmVha3BvaW50LgogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoV2ViSW5zcGVjdG9yLnVzZUxvd2VyQ2FzZU1lbnVUaXRsZXMoKSA/ICJB
ZGQgYnJlYWtwb2ludCIgOiAiQWRkIEJyZWFrcG9pbnQiKSwgdGhpcy5fc2V0QnJlYWtwb2ludC5i
aW5kKHRoaXMsIGxpbmVOdW1iZXIsICIiLCB0cnVlKSk7CkBAIC0xNzcsMTQgKzE3NywxNCBAQCBX
ZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oZXZhbHVhdGVMYWJlbCwgV2ViSW5zcGVjdG9yLmV2
YWx1YXRlSW5Db25zb2xlLmJpbmQoV2ViSW5zcGVjdG9yLCBzZWxlY3Rpb24udG9TdHJpbmcoKSkp
OwogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CiAgICAgICAgIH0K
LSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kQXBwbGljYWJsZUl0ZW1zKHRoaXMuX2phdmFTY3Jp
cHRTb3VyY2UpOworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRBcHBsaWNhYmxlSXRlbXModGhp
cy5fdWlTb3VyY2VDb2RlKTsKICAgICB9LAogCiAgICAgb25UZXh0Q2hhbmdlZDogZnVuY3Rpb24o
b2xkUmFuZ2UsIG5ld1JhbmdlKQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLnByb3RvdHlwZS5vblRleHRDaGFuZ2VkLmNhbGwodGhpcywgb2xkUmFuZ2UsIG5ld1Jhbmdl
KTsKICAgICAgICAgdGhpcy5faXNTZXR0aW5nV29ya2luZ0NvcHkgPSB0cnVlOwotICAgICAgICB0
aGlzLl9qYXZhU2NyaXB0U291cmNlLnNldFdvcmtpbmdDb3B5KHRoaXMuX3RleHRFZGl0b3IudGV4
dCgpKTsKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlLnNldFdvcmtpbmdDb3B5KHRoaXMuX3Rl
eHRFZGl0b3IudGV4dCgpKTsKICAgICAgICAgZGVsZXRlIHRoaXMuX2lzU2V0dGluZ1dvcmtpbmdD
b3B5OwogICAgIH0sCiAKQEAgLTIzMSw3ICsyMzEsNyBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKIAogICAgIF9zdXBwb3J0c0VuYWJsZWRCcmVha3Bv
aW50c1doaWxlRWRpdGluZzogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
X2phdmFTY3JpcHRTb3VyY2UuaXNTbmlwcGV0OworICAgICAgICByZXR1cm4gdGhpcy5fdWlTb3Vy
Y2VDb2RlLmlzU25pcHBldDsKICAgICB9LAogCiAgICAgX3Jlc3RvcmVCcmVha3BvaW50c0FmdGVy
RWRpdGluZzogZnVuY3Rpb24oKQpAQCAtMjQ3LDcgKzI0Nyw3IEBAIFdlYkluc3BlY3Rvci5KYXZh
U2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICB9CiAKICAgICAgICAgLy8g
UmVtb3ZlIGFsbCBicmVha3BvaW50cy4KLSAgICAgICAgdmFyIGJyZWFrcG9pbnRMb2NhdGlvbnMg
PSB0aGlzLl9icmVha3BvaW50TWFuYWdlci5icmVha3BvaW50TG9jYXRpb25zRm9yVUlTb3VyY2VD
b2RlKHRoaXMuX2phdmFTY3JpcHRTb3VyY2UpOworICAgICAgICB2YXIgYnJlYWtwb2ludExvY2F0
aW9ucyA9IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRMb2NhdGlvbnNGb3JVSVNv
dXJjZUNvZGUodGhpcy5fdWlTb3VyY2VDb2RlKTsKICAgICAgICAgdmFyIGxpbmVOdW1iZXJzID0g
e307CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnJlYWtwb2ludExvY2F0aW9ucy5sZW5n
dGg7ICsraSkgewogICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBicmVha3BvaW50TG9jYXRp
b25zW2ldLmJyZWFrcG9pbnQ7CkBAIC01MTIsNyArNTEyLDcgQEAgV2ViSW5zcGVjdG9yLkphdmFT
Y3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgdWlMb2Nh
dGlvbiA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlVJTG9jYXRpb259ICovIGV2ZW50LmRhdGEu
dWlMb2NhdGlvbjsKIAotICAgICAgICBpZiAodWlMb2NhdGlvbi51aVNvdXJjZUNvZGUgIT09IHRo
aXMuX2phdmFTY3JpcHRTb3VyY2UpCisgICAgICAgIGlmICh1aUxvY2F0aW9uLnVpU291cmNlQ29k
ZSAhPT0gdGhpcy5fdWlTb3VyY2VDb2RlKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IHZhciBicmVha3BvaW50ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFn
ZXIuQnJlYWtwb2ludH0gKi8gZXZlbnQuZGF0YS5icmVha3BvaW50OwpAQCAtNTIzLDExICs1MjMs
MTEgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAg
ICAgX2JyZWFrcG9pbnRSZW1vdmVkOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHZh
ciB1aUxvY2F0aW9uID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbn0gKi8gZXZl
bnQuZGF0YS51aUxvY2F0aW9uOwotICAgICAgICBpZiAodWlMb2NhdGlvbi51aVNvdXJjZUNvZGUg
IT09IHRoaXMuX2phdmFTY3JpcHRTb3VyY2UpCisgICAgICAgIGlmICh1aUxvY2F0aW9uLnVpU291
cmNlQ29kZSAhPT0gdGhpcy5fdWlTb3VyY2VDb2RlKQogICAgICAgICAgICAgcmV0dXJuOwogCiAg
ICAgICAgIHZhciBicmVha3BvaW50ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dE1hbmFnZXIuQnJlYWtwb2ludH0gKi8gZXZlbnQuZGF0YS5icmVha3BvaW50OwotICAgICAgICB2
YXIgcmVtYWluaW5nQnJlYWtwb2ludCA9IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmZpbmRCcmVh
a3BvaW50KHRoaXMuX2phdmFTY3JpcHRTb3VyY2UsIHVpTG9jYXRpb24ubGluZU51bWJlcik7Cisg
ICAgICAgIHZhciByZW1haW5pbmdCcmVha3BvaW50ID0gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIu
ZmluZEJyZWFrcG9pbnQodGhpcy5fdWlTb3VyY2VDb2RlLCB1aUxvY2F0aW9uLmxpbmVOdW1iZXIp
OwogICAgICAgICBpZiAoIXJlbWFpbmluZ0JyZWFrcG9pbnQgJiYgdGhpcy5sb2FkZWQpCiAgICAg
ICAgICAgICB0aGlzLl9yZW1vdmVCcmVha3BvaW50RGVjb3JhdGlvbih1aUxvY2F0aW9uLmxpbmVO
dW1iZXIpOwogICAgIH0sCkBAIC01NTYsMTMgKzU1NiwxMyBAQCBXZWJJbnNwZWN0b3IuSmF2YVNj
cmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9l
eGVjdXRpb25MaW5lTnVtYmVyID09PSAibnVtYmVyIikKICAgICAgICAgICAgIHRoaXMuc2V0RXhl
Y3V0aW9uTGluZSh0aGlzLl9leGVjdXRpb25MaW5lTnVtYmVyKTsKIAotICAgICAgICB2YXIgYnJl
YWtwb2ludExvY2F0aW9ucyA9IHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRMb2Nh
dGlvbnNGb3JVSVNvdXJjZUNvZGUodGhpcy5famF2YVNjcmlwdFNvdXJjZSk7CisgICAgICAgIHZh
ciBicmVha3BvaW50TG9jYXRpb25zID0gdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2lu
dExvY2F0aW9uc0ZvclVJU291cmNlQ29kZSh0aGlzLl91aVNvdXJjZUNvZGUpOwogICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGJyZWFrcG9pbnRMb2NhdGlvbnMubGVuZ3RoOyArK2kpIHsKICAg
ICAgICAgICAgIHZhciBicmVha3BvaW50ID0gYnJlYWtwb2ludExvY2F0aW9uc1tpXS5icmVha3Bv
aW50OwogICAgICAgICAgICAgdGhpcy5fYWRkQnJlYWtwb2ludERlY29yYXRpb24oYnJlYWtwb2lu
dExvY2F0aW9uc1tpXS51aUxvY2F0aW9uLmxpbmVOdW1iZXIsIGJyZWFrcG9pbnQuY29uZGl0aW9u
KCksIGJyZWFrcG9pbnQuZW5hYmxlZCgpLCBmYWxzZSk7CiAgICAgICAgIH0KIAotICAgICAgICB2
YXIgbWVzc2FnZXMgPSB0aGlzLl9qYXZhU2NyaXB0U291cmNlLmNvbnNvbGVNZXNzYWdlcygpOwor
ICAgICAgICB2YXIgbWVzc2FnZXMgPSB0aGlzLl91aVNvdXJjZUNvZGUuY29uc29sZU1lc3NhZ2Vz
KCk7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpIHsK
ICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gbWVzc2FnZXNbaV07CiAgICAgICAgICAgICB0aGlz
LmFkZE1lc3NhZ2VUb1NvdXJjZShtZXNzYWdlLmxpbmVOdW1iZXIsIG1lc3NhZ2Uub3JpZ2luYWxN
ZXNzYWdlKTsKQEAgLTU3NCw3ICs1NzQsNyBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJj
ZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfaGFuZGxlR3V0dGVyQ2xpY2s6IGZ1
bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2phdmFTY3JpcHRTb3VyY2Uu
aXNEaXJ0eSgpICYmICF0aGlzLl9zdXBwb3J0c0VuYWJsZWRCcmVha3BvaW50c1doaWxlRWRpdGlu
ZygpKQorICAgICAgICBpZiAodGhpcy5fdWlTb3VyY2VDb2RlLmlzRGlydHkoKSAmJiAhdGhpcy5f
c3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKSkKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICB2YXIgbGluZU51bWJlciA9IGV2ZW50LmRhdGEubGluZU51bWJlcjsK
QEAgLTU5Myw3ICs1OTMsNyBAQCBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnBy
b3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfdG9nZ2xlQnJlYWtwb2ludDogZnVuY3Rpb24obGlu
ZU51bWJlciwgb25seURpc2FibGUpCiAgICAgewotICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHRo
aXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmZpbmRCcmVha3BvaW50KHRoaXMuX2phdmFTY3JpcHRTb3Vy
Y2UsIGxpbmVOdW1iZXIpOworICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHRoaXMuX2JyZWFrcG9p
bnRNYW5hZ2VyLmZpbmRCcmVha3BvaW50KHRoaXMuX3VpU291cmNlQ29kZSwgbGluZU51bWJlcik7
CiAgICAgICAgIGlmIChicmVha3BvaW50KSB7CiAgICAgICAgICAgICBpZiAob25seURpc2FibGUp
CiAgICAgICAgICAgICAgICAgYnJlYWtwb2ludC5zZXRFbmFibGVkKCFicmVha3BvaW50LmVuYWJs
ZWQoKSk7CkBAIC02MTgsNyArNjE4LDcgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VG
cmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX3NldEJyZWFrcG9pbnQ6IGZ1bmN0aW9u
KGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCkKICAgICB7Ci0gICAgICAgIHRoaXMuX2Jy
ZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQodGhpcy5famF2YVNjcmlwdFNvdXJjZSwgbGlu
ZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKTsKKyAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1h
bmFnZXIuc2V0QnJlYWtwb2ludCh0aGlzLl91aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNvbmRp
dGlvbiwgZW5hYmxlZCk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtNjI2LDcgKzYyNiw3IEBAIFdl
Ykluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAqLwog
ICAgIF9jb250aW51ZVRvTGluZTogZnVuY3Rpb24obGluZU51bWJlcikKICAgICB7Ci0gICAgICAg
IHZhciByYXdMb2NhdGlvbiA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwu
TG9jYXRpb259ICovIHRoaXMuX2phdmFTY3JpcHRTb3VyY2UudWlMb2NhdGlvblRvUmF3TG9jYXRp
b24obGluZU51bWJlciwgMCk7CisgICAgICAgIHZhciByYXdMb2NhdGlvbiA9IC8qKiBAdHlwZSB7
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuTG9jYXRpb259ICovIHRoaXMuX3VpU291cmNlQ29k
ZS51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbihsaW5lTnVtYmVyLCAwKTsKICAgICAgICAgV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTW9kZWwuY29udGludWVUb0xvY2F0aW9uKHJhd0xvY2F0aW9uKTsKICAg
ICB9LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05l
dHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzCmluZGV4IDQ2OTBjOWJjZDY2
Y2ExZGRkMmUzODg3Njg4YjExM2VhODRmODljMzAuLmMzMzAwYWEwZjY1NmEzNDk3N2ZlZjZiNzc1
ZDdhYjQwZjI0ZmYwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLmpzCkBAIC05
NSw3ICs5NSw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJv
dG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fbGFzdER5bmFtaWNBbm9ueW1vdXNTY3JpcHRJ
bmRleEZvclVSTFt1cmxdID0gZHluYW1pY0Fub255bW91c1NjcmlwdEluZGV4OwogICAgICAgICAg
ICAgdXJsICs9ICIgKCIgKyBkeW5hbWljQW5vbnltb3VzU2NyaXB0SW5kZXggKyAiKSI7CiAgICAg
ICAgIH0KLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNj
cmlwdFNvdXJjZSh1cmwsIHNjcmlwdCwgdHJ1ZSk7CisgICAgICAgIHZhciB1aVNvdXJjZUNvZGUg
PSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh1cmwsIHNjcmlwdCwgdHJ1ZSk7CiAgICAg
ICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclJlc291cmNlW3NjcmlwdC5zb3VyY2VVUkxdID0gdWlT
b3VyY2VDb2RlOwogICAgICAgICB0aGlzLl93b3Jrc3BhY2UucHJvamVjdCgpLmFkZFVJU291cmNl
Q29kZSh1aVNvdXJjZUNvZGUpOwogICAgIH0sCkBAIC0xMTEsMTMgKzExMSwxMyBAQCBXZWJJbnNw
ZWN0b3IuTmV0d29ya1VJU291cmNlQ29kZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dmFyIHVpU291cmNlQ29kZTsKICAgICAgICAgc3dpdGNoIChyZXNvdXJjZS50eXBlKSB7CiAgICAg
ICAgIGNhc2UgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU3R5bGVzaGVldDoKLSAgICAgICAg
ICAgIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UocmVzb3VyY2Up
OworICAgICAgICAgICAgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGUocmVzb3VyY2UudXJsLCByZXNvdXJjZSwgdHJ1ZSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVudDoKLSAgICAgICAg
ICAgIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZShyZXNv
dXJjZS51cmwsIHJlc291cmNlLCBmYWxzZSk7CisgICAgICAgICAgICB1aVNvdXJjZUNvZGUgPSBu
ZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShyZXNvdXJjZS51cmwsIHJlc291cmNlLCBmYWxz
ZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VUeXBlcy5TY3JpcHQ6Ci0gICAgICAgICAgICB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVj
dG9yLkphdmFTY3JpcHRTb3VyY2UocmVzb3VyY2UudXJsLCByZXNvdXJjZSwgdHJ1ZSk7CisgICAg
ICAgICAgICB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZShyZXNv
dXJjZS51cmwsIHJlc291cmNlLCB0cnVlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGlmICh1aVNvdXJjZUNvZGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VTY3JpcHRNYXBwaW5nLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKaW5kZXgg
ZjcxZmMyNmNiM2ZiOWIwNjIyZWZkNjk4YjQ5YWI2NmVkNDZkZDlhZC4uODExZTdlMjU2NjJiOGMw
NjgyZmZiMjU3MWY2MmQ2MjgxYWFiNDlmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBpbmcuanMKQEAgLTIw
OCw3ICsyMDgsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VTY3JpcHRNYXBwaW5nLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdmFyIGNvbnRlbnRQcm92aWRlciA9IHNjcmlwdC5pc0lubGluZVNjcmlw
dCgpID8gbmV3IFdlYkluc3BlY3Rvci5Db25jYXRlbmF0ZWRTY3JpcHRzQ29udGVudFByb3ZpZGVy
KHNjcmlwdHMpIDogc2NyaXB0OwogICAgICAgICB2YXIgaXNEeW5hbWljU2NyaXB0ID0gdGhpcy5f
aXNEeW5hbWljU2NyaXB0KHNjcmlwdCk7CiAgICAgICAgIHZhciB1cmwgPSBpc0R5bmFtaWNTY3Jp
cHQgPyAiIiA6IHNjcmlwdC5zb3VyY2VVUkw7Ci0gICAgICAgIHRlbXBvcmFyeVVJU291cmNlQ29k
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZSh1cmwsIGNvbnRlbnRQcm92aWRl
ciwgZmFsc2UpOworICAgICAgICB0ZW1wb3JhcnlVSVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVj
dG9yLlVJU291cmNlQ29kZSh1cmwsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UpOwogICAgICAgICB0
ZW1wb3JhcnlVSVNvdXJjZUNvZGUuaXNUZW1wb3JhcnkgPSB0cnVlOwogICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHNjcmlwdHMubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLl90ZW1w
b3JhcnlVSVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHRzW2ldLnNjcmlwdElkXSA9IHRlbXBv
cmFyeVVJU291cmNlQ29kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0U25pcHBldE1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKaW5kZXggMDg5ZTUwOTM4ZTcyNmZhNmNk
NjEwY2E5MDI4NzBlYjc3ZWFmNjFkZS4uMTBlOWE3YmMwZDVkNmM4MzU0MDlhNTY0YmI1ZTY1YjRi
ODZmNGU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRTbmlwcGV0TW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRTbmlwcGV0TW9kZWwuanMKQEAgLTM4LDggKzM4LDggQEAgV2ViSW5zcGVjdG9y
LlNjcmlwdFNuaXBwZXRNb2RlbCA9IGZ1bmN0aW9uKHdvcmtzcGFjZSkKICAgICB0aGlzLl93b3Jr
c3BhY2UgPSB3b3Jrc3BhY2U7CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWQgPSB7
fTsKICAgICB0aGlzLl9zY3JpcHRGb3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7Ci0gICAgdGhp
cy5fc25pcHBldEphdmFTY3JpcHRTb3VyY2VGb3JTbmlwcGV0SWQgPSB7fTsKLSAgICB0aGlzLl9z
bmlwcGV0SWRGb3JKYXZhU2NyaXB0U291cmNlID0gbmV3IE1hcCgpOworICAgIHRoaXMuX3VpU291
cmNlQ29kZUZvclNuaXBwZXRJZCA9IHt9OworICAgIHRoaXMuX3NuaXBwZXRJZEZvclVJU291cmNl
Q29kZSA9IG5ldyBNYXAoKTsKICAgICAKICAgICB0aGlzLl9zbmlwcGV0U3RvcmFnZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuU25pcHBldFN0b3JhZ2UoInNjcmlwdCIsICJTY3JpcHQgc25pcHBldCAjIik7
CiAgICAgdGhpcy5fbGFzdFNuaXBwZXRFdmFsdWF0aW9uSW5kZXhTZXR0aW5nID0gV2ViSW5zcGVj
dG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmcoImxhc3RTbmlwcGV0RXZhbHVhdGlvbkluZGV4Iiwg
MCk7CkBAIC02OCw3ICs2OCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJv
dG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0
b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2V9CisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZX0KICAgICAgKi8KICAgICBjcmVhdGVTY3JpcHRTbmlwcGV0OiBmdW5jdGlv
bigpCiAgICAgewpAQCAtNzgsNzYgKzc4LDc3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0
TW9kZWwucHJvdG90eXBlID0gewogCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuU25pcHBldH0gc25pcHBldAotICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5TbmlwcGV0
SmF2YVNjcmlwdFNvdXJjZX0KKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlfQogICAgICAqLwogICAgIF9hZGRTY3JpcHRTbmlwcGV0OiBmdW5jdGlvbihzbmlwcGV0KQog
ICAgIHsKLSAgICAgICAgdmFyIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlID0gbmV3IFdlYkluc3Bl
Y3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZShzbmlwcGV0Lm5hbWUsIG5ldyBXZWJJbnNwZWN0
b3IuU25pcHBldENvbnRlbnRQcm92aWRlcihzbmlwcGV0KSwgdGhpcyk7Ci0gICAgICAgIHZhciBz
Y3JpcHRGaWxlID0gbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0U2NyaXB0RmlsZSh0aGlzLCBzbmlw
cGV0SmF2YVNjcmlwdFNvdXJjZSk7Ci0gICAgICAgIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlLnNl
dFNjcmlwdEZpbGUoc2NyaXB0RmlsZSk7Ci0gICAgICAgIHRoaXMuX3NuaXBwZXRJZEZvckphdmFT
Y3JpcHRTb3VyY2UucHV0KHNuaXBwZXRKYXZhU2NyaXB0U291cmNlLCBzbmlwcGV0LmlkKTsKLSAg
ICAgICAgc25pcHBldEphdmFTY3JpcHRTb3VyY2Uuc2V0U291cmNlTWFwcGluZyh0aGlzLl9zbmlw
cGV0U2NyaXB0TWFwcGluZyk7IAotICAgICAgICB0aGlzLl9zbmlwcGV0SmF2YVNjcmlwdFNvdXJj
ZUZvclNuaXBwZXRJZFtzbmlwcGV0LmlkXSA9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlOwotICAg
ICAgICB0aGlzLl93b3Jrc3BhY2UucHJvamVjdCgpLmFkZFVJU291cmNlQ29kZShzbmlwcGV0SmF2
YVNjcmlwdFNvdXJjZSk7Ci0gICAgICAgIHJldHVybiBzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZTsK
KyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
KHNuaXBwZXQubmFtZSwgbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0Q29udGVudFByb3ZpZGVyKHNu
aXBwZXQpLCB0cnVlKTsKKyAgICAgICAgdWlTb3VyY2VDb2RlLmlzU25pcHBldCA9IHRydWU7Cisg
ICAgICAgIHZhciBzY3JpcHRGaWxlID0gbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0U2NyaXB0Rmls
ZSh0aGlzLCB1aVNvdXJjZUNvZGUpOworICAgICAgICB1aVNvdXJjZUNvZGUuc2V0U2NyaXB0Rmls
ZShzY3JpcHRGaWxlKTsKKyAgICAgICAgdGhpcy5fc25pcHBldElkRm9yVUlTb3VyY2VDb2RlLnB1
dCh1aVNvdXJjZUNvZGUsIHNuaXBwZXQuaWQpOworICAgICAgICB1aVNvdXJjZUNvZGUuc2V0U291
cmNlTWFwcGluZyh0aGlzLl9zbmlwcGV0U2NyaXB0TWFwcGluZyk7CisgICAgICAgIHRoaXMuX3Vp
U291cmNlQ29kZUZvclNuaXBwZXRJZFtzbmlwcGV0LmlkXSA9IHVpU291cmNlQ29kZTsKKyAgICAg
ICAgdGhpcy5fd29ya3NwYWNlLnByb2plY3QoKS5hZGRVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2Rl
KTsKKyAgICAgICAgcmV0dXJuIHVpU291cmNlQ29kZTsKICAgICB9LAogCiAgICAgLyoqCi0gICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2V9IHNuaXBwZXRK
YXZhU2NyaXB0U291cmNlCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
fSB1aVNvdXJjZUNvZGUKICAgICAgKi8KLSAgICBkZWxldGVTY3JpcHRTbmlwcGV0OiBmdW5jdGlv
bihzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSkKKyAgICBkZWxldGVTY3JpcHRTbmlwcGV0OiBmdW5j
dGlvbih1aVNvdXJjZUNvZGUpCiAgICAgewotICAgICAgICB2YXIgc25pcHBldElkID0gdGhpcy5f
c25pcHBldElkRm9ySmF2YVNjcmlwdFNvdXJjZS5nZXQoc25pcHBldEphdmFTY3JpcHRTb3VyY2Up
OworICAgICAgICB2YXIgc25pcHBldElkID0gdGhpcy5fc25pcHBldElkRm9yVUlTb3VyY2VDb2Rl
LmdldCh1aVNvdXJjZUNvZGUpOwogICAgICAgICB2YXIgc25pcHBldCA9IHRoaXMuX3NuaXBwZXRT
dG9yYWdlLnNuaXBwZXRGb3JJZChzbmlwcGV0SWQpOwogICAgICAgICB0aGlzLl9zbmlwcGV0U3Rv
cmFnZS5kZWxldGVTbmlwcGV0KHNuaXBwZXQpOwotICAgICAgICB0aGlzLl9yZW1vdmVCcmVha3Bv
aW50cyhzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSk7Ci0gICAgICAgIHRoaXMuX3JlbGVhc2VTbmlw
cGV0U2NyaXB0KHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKLSAgICAgICAgZGVsZXRlIHRoaXMu
X3NuaXBwZXRKYXZhU2NyaXB0U291cmNlRm9yU25pcHBldElkW3NuaXBwZXQuaWRdOwotICAgICAg
ICB0aGlzLl9zbmlwcGV0SWRGb3JKYXZhU2NyaXB0U291cmNlLnJlbW92ZShzbmlwcGV0SmF2YVNj
cmlwdFNvdXJjZSk7Ci0gICAgICAgIHRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkucmVtb3ZlVUlT
b3VyY2VDb2RlKHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKKyAgICAgICAgdGhpcy5fcmVtb3Zl
QnJlYWtwb2ludHModWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdGhpcy5fcmVsZWFzZVNuaXBwZXRT
Y3JpcHQodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3VpU291cmNlQ29kZUZv
clNuaXBwZXRJZFtzbmlwcGV0LmlkXTsKKyAgICAgICAgdGhpcy5fc25pcHBldElkRm9yVUlTb3Vy
Y2VDb2RlLnJlbW92ZSh1aVNvdXJjZUNvZGUpOworICAgICAgICB0aGlzLl93b3Jrc3BhY2UucHJv
amVjdCgpLnJlbW92ZVVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAgICAv
KioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZX0g
c25pcHBldEphdmFTY3JpcHRTb3VyY2UKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGV9IHVpU291cmNlQ29kZQogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdOYW1lCiAg
ICAgICovCi0gICAgcmVuYW1lU2NyaXB0U25pcHBldDogZnVuY3Rpb24oc25pcHBldEphdmFTY3Jp
cHRTb3VyY2UsIG5ld05hbWUpCisgICAgcmVuYW1lU2NyaXB0U25pcHBldDogZnVuY3Rpb24odWlT
b3VyY2VDb2RlLCBuZXdOYW1lKQogICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnRMb2NhdGlv
bnMgPSB0aGlzLl9yZW1vdmVCcmVha3BvaW50cyhzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSk7Ci0g
ICAgICAgIHZhciBzbmlwcGV0SWQgPSB0aGlzLl9zbmlwcGV0SWRGb3JKYXZhU2NyaXB0U291cmNl
LmdldChzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSk7CisgICAgICAgIHZhciBicmVha3BvaW50TG9j
YXRpb25zID0gdGhpcy5fcmVtb3ZlQnJlYWtwb2ludHModWlTb3VyY2VDb2RlKTsKKyAgICAgICAg
dmFyIHNuaXBwZXRJZCA9IHRoaXMuX3NuaXBwZXRJZEZvclVJU291cmNlQ29kZS5nZXQodWlTb3Vy
Y2VDb2RlKTsKICAgICAgICAgdmFyIHNuaXBwZXQgPSB0aGlzLl9zbmlwcGV0U3RvcmFnZS5zbmlw
cGV0Rm9ySWQoc25pcHBldElkKTsKICAgICAgICAgaWYgKCFzbmlwcGV0IHx8ICFuZXdOYW1lIHx8
IHNuaXBwZXQubmFtZSA9PT0gbmV3TmFtZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
c25pcHBldC5uYW1lID0gbmV3TmFtZTsKLSAgICAgICAgc25pcHBldEphdmFTY3JpcHRTb3VyY2Uu
dXJsQ2hhbmdlZChzbmlwcGV0Lm5hbWUpOwotICAgICAgICB0aGlzLl9yZXN0b3JlQnJlYWtwb2lu
dHMoc25pcHBldEphdmFTY3JpcHRTb3VyY2UsIGJyZWFrcG9pbnRMb2NhdGlvbnMpOworICAgICAg
ICB0aGlzLl9yZXN0b3JlQnJlYWtwb2ludHModWlTb3VyY2VDb2RlLCBicmVha3BvaW50TG9jYXRp
b25zKTsKKyAgICAgICAgdWlTb3VyY2VDb2RlLnVybENoYW5nZWQoc25pcHBldC5uYW1lKTsKICAg
ICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU25pcHBldEphdmFT
Y3JpcHRTb3VyY2V9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlCisgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKICAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gbmV3Q29udGVudAogICAgICAqLwotICAgIF9zZXRTY3JpcHRTbmlwcGV0Q29udGVudDogZnVu
Y3Rpb24oc25pcHBldEphdmFTY3JpcHRTb3VyY2UsIG5ld0NvbnRlbnQpCisgICAgX3NldFNjcmlw
dFNuaXBwZXRDb250ZW50OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIG5ld0NvbnRlbnQpCiAgICAg
ewotICAgICAgICB2YXIgc25pcHBldElkID0gdGhpcy5fc25pcHBldElkRm9ySmF2YVNjcmlwdFNv
dXJjZS5nZXQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOworICAgICAgICB2YXIgc25pcHBldElk
ID0gdGhpcy5fc25pcHBldElkRm9yVUlTb3VyY2VDb2RlLmdldCh1aVNvdXJjZUNvZGUpOwogICAg
ICAgICB2YXIgc25pcHBldCA9IHRoaXMuX3NuaXBwZXRTdG9yYWdlLnNuaXBwZXRGb3JJZChzbmlw
cGV0SWQpOwogICAgICAgICBzbmlwcGV0LmNvbnRlbnQgPSBuZXdDb250ZW50OwogICAgIH0sCiAK
ICAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNv
dXJjZX0gc25pcHBldEphdmFTY3JpcHRTb3VyY2UKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQogICAgICAqLwotICAgIF9zY3JpcHRTbmlwcGV0
RWRpdGVkOiBmdW5jdGlvbihzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSkKKyAgICBfc2NyaXB0U25p
cHBldEVkaXRlZDogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsKLSAgICAgICAgdmFyIHNj
cmlwdCA9IHRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29kZS5nZXQoc25pcHBldEphdmFTY3JpcHRT
b3VyY2UpOworICAgICAgICB2YXIgc2NyaXB0ID0gdGhpcy5fc2NyaXB0Rm9yVUlTb3VyY2VDb2Rl
LmdldCh1aVNvdXJjZUNvZGUpOwogICAgICAgICBpZiAoIXNjcmlwdCkKICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgCi0gICAgICAgIHZhciBicmVha3BvaW50TG9jYXRpb25zID0gdGhpcy5f
cmVtb3ZlQnJlYWtwb2ludHMoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOwotICAgICAgICB2YXIg
dWlTb3VyY2VDb2RlID0gdGhpcy5fcmVsZWFzZVNuaXBwZXRTY3JpcHQoc25pcHBldEphdmFTY3Jp
cHRTb3VyY2UpOwotICAgICAgICB0aGlzLl9yZXN0b3JlQnJlYWtwb2ludHMoc25pcHBldEphdmFT
Y3JpcHRTb3VyY2UsIGJyZWFrcG9pbnRMb2NhdGlvbnMpOwotICAgICAgICBpZiAodWlTb3VyY2VD
b2RlKQotICAgICAgICAgICAgdGhpcy5fcmVzdG9yZUJyZWFrcG9pbnRzKHVpU291cmNlQ29kZSwg
YnJlYWtwb2ludExvY2F0aW9ucyk7CisKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRMb2NhdGlvbnMg
PSB0aGlzLl9yZW1vdmVCcmVha3BvaW50cyh1aVNvdXJjZUNvZGUpOworICAgICAgICB2YXIgY3Jl
YXRlZFVJU291cmNlQ29kZSA9IHRoaXMuX3JlbGVhc2VTbmlwcGV0U2NyaXB0KHVpU291cmNlQ29k
ZSk7CisgICAgICAgIHRoaXMuX3Jlc3RvcmVCcmVha3BvaW50cyh1aVNvdXJjZUNvZGUsIGJyZWFr
cG9pbnRMb2NhdGlvbnMpOworICAgICAgICBpZiAoY3JlYXRlZFVJU291cmNlQ29kZSkKKyAgICAg
ICAgICAgIHRoaXMuX3Jlc3RvcmVCcmVha3BvaW50cyhjcmVhdGVkVUlTb3VyY2VDb2RlLCBicmVh
a3BvaW50TG9jYXRpb25zKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNjIsMjYgKzE2MywyNiBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3RvdHlwZSA9IHsKICAgICB9LAog
CiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRT
b3VyY2V9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKICAgICAgKi8KLSAgICBldmFsdWF0ZVNjcmlw
dFNuaXBwZXQ6IGZ1bmN0aW9uKHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKQorICAgIGV2YWx1YXRl
U2NyaXB0U25pcHBldDogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsKLSAgICAgICAgdmFy
IGJyZWFrcG9pbnRMb2NhdGlvbnMgPSB0aGlzLl9yZW1vdmVCcmVha3BvaW50cyhzbmlwcGV0SmF2
YVNjcmlwdFNvdXJjZSk7Ci0gICAgICAgIHRoaXMuX3JlbGVhc2VTbmlwcGV0U2NyaXB0KHNuaXBw
ZXRKYXZhU2NyaXB0U291cmNlKTsKLSAgICAgICAgdGhpcy5fcmVzdG9yZUJyZWFrcG9pbnRzKHNu
aXBwZXRKYXZhU2NyaXB0U291cmNlLCBicmVha3BvaW50TG9jYXRpb25zKTsKLSAgICAgICAgdmFy
IHNuaXBwZXRJZCA9IHRoaXMuX3NuaXBwZXRJZEZvckphdmFTY3JpcHRTb3VyY2UuZ2V0KHNuaXBw
ZXRKYXZhU2NyaXB0U291cmNlKTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRMb2NhdGlvbnMgPSB0
aGlzLl9yZW1vdmVCcmVha3BvaW50cyh1aVNvdXJjZUNvZGUpOworICAgICAgICB0aGlzLl9yZWxl
YXNlU25pcHBldFNjcmlwdCh1aVNvdXJjZUNvZGUpOworICAgICAgICB0aGlzLl9yZXN0b3JlQnJl
YWtwb2ludHModWlTb3VyY2VDb2RlLCBicmVha3BvaW50TG9jYXRpb25zKTsKKyAgICAgICAgdmFy
IHNuaXBwZXRJZCA9IHRoaXMuX3NuaXBwZXRJZEZvclVJU291cmNlQ29kZS5nZXQodWlTb3VyY2VD
b2RlKTsKICAgICAgICAgdmFyIGV2YWx1YXRpb25JbmRleCA9IHRoaXMuX25leHRFdmFsdWF0aW9u
SW5kZXgoc25pcHBldElkKTsKLSAgICAgICAgc25pcHBldEphdmFTY3JpcHRTb3VyY2UuX2V2YWx1
YXRpb25JbmRleCA9IGV2YWx1YXRpb25JbmRleDsKLSAgICAgICAgdmFyIGV2YWx1YXRpb25Vcmwg
PSB0aGlzLl9ldmFsdWF0aW9uU291cmNlVVJMKHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKKyAg
ICAgICAgdWlTb3VyY2VDb2RlLl9ldmFsdWF0aW9uSW5kZXggPSBldmFsdWF0aW9uSW5kZXg7Cisg
ICAgICAgIHZhciBldmFsdWF0aW9uVXJsID0gdGhpcy5fZXZhbHVhdGlvblNvdXJjZVVSTCh1aVNv
dXJjZUNvZGUpOwogCi0gICAgICAgIHZhciBleHByZXNzaW9uID0gc25pcHBldEphdmFTY3JpcHRT
b3VyY2Uud29ya2luZ0NvcHkoKTsKKyAgICAgICAgdmFyIGV4cHJlc3Npb24gPSB1aVNvdXJjZUNv
ZGUud29ya2luZ0NvcHkoKTsKICAgICAgICAgCiAgICAgICAgIC8vIEluIG9yZGVyIHRvIHN0b3Ag
b24gdGhlIGJyZWFrcG9pbnRzIGR1cmluZyB0aGUgc25pcHBldCBldmFsdWF0aW9uIHdlIG5lZWQg
dG8gY29tcGlsZSBhbmQgcnVuIGl0IHNlcGFyYXRlbHkuCiAgICAgICAgIC8vIElmIHNlcGFyYXRl
IGNvbXBpbGF0aW9uIGFuZCBleGVjdXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgcG9ydCB3
ZSBmYWxsIGJhY2sgdG8gZXZhbHVhdGlvbiBpbiBjb25zb2xlLgogICAgICAgICAvLyBJbiBjYXNl
IHdlIGRvbid0IG5lZWQgdGhhdCBzaW5jZSBkZWJ1Z2dlciBpcyBhbHJlYWR5IHBhdXNlZC4KICAg
ICAgICAgLy8gV2UgZG8gdGhlIHNhbWUgd2hlbiB3ZSBhcmUgc3RvcHBlZCBvbiB0aGUgY2FsbCBm
cmFtZSAgc2luY2UgZGVidWdnZXIgaXMgYWxyZWFkeSBwYXVzZWQgYW5kIGNhbiBub3Qgc3RvcCBv
biBicmVha3BvaW50IGFueW1vcmUuCiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5zZWxlY3RlZENhbGxGcmFtZSgpIHx8ICFDYXBhYmlsaXRpZXMuc2VwYXJhdGVTY3JpcHRD
b21waWxhdGlvbkFuZEV4ZWN1dGlvbkVuYWJsZWQpIHsKLSAgICAgICAgICAgIGV4cHJlc3Npb24g
PSBzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZS53b3JraW5nQ29weSgpICsgIlxuLy9AIHNvdXJjZVVS
TD0iICsgZXZhbHVhdGlvblVybCArICJcbiI7CisgICAgICAgICAgICBleHByZXNzaW9uID0gdWlT
b3VyY2VDb2RlLndvcmtpbmdDb3B5KCkgKyAiXG4vL0Agc291cmNlVVJMPSIgKyBldmFsdWF0aW9u
VXJsICsgIlxuIjsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5ldmFsdWF0ZUluQ29uc29sZShl
eHByZXNzaW9uLCB0cnVlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTk2
LDcgKzE5Nyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90eXBlID0g
ewogICAgICAgICAgKi8KICAgICAgICAgZnVuY3Rpb24gY29tcGlsZUNhbGxiYWNrKGVycm9yLCBz
Y3JpcHRJZCwgc3ludGF4RXJyb3JNZXNzYWdlKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo
IXNuaXBwZXRKYXZhU2NyaXB0U291cmNlIHx8IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlLl9ldmFs
dWF0aW9uSW5kZXggIT09IGV2YWx1YXRpb25JbmRleCkKKyAgICAgICAgICAgIGlmICghdWlTb3Vy
Y2VDb2RlIHx8IHVpU291cmNlQ29kZS5fZXZhbHVhdGlvbkluZGV4ICE9PSBldmFsdWF0aW9uSW5k
ZXgpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBpZiAoZXJyb3IpIHsK
QEAgLTIxMyw4ICsyMTQsOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIHZhciBicmVha3BvaW50TG9jYXRpb25zID0gdGhpcy5fcmVtb3ZlQnJlYWtwb2ludHMo
c25pcHBldEphdmFTY3JpcHRTb3VyY2UpOwotICAgICAgICAgICAgdGhpcy5fcmVzdG9yZUJyZWFr
cG9pbnRzKHNuaXBwZXRKYXZhU2NyaXB0U291cmNlLCBicmVha3BvaW50TG9jYXRpb25zKTsKKyAg
ICAgICAgICAgIHZhciBicmVha3BvaW50TG9jYXRpb25zID0gdGhpcy5fcmVtb3ZlQnJlYWtwb2lu
dHModWlTb3VyY2VDb2RlKTsKKyAgICAgICAgICAgIHRoaXMuX3Jlc3RvcmVCcmVha3BvaW50cyh1
aVNvdXJjZUNvZGUsIGJyZWFrcG9pbnRMb2NhdGlvbnMpOwogCiAgICAgICAgICAgICB0aGlzLl9y
dW5TY3JpcHQoc2NyaXB0SWQpOwogICAgICAgICB9CkBAIC0zMDAsMTcgKzMwMSwxNyBAQCBXZWJJ
bnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBfYWRkU2NyaXB0
OiBmdW5jdGlvbihzY3JpcHQpCiAgICAgewogICAgICAgICB2YXIgc25pcHBldElkID0gdGhpcy5f
c25pcHBldElkRm9yU291cmNlVVJMKHNjcmlwdC5zb3VyY2VVUkwpOwotICAgICAgICB2YXIgc25p
cHBldEphdmFTY3JpcHRTb3VyY2UgPSB0aGlzLl9zbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZvclNu
aXBwZXRJZFtzbmlwcGV0SWRdOwotICAgICAgICAKLSAgICAgICAgaWYgKCFzbmlwcGV0SmF2YVNj
cmlwdFNvdXJjZSB8fCB0aGlzLl9ldmFsdWF0aW9uU291cmNlVVJMKHNuaXBwZXRKYXZhU2NyaXB0
U291cmNlKSAhPT0gc2NyaXB0LnNvdXJjZVVSTCkgeworICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
ID0gdGhpcy5fdWlTb3VyY2VDb2RlRm9yU25pcHBldElkW3NuaXBwZXRJZF07CisKKyAgICAgICAg
aWYgKCF1aVNvdXJjZUNvZGUgfHwgdGhpcy5fZXZhbHVhdGlvblNvdXJjZVVSTCh1aVNvdXJjZUNv
ZGUpICE9PSBzY3JpcHQuc291cmNlVVJMKSB7CiAgICAgICAgICAgICB0aGlzLl9jcmVhdGVVSVNv
dXJjZUNvZGVGb3JTY3JpcHQoc2NyaXB0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQotICAgICAgICAKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX3NjcmlwdEZvclVJU291
cmNlQ29kZS5nZXQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpKTsKLSAgICAgICAgdGhpcy5fdWlT
b3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSA9IHNuaXBwZXRKYXZhU2NyaXB0
U291cmNlOwotICAgICAgICB0aGlzLl9zY3JpcHRGb3JVSVNvdXJjZUNvZGUucHV0KHNuaXBwZXRK
YXZhU2NyaXB0U291cmNlLCBzY3JpcHQpOwotICAgICAgICBzbmlwcGV0SmF2YVNjcmlwdFNvdXJj
ZS5zY3JpcHRGaWxlKCkuc2V0SGFzRGl2ZXJnZWRGcm9tVk0oZmFsc2UpOworCisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KCF0aGlzLl9zY3JpcHRGb3JVSVNvdXJjZUNvZGUuZ2V0KHVpU291cmNlQ29k
ZSkpOworICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0
SWRdID0gdWlTb3VyY2VDb2RlOworICAgICAgICB0aGlzLl9zY3JpcHRGb3JVSVNvdXJjZUNvZGUu
cHV0KHVpU291cmNlQ29kZSwgc2NyaXB0KTsKKyAgICAgICAgdWlTb3VyY2VDb2RlLnNjcmlwdEZp
bGUoKS5zZXRIYXNEaXZlcmdlZEZyb21WTShmYWxzZSk7CiAgICAgICAgIHNjcmlwdC5zZXRTb3Vy
Y2VNYXBwaW5nKHRoaXMuX3NuaXBwZXRTY3JpcHRNYXBwaW5nKTsKICAgICB9LAogCkBAIC0zMjAs
NyArMzIxLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5cGUgPSB7
CiAgICAgICovCiAgICAgX2NyZWF0ZVVJU291cmNlQ29kZUZvclNjcmlwdDogZnVuY3Rpb24oc2Ny
aXB0KQogICAgIHsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3Iu
SmF2YVNjcmlwdFNvdXJjZShzY3JpcHQuc291cmNlVVJMLCBzY3JpcHQsIGZhbHNlKTsKKyAgICAg
ICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKHNjcmlw
dC5zb3VyY2VVUkwsIHNjcmlwdCwgZmFsc2UpOwogICAgICAgICB1aVNvdXJjZUNvZGUuc2V0U291
cmNlTWFwcGluZyh0aGlzLl9zbmlwcGV0U2NyaXB0TWFwcGluZyk7CiAgICAgICAgIC8vIEZJWE1F
OiBTaG91bGQgYmUgYWRkZWQgdG8gd29ya3NwYWNlIGFzIHRlbXBvcmFyeS4KICAgICAgICAgdWlT
b3VyY2VDb2RlLmlzVGVtcG9yYXJ5ID0gdHJ1ZTsKQEAgLTMzMiwxMiArMzMzLDEyIEBAIFdlYklu
c3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZX0g
c25pcHBldEphdmFTY3JpcHRTb3VyY2UKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGV9IHVpU291cmNlQ29kZQogICAgICAqIEByZXR1cm4ge0FycmF5LjxPYmplY3Q+fQog
ICAgICAqLwotICAgIF9yZW1vdmVCcmVha3BvaW50czogZnVuY3Rpb24oc25pcHBldEphdmFTY3Jp
cHRTb3VyY2UpCisgICAgX3JlbW92ZUJyZWFrcG9pbnRzOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUp
CiAgICAgewotICAgICAgICB2YXIgYnJlYWtwb2ludExvY2F0aW9ucyA9IFdlYkluc3BlY3Rvci5i
cmVha3BvaW50TWFuYWdlci5icmVha3BvaW50TG9jYXRpb25zRm9yVUlTb3VyY2VDb2RlKHNuaXBw
ZXRKYXZhU2NyaXB0U291cmNlKTsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnRMb2NhdGlvbnMgPSBX
ZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2ludExvY2F0aW9uc0ZvclVJU291
cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyZWFr
cG9pbnRMb2NhdGlvbnMubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICBicmVha3BvaW50TG9jYXRp
b25zW2ldLmJyZWFrcG9pbnQucmVtb3ZlKCk7CiAgICAgICAgIHJldHVybiBicmVha3BvaW50TG9j
YXRpb25zOwpAQCAtMzU3LDM0ICszNTgsMzQgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRN
b2RlbC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlfSBzbmlwcGV0SmF2YVNjcmlwdFNvdXJj
ZQorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2Rl
CiAgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0KICAgICAgKi8KLSAg
ICBfcmVsZWFzZVNuaXBwZXRTY3JpcHQ6IGZ1bmN0aW9uKHNuaXBwZXRKYXZhU2NyaXB0U291cmNl
KQorICAgIF9yZWxlYXNlU25pcHBldFNjcmlwdDogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAg
IHsKLSAgICAgICAgdmFyIHNjcmlwdCA9IHRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29kZS5nZXQo
c25pcHBldEphdmFTY3JpcHRTb3VyY2UpOworICAgICAgICB2YXIgc2NyaXB0ID0gdGhpcy5fc2Ny
aXB0Rm9yVUlTb3VyY2VDb2RlLmdldCh1aVNvdXJjZUNvZGUpOwogICAgICAgICBpZiAoIXNjcmlw
dCkKICAgICAgICAgICAgIHJldHVybiBudWxsOwogCi0gICAgICAgIHNuaXBwZXRKYXZhU2NyaXB0
U291cmNlLnNjcmlwdEZpbGUoKS5zZXRJc0RpdmVyZ2luZ0Zyb21WTSh0cnVlKTsKLSAgICAgICAg
c25pcHBldEphdmFTY3JpcHRTb3VyY2Uuc2NyaXB0RmlsZSgpLnNldEhhc0RpdmVyZ2VkRnJvbVZN
KHRydWUpOworICAgICAgICB1aVNvdXJjZUNvZGUuc2NyaXB0RmlsZSgpLnNldElzRGl2ZXJnaW5n
RnJvbVZNKHRydWUpOworICAgICAgICB1aVNvdXJjZUNvZGUuc2NyaXB0RmlsZSgpLnNldEhhc0Rp
dmVyZ2VkRnJvbVZNKHRydWUpOwogICAgICAgICBkZWxldGUgdGhpcy5fdWlTb3VyY2VDb2RlRm9y
U2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXTsKLSAgICAgICAgdGhpcy5fc2NyaXB0Rm9yVUlTb3Vy
Y2VDb2RlLnJlbW92ZShzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSk7Ci0gICAgICAgIGRlbGV0ZSBz
bmlwcGV0SmF2YVNjcmlwdFNvdXJjZS5fZXZhbHVhdGlvbkluZGV4OwotICAgICAgICB2YXIgdWlT
b3VyY2VDb2RlID0gdGhpcy5fY3JlYXRlVUlTb3VyY2VDb2RlRm9yU2NyaXB0KHNjcmlwdCk7Ci0g
ICAgICAgIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlLnNjcmlwdEZpbGUoKS5zZXRJc0RpdmVyZ2lu
Z0Zyb21WTShmYWxzZSk7Ci0gICAgICAgIHJldHVybiB1aVNvdXJjZUNvZGU7CisgICAgICAgIHRo
aXMuX3NjcmlwdEZvclVJU291cmNlQ29kZS5yZW1vdmUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAg
ZGVsZXRlIHVpU291cmNlQ29kZS5fZXZhbHVhdGlvbkluZGV4OworICAgICAgICB2YXIgY3JlYXRl
ZFVJU291cmNlQ29kZSA9IHRoaXMuX2NyZWF0ZVVJU291cmNlQ29kZUZvclNjcmlwdChzY3JpcHQp
OworICAgICAgICB1aVNvdXJjZUNvZGUuc2NyaXB0RmlsZSgpLnNldElzRGl2ZXJnaW5nRnJvbVZN
KGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZWRVSVNvdXJjZUNvZGU7CiAgICAgfSwKIAog
ICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291
cmNlfSBzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZQorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICogQHJldHVybiB7c3RyaW5nfQogICAg
ICAqLwotICAgIF9ldmFsdWF0aW9uU291cmNlVVJMOiBmdW5jdGlvbihzbmlwcGV0SmF2YVNjcmlw
dFNvdXJjZSkKKyAgICBfZXZhbHVhdGlvblNvdXJjZVVSTDogZnVuY3Rpb24odWlTb3VyY2VDb2Rl
KQogICAgIHsKICAgICAgICAgdmFyIHNuaXBwZXRQcmVmaXggPSBXZWJJbnNwZWN0b3IuU2NyaXB0
U25pcHBldE1vZGVsLnNuaXBwZXRTb3VyY2VVUkxQcmVmaXg7Ci0gICAgICAgIHZhciBldmFsdWF0
aW9uU3VmZml4ID0gIl8iICsgc25pcHBldEphdmFTY3JpcHRTb3VyY2UuX2V2YWx1YXRpb25JbmRl
eDsKLSAgICAgICAgdmFyIHNuaXBwZXRJZCA9IHRoaXMuX3NuaXBwZXRJZEZvckphdmFTY3JpcHRT
b3VyY2UuZ2V0KHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKKyAgICAgICAgdmFyIGV2YWx1YXRp
b25TdWZmaXggPSAiXyIgKyB1aVNvdXJjZUNvZGUuX2V2YWx1YXRpb25JbmRleDsKKyAgICAgICAg
dmFyIHNuaXBwZXRJZCA9IHRoaXMuX3NuaXBwZXRJZEZvclVJU291cmNlQ29kZS5nZXQodWlTb3Vy
Y2VDb2RlKTsKICAgICAgICAgcmV0dXJuIHNuaXBwZXRQcmVmaXggKyBzbmlwcGV0SWQgKyBldmFs
dWF0aW9uU3VmZml4OwogICAgIH0sCiAKQEAgLTQwNyw4ICs0MDgsOCBAQCBXZWJJbnNwZWN0b3Iu
U2NyaXB0U25pcHBldE1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHJlbW92ZWRVSVNv
dXJjZUNvZGVzID0gdGhpcy5fcmVsZWFzZWRVSVNvdXJjZUNvZGVzKCk7CiAgICAgICAgIHRoaXMu
X3VpU291cmNlQ29kZUZvclNjcmlwdElkID0ge307CiAgICAgICAgIHRoaXMuX3NjcmlwdEZvclVJ
U291cmNlQ29kZSA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5fc25pcHBldEphdmFTY3JpcHRT
b3VyY2VGb3JTbmlwcGV0SWQgPSB7fTsKLSAgICAgICAgdGhpcy5fc25pcHBldElkRm9ySmF2YVNj
cmlwdFNvdXJjZSA9IG5ldyBNYXAoKTsKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU25p
cHBldElkID0ge307CisgICAgICAgIHRoaXMuX3NuaXBwZXRJZEZvclVJU291cmNlQ29kZSA9IG5l
dyBNYXAoKTsKICAgICB9LAogCiAgICAgX3Byb2plY3REaWRSZXNldDogZnVuY3Rpb24oKQpAQCAt
NDIxLDM3ICs0MjIsMTkgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90b3R5
cGUgPSB7CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9y
LkphdmFTY3JpcHRTb3VyY2V9Ci0gKiBAcGFyYW0ge3N0cmluZ30gc25pcHBldE5hbWUKLSAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcn0gY29udGVudFByb3ZpZGVyCi0gKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWx9IHNjcmlwdFNuaXBwZXRNb2Rl
bAotICovCi1XZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2UgPSBmdW5jdGlvbihz
bmlwcGV0TmFtZSwgY29udGVudFByb3ZpZGVyLCBzY3JpcHRTbmlwcGV0TW9kZWwpCi17Ci0gICAg
V2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UuY2FsbCh0aGlzLCBzbmlwcGV0TmFtZSwgY29u
dGVudFByb3ZpZGVyLCB0cnVlKTsKLSAgICB0aGlzLl9zY3JpcHRTbmlwcGV0TW9kZWwgPSBzY3Jp
cHRTbmlwcGV0TW9kZWw7Ci0gICAgdGhpcy5pc1NuaXBwZXQgPSB0cnVlOwotfQotCi1XZWJJbnNw
ZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2UucHJvdG90eXBlID0gewotICAgIF9fcHJvdG9f
XzogV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UucHJvdG90eXBlCi19Ci0KLS8qKgotICog
QGNvbnN0cnVjdG9yCiAgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9yLlNjcmlwdEZpbGV9CiAg
KiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlNjcmlwdFNuaXBwZXRNb2RlbH0gc2NyaXB0U25pcHBldE1vZGVsCi0gKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZX0gc25pcHBldEphdmFTY3JpcHRTb3VyY2UK
KyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgKi8K
LVdlYkluc3BlY3Rvci5TbmlwcGV0U2NyaXB0RmlsZSA9IGZ1bmN0aW9uKHNjcmlwdFNuaXBwZXRN
b2RlbCwgc25pcHBldEphdmFTY3JpcHRTb3VyY2UpCitXZWJJbnNwZWN0b3IuU25pcHBldFNjcmlw
dEZpbGUgPSBmdW5jdGlvbihzY3JpcHRTbmlwcGV0TW9kZWwsIHVpU291cmNlQ29kZSkKIHsKICAg
ICBXZWJJbnNwZWN0b3IuU2NyaXB0RmlsZS5jYWxsKHRoaXMpOwogICAgIHRoaXMuX3NjcmlwdFNu
aXBwZXRNb2RlbCA9IHNjcmlwdFNuaXBwZXRNb2RlbDsKLSAgICB0aGlzLl9zbmlwcGV0SmF2YVNj
cmlwdFNvdXJjZSA9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlOworICAgIHRoaXMuX3VpU291cmNl
Q29kZSA9IHVpU291cmNlQ29kZTsKICAgICB0aGlzLl9oYXNEaXZlcmdlZEZyb21WTSA9IHRydWU7
Ci0gICAgdGhpcy5fc25pcHBldEphdmFTY3JpcHRTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50cy5Xb3JraW5nQ29weUNvbW1pdHRlZCwgdGhpcy5f
d29ya2luZ0NvcHlDb21taXR0ZWQsIHRoaXMpOwotICAgIHRoaXMuX3NuaXBwZXRKYXZhU2NyaXB0
U291cmNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMu
V29ya2luZ0NvcHlDaGFuZ2VkLCB0aGlzLl93b3JraW5nQ29weUNoYW5nZWQsIHRoaXMpOworICAg
IHRoaXMuX3VpU291cmNlQ29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGUuRXZlbnRzLldvcmtpbmdDb3B5Q29tbWl0dGVkLCB0aGlzLl93b3JraW5nQ29weUNvbW1p
dHRlZCwgdGhpcyk7CisgICAgdGhpcy5fdWlTb3VyY2VDb2RlLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMuV29ya2luZ0NvcHlDaGFuZ2VkLCB0aGlzLl93
b3JraW5nQ29weUNoYW5nZWQsIHRoaXMpOwogfQogCiBXZWJJbnNwZWN0b3IuU25pcHBldFNjcmlw
dEZpbGUucHJvdG90eXBlID0gewpAQCAtNDg5LDEyICs0NzIsMTIgQEAgV2ViSW5zcGVjdG9yLlNu
aXBwZXRTY3JpcHRGaWxlLnByb3RvdHlwZSA9IHsKIAogICAgIF93b3JraW5nQ29weUNvbW1pdHRl
ZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fc2NyaXB0U25pcHBldE1vZGVsLl9z
ZXRTY3JpcHRTbmlwcGV0Q29udGVudCh0aGlzLl9zbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSwgdGhp
cy5fc25pcHBldEphdmFTY3JpcHRTb3VyY2Uud29ya2luZ0NvcHkoKSk7CisgICAgICAgIHRoaXMu
X3NjcmlwdFNuaXBwZXRNb2RlbC5fc2V0U2NyaXB0U25pcHBldENvbnRlbnQodGhpcy5fdWlTb3Vy
Y2VDb2RlLCB0aGlzLl91aVNvdXJjZUNvZGUud29ya2luZ0NvcHkoKSk7CiAgICAgfSwKIAogICAg
IF93b3JraW5nQ29weUNoYW5nZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Nj
cmlwdFNuaXBwZXRNb2RlbC5fc2NyaXB0U25pcHBldEVkaXRlZCh0aGlzLl9zbmlwcGV0SmF2YVNj
cmlwdFNvdXJjZSk7CisgICAgICAgIHRoaXMuX3NjcmlwdFNuaXBwZXRNb2RlbC5fc2NyaXB0U25p
cHBldEVkaXRlZCh0aGlzLl91aVNvdXJjZUNvZGUpOwogICAgIH0sCiAKICAgICBfX3Byb3RvX186
IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNOYXZpZ2F0b3IuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNOYXZpZ2F0b3IuanMKaW5kZXggZDA5NGU2NDRl
MmNkNDBiMTg5MGU2Yzg1NjFjZTQxZDc2N2MwM2NhYi4uNjYyZjkwMjE3NjQzNWNkOWMwMzA4Yzk4
YWEyMDVkNDhmMDdhZDk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzTmF2aWdhdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c05hdmlnYXRvci5qcwpAQCAtMjI5LDggKzIyOSw3IEBAIFdlYklu
c3BlY3Rvci5TbmlwcGV0c05hdmlnYXRvclZpZXcucHJvdG90eXBlID0gewogICAgIHsKICAgICAg
ICAgaWYgKCF1aVNvdXJjZUNvZGUuaXNTbmlwcGV0KQogICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB2YXIgc25pcHBldEphdmFTY3JpcHRTb3VyY2UgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rv
ci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZX0gKi8gdWlTb3VyY2VDb2RlOwotICAgICAgICBXZWJJ
bnNwZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVsLmV2YWx1YXRlU2NyaXB0U25pcHBldChzbmlwcGV0
SmF2YVNjcmlwdFNvdXJjZSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9k
ZWwuZXZhbHVhdGVTY3JpcHRTbmlwcGV0KHVpU291cmNlQ29kZSk7CiAgICAgfSwKIAogICAgIC8q
KgpAQCAtMjUwLDggKzI0OSw3IEBAIFdlYkluc3BlY3Rvci5TbmlwcGV0c05hdmlnYXRvclZpZXcu
cHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKCF1aVNvdXJjZUNvZGUuaXNTbmlwcGV0
KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB2YXIgc25pcHBldEphdmFTY3JpcHRTb3Vy
Y2UgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZX0gKi8g
dWlTb3VyY2VDb2RlOwotICAgICAgICBXZWJJbnNwZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVsLmRl
bGV0ZVNjcmlwdFNuaXBwZXQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOworICAgICAgICBXZWJJ
bnNwZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVsLmRlbGV0ZVNjcmlwdFNuaXBwZXQodWlTb3VyY2VD
b2RlKTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGU4MTA5ODVhNmNjYjE0MWZkZmQ5ZDlj
NDMzZTVjY2EyNTViMjcwNDMuLjFlOTQ0MTgxZDY3ZjVkNDQyMjkyNWY4MzUzZjAyY2NkYmFjZGQz
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzCkBAIC00NDAsMTQgKzQ0MCwyMSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZSA9IHsKICAgICBfY3JlYXRlU291cmNlRnJhbWU6IGZ1bmN0aW9uKHVpU291cmNl
Q29kZSkKICAgICB7CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZTsKLSAgICAgICAgaWYgKHVpU291
cmNlQ29kZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSkg
ewotICAgICAgICAgICAgdmFyIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlID0gLyoqIEB0eXBlIHtX
ZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2V9ICovIHVpU291cmNlQ29kZTsKLSAg
ICAgICAgICAgIHNvdXJjZUZyYW1lID0gbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlw
dFNvdXJjZUZyYW1lKHRoaXMsIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKLSAgICAgICAgfSBl
bHNlIGlmICh1aVNvdXJjZUNvZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNv
dXJjZSkgewotICAgICAgICAgICAgICAgIHZhciBqYXZhU2NyaXB0U291cmNlID0gLyoqIEB0eXBl
IHtXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZX0gKi8gdWlTb3VyY2VDb2RlOwotICAgICAg
ICAgICAgICAgIHNvdXJjZUZyYW1lID0gbmV3IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNl
RnJhbWUodGhpcywgamF2YVNjcmlwdFNvdXJjZSk7Ci0gICAgICAgIH0gZWxzZQorICAgICAgICBz
d2l0Y2ggKHVpU291cmNlQ29kZS5jb250ZW50VHlwZSgpKSB7CisgICAgICAgIGNhc2UgV2ViSW5z
cGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0OgorICAgICAgICAgICAgaWYgKHVpU291cmNlQ29k
ZS5pc1NuaXBwZXQpCisgICAgICAgICAgICAgICAgc291cmNlRnJhbWUgPSBuZXcgV2ViSW5zcGVj
dG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJhbWUodGhpcywgdWlTb3VyY2VDb2RlKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzb3VyY2VGcmFtZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lKHRoaXMsIHVpU291cmNlQ29kZSk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1
bWVudDoKKyAgICAgICAgICAgIHNvdXJjZUZyYW1lID0gbmV3IFdlYkluc3BlY3Rvci5KYXZhU2Ny
aXB0U291cmNlRnJhbWUodGhpcywgdWlTb3VyY2VDb2RlKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlN0eWxlc2hlZXQ6CisgICAg
ICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBzb3VyY2VGcmFtZSA9IG5ldyBXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlRnJhbWUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KICAgICAgICAgdGhpcy5fc291cmNlRnJhbWVzQnlVSVNvdXJjZUNvZGUucHV0KHVpU291cmNl
Q29kZSwgc291cmNlRnJhbWUpOwogICAgICAgICByZXR1cm4gc291cmNlRnJhbWU7CiAgICAgfSwK
QEAgLTkzNiw4ICs5NDMsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9
IHsKIAogICAgIF91aVNvdXJjZUNvZGVGb3JtYXR0ZWQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkK
ICAgICB7Ci0gICAgICAgIGlmICh1aVNvdXJjZUNvZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3Iu
SmF2YVNjcmlwdFNvdXJjZSkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFu
YWdlci5yZXN0b3JlQnJlYWtwb2ludHModWlTb3VyY2VDb2RlKTsKKyAgICAgICAgV2ViSW5zcGVj
dG9yLmJyZWFrcG9pbnRNYW5hZ2VyLnJlc3RvcmVCcmVha3BvaW50cyh1aVNvdXJjZUNvZGUpOwog
ICAgIH0sCiAKICAgICBfdG9nZ2xlRm9ybWF0U291cmNlOiBmdW5jdGlvbigpCkBAIC05NzEsMTAg
Kzk3NywxNSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgaWYgKCF1aVNvdXJjZUNvZGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYg
KHVpU291cmNlQ29kZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKQor
ICAgICAgICBzd2l0Y2ggKHVpU291cmNlQ29kZS5jb250ZW50VHlwZSgpKSB7CisgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuRG9jdW1lbnQ6CisgICAgICAgIGNhc2UgV2Vi
SW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0OgogICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LkphdmFTY3JpcHRPdXRsaW5lRGlhbG9nLnNob3codGhpcy52aXNpYmxlVmlldywgdWlTb3VyY2VD
b2RlKTsKLSAgICAgICAgZWxzZSBpZiAodWlTb3VyY2VDb2RlIGluc3RhbmNlb2YgV2ViSW5zcGVj
dG9yLlN0eWxlU291cmNlKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRs
aW5lRGlhbG9nLnNob3codGhpcy52aXNpYmxlVmlldywgLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3Iu
U3R5bGVTb3VyY2V9ICovIHVpU291cmNlQ29kZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TdHlsZXNoZWV0OgorICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnNob3codGhpcy52aXNpYmxl
VmlldywgdWlTb3VyY2VDb2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAg
fSwKIAogICAgIF9pbnN0YWxsRGVidWdnZXJTaWRlYmFyQ29udHJvbGxlcjogZnVuY3Rpb24oKQpA
QCAtMTAyNSw4ICsxMDM2LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHZhciBuYW1lID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIGV2ZW50LmRhdGEu
bmFtZTsKICAgICAgICAgaWYgKCF1aVNvdXJjZUNvZGUuaXNTbmlwcGV0KQogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB2YXIgc25pcHBldEphdmFTY3JpcHRTb3VyY2UgPSAvKiogQHR5cGUg
e1dlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZX0gKi8gdWlTb3VyY2VDb2RlOwot
ICAgICAgICBXZWJJbnNwZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVsLnJlbmFtZVNjcmlwdFNuaXBw
ZXQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UsIG5hbWUpOworICAgICAgICBXZWJJbnNwZWN0b3Iu
c2NyaXB0U25pcHBldE1vZGVsLnJlbmFtZVNjcmlwdFNuaXBwZXQodWlTb3VyY2VDb2RlLCBuYW1l
KTsKICAgICB9LAogICAgICAgICAKICAgICAvKioKQEAgLTEwMzQsMTMgKzEwNDQsMTMgQEAgV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX3NuaXBw
ZXRDcmVhdGlvblJlcXVlc3RlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB2YXIg
c25pcHBldEphdmFTY3JpcHRTb3VyY2UgPSBXZWJJbnNwZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVs
LmNyZWF0ZVNjcmlwdFNuaXBwZXQoKTsKLSAgICAgICAgdGhpcy5fc2hvd1NvdXJjZUxpbmUoc25p
cHBldEphdmFTY3JpcHRTb3VyY2UpOworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gV2ViSW5z
cGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5jcmVhdGVTY3JpcHRTbmlwcGV0KCk7CisgICAgICAg
IHRoaXMuX3Nob3dTb3VyY2VMaW5lKHVpU291cmNlQ29kZSk7CiAgICAgICAgIAogICAgICAgICB2
YXIgc2hvdWxkSGlkZU5hdmlnYXRvciA9ICF0aGlzLl9uYXZpZ2F0b3JDb250cm9sbGVyLmlzTmF2
aWdhdG9yUGlubmVkKCk7CiAgICAgICAgIGlmICh0aGlzLl9uYXZpZ2F0b3JDb250cm9sbGVyLmlz
TmF2aWdhdG9ySGlkZGVuKCkpCiAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0b3JDb250cm9sbGVy
LnNob3dOYXZpZ2F0b3JPdmVybGF5KCk7Ci0gICAgICAgIHRoaXMuX25hdmlnYXRvci5yZW5hbWUo
c25pcHBldEphdmFTY3JpcHRTb3VyY2UsIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICB0
aGlzLl9uYXZpZ2F0b3IucmVuYW1lKHVpU291cmNlQ29kZSwgY2FsbGJhY2suYmluZCh0aGlzKSk7
CiAgICAgCiAgICAgICAgIC8qKgogICAgICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNvbW1pdHRl
ZApAQCAtMTA1MSwxMSArMTA2MSwxMSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgICAgICB0aGlzLl9uYXZpZ2F0b3JDb250cm9sbGVyLmhpZGVO
YXZpZ2F0b3JPdmVybGF5KCk7CiAKICAgICAgICAgICAgIGlmICghY29tbWl0dGVkKSB7Ci0gICAg
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5kZWxldGVTY3JpcHRT
bmlwcGV0KHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVsLmRlbGV0ZVNjcmlwdFNuaXBwZXQodWlTb3VyY2VDb2Rl
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IHRoaXMuX3Nob3dTb3VyY2VMaW5lKHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKKyAgICAgICAg
ICAgIHRoaXMuX3Nob3dTb3VyY2VMaW5lKHVpU291cmNlQ29kZSk7CiAgICAgICAgIH0KICAgICB9
LAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NuaXBw
ZXRKYXZhU2NyaXB0U291cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJhbWUuanMKaW5kZXggNzVlMDFjZmI2Zjgx
NTMxZWRlZGRiYjhiYzVmY2I5YzdkMmNmZWViNC4uMjgxZTdiMmVkNDBlNTBlY2QxNmI5NjJmNjM4
N2M4YjkyMjZhZDBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU25pcHBldEphdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwpAQCAt
MzIsMTMgKzMyLDEzIEBACiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lfQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsfSBzY3JpcHRzUGFuZWwKLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZh
U2NyaXB0U291cmNlfSBzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZQorICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKICAqLwotV2ViSW5zcGVjdG9yLlNuaXBw
ZXRKYXZhU2NyaXB0U291cmNlRnJhbWUgPSBmdW5jdGlvbihzY3JpcHRzUGFuZWwsIHNuaXBwZXRK
YXZhU2NyaXB0U291cmNlKQorV2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJh
bWUgPSBmdW5jdGlvbihzY3JpcHRzUGFuZWwsIHVpU291cmNlQ29kZSkKIHsKLSAgICBXZWJJbnNw
ZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLmNhbGwodGhpcywgc2NyaXB0c1BhbmVsLCBzbmlw
cGV0SmF2YVNjcmlwdFNvdXJjZSk7CisgICAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VG
cmFtZS5jYWxsKHRoaXMsIHNjcmlwdHNQYW5lbCwgdWlTb3VyY2VDb2RlKTsKICAgICAKLSAgICB0
aGlzLl9zbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSA9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlOwor
ICAgIHRoaXMuX3VpU291cmNlQ29kZSA9IHVpU291cmNlQ29kZTsKICAgICB0aGlzLl9ydW5CdXR0
b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbihXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlJ1biIpLCAiZXZhbHVhdGUtc25pcHBldC1zdGF0dXMtYmFyLWl0ZW0iKTsKICAgICB0aGlz
Ll9ydW5CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9ydW5CdXR0b25DbGlj
a2VkLCB0aGlzKTsKIH0KQEAgLTU0LDcgKzU0LDcgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZh
U2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogCiAgICAgX3J1bkJ1dHRvbkNsaWNrZWQ6
IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9k
ZWwuZXZhbHVhdGVTY3JpcHRTbmlwcGV0KHRoaXMuX3NuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsK
KyAgICAgICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5ldmFsdWF0ZVNjcmlwdFNu
aXBwZXQodGhpcy5fdWlTb3VyY2VDb2RlKTsKICAgICB9LAogCiAgICAgX19wcm90b19fOiBXZWJJ
bnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlwZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNoZWV0T3V0bGluZURpYWxvZy5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVTaGVldE91dGxpbmVE
aWFsb2cuanMKaW5kZXggNTUzNzE0MTMwZTMyNDc2ZDY0ODllZTc1ZmU3MzZmMGJhNzliNTNkZC4u
MGRjMTIyMDFlYTYyOTM4ZDdjN2RmOGNiNmExOGVjODUzNmQ2MTA2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNoZWV0T3V0bGluZURpYWxvZy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlU2hlZXRPdXRs
aW5lRGlhbG9nLmpzCkBAIC0zMCwyNiArMzAsMjYgQEAKICAqIEBjb25zdHJ1Y3RvcgogICogQGlt
cGxlbWVudHMge1dlYkluc3BlY3Rvci5TZWxlY3Rpb25EaWFsb2dDb250ZW50UHJvdmlkZXJ9CiAg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5WaWV3fSB2aWV3Ci0gKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5TdHlsZVNvdXJjZX0gc3R5bGVTb3VyY2UKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgKi8KLVdlYkluc3BlY3Rvci5TdHlsZVNoZWV0T3V0bGlu
ZURpYWxvZyA9IGZ1bmN0aW9uKHZpZXcsIHN0eWxlU291cmNlKQorV2ViSW5zcGVjdG9yLlN0eWxl
U2hlZXRPdXRsaW5lRGlhbG9nID0gZnVuY3Rpb24odmlldywgdWlTb3VyY2VDb2RlKQogewogICAg
IFdlYkluc3BlY3Rvci5TZWxlY3Rpb25EaWFsb2dDb250ZW50UHJvdmlkZXIuY2FsbCh0aGlzKTsK
IAogICAgIHRoaXMuX3J1bGVzID0gW107CiAgICAgdGhpcy5fdmlldyA9IHZpZXc7Ci0gICAgdGhp
cy5fc3R5bGVTb3VyY2UgPSBzdHlsZVNvdXJjZTsKKyAgICB0aGlzLl91aVNvdXJjZUNvZGUgPSB1
aVNvdXJjZUNvZGU7CiB9CiAKIC8qKgogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVmlld30gdmll
dwotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2V9IHN0eWxlU291cmNlCisgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQogICovCi1XZWJJ
bnNwZWN0b3IuU3R5bGVTaGVldE91dGxpbmVEaWFsb2cuc2hvdyA9IGZ1bmN0aW9uKHZpZXcsIHN0
eWxlU291cmNlKQorV2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnNob3cgPSBm
dW5jdGlvbih2aWV3LCB1aVNvdXJjZUNvZGUpCiB7CiAgICAgaWYgKFdlYkluc3BlY3Rvci5EaWFs
b2cuY3VycmVudEluc3RhbmNlKCkpCiAgICAgICAgIHJldHVybiBudWxsOwotICAgIHZhciBkZWxl
Z2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVTaGVldE91dGxpbmVEaWFsb2codmlldywgc3R5
bGVTb3VyY2UpOworICAgIHZhciBkZWxlZ2F0ZSA9IG5ldyBXZWJJbnNwZWN0b3IuU3R5bGVTaGVl
dE91dGxpbmVEaWFsb2codmlldywgdWlTb3VyY2VDb2RlKTsKICAgICB2YXIgZmlsdGVyZWRJdGVt
U2VsZWN0aW9uRGlhbG9nID0gbmV3IFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25E
aWFsb2coZGVsZWdhdGUpOwogICAgIFdlYkluc3BlY3Rvci5EaWFsb2cuc2hvdyh2aWV3LmVsZW1l
bnQsIGZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyk7CiB9CkBAIC0xMTMsNyArMTEzLDcgQEAg
V2ViSW5zcGVjdG9yLlN0eWxlU2hlZXRPdXRsaW5lRGlhbG9nLnByb3RvdHlwZSA9IHsKICAgCiAg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluZm9zLmxlbmd0aDsgKytpKSB7CiAgICAg
ICAgICAgICAgICAgdmFyIGluZm8gPSBpbmZvc1tpXTsKLSAgICAgICAgICAgICAgICBpZiAoaW5m
by5zb3VyY2VVUkwgPT09IHRoaXMuX3N0eWxlU291cmNlLmNvbnRlbnRVUkwoKSkgeworICAgICAg
ICAgICAgICAgIGlmIChpbmZvLnNvdXJjZVVSTCA9PT0gdGhpcy5fdWlTb3VyY2VDb2RlLmNvbnRl
bnRVUkwoKSkgewogICAgICAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVTaGVl
dC5jcmVhdGVGb3JJZChpbmZvLnN0eWxlU2hlZXRJZCwgZGlkR2V0U3R5bGVTaGVldC5iaW5kKHRo
aXMpKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVTb3VyY2Uu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlU291cmNlLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjMxYTI2MGQyZGNhM2E3M2RmYzRjZWZiMTg5
MWM5MWIzNzkyYWY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVTb3VyY2UuanMKKysr
IC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0g
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEdPT0dMRSBJTkMuCi0gKiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8qKgotICogQGNv
bnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0KLSAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRlbnRQcm92aWRlcn0gY29udGVudFByb3ZpZGVyCi0gKi8K
LVdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZSA9IGZ1bmN0aW9uKGNvbnRlbnRQcm92aWRlcikKLXsK
LSAgICBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLmNhbGwodGhpcywgY29udGVudFByb3ZpZGVy
LmNvbnRlbnRVUkwoKSwgY29udGVudFByb3ZpZGVyLCB0cnVlKTsKLX0KLQotV2ViSW5zcGVjdG9y
LlN0eWxlU291cmNlLnByb3RvdHlwZSA9IHsKLSAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5V
SVNvdXJjZUNvZGUucHJvdG90eXBlCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1dlYktpdC5xcmMKaW5kZXggZjY1N2RlN2FmMDcyM2Q5NTc2NWQ0YzE5YmI1YjYyYmI2
MDM5ZjJjZS4uMzQ4NmM0OTk2YzBjMjk4N2VhYjljMjE1ZmU4ZGM0YmRlOGJiYTc3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAtOTksNyAr
OTksNiBAQAogICAgIDxmaWxlPkluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIuanM8L2ZpbGU+CiAg
ICAgPGZpbGU+SW5zcGVjdG9yVmlldy5qczwvZmlsZT4KICAgICA8ZmlsZT5KYXZhU2NyaXB0Rm9y
bWF0dGVyLmpzPC9maWxlPgotICAgIDxmaWxlPkphdmFTY3JpcHRTb3VyY2UuanM8L2ZpbGU+CiAg
ICAgPGZpbGU+SmF2YVNjcmlwdFNvdXJjZUZyYW1lLmpzPC9maWxlPgogICAgIDxmaWxlPmpzZGlm
ZmxpYi5qczwvZmlsZT4KICAgICA8ZmlsZT5LZXlib2FyZFNob3J0Y3V0LmpzPC9maWxlPgpAQCAt
MTg0LDcgKzE4Myw2IEBACiAgICAgPGZpbGU+U3BsaXRWaWV3LmpzPC9maWxlPgogICAgIDxmaWxl
PlN0YXR1c0JhckJ1dHRvbi5qczwvZmlsZT4KICAgICA8ZmlsZT5TdHlsZVNoZWV0T3V0bGluZURp
YWxvZy5qczwvZmlsZT4KLSAgICA8ZmlsZT5TdHlsZVNvdXJjZS5qczwvZmlsZT4KICAgICA8Zmls
ZT5TdHlsZXNTb3VyY2VNYXBwaW5nLmpzPC9maWxlPgogICAgIDxmaWxlPlN0eWxlc1NpZGViYXJQ
YW5lLmpzPC9maWxlPgogICAgIDxmaWxlPlRhYmJlZEVkaXRvckNvbnRhaW5lci5qczwvZmlsZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9y
Lmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1s
CmluZGV4IDE4NGRhNTYwYzJiMTVhMDhkZGRkNTJiYTU1NWY0MGIwZTk1MWFhZGMuLmQxOTYxYjll
MzFiYTQ3YjdkMjdhM2JhOTI1NjUzZmU0ZjE0NDU2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAtMTMyLDcgKzEzMiw2IEBA
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU291cmNl
TWFwcGluZy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iVUlTb3VyY2VDb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJTY3JpcHQuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IkphdmFTY3JpcHRTb3VyY2UuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkxpbmtpZmllci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iRGVidWdnZXJTY3Jp
cHRNYXBwaW5nLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJQcmVzZW50YXRpb25Db25zb2xlTWVzc2FnZUhlbHBlci5qcyI+PC9zY3JpcHQ+CkBA
IC0xNjIsNyArMTYxLDYgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJQcm9ncmVzcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iUHJvZ3Jlc3NJbmRpY2F0b3IuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlN0eWxlc1NvdXJjZU1hcHBpbmcuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlN0eWxl
U291cmNlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJOZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkVsZW1lbnRzUGFuZWxEZXNjcmlwdG9yLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJOZXR3
b3JrUGFuZWxEZXNjcmlwdG9yLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYjFiYjRkZjc3MDY2MTE5
ZDViZGU4MDBlZGY1MDZjNmY5ZDM2MWE4Li5lMDE4ZGVhYmIxOWU2ZjY2ZTBjY2I2ZjMxNGYzODVj
ZGY0Y2VlMTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMTAtMTYgIFZzZXZvbG9kIFZs
YXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogR2V0
IHJpZCBvZiAobm93IGVtcHR5KSBKYXZhU2NyaXB0U291cmNlIGFuZCBTdHlsZVNvdXJjZSwgcmVu
YW1lIGFsbCB1c2FnZXMgdG8gVUlTb3VyY2VDb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk0NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRl
c3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVzdCk6CisgICAgICAgICogaHR0
cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXpl
X1dvcmtzcGFjZVRlc3QuSW5zcGVjdG9yVGVzdC5hZGRNb2NrVUlTb3VyY2VDb2RlVG9Xb3Jrc3Bh
Y2UpOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvbmV0d29yay11aXNvdXJjZWNvZGUtcHJv
dmlkZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQt
Zm9ybWF0dGVyLWJyZWFrcG9pbnRzLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NjcmlwdC1mb3JtYXR0ZXItY29uc29sZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9zY3JpcHQtZm9ybWF0dGVyLXNlYXJjaC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NvdXJjZS1mcmFtZS1jb3VudC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvZWRp
dC1pbnNwZWN0b3Itc3R5bGVzaGVldC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMv
c3R5bGVzLWhpc3RvcnkuaHRtbDoKKwogMjAxMi0xMC0xNSAgVnNldm9sb2QgVmxhc292ICA8dnNl
dmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFeHRyYWN0IGRvbWFp
biBzcGVjaWZpYyBlZGl0aW5nIGhhbmRsaW5nIGxvZ2ljIGZyb20gVUlTb3VyY2VDb2RlIChzdGVw
IDIpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXItdGVzdC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRl
c3QuanMKaW5kZXggYWRjODlmOWJiN2I1MjgzMzhmMWNhZDhlZWM4ZmQ1OTQ4ZjFlNTQ2MS4uMmZj
YmYxNTcwMmI4ZmNlYTQ4M2E4YzNjZDkxMzc0MzM5NjQ3MTI4MCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcworKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzCkBAIC0yMTksNyArMjE5
LDcgQEAgSW5zcGVjdG9yVGVzdC5zZXRCcmVha3BvaW50ID0gZnVuY3Rpb24oc291cmNlRnJhbWUs
IGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmwKIAogSW5zcGVjdG9yVGVzdC5yZW1vdmVCcmVh
a3BvaW50ID0gZnVuY3Rpb24oc291cmNlRnJhbWUsIGxpbmVOdW1iZXIpCiB7Ci0gICAgc291cmNl
RnJhbWUuX2JyZWFrcG9pbnRNYW5hZ2VyLmZpbmRCcmVha3BvaW50KHNvdXJjZUZyYW1lLl9qYXZh
U2NyaXB0U291cmNlLCBsaW5lTnVtYmVyKS5yZW1vdmUoKTsKKyAgICBzb3VyY2VGcmFtZS5fYnJl
YWtwb2ludE1hbmFnZXIuZmluZEJyZWFrcG9pbnQoc291cmNlRnJhbWUuX3VpU291cmNlQ29kZSwg
bGluZU51bWJlcikucmVtb3ZlKCk7CiB9OwogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMKaW5kZXggZWE4YTM4YmY5MjNlYmJkNmU2
Njc4NTU0MmVlNDI3MWM0Y2I3NDczZC4uNTExMTk0YjIxMjQxMzg0MzkwODVjYzc2ZTA3Nzk5OGUw
MDk0NWM3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29y
a3NwYWNlLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29y
a3NwYWNlLXRlc3QuanMKQEAgLTUzLDcgKzUzLDcgQEAgSW5zcGVjdG9yVGVzdC5hZGRNb2NrVUlT
b3VyY2VDb2RlVG9Xb3Jrc3BhY2UgPSBmdW5jdGlvbih1cmwsIHR5cGUsIGNvbnRlbnQpCiB7CiAg
ICAgdmFyIGlzRG9jdW1lbnQgPSB0eXBlID09PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5E
b2N1bWVudDsKICAgICB2YXIgbW9ja0NvbnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3Iu
U3RhdGljQ29udGVudFByb3ZpZGVyKHR5cGUsIGNvbnRlbnQpOwotICAgIHZhciB1aVNvdXJjZUNv
ZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UodXJsLCBtb2NrQ29udGVudFBy
b3ZpZGVyLCAhaXNEb2N1bWVudCk7CisgICAgdmFyIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlKHVybCwgbW9ja0NvbnRlbnRQcm92aWRlciwgIWlzRG9jdW1lbnQp
OwogICAgIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5wcm9qZWN0KCkuYWRkVUlTb3VyY2VD
b2RlKHVpU291cmNlQ29kZSk7CiB9CiAKQEAgLTY2LDEwICs2Niw5IEBAIEluc3BlY3RvclRlc3Qu
ZHVtcFVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgY2FsbGJhY2spCiB7CiAg
ICAgdmFyIHVybCA9IHVpU291cmNlQ29kZS51cmwucmVwbGFjZSgvLipMYXlvdXRUZXN0cy8sICJM
YXlvdXRUZXN0cyIpOwogICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSVNvdXJjZUNvZGU6
ICIgKyB1cmwpOwotICAgIGlmICh1aVNvdXJjZUNvZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3Iu
SmF2YVNjcmlwdFNvdXJjZSkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVUlT
b3VyY2VDb2RlIGlzIGVkaXRhYmxlOiAiICsgdWlTb3VyY2VDb2RlLmlzRWRpdGFibGUoKSk7Cisg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogIiAr
IHVpU291cmNlQ29kZS5pc0VkaXRhYmxlKCkpOworICAgIGlmICh1aVNvdXJjZUNvZGUuY29udGVu
dFR5cGUoKSA9PT0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0IHx8IHVpU291cmNl
Q29kZS5jb250ZW50VHlwZSgpID09PSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5Eb2N1bWVu
dCkKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVJU291cmNlQ29kZSBpcyBjb250
ZW50IHNjcmlwdDogIiArIHVpU291cmNlQ29kZS5pc0NvbnRlbnRTY3JpcHQpOwotICAgIH0KICAg
ICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQoZGlkUmVxdWVzdENvbnRlbnQpOwogCiAgICAg
ZnVuY3Rpb24gZGlkUmVxdWVzdENvbnRlbnQoY29udGVudCwgY29udGVudEVuY29kZWQsIG1pbWVU
eXBlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9p
bnQtbWFuYWdlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9p
bnQtbWFuYWdlci5odG1sCmluZGV4IDEwNjdmNDI0MGQwNmJhNDM4ZThlZDRhOWQyNGM0ZjA2ZDQ5
NDZlMzcuLjIwNzliZGQ0NDU5MGQ0ZWZlNzZiMWE1NDVhNjI3NDg1MzhmYWUwOTQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LW1hbmFnZXIuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1tYW5hZ2Vy
Lmh0bWwKQEAgLTExMiw3ICsxMTIsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBXb3Jrc3BhY2VN
b2NrLnByb3RvdHlwZSA9IHsKICAgICAgICAgX2FkZFVJU291cmNlQ29kZTogZnVuY3Rpb24odXJs
KQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3Bl
Y3Rvci5KYXZhU2NyaXB0U291cmNlKHVybCwgbnVsbCwgZmFsc2UpOworICAgICAgICAgICAgdmFy
IG1vY2tDb250ZW50UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXRpY0NvbnRlbnRQcm92
aWRlcihXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsICIiKTsKKyAgICAgICAgICAg
IHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh1cmwsIG1v
Y2tDb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRT
b3VyY2VNYXBwaW5nKGRlZmF1bHRNYXBwaW5nKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZXNb
dXJsXSA9IHVpU291cmNlQ29kZTsKICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VD
b2RlQWRkZWQsIHVpU291cmNlQ29kZSk7CkBAIC0xMjEsNyArMTIyLDggQEAgZnVuY3Rpb24gdGVz
dCgpCiAKICAgICAgICAgX2FkZFRlbXBvcmFyeVVJU291cmNlQ29kZTogZnVuY3Rpb24odXJsKQog
ICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rv
ci5KYXZhU2NyaXB0U291cmNlKHVybCwgbnVsbCwgbnVsbCwgZmFsc2UpOworICAgICAgICAgICAg
dmFyIG1vY2tDb250ZW50UHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXRpY0NvbnRlbnRQ
cm92aWRlcihXZWJJbnNwZWN0b3IucmVzb3VyY2VUeXBlcy5TY3JpcHQsICIiKTsKKyAgICAgICAg
ICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSh1cmws
IG1vY2tDb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5x
cSA9IDM0NTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRTb3VyY2VNYXBwaW5nKGRlZmF1
bHRNYXBwaW5nKTsKICAgICAgICAgICAgIHVpU291cmNlQ29kZXNbdXJsXSA9IHVpU291cmNlQ29k
ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVp
c291cmNlY29kZS1wcm92aWRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvbmV0d29yay11aXNvdXJjZWNvZGUtcHJvdmlkZXItZXhwZWN0ZWQudHh0CmluZGV4
IDllYjFiZTVjNDY4NGQzYjZhZTlkY2M0NjdiNzhjOWRjMGQyMGEwODcuLjMxODM1YzYyMDc2NDY1
N2Y4NzM2ODE2YjkyYjRjY2VkNzZjYmUxZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVpc291cmNlY29kZS1wcm92aWRlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL25ldHdvcmstdWlzb3VyY2Vjb2Rl
LXByb3ZpZGVyLWV4cGVjdGVkLnR4dApAQCAtMjAsNiArMjAsNyBAQCBVSVNvdXJjZUNvZGUgY29u
dGVudDogPHNjcmlwdCByZXNvdXJjZSBjb250ZW50PgogUnVubmluZzogdGVzdFN0eWxlc2hlZXRS
ZXNvdXJjZQogQ3JlYXRpbmcgcmVzb3VyY2UuCiBVSVNvdXJjZUNvZGU6IGh0dHA6Ly9mYWtlLnVy
bC8zCitVSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IHRydWUKIE1pbWUgdHlwZTogdGV4dC9jc3MK
IFVJU291cmNlQ29kZSBjb250ZW50OiA8c3R5bGVzaGVldCByZXNvdXJjZSBjb250ZW50PgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRl
ci1icmVha3BvaW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dC1mb3JtYXR0ZXItYnJlYWtwb2ludHMuaHRtbAppbmRleCBhNDk5Njg0ZGRlYmJhZjBhZWI4N2M1
YTM1NjM5ZGYxYTFiYzgwNGMyLi44YWZhMmFlN2U5YTc1Y2E5OWJjYWQ1Y2UyNzQxZTI0ZGEzYjk0
ZDE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZv
cm1hdHRlci1icmVha3BvaW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWJyZWFrcG9pbnRzLmh0bWwKQEAgLTQxLDcgKzQxLDcgQEAg
dmFyIHRlc3QgPSBmdW5jdGlvbigpCiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHJlc3VtZWQoKQog
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHNvdXJjZUZyYW1lLl9qYXZhU2NyaXB0U291
cmNlLnNldEZvcm1hdHRlZCh0cnVlLCBkaWRGb3JtYXRQYWdlKTsKKyAgICAgICAgICAgICAgICBz
b3VyY2VGcmFtZS5fdWlTb3VyY2VDb2RlLnNldEZvcm1hdHRlZCh0cnVlLCBkaWRGb3JtYXRQYWdl
KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZGlkRm9ybWF0UGFnZSgp
CkBAIC01NCw3ICs1NCw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgZnVu
Y3Rpb24gcGF1c2VkSW5GMUFnYWluKGNhbGxGcmFtZXMpCiAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgZHVtcEJyZWFrcG9pbnRTaWRlYmFyUGFuZSgid2hpbGUgcGF1c2VkIGluIHByZXR0
eSBwcmludGVkIik7Ci0gICAgICAgICAgICAgICAgc291cmNlRnJhbWUuX2phdmFTY3JpcHRTb3Vy
Y2Uuc2V0Rm9ybWF0dGVkKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBzb3VyY2VGcmFtZS5fdWlT
b3VyY2VDb2RlLnNldEZvcm1hdHRlZChmYWxzZSk7CiAgICAgICAgICAgICAgICAgZHVtcEJyZWFr
cG9pbnRTaWRlYmFyUGFuZSgid2hpbGUgcGF1c2VkIGluIHJhdyIpOwogICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucmVzdW1lRXhlY3V0aW9uKG5leHQpOwogICAgICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXIt
Y29uc29sZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3Jt
YXR0ZXItY29uc29sZS5odG1sCmluZGV4IDNhYTNkYTMzYzU5NThlNDVhYTM2YzdiYTk3M2E1NDgw
NDNmZDFkNzIuLjM1YWFhNjA1NDBjY2FkNDAwYWYyYjM5MTkzZWI0MDMzMjBmNjg4MGYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLWNv
bnNvbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZv
cm1hdHRlci1jb25zb2xlLmh0bWwKQEAgLTMzLDcgKzMzLDcgQEAgdmFyIHRlc3QgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlByZS1mb3JtYXQg
cm93IG1lc3NhZ2UgbGlzdDoiKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdChKU09OLnN0cmluZ2lmeShPYmplY3Qua2V5cyhzb3VyY2VGcmFtZS5fcm93TWVzc2FnZXMp
KSk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoSlNPTi5zdHJpbmdp
ZnkoT2JqZWN0LmtleXMoc291cmNlRnJhbWUuX21lc3NhZ2VCdWJibGVzKSkpOwotICAgICAgICAg
ICAgICAgIHNvdXJjZUZyYW1lLl9qYXZhU2NyaXB0U291cmNlLnNldEZvcm1hdHRlZCh0cnVlLCBk
aWRGb3JtYXRMaW5rVGV4dCk7CisgICAgICAgICAgICAgICAgc291cmNlRnJhbWUuX3VpU291cmNl
Q29kZS5zZXRGb3JtYXR0ZWQodHJ1ZSwgZGlkRm9ybWF0TGlua1RleHQpOwogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICBmdW5jdGlvbiBkaWRGb3JtYXRMaW5rVGV4dCgpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci1zZWFyY2gu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLXNl
YXJjaC5odG1sCmluZGV4IDY0YjY2MGI1NTdlMGM0YTZkOTQyYTBmZDViYzkyNGI4YmI4NDg4ODIu
Ljg5ZWFkNjhkZDlmNGI2NTFkYjZlNDdlYzdiYTIwMDIzNGQ0MDE1ZGIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLXNlYXJjaC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLXNl
YXJjaC5odG1sCkBAIC0yMCw3ICsyMCw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogCiAgICAg
ZnVuY3Rpb24gZGlkU2hvd1NjcmlwdFNvdXJjZShmcmFtZSkKICAgICB7Ci0gICAgICAgIHNjcmlw
dFNvdXJjZSA9IGZyYW1lLl9qYXZhU2NyaXB0U291cmNlOworICAgICAgICBzY3JpcHRTb3VyY2Ug
PSBmcmFtZS5fdWlTb3VyY2VDb2RlOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFNuaWZmZXIo
c2NyaXB0U291cmNlLl9jb250ZW50UHJvdmlkZXIsICJyZXF1ZXN0Q29udGVudCIsIHJlcXVlc3RD
b250ZW50U25pZmZlcik7CiAgICAgICAgIHNjcmlwdFNvdXJjZS5zZWFyY2hJbkNvbnRlbnQoIm1h
cmdpYy1zdHJpbmciLCB0cnVlLCBmYWxzZSwgZHVtcDEpOwogICAgIH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtc25pcHBldC1tb2RlbC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLmh0bWwK
aW5kZXggNTMxNWRmZjM4YzQwZDNkNmMxYzZjMjlhZWRjNDgyZWZlMmZhYzNmNS4uZjNlZDk1NTgw
MmI4OTgyNzRhNzA4MmM4YTM5ZWI2YzQ2ZWI3NjExZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLmh0bWwKQEAgLTIx
LDEwICsyMSwxMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgZnVuY3Rpb24gdGVzdFdvcmtz
cGFjZVJlc2V0KG5leHQpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJlc2V0U25pcHBldHNTZXR0
aW5ncygpOwotICAgICAgICAgICAgdmFyIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlID0gV2ViSW5z
cGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5jcmVhdGVTY3JpcHRTbmlwcGV0KCk7CisgICAgICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5j
cmVhdGVTY3JpcHRTbmlwcGV0KCk7CiAgICAgICAgICAgICB2YXIgc25pcHBldE5hbWUgPSAiVGVz
dFNuaXBwZXQiICsgTWF0aC5yYW5kb20oKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJTbmlwcGV0IGNyZWF0ZWQuIik7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2Ny
aXB0U25pcHBldE1vZGVsLnJlbmFtZVNjcmlwdFNuaXBwZXQoc25pcHBldEphdmFTY3JpcHRTb3Vy
Y2UsIHNuaXBwZXROYW1lKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0
TW9kZWwucmVuYW1lU2NyaXB0U25pcHBldCh1aVNvdXJjZUNvZGUsIHNuaXBwZXROYW1lKTsKICAg
ICAgICAgICAgIHdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUFkZGVk
KTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZXNldHRpbmcgc25pcHBl
dCBzY3JpcHQgbWFwcGluZy4iKTsKICAgICAgICAgICAgIHdvcmtzcGFjZUNvbnRyb2xsZXIuX21h
aW5GcmFtZU5hdmlnYXRlZCgpOwpAQCAtNDUsMzIgKzQ1LDMyIEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICB7CiAgICAgICAgICAgICByZXNldFNuaXBwZXRzU2V0dGluZ3MoKTsKIAotICAgICAg
ICAgICAgdmFyIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlMSA9IFdlYkluc3BlY3Rvci5zY3JpcHRT
bmlwcGV0TW9kZWwuY3JlYXRlU2NyaXB0U25pcHBldCgpOwotICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5yZW5hbWVTY3JpcHRTbmlwcGV0KHNuaXBwZXRKYXZhU2Ny
aXB0U291cmNlMSwgIlNuaXBwZXQxIik7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlMSA9
IFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwuY3JlYXRlU2NyaXB0U25pcHBldCgpOwor
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5yZW5hbWVTY3JpcHRT
bmlwcGV0KHVpU291cmNlQ29kZTEsICJTbmlwcGV0MSIpOwogICAgICAgICAgICAgdmFyIGNvbnRl
bnQgPSAiIjsKICAgICAgICAgICAgIGNvbnRlbnQgKz0gIi8vIFRoaXMgc25pcHBldCBkb2VzIG5v
dGhpbmcuXG4iOwogICAgICAgICAgICAgY29udGVudCArPSAidmFyIGkgPSAyKzI7XG4iOwotICAg
ICAgICAgICAgc25pcHBldEphdmFTY3JpcHRTb3VyY2UxLnNldFdvcmtpbmdDb3B5KGNvbnRlbnQp
OworICAgICAgICAgICAgdWlTb3VyY2VDb2RlMS5zZXRXb3JraW5nQ29weShjb250ZW50KTsKIAot
ICAgICAgICAgICAgdmFyIHNuaXBwZXRKYXZhU2NyaXB0U291cmNlMiA9IFdlYkluc3BlY3Rvci5z
Y3JpcHRTbmlwcGV0TW9kZWwuY3JlYXRlU2NyaXB0U25pcHBldCgpOwotICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5yZW5hbWVTY3JpcHRTbmlwcGV0KHNuaXBwZXRK
YXZhU2NyaXB0U291cmNlMiwgIlNuaXBwZXQyIik7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VD
b2RlMiA9IFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwuY3JlYXRlU2NyaXB0U25pcHBl
dCgpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5yZW5hbWVT
Y3JpcHRTbmlwcGV0KHVpU291cmNlQ29kZTIsICJTbmlwcGV0MiIpOwogICAgICAgICAgICAgY29u
dGVudCA9ICIiOwogICAgICAgICAgICAgY29udGVudCArPSAiLy8gVGhpcyBzbmlwcGV0IGNyZWF0
ZXMgYSBmdW5jdGlvbiB0aGF0IGRvZXMgbm90aGluZyBhbmQgcmV0dXJucyBpdC5cbiI7CiAgICAg
ICAgICAgICBjb250ZW50ICs9ICJmdW5jdGlvbiBkb2VzTm90aGluZygpIHtcbiI7CiAgICAgICAg
ICAgICBjb250ZW50ICs9ICIgICAgdmFyICBpID0gMisyO1xuIjsKICAgICAgICAgICAgIGNvbnRl
bnQgKz0gIn07XG4iOwogICAgICAgICAgICAgY29udGVudCArPSAiZG9lc05vdGhpbmc7XG4iOwot
ICAgICAgICAgICAgc25pcHBldEphdmFTY3JpcHRTb3VyY2UyLnNldFdvcmtpbmdDb3B5KGNvbnRl
bnQpOworICAgICAgICAgICAgdWlTb3VyY2VDb2RlMi5zZXRXb3JraW5nQ29weShjb250ZW50KTsK
IAotICAgICAgICAgICAgZnVuY3Rpb24gZXZhbHVhdGVTbmlwcGV0QW5kRHVtcEV2YWx1YXRpb25E
ZXRhaWxzKHNuaXBwZXRKYXZhU2NyaXB0U291cmNlLCBjYWxsYmFjaykKKyAgICAgICAgICAgIGZ1
bmN0aW9uIGV2YWx1YXRlU25pcHBldEFuZER1bXBFdmFsdWF0aW9uRGV0YWlscyh1aVNvdXJjZUNv
ZGUsIGNhbGxiYWNrKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU25pcHBldFNjcmlwdE1hcHBpbmcucHJvdG90eXBl
LCAiYWRkU2NyaXB0IiwgZHVtcFNjcmlwdCk7CiAgICAgICAgICAgICAgICAgLy8gSlNDIGRvZXMg
bm90IHN1cHBvcnQgY29tcGlsZS1hbmQtcnVuIGZvciBzbmlwcGV0IGV2YWx1YXRpb24sIHNvIGRp
ZmZlcmVudCBwbGF0Zm9ybXMgaGF2ZSBzbGlnaHRseSBkaWZmZXJlbnQgY29kZWZsb3cgaGVyZSwg
aGVuY2UgdHdvIHNuaWZmZXJzLgogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25p
ZmZlcihXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLCAiX3ByaW50UmVzdWx0Iiwg
ZHVtcFJlc3VsdCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdl
Ykluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90eXBlLCAiX3ByaW50UnVuU2NyaXB0
UmVzdWx0IiwgZHVtcFJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNjcmlw
dFNuaXBwZXRNb2RlbC5ldmFsdWF0ZVNjcmlwdFNuaXBwZXQoc25pcHBldEphdmFTY3JpcHRTb3Vy
Y2UpOwotICAgICAgICAgICAgICAgIHZhciBldmFsdWF0aW9uU291cmNlVVJMID0gV2ViSW5zcGVj
dG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5fZXZhbHVhdGlvblNvdXJjZVVSTChzbmlwcGV0SmF2YVNj
cmlwdFNvdXJjZSk7Ci0gICAgICAgICAgICAgICAgdmFyIHNuaXBwZXRJZCA9IFdlYkluc3BlY3Rv
ci5zY3JpcHRTbmlwcGV0TW9kZWwuX3NuaXBwZXRJZEZvckphdmFTY3JpcHRTb3VyY2UuZ2V0KHNu
aXBwZXRKYXZhU2NyaXB0U291cmNlKTsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2Ny
aXB0U25pcHBldE1vZGVsLmV2YWx1YXRlU2NyaXB0U25pcHBldCh1aVNvdXJjZUNvZGUpOworICAg
ICAgICAgICAgICAgIHZhciBldmFsdWF0aW9uU291cmNlVVJMID0gV2ViSW5zcGVjdG9yLnNjcmlw
dFNuaXBwZXRNb2RlbC5fZXZhbHVhdGlvblNvdXJjZVVSTCh1aVNvdXJjZUNvZGUpOworICAgICAg
ICAgICAgICAgIHZhciBzbmlwcGV0SWQgPSBXZWJJbnNwZWN0b3Iuc2NyaXB0U25pcHBldE1vZGVs
Ll9zbmlwcGV0SWRGb3JVSVNvdXJjZUNvZGUuZ2V0KHVpU291cmNlQ29kZSk7CiAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxhc3QgZXZhbHVhdGlvbiBzb3VyY2UgdXJs
IGZvciBzbmlwcGV0OiAiICsgZXZhbHVhdGlvblNvdXJjZVVSTCk7CiAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoc25pcHBldElkLCBXZWJJbnNwZWN0b3Iuc2NyaXB0
U25pcHBldE1vZGVsLl9zbmlwcGV0SWRGb3JTb3VyY2VVUkwoZXZhbHVhdGlvblNvdXJjZVVSTCks
ICJTbmlwcGV0IGNhbiBub3QgYmUgaWRlbnRpZmllZCBieSBpdHMgZXZhbHVhdGlvbiBzb3VyY2VV
UkwuIik7CiAKQEAgLTg2LDE2ICs4NiwxNiBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGV2YWx1YXRlU25pcHBldEFuZER1
bXBFdmFsdWF0aW9uRGV0YWlscyhzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZTEsIHN0ZXAyKTsKKyAg
ICAgICAgICAgIGV2YWx1YXRlU25pcHBldEFuZER1bXBFdmFsdWF0aW9uRGV0YWlscyh1aVNvdXJj
ZUNvZGUxLCBzdGVwMik7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAyKCkKICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBldmFsdWF0ZVNuaXBwZXRBbmREdW1wRXZhbHVhdGlvbkRl
dGFpbHMoc25pcHBldEphdmFTY3JpcHRTb3VyY2UyLCBzdGVwMyk7CisgICAgICAgICAgICAgICAg
ZXZhbHVhdGVTbmlwcGV0QW5kRHVtcEV2YWx1YXRpb25EZXRhaWxzKHVpU291cmNlQ29kZTIsIHN0
ZXAzKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQogICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGV2YWx1YXRlU25pcHBldEFuZER1bXBFdmFsdWF0
aW9uRGV0YWlscyhzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZTEsIG5leHQpOworICAgICAgICAgICAg
ICAgIGV2YWx1YXRlU25pcHBldEFuZER1bXBFdmFsdWF0aW9uRGV0YWlscyh1aVNvdXJjZUNvZGUx
LCBuZXh0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIF0pOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKaW5kZXggZWQ2MjI4
MDY0ZmE1YzJmYTk0MjQzNTI5NGVkMzM5YmEzNDIxMmFmMi4uOGNlOTEyMGVlMDZkNGJiNWZlYjdi
ZjBmODg4ZTU0ZWJhNDUwNmJhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCkBAIC0yNCw3ICsyNCw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgIAogICAgIGZ1bmN0aW9uIGNyZWF0ZVVJU291Y2VDb2RlKHVybCkKICAgICB7Ci0gICAg
ICAgIHZhciB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2Uo
dXJsLCBjb250ZW50UHJvdmlkZXIsIGZhbHNlKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9
IG5ldyBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKHVybCwgY29udGVudFByb3ZpZGVyLCBmYWxz
ZSk7CiAgICAgICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVudCA9IGZ1bmN0aW9uKGNhbGxi
YWNrKQogICAgICAgICB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU291
cmNlIHJlcXVlc3RlZCBmb3IgIiArIHVybCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc291cmNlLWZyYW1lLWNvdW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc291cmNlLWZyYW1lLWNvdW50Lmh0bWwKaW5kZXggODFlNDAzNDkxNjY0
OGIwZjhjNDc0OTFlZDk5MWYyODVhZWU0ODY3ZS4uNjQyN2Q5OTEwNDkxY2M4OWIxNTNhOWRkNDE3
ZjE0ZWI5NzM1YWU2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NvdXJjZS1mcmFtZS1jb3VudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zb3VyY2UtZnJhbWUtY291bnQuaHRtbApAQCAtMzQsOSArMzQsOSBAQCBmdW5jdGlvbiB0
ZXN0KCkKICAgICAgICAgICAgICAgICB2YXIgYWxyZWFkeVNob3duVVJMcyA9IHt9OwogICAgICAg
ICAgICAgICAgIGZ1bmN0aW9uIGRpZENyZWF0ZVNvdXJjZUZyYW1lKCkKICAgICAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghYWxyZWFkeVNob3duVVJMc1t0aGlzLl9qYXZh
U2NyaXB0U291cmNlLnVybF0pCisgICAgICAgICAgICAgICAgICAgIGlmICghYWxyZWFkeVNob3du
VVJMc1t0aGlzLl91aVNvdXJjZUNvZGUudXJsXSkKICAgICAgICAgICAgICAgICAgICAgICAgIHNv
dXJjZUZyYW1lQ291bnQgKz0gMTsKLSAgICAgICAgICAgICAgICAgICAgYWxyZWFkeVNob3duVVJM
c1t0aGlzLl9qYXZhU2NyaXB0U291cmNlLnVybF0gPSB0cnVlOworICAgICAgICAgICAgICAgICAg
ICBhbHJlYWR5U2hvd25VUkxzW3RoaXMuX3VpU291cmNlQ29kZS51cmxdID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUsICJ3YXNTaG93biIsIGRpZENyZWF0ZVNv
dXJjZUZyYW1lLCB0cnVlKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBh
Z2UoZGlkUmVsb2FkKTsKQEAgLTQ5LDcgKzQ5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAg
ICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2VBZ2FpbigpCiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKHBhbmVsLl9lZGl0b3JD
b250YWluZXIudmlzaWJsZVZpZXcuX2phdmFTY3JpcHRTb3VyY2UudXJsLmluZGV4T2YoInNjcmlw
dDMuanMiKSAhPT0gLTEpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1
ZShwYW5lbC5fZWRpdG9yQ29udGFpbmVyLnZpc2libGVWaWV3Ll91aVNvdXJjZUNvZGUudXJsLmlu
ZGV4T2YoInNjcmlwdDMuanMiKSAhPT0gLTEpOwogICAgICAgICAgICAgICAgIC8vIFRoZXJlIHNo
b3VsZCBiZSBtYXhpbXVtIDMgc291cmNlIGZyYW1lcyBzaG93bjoKICAgICAgICAgICAgICAgICAv
LyAgLSBmaXJzdCBvbmUgaXMgdGhlIGZpcnN0IHNob3duIChmaXJzdCB0YWIgYWRkZWQpCiAgICAg
ICAgICAgICAgICAgLy8gIC0gc2Vjb25kIG9uZSBpcyB0aGUgbGFzdCB2aWV3ZWQgKCJzY3JpcHQy
LmpzIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvZWRpdC1pbnNw
ZWN0b3Itc3R5bGVzaGVldC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9lZGl0
LWluc3BlY3Rvci1zdHlsZXNoZWV0Lmh0bWwKaW5kZXggYWE2ODQyNzg0NGNjYTQ5YjRjMjgyM2Ex
NWFjMGY4MmU1MGYzMWE0NS4uZGQwNzIwNGJkZjA5ZDA5ZTViMDczYWQ1NGRjMDQ4NGU5MWRiZmFl
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9lZGl0LWluc3BlY3Rv
ci1zdHlsZXNoZWV0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9lZGl0
LWluc3BlY3Rvci1zdHlsZXNoZWV0Lmh0bWwKQEAgLTMxLDE4ICszMSwxOCBAQCBmdW5jdGlvbiB0
ZXN0KCkKIAogICAgIGZ1bmN0aW9uIHN0ZXAyKHNvdXJjZUZyYW1lKQogICAgIHsKLSAgICAgICAg
dmFyIHN0eWxlU291cmNlID0gc291cmNlRnJhbWUuX3VpU291cmNlQ29kZTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkluc3BlY3RvciBzdHlsZXNoZWV0IFVSTDogIiArIHN0eWxl
U291cmNlLnBhcnNlZFVSTC5kaXNwbGF5TmFtZSk7Ci0gICAgICAgIHN0eWxlU291cmNlLnJlcXVl
c3RDb250ZW50KHByaW50Q29udGVudCgpKTsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHNv
dXJjZUZyYW1lLl91aVNvdXJjZUNvZGU7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJJbnNwZWN0b3Igc3R5bGVzaGVldCBVUkw6ICIgKyB1aVNvdXJjZUNvZGUucGFyc2VkVVJMLmRp
c3BsYXlOYW1lKTsKKyAgICAgICAgdWlTb3VyY2VDb2RlLnJlcXVlc3RDb250ZW50KHByaW50Q29u
dGVudCgpKTsKIAogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiXG5TZXR0aW5nIG5l
dyBjb250ZW50Iik7Ci0gICAgICAgIHN0eWxlU291cmNlLnNldFdvcmtpbmdDb3B5KCIjaW5zcGVj
dGVkIHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0iKTsKLSAgICAgICAgc3R5bGVTb3VyY2Uu
Y29tbWl0V29ya2luZ0NvcHkoc3RlcDMuYmluZCh0aGlzLCBzdHlsZVNvdXJjZSkpOworICAgICAg
ICB1aVNvdXJjZUNvZGUuc2V0V29ya2luZ0NvcHkoIiNpbnNwZWN0ZWQgeyBiYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbjsgfSIpOworICAgICAgICB1aVNvdXJjZUNvZGUuY29tbWl0V29ya2luZ0NvcHko
c3RlcDMuYmluZCh0aGlzLCB1aVNvdXJjZUNvZGUpKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBz
dGVwMyhzdHlsZVNvdXJjZSkKKyAgICBmdW5jdGlvbiBzdGVwMyh1aVNvdXJjZUNvZGUpCiAgICAg
ewotICAgICAgICBzdHlsZVNvdXJjZS5yZXF1ZXN0Q29udGVudChwcmludENvbnRlbnQoc2VsZWN0
Tm9kZSkpOworICAgICAgICB1aVNvdXJjZUNvZGUucmVxdWVzdENvbnRlbnQocHJpbnRDb250ZW50
KHNlbGVjdE5vZGUpKTsKICAgICAgICAgZnVuY3Rpb24gc2VsZWN0Tm9kZSgpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VsZWN0Tm9kZUFuZFdhaXRGb3JTdHlsZXMoImlu
c3BlY3RlZCIsIGR1bXBTdHlsZXMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3N0eWxlcy9zdHlsZXMtaGlzdG9yeS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0eWxl
cy9zdHlsZXMtaGlzdG9yeS5odG1sCmluZGV4IDM4OGY3MWI3MjFkZTNlNTYxNzk0YTYxMjJjNTAz
ZWY4YzZlZDMzOWIuLmQ2NGMxYjNkNzVlZDAyYzk0MTg3ZTQxZDYxODJjZTliMzBiNGE2NzIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvc3R5bGVzLWhpc3RvcnkuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3N0eWxlcy1oaXN0b3J5Lmh0bWwK
QEAgLTEyLDE4ICsxMiwxOCBAQCBmdW5jdGlvbiB0ZXN0KCkKIHsKICAgICBJbnNwZWN0b3JUZXN0
LnJ1bkFmdGVyQ2FjaGVkUmVzb3VyY2VzUHJvY2Vzc2VkKHJ1blRlc3RTdWl0ZSk7CiAKLSAgICB2
YXIgc3R5bGVTb3VyY2U7CisgICAgdmFyIHVpU291cmNlQ29kZTsKIAogICAgIGZ1bmN0aW9uIHJ1
blRlc3RTdWl0ZSgpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShb
CiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0U2V0VXAobmV4dCkKICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBmdW5jdGlvbiB2aXNpdFVJU291cmNlQ29kZXModWlTb3VyY2VDb2RlKQor
ICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHZpc2l0VUlTb3VyY2VDb2RlcyhjdXJyZW50VUlTb3Vy
Y2VDb2RlKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHVpU291
cmNlQ29kZS51cmwuaW5kZXhPZigic3R5bGVzLWhpc3RvcnkuY3NzIikgPT09IC0xKQorICAgICAg
ICAgICAgICAgICAgICBpZiAoY3VycmVudFVJU291cmNlQ29kZS51cmwuaW5kZXhPZigic3R5bGVz
LWhpc3RvcnkuY3NzIikgPT09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgICAgICAgICBzdHlsZVNvdXJjZSA9IHVpU291cmNlQ29kZTsKKyAgICAgICAg
ICAgICAgICAgICAgdWlTb3VyY2VDb2RlID0gY3VycmVudFVJU291cmNlQ29kZTsKICAgICAgICAg
ICAgICAgICAgICAgbmV4dCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3Iud29ya3NwYWNlLnVpU291cmNlQ29kZXMoKS5mb3JFYWNoKHZpc2l0VUlTb3Vy
Y2VDb2Rlcyk7CkBAIC0zMSwxNCArMzEsMTQgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAg
ICAgIGZ1bmN0aW9uIHRlc3RTZXRSZXNvdXJjZUNvbnRlbnRNaW5vcihuZXh0KQogICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIHN0eWxlU291cmNlLnNldFdvcmtpbmdDb3B5KCJib2R5IHtc
biAgbWFyZ2luOiAxNXB4O1xuICBwYWRkaW5nOiAxMHB4O1xufSIpOworICAgICAgICAgICAgICAg
IHVpU291cmNlQ29kZS5zZXRXb3JraW5nQ29weSgiYm9keSB7XG4gIG1hcmdpbjogMTVweDtcbiAg
cGFkZGluZzogMTBweDtcbn0iKTsKICAgICAgICAgICAgICAgICBkdW1wSGlzdG9yeShuZXh0KSgp
OwogICAgICAgICAgICAgfSwKIAogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdFNldFJlc291cmNl
Q29udGVudE1ham9yKG5leHQpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc3R5bGVT
b3VyY2Uuc2V0V29ya2luZ0NvcHkoImJvZHkge1xuICBtYXJnaW46IDIwcHg7XG4gIHBhZGRpbmc6
IDEwcHg7XG59Iik7Ci0gICAgICAgICAgICAgICAgc3R5bGVTb3VyY2UuY29tbWl0V29ya2luZ0Nv
cHkoZHVtcEhpc3RvcnkobmV4dCkpOworICAgICAgICAgICAgICAgIHVpU291cmNlQ29kZS5zZXRX
b3JraW5nQ29weSgiYm9keSB7XG4gIG1hcmdpbjogMjBweDtcbiAgcGFkZGluZzogMTBweDtcbn0i
KTsKKyAgICAgICAgICAgICAgICB1aVNvdXJjZUNvZGUuY29tbWl0V29ya2luZ0NvcHkoZHVtcEhp
c3RvcnkobmV4dCkpOwogICAgICAgICAgICAgfSwKIAogICAgICAgICAgICAgZnVuY3Rpb24gdGVz
dFNldENvbnRlbnRWaWFNb2RlbE1pbm9yKG5leHQpCkBAIC05NSwxMCArOTUsMTAgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgewogICAgICAgICBmdW5jdGlvbiByZXN1bHQoKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiSGlzdG9yeSBsZW5ndGg6ICIgKyBz
dHlsZVNvdXJjZS5oaXN0b3J5Lmxlbmd0aCk7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHN0eWxlU291cmNlLmhpc3RvcnkubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJIaXN0b3J5IGxlbmd0aDogIiArIHVpU291cmNlQ29kZS5oaXN0
b3J5Lmxlbmd0aCk7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29k
ZS5oaXN0b3J5Lmxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkl0ZW0gIiArIGkgKyAiOiIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KHN0eWxlU291cmNlLmhpc3RvcnlbaV0uY29udGVudCk7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQodWlTb3VyY2VDb2RlLmhpc3RvcnlbaV0uY29u
dGVudCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgIH0K
</data>
<flag name="review"
          id="182084"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>