<?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>90294</bug_id>
          
          <creation_ts>2012-06-29 10:26:24 -0700</creation_ts>
          <short_desc>Web Inspector: Save scroll selection and cursor position of SourceFrames in sources panel.</short_desc>
          <delta_ts>2012-07-03 02:29:02 -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>
          <dependson>90293</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>aandrey</cc>
    
    <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>660608</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-06-29 10:26:24 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661586</commentid>
    <comment_count>1</comment_count>
      <attachid>150442</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-02 10:20:59 -0700</bug_when>
    <thetext>Created attachment 150442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662048</commentid>
    <comment_count>2</comment_count>
      <attachid>150557</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-03 01:24:43 -0700</bug_when>
    <thetext>Created attachment 150557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662061</commentid>
    <comment_count>3</comment_count>
      <attachid>150557</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-07-03 01:50:58 -0700</bug_when>
    <thetext>Comment on attachment 150557
Patch

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

&gt; Source/WebCore/inspector/front-end/TabbedEditorContainer.js:472
&gt; +        {

style nit: { should be on the previous line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662073</commentid>
    <comment_count>4</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-03 02:29:02 -0700</bug_when>
    <thetext>Committed r121750: &lt;http://trac.webkit.org/changeset/121750&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150442</attachid>
            <date>2012-07-02 10:20:59 -0700</date>
            <delta_ts>2012-07-03 01:24:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90294-20120702212057.patch</filename>
            <type>text/plain</type>
            <size>30609</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNjc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDlmYzNmOGM2ODlmZTI0
MjU3NWM2MzIzZGI3MTRlNzAwNGVjNGQyOS4uNmExYzE3MTc1ZjViZjdhYjUwYjcwMDc4YTM1MTEz
ODdkMjRmMWJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTA3LTAyICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFNhdmUgc2Nyb2xsIHNlbGVjdGlvbiBhbmQgY3Vyc29yIHBvc2l0aW9uIG9mIFNvdXJjZUZy
YW1lcyBpbiBzb3VyY2VzIHBhbmVsLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTAyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTY3JvbGwgYW5kIHNlbGVjdGlvbiBjaGFuZ2UgaGFuZGxpbmcgaXMgbm93
IGRlbGVnYXRlZCBmcm9tIFRleHRWaWV3ZXIgdG8gU291cmNlRnJhbWUuCisgICAgICAgIFNvdXJj
ZUZyYW1lIG5vdyBkaXNwYXRjaGVzIFNjcm9sbENoYW5nZWQgYW5kIFNlbGVjdGlvbkNoYW5nZWQg
ZXZlbnRzLgorICAgICAgICBUYWJiZWRFZGl0b3JDb250YWluZXIgbm93IHNhdmVzIHNjcm9sbCBh
bmQgc2VsZWN0aW9uIGluZm9ybWF0aW9uIHRvZ2V0aGVyCisgICAgICAgIHdpdGggdGhlIHVybCBo
aXN0b3J5IGFuZCByZXN0b3JlcyBzY3JvbGwgYW5kIHNlbGVjdGlvbiBvbiByZXNvdXJjZSBvcGVu
aW5nLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJh
bWUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3Rv
dHlwZS5zZXRFeGVjdXRpb25MaW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Nv
dXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlw
ZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
LndpbGxIaWRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUu
aGlnaGxpZ2h0TGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90
eXBlLnJldmVhbExpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3Rv
dHlwZS5fY2xlYXJMaW5lVG9SZXZlYWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLnByb3RvdHlwZS5zY3JvbGxUb0xpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJj
ZUZyYW1lLnByb3RvdHlwZS5fY2xlYXJMaW5lVG9TY3JvbGxUbyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLnNldFNlbGVjdGlvbik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9pbm5lclNldFNlbGVjdGlvbklmTmVlZGVk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuc2V0Q29udGVu
dCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLmNvbW1pdEVk
aXRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5zZWxl
Y3Rpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5
cGUuc2Nyb2xsQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFZpZXdlckRlbGVn
YXRlRm9yU291cmNlRnJhbWUucHJvdG90eXBlLnNlbGVjdGlvbkNoYW5nZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRleHRWaWV3ZXJEZWxlZ2F0ZUZvclNvdXJjZUZyYW1lLnByb3RvdHlwZS5z
Y3JvbGxDaGFuZ2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRv
ckNvbnRhaW5lci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWlu
ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5wcm90b3R5
cGUuX2FkZFNjcm9sbEFuZFNlbGVjdGlvbkxpc3RlbmVycyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5fcmVtb3ZlU2Nyb2xsQW5kU2VsZWN0
aW9uTGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWlu
ZXIucHJvdG90eXBlLl9zY3JvbGxDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJi
ZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLl9zZWxlY3Rpb25DaGFuZ2VkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLl9hcHBlbmRGaWxl
VGFiKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90
eXBlLl90YWJDbG9zZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRh
aW5lci5IaXN0b3J5SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29u
dGFpbmVyLkhpc3RvcnlJdGVtLmZyb21PYmplY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRh
YmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5SXRlbS5wcm90b3R5cGUuc2VyaWFsaXplVG9PYmpl
Y3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeS5m
cm9tT2JqZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIu
SGlzdG9yeS5wcm90b3R5cGUuaW5kZXgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVk
aXRvckNvbnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZS5zZWxlY3Rpb25SYW5nZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnkucHJvdG90eXBlLnVw
ZGF0ZVNlbGVjdGlvblJhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JD
b250YWluZXIuSGlzdG9yeS5wcm90b3R5cGUuc2Nyb2xsTGluZU51bWJlcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnkucHJvdG90eXBlLnVwZGF0
ZVNjcm9sbExpbmVOdW1iZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNv
bnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZS5yZW1vdmUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZS5z
YXZlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9y
eS5wcm90b3R5cGUuc2V0IF9zZXJpYWxpemVUb09iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9UZXh0RWRpdG9yTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4
dFJhbmdlLmZyb21PYmplY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRSYW5nZS5wcm90
b3R5cGUuY2xvbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRSYW5nZS5wcm90b3R5cGUu
c2VyaWFsaXplVG9PYmplY3QpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGV4dFZp
ZXdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZS5faGFu
ZGxlU2Nyb2xsQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFZpZXdlci5wcm90
b3R5cGUuc2Nyb2xsVG9MaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyLnBy
b3RvdHlwZS5faGFuZGxlU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
ZXh0Vmlld2VyLnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4
dFZpZXdlci5wcm90b3R5cGUuX2hhbmRsZUZvY3VzZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRleHRWaWV3ZXIucHJvdG90eXBlLndpbGxIaWRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
ZXh0Vmlld2VyRGVsZWdhdGUucHJvdG90eXBlLnNlbGVjdGlvbkNoYW5nZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRleHRWaWV3ZXJEZWxlZ2F0ZS5wcm90b3R5cGUuc2Nyb2xsQ2hhbmdlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvckNodW5rZWRQYW5lbC5wcm90b3R5cGUu
c2Nyb2xsVG9MaW5lKToKKwogMjAxMi0wNy0wMiAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8cmFr
dWNvQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0VGTF0gVW5yZXZpZXdlZCBidWlsZCBmaXggd2l0
aCBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSBhZnRlciByMTIxNDY3LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJhbWUu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VG
cmFtZS5qcwppbmRleCBmNTliMDljNjc5YmUxZDJlOGExZTljZmEzMDI2NDViZjBkODIzNjk0Li4w
ZGY5ZTM4NTkxNDY2ZTBlYzgxZjE3YjMxODQ4NGQ2NGU4OGVjZGIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRTb3VyY2VG
cmFtZS5qcwpAQCAtNDQwLDkgKzQ0MCw5IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNl
RnJhbWUucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy5sb2FkZWQpIHsKICAgICAgICAg
ICAgIHRoaXMudGV4dFZpZXdlci5hZGREZWNvcmF0aW9uKGxpbmVOdW1iZXIsICJ3ZWJraXQtZXhl
Y3V0aW9uLWxpbmUiKTsKICAgICAgICAgICAgIHRoaXMucmV2ZWFsTGluZSh0aGlzLl9leGVjdXRp
b25MaW5lTnVtYmVyKTsKKyAgICAgICAgICAgIGlmICh0aGlzLmNhbkVkaXRTb3VyY2UoKSkKKyAg
ICAgICAgICAgICAgICB0aGlzLnNldFNlbGVjdGlvbihXZWJJbnNwZWN0b3IuVGV4dFJhbmdlLmNy
ZWF0ZUZyb21Mb2NhdGlvbihsaW5lTnVtYmVyLCAwKSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYg
KHRoaXMuY2FuRWRpdFNvdXJjZSgpKQotICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3Rpb24oV2Vi
SW5zcGVjdG9yLlRleHRSYW5nZS5jcmVhdGVGcm9tTG9jYXRpb24obGluZU51bWJlciwgMCkpOwog
ICAgIH0sCiAKICAgICBjbGVhckV4ZWN1dGlvbkxpbmU6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCmluZGV4IGU2YmU2
ZjcxOTc3YzY0NjYwOTA3Nzg1ZGMxYzM5YzQ4MTBhZDQ4Y2MuLjZhYTBjNDBkNmJmOGNhMjEwMmQy
NTA4MDM2YTQ2N2NmYWU0YzcwMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwpAQCAtNzUsMTEgKzc1LDE3IEBAIFdlYkluc3BlY3Rv
ci5Tb3VyY2VGcmFtZS5jcmVhdGVTZWFyY2hSZWdleCA9IGZ1bmN0aW9uKHF1ZXJ5KQogICAgIHJl
dHVybiByZWdleDsKIH0KIAorV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLkV2ZW50cyA9IHsKKyAg
ICBTY3JvbGxDaGFuZ2VkOiAiU2Nyb2xsQ2hhbmdlZCIsCisgICAgU2VsZWN0aW9uQ2hhbmdlZDog
IlNlbGVjdGlvbkNoYW5nZWQiCit9CisKIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5
cGUgPSB7CiAgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX2Vu
c3VyZUNvbnRlbnRMb2FkZWQoKTsKICAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5zaG93KHRoaXMu
ZWxlbWVudCk7CisgICAgICAgIHRoaXMuX2lubmVyU2V0U2VsZWN0aW9uSWZOZWVkZWQoKTsKICAg
ICB9LAogCiAgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKQEAgLTkwLDYgKzk2LDcgQEAgV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9jbGVhckxp
bmVIaWdobGlnaHQoKTsKICAgICAgICAgdGhpcy5fY2xlYXJMaW5lVG9SZXZlYWwoKTsKKyAgICAg
ICAgdGhpcy5fY2xlYXJMaW5lVG9TY3JvbGxUbygpOwogICAgIH0sCiAKICAgICBkZWZhdWx0Rm9j
dXNlZEVsZW1lbnQ6IGZ1bmN0aW9uKCkKQEAgLTE1NCw2ICsxNjEsNyBAQCBXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgIGhpZ2hsaWdodExpbmU6IGZ1bmN0aW9uKGxp
bmUpCiAgICAgewogICAgICAgICB0aGlzLl9jbGVhckxpbmVUb1JldmVhbCgpOworICAgICAgICB0
aGlzLl9jbGVhckxpbmVUb1Njcm9sbFRvKCk7CiAgICAgICAgIGlmICh0aGlzLmxvYWRlZCkKICAg
ICAgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuaGlnaGxpZ2h0TGluZShsaW5lKTsKICAgICAgICAg
ZWxzZQpAQCAtMTcxLDI2ICsxNzksNTAgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3Rv
dHlwZSA9IHsKICAgICByZXZlYWxMaW5lOiBmdW5jdGlvbihsaW5lKQogICAgIHsKICAgICAgICAg
dGhpcy5fY2xlYXJMaW5lSGlnaGxpZ2h0KCk7CisgICAgICAgIHRoaXMuX2NsZWFyTGluZVRvU2Ny
b2xsVG8oKTsKICAgICAgICAgaWYgKHRoaXMubG9hZGVkKQogICAgICAgICAgICAgdGhpcy5fdGV4
dFZpZXdlci5yZXZlYWxMaW5lKGxpbmUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aGlz
Ll9saW5lVG9SZXZlYWwgPSBsaW5lOwogICAgIH0sCiAKKyAgICBfY2xlYXJMaW5lVG9SZXZlYWw6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9saW5lVG9SZXZlYWw7Cisg
ICAgfSwKKworICAgIHNjcm9sbFRvTGluZTogZnVuY3Rpb24obGluZSkKKyAgICB7CisgICAgICAg
IHRoaXMuX2NsZWFyTGluZUhpZ2hsaWdodCgpOworICAgICAgICB0aGlzLl9jbGVhckxpbmVUb1Jl
dmVhbCgpOworICAgICAgICBpZiAodGhpcy5sb2FkZWQpCisgICAgICAgICAgICB0aGlzLl90ZXh0
Vmlld2VyLnNjcm9sbFRvTGluZShsaW5lKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhp
cy5fbGluZVRvU2Nyb2xsVG8gPSBsaW5lOworICAgIH0sCisKKyAgICBfY2xlYXJMaW5lVG9TY3Jv
bGxUbzogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2xpbmVUb1Njcm9s
bFRvOworICAgIH0sCisKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UZXh0
UmFuZ2V9IHRleHRSYW5nZQogICAgICAqLwogICAgIHNldFNlbGVjdGlvbjogZnVuY3Rpb24odGV4
dFJhbmdlKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMubG9hZGVkKQotICAgICAgICAgICAgdGhp
cy5fdGV4dFZpZXdlci5zZXRTZWxlY3Rpb24odGV4dFJhbmdlKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgdGhpcy5fc2VsZWN0aW9uVG9TZXQgPSB0ZXh0UmFuZ2U7CisgICAgICAgIHRoaXMu
X3NlbGVjdGlvblRvU2V0ID0gdGV4dFJhbmdlOworICAgICAgICB0aGlzLl9pbm5lclNldFNlbGVj
dGlvbklmTmVlZGVkKCk7CiAgICAgfSwKIAotICAgIF9jbGVhckxpbmVUb1JldmVhbDogZnVuY3Rp
b24oKQorICAgIF9pbm5lclNldFNlbGVjdGlvbklmTmVlZGVkOiBmdW5jdGlvbigpCiAgICAgewot
ICAgICAgICBkZWxldGUgdGhpcy5fbGluZVRvUmV2ZWFsOworICAgICAgICBpZiAodHlwZW9mIHRo
aXMuX3NlbGVjdGlvblRvU2V0ID09PSAib2JqZWN0IikgeworICAgICAgICAgICAgaWYgKHRoaXMu
bG9hZGVkICYmIHRoaXMuaXNTaG93aW5nKCkpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl90ZXh0
Vmlld2VyLnNldFNlbGVjdGlvbih0aGlzLl9zZWxlY3Rpb25Ub1NldCk7CisgICAgICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX3NlbGVjdGlvblRvU2V0OworICAgICAgICAgICAgfQorICAgICAgICB9
CiAgICAgfSwKIAogICAgIGJlZm9yZVRleHRDaGFuZ2VkOiBmdW5jdGlvbigpCkBAIC0yMjksMTEg
KzI2MSwxMyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgZGVsZXRlIHRoaXMuX2xpbmVUb1JldmVhbDsKICAgICAgICAgfQogCi0gICAgICAgIGlm
ICh0eXBlb2YgdGhpcy5fc2VsZWN0aW9uVG9TZXQgPT09ICJvYmplY3QiKSB7Ci0gICAgICAgICAg
ICB0aGlzLnNldFNlbGVjdGlvbih0aGlzLl9zZWxlY3Rpb25Ub1NldCk7Ci0gICAgICAgICAgICBk
ZWxldGUgdGhpcy5fc2VsZWN0aW9uVG9TZXQ7CisgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fbGlu
ZVRvU2Nyb2xsVG8gPT09ICJudW1iZXIiKSB7CisgICAgICAgICAgICB0aGlzLnNjcm9sbFRvTGlu
ZSh0aGlzLl9saW5lVG9TY3JvbGxUbyk7CisgICAgICAgICAgICBkZWxldGUgdGhpcy5fbGluZVRv
U2Nyb2xsVG87CiAgICAgICAgIH0KIAorICAgICAgICB0aGlzLl9pbm5lclNldFNlbGVjdGlvbklm
TmVlZGVkKCk7CisKICAgICAgICAgaWYgKHRoaXMuX2RlbGF5ZWRGaW5kU2VhcmNoTWF0Y2hlcykg
ewogICAgICAgICAgICAgdGhpcy5fZGVsYXllZEZpbmRTZWFyY2hNYXRjaGVzKCk7CiAgICAgICAg
ICAgICBkZWxldGUgdGhpcy5fZGVsYXllZEZpbmRTZWFyY2hNYXRjaGVzOwpAQCAtNDk2LDYgKzUz
MCwyMiBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAqLwog
ICAgIGNvbW1pdEVkaXRpbmc6IGZ1bmN0aW9uKHRleHQpCiAgICAgeworICAgIH0sCisKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UZXh0UmFuZ2V9IHRleHRSYW5nZQorICAg
ICAqLworICAgIHNlbGVjdGlvbkNoYW5nZWQ6IGZ1bmN0aW9uKHRleHRSYW5nZSkKKyAgICB7Cisg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZS5FdmVudHMuU2VsZWN0aW9uQ2hhbmdlZCwgdGV4dFJhbmdlKTsKKyAgICB9LAorCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKi8KKyAgICBzY3Jv
bGxDaGFuZ2VkOiBmdW5jdGlvbihsaW5lTnVtYmVyKQorICAgIHsKKyAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLkV2ZW50cy5TY3Jv
bGxDaGFuZ2VkLCBsaW5lTnVtYmVyKTsKICAgICB9CiB9CiAKQEAgLTUyNyw2ICs1NzcsMjIgQEAg
V2ViSW5zcGVjdG9yLlRleHRWaWV3ZXJEZWxlZ2F0ZUZvclNvdXJjZUZyYW1lLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fc291cmNlRnJhbWUuY29tbWl0RWRpdGluZyh0aGlzLl9zb3VyY2VG
cmFtZS5fdGV4dE1vZGVsLnRleHQpOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5UZXh0UmFuZ2V9IHRleHRSYW5nZQorICAgICAqLworICAgIHNlbGVjdGlv
bkNoYW5nZWQ6IGZ1bmN0aW9uKHRleHRSYW5nZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3NvdXJj
ZUZyYW1lLnNlbGVjdGlvbkNoYW5nZWQodGV4dFJhbmdlKTsKKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKi8KKyAgICBzY3JvbGxDaGFu
Z2VkOiBmdW5jdGlvbihsaW5lTnVtYmVyKQorICAgIHsKKyAgICAgICAgdGhpcy5fc291cmNlRnJh
bWUuc2Nyb2xsQ2hhbmdlZChsaW5lTnVtYmVyKTsKKyAgICB9LAorCiAgICAgcG9wdWxhdGVMaW5l
R3V0dGVyQ29udGV4dE1lbnU6IGZ1bmN0aW9uKGNvbnRleHRNZW51LCBsaW5lTnVtYmVyKQogICAg
IHsKICAgICAgICAgdGhpcy5fc291cmNlRnJhbWUucG9wdWxhdGVMaW5lR3V0dGVyQ29udGV4dE1l
bnUoY29udGV4dE1lbnUsIGxpbmVOdW1iZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9UYWJiZWRFZGl0b3JDb250YWluZXIuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcwppbmRleCBj
MThlMDA1MTFkOTgzNjVjYWQzYzJjOGJhZWJjN2NkOWY1OWNmYWZmLi4zMzUyYmRhMTQ2ZTNlMjFl
YmZjYTA1MmU0ZTM1NjBmZTJjNWFjODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVkaXRvckNvbnRhaW5lci5qcwpAQCAtNjIs
NyArNjIsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyID0gZnVuY3Rpb24o
ZGVsZWdhdGUsIHNldHRpbmdOYW1lKQogICAgIHRoaXMuX2xvYWRlZFVSTHMgPSB7fTsKIAogICAg
IHRoaXMuX3ByZXZpb3VzbHlWaWV3ZWRGaWxlc1NldHRpbmcgPSBXZWJJbnNwZWN0b3Iuc2V0dGlu
Z3MuY3JlYXRlU2V0dGluZyhzZXR0aW5nTmFtZSwgW10pOwotICAgIHRoaXMuX2hpc3RvcnkgPSBu
ZXcgV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5KHRoaXMuX3ByZXZp
b3VzbHlWaWV3ZWRGaWxlc1NldHRpbmcuZ2V0KCkpOworICAgIHRoaXMuX2hpc3RvcnkgPSBXZWJJ
bnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnkuZnJvbU9iamVjdCh0aGlzLl9w
cmV2aW91c2x5Vmlld2VkRmlsZXNTZXR0aW5nLmdldCgpKTsKIH0KIAogCkBAIC0xMDgsNiArMTA4
LDM3IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewog
ICAgICAgICB0aGlzLl9pbm5lclNob3dGaWxlKHVpU291cmNlQ29kZSwgdHJ1ZSk7CiAgICAgfSwK
IAorICAgIF9hZGRTY3JvbGxBbmRTZWxlY3Rpb25MaXN0ZW5lcnM6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMuX2N1cnJlbnRGaWxlKTsKKyAgICAgICAgdmFy
IHNvdXJjZUZyYW1lID0gdGhpcy5fZGVsZWdhdGUudmlld0ZvckZpbGUodGhpcy5fY3VycmVudEZp
bGUpOworICAgICAgICBzb3VyY2VGcmFtZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZS5FdmVudHMuU2Nyb2xsQ2hhbmdlZCwgdGhpcy5fc2Nyb2xsQ2hhbmdlZCwgdGhp
cyk7CisgICAgICAgIHNvdXJjZUZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lLkV2ZW50cy5TZWxlY3Rpb25DaGFuZ2VkLCB0aGlzLl9zZWxlY3Rpb25DaGFuZ2Vk
LCB0aGlzKTsKKyAgICB9LAorCisgICAgX3JlbW92ZVNjcm9sbEFuZFNlbGVjdGlvbkxpc3RlbmVy
czogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9jdXJyZW50RmlsZSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fZGVsZWdh
dGUudmlld0ZvckZpbGUodGhpcy5fY3VycmVudEZpbGUpOworICAgICAgICBzb3VyY2VGcmFtZS5y
ZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5FdmVudHMuU2Nyb2xs
Q2hhbmdlZCwgdGhpcy5fc2Nyb2xsQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHNvdXJjZUZyYW1l
LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLkV2ZW50cy5TZWxl
Y3Rpb25DaGFuZ2VkLCB0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLCB0aGlzKTsKKyAgICB9LAorCisg
ICAgX3Njcm9sbENoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIGxp
bmVOdW1iZXIgPSAvKiogQHR5cGUge251bWJlcn0gKi8gZXZlbnQuZGF0YTsKKyAgICAgICAgdGhp
cy5faGlzdG9yeS51cGRhdGVTY3JvbGxMaW5lTnVtYmVyKHRoaXMuX2N1cnJlbnRGaWxlLnVybCwg
bGluZU51bWJlcik7CisgICAgICAgIHRoaXMuX2hpc3Rvcnkuc2F2ZSh0aGlzLl9wcmV2aW91c2x5
Vmlld2VkRmlsZXNTZXR0aW5nKTsKKyAgICB9LAorCisgICAgX3NlbGVjdGlvbkNoYW5nZWQ6IGZ1
bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHJhbmdlID0gLyoqIEB0eXBlIHtXZWJJ
bnNwZWN0b3IuVGV4dFJhbmdlfSAqLyBldmVudC5kYXRhOworICAgICAgICB0aGlzLl9oaXN0b3J5
LnVwZGF0ZVNlbGVjdGlvblJhbmdlKHRoaXMuX2N1cnJlbnRGaWxlLnVybCwgcmFuZ2UpOworICAg
ICAgICB0aGlzLl9oaXN0b3J5LnNhdmUodGhpcy5fcHJldmlvdXNseVZpZXdlZEZpbGVzU2V0dGlu
Zyk7CisgICAgfSwKKwogICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291
cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICogQHBhcmFtIHtib29sZWFuPX0gdXNlckdlc3R1
cmUKQEAgLTExNiw2ICsxNDcsNyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVy
LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9jdXJyZW50RmlsZSA9PT0g
dWlTb3VyY2VDb2RlKQogICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLl9yZW1vdmVT
Y3JvbGxBbmRTZWxlY3Rpb25MaXN0ZW5lcnMoKTsKICAgICAgICAgdGhpcy5fY3VycmVudEZpbGUg
PSB1aVNvdXJjZUNvZGU7CiAKICAgICAgICAgdmFyIHRhYklkID0gdGhpcy5fdGFiSWRzLmdldCh1
aVNvdXJjZUNvZGUpIHx8IHRoaXMuX2FwcGVuZEZpbGVUYWIodWlTb3VyY2VDb2RlLCB1c2VyR2Vz
dHVyZSk7CkBAIC0xMjQsNiArMTU2LDggQEAgV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRh
aW5lci5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICh1c2VyR2VzdHVyZSkKICAgICAgICAgICAg
IHRoaXMuX2VkaXRvclNlbGVjdGVkQnlVc2VyQWN0aW9uKCk7CiAgICAgICAgIAorICAgICAgICB0
aGlzLl9hZGRTY3JvbGxBbmRTZWxlY3Rpb25MaXN0ZW5lcnMoKTsKKyAgICAgICAgCiAgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JD
b250YWluZXIuRXZlbnRzLkVkaXRvclNlbGVjdGVkLCB0aGlzLl9jdXJyZW50RmlsZSk7CiAgICAg
fSwKIApAQCAtMjI1LDYgKzI1OSwxMyBAQCBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFp
bmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdGFiSWRzLnB1dCh1aVNvdXJjZUNvZGUs
IHRhYklkKTsKICAgICAgICAgdGhpcy5fZmlsZXNbdGFiSWRdID0gdWlTb3VyY2VDb2RlOwogCisg
ICAgICAgIHZhciBzYXZlZFNjcm9sbExpbmVOdW1iZXIgPSB0aGlzLl9oaXN0b3J5LnNjcm9sbExp
bmVOdW1iZXIodWlTb3VyY2VDb2RlLnVybCk7CisgICAgICAgIGlmIChzYXZlZFNjcm9sbExpbmVO
dW1iZXIpCisgICAgICAgICAgICB2aWV3LnNjcm9sbFRvTGluZShzYXZlZFNjcm9sbExpbmVOdW1i
ZXIpOworICAgICAgICB2YXIgc2F2ZWRTZWxlY3Rpb25SYW5nZSA9IHRoaXMuX2hpc3Rvcnkuc2Vs
ZWN0aW9uUmFuZ2UodWlTb3VyY2VDb2RlLnVybCk7CisgICAgICAgIGlmIChzYXZlZFNlbGVjdGlv
blJhbmdlKQorICAgICAgICAgICAgdmlldy5zZXRTZWxlY3Rpb24oc2F2ZWRTZWxlY3Rpb25SYW5n
ZSk7CisKICAgICAgICAgdGhpcy5fdGFiYmVkUGFuZS5hcHBlbmRUYWIodGFiSWQsIHRpdGxlLCB2
aWV3LCB0b29sdGlwLCB1c2VyR2VzdHVyZSk7CiAKICAgICAgICAgdWlTb3VyY2VDb2RlLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMuVGl0bGVDaGFuZ2Vk
LCB0aGlzLl91aVNvdXJjZUNvZGVUaXRsZUNoYW5nZWQsIHRoaXMpOwpAQCAtMjUyLDYgKzI5Myw3
IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewogICAg
ICAgICB2YXIgdGFiSWQgPSAvKiogQHR5cGUge3N0cmluZ30gKi8gZXZlbnQuZGF0YS50YWJJZDsK
ICAgICAgICAgdmFyIHVzZXJHZXN0dXJlID0gLyoqIEB0eXBlIHtib29sZWFufSAqLyBldmVudC5k
YXRhLmlzVXNlckdlc3R1cmU7CiAKKyAgICAgICAgdGhpcy5fcmVtb3ZlU2Nyb2xsQW5kU2VsZWN0
aW9uTGlzdGVuZXJzKCk7CiAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl9maWxlc1t0
YWJJZF07CiAgICAgICAgIHRoaXMuX3RhYklkcy5yZW1vdmUodWlTb3VyY2VDb2RlKTsKICAgICAg
ICAgZGVsZXRlIHRoaXMuX2ZpbGVzW3RhYklkXTsKQEAgLTM2MSwxOSArNDAzLDEyMyBAQCBXZWJJ
bnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJ
bnNwZWN0b3IuT2JqZWN0LnBybwogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtz
dHJpbmd9IHVybAorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dFJhbmdlPX0gc2VsZWN0aW9u
UmFuZ2UKKyAqIEBwYXJhbSB7bnVtYmVyPX0gc2Nyb2xsTGluZU51bWJlcgorICovCitXZWJJbnNw
ZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnlJdGVtID0gZnVuY3Rpb24odXJsLCBz
ZWxlY3Rpb25SYW5nZSwgc2Nyb2xsTGluZU51bWJlcikKK3sKKyAgICB0aGlzLnVybCA9IHVybDsK
KyAgICB0aGlzLnNlbGVjdGlvblJhbmdlID0gc2VsZWN0aW9uUmFuZ2U7CisgICAgdGhpcy5zY3Jv
bGxMaW5lTnVtYmVyID0gc2Nyb2xsTGluZU51bWJlcjsKK30KKworLyoqCisgKiBAcGFyYW0ge09i
amVjdH0gc2VyaWFsaXplZEhpc3RvcnlJdGVtCisgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVGFi
YmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnlJdGVtfQorICovCitXZWJJbnNwZWN0b3IuVGFiYmVk
RWRpdG9yQ29udGFpbmVyLkhpc3RvcnlJdGVtLmZyb21PYmplY3QgPSBmdW5jdGlvbiAoc2VyaWFs
aXplZEhpc3RvcnlJdGVtKQoreworICAgIHZhciBzZWxlY3Rpb25SYW5nZSA9IHNlcmlhbGl6ZWRI
aXN0b3J5SXRlbS5zZWxlY3Rpb25SYW5nZSA/IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UuZnJvbU9i
amVjdChzZXJpYWxpemVkSGlzdG9yeUl0ZW0uc2VsZWN0aW9uUmFuZ2UpIDogbnVsbDsKKyAgICBy
ZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeUl0ZW0o
c2VyaWFsaXplZEhpc3RvcnlJdGVtLnVybCwgc2VsZWN0aW9uUmFuZ2UsIHNlcmlhbGl6ZWRIaXN0
b3J5SXRlbS5zY3JvbGxMaW5lTnVtYmVyKTsKK30KKworV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRv
ckNvbnRhaW5lci5IaXN0b3J5SXRlbS5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHJl
dHVybiB7T2JqZWN0fQorICAgICAqLworICAgIHNlcmlhbGl6ZVRvT2JqZWN0OiBmdW5jdGlvbigp
CisgICAgeworICAgICAgICB2YXIgc2VyaWFsaXplZEhpc3RvcnlJdGVtID0ge307CisgICAgICAg
IHNlcmlhbGl6ZWRIaXN0b3J5SXRlbS51cmwgPSB0aGlzLnVybDsKKyAgICAgICAgc2VyaWFsaXpl
ZEhpc3RvcnlJdGVtLnNlbGVjdGlvblJhbmdlID0gdGhpcy5zZWxlY3Rpb25SYW5nZTsKKyAgICAg
ICAgc2VyaWFsaXplZEhpc3RvcnlJdGVtLnNjcm9sbExpbmVOdW1iZXIgPSB0aGlzLnNjcm9sbExp
bmVOdW1iZXI7CisgICAgICAgIHJldHVybiBzZXJpYWxpemVkSGlzdG9yeUl0ZW07CisgICAgfQor
fQorCitXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnlJdGVtLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKKworLyoqCisg
KiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7QXJyYXkuPFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0
b3JDb250YWluZXIuSGlzdG9yeUl0ZW0+fSBpdGVtcworICovCitXZWJJbnNwZWN0b3IuVGFiYmVk
RWRpdG9yQ29udGFpbmVyLkhpc3RvcnkgPSBmdW5jdGlvbihpdGVtcykKK3sKKyAgICB0aGlzLl9p
dGVtcyA9IGl0ZW1zOworfQorCisvKioKKyAqIEBwYXJhbSB7T2JqZWN0fSBzZXJpYWxpemVkSGlz
dG9yeQorICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0
b3J5fQogICovCi1XZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnkgPSBm
dW5jdGlvbih1cmxzKQorV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5
LmZyb21PYmplY3QgPSBmdW5jdGlvbihzZXJpYWxpemVkSGlzdG9yeSkKIHsKLSAgICB0aGlzLl91
cmxzID0gdXJsczsKKyAgICB2YXIgaXRlbXMgPSBbXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHNlcmlhbGl6ZWRIaXN0b3J5Lmxlbmd0aDsgKytpKQorICAgICAgICBpdGVtcy5wdXNoKFdlYklu
c3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeUl0ZW0uZnJvbU9iamVjdChzZXJp
YWxpemVkSGlzdG9yeVtpXSkpOworICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlRhYmJlZEVk
aXRvckNvbnRhaW5lci5IaXN0b3J5KGl0ZW1zKTsKIH0KIAogV2ViSW5zcGVjdG9yLlRhYmJlZEVk
aXRvckNvbnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFy
YW0ge3N0cmluZ30gdXJsCisgICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICAqLwogICAgIGlu
ZGV4OiBmdW5jdGlvbih1cmwpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fdXJscy5pbmRl
eE9mKHVybCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5faXRlbXMubGVuZ3Ro
OyArK2kpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9pdGVtc1tpXS51cmwgPT09
IHVybCkKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gLTE7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKKyAg
ICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVGV4dFJhbmdlfHVuZGVmaW5lZH0KKyAgICAgKi8K
KyAgICBzZWxlY3Rpb25SYW5nZTogZnVuY3Rpb24odXJsKQorICAgIHsKKyAgICAgICAgdmFyIGlu
ZGV4ID0gdGhpcy5pbmRleCh1cmwpOworICAgICAgICByZXR1cm4gaW5kZXggIT09IC0xID8gdGhp
cy5faXRlbXNbaW5kZXhdLnNlbGVjdGlvblJhbmdlIDogdW5kZWZpbmVkOworICAgIH0sCisKKyAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCisgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuVGV4dFJhbmdlfSBzZWxlY3Rpb25SYW5nZQorICAgICAqLworICAgIHVwZGF0ZVNlbGVj
dGlvblJhbmdlOiBmdW5jdGlvbih1cmwsIHNlbGVjdGlvblJhbmdlKQorICAgIHsKKyAgICAgICAg
aWYgKCFzZWxlY3Rpb25SYW5nZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdmFyIGlu
ZGV4ID0gdGhpcy5pbmRleCh1cmwpOworICAgICAgICBpZiAoaW5kZXggPT09IC0xKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLl9pdGVtc1tpbmRleF0uc2VsZWN0aW9uUmFuZ2Ug
PSBzZWxlY3Rpb25SYW5nZTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJp
bmd9IHVybAorICAgICAqIEByZXR1cm4ge251bWJlcnx1bmRlZmluZWR9CisgICAgICovCisgICAg
c2Nyb2xsTGluZU51bWJlcjogZnVuY3Rpb24odXJsKQorICAgIHsKKyAgICAgICAgdmFyIGluZGV4
ID0gdGhpcy5pbmRleCh1cmwpOworICAgICAgICByZXR1cm4gaW5kZXggIT09IC0xID8gdGhpcy5f
aXRlbXNbaW5kZXhdLnNjcm9sbExpbmVOdW1iZXIgOiB1bmRlZmluZWQ7CisgICAgfSwKKworICAg
IC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKKyAgICAgKiBAcGFyYW0ge251bWJlcn0g
c2Nyb2xsTGluZU51bWJlcgorICAgICAqLworICAgIHVwZGF0ZVNjcm9sbExpbmVOdW1iZXI6IGZ1
bmN0aW9uKHVybCwgc2Nyb2xsTGluZU51bWJlcikKKyAgICB7CisgICAgICAgIHZhciBpbmRleCA9
IHRoaXMuaW5kZXgodXJsKTsKKyAgICAgICAgaWYgKGluZGV4ID09PSAtMSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgdGhpcy5faXRlbXNbaW5kZXhdLnNjcm9sbExpbmVOdW1iZXIgPSBz
Y3JvbGxMaW5lTnVtYmVyOwogICAgIH0sCiAKICAgICAvKioKQEAgLTM4MiwxMCArNTI4LDE0IEBA
IFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeS5wcm90b3R5cGUgPSB7
CiAgICAgdXBkYXRlOiBmdW5jdGlvbih1cmxzKQogICAgIHsKICAgICAgICAgZm9yICh2YXIgaSA9
IHVybHMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgICAgIHZhciBpbmRleCA9
IHRoaXMuX3VybHMuaW5kZXhPZih1cmxzW2ldKTsKLSAgICAgICAgICAgIGlmIChpbmRleCAhPT0g
LTEpCi0gICAgICAgICAgICAgICAgdGhpcy5fdXJscy5zcGxpY2UoaW5kZXgsIDEpOwotICAgICAg
ICAgICAgdGhpcy5fdXJscy51bnNoaWZ0KHVybHNbaV0pOworICAgICAgICAgICAgdmFyIGluZGV4
ID0gdGhpcy5pbmRleCh1cmxzW2ldKTsKKyAgICAgICAgICAgIHZhciBpdGVtOworICAgICAgICAg
ICAgaWYgKGluZGV4ICE9PSAtMSkgeworICAgICAgICAgICAgICAgIGl0ZW0gPSB0aGlzLl9pdGVt
c1tpbmRleF07CisgICAgICAgICAgICAgICAgdGhpcy5faXRlbXMuc3BsaWNlKGluZGV4LCAxKTsK
KyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGl0ZW0gPSBuZXcgV2ViSW5zcGVj
dG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5SXRlbSh1cmxzW2ldKTsKKyAgICAgICAg
ICAgIHRoaXMuX2l0ZW1zLnVuc2hpZnQoaXRlbSk7CiAgICAgICAgIH0KICAgICB9LAogCkBAIC0z
OTQsOSArNTQ0LDkgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5
LnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZW1vdmU6IGZ1bmN0aW9uKHVybCkKICAgICB7
Ci0gICAgICAgIHZhciBpbmRleCA9IHRoaXMuX3VybHMuaW5kZXhPZih1cmwpOworICAgICAgICB2
YXIgaW5kZXggPSB0aGlzLmluZGV4KHVybCk7CiAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpCi0g
ICAgICAgICAgICB0aGlzLl91cmxzLnNwbGljZShpbmRleCwgMSk7CisgICAgICAgICAgICB0aGlz
Ll9pdGVtcy5zcGxpY2UoaW5kZXgsIDEpOwogICAgIH0sCiAgICAgCiAgICAgLyoqCkBAIC00MDQs
NyArNTU0LDE4IEBAIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeS5w
cm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgc2F2ZTogZnVuY3Rpb24oc2V0dGluZykKICAgICB7
Ci0gICAgICAgIHNldHRpbmcuc2V0KHRoaXMuX3VybHMpOworICAgICAgICBzZXR0aW5nLnNldCh0
aGlzLl9zZXJpYWxpemVUb09iamVjdCgpKTsKKyAgICB9LAorICAgIAorICAgIC8qKgorICAgICAq
IEByZXR1cm4ge09iamVjdH0KKyAgICAgKi8KKyAgICBfc2VyaWFsaXplVG9PYmplY3Q6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBzZXJpYWxpemVkSGlzdG9yeSA9IFtdOworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2l0ZW1zLmxlbmd0aDsgKytpKQorICAgICAgICAg
ICAgc2VyaWFsaXplZEhpc3RvcnkucHVzaCh0aGlzLl9pdGVtc1tpXS5zZXJpYWxpemVUb09iamVj
dCgpKTsKKyAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZWRIaXN0b3J5OwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9yTW9k
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JNb2Rl
bC5qcwppbmRleCBjODZhZGI1OTM3YjIyYTBhODY1YjdkYTY1ZTk4M2JhOTEyZTU0NzI1Li5jMjM3
YTY2MGUyMGY0NjQ4NTJkNmFjOTExNTY3YWU0ZjM3MGE3ZGEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JNb2RlbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JNb2RlbC5qcwpAQCAtNDgs
NiArNDgsMTUgQEAgV2ViSW5zcGVjdG9yLlRleHRSYW5nZS5jcmVhdGVGcm9tTG9jYXRpb24gPSBm
dW5jdGlvbihsaW5lLCBjb2x1bW4pCiAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJh
bmdlKGxpbmUsIGNvbHVtbiwgbGluZSwgY29sdW1uKTsKIH0KIAorLyoqCisgKiBAcGFyYW0ge09i
amVjdH0gc2VyaWFsaXplZFRleHRSYW5nZQorICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlRleHRS
YW5nZX0KKyAqLworV2ViSW5zcGVjdG9yLlRleHRSYW5nZS5mcm9tT2JqZWN0ID0gZnVuY3Rpb24g
KHNlcmlhbGl6ZWRUZXh0UmFuZ2UpCit7CisgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuVGV4
dFJhbmdlKHNlcmlhbGl6ZWRUZXh0UmFuZ2Uuc3RhcnRMaW5lLCBzZXJpYWxpemVkVGV4dFJhbmdl
LnN0YXJ0Q29sdW1uLCBzZXJpYWxpemVkVGV4dFJhbmdlLmVuZExpbmUsIHNlcmlhbGl6ZWRUZXh0
UmFuZ2UuZW5kQ29sdW1uKTsKK30KKwogV2ViSW5zcGVjdG9yLlRleHRSYW5nZS5wcm90b3R5cGUg
PSB7CiAgICAgLyoqCiAgICAgICogQHJldHVybiB7Ym9vbGVhbn0KQEAgLTg3LDYgKzk2LDE5IEBA
IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UucHJvdG90eXBlID0gewogICAgIGNsb25lOiBmdW5jdGlv
bigpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UodGhp
cy5zdGFydExpbmUsIHRoaXMuc3RhcnRDb2x1bW4sIHRoaXMuZW5kTGluZSwgdGhpcy5lbmRDb2x1
bW4pOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtPYmplY3R9CisgICAgICov
CisgICAgc2VyaWFsaXplVG9PYmplY3Q6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBz
ZXJpYWxpemVkVGV4dFJhbmdlID0ge307CisgICAgICAgIHNlcmlhbGl6ZWRUZXh0UmFuZ2Uuc3Rh
cnRMaW5lID0gdGhpcy5zdGFydExpbmU7CisgICAgICAgIHNlcmlhbGl6ZWRUZXh0UmFuZ2Uuc3Rh
cnRDb2x1bW4gPSB0aGlzLnN0YXJ0Q29sdW1uOworICAgICAgICBzZXJpYWxpemVkVGV4dFJhbmdl
LmVuZExpbmUgPSB0aGlzLmVuZExpbmU7CisgICAgICAgIHNlcmlhbGl6ZWRUZXh0UmFuZ2UuZW5k
Q29sdW1uID0gdGhpcy5lbmRDb2x1bW47CisgICAgICAgIHJldHVybiBzZXJpYWxpemVkVGV4dFJh
bmdlOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UZXh0Vmlld2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9UZXh0Vmlld2VyLmpzCmluZGV4IDczNTI2MTc1ZmIxMWMwMjBmNDM3YzliMTg4YTNlOGViMmVi
M2Q1MDUuLjMwMjJlZjNkM2E5ZTMxYzZkNTRiMDhlYjlkN2YwZjg5YzM5MmFkMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dFZpZXdlci5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMKQEAgLTU1
LDYgKzU1LDEwIEBAIFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyID0gZnVuY3Rpb24odGV4dE1vZGVs
LCB1cmwsIGRlbGVnYXRlKQogICAgIHZhciBzeW5jTGluZUhlaWdodExpc3RlbmVyID0gdGhpcy5f
c3luY0xpbmVIZWlnaHQuYmluZCh0aGlzKTsKICAgICB0aGlzLl9tYWluUGFuZWwgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwodGhpcy5fdGV4dE1vZGVsLCB1cmwsIHN5bmNT
Y3JvbGxMaXN0ZW5lciwgc3luY0RlY29yYXRpb25zRm9yTGluZUxpc3RlbmVyLCBlbnRlclRleHRD
aGFuZ2VNb2RlLCBleGl0VGV4dENoYW5nZU1vZGUpOwogICAgIHRoaXMuX2d1dHRlclBhbmVsID0g
bmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yR3V0dGVyUGFuZWwodGhpcy5fdGV4dE1vZGVsLCBz
eW5jRGVjb3JhdGlvbnNGb3JMaW5lTGlzdGVuZXIsIHN5bmNMaW5lSGVpZ2h0TGlzdGVuZXIpOwor
CisgICAgdGhpcy5fbWFpblBhbmVsLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwg
dGhpcy5faGFuZGxlU2Nyb2xsQ2hhbmdlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgdGhpcy5f
bWFpblBhbmVsLl9jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0aGlzLl9oYW5k
bGVGb2N1c2VkLmJpbmQodGhpcyksIGZhbHNlKTsKKwogICAgIHRoaXMuZWxlbWVudC5hcHBlbmRD
aGlsZCh0aGlzLl9tYWluUGFuZWwuZWxlbWVudCk7CiAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENo
aWxkKHRoaXMuX2d1dHRlclBhbmVsLmVsZW1lbnQpOwogCkBAIC0zNTUsNiArMzU5LDI5IEBAIFdl
Ykluc3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfSwKIAorICAgIF9oYW5kbGVTY3JvbGxDaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKKyAg
ICB7CisgICAgICAgIHZhciB2aXNpYmxlRnJvbSA9IHRoaXMuX21haW5QYW5lbC5lbGVtZW50LnNj
cm9sbFRvcDsKKyAgICAgICAgdmFyIGZpcnN0VmlzaWJsZUxpbmVOdW1iZXIgPSB0aGlzLl9tYWlu
UGFuZWwuX2ZpbmRGaXJzdFZpc2libGVMaW5lTnVtYmVyKHZpc2libGVGcm9tKTsKKyAgICAgICAg
dGhpcy5fZGVsZWdhdGUuc2Nyb2xsQ2hhbmdlZChmaXJzdFZpc2libGVMaW5lTnVtYmVyKTsKKyAg
ICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAg
Ki8KKyAgICBzY3JvbGxUb0xpbmU6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCisgICAgeworICAgICAg
ICB0aGlzLl9tYWluUGFuZWwuc2Nyb2xsVG9MaW5lKGxpbmVOdW1iZXIpOworICAgIH0sCisKKyAg
ICBfaGFuZGxlU2VsZWN0aW9uQ2hhbmdlOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAg
IHZhciB0ZXh0UmFuZ2UgPSB0aGlzLl9tYWluUGFuZWwuX2dldFNlbGVjdGlvbigpOworICAgICAg
ICBpZiAodGV4dFJhbmdlKQorICAgICAgICAgICAgdGhpcy5fbGFzdFNlbGVjdGlvbiA9IHRleHRS
YW5nZTsKKyAgICAgICAgdGhpcy5fZGVsZWdhdGUuc2VsZWN0aW9uQ2hhbmdlZCh0ZXh0UmFuZ2Up
OworICAgIH0sCisKICAgICAvKioKICAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVGV4dFJh
bmdlfQogICAgICAqLwpAQCAtMzc1LDEwICs0MDIsMjYgQEAgV2ViSW5zcGVjdG9yLlRleHRWaWV3
ZXIucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLnJlYWRPbmx5KCkpCiAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IubWFya0JlaW5nRWRpdGVkKHRoaXMuZWxlbWVudCwgdHJ1
ZSk7CisKKyAgICAgICAgdGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciA9IHRoaXMu
X2hhbmRsZVNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpOworICAgICAgICBkb2N1bWVudC5hZGRF
dmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLCB0aGlzLl9ib3VuZFNlbGVjdGlvbkNoYW5n
ZUxpc3RlbmVyLCBmYWxzZSk7CisgICAgfSwKKworICAgIF9oYW5kbGVGb2N1c2VkOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fbGFzdFNlbGVjdGlvbikgeworICAgICAgICAg
ICAgLy8gV2UgZG8gbm90IHJlc3RvcmUgc2VsZWN0aW9uIGFmdGVyIGZvY3VzIGxvc3QgdG8gYXZv
aWQgc2VsZWN0aW9uIGJsaW5raW5nLiBXZSByZXN0b3JlIG9ubHkgY3Vyc29yIHBvc2l0aW9uIGlu
c3RlYWQuCisgICAgICAgICAgICAvLyBGSVhNRTogY29uc2lkZXIgYWRkaW5nIHNlbGVjdGlvbiBk
ZWNvcmF0aW9uIHRvIGJsdXJyZWQgZWRpdG9yLgorICAgICAgICAgICAgdmFyIG5ld1NlbGVjdGlv
biA9IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UuY3JlYXRlRnJvbUxvY2F0aW9uKHRoaXMuX2xhc3RT
ZWxlY3Rpb24uZW5kTGluZSwgdGhpcy5fbGFzdFNlbGVjdGlvbi5lbmRDb2x1bW4pOworICAgICAg
ICAgICAgdGhpcy5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKKyAgICAgICAgfQogICAgIH0s
CiAKICAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgZG9jdW1lbnQucmVt
b3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwgdGhpcy5fYm91bmRTZWxlY3Rpb25D
aGFuZ2VMaXN0ZW5lciwgZmFsc2UpOworICAgICAgICBkZWxldGUgdGhpcy5fYm91bmRTZWxlY3Rp
b25DaGFuZ2VMaXN0ZW5lcjsKKwogICAgICAgICBpZiAoIXRoaXMucmVhZE9ubHkoKSkKICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5tYXJrQmVpbmdFZGl0ZWQodGhpcy5lbGVtZW50LCBmYWxzZSk7
CiAgICAgfQpAQCAtNDA1LDYgKzQ0OCwxNiBAQCBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlckRlbGVn
YXRlLnByb3RvdHlwZSA9IHsKICAgICBjb21taXRFZGl0aW5nOiBmdW5jdGlvbigpIHsgfSwKIAog
ICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRleHRSYW5nZX0gdGV4dFJhbmdl
CisgICAgICovCisgICAgc2VsZWN0aW9uQ2hhbmdlZDogZnVuY3Rpb24odGV4dFJhbmdlKSB7IH0s
CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgorICAgICAqLwor
ICAgIHNjcm9sbENoYW5nZWQ6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpIHsgfSwKKworICAgIC8qKgog
ICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRleHRNZW51fSBjb250ZXh0TWVudQogICAg
ICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCiAgICAgICovCkBAIC00NDIsNiArNDk1LDE4
IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICAvKioKICAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgogICAgICAqLworICAgIHNj
cm9sbFRvTGluZTogZnVuY3Rpb24obGluZU51bWJlcikKKyAgICB7CisgICAgICAgIGlmIChsaW5l
TnVtYmVyID49IHRoaXMuX3RleHRNb2RlbC5saW5lc0NvdW50KQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIHZhciBjaHVuayA9IHRoaXMubWFrZUxpbmVBQ2h1bmsobGluZU51bWJlcik7
CisgICAgICAgIHRoaXMuZWxlbWVudC5zY3JvbGxUb3AgPSBjaHVuay5vZmZzZXRUb3A7CisgICAg
fSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCisgICAgICov
CiAgICAgcmV2ZWFsTGluZTogZnVuY3Rpb24obGluZU51bWJlcikKICAgICB7CiAgICAgICAgIGlm
IChsaW5lTnVtYmVyID49IHRoaXMuX3RleHRNb2RlbC5saW5lc0NvdW50KQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU4ZjU5
MjAxZmRiODg0OTBlMzM5N2M0NjE3NTBiYjdlYWU5YzQ1MTIuLjFhYjg0M2U3OWYyMDNkODIyZWMz
OTgyNjA5MTk2MDhjMjcxYmJjN2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNy0wMiAg
VnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBTYXZlIHNjcm9sbCBzZWxlY3Rpb24gYW5kIGN1cnNvciBwb3NpdGlvbiBvZiBTb3Vy
Y2VGcmFtZXMgaW4gc291cmNlcyBwYW5lbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkwMjk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3RhYmJlZC1lZGl0b3JzLWhpc3RvcnkuaHRt
bDoKKwogMjAxMi0wNy0wMiAgVGFpanUgVHN1aWtpICA8dHppa0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHJlcXVlc3RGaWxlQ29udGVudCBjb21tYW5kIGFuZCBm
aWxlQ29udGVudFJlY2VpdmVkIGV2ZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS1leHBlY3RlZC50eHQKaW5kZXggN2Y4YmVlZTgw
Y2JhMWJiYjMyNmExZDEwZTczYjlmZGM1ODM1MDc4ZC4uMzYyOTFjZWNlOTEzNzUyMDNiZmM4MTE1
NjI0NjYxMDc4ZGFkZjMwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJl
ZC1lZGl0b3JzLWhpc3RvcnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90YWJiZWQtZWRpdG9ycy1oaXN0b3J5LWV4cGVjdGVkLnR4dApAQCAtMiwyNiArMiwyNyBAQCBU
ZXN0cyBoaXN0b3J5IHNhdmluZyBsb2dpYyBpbiBUYWJiZWRFZGl0b3JDb250YWluZXIuCiAKIEJ1
ZyA3NjkxMgogICBoaXN0b3J5ID0gW10KLSAgaGlzdG9yeSA9IFt1cmxfMV0KLSAgaGlzdG9yeSA9
IFt1cmxfMix1cmxfMV0KLSAgaGlzdG9yeSA9IFt1cmxfMyx1cmxfMix1cmxfMV0KLSAgaGlzdG9y
eSA9IFt1cmxfMix1cmxfMyx1cmxfMV0KLSAgaGlzdG9yeSA9IFt1cmxfMSx1cmxfMix1cmxfM10K
LSAgaGlzdG9yeSA9IFt1cmxfMTEsdXJsXzEsdXJsXzIsdXJsXzNdCi0gIGhpc3RvcnkgPSBbdXJs
XzEyLHVybF8xMSx1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxfMTMsdXJsXzEy
LHVybF8xMSx1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxfMTIsdXJsXzEzLHVy
bF8xMSx1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxfMTEsdXJsXzEyLHVybF8x
Myx1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxfMTIsdXJsXzEzLHVybF8xLHVy
bF8yLHVybF8zXQotICBoaXN0b3J5ID0gW3VybF8xMix1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlz
dG9yeSA9IFt1cmxfMTQsdXJsXzEyLHVybF8xLHVybF8yLHVybF8zXQotICBoaXN0b3J5ID0gW3Vy
bF8xNSx1cmxfMTQsdXJsXzEyLHVybF8xLHVybF8yLHVybF8zXQotICBoaXN0b3J5ID0gW3VybF8x
Nix1cmxfMTUsdXJsXzE0LHVybF8xMix1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1
cmxfMTUsdXJsXzE0LHVybF8xMix1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxf
MTQsdXJsXzEyLHVybF8xLHVybF8yLHVybF8zXQotICBoaXN0b3J5ID0gW3VybF8xMix1cmxfMSx1
cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9
IFt1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxfM10KKyAgaGlzdG9yeSA9IFt7InVybCI6
InVybF8xIn1dCisgIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJsXzEifV0K
KyAgaGlzdG9yeSA9IFt7InVybCI6InVybF8zIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJs
XzEifV0KKyAgaGlzdG9yeSA9IFt7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9LHsidXJs
IjoidXJsXzEifV0KKyAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9
LHsidXJsIjoidXJsXzMifV0KKyAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xMSJ9LHsidXJsIjoi
dXJsXzEifSx7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQorICBoaXN0b3J5ID0gW3si
dXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMTEifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1
cmxfMiJ9LHsidXJsIjoidXJsXzMifV0KKyAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xMyJ9LHsi
dXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMTEifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1
cmxfMiJ9LHsidXJsIjoidXJsXzMifV0KKyAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xMiJ9LHsi
dXJsIjoidXJsXzEzIn0seyJ1cmwiOiJ1cmxfMTEifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1
cmxfMiJ9LHsidXJsIjoidXJsXzMifV0KKyAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xMSJ9LHsi
dXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMTMifSx7InVybCI6InVybF8xIn0seyJ1cmwiOiJ1
cmxfMiJ9LHsidXJsIjoidXJsXzMifV0KKyAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xMSIsInNl
bGVjdGlvblJhbmdlIjp7InN0YXJ0TGluZSI6MTUsInN0YXJ0Q29sdW1uIjo1LCJlbmRMaW5lIjox
NSwiZW5kQ29sdW1uIjoxMH0sInNjcm9sbExpbmVOdW1iZXIiOjEwfSx7InVybCI6InVybF8xMiJ9
LHsidXJsIjoidXJsXzEzIn0seyJ1cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6
InVybF8zIn1dCisgIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMTIifSx7InVybCI6InVybF8xMyJ9
LHsidXJsIjoidXJsXzEifSx7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQorICBoaXN0
b3J5ID0gW3sidXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7
InVybCI6InVybF8zIn1dCisgIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMTQifSx7InVybCI6InVy
bF8xMiJ9LHsidXJsIjoidXJsXzEifSx7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQor
ICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzE1In0seyJ1cmwiOiJ1cmxfMTQifSx7InVybCI6InVy
bF8xMiJ9LHsidXJsIjoidXJsXzEifSx7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQor
ICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzE2In0seyJ1cmwiOiJ1cmxfMTUifSx7InVybCI6InVy
bF8xNCJ9LHsidXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7
InVybCI6InVybF8zIn1dCisgIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMTUifSx7InVybCI6InVy
bF8xNCJ9LHsidXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7
InVybCI6InVybF8zIn1dCisgIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMTQifSx7InVybCI6InVy
bF8xMiJ9LHsidXJsIjoidXJsXzEifSx7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQor
ICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJs
XzIifSx7InVybCI6InVybF8zIn1dCisgIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMSJ9LHsidXJs
IjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCisgIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMiJ9
LHsidXJsIjoidXJsXzMifV0KKyAgaGlzdG9yeSA9IFt7InVybCI6InVybF8zIn1dCiAgIGhpc3Rv
cnkgPSBbXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRv
cnMtaGlzdG9yeS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1lZGl0b3JzLWhp
c3RvcnkuaHRtbAppbmRleCAxMmM0MjFlMTE1M2YwMmE0ZjNkOWY1Y2M2ZDMxYWI4YTZhZDI1ZTBm
Li4zYzRlZTE3NGMyMzk0NzI0OTZlMDBmZTMwYzdiNzdmZTM3YTQ4NjAxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtZWRpdG9ycy1oaXN0b3J5Lmh0bWwKQEAgLTYsNyAr
NiwxNCBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIHsKICAgICBmdW5jdGlvbiBkdW1wSGlzdG9y
eShoaXN0b3J5KQogICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgaGlz
dG9yeSA9IFsiICsgU3RyaW5nKGhpc3RvcnkuX3VybHMpICsgIl0iKTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIiAgaGlzdG9yeSA9ICIgKyBKU09OLnN0cmluZ2lmeShoaXN0b3J5
Ll9zZXJpYWxpemVUb09iamVjdCgpKSArICIiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB1cGRh
dGVTY3JvbGxBbmRTZWxlY3Rpb25BbmREdW1wKGhpc3RvcnksIHVybCwgc2Nyb2xsTGluZU51bWJl
ciwgc2VsZWN0aW9uKQorICAgIHsKKyAgICAgICAgaGlzdG9yeS51cGRhdGVTY3JvbGxMaW5lTnVt
YmVyKHVybCwgc2Nyb2xsTGluZU51bWJlcik7CisgICAgICAgIGhpc3RvcnkudXBkYXRlU2VsZWN0
aW9uUmFuZ2UodXJsLCBzZWxlY3Rpb24pOworICAgICAgICBkdW1wSGlzdG9yeShoaXN0b3J5KTsK
ICAgICB9CiAKICAgICBmdW5jdGlvbiB1cGRhdGVBbmREdW1wKGhpc3RvcnksIHVybHMpCkBAIC00
Myw2ICs1MCw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogICAgIC8vIC4uLiBhbmQgc3dpdGNo
aW5nIGJldHdlZW4gdGhlbS4KICAgICB1cGRhdGVBbmREdW1wKGhpc3RvcnksIFt1cmwoMTIpLCB1
cmwoMTMpLCB1cmwoMTEpXSk7CiAgICAgdXBkYXRlQW5kRHVtcChoaXN0b3J5LCBbdXJsKDExKSwg
dXJsKDEyKSwgdXJsKDEzKV0pOworICAgIHVwZGF0ZVNjcm9sbEFuZFNlbGVjdGlvbkFuZER1bXAo
aGlzdG9yeSwgdXJsKDExKSwgMTAsIG5ldyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKDE1LCA1LCAx
NSwgMTApKTsKICAgICAvLyBOb3cgY2xvc2Ugc29tZSB0YWJzLgogICAgIHJlbW92ZUFuZER1bXAo
aGlzdG9yeSwgdXJsKDExKSk7CiAgICAgcmVtb3ZlQW5kRHVtcChoaXN0b3J5LCB1cmwoMTMpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150557</attachid>
            <date>2012-07-03 01:24:43 -0700</date>
            <delta_ts>2012-07-03 01:50:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90294-20120703122441.patch</filename>
            <type>text/plain</type>
            <size>32913</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYzZmQ0NmJmMDk3MWFi
N2M4MDEwYjFkNDllYmZhNWEwMTMxZTFlNC4uYzU4NDkwZmIxMGY5OGM5ZDBhZTRjZTcyMGJiNmFh
N2ZlNWE2NDQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTA3LTAzICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFNhdmUgc2Nyb2xsIHNlbGVjdGlvbiBhbmQgY3Vyc29yIHBvc2l0aW9uIG9mIFNvdXJjZUZy
YW1lcyBpbiBzb3VyY2VzIHBhbmVsLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTAyOTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTY3JvbGwgYW5kIHNlbGVjdGlvbiBjaGFuZ2UgaGFuZGxpbmcgaXMgbm93
IGRlbGVnYXRlZCBmcm9tIFRleHRWaWV3ZXIgdG8gU291cmNlRnJhbWUuCisgICAgICAgIFNvdXJj
ZUZyYW1lIG5vdyBkaXNwYXRjaGVzIFNjcm9sbENoYW5nZWQgYW5kIFNlbGVjdGlvbkNoYW5nZWQg
ZXZlbnRzLgorICAgICAgICBUYWJiZWRFZGl0b3JDb250YWluZXIgbm93IHNhdmVzIHNjcm9sbCBh
bmQgc2VsZWN0aW9uIGluZm9ybWF0aW9uIHRvZ2V0aGVyCisgICAgICAgIHdpdGggdGhlIHVybCBo
aXN0b3J5IGFuZCByZXN0b3JlcyBzY3JvbGwgYW5kIHNlbGVjdGlvbiBvbiByZXNvdXJjZSBvcGVu
aW5nLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJh
bWUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3Rv
dHlwZS5zZXRFeGVjdXRpb25MaW5lKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Nv
dXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlw
ZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
LmhpZ2hsaWdodExpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3Rv
dHlwZS5faW5uZXJIaWdobGlnaHRMaW5lSWZOZWVkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fY2xlYXJMaW5lSGlnaGxpZ2h0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUucmV2ZWFsTGluZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9pbm5lclJldmVhbExpbmVJZk5lZWRl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9jbGVhckxp
bmVUb1JldmVhbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
LnNjcm9sbFRvTGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90
eXBlLl9pbm5lclNjcm9sbFRvTGluZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZS5wcm90b3R5cGUuX2NsZWFyTGluZVRvU2Nyb2xsVG8pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5zZXRTZWxlY3Rpb24pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5faW5uZXJTZXRTZWxlY3Rpb25JZk5l
ZWRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl93YXNT
aG93bk9yTG9hZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5
cGUuc2V0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90
eXBlLmNvbW1pdEVkaXRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZS5zZWxlY3Rpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZS5wcm90b3R5cGUuc2Nyb2xsQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4
dFZpZXdlckRlbGVnYXRlRm9yU291cmNlRnJhbWUucHJvdG90eXBlLnNlbGVjdGlvbkNoYW5nZWQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXJEZWxlZ2F0ZUZvclNvdXJjZUZyYW1l
LnByb3RvdHlwZS5zY3JvbGxDaGFuZ2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1RhYmJlZEVkaXRvckNvbnRhaW5lci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRF
ZGl0b3JDb250YWluZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRh
aW5lci5wcm90b3R5cGUuX2FkZFNjcm9sbEFuZFNlbGVjdGlvbkxpc3RlbmVycyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZS5fcmVtb3ZlU2Ny
b2xsQW5kU2VsZWN0aW9uTGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRF
ZGl0b3JDb250YWluZXIucHJvdG90eXBlLl9zY3JvbGxDaGFuZ2VkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlLl9zZWxlY3Rpb25DaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBl
Ll9hcHBlbmRGaWxlVGFiKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250
YWluZXIucHJvdG90eXBlLl90YWJDbG9zZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJl
ZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFi
YmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnlJdGVtLmZyb21PYmplY3QpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5SXRlbS5wcm90b3R5cGUuc2Vy
aWFsaXplVG9PYmplY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRh
aW5lci5IaXN0b3J5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWlu
ZXIuSGlzdG9yeS5mcm9tT2JqZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0
b3JDb250YWluZXIuSGlzdG9yeS5wcm90b3R5cGUuaW5kZXgpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZS5zZWxlY3Rpb25SYW5n
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3Rvcnku
cHJvdG90eXBlLnVwZGF0ZVNlbGVjdGlvblJhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
YWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeS5wcm90b3R5cGUuc2Nyb2xsTGluZU51bWJlcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnkucHJv
dG90eXBlLnVwZGF0ZVNjcm9sbExpbmVOdW1iZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRh
YmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZS5yZW1v
dmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5
LnByb3RvdHlwZS5zYXZlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250
YWluZXIuSGlzdG9yeS5wcm90b3R5cGUuc2V0IF9zZXJpYWxpemVUb09iamVjdCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9yTW9kZWwuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGV4dFJhbmdlLmZyb21PYmplY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRl
eHRSYW5nZS5wcm90b3R5cGUuY2xvbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRSYW5n
ZS5wcm90b3R5cGUuc2VyaWFsaXplVG9PYmplY3QpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvVGV4dFZpZXdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0Vmlld2VyLnBy
b3RvdHlwZS5faGFuZGxlU2Nyb2xsQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4
dFZpZXdlci5wcm90b3R5cGUuc2Nyb2xsVG9MaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5U
ZXh0Vmlld2VyLnByb3RvdHlwZS5faGFuZGxlU2VsZWN0aW9uQ2hhbmdlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZS5zZXRTZWxlY3Rpb24pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UZXh0Vmlld2VyLnByb3RvdHlwZS5faGFuZGxlRm9jdXNlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGV4dFZpZXdlci5wcm90b3R5cGUud2lsbEhpZGUpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRleHRWaWV3ZXJEZWxlZ2F0ZS5wcm90b3R5cGUuc2VsZWN0aW9uQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dFZpZXdlckRlbGVnYXRlLnByb3RvdHlwZS5z
Y3JvbGxDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBh
bmVsLnByb3RvdHlwZS5zY3JvbGxUb0xpbmUpOgorCiAyMDEyLTA3LTAyICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbVGV4dHVyZU1hcHBlcl0gVGhl
IFRleHR1cmVNYXBwZXIgc2hvdWxkIHN1cHBvcnQgZWRnZS1kaXN0YW5jZSBhbnRpLWFudGlhbGlh
c2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZh
U2NyaXB0U291cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwppbmRleCBmNTliMDljNjc5YmUxZDJlOGExZTljZmEz
MDI2NDViZjBkODIzNjk0Li4wZGY5ZTM4NTkxNDY2ZTBlYzgxZjE3YjMxODQ4NGQ2NGU4OGVjZGIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3Jp
cHRTb3VyY2VGcmFtZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0phdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwpAQCAtNDQwLDkgKzQ0MCw5IEBAIFdlYkluc3BlY3Rv
ci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy5s
b2FkZWQpIHsKICAgICAgICAgICAgIHRoaXMudGV4dFZpZXdlci5hZGREZWNvcmF0aW9uKGxpbmVO
dW1iZXIsICJ3ZWJraXQtZXhlY3V0aW9uLWxpbmUiKTsKICAgICAgICAgICAgIHRoaXMucmV2ZWFs
TGluZSh0aGlzLl9leGVjdXRpb25MaW5lTnVtYmVyKTsKKyAgICAgICAgICAgIGlmICh0aGlzLmNh
bkVkaXRTb3VyY2UoKSkKKyAgICAgICAgICAgICAgICB0aGlzLnNldFNlbGVjdGlvbihXZWJJbnNw
ZWN0b3IuVGV4dFJhbmdlLmNyZWF0ZUZyb21Mb2NhdGlvbihsaW5lTnVtYmVyLCAwKSk7CiAgICAg
ICAgIH0KLSAgICAgICAgaWYgKHRoaXMuY2FuRWRpdFNvdXJjZSgpKQotICAgICAgICAgICAgdGhp
cy5zZXRTZWxlY3Rpb24oV2ViSW5zcGVjdG9yLlRleHRSYW5nZS5jcmVhdGVGcm9tTG9jYXRpb24o
bGluZU51bWJlciwgMCkpOwogICAgIH0sCiAKICAgICBjbGVhckV4ZWN1dGlvbkxpbmU6IGZ1bmN0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291
cmNlRnJhbWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZy
YW1lLmpzCmluZGV4IGU2YmU2ZjcxOTc3YzY0NjYwOTA3Nzg1ZGMxYzM5YzQ4MTBhZDQ4Y2MuLjZk
OGVlYTE3Y2NiNTFlNzExZjUyYzA1MTkxNTAxZTA0MzAzNjM1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwpAQCAtNzUsMTEgKzc1
LDE3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5jcmVhdGVTZWFyY2hSZWdleCA9IGZ1bmN0
aW9uKHF1ZXJ5KQogICAgIHJldHVybiByZWdleDsKIH0KIAorV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLkV2ZW50cyA9IHsKKyAgICBTY3JvbGxDaGFuZ2VkOiAiU2Nyb2xsQ2hhbmdlZCIsCisgICAg
U2VsZWN0aW9uQ2hhbmdlZDogIlNlbGVjdGlvbkNoYW5nZWQiCit9CisKIFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgd2FzU2hvd246IGZ1bmN0aW9uKCkKICAgICB7
CiAgICAgICAgIHRoaXMuX2Vuc3VyZUNvbnRlbnRMb2FkZWQoKTsKICAgICAgICAgdGhpcy5fdGV4
dFZpZXdlci5zaG93KHRoaXMuZWxlbWVudCk7CisgICAgICAgIHRoaXMuX3dhc1Nob3duT3JMb2Fk
ZWQoKTsKICAgICB9LAogCiAgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKQEAgLTE0NiwzNSArMTUy
LDkxIEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJl
dHVybiB0aGlzLl90ZXh0TW9kZWw7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7
bnVtYmVyfSBsaW5lCisgICAgICovCiAgICAgY2FuSGlnaGxpZ2h0TGluZTogZnVuY3Rpb24obGlu
ZSkKICAgICB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAg
KiBAcGFyYW0ge251bWJlcn0gbGluZQorICAgICAqLwogICAgIGhpZ2hsaWdodExpbmU6IGZ1bmN0
aW9uKGxpbmUpCiAgICAgewogICAgICAgICB0aGlzLl9jbGVhckxpbmVUb1JldmVhbCgpOwotICAg
ICAgICBpZiAodGhpcy5sb2FkZWQpCi0gICAgICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLmhpZ2hs
aWdodExpbmUobGluZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMuX2xpbmVUb0hp
Z2hsaWdodCA9IGxpbmU7CisgICAgICAgIHRoaXMuX2NsZWFyTGluZVRvU2Nyb2xsVG8oKTsKKyAg
ICAgICAgdGhpcy5fbGluZVRvSGlnaGxpZ2h0ID0gbGluZTsKKyAgICAgICAgdGhpcy5faW5uZXJI
aWdobGlnaHRMaW5lSWZOZWVkZWQoKTsKKyAgICB9LAorCisgICAgX2lubmVySGlnaGxpZ2h0TGlu
ZUlmTmVlZGVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2xp
bmVUb0hpZ2hsaWdodCA9PT0gIm51bWJlciIpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLmxvYWRl
ZCAmJiB0aGlzLl90ZXh0Vmlld2VyLmlzU2hvd2luZygpKSB7CisgICAgICAgICAgICAgICAgdGhp
cy5fdGV4dFZpZXdlci5oaWdobGlnaHRMaW5lKHRoaXMuX2xpbmVUb0hpZ2hsaWdodCk7CisgICAg
ICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2xpbmVUb0hpZ2hsaWdodAorICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgfSwKIAogICAgIF9jbGVhckxpbmVIaWdobGlnaHQ6IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIGlmICh0aGlzLmxvYWRlZCkKLSAgICAgICAgICAgIHRoaXMuX3RleHRW
aWV3ZXIuY2xlYXJMaW5lSGlnaGxpZ2h0KCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRl
bGV0ZSB0aGlzLl9saW5lVG9IaWdobGlnaHQ7CisgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuY2xl
YXJMaW5lSGlnaGxpZ2h0KCk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9saW5lVG9IaWdobGlnaHQ7
CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lCisgICAgICov
CiAgICAgcmV2ZWFsTGluZTogZnVuY3Rpb24obGluZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2Ns
ZWFyTGluZUhpZ2hsaWdodCgpOwotICAgICAgICBpZiAodGhpcy5sb2FkZWQpCi0gICAgICAgICAg
ICB0aGlzLl90ZXh0Vmlld2VyLnJldmVhbExpbmUobGluZSk7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIHRoaXMuX2xpbmVUb1JldmVhbCA9IGxpbmU7CisgICAgICAgIHRoaXMuX2NsZWFyTGlu
ZVRvU2Nyb2xsVG8oKTsKKyAgICAgICAgdGhpcy5fbGluZVRvUmV2ZWFsID0gbGluZTsKKyAgICAg
ICAgdGhpcy5faW5uZXJSZXZlYWxMaW5lSWZOZWVkZWQoKTsKKyAgICB9LAorCisgICAgX2lubmVy
UmV2ZWFsTGluZUlmTmVlZGVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodHlwZW9m
IHRoaXMuX2xpbmVUb1JldmVhbCA9PT0gIm51bWJlciIpIHsKKyAgICAgICAgICAgIGlmICh0aGlz
LmxvYWRlZCAmJiB0aGlzLl90ZXh0Vmlld2VyLmlzU2hvd2luZygpKSB7CisgICAgICAgICAgICAg
ICAgdGhpcy5fdGV4dFZpZXdlci5yZXZlYWxMaW5lKHRoaXMuX2xpbmVUb1JldmVhbCk7CisgICAg
ICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2xpbmVUb1JldmVhbAorICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgfSwKKworICAgIF9jbGVhckxpbmVUb1JldmVhbDogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2xpbmVUb1JldmVhbDsKKyAgICB9LAorCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmUKKyAgICAgKi8KKyAgICBzY3JvbGxUb0xpbmU6
IGZ1bmN0aW9uKGxpbmUpCisgICAgeworICAgICAgICB0aGlzLl9jbGVhckxpbmVIaWdobGlnaHQo
KTsKKyAgICAgICAgdGhpcy5fY2xlYXJMaW5lVG9SZXZlYWwoKTsKKyAgICAgICAgdGhpcy5fbGlu
ZVRvU2Nyb2xsVG8gPSBsaW5lOworICAgICAgICB0aGlzLl9pbm5lclNjcm9sbFRvTGluZUlmTmVl
ZGVkKCk7CisgICAgfSwKKworICAgIF9pbm5lclNjcm9sbFRvTGluZUlmTmVlZGVkOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2xpbmVUb1Njcm9sbFRvID09PSAi
bnVtYmVyIikgeworICAgICAgICAgICAgaWYgKHRoaXMubG9hZGVkICYmIHRoaXMuX3RleHRWaWV3
ZXIuaXNTaG93aW5nKCkpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLnNjcm9s
bFRvTGluZSh0aGlzLl9saW5lVG9TY3JvbGxUbyk7CisgICAgICAgICAgICAgICAgZGVsZXRlIHRo
aXMuX2xpbmVUb1Njcm9sbFRvCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9LAorCisg
ICAgX2NsZWFyTGluZVRvU2Nyb2xsVG86IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGRlbGV0
ZSB0aGlzLl9saW5lVG9TY3JvbGxUbzsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xODIsMTUgKzI0
NCwyNCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAqLwog
ICAgIHNldFNlbGVjdGlvbjogZnVuY3Rpb24odGV4dFJhbmdlKQogICAgIHsKLSAgICAgICAgaWYg
KHRoaXMubG9hZGVkKQotICAgICAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5zZXRTZWxlY3Rpb24o
dGV4dFJhbmdlKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uVG9T
ZXQgPSB0ZXh0UmFuZ2U7CisgICAgICAgIHRoaXMuX3NlbGVjdGlvblRvU2V0ID0gdGV4dFJhbmdl
OworICAgICAgICB0aGlzLl9pbm5lclNldFNlbGVjdGlvbklmTmVlZGVkKCk7CiAgICAgfSwKIAot
ICAgIF9jbGVhckxpbmVUb1JldmVhbDogZnVuY3Rpb24oKQorICAgIF9pbm5lclNldFNlbGVjdGlv
bklmTmVlZGVkOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBkZWxldGUgdGhpcy5fbGluZVRv
UmV2ZWFsOworICAgICAgICBpZiAodGhpcy5fc2VsZWN0aW9uVG9TZXQgJiYgdGhpcy5sb2FkZWQg
JiYgdGhpcy5fdGV4dFZpZXdlci5pc1Nob3dpbmcoKSkgeworICAgICAgICAgICAgdGhpcy5fdGV4
dFZpZXdlci5zZXRTZWxlY3Rpb24odGhpcy5fc2VsZWN0aW9uVG9TZXQpOworICAgICAgICAgICAg
ZGVsZXRlIHRoaXMuX3NlbGVjdGlvblRvU2V0OworICAgICAgICB9CisgICAgfSwKKworICAgIF93
YXNTaG93bk9yTG9hZGVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9pbm5lckhp
Z2hsaWdodExpbmVJZk5lZWRlZCgpOworICAgICAgICB0aGlzLl9pbm5lclJldmVhbExpbmVJZk5l
ZWRlZCgpOworICAgICAgICB0aGlzLl9pbm5lclNjcm9sbFRvTGluZUlmTmVlZGVkKCk7CisgICAg
ICAgIHRoaXMuX2lubmVyU2V0U2VsZWN0aW9uSWZOZWVkZWQoKTsKICAgICB9LAogCiAgICAgYmVm
b3JlVGV4dENoYW5nZWQ6IGZ1bmN0aW9uKCkKQEAgLTIxOSwyMCArMjkwLDcgQEAgV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9zZXRUZXh0Vmll
d2VyRGVjb3JhdGlvbnMoKTsKIAotICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2xpbmVUb0hpZ2hs
aWdodCA9PT0gIm51bWJlciIpIHsKLSAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0TGluZSh0aGlz
Ll9saW5lVG9IaWdobGlnaHQpOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2xpbmVUb0hpZ2hs
aWdodDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh0eXBlb2YgdGhpcy5fbGluZVRvUmV2ZWFs
ID09PSAibnVtYmVyIikgewotICAgICAgICAgICAgdGhpcy5yZXZlYWxMaW5lKHRoaXMuX2xpbmVU
b1JldmVhbCk7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fbGluZVRvUmV2ZWFsOwotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9zZWxlY3Rpb25Ub1NldCA9PT0gIm9iamVj
dCIpIHsKLSAgICAgICAgICAgIHRoaXMuc2V0U2VsZWN0aW9uKHRoaXMuX3NlbGVjdGlvblRvU2V0
KTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9zZWxlY3Rpb25Ub1NldDsKLSAgICAgICAgfQor
ICAgICAgICB0aGlzLl93YXNTaG93bk9yTG9hZGVkKCk7CiAKICAgICAgICAgaWYgKHRoaXMuX2Rl
bGF5ZWRGaW5kU2VhcmNoTWF0Y2hlcykgewogICAgICAgICAgICAgdGhpcy5fZGVsYXllZEZpbmRT
ZWFyY2hNYXRjaGVzKCk7CkBAIC00OTYsNiArNTU0LDIyIEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgY29tbWl0RWRpdGluZzogZnVuY3Rpb24o
dGV4dCkKICAgICB7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlRleHRSYW5nZX0gdGV4dFJhbmdlCisgICAgICovCisgICAgc2VsZWN0aW9uQ2hhbmdlZDog
ZnVuY3Rpb24odGV4dFJhbmdlKQorICAgIHsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLkV2ZW50cy5TZWxlY3Rpb25DaGFuZ2Vk
LCB0ZXh0UmFuZ2UpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0g
bGluZU51bWJlcgorICAgICAqLworICAgIHNjcm9sbENoYW5nZWQ6IGZ1bmN0aW9uKGxpbmVOdW1i
ZXIpCisgICAgeworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLlNjcm9sbENoYW5nZWQsIGxpbmVOdW1iZXIpOwogICAg
IH0KIH0KIApAQCAtNTI3LDYgKzYwMSwyMiBAQCBXZWJJbnNwZWN0b3IuVGV4dFZpZXdlckRlbGVn
YXRlRm9yU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9zb3VyY2VGcmFt
ZS5jb21taXRFZGl0aW5nKHRoaXMuX3NvdXJjZUZyYW1lLl90ZXh0TW9kZWwudGV4dCk7CiAgICAg
fSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRleHRSYW5nZX0gdGV4
dFJhbmdlCisgICAgICovCisgICAgc2VsZWN0aW9uQ2hhbmdlZDogZnVuY3Rpb24odGV4dFJhbmdl
KQorICAgIHsKKyAgICAgICAgdGhpcy5fc291cmNlRnJhbWUuc2VsZWN0aW9uQ2hhbmdlZCh0ZXh0
UmFuZ2UpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51
bWJlcgorICAgICAqLworICAgIHNjcm9sbENoYW5nZWQ6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCisg
ICAgeworICAgICAgICB0aGlzLl9zb3VyY2VGcmFtZS5zY3JvbGxDaGFuZ2VkKGxpbmVOdW1iZXIp
OworICAgIH0sCisKICAgICBwb3B1bGF0ZUxpbmVHdXR0ZXJDb250ZXh0TWVudTogZnVuY3Rpb24o
Y29udGV4dE1lbnUsIGxpbmVOdW1iZXIpCiAgICAgewogICAgICAgICB0aGlzLl9zb3VyY2VGcmFt
ZS5wb3B1bGF0ZUxpbmVHdXR0ZXJDb250ZXh0TWVudShjb250ZXh0TWVudSwgbGluZU51bWJlcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RhYmJlZEVk
aXRvckNvbnRhaW5lci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFi
YmVkRWRpdG9yQ29udGFpbmVyLmpzCmluZGV4IGMxOGUwMDUxMWQ5ODM2NWNhZDNjMmM4YmFlYmM3
Y2Q5ZjU5Y2ZhZmYuLjMzNTJiZGExNDZlM2UyMWViZmNhMDUyZTRlMzU2MGZlMmM1YWM4MDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFiYmVkRWRpdG9y
Q29udGFpbmVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGFi
YmVkRWRpdG9yQ29udGFpbmVyLmpzCkBAIC02Miw3ICs2Miw3IEBAIFdlYkluc3BlY3Rvci5UYWJi
ZWRFZGl0b3JDb250YWluZXIgPSBmdW5jdGlvbihkZWxlZ2F0ZSwgc2V0dGluZ05hbWUpCiAgICAg
dGhpcy5fbG9hZGVkVVJMcyA9IHt9OwogCiAgICAgdGhpcy5fcHJldmlvdXNseVZpZXdlZEZpbGVz
U2V0dGluZyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0aW5nKHNldHRpbmdOYW1l
LCBbXSk7Ci0gICAgdGhpcy5faGlzdG9yeSA9IG5ldyBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9y
Q29udGFpbmVyLkhpc3RvcnkodGhpcy5fcHJldmlvdXNseVZpZXdlZEZpbGVzU2V0dGluZy5nZXQo
KSk7CisgICAgdGhpcy5faGlzdG9yeSA9IFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWlu
ZXIuSGlzdG9yeS5mcm9tT2JqZWN0KHRoaXMuX3ByZXZpb3VzbHlWaWV3ZWRGaWxlc1NldHRpbmcu
Z2V0KCkpOwogfQogCiAKQEAgLTEwOCw2ICsxMDgsMzcgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZEVk
aXRvckNvbnRhaW5lci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2lubmVyU2hvd0ZpbGUo
dWlTb3VyY2VDb2RlLCB0cnVlKTsKICAgICB9LAogCisgICAgX2FkZFNjcm9sbEFuZFNlbGVjdGlv
bkxpc3RlbmVyczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhp
cy5fY3VycmVudEZpbGUpOworICAgICAgICB2YXIgc291cmNlRnJhbWUgPSB0aGlzLl9kZWxlZ2F0
ZS52aWV3Rm9yRmlsZSh0aGlzLl9jdXJyZW50RmlsZSk7CisgICAgICAgIHNvdXJjZUZyYW1lLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLkV2ZW50cy5TY3JvbGxDaGFu
Z2VkLCB0aGlzLl9zY3JvbGxDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgc291cmNlRnJhbWUuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLlNlbGVjdGlvbkNo
YW5nZWQsIHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQsIHRoaXMpOworICAgIH0sCisKKyAgICBfcmVt
b3ZlU2Nyb2xsQW5kU2VsZWN0aW9uTGlzdGVuZXJzOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICBpZiAoIXRoaXMuX2N1cnJlbnRGaWxlKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2
YXIgc291cmNlRnJhbWUgPSB0aGlzLl9kZWxlZ2F0ZS52aWV3Rm9yRmlsZSh0aGlzLl9jdXJyZW50
RmlsZSk7CisgICAgICAgIHNvdXJjZUZyYW1lLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lLkV2ZW50cy5TY3JvbGxDaGFuZ2VkLCB0aGlzLl9zY3JvbGxDaGFuZ2Vk
LCB0aGlzKTsKKyAgICAgICAgc291cmNlRnJhbWUucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuU291cmNlRnJhbWUuRXZlbnRzLlNlbGVjdGlvbkNoYW5nZWQsIHRoaXMuX3NlbGVjdGlv
bkNoYW5nZWQsIHRoaXMpOworICAgIH0sCisKKyAgICBfc2Nyb2xsQ2hhbmdlZDogZnVuY3Rpb24o
ZXZlbnQpCisgICAgeworICAgICAgICB2YXIgbGluZU51bWJlciA9IC8qKiBAdHlwZSB7bnVtYmVy
fSAqLyBldmVudC5kYXRhOworICAgICAgICB0aGlzLl9oaXN0b3J5LnVwZGF0ZVNjcm9sbExpbmVO
dW1iZXIodGhpcy5fY3VycmVudEZpbGUudXJsLCBsaW5lTnVtYmVyKTsKKyAgICAgICAgdGhpcy5f
aGlzdG9yeS5zYXZlKHRoaXMuX3ByZXZpb3VzbHlWaWV3ZWRGaWxlc1NldHRpbmcpOworICAgIH0s
CisKKyAgICBfc2VsZWN0aW9uQ2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAg
ICB2YXIgcmFuZ2UgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5UZXh0UmFuZ2V9ICovIGV2ZW50
LmRhdGE7CisgICAgICAgIHRoaXMuX2hpc3RvcnkudXBkYXRlU2VsZWN0aW9uUmFuZ2UodGhpcy5f
Y3VycmVudEZpbGUudXJsLCByYW5nZSk7CisgICAgICAgIHRoaXMuX2hpc3Rvcnkuc2F2ZSh0aGlz
Ll9wcmV2aW91c2x5Vmlld2VkRmlsZXNTZXR0aW5nKTsKKyAgICB9LAorCiAgICAgLyoqCiAgICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKICAgICAg
KiBAcGFyYW0ge2Jvb2xlYW49fSB1c2VyR2VzdHVyZQpAQCAtMTE2LDYgKzE0Nyw3IEBAIFdlYklu
c3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewogICAgIHsKICAgICAg
ICAgaWYgKHRoaXMuX2N1cnJlbnRGaWxlID09PSB1aVNvdXJjZUNvZGUpCiAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIHRoaXMuX3JlbW92ZVNjcm9sbEFuZFNlbGVjdGlvbkxpc3RlbmVycygp
OwogICAgICAgICB0aGlzLl9jdXJyZW50RmlsZSA9IHVpU291cmNlQ29kZTsKIAogICAgICAgICB2
YXIgdGFiSWQgPSB0aGlzLl90YWJJZHMuZ2V0KHVpU291cmNlQ29kZSkgfHwgdGhpcy5fYXBwZW5k
RmlsZVRhYih1aVNvdXJjZUNvZGUsIHVzZXJHZXN0dXJlKTsKQEAgLTEyNCw2ICsxNTYsOCBAQCBX
ZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
aWYgKHVzZXJHZXN0dXJlKQogICAgICAgICAgICAgdGhpcy5fZWRpdG9yU2VsZWN0ZWRCeVVzZXJB
Y3Rpb24oKTsKICAgICAgICAgCisgICAgICAgIHRoaXMuX2FkZFNjcm9sbEFuZFNlbGVjdGlvbkxp
c3RlbmVycygpOworICAgICAgICAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5FdmVudHMuRWRpdG9yU2VsZWN0
ZWQsIHRoaXMuX2N1cnJlbnRGaWxlKTsKICAgICB9LAogCkBAIC0yMjUsNiArMjU5LDEzIEBAIFdl
Ykluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIucHJvdG90eXBlID0gewogICAgICAgICB0
aGlzLl90YWJJZHMucHV0KHVpU291cmNlQ29kZSwgdGFiSWQpOwogICAgICAgICB0aGlzLl9maWxl
c1t0YWJJZF0gPSB1aVNvdXJjZUNvZGU7CiAKKyAgICAgICAgdmFyIHNhdmVkU2Nyb2xsTGluZU51
bWJlciA9IHRoaXMuX2hpc3Rvcnkuc2Nyb2xsTGluZU51bWJlcih1aVNvdXJjZUNvZGUudXJsKTsK
KyAgICAgICAgaWYgKHNhdmVkU2Nyb2xsTGluZU51bWJlcikKKyAgICAgICAgICAgIHZpZXcuc2Ny
b2xsVG9MaW5lKHNhdmVkU2Nyb2xsTGluZU51bWJlcik7CisgICAgICAgIHZhciBzYXZlZFNlbGVj
dGlvblJhbmdlID0gdGhpcy5faGlzdG9yeS5zZWxlY3Rpb25SYW5nZSh1aVNvdXJjZUNvZGUudXJs
KTsKKyAgICAgICAgaWYgKHNhdmVkU2VsZWN0aW9uUmFuZ2UpCisgICAgICAgICAgICB2aWV3LnNl
dFNlbGVjdGlvbihzYXZlZFNlbGVjdGlvblJhbmdlKTsKKwogICAgICAgICB0aGlzLl90YWJiZWRQ
YW5lLmFwcGVuZFRhYih0YWJJZCwgdGl0bGUsIHZpZXcsIHRvb2x0aXAsIHVzZXJHZXN0dXJlKTsK
IAogICAgICAgICB1aVNvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlT
b3VyY2VDb2RlLkV2ZW50cy5UaXRsZUNoYW5nZWQsIHRoaXMuX3VpU291cmNlQ29kZVRpdGxlQ2hh
bmdlZCwgdGhpcyk7CkBAIC0yNTIsNiArMjkzLDcgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRv
ckNvbnRhaW5lci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB0YWJJZCA9IC8qKiBAdHlwZSB7
c3RyaW5nfSAqLyBldmVudC5kYXRhLnRhYklkOwogICAgICAgICB2YXIgdXNlckdlc3R1cmUgPSAv
KiogQHR5cGUge2Jvb2xlYW59ICovIGV2ZW50LmRhdGEuaXNVc2VyR2VzdHVyZTsKIAorICAgICAg
ICB0aGlzLl9yZW1vdmVTY3JvbGxBbmRTZWxlY3Rpb25MaXN0ZW5lcnMoKTsKICAgICAgICAgdmFy
IHVpU291cmNlQ29kZSA9IHRoaXMuX2ZpbGVzW3RhYklkXTsKICAgICAgICAgdGhpcy5fdGFiSWRz
LnJlbW92ZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICBkZWxldGUgdGhpcy5fZmlsZXNbdGFiSWRd
OwpAQCAtMzYxLDE5ICs0MDMsMTIzIEBAIFdlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWlu
ZXIucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvCiAKIC8qKgog
ICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge3N0cmluZ30gdXJsCisgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5UZXh0UmFuZ2U9fSBzZWxlY3Rpb25SYW5nZQorICogQHBhcmFtIHtudW1iZXI9fSBz
Y3JvbGxMaW5lTnVtYmVyCisgKi8KK1dlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIu
SGlzdG9yeUl0ZW0gPSBmdW5jdGlvbih1cmwsIHNlbGVjdGlvblJhbmdlLCBzY3JvbGxMaW5lTnVt
YmVyKQoreworICAgIHRoaXMudXJsID0gdXJsOworICAgIHRoaXMuc2VsZWN0aW9uUmFuZ2UgPSBz
ZWxlY3Rpb25SYW5nZTsKKyAgICB0aGlzLnNjcm9sbExpbmVOdW1iZXIgPSBzY3JvbGxMaW5lTnVt
YmVyOworfQorCisvKioKKyAqIEBwYXJhbSB7T2JqZWN0fSBzZXJpYWxpemVkSGlzdG9yeUl0ZW0K
KyAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeUl0
ZW19CisgKi8KK1dlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeUl0ZW0u
ZnJvbU9iamVjdCA9IGZ1bmN0aW9uIChzZXJpYWxpemVkSGlzdG9yeUl0ZW0pCit7CisgICAgdmFy
IHNlbGVjdGlvblJhbmdlID0gc2VyaWFsaXplZEhpc3RvcnlJdGVtLnNlbGVjdGlvblJhbmdlID8g
V2ViSW5zcGVjdG9yLlRleHRSYW5nZS5mcm9tT2JqZWN0KHNlcmlhbGl6ZWRIaXN0b3J5SXRlbS5z
ZWxlY3Rpb25SYW5nZSkgOiBudWxsOworICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlRhYmJl
ZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5SXRlbShzZXJpYWxpemVkSGlzdG9yeUl0ZW0udXJsLCBz
ZWxlY3Rpb25SYW5nZSwgc2VyaWFsaXplZEhpc3RvcnlJdGVtLnNjcm9sbExpbmVOdW1iZXIpOwor
fQorCitXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnlJdGVtLnByb3Rv
dHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtPYmplY3R9CisgICAgICovCisgICAg
c2VyaWFsaXplVG9PYmplY3Q6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBzZXJpYWxp
emVkSGlzdG9yeUl0ZW0gPSB7fTsKKyAgICAgICAgc2VyaWFsaXplZEhpc3RvcnlJdGVtLnVybCA9
IHRoaXMudXJsOworICAgICAgICBzZXJpYWxpemVkSGlzdG9yeUl0ZW0uc2VsZWN0aW9uUmFuZ2Ug
PSB0aGlzLnNlbGVjdGlvblJhbmdlOworICAgICAgICBzZXJpYWxpemVkSGlzdG9yeUl0ZW0uc2Ny
b2xsTGluZU51bWJlciA9IHRoaXMuc2Nyb2xsTGluZU51bWJlcjsKKyAgICAgICAgcmV0dXJuIHNl
cmlhbGl6ZWRIaXN0b3J5SXRlbTsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5UYWJiZWRFZGl0
b3JDb250YWluZXIuSGlzdG9yeUl0ZW0ucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rv
ci5PYmplY3QucHJvdG90eXBlOworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtB
cnJheS48V2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5SXRlbT59IGl0
ZW1zCisgKi8KK1dlYkluc3BlY3Rvci5UYWJiZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeSA9IGZ1
bmN0aW9uKGl0ZW1zKQoreworICAgIHRoaXMuX2l0ZW1zID0gaXRlbXM7Cit9CisKKy8qKgorICog
QHBhcmFtIHtPYmplY3R9IHNlcmlhbGl6ZWRIaXN0b3J5CisgKiBAcmV0dXJuIHtXZWJJbnNwZWN0
b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3Rvcnl9CiAgKi8KLVdlYkluc3BlY3Rvci5UYWJi
ZWRFZGl0b3JDb250YWluZXIuSGlzdG9yeSA9IGZ1bmN0aW9uKHVybHMpCitXZWJJbnNwZWN0b3Iu
VGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnkuZnJvbU9iamVjdCA9IGZ1bmN0aW9uKHNlcmlh
bGl6ZWRIaXN0b3J5KQogewotICAgIHRoaXMuX3VybHMgPSB1cmxzOworICAgIHZhciBpdGVtcyA9
IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VyaWFsaXplZEhpc3RvcnkubGVuZ3RoOyAr
K2kpCisgICAgICAgIGl0ZW1zLnB1c2goV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNvbnRhaW5l
ci5IaXN0b3J5SXRlbS5mcm9tT2JqZWN0KHNlcmlhbGl6ZWRIaXN0b3J5W2ldKSk7CisgICAgcmV0
dXJuIG5ldyBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnkoaXRlbXMp
OwogfQogCiBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnkucHJvdG90
eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwKKyAgICAgKiBAcmV0
dXJuIHtudW1iZXJ9CiAgICAgICovCiAgICAgaW5kZXg6IGZ1bmN0aW9uKHVybCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl91cmxzLmluZGV4T2YodXJsKTsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCB0aGlzLl9pdGVtcy5sZW5ndGg7ICsraSkKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKHRoaXMuX2l0ZW1zW2ldLnVybCA9PT0gdXJsKQorICAgICAgICAgICAgICAgIHJldHVy
biBpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtzdHJpbmd9IHVybAorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5U
ZXh0UmFuZ2V8dW5kZWZpbmVkfQorICAgICAqLworICAgIHNlbGVjdGlvblJhbmdlOiBmdW5jdGlv
bih1cmwpCisgICAgeworICAgICAgICB2YXIgaW5kZXggPSB0aGlzLmluZGV4KHVybCk7CisgICAg
ICAgIHJldHVybiBpbmRleCAhPT0gLTEgPyB0aGlzLl9pdGVtc1tpbmRleF0uc2VsZWN0aW9uUmFu
Z2UgOiB1bmRlZmluZWQ7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5n
fSB1cmwKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UZXh0UmFuZ2V9IHNlbGVjdGlvblJh
bmdlCisgICAgICovCisgICAgdXBkYXRlU2VsZWN0aW9uUmFuZ2U6IGZ1bmN0aW9uKHVybCwgc2Vs
ZWN0aW9uUmFuZ2UpCisgICAgeworICAgICAgICBpZiAoIXNlbGVjdGlvblJhbmdlKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB2YXIgaW5kZXggPSB0aGlzLmluZGV4KHVybCk7CisgICAg
ICAgIGlmIChpbmRleCA9PT0gLTEpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMu
X2l0ZW1zW2luZGV4XS5zZWxlY3Rpb25SYW5nZSA9IHNlbGVjdGlvblJhbmdlOworICAgIH0sCisK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsCisgICAgICogQHJldHVybiB7bnVt
YmVyfHVuZGVmaW5lZH0KKyAgICAgKi8KKyAgICBzY3JvbGxMaW5lTnVtYmVyOiBmdW5jdGlvbih1
cmwpCisgICAgeworICAgICAgICB2YXIgaW5kZXggPSB0aGlzLmluZGV4KHVybCk7CisgICAgICAg
IHJldHVybiBpbmRleCAhPT0gLTEgPyB0aGlzLl9pdGVtc1tpbmRleF0uc2Nyb2xsTGluZU51bWJl
ciA6IHVuZGVmaW5lZDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9
IHVybAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzY3JvbGxMaW5lTnVtYmVyCisgICAgICovCisg
ICAgdXBkYXRlU2Nyb2xsTGluZU51bWJlcjogZnVuY3Rpb24odXJsLCBzY3JvbGxMaW5lTnVtYmVy
KQorICAgIHsKKyAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5pbmRleCh1cmwpOworICAgICAgICBp
ZiAoaW5kZXggPT09IC0xKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLl9pdGVt
c1tpbmRleF0uc2Nyb2xsTGluZU51bWJlciA9IHNjcm9sbExpbmVOdW1iZXI7CiAgICAgfSwKIAog
ICAgIC8qKgpAQCAtMzgyLDEwICs1MjgsMTQgQEAgV2ViSW5zcGVjdG9yLlRhYmJlZEVkaXRvckNv
bnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZSA9IHsKICAgICB1cGRhdGU6IGZ1bmN0aW9uKHVybHMp
CiAgICAgewogICAgICAgICBmb3IgKHZhciBpID0gdXJscy5sZW5ndGggLSAxOyBpID49IDA7IC0t
aSkgewotICAgICAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5fdXJscy5pbmRleE9mKHVybHNbaV0p
OwotICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkKLSAgICAgICAgICAgICAgICB0aGlzLl91
cmxzLnNwbGljZShpbmRleCwgMSk7Ci0gICAgICAgICAgICB0aGlzLl91cmxzLnVuc2hpZnQodXJs
c1tpXSk7CisgICAgICAgICAgICB2YXIgaW5kZXggPSB0aGlzLmluZGV4KHVybHNbaV0pOworICAg
ICAgICAgICAgdmFyIGl0ZW07CisgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7CisgICAg
ICAgICAgICAgICAgaXRlbSA9IHRoaXMuX2l0ZW1zW2luZGV4XTsKKyAgICAgICAgICAgICAgICB0
aGlzLl9pdGVtcy5zcGxpY2UoaW5kZXgsIDEpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAgICAgaXRlbSA9IG5ldyBXZWJJbnNwZWN0b3IuVGFiYmVkRWRpdG9yQ29udGFpbmVyLkhp
c3RvcnlJdGVtKHVybHNbaV0pOworICAgICAgICAgICAgdGhpcy5faXRlbXMudW5zaGlmdChpdGVt
KTsKICAgICAgICAgfQogICAgIH0sCiAKQEAgLTM5NCw5ICs1NDQsOSBAQCBXZWJJbnNwZWN0b3Iu
VGFiYmVkRWRpdG9yQ29udGFpbmVyLkhpc3RvcnkucHJvdG90eXBlID0gewogICAgICAqLwogICAg
IHJlbW92ZTogZnVuY3Rpb24odXJsKQogICAgIHsKLSAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5f
dXJscy5pbmRleE9mKHVybCk7CisgICAgICAgIHZhciBpbmRleCA9IHRoaXMuaW5kZXgodXJsKTsK
ICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkKLSAgICAgICAgICAgIHRoaXMuX3VybHMuc3BsaWNl
KGluZGV4LCAxKTsKKyAgICAgICAgICAgIHRoaXMuX2l0ZW1zLnNwbGljZShpbmRleCwgMSk7CiAg
ICAgfSwKICAgICAKICAgICAvKioKQEAgLTQwNCw3ICs1NTQsMTggQEAgV2ViSW5zcGVjdG9yLlRh
YmJlZEVkaXRvckNvbnRhaW5lci5IaXN0b3J5LnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBz
YXZlOiBmdW5jdGlvbihzZXR0aW5nKQogICAgIHsKLSAgICAgICAgc2V0dGluZy5zZXQodGhpcy5f
dXJscyk7CisgICAgICAgIHNldHRpbmcuc2V0KHRoaXMuX3NlcmlhbGl6ZVRvT2JqZWN0KCkpOwor
ICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHJldHVybiB7T2JqZWN0fQorICAgICAqLwor
ICAgIF9zZXJpYWxpemVUb09iamVjdDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHNl
cmlhbGl6ZWRIaXN0b3J5ID0gW107CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5f
aXRlbXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBzZXJpYWxpemVkSGlzdG9yeS5wdXNoKHRo
aXMuX2l0ZW1zW2ldLnNlcmlhbGl6ZVRvT2JqZWN0KCkpOworICAgICAgICByZXR1cm4gc2VyaWFs
aXplZEhpc3Rvcnk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3JNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvck1vZGVsLmpzCmluZGV4IGM4NmFkYjU5MzdiMjJhMGE4
NjViN2RhNjVlOTgzYmE5MTJlNTQ3MjUuLmMyMzdhNjYwZTIwZjQ2NDg1MmQ2YWM5MTE1NjdhZTRm
MzcwYTdkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
VGV4dEVkaXRvck1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGV4dEVkaXRvck1vZGVsLmpzCkBAIC00OCw2ICs0OCwxNSBAQCBXZWJJbnNwZWN0b3IuVGV4
dFJhbmdlLmNyZWF0ZUZyb21Mb2NhdGlvbiA9IGZ1bmN0aW9uKGxpbmUsIGNvbHVtbikKICAgICBy
ZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UobGluZSwgY29sdW1uLCBsaW5lLCBjb2x1
bW4pOwogfQogCisvKioKKyAqIEBwYXJhbSB7T2JqZWN0fSBzZXJpYWxpemVkVGV4dFJhbmdlCisg
KiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVGV4dFJhbmdlfQorICovCitXZWJJbnNwZWN0b3IuVGV4
dFJhbmdlLmZyb21PYmplY3QgPSBmdW5jdGlvbiAoc2VyaWFsaXplZFRleHRSYW5nZSkKK3sKKyAg
ICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2Uoc2VyaWFsaXplZFRleHRSYW5nZS5z
dGFydExpbmUsIHNlcmlhbGl6ZWRUZXh0UmFuZ2Uuc3RhcnRDb2x1bW4sIHNlcmlhbGl6ZWRUZXh0
UmFuZ2UuZW5kTGluZSwgc2VyaWFsaXplZFRleHRSYW5nZS5lbmRDb2x1bW4pOworfQorCiBXZWJJ
bnNwZWN0b3IuVGV4dFJhbmdlLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcmV0dXJu
IHtib29sZWFufQpAQCAtODcsNiArOTYsMTkgQEAgV2ViSW5zcGVjdG9yLlRleHRSYW5nZS5wcm90
b3R5cGUgPSB7CiAgICAgY2xvbmU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHJldHVybiBu
ZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSh0aGlzLnN0YXJ0TGluZSwgdGhpcy5zdGFydENvbHVt
biwgdGhpcy5lbmRMaW5lLCB0aGlzLmVuZENvbHVtbik7CisgICAgfSwKKworICAgIC8qKgorICAg
ICAqIEByZXR1cm4ge09iamVjdH0KKyAgICAgKi8KKyAgICBzZXJpYWxpemVUb09iamVjdDogZnVu
Y3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHNlcmlhbGl6ZWRUZXh0UmFuZ2UgPSB7fTsKKyAg
ICAgICAgc2VyaWFsaXplZFRleHRSYW5nZS5zdGFydExpbmUgPSB0aGlzLnN0YXJ0TGluZTsKKyAg
ICAgICAgc2VyaWFsaXplZFRleHRSYW5nZS5zdGFydENvbHVtbiA9IHRoaXMuc3RhcnRDb2x1bW47
CisgICAgICAgIHNlcmlhbGl6ZWRUZXh0UmFuZ2UuZW5kTGluZSA9IHRoaXMuZW5kTGluZTsKKyAg
ICAgICAgc2VyaWFsaXplZFRleHRSYW5nZS5lbmRDb2x1bW4gPSB0aGlzLmVuZENvbHVtbjsKKyAg
ICAgICAgcmV0dXJuIHNlcmlhbGl6ZWRUZXh0UmFuZ2U7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMKaW5kZXggNzM1MjYx
NzVmYjExYzAyMGY0MzdjOWIxODhhM2U4ZWIyZWIzZDUwNS4uOTA3Y2NjYTNlMDU5Zjg0NzAxNTkw
ZWFlZjcxYjMwNGFhNWNlODEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGV4dFZpZXdlci5qcwpAQCAtNTUsNiArNTUsMTAgQEAgV2ViSW5zcGVjdG9yLlRl
eHRWaWV3ZXIgPSBmdW5jdGlvbih0ZXh0TW9kZWwsIHVybCwgZGVsZWdhdGUpCiAgICAgdmFyIHN5
bmNMaW5lSGVpZ2h0TGlzdGVuZXIgPSB0aGlzLl9zeW5jTGluZUhlaWdodC5iaW5kKHRoaXMpOwog
ICAgIHRoaXMuX21haW5QYW5lbCA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5l
bCh0aGlzLl90ZXh0TW9kZWwsIHVybCwgc3luY1Njcm9sbExpc3RlbmVyLCBzeW5jRGVjb3JhdGlv
bnNGb3JMaW5lTGlzdGVuZXIsIGVudGVyVGV4dENoYW5nZU1vZGUsIGV4aXRUZXh0Q2hhbmdlTW9k
ZSk7CiAgICAgdGhpcy5fZ3V0dGVyUGFuZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JH
dXR0ZXJQYW5lbCh0aGlzLl90ZXh0TW9kZWwsIHN5bmNEZWNvcmF0aW9uc0ZvckxpbmVMaXN0ZW5l
ciwgc3luY0xpbmVIZWlnaHRMaXN0ZW5lcik7CisKKyAgICB0aGlzLl9tYWluUGFuZWwuZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB0aGlzLl9oYW5kbGVTY3JvbGxDaGFuZ2VkLmJp
bmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLl9tYWluUGFuZWwuX2NvbnRhaW5lci5hZGRFdmVu
dExpc3RlbmVyKCJmb2N1cyIsIHRoaXMuX2hhbmRsZUZvY3VzZWQuYmluZCh0aGlzKSwgZmFsc2Up
OworCiAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX21haW5QYW5lbC5lbGVtZW50
KTsKICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZ3V0dGVyUGFuZWwuZWxlbWVu
dCk7CiAKQEAgLTM1NSw2ICszNTksMjkgQEAgV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCisgICAgX2hhbmRsZVNjcm9s
bENoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHZpc2libGVGcm9t
ID0gdGhpcy5fbWFpblBhbmVsLmVsZW1lbnQuc2Nyb2xsVG9wOworICAgICAgICB2YXIgZmlyc3RW
aXNpYmxlTGluZU51bWJlciA9IHRoaXMuX21haW5QYW5lbC5fZmluZEZpcnN0VmlzaWJsZUxpbmVO
dW1iZXIodmlzaWJsZUZyb20pOworICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5zY3JvbGxDaGFuZ2Vk
KGZpcnN0VmlzaWJsZUxpbmVOdW1iZXIpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge251bWJlcn0gbGluZU51bWJlcgorICAgICAqLworICAgIHNjcm9sbFRvTGluZTogZnVuY3Rp
b24obGluZU51bWJlcikKKyAgICB7CisgICAgICAgIHRoaXMuX21haW5QYW5lbC5zY3JvbGxUb0xp
bmUobGluZU51bWJlcik7CisgICAgfSwKKworICAgIF9oYW5kbGVTZWxlY3Rpb25DaGFuZ2U6IGZ1
bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHRleHRSYW5nZSA9IHRoaXMuX21haW5Q
YW5lbC5fZ2V0U2VsZWN0aW9uKCk7CisgICAgICAgIGlmICh0ZXh0UmFuZ2UpCisgICAgICAgICAg
ICB0aGlzLl9sYXN0U2VsZWN0aW9uID0gdGV4dFJhbmdlOworICAgICAgICB0aGlzLl9kZWxlZ2F0
ZS5zZWxlY3Rpb25DaGFuZ2VkKHRleHRSYW5nZSk7CisgICAgfSwKKwogICAgIC8qKgogICAgICAq
IEByZXR1cm4ge1dlYkluc3BlY3Rvci5UZXh0UmFuZ2V9CiAgICAgICovCkBAIC0zNjgsNiArMzk1
LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlID0gewogICAgICAqLwogICAg
IHNldFNlbGVjdGlvbjogZnVuY3Rpb24odGV4dFJhbmdlKQogICAgIHsKKyAgICAgICAgdGhpcy5f
bGFzdFNlbGVjdGlvbiA9IHRleHRSYW5nZTsKICAgICAgICAgdGhpcy5fbWFpblBhbmVsLl9yZXN0
b3JlU2VsZWN0aW9uKHRleHRSYW5nZSk7CiAgICAgfSwKIApAQCAtMzc1LDEwICs0MDMsMjYgQEAg
V2ViSW5zcGVjdG9yLlRleHRWaWV3ZXIucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYg
KCF0aGlzLnJlYWRPbmx5KCkpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IubWFya0JlaW5nRWRp
dGVkKHRoaXMuZWxlbWVudCwgdHJ1ZSk7CisKKyAgICAgICAgdGhpcy5fYm91bmRTZWxlY3Rpb25D
aGFuZ2VMaXN0ZW5lciA9IHRoaXMuX2hhbmRsZVNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpOwor
ICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLCB0aGlz
Ll9ib3VuZFNlbGVjdGlvbkNoYW5nZUxpc3RlbmVyLCBmYWxzZSk7CisgICAgfSwKKworICAgIF9o
YW5kbGVGb2N1c2VkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fbGFzdFNl
bGVjdGlvbikgeworICAgICAgICAgICAgLy8gV2UgZG8gbm90IHJlc3RvcmUgc2VsZWN0aW9uIGFm
dGVyIGZvY3VzIGxvc3QgdG8gYXZvaWQgc2VsZWN0aW9uIGJsaW5raW5nLiBXZSByZXN0b3JlIG9u
bHkgY3Vyc29yIHBvc2l0aW9uIGluc3RlYWQuCisgICAgICAgICAgICAvLyBGSVhNRTogY29uc2lk
ZXIgYWRkaW5nIHNlbGVjdGlvbiBkZWNvcmF0aW9uIHRvIGJsdXJyZWQgZWRpdG9yLgorICAgICAg
ICAgICAgdmFyIG5ld1NlbGVjdGlvbiA9IFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UuY3JlYXRlRnJv
bUxvY2F0aW9uKHRoaXMuX2xhc3RTZWxlY3Rpb24uZW5kTGluZSwgdGhpcy5fbGFzdFNlbGVjdGlv
bi5lbmRDb2x1bW4pOworICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9u
KTsKKyAgICAgICAgfQogICAgIH0sCiAKICAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQogICAgIHsK
KyAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwg
dGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lciwgZmFsc2UpOworICAgICAgICBkZWxl
dGUgdGhpcy5fYm91bmRTZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lcjsKKwogICAgICAgICBpZiAoIXRo
aXMucmVhZE9ubHkoKSkKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5tYXJrQmVpbmdFZGl0ZWQo
dGhpcy5lbGVtZW50LCBmYWxzZSk7CiAgICAgfQpAQCAtNDA1LDYgKzQ0OSwxNiBAQCBXZWJJbnNw
ZWN0b3IuVGV4dFZpZXdlckRlbGVnYXRlLnByb3RvdHlwZSA9IHsKICAgICBjb21taXRFZGl0aW5n
OiBmdW5jdGlvbigpIHsgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlRleHRSYW5nZX0gdGV4dFJhbmdlCisgICAgICovCisgICAgc2VsZWN0aW9uQ2hhbmdlZDogZnVu
Y3Rpb24odGV4dFJhbmdlKSB7IH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0g
bGluZU51bWJlcgorICAgICAqLworICAgIHNjcm9sbENoYW5nZWQ6IGZ1bmN0aW9uKGxpbmVOdW1i
ZXIpIHsgfSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkNvbnRleHRN
ZW51fSBjb250ZXh0TWVudQogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCiAgICAg
ICovCkBAIC00NDIsNiArNDk2LDE4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51
bWJlcgogICAgICAqLworICAgIHNjcm9sbFRvTGluZTogZnVuY3Rpb24obGluZU51bWJlcikKKyAg
ICB7CisgICAgICAgIGlmIChsaW5lTnVtYmVyID49IHRoaXMuX3RleHRNb2RlbC5saW5lc0NvdW50
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHZhciBjaHVuayA9IHRoaXMubWFrZUxp
bmVBQ2h1bmsobGluZU51bWJlcik7CisgICAgICAgIHRoaXMuZWxlbWVudC5zY3JvbGxUb3AgPSBj
aHVuay5vZmZzZXRUb3A7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVy
fSBsaW5lTnVtYmVyCisgICAgICovCiAgICAgcmV2ZWFsTGluZTogZnVuY3Rpb24obGluZU51bWJl
cikKICAgICB7CiAgICAgICAgIGlmIChsaW5lTnVtYmVyID49IHRoaXMuX3RleHRNb2RlbC5saW5l
c0NvdW50KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGY4YWVmYjZiNTlkMGZiZDE4M2Q1MjRiZjIzMWVlMjRmNzQ3NjdmYzQu
LjgwNWI2NTk3MzUyZDg2YmRiNmMzYTBlZjdmYTRiOWFiMzRlODAzYmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMi0wNy0wMyAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTYXZlIHNjcm9sbCBzZWxlY3Rpb24gYW5kIGN1
cnNvciBwb3NpdGlvbiBvZiBTb3VyY2VGcmFtZXMgaW4gc291cmNlcyBwYW5lbC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMjk0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvdGFiYmVk
LWVkaXRvcnMtaGlzdG9yeS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3RhYmJl
ZC1lZGl0b3JzLWhpc3RvcnkuaHRtbDoKKwogMjAxMi0wNy0wMyAgWW9zaGlmdW1pIElub3VlICA8
eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gUmViYXNlbGluZTogQWRk
IG1pc3NpbmcgZXhwZWN0YXRpb24gZmlsZXMgaW50cm9kdWNlZCBieSByMTIxNzIyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS1leHBl
Y3RlZC50eHQKaW5kZXggN2Y4YmVlZTgwY2JhMWJiYjMyNmExZDEwZTczYjlmZGM1ODM1MDc4ZC4u
MzYyOTFjZWNlOTEzNzUyMDNiZmM4MTE1NjI0NjYxMDc4ZGFkZjMwZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RhYmJlZC1lZGl0b3JzLWhpc3RvcnktZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtZWRpdG9ycy1oaXN0b3J5LWV4cGVjdGVk
LnR4dApAQCAtMiwyNiArMiwyNyBAQCBUZXN0cyBoaXN0b3J5IHNhdmluZyBsb2dpYyBpbiBUYWJi
ZWRFZGl0b3JDb250YWluZXIuCiAKIEJ1ZyA3NjkxMgogICBoaXN0b3J5ID0gW10KLSAgaGlzdG9y
eSA9IFt1cmxfMV0KLSAgaGlzdG9yeSA9IFt1cmxfMix1cmxfMV0KLSAgaGlzdG9yeSA9IFt1cmxf
Myx1cmxfMix1cmxfMV0KLSAgaGlzdG9yeSA9IFt1cmxfMix1cmxfMyx1cmxfMV0KLSAgaGlzdG9y
eSA9IFt1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxfMTEsdXJsXzEsdXJsXzIs
dXJsXzNdCi0gIGhpc3RvcnkgPSBbdXJsXzEyLHVybF8xMSx1cmxfMSx1cmxfMix1cmxfM10KLSAg
aGlzdG9yeSA9IFt1cmxfMTMsdXJsXzEyLHVybF8xMSx1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlz
dG9yeSA9IFt1cmxfMTIsdXJsXzEzLHVybF8xMSx1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlzdG9y
eSA9IFt1cmxfMTEsdXJsXzEyLHVybF8xMyx1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9
IFt1cmxfMTIsdXJsXzEzLHVybF8xLHVybF8yLHVybF8zXQotICBoaXN0b3J5ID0gW3VybF8xMix1
cmxfMSx1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxfMTQsdXJsXzEyLHVybF8xLHVybF8y
LHVybF8zXQotICBoaXN0b3J5ID0gW3VybF8xNSx1cmxfMTQsdXJsXzEyLHVybF8xLHVybF8yLHVy
bF8zXQotICBoaXN0b3J5ID0gW3VybF8xNix1cmxfMTUsdXJsXzE0LHVybF8xMix1cmxfMSx1cmxf
Mix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxfMTUsdXJsXzE0LHVybF8xMix1cmxfMSx1cmxfMix1
cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxfMTQsdXJsXzEyLHVybF8xLHVybF8yLHVybF8zXQotICBo
aXN0b3J5ID0gW3VybF8xMix1cmxfMSx1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxfMSx1
cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxfMix1cmxfM10KLSAgaGlzdG9yeSA9IFt1cmxf
M10KKyAgaGlzdG9yeSA9IFt7InVybCI6InVybF8xIn1dCisgIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1
cmxfMiJ9LHsidXJsIjoidXJsXzEifV0KKyAgaGlzdG9yeSA9IFt7InVybCI6InVybF8zIn0seyJ1
cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJsXzEifV0KKyAgaGlzdG9yeSA9IFt7InVybCI6InVybF8y
In0seyJ1cmwiOiJ1cmxfMyJ9LHsidXJsIjoidXJsXzEifV0KKyAgaGlzdG9yeSA9IFt7InVybCI6
InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJsXzMifV0KKyAgaGlzdG9yeSA9IFt7
InVybCI6InVybF8xMSJ9LHsidXJsIjoidXJsXzEifSx7InVybCI6InVybF8yIn0seyJ1cmwiOiJ1
cmxfMyJ9XQorICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMTEifSx7
InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJsXzMifV0KKyAgaGlzdG9y
eSA9IFt7InVybCI6InVybF8xMyJ9LHsidXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMTEifSx7
InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJsXzMifV0KKyAgaGlzdG9y
eSA9IFt7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJsXzEzIn0seyJ1cmwiOiJ1cmxfMTEifSx7
InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJsXzMifV0KKyAgaGlzdG9y
eSA9IFt7InVybCI6InVybF8xMSJ9LHsidXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1cmxfMTMifSx7
InVybCI6InVybF8xIn0seyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJsXzMifV0KKyAgaGlzdG9y
eSA9IFt7InVybCI6InVybF8xMSIsInNlbGVjdGlvblJhbmdlIjp7InN0YXJ0TGluZSI6MTUsInN0
YXJ0Q29sdW1uIjo1LCJlbmRMaW5lIjoxNSwiZW5kQ29sdW1uIjoxMH0sInNjcm9sbExpbmVOdW1i
ZXIiOjEwfSx7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJsXzEzIn0seyJ1cmwiOiJ1cmxfMSJ9
LHsidXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCisgIGhpc3RvcnkgPSBbeyJ1cmwiOiJ1
cmxfMTIifSx7InVybCI6InVybF8xMyJ9LHsidXJsIjoidXJsXzEifSx7InVybCI6InVybF8yIn0s
eyJ1cmwiOiJ1cmxfMyJ9XQorICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1
cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCisgIGhpc3RvcnkgPSBbeyJ1
cmwiOiJ1cmxfMTQifSx7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJsXzEifSx7InVybCI6InVy
bF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQorICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzE1In0seyJ1
cmwiOiJ1cmxfMTQifSx7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJsXzEifSx7InVybCI6InVy
bF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQorICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzE2In0seyJ1
cmwiOiJ1cmxfMTUifSx7InVybCI6InVybF8xNCJ9LHsidXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1
cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCisgIGhpc3RvcnkgPSBbeyJ1
cmwiOiJ1cmxfMTUifSx7InVybCI6InVybF8xNCJ9LHsidXJsIjoidXJsXzEyIn0seyJ1cmwiOiJ1
cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCisgIGhpc3RvcnkgPSBbeyJ1
cmwiOiJ1cmxfMTQifSx7InVybCI6InVybF8xMiJ9LHsidXJsIjoidXJsXzEifSx7InVybCI6InVy
bF8yIn0seyJ1cmwiOiJ1cmxfMyJ9XQorICBoaXN0b3J5ID0gW3sidXJsIjoidXJsXzEyIn0seyJ1
cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCisgIGhpc3Rvcnkg
PSBbeyJ1cmwiOiJ1cmxfMSJ9LHsidXJsIjoidXJsXzIifSx7InVybCI6InVybF8zIn1dCisgIGhp
c3RvcnkgPSBbeyJ1cmwiOiJ1cmxfMiJ9LHsidXJsIjoidXJsXzMifV0KKyAgaGlzdG9yeSA9IFt7
InVybCI6InVybF8zIn1dCiAgIGhpc3RvcnkgPSBbXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRvcnMtaGlzdG9yeS5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RhYmJlZC1lZGl0b3JzLWhpc3RvcnkuaHRtbAppbmRleCAxMmM0MjFlMTE1M2YwMmE0
ZjNkOWY1Y2M2ZDMxYWI4YTZhZDI1ZTBmLi4zYzRlZTE3NGMyMzk0NzI0OTZlMDBmZTMwYzdiNzdm
ZTM3YTQ4NjAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGFiYmVkLWVkaXRv
cnMtaGlzdG9yeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90YWJiZWQtZWRpdG9y
cy1oaXN0b3J5Lmh0bWwKQEAgLTYsNyArNiwxNCBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKIHsK
ICAgICBmdW5jdGlvbiBkdW1wSGlzdG9yeShoaXN0b3J5KQogICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5hZGRSZXN1bHQoIiAgaGlzdG9yeSA9IFsiICsgU3RyaW5nKGhpc3RvcnkuX3VybHMp
ICsgIl0iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgaGlzdG9yeSA9ICIg
KyBKU09OLnN0cmluZ2lmeShoaXN0b3J5Ll9zZXJpYWxpemVUb09iamVjdCgpKSArICIiKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiB1cGRhdGVTY3JvbGxBbmRTZWxlY3Rpb25BbmREdW1wKGhpc3Rv
cnksIHVybCwgc2Nyb2xsTGluZU51bWJlciwgc2VsZWN0aW9uKQorICAgIHsKKyAgICAgICAgaGlz
dG9yeS51cGRhdGVTY3JvbGxMaW5lTnVtYmVyKHVybCwgc2Nyb2xsTGluZU51bWJlcik7CisgICAg
ICAgIGhpc3RvcnkudXBkYXRlU2VsZWN0aW9uUmFuZ2UodXJsLCBzZWxlY3Rpb24pOworICAgICAg
ICBkdW1wSGlzdG9yeShoaXN0b3J5KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiB1cGRhdGVBbmRE
dW1wKGhpc3RvcnksIHVybHMpCkBAIC00Myw2ICs1MCw3IEBAIHZhciB0ZXN0ID0gZnVuY3Rpb24o
KQogICAgIC8vIC4uLiBhbmQgc3dpdGNoaW5nIGJldHdlZW4gdGhlbS4KICAgICB1cGRhdGVBbmRE
dW1wKGhpc3RvcnksIFt1cmwoMTIpLCB1cmwoMTMpLCB1cmwoMTEpXSk7CiAgICAgdXBkYXRlQW5k
RHVtcChoaXN0b3J5LCBbdXJsKDExKSwgdXJsKDEyKSwgdXJsKDEzKV0pOworICAgIHVwZGF0ZVNj
cm9sbEFuZFNlbGVjdGlvbkFuZER1bXAoaGlzdG9yeSwgdXJsKDExKSwgMTAsIG5ldyBXZWJJbnNw
ZWN0b3IuVGV4dFJhbmdlKDE1LCA1LCAxNSwgMTApKTsKICAgICAvLyBOb3cgY2xvc2Ugc29tZSB0
YWJzLgogICAgIHJlbW92ZUFuZER1bXAoaGlzdG9yeSwgdXJsKDExKSk7CiAgICAgcmVtb3ZlQW5k
RHVtcChoaXN0b3J5LCB1cmwoMTMpKTsK
</data>
<flag name="review"
          id="158826"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>