<?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>97113</bug_id>
          
          <creation_ts>2012-09-19 08:28:41 -0700</creation_ts>
          <short_desc>Web Inspector: Prepare UISourceCode to transformation into File.</short_desc>
          <delta_ts>2012-09-28 01:44:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>723582</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-19 08:28:41 -0700</bug_when>
    <thetext>I&apos;d like to transform UISourceCode to domain/debugger agnostic File.
I want to move all domain specific logic to editor, breakpoint manager and debugger model and remove JavaScriptSource, StyleSource, SASSSource and SnippetJavaScriptSource classes.
In this patch I am removing all methods and fields from this classes except for the modification bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723600</commentid>
    <comment_count>1</comment_count>
      <attachid>164745</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-19 09:07:05 -0700</bug_when>
    <thetext>Created attachment 164745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724402</commentid>
    <comment_count>2</comment_count>
      <attachid>164745</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-09-20 04:19:58 -0700</bug_when>
    <thetext>Comment on attachment 164745
Patch

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

&gt; Source/WebCore/inspector/front-end/BreakpointManager.js:64
&gt; +WebInspector.BreakpointManager.isDivergedFromVM = function(uiSourceCode)

hasDiverged ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730360</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-28 01:44:27 -0700</bug_when>
    <thetext>Committed r129862: &lt;http://trac.webkit.org/changeset/129862&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164745</attachid>
            <date>2012-09-19 09:07:05 -0700</date>
            <delta_ts>2012-09-20 04:19:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97113-20120919200629.patch</filename>
            <type>text/plain</type>
            <size>40694</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI2MjdiMDJmOWY0Mzg1
NGU0OTIwNTk0ZjEwYTIxN2YxYjNkN2Q3NS4uZWZiZGYyNzExY2NhMTFiMDk4NmYxYjdiNzY4MzI1
OTgyYWI5YTJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA5LTE5ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFByZXBhcmUgVUlTb3VyY2VDb2RlIHRvIHRyYW5zZm9ybWF0aW9uIGludG8gRmlsZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3MTEzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBt
b3ZlcyBtZXRob2RzIGFuZCBmaWVsZHMgZnJvbSBVSVNvdXJjZUNvZGUgZGVzY2VuZGFudHMgZXhj
ZXB0IGZvciB0aGUgbW9kaWZpY2F0aW9uIGJpbmRpbmdzLgorCisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5C
cmVha3BvaW50TWFuYWdlci5icmVha3BvaW50U3RvcmFnZUlkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5CcmVha3BvaW50TWFuYWdlci5pc0RpdmVyZ2VkRnJvbVZNKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUucmVzdG9yZUJyZWFrcG9pbnRzKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5CcmVha3BvaW50KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5CcmVha3BvaW50LnByb3RvdHlw
ZS5fdXBkYXRlQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1h
bmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUuX2JyZWFrcG9pbnRTdG9yYWdlSWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLlN0b3JhZ2UucHJvdG90eXBlLl9yZXN0
b3JlQnJlYWtwb2ludHMpOgorICAgICAgICAoc2V0IFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFu
YWdlci5TdG9yYWdlLkl0ZW0pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNj
cmlwdFNvdXJjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlLnByb3RvdHlwZS53b3JraW5n
Q29weUNvbW1pdHRlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0
U291cmNlRnJhbWUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZy
YW1lLnByb3RvdHlwZS5jYW5FZGl0U291cmNlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZh
U2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLl9zdXBwb3J0c0VuYWJsZWRCcmVha3BvaW50c1do
aWxlRWRpdGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1l
LnByb3RvdHlwZS5fZGlkRWRpdENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFT
Y3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUuX3JlbW92ZUJyZWFrcG9pbnRzQmVmb3JlRWRpdGlu
Zyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlw
ZS5fcmVzdG9yZUJyZWFrcG9pbnRzQWZ0ZXJFZGl0aW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlLl9hZGRCcmVha3BvaW50RGVjb3JhdGlv
bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZUZyYW1lLnByb3RvdHlw
ZS5faGFuZGxlR3V0dGVyQ2xpY2spOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU0FT
U1NvdXJjZU1hcHBpbmcuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRT
bmlwcGV0TW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90eXBlLl9h
ZGRTY3JpcHRTbmlwcGV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9k
ZWwucHJvdG90eXBlLmV2YWx1YXRlU2NyaXB0U25pcHBldC5nZXQgdmFyKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TY3JpcHRTbmlwcGV0TW9kZWwucHJvdG90eXBlLl9wcm9qZWN0V2lsbFJlc2V0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2UucHJvdG90eXBlLndvcmtp
bmdDb3B5Q2hhbmdlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzTmF2
aWdhdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTmF2aWdhdG9yVmlldy5w
cm90b3R5cGUuX2hhbmRsZUV2YWx1YXRlU25pcHBldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1Bh
bmVsLnByb3RvdHlwZS5fYWRkVUlTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlLl91aVNvdXJjZUNvZGVGb3JtYXR0ZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3RvZ2dsZUZvcm1hdFNvdXJjZSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZy
YW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJh
bWUucHJvdG90eXBlLl9ydW5CdXR0b25DbGlja2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1N0eWxlU291cmNlLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVUlT
b3VyY2VDb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5
cGUuc2VhcmNoSW5Db250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUu
cHJvdG90eXBlLl9maXJlQ29udGVudEF2YWlsYWJsZS5mb3JtYXR0ZWRDYWxsYmFjayk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5fZmlyZUNvbnRlbnRBdmFp
bGFibGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUuc2V0
Rm9ybWF0dGVkLmlmKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90
eXBlLnNldEZvcm1hdHRlZC5kaWRHZXRDb250ZW50LmZvcm1hdHRlZENoYW5nZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUuc2V0Rm9ybWF0dGVkLmRpZEdl
dENvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUu
c2V0Rm9ybWF0dGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90
eXBlLnNldFNvdXJjZU1hcHBpbmcpOgorCiAyMDEyLTA5LTE5ICBKb25hdGhhbiBEb25nICA8am9u
YXRoYW4uZG9uZ0B0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0JsYWNrQmVycnldIHJl
bW92ZSBzdGF0aWNfY2FzdCB3aGljaCB3aWxsIGNhdXNlIHZpZGVvIGNyYXNoCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5q
cwppbmRleCA4ZTlkNGI2NTVjMjIwYTI0YTI0OTAwZjllODAzNzQ2YjlkNmQ4MzQ5Li5kYWQzYTlm
NmIxZDY4ZTU3YmI1NDVhYTYyYjA0MGNhZDczYzNiMWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQnJlYWtwb2ludE1hbmFnZXIuanMKQEAgLTU2
LDEzICs1NiwyNCBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuRXZlbnRzID0gewog
ICAgIEJyZWFrcG9pbnRSZW1vdmVkOiAiYnJlYWtwb2ludC1yZW1vdmVkIgogfQogCitXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIuYnJlYWtwb2ludFN0b3JhZ2VJZCA9IGZ1bmN0aW9uKHVp
U291cmNlQ29kZSkKK3sKKyAgICByZXR1cm4gdWlTb3VyY2VDb2RlLmZvcm1hdHRlZCgpID8gImRl
b2JmdXNjYXRlZDoiICsgdWlTb3VyY2VDb2RlLnVybCA6IHVpU291cmNlQ29kZS51cmw7Cit9CisK
K1dlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5pc0RpdmVyZ2VkRnJvbVZNID0gZnVuY3Rp
b24odWlTb3VyY2VDb2RlKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWxzbyByZXR1cm4g
dHJ1ZSBpZiB1aVNvdXJjZUNvZGUgZWRpdCByZXN1bHRlZCBpbiBMaXZlRWRpdCBmYWlsdXJlLgor
ICAgIHJldHVybiB1aVNvdXJjZUNvZGUuaXNEaXJ0eSgpIHx8ICF1aVNvdXJjZUNvZGUudWlMb2Nh
dGlvblRvUmF3TG9jYXRpb24oMCwgMCk7Cit9CisKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFu
YWdlci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKICAgICAgKi8KICAgICByZXN0b3JlQnJlYWtwb2lu
dHM6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKICAgICB7Ci0gICAgICAgIHZhciBzb3VyY2VGaWxl
SWQgPSB1aVNvdXJjZUNvZGUuYnJlYWtwb2ludFN0b3JhZ2VJZCgpOworICAgICAgICB2YXIgc291
cmNlRmlsZUlkID0gV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRTdG9y
YWdlSWQodWlTb3VyY2VDb2RlKTsKICAgICAgICAgaWYgKCFzb3VyY2VGaWxlSWQgfHwgdGhpcy5f
c291cmNlRmlsZXNXaXRoUmVzdG9yZWRCcmVha3BvaW50c1tzb3VyY2VGaWxlSWRdKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB0aGlzLl9zb3VyY2VGaWxlc1dpdGhSZXN0b3JlZEJyZWFr
cG9pbnRzW3NvdXJjZUZpbGVJZF0gPSB0cnVlOwpAQCAtMjc0LDcgKzI4NSw3IEBAIFdlYkluc3Bl
Y3Rvci5CcmVha3BvaW50TWFuYWdlci5CcmVha3BvaW50ID0gZnVuY3Rpb24oYnJlYWtwb2ludE1h
bmFnZXIsIHVpU291cmNlCiB7CiAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIgPSBicmVha3Bv
aW50TWFuYWdlcjsKICAgICB0aGlzLl9wcmltYXJ5VUlMb2NhdGlvbiA9IG5ldyBXZWJJbnNwZWN0
b3IuVUlMb2NhdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIDApOwotICAgIHRoaXMuX3Nv
dXJjZUNvZGVTdG9yYWdlSWQgPSB1aVNvdXJjZUNvZGUuYnJlYWtwb2ludFN0b3JhZ2VJZCgpOwor
ICAgIHRoaXMuX3NvdXJjZUNvZGVTdG9yYWdlSWQgPSBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1h
bmFnZXIuYnJlYWtwb2ludFN0b3JhZ2VJZCh1aVNvdXJjZUNvZGUpOwogICAgIC8qKiBAdHlwZSB7
QXJyYXkuPFdlYkluc3BlY3Rvci5TY3JpcHQuTG9jYXRpb24+fSAqLyAKICAgICB0aGlzLl9saXZl
TG9jYXRpb25zID0gW107CiAgICAgLyoqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgV2ViSW5zcGVj
dG9yLlVJTG9jYXRpb24+fSAqLyAKQEAgLTM2OSw3ICszODAsNyBAQCBXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludE1hbmFnZXIuQnJlYWtwb2ludC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2Nv
bmRpdGlvbiA9IGNvbmRpdGlvbjsKICAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuX3N0
b3JhZ2UuX3VwZGF0ZUJyZWFrcG9pbnQodGhpcyk7CiAKLSAgICAgICAgaWYgKHRoaXMuX2VuYWJs
ZWQgJiYgIXRoaXMuX3ByaW1hcnlVSUxvY2F0aW9uLnVpU291cmNlQ29kZS5pc0RpdmVyZ2VkRnJv
bVZNKCkpIHsKKyAgICAgICAgaWYgKHRoaXMuX2VuYWJsZWQgJiYgIVdlYkluc3BlY3Rvci5CcmVh
a3BvaW50TWFuYWdlci5pc0RpdmVyZ2VkRnJvbVZNKHRoaXMuX3ByaW1hcnlVSUxvY2F0aW9uLnVp
U291cmNlQ29kZSkpIHsKICAgICAgICAgICAgIHRoaXMuX3NldEluRGVidWdnZXIoKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNDU2LDcgKzQ2Nyw3IEBAIFdlYkluc3BlY3Rv
ci5CcmVha3BvaW50TWFuYWdlci5CcmVha3BvaW50LnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAg
ICBfYnJlYWtwb2ludFN0b3JhZ2VJZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMuX3ByaW1hcnlVSUxvY2F0aW9uLnVpU291cmNlQ29kZS5icmVha3BvaW50U3RvcmFnZUlk
KCkgKyAiOiIgKyB0aGlzLl9wcmltYXJ5VUlMb2NhdGlvbi5saW5lTnVtYmVyOworICAgICAgICBy
ZXR1cm4gV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRTdG9yYWdlSWQo
dGhpcy5fcHJpbWFyeVVJTG9jYXRpb24udWlTb3VyY2VDb2RlKSArICI6IiArIHRoaXMuX3ByaW1h
cnlVSUxvY2F0aW9uLmxpbmVOdW1iZXI7CiAgICAgfSwKIAogICAgIF9mYWtlQnJlYWtwb2ludEF0
UHJpbWFyeUxvY2F0aW9uOiBmdW5jdGlvbigpCkBAIC00OTIsNyArNTAzLDcgQEAgV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnRNYW5hZ2VyLlN0b3JhZ2UucHJvdG90eXBlID0gewogICAgIF9yZXN0b3Jl
QnJlYWtwb2ludHM6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKICAgICB7CiAgICAgICAgIHRoaXMu
X211dGVkID0gdHJ1ZTsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnRTdG9yYWdlSWQgPSB1aVNvdXJj
ZUNvZGUuYnJlYWtwb2ludFN0b3JhZ2VJZCgpOworICAgICAgICB2YXIgYnJlYWtwb2ludFN0b3Jh
Z2VJZCA9IFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5icmVha3BvaW50U3RvcmFnZUlk
KHVpU291cmNlQ29kZSk7CiAgICAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuX2JyZWFrcG9pbnRz
KSB7CiAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHRoaXMuX2JyZWFrcG9pbnRzW2lkXTsK
ICAgICAgICAgICAgIGlmIChicmVha3BvaW50LnNvdXJjZUZpbGVJZCA9PT0gYnJlYWtwb2ludFN0
b3JhZ2VJZCkKQEAgLTUzOSw3ICs1NTAsNyBAQCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFn
ZXIuU3RvcmFnZS5wcm90b3R5cGUgPSB7CiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIu
U3RvcmFnZS5JdGVtID0gZnVuY3Rpb24oYnJlYWtwb2ludCkKIHsKICAgICB2YXIgcHJpbWFyeVVJ
TG9jYXRpb24gPSBicmVha3BvaW50LnByaW1hcnlVSUxvY2F0aW9uKCk7Ci0gICAgdGhpcy5zb3Vy
Y2VGaWxlSWQgPSBwcmltYXJ5VUlMb2NhdGlvbi51aVNvdXJjZUNvZGUuYnJlYWtwb2ludFN0b3Jh
Z2VJZCgpOworICAgIHRoaXMuc291cmNlRmlsZUlkID0gV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRN
YW5hZ2VyLmJyZWFrcG9pbnRTdG9yYWdlSWQocHJpbWFyeVVJTG9jYXRpb24udWlTb3VyY2VDb2Rl
KTsKICAgICB0aGlzLmxpbmVOdW1iZXIgPSBwcmltYXJ5VUlMb2NhdGlvbi5saW5lTnVtYmVyOwog
ICAgIHRoaXMuY29uZGl0aW9uID0gYnJlYWtwb2ludC5jb25kaXRpb24oKTsKICAgICB0aGlzLmVu
YWJsZWQgPSBicmVha3BvaW50LmVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZS5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJjZS5qcwppbmRleCBhNjQxYzJkMTg3
NzA1MDdhODI3MmNkMTJkOTkzZDJmNThlZTcyN2U3Li5iNmViOTRmYjg0MDQ1YzY0ZGM4OWRjM2Qw
MDQzNmIzYmIxMWEwZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0phdmFTY3JpcHRTb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlLmpzCkBAIC0zNCw5NCArMzQsMjIgQEAKICAqIEBw
YXJhbSB7c3RyaW5nfSB1cmwKICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlJlc291cmNlfSByZXNv
dXJjZQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyfSBjb250ZW50UHJv
dmlkZXIKKyAqIEBwYXJhbSB7Ym9vbGVhbj19IHJlYWRPbmx5CiAgKi8KLVdlYkluc3BlY3Rvci5K
YXZhU2NyaXB0U291cmNlID0gZnVuY3Rpb24odXJsLCByZXNvdXJjZSwgY29udGVudFByb3ZpZGVy
LCBpc0VkaXRhYmxlKQorV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UgPSBmdW5jdGlvbih1
cmwsIHJlc291cmNlLCBjb250ZW50UHJvdmlkZXIsIHJlYWRPbmx5KQogewotICAgIFdlYkluc3Bl
Y3Rvci5VSVNvdXJjZUNvZGUuY2FsbCh0aGlzLCB1cmwsIHJlc291cmNlLCBjb250ZW50UHJvdmlk
ZXIpOwotICAgIHRoaXMuX2lzRWRpdGFibGUgPSBpc0VkaXRhYmxlOworICAgIFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUuY2FsbCh0aGlzLCB1cmwsIHJlc291cmNlLCBjb250ZW50UHJvdmlkZXIs
IHJlYWRPbmx5KTsKIH0KIAogV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UucHJvdG90eXBl
ID0gewogICAgIC8qKgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCi0gICAgICog
QHBhcmFtIHtudW1iZXJ9IGNvbHVtbk51bWJlcgotICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1vZGVsLkxvY2F0aW9ufQotICAgICAqLwotICAgIHVpTG9jYXRpb25Ub1Jhd0xv
Y2F0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCi0gICAgewotICAgICAg
ICB2YXIgcmF3TG9jYXRpb24gPSBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS51
aUxvY2F0aW9uVG9SYXdMb2NhdGlvbi5jYWxsKHRoaXMsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJl
cik7Ci0gICAgICAgIHZhciBkZWJ1Z2dlck1vZGVsTG9jYXRpb24gPSAvKiogQHR5cGUge1dlYklu
c3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkxvY2F0aW9ufSAqLyByYXdMb2NhdGlvbjsKLSAgICAgICAg
cmV0dXJuIGRlYnVnZ2VyTW9kZWxMb2NhdGlvbjsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICog
QHJldHVybiB7Ym9vbGVhbn0KLSAgICAgKi8KLSAgICBzdXBwb3J0c0VuYWJsZWRCcmVha3BvaW50
c1doaWxlRWRpdGluZzogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtzdHJpbmd9Ci0gICAgICovCi0gICAg
YnJlYWtwb2ludFN0b3JhZ2VJZDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMuZm9ybWF0dGVkKCkgPyAiZGVvYmZ1c2NhdGVkOiIgKyB0aGlzLnVybCA6IHRoaXMudXJsOwot
ICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAqLwotICAg
IGlzRWRpdGFibGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9pc0Vk
aXRhYmxlICYmIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmNhblNldFNjcmlwdFNvdXJjZSgp
OwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAqLwot
ICAgIGlzRGl2ZXJnZWRGcm9tVk06IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgcmV0dXJuIHRydWUgaWYgdGhpcy5faXNEaXZlcmdlZEZyb21WTSBpcyBzZXQg
YXMgd2VsbCBvbmNlIHdlIHByb3ZpZGUgYSB3YXkgdG8gc2V0IGJyZWFrcG9pbnRzIGFmdGVyIExp
dmVFZGl0IGZhaWx1cmUuCi0gICAgICAgIHJldHVybiB0aGlzLmlzRGlydHkoKTsKLSAgICB9LAot
Ci0gICAgLyoqCiAgICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sKICAg
ICAgKi8KICAgICB3b3JraW5nQ29weUNvbW1pdHRlZDogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAg
ewotICAgICAgICAvKioKLSAgICAgICAgICogQHBhcmFtIHs/c3RyaW5nfSBlcnJvcgotICAgICAg
ICAgKi8KLSAgICAgICAgZnVuY3Rpb24gaW5uZXJDYWxsYmFjayhlcnJvcikKLSAgICAgICAgewot
ICAgICAgICAgICAgdGhpcy5faXNEaXZlcmdlZEZyb21WTSA9ICEhZXJyb3I7Ci0gICAgICAgICAg
ICBjYWxsYmFjayhlcnJvcik7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgcmF3TG9jYXRpb24g
PSB0aGlzLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKDAsIDApOworICAgICAgICB2YXIgcmF3TG9j
YXRpb24gPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkxvY2F0aW9ufSAq
LyB0aGlzLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKDAsIDApOwogICAgICAgICB2YXIgc2NyaXB0
ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9ySWQocmF3TG9jYXRpb24uc2Ny
aXB0SWQpOwotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zZXRTY3JpcHRTb3Vy
Y2Uoc2NyaXB0LnNjcmlwdElkLCB0aGlzLndvcmtpbmdDb3B5KCksIGlubmVyQ2FsbGJhY2suYmlu
ZCh0aGlzKSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVy
eQotICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gY2FzZVNlbnNpdGl2ZQotICAgICAqIEBwYXJhbSB7
Ym9vbGVhbn0gaXNSZWdleAotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oQXJyYXkuPFdlYkluc3Bl
Y3Rvci5Db250ZW50UHJvdmlkZXIuU2VhcmNoTWF0Y2g+KX0gY2FsbGJhY2sKLSAgICAgKi8KLSAg
ICBzZWFyY2hJbkNvbnRlbnQ6IGZ1bmN0aW9uKHF1ZXJ5LCBjYXNlU2Vuc2l0aXZlLCBpc1JlZ2V4
LCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHZhciBjb250ZW50ID0gdGhpcy5jb250ZW50KCk7
Ci0gICAgICAgIHZhciBwcm92aWRlciA9IGNvbnRlbnQgPyBuZXcgV2ViSW5zcGVjdG9yLlN0YXRp
Y0NvbnRlbnRQcm92aWRlcih0aGlzLl9jb250ZW50UHJvdmlkZXIuY29udGVudFR5cGUoKSwgY29u
dGVudCkgOiB0aGlzLl9jb250ZW50UHJvdmlkZXI7Ci0gICAgICAgIHByb3ZpZGVyLnNlYXJjaElu
Q29udGVudChxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spOwotICAgIH0s
Ci0KLSAgICBmb3JtYXR0ZWRDaGFuZ2VkOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBXZWJJ
bnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIucmVzdG9yZUJyZWFrcG9pbnRzKHRoaXMpOworICAg
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zZXRTY3JpcHRTb3VyY2Uoc2NyaXB0LnNj
cmlwdElkLCB0aGlzLndvcmtpbmdDb3B5KCksIGNhbGxiYWNrKTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdFNvdXJj
ZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0
U291cmNlRnJhbWUuanMKaW5kZXggZmRkNzMwYWQzZjg5ZDJhYmI1YjEwYWI2YjExZGE3YzUyNzlj
MDEwMy4uODcwMzU3YzhhNTk5NDRmMzBiYWNhOGIzYTg5OTkzYTdiYWE0MGEwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlRnJh
bWUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0
U291cmNlRnJhbWUuanMKQEAgLTgwLDcgKzgwLDcgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRT
b3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgY2FuRWRpdFNvdXJjZTogZnVu
Y3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2phdmFTY3JpcHRTb3VyY2UuaXNF
ZGl0YWJsZSgpOworICAgICAgICByZXR1cm4gIXRoaXMuX2phdmFTY3JpcHRTb3VyY2UuaXNSZWFk
T25seSgpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE1NywxOSArMTU3LDI0IEBAIFdlYkluc3Bl
Y3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9y
ZXN0b3JlQnJlYWtwb2ludHNBZnRlckVkaXRpbmcoKTsKICAgICB9LAogCisgICAgX3N1cHBvcnRz
RW5hYmxlZEJyZWFrcG9pbnRzV2hpbGVFZGl0aW5nOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5famF2YVNjcmlwdFNvdXJjZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5T
bmlwcGV0SmF2YVNjcmlwdFNvdXJjZTsKKyAgICB9LAorCiAgICAgX2RpZEVkaXRDb250ZW50OiBm
dW5jdGlvbihlcnJvcikKICAgICB7CiAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLnNob3dFcnJvck1lc3NhZ2UoZXJyb3IpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9Ci0gICAgICAgIGlmICghdGhpcy5famF2YVNjcmlwdFNvdXJjZS5zdXBwb3J0
c0VuYWJsZWRCcmVha3BvaW50c1doaWxlRWRpdGluZygpKQorICAgICAgICBpZiAoIXRoaXMuX3N1
cHBvcnRzRW5hYmxlZEJyZWFrcG9pbnRzV2hpbGVFZGl0aW5nKCkpCiAgICAgICAgICAgICB0aGlz
Ll9yZXN0b3JlQnJlYWtwb2ludHNBZnRlckVkaXRpbmcoKTsKICAgICB9LAogCiAgICAgX3JlbW92
ZUJyZWFrcG9pbnRzQmVmb3JlRWRpdGluZzogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFy
IHN1cHBvcnRzQnJlYWtwb2ludHNPbkVkaXQgPSB0aGlzLl9qYXZhU2NyaXB0U291cmNlLnN1cHBv
cnRzRW5hYmxlZEJyZWFrcG9pbnRzV2hpbGVFZGl0aW5nKCk7CisgICAgICAgIHZhciBzdXBwb3J0
c0JyZWFrcG9pbnRzT25FZGl0ID0gdGhpcy5fc3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGls
ZUVkaXRpbmcoKTsKICAgICAgICAgaWYgKCF0aGlzLl9qYXZhU2NyaXB0U291cmNlLmlzRGlydHko
KSB8fCBzdXBwb3J0c0JyZWFrcG9pbnRzT25FZGl0KSB7CiAgICAgICAgICAgICAvLyBEaXNhYmxl
IGFsbCBicmVha3BvaW50cyBpbiB0aGUgbW9kZWwsIHN0b3JlIHRoZW0gYXMgbXV0ZWQgYnJlYWtw
b2ludHMuCiAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludExvY2F0aW9ucyA9IHRoaXMuX2JyZWFr
cG9pbnRNYW5hZ2VyLmJyZWFrcG9pbnRMb2NhdGlvbnNGb3JVSVNvdXJjZUNvZGUodGhpcy5famF2
YVNjcmlwdFNvdXJjZSk7CkBAIC0xOTIsNyArMTk3LDcgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3Jp
cHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAKICAgICBfcmVzdG9yZUJyZWFrcG9pbnRzQWZ0
ZXJFZGl0aW5nOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2phdmFTY3Jp
cHRTb3VyY2UuaXNEaXJ0eSgpIHx8IHRoaXMuX2phdmFTY3JpcHRTb3VyY2Uuc3VwcG9ydHNFbmFi
bGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKSkgeworICAgICAgICBpZiAoIXRoaXMuX2phdmFT
Y3JpcHRTb3VyY2UuaXNEaXJ0eSgpIHx8IHRoaXMuX3N1cHBvcnRzRW5hYmxlZEJyZWFrcG9pbnRz
V2hpbGVFZGl0aW5nKCkpIHsKICAgICAgICAgICAgIC8vIFJlc3RvcmUgYWxsIG11dGVkIGJyZWFr
cG9pbnRzLgogICAgICAgICAgICAgZm9yICh2YXIgbGluZU51bWJlciA9IDA7IGxpbmVOdW1iZXIg
PCB0aGlzLl90ZXh0RWRpdG9yLmxpbmVzQ291bnQ7ICsrbGluZU51bWJlcikgewogICAgICAgICAg
ICAgICAgIHZhciBicmVha3BvaW50RGVjb3JhdGlvbiA9IHRoaXMuX3RleHRFZGl0b3IuZ2V0QXR0
cmlidXRlKGxpbmVOdW1iZXIsICJicmVha3BvaW50Iik7CkBAIC0zMzcsNyArMzQyLDcgQEAgV2Vi
SW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIH07
CiAgICAgICAgIHRoaXMudGV4dEVkaXRvci5zZXRBdHRyaWJ1dGUobGluZU51bWJlciwgImJyZWFr
cG9pbnQiLCBicmVha3BvaW50KTsKIAotICAgICAgICB2YXIgZGlzYWJsZWQgPSAhZW5hYmxlZCB8
fCAobXV0ZWRXaGlsZUVkaXRpbmcgJiYgIXRoaXMuX2phdmFTY3JpcHRTb3VyY2Uuc3VwcG9ydHNF
bmFibGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKSk7CisgICAgICAgIHZhciBkaXNhYmxlZCA9
ICFlbmFibGVkIHx8IChtdXRlZFdoaWxlRWRpdGluZyAmJiAhdGhpcy5fc3VwcG9ydHNFbmFibGVk
QnJlYWtwb2ludHNXaGlsZUVkaXRpbmcoKSk7CiAgICAgICAgIHRoaXMudGV4dEVkaXRvci5hZGRC
cmVha3BvaW50KGxpbmVOdW1iZXIsIGRpc2FibGVkLCAhIWNvbmRpdGlvbik7CiAgICAgfSwKIApA
QCAtNTE0LDcgKzUxOSw3IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlRnJhbWUucHJv
dG90eXBlID0gewogICAgICAqLwogICAgIF9oYW5kbGVHdXR0ZXJDbGljazogZnVuY3Rpb24oZXZl
bnQpCiAgICAgewotICAgICAgICBpZiAodGhpcy5famF2YVNjcmlwdFNvdXJjZS5pc0RpcnR5KCkg
JiYgIXRoaXMuX2phdmFTY3JpcHRTb3VyY2Uuc3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGls
ZUVkaXRpbmcoKSkKKyAgICAgICAgaWYgKHRoaXMuX2phdmFTY3JpcHRTb3VyY2UuaXNEaXJ0eSgp
ICYmICF0aGlzLl9zdXBwb3J0c0VuYWJsZWRCcmVha3BvaW50c1doaWxlRWRpdGluZygpKQogICAg
ICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gZXZlbnQuZGF0YS5s
aW5lTnVtYmVyOwpAQCAtNTY2LDcgKzU3MSw3IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291
cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9jb250aW51ZVRvTGluZTogZnVu
Y3Rpb24obGluZU51bWJlcikKICAgICB7Ci0gICAgICAgIHZhciByYXdMb2NhdGlvbiA9IHRoaXMu
X2phdmFTY3JpcHRTb3VyY2UudWlMb2NhdGlvblRvUmF3TG9jYXRpb24obGluZU51bWJlciwgMCk7
CisgICAgICAgIHZhciByYXdMb2NhdGlvbiA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwuTG9jYXRpb259ICovIHRoaXMuX2phdmFTY3JpcHRTb3VyY2UudWlMb2NhdGlvblRv
UmF3TG9jYXRpb24obGluZU51bWJlciwgMCk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1vZGVsLmNvbnRpbnVlVG9Mb2NhdGlvbihyYXdMb2NhdGlvbik7CiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrVUlTb3VyY2VD
b2RlUHJvdmlkZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdv
cmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcwppbmRleCBmMTYyNWY2NGNmYWYzNmUzMTViMGZlM2Nh
N2YyMzRhMDAwMDdhZTFkLi5hNjRhNzk3NzhkZmZlY2NlN2JkNTM5NDg5YmZhMzEyYjBmYWNkZWM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtV
SVNvdXJjZUNvZGVQcm92aWRlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlci5qcwpAQCAtNzIsMTAgKzcyLDEwIEBA
IFdlYkluc3BlY3Rvci5OZXR3b3JrVUlTb3VyY2VDb2RlUHJvdmlkZXIucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5TdHlsZVNvdXJjZShy
ZXNvdXJjZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
cmVzb3VyY2VUeXBlcy5Eb2N1bWVudDoKLSAgICAgICAgICAgIHVpU291cmNlQ29kZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZShyZXNvdXJjZS51cmwsIHJlc291cmNlLCByZXNv
dXJjZSwgZmFsc2UpOworICAgICAgICAgICAgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rv
ci5KYXZhU2NyaXB0U291cmNlKHJlc291cmNlLnVybCwgcmVzb3VyY2UsIHJlc291cmNlLCB0cnVl
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5yZXNvdXJj
ZVR5cGVzLlNjcmlwdDoKLSAgICAgICAgICAgIHVpU291cmNlQ29kZSA9IG5ldyBXZWJJbnNwZWN0
b3IuSmF2YVNjcmlwdFNvdXJjZShyZXNvdXJjZS51cmwsIHJlc291cmNlLCByZXNvdXJjZSwgdHJ1
ZSk7CisgICAgICAgICAgICB1aVNvdXJjZUNvZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkphdmFTY3Jp
cHRTb3VyY2UocmVzb3VyY2UudXJsLCByZXNvdXJjZSwgcmVzb3VyY2UpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHVpU291cmNlQ29kZSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVNjcmlwdE1hcHBp
bmcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0
TWFwcGluZy5qcwppbmRleCAwMmViNjJlNzJkN2ZhOGU3NTU2MDBhNGRhYjE3Mjc0YjRlNGE3ODkw
Li4yYjc0M2UyMjliMjI2ZDMyNTcwZjBjYWEzYjg4ZmU1MGI1Mzk1NDU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0TWFwcGluZy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlU2NyaXB0
TWFwcGluZy5qcwpAQCAtMTQ4LDcgKzE0OCw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVNjcmlw
dE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICAgICAgdXJsICs9ICIgKCIgKyBuZXh0SW5k
ZXggKyAiKSI7CiAgICAgICAgICAgICB0aGlzLl9uZXh0RHluYW1pY1NjcmlwdEluZGV4Rm9yVVJM
W3NjcmlwdC5zb3VyY2VVUkxdID0gbmV4dEluZGV4ICsgMTsKICAgICAgICAgfQotICAgICAgICB2
YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKHVybCwg
bnVsbCwgY29udGVudFByb3ZpZGVyLCAhc2NyaXB0LmlzSW5saW5lU2NyaXB0KCkpOworICAgICAg
ICB2YXIgdWlTb3VyY2VDb2RlID0gbmV3IFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKHVy
bCwgbnVsbCwgY29udGVudFByb3ZpZGVyLCBzY3JpcHQuaXNJbmxpbmVTY3JpcHQoKSk7CiAgICAg
ICAgIHRoaXMuX3RlbXBvcmFyeVVJU291cmNlQ29kZXMucHV0KHVpU291cmNlQ29kZSwgdWlTb3Vy
Y2VDb2RlKTsKICAgICAgICAgdGhpcy5fYmluZFVJU291cmNlQ29kZVRvU2NyaXB0cyh1aVNvdXJj
ZUNvZGUsIHNjcmlwdHMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NBU1NTb3VyY2VNYXBwaW5nLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TQVNTU291cmNlTWFwcGluZy5qcwppbmRleCAwYjhlOTZlNmU0ODBhMDkzNjUx
M2NjOTdhZWMzNzk0NGU0MGE4MWU0Li4zYmQzMjk4NmM2YjhhZjI3ZTE5ZWY2YzdmNzE4MzJiYWQw
ZjBlM2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NB
U1NTb3VyY2VNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU0FTU1NvdXJjZU1hcHBpbmcuanMKQEAgLTE3MCwxNCArMTcwLDQgQEAgV2ViSW5zcGVjdG9y
LlNBU1NTb3VyY2UgPSBmdW5jdGlvbihzYXNzVVJMKQogICAgIFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGUuY2FsbCh0aGlzLCBzYXNzVVJMLCBudWxsLCBjb250ZW50UHJvdmlkZXIpOwogfQogCi1X
ZWJJbnNwZWN0b3IuU0FTU1NvdXJjZS5wcm90b3R5cGUgPSB7Ci0gICAgLyoqCi0gICAgICogQHJl
dHVybiB7Ym9vbGVhbn0KLSAgICAgKi8KLSAgICBpc0VkaXRhYmxlOiBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci19Ci0KIFdlYkluc3BlY3Rvci5TQVNTU291
cmNlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3Rv
dHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0U25pcHBldE1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRTbmlwcGV0TW9kZWwuanMKaW5kZXggNjBhNjY3MjMzN2ZmNDI4YjAwNjc5ZTQ3N2UxMjBk
MzE3Y2ZmODQ1ZC4uMTMzMDQ1MmNhYjkzZDQzOWI4ODIzNzk4MjJiZDdlMDFjOGNlM2ZmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRTbmlwcGV0
TW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRT
bmlwcGV0TW9kZWwuanMKQEAgLTM5LDYgKzM5LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBw
ZXRNb2RlbCA9IGZ1bmN0aW9uKHdvcmtzcGFjZSkKICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JT
Y3JpcHRJZCA9IHt9OwogICAgIHRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29kZSA9IG5ldyBNYXAo
KTsKICAgICB0aGlzLl9zbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZvclNuaXBwZXRJZCA9IHt9Owor
ICAgIHRoaXMuX3NuaXBwZXRJZEZvckphdmFTY3JpcHRTb3VyY2UgPSBuZXcgTWFwKCk7CiAgICAg
CiAgICAgdGhpcy5fc25pcHBldFN0b3JhZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRTdG9y
YWdlKCJzY3JpcHQiLCAiU2NyaXB0IHNuaXBwZXQgIyIpOwogICAgIHRoaXMuX2xhc3RTbmlwcGV0
RXZhbHVhdGlvbkluZGV4U2V0dGluZyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0
aW5nKCJsYXN0U25pcHBldEV2YWx1YXRpb25JbmRleCIsIDApOwpAQCAtODEsNyArODIsOCBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAg
ICBfYWRkU2NyaXB0U25pcHBldDogZnVuY3Rpb24oc25pcHBldCkKICAgICB7Ci0gICAgICAgIHZh
ciBzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSA9IG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldEphdmFT
Y3JpcHRTb3VyY2Uoc25pcHBldC5pZCwgc25pcHBldC5uYW1lLCBuZXcgV2ViSW5zcGVjdG9yLlNu
aXBwZXRDb250ZW50UHJvdmlkZXIoc25pcHBldCksIHRoaXMpOworICAgICAgICB2YXIgc25pcHBl
dEphdmFTY3JpcHRTb3VyY2UgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291
cmNlKHNuaXBwZXQubmFtZSwgbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0Q29udGVudFByb3ZpZGVy
KHNuaXBwZXQpLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fc25pcHBldElkRm9ySmF2YVNjcmlwdFNv
dXJjZS5wdXQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UsIHNuaXBwZXQuaWQpOwogICAgICAgICBz
bmlwcGV0SmF2YVNjcmlwdFNvdXJjZS5zZXRTb3VyY2VNYXBwaW5nKHRoaXMuX3NuaXBwZXRTY3Jp
cHRNYXBwaW5nKTsgCiAgICAgICAgIHRoaXMuX3NuaXBwZXRKYXZhU2NyaXB0U291cmNlRm9yU25p
cHBldElkW3NuaXBwZXQuaWRdID0gc25pcHBldEphdmFTY3JpcHRTb3VyY2U7CiAgICAgICAgIHRo
aXMuX3dvcmtzcGFjZS5wcm9qZWN0KCkuYWRkVUlTb3VyY2VDb2RlKHNuaXBwZXRKYXZhU2NyaXB0
U291cmNlKTsKQEAgLTkzLDExICs5NSwxMyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1v
ZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBkZWxldGVTY3JpcHRTbmlwcGV0OiBmdW5j
dGlvbihzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSkKICAgICB7Ci0gICAgICAgIHZhciBzbmlwcGV0
ID0gdGhpcy5fc25pcHBldFN0b3JhZ2Uuc25pcHBldEZvcklkKHNuaXBwZXRKYXZhU2NyaXB0U291
cmNlLnNuaXBwZXRJZCk7CisgICAgICAgIHZhciBzbmlwcGV0SWQgPSB0aGlzLl9zbmlwcGV0SWRG
b3JKYXZhU2NyaXB0U291cmNlLmdldChzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSk7CisgICAgICAg
IHZhciBzbmlwcGV0ID0gdGhpcy5fc25pcHBldFN0b3JhZ2Uuc25pcHBldEZvcklkKHNuaXBwZXRJ
ZCk7CiAgICAgICAgIHRoaXMuX3NuaXBwZXRTdG9yYWdlLmRlbGV0ZVNuaXBwZXQoc25pcHBldCk7
CiAgICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnRzKHNuaXBwZXRKYXZhU2NyaXB0U291cmNl
KTsKICAgICAgICAgdGhpcy5fcmVsZWFzZVNuaXBwZXRTY3JpcHQoc25pcHBldEphdmFTY3JpcHRT
b3VyY2UpOwogICAgICAgICBkZWxldGUgdGhpcy5fc25pcHBldEphdmFTY3JpcHRTb3VyY2VGb3JT
bmlwcGV0SWRbc25pcHBldC5pZF07CisgICAgICAgIHRoaXMuX3NuaXBwZXRJZEZvckphdmFTY3Jp
cHRTb3VyY2UucmVtb3ZlKHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKICAgICAgICAgdGhpcy5f
d29ya3NwYWNlLnByb2plY3QoKS5yZW1vdmVVSVNvdXJjZUNvZGUoc25pcHBldEphdmFTY3JpcHRT
b3VyY2UpOwogICAgIH0sCiAKQEAgLTEwNyw3ICsxMTEsOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0
U25pcHBldE1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZW5hbWVTY3JpcHRTbmlw
cGV0OiBmdW5jdGlvbihzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSwgbmV3TmFtZSkKICAgICB7Ci0g
ICAgICAgIHZhciBzbmlwcGV0ID0gdGhpcy5fc25pcHBldFN0b3JhZ2Uuc25pcHBldEZvcklkKHNu
aXBwZXRKYXZhU2NyaXB0U291cmNlLnNuaXBwZXRJZCk7CisgICAgICAgIHZhciBzbmlwcGV0SWQg
PSB0aGlzLl9zbmlwcGV0SWRGb3JKYXZhU2NyaXB0U291cmNlLmdldChzbmlwcGV0SmF2YVNjcmlw
dFNvdXJjZSk7CisgICAgICAgIHZhciBzbmlwcGV0ID0gdGhpcy5fc25pcHBldFN0b3JhZ2Uuc25p
cHBldEZvcklkKHNuaXBwZXRJZCk7CiAgICAgICAgIGlmICghc25pcHBldCB8fCAhbmV3TmFtZSB8
fCBzbmlwcGV0Lm5hbWUgPT09IG5ld05hbWUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IHNuaXBwZXQubmFtZSA9IG5ld05hbWU7CkBAIC0xMTYsMjEgKzEyMSwxMiBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLlNuaXBwZXRKYXZhU2NyaXB0U291cmNlfSBzbmlwcGV0SmF2YVNj
cmlwdFNvdXJjZQotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICovCi0gICAgX2lzRGl2
ZXJnZWRGcm9tVk06IGZ1bmN0aW9uKHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKQotICAgIHsKLSAg
ICAgICAgdmFyIHNjcmlwdCA9IHRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29kZS5nZXQoc25pcHBl
dEphdmFTY3JpcHRTb3VyY2UpOwotICAgICAgICByZXR1cm4gIXNjcmlwdDsKLSAgICB9LAotCi0g
ICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3Vy
Y2V9IHNuaXBwZXRKYXZhU2NyaXB0U291cmNlCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG5ld0Nv
bnRlbnQKICAgICAgKi8KICAgICBfc2V0U2NyaXB0U25pcHBldENvbnRlbnQ6IGZ1bmN0aW9uKHNu
aXBwZXRKYXZhU2NyaXB0U291cmNlLCBuZXdDb250ZW50KQogICAgIHsKLSAgICAgICAgdmFyIHNu
aXBwZXQgPSB0aGlzLl9zbmlwcGV0U3RvcmFnZS5zbmlwcGV0Rm9ySWQoc25pcHBldEphdmFTY3Jp
cHRTb3VyY2Uuc25pcHBldElkKTsKKyAgICAgICAgdmFyIHNuaXBwZXRJZCA9IHRoaXMuX3NuaXBw
ZXRJZEZvckphdmFTY3JpcHRTb3VyY2UuZ2V0KHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKKyAg
ICAgICAgdmFyIHNuaXBwZXQgPSB0aGlzLl9zbmlwcGV0U3RvcmFnZS5zbmlwcGV0Rm9ySWQoc25p
cHBldElkKTsKICAgICAgICAgc25pcHBldC5jb250ZW50ID0gbmV3Q29udGVudDsKICAgICB9LAog
CkBAIC0xNjcsNyArMTYzLDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHZhciBicmVha3BvaW50TG9jYXRpb25zID0gdGhpcy5fcmVtb3Zl
QnJlYWtwb2ludHMoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOwogICAgICAgICB0aGlzLl9yZWxl
YXNlU25pcHBldFNjcmlwdChzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSk7CiAgICAgICAgIHRoaXMu
X3Jlc3RvcmVCcmVha3BvaW50cyhzbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSwgYnJlYWtwb2ludExv
Y2F0aW9ucyk7Ci0gICAgICAgIHZhciBldmFsdWF0aW9uSW5kZXggPSB0aGlzLl9uZXh0RXZhbHVh
dGlvbkluZGV4KHNuaXBwZXRKYXZhU2NyaXB0U291cmNlLnNuaXBwZXRJZCk7CisgICAgICAgIHZh
ciBzbmlwcGV0SWQgPSB0aGlzLl9zbmlwcGV0SWRGb3JKYXZhU2NyaXB0U291cmNlLmdldChzbmlw
cGV0SmF2YVNjcmlwdFNvdXJjZSk7CisgICAgICAgIHZhciBldmFsdWF0aW9uSW5kZXggPSB0aGlz
Ll9uZXh0RXZhbHVhdGlvbkluZGV4KHNuaXBwZXRJZCk7CiAgICAgICAgIHNuaXBwZXRKYXZhU2Ny
aXB0U291cmNlLl9ldmFsdWF0aW9uSW5kZXggPSBldmFsdWF0aW9uSW5kZXg7CiAgICAgICAgIHZh
ciBldmFsdWF0aW9uVXJsID0gdGhpcy5fZXZhbHVhdGlvblNvdXJjZVVSTChzbmlwcGV0SmF2YVNj
cmlwdFNvdXJjZSk7CiAKQEAgLTMzNiw3ICszMzMsOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0U25p
cHBldE1vZGVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBzbmlwcGV0UHJlZml4
ID0gV2ViSW5zcGVjdG9yLlNjcmlwdFNuaXBwZXRNb2RlbC5zbmlwcGV0U291cmNlVVJMUHJlZml4
OwogICAgICAgICB2YXIgZXZhbHVhdGlvblN1ZmZpeCA9ICJfIiArIHNuaXBwZXRKYXZhU2NyaXB0
U291cmNlLl9ldmFsdWF0aW9uSW5kZXg7Ci0gICAgICAgIHJldHVybiBzbmlwcGV0UHJlZml4ICsg
c25pcHBldEphdmFTY3JpcHRTb3VyY2Uuc25pcHBldElkICsgZXZhbHVhdGlvblN1ZmZpeDsKKyAg
ICAgICAgdmFyIHNuaXBwZXRJZCA9IHRoaXMuX3NuaXBwZXRJZEZvckphdmFTY3JpcHRTb3VyY2Uu
Z2V0KHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKKyAgICAgICAgcmV0dXJuIHNuaXBwZXRQcmVm
aXggKyBzbmlwcGV0SWQgKyBldmFsdWF0aW9uU3VmZml4OwogICAgIH0sCiAKICAgICAvKioKQEAg
LTM1OSw2ICszNTcsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWQgPSB7fTsKICAgICAg
ICAgdGhpcy5fc2NyaXB0Rm9yVUlTb3VyY2VDb2RlID0gbmV3IE1hcCgpOwogICAgICAgICB0aGlz
Ll9zbmlwcGV0SmF2YVNjcmlwdFNvdXJjZUZvclNuaXBwZXRJZCA9IHt9OworICAgICAgICB0aGlz
Ll9zbmlwcGV0SWRGb3JKYXZhU2NyaXB0U291cmNlID0gbmV3IE1hcCgpOwogICAgIH0sCiAKICAg
ICBfcHJvamVjdERpZFJlc2V0OiBmdW5jdGlvbigpCkBAIC0zNzIsMzcgKzM3MSwxOSBAQCBXZWJJ
bnNwZWN0b3IuU2NyaXB0U25pcHBldE1vZGVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuT2JqZWN0LnByb3RvdAogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtX
ZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZX0KLSAqIEBwYXJhbSB7c3RyaW5nfSBzbmlwcGV0
SWQKICAqIEBwYXJhbSB7c3RyaW5nfSBzbmlwcGV0TmFtZQogICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuQ29udGVudFByb3ZpZGVyfSBjb250ZW50UHJvdmlkZXIKICAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlNjcmlwdFNuaXBwZXRNb2RlbH0gc2NyaXB0U25pcHBldE1vZGVsCiAgKi8KLVdlYkluc3Bl
Y3Rvci5TbmlwcGV0SmF2YVNjcmlwdFNvdXJjZSA9IGZ1bmN0aW9uKHNuaXBwZXRJZCwgc25pcHBl
dE5hbWUsIGNvbnRlbnRQcm92aWRlciwgc2NyaXB0U25pcHBldE1vZGVsKQorV2ViSW5zcGVjdG9y
LlNuaXBwZXRKYXZhU2NyaXB0U291cmNlID0gZnVuY3Rpb24oc25pcHBldE5hbWUsIGNvbnRlbnRQ
cm92aWRlciwgc2NyaXB0U25pcHBldE1vZGVsKQogewotICAgIFdlYkluc3BlY3Rvci5KYXZhU2Ny
aXB0U291cmNlLmNhbGwodGhpcywgc25pcHBldE5hbWUsIG51bGwsIGNvbnRlbnRQcm92aWRlciwg
dHJ1ZSk7Ci0gICAgdGhpcy5fc25pcHBldElkID0gc25pcHBldElkOworICAgIFdlYkluc3BlY3Rv
ci5KYXZhU2NyaXB0U291cmNlLmNhbGwodGhpcywgc25pcHBldE5hbWUsIG51bGwsIGNvbnRlbnRQ
cm92aWRlcik7CiAgICAgdGhpcy5fc2NyaXB0U25pcHBldE1vZGVsID0gc2NyaXB0U25pcHBldE1v
ZGVsOwogICAgIHRoaXMuaXNTbmlwcGV0ID0gdHJ1ZTsKIH0KIAogV2ViSW5zcGVjdG9yLlNuaXBw
ZXRKYXZhU2NyaXB0U291cmNlLnByb3RvdHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAcmV0dXJu
IHtib29sZWFufQotICAgICAqLwotICAgIGlzRWRpdGFibGU6IGZ1bmN0aW9uKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHti
b29sZWFufQotICAgICAqLwotICAgIGlzRGl2ZXJnZWRGcm9tVk06IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRTbmlwcGV0TW9kZWwuX2lzRGl2ZXJnZWRGcm9t
Vk0odGhpcyk7Ci0gICAgfSwKLQotICAgIC8qKgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP3N0
cmluZyl9IGNhbGxiYWNrCiAgICAgICovCiAgICAgd29ya2luZ0NvcHlDb21taXR0ZWQ6IGZ1bmN0
aW9uKGNhbGxiYWNrKQpAQCAtNDE0LDM1ICszOTUsNiBAQCBXZWJJbnNwZWN0b3IuU25pcHBldEph
dmFTY3JpcHRTb3VyY2UucHJvdG90eXBlID0gewogICAgIHdvcmtpbmdDb3B5Q2hhbmdlZDogZnVu
Y3Rpb24oKQogICAgIHsgIAogICAgICAgICB0aGlzLl9zY3JpcHRTbmlwcGV0TW9kZWwuX3Njcmlw
dFNuaXBwZXRFZGl0ZWQodGhpcyk7Ci0gICAgfSwKLQotICAgIGV2YWx1YXRlOiBmdW5jdGlvbigp
Ci0gICAgewotICAgICAgICB0aGlzLl9zY3JpcHRTbmlwcGV0TW9kZWwuZXZhbHVhdGVTY3JpcHRT
bmlwcGV0KHRoaXMpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtib29sZWFu
fQotICAgICAqLwotICAgIHN1cHBvcnRzRW5hYmxlZEJyZWFrcG9pbnRzV2hpbGVFZGl0aW5nOiBm
dW5jdGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9LAotCi0gICAgLyoq
Ci0gICAgICogQHJldHVybiB7c3RyaW5nfQotICAgICAqLwotICAgIGJyZWFrcG9pbnRTdG9yYWdl
SWQ6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU2NyaXB0
U25pcHBldE1vZGVsLnNuaXBwZXRTb3VyY2VVUkxQcmVmaXggKyB0aGlzLnNuaXBwZXRJZDsKLSAg
ICB9LAotCi0gICAgLyoqCi0gICAgICogQHJldHVybiB7c3RyaW5nfQotICAgICAqLwotICAgIGdl
dCBzbmlwcGV0SWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NuaXBwZXRJZDsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c05hdmlnYXRvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c05hdmlnYXRvci5qcwppbmRleCAyZWVlZjczYzdkNWE5ZTk0NWU3ZTY2YmYwNTQyMjc4
OGJmYWZlNmI5Li5lYTBmYzdjMzUzZTQ5MDQwMzQyNTZiNTRjYzNiODMyODlkZWYzMzU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNOYXZpZ2F0
b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzTmF2
aWdhdG9yLmpzCkBAIC0yNDEsNyArMjQxLDcgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzTmF2aWdh
dG9yVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghdWlTb3VyY2VDb2RlLmlzU25pcHBl
dCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdmFyIHNuaXBwZXRKYXZhU2NyaXB0U291
cmNlID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2V9ICov
IHVpU291cmNlQ29kZTsKLSAgICAgICAgc25pcHBldEphdmFTY3JpcHRTb3VyY2UuZXZhbHVhdGUo
KTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNjcmlwdFNuaXBwZXRNb2RlbC5ldmFsdWF0ZVNjcmlw
dFNuaXBwZXQoc25pcHBldEphdmFTY3JpcHRTb3VyY2UpOwogICAgIH0sCiAKICAgICAvKioKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVs
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMK
aW5kZXggZjRkYzc3MjE5YzEzMDE3MmU0ZmE1MjllYzNmZjc3MDE4YTBkYzY2MS4uOGIzN2FkYTY4
OTBlMTMwM2NiNTk2NGYyMDY2MjJhYjA0NGYyOWRlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTI0Nyw3ICsyNDcsNyBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfYWRkVUlTb3Vy
Y2VDb2RlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAgICAgewogICAgICAgICBpZiAodGhpcy5f
dG9nZ2xlRm9ybWF0U291cmNlQnV0dG9uLnRvZ2dsZWQpCi0gICAgICAgICAgICB1aVNvdXJjZUNv
ZGUuc2V0Rm9ybWF0dGVkKHRydWUpOworICAgICAgICAgICAgdWlTb3VyY2VDb2RlLnNldEZvcm1h
dHRlZCh0cnVlLCB0aGlzLl91aVNvdXJjZUNvZGVGb3JtYXR0ZWQuYmluZCh0aGlzLCB1aVNvdXJj
ZUNvZGUpKTsKIAogICAgICAgICB0aGlzLl9uYXZpZ2F0b3IuYWRkVUlTb3VyY2VDb2RlKHVpU291
cmNlQ29kZSk7CiAgICAgICAgIHRoaXMuX2VkaXRvckNvbnRhaW5lci5hZGRVSVNvdXJjZUNvZGUo
dWlTb3VyY2VDb2RlKTsKQEAgLTkyOCwxMiArOTI4LDE4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB2aWV3LnJlcGxhY2VBbGxXaXRoKHF1ZXJ5LCB0
ZXh0KTsKICAgICB9LAogCisgICAgX3VpU291cmNlQ29kZUZvcm1hdHRlZDogZnVuY3Rpb24odWlT
b3VyY2VDb2RlKQorICAgIHsKKyAgICAgICAgaWYgKHVpU291cmNlQ29kZSBpbnN0YW5jZW9mIFdl
Ykluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmJy
ZWFrcG9pbnRNYW5hZ2VyLnJlc3RvcmVCcmVha3BvaW50cyh1aVNvdXJjZUNvZGUpOworICAgIH0s
CisKICAgICBfdG9nZ2xlRm9ybWF0U291cmNlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0
aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VCdXR0b24udG9nZ2xlZCA9ICF0aGlzLl90b2dnbGVGb3Jt
YXRTb3VyY2VCdXR0b24udG9nZ2xlZDsKICAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSB0aGlz
Ll93b3Jrc3BhY2UudWlTb3VyY2VDb2RlcygpOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHVpU291cmNlQ29kZXMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB1aVNvdXJjZUNvZGVzW2ld
LnNldEZvcm1hdHRlZCh0aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VCdXR0b24udG9nZ2xlZCk7Cisg
ICAgICAgICAgICB1aVNvdXJjZUNvZGVzW2ldLnNldEZvcm1hdHRlZCh0cnVlLCB0aGlzLl91aVNv
dXJjZUNvZGVGb3JtYXR0ZWQuYmluZCh0aGlzLCB1aVNvdXJjZUNvZGVzW2ldKSk7CiAgICAgfSwK
IAogICAgIGFkZFRvV2F0Y2g6IGZ1bmN0aW9uKGV4cHJlc3Npb24pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NuaXBwZXRKYXZhU2NyaXB0U291cmNlRnJh
bWUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NuaXBwZXRKYXZhU2Ny
aXB0U291cmNlRnJhbWUuanMKaW5kZXggNTg3ZGQ3YmIxM2YxNDFkYzc4Mzg4OTg4NjFhYzhkMWY4
ODkxNDFiMi4uNjg5NzY2MTllM2EyMGNjYWYyYmI2NTYyNTc4ZDQzNDYxZDY4MWFkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0SmF2YVNjcmlw
dFNvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U25pcHBldEphdmFTY3JpcHRTb3VyY2VGcmFtZS5qcwpAQCAtNTQsNyArNTQsNyBAQCBXZWJJbnNw
ZWN0b3IuU25pcHBldEphdmFTY3JpcHRTb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAKICAgICBf
cnVuQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fc25pcHBl
dEphdmFTY3JpcHRTb3VyY2UuZXZhbHVhdGUoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNjcmlw
dFNuaXBwZXRNb2RlbC5ldmFsdWF0ZVNjcmlwdFNuaXBwZXQodGhpcy5fc25pcHBldEphdmFTY3Jp
cHRTb3VyY2UpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TdHlsZVNvdXJjZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU3R5bGVTb3VyY2UuanMKaW5kZXggNGQyMWY1MThhN2NiMmRmN2ZiYTRiODZhNDVj
YTk3MjUyNDVhZWMzZC4uYzJmNmIzZDM1MzhmMjBhYTFlOTcyMjEzYWU1OGJlOTVlZjZlOTFjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZVNvdXJj
ZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlU291cmNl
LmpzCkBAIC00MCwxNCArNDAsNiBAQCBXZWJJbnNwZWN0b3IuU3R5bGVTb3VyY2UudXBkYXRlVGlt
ZW91dCA9IDIwMDsKIAogV2ViSW5zcGVjdG9yLlN0eWxlU291cmNlLnByb3RvdHlwZSA9IHsKICAg
ICAvKioKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAqLwotICAgIGlzRWRpdGFibGU6
IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0sCi0KLSAgICAv
KioKICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9zdHJpbmcpfSBjYWxsYmFjawogICAgICAqLwog
ICAgIHdvcmtpbmdDb3B5Q29tbWl0dGVkOiBmdW5jdGlvbihjYWxsYmFjaykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKaW5kZXggNDdj
OGMzNDI1ZWM5OGRjMDI1Mzc0YzM2ODkyOGJhMmRhNjBjZWY0NC4uZTcyMmE2YTY4NDMzNjA5YmVi
MmQ4OGEwMzMxNWJjOTNlNzYyZmJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKQEAgLTM2LDEzICszNiwxNSBAQAogICogQHBh
cmFtIHtzdHJpbmd9IHVybAogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2V9IHJlc291
cmNlCiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5Db250ZW50UHJvdmlkZXJ9IGNvbnRlbnRQcm92
aWRlcgorICogQHBhcmFtIHtib29sZWFuPX0gcmVhZE9ubHkKICAqLwotV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZSA9IGZ1bmN0aW9uKHVybCwgcmVzb3VyY2UsIGNvbnRlbnRQcm92aWRlcikKK1dl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGUgPSBmdW5jdGlvbih1cmwsIHJlc291cmNlLCBjb250ZW50
UHJvdmlkZXIsIHJlYWRPbmx5KQogewogICAgIHRoaXMuX3VybCA9IHVybDsKICAgICB0aGlzLl9y
ZXNvdXJjZSA9IHJlc291cmNlOwogICAgIHRoaXMuX3BhcnNlZFVSTCA9IG5ldyBXZWJJbnNwZWN0
b3IuUGFyc2VkVVJMKHVybCk7CiAgICAgdGhpcy5fY29udGVudFByb3ZpZGVyID0gY29udGVudFBy
b3ZpZGVyOworICAgIHRoaXMuX3JlYWRPbmx5ID0gcmVhZE9ubHkgfHwgZmFsc2U7CiAgICAgdGhp
cy5pc0NvbnRlbnRTY3JpcHQgPSBmYWxzZTsKICAgICAvKioKICAgICAgKiBAdHlwZSBBcnJheS48
ZnVuY3Rpb24oP3N0cmluZyxib29sZWFuLHN0cmluZyk+CkBAIC0yNDUsOSArMjQ3LDkgQEAgV2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHJl
dHVybiB7Ym9vbGVhbn0KICAgICAgKi8KLSAgICBpc0VkaXRhYmxlOiBmdW5jdGlvbigpCisgICAg
aXNSZWFkT25seTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXR1cm4gdGhpcy5fcmVhZE9ubHk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzQyLDcg
KzM0NCw5IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlID0gewogICAgICAq
LwogICAgIHNlYXJjaEluQ29udGVudDogZnVuY3Rpb24ocXVlcnksIGNhc2VTZW5zaXRpdmUsIGlz
UmVnZXgsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdGhpcy5fY29udGVudFByb3ZpZGVyLnNl
YXJjaEluQ29udGVudChxdWVyeSwgY2FzZVNlbnNpdGl2ZSwgaXNSZWdleCwgY2FsbGJhY2spOwor
ICAgICAgICB2YXIgY29udGVudCA9IHRoaXMuY29udGVudCgpOworICAgICAgICB2YXIgcHJvdmlk
ZXIgPSBjb250ZW50ID8gbmV3IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJvdmlkZXIodGhp
cy5fY29udGVudFByb3ZpZGVyLmNvbnRlbnRUeXBlKCksIGNvbnRlbnQpIDogdGhpcy5fY29udGVu
dFByb3ZpZGVyOworICAgICAgICBwcm92aWRlci5zZWFyY2hJbkNvbnRlbnQocXVlcnksIGNhc2VT
ZW5zaXRpdmUsIGlzUmVnZXgsIGNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0zNjIs
OCArMzY2LDE2IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgY2FsbGJhY2tzW2ldKGNvbnRlbnQsIGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlwZSk7
CiAKICAgICAgICAgaWYgKHRoaXMuX2Zvcm1hdE9uTG9hZCkgeworICAgICAgICAgICAgZnVuY3Rp
b24gZm9ybWF0dGVkQ2FsbGJhY2soKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fcGVuZGluZ0Zvcm1hdHRlZENhbGxiYWNrcy5sZW5ndGg7
ICsraSkKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGVuZGluZ0Zvcm1hdHRlZENhbGxiYWNr
cygpOworICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wZW5kaW5nRm9ybWF0dGVkQ2FsbGJh
Y2tzOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBkZWxl
dGUgdGhpcy5fZm9ybWF0T25Mb2FkOwotICAgICAgICAgICAgdGhpcy5zZXRGb3JtYXR0ZWQodHJ1
ZSk7CisgICAgICAgICAgICB0aGlzLnNldEZvcm1hdHRlZCh0cnVlLCBmb3JtYXR0ZWRDYWxsYmFj
ayk7CiAgICAgICAgIH0KICAgICB9LAogCkBAIC00NzgsOCArNDkwLDEwIEBAIFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgY2FsbGJhY2sgPSBj
YWxsYmFjayB8fCBmdW5jdGlvbigpIHt9OwogICAgICAgICBpZiAoIXRoaXMuY29udGVudExvYWRl
ZCgpKSB7CisgICAgICAgICAgICBpZiAoIXRoaXMuX3BlbmRpbmdGb3JtYXR0ZWRDYWxsYmFja3Mp
CisgICAgICAgICAgICAgICAgdGhpcy5fcGVuZGluZ0Zvcm1hdHRlZENhbGxiYWNrcyA9IFtdOwor
ICAgICAgICAgICAgdGhpcy5fcGVuZGluZ0Zvcm1hdHRlZENhbGxiYWNrcy5wdXNoKGNhbGxiYWNr
KTsKICAgICAgICAgICAgIHRoaXMuX2Zvcm1hdE9uTG9hZCA9IGZvcm1hdHRlZDsKLSAgICAgICAg
ICAgIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtNTIy
LDcgKzUzNiw2IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl90b2dnbGluZ0Zvcm1hdHRlcjsKICAgICAgICAgICAg
ICAgICB0aGlzLl9mb3JtYXR0ZXJNYXBwaW5nID0gZm9ybWF0dGVyTWFwcGluZzsKICAgICAgICAg
ICAgICAgICB0aGlzLnVwZGF0ZUxpdmVMb2NhdGlvbnMoKTsKLSAgICAgICAgICAgICAgICB0aGlz
LmZvcm1hdHRlZENoYW5nZWQoKTsKICAgICAgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CkBAIC01NDMsMTAgKzU1Niw2IEBAIFdlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGUucHJvdG90eXBlID0gewogICAgIHNldFNvdXJjZU1hcHBpbmc6IGZ1bmN0aW9uKHNv
dXJjZU1hcHBpbmcpCiAgICAgewogICAgICAgICB0aGlzLl9zb3VyY2VNYXBwaW5nID0gc291cmNl
TWFwcGluZzsKLSAgICB9LAotCi0gICAgZm9ybWF0dGVkQ2hhbmdlZDogZnVuY3Rpb24oKQotICAg
IHsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkZWI2NTkyOWI3NTcwMTZhMTc0Zjg3MjUxYzk4MDc0YzVk
NzZhMTMyLi5hYmIyYjhjZTg1MTM0N2JkODYxMmM1YjZkNGMyYjYxNDM3OTExMDBlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTItMDktMTkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUHJlcGFyZSBVSVNvdXJjZUNvZGUg
dG8gdHJhbnNmb3JtYXRpb24gaW50byBGaWxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTcxMTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0
LmpzOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWctZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9uZXR3b3JrLXVpc291cmNl
Y29kZS1wcm92aWRlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbDoKKwogMjAxMi0wOS0xOSAgSm9j
aGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1d
IFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9uIGZvciBpbmRleGVkZGIgdGVzdCB0aGF0IGlzIGN1cnJl
bnRseSBvbmx5IHJ1biB1c2luZyBjb250ZW50X2Jyb3dzZXJ0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcwppbmRleCAwOGIzYjU3
NDY0ZjQwYWViYjU3YTI2MzY4OTdkZGEyOWI3NzM0OTdmLi45OWFjZDM4Y2Y0MzA1YmRjYTU5ZWVh
YjBmNzM5MzAzZDc2NjY1MjUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcwpAQCAtNTMsNyArNTMsNyBAQCBJbnNwZWN0b3JUZXN0
LmR1bXBVSVNvdXJjZUNvZGUgPSBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGNhbGxiYWNrKQogICAg
IHZhciB1cmwgPSB1aVNvdXJjZUNvZGUudXJsLnJlcGxhY2UoLy4qTGF5b3V0VGVzdHMvLCAiTGF5
b3V0VGVzdHMiKTsKICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiVUlTb3VyY2VDb2RlOiAi
ICsgdXJsKTsKICAgICBpZiAodWlTb3VyY2VDb2RlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkph
dmFTY3JpcHRTb3VyY2UpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlVJU291
cmNlQ29kZSBpcyBlZGl0YWJsZTogIiArIHVpU291cmNlQ29kZS5faXNFZGl0YWJsZSk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJVSVNvdXJjZUNvZGUgY29udGVudCB0eXBlOiAi
ICsgdWlTb3VyY2VDb2RlLmNvbnRlbnRUeXBlKCkpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiAiICsgdWlTb3VyY2VDb2Rl
LmlzQ29udGVudFNjcmlwdCk7CiAgICAgfQogICAgIHVpU291cmNlQ29kZS5yZXF1ZXN0Q29udGVu
dChkaWRSZXF1ZXN0Q29udGVudCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvZHluYW1pYy1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0CmluZGV4IDUy
ODVmMjJjN2Q4YWJjODk2NDk1NzM5ZDlmMzg2YWYyMDkxYTVmOTcuLjgyMWNiYzA1M2MyMmZmMjM1
NGNlZTUzODY2NDA4MWU1MDRhMzE2NjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0CkBA
IC0xMCwxMyArMTAsMTMgQEAgSXMgYW5vbnltb3VzOmZhbHNlCiBJcyBpbmxpbmUgc2NyaXB0OmZh
bHNlCiBEdW1waW5nIHVpU291cmNlQ29kZXM6CiBVSVNvdXJjZUNvZGU6IExheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9keW5hbWljLXNjcmlwdC10YWcuaHRtbCAoMSkKLVVJU291cmNlQ29k
ZSBpcyBlZGl0YWJsZTogdHJ1ZQorVUlTb3VyY2VDb2RlIGNvbnRlbnQgdHlwZTogc2NyaXB0CiBV
SVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCiBNaW1lIHR5cGU6IHRleHQvamF2
YXNjcmlwdAogVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IGZ1bmN0aW9uIGZvbygpIHsgfQogVUkgcmVz
b3VyY2U6IG51bGwKIFVJU291cmNlQ29kZTogTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2R5bmFtaWMtc2NyaXB0LXRhZy5odG1sICgyKQotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0
cnVlCitVSVNvdXJjZUNvZGUgY29udGVudCB0eXBlOiBzY3JpcHQKIFVJU291cmNlQ29kZSBpcyBj
b250ZW50IHNjcmlwdDogZmFsc2UKIE1pbWUgdHlwZTogdGV4dC9qYXZhc2NyaXB0CiBVSVNvdXJj
ZUNvZGUgY29udGVudDogZnVuY3Rpb24gYmFyKCkgeyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvbmV0d29yay11aXNvdXJjZWNvZGUtcHJvdmlkZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL25ldHdvcmstdWlzb3VyY2Vj
b2RlLXByb3ZpZGVyLWV4cGVjdGVkLnR4dAppbmRleCA5ZWIxYmU1YzQ2ODRkM2I2YWU5ZGNjNDY3
Yjc4YzlkYzBkMjBhMDg3Li41NmM5NTU5NTc5YWJmOTRiZDkyNmM2N2NjM2RjNGU2N2RjZDBkMzg0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbmV0d29yay11aXNv
dXJjZWNvZGUtcHJvdmlkZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9uZXR3b3JrLXVpc291cmNlY29kZS1wcm92aWRlci1leHBlY3RlZC50eHQKQEAg
LTQsNyArNCw3IEBAIFRlc3RzIE5ldHdvcmtVSVNvdXJjZUNvZGVQcm92aWRlciBjbGFzcy4KIFJ1
bm5pbmc6IHRlc3REb2N1bWVudFJlc291cmNlCiBDcmVhdGluZyByZXNvdXJjZS4KIFVJU291cmNl
Q29kZTogaHR0cDovL2Zha2UudXJsLzEKLVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UK
K1VJU291cmNlQ29kZSBjb250ZW50IHR5cGU6IGRvY3VtZW50CiBVSVNvdXJjZUNvZGUgaXMgY29u
dGVudCBzY3JpcHQ6IGZhbHNlCiBNaW1lIHR5cGU6IHRleHQvaHRtbAogVUlTb3VyY2VDb2RlIGNv
bnRlbnQ6IDxkb2N1bWVudCByZXNvdXJjZSBjb250ZW50PgpAQCAtMTIsNyArMTIsNyBAQCBVSVNv
dXJjZUNvZGUgY29udGVudDogPGRvY3VtZW50IHJlc291cmNlIGNvbnRlbnQ+CiBSdW5uaW5nOiB0
ZXN0U2NyaXB0UmVzb3VyY2UKIENyZWF0aW5nIHJlc291cmNlLgogVUlTb3VyY2VDb2RlOiBodHRw
Oi8vZmFrZS51cmwvMgotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVlCitVSVNvdXJjZUNv
ZGUgY29udGVudCB0eXBlOiBzY3JpcHQKIFVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDog
ZmFsc2UKIE1pbWUgdHlwZTogdGV4dC9qYXZhc2NyaXB0CiBVSVNvdXJjZUNvZGUgY29udGVudDog
PHNjcmlwdCByZXNvdXJjZSBjb250ZW50PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZS1zY3JpcHQtbWFwcGluZy1leHBlY3Rl
ZC50eHQKaW5kZXggYWZhOWMyMTE2ZjhhMzViZjY4NzA5YTU1MThkNDY0NDBjNWU2MzY4My4uNjA4
NmY3MzQzODFmMWQyNmE3MzM4MDA2ZDhhNTllYjFkZTEwMGE4OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlLXNjcmlwdC1tYXBwaW5nLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Utc2NyaXB0
LW1hcHBpbmctZXhwZWN0ZWQudHh0CkBAIC00LDEzICs0LDEzIEBAIFRlc3RzIFJlc291cmNlU2Ny
aXB0TWFwcGluZyBjbGFzcy4KIFJ1bm5pbmc6IHRlc3RTY3JpcHRXaXRoUGVuZGluZ1Jlc291cmNl
CiBBZGRpbmcgc2NyaXB0IGZvciBwZW5kaW5nIHJlcXVlc3QuCiBVSVNvdXJjZUNvZGU6IGZvby5q
cwotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVlCitVSVNvdXJjZUNvZGUgY29udGVudCB0
eXBlOiBzY3JpcHQKIFVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogdHJ1ZQogTWltZSB0
eXBlOiB0ZXh0L2phdmFzY3JpcHQKIFVJU291cmNlQ29kZSBjb250ZW50OiA8Y29udGVudCBzY3Jp
cHQgc291cmNlPgogQWRkaW5nIHVpU291cmNlQ29kZSBmb3IgZmluaXNoZWQgcmVzb3VyY2UuCiBV
SVNvdXJjZUNvZGU6IGZvby5qcwotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVlCitVSVNv
dXJjZUNvZGUgY29udGVudCB0eXBlOiBzY3JpcHQKIFVJU291cmNlQ29kZSBpcyBjb250ZW50IHNj
cmlwdDogdHJ1ZQogTWltZSB0eXBlOiB0ZXh0L2phdmFzY3JpcHQKIFVJU291cmNlQ29kZSBjb250
ZW50OiA8Y29udGVudCBzY3JpcHQgcmVzb3VyY2UgY29udGVudD4KQEAgLTE4LDEzICsxOCwxMyBA
QCBVSVNvdXJjZUNvZGUgY29udGVudDogPGNvbnRlbnQgc2NyaXB0IHJlc291cmNlIGNvbnRlbnQ+
CiBSdW5uaW5nOiB0ZXN0U2NyaXB0V2l0aEZpbmlzaGVkUmVzb3VyY2UKIEFkZGluZyB1aVNvdXJj
ZUNvZGUgZm9yIGZpbmlzaGVkIHJlc291cmNlLgogVUlTb3VyY2VDb2RlOiBmb28uanMKLVVJU291
cmNlQ29kZSBpcyBlZGl0YWJsZTogdHJ1ZQorVUlTb3VyY2VDb2RlIGNvbnRlbnQgdHlwZTogc2Ny
aXB0CiBVSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCiBNaW1lIHR5cGU6IHRl
eHQvamF2YXNjcmlwdAogVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxzY3JpcHQgcmVzb3VyY2UgY29u
dGVudD4KIEFkZGluZyBzY3JpcHQgZm9yIGZpbmlzaGVkIHJlcXVlc3QuCiBVSVNvdXJjZUNvZGU6
IGZvby5qcwotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiB0cnVlCitVSVNvdXJjZUNvZGUgY29u
dGVudCB0eXBlOiBzY3JpcHQKIFVJU291cmNlQ29kZSBpcyBjb250ZW50IHNjcmlwdDogZmFsc2UK
IE1pbWUgdHlwZTogdGV4dC9qYXZhc2NyaXB0CiBVSVNvdXJjZUNvZGUgY29udGVudDogPHNjcmlw
dCByZXNvdXJjZSBjb250ZW50PgpAQCAtMzIsMTkgKzMyLDE5IEBAIFVJU291cmNlQ29kZSBjb250
ZW50OiA8c2NyaXB0IHJlc291cmNlIGNvbnRlbnQ+CiBSdW5uaW5nOiB0ZXN0SFRNTFdpdGhQZW5k
aW5nUmVzb3VyY2UKIEFkZGluZyBmaXJzdCBzY3JpcHQgZm9yIHBlbmRpbmcgcmVxdWVzdC4KIFVJ
U291cmNlQ29kZTogaW5kZXguaHRtbAotVUlTb3VyY2VDb2RlIGlzIGVkaXRhYmxlOiBmYWxzZQor
VUlTb3VyY2VDb2RlIGNvbnRlbnQgdHlwZTogZG9jdW1lbnQKIFVJU291cmNlQ29kZSBpcyBjb250
ZW50IHNjcmlwdDogZmFsc2UKIE1pbWUgdHlwZTogdGV4dC9odG1sCiBVSVNvdXJjZUNvZGUgY29u
dGVudDogICA8c2NyaXB0PjxzY3JpcHQgc291cmNlIDE+PC9zY3JpcHQ+CiBBZGRpbmcgc2Vjb25k
IHNjcmlwdCBmb3IgcGVuZGluZyByZXF1ZXN0LgogVUlTb3VyY2VDb2RlOiBpbmRleC5odG1sCi1V
SVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNlCitVSVNvdXJjZUNvZGUgY29udGVudCB0eXBl
OiBkb2N1bWVudAogVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBmYWxzZQogTWltZSB0
eXBlOiB0ZXh0L2h0bWwKIFVJU291cmNlQ29kZSBjb250ZW50OiAgIDxzY3JpcHQ+PHNjcmlwdCBz
b3VyY2UgMT48L3NjcmlwdD4gPHNjcmlwdD48c2NyaXB0IHNvdXJjZSAyPjwvc2NyaXB0PgogQWRk
aW5nIHVpU291cmNlQ29kZSBmb3IgZmluaXNoZWQgcmVzb3VyY2UuCiBVSVNvdXJjZUNvZGU6IGlu
ZGV4Lmh0bWwKLVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UKK1VJU291cmNlQ29kZSBj
b250ZW50IHR5cGU6IGRvY3VtZW50CiBVSVNvdXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZh
bHNlCiBNaW1lIHR5cGU6IHRleHQvaHRtbAogVUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxyZXNvdXJj
ZSBjb250ZW50PgpAQCAtNTIsMTkgKzUyLDE5IEBAIFVJU291cmNlQ29kZSBjb250ZW50OiA8cmVz
b3VyY2UgY29udGVudD4KIFJ1bm5pbmc6IHRlc3RIVE1MV2l0aEZpbmlzaGVkUmVzb3VyY2UKIEFk
ZGluZyB1aVNvdXJjZUNvZGUgZm9yIGZpbmlzaGVkIHJlc291cmNlLgogVUlTb3VyY2VDb2RlOiBp
bmRleC5odG1sCi1VSVNvdXJjZUNvZGUgaXMgZWRpdGFibGU6IGZhbHNlCitVSVNvdXJjZUNvZGUg
Y29udGVudCB0eXBlOiBkb2N1bWVudAogVUlTb3VyY2VDb2RlIGlzIGNvbnRlbnQgc2NyaXB0OiBm
YWxzZQogTWltZSB0eXBlOiB0ZXh0L2h0bWwKIFVJU291cmNlQ29kZSBjb250ZW50OiA8cmVzb3Vy
Y2UgY29udGVudD4KIEFkZGluZyBmaXJzdCBzY3JpcHQgZm9yIGZpbmlzaGVkIHJlcXVlc3QuCiBV
SVNvdXJjZUNvZGU6IGluZGV4Lmh0bWwKLVVJU291cmNlQ29kZSBpcyBlZGl0YWJsZTogZmFsc2UK
K1VJU291cmNlQ29kZSBjb250ZW50IHR5cGU6IGRvY3VtZW50CiBVSVNvdXJjZUNvZGUgaXMgY29u
dGVudCBzY3JpcHQ6IGZhbHNlCiBNaW1lIHR5cGU6IHRleHQvaHRtbAogVUlTb3VyY2VDb2RlIGNv
bnRlbnQ6IDxyZXNvdXJjZSBjb250ZW50PgogQWRkaW5nIHNlY29uZCBzY3JpcHQgZm9yIGZpbmlz
aGVkIHJlcXVlc3QuCiBVSVNvdXJjZUNvZGU6IGluZGV4Lmh0bWwKLVVJU291cmNlQ29kZSBpcyBl
ZGl0YWJsZTogZmFsc2UKK1VJU291cmNlQ29kZSBjb250ZW50IHR5cGU6IGRvY3VtZW50CiBVSVNv
dXJjZUNvZGUgaXMgY29udGVudCBzY3JpcHQ6IGZhbHNlCiBNaW1lIHR5cGU6IHRleHQvaHRtbAog
VUlTb3VyY2VDb2RlIGNvbnRlbnQ6IDxyZXNvdXJjZSBjb250ZW50PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1zbmlwcGV0LW1vZGVsLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbApp
bmRleCBlYmQ4OTk2YTQxNTYyYzkzYmQ2OGQxYzE5MTA0MTZlMDQ4YjIzYTNlLi5kMzlmZTg2OTM5
YWM5NzU4YjA0MjQ0OTIwOTRlNDZhNzU2NWI1OGNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LXNuaXBwZXQtbW9kZWwuaHRtbApAQCAtNjks
NyArNjksNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLkNvbnNvbGVWaWV3LnByb3RvdHlwZSwgIl9wcmludFJl
c3VsdCIsIGR1bXBSZXN1bHQpOwogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zY3JpcHRT
bmlwcGV0TW9kZWwuZXZhbHVhdGVTY3JpcHRTbmlwcGV0KHNuaXBwZXRKYXZhU2NyaXB0U291cmNl
KTsKICAgICAgICAgICAgICAgICB2YXIgZXZhbHVhdGlvblNvdXJjZVVSTCA9IFdlYkluc3BlY3Rv
ci5zY3JpcHRTbmlwcGV0TW9kZWwuX2V2YWx1YXRpb25Tb3VyY2VVUkwoc25pcHBldEphdmFTY3Jp
cHRTb3VyY2UpOwotICAgICAgICAgICAgICAgIHZhciBzbmlwcGV0SWQgPSBzbmlwcGV0SmF2YVNj
cmlwdFNvdXJjZS5zbmlwcGV0SWQ7CisgICAgICAgICAgICAgICAgdmFyIHNuaXBwZXRJZCA9IFdl
Ykluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwuX3NuaXBwZXRJZEZvckphdmFTY3JpcHRTb3Vy
Y2UuZ2V0KHNuaXBwZXRKYXZhU2NyaXB0U291cmNlKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiTGFzdCBldmFsdWF0aW9uIHNvdXJjZSB1cmwgZm9yIHNuaXBwZXQ6
ICIgKyBldmFsdWF0aW9uU291cmNlVVJMKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscyhzbmlwcGV0SWQsIFdlYkluc3BlY3Rvci5zY3JpcHRTbmlwcGV0TW9kZWwu
X3NuaXBwZXRJZEZvclNvdXJjZVVSTChldmFsdWF0aW9uU291cmNlVVJMKSwgIlNuaXBwZXQgY2Fu
IG5vdCBiZSBpZGVudGlmaWVkIGJ5IGl0cyBldmFsdWF0aW9uIHNvdXJjZVVSTC4iKTsKIAo=
</data>
<flag name="review"
          id="176611"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>