<?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>86858</bug_id>
          
          <creation_ts>2012-05-18 08:46:15 -0700</creation_ts>
          <short_desc>Web Inspector: Annotate CSSStyleModel.js for the closure compiler</short_desc>
          <delta_ts>2012-05-21 03:43:32 -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="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</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>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>627726</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-05-18 08:46:15 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627790</commentid>
    <comment_count>1</comment_count>
      <attachid>142732</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-05-18 10:23:05 -0700</bug_when>
    <thetext>Created attachment 142732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628936</commentid>
    <comment_count>2</comment_count>
      <attachid>142732</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-21 03:43:28 -0700</bug_when>
    <thetext>Comment on attachment 142732
Patch

Clearing flags on attachment: 142732

Committed r117755: &lt;http://trac.webkit.org/changeset/117755&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628937</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-21 03:43:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142732</attachid>
            <date>2012-05-18 10:23:05 -0700</date>
            <delta_ts>2012-05-21 03:43:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86858-20120518212303.patch</filename>
            <type>text/plain</type>
            <size>21454</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAzZDU2Y2IwYjEwNzQ3
YjBmZDVkMzNjMWQ2OWU5NjliNDc2M2E0ZC4uMDlhNjY5OGMyYjc0YjFlZmI0MzM1OTdmMDhlMjZj
ZDBkMjUxOGZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDEyLTA1LTE4ICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQW5ub3RhdGUgQ1NTU3R5bGVNb2RlbC5qcyBmb3IgdGhlIGNsb3N1cmUgY29tcGlsZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2ODU4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVEZWNsYXJhdGlvbi5wYXJzZUNvbXB1dGVkU3R5bGVQYXlsb2FkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5uZXdCbGFua1Byb3BlcnR5
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5p
bnNlcnRQcm9wZXJ0eUF0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wYXJz
ZVBheWxvYWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5z
ZXRUZXh0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0
RGlzYWJsZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQucHJvdG90eXBl
LnNldFRleHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWxSZXNvdXJjZUJp
bmRpbmcucHJvdG90eXBlLl9pbm5lclNldENvbnRlbnQuY2FsbGJhY2tXcmFwcGVyKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZS5f
aW5uZXJTZXRDb250ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsUmVz
b3VyY2VCaW5kaW5nLnByb3RvdHlwZS5fbG9hZFN0eWxlU2hlZXRIZWFkZXJzKToKKworMjAxMi0w
NS0xOCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IGVtcHR5IENTUyBEZWNsYXJhdGlvbiBpcyBnZW5lcmF0ZWQgYnkgY2xp
Y2tpbmcgdGhlIGxlZnQgc3BhY2Ugb2YgJ3VzZXIgYWdlbnQgc3R5bGVzaGVldCcgb24gU3R5bGVz
IHNpZGViYXIgb2YgRWxlbWVudHMgcGFuZWwKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2ODUwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwppbmRleCAxYzU2NWI1ODBkZDg4ZDVlMTNk
ZDBmYTVlZGJlZjA2ZGM5MmI3MWQ2Li42NjRmNmVlZmM4MTYxZGRmYTQ2ZWYzZWI3ZGEzN2U5MzRk
MDUxN2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NT
U1N0eWxlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
U1NTdHlsZU1vZGVsLmpzCkBAIC00Miw2ICs0Miw5IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1v
ZGVsID0gZnVuY3Rpb24oKQogICAgIENTU0FnZW50LmVuYWJsZSgpOwogfQogCisvKioKKyAqIEBw
YXJhbSB7QXJyYXkuPENTU0FnZW50LkNTU1J1bGU+fSBydWxlQXJyYXkKKyAqLwogV2ViSW5zcGVj
dG9yLkNTU1N0eWxlTW9kZWwucGFyc2VSdWxlQXJyYXlQYXlsb2FkID0gZnVuY3Rpb24ocnVsZUFy
cmF5KQogewogICAgIHZhciByZXN1bHQgPSBbXTsKQEAgLTE2OCw3ICsxNzEsNyBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8qKgogICAgICAgICAg
KiBAcGFyYW0ge0RPTUFnZW50Lk5vZGVJZH0gbm9kZUlkCiAgICAgICAgICAqIEBwYXJhbSB7ZnVu
Y3Rpb24oV2ViSW5zcGVjdG9yLkNTU1J1bGUsIGJvb2xlYW4pfSBzdWNjZXNzQ2FsbGJhY2sKLSAg
ICAgICAgICogQHBhcmFtIHsqfSBydWxlUGF5bG9hZAorICAgICAgICAgKiBAcGFyYW0ge0NTU0Fn
ZW50LkNTU1J1bGV9IHJ1bGVQYXlsb2FkCiAgICAgICAgICAqIEBwYXJhbSB7P0FycmF5LjxET01B
Z2VudC5Ob2RlSWQ+fSBzZWxlY3RlZE5vZGVJZHMKICAgICAgICAgICovCiAgICAgICAgIGZ1bmN0
aW9uIGNoZWNrQWZmZWN0c0NhbGxiYWNrKG5vZGVJZCwgc3VjY2Vzc0NhbGxiYWNrLCBydWxlUGF5
bG9hZCwgc2VsZWN0ZWROb2RlSWRzKQpAQCAtMTg2LDcgKzE4OSw3IEBAIFdlYkluc3BlY3Rvci5D
U1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICogQHBhcmFtIHtmdW5jdGlvbigp
fSBmYWlsdXJlQ2FsbGJhY2sKICAgICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVy
cm9yCiAgICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdTZWxlY3RvcgotICAgICAgICAgKiBA
cGFyYW0geyo9fSBydWxlUGF5bG9hZAorICAgICAgICAgKiBAcGFyYW0gez9DU1NBZ2VudC5DU1NS
dWxlfSBydWxlUGF5bG9hZAogICAgICAgICAgKi8KICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2so
bm9kZUlkLCBzdWNjZXNzQ2FsbGJhY2ssIGZhaWx1cmVDYWxsYmFjaywgbmV3U2VsZWN0b3IsIGVy
cm9yLCBydWxlUGF5bG9hZCkKICAgICAgICAgewpAQCAtMjE1LDYgKzIxOCwxMiBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgYWRkUnVsZTog
ZnVuY3Rpb24obm9kZUlkLCBzZWxlY3Rvciwgc3VjY2Vzc0NhbGxiYWNrLCBmYWlsdXJlQ2FsbGJh
Y2spCiAgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHtET01BZ2VudC5Ob2Rl
SWR9IG5vZGVJZAorICAgICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5DU1NS
dWxlLCBib29sZWFuKX0gc3VjY2Vzc0NhbGxiYWNrCisgICAgICAgICAqIEBwYXJhbSB7Q1NTQWdl
bnQuQ1NTUnVsZX0gcnVsZVBheWxvYWQKKyAgICAgICAgICogQHBhcmFtIHs/QXJyYXkuPERPTUFn
ZW50Lk5vZGVJZD59IHNlbGVjdGVkTm9kZUlkcworICAgICAgICAgKi8KICAgICAgICAgZnVuY3Rp
b24gY2hlY2tBZmZlY3RzQ2FsbGJhY2sobm9kZUlkLCBzdWNjZXNzQ2FsbGJhY2ssIHJ1bGVQYXls
b2FkLCBzZWxlY3RlZE5vZGVJZHMpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICghc2VsZWN0
ZWROb2RlSWRzKQpAQCAtMjU3LDYgKzI2Niw5IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLk1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKTsK
ICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtET01BZ2VudC5Ob2RlSWR9IG5vZGVJ
ZAorICAgICAqLwogICAgIF9vd25lckRvY3VtZW50SWQ6IGZ1bmN0aW9uKG5vZGVJZCkKICAgICB7
CiAgICAgICAgIHZhciBub2RlID0gV2ViSW5zcGVjdG9yLmRvbUFnZW50Lm5vZGVGb3JJZChub2Rl
SWQpOwpAQCAtMjY1LDYgKzI3Nyw5IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgcmV0dXJuIG5vZGUub3duZXJEb2N1bWVudCA/IG5vZGUub3duZXJE
b2N1bWVudC5pZCA6IG51bGw7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7Q1NT
QWdlbnQuU3R5bGVTaGVldElkfSBzdHlsZVNoZWV0SWQKKyAgICAgKi8KICAgICBfZmlyZVN0eWxl
U2hlZXRDaGFuZ2VkOiBmdW5jdGlvbihzdHlsZVNoZWV0SWQpCiAgICAgewogICAgICAgICBpZiAo
IXRoaXMuX3BlbmRpbmdDb21tYW5kc01ham9yU3RhdGUubGVuZ3RoKQpAQCAtMjc4LDYgKzI5Mywx
MiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLkV2
ZW50cy5TdHlsZVNoZWV0Q2hhbmdlZCwgeyBzdHlsZVNoZWV0SWQ6IHN0eWxlU2hlZXRJZCwgbWFq
b3JDaGFuZ2U6IG1ham9yQ2hhbmdlIH0pOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge0NTU0FnZW50LlN0eWxlU2hlZXRJZH0gc3R5bGVTaGVldElkCisgICAgICogQHBhcmFtIHtz
dHJpbmd9IG5ld1RleHQKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG1ham9yQ2hhbmdlCisgICAg
ICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gdXNlckNhbGxiYWNrCisgICAgICovCiAgICAg
c2V0U3R5bGVTaGVldFRleHQ6IGZ1bmN0aW9uKHN0eWxlU2hlZXRJZCwgbmV3VGV4dCwgbWFqb3JD
aGFuZ2UsIHVzZXJDYWxsYmFjaykKICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVy
cm9yKQpAQCAtMzA4LDcgKzMyOSw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3Rv
dHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKIAogLyoqCiAg
KiBAY29uc3RydWN0b3IKLSAqIEBwYXJhbSB7Kn0gcGF5bG9hZAorICogQHBhcmFtIHtDU1NBZ2Vu
dC5DU1NTdHlsZX0gcGF5bG9hZAogICovCiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlv
biA9IGZ1bmN0aW9uKHBheWxvYWQpCiB7CkBAIC0zNTEsNiArMzcyLDEwIEBAIFdlYkluc3BlY3Rv
ci5DU1NTdHlsZURlY2xhcmF0aW9uID0gZnVuY3Rpb24ocGF5bG9hZCkKICAgICAgICAgdGhpcy5j
c3NUZXh0ID0gcGF5bG9hZC5jc3NUZXh0OwogfQogCisvKioKKyAqIEBwYXJhbSB7QXJyYXkuPENT
U0FnZW50LlNob3J0aGFuZEVudHJ5Pn0gc2hvcnRoYW5kRW50cmllcworICogQHJldHVybiB7T2Jq
ZWN0fQorICovCiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5idWlsZFNob3J0aGFu
ZFZhbHVlTWFwID0gZnVuY3Rpb24oc2hvcnRoYW5kRW50cmllcykKIHsKICAgICB2YXIgcmVzdWx0
ID0ge307CkBAIC0zNTksMTQgKzM4NCwyMiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJh
dGlvbi5idWlsZFNob3J0aGFuZFZhbHVlTWFwID0gZnVuY3Rpb24oc2hvcnRoYW5kRW50cgogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKKy8qKgorICogQHBhcmFtIHtDU1NBZ2VudC5DU1NTdHlsZX0g
cGF5bG9hZAorICogQHJldHVybiB7V2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb259Cisg
Ki8KIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnBhcnNlUGF5bG9hZCA9IGZ1bmN0
aW9uKHBheWxvYWQpCiB7CiAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNs
YXJhdGlvbihwYXlsb2FkKTsKIH0KIAorLyoqCisgKiBAcGFyYW0ge0FycmF5LjxDU1NBZ2VudC5D
U1NDb21wdXRlZFN0eWxlUHJvcGVydHk+fSBwYXlsb2FkCisgKiBAcmV0dXJuIHtXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbn0KKyAqLwogV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFy
YXRpb24ucGFyc2VDb21wdXRlZFN0eWxlUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQpCiB7Ci0g
ICAgdmFyIG5ld1BheWxvYWQgPSB7IGNzc1Byb3BlcnRpZXM6IFtdLCBzaG9ydGhhbmRFbnRyaWVz
OiBbXSwgd2lkdGg6ICIiLCBoZWlnaHQ6ICIiIH07CisgICAgdmFyIG5ld1BheWxvYWQgPSAvKiog
QHR5cGUge0NTU0FnZW50LkNTU1N0eWxlfSAqLyB7IGNzc1Byb3BlcnRpZXM6IFtdLCBzaG9ydGhh
bmRFbnRyaWVzOiBbXSwgd2lkdGg6ICIiLCBoZWlnaHQ6ICIiIH07CiAgICAgaWYgKHBheWxvYWQp
CiAgICAgICAgIG5ld1BheWxvYWQuY3NzUHJvcGVydGllcyA9IHBheWxvYWQ7CiAKQEAgLTM3OSwz
NSArNDEyLDU4IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZSA9
IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2FsbFByb3BlcnRpZXM7CiAgICAgfSwKIAorICAgIC8q
KgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCisgICAgICogQHJldHVybiB7V2ViSW5zcGVj
dG9yLkNTU1Byb3BlcnR5fHVuZGVmaW5lZH0KKyAgICAgKi8KICAgICBnZXRMaXZlUHJvcGVydHk6
IGZ1bmN0aW9uKG5hbWUpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5fbGl2ZVByb3BlcnR5
TWFwW25hbWVdOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFt
ZQorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KICAgICBnZXRQcm9wZXJ0eVZhbHVl
OiBmdW5jdGlvbihuYW1lKQogICAgIHsKICAgICAgICAgdmFyIHByb3BlcnR5ID0gdGhpcy5fbGl2
ZVByb3BlcnR5TWFwW25hbWVdOwogICAgICAgICByZXR1cm4gcHJvcGVydHkgPyBwcm9wZXJ0eS52
YWx1ZSA6ICIiOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFt
ZQorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KICAgICBnZXRQcm9wZXJ0eVByaW9y
aXR5OiBmdW5jdGlvbihuYW1lKQogICAgIHsKICAgICAgICAgdmFyIHByb3BlcnR5ID0gdGhpcy5f
bGl2ZVByb3BlcnR5TWFwW25hbWVdOwogICAgICAgICByZXR1cm4gcHJvcGVydHkgPyBwcm9wZXJ0
eS5wcmlvcml0eSA6ICIiOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gbmFtZQorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KICAgICBnZXRQcm9wZXJ0
eVNob3J0aGFuZDogZnVuY3Rpb24obmFtZSkKICAgICB7CiAgICAgICAgIHZhciBwcm9wZXJ0eSA9
IHRoaXMuX2xpdmVQcm9wZXJ0eU1hcFtuYW1lXTsKICAgICAgICAgcmV0dXJuIHByb3BlcnR5ID8g
cHJvcGVydHkuc2hvcnRoYW5kIDogIiI7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBuYW1lCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKi8KICAgICBp
c1Byb3BlcnR5SW1wbGljaXQ6IGZ1bmN0aW9uKG5hbWUpCiAgICAgewogICAgICAgICB2YXIgcHJv
cGVydHkgPSB0aGlzLl9saXZlUHJvcGVydHlNYXBbbmFtZV07CiAgICAgICAgIHJldHVybiBwcm9w
ZXJ0eSA/IHByb3BlcnR5LmltcGxpY2l0IDogIiI7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAq
IEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KICAgICBzdHlsZVRleHRXaXRoU2hvcnRoYW5kczog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIGNzc1RleHQgPSAiIjsKQEAgLTQzOSwxNyAr
NDk1LDI5IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgcmV0dXJuIGNzc1RleHQ7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBuYW1lCisgICAgICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5DU1NQ
cm9wZXJ0eT59CisgICAgICovCiAgICAgZ2V0TG9uZ2hhbmRQcm9wZXJ0aWVzOiBmdW5jdGlvbihu
YW1lKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2xvbmdoYW5kUHJvcGVydGllc1tuYW1l
XSB8fCBbXTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHNob3J0
aGFuZFByb3BlcnR5CisgICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLwogICAgIGdldFNo
b3J0aGFuZFZhbHVlOiBmdW5jdGlvbihzaG9ydGhhbmRQcm9wZXJ0eSkKICAgICB7CiAgICAgICAg
IHZhciBwcm9wZXJ0eSA9IHRoaXMuZ2V0TGl2ZVByb3BlcnR5KHNob3J0aGFuZFByb3BlcnR5KTsK
ICAgICAgICAgcmV0dXJuIHByb3BlcnR5ID8gcHJvcGVydHkudmFsdWUgOiB0aGlzLl9zaG9ydGhh
bmRWYWx1ZXNbc2hvcnRoYW5kUHJvcGVydHldOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge3N0cmluZ30gc2hvcnRoYW5kUHJvcGVydHkKKyAgICAgKiBAcmV0dXJuIHs/c3RyaW5n
fQorICAgICAqLwogICAgIGdldFNob3J0aGFuZFByaW9yaXR5OiBmdW5jdGlvbihzaG9ydGhhbmRQ
cm9wZXJ0eSkKICAgICB7CiAgICAgICAgIHZhciBwcmlvcml0eSA9IHRoaXMuZ2V0UHJvcGVydHlQ
cmlvcml0eShzaG9ydGhhbmRQcm9wZXJ0eSk7CkBAIC00NjAsMTEgKzUyOCwxOCBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiBs
b25naGFuZHMgPyB0aGlzLmdldFByb3BlcnR5UHJpb3JpdHkobG9uZ2hhbmRzWzBdKSA6IG51bGw7
CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAorICAgICAq
IEByZXR1cm4gez9XZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHl9CisgICAgICovCiAgICAgcHJvcGVy
dHlBdDogZnVuY3Rpb24oaW5kZXgpCiAgICAgewogICAgICAgICByZXR1cm4gKGluZGV4IDwgdGhp
cy5hbGxQcm9wZXJ0aWVzLmxlbmd0aCkgPyB0aGlzLmFsbFByb3BlcnRpZXNbaW5kZXhdIDogbnVs
bDsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHJldHVybiB7bnVtYmVyfQorICAgICAqLwog
ICAgIHBhc3RMYXN0U291cmNlUHJvcGVydHlJbmRleDogZnVuY3Rpb24oKQogICAgIHsKICAgICAg
ICAgZm9yICh2YXIgaSA9IHRoaXMuYWxsUHJvcGVydGllcy5sZW5ndGggLSAxOyBpID49IDA7IC0t
aSkgewpAQCAtNDgxLDExICs1NTYsMjIgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRp
b24ucHJvdG90eXBlID0gewogICAgIG5ld0JsYW5rUHJvcGVydHk6IGZ1bmN0aW9uKGluZGV4KQog
ICAgIHsKICAgICAgICAgaW5kZXggPSAodHlwZW9mIGluZGV4ID09PSAidW5kZWZpbmVkIikgPyB0
aGlzLnBhc3RMYXN0U291cmNlUHJvcGVydHlJbmRleCgpIDogaW5kZXg7Ci0gICAgICAgIHJldHVy
biBuZXcgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5KHRoaXMsIGluZGV4LCAiIiwgIiIsICIiLCAi
YWN0aXZlIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCAiIik7CisgICAgICAgIHJldHVybiBuZXcgV2Vi
SW5zcGVjdG9yLkNTU1Byb3BlcnR5KHRoaXMsIGluZGV4LCAiIiwgIiIsICIiLCAiYWN0aXZlIiwg
dHJ1ZSwgZmFsc2UsICIiLCAiIik7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7
bnVtYmVyfSBpbmRleAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCisgICAgICogQHBhcmFt
IHtzdHJpbmd9IHZhbHVlCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/V2ViSW5zcGVjdG9yLkNT
U1N0eWxlRGVjbGFyYXRpb24pfSB1c2VyQ2FsbGJhY2sKKyAgICAgKi8KICAgICBpbnNlcnRQcm9w
ZXJ0eUF0OiBmdW5jdGlvbihpbmRleCwgbmFtZSwgdmFsdWUsIHVzZXJDYWxsYmFjaykKICAgICB7
CisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9XZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVEZWNsYXJhdGlvbil9IHVzZXJDYWxsYmFjaworICAgICAgICAgKiBAcGFyYW0gez9z
dHJpbmd9IGVycm9yCisgICAgICAgICAqIEBwYXJhbSB7Q1NTQWdlbnQuQ1NTU3R5bGV9IHBheWxv
YWQKKyAgICAgICAgICovCiAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHVzZXJDYWxsYmFjaywg
ZXJyb3IsIHBheWxvYWQpCiAgICAgICAgIHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NN
b2RlbC5fcGVuZGluZ0NvbW1hbmRzTWFqb3JTdGF0ZS5wb3AoKTsKQEAgLTUwMCwxMCArNTg2LDE4
IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCisgICAgICAgIGlmICghdGhpcy5pZCkKKyAgICAgICAgICAg
IHRocm93ICJObyBzdHlsZSBpZCI7CisKICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLl9w
ZW5kaW5nQ29tbWFuZHNNYWpvclN0YXRlLnB1c2godHJ1ZSk7CiAgICAgICAgIENTU0FnZW50LnNl
dFByb3BlcnR5VGV4dCh0aGlzLmlkLCBpbmRleCwgbmFtZSArICI6ICIgKyB2YWx1ZSArICI7Iiwg
ZmFsc2UsIGNhbGxiYWNrLmJpbmQodGhpcywgdXNlckNhbGxiYWNrKSk7CiAgICAgfSwKIAorICAg
IC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCisgICAgICogQHBhcmFtIHtzdHJpbmd9
IHZhbHVlCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/V2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVj
bGFyYXRpb24pfSB1c2VyQ2FsbGJhY2sKKyAgICAgKi8KICAgICBhcHBlbmRQcm9wZXJ0eTogZnVu
Y3Rpb24obmFtZSwgdmFsdWUsIHVzZXJDYWxsYmFjaykKICAgICB7CiAgICAgICAgIHRoaXMuaW5z
ZXJ0UHJvcGVydHlBdCh0aGlzLmFsbFByb3BlcnRpZXMubGVuZ3RoLCBuYW1lLCB2YWx1ZSwgdXNl
ckNhbGxiYWNrKTsKQEAgLTUxMiw2ICs2MDYsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNs
YXJhdGlvbi5wcm90b3R5cGUgPSB7CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0g
e0NTU0FnZW50LkNTU1J1bGV9IHBheWxvYWQKICAqLwogV2ViSW5zcGVjdG9yLkNTU1J1bGUgPSBm
dW5jdGlvbihwYXlsb2FkKQogewpAQCAtNTI3LDYgKzYyMiwxMCBAQCBXZWJJbnNwZWN0b3IuQ1NT
UnVsZSA9IGZ1bmN0aW9uKHBheWxvYWQpCiAgICAgICAgIHRoaXMubWVkaWEgPSBXZWJJbnNwZWN0
b3IuQ1NTTWVkaWEucGFyc2VNZWRpYUFycmF5UGF5bG9hZChwYXlsb2FkLm1lZGlhKTsKIH0KIAor
LyoqCisgKiBAcGFyYW0ge0NTU0FnZW50LkNTU1J1bGV9IHBheWxvYWQKKyAqIEByZXR1cm4ge1dl
Ykluc3BlY3Rvci5DU1NSdWxlfQorICovCiBXZWJJbnNwZWN0b3IuQ1NTUnVsZS5wYXJzZVBheWxv
YWQgPSBmdW5jdGlvbihwYXlsb2FkKQogewogICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkNT
U1J1bGUocGF5bG9hZCk7CkBAIC01NTYsNiArNjU1LDE2IEBAIFdlYkluc3BlY3Rvci5DU1NSdWxl
LnByb3RvdHlwZSA9IHsKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7P1dlYklu
c3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9ufSBvd25lclN0eWxlCisgKiBAcGFyYW0ge251bWJl
cn0gaW5kZXgKKyAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCisgKiBAcGFyYW0ge3N0cmluZ30gdmFs
dWUKKyAqIEBwYXJhbSB7P3N0cmluZ30gcHJpb3JpdHkKKyAqIEBwYXJhbSB7c3RyaW5nfSBzdGF0
dXMKKyAqIEBwYXJhbSB7Ym9vbGVhbn0gcGFyc2VkT2sKKyAqIEBwYXJhbSB7Ym9vbGVhbn0gaW1w
bGljaXQKKyAqIEBwYXJhbSB7c3RyaW5nfSBzaG9ydGhhbmQKKyAqIEBwYXJhbSB7P3N0cmluZz19
IHRleHQKICAqLwogV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5ID0gZnVuY3Rpb24ob3duZXJTdHls
ZSwgaW5kZXgsIG5hbWUsIHZhbHVlLCBwcmlvcml0eSwgc3RhdHVzLCBwYXJzZWRPaywgaW1wbGlj
aXQsIHNob3J0aGFuZCwgdGV4dCkKIHsKQEAgLTU3MSw2ICs2ODAsMTIgQEAgV2ViSW5zcGVjdG9y
LkNTU1Byb3BlcnR5ID0gZnVuY3Rpb24ob3duZXJTdHlsZSwgaW5kZXgsIG5hbWUsIHZhbHVlLCBw
cmlvcml0eSwgc3QKICAgICB0aGlzLnRleHQgPSB0ZXh0OwogfQogCisvKioKKyAqIEBwYXJhbSB7
P1dlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9ufSBvd25lclN0eWxlCisgKiBAcGFyYW0g
e251bWJlcn0gaW5kZXgKKyAqIEBwYXJhbSB7Q1NTQWdlbnQuQ1NTUHJvcGVydHl9IHBheWxvYWQK
KyAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eX0KKyAqLwogV2ViSW5zcGVjdG9y
LkNTU1Byb3BlcnR5LnBhcnNlUGF5bG9hZCA9IGZ1bmN0aW9uKG93bmVyU3R5bGUsIGluZGV4LCBw
YXlsb2FkKQogewogICAgIC8vIFRoZSBmb2xsb3dpbmcgZGVmYXVsdCBmaWVsZCB2YWx1ZXMgYXJl
IHVzZWQgaW4gdGhlIHBheWxvYWQ6CkBAIC01ODAsNyArNjk1LDcgQEAgV2ViSW5zcGVjdG9yLkNT
U1Byb3BlcnR5LnBhcnNlUGF5bG9hZCA9IGZ1bmN0aW9uKG93bmVyU3R5bGUsIGluZGV4LCBwYXls
b2FkKQogICAgIC8vIHN0YXR1czogInN0eWxlIgogICAgIC8vIHNob3J0aGFuZE5hbWU6ICIiCiAg
ICAgdmFyIHJlc3VsdCA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkoCi0gICAgICAgIG93
bmVyU3R5bGUsIGluZGV4LCBwYXlsb2FkLm5hbWUsIHBheWxvYWQudmFsdWUsIHBheWxvYWQucHJp
b3JpdHkgfHwgIiIsIHBheWxvYWQuc3RhdHVzIHx8ICJzdHlsZSIsICgicGFyc2VkT2siIGluIHBh
eWxvYWQpID8gcGF5bG9hZC5wYXJzZWRPayA6IHRydWUsICEhcGF5bG9hZC5pbXBsaWNpdCwgcGF5
bG9hZC5zaG9ydGhhbmROYW1lIHx8ICIiLCBwYXlsb2FkLnRleHQpOworICAgICAgICBvd25lclN0
eWxlLCBpbmRleCwgcGF5bG9hZC5uYW1lLCBwYXlsb2FkLnZhbHVlLCBwYXlsb2FkLnByaW9yaXR5
IHx8ICIiLCBwYXlsb2FkLnN0YXR1cyB8fCAic3R5bGUiLCAoInBhcnNlZE9rIiBpbiBwYXlsb2Fk
KSA/ICEhcGF5bG9hZC5wYXJzZWRPayA6IHRydWUsICEhcGF5bG9hZC5pbXBsaWNpdCwgcGF5bG9h
ZC5zaG9ydGhhbmROYW1lIHx8ICIiLCBwYXlsb2FkLnRleHQpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKQEAgLTYyNiwxNiArNzQxLDIzIEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90
b3R5cGUgPSB7CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHByb3BlcnR5VGV4dAogICAgICAqIEBw
YXJhbSB7Ym9vbGVhbn0gbWFqb3JDaGFuZ2UKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG92ZXJ3
cml0ZQotICAgICAqIEBwYXJhbSB7RnVuY3Rpb249fSB1c2VyQ2FsbGJhY2sKKyAgICAgKiBAcGFy
YW0ge2Z1bmN0aW9uKD9XZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbik9fSB1c2VyQ2Fs
bGJhY2sKICAgICAgKi8KICAgICBzZXRUZXh0OiBmdW5jdGlvbihwcm9wZXJ0eVRleHQsIG1ham9y
Q2hhbmdlLCBvdmVyd3JpdGUsIHVzZXJDYWxsYmFjaykKICAgICB7CisgICAgICAgIC8qKgorICAg
ICAgICAgKiBAcGFyYW0gez9XZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbn0gc3R5bGUK
KyAgICAgICAgICovCiAgICAgICAgIGZ1bmN0aW9uIGVuYWJsZWRDYWxsYmFjayhzdHlsZSkKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKHVzZXJDYWxsYmFjaykKICAgICAgICAgICAgICAgICB1
c2VyQ2FsbGJhY2soc3R5bGUpOwogICAgICAgICB9CiAKKyAgICAgICAgLyoqCisgICAgICAgICAq
IEBwYXJhbSB7P3N0cmluZ30gZXJyb3IKKyAgICAgICAgICogQHBhcmFtIHs/Q1NTQWdlbnQuQ1NT
U3R5bGV9IHN0eWxlUGF5bG9hZAorICAgICAgICAgKi8KICAgICAgICAgZnVuY3Rpb24gY2FsbGJh
Y2soZXJyb3IsIHN0eWxlUGF5bG9hZCkKICAgICAgICAgewogICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmNzc01vZGVsLl9wZW5kaW5nQ29tbWFuZHNNYWpvclN0YXRlLnBvcCgpOwpAQCAtNjYyLDYg
Kzc4NCw5IEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUgPSB7CiAgICAgICAg
IGlmICghdGhpcy5vd25lclN0eWxlKQogICAgICAgICAgICAgdGhyb3cgIk5vIG93bmVyU3R5bGUg
Zm9yIHByb3BlcnR5IjsKIAorICAgICAgICBpZiAoIXRoaXMub3duZXJTdHlsZS5pZCkKKyAgICAg
ICAgICAgIHRocm93ICJObyBvd25lciBzdHlsZSBpZCI7CisKICAgICAgICAgLy8gQW4gaW5kZXgg
cGFzdCBhbGwgdGhlIHByb3BlcnRpZXMgYWRkcyBhIG5ldyBwcm9wZXJ0eSB0byB0aGUgc3R5bGUu
CiAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5fcGVuZGluZ0NvbW1hbmRzTWFqb3JTdGF0
ZS5wdXNoKG1ham9yQ2hhbmdlKTsKICAgICAgICAgQ1NTQWdlbnQuc2V0UHJvcGVydHlUZXh0KHRo
aXMub3duZXJTdHlsZS5pZCwgdGhpcy5pbmRleCwgcHJvcGVydHlUZXh0LCBvdmVyd3JpdGUsIGNh
bGxiYWNrLmJpbmQodGhpcykpOwpAQCAtNjcxLDcgKzc5Niw3IEBAIFdlYkluc3BlY3Rvci5DU1NQ
cm9wZXJ0eS5wcm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZhbHVlCiAg
ICAgICogQHBhcmFtIHtib29sZWFufSBtYWpvckNoYW5nZQogICAgICAqIEBwYXJhbSB7Ym9vbGVh
bn0gb3ZlcndyaXRlCi0gICAgICogQHBhcmFtIHtGdW5jdGlvbj19IHVzZXJDYWxsYmFjaworICAg
ICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1dlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uKT19
IHVzZXJDYWxsYmFjawogICAgICAqLwogICAgIHNldFZhbHVlOiBmdW5jdGlvbihuZXdWYWx1ZSwg
bWFqb3JDaGFuZ2UsIG92ZXJ3cml0ZSwgdXNlckNhbGxiYWNrKQogICAgIHsKQEAgLTY3OSw2ICs4
MDQsMTAgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5zZXRUZXh0KHRleHQsIG1ham9yQ2hhbmdlLCBvdmVyd3JpdGUsIHVzZXJDYWxsYmFjayk7
CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZGlzYWJsZWQKKyAg
ICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9XZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbik9
fSB1c2VyQ2FsbGJhY2sKKyAgICAgKi8KICAgICBzZXREaXNhYmxlZDogZnVuY3Rpb24oZGlzYWJs
ZWQsIHVzZXJDYWxsYmFjaykKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5vd25lclN0eWxlICYm
IHVzZXJDYWxsYmFjaykKQEAgLTY4Niw2ICs4MTUsMTAgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3Bl
cnR5LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKGRpc2FibGVkID09PSB0aGlzLmRpc2FibGVk
ICYmIHVzZXJDYWxsYmFjaykKICAgICAgICAgICAgIHVzZXJDYWxsYmFjayh0aGlzLm93bmVyU3R5
bGUpOwogCisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0gez9zdHJpbmd9IGVycm9yCisg
ICAgICAgICAqIEBwYXJhbSB7Q1NTQWdlbnQuQ1NTU3R5bGV9IHN0eWxlUGF5bG9hZAorICAgICAg
ICAgKi8KICAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHN0eWxlUGF5bG9hZCkKICAg
ICAgICAgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLl9wZW5kaW5nQ29tbWFu
ZHNNYWpvclN0YXRlLnBvcCgpOwpAQCAtNzAxLDYgKzgzNCw5IEBAIFdlYkluc3BlY3Rvci5DU1NQ
cm9wZXJ0eS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAorICAgICAg
ICBpZiAoIXRoaXMub3duZXJTdHlsZS5pZCkKKyAgICAgICAgICAgIHRocm93ICJObyBvd25lciBz
dHlsZSBpZCI7CisKICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLl9wZW5kaW5nQ29tbWFu
ZHNNYWpvclN0YXRlLnB1c2goZmFsc2UpOwogICAgICAgICBDU1NBZ2VudC50b2dnbGVQcm9wZXJ0
eSh0aGlzLm93bmVyU3R5bGUuaWQsIHRoaXMuaW5kZXgsIGRpc2FibGVkLCBjYWxsYmFjay5iaW5k
KHRoaXMpKTsKICAgICB9CkBAIC03MDgsNyArODQ0LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3Bl
cnR5LnByb3RvdHlwZSA9IHsKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKLSAqIEBwYXJhbSB7Kn0g
cGF5bG9hZAorICogQHBhcmFtIHtDU1NBZ2VudC5DU1NNZWRpYX0gcGF5bG9hZAogICovCiBXZWJJ
bnNwZWN0b3IuQ1NTTWVkaWEgPSBmdW5jdGlvbihwYXlsb2FkKQogewpAQCAtNzI1LDExICs4NjEs
MTkgQEAgV2ViSW5zcGVjdG9yLkNTU01lZGlhLlNvdXJjZSA9IHsKICAgICBJTVBPUlRfUlVMRTog
ImltcG9ydFJ1bGUiCiB9OwogCisvKioKKyAqIEBwYXJhbSB7Q1NTQWdlbnQuQ1NTTWVkaWF9IHBh
eWxvYWQKKyAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5DU1NNZWRpYX0KKyAqLwogV2ViSW5zcGVj
dG9yLkNTU01lZGlhLnBhcnNlUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQpCiB7CiAgICAgcmV0
dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ1NTTWVkaWEocGF5bG9hZCk7CiB9CiAKKy8qKgorICogQHBh
cmFtIHtBcnJheS48Q1NTQWdlbnQuQ1NTTWVkaWE+fSBwYXlsb2FkCisgKiBAcmV0dXJuIHtBcnJh
eS48V2ViSW5zcGVjdG9yLkNTU01lZGlhPn0KKyAqLwogV2ViSW5zcGVjdG9yLkNTU01lZGlhLnBh
cnNlTWVkaWFBcnJheVBheWxvYWQgPSBmdW5jdGlvbihwYXlsb2FkKQogewogICAgIHZhciByZXN1
bHQgPSBbXTsKQEAgLTc0MCw2ICs4ODQsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTTWVkaWEucGFyc2VN
ZWRpYUFycmF5UGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQpCiAKIC8qKgogICogQGNvbnN0cnVj
dG9yCisgKiBAcGFyYW0ge0NTU0FnZW50LkNTU1N0eWxlU2hlZXRCb2R5fSBwYXlsb2FkCiAgKi8K
IFdlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0ID0gZnVuY3Rpb24ocGF5bG9hZCkKIHsKQEAgLTc1
Niw4ICs5MDEsMTYgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQgPSBmdW5jdGlvbihwYXls
b2FkKQogICAgICAgICB0aGlzLl90ZXh0ID0gcGF5bG9hZC50ZXh0OwogfQogCisvKioKKyAqIEBw
YXJhbSB7Q1NTQWdlbnQuU3R5bGVTaGVldElkfSBzdHlsZVNoZWV0SWQKKyAqIEBwYXJhbSB7ZnVu
Y3Rpb24oP1dlYkluc3BlY3Rvci5DU1NTdHlsZVNoZWV0KX0gdXNlckNhbGxiYWNrCisgKi8KIFdl
Ykluc3BlY3Rvci5DU1NTdHlsZVNoZWV0LmNyZWF0ZUZvcklkID0gZnVuY3Rpb24oc3R5bGVTaGVl
dElkLCB1c2VyQ2FsbGJhY2spCiB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHs/c3RyaW5nfSBl
cnJvcgorICAgICAqIEBwYXJhbSB7Q1NTQWdlbnQuQ1NTU3R5bGVTaGVldEJvZHl9IHN0eWxlU2hl
ZXRQYXlsb2FkCisgICAgICovCiAgICAgZnVuY3Rpb24gY2FsbGJhY2soZXJyb3IsIHN0eWxlU2hl
ZXRQYXlsb2FkKQogICAgIHsKICAgICAgICAgaWYgKGVycm9yKQpAQCAtNzY5LDEzICs5MjIsMjQg
QEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQuY3JlYXRlRm9ySWQgPSBmdW5jdGlvbihzdHls
ZVNoZWV0SWQsIHVzZXJDYWxsYmFjaykKIH0KIAogV2ViSW5zcGVjdG9yLkNTU1N0eWxlU2hlZXQu
cHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEByZXR1cm4ge3N0cmluZ3x1bmRlZmluZWR9
CisgICAgICovCiAgICAgZ2V0VGV4dDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJu
IHRoaXMuX3RleHQ7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBu
ZXdUZXh0CisgICAgICogQHBhcmFtIHtib29sZWFufSBtYWpvckNoYW5nZQorICAgICAqIEBwYXJh
bSB7ZnVuY3Rpb24oP3N0cmluZyk9fSB1c2VyQ2FsbGJhY2sKKyAgICAgKi8KICAgICBzZXRUZXh0
OiBmdW5jdGlvbihuZXdUZXh0LCBtYWpvckNoYW5nZSwgdXNlckNhbGxiYWNrKQogICAgIHsKKyAg
ICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7P3N0cmluZ30gZXJyb3IKKyAgICAgICAgICov
CiAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yKQogICAgICAgICB7CiAgICAgICAgICAg
ICBpZiAoIWVycm9yKQpAQCAtODA2LDYgKzk3MCwxMiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVN
b2RlbFJlc291cmNlQmluZGluZyA9IGZ1bmN0aW9uKGNzc01vZGVsKQogfQogCiBXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmluZGluZy5wcm90b3R5cGUgPSB7CisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuUmVzb3VyY2V9IHJlc291cmNlCisgICAgICogQHBh
cmFtIHtzdHJpbmd9IGNvbnRlbnQKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IG1ham9yQ2hhbmdl
CisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3RyaW5nKX0gdXNlckNhbGxiYWNrCisgICAgICov
CiAgICAgc2V0Q29udGVudDogZnVuY3Rpb24ocmVzb3VyY2UsIGNvbnRlbnQsIG1ham9yQ2hhbmdl
LCB1c2VyQ2FsbGJhY2spCiAgICAgewogICAgICAgICBpZiAobWFqb3JDaGFuZ2UgJiYgcmVzb3Vy
Y2UudHlwZSA9PT0gV2ViSW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU3R5bGVzaGVldCkKQEAgLTgx
OCwxMSArOTg4LDE3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5n
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fbG9hZFN0eWxlU2hlZXRIZWFkZXJzKHRoaXMu
X2lubmVyU2V0Q29udGVudC5iaW5kKHRoaXMsIHJlc291cmNlLnVybCwgY29udGVudCwgbWFqb3JD
aGFuZ2UsIHVzZXJDYWxsYmFjaykpOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcmV0dXJu
IHtib29sZWFufQorICAgICAqLwogICAgIGNhblNldENvbnRlbnQ6IGZ1bmN0aW9uKCkKICAgICB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAgKi8KICAgICBfaW5zcGVjdGVkVVJMQ2hh
bmdlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICAvLyBNYWluIGZyYW1lIG5hdmln
YXRpb24gLSBjbGVhciBoaXN0b3J5LgpAQCAtODMwLDYgKzEwMDYsMTMgQEAgV2ViSW5zcGVjdG9y
LkNTU1N0eWxlTW9kZWxSZXNvdXJjZUJpbmRpbmcucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
Ll9zdHlsZVNoZWV0SWRUb1VSTCA9IHt9OwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge3N0cmluZ30gdXJsCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQKKyAgICAgKiBA
cGFyYW0ge2Jvb2xlYW59IG1ham9yQ2hhbmdlCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/c3Ry
aW5nKX0gdXNlckNhbGxiYWNrCisgICAgICogQHBhcmFtIHs/c3RyaW5nfSBlcnJvcgorICAgICAq
LwogICAgIF9pbm5lclNldENvbnRlbnQ6IGZ1bmN0aW9uKHVybCwgY29udGVudCwgbWFqb3JDaGFu
Z2UsIHVzZXJDYWxsYmFjaywgZXJyb3IpCiAgICAgewogICAgICAgICBpZiAoZXJyb3IpIHsKQEAg
LTgzOSwyMyArMTAyMiwyOCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmlu
ZGluZy5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdmFyIHN0eWxlU2hlZXRJZCA9IHRoaXMuX3Vy
bFRvU3R5bGVTaGVldElkW3VybF07CiAgICAgICAgIGlmICghc3R5bGVTaGVldElkKSB7Ci0gICAg
ICAgICAgICBpZiAodXNlckNhbGxiYWNrKQotICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFjaygi
Tm8gc3R5bGVzaGVldCBmb3VuZDogIiArIHVybCk7CisgICAgICAgICAgICB1c2VyQ2FsbGJhY2so
Ik5vIHN0eWxlc2hlZXQgZm91bmQ6ICIgKyB1cmwpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKICAgICAgICAgdGhpcy5faXNTZXR0aW5nQ29udGVudCA9IHRydWU7CiAgICAgICAg
IGZ1bmN0aW9uIGNhbGxiYWNrV3JhcHBlcihlcnJvcikKICAgICAgICAgewotICAgICAgICAgICAg
aWYgKHVzZXJDYWxsYmFjaykKLSAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2soZXJyb3IpOwor
ICAgICAgICAgICAgdXNlckNhbGxiYWNrKGVycm9yKTsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9pc1NldHRpbmdDb250ZW50OwogICAgICAgICB9CiAgICAgICAgIHRoaXMuX2Nzc01vZGVsLnNl
dFN0eWxlU2hlZXRUZXh0KHN0eWxlU2hlZXRJZCwgY29udGVudCwgbWFqb3JDaGFuZ2UsIGNhbGxi
YWNrV3JhcHBlci5iaW5kKHRoaXMpKTsKICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFt
IHtmdW5jdGlvbig/c3RyaW5nKX0gY2FsbGJhY2sKKyAgICAgKi8KICAgICBfbG9hZFN0eWxlU2hl
ZXRIZWFkZXJzOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7CisgICAgICAgIC8qKgorICAgICAg
ICAgKiBAcGFyYW0gez9zdHJpbmd9IGVycm9yCisgICAgICAgICAqIEBwYXJhbSB7QXJyYXkuPENT
U0FnZW50LkNTU1N0eWxlU2hlZXRIZWFkZXI+fSBpbmZvcworICAgICAgICAgKi8KICAgICAgICAg
ZnVuY3Rpb24gZGlkR2V0QWxsU3R5bGVTaGVldHMoZXJyb3IsIGluZm9zKQogICAgICAgICB7CiAg
ICAgICAgICAgICBpZiAoZXJyb3IpIHsKQEAgLTg2OCwxMSArMTA1NiwxNCBAQCBXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVNb2RlbFJlc291cmNlQmluZGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgdGhpcy5fdXJsVG9TdHlsZVNoZWV0SWRbaW5mby5zb3VyY2VVUkxdID0gaW5mby5zdHls
ZVNoZWV0SWQ7CiAgICAgICAgICAgICAgICAgdGhpcy5fc3R5bGVTaGVldElkVG9VUkxbaW5mby5z
dHlsZVNoZWV0SWRdID0gaW5mby5zb3VyY2VVUkw7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBjYWxsYmFjaygpOworICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7CiAgICAgICAgIH0KICAg
ICAgICAgQ1NTQWdlbnQuZ2V0QWxsU3R5bGVTaGVldHMoZGlkR2V0QWxsU3R5bGVTaGVldHMuYmlu
ZCh0aGlzKSk7CiAgICAgfSwKIAorICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LkV2ZW50fSBldmVudAorICAgICAqLwogICAgIF9zdHlsZVNoZWV0Q2hhbmdlZDogZnVuY3Rpb24o
ZXZlbnQpCiAgICAgewogICAgICAgICBpZiAodGhpcy5faXNTZXR0aW5nQ29udGVudCkKQEAgLTg4
MSw2ICsxMDcyLDEwIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5n
LnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCFldmVudC5kYXRhLm1ham9yQ2hhbmdlKQogICAg
ICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0gez9zdHJp
bmd9IGVycm9yCisgICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZW50CisgICAgICAgICAq
LwogICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhlcnJvciwgY29udGVudCkKICAgICAgICAgewog
ICAgICAgICAgICAgaWYgKCFlcnJvcikKQEAgLTg4OSw2ICsxMDg0LDEwIEBAIFdlYkluc3BlY3Rv
ci5DU1NTdHlsZU1vZGVsUmVzb3VyY2VCaW5kaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgQ1NT
QWdlbnQuZ2V0U3R5bGVTaGVldFRleHQoZXZlbnQuZGF0YS5zdHlsZVNoZWV0SWQsIGNhbGxiYWNr
LmJpbmQodGhpcykpOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0NTU0FnZW50
LlN0eWxlU2hlZXRJZH0gc3R5bGVTaGVldElkCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbnRl
bnQKKyAgICAgKi8KICAgICBfaW5uZXJTdHlsZVNoZWV0Q2hhbmdlZDogZnVuY3Rpb24oc3R5bGVT
aGVldElkLCBjb250ZW50KQogICAgIHsKICAgICAgICAgZnVuY3Rpb24gc2V0Q29udGVudCgpCkBA
IC05MjgsNiArMTEyNyw5IEBAIFdlYkluc3BlY3Rvci5DU1NEaXNwYXRjaGVyLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fY3NzTW9kZWwubWVkaWFRdWVyeVJlc3VsdENoYW5nZWQoKTsKICAg
ICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtDU1NBZ2VudC5TdHlsZVNoZWV0SWR9IHN0
eWxlU2hlZXRJZAorICAgICAqLwogICAgIHN0eWxlU2hlZXRDaGFuZ2VkOiBmdW5jdGlvbihzdHls
ZVNoZWV0SWQpCiAgICAgewogICAgICAgICB0aGlzLl9jc3NNb2RlbC5fZmlyZVN0eWxlU2hlZXRD
aGFuZ2VkKHN0eWxlU2hlZXRJZCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>