<?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>110863</bug_id>
          
          <creation_ts>2013-02-26 02:33:52 -0800</creation_ts>
          <short_desc>Web Inspector: Migrate IndexedDB support to ResourceTreeModel&apos;s SecurityOriginAdded/Removed events.</short_desc>
          <delta_ts>2013-02-26 06:22:20 -0800</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="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>841822</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-26 02:33:52 -0800</bug_when>
    <thetext>Patch to follow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841824</commentid>
    <comment_count>1</comment_count>
      <attachid>190250</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-26 02:36:08 -0800</bug_when>
    <thetext>Created attachment 190250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841935</commentid>
    <comment_count>2</comment_count>
      <attachid>190250</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-26 06:02:46 -0800</bug_when>
    <thetext>Comment on attachment 190250
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:1371
&gt; +

extra blank line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841943</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-26 06:22:20 -0800</bug_when>
    <thetext>Committed r144052: &lt;http://trac.webkit.org/changeset/144052&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190250</attachid>
            <date>2013-02-26 02:36:08 -0800</date>
            <delta_ts>2013-02-26 06:02:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110863-20130226143222.patch</filename>
            <type>text/plain</type>
            <size>29997</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY2NjU3YTZlYTZlYTMy
M2RlZjA4MDE0MjIzY2QzYjIwZTc0MGU4Yi4uMTQ5OTcwMzZlM2QxMTU2MDZiODJkZWJhZTRlMTI4
NDRjYTFhMGFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAyLTI2ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE1pZ3JhdGUgSW5kZXhlZERCIHN1cHBvcnQgdG8gUmVzb3VyY2VUcmVlTW9kZWwncyBTZWN1
cml0eU9yaWdpbkFkZGVkL1JlbW92ZWQgZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwODYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVjZW50bHkgYWRkZWQgU2VjdXJpdHlPcmlnaW5BZGRl
ZC9SZW1vdmVkIGV2ZW50cyBzdXBwb3J0IHdhcyBlc3NlbnRpYWxseSBkdXBsaWNhdGVkIGluCisg
ICAgICAgIEluZGV4ZWREQk1vZGVsLiBUaGlzIHBhdGNoIG1pZ3JhdGVzIEluZGV4ZWREQiBzdXBw
b3J0IHRvIG5ldyBldmVudHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6
OnJlcXVlc3REYXRhYmFzZU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckluZGV4
ZWREQkFnZW50OjpyZXF1ZXN0RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQ6OnJlcXVlc3REYXRhKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvckluZGV4ZWREQkFnZW50KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luZGV4ZWREQk1vZGVsLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5J
bmRleGVkREJNb2RlbC5wcm90b3R5cGUuX3Jlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5J
bmRleGVkREJNb2RlbC5wcm90b3R5cGUucmVmcmVzaERhdGFiYXNlTmFtZXMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLnByb3RvdHlwZS5fc2VjdXJpdHlPcmlnaW5BZGRl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwucHJvdG90eXBlLl9zZWN1
cml0eU9yaWdpblJlbW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVs
LnByb3RvdHlwZS5fYWRkT3JpZ2luKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbmRleGVkREJN
b2RlbC5wcm90b3R5cGUuX3JlbW92ZU9yaWdpbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW5k
ZXhlZERCTW9kZWwucHJvdG90eXBlLl91cGRhdGVPcmlnaW5EYXRhYmFzZU5hbWVzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5wcm90b3R5cGUuX2xvYWREYXRhYmFzZU5h
bWVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5wcm90b3R5cGUuX2xv
YWREYXRhYmFzZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwucHJvdG90
eXBlLik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwucHJvdG90eXBlLl9y
ZXF1ZXN0RGF0YSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVN
b2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5
cGUuc2VjdXJpdHlPcmlnaW5zKToKKwogMjAxMy0wMi0yNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIDYlIHJlZ3Jlc3Npb24gaW4gaW50bDEgcGFnZSBjeWNsZXIg
b24gY2hyb21pdW0tbWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5k
ZXggZjI3ZjU0YzAzZDQ5NzA1ODM0Mjk4YWViY2MzNjgxMWU1M2FhNzc0Zi4uZmZlYmZhOWQ1ZjI1
NjU0ZmEzNDQwODE2Zjc1ZmNkOTFiNDdlNDQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgpAQCAtMTI4MywxNSArMTI4Myw2IEBACiAgICAgICAgICJoaWRkZW4iOiB0
cnVlLAogICAgICAgICAidHlwZXMiOiBbCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
ImlkIjogIlNlY3VyaXR5T3JpZ2luV2l0aERhdGFiYXNlTmFtZXMiLAotICAgICAgICAgICAgICAg
ICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNlY3Vy
aXR5IG9yaWdpbiB3aXRoIGRhdGFiYXNlIG5hbWVzLiIsCi0gICAgICAgICAgICAgICAgInByb3Bl
cnRpZXMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VjdXJpdHlPcmlnaW4i
LCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU2VjdXJpdHkgb3JpZ2luLiIgfSwK
LSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkYXRhYmFzZU5hbWVzIiwgInR5cGUiOiAi
YXJyYXkiLCAiaXRlbXMiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwgImRlc2NyaXB0aW9uIjogIkRh
dGFiYXNlIG5hbWVzIGZvciB0aGlzIG9yaWdpbi4iIH0KLSAgICAgICAgICAgICAgICBdCi0gICAg
ICAgICAgICB9LAotICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJpZCI6ICJEYXRhYmFz
ZVdpdGhPYmplY3RTdG9yZXMiLAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRhdGFiYXNlIHdpdGggYW4gYXJyYXkgb2Yg
b2JqZWN0IHN0b3Jlcy4iLApAQCAtMTM3NywyMiArMTM2OCwyMyBAQAogICAgICAgICAgICAgICAg
ICJuYW1lIjogImRpc2FibGUiLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEaXNh
YmxlcyBldmVudHMgZnJvbSBiYWNrZW5kLiIKICAgICAgICAgICAgIH0sCisKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJyZXF1ZXN0RGF0YWJhc2VOYW1lc0ZvckZyYW1l
IiwKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJyZXF1ZXN0RGF0YWJhc2VOYW1lcyIsCiAgICAg
ICAgICAgICAgICAgImFzeW5jIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6
IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgIiRyZWYiOiAiTmV0
d29yay5GcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIGlkLiIgfQorICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInNlY3VyaXR5T3JpZ2luIiwgInR5cGUiOiAic3RyaW5nIiwgImRl
c2NyaXB0aW9uIjogIlNlY3VyaXR5IG9yaWdpbi4iIH0KICAgICAgICAgICAgICAgICBdLAogICAg
ICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNlY3VyaXR5T3JpZ2luV2l0aERhdGFiYXNlTmFtZXMiLCAiJHJlZiI6ICJTZWN1cml0eU9yaWdp
bldpdGhEYXRhYmFzZU5hbWVzIiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIHdpdGggZGF0YWJhc2Ug
bmFtZXMuIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YWJhc2VOYW1lcyIs
ICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAidHlwZSI6ICJzdHJpbmciIH0sICJkZXNjcmlw
dGlvbiI6ICJEYXRhYmFzZSBuYW1lcyBmb3Igb3JpZ2luLiIgfQogICAgICAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlcXVlc3RzIGRhdGFiYXNlIG5hbWVz
IGZvciBnaXZlbiBmcmFtZSdzIHNlY3VyaXR5IG9yaWdpbi4iCisgICAgICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIlJlcXVlc3RzIGRhdGFiYXNlIG5hbWVzIGZvciBnaXZlbiBzZWN1cml0eSBv
cmlnaW4uIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAi
bmFtZSI6ICJyZXF1ZXN0RGF0YWJhc2UiLAogICAgICAgICAgICAgICAgICJhc3luYyI6IHRydWUs
CiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZnJhbWVJZCIsICIkcmVmIjogIk5ldHdvcmsuRnJhbWVJZCIsICJkZXNjcmlwdGlv
biI6ICJGcmFtZSBpZC4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VjdXJp
dHlPcmlnaW4iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU2VjdXJpdHkgb3Jp
Z2luLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkYXRhYmFzZU5hbWUiLCAi
dHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiRGF0YWJhc2UgbmFtZS4iIH0KICAgICAg
ICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwpAQCAtMTQwNCw3ICsx
Mzk2LDcgQEAKICAgICAgICAgICAgICAgICAibmFtZSI6ICJyZXF1ZXN0RGF0YSIsCiAgICAgICAg
ICAgICAgICAgImFzeW5jIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
LSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUlkIiwgIiRyZWYiOiAiTmV0d29y
ay5GcmFtZUlkIiwgImRlc2NyaXB0aW9uIjogIkZyYW1lIGlkLiIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJzZWN1cml0eU9yaWdpbiIsICJ0eXBlIjogInN0cmluZyIsICJkZXNj
cmlwdGlvbiI6ICJTZWN1cml0eSBvcmlnaW4uIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImRhdGFiYXNlTmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJE
YXRhYmFzZSBuYW1lLiIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvYmplY3RT
dG9yZU5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiT2JqZWN0IHN0b3Jl
IG5hbWUuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImluZGV4TmFtZSIsICJ0
eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJJbmRleCBuYW1lLCBlbXB0eSBzdHJpbmcg
Zm9yIG9iamVjdCBzdG9yZSBkYXRhIHJlcXVlc3RzLiIgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCmluZGV4IDQ1ZmZlYWMy
NjA0YjljZDA1NTEyYjA0ZGVmNjczY2ExYTE4MjZiMGEuLjU3YzY3MjFiMTJhYTVhYjM5M2U5Nzdk
NjM1OWRiOGU4NjU0OWVlOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtNjgsNyArNjgsNiBAQAogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogdXNpbmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6OkFycmF5OwotdXNp
bmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6OkluZGV4ZWREQjo6U2VjdXJpdHlPcmlnaW5XaXRoRGF0
YWJhc2VOYW1lczsKIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpJbmRleGVkREI6OkRhdGFi
YXNlV2l0aE9iamVjdFN0b3JlczsKIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpJbmRleGVk
REI6OkRhdGFFbnRyeTsKIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpJbmRleGVkREI6Oktl
eTsKQEAgLTc3LDcgKzc2LDcgQEAgdXNpbmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6OkluZGV4ZWRE
Qjo6S2V5UmFuZ2U7CiB1c2luZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6SW5kZXhlZERCOjpPYmpl
Y3RTdG9yZTsKIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpJbmRleGVkREI6Ok9iamVjdFN0
b3JlSW5kZXg7CiAKLXR5cGVkZWYgV2ViQ29yZTo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6
OkluZGV4ZWREQkNvbW1hbmRIYW5kbGVyOjpSZXF1ZXN0RGF0YWJhc2VOYW1lc0ZvckZyYW1lQ2Fs
bGJhY2sgUmVxdWVzdERhdGFiYXNlTmFtZXNGb3JGcmFtZUNhbGxiYWNrOwordHlwZWRlZiBXZWJD
b3JlOjpJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6SW5kZXhlZERCQ29tbWFuZEhhbmRsZXI6
OlJlcXVlc3REYXRhYmFzZU5hbWVzQ2FsbGJhY2sgUmVxdWVzdERhdGFiYXNlTmFtZXNDYWxsYmFj
azsKIHR5cGVkZWYgV2ViQ29yZTo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OkluZGV4ZWRE
QkNvbW1hbmRIYW5kbGVyOjpSZXF1ZXN0RGF0YWJhc2VDYWxsYmFjayBSZXF1ZXN0RGF0YWJhc2VD
YWxsYmFjazsKIHR5cGVkZWYgV2ViQ29yZTo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6Oklu
ZGV4ZWREQkNvbW1hbmRIYW5kbGVyOjpSZXF1ZXN0RGF0YUNhbGxiYWNrIFJlcXVlc3REYXRhQ2Fs
bGJhY2s7CiB0eXBlZGVmIFdlYkNvcmU6Okluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpDYWxs
YmFja0Jhc2UgUmVxdWVzdENhbGxiYWNrOwpAQCAtOTMsNyArOTIsNyBAQCBuYW1lc3BhY2Ugewog
Y2xhc3MgR2V0RGF0YWJhc2VOYW1lc0NhbGxiYWNrIDogcHVibGljIEV2ZW50TGlzdGVuZXIgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdldERhdGFiYXNlTmFtZXNDYWxsYmFjayk7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8R2V0RGF0YWJhc2VOYW1lc0NhbGxiYWNrPiBjcmVh
dGUoUGFzc1JlZlB0cjxSZXF1ZXN0RGF0YWJhc2VOYW1lc0ZvckZyYW1lQ2FsbGJhY2s+IHJlcXVl
c3RDYWxsYmFjaywgY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbikKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxHZXREYXRhYmFzZU5hbWVzQ2FsbGJhY2s+IGNyZWF0ZShQYXNzUmVmUHRyPFJlcXVl
c3REYXRhYmFzZU5hbWVzQ2FsbGJhY2s+IHJlcXVlc3RDYWxsYmFjaywgY29uc3QgU3RyaW5nJiBz
ZWN1cml0eU9yaWdpbikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgR2V0RGF0
YWJhc2VOYW1lc0NhbGxiYWNrKHJlcXVlc3RDYWxsYmFjaywgc2VjdXJpdHlPcmlnaW4pKTsKICAg
ICB9CkBAIC0xMjUsMjMgKzEyNCwyMCBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX3JlcXVlc3RD
YWxsYmFjay0+c2VuZEZhaWx1cmUoIlVuZXhwZWN0ZWQgcmVzdWx0IHR5cGUuIik7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KKwogICAgICAgICBSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
ZGF0YWJhc2VOYW1lc0xpc3QgPSByZXF1ZXN0UmVzdWx0LT5kb21TdHJpbmdMaXN0KCk7CiAgICAg
ICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+IGRhdGFiYXNlTmFtZXMgPSBU
eXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPjo6Y3JlYXRlKCk7CiAgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgZGF0YWJhc2VOYW1lc0xpc3QtPmxlbmd0aCgpOyArK2kpCiAgICAgICAgICAg
ICBkYXRhYmFzZU5hbWVzLT5hZGRJdGVtKGRhdGFiYXNlTmFtZXNMaXN0LT5pdGVtKGkpKTsKLQot
ICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW5XaXRoRGF0YWJhc2VOYW1lcz4gcmVzdWx0ID0g
U2VjdXJpdHlPcmlnaW5XaXRoRGF0YWJhc2VOYW1lczo6Y3JlYXRlKCkKLSAgICAgICAgICAgIC5z
ZXRTZWN1cml0eU9yaWdpbihtX3NlY3VyaXR5T3JpZ2luKQotICAgICAgICAgICAgLnNldERhdGFi
YXNlTmFtZXMoZGF0YWJhc2VOYW1lcyk7Ci0gICAgICAgIG1fcmVxdWVzdENhbGxiYWNrLT5zZW5k
U3VjY2VzcyhyZXN1bHQpOworICAgICAgICBtX3JlcXVlc3RDYWxsYmFjay0+c2VuZFN1Y2Nlc3Mo
ZGF0YWJhc2VOYW1lcy5yZWxlYXNlKCkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBHZXREYXRh
YmFzZU5hbWVzQ2FsbGJhY2soUGFzc1JlZlB0cjxSZXF1ZXN0RGF0YWJhc2VOYW1lc0ZvckZyYW1l
Q2FsbGJhY2s+IHJlcXVlc3RDYWxsYmFjaywgY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbikK
KyAgICBHZXREYXRhYmFzZU5hbWVzQ2FsbGJhY2soUGFzc1JlZlB0cjxSZXF1ZXN0RGF0YWJhc2VO
YW1lc0NhbGxiYWNrPiByZXF1ZXN0Q2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgc2VjdXJpdHlPcmln
aW4pCiAgICAgICAgIDogRXZlbnRMaXN0ZW5lcihFdmVudExpc3RlbmVyOjpDUFBFdmVudExpc3Rl
bmVyVHlwZSkKICAgICAgICAgLCBtX3JlcXVlc3RDYWxsYmFjayhyZXF1ZXN0Q2FsbGJhY2spCiAg
ICAgICAgICwgbV9zZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbikgeyB9Ci0gICAgUmVmUHRy
PFJlcXVlc3REYXRhYmFzZU5hbWVzRm9yRnJhbWVDYWxsYmFjaz4gbV9yZXF1ZXN0Q2FsbGJhY2s7
CisgICAgUmVmUHRyPFJlcXVlc3REYXRhYmFzZU5hbWVzQ2FsbGJhY2s+IG1fcmVxdWVzdENhbGxi
YWNrOwogICAgIFN0cmluZyBtX3NlY3VyaXR5T3JpZ2luOwogfTsKIApAQCAtNTkwLDE2ICs1ODYs
NiBAQCB2b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikK
ICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEluZGV4ZWREQkFnZW50U3RhdGU6OmluZGV4ZWREQkFn
ZW50RW5hYmxlZCwgZmFsc2UpOwogfQogCi1zdGF0aWMgRnJhbWUqIGFzc2VydEZyYW1lKEVycm9y
U3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBJbnNwZWN0b3JQYWdl
QWdlbnQqIHBhZ2VBZ2VudCkKLXsKLSAgICBGcmFtZSogZnJhbWUgPSBwYWdlQWdlbnQtPmZyYW1l
Rm9ySWQoZnJhbWVJZCk7Ci0KLSAgICBpZiAoIWZyYW1lKQotICAgICAgICAqZXJyb3JTdHJpbmcg
PSAiRnJhbWUgbm90IGZvdW5kIjsKLQotICAgIHJldHVybiBmcmFtZTsKLX0KLQogc3RhdGljIERv
Y3VtZW50KiBhc3NlcnREb2N1bWVudChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIEZyYW1lKiBm
cmFtZSkKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZSA/IGZyYW1lLT5kb2N1bWVu
dCgpIDogMDsKQEAgLTYxMCwxNyArNTk2LDYgQEAgc3RhdGljIERvY3VtZW50KiBhc3NlcnREb2N1
bWVudChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIEZyYW1lKiBmcmFtZSkKICAgICByZXR1cm4g
ZG9jdW1lbnQ7CiB9CiAKLXN0YXRpYyBEb2N1bWVudCogYXNzZXJ0RG9jdW1lbnQoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQsIEluc3BlY3RvclBhZ2VBZ2Vu
dCogcGFnZUFnZW50KQotewotICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2VBZ2VudC0+ZnJhbWVGb3JJ
ZChmcmFtZUlkKTsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZSA/IGZyYW1lLT5kb2N1
bWVudCgpIDogMDsKLQotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgICplcnJvclN0cmluZyA9
ICJObyBkb2N1bWVudCBmb3IgZ2l2ZW4gZnJhbWUgZm91bmQiOwotCi0gICAgcmV0dXJuIGRvY3Vt
ZW50OwotfQotCiBzdGF0aWMgSURCRmFjdG9yeSogYXNzZXJ0SURCRmFjdG9yeShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBET01XaW5kb3cqIGRv
bVdpbmRvdyA9IGRvY3VtZW50LT5kb21XaW5kb3coKTsKQEAgLTYzNiw5ICs2MTEsMTAgQEAgc3Rh
dGljIElEQkZhY3RvcnkqIGFzc2VydElEQkZhY3RvcnkoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5n
LCBEb2N1bWVudCogZG9jdW1lbnQKICAgICByZXR1cm4gaWRiRmFjdG9yeTsKIH0KIAotdm9pZCBJ
bnNwZWN0b3JJbmRleGVkREJBZ2VudDo6cmVxdWVzdERhdGFiYXNlTmFtZXNGb3JGcmFtZShFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCwgUGFzc1JlZlB0cjxS
ZXF1ZXN0RGF0YWJhc2VOYW1lc0ZvckZyYW1lQ2FsbGJhY2s+IHJlcXVlc3RDYWxsYmFjaykKK3Zv
aWQgSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQ6OnJlcXVlc3REYXRhYmFzZU5hbWVzKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgUGFzc1JlZlB0
cjxSZXF1ZXN0RGF0YWJhc2VOYW1lc0NhbGxiYWNrPiByZXF1ZXN0Q2FsbGJhY2spCiB7Ci0gICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gYXNzZXJ0RG9jdW1lbnQoZXJyb3JTdHJpbmcsIGZyYW1lSWQs
IG1fcGFnZUFnZW50KTsKKyAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2VBZ2VudC0+ZmluZEZyYW1l
V2l0aFNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKKyAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBhc3NlcnREb2N1bWVudChlcnJvclN0cmluZywgZnJhbWUpOwogICAgIGlmICghZG9jdW1l
bnQpCiAgICAgICAgIHJldHVybjsKICAgICBJREJGYWN0b3J5KiBpZGJGYWN0b3J5ID0gYXNzZXJ0
SURCRmFjdG9yeShlcnJvclN0cmluZywgZG9jdW1lbnQpOwpAQCAtNjYxLDkgKzYzNywxMCBAQCB2
b2lkIEluc3BlY3RvckluZGV4ZWREQkFnZW50OjpyZXF1ZXN0RGF0YWJhc2VOYW1lc0ZvckZyYW1l
KEVycm9yU3RyaW5nKiBlcnJvclN0cgogICAgIGlkYlJlcXVlc3QtPmFkZEV2ZW50TGlzdGVuZXIo
ZXZlbnROYW1lcygpLnN1Y2Nlc3NFdmVudCwgR2V0RGF0YWJhc2VOYW1lc0NhbGxiYWNrOjpjcmVh
dGUocmVxdWVzdENhbGxiYWNrLCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+dG9SYXdTdHJp
bmcoKSksIGZhbHNlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6cmVxdWVz
dERhdGFiYXNlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZUlk
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgUGFzc1JlZlB0cjxSZXF1ZXN0RGF0YWJhc2VD
YWxsYmFjaz4gcmVxdWVzdENhbGxiYWNrKQordm9pZCBJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6
cmVxdWVzdERhdGFiYXNlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBz
ZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIFBhc3NSZWZQdHI8UmVx
dWVzdERhdGFiYXNlQ2FsbGJhY2s+IHJlcXVlc3RDYWxsYmFjaykKIHsKLSAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBhc3NlcnREb2N1bWVudChlcnJvclN0cmluZywgZnJhbWVJZCwgbV9wYWdlQWdl
bnQpOworICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZUFnZW50LT5maW5kRnJhbWVXaXRoU2VjdXJp
dHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4pOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGFzc2Vy
dERvY3VtZW50KGVycm9yU3RyaW5nLCBmcmFtZSk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAg
ICAgcmV0dXJuOwogICAgIElEQkZhY3RvcnkqIGlkYkZhY3RvcnkgPSBhc3NlcnRJREJGYWN0b3J5
KGVycm9yU3RyaW5nLCBkb2N1bWVudCk7CkBAIC02ODEsMTEgKzY1OCw5IEBAIHZvaWQgSW5zcGVj
dG9ySW5kZXhlZERCQWdlbnQ6OnJlcXVlc3REYXRhYmFzZShFcnJvclN0cmluZyogZXJyb3JTdHJp
bmcsIGNvbnN0IFN0CiAgICAgZGF0YWJhc2VMb2FkZXItPnN0YXJ0KGlkYkZhY3RvcnksIGRvY3Vt
ZW50LT5zZWN1cml0eU9yaWdpbigpLCBkYXRhYmFzZU5hbWUpOwogfQogCi12b2lkIEluc3BlY3Rv
ckluZGV4ZWREQkFnZW50OjpyZXF1ZXN0RGF0YShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNv
bnN0IFN0cmluZyYgZnJhbWVJZCwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0
cmluZyYgb2JqZWN0U3RvcmVOYW1lLCBjb25zdCBTdHJpbmcmIGluZGV4TmFtZSwgaW50IHNraXBD
b3VudCwgaW50IHBhZ2VTaXplLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0Pioga2V5UmFu
Z2UsIFBhc3NSZWZQdHI8UmVxdWVzdERhdGFDYWxsYmFjaz4gcmVxdWVzdENhbGxiYWNrKQordm9p
ZCBJbnNwZWN0b3JJbmRleGVkREJBZ2VudDo6cmVxdWVzdERhdGEoRXJyb3JTdHJpbmcqIGVycm9y
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIGRhdGFi
YXNlTmFtZSwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUsIGNvbnN0IFN0cmluZyYgaW5k
ZXhOYW1lLCBpbnQgc2tpcENvdW50LCBpbnQgcGFnZVNpemUsIGNvbnN0IFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+KiBrZXlSYW5nZSwgUGFzc1JlZlB0cjxSZXF1ZXN0RGF0YUNhbGxiYWNrPiByZXF1
ZXN0Q2FsbGJhY2spCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gYXNzZXJ0RnJhbWUoZXJyb3JTdHJp
bmcsIGZyYW1lSWQsIG1fcGFnZUFnZW50KTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1
cm47CisgICAgRnJhbWUqIGZyYW1lID0gbV9wYWdlQWdlbnQtPmZpbmRGcmFtZVdpdGhTZWN1cml0
eU9yaWdpbihzZWN1cml0eU9yaWdpbik7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gYXNzZXJ0
RG9jdW1lbnQoZXJyb3JTdHJpbmcsIGZyYW1lKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRl
eGVkREJBZ2VudC5oCmluZGV4IDgyMmEzMTUyN2U3ZGE5ODZiNTFjMzAxMjliODg0OTlkMDZiMDYw
NGQuLjY5YTA5NjFhYjFiMWZhOGQ1MjE5MGQ1N2Y0MjhmMjU1MDdkNmZjY2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5oCkBAIC01
OCw5ICs1OCw5IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgZnJvbSB0aGUgZnJvbnQtZW5kLgog
ICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlzYWJsZShFcnJvclN0cmluZyopOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGF0YWJhc2VO
YW1lc0ZvckZyYW1lKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkLCBQYXNzUmVm
UHRyPFJlcXVlc3REYXRhYmFzZU5hbWVzRm9yRnJhbWVDYWxsYmFjaz4pOwotICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0RGF0YWJhc2UoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQs
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBQYXNzUmVmUHRyPFJlcXVlc3REYXRhYmFzZUNh
bGxiYWNrPik7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3REYXRhKEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiBmcmFtZUlkLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3Ry
aW5nJiBvYmplY3RTdG9yZU5hbWUsIGNvbnN0IFN0cmluZyYgaW5kZXhOYW1lLCBpbnQgc2tpcENv
dW50LCBpbnQgcGFnZVNpemUsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBrZXlSYW5n
ZSwgUGFzc1JlZlB0cjxSZXF1ZXN0RGF0YUNhbGxiYWNrPik7CisgICAgdmlydHVhbCB2b2lkIHJl
cXVlc3REYXRhYmFzZU5hbWVzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzZWN1cml0eU9y
aWdpbiwgUGFzc1JlZlB0cjxSZXF1ZXN0RGF0YWJhc2VOYW1lc0NhbGxiYWNrPik7CisgICAgdmly
dHVhbCB2b2lkIHJlcXVlc3REYXRhYmFzZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc2Vj
dXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBQYXNzUmVmUHRyPFJlcXVl
c3REYXRhYmFzZUNhbGxiYWNrPik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3REYXRhKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lLCBjb25zdCBTdHJpbmcmIGlu
ZGV4TmFtZSwgaW50IHNraXBDb3VudCwgaW50IHBhZ2VTaXplLCBjb25zdCBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0Pioga2V5UmFuZ2UsIFBhc3NSZWZQdHI8UmVxdWVzdERhdGFDYWxsYmFjaz4pOwog
CiBwcml2YXRlOgogICAgIEluc3BlY3RvckluZGV4ZWREQkFnZW50KEluc3RydW1lbnRpbmdBZ2Vu
dHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciosIElu
c3BlY3RvclBhZ2VBZ2VudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9JbmRleGVkREJNb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvSW5kZXhlZERCTW9kZWwuanMKaW5kZXggNDVkMTQ1ZTQ2ZDI4N2I0YWVjN2JhYzE5
YTVmZTFhNjFkMTU3MWMyMS4uYTUyNTdhMjRiY2JjMzhkYjQ4ZjQ3MjYyOWJmMzBiMTNiMTA5NmFj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmRleGVk
REJNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luZGV4
ZWREQk1vZGVsLmpzCkBAIC0zNiwxNiArMzYsMTIgQEAgV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1v
ZGVsID0gZnVuY3Rpb24oKQogewogICAgIEluZGV4ZWREQkFnZW50LmVuYWJsZSgpOwogCi0gICAg
V2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVBZGRlZCwgdGhpcy5fZnJhbWVO
YXZpZ2F0ZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZy
YW1lTmF2aWdhdGVkLCB0aGlzLl9mcmFtZU5hdmlnYXRlZCwgdGhpcyk7Ci0gICAgV2ViSW5zcGVj
dG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291
cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVEZXRhY2hlZCwgdGhpcy5fZnJhbWVEZXRhY2hl
ZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuU2VjdXJpdHlP
cmlnaW5BZGRlZCwgdGhpcy5fc2VjdXJpdHlPcmlnaW5BZGRlZCwgdGhpcyk7CisgICAgV2ViSW5z
cGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJl
c291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuU2VjdXJpdHlPcmlnaW5SZW1vdmVkLCB0aGlzLl9z
ZWN1cml0eU9yaWdpblJlbW92ZWQsIHRoaXMpOwogCi0gICAgdGhpcy5fZnJhbWVzID0ge307CiAg
ICAgdGhpcy5fZGF0YWJhc2VzID0gbmV3IE1hcCgpOwotICAgIHRoaXMuX2ZyYW1lSWRzQnlTZWN1
cml0eU9yaWdpbiA9IHt9OwogICAgIHRoaXMuX2RhdGFiYXNlTmFtZXNCeVNlY3VyaXR5T3JpZ2lu
ID0ge307Ci0KLSAgICB0aGlzLnJlZnJlc2hEYXRhYmFzZU5hbWVzKCk7CisgICAgdGhpcy5fcmVz
ZXQoKTsKIH0KIAogV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLktleVR5cGVzID0gewpAQCAt
MTQzLDExICsxMzksMTkgQEAgV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLkV2ZW50VHlwZXMg
PSB7CiB9CiAKIFdlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5wcm90b3R5cGUgPSB7CisgICAg
X3Jlc2V0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBmb3IgKHZhciBzZWN1cml0eU9yaWdp
biBpbiB0aGlzLl9kYXRhYmFzZU5hbWVzQnlTZWN1cml0eU9yaWdpbikKKyAgICAgICAgICAgIHRo
aXMuX3JlbW92ZU9yaWdpbihzZWN1cml0eU9yaWdpbik7CisgICAgICAgIHZhciBzZWN1cml0eU9y
aWdpbnMgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuc2VjdXJpdHlPcmlnaW5zKCk7
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VjdXJpdHlPcmlnaW5zLmxlbmd0aDsgKytp
KQorICAgICAgICAgICAgdGhpcy5fYWRkT3JpZ2luKHNlY3VyaXR5T3JpZ2luc1tpXSk7CisgICAg
fSwKKwogICAgIHJlZnJlc2hEYXRhYmFzZU5hbWVzOiBmdW5jdGlvbigpCiAgICAgewotICAgICAg
ICB0aGlzLl9yZXNldCgpOwotICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1v
ZGVsLm1haW5GcmFtZSkKLSAgICAgICAgICAgIHRoaXMuX2ZyYW1lc05hdmlnYXRlZFJlY3Vyc2l2
ZWx5KFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5tYWluRnJhbWUpOworICAgICAgICBm
b3IgKHZhciBzZWN1cml0eU9yaWdpbiBpbiB0aGlzLl9kYXRhYmFzZU5hbWVzQnlTZWN1cml0eU9y
aWdpbikKKyAgICAgICAgICAgIHRoaXMuX2xvYWREYXRhYmFzZU5hbWVzKHNlY3VyaXR5T3JpZ2lu
KTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNTksOTcgKzE2MywzOSBAQCBXZWJJbnNwZWN0b3Iu
SW5kZXhlZERCTW9kZWwucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBA
cGFyYW0ge1dlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZX0gcmVzb3VyY2VUcmVlRnJhbWUK
LSAgICAgKi8KLSAgICBfZnJhbWVzTmF2aWdhdGVkUmVjdXJzaXZlbHk6IGZ1bmN0aW9uKHJlc291
cmNlVHJlZUZyYW1lKQotICAgIHsKLSAgICAgICAgdGhpcy5fcHJvY2Vzc0ZyYW1lTmF2aWdhdGVk
KHJlc291cmNlVHJlZUZyYW1lKTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNvdXJj
ZVRyZWVGcmFtZS5jaGlsZEZyYW1lcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuX2Zy
YW1lc05hdmlnYXRlZFJlY3Vyc2l2ZWx5KHJlc291cmNlVHJlZUZyYW1lLmNoaWxkRnJhbWVzW2ld
KTsKLSAgICB9LAotCi0gICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9
IGV2ZW50CiAgICAgICovCi0gICAgX2ZyYW1lTmF2aWdhdGVkOiBmdW5jdGlvbihldmVudCkKKyAg
ICBfc2VjdXJpdHlPcmlnaW5BZGRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB2
YXIgcmVzb3VyY2VUcmVlRnJhbWUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVGcmFtZX0gKi8gKGV2ZW50LmRhdGEpOwotICAgICAgICB0aGlzLl9wcm9jZXNzRnJhbWVOYXZp
Z2F0ZWQocmVzb3VyY2VUcmVlRnJhbWUpOworICAgICAgICB2YXIgc2VjdXJpdHlPcmlnaW4gPSAv
KiogQHR5cGUge3N0cmluZ30gKi8gKGV2ZW50LmRhdGEpOworICAgICAgICB0aGlzLl9hZGRPcmln
aW4oc2VjdXJpdHlPcmlnaW4pOwogICAgIH0sCiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5FdmVudH0gZXZlbnQKICAgICAgKi8KLSAgICBfZnJhbWVEZXRhY2hlZDogZnVu
Y3Rpb24oZXZlbnQpCi0gICAgewotICAgICAgICB2YXIgcmVzb3VyY2VUcmVlRnJhbWUgPSAvKiog
QHR5cGUge1dlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVGcmFtZX0gKi8gKGV2ZW50LmRhdGEpOwot
ICAgICAgICB0aGlzLl9vcmlnaW5SZW1vdmVkRnJvbUZyYW1lKHJlc291cmNlVHJlZUZyYW1lLmlk
KTsKLSAgICB9LAotCi0gICAgX3Jlc2V0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBmb3Ig
KHZhciBmcmFtZUlkIGluIHRoaXMuX2ZyYW1lcykKLSAgICAgICAgICAgIHRoaXMuX29yaWdpblJl
bW92ZWRGcm9tRnJhbWUoZnJhbWVJZCk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUZyYW1lfSByZXNvdXJjZVRyZWVGcmFtZQotICAg
ICAqLwotICAgIF9wcm9jZXNzRnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKHJlc291cmNlVHJlZUZy
YW1lKQorICAgIF9zZWN1cml0eU9yaWdpblJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsK
LSAgICAgICAgaWYgKHJlc291cmNlVHJlZUZyYW1lLnNlY3VyaXR5T3JpZ2luID09PSAibnVsbCIp
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmICh0aGlzLl9mcmFtZUlkc0J5U2VjdXJp
dHlPcmlnaW5bcmVzb3VyY2VUcmVlRnJhbWUuc2VjdXJpdHlPcmlnaW5dKQotICAgICAgICAgICAg
dGhpcy5fb3JpZ2luQWRkZWRUb0ZyYW1lKHJlc291cmNlVHJlZUZyYW1lLmlkLCByZXNvdXJjZVRy
ZWVGcmFtZS5zZWN1cml0eU9yaWdpbik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHRoaXMu
X2xvYWREYXRhYmFzZU5hbWVzRm9yRnJhbWUocmVzb3VyY2VUcmVlRnJhbWUuaWQpOworICAgICAg
ICB2YXIgc2VjdXJpdHlPcmlnaW4gPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKGV2ZW50LmRhdGEp
OworICAgICAgICB0aGlzLl9yZW1vdmVPcmlnaW4oc2VjdXJpdHlPcmlnaW4pOwogICAgIH0sCiAK
ICAgICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnJhbWVJZAogICAgICAqIEBwYXJhbSB7
c3RyaW5nfSBzZWN1cml0eU9yaWdpbgogICAgICAqLwotICAgIF9vcmlnaW5BZGRlZFRvRnJhbWU6
IGZ1bmN0aW9uKGZyYW1lSWQsIHNlY3VyaXR5T3JpZ2luKQorICAgIF9hZGRPcmlnaW46IGZ1bmN0
aW9uKHNlY3VyaXR5T3JpZ2luKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9mcmFtZUlkc0J5
U2VjdXJpdHlPcmlnaW5bc2VjdXJpdHlPcmlnaW5dKSB7Ci0gICAgICAgICAgICB0aGlzLl9mcmFt
ZUlkc0J5U2VjdXJpdHlPcmlnaW5bc2VjdXJpdHlPcmlnaW5dID0gW107Ci0gICAgICAgICAgICB0
aGlzLl9mcmFtZUlkc0J5U2VjdXJpdHlPcmlnaW5bc2VjdXJpdHlPcmlnaW5dLnB1c2goZnJhbWVJ
ZCk7Ci0gICAgICAgICAgICB0aGlzLl9kYXRhYmFzZU5hbWVzQnlTZWN1cml0eU9yaWdpbltzZWN1
cml0eU9yaWdpbl0gPSBbXTsKLSAgICAgICAgfQotICAgICAgICB0aGlzLl9mcmFtZXNbZnJhbWVJ
ZF0gPSBuZXcgV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLkZyYW1lKGZyYW1lSWQsIHNlY3Vy
aXR5T3JpZ2luKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IGZy
YW1lSWQKLSAgICAgKi8KLSAgICBfb3JpZ2luUmVtb3ZlZEZyb21GcmFtZTogZnVuY3Rpb24oZnJh
bWVJZCkKLSAgICB7Ci0gICAgICAgIHZhciBjdXJyZW50U2VjdXJpdHlPcmlnaW4gPSB0aGlzLl9m
cmFtZXNbZnJhbWVJZF0gPyB0aGlzLl9mcmFtZXNbZnJhbWVJZF0uc2VjdXJpdHlPcmlnaW4gOiBu
dWxsOwotICAgICAgICBpZiAoIWN1cnJlbnRTZWN1cml0eU9yaWdpbikKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBkZWxldGUgdGhpcy5fZnJhbWVzW2ZyYW1lSWRdOwotCi0gICAgICAg
IHZhciBmcmFtZUlkc0Zvck9yaWdpbiA9IHRoaXMuX2ZyYW1lSWRzQnlTZWN1cml0eU9yaWdpbltj
dXJyZW50U2VjdXJpdHlPcmlnaW5dOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZyYW1l
SWRzRm9yT3JpZ2luOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChmcmFtZUlkc0Zvck9yaWdpbltp
XSA9PT0gZnJhbWVJZCkgewotICAgICAgICAgICAgICAgIGZyYW1lSWRzRm9yT3JpZ2luLnNwbGlj
ZShpLCAxKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fQotICAgICAgICBpZiAoIWZyYW1lSWRzRm9yT3JpZ2luLmxlbmd0aCkKLSAgICAgICAgICAgIHRo
aXMuX29yaWdpblJlbW92ZWQoY3VycmVudFNlY3VyaXR5T3JpZ2luKTsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoIXRoaXMuX2RhdGFiYXNlTmFtZXNCeVNlY3VyaXR5T3JpZ2luW3NlY3VyaXR5T3Jp
Z2luXSk7CisgICAgICAgIHRoaXMuX2RhdGFiYXNlTmFtZXNCeVNlY3VyaXR5T3JpZ2luW3NlY3Vy
aXR5T3JpZ2luXSA9IFtdOworICAgICAgICB0aGlzLl9sb2FkRGF0YWJhc2VOYW1lcyhzZWN1cml0
eU9yaWdpbik7CiAgICAgfSwKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1
cml0eU9yaWdpbgogICAgICAqLwotICAgIF9vcmlnaW5SZW1vdmVkOiBmdW5jdGlvbihzZWN1cml0
eU9yaWdpbikKKyAgICBfcmVtb3ZlT3JpZ2luOiBmdW5jdGlvbihzZWN1cml0eU9yaWdpbikKICAg
ICB7Ci0gICAgICAgIHZhciBmcmFtZUlkc0Zvck9yaWdpbiA9IHRoaXMuX2ZyYW1lSWRzQnlTZWN1
cml0eU9yaWdpbltzZWN1cml0eU9yaWdpbl07Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
ZnJhbWVJZHNGb3JPcmlnaW47ICsraSkKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9mcmFtZXNb
ZnJhbWVJZHNGb3JPcmlnaW5baV1dOwotICAgICAgICBkZWxldGUgdGhpcy5fZnJhbWVJZHNCeVNl
Y3VyaXR5T3JpZ2luW3NlY3VyaXR5T3JpZ2luXTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhp
cy5fZGF0YWJhc2VOYW1lc0J5U2VjdXJpdHlPcmlnaW5bc2VjdXJpdHlPcmlnaW5dKTsKICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9kYXRhYmFzZU5hbWVzQnlTZWN1cml0eU9yaWdp
bltzZWN1cml0eU9yaWdpbl0ubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLl9kYXRhYmFz
ZVJlbW92ZWQoc2VjdXJpdHlPcmlnaW4sIHRoaXMuX2RhdGFiYXNlTmFtZXNCeVNlY3VyaXR5T3Jp
Z2luW3NlY3VyaXR5T3JpZ2luXVtpXSk7CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9kYXRhYmFzZU5h
bWVzQnlTZWN1cml0eU9yaWdpbltzZWN1cml0eU9yaWdpbl07CkBAIC0yNjYsNyArMjEyLDcgQEAg
V2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIG5l
d0RhdGFiYXNlTmFtZXNbZGF0YWJhc2VOYW1lc1tpXV0gPSB0cnVlOwogICAgICAgICB2YXIgb2xk
RGF0YWJhc2VOYW1lcyA9IHt9OwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2Rh
dGFiYXNlTmFtZXNCeVNlY3VyaXR5T3JpZ2luW3NlY3VyaXR5T3JpZ2luXS5sZW5ndGg7ICsraSkK
LSAgICAgICAgICAgIG9sZERhdGFiYXNlTmFtZXNbZGF0YWJhc2VOYW1lc1tpXV0gPSB0cnVlOwor
ICAgICAgICAgICAgb2xkRGF0YWJhc2VOYW1lc1t0aGlzLl9kYXRhYmFzZU5hbWVzQnlTZWN1cml0
eU9yaWdpbltzZWN1cml0eU9yaWdpbl1baV1dID0gdHJ1ZTsKIAogICAgICAgICB0aGlzLl9kYXRh
YmFzZU5hbWVzQnlTZWN1cml0eU9yaWdpbltzZWN1cml0eU9yaWdpbl0gPSBkYXRhYmFzZU5hbWVz
OwogCkBAIC0yNzgsOSArMjI0LDYgQEAgV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgIGlmICghb2xkRGF0YWJhc2VOYW1lc1tkYXRhYmFzZU5hbWVd
KQogICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFiYXNlQWRkZWQoc2VjdXJpdHlPcmlnaW4sIGRh
dGFiYXNlTmFtZSk7CiAgICAgICAgIH0KLQotICAgICAgICBpZiAoIXRoaXMuX2RhdGFiYXNlTmFt
ZXNCeVNlY3VyaXR5T3JpZ2luW3NlY3VyaXR5T3JpZ2luXS5sZW5ndGgpCi0gICAgICAgICAgICB0
aGlzLl9vcmlnaW5SZW1vdmVkKHNlY3VyaXR5T3JpZ2luKTsKICAgICB9LAogCiAgICAgLyoqCkBA
IC0zMDQsNDQgKzI0NywyNyBAQCBXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwucHJvdG90eXBl
ID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnJhbWVJZAor
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9yaWdpbgogICAgICAqLwotICAgIF9sb2Fk
RGF0YWJhc2VOYW1lc0ZvckZyYW1lOiBmdW5jdGlvbihmcmFtZUlkKQorICAgIF9sb2FkRGF0YWJh
c2VOYW1lczogZnVuY3Rpb24oc2VjdXJpdHlPcmlnaW4pCiAgICAgewogICAgICAgICAvKioKICAg
ICAgICAgICogQHBhcmFtIHs/UHJvdG9jb2wuRXJyb3J9IGVycm9yCi0gICAgICAgICAqIEBwYXJh
bSB7SW5kZXhlZERCQWdlbnQuU2VjdXJpdHlPcmlnaW5XaXRoRGF0YWJhc2VOYW1lc30gc2VjdXJp
dHlPcmlnaW5XaXRoRGF0YWJhc2VOYW1lcworICAgICAgICAgKiBAcGFyYW0ge0FycmF5LjxzdHJp
bmc+fSBkYXRhYmFzZU5hbWVzCiAgICAgICAgICAqLwotICAgICAgICBmdW5jdGlvbiBjYWxsYmFj
ayhlcnJvciwgc2VjdXJpdHlPcmlnaW5XaXRoRGF0YWJhc2VOYW1lcykKKyAgICAgICAgZnVuY3Rp
b24gY2FsbGJhY2soZXJyb3IsIGRhdGFiYXNlTmFtZXMpCiAgICAgICAgIHsKICAgICAgICAgICAg
IGlmIChlcnJvcikgewogICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkluZGV4ZWREQkFn
ZW50IGVycm9yOiAiICsgZXJyb3IpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgdmFyIGRhdGFiYXNlTmFtZXMgPSBzZWN1cml0eU9yaWdpbldp
dGhEYXRhYmFzZU5hbWVzLmRhdGFiYXNlTmFtZXM7Ci0gICAgICAgICAgICB2YXIgb2xkU2VjdXJp
dHlPcmlnaW4gPSB0aGlzLl9mcmFtZXNbZnJhbWVJZF0gPyB0aGlzLl9mcmFtZXNbZnJhbWVJZF0u
c2VjdXJpdHlPcmlnaW4gOiBudWxsOwotICAgICAgICAgICAgaWYgKCFvbGRTZWN1cml0eU9yaWdp
biB8fCBvbGRTZWN1cml0eU9yaWdpbiAhPT0gc2VjdXJpdHlPcmlnaW5XaXRoRGF0YWJhc2VOYW1l
cy5zZWN1cml0eU9yaWdpbikgewotICAgICAgICAgICAgICAgIHRoaXMuX29yaWdpblJlbW92ZWRG
cm9tRnJhbWUoZnJhbWVJZCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fb3JpZ2luQWRkZWRUb0Zy
YW1lKGZyYW1lSWQsIHNlY3VyaXR5T3JpZ2luV2l0aERhdGFiYXNlTmFtZXMuc2VjdXJpdHlPcmln
aW4pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5fdXBkYXRlT3JpZ2luRGF0YWJh
c2VOYW1lcyhzZWN1cml0eU9yaWdpbldpdGhEYXRhYmFzZU5hbWVzLnNlY3VyaXR5T3JpZ2luLCBz
ZWN1cml0eU9yaWdpbldpdGhEYXRhYmFzZU5hbWVzLmRhdGFiYXNlTmFtZXMpOworICAgICAgICAg
ICAgaWYgKCF0aGlzLl9kYXRhYmFzZU5hbWVzQnlTZWN1cml0eU9yaWdpbltzZWN1cml0eU9yaWdp
bl0pCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgdGhpcy5fdXBkYXRlT3Jp
Z2luRGF0YWJhc2VOYW1lcyhzZWN1cml0eU9yaWdpbiwgZGF0YWJhc2VOYW1lcyk7CiAgICAgICAg
IH0KIAotICAgICAgICBJbmRleGVkREJBZ2VudC5yZXF1ZXN0RGF0YWJhc2VOYW1lc0ZvckZyYW1l
KGZyYW1lSWQsIGNhbGxiYWNrLmJpbmQodGhpcykpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5EYXRhYmFzZUlkfSBkYXRhYmFz
ZUlkCi0gICAgICogQHJldHVybiB7c3RyaW5nfG51bGx9Ci0gICAgICovCi0gICAgX2Fzc2VydEZy
YW1lSWQ6IGZ1bmN0aW9uKGRhdGFiYXNlSWQpCi0gICAgewotICAgICAgICB2YXIgZnJhbWVJZHMg
PSB0aGlzLl9mcmFtZUlkc0J5U2VjdXJpdHlPcmlnaW5bZGF0YWJhc2VJZC5zZWN1cml0eU9yaWdp
bl07Ci0gICAgICAgIGlmICghZnJhbWVJZHMgfHwgIWZyYW1lSWRzLmxlbmd0aCkKLSAgICAgICAg
ICAgIHJldHVybiBudWxsOwotCi0gICAgICAgIHJldHVybiBmcmFtZUlkc1swXTsKKyAgICAgICAg
SW5kZXhlZERCQWdlbnQucmVxdWVzdERhdGFiYXNlTmFtZXMoc2VjdXJpdHlPcmlnaW4sIGNhbGxi
YWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTM0OSwxMCArMjc1LDYgQEAg
V2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBf
bG9hZERhdGFiYXNlOiBmdW5jdGlvbihkYXRhYmFzZUlkKQogICAgIHsKLSAgICAgICAgdmFyIGZy
YW1lSWQgPSB0aGlzLl9hc3NlcnRGcmFtZUlkKGRhdGFiYXNlSWQpOwotICAgICAgICBpZiAoIWZy
YW1lSWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgLyoqCiAgICAgICAgICAqIEBw
YXJhbSB7P1Byb3RvY29sLkVycm9yfSBlcnJvcgogICAgICAgICAgKiBAcGFyYW0ge0luZGV4ZWRE
QkFnZW50LkRhdGFiYXNlV2l0aE9iamVjdFN0b3Jlc30gZGF0YWJhc2VXaXRoT2JqZWN0U3RvcmVz
CkBAIC0zNjQsOSArMjg2LDggQEAgV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIGlmICghdGhpcy5fZnJhbWVzW2ZyYW1lSWRdKQorICAgICAgICAgICAgaWYgKCF0aGlzLl9k
YXRhYmFzZU5hbWVzQnlTZWN1cml0eU9yaWdpbltkYXRhYmFzZUlkLnNlY3VyaXR5T3JpZ2luXSkK
ICAgICAgICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgICAgIHZhciBkYXRhYmFzZU1vZGVs
ID0gbmV3IFdlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5EYXRhYmFzZShkYXRhYmFzZUlkLCBk
YXRhYmFzZVdpdGhPYmplY3RTdG9yZXMudmVyc2lvbiwgZGF0YWJhc2VXaXRoT2JqZWN0U3RvcmVz
LmludFZlcnNpb24pOwogICAgICAgICAgICAgdGhpcy5fZGF0YWJhc2VzLnB1dChkYXRhYmFzZUlk
LCBkYXRhYmFzZU1vZGVsKTsgCiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGFi
YXNlV2l0aE9iamVjdFN0b3Jlcy5vYmplY3RTdG9yZXMubGVuZ3RoOyArK2kpIHsKQEAgLTM4NSw3
ICszMDYsNyBAQCBXZWJJbnNwZWN0b3IuSW5kZXhlZERCTW9kZWwucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkluZGV4
ZWREQk1vZGVsLkV2ZW50VHlwZXMuRGF0YWJhc2VMb2FkZWQsIGRhdGFiYXNlTW9kZWwpOwogICAg
ICAgICB9CiAKLSAgICAgICAgSW5kZXhlZERCQWdlbnQucmVxdWVzdERhdGFiYXNlKGZyYW1lSWQs
IGRhdGFiYXNlSWQubmFtZSwgY2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAgICAgIEluZGV4ZWRE
QkFnZW50LnJlcXVlc3REYXRhYmFzZShkYXRhYmFzZUlkLnNlY3VyaXR5T3JpZ2luLCBkYXRhYmFz
ZUlkLm5hbWUsIGNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTQy
NywxMCArMzQ4LDYgQEAgV2ViSW5zcGVjdG9yLkluZGV4ZWREQk1vZGVsLnByb3RvdHlwZSA9IHsK
ICAgICAgKi8KICAgICBfcmVxdWVzdERhdGE6IGZ1bmN0aW9uKGRhdGFiYXNlSWQsIGRhdGFiYXNl
TmFtZSwgb2JqZWN0U3RvcmVOYW1lLCBpbmRleE5hbWUsIGlkYktleVJhbmdlLCBza2lwQ291bnQs
IHBhZ2VTaXplLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIHZhciBmcmFtZUlkID0gdGhpcy5f
YXNzZXJ0RnJhbWVJZChkYXRhYmFzZUlkKTsKLSAgICAgICAgaWYgKCFmcmFtZUlkKQotICAgICAg
ICAgICAgcmV0dXJuOwotCiAgICAgICAgIC8qKgogICAgICAgICAgKiBAcGFyYW0gez9Qcm90b2Nv
bC5FcnJvcn0gZXJyb3IKICAgICAgICAgICogQHBhcmFtIHtBcnJheS48SW5kZXhlZERCQWdlbnQu
RGF0YUVudHJ5Pn0gZGF0YUVudHJpZXMKQEAgLTQ0Myw5ICszNjAsOCBAQCBXZWJJbnNwZWN0b3Iu
SW5kZXhlZERCTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCF0aGlzLl9mcmFtZXNb
ZnJhbWVJZF0pCisgICAgICAgICAgICBpZiAoIXRoaXMuX2RhdGFiYXNlTmFtZXNCeVNlY3VyaXR5
T3JpZ2luW2RhdGFiYXNlSWQuc2VjdXJpdHlPcmlnaW5dKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKLQogICAgICAgICAgICAgdmFyIGVudHJpZXMgPSBbXTsKICAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgZGF0YUVudHJpZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgICAgICB2
YXIga2V5ID0gV2ViSW5zcGVjdG9yLlJlbW90ZU9iamVjdC5mcm9tUGF5bG9hZChkYXRhRW50cmll
c1tpXS5rZXkpOwpAQCAtNDU3LDcgKzM3Myw3IEBAIFdlYkluc3BlY3Rvci5JbmRleGVkREJNb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICB2YXIga2V5UmFuZ2UgPSBXZWJJ
bnNwZWN0b3IuSW5kZXhlZERCTW9kZWwua2V5UmFuZ2VGcm9tSURCS2V5UmFuZ2UoaWRiS2V5UmFu
Z2UpOwotICAgICAgICBJbmRleGVkREJBZ2VudC5yZXF1ZXN0RGF0YShmcmFtZUlkLCBkYXRhYmFz
ZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwgaW5kZXhOYW1lLCBza2lwQ291bnQsIHBhZ2VTaXplLCBr
ZXlSYW5nZSA/IGtleVJhbmdlIDogdW5kZWZpbmVkLCBpbm5lckNhbGxiYWNrLmJpbmQodGhpcykp
OworICAgICAgICBJbmRleGVkREJBZ2VudC5yZXF1ZXN0RGF0YShkYXRhYmFzZUlkLnNlY3VyaXR5
T3JpZ2luLCBkYXRhYmFzZU5hbWUsIG9iamVjdFN0b3JlTmFtZSwgaW5kZXhOYW1lLCBza2lwQ291
bnQsIHBhZ2VTaXplLCBrZXlSYW5nZSA/IGtleVJhbmdlIDogdW5kZWZpbmVkLCBpbm5lckNhbGxi
YWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5P
YmplY3QucHJvdG90eXBlCkBAIC00NzgsMTggKzM5NCw2IEBAIFdlYkluc3BlY3Rvci5JbmRleGVk
REJNb2RlbC5FbnRyeSA9IGZ1bmN0aW9uKGtleSwgcHJpbWFyeUtleSwgdmFsdWUpCiAKIC8qKgog
ICogQGNvbnN0cnVjdG9yCi0gKiBAcGFyYW0ge3N0cmluZ30gZnJhbWVJZAotICogQHBhcmFtIHtz
dHJpbmd9IHNlY3VyaXR5T3JpZ2luCi0gKi8KLVdlYkluc3BlY3Rvci5JbmRleGVkREJNb2RlbC5G
cmFtZSA9IGZ1bmN0aW9uKGZyYW1lSWQsIHNlY3VyaXR5T3JpZ2luKQotewotICAgIHRoaXMuZnJh
bWVJZCA9IGZyYW1lSWQ7Ci0gICAgdGhpcy5zZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2lu
OwotICAgIHRoaXMuZGF0YWJhc2VOYW1lcyA9IHt9OwotfQotCi0vKioKLSAqIEBjb25zdHJ1Y3Rv
cgogICogQHBhcmFtIHtzdHJpbmd9IHNlY3VyaXR5T3JpZ2luCiAgKiBAcGFyYW0ge3N0cmluZ30g
bmFtZQogICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlVHJlZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9SZXNvdXJjZVRyZWVNb2RlbC5qcwppbmRleCBiMWVjMTJmYmI3ZDQ0YjcwYjU2NDY4NDZlZTY1
MjY4ZGQ2Y2MzNzU3Li5kOWE5MmRjYzM5N2RhNTg4ZDczODQ5MDIyMDgyYjIxZDQxNjRlNDdjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJl
ZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VUcmVlTW9kZWwuanMKQEAgLTE0Nyw2ICsxNDcsMTQgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHJldHVy
biB7QXJyYXkuPHN0cmluZz59CisgICAgICovCisgICAgc2VjdXJpdHlPcmlnaW5zOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fc2VjdXJpdHlPcmln
aW5GcmFtZUNvdW50KTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VUcmVlRnJhbWV9IG1haW5GcmFtZQogICAgICAqLwogICAgIF9oYW5kbGVN
YWluRnJhbWVEZXRhY2hlZDogZnVuY3Rpb24obWFpbkZyYW1lKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDgxYmQxNTc3MWU0
OGQ3YTZlOGVhY2E0MWRiYTJkYTM2ZmY2OTFlMzMuLjZkYjE1YjRjY2YwYmM0MmFlNzY0MDA0ZjUy
NDI5YmFiY2Q1NzlkYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0yNiAgVnNldm9s
b2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBNaWdyYXRlIEluZGV4ZWREQiBzdXBwb3J0IHRvIFJlc291cmNlVHJlZU1vZGVsJ3MgU2VjdXJp
dHlPcmlnaW5BZGRlZC9SZW1vdmVkIGV2ZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDg2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiL2Rh
dGFiYXNlLW5hbWVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rv
ci9pbmRleGVkZGIvZGF0YWJhc2UtbmFtZXMuaHRtbDoKKwogMjAxMy0wMi0yNSAgVnNldm9sb2Qg
Vmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGNocm9t
aXVtIHRlc3QgZXhwZWN0YXRpb25zIHVwZGF0ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9kYXRhYmFzZS1uYW1lcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0YWJhc2UtbmFt
ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDIwMmUyNzBkYjg2NWQzYjBmMDhkOWIwNDliOWZkM2FjZTFi
MTY0YmIuLjgwNzk2ZDIyNjIwNDdlODczNDg5ZTAzMzRmZWI3NmNhMzczMDM3MzcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9kYXRhYmFzZS1u
YW1lcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5kZXhlZGRiL2RhdGFiYXNlLW5hbWVzLWV4cGVjdGVkLnR4dApAQCAtNSw2ICs1LDcgQEAgQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDEwODogSW5zcGVjdG9yVGVzdC5JbmRleGVkREJfY2FsbGJhY2s0
CiBUZXN0cyB0aGF0IGRhdGFiYXNlIG5hbWVzIGFyZSBjb3JyZWN0bHkgbG9hZGVkIGFuZCBzYXZl
ZCBpbiBJbmRleGVkREJNb2RlbC4KIAogRHVtcGluZyBkYXRhYmFzZSBuYW1lczoKKwogRHVtcGlu
ZyBkYXRhYmFzZSBuYW1lczoKICAgICB0ZXN0RGF0YWJhc2UxCiAKQEAgLTE3LDMgKzE4LDQgQEAg
RHVtcGluZyBkYXRhYmFzZSBuYW1lczoKIAogRHVtcGluZyBkYXRhYmFzZSBuYW1lczoKIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIvZGF0
YWJhc2UtbmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4
ZWRkYi9kYXRhYmFzZS1uYW1lcy5odG1sCmluZGV4IDg1N2Q4Y2IyOWRhZGJlZGNhN2NmZDdkOTg3
MmQzOWZjMDVmNTRlZTAuLjAxNDNmNzM4NDJlYmVhZTk4MWRkMGMyNzk4MGIxMWNlM2E0N2VhZGQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYi9k
YXRhYmFzZS1uYW1lcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2luZGV4ZWRkYi9kYXRhYmFzZS1uYW1lcy5odG1sCkBAIC0xMSwxMSArMTEsOCBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICBmdW5jdGlvbiBkdW1wRGF0YWJhc2VOYW1lcygpCiAgICAgewogICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBkYXRhYmFzZSBuYW1lczoiKTsKLSAg
ICAgICAgdmFyIGZyYW1lID0gaW5kZXhlZERCTW9kZWwuX2ZyYW1lc1ttYWluRnJhbWVJZF07Ci0g
ICAgICAgIGlmICghZnJhbWUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdmFyIHNl
Y3VyaXR5T3JpZ2luID0gZnJhbWUuc2VjdXJpdHlPcmlnaW47CisgICAgICAgIHZhciBzZWN1cml0
eU9yaWdpbnMgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuc2VjdXJpdHlPcmlnaW5z
KCk7CisgICAgICAgIHZhciBzZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luc1swXTsKICAg
ICAgICAgdmFyIG5hbWVzID0gaW5kZXhlZERCTW9kZWwuX2RhdGFiYXNlTmFtZXNCeVNlY3VyaXR5
T3JpZ2luW3NlY3VyaXR5T3JpZ2luXTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1l
cy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAg
IiArIG5hbWVzW2ldKTsK
</data>
<flag name="review"
          id="210879"
          type_id="1"
          status="+"
          setter="apavlov"
    />
          </attachment>
      

    </bug>

</bugzilla>