<?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>44097</bug_id>
          
          <creation_ts>2010-08-17 03:08:14 -0700</creation_ts>
          <short_desc>Web Inspector: get rid of node and scoped object-specific ids.</short_desc>
          <delta_ts>2010-08-17 06:31:20 -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>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</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>265450</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-08-17 03:08:14 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265452</commentid>
    <comment_count>1</comment_count>
      <attachid>64569</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-08-17 03:10:52 -0700</bug_when>
    <thetext>Created attachment 64569
[PATCH] Proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265490</commentid>
    <comment_count>2</comment_count>
      <attachid>64569</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-08-17 06:07:44 -0700</bug_when>
    <thetext>Comment on attachment 64569
[PATCH] Proposed change.

WebCore/inspector/front-end/InjectedScript.js:411
 +              var className = this._className(obj);
Simply return this._className(obj)

WebCore/inspector/front-end/InjectedScriptAccess.js:41
 +      console.error(&quot;Access to injected script with no id&quot;);
These two lines can be substituted with one console.assert which also supports stack traces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265498</commentid>
    <comment_count>3</comment_count>
      <attachid>64580</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-08-17 06:15:45 -0700</bug_when>
    <thetext>Created attachment 64580
[PATCH] Patch to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265504</commentid>
    <comment_count>4</comment_count>
      <attachid>64580</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-08-17 06:31:09 -0700</bug_when>
    <thetext>Comment on attachment 64580
[PATCH] Patch to land.

Clearing flags on attachment: 64580

Committed r65499: &lt;http://trac.webkit.org/changeset/65499&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265505</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-08-17 06:31:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64569</attachid>
            <date>2010-08-17 03:10:52 -0700</date>
            <delta_ts>2010-08-17 06:15:45 -0700</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>object_id</filename>
            <type>text/plain</type>
            <size>23872</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Nzg0MjQyNi4uOWY2OWU0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0wOC0xNyAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBnZXQgcmlkIG9mIG5vZGUgYW5kIHNj
b3BlZCBvYmplY3Qtc3BlY2lmaWMgaWRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDQwOTcKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVZpZXcuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1Ry
ZWVPdXRsaW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQu
cHJvdG90eXBlLl9jcmVhdGVUb29sdGlwRm9yTm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanM6CisgICAgICAgIChpbmplY3RlZFNjcmlwdENv
bnN0cnVjdG9yLik6CisgICAgICAgIChpbmplY3RlZFNjcmlwdENvbnN0cnVjdG9yKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0QWNjZXNzLmpzOgorICAgICAg
ICAoSW5qZWN0ZWRTY3JpcHRBY2Nlc3MpOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHRBY2Nlc3Mu
Z2V0Rm9yTm9kZSk6CisgICAgICAgIChJbmplY3RlZFNjcmlwdEFjY2Vzcy5faW5zdGFsbEhhbmRs
ZXIuSW5qZWN0ZWRTY3JpcHRBY2Nlc3MucHJvdG90eXBlLm1ldGhvZE5hbWUpOgorICAgICAgICAo
SW5qZWN0ZWRTY3JpcHRBY2Nlc3MuX2luc3RhbGxIYW5kbGVyKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Qcm9wZXJ0aWVzU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVtb3RlT2JqZWN0SWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5y
ZXNvbHZlTm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anM6CisKIDIwMTAtMDgtMTYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCAxZjU5ODk3Li40NzRjMzYyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBAIC0zNDIsNyArMzQy
LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFy
IGluamVjdGVkU2NyaXB0QWNjZXNzOwogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5z
Y3JpcHRzICYmIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5wYXVzZWQpIHsKICAgICAgICAg
ICAgIHZhciBzZWxlY3RlZENhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5z
aWRlYmFyUGFuZXMuY2FsbHN0YWNrLnNlbGVjdGVkQ2FsbEZyYW1lOwotICAgICAgICAgICAgaW5q
ZWN0ZWRTY3JpcHRBY2Nlc3MgPSBJbmplY3RlZFNjcmlwdEFjY2Vzcy5nZXQoc2VsZWN0ZWRDYWxs
RnJhbWUuaW5qZWN0ZWRTY3JpcHRJZCk7CisgICAgICAgICAgICBpbmplY3RlZFNjcmlwdEFjY2Vz
cyA9IEluamVjdGVkU2NyaXB0QWNjZXNzLmdldChzZWxlY3RlZENhbGxGcmFtZS53b3JsZElkKTsK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBpbmplY3RlZFNjcmlwdEFjY2VzcyA9IEluamVj
dGVkU2NyaXB0QWNjZXNzLmdldERlZmF1bHQoKTsKICAgICAgICAgaW5qZWN0ZWRTY3JpcHRBY2Nl
c3MuZ2V0Q29tcGxldGlvbnMoZXhwcmVzc2lvblN0cmluZywgaW5jbHVkZUluc3BlY3RvckNvbW1h
bmRMaW5lQVBJLCBjYWxsRnJhbWVJZCwgcmVwb3J0Q29tcGxldGlvbnMpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwppbmRleCA0NTUy
ZmEwLi5jN2QzOWYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNUcmVlT3V0bGluZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNUcmVlT3V0bGluZS5qcwpAQCAtNDEzLDcgKzQxMyw4IEBAIFdlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICB0aGlzLnRvb2x0aXAgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIMOXICVkIHBp
eGVscyAoTmF0dXJhbDogJWQgw5cgJWQgcGl4ZWxzKSIsIHByb3BlcnRpZXMub2Zmc2V0V2lkdGgs
IHByb3BlcnRpZXMub2Zmc2V0SGVpZ2h0LCBwcm9wZXJ0aWVzLm5hdHVyYWxXaWR0aCwgcHJvcGVy
dGllcy5uYXR1cmFsSGVpZ2h0KTsKICAgICAgICAgfQotICAgICAgICBXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LmZyb21Ob2RlKG5vZGUpLmdldFByb3BlcnR5VmFsdWVEZXNjcmlwdGlvbnMoWyJu
YXR1cmFsSGVpZ2h0IiwgIm5hdHVyYWxXaWR0aCIsICJvZmZzZXRIZWlnaHQiLCAib2Zmc2V0V2lk
dGgiXSwgc2V0VG9vbHRpcC5iaW5kKHRoaXMpKTsKKworICAgICAgICBJbmplY3RlZFNjcmlwdEFj
Y2Vzcy5nZXRGb3JOb2RlKG5vZGUpLmdldE5vZGVQcm9wZXJ0aWVzKG5vZGUuaWQsIFsibmF0dXJh
bEhlaWdodCIsICJuYXR1cmFsV2lkdGgiLCAib2Zmc2V0SGVpZ2h0IiwgIm9mZnNldFdpZHRoIl0s
IHNldFRvb2x0aXAuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIHVwZGF0ZVNlbGVjdGlvbjog
ZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50
TGlzdGVuZXJzU2lkZWJhclBhbmUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZl
bnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcwppbmRleCBhMDhjNDZkLi4yODAwZDZlIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFu
ZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRl
YmFyUGFuZS5qcwpAQCAtMTg5LDE3ICsxODksMjEgQEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVu
ZXJCYXIgPSBmdW5jdGlvbihldmVudExpc3RlbmVyLCBub2RlSWQpCiBXZWJJbnNwZWN0b3IuRXZl
bnRMaXN0ZW5lckJhci5wcm90b3R5cGUgPSB7CiAgICAgdXBkYXRlOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICB2YXIgcHJvcGVydGllcyA9IFtdOwotICAgICAgICBmb3IgKHZhciBwcm9wZXJ0
eU5hbWUgaW4gdGhpcy5ldmVudExpc3RlbmVyKSB7Ci0gICAgICAgICAgICAvLyBKdXN0IGJ1aWxk
IHByb3BlcnRpZXMgaW4gcGxhY2UgLSBubyBuZWVkIHRvIHJlYWNoIG91dCBmb3IgaW5qZWN0ZWQg
c2NyaXB0LgotICAgICAgICAgICAgdmFyIHZhbHVlID0gdGhpcy5ldmVudExpc3RlbmVyW3Byb3Bl
cnR5TmFtZV07Ci0gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3Iu
RE9NTm9kZSkKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QuZnJvbU5vZGUodmFsdWUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHZh
bHVlID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUHJpbWl0aXZlVmFsdWUodmFsdWUp
OwotICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0UHJvcGVydHkocHJvcGVydHlOYW1lLCB2YWx1ZSkpOworICAgICAgICBmdW5jdGlvbiB1cGRh
dGVXaXRoTm9kZU9iamVjdChub2RlT2JqZWN0KQorICAgICAgICB7CisgICAgICAgICAgICB2YXIg
cHJvcGVydGllcyA9IFtdOworICAgICAgICAgICAgaWYgKG5vZGVPYmplY3QpCisgICAgICAgICAg
ICAgICAgcHJvcGVydGllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVy
dHkoIm5vZGUiLCBub2RlT2JqZWN0KSk7CisKKyAgICAgICAgICAgIGZvciAodmFyIHByb3BlcnR5
TmFtZSBpbiB0aGlzLmV2ZW50TGlzdGVuZXIpIHsKKyAgICAgICAgICAgICAgICB2YXIgdmFsdWUg
PSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QcmltaXRpdmVWYWx1ZSh2YWx1ZSk7Cisg
ICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0UHJvcGVydHkocHJvcGVydHlOYW1lLCB2YWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgdGhpcy51cGRhdGVQcm9wZXJ0aWVzKHByb3BlcnRpZXMpOwogICAgICAgICB9Ci0gICAg
ICAgIHRoaXMudXBkYXRlUHJvcGVydGllcyhwcm9wZXJ0aWVzKTsKKyAgICAgICAgdmFyIG5vZGUg
PSB0aGlzLmV2ZW50TGlzdGVuZXIubm9kZTsKKyAgICAgICAgZGVsZXRlIHRoaXMuZXZlbnRMaXN0
ZW5lci5ub2RlOworICAgICAgICBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnJlc29sdmVOb2Rl
KG5vZGUsIHVwZGF0ZVdpdGhOb2RlT2JqZWN0LmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBf
c2V0Tm9kZVRpdGxlOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SW5qZWN0ZWRTY3JpcHQuanMKaW5kZXggY2FmZmQzZi4uNDQ2YTVhZCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcwpAQCAtNDYsNyArNDYsNyBAQCBJ
bmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fSwKIAotICAgIF93cmFwT2JqZWN0OiBmdW5jdGlvbihvYmplY3QsIG9iamVjdEdyb3VwTmFtZSkK
KyAgICBfd3JhcE9iamVjdDogZnVuY3Rpb24ob2JqZWN0LCBvYmplY3RHcm91cE5hbWUsIGFiYnJl
dmlhdGUpCiAgICAgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgdmFyIG9iamVjdElkOwpA
QCAtNjEsOSArNjEsOSBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX29iamVjdEdyb3Vwc1tvYmplY3RHcm91cE5hbWVdID0gZ3JvdXA7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGdyb3VwLnB1c2goaWQpOwotICAgICAg
ICAgICAgICAgIG9iamVjdElkID0gbmV3IEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdElkKElu
amVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdElkLlR5cGUuSnNPYmplY3QsIGlkKTsKKyAgICAgICAg
ICAgICAgICBvYmplY3RJZCA9IG5ldyBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3RJZChpZCwg
b2JqZWN0R3JvdXBOYW1lKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBJbmpl
Y3RlZFNjcmlwdC5SZW1vdGVPYmplY3QuZnJvbU9iamVjdChvYmplY3QsIG9iamVjdElkKTsKKyAg
ICAgICAgICAgIHJldHVybiBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QuZnJvbU9iamVjdChv
YmplY3QsIG9iamVjdElkLCBhYmJyZXZpYXRlKTsKICAgICAgICAgfSBjYXRjaCAoZSkgewogICAg
ICAgICAgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5mcm9tT2JqZWN0KCJb
IEV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSArICIgXSIpOwogICAgICAgICB9CkBAIC05Miwx
OSArOTIsMTcgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogCiAgICAgZ2V0UHJvdG90
eXBlczogZnVuY3Rpb24obm9kZUlkKQogICAgIHsKKyAgICAgICAgdGhpcy5yZWxlYXNlV3JhcHBl
ck9iamVjdEdyb3VwKCJwcm90b3R5cGVzIik7CiAgICAgICAgIHZhciBub2RlID0gdGhpcy5fbm9k
ZUZvcklkKG5vZGVJZCk7CiAgICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKKwogICAgICAgICB2YXIgcmVzdWx0ID0gW107CiAgICAgICAgIHZhciBwcm90
b3R5cGUgPSBub2RlOwotICAgICAgICB2YXIgcHJvdG90eXBlSWQgPSBuZXcgSW5qZWN0ZWRTY3Jp
cHQuUmVtb3RlT2JqZWN0SWQoSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQuVHlwZS5Ob2Rl
LCBub2RlSWQpOwogICAgICAgICBkbyB7Ci0gICAgICAgICAgICByZXN1bHQucHVzaChJbmplY3Rl
ZFNjcmlwdC5SZW1vdGVPYmplY3QuZnJvbU9iamVjdChwcm90b3R5cGUsIHByb3RvdHlwZUlkKSk7
CisgICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLl93cmFwT2JqZWN0KHByb3RvdHlwZSwgInBy
b3RvdHlwZXMiKSk7CiAgICAgICAgICAgICBwcm90b3R5cGUgPSBwcm90b3R5cGUuX19wcm90b19f
OwotICAgICAgICAgICAgcHJvdG90eXBlSWQgPSBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3RJ
ZC5kZXJpdmVQcm9wZXJ0eShwcm90b3R5cGVJZCwgIl9fcHJvdG9fXyIpOwogICAgICAgICB9IHdo
aWxlIChwcm90b3R5cGUpCi0gICAgCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfSwKIApA
QCAtMTE0LDcgKzExMiw3IEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAg
aWYgKCF0aGlzLl9pc0RlZmluZWQob2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBbXTsKLSAgICAgICAgCisKICAgICAgICAgdmFyIHBy
b3BlcnR5TmFtZXMgPSBpZ25vcmVIYXNPd25Qcm9wZXJ0eSA/IHRoaXMuX2dldFByb3BlcnR5TmFt
ZXMob2JqZWN0KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCk7CiAgICAgICAg
IGlmICghaWdub3JlSGFzT3duUHJvcGVydHkgJiYgb2JqZWN0Ll9fcHJvdG9fXykKICAgICAgICAg
ICAgIHByb3BlcnR5TmFtZXMucHVzaCgiX19wcm90b19fIik7CkBAIC0xMjgsMTAgKzEyNiw3IEBA
IEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHZhciBpc0dldHRlciA9
IG9iamVjdFsiX19sb29rdXBHZXR0ZXJfXyJdICYmIG9iamVjdC5fX2xvb2t1cEdldHRlcl9fKHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgICAgICBpZiAoIWlzR2V0dGVyKSB7CiAgICAgICAgICAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGNoaWxkT2JqZWN0ID0gb2JqZWN0W3By
b3BlcnR5TmFtZV07Ci0gICAgICAgICAgICAgICAgICAgIHZhciBjaGlsZE9iamVjdElkID0gSW5q
ZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQuZGVyaXZlUHJvcGVydHkob2JqZWN0SWQsIHByb3Bl
cnR5TmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBjaGlsZE9iamVjdFByb3h5ID0gbmV3
IEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5mcm9tT2JqZWN0KGNoaWxkT2JqZWN0LCBjaGls
ZE9iamVjdElkLCBhYmJyZXZpYXRlKTsKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkudmFs
dWUgPSBjaGlsZE9iamVjdFByb3h5OworICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS52YWx1
ZSA9IHRoaXMuX3dyYXBPYmplY3Qob2JqZWN0W3Byb3BlcnR5TmFtZV0sIG9iamVjdElkLmdyb3Vw
TmFtZSwgYWJicmV2aWF0ZSk7CiAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAg
ICAgICAgICAgICAgIHByb3BlcnR5LnZhbHVlID0gbmV3IEluamVjdGVkU2NyaXB0LlJlbW90ZU9i
amVjdC5mcm9tRXhjZXB0aW9uKGUpOwogICAgICAgICAgICAgICAgIH0KQEAgLTIwOSw3ICsyMDQs
NyBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgaWYgKCFj
YWxsRnJhbWUpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9wczsKICAgICAgICAgICAg
ICAgICBpZiAoZXhwcmVzc2lvbikKLSAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvblJlc3Vs
dCA9IHRoaXMuX2V2YWx1YXRlT24oY2FsbEZyYW1lLmV2YWx1YXRlLCBjYWxsRnJhbWUsIGV4cHJl
c3Npb24sIHRydWUpOworICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uUmVzdWx0ID0gdGhp
cy5fZXZhbHVhdGVPbihjYWxsRnJhbWUuZXZhbHVhdGUsIGNhbGxGcmFtZSwgZXhwcmVzc2lvbik7
CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIEV2YWx1YXRl
IGludG8gcHJvcGVydGllcyBpbiBzY29wZSBvZiB0aGUgc2VsZWN0ZWQgY2FsbCBmcmFtZS4KICAg
ICAgICAgICAgICAgICAgICAgdmFyIHNjb3BlQ2hhaW4gPSBjYWxsRnJhbWUuc2NvcGVDaGFpbjsK
QEAgLTIxOSw3ICsyMTQsNyBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmICghZXhwcmVzc2lvbikKICAgICAgICAg
ICAgICAgICAgICAgZXhwcmVzc2lvbiA9ICJ0aGlzIjsKLSAgICAgICAgICAgICAgICBleHByZXNz
aW9uUmVzdWx0ID0gdGhpcy5fZXZhbHVhdGVPbihpbnNwZWN0ZWRXaW5kb3cuZXZhbCwgaW5zcGVj
dGVkV2luZG93LCBleHByZXNzaW9uLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgZXhwcmVzc2lv
blJlc3VsdCA9IHRoaXMuX2V2YWx1YXRlT24oaW5zcGVjdGVkV2luZG93LmV2YWwsIGluc3BlY3Rl
ZFdpbmRvdywgZXhwcmVzc2lvbik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAodHlw
ZW9mIGV4cHJlc3Npb25SZXN1bHQgPT09ICJvYmplY3QiKQogICAgICAgICAgICAgICAgIHRoaXMu
X3BvcHVsYXRlUHJvcGVydHlOYW1lcyhleHByZXNzaW9uUmVzdWx0LCBwcm9wcyk7CkBAIC0yMzgs
MzEgKzIzMywyNiBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVy
biB0aGlzLl9ldmFsdWF0ZUFuZFdyYXAoaW5zcGVjdGVkV2luZG93LmV2YWwsIGluc3BlY3RlZFdp
bmRvdywgZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXApOwogICAgIH0sCiAKLSAgICBfZXZhbHVhdGVB
bmRXcmFwOiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbiwgb2JqZWN0
R3JvdXAsIGRvbnRVc2VDb21tYW5kTGluZUFQSSkKKyAgICBfZXZhbHVhdGVBbmRXcmFwOiBmdW5j
dGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXApCiAgICAg
ewogICAgICAgICB0cnkgewotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dyYXBPYmplY3QodGhp
cy5fZXZhbHVhdGVPbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbiwgZG9udFVzZUNv
bW1hbmRMaW5lQVBJKSwgb2JqZWN0R3JvdXApOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dy
YXBPYmplY3QodGhpcy5fZXZhbHVhdGVPbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lv
biksIG9iamVjdEdyb3VwKTsKICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgcmV0
dXJuIEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5mcm9tRXhjZXB0aW9uKGUpOwogICAgICAg
ICB9CiAgICAgfSwKIAotICAgIF9ldmFsdWF0ZU9uOiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9i
amVjdCwgZXhwcmVzc2lvbiwgZG9udFVzZUNvbW1hbmRMaW5lQVBJKQorICAgIF9ldmFsdWF0ZU9u
OiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbikKICAgICB7Ci0gICAg
ICAgIGlmICghZG9udFVzZUNvbW1hbmRMaW5lQVBJKSB7Ci0gICAgICAgICAgICAvLyBPbmx5IGlu
c3RhbGwgY29tbWFuZCBsaW5lIGFwaSBvYmplY3QgZm9yIHRoZSB0aW1lIG9mIGV2YWx1YXRpb24u
Ci0gICAgCi0gICAgICAgICAgICAvLyBTdXJyb3VuZCB0aGUgZXhwcmVzc2lvbiBpbiB3aXRoIHN0
YXRlbWVudHMgdG8gaW5qZWN0IG91ciBjb21tYW5kIGxpbmUgQVBJIHNvIHRoYXQKLSAgICAgICAg
ICAgIC8vIHRoZSB3aW5kb3cgb2JqZWN0IHByb3BlcnRpZXMgc3RpbGwgdGFrZSBtb3JlIHByZWNl
ZGVudCB0aGFuIG91ciBBUEkgZnVuY3Rpb25zLgotICAgICAgICAgICAgaW5zcGVjdGVkV2luZG93
LmNvbnNvbGUuX2NvbW1hbmRMaW5lQVBJID0gdGhpcy5fY29tbWFuZExpbmVBUEk7Ci0gICAgCi0g
ICAgICAgICAgICBleHByZXNzaW9uID0gIndpdGggKHdpbmRvdy5jb25zb2xlLl9jb21tYW5kTGlu
ZUFQSSkgeyB3aXRoICh3aW5kb3cpIHtcbiIgKyBleHByZXNzaW9uICsgIlxufSB9IjsKLSAgICAg
ICAgfQorICAgICAgICAvLyBPbmx5IGluc3RhbGwgY29tbWFuZCBsaW5lIGFwaSBvYmplY3QgZm9y
IHRoZSB0aW1lIG9mIGV2YWx1YXRpb24uCisgICAgICAgIC8vIFN1cnJvdW5kIHRoZSBleHByZXNz
aW9uIGluIHdpdGggc3RhdGVtZW50cyB0byBpbmplY3Qgb3VyIGNvbW1hbmQgbGluZSBBUEkgc28g
dGhhdAorICAgICAgICAvLyB0aGUgd2luZG93IG9iamVjdCBwcm9wZXJ0aWVzIHN0aWxsIHRha2Ug
bW9yZSBwcmVjZWRlbnQgdGhhbiBvdXIgQVBJIGZ1bmN0aW9ucy4KKyAgICAgICAgaW5zcGVjdGVk
V2luZG93LmNvbnNvbGUuX2NvbW1hbmRMaW5lQVBJID0gdGhpcy5fY29tbWFuZExpbmVBUEk7CiAg
ICAgCisgICAgICAgIGV4cHJlc3Npb24gPSAid2l0aCAod2luZG93LmNvbnNvbGUuX2NvbW1hbmRM
aW5lQVBJKSB7IHdpdGggKHdpbmRvdykge1xuIiArIGV4cHJlc3Npb24gKyAiXG59IH0iOwogICAg
ICAgICB2YXIgdmFsdWUgPSBldmFsRnVuY3Rpb24uY2FsbChvYmplY3QsIGV4cHJlc3Npb24pOwog
ICAgIAotICAgICAgICBpZiAoIWRvbnRVc2VDb21tYW5kTGluZUFQSSkKLSAgICAgICAgICAgIGRl
bGV0ZSBpbnNwZWN0ZWRXaW5kb3cuY29uc29sZS5fY29tbWFuZExpbmVBUEk7CisgICAgICAgIGRl
bGV0ZSBpbnNwZWN0ZWRXaW5kb3cuY29uc29sZS5fY29tbWFuZExpbmVBUEk7CiAgICAgCiAgICAg
ICAgIC8vIFdoZW4gZXZhbHVhdGluZyBvbiBjYWxsIGZyYW1lIGVycm9yIGlzIG5vdCB0aHJvd24s
IGJ1dCByZXR1cm5lZCBhcyBhIHZhbHVlLgogICAgICAgICBpZiAodGhpcy5fdHlwZSh2YWx1ZSkg
PT09ICJlcnJvciIpCkBAIC0yODIsNiArMjcyLDcgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBl
ID0gewogICAgICAgICBpZiAoIWNhbGxGcmFtZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAKKyAgICAgICAgaW5qZWN0ZWRTY3JpcHQucmVsZWFzZVdyYXBwZXJPYmplY3RHcm91cCgi
YmFja3RyYWNlIik7CiAgICAgICAgIHZhciByZXN1bHQgPSBbXTsKICAgICAgICAgdmFyIGRlcHRo
ID0gMDsKICAgICAgICAgZG8gewpAQCAtMjk2LDcgKzI4Nyw3IEBAIEluamVjdGVkU2NyaXB0LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IHRoaXMuX2NhbGxGcmFtZUZvcklk
KGNhbGxGcmFtZUlkKTsKICAgICAgICAgaWYgKCFjYWxsRnJhbWUpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiB0aGlzLl9ldmFsdWF0ZUFuZFdyYXAoY2FsbEZyYW1l
LmV2YWx1YXRlLCBjYWxsRnJhbWUsIGNvZGUsIG9iamVjdEdyb3VwLCB0cnVlKTsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX2V2YWx1YXRlQW5kV3JhcChjYWxsRnJhbWUuZXZhbHVhdGUsIGNhbGxGcmFt
ZSwgY29kZSwgb2JqZWN0R3JvdXApOwogICAgIH0sCiAKICAgICBfY2FsbEZyYW1lRm9ySWQ6IGZ1
bmN0aW9uKGlkKQpAQCAtMzE2LDMxICszMDcsMjcgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBl
ID0gewogCiAgICAgX29iamVjdEZvcklkOiBmdW5jdGlvbihvYmplY3RJZCkKICAgICB7Ci0gICAg
ICAgIC8vIFRoZXJlIGFyZSB0aHJlZSB0eXBlcyBvZiBvYmplY3QgaWRzIHVzZWQ6Ci0gICAgICAg
IC8vIC0gbnVtYmVycyBwb2ludCB0byBET00gTm9kZSB2aWEgdGhlIEluc3BlY3RvckRPTUFnZW50
IG1hcHBpbmcKLSAgICAgICAgLy8gLSBzdHJpbmdzIHBvaW50IHRvIGNvbnNvbGUgb2JqZWN0cyBj
YWNoZWQgaW4gSW5zcGVjdG9yQ29udHJvbGxlciBmb3IgbGF6eSBldmFsdWF0aW9uIHVwb24gdGhl
bQotICAgICAgICAvLyAtIG9iamVjdHMgY29udGFpbiBjb21wbGV4IGlkcyBhbmQgYXJlIGN1cnJl
bnRseSB1c2VkIGZvciBzY29wZWQgb2JqZWN0cwotICAgICAgICB2YXIgb2JqZWN0OwotICAgICAg
ICBpZiAob2JqZWN0SWQudHlwZSA9PT0gSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQuVHlw
ZS5Ob2RlKQotICAgICAgICAgICAgb2JqZWN0ID0gdGhpcy5fbm9kZUZvcklkKG9iamVjdElkLnZh
bHVlKTsKLSAgICAgICAgZWxzZSBpZiAob2JqZWN0SWQudHlwZSA9PT0gSW5qZWN0ZWRTY3JpcHQu
UmVtb3RlT2JqZWN0SWQuVHlwZS5Kc09iamVjdCkKLSAgICAgICAgICAgIG9iamVjdCA9IHRoaXMu
X2lkVG9XcmFwcGVkT2JqZWN0W29iamVjdElkLnZhbHVlXTsKLSAgICAgICAgZWxzZSBpZiAob2Jq
ZWN0SWQudHlwZSA9PT0gSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQuVHlwZS5TY29wZU9i
amVjdCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IHRoaXMuX2NhbGxGcmFtZUZvcklk
KG9iamVjdElkLnZhbHVlLmNhbGxGcmFtZSk7Ci0gICAgICAgICAgICBpZiAob2JqZWN0SWQudGhp
c09iamVjdCkKLSAgICAgICAgICAgICAgICBvYmplY3QgPSBjYWxsRnJhbWUudGhpc09iamVjdDsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvYmplY3QgPSBjYWxsRnJhbWUuc2Nv
cGVDaGFpbltvYmplY3RJZC52YWx1ZS5jaGFpbkluZGV4XTsKLSAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICByZXR1cm4gb2JqZWN0SWQ7Ci0gICAgCi0gICAgICAgIHZhciBwYXRoID0gb2JqZWN0
SWQucGF0aDsKLSAgICAKLSAgICAgICAgLy8gRm9sbG93IHRoZSBwcm9wZXJ0eSBwYXRoLgotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgdGhpcy5faXNEZWZpbmVkKG9iamVjdCkgJiYgcGF0aCAmJiBp
IDwgcGF0aC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIG9iamVjdCA9IG9iamVjdFtwYXRoW2ld
XTsKLSAgICAKLSAgICAgICAgcmV0dXJuIG9iamVjdDsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2lk
VG9XcmFwcGVkT2JqZWN0W29iamVjdElkLmlkXTsKKyAgICB9LAorCisgICAgcmVzb2x2ZU5vZGU6
IGZ1bmN0aW9uKG5vZGVJZCkKKyAgICB7CisgICAgICAgIHZhciBub2RlID0gdGhpcy5fbm9kZUZv
cklkKG5vZGVJZCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgLy8gRklYTUU6IHJlY2VpdmUgdGhlIG9iamVjdCBncm91cCBmcm9tIGNsaWVu
dC4KKyAgICAgICAgcmV0dXJuIHRoaXMuX3dyYXBPYmplY3Qobm9kZSwgInByb3RvdHlwZSIpOwor
ICAgIH0sCisKKyAgICBnZXROb2RlUHJvcGVydGllczogZnVuY3Rpb24obm9kZUlkLCBwcm9wZXJ0
aWVzKQorICAgIHsKKyAgICAgICAgdmFyIG5vZGUgPSB0aGlzLl9ub2RlRm9ySWQobm9kZUlkKTsK
KyAgICAgICAgaWYgKCFub2RlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB2
YXIgcmVzdWx0ID0ge307CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5s
ZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdFtwcm9wZXJ0aWVzW2ldXSA9IG5vZGVbcHJv
cGVydGllc1tpXV07CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfSwKIAogICAgIHB1c2hO
b2RlVG9Gcm9udGVuZDogZnVuY3Rpb24ob2JqZWN0SWQpCkBAIC00MjEsNiArNDA4LDggQEAgSW5q
ZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAg
ICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgY2FzZSAibm9kZSI6CisgICAgICAgICAgICB2YXIg
Y2xhc3NOYW1lID0gdGhpcy5fY2xhc3NOYW1lKG9iaik7CisgICAgICAgICAgICByZXR1cm4gY2xh
c3NOYW1lOwogICAgICAgICBjYXNlICJhcnJheSI6CiAgICAgICAgICAgICB2YXIgY2xhc3NOYW1l
ID0gdGhpcy5fY2xhc3NOYW1lKG9iaik7CiAgICAgICAgICAgICBpZiAodHlwZW9mIG9iai5sZW5n
dGggPT09ICJudW1iZXIiKQpAQCAtNTEwLDI1ICs0OTksMTEgQEAgSW5qZWN0ZWRTY3JpcHQucHJv
dG90eXBlID0gewogdmFyIGluamVjdGVkU2NyaXB0ID0gbmV3IEluamVjdGVkU2NyaXB0KCk7CiAK
IC8vIEZJWE1FOiBSZW1vdGVPYmplY3RJZCBhbmQgUmVtb3RlT2JqZWN0IHN0cnVjdHMgbXVzdCBt
YXRjaCB0aGUgV2ViSW5zcGVjdG9yLiogb25lcy4gU2hvdWxkIHJldXNlIHNhbWUgZmlsZSBpbnN0
ZWFkLgotSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQgPSBmdW5jdGlvbih0eXBlLCB2YWx1
ZSwgcGF0aCkKLXsKLSAgICB0aGlzLmluamVjdGVkU2NyaXB0SWQgPSBpbmplY3RlZFNjcmlwdElk
OwotICAgIHRoaXMudHlwZSA9IHR5cGU7Ci0gICAgdGhpcy52YWx1ZSA9IHZhbHVlOwotICAgIHRo
aXMucGF0aCA9IHBhdGggfHwgW107Ci19Ci0KLUluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdElk
LlR5cGUgPSB7Ci0gICAgTm9kZTogIm5vZGUiLAotICAgIEpzT2JqZWN0OiAianNPYmplY3QiLAot
ICAgIFNjb3BlT2JqZWN0OiAic2NvcGVPYmplY3QiCi19Ci0KLUluamVjdGVkU2NyaXB0LlJlbW90
ZU9iamVjdElkLmRlcml2ZVByb3BlcnR5ID0gZnVuY3Rpb24ob2JqZWN0SWQsIHByb3BlcnR5TmFt
ZSkKK0luamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdElkID0gZnVuY3Rpb24oaWQsIGdyb3VwTmFt
ZSkKIHsKLSAgICB2YXIgcGF0aCA9IG9iamVjdElkLnBhdGguc2xpY2UoKSB8fCBbXTsKLSAgICBw
YXRoLnB1c2gocHJvcGVydHlOYW1lKTsKLSAgICByZXR1cm4gbmV3IEluamVjdGVkU2NyaXB0LlJl
bW90ZU9iamVjdElkKG9iamVjdElkLnR5cGUsIG9iamVjdElkLnZhbHVlLCBwYXRoKTsKKyAgICB0
aGlzLndvcmxkSWQgPSBpbmplY3RlZFNjcmlwdElkOworICAgIHRoaXMuaWQgPSBpZDsKKyAgICB0
aGlzLmdyb3VwTmFtZSA9IGdyb3VwTmFtZTsKIH0KIAogSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2Jq
ZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQsIHR5cGUsIGRlc2NyaXB0aW9uLCBoYXNDaGlsZHJlbikK
QEAgLTU2Niw3ICs1NDEsNyBAQCBJbmplY3RlZFNjcmlwdC5DYWxsRnJhbWVQcm94eSA9IGZ1bmN0
aW9uKGlkLCBjYWxsRnJhbWUpCiAgICAgdGhpcy5zb3VyY2VJRCA9IGNhbGxGcmFtZS5zb3VyY2VJ
RDsKICAgICB0aGlzLmxpbmUgPSBjYWxsRnJhbWUubGluZTsKICAgICB0aGlzLnNjb3BlQ2hhaW4g
PSB0aGlzLl93cmFwU2NvcGVDaGFpbihjYWxsRnJhbWUpOwotICAgIHRoaXMuaW5qZWN0ZWRTY3Jp
cHRJZCA9IGluamVjdGVkU2NyaXB0SWQ7CisgICAgdGhpcy53b3JsZElkID0gaW5qZWN0ZWRTY3Jp
cHRJZDsKIH0KIAogSW5qZWN0ZWRTY3JpcHQuQ2FsbEZyYW1lUHJveHkucHJvdG90eXBlID0gewpA
QCAtNTg0LDE1ICs1NTksMTMgQEAgSW5qZWN0ZWRTY3JpcHQuQ2FsbEZyYW1lUHJveHkucHJvdG90
eXBlID0gewogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjb3BlQ2hhaW4ubGVuZ3RoOyBp
KyspIHsKICAgICAgICAgICAgIHZhciBzY29wZVR5cGUgPSBjYWxsRnJhbWUuc2NvcGVUeXBlKGkp
OwogICAgICAgICAgICAgdmFyIHNjb3BlT2JqZWN0ID0gc2NvcGVDaGFpbltpXTsKLSAgICAgICAg
ICAgIHZhciBzY29wZU9iamVjdElkID0gbmV3IEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdElk
KEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdElkLlR5cGUuU2NvcGVPYmplY3QsIHsgY2FsbEZy
YW1lOiB0aGlzLmlkLCBjaGFpbkluZGV4OiBpIH0pOwotICAgICAgICAgICAgdmFyIHNjb3BlT2Jq
ZWN0UHJveHkgPSBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QuZnJvbU9iamVjdChzY29wZU9i
amVjdCwgc2NvcGVPYmplY3RJZCwgdHJ1ZSk7CisgICAgICAgICAgICB2YXIgc2NvcGVPYmplY3RQ
cm94eSA9IGluamVjdGVkU2NyaXB0Ll93cmFwT2JqZWN0KHNjb3BlT2JqZWN0LCAiYmFja3RyYWNl
IiwgdHJ1ZSk7CiAKICAgICAgICAgICAgIHN3aXRjaChzY29wZVR5cGUpIHsKICAgICAgICAgICAg
ICAgICBjYXNlIExPQ0FMX1NDT1BFOiB7CiAgICAgICAgICAgICAgICAgICAgIGZvdW5kTG9jYWxT
Y29wZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIHNjb3BlT2JqZWN0UHJveHkuaXNMb2Nh
bCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIHZhciB0aGlzT2JqZWN0SWQgPSBuZXcgSW5q
ZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQoSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQu
VHlwZS5TY29wZU9iamVjdCwgeyBjYWxsRnJhbWU6IHRoaXMuaWQsIHRoaXNPYmplY3Q6IHRydWUg
fSk7Ci0gICAgICAgICAgICAgICAgICAgIHNjb3BlT2JqZWN0UHJveHkudGhpc09iamVjdCA9IElu
amVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5mcm9tT2JqZWN0KGNhbGxGcmFtZS50aGlzT2JqZWN0
LCB0aGlzT2JqZWN0SWQsIHRydWUpOworICAgICAgICAgICAgICAgICAgICBzY29wZU9iamVjdFBy
b3h5LnRoaXNPYmplY3QgPSBpbmplY3RlZFNjcmlwdC5fd3JhcE9iamVjdChjYWxsRnJhbWUudGhp
c09iamVjdCwgImJhY2t0cmFjZSIsIHRydWUpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgY2FzZSBDTE9TVVJFX1NDT1BFOiB7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHRB
Y2Nlc3MuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHRBY2Nl
c3MuanMKaW5kZXggMTM4NWVjYi4uZTc4MjY5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0QWNjZXNzLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdEFjY2Vzcy5qcwpAQCAtMjksMTkgKzI5LDI1IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLWZ1bmN0aW9uIEluamVjdGVkU2NyaXB0QWNjZXNzKGlu
amVjdGVkU2NyaXB0SWQpIHsKLSAgICB0aGlzLl9pbmplY3RlZFNjcmlwdElkID0gaW5qZWN0ZWRT
Y3JpcHRJZDsKK2Z1bmN0aW9uIEluamVjdGVkU2NyaXB0QWNjZXNzKHdvcmxkSWQpIHsKKyAgICB0
aGlzLl93b3JsZElkID0gd29ybGRJZDsKIH0KIAotSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0ID0g
ZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHRJZCkKK0luamVjdGVkU2NyaXB0QWNjZXNzLmdldCA9IGZ1
bmN0aW9uKHdvcmxkSWQpCiB7Ci0gICAgaWYgKHR5cGVvZiBpbmplY3RlZFNjcmlwdElkID09PSAi
bnVtYmVyIikKLSAgICAgICAgcmV0dXJuIG5ldyBJbmplY3RlZFNjcmlwdEFjY2VzcyhpbmplY3Rl
ZFNjcmlwdElkKTsKKyAgICBpZiAodHlwZW9mIHdvcmxkSWQgPT09ICJudW1iZXIiKQorICAgICAg
ICByZXR1cm4gbmV3IEluamVjdGVkU2NyaXB0QWNjZXNzKHdvcmxkSWQpOwogCiAgICAgY29uc29s
ZS5lcnJvcigiQWNjZXNzIHRvIGluamVjdGVkIHNjcmlwdCB3aXRoIG5vIGlkIik7CiAgICAgY29u
c29sZS50cmFjZSgpOwogfQogCitJbmplY3RlZFNjcmlwdEFjY2Vzcy5nZXRGb3JOb2RlID0gZnVu
Y3Rpb24obm9kZSkKK3sKKyAgICAvLyBGSVhNRTogZG8gc29tZXRoaW5nLgorICAgIHJldHVybiBJ
bmplY3RlZFNjcmlwdEFjY2Vzcy5nZXQoLW5vZGUuaWQpOworfQorCiBJbmplY3RlZFNjcmlwdEFj
Y2Vzcy5nZXREZWZhdWx0ID0gZnVuY3Rpb24oKQogewogICAgIHJldHVybiBJbmplY3RlZFNjcmlw
dEFjY2Vzcy5nZXQoMCk7CkBAIC02Niw3ICs3Miw3IEBAIEluamVjdGVkU2NyaXB0QWNjZXNzLl9p
bnN0YWxsSGFuZGxlciA9IGZ1bmN0aW9uKG1ldGhvZE5hbWUsIGFzeW5jKQogICAgICAgICB9CiAg
ICAgICAgIHZhciBjYWxsSWQgPSBXZWJJbnNwZWN0b3IuQ2FsbGJhY2sud3JhcChteUNhbGxiYWNr
KTsKIAotICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmRpc3BhdGNoT25JbmplY3RlZFNjcmlwdChj
YWxsSWQsIHRoaXMuX2luamVjdGVkU2NyaXB0SWQsIG1ldGhvZE5hbWUsIGFyZ3NTdHJpbmcpOwor
ICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmRpc3BhdGNoT25JbmplY3RlZFNjcmlwdChjYWxsSWQs
IHRoaXMuX3dvcmxkSWQsIG1ldGhvZE5hbWUsIGFyZ3NTdHJpbmcpOwogICAgIH07CiB9CiAKQEAg
LTgxLDQgKzg3LDYgQEAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuX2luc3RhbGxIYW5kbGVyKCJnZXRD
b21wbGV0aW9ucyIpOwogSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuX2luc3RhbGxIYW5kbGVyKCJnZXRQ
cm9wZXJ0aWVzIik7CiBJbmplY3RlZFNjcmlwdEFjY2Vzcy5faW5zdGFsbEhhbmRsZXIoImdldFBy
b3RvdHlwZXMiKTsKIEluamVjdGVkU2NyaXB0QWNjZXNzLl9pbnN0YWxsSGFuZGxlcigicHVzaE5v
ZGVUb0Zyb250ZW5kIik7CitJbmplY3RlZFNjcmlwdEFjY2Vzcy5faW5zdGFsbEhhbmRsZXIoInJl
c29sdmVOb2RlIik7CitJbmplY3RlZFNjcmlwdEFjY2Vzcy5faW5zdGFsbEhhbmRsZXIoImdldE5v
ZGVQcm9wZXJ0aWVzIik7CiBJbmplY3RlZFNjcmlwdEFjY2Vzcy5faW5zdGFsbEhhbmRsZXIoInNl
dFByb3BlcnR5VmFsdWUiKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Qcm9wZXJ0aWVzU2lkZWJhclBhbmUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
UHJvcGVydGllc1NpZGViYXJQYW5lLmpzCmluZGV4IDliYWFmOTguLjc1ZDZhNDggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9wZXJ0aWVzU2lkZWJhclBhbmUuanMK
KysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5q
cwpAQCAtNTksNyArNTksNyBAQCBXZWJJbnNwZWN0b3IuUHJvcGVydGllc1NpZGViYXJQYW5lLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBib2R5LmFwcGVuZENoaWxkKHNlY3Rpb24uZWxl
bWVudCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH07Ci0gICAgICAgIEluamVjdGVkU2NyaXB0
QWNjZXNzLmdldCgtbm9kZS5pZCkuZ2V0UHJvdG90eXBlcyhub2RlLmlkLCBjYWxsYmFjayk7Cisg
ICAgICAgIEluamVjdGVkU2NyaXB0QWNjZXNzLmdldEZvck5vZGUobm9kZSkuZ2V0UHJvdG90eXBl
cyhub2RlLmlkLCBjYWxsYmFjayk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1JlbW90ZU9iamVjdC5qcwppbmRleCBkNmUxOWYyLi5lZDAyOWVmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKQEAgLTI4LDEyICsyOCwxMSBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0SWQgPSBm
dW5jdGlvbihpbmplY3RlZFNjcmlwdElkLCB0eXBlLCB2YWx1ZSwgcGF0aCkKK1dlYkluc3BlY3Rv
ci5SZW1vdGVPYmplY3RJZCA9IGZ1bmN0aW9uKHdvcmxkSWQsIGlkLCBncm91cE5hbWUpCiB7Ci0g
ICAgdGhpcy5pbmplY3RlZFNjcmlwdElkID0gaW5qZWN0ZWRTY3JpcHRJZDsKLSAgICB0aGlzLnR5
cGUgPSB0eXBlOwotICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKLSAgICB0aGlzLnBhdGggPSBwYXRo
IHx8IFtdOworICAgIHRoaXMud29ybGRJZCA9IHdvcmxkSWQ7CisgICAgdGhpcy5pZCA9IGlkOwor
ICAgIHRoaXMuZ3JvdXBOYW1lID0gZ3JvdXBOYW1lOwogfQogCiBXZWJJbnNwZWN0b3IuUmVtb3Rl
T2JqZWN0ID0gZnVuY3Rpb24ob2JqZWN0SWQsIHR5cGUsIGRlc2NyaXB0aW9uLCBoYXNDaGlsZHJl
bikKQEAgLTQ5LDEwICs0OCwxMyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21Qcmlt
aXRpdmVWYWx1ZSA9IGZ1bmN0aW9uKHZhbHVlKQogICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdChudWxsLCB0eXBlb2YgdmFsdWUsIHZhbHVlKTsKIH0KIAotV2ViSW5zcGVj
dG9yLlJlbW90ZU9iamVjdC5mcm9tTm9kZSA9IGZ1bmN0aW9uKG5vZGUsIHBhdGgpCitXZWJJbnNw
ZWN0b3IuUmVtb3RlT2JqZWN0LnJlc29sdmVOb2RlID0gZnVuY3Rpb24obm9kZSwgY2FsbGJhY2sp
CiB7Ci0gICAgdmFyIG9iamVjdElkID0gbmV3IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RJZCgt
bm9kZS5pZCwgIm5vZGUiLCBub2RlLmlkLCBwYXRoKTsKLSAgICByZXR1cm4gbmV3IFdlYkluc3Bl
Y3Rvci5SZW1vdGVPYmplY3Qob2JqZWN0SWQsICJub2RlIiwgYXBwcm9wcmlhdGVTZWxlY3RvckZv
ck5vZGUobm9kZSksIHRydWUpOworICAgIGZ1bmN0aW9uIG15Y2FsbGJhY2sob2JqZWN0KQorICAg
IHsKKyAgICAgICAgY2FsbGJhY2sob2JqZWN0ID8gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5m
cm9tUGF5bG9hZChvYmplY3QpIDogbnVsbCk7CisgICAgfQorICAgIEluamVjdGVkU2NyaXB0QWNj
ZXNzLmdldEZvck5vZGUobm9kZSkucmVzb2x2ZU5vZGUobm9kZS5pZCwgbXljYWxsYmFjayk7CiB9
CiAKIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQgPSBmdW5jdGlvbihwYXls
b2FkKQpAQCAtMTAxLDI0ICsxMDMsNiBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGUgPT09ICJlcnJvciI7CiAgICAgfSwK
IAotICAgIGdldFByb3BlcnR5VmFsdWVEZXNjcmlwdGlvbnM6IGZ1bmN0aW9uKHByb3BlcnRpZXNU
b1F1ZXJ5Rm9yLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVByb3Bl
cnRpZXNNYXBUaGVuQ2FsbGJhY2socHJvcGVydGllc1BheWxvYWQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGlmICghcHJvcGVydGllc1BheWxvYWQpIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFj
aygpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAKLSAgICAg
ICAgICAgIHZhciByZXN1bHQgPSB7fTsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cHJvcGVydGllc1BheWxvYWQubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgaWYgKHByb3Bl
cnRpZXNUb1F1ZXJ5Rm9yLmluZGV4T2YocHJvcGVydGllc1BheWxvYWRbaV0ubmFtZSkgIT09IC0x
KQotICAgICAgICAgICAgICAgICAgICByZXN1bHRbcHJvcGVydGllc1BheWxvYWRbaV0ubmFtZV0g
PSBwcm9wZXJ0aWVzUGF5bG9hZFtpXS52YWx1ZS5kZXNjcmlwdGlvbjsKLSAgICAgICAgICAgIGNh
bGxiYWNrKHJlc3VsdCk7Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5nZXRQcm9wZXJ0aWVzKHRy
dWUsIGZhbHNlLCBjcmVhdGVQcm9wZXJ0aWVzTWFwVGhlbkNhbGxiYWNrKTsKLSAgICB9LAotCiAg
ICAgZ2V0T3duUHJvcGVydGllczogZnVuY3Rpb24oYWJicmV2aWF0ZSwgY2FsbGJhY2spCiAgICAg
ewogICAgICAgICB0aGlzLmdldFByb3BlcnRpZXMoZmFsc2UsIGFiYnJldmlhdGUsIGNhbGxiYWNr
KTsKQEAgLTEzNiw3ICsxMjAsNyBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzW2ldLnZhbHVlID0gV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChwcm9wZXJ0aWVzW2ldLnZhbHVlKTsKICAgICAgICAg
ICAgIGNhbGxiYWNrKHByb3BlcnRpZXMpOwogICAgICAgICB9Ci0gICAgICAgIEluamVjdGVkU2Ny
aXB0QWNjZXNzLmdldCh0aGlzLl9vYmplY3RJZC5pbmplY3RlZFNjcmlwdElkKS5nZXRQcm9wZXJ0
aWVzKHRoaXMuX29iamVjdElkLCBpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgYWJicmV2aWF0ZSwgcmVt
b3RlT2JqZWN0QmluZGVyKTsKKyAgICAgICAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0KHRoaXMu
X29iamVjdElkLndvcmxkSWQpLmdldFByb3BlcnRpZXModGhpcy5fb2JqZWN0SWQsIGlnbm9yZUhh
c093blByb3BlcnR5LCBhYmJyZXZpYXRlLCByZW1vdGVPYmplY3RCaW5kZXIpOwogICAgIH0sCiAK
ICAgICBzZXRQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbihuYW1lLCB2YWx1ZSwgY2FsbGJhY2spCkBA
IC0xNDUsMTIgKzEyOSwxMiBAQCBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgIGNhbGxiYWNrKGZhbHNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQotICAgICAgICBJbmplY3RlZFNjcmlwdEFjY2Vzcy5nZXQodGhpcy5fb2JqZWN0SWQu
aW5qZWN0ZWRTY3JpcHRJZCkuc2V0UHJvcGVydHlWYWx1ZSh0aGlzLl9vYmplY3RJZCwgbmFtZSwg
dmFsdWUsIGNhbGxiYWNrKTsKKyAgICAgICAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0KHRoaXMu
X29iamVjdElkLndvcmxkSWQpLnNldFByb3BlcnR5VmFsdWUodGhpcy5fb2JqZWN0SWQsIG5hbWUs
IHZhbHVlLCBjYWxsYmFjayk7CiAgICAgfSwKIAogICAgIHB1c2hOb2RlVG9Gcm9udGVuZDogZnVu
Y3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICBJbmplY3RlZFNjcmlwdEFjY2Vzcy5nZXQo
dGhpcy5fb2JqZWN0SWQuaW5qZWN0ZWRTY3JpcHRJZCkucHVzaE5vZGVUb0Zyb250ZW5kKHRoaXMu
X29iamVjdElkLCBjYWxsYmFjayk7CisgICAgICAgIEluamVjdGVkU2NyaXB0QWNjZXNzLmdldCh0
aGlzLl9vYmplY3RJZC53b3JsZElkKS5wdXNoTm9kZVRvRnJvbnRlbmQodGhpcy5fb2JqZWN0SWQs
IGNhbGxiYWNrKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCmluZGV4IDE2ZTYwY2IuLjg2NzVmNzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtNDAzLDcgKzQwMyw3IEBAIFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKHJlc3VsdCkK
ICAgICAgICAgICAgICAgICBjYWxsYmFjayhXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21Q
YXlsb2FkKHJlc3VsdCkpOwogICAgICAgICB9Ci0gICAgICAgIEluamVjdGVkU2NyaXB0QWNjZXNz
LmdldChjYWxsRnJhbWUuaW5qZWN0ZWRTY3JpcHRJZCkuZXZhbHVhdGVJbkNhbGxGcmFtZShjYWxs
RnJhbWUuaWQsIGNvZGUsIG9iamVjdEdyb3VwLCBldmFsQ2FsbGJhY2spOworICAgICAgICBJbmpl
Y3RlZFNjcmlwdEFjY2Vzcy5nZXQoY2FsbEZyYW1lLndvcmxkSWQpLmV2YWx1YXRlSW5DYWxsRnJh
bWUoY2FsbEZyYW1lLmlkLCBjb2RlLCBvYmplY3RHcm91cCwgZXZhbENhbGxiYWNrKTsKICAgICB9
LAogCiAgICAgZGVidWdnZXJQYXVzZWQ6IGZ1bmN0aW9uKGNhbGxGcmFtZXMpCg==
</data>
<flag name="review"
          id="53153"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64580</attachid>
            <date>2010-08-17 06:15:45 -0700</date>
            <delta_ts>2010-08-17 06:31:08 -0700</delta_ts>
            <desc>[PATCH] Patch to land.</desc>
            <filename>review_comments</filename>
            <type>text/plain</type>
            <size>23856</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Nzg0MjQyNi4uOWY2OWU0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0wOC0xNyAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBnZXQgcmlkIG9mIG5vZGUgYW5kIHNj
b3BlZCBvYmplY3Qtc3BlY2lmaWMgaWRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDQwOTcKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVZpZXcuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1Ry
ZWVPdXRsaW5lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQu
cHJvdG90eXBlLl9jcmVhdGVUb29sdGlwRm9yTm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQYW5lLmpzOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanM6CisgICAgICAgIChpbmplY3RlZFNjcmlwdENv
bnN0cnVjdG9yLik6CisgICAgICAgIChpbmplY3RlZFNjcmlwdENvbnN0cnVjdG9yKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0QWNjZXNzLmpzOgorICAgICAg
ICAoSW5qZWN0ZWRTY3JpcHRBY2Nlc3MpOgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHRBY2Nlc3Mu
Z2V0Rm9yTm9kZSk6CisgICAgICAgIChJbmplY3RlZFNjcmlwdEFjY2Vzcy5faW5zdGFsbEhhbmRs
ZXIuSW5qZWN0ZWRTY3JpcHRBY2Nlc3MucHJvdG90eXBlLm1ldGhvZE5hbWUpOgorICAgICAgICAo
SW5qZWN0ZWRTY3JpcHRBY2Nlc3MuX2luc3RhbGxIYW5kbGVyKToKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Qcm9wZXJ0aWVzU2lkZWJhclBhbmUucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVtb3RlT2JqZWN0SWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5y
ZXNvbHZlTm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwu
anM6CisKIDIwMTAtMDgtMTYgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwppbmRleCAxZjU5ODk3Li40NzRjMzYyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCkBAIC0zNDIsNyArMzQy
LDcgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFy
IGluamVjdGVkU2NyaXB0QWNjZXNzOwogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5z
Y3JpcHRzICYmIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5wYXVzZWQpIHsKICAgICAgICAg
ICAgIHZhciBzZWxlY3RlZENhbGxGcmFtZSA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5z
aWRlYmFyUGFuZXMuY2FsbHN0YWNrLnNlbGVjdGVkQ2FsbEZyYW1lOwotICAgICAgICAgICAgaW5q
ZWN0ZWRTY3JpcHRBY2Nlc3MgPSBJbmplY3RlZFNjcmlwdEFjY2Vzcy5nZXQoc2VsZWN0ZWRDYWxs
RnJhbWUuaW5qZWN0ZWRTY3JpcHRJZCk7CisgICAgICAgICAgICBpbmplY3RlZFNjcmlwdEFjY2Vz
cyA9IEluamVjdGVkU2NyaXB0QWNjZXNzLmdldChzZWxlY3RlZENhbGxGcmFtZS53b3JsZElkKTsK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBpbmplY3RlZFNjcmlwdEFjY2VzcyA9IEluamVj
dGVkU2NyaXB0QWNjZXNzLmdldERlZmF1bHQoKTsKICAgICAgICAgaW5qZWN0ZWRTY3JpcHRBY2Nl
c3MuZ2V0Q29tcGxldGlvbnMoZXhwcmVzc2lvblN0cmluZywgaW5jbHVkZUluc3BlY3RvckNvbW1h
bmRMaW5lQVBJLCBjYWxsRnJhbWVJZCwgcmVwb3J0Q29tcGxldGlvbnMpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwppbmRleCA0NTUy
ZmEwLi5jN2QzOWYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNUcmVlT3V0bGluZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNUcmVlT3V0bGluZS5qcwpAQCAtNDEzLDcgKzQxMyw4IEBAIFdlYkluc3BlY3Rvci5FbGVt
ZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICB0aGlzLnRvb2x0aXAgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVkIMOXICVkIHBp
eGVscyAoTmF0dXJhbDogJWQgw5cgJWQgcGl4ZWxzKSIsIHByb3BlcnRpZXMub2Zmc2V0V2lkdGgs
IHByb3BlcnRpZXMub2Zmc2V0SGVpZ2h0LCBwcm9wZXJ0aWVzLm5hdHVyYWxXaWR0aCwgcHJvcGVy
dGllcy5uYXR1cmFsSGVpZ2h0KTsKICAgICAgICAgfQotICAgICAgICBXZWJJbnNwZWN0b3IuUmVt
b3RlT2JqZWN0LmZyb21Ob2RlKG5vZGUpLmdldFByb3BlcnR5VmFsdWVEZXNjcmlwdGlvbnMoWyJu
YXR1cmFsSGVpZ2h0IiwgIm5hdHVyYWxXaWR0aCIsICJvZmZzZXRIZWlnaHQiLCAib2Zmc2V0V2lk
dGgiXSwgc2V0VG9vbHRpcC5iaW5kKHRoaXMpKTsKKworICAgICAgICBJbmplY3RlZFNjcmlwdEFj
Y2Vzcy5nZXRGb3JOb2RlKG5vZGUpLmdldE5vZGVQcm9wZXJ0aWVzKG5vZGUuaWQsIFsibmF0dXJh
bEhlaWdodCIsICJuYXR1cmFsV2lkdGgiLCAib2Zmc2V0SGVpZ2h0IiwgIm9mZnNldFdpZHRoIl0s
IHNldFRvb2x0aXAuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIHVwZGF0ZVNlbGVjdGlvbjog
ZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50
TGlzdGVuZXJzU2lkZWJhclBhbmUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZl
bnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcwppbmRleCBhMDhjNDZkLi4yODAwZDZlIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRlYmFyUGFu
ZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRl
YmFyUGFuZS5qcwpAQCAtMTg5LDE3ICsxODksMjEgQEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVu
ZXJCYXIgPSBmdW5jdGlvbihldmVudExpc3RlbmVyLCBub2RlSWQpCiBXZWJJbnNwZWN0b3IuRXZl
bnRMaXN0ZW5lckJhci5wcm90b3R5cGUgPSB7CiAgICAgdXBkYXRlOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICB2YXIgcHJvcGVydGllcyA9IFtdOwotICAgICAgICBmb3IgKHZhciBwcm9wZXJ0
eU5hbWUgaW4gdGhpcy5ldmVudExpc3RlbmVyKSB7Ci0gICAgICAgICAgICAvLyBKdXN0IGJ1aWxk
IHByb3BlcnRpZXMgaW4gcGxhY2UgLSBubyBuZWVkIHRvIHJlYWNoIG91dCBmb3IgaW5qZWN0ZWQg
c2NyaXB0LgotICAgICAgICAgICAgdmFyIHZhbHVlID0gdGhpcy5ldmVudExpc3RlbmVyW3Byb3Bl
cnR5TmFtZV07Ci0gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3Iu
RE9NTm9kZSkKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QuZnJvbU5vZGUodmFsdWUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHZh
bHVlID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUHJpbWl0aXZlVmFsdWUodmFsdWUp
OwotICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0UHJvcGVydHkocHJvcGVydHlOYW1lLCB2YWx1ZSkpOworICAgICAgICBmdW5jdGlvbiB1cGRh
dGVXaXRoTm9kZU9iamVjdChub2RlT2JqZWN0KQorICAgICAgICB7CisgICAgICAgICAgICB2YXIg
cHJvcGVydGllcyA9IFtdOworICAgICAgICAgICAgaWYgKG5vZGVPYmplY3QpCisgICAgICAgICAg
ICAgICAgcHJvcGVydGllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0UHJvcGVy
dHkoIm5vZGUiLCBub2RlT2JqZWN0KSk7CisKKyAgICAgICAgICAgIGZvciAodmFyIHByb3BlcnR5
TmFtZSBpbiB0aGlzLmV2ZW50TGlzdGVuZXIpIHsKKyAgICAgICAgICAgICAgICB2YXIgdmFsdWUg
PSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QcmltaXRpdmVWYWx1ZSh2YWx1ZSk7Cisg
ICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2Jq
ZWN0UHJvcGVydHkocHJvcGVydHlOYW1lLCB2YWx1ZSkpOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgdGhpcy51cGRhdGVQcm9wZXJ0aWVzKHByb3BlcnRpZXMpOwogICAgICAgICB9Ci0gICAg
ICAgIHRoaXMudXBkYXRlUHJvcGVydGllcyhwcm9wZXJ0aWVzKTsKKyAgICAgICAgdmFyIG5vZGUg
PSB0aGlzLmV2ZW50TGlzdGVuZXIubm9kZTsKKyAgICAgICAgZGVsZXRlIHRoaXMuZXZlbnRMaXN0
ZW5lci5ub2RlOworICAgICAgICBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LnJlc29sdmVOb2Rl
KG5vZGUsIHVwZGF0ZVdpdGhOb2RlT2JqZWN0LmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBf
c2V0Tm9kZVRpdGxlOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
SW5qZWN0ZWRTY3JpcHQuanMKaW5kZXggY2FmZmQzZi4uYjlhNDNmNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzCisrKyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdC5qcwpAQCAtNDYsNyArNDYsNyBAQCBJ
bmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fSwKIAotICAgIF93cmFwT2JqZWN0OiBmdW5jdGlvbihvYmplY3QsIG9iamVjdEdyb3VwTmFtZSkK
KyAgICBfd3JhcE9iamVjdDogZnVuY3Rpb24ob2JqZWN0LCBvYmplY3RHcm91cE5hbWUsIGFiYnJl
dmlhdGUpCiAgICAgewogICAgICAgICB0cnkgewogICAgICAgICAgICAgdmFyIG9iamVjdElkOwpA
QCAtNjEsOSArNjEsOSBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX29iamVjdEdyb3Vwc1tvYmplY3RHcm91cE5hbWVdID0gZ3JvdXA7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGdyb3VwLnB1c2goaWQpOwotICAgICAg
ICAgICAgICAgIG9iamVjdElkID0gbmV3IEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdElkKElu
amVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdElkLlR5cGUuSnNPYmplY3QsIGlkKTsKKyAgICAgICAg
ICAgICAgICBvYmplY3RJZCA9IG5ldyBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3RJZChpZCwg
b2JqZWN0R3JvdXBOYW1lKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBJbmpl
Y3RlZFNjcmlwdC5SZW1vdGVPYmplY3QuZnJvbU9iamVjdChvYmplY3QsIG9iamVjdElkKTsKKyAg
ICAgICAgICAgIHJldHVybiBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3QuZnJvbU9iamVjdChv
YmplY3QsIG9iamVjdElkLCBhYmJyZXZpYXRlKTsKICAgICAgICAgfSBjYXRjaCAoZSkgewogICAg
ICAgICAgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5mcm9tT2JqZWN0KCJb
IEV4Y2VwdGlvbjogIiArIGUudG9TdHJpbmcoKSArICIgXSIpOwogICAgICAgICB9CkBAIC05Miwx
OSArOTIsMTcgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogCiAgICAgZ2V0UHJvdG90
eXBlczogZnVuY3Rpb24obm9kZUlkKQogICAgIHsKKyAgICAgICAgdGhpcy5yZWxlYXNlV3JhcHBl
ck9iamVjdEdyb3VwKCJwcm90b3R5cGVzIik7CiAgICAgICAgIHZhciBub2RlID0gdGhpcy5fbm9k
ZUZvcklkKG5vZGVJZCk7CiAgICAgICAgIGlmICghbm9kZSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKKwogICAgICAgICB2YXIgcmVzdWx0ID0gW107CiAgICAgICAgIHZhciBwcm90
b3R5cGUgPSBub2RlOwotICAgICAgICB2YXIgcHJvdG90eXBlSWQgPSBuZXcgSW5qZWN0ZWRTY3Jp
cHQuUmVtb3RlT2JqZWN0SWQoSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQuVHlwZS5Ob2Rl
LCBub2RlSWQpOwogICAgICAgICBkbyB7Ci0gICAgICAgICAgICByZXN1bHQucHVzaChJbmplY3Rl
ZFNjcmlwdC5SZW1vdGVPYmplY3QuZnJvbU9iamVjdChwcm90b3R5cGUsIHByb3RvdHlwZUlkKSk7
CisgICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLl93cmFwT2JqZWN0KHByb3RvdHlwZSwgInBy
b3RvdHlwZXMiKSk7CiAgICAgICAgICAgICBwcm90b3R5cGUgPSBwcm90b3R5cGUuX19wcm90b19f
OwotICAgICAgICAgICAgcHJvdG90eXBlSWQgPSBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3RJ
ZC5kZXJpdmVQcm9wZXJ0eShwcm90b3R5cGVJZCwgIl9fcHJvdG9fXyIpOwogICAgICAgICB9IHdo
aWxlIChwcm90b3R5cGUpCi0gICAgCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfSwKIApA
QCAtMTE0LDcgKzExMiw3IEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAg
aWYgKCF0aGlzLl9pc0RlZmluZWQob2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBbXTsKLSAgICAgICAgCisKICAgICAgICAgdmFyIHBy
b3BlcnR5TmFtZXMgPSBpZ25vcmVIYXNPd25Qcm9wZXJ0eSA/IHRoaXMuX2dldFByb3BlcnR5TmFt
ZXMob2JqZWN0KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCk7CiAgICAgICAg
IGlmICghaWdub3JlSGFzT3duUHJvcGVydHkgJiYgb2JqZWN0Ll9fcHJvdG9fXykKICAgICAgICAg
ICAgIHByb3BlcnR5TmFtZXMucHVzaCgiX19wcm90b19fIik7CkBAIC0xMjgsMTAgKzEyNiw3IEBA
IEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHZhciBpc0dldHRlciA9
IG9iamVjdFsiX19sb29rdXBHZXR0ZXJfXyJdICYmIG9iamVjdC5fX2xvb2t1cEdldHRlcl9fKHBy
b3BlcnR5TmFtZSk7CiAgICAgICAgICAgICBpZiAoIWlzR2V0dGVyKSB7CiAgICAgICAgICAgICAg
ICAgdHJ5IHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGNoaWxkT2JqZWN0ID0gb2JqZWN0W3By
b3BlcnR5TmFtZV07Ci0gICAgICAgICAgICAgICAgICAgIHZhciBjaGlsZE9iamVjdElkID0gSW5q
ZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQuZGVyaXZlUHJvcGVydHkob2JqZWN0SWQsIHByb3Bl
cnR5TmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBjaGlsZE9iamVjdFByb3h5ID0gbmV3
IEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5mcm9tT2JqZWN0KGNoaWxkT2JqZWN0LCBjaGls
ZE9iamVjdElkLCBhYmJyZXZpYXRlKTsKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHkudmFs
dWUgPSBjaGlsZE9iamVjdFByb3h5OworICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eS52YWx1
ZSA9IHRoaXMuX3dyYXBPYmplY3Qob2JqZWN0W3Byb3BlcnR5TmFtZV0sIG9iamVjdElkLmdyb3Vw
TmFtZSwgYWJicmV2aWF0ZSk7CiAgICAgICAgICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAg
ICAgICAgICAgICAgIHByb3BlcnR5LnZhbHVlID0gbmV3IEluamVjdGVkU2NyaXB0LlJlbW90ZU9i
amVjdC5mcm9tRXhjZXB0aW9uKGUpOwogICAgICAgICAgICAgICAgIH0KQEAgLTIwOSw3ICsyMDQs
NyBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgaWYgKCFj
YWxsRnJhbWUpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9wczsKICAgICAgICAgICAg
ICAgICBpZiAoZXhwcmVzc2lvbikKLSAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvblJlc3Vs
dCA9IHRoaXMuX2V2YWx1YXRlT24oY2FsbEZyYW1lLmV2YWx1YXRlLCBjYWxsRnJhbWUsIGV4cHJl
c3Npb24sIHRydWUpOworICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uUmVzdWx0ID0gdGhp
cy5fZXZhbHVhdGVPbihjYWxsRnJhbWUuZXZhbHVhdGUsIGNhbGxGcmFtZSwgZXhwcmVzc2lvbik7
CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIEV2YWx1YXRl
IGludG8gcHJvcGVydGllcyBpbiBzY29wZSBvZiB0aGUgc2VsZWN0ZWQgY2FsbCBmcmFtZS4KICAg
ICAgICAgICAgICAgICAgICAgdmFyIHNjb3BlQ2hhaW4gPSBjYWxsRnJhbWUuc2NvcGVDaGFpbjsK
QEAgLTIxOSw3ICsyMTQsNyBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGlmICghZXhwcmVzc2lvbikKICAgICAgICAg
ICAgICAgICAgICAgZXhwcmVzc2lvbiA9ICJ0aGlzIjsKLSAgICAgICAgICAgICAgICBleHByZXNz
aW9uUmVzdWx0ID0gdGhpcy5fZXZhbHVhdGVPbihpbnNwZWN0ZWRXaW5kb3cuZXZhbCwgaW5zcGVj
dGVkV2luZG93LCBleHByZXNzaW9uLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgZXhwcmVzc2lv
blJlc3VsdCA9IHRoaXMuX2V2YWx1YXRlT24oaW5zcGVjdGVkV2luZG93LmV2YWwsIGluc3BlY3Rl
ZFdpbmRvdywgZXhwcmVzc2lvbik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAodHlw
ZW9mIGV4cHJlc3Npb25SZXN1bHQgPT09ICJvYmplY3QiKQogICAgICAgICAgICAgICAgIHRoaXMu
X3BvcHVsYXRlUHJvcGVydHlOYW1lcyhleHByZXNzaW9uUmVzdWx0LCBwcm9wcyk7CkBAIC0yMzgs
MzEgKzIzMywyNiBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVy
biB0aGlzLl9ldmFsdWF0ZUFuZFdyYXAoaW5zcGVjdGVkV2luZG93LmV2YWwsIGluc3BlY3RlZFdp
bmRvdywgZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXApOwogICAgIH0sCiAKLSAgICBfZXZhbHVhdGVB
bmRXcmFwOiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbiwgb2JqZWN0
R3JvdXAsIGRvbnRVc2VDb21tYW5kTGluZUFQSSkKKyAgICBfZXZhbHVhdGVBbmRXcmFwOiBmdW5j
dGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbiwgb2JqZWN0R3JvdXApCiAgICAg
ewogICAgICAgICB0cnkgewotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dyYXBPYmplY3QodGhp
cy5fZXZhbHVhdGVPbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbiwgZG9udFVzZUNv
bW1hbmRMaW5lQVBJKSwgb2JqZWN0R3JvdXApOworICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dy
YXBPYmplY3QodGhpcy5fZXZhbHVhdGVPbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lv
biksIG9iamVjdEdyb3VwKTsKICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgcmV0
dXJuIEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5mcm9tRXhjZXB0aW9uKGUpOwogICAgICAg
ICB9CiAgICAgfSwKIAotICAgIF9ldmFsdWF0ZU9uOiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9i
amVjdCwgZXhwcmVzc2lvbiwgZG9udFVzZUNvbW1hbmRMaW5lQVBJKQorICAgIF9ldmFsdWF0ZU9u
OiBmdW5jdGlvbihldmFsRnVuY3Rpb24sIG9iamVjdCwgZXhwcmVzc2lvbikKICAgICB7Ci0gICAg
ICAgIGlmICghZG9udFVzZUNvbW1hbmRMaW5lQVBJKSB7Ci0gICAgICAgICAgICAvLyBPbmx5IGlu
c3RhbGwgY29tbWFuZCBsaW5lIGFwaSBvYmplY3QgZm9yIHRoZSB0aW1lIG9mIGV2YWx1YXRpb24u
Ci0gICAgCi0gICAgICAgICAgICAvLyBTdXJyb3VuZCB0aGUgZXhwcmVzc2lvbiBpbiB3aXRoIHN0
YXRlbWVudHMgdG8gaW5qZWN0IG91ciBjb21tYW5kIGxpbmUgQVBJIHNvIHRoYXQKLSAgICAgICAg
ICAgIC8vIHRoZSB3aW5kb3cgb2JqZWN0IHByb3BlcnRpZXMgc3RpbGwgdGFrZSBtb3JlIHByZWNl
ZGVudCB0aGFuIG91ciBBUEkgZnVuY3Rpb25zLgotICAgICAgICAgICAgaW5zcGVjdGVkV2luZG93
LmNvbnNvbGUuX2NvbW1hbmRMaW5lQVBJID0gdGhpcy5fY29tbWFuZExpbmVBUEk7Ci0gICAgCi0g
ICAgICAgICAgICBleHByZXNzaW9uID0gIndpdGggKHdpbmRvdy5jb25zb2xlLl9jb21tYW5kTGlu
ZUFQSSkgeyB3aXRoICh3aW5kb3cpIHtcbiIgKyBleHByZXNzaW9uICsgIlxufSB9IjsKLSAgICAg
ICAgfQorICAgICAgICAvLyBPbmx5IGluc3RhbGwgY29tbWFuZCBsaW5lIGFwaSBvYmplY3QgZm9y
IHRoZSB0aW1lIG9mIGV2YWx1YXRpb24uCisgICAgICAgIC8vIFN1cnJvdW5kIHRoZSBleHByZXNz
aW9uIGluIHdpdGggc3RhdGVtZW50cyB0byBpbmplY3Qgb3VyIGNvbW1hbmQgbGluZSBBUEkgc28g
dGhhdAorICAgICAgICAvLyB0aGUgd2luZG93IG9iamVjdCBwcm9wZXJ0aWVzIHN0aWxsIHRha2Ug
bW9yZSBwcmVjZWRlbnQgdGhhbiBvdXIgQVBJIGZ1bmN0aW9ucy4KKyAgICAgICAgaW5zcGVjdGVk
V2luZG93LmNvbnNvbGUuX2NvbW1hbmRMaW5lQVBJID0gdGhpcy5fY29tbWFuZExpbmVBUEk7CiAg
ICAgCisgICAgICAgIGV4cHJlc3Npb24gPSAid2l0aCAod2luZG93LmNvbnNvbGUuX2NvbW1hbmRM
aW5lQVBJKSB7IHdpdGggKHdpbmRvdykge1xuIiArIGV4cHJlc3Npb24gKyAiXG59IH0iOwogICAg
ICAgICB2YXIgdmFsdWUgPSBldmFsRnVuY3Rpb24uY2FsbChvYmplY3QsIGV4cHJlc3Npb24pOwog
ICAgIAotICAgICAgICBpZiAoIWRvbnRVc2VDb21tYW5kTGluZUFQSSkKLSAgICAgICAgICAgIGRl
bGV0ZSBpbnNwZWN0ZWRXaW5kb3cuY29uc29sZS5fY29tbWFuZExpbmVBUEk7CisgICAgICAgIGRl
bGV0ZSBpbnNwZWN0ZWRXaW5kb3cuY29uc29sZS5fY29tbWFuZExpbmVBUEk7CiAgICAgCiAgICAg
ICAgIC8vIFdoZW4gZXZhbHVhdGluZyBvbiBjYWxsIGZyYW1lIGVycm9yIGlzIG5vdCB0aHJvd24s
IGJ1dCByZXR1cm5lZCBhcyBhIHZhbHVlLgogICAgICAgICBpZiAodGhpcy5fdHlwZSh2YWx1ZSkg
PT09ICJlcnJvciIpCkBAIC0yODIsNiArMjcyLDcgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBl
ID0gewogICAgICAgICBpZiAoIWNhbGxGcmFtZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAKKyAgICAgICAgaW5qZWN0ZWRTY3JpcHQucmVsZWFzZVdyYXBwZXJPYmplY3RHcm91cCgi
YmFja3RyYWNlIik7CiAgICAgICAgIHZhciByZXN1bHQgPSBbXTsKICAgICAgICAgdmFyIGRlcHRo
ID0gMDsKICAgICAgICAgZG8gewpAQCAtMjk2LDcgKzI4Nyw3IEBAIEluamVjdGVkU2NyaXB0LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IHRoaXMuX2NhbGxGcmFtZUZvcklk
KGNhbGxGcmFtZUlkKTsKICAgICAgICAgaWYgKCFjYWxsRnJhbWUpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIHJldHVybiB0aGlzLl9ldmFsdWF0ZUFuZFdyYXAoY2FsbEZyYW1l
LmV2YWx1YXRlLCBjYWxsRnJhbWUsIGNvZGUsIG9iamVjdEdyb3VwLCB0cnVlKTsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX2V2YWx1YXRlQW5kV3JhcChjYWxsRnJhbWUuZXZhbHVhdGUsIGNhbGxGcmFt
ZSwgY29kZSwgb2JqZWN0R3JvdXApOwogICAgIH0sCiAKICAgICBfY2FsbEZyYW1lRm9ySWQ6IGZ1
bmN0aW9uKGlkKQpAQCAtMzE2LDMxICszMDcsMjcgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBl
ID0gewogCiAgICAgX29iamVjdEZvcklkOiBmdW5jdGlvbihvYmplY3RJZCkKICAgICB7Ci0gICAg
ICAgIC8vIFRoZXJlIGFyZSB0aHJlZSB0eXBlcyBvZiBvYmplY3QgaWRzIHVzZWQ6Ci0gICAgICAg
IC8vIC0gbnVtYmVycyBwb2ludCB0byBET00gTm9kZSB2aWEgdGhlIEluc3BlY3RvckRPTUFnZW50
IG1hcHBpbmcKLSAgICAgICAgLy8gLSBzdHJpbmdzIHBvaW50IHRvIGNvbnNvbGUgb2JqZWN0cyBj
YWNoZWQgaW4gSW5zcGVjdG9yQ29udHJvbGxlciBmb3IgbGF6eSBldmFsdWF0aW9uIHVwb24gdGhl
bQotICAgICAgICAvLyAtIG9iamVjdHMgY29udGFpbiBjb21wbGV4IGlkcyBhbmQgYXJlIGN1cnJl
bnRseSB1c2VkIGZvciBzY29wZWQgb2JqZWN0cwotICAgICAgICB2YXIgb2JqZWN0OwotICAgICAg
ICBpZiAob2JqZWN0SWQudHlwZSA9PT0gSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQuVHlw
ZS5Ob2RlKQotICAgICAgICAgICAgb2JqZWN0ID0gdGhpcy5fbm9kZUZvcklkKG9iamVjdElkLnZh
bHVlKTsKLSAgICAgICAgZWxzZSBpZiAob2JqZWN0SWQudHlwZSA9PT0gSW5qZWN0ZWRTY3JpcHQu
UmVtb3RlT2JqZWN0SWQuVHlwZS5Kc09iamVjdCkKLSAgICAgICAgICAgIG9iamVjdCA9IHRoaXMu
X2lkVG9XcmFwcGVkT2JqZWN0W29iamVjdElkLnZhbHVlXTsKLSAgICAgICAgZWxzZSBpZiAob2Jq
ZWN0SWQudHlwZSA9PT0gSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQuVHlwZS5TY29wZU9i
amVjdCkgewotICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IHRoaXMuX2NhbGxGcmFtZUZvcklk
KG9iamVjdElkLnZhbHVlLmNhbGxGcmFtZSk7Ci0gICAgICAgICAgICBpZiAob2JqZWN0SWQudGhp
c09iamVjdCkKLSAgICAgICAgICAgICAgICBvYmplY3QgPSBjYWxsRnJhbWUudGhpc09iamVjdDsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBvYmplY3QgPSBjYWxsRnJhbWUuc2Nv
cGVDaGFpbltvYmplY3RJZC52YWx1ZS5jaGFpbkluZGV4XTsKLSAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICByZXR1cm4gb2JqZWN0SWQ7Ci0gICAgCi0gICAgICAgIHZhciBwYXRoID0gb2JqZWN0
SWQucGF0aDsKLSAgICAKLSAgICAgICAgLy8gRm9sbG93IHRoZSBwcm9wZXJ0eSBwYXRoLgotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgdGhpcy5faXNEZWZpbmVkKG9iamVjdCkgJiYgcGF0aCAmJiBp
IDwgcGF0aC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIG9iamVjdCA9IG9iamVjdFtwYXRoW2ld
XTsKLSAgICAKLSAgICAgICAgcmV0dXJuIG9iamVjdDsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2lk
VG9XcmFwcGVkT2JqZWN0W29iamVjdElkLmlkXTsKKyAgICB9LAorCisgICAgcmVzb2x2ZU5vZGU6
IGZ1bmN0aW9uKG5vZGVJZCkKKyAgICB7CisgICAgICAgIHZhciBub2RlID0gdGhpcy5fbm9kZUZv
cklkKG5vZGVJZCk7CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgLy8gRklYTUU6IHJlY2VpdmUgdGhlIG9iamVjdCBncm91cCBmcm9tIGNsaWVu
dC4KKyAgICAgICAgcmV0dXJuIHRoaXMuX3dyYXBPYmplY3Qobm9kZSwgInByb3RvdHlwZSIpOwor
ICAgIH0sCisKKyAgICBnZXROb2RlUHJvcGVydGllczogZnVuY3Rpb24obm9kZUlkLCBwcm9wZXJ0
aWVzKQorICAgIHsKKyAgICAgICAgdmFyIG5vZGUgPSB0aGlzLl9ub2RlRm9ySWQobm9kZUlkKTsK
KyAgICAgICAgaWYgKCFub2RlKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB2
YXIgcmVzdWx0ID0ge307CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5s
ZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHJlc3VsdFtwcm9wZXJ0aWVzW2ldXSA9IG5vZGVbcHJv
cGVydGllc1tpXV07CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfSwKIAogICAgIHB1c2hO
b2RlVG9Gcm9udGVuZDogZnVuY3Rpb24ob2JqZWN0SWQpCkBAIC00MjEsNiArNDA4LDcgQEAgSW5q
ZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAg
ICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgY2FzZSAibm9kZSI6CisgICAgICAgICAgICByZXR1
cm4gdGhpcy5fY2xhc3NOYW1lKG9iaik7CiAgICAgICAgIGNhc2UgImFycmF5IjoKICAgICAgICAg
ICAgIHZhciBjbGFzc05hbWUgPSB0aGlzLl9jbGFzc05hbWUob2JqKTsKICAgICAgICAgICAgIGlm
ICh0eXBlb2Ygb2JqLmxlbmd0aCA9PT0gIm51bWJlciIpCkBAIC01MTAsMjUgKzQ5OCwxMSBAQCBJ
bmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiB2YXIgaW5qZWN0ZWRTY3JpcHQgPSBuZXcgSW5q
ZWN0ZWRTY3JpcHQoKTsKIAogLy8gRklYTUU6IFJlbW90ZU9iamVjdElkIGFuZCBSZW1vdGVPYmpl
Y3Qgc3RydWN0cyBtdXN0IG1hdGNoIHRoZSBXZWJJbnNwZWN0b3IuKiBvbmVzLiBTaG91bGQgcmV1
c2Ugc2FtZSBmaWxlIGluc3RlYWQuCi1JbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3RJZCA9IGZ1
bmN0aW9uKHR5cGUsIHZhbHVlLCBwYXRoKQotewotICAgIHRoaXMuaW5qZWN0ZWRTY3JpcHRJZCA9
IGluamVjdGVkU2NyaXB0SWQ7Ci0gICAgdGhpcy50eXBlID0gdHlwZTsKLSAgICB0aGlzLnZhbHVl
ID0gdmFsdWU7Ci0gICAgdGhpcy5wYXRoID0gcGF0aCB8fCBbXTsKLX0KLQotSW5qZWN0ZWRTY3Jp
cHQuUmVtb3RlT2JqZWN0SWQuVHlwZSA9IHsKLSAgICBOb2RlOiAibm9kZSIsCi0gICAgSnNPYmpl
Y3Q6ICJqc09iamVjdCIsCi0gICAgU2NvcGVPYmplY3Q6ICJzY29wZU9iamVjdCIKLX0KLQotSW5q
ZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQuZGVyaXZlUHJvcGVydHkgPSBmdW5jdGlvbihvYmpl
Y3RJZCwgcHJvcGVydHlOYW1lKQorSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQgPSBmdW5j
dGlvbihpZCwgZ3JvdXBOYW1lKQogewotICAgIHZhciBwYXRoID0gb2JqZWN0SWQucGF0aC5zbGlj
ZSgpIHx8IFtdOwotICAgIHBhdGgucHVzaChwcm9wZXJ0eU5hbWUpOwotICAgIHJldHVybiBuZXcg
SW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQob2JqZWN0SWQudHlwZSwgb2JqZWN0SWQudmFs
dWUsIHBhdGgpOworICAgIHRoaXMud29ybGRJZCA9IGluamVjdGVkU2NyaXB0SWQ7CisgICAgdGhp
cy5pZCA9IGlkOworICAgIHRoaXMuZ3JvdXBOYW1lID0gZ3JvdXBOYW1lOwogfQogCiBJbmplY3Rl
ZFNjcmlwdC5SZW1vdGVPYmplY3QgPSBmdW5jdGlvbihvYmplY3RJZCwgdHlwZSwgZGVzY3JpcHRp
b24sIGhhc0NoaWxkcmVuKQpAQCAtNTY2LDcgKzU0MCw3IEBAIEluamVjdGVkU2NyaXB0LkNhbGxG
cmFtZVByb3h5ID0gZnVuY3Rpb24oaWQsIGNhbGxGcmFtZSkKICAgICB0aGlzLnNvdXJjZUlEID0g
Y2FsbEZyYW1lLnNvdXJjZUlEOwogICAgIHRoaXMubGluZSA9IGNhbGxGcmFtZS5saW5lOwogICAg
IHRoaXMuc2NvcGVDaGFpbiA9IHRoaXMuX3dyYXBTY29wZUNoYWluKGNhbGxGcmFtZSk7Ci0gICAg
dGhpcy5pbmplY3RlZFNjcmlwdElkID0gaW5qZWN0ZWRTY3JpcHRJZDsKKyAgICB0aGlzLndvcmxk
SWQgPSBpbmplY3RlZFNjcmlwdElkOwogfQogCiBJbmplY3RlZFNjcmlwdC5DYWxsRnJhbWVQcm94
eS5wcm90b3R5cGUgPSB7CkBAIC01ODQsMTUgKzU1OCwxMyBAQCBJbmplY3RlZFNjcmlwdC5DYWxs
RnJhbWVQcm94eS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2Nv
cGVDaGFpbi5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgdmFyIHNjb3BlVHlwZSA9IGNhbGxG
cmFtZS5zY29wZVR5cGUoaSk7CiAgICAgICAgICAgICB2YXIgc2NvcGVPYmplY3QgPSBzY29wZUNo
YWluW2ldOwotICAgICAgICAgICAgdmFyIHNjb3BlT2JqZWN0SWQgPSBuZXcgSW5qZWN0ZWRTY3Jp
cHQuUmVtb3RlT2JqZWN0SWQoSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0SWQuVHlwZS5TY29w
ZU9iamVjdCwgeyBjYWxsRnJhbWU6IHRoaXMuaWQsIGNoYWluSW5kZXg6IGkgfSk7Ci0gICAgICAg
ICAgICB2YXIgc2NvcGVPYmplY3RQcm94eSA9IEluamVjdGVkU2NyaXB0LlJlbW90ZU9iamVjdC5m
cm9tT2JqZWN0KHNjb3BlT2JqZWN0LCBzY29wZU9iamVjdElkLCB0cnVlKTsKKyAgICAgICAgICAg
IHZhciBzY29wZU9iamVjdFByb3h5ID0gaW5qZWN0ZWRTY3JpcHQuX3dyYXBPYmplY3Qoc2NvcGVP
YmplY3QsICJiYWNrdHJhY2UiLCB0cnVlKTsKIAogICAgICAgICAgICAgc3dpdGNoKHNjb3BlVHlw
ZSkgewogICAgICAgICAgICAgICAgIGNhc2UgTE9DQUxfU0NPUEU6IHsKICAgICAgICAgICAgICAg
ICAgICAgZm91bmRMb2NhbFNjb3BlID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgc2NvcGVP
YmplY3RQcm94eS5pc0xvY2FsID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgdmFyIHRoaXNP
YmplY3RJZCA9IG5ldyBJbmplY3RlZFNjcmlwdC5SZW1vdGVPYmplY3RJZChJbmplY3RlZFNjcmlw
dC5SZW1vdGVPYmplY3RJZC5UeXBlLlNjb3BlT2JqZWN0LCB7IGNhbGxGcmFtZTogdGhpcy5pZCwg
dGhpc09iamVjdDogdHJ1ZSB9KTsKLSAgICAgICAgICAgICAgICAgICAgc2NvcGVPYmplY3RQcm94
eS50aGlzT2JqZWN0ID0gSW5qZWN0ZWRTY3JpcHQuUmVtb3RlT2JqZWN0LmZyb21PYmplY3QoY2Fs
bEZyYW1lLnRoaXNPYmplY3QsIHRoaXNPYmplY3RJZCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAg
ICAgIHNjb3BlT2JqZWN0UHJveHkudGhpc09iamVjdCA9IGluamVjdGVkU2NyaXB0Ll93cmFwT2Jq
ZWN0KGNhbGxGcmFtZS50aGlzT2JqZWN0LCAiYmFja3RyYWNlIiwgdHJ1ZSk7CiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBjYXNl
IENMT1NVUkVfU0NPUEU6IHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9JbmplY3RlZFNjcmlwdEFjY2Vzcy5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9J
bmplY3RlZFNjcmlwdEFjY2Vzcy5qcwppbmRleCAxMzg1ZWNiLi43MWU1YmQzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuanMKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0QWNjZXNzLmpzCkBA
IC0yOSwxNyArMjksMjIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotZnVuY3Rpb24gSW5qZWN0
ZWRTY3JpcHRBY2Nlc3MoaW5qZWN0ZWRTY3JpcHRJZCkgewotICAgIHRoaXMuX2luamVjdGVkU2Ny
aXB0SWQgPSBpbmplY3RlZFNjcmlwdElkOworZnVuY3Rpb24gSW5qZWN0ZWRTY3JpcHRBY2Nlc3Mo
d29ybGRJZCkgeworICAgIHRoaXMuX3dvcmxkSWQgPSB3b3JsZElkOwogfQogCi1JbmplY3RlZFNj
cmlwdEFjY2Vzcy5nZXQgPSBmdW5jdGlvbihpbmplY3RlZFNjcmlwdElkKQorSW5qZWN0ZWRTY3Jp
cHRBY2Nlc3MuZ2V0ID0gZnVuY3Rpb24od29ybGRJZCkKIHsKLSAgICBpZiAodHlwZW9mIGluamVj
dGVkU2NyaXB0SWQgPT09ICJudW1iZXIiKQotICAgICAgICByZXR1cm4gbmV3IEluamVjdGVkU2Ny
aXB0QWNjZXNzKGluamVjdGVkU2NyaXB0SWQpOworICAgIGlmICh0eXBlb2Ygd29ybGRJZCA9PT0g
Im51bWJlciIpCisgICAgICAgIHJldHVybiBuZXcgSW5qZWN0ZWRTY3JpcHRBY2Nlc3Mod29ybGRJ
ZCk7CiAKLSAgICBjb25zb2xlLmVycm9yKCJBY2Nlc3MgdG8gaW5qZWN0ZWQgc2NyaXB0IHdpdGgg
bm8gaWQiKTsKLSAgICBjb25zb2xlLnRyYWNlKCk7CisgICAgY29uc29sZS5hc3NlcnQoZmFsc2Us
ICJBY2Nlc3MgdG8gaW5qZWN0ZWQgc2NyaXB0IHdpdGggbm8gaWQiKTsKK30KKworSW5qZWN0ZWRT
Y3JpcHRBY2Nlc3MuZ2V0Rm9yTm9kZSA9IGZ1bmN0aW9uKG5vZGUpCit7CisgICAgLy8gRklYTUU6
IGRvIHNvbWV0aGluZy4KKyAgICByZXR1cm4gSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0KC1ub2Rl
LmlkKTsKIH0KIAogSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0RGVmYXVsdCA9IGZ1bmN0aW9uKCkK
QEAgLTY2LDcgKzcxLDcgQEAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuX2luc3RhbGxIYW5kbGVyID0g
ZnVuY3Rpb24obWV0aG9kTmFtZSwgYXN5bmMpCiAgICAgICAgIH0KICAgICAgICAgdmFyIGNhbGxJ
ZCA9IFdlYkluc3BlY3Rvci5DYWxsYmFjay53cmFwKG15Q2FsbGJhY2spOwogCi0gICAgICAgIElu
c3BlY3RvckJhY2tlbmQuZGlzcGF0Y2hPbkluamVjdGVkU2NyaXB0KGNhbGxJZCwgdGhpcy5faW5q
ZWN0ZWRTY3JpcHRJZCwgbWV0aG9kTmFtZSwgYXJnc1N0cmluZyk7CisgICAgICAgIEluc3BlY3Rv
ckJhY2tlbmQuZGlzcGF0Y2hPbkluamVjdGVkU2NyaXB0KGNhbGxJZCwgdGhpcy5fd29ybGRJZCwg
bWV0aG9kTmFtZSwgYXJnc1N0cmluZyk7CiAgICAgfTsKIH0KIApAQCAtODEsNCArODYsNiBAQCBJ
bmplY3RlZFNjcmlwdEFjY2Vzcy5faW5zdGFsbEhhbmRsZXIoImdldENvbXBsZXRpb25zIik7CiBJ
bmplY3RlZFNjcmlwdEFjY2Vzcy5faW5zdGFsbEhhbmRsZXIoImdldFByb3BlcnRpZXMiKTsKIElu
amVjdGVkU2NyaXB0QWNjZXNzLl9pbnN0YWxsSGFuZGxlcigiZ2V0UHJvdG90eXBlcyIpOwogSW5q
ZWN0ZWRTY3JpcHRBY2Nlc3MuX2luc3RhbGxIYW5kbGVyKCJwdXNoTm9kZVRvRnJvbnRlbmQiKTsK
K0luamVjdGVkU2NyaXB0QWNjZXNzLl9pbnN0YWxsSGFuZGxlcigicmVzb2x2ZU5vZGUiKTsKK0lu
amVjdGVkU2NyaXB0QWNjZXNzLl9pbnN0YWxsSGFuZGxlcigiZ2V0Tm9kZVByb3BlcnRpZXMiKTsK
IEluamVjdGVkU2NyaXB0QWNjZXNzLl9pbnN0YWxsSGFuZGxlcigic2V0UHJvcGVydHlWYWx1ZSIp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRpZXNTaWRl
YmFyUGFuZS5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9wZXJ0aWVzU2lkZWJh
clBhbmUuanMKaW5kZXggOWJhYWY5OC4uNzVkNmE0OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Byb3BlcnRpZXNTaWRlYmFyUGFuZS5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUHJvcGVydGllc1NpZGViYXJQYW5lLmpzCkBAIC01OSw3ICs1OSw3
IEBAIFdlYkluc3BlY3Rvci5Qcm9wZXJ0aWVzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgICAgIGJvZHkuYXBwZW5kQ2hpbGQoc2VjdGlvbi5lbGVtZW50KTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfTsKLSAgICAgICAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0KC1ub2Rl
LmlkKS5nZXRQcm90b3R5cGVzKG5vZGUuaWQsIGNhbGxiYWNrKTsKKyAgICAgICAgSW5qZWN0ZWRT
Y3JpcHRBY2Nlc3MuZ2V0Rm9yTm9kZShub2RlKS5nZXRQcm90b3R5cGVzKG5vZGUuaWQsIGNhbGxi
YWNrKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZW1vdGVPYmplY3QuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2Jq
ZWN0LmpzCmluZGV4IGQ2ZTE5ZjIuLmVkMDI5ZWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1JlbW90ZU9iamVjdC5qcwpAQCAtMjgsMTIgKzI4LDExIEBACiAgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKLVdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3RJZCA9IGZ1bmN0aW9uKGluamVjdGVk
U2NyaXB0SWQsIHR5cGUsIHZhbHVlLCBwYXRoKQorV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdElk
ID0gZnVuY3Rpb24od29ybGRJZCwgaWQsIGdyb3VwTmFtZSkKIHsKLSAgICB0aGlzLmluamVjdGVk
U2NyaXB0SWQgPSBpbmplY3RlZFNjcmlwdElkOwotICAgIHRoaXMudHlwZSA9IHR5cGU7Ci0gICAg
dGhpcy52YWx1ZSA9IHZhbHVlOwotICAgIHRoaXMucGF0aCA9IHBhdGggfHwgW107CisgICAgdGhp
cy53b3JsZElkID0gd29ybGRJZDsKKyAgICB0aGlzLmlkID0gaWQ7CisgICAgdGhpcy5ncm91cE5h
bWUgPSBncm91cE5hbWU7CiB9CiAKIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QgPSBmdW5jdGlv
bihvYmplY3RJZCwgdHlwZSwgZGVzY3JpcHRpb24sIGhhc0NoaWxkcmVuKQpAQCAtNDksMTAgKzQ4
LDEzIEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVByaW1pdGl2ZVZhbHVlID0gZnVu
Y3Rpb24odmFsdWUpCiAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0KG51
bGwsIHR5cGVvZiB2YWx1ZSwgdmFsdWUpOwogfQogCi1XZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0
LmZyb21Ob2RlID0gZnVuY3Rpb24obm9kZSwgcGF0aCkKK1dlYkluc3BlY3Rvci5SZW1vdGVPYmpl
Y3QucmVzb2x2ZU5vZGUgPSBmdW5jdGlvbihub2RlLCBjYWxsYmFjaykKIHsKLSAgICB2YXIgb2Jq
ZWN0SWQgPSBuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdElkKC1ub2RlLmlkLCAibm9kZSIs
IG5vZGUuaWQsIHBhdGgpOwotICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVj
dChvYmplY3RJZCwgIm5vZGUiLCBhcHByb3ByaWF0ZVNlbGVjdG9yRm9yTm9kZShub2RlKSwgdHJ1
ZSk7CisgICAgZnVuY3Rpb24gbXljYWxsYmFjayhvYmplY3QpCisgICAgeworICAgICAgICBjYWxs
YmFjayhvYmplY3QgPyBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZyb21QYXlsb2FkKG9iamVj
dCkgOiBudWxsKTsKKyAgICB9CisgICAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0Rm9yTm9kZShu
b2RlKS5yZXNvbHZlTm9kZShub2RlLmlkLCBteWNhbGxiYWNrKTsKIH0KIAogV2ViSW5zcGVjdG9y
LlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQpCkBAIC0xMDEsMjQg
KzEwMyw2IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAg
ICByZXR1cm4gdGhpcy5fdHlwZSA9PT0gImVycm9yIjsKICAgICB9LAogCi0gICAgZ2V0UHJvcGVy
dHlWYWx1ZURlc2NyaXB0aW9uczogZnVuY3Rpb24ocHJvcGVydGllc1RvUXVlcnlGb3IsIGNhbGxi
YWNrKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gY3JlYXRlUHJvcGVydGllc01hcFRoZW5DYWxs
YmFjayhwcm9wZXJ0aWVzUGF5bG9hZCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKCFwcm9w
ZXJ0aWVzUGF5bG9hZCkgewotICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgIAotICAgICAgICAgICAgdmFyIHJlc3Vs
dCA9IHt9OwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzUGF5bG9h
ZC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICBpZiAocHJvcGVydGllc1RvUXVlcnlGb3Iu
aW5kZXhPZihwcm9wZXJ0aWVzUGF5bG9hZFtpXS5uYW1lKSAhPT0gLTEpCi0gICAgICAgICAgICAg
ICAgICAgIHJlc3VsdFtwcm9wZXJ0aWVzUGF5bG9hZFtpXS5uYW1lXSA9IHByb3BlcnRpZXNQYXls
b2FkW2ldLnZhbHVlLmRlc2NyaXB0aW9uOwotICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0KTsK
LSAgICAgICAgfQotICAgICAgICB0aGlzLmdldFByb3BlcnRpZXModHJ1ZSwgZmFsc2UsIGNyZWF0
ZVByb3BlcnRpZXNNYXBUaGVuQ2FsbGJhY2spOwotICAgIH0sCi0KICAgICBnZXRPd25Qcm9wZXJ0
aWVzOiBmdW5jdGlvbihhYmJyZXZpYXRlLCBjYWxsYmFjaykKICAgICB7CiAgICAgICAgIHRoaXMu
Z2V0UHJvcGVydGllcyhmYWxzZSwgYWJicmV2aWF0ZSwgY2FsbGJhY2spOwpAQCAtMTM2LDcgKzEy
MCw3IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgICAgIHByb3BlcnRpZXNbaV0udmFsdWUgPSBXZWJJbnNwZWN0b3IuUmVtb3RlT2JqZWN0LmZy
b21QYXlsb2FkKHByb3BlcnRpZXNbaV0udmFsdWUpOwogICAgICAgICAgICAgY2FsbGJhY2socHJv
cGVydGllcyk7CiAgICAgICAgIH0KLSAgICAgICAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0KHRo
aXMuX29iamVjdElkLmluamVjdGVkU2NyaXB0SWQpLmdldFByb3BlcnRpZXModGhpcy5fb2JqZWN0
SWQsIGlnbm9yZUhhc093blByb3BlcnR5LCBhYmJyZXZpYXRlLCByZW1vdGVPYmplY3RCaW5kZXIp
OworICAgICAgICBJbmplY3RlZFNjcmlwdEFjY2Vzcy5nZXQodGhpcy5fb2JqZWN0SWQud29ybGRJ
ZCkuZ2V0UHJvcGVydGllcyh0aGlzLl9vYmplY3RJZCwgaWdub3JlSGFzT3duUHJvcGVydHksIGFi
YnJldmlhdGUsIHJlbW90ZU9iamVjdEJpbmRlcik7CiAgICAgfSwKIAogICAgIHNldFByb3BlcnR5
VmFsdWU6IGZ1bmN0aW9uKG5hbWUsIHZhbHVlLCBjYWxsYmFjaykKQEAgLTE0NSwxMiArMTI5LDEy
IEBAIFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogICAgICAgICAgICAg
Y2FsbGJhY2soZmFsc2UpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAg
IEluamVjdGVkU2NyaXB0QWNjZXNzLmdldCh0aGlzLl9vYmplY3RJZC5pbmplY3RlZFNjcmlwdElk
KS5zZXRQcm9wZXJ0eVZhbHVlKHRoaXMuX29iamVjdElkLCBuYW1lLCB2YWx1ZSwgY2FsbGJhY2sp
OworICAgICAgICBJbmplY3RlZFNjcmlwdEFjY2Vzcy5nZXQodGhpcy5fb2JqZWN0SWQud29ybGRJ
ZCkuc2V0UHJvcGVydHlWYWx1ZSh0aGlzLl9vYmplY3RJZCwgbmFtZSwgdmFsdWUsIGNhbGxiYWNr
KTsKICAgICB9LAogCiAgICAgcHVzaE5vZGVUb0Zyb250ZW5kOiBmdW5jdGlvbihjYWxsYmFjaykK
ICAgICB7Ci0gICAgICAgIEluamVjdGVkU2NyaXB0QWNjZXNzLmdldCh0aGlzLl9vYmplY3RJZC5p
bmplY3RlZFNjcmlwdElkKS5wdXNoTm9kZVRvRnJvbnRlbmQodGhpcy5fb2JqZWN0SWQsIGNhbGxi
YWNrKTsKKyAgICAgICAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0KHRoaXMuX29iamVjdElkLndv
cmxkSWQpLnB1c2hOb2RlVG9Gcm9udGVuZCh0aGlzLl9vYmplY3RJZCwgY2FsbGJhY2spOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQ
YW5lbC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5k
ZXggMTZlNjBjYi4uODY3NWY3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCkBAIC00MDMsNyArNDAzLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0KQogICAgICAgICAgICAgICAg
IGNhbGxiYWNrKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QuZnJvbVBheWxvYWQocmVzdWx0KSk7
CiAgICAgICAgIH0KLSAgICAgICAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuZ2V0KGNhbGxGcmFtZS5p
bmplY3RlZFNjcmlwdElkKS5ldmFsdWF0ZUluQ2FsbEZyYW1lKGNhbGxGcmFtZS5pZCwgY29kZSwg
b2JqZWN0R3JvdXAsIGV2YWxDYWxsYmFjayk7CisgICAgICAgIEluamVjdGVkU2NyaXB0QWNjZXNz
LmdldChjYWxsRnJhbWUud29ybGRJZCkuZXZhbHVhdGVJbkNhbGxGcmFtZShjYWxsRnJhbWUuaWQs
IGNvZGUsIG9iamVjdEdyb3VwLCBldmFsQ2FsbGJhY2spOwogICAgIH0sCiAKICAgICBkZWJ1Z2dl
clBhdXNlZDogZnVuY3Rpb24oY2FsbEZyYW1lcykK
</data>

          </attachment>
      

    </bug>

</bugzilla>