<?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>9574</bug_id>
          
          <creation_ts>2006-06-25 01:17:22 -0700</creation_ts>
          <short_desc>Drosera should show inline scripts within the original HTML</short_desc>
          <delta_ts>2008-05-17 09:55:51 -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>New Bugs</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>CLOSED</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="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>47098</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-06-25 01:17:22 -0700</bug_when>
    <thetext>Currently Drosera shows each script as a separate file in the popup list, even for &lt;script&gt; tags. Drosera needs work with inline scripts (event attributes and script tags) in the context of the original HTMl source.

* Only show one entry in the file popup for the main HTML file.
* Ability to set breakpoints in the HTML file to catch event attributes (onclick, etc).
* Ability to set breakpoints in the HTML file for scripts in &lt;script&gt; tags.

Right now Yahoo.com has around 13 inline scripts and they pollute the file popup. This will reduce to around 5 items once this is fixed.

This will require additional work in WebKit to provide Drosera the information it needs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47099</commentid>
    <comment_count>1</comment_count>
      <attachid>9014</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-06-25 01:38:13 -0700</bug_when>
    <thetext>Created attachment 9014
Implements this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47114</commentid>
    <comment_count>2</comment_count>
      <attachid>9014</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-06-25 10:03:04 -0700</bug_when>
    <thetext>Comment on attachment 9014
Implements this

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47120</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-06-25 10:47:52 -0700</bug_when>
    <thetext>Landed in r15026.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>80731</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-05-17 09:55:51 -0700</bug_when>
    <thetext>Closing since Drosera has been replaced by the new Web Inspector debugger. Moving to the New Bugs component so the Drosera component can be closed and removed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9014</attachid>
            <date>2006-06-25 01:38:13 -0700</date>
            <delta_ts>2006-06-25 10:03:04 -0700</delta_ts>
            <desc>Implements this</desc>
            <filename>9574.patch</filename>
            <type>text/plain</type>
            <size>41159</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDI1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDYtMDYtMjUgIFRpbW90aHkg
SGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEJ1ZyA5NTc0OiBEcm9zZXJhIHNob3VsZCBzaG93IGlubGlu
ZSBzY3JpcHRzIHdpdGhpbiB0aGUgb3JpZ2luYWwgSFRNTAorICAgICAgICBodHRwOi8vYnVnemls
bGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzQKKworICAgICAgICBQYXNzIHRo
ZSBzdGFydGluZyBsaW5lIG51bWJlciBhbmQgZXJyb3IgbWVzc2FnZSB0byB0aGUgZGVidWdnZXIu
CisKKyAgICAgICAgKiBranMvZGVidWdnZXIuY3BwOgorICAgICAgICAoRGVidWdnZXI6OnNvdXJj
ZVBhcnNlZCk6CisgICAgICAgICoga2pzL2RlYnVnZ2VyLmg6CisgICAgICAgICoga2pzL2Z1bmN0
aW9uLmNwcDoKKyAgICAgICAgKEtKUzo6R2xvYmFsRnVuY0ltcDo6Y2FsbEFzRnVuY3Rpb24pOgor
ICAgICAgICAqIGtqcy9mdW5jdGlvbl9vYmplY3QuY3BwOgorICAgICAgICAoRnVuY3Rpb25PYmpl
Y3RJbXA6OmNvbnN0cnVjdCk6CisgICAgICAgICoga2pzL2ludGVycHJldGVyLmNwcDoKKyAgICAg
ICAgKEtKUzo6SW50ZXJwcmV0ZXI6OmV2YWx1YXRlKToKKwogMjAwNi0wNi0yNCAgQWxleGV5IFBy
b3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBF
cmljLgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2RlYnVnZ2VyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS9ranMvZGVidWdnZXIuY3BwCShyZXZpc2lvbiAxNTAwNCkKKysrIEph
dmFTY3JpcHRDb3JlL2tqcy9kZWJ1Z2dlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDcgKzgz
LDcgQEAgdm9pZCBEZWJ1Z2dlcjo6ZGV0YWNoKEludGVycHJldGVyKiBpbnRlcgogfQogCiBib29s
IERlYnVnZ2VyOjpzb3VyY2VQYXJzZWQoRXhlY1N0YXRlICovKmV4ZWMqLywgaW50IC8qc291cmNl
SWQqLywgY29uc3QgVVN0cmluZyAmLypzb3VyY2VVUkwqLywgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBVU3RyaW5nICYvKnNvdXJjZSovLCBpbnQgLyplcnJvckxpbmUqLykKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFVTdHJpbmcgJi8qc291cmNlKi8sIGludCAv
KnN0YXJ0aW5nTGluZU51bWJlciovLCBpbnQgLyplcnJvckxpbmUqLywgY29uc3QgVVN0cmluZyAm
IC8qZXJyb3JNc2cqLykKIHsKICAgcmV0dXJuIHRydWU7CiB9CkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9ranMvZGVidWdnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvZGVidWdn
ZXIuaAkocmV2aXNpb24gMTUwMDQpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvZGVidWdnZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMTAzLDEzICsxMDMsMTYgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAg
ICogc291cmNlSWQgc3VwcGxpZWQgaW4gb3RoZXIgZnVuY3Rpb25zIHN1Y2ggYXMgYXRTdGF0ZW1l
bnQoKQogICAgICAqIEBwYXJhbSBzb3VyY2VVUkwgV2hlcmUgdGhlIHNvdXJjZSBjb2RlIHRoYXQg
d2FzIHBhcnNlZCBjYW1lIGZyb20KICAgICAgKiBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2UgY29k
ZSB0aGF0IHdhcyBwYXJzZWQKKyAgICAgKiBAcGFyYW0gc3RhcnRpbmdMaW5lTnVtYmVyIFRoZSBs
aW5lIG51bWJlciBhdCB3aGljaCBwYXJzaW5nIHN0YXJ0ZWQKICAgICAgKiBAcGFyYW0gZXJyb3JM
aW5lIFRoZSBsaW5lIG51bWJlciBhdCB3aGljaCBwYXJzaW5nIGVuY291bnRlcmVkIGFuCiAgICAg
ICogZXJyb3IsIG9yIC0xIGlmIHRoZSBzb3VyY2UgY29kZSB3YXMgdmFsaWQgYW5kIHBhcnNlZCBz
dWNjZXNzZnVsbHkKKyAgICAgKiBAcGFyYW0gZXJyb3JNc2cgVGhlIGVycm9yIGRlc2NyaXB0aW9u
LCBvciBudWxsIGlmIHRoZSBzb3VyY2UgY29kZQorICAgICAgIHdhcyB2YWxpZCBhbmQgcGFyc2Vk
IHN1Y2Nlc3NmdWxseQogICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBleGVjdXRpb24gc2hvdWxkIGJl
IGNvbnRpbnVlLCBmYWxzZSBpZiBpdCBzaG91bGQKICAgICAgKiBiZSBhYm9ydGVkCiAgICAgICov
CiAgICAgdmlydHVhbCBib29sIHNvdXJjZVBhcnNlZChFeGVjU3RhdGUgKmV4ZWMsIGludCBzb3Vy
Y2VJZCwgY29uc3QgVVN0cmluZyAmc291cmNlVVJMLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgVVN0cmluZyAmc291cmNlLCBpbnQgZXJyb3JMaW5lKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IFVTdHJpbmcgJnNvdXJjZSwgaW50IHN0YXJ0aW5nTGlu
ZU51bWJlciwgaW50IGVycm9yTGluZSwgY29uc3QgVVN0cmluZyAmZXJyb3JNc2cpOwogCiAgICAg
LyoqCiAgICAgICogQ2FsbGVkIHdoZW4gYWxsIGZ1bmN0aW9ucy9wcm9ncmFtcyBhc3NvY2lhdGVk
IHdpdGggYSBwYXJ0aWN1bGFyCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvZnVuY3Rpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9mdW5jdGlvbi5jcHAJKHJldmlzaW9u
IDE1MDA0KQorKysgSmF2YVNjcmlwdENvcmUva2pzL2Z1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzk1LDcgKzc5NSw3IEBAIEpTVmFsdWUgKkdsb2JhbEZ1bmNJbXA6OmNhbGxBc0Z1bmN0
aW9uKEUKIAogICAgICAgICBEZWJ1Z2dlciAqZGJnID0gZXhlYy0+ZHluYW1pY0ludGVycHJldGVy
KCktPmRlYnVnZ2VyKCk7CiAgICAgICAgIGlmIChkYmcpIHsKLSAgICAgICAgICBib29sIGNvbnQg
PSBkYmctPnNvdXJjZVBhcnNlZChleGVjLCBzaWQsIFVTdHJpbmcoKSwgcywgZXJyTGluZSk7Cisg
ICAgICAgICAgYm9vbCBjb250ID0gZGJnLT5zb3VyY2VQYXJzZWQoZXhlYywgc2lkLCBVU3RyaW5n
KCksIHMsIDAsIGVyckxpbmUsIGVyck1zZyk7CiAgICAgICAgICAgaWYgKCFjb250KQogICAgICAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgICAgIH0KSW5kZXg6IEphdmFTY3JpcHRD
b3JlL2tqcy9mdW5jdGlvbl9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L2tqcy9mdW5jdGlvbl9vYmplY3QuY3BwCShyZXZpc2lvbiAxNTAwNCkKKysrIEphdmFTY3JpcHRD
b3JlL2tqcy9mdW5jdGlvbl9vYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTAsNyArMTkw
LDcgQEAgSlNPYmplY3QqIEZ1bmN0aW9uT2JqZWN0SW1wOjpjb25zdHJ1Y3QoRQogICBEZWJ1Z2dl
ciAqZGJnID0gZXhlYy0+ZHluYW1pY0ludGVycHJldGVyKCktPmRlYnVnZ2VyKCk7CiAgIGlmIChk
YmcpIHsKICAgICAvLyBzZW5kIGVtcHR5IHNvdXJjZVVSTCB0byBpbmRpY2F0ZSBjb25zdHJ1Y3Rl
ZCBjb2RlCi0gICAgYm9vbCBjb250ID0gZGJnLT5zb3VyY2VQYXJzZWQoZXhlYyxzaWQsVVN0cmlu
ZygpLGJvZHksZXJyTGluZSk7CisgICAgYm9vbCBjb250ID0gZGJnLT5zb3VyY2VQYXJzZWQoZXhl
Yywgc2lkLCBVU3RyaW5nKCksIGJvZHksIGxpbmVOdW1iZXIsIGVyckxpbmUsIGVyck1zZyk7CiAg
ICAgaWYgKCFjb250KSB7CiAgICAgICBkYmctPmltcCgpLT5hYm9ydCgpOwogICAgICAgcmV0dXJu
IG5ldyBKU09iamVjdCgpOwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2ludGVycHJldGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvaW50ZXJwcmV0ZXIuY3BwCShyZXZp
c2lvbiAxNTAwNCkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ0MSw3ICs0NDEsNyBAQCBDb21wbGV0aW9uIEludGVycHJldGVyOjpldmFs
dWF0ZShjb25zdCBVCiAgICAgCiAgICAgLy8gbm90aWZ5IGRlYnVnZ2VyIHRoYXQgc291cmNlIGhh
cyBiZWVuIHBhcnNlZAogICAgIGlmIChtX2RlYnVnZ2VyKSB7Ci0gICAgICAgIGJvb2wgY29udCA9
IG1fZGVidWdnZXItPnNvdXJjZVBhcnNlZCgmbV9nbG9iYWxFeGVjLCBzaWQsIHNvdXJjZVVSTCwg
VVN0cmluZyhjb2RlLCBjb2RlTGVuZ3RoKSwgZXJyTGluZSk7CisgICAgICAgIGJvb2wgY29udCA9
IG1fZGVidWdnZXItPnNvdXJjZVBhcnNlZCgmbV9nbG9iYWxFeGVjLCBzaWQsIHNvdXJjZVVSTCwg
VVN0cmluZyhjb2RlLCBjb2RlTGVuZ3RoKSwgc3RhcnRpbmdMaW5lTnVtYmVyLCBlcnJMaW5lLCBl
cnJNc2cpOwogICAgICAgICBpZiAoIWNvbnQpCiAgICAgICAgICAgICByZXR1cm4gQ29tcGxldGlv
bihCcmVhayk7CiAgICAgfQpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDI1KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAwNi0wNi0yNSAgVGltb3RoeSBIYXRj
aGVyICA8dGltb3RoeUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQnVnIDk1NzQ6IERyb3NlcmEgc2hvdWxkIHNob3cgaW5saW5lIHNj
cmlwdHMgd2l0aGluIHRoZSBvcmlnaW5hbCBIVE1MCisgICAgICAgIGh0dHA6Ly9idWd6aWxsYS5v
cGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU3NAorCisgICAgICAgICogUGFzcyB0aGUg
c3RhcnRpbmcgbGluZSBudW1iZXIgYW5kIGVycm9yIG1lc3NhZ2UgdG8gdGhlIGRlYnVnZ2VyLgor
ICAgICAgICAqIENhbGwgcGFyc2VkU291cmNlIGV2ZW4gaWYgdGhlcmUgd2FzIGEgc2NyaXB0IHBh
cnNlIGVycm9yIHNvIHRoZQorICAgICAgICAgIGRlYnVnZ2VyIGNhbiBzaG93IHRoZSBwYXJzZSBl
cnJvci4KKyAgICAgICAgKiBQYXNzIE5TVVJMIG9iamVjdHMgdG8gdGhlIE9iakMgZGVsZWdhdGUg
Zm9yIHRoZSBzY3JpcHQgVVJMcy4KKworICAgICAgICAqIGJyaWRnZS9tYWMvV2ViQ29yZVNjcmlw
dERlYnVnZ2VyLmg6CisgICAgICAgICogYnJpZGdlL21hYy9XZWJDb3JlU2NyaXB0RGVidWdnZXIu
bW06CisgICAgICAgICh0b05TVVJMKToKKyAgICAgICAgKFdlYkNvcmVTY3JpcHREZWJ1Z2dlcklt
cDo6c291cmNlUGFyc2VkKToKKwogMjAwNi0wNi0yNCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJA
a2lsemVyLm5ldD4KIAogICAgICAgICBCdWlsZCBmaXguICBSZXZpZXdlZCBieSBOT0JPRFkuCklu
ZGV4OiBXZWJDb3JlL2JyaWRnZS9tYWMvV2ViQ29yZVNjcmlwdERlYnVnZ2VyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVTY3JpcHREZWJ1Z2dlci5oCShyZXZpc2lv
biAxNTAwNCkKKysrIFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3JlU2NyaXB0RGVidWdnZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCB1c2luZyBLSlM6OkV4ZWNTdGF0ZTsKIC0g
KGlkKW5ld1dyYXBwZXJGb3JGcmFtZTooV2ViQ29yZVNjcmlwdENhbGxGcmFtZSAqKWZyYW1lOyAg
IC8vIHJldHVybiBhIChyZXRhaW5lZCkgc3RhY2stZnJhbWUgb2JqZWN0CiAKIC8vIGRlYnVnZ2Vy
IGNhbGxiYWNrcwotLSAodm9pZClwYXJzZWRTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGZyb21V
Ukw6KE5TU3RyaW5nICopdXJsIHNvdXJjZUlkOihpbnQpc2lkOworLSAodm9pZClwYXJzZWRTb3Vy
Y2U6KE5TU3RyaW5nICopc291cmNlIGZyb21VUkw6KE5TVVJMICopdXJsIHNvdXJjZUlkOihpbnQp
c2lkIHN0YXJ0TGluZTooaW50KXN0YXJ0TGluZSBlcnJvckxpbmU6KGludCllcnJvckxpbmUgZXJy
b3JNZXNzYWdlOihOU1N0cmluZyAqKWVycm9yTWVzc2FnZTsKIC0gKHZvaWQpZW50ZXJlZEZyYW1l
OihXZWJDb3JlU2NyaXB0Q2FsbEZyYW1lICopZnJhbWUgc291cmNlSWQ6KGludClzaWQgbGluZToo
aW50KWxpbmVubzsKIC0gKHZvaWQpaGl0U3RhdGVtZW50OihXZWJDb3JlU2NyaXB0Q2FsbEZyYW1l
ICopZnJhbWUgc291cmNlSWQ6KGludClzaWQgbGluZTooaW50KWxpbmVubzsKIC0gKHZvaWQpbGVh
dmluZ0ZyYW1lOihXZWJDb3JlU2NyaXB0Q2FsbEZyYW1lICopZnJhbWUgc291cmNlSWQ6KGludClz
aWQgbGluZTooaW50KWxpbmVubzsKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3JlU2Ny
aXB0RGVidWdnZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVT
Y3JpcHREZWJ1Z2dlci5tbQkocmV2aXNpb24gMTUwMDQpCisrKyBXZWJDb3JlL2JyaWRnZS9tYWMv
V2ViQ29yZVNjcmlwdERlYnVnZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBA
CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9jb250ZXh0Lmg+CiAKICNpbXBvcnQgIkRlcHJlY2F0
ZWRTdHJpbmcuaCIKKyNpbXBvcnQgIktVUkwuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEtKUzsKIApA
QCAtNjMsNiArNjQsMTIgQEAgc3RhdGljIE5TU3RyaW5nICp0b05TU3RyaW5nKGNvbnN0IFVTdHJp
bgogICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aENoYXJhY3RlcnM6KGNvbnN0IHVuaWNo
YXIgKilzLmRhdGEoKSBsZW5ndGg6cy5zaXplKCldOwogfQogCisvLyBjb252ZXJ0IFVTdHJpbmcg
dG8gTlNVUkwKK3N0YXRpYyBOU1VSTCAqdG9OU1VSTChjb25zdCBVU3RyaW5nICZzKQoreworICAg
IGlmIChzLmlzRW1wdHkoKSkgcmV0dXJuIG5pbDsKKyAgICByZXR1cm4gS1VSTChEZXByZWNhdGVk
U3RyaW5nKHMpKS5nZXROU1VSTCgpOworfQogCiAKIC8vIEMrKyBpbnRlcmZhY2UgdG8gS0pTIGRl
YnVnZ2VyIGNhbGxiYWNrcwpAQCAtODUsMTAgKzkyLDEwIEBAIGNsYXNzIFdlYkNvcmVTY3JpcHRE
ZWJ1Z2dlckltcCA6IHB1YmxpYyAKICAgICB9CiAKICAgICAvLyBjYWxsYmFja3MgLSByZWxheSB0
byBkZWxlZ2F0ZQotICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VQYXJzZWQoRXhlY1N0YXRlICpzdGF0
ZSwgaW50IHNpZCwgY29uc3QgVVN0cmluZyAmdXJsLCBjb25zdCBVU3RyaW5nICZzb3VyY2UsIGlu
dCBlcnJvckxpbmUpIHsKLSAgICAgICAgaWYgKCFfbmVzdGVkICYmIGVycm9yTGluZSA9PSAtMSkg
eworICAgIHZpcnR1YWwgYm9vbCBzb3VyY2VQYXJzZWQoRXhlY1N0YXRlICpzdGF0ZSwgaW50IHNp
ZCwgY29uc3QgVVN0cmluZyAmdXJsLCBjb25zdCBVU3RyaW5nICZzb3VyY2UsIGludCBsaW5lTnVt
YmVyLCBpbnQgZXJyb3JMaW5lLCBjb25zdCBVU3RyaW5nICZlcnJvck1zZykgeworICAgICAgICBp
ZiAoIV9uZXN0ZWQpIHsKICAgICAgICAgICAgIF9uZXN0ZWQgPSB0cnVlOwotICAgICAgICAgICAg
W1tfb2JqYyBkZWxlZ2F0ZV0gcGFyc2VkU291cmNlOnRvTlNTdHJpbmcoc291cmNlKSBmcm9tVVJM
OnRvTlNTdHJpbmcodXJsKSBzb3VyY2VJZDpzaWRdOworICAgICAgICAgICAgW1tfb2JqYyBkZWxl
Z2F0ZV0gcGFyc2VkU291cmNlOnRvTlNTdHJpbmcoc291cmNlKSBmcm9tVVJMOnRvTlNVUkwodXJs
KSBzb3VyY2VJZDpzaWQgc3RhcnRMaW5lOmxpbmVOdW1iZXIgZXJyb3JMaW5lOmVycm9yTGluZSBl
cnJvck1lc3NhZ2U6dG9OU1N0cmluZyhlcnJvck1zZyldOwogICAgICAgICAgICAgX25lc3RlZCA9
IGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwpJbmRleDogV2ViS2l0L0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTAyNSkK
KysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBAQAorMjAw
Ni0wNi0yNSAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDk1NzQ6IERyb3NlcmEg
c2hvdWxkIHNob3cgaW5saW5lIHNjcmlwdHMgd2l0aGluIHRoZSBvcmlnaW5hbCBIVE1MCisgICAg
ICAgIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU3NAor
CisgICAgICAgICogQWRkcyBhIG5ldyB2ZXJzaW9uIG9mIHRoZSBkaWRQYXJzZVNvdXJjZSBkZWxl
Z2F0ZSBjYWxsYmFjayB3aXRoIGJhc2UgbGluZSBudW1iZXIuCisgICAgICAgICogQWRkcyBhIG5l
dyBkZWxlZ2F0ZSBjYWxsYmFjayBmb3Igd2hlbiBhIHNjcmlwdCBmYWlscyB0byBwYXJzZS4KKyAg
ICAgICAgKiBUaGVzZSBuZXcgY2FsbGJhY2tzIHVzZSBOU1VSTHMgZm9yIHRoZSB1cmwgcGFyYW1l
dGVyLgorICAgICAgICAqIEFkZHMgYSBuZXcgc2NyaXB0IGxpc3RlbmVyIGNhbGxiYWNrIHRvIG5v
dGlmeSB3aGVuIHRoZSBtYWluIHJlc291cmNlIGxvYWRzLgorICAgICAgICAqIEFkZHMgYSBXZWJT
Y3JpcHRFcnJvckRvbWlhbiBhbmQgb3RoZXIga2V5cyBmb3IgdXNlIHdpdGggTlNFcnJvci4KKwor
ICAgICAgICAqIERlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFNjcmlwdERlYnVnRGVsZWdhdGUu
bToKKyAgICAgICAgKC1bV2ViRGVmYXVsdFNjcmlwdERlYnVnRGVsZWdhdGUgd2ViVmlldzpkaWRQ
YXJzZVNvdXJjZTpiYXNlTGluZU51bWJlcjpmcm9tVVJMOnNvdXJjZUlkOmZvcldlYkZyYW1lOl0p
OgorICAgICAgICAoLVtXZWJEZWZhdWx0U2NyaXB0RGVidWdEZWxlZ2F0ZSB3ZWJWaWV3OmZhaWxl
ZFRvUGFyc2VTb3VyY2U6YmFzZUxpbmVOdW1iZXI6ZnJvbVVSTDp3aXRoRXJyb3I6Zm9yV2ViRnJh
bWU6XSk6CisgICAgICAgICogRGVmYXVsdERlbGVnYXRlcy9XZWJTY3JpcHREZWJ1Z1NlcnZlci5o
OgorICAgICAgICAqIERlZmF1bHREZWxlZ2F0ZXMvV2ViU2NyaXB0RGVidWdTZXJ2ZXIubToKKyAg
ICAgICAgKC1bV2ViU2NyaXB0RGVidWdTZXJ2ZXIgd2ViVmlldzpkaWRMb2FkTWFpblJlc291cmNl
Rm9yRGF0YVNvdXJjZTpdKToKKyAgICAgICAgKC1bV2ViU2NyaXB0RGVidWdTZXJ2ZXIgd2ViVmll
dzpkaWRQYXJzZVNvdXJjZTpiYXNlTGluZU51bWJlcjpmcm9tVVJMOnNvdXJjZUlkOmZvcldlYkZy
YW1lOl0pOgorICAgICAgICAoLVtXZWJTY3JpcHREZWJ1Z1NlcnZlciB3ZWJWaWV3OmZhaWxlZFRv
UGFyc2VTb3VyY2U6YmFzZUxpbmVOdW1iZXI6ZnJvbVVSTDp3aXRoRXJyb3I6Zm9yV2ViRnJhbWU6
XSk6CisgICAgICAgICogRGVmYXVsdERlbGVnYXRlcy9XZWJTY3JpcHREZWJ1Z1NlcnZlclByaXZh
dGUuaDoKKyAgICAgICAgKiBXZWJLaXQuZXhwOgorICAgICAgICAqIFdlYlZpZXcvV2ViRGF0YVNv
dXJjZS5tOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF9zZXRQcmltYXJ5TG9hZENvbXBsZXRl
Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5oOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5tOgorICAgICAgICAoLVtXZWJTY3Jp
cHRDYWxsRnJhbWUgcGFyc2VkU291cmNlOmZyb21VUkw6c291cmNlSWQ6c3RhcnRMaW5lOmVycm9y
TGluZTplcnJvck1lc3NhZ2U6XSk6CisKIDIwMDYtMDYtMjQgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGtpbHplci5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeS4KSW5kZXg6IFdl
YktpdC9XZWJLaXQuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJLaXQuZXhwCShyZXZpc2lv
biAxNTAwNCkKKysrIFdlYktpdC9XZWJLaXQuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5
Miw5IEBAIF9XZWJTY3JpcHREZWJ1Z1NlcnZlclF1ZXJ5Tm90aWZpY2F0aW9uCiBfV2ViU2NyaXB0
RGVidWdTZXJ2ZXJRdWVyeVJlcGx5Tm90aWZpY2F0aW9uCiBfV2ViU2NyaXB0RGVidWdTZXJ2ZXJE
aWRMb2FkTm90aWZpY2F0aW9uCiBfV2ViU2NyaXB0RGVidWdTZXJ2ZXJXaWxsVW5sb2FkTm90aWZp
Y2F0aW9uCitfV2ViU2NyaXB0RXJyb3JEb21haW4KK19XZWJTY3JpcHRFcnJvckRlc2NyaXB0aW9u
S2V5CitfV2ViU2NyaXB0RXJyb3JMaW5lTnVtYmVyS2V5CiAKICMjCiAjIyBDYXJib24gU3VwcG9y
dApJbmRleDogV2ViS2l0L0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFNjcmlwdERlYnVnRGVs
ZWdhdGUubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0
U2NyaXB0RGVidWdEZWxlZ2F0ZS5tCShyZXZpc2lvbiAxNTAwNCkKKysrIFdlYktpdC9EZWZhdWx0
RGVsZWdhdGVzL1dlYkRlZmF1bHRTY3JpcHREZWJ1Z0RlbGVnYXRlLm0JKHdvcmtpbmcgY29weSkK
QEAgLTQ5LDYgKzQ5LDIyIEBAIHN0YXRpYyBXZWJEZWZhdWx0U2NyaXB0RGVidWdEZWxlZ2F0ZSAq
c2gKIHsKIH0KIAorLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyAgICAgICBkaWRQ
YXJzZVNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYmFzZUxpbmVOdW1iZXI6KHVuc2lnbmVkKWxpbmVOdW1iZXIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VUkw6KE5TVVJM
ICopdXJsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNv
dXJjZUlkOihpbnQpc2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvcldlYkZyYW1lOihXZWJGcmFtZSAqKXdlYkZyYW1lCit7Cit9CisKKy0gKHZvaWQpd2Vi
VmlldzooV2ViVmlldyAqKXdlYlZpZXcgIGZhaWxlZFRvUGFyc2VTb3VyY2U6KE5TU3RyaW5nICop
c291cmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VMaW5l
TnVtYmVyOih1bnNpZ25lZClsaW5lTnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmcm9tVVJMOihOU1VSTCAqKXVybAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9y
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcldlYkZyYW1l
OihXZWJGcmFtZSAqKXdlYkZyYW1lCit7Cit9CisKIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAq
KXdlYlZpZXcgICAgZGlkRW50ZXJDYWxsRnJhbWU6KFdlYlNjcmlwdENhbGxGcmFtZSAqKWZyYW1l
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUlk
OihpbnQpc2lkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsaW5lOihpbnQpbGluZW5vCkluZGV4OiBXZWJLaXQvRGVmYXVsdERlbGVnYXRlcy9XZWJT
Y3JpcHREZWJ1Z1NlcnZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9EZWZhdWx0RGVsZWdhdGVz
L1dlYlNjcmlwdERlYnVnU2VydmVyLmgJKHJldmlzaW9uIDE1MDA0KQorKysgV2ViS2l0L0RlZmF1
bHREZWxlZ2F0ZXMvV2ViU2NyaXB0RGVidWdTZXJ2ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzgs
MTIgKzM4LDIzIEBAIGV4dGVybiBOU1N0cmluZyAqV2ViU2NyaXB0RGVidWdTZXJ2ZXJRdWUKIGV4
dGVybiBOU1N0cmluZyAqV2ViU2NyaXB0RGVidWdTZXJ2ZXJEaWRMb2FkTm90aWZpY2F0aW9uOwog
ZXh0ZXJuIE5TU3RyaW5nICpXZWJTY3JpcHREZWJ1Z1NlcnZlcldpbGxVbmxvYWROb3RpZmljYXRp
b247CiAKK0BjbGFzcyBXZWJEYXRhU291cmNlOworCiBAcHJvdG9jb2wgV2ViU2NyaXB0RGVidWdM
aXN0ZW5lciA8TlNPYmplY3Q+CistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRp
ZExvYWRNYWluUmVzb3VyY2VGb3JEYXRhU291cmNlOihXZWJEYXRhU291cmNlICopZGF0YVNvdXJj
ZTsKKwogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyAgICAgICBkaWRQYXJzZVNv
dXJjZTooTlNTdHJpbmcgKilzb3VyY2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZyb21VUkw6KE5TU3RyaW5nICopdXJsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VMaW5lTnVtYmVyOih1bnNpZ25lZClsaW5lTnVt
YmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9t
VVJMOihOU1VSTCAqKXVybAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzb3VyY2VJZDooaW50KXNpZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmb3JXZWJGcmFtZTooV2ViRnJhbWUgKil3ZWJGcmFtZTsKIAorLSAodm9p
ZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyAgZmFpbGVkVG9QYXJzZVNvdXJjZTooTlNTdHJp
bmcgKilzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFz
ZUxpbmVOdW1iZXI6KHVuc2lnbmVkKWxpbmVOdW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VUkw6KE5TVVJMICopdXJsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEVycm9yOihOU0Vycm9yICop
ZXJyb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yV2Vi
RnJhbWU6KFdlYkZyYW1lICopd2ViRnJhbWU7CisKIC0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAq
KXdlYlZpZXcgICAgZGlkRW50ZXJDYWxsRnJhbWU6KFdlYlNjcmlwdENhbGxGcmFtZSAqKWZyYW1l
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUlk
OihpbnQpc2lkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsaW5lOihpbnQpbGluZW5vCkluZGV4OiBXZWJLaXQvRGVmYXVsdERlbGVnYXRlcy9XZWJT
Y3JpcHREZWJ1Z1NlcnZlci5tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9EZWZhdWx0RGVsZWdhdGVz
L1dlYlNjcmlwdERlYnVnU2VydmVyLm0JKHJldmlzaW9uIDE1MDA0KQorKysgV2ViS2l0L0RlZmF1
bHREZWxlZ2F0ZXMvV2ViU2NyaXB0RGVidWdTZXJ2ZXIubQkod29ya2luZyBjb3B5KQpAQCAtMjAz
LDggKzIwMywyMyBAQCBzdGF0aWMgdW5zaWduZWQgbGlzdGVuZXJDb3VudCA9IDA7CiAgICAgfQog
fQogCistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRpZExvYWRNYWluUmVzb3Vy
Y2VGb3JEYXRhU291cmNlOihXZWJEYXRhU291cmNlICopZGF0YVNvdXJjZQoreworICAgIGlmICgh
W2xpc3RlbmVycyBjb3VudF0pCisgICAgICAgIHJldHVybjsKKworICAgIE5TRW51bWVyYXRvciAq
ZW51bWVyYXRvciA9IFtsaXN0ZW5lcnMgb2JqZWN0RW51bWVyYXRvcl07CisgICAgTlNEaXN0YW50
T2JqZWN0IDxXZWJTY3JpcHREZWJ1Z0xpc3RlbmVyPiAqbGlzdGVuZXIgPSBuaWw7CisKKyAgICB3
aGlsZSAoKGxpc3RlbmVyID0gW2VudW1lcmF0b3IgbmV4dE9iamVjdF0pKSB7CisgICAgICAgIGlm
IChbW2xpc3RlbmVyIGNvbm5lY3Rpb25Gb3JQcm94eV0gaXNWYWxpZF0pCisgICAgICAgICAgICBb
bGlzdGVuZXIgd2ViVmlldzp3ZWJWaWV3IGRpZExvYWRNYWluUmVzb3VyY2VGb3JEYXRhU291cmNl
OmRhdGFTb3VyY2VdOworICAgIH0KK30KKwogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2Vi
VmlldyAgICAgICBkaWRQYXJzZVNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VUkw6KE5TU3RyaW5nICop
dXJsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VMaW5lTnVt
YmVyOih1bnNpZ25lZClsaW5lTnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmcm9tVVJMOihOU1VSTCAqKXVybAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJZDooaW50KXNpZAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JXZWJGcmFtZTooV2ViRnJhbWUg
Kil3ZWJGcmFtZQogewpAQCAtMjE2LDcgKzIzMSwyNSBAQCBzdGF0aWMgdW5zaWduZWQgbGlzdGVu
ZXJDb3VudCA9IDA7CiAKICAgICB3aGlsZSAoKGxpc3RlbmVyID0gW2VudW1lcmF0b3IgbmV4dE9i
amVjdF0pKSB7CiAgICAgICAgIGlmIChbW2xpc3RlbmVyIGNvbm5lY3Rpb25Gb3JQcm94eV0gaXNW
YWxpZF0pCi0gICAgICAgICAgICBbbGlzdGVuZXIgd2ViVmlldzp3ZWJWaWV3IGRpZFBhcnNlU291
cmNlOnNvdXJjZSBmcm9tVVJMOnVybCBzb3VyY2VJZDpzaWQgZm9yV2ViRnJhbWU6d2ViRnJhbWVd
OworICAgICAgICAgICAgW2xpc3RlbmVyIHdlYlZpZXc6d2ViVmlldyBkaWRQYXJzZVNvdXJjZTpz
b3VyY2UgYmFzZUxpbmVOdW1iZXI6bGluZU51bWJlciBmcm9tVVJMOnVybCBzb3VyY2VJZDpzaWQg
Zm9yV2ViRnJhbWU6d2ViRnJhbWVdOworICAgIH0KK30KKworLSAodm9pZCl3ZWJWaWV3OihXZWJW
aWV3ICopd2ViVmlldyAgZmFpbGVkVG9QYXJzZVNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZUxpbmVOdW1iZXI6KHVu
c2lnbmVkKWxpbmVOdW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZyb21VUkw6KE5TVVJMICopdXJsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yV2ViRnJhbWU6KFdlYkZyYW1l
ICopd2ViRnJhbWUKK3sKKyAgICBpZiAoIVtsaXN0ZW5lcnMgY291bnRdKQorICAgICAgICByZXR1
cm47CisKKyAgICBOU0VudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBbbGlzdGVuZXJzIG9iamVjdEVu
dW1lcmF0b3JdOworICAgIE5TRGlzdGFudE9iamVjdCA8V2ViU2NyaXB0RGVidWdMaXN0ZW5lcj4g
Kmxpc3RlbmVyID0gbmlsOworCisgICAgd2hpbGUgKChsaXN0ZW5lciA9IFtlbnVtZXJhdG9yIG5l
eHRPYmplY3RdKSkgeworICAgICAgICBpZiAoW1tsaXN0ZW5lciBjb25uZWN0aW9uRm9yUHJveHld
IGlzVmFsaWRdKQorICAgICAgICAgICAgW2xpc3RlbmVyIHdlYlZpZXc6d2ViVmlldyBmYWlsZWRU
b1BhcnNlU291cmNlOnNvdXJjZSBiYXNlTGluZU51bWJlcjpsaW5lTnVtYmVyIGZyb21VUkw6dXJs
IHdpdGhFcnJvcjplcnJvciBmb3JXZWJGcmFtZTp3ZWJGcmFtZV07CiAgICAgfQogfQogCkluZGV4
OiBXZWJLaXQvRGVmYXVsdERlbGVnYXRlcy9XZWJTY3JpcHREZWJ1Z1NlcnZlclByaXZhdGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvRGVmYXVsdERlbGVnYXRlcy9XZWJTY3JpcHREZWJ1Z1NlcnZl
clByaXZhdGUuaAkocmV2aXNpb24gMTUwMDQpCisrKyBXZWJLaXQvRGVmYXVsdERlbGVnYXRlcy9X
ZWJTY3JpcHREZWJ1Z1NlcnZlclByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTEgKzQy
LDIwIEBACiAtICh2b2lkKWF0dGFjaFNjcmlwdERlYnVnZ2VyVG9BbGxXZWJWaWV3czsKIC0gKHZv
aWQpZGV0YWNoU2NyaXB0RGVidWdnZXJGcm9tQWxsV2ViVmlld3M7CiAKKy0gKHZvaWQpd2ViVmll
dzooV2ViVmlldyAqKXdlYlZpZXcgZGlkTG9hZE1haW5SZXNvdXJjZUZvckRhdGFTb3VyY2U6KFdl
YkRhdGFTb3VyY2UgKilkYXRhU291cmNlOworCiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3
ZWJWaWV3ICAgICAgIGRpZFBhcnNlU291cmNlOihOU1N0cmluZyAqKXNvdXJjZQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVSTDooTlNTdHJpbmcg
Kil1cmwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZUxpbmVO
dW1iZXI6KHVuc2lnbmVkKWxpbmVOdW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZyb21VUkw6KE5TVVJMICopdXJsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUlkOihpbnQpc2lkCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcldlYkZyYW1lOihXZWJGcmFt
ZSAqKXdlYkZyYW1lOwogCistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3ICBmYWls
ZWRUb1BhcnNlU291cmNlOihOU1N0cmluZyAqKXNvdXJjZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBiYXNlTGluZU51bWJlcjoodW5zaWduZWQpbGluZU51bWJlcgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVSTDoo
TlNVUkwgKil1cmwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB3aXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3JXZWJGcmFtZTooV2ViRnJhbWUgKil3ZWJGcmFtZTsKKwogLSAo
dm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyAgICBkaWRFbnRlckNhbGxGcmFtZTooV2Vi
U2NyaXB0Q2FsbEZyYW1lICopZnJhbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc291cmNlSWQ6KGludClzaWQKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmU6KGludClsaW5lbm8KSW5kZXg6IFdlYktp
dC9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViVmlldy9X
ZWJEYXRhU291cmNlLm0JKHJldmlzaW9uIDE1MDA0KQorKysgV2ViS2l0L1dlYlZpZXcvV2ViRGF0
YVNvdXJjZS5tCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW1wb3J0ICJXZWJQ
cmVmZXJlbmNlcy5oIgogI2ltcG9ydCAiV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGUuaCIKICNpbXBv
cnQgIldlYlJlc291cmNlUHJpdmF0ZS5oIgorI2ltcG9ydCAiV2ViU2NyaXB0RGVidWdTZXJ2ZXJQ
cml2YXRlLmgiCiAjaW1wb3J0ICJXZWJVbmFyY2hpdmluZ1N0YXRlLmgiCiAjaW1wb3J0ICJXZWJW
aWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxDb25uZWN0aW9uLmg+CkBA
IC0zNzEsNiArMzcyLDkgQEAKICAgICAgICAgW19wcml2YXRlLT5mcmFtZUxvYWRlciByZWxlYXNl
TWFpblJlc291cmNlTG9hZGVyXTsKICAgICAgICAgCiAgICAgICAgIFtzZWxmIF91cGRhdGVMb2Fk
aW5nXTsKKworICAgICAgICBpZiAoW1dlYlNjcmlwdERlYnVnU2VydmVyIGxpc3RlbmVyQ291bnRd
KQorICAgICAgICAgICAgW1tXZWJTY3JpcHREZWJ1Z1NlcnZlciBzaGFyZWRTY3JpcHREZWJ1Z1Nl
cnZlcl0gd2ViVmlldzpbW3NlbGYgd2ViRnJhbWVdIHdlYlZpZXddIGRpZExvYWRNYWluUmVzb3Vy
Y2VGb3JEYXRhU291cmNlOnNlbGZdOwogICAgIH0KIH0KIApJbmRleDogV2ViS2l0L1dlYlZpZXcv
V2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJWaWV3L1dl
YlNjcmlwdERlYnVnRGVsZWdhdGUuaAkocmV2aXNpb24gMTUwMDQpCisrKyBXZWJLaXQvV2ViVmll
dy9XZWJTY3JpcHREZWJ1Z0RlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE4ICszMywz
OSBAQAogQGNsYXNzIFdlYlNjcmlwdENhbGxGcmFtZTsKIEBjbGFzcyBXZWJDb3JlU2NyaXB0Q2Fs
bEZyYW1lOwogCi0KK2V4dGVybiBOU1N0cmluZyAqIGNvbnN0IFdlYlNjcmlwdEVycm9yRG9tYWlu
OworZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgV2ViU2NyaXB0RXJyb3JEZXNjcmlwdGlvbktleTsK
K2V4dGVybiBOU1N0cmluZyAqIGNvbnN0IFdlYlNjcmlwdEVycm9yTGluZU51bWJlcktleTsKKwor
ZW51bSB7CisgICAgV2ViU2NyaXB0R2VuZXJhbEVycm9yQ29kZSA9IC0xMDAKK307CiAKIC8vIFdl
YlNjcmlwdERlYnVnRGVsZWdhdGUgbWVzc2FnZXMKIAogQGludGVyZmFjZSBOU09iamVjdCAoV2Vi
U2NyaXB0RGVidWdEZWxlZ2F0ZSkKIAogLy8gc29tZSBzb3VyY2Ugd2FzIHBhcnNlZCwgZXN0YWJs
aXNoaW5nIGEgInNvdXJjZSBJRCIgKD49IDApIGZvciBmdXR1cmUgcmVmZXJlbmNlCisvLyB0aGlz
IGRlbGVnYXRlIG1ldGhvZCBpcyBkZXByZWNhdGVkLCBwbGVhc2Ugc3dpdGNoIHRvIHRoZSBuZXcg
dmVyc2lvbiBiZWxvdwogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyAgICAgICBk
aWRQYXJzZVNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21VUkw6KE5TU3RyaW5nICopdXJsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUlkOihpbnQpc2lk
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcldlYkZyYW1l
OihXZWJGcmFtZSAqKXdlYkZyYW1lOwogCisvLyBzb21lIHNvdXJjZSB3YXMgcGFyc2VkLCBlc3Rh
Ymxpc2hpbmcgYSAic291cmNlIElEIiAoPj0gMCkgZm9yIGZ1dHVyZSByZWZlcmVuY2UKKy0gKHZv
aWQpd2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcgICAgICAgZGlkUGFyc2VTb3VyY2U6KE5TU3Ry
aW5nICopc291cmNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJh
c2VMaW5lTnVtYmVyOih1bnNpZ25lZClsaW5lTnVtYmVyCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tVVJMOihOU1VSTCAqKXVybAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJZDooaW50KXNpZAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JXZWJGcmFtZToo
V2ViRnJhbWUgKil3ZWJGcmFtZTsKKworLy8gc29tZSBzb3VyY2UgZmFpbGVkIHRvIHBhcnNlCist
ICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3ICBmYWlsZWRUb1BhcnNlU291cmNlOihO
U1N0cmluZyAqKXNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBiYXNlTGluZU51bWJlcjoodW5zaWduZWQpbGluZU51bWJlcgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbVVSTDooTlNVUkwgKil1cmwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoRXJyb3I6KE5TRXJy
b3IgKillcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b3JXZWJGcmFtZTooV2ViRnJhbWUgKil3ZWJGcmFtZTsKKwogLy8ganVzdCBlbnRlcmVkIGEgc3Rh
Y2sgZnJhbWUgKGkuZS4gY2FsbGVkIGEgZnVuY3Rpb24sIG9yIHN0YXJ0ZWQgZ2xvYmFsIHNjb3Bl
KQogLSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopd2ViVmlldyAgICBkaWRFbnRlckNhbGxGcmFt
ZTooV2ViU2NyaXB0Q2FsbEZyYW1lICopZnJhbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc291cmNlSWQ6KGludClzaWQKSW5kZXg6IFdlYktpdC9XZWJW
aWV3L1dlYlNjcmlwdERlYnVnRGVsZWdhdGUubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvV2ViVmll
dy9XZWJTY3JpcHREZWJ1Z0RlbGVnYXRlLm0JKHJldmlzaW9uIDE1MDA0KQorKysgV2ViS2l0L1dl
YlZpZXcvV2ViU2NyaXB0RGVidWdEZWxlZ2F0ZS5tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMiAr
MjgsMTcgQEAKIAogI2ltcG9ydCAiV2ViU2NyaXB0RGVidWdEZWxlZ2F0ZVByaXZhdGUuaCIKICNp
bXBvcnQgIldlYlNjcmlwdERlYnVnU2VydmVyUHJpdmF0ZS5oIgorI2ltcG9ydCAiV2ViRGF0YVNv
dXJjZS5oIgorI2ltcG9ydCAiV2ViRGF0YVNvdXJjZUludGVybmFsLmgiCiAKICNpbXBvcnQgPFdl
YktpdC9XZWJGcmFtZUJyaWRnZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlZpZXdJbnRlcm5hbC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlU2NyaXB0RGVidWdnZXIuaD4KIAotCisvLyBGSVhN
RTogdGhlc2UgZXJyb3Igc3RyaW5ncyBzaG91bGQgYmUgcHVibGljIGZvciBmdXR1cmUgdXNlIGJ5
IFdlYlNjcmlwdE9iamVjdCBhbmQgaW4gV2ViU2NyaXB0T2JqZWN0LmgKK05TU3RyaW5nICogY29u
c3QgV2ViU2NyaXB0RXJyb3JEb21haW4gPSBAIldlYlNjcmlwdEVycm9yRG9tYWluIjsKK05TU3Ry
aW5nICogY29uc3QgV2ViU2NyaXB0RXJyb3JEZXNjcmlwdGlvbktleSA9IEAiV2ViU2NyaXB0RXJy
b3JEZXNjcmlwdGlvbiI7CitOU1N0cmluZyAqIGNvbnN0IFdlYlNjcmlwdEVycm9yTGluZU51bWJl
cktleSA9IEAiV2ViU2NyaXB0RXJyb3JMaW5lTnVtYmVyIjsKIAogQGludGVyZmFjZSBXZWJTY3Jp
cHRDYWxsRnJhbWUgKFdlYlNjcmlwdERlYnVnRGVsZWdhdGVJbnRlcm5hbCkKIApAQCAtNzEsMTEg
Kzc2LDIyIEBACiAgICAgcmV0dXJuIFtbV2ViU2NyaXB0Q2FsbEZyYW1lIGFsbG9jXSBfaW5pdFdp
dGhGcmFtZTpmcmFtZV07CiB9CiAKLS0gKHZvaWQpcGFyc2VkU291cmNlOihOU1N0cmluZyAqKXNv
dXJjZSBmcm9tVVJMOihOU1N0cmluZyAqKXVybCBzb3VyY2VJZDooaW50KXNpZAorLSAodm9pZClw
YXJzZWRTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGZyb21VUkw6KE5TVVJMICopdXJsIHNvdXJj
ZUlkOihpbnQpc2lkIHN0YXJ0TGluZTooaW50KXN0YXJ0TGluZSBlcnJvckxpbmU6KGludCllcnJv
ckxpbmUgZXJyb3JNZXNzYWdlOihOU1N0cmluZyAqKWVycm9yTWVzc2FnZQogewotICAgIFtbX3dl
YlZpZXcgX3NjcmlwdERlYnVnRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6X3dlYlZpZXcgZGlk
UGFyc2VTb3VyY2U6c291cmNlIGZyb21VUkw6dXJsIHNvdXJjZUlkOnNpZCBmb3JXZWJGcmFtZTpf
d2ViRnJhbWVdOwotICAgIGlmIChbV2ViU2NyaXB0RGVidWdTZXJ2ZXIgbGlzdGVuZXJDb3VudF0p
Ci0gICAgICAgIFtbV2ViU2NyaXB0RGVidWdTZXJ2ZXIgc2hhcmVkU2NyaXB0RGVidWdTZXJ2ZXJd
IHdlYlZpZXc6X3dlYlZpZXcgZGlkUGFyc2VTb3VyY2U6c291cmNlIGZyb21VUkw6dXJsIHNvdXJj
ZUlkOnNpZCBmb3JXZWJGcmFtZTpfd2ViRnJhbWVdOworICAgIGlmIChlcnJvckxpbmUgPT0gLTEp
IHsKKyAgICAgICAgW1tfd2ViVmlldyBfc2NyaXB0RGVidWdEZWxlZ2F0ZUZvcndhcmRlcl0gd2Vi
Vmlldzpfd2ViVmlldyBkaWRQYXJzZVNvdXJjZTpzb3VyY2UgYmFzZUxpbmVOdW1iZXI6c3RhcnRM
aW5lIGZyb21VUkw6dXJsIHNvdXJjZUlkOnNpZCBmb3JXZWJGcmFtZTpfd2ViRnJhbWVdOworICAg
ICAgICBbW193ZWJWaWV3IF9zY3JpcHREZWJ1Z0RlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Ol93
ZWJWaWV3IGRpZFBhcnNlU291cmNlOnNvdXJjZSBmcm9tVVJMOlt1cmwgYWJzb2x1dGVTdHJpbmdd
IHNvdXJjZUlkOnNpZCBmb3JXZWJGcmFtZTpfd2ViRnJhbWVdOyAvLyBkZXByZWNhdGVkIGRlbGVn
YXRlIG1ldGhvZAorICAgICAgICBpZiAoW1dlYlNjcmlwdERlYnVnU2VydmVyIGxpc3RlbmVyQ291
bnRdKQorICAgICAgICAgICAgW1tXZWJTY3JpcHREZWJ1Z1NlcnZlciBzaGFyZWRTY3JpcHREZWJ1
Z1NlcnZlcl0gd2ViVmlldzpfd2ViVmlldyBkaWRQYXJzZVNvdXJjZTpzb3VyY2UgYmFzZUxpbmVO
dW1iZXI6c3RhcnRMaW5lIGZyb21VUkw6dXJsIHNvdXJjZUlkOnNpZCBmb3JXZWJGcmFtZTpfd2Vi
RnJhbWVdOworICAgIH0gZWxzZSB7CisgICAgICAgIE5TRGljdGlvbmFyeSAqaW5mbyA9IFtbTlNE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aE9iamVjdHNBbmRLZXlzOmVycm9yTWVzc2FnZSwgV2Vi
U2NyaXB0RXJyb3JEZXNjcmlwdGlvbktleSwgW05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZElu
dDplcnJvckxpbmVdLCBXZWJTY3JpcHRFcnJvckxpbmVOdW1iZXJLZXksIG5pbF07CisgICAgICAg
IE5TRXJyb3IgKmVycm9yID0gW1tOU0Vycm9yIGFsbG9jXSBpbml0V2l0aERvbWFpbjpXZWJTY3Jp
cHRFcnJvckRvbWFpbiBjb2RlOldlYlNjcmlwdEdlbmVyYWxFcnJvckNvZGUgdXNlckluZm86aW5m
b107CisgICAgICAgIFtbX3dlYlZpZXcgX3NjcmlwdERlYnVnRGVsZWdhdGVGb3J3YXJkZXJdIHdl
YlZpZXc6X3dlYlZpZXcgZmFpbGVkVG9QYXJzZVNvdXJjZTpzb3VyY2UgYmFzZUxpbmVOdW1iZXI6
c3RhcnRMaW5lIGZyb21VUkw6dXJsIHdpdGhFcnJvcjplcnJvciBmb3JXZWJGcmFtZTpfd2ViRnJh
bWVdOworICAgICAgICBpZiAoW1dlYlNjcmlwdERlYnVnU2VydmVyIGxpc3RlbmVyQ291bnRdKQor
ICAgICAgICAgICAgW1tXZWJTY3JpcHREZWJ1Z1NlcnZlciBzaGFyZWRTY3JpcHREZWJ1Z1NlcnZl
cl0gd2ViVmlldzpfd2ViVmlldyBmYWlsZWRUb1BhcnNlU291cmNlOnNvdXJjZSBiYXNlTGluZU51
bWJlcjpzdGFydExpbmUgZnJvbVVSTDp1cmwgd2l0aEVycm9yOmVycm9yIGZvcldlYkZyYW1lOl93
ZWJGcmFtZV07CisgICAgICAgIFtlcnJvciByZWxlYXNlXTsKKyAgICAgICAgW2luZm8gcmVsZWFz
ZV07CisgICAgfQogfQogCiAtICh2b2lkKWVudGVyZWRGcmFtZTooV2ViQ29yZVNjcmlwdENhbGxG
cmFtZSAqKWZyYW1lIHNvdXJjZUlkOihpbnQpc2lkIGxpbmU6KGludClsaW5lbm8KSW5kZXg6IFdl
YktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE1MDI1KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjYgQEAKKzIwMDYtMDYtMjUgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlA
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEJ1ZyA5NTc0OiBEcm9zZXJhIHNob3VsZCBzaG93IGlubGluZSBzY3JpcHRzIHdpdGhpbiB0
aGUgb3JpZ2luYWwgSFRNTAorICAgICAgICBodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcv
c2hvd19idWcuY2dpP2lkPTk1NzQKKworICAgICAgICBSZWZhY3RvciB0aGUgSmF2YVNjcmlwdCBj
b2RlIHRvIGhhdmUgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIGZpbGVzCisgICAgICAgIGFuZCBzY3Jp
cHRzLiBJZiBhIHNjcmlwdCBoYXMgYSBiYXNlIGxpbmUgbnVtYmVyIHBsYWNlIGl0CisgICAgICAg
IGluIHRoZSBjb250ZXh0IG9mIHRoZSBmcmFtZSdzIG1haW4gcmVzb3VyY2UgKHRoZSBIVE1MIGZp
bGUpLgorICAgICAgICBBdCB0aGUgdGltZSBvZiB0aGUgZGlzUGFyc2VTY3JpcHQgY2FsbGJhY2sg
dGhlIG1haW4gcmVzb3VyY2UgbWlnaHQKKyAgICAgICAgbm90IGJlIGNvbXBsZXRlbHkgbG9hZGVk
LCBidXQgRHJvc2VyYSBuZWVkcyB0byBzaG93IHdoYXRldmVyIHdlIGhhdmUKKyAgICAgICAgYXQg
dGhlIHRpbWUuIE9uY2UgdGhlIG1haW4gcmVzb3VyY2UgZmluaXNoZWQgdXBkYXRlIHRoZSBmaWxl
IHNvdXJjZQorICAgICAgICBhbmQgcmVsb2FkIHRoZSBmaWxlIGlmIG5lZWRlZC4KKworICAgICAg
ICAqIERyb3NlcmEvRGVidWdnZXJEb2N1bWVudC5tOgorICAgICAgICAoLVtEZWJ1Z2dlckRvY3Vt
ZW50IHBhdXNlXSk6CisgICAgICAgICgtW0RlYnVnZ2VyRG9jdW1lbnQgd2ViVmlldzpkaWRMb2Fk
TWFpblJlc291cmNlRm9yRGF0YVNvdXJjZTpdKToKKyAgICAgICAgKC1bRGVidWdnZXJEb2N1bWVu
dCB3ZWJWaWV3OmRpZFBhcnNlU291cmNlOmJhc2VMaW5lTnVtYmVyOmZyb21VUkw6c291cmNlSWQ6
Zm9yV2ViRnJhbWU6XSk6CisgICAgICAgICgtW0RlYnVnZ2VyRG9jdW1lbnQgd2ViVmlldzpmYWls
ZWRUb1BhcnNlU291cmNlOmJhc2VMaW5lTnVtYmVyOmZyb21VUkw6d2l0aEVycm9yOmZvcldlYkZy
YW1lOl0pOgorICAgICAgICAqIERyb3NlcmEvZGVidWdnZXIuY3NzOgorICAgICAgICAqIERyb3Nl
cmEvZGVidWdnZXIuanM6CisKIDIwMDYtMDYtMjQgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGtp
bHplci5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBXZWJLaXRUb29s
cy9Ecm9zZXJhL0RlYnVnZ2VyRG9jdW1lbnQubQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9E
cm9zZXJhL0RlYnVnZ2VyRG9jdW1lbnQubQkocmV2aXNpb24gMTUwMDQpCisrKyBXZWJLaXRUb29s
cy9Ecm9zZXJhL0RlYnVnZ2VyRG9jdW1lbnQubQkod29ya2luZyBjb3B5KQpAQCAtOTcsNiArOTcs
NyBAQCBzdGF0aWMgTlNTdHJpbmcgKkRlYnVnZ2VyU3RlcEludG9Ub29sYmFyCiAgICAgcGF1c2Vk
ID0gWUVTOwogICAgIGlmIChbWyhOU0Rpc3RhbnRPYmplY3QgKilzZXJ2ZXIgY29ubmVjdGlvbkZv
clByb3h5XSBpc1ZhbGlkXSkKICAgICAgICAgW3NlcnZlciBwYXVzZV07CisgICAgW1tOU0FwcGxp
Y2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBhY3RpdmF0ZUlnbm9yaW5nT3RoZXJBcHBzOllFU107
CiB9CiAKIC0gKHZvaWQpcmVzdW1lCkBAIC0zMTYsMjEgKzMxNyw2MCBAQCBzdGF0aWMgTlNTdHJp
bmcgKkRlYnVnZ2VyU3RlcEludG9Ub29sYmFyCiAjcHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJr
IERlYnVnIExpc3RlbmVyIENhbGxiYWNrcwogCi0tICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil2
aWV3IGRpZFBhcnNlU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBmcm9tVVJMOihOU1N0cmluZyAq
KXVybCBzb3VyY2VJZDooaW50KXNpZCBmb3JXZWJGcmFtZTooV2ViRnJhbWUgKil3ZWJGcmFtZQor
LSAodm9pZCl3ZWJWaWV3OihXZWJWaWV3ICopdmlldyBkaWRMb2FkTWFpblJlc291cmNlRm9yRGF0
YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2UKK3sKKyAgICBOU1N0cmluZyAqZG9j
dW1lbnRTb3VyY2VDb3B5ID0gbmlsOworICAgIGlkIDxXZWJEb2N1bWVudFJlcHJlc2VudGF0aW9u
PiByZXAgPSBbZGF0YVNvdXJjZSByZXByZXNlbnRhdGlvbl07CisgICAgaWYgKFtyZXAgY2FuUHJv
dmlkZURvY3VtZW50U291cmNlXSkKKyAgICAgICAgZG9jdW1lbnRTb3VyY2VDb3B5ID0gW1tyZXAg
ZG9jdW1lbnRTb3VyY2VdIGNvcHldOworCisgICAgaWYgKCFkb2N1bWVudFNvdXJjZUNvcHkpCisg
ICAgICAgIHJldHVybjsKKworICAgIE5TU3RyaW5nICp1cmxDb3B5ID0gW1tbW2RhdGFTb3VyY2Ug
cmVzcG9uc2VdIFVSTF0gYWJzb2x1dGVTdHJpbmddIGNvcHldOworICAgIE5TQXJyYXkgKmFyZ3Mg
PSBbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOihkb2N1bWVudFNvdXJjZUNvcHkgPyBkb2N1bWVu
dFNvdXJjZUNvcHkgOiBAIiIpLCAodXJsQ29weSA/IHVybENvcHkgOiBAIiIpLCBuaWxdOworICAg
IFtbd2ViVmlldyB3aW5kb3dTY3JpcHRPYmplY3RdIGNhbGxXZWJTY3JpcHRNZXRob2Q6QCJ1cGRh
dGVGaWxlU291cmNlIiB3aXRoQXJndW1lbnRzOmFyZ3NdOworCisgICAgW2RvY3VtZW50U291cmNl
Q29weSByZWxlYXNlXTsKKyAgICBbdXJsQ29weSByZWxlYXNlXTsKK30KKworLSAodm9pZCl3ZWJW
aWV3OihXZWJWaWV3ICopdmlldyBkaWRQYXJzZVNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgYmFz
ZUxpbmVOdW1iZXI6KHVuc2lnbmVkKWJhc2VMaW5lIGZyb21VUkw6KE5TVVJMICopdXJsIHNvdXJj
ZUlkOihpbnQpc2lkIGZvcldlYkZyYW1lOihXZWJGcmFtZSAqKXdlYkZyYW1lCiB7CiAgICAgaWYg
KCF3ZWJWaWV3TG9hZGVkKQogICAgICAgICByZXR1cm47CiAKICAgICBOU1N0cmluZyAqc291cmNl
Q29weSA9IFtzb3VyY2UgY29weV07Ci0gICAgTlNTdHJpbmcgKnVybENvcHkgPSBbdXJsIGNvcHld
OworICAgIGlmICghc291cmNlQ29weSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNTdHJpbmcg
KmRvY3VtZW50U291cmNlQ29weSA9IG5pbDsKKyAgICBOU1N0cmluZyAqdXJsQ29weSA9IFtbdXJs
IGFic29sdXRlU3RyaW5nXSBjb3B5XTsKKworICAgIGlmIChiYXNlTGluZSkgeworICAgICAgICAv
LyBpZiBhIGJhc2UgbGluZSBudW1iZXIgaXMgc3BlY2lmaWVkIHRoaXMgc2NyaXB0IHdhcyBpbmxp
bmUgd2l0aCB0aGUgbWFpbiBkb2N1bWVudAorICAgICAgICBXZWJEYXRhU291cmNlICpkYXRhU291
cmNlID0gW3dlYkZyYW1lIGRhdGFTb3VyY2VdOworICAgICAgICBpZiAoW1tbZGF0YVNvdXJjZSBy
ZXNwb25zZV0gVVJMXSBpc0VxdWFsOnVybF0gfHwgIXVybCkgeworICAgICAgICAgICAgaWQgPFdl
YkRvY3VtZW50UmVwcmVzZW50YXRpb24+IHJlcCA9IFtkYXRhU291cmNlIHJlcHJlc2VudGF0aW9u
XTsKKyAgICAgICAgICAgIGlmIChbcmVwIGNhblByb3ZpZGVEb2N1bWVudFNvdXJjZV0pCisgICAg
ICAgICAgICAgICAgZG9jdW1lbnRTb3VyY2VDb3B5ID0gW1tyZXAgZG9jdW1lbnRTb3VyY2VdIGNv
cHldOworICAgICAgICAgICAgaWYgKCF1cmxDb3B5KQorICAgICAgICAgICAgICAgIHVybENvcHkg
PSBbW1tbZGF0YVNvdXJjZSByZXNwb25zZV0gVVJMXSBhYnNvbHV0ZVN0cmluZ10gY29weV07Cisg
ICAgICAgIH0KKyAgICB9CiAKLSAgICBOU0FycmF5ICphcmdzID0gW05TQXJyYXkgYXJyYXlXaXRo
T2JqZWN0czpzb3VyY2VDb3B5LCAodXJsQ29weSA/IHVybENvcHkgOiBAIiIpLCBbTlNOdW1iZXIg
bnVtYmVyV2l0aEludDpzaWRdLCBuaWxdOworICAgIE5TQXJyYXkgKmFyZ3MgPSBbTlNBcnJheSBh
cnJheVdpdGhPYmplY3RzOnNvdXJjZUNvcHksIChkb2N1bWVudFNvdXJjZUNvcHkgPyBkb2N1bWVu
dFNvdXJjZUNvcHkgOiBAIiIpLCAodXJsQ29weSA/IHVybENvcHkgOiBAIiIpLCBbTlNOdW1iZXIg
bnVtYmVyV2l0aEludDpzaWRdLCBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50OmJhc2VM
aW5lXSwgbmlsXTsKICAgICBbW3dlYlZpZXcgd2luZG93U2NyaXB0T2JqZWN0XSBjYWxsV2ViU2Ny
aXB0TWV0aG9kOkAiZGlkUGFyc2VTY3JpcHQiIHdpdGhBcmd1bWVudHM6YXJnc107CiAKICAgICBb
c291cmNlQ29weSByZWxlYXNlXTsKKyAgICBbZG9jdW1lbnRTb3VyY2VDb3B5IHJlbGVhc2VdOwog
ICAgIFt1cmxDb3B5IHJlbGVhc2VdOwogfQogCistICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil2
aWV3IGZhaWxlZFRvUGFyc2VTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGJhc2VMaW5lTnVtYmVy
Oih1bnNpZ25lZCliYXNlTGluZSBmcm9tVVJMOihOU1VSTCAqKXVybCB3aXRoRXJyb3I6KE5TRXJy
b3IgKillcnJvciBmb3JXZWJGcmFtZTooV2ViRnJhbWUgKil3ZWJGcmFtZQoreworfQorCiAtICh2
b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil2aWV3IGRpZEVudGVyQ2FsbEZyYW1lOihXZWJTY3JpcHRD
YWxsRnJhbWUgKilmcmFtZSBzb3VyY2VJZDooaW50KXNpZCBsaW5lOihpbnQpbGluZW5vIGZvcldl
YkZyYW1lOihXZWJGcmFtZSAqKXdlYkZyYW1lCiB7CiAgICAgaWYgKCF3ZWJWaWV3TG9hZGVkKQpJ
bmRleDogV2ViS2l0VG9vbHMvRHJvc2VyYS9kZWJ1Z2dlci5jc3MKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0VG9vbHMvRHJvc2VyYS9kZWJ1Z2dlci5jc3MJKHJldmlzaW9uIDE1MDA0KQorKysgV2ViS2l0
VG9vbHMvRHJvc2VyYS9kZWJ1Z2dlci5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSwx
NCBAQCBib2R5IHsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyB9CiAKICNtYWluIHsgcG9zaXRpb246
IGFic29sdXRlOyB0b3A6IDA7IGJvdHRvbTogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IH0KICNpbmZv
IHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IGhlaWdodDogMTc1cHg7IGxlZnQ6IDA7IHJp
Z2h0OiAwOyB9Ci0jZGl2aWRlciB7IGN1cnNvcjogbW92ZTsgcG9zaXRpb246IGFic29sdXRlOyBi
b3R0b206IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBiYWNrZ3JvdW5kOiB1cmwoc3BsaXR0ZXJEaW1w
bGUudGlmKSA1MCUgbm8tcmVwZWF0LCB1cmwoc3BsaXR0ZXJCYXIudGlmKSByZXBlYXQteDsgaGVp
Z2h0OiAxMHB4IH0KKyNkaXZpZGVyIHsgY3Vyc29yOiByb3ctcmVzaXplOyBwb3NpdGlvbjogYWJz
b2x1dGU7IGJvdHRvbTogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IGJhY2tncm91bmQ6IHVybChzcGxp
dHRlckRpbXBsZS50aWYpIDUwJSBuby1yZXBlYXQsIHVybChzcGxpdHRlckJhci50aWYpIHJlcGVh
dC14OyBoZWlnaHQ6IDEwcHggfQogI2JvZHkgeyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMTc1
cHg7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IH0KICNzb3VyY2VzQ29udGFpbmVyIHsg
cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDE2cHg7IGxlZnQ6IDA7IHJpZ2h0OiAwOyBib3R0b206
IDIxcHg7IGJhY2tncm91bmQtY29sb3I6IHdoaXRlOyB9CiAjc291cmNlcyB7IHdpZHRoOiAxMDAl
OyBoZWlnaHQ6IDEwMCUgfQogI2hlYWRlciB7IHZlcnRpY2FsLWFsaWduOiB0b3A7IGhlaWdodDog
MTZweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNh
YWE7IGJhY2tncm91bmQ6IHVybChnbG9zc3lIZWFkZXIucG5nKSByZXBlYXQteDsgcG9zaXRpb246
IGFic29sdXRlOyB0b3A6IDA7IGxlZnQ6IDA7IHJpZ2h0OiAwOyB9CiAjaGVhZGVyID4gKiB7IHZl
cnRpY2FsLWFsaWduOiB0b3A7IH0KICNmb290ZXIgeyBoZWlnaHQ6IDIxcHg7IGJveC1zaXppbmc6
IGJvcmRlci1ib3g7IGJvcmRlci10b3A6IDFweCBzb2xpZCAjYWFhOyBiYWNrZ3JvdW5kOiB1cmwo
Z2xvc3N5Rm9vdGVyRmlsbC50aWYpIHJlcGVhdC14OyBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRv
bTogMDsgbGVmdDogMDsgcmlnaHQ6IDA7IH0KLSNpbmZvRGl2aWRlciB7IHBvc2l0aW9uOiBhYnNv
bHV0ZTsgei1pbmRleDogMTA7IHJpZ2h0OiAwOyBsZWZ0OiAwOyB0b3A6IDA7IGJvdHRvbTogOXB4
OyB3aWR0aDogMTBweDsgY3Vyc29yOiBtb3ZlOyBiYWNrZ3JvdW5kOiB1cmwodmVydGljYWxTcGxp
dHRlckRpbXBsZS50aWZmKSA1MCUgbm8tcmVwZWF0LCB1cmwodmVydGljYWxTcGxpdHRlckJhci50
aWZmKSByZXBlYXQteTsgd2lkdGg6IDEwcHg7IH0KKyNpbmZvRGl2aWRlciB7IHBvc2l0aW9uOiBh
YnNvbHV0ZTsgei1pbmRleDogMTA7IHJpZ2h0OiAwOyBsZWZ0OiAwOyB0b3A6IDA7IGJvdHRvbTog
OXB4OyB3aWR0aDogMTBweDsgY3Vyc29yOiBjb2wtcmVzaXplOyBiYWNrZ3JvdW5kOiB1cmwodmVy
dGljYWxTcGxpdHRlckRpbXBsZS50aWZmKSA1MCUgbm8tcmVwZWF0LCB1cmwodmVydGljYWxTcGxp
dHRlckJhci50aWZmKSByZXBlYXQteTsgd2lkdGg6IDEwcHg7IH0KIAogI2ZpbGVzIHsKICAgICBv
cGFjaXR5OiAwOwpAQCAtMjIwLDcgKzIyMCw3IEBAIHRkIHsgcGFkZGluZzogM3B4IDdweCAzcHgg
OXB4OyBoZWlnaHQ6IDEKICAgICBsZWZ0OiAxNjhweDsKICAgICB3aWR0aDogNHB4OwogICAgIGhl
aWdodDogMTZweDsKLSAgICBjdXJzb3I6IG1vdmU7CisgICAgY3Vyc29yOiBjb2wtcmVzaXplOwog
fQogCiAuY29sdW1uIHRoIHsKSW5kZXg6IFdlYktpdFRvb2xzL0Ryb3NlcmEvZGVidWdnZXIuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHJvc2VyYS9kZWJ1Z2dlci5qcwkocmV2aXNpb24g
MTUwMDQpCisrKyBXZWJLaXRUb29scy9Ecm9zZXJhL2RlYnVnZ2VyLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw4ICsyNiwxMCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi12YXIgc291cmNlRmlsZXMg
PSBuZXcgQXJyYXkoKTsKLXZhciBjdXJyZW50U291cmNlSWQgPSAtMTsKK3ZhciBmaWxlcyA9IG5l
dyBBcnJheSgpOwordmFyIGZpbGVzTG9va3VwID0gbmV3IE9iamVjdCgpOwordmFyIHNjcmlwdHMg
PSBuZXcgQXJyYXkoKTsKK3ZhciBjdXJyZW50RmlsZSA9IC0xOwogdmFyIGN1cnJlbnRSb3cgPSBu
dWxsOwogdmFyIGN1cnJlbnRTdGFjayA9IG51bGw7CiB2YXIgcHJldmlvdXNGaWxlcyA9IG5ldyBB
cnJheSgpOwpAQCAtMjA3LDIwICsyMDksMjAgQEAgZnVuY3Rpb24gc3RlcEludG8oKQogICAgIERl
YnVnZ2VyRG9jdW1lbnQuc3RlcEludG8oKTsKIH0KIAotZnVuY3Rpb24gaGFzU3R5bGVDbGFzcyhl
bGVtZW50LGNsYXNzTmFtZSkKK2Z1bmN0aW9uIGhhc1N0eWxlQ2xhc3MoZWxlbWVudCwgY2xhc3NO
YW1lKQogewogICAgIHJldHVybiAoIGVsZW1lbnQuY2xhc3NOYW1lLmluZGV4T2YoY2xhc3NOYW1l
KSAhPSAtMSApOwogfQogCi1mdW5jdGlvbiBhZGRTdHlsZUNsYXNzKGVsZW1lbnQsY2xhc3NOYW1l
KQorZnVuY3Rpb24gYWRkU3R5bGVDbGFzcyhlbGVtZW50LCBjbGFzc05hbWUpCiB7Ci0gICAgaWYg
KCFoYXNTdHlsZUNsYXNzKGVsZW1lbnQsY2xhc3NOYW1lKSkKLSAgICAgICAgZWxlbWVudC5jbGFz
c05hbWUgKz0gKCBlbGVtZW50LmNsYXNzTmFtZS5sZW5ndGggPyAiICIgKyBjbGFzc05hbWUgOiBj
bGFzc05hbWUgKTsKKyAgICBpZiAoIWhhc1N0eWxlQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSkK
KyAgICAgICAgZWxlbWVudC5jbGFzc05hbWUgKz0gKGVsZW1lbnQuY2xhc3NOYW1lLmxlbmd0aCA/
ICIgIiArIGNsYXNzTmFtZSA6IGNsYXNzTmFtZSk7CiB9CiAKLWZ1bmN0aW9uIHJlbW92ZVN0eWxl
Q2xhc3MoZWxlbWVudCxjbGFzc05hbWUpCitmdW5jdGlvbiByZW1vdmVTdHlsZUNsYXNzKGVsZW1l
bnQsIGNsYXNzTmFtZSkKIHsKLSAgICBpZiAoaGFzU3R5bGVDbGFzcyhlbGVtZW50LGNsYXNzTmFt
ZSkpCisgICAgaWYgKGhhc1N0eWxlQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKSkKICAgICAgICAg
ZWxlbWVudC5jbGFzc05hbWUgPSBlbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKGNsYXNzTmFtZSwg
IiIpOwogfQogCkBAIC0yMzAsMTkgKzIzMiwxOSBAQCBmdW5jdGlvbiBhZGRCcmVha1BvaW50KGV2
ZW50KQogICAgIGlmIChoYXNTdHlsZUNsYXNzKHJvdywgImJyZWFrcG9pbnQiKSkgewogICAgICAg
ICBpZiAoaGFzU3R5bGVDbGFzcyhyb3csICJkaXNhYmxlZCIpKSB7CiAgICAgICAgICAgICByZW1v
dmVTdHlsZUNsYXNzKHJvdywgImRpc2FibGVkIik7Ci0gICAgICAgICAgICBzb3VyY2VGaWxlc1tj
dXJyZW50U291cmNlSWRdLmJyZWFrcG9pbnRzW3BhcnNlSW50KGV2ZW50LnRhcmdldC50aXRsZSld
ID0gMTsKKyAgICAgICAgICAgIGZpbGVzW2N1cnJlbnRGaWxlXS5icmVha3BvaW50c1twYXJzZUlu
dChldmVudC50YXJnZXQudGl0bGUpXSA9IDE7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBhZGRTdHlsZUNsYXNzKHJvdywgImRpc2FibGVkIik7Ci0gICAgICAgICAgICBzb3VyY2VGaWxl
c1tjdXJyZW50U291cmNlSWRdLmJyZWFrcG9pbnRzW3BhcnNlSW50KGV2ZW50LnRhcmdldC50aXRs
ZSldID0gLTE7CisgICAgICAgICAgICBmaWxlc1tjdXJyZW50RmlsZV0uYnJlYWtwb2ludHNbcGFy
c2VJbnQoZXZlbnQudGFyZ2V0LnRpdGxlKV0gPSAtMTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7
CiAgICAgICAgIGFkZFN0eWxlQ2xhc3Mocm93LCAiYnJlYWtwb2ludCIpOwogICAgICAgICByZW1v
dmVTdHlsZUNsYXNzKHJvdywgImRpc2FibGVkIik7Ci0gICAgICAgIHNvdXJjZUZpbGVzW2N1cnJl
bnRTb3VyY2VJZF0uYnJlYWtwb2ludHNbcGFyc2VJbnQoZXZlbnQudGFyZ2V0LnRpdGxlKV0gPSAx
OworICAgICAgICBmaWxlc1tjdXJyZW50RmlsZV0uYnJlYWtwb2ludHNbcGFyc2VJbnQoZXZlbnQu
dGFyZ2V0LnRpdGxlKV0gPSAxOwogICAgIH0KIH0KIAotZnVuY3Rpb24gdG90YWxPZmZzZXRUb3Ao
ZWxlbWVudCxzdG9wKQorZnVuY3Rpb24gdG90YWxPZmZzZXRUb3AoZWxlbWVudCwgc3RvcCkKIHsK
ICAgICB2YXIgY3VycmVudFRvcCA9IDA7CiAgICAgaWYgKGVsZW1lbnQub2Zmc2V0UGFyZW50KSB7
CkBAIC0yNTgsOCArMjYwLDggQEAgZnVuY3Rpb24gdG90YWxPZmZzZXRUb3AoZWxlbWVudCxzdG9w
KQogCiBmdW5jdGlvbiBzd2l0Y2hGaWxlKCkKIHsKLSAgICB2YXIgZmlsZXMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZmlsZXMiKTsKLSAgICBsb2FkU291cmNlKGZpbGVzLm9wdGlvbnNbZmls
ZXMuc2VsZWN0ZWRJbmRleF0udmFsdWUsdHJ1ZSk7CisgICAgdmFyIGZpbGVzU2VsZWN0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVzIik7CisgICAgbG9hZEZpbGUoZmlsZXNTZWxlY3Qu
b3B0aW9uc1tmaWxlc1NlbGVjdC5zZWxlY3RlZEluZGV4XS52YWx1ZSwgdHJ1ZSk7CiB9CiAKIGZ1
bmN0aW9uIHN5bnRheEhpZ2hsaWdodChjb2RlKQpAQCAtNDA2LDIwICs0MDgsMjAgQEAgZnVuY3Rp
b24gbmF2RmlsZVByZXZpb3VzKGVsZW1lbnQpCiB7CiAgICAgaWYgKGVsZW1lbnQuZGlzYWJsZWQp
CiAgICAgICAgIHJldHVybjsKLSAgICB2YXIgbGFzdFNvdXJjZSA9IHByZXZpb3VzRmlsZXMucG9w
KCk7Ci0gICAgaWYgKGN1cnJlbnRTb3VyY2VJZCAhPSAtMSkKLSAgICAgICAgbmV4dEZpbGVzLnVu
c2hpZnQoY3VycmVudFNvdXJjZUlkKTsKLSAgICBsb2FkU291cmNlKGxhc3RTb3VyY2UsIGZhbHNl
KTsKKyAgICB2YXIgbGFzdEZpbGUgPSBwcmV2aW91c0ZpbGVzLnBvcCgpOworICAgIGlmIChjdXJy
ZW50RmlsZSAhPSAtMSkKKyAgICAgICAgbmV4dEZpbGVzLnVuc2hpZnQoY3VycmVudEZpbGUpOwor
ICAgIGxvYWRGaWxlKGxhc3RGaWxlLCBmYWxzZSk7CiB9CiAKIGZ1bmN0aW9uIG5hdkZpbGVOZXh0
KGVsZW1lbnQpCiB7CiAgICAgaWYgKGVsZW1lbnQuZGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsK
LSAgICB2YXIgbGFzdFNvdXJjZSA9IG5leHRGaWxlcy5zaGlmdCgpOwotICAgIGlmIChjdXJyZW50
U291cmNlSWQgIT0gLTEpCi0gICAgICAgIHByZXZpb3VzRmlsZXMucHVzaChjdXJyZW50U291cmNl
SWQpOwotICAgIGxvYWRTb3VyY2UobGFzdFNvdXJjZSwgZmFsc2UpOworICAgIHZhciBsYXN0Rmls
ZSA9IG5leHRGaWxlcy5zaGlmdCgpOworICAgIGlmIChjdXJyZW50RmlsZSAhPSAtMSkKKyAgICAg
ICAgcHJldmlvdXNGaWxlcy5wdXNoKGN1cnJlbnRGaWxlKTsKKyAgICBsb2FkRmlsZShsYXN0Rmls
ZSwgZmFsc2UpOwogfQogCiBmdW5jdGlvbiB1cGRhdGVGdW5jdGlvblN0YWNrKCkKQEAgLTQ1NSwy
OCArNDU3LDI5IEBAIGZ1bmN0aW9uIHVwZGF0ZUZ1bmN0aW9uU3RhY2soKQogICAgIHN0YWNrZnJh
bWVUYWJsZS5hcHBlbmRDaGlsZCh0cik7CiB9CiAKLWZ1bmN0aW9uIGxvYWRTb3VyY2Uoc291cmNl
SWQsbWFuYWdlTmF2TGlzdHMpCitmdW5jdGlvbiBsb2FkRmlsZShmaWxlSW5kZXgsIG1hbmFnZU5h
dkxpc3RzKQogewotICAgIGlmICghc291cmNlRmlsZXNbc291cmNlSWRdKQorICAgIHZhciBmaWxl
ID0gZmlsZXNbZmlsZUluZGV4XTsKKyAgICBpZiAoIWZpbGUpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChjdXJyZW50U291cmNlSWQgIT0gLTEgJiYgc291cmNlRmlsZXNbY3VycmVudFNvdXJj
ZUlkXSAmJiBzb3VyY2VGaWxlc1tjdXJyZW50U291cmNlSWRdLmVsZW1lbnQpCi0gICAgICAgIHNv
dXJjZUZpbGVzW2N1cnJlbnRTb3VyY2VJZF0uZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUi
OworICAgIGlmIChjdXJyZW50RmlsZSAhPSAtMSAmJiBmaWxlc1tjdXJyZW50RmlsZV0gJiYgZmls
ZXNbY3VycmVudEZpbGVdLmVsZW1lbnQpCisgICAgICAgIGZpbGVzW2N1cnJlbnRGaWxlXS5lbGVt
ZW50LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAKLSAgICBpZiAoIXNvdXJjZUZpbGVzW3NvdXJj
ZUlkXS5sb2FkZWQpIHsKLSAgICAgICAgc291cmNlRmlsZXNbc291cmNlSWRdLmxpbmVzID0gc291
cmNlRmlsZXNbc291cmNlSWRdLnNvdXJjZS5zcGxpdCgiXG4iKTsKKyAgICBpZiAoIWZpbGUubG9h
ZGVkKSB7CisgICAgICAgIGZpbGUubGluZXMgPSBmaWxlLnNvdXJjZS5zcGxpdCgiXG4iKTsKIAog
ICAgICAgICB2YXIgc291cmNlc0RvY3VtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNv
dXJjZXMiKS5jb250ZW50RG9jdW1lbnQ7CiAgICAgICAgIHZhciBzb3VyY2VzRGl2ID0gc291cmNl
c0RvY3VtZW50LmJvZHk7CiAgICAgICAgIHZhciBzb3VyY2VEaXYgPSBzb3VyY2VzRG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgICAgIHNvdXJjZURpdi5pZCA9ICJzb3VyY2UiICsg
c291cmNlSWQ7CisgICAgICAgIHNvdXJjZURpdi5pZCA9ICJmaWxlIiArIGZpbGVJbmRleDsKICAg
ICAgICAgc291cmNlc0Rpdi5hcHBlbmRDaGlsZChzb3VyY2VEaXYpOwotICAgICAgICBzb3VyY2VG
aWxlc1tzb3VyY2VJZF0uZWxlbWVudCA9IHNvdXJjZURpdjsKKyAgICAgICAgZmlsZS5lbGVtZW50
ID0gc291cmNlRGl2OwogCiAgICAgICAgIHZhciB0YWJsZSA9IHNvdXJjZXNEb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJ0YWJsZSIpOwogICAgICAgICBzb3VyY2VEaXYuYXBwZW5kQ2hpbGQodGFibGUp
OwogCi0gICAgICAgIHZhciBsaW5lcyA9IHN5bnRheEhpZ2hsaWdodChzb3VyY2VGaWxlc1tzb3Vy
Y2VJZF0uc291cmNlKS5zcGxpdCgiXG4iKTsKKyAgICAgICAgdmFyIGxpbmVzID0gc3ludGF4SGln
aGxpZ2h0KGZpbGUuc291cmNlKS5zcGxpdCgiXG4iKTsKICAgICAgICAgZm9yKCB2YXIgaSA9IDA7
IGkgPCBsaW5lcy5sZW5ndGg7IGkrKyApIHsKICAgICAgICAgICAgIHZhciB0ciA9IHNvdXJjZXNE
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpOwogICAgICAgICAgICAgdmFyIHRkID0gc291cmNl
c0RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7CkBAIC00OTIsNzQgKzQ5NSwxMTkgQEAgZnVu
Y3Rpb24gbG9hZFNvdXJjZShzb3VyY2VJZCxtYW5hZ2VOYXZMaQogICAgICAgICAgICAgdGFibGUu
YXBwZW5kQ2hpbGQodHIpOwogICAgICAgICB9CiAKLSAgICAgICAgc291cmNlRmlsZXNbc291cmNl
SWRdLmxvYWRlZCA9IHRydWU7CisgICAgICAgIGZpbGUubG9hZGVkID0gdHJ1ZTsKICAgICB9CiAK
LSAgICBzb3VyY2VGaWxlc1tzb3VyY2VJZF0uZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gbnVsbDsK
KyAgICBmaWxlLmVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IG51bGw7CiAKLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZmlsZXNQb3B1cEJ1dHRvbkNvbnRlbnQiKS5pbm5lclRleHQgPSBzb3Vy
Y2VGaWxlc1tzb3VyY2VJZF0udXJsOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxl
c1BvcHVwQnV0dG9uQ29udGVudCIpLmlubmVyVGV4dCA9IChmaWxlLnVybCA/IGZpbGUudXJsIDog
Iih1bmtub3duIHNjcmlwdCkiKTsKICAgICAKLSAgICB2YXIgZmlsZXMgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZmlsZXMiKTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmNoaWxk
Tm9kZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgaWYgKGZpbGVzLmNoaWxkTm9kZXNbaV0udmFs
dWUgPT0gc291cmNlSWQpIHsKLSAgICAgICAgICAgIGZpbGVzLnNlbGVjdGVkSW5kZXggPSBpOwor
ICAgIHZhciBmaWxlc1NlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlcyIpOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXNTZWxlY3QuY2hpbGROb2Rlcy5sZW5ndGg7IGkr
KykgeworICAgICAgICBpZiAoZmlsZXNTZWxlY3QuY2hpbGROb2Rlc1tpXS52YWx1ZSA9PSBmaWxl
SW5kZXgpIHsKKyAgICAgICAgICAgIGZpbGVzU2VsZWN0LnNlbGVjdGVkSW5kZXggPSBpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAobWFuYWdlTmF2TGlz
dHMpIHsKICAgICAgICAgbmV4dEZpbGVzID0gbmV3IEFycmF5KCk7Ci0gICAgICAgIGlmIChjdXJy
ZW50U291cmNlSWQgIT0gLTEpCi0gICAgICAgICAgICBwcmV2aW91c0ZpbGVzLnB1c2goY3VycmVu
dFNvdXJjZUlkKTsKKyAgICAgICAgaWYgKGN1cnJlbnRGaWxlICE9IC0xKQorICAgICAgICAgICAg
cHJldmlvdXNGaWxlcy5wdXNoKGN1cnJlbnRGaWxlKTsKICAgICB9CiAKICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgibmF2RmlsZUxlZnRCdXR0b24iKS5kaXNhYmxlZCA9IChwcmV2aW91c0Zp
bGVzLmxlbmd0aCA9PSAwKTsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF2RmlsZVJp
Z2h0QnV0dG9uIikuZGlzYWJsZWQgPSAobmV4dEZpbGVzLmxlbmd0aCA9PSAwKTsKIAotICAgIGN1
cnJlbnRTb3VyY2VJZCA9IHNvdXJjZUlkOworICAgIGN1cnJlbnRGaWxlID0gZmlsZUluZGV4Owog
fQogCi1mdW5jdGlvbiBkaWRQYXJzZVNjcmlwdChzb3VyY2UsdXJsLHNvdXJjZUlkKQorZnVuY3Rp
b24gdXBkYXRlRmlsZVNvdXJjZShzb3VyY2UsIHVybCkKIHsKLSAgICBzb3VyY2VGaWxlc1tzb3Vy
Y2VJZF0gPSBuZXcgT2JqZWN0KCk7Ci0gICAgc291cmNlRmlsZXNbc291cmNlSWRdLnNvdXJjZSA9
IHNvdXJjZTsKLSAgICBzb3VyY2VGaWxlc1tzb3VyY2VJZF0udXJsID0gdXJsOwotICAgIHNvdXJj
ZUZpbGVzW3NvdXJjZUlkXS5sb2FkZWQgPSBmYWxzZTsKLSAgICBzb3VyY2VGaWxlc1tzb3VyY2VJ
ZF0uYnJlYWtwb2ludHMgPSBuZXcgQXJyYXkoKTsKKyAgICB2YXIgZmlsZUluZGV4ID0gZmlsZXNM
b29rdXBbdXJsXTsKKyAgICBpZiAoIWZpbGVJbmRleCkKKyAgICAgICAgcmV0dXJuOwogCi0gICAg
dmFyIGZpbGVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGVzIik7Ci0gICAgdmFyIG9w
dGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOwotICAgIHNvdXJjZUZpbGVz
W3NvdXJjZUlkXS5tZW51T3B0aW9uID0gb3B0aW9uOwotICAgIG9wdGlvbi52YWx1ZSA9IHNvdXJj
ZUlkOwotICAgIG9wdGlvbi50ZXh0ID0gdXJsOwotICAgIGZpbGVzLmFwcGVuZENoaWxkKG9wdGlv
bik7CisgICAgdmFyIGZpbGUgPSBmaWxlc1tmaWxlSW5kZXhdOworICAgIGlmIChmaWxlLnNvdXJj
ZS5sZW5ndGggIT0gc291cmNlLmxlbmd0aCkgeworICAgICAgICBmaWxlLnNvdXJjZSA9IHNvdXJj
ZTsKKyAgICAgICAgZmlsZS5sb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgZmlsZS5saW5lcyA9IG51
bGw7CisKKyAgICAgICAgaWYgKGZpbGUuZWxlbWVudCkgeworICAgICAgICAgICAgZmlsZS5lbGVt
ZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZmlsZS5lbGVtZW50KTsKKyAgICAgICAgICAgIGZp
bGUuZWxlbWVudCA9IG51bGw7CisgICAgICAgIH0KIAotICAgIGlmIChjdXJyZW50U291cmNlSWQg
PT0gLTEpCi0gICAgICAgIGxvYWRTb3VyY2Uoc291cmNlSWQsdHJ1ZSk7Ci0gICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIGlmIChjdXJyZW50RmlsZSA9PSBmaWxlSW5kZXgpCisgICAgICAgICAgICBs
b2FkRmlsZShmaWxlSW5kZXgsIGZhbHNlKTsKKyAgICB9CiB9CiAKLWZ1bmN0aW9uIHdpbGxFeGVj
dXRlU3RhdGVtZW50KHNvdXJjZUlkLGxpbmUpCitmdW5jdGlvbiBkaWRQYXJzZVNjcmlwdChzb3Vy
Y2UsIGZpbGVTb3VyY2UsIHVybCwgc291cmNlSWQsIGJhc2VMaW5lTnVtYmVyKQogewotICAgIGlm
IChsaW5lIDw9IDAgfHwgIXNvdXJjZUZpbGVzW3NvdXJjZUlkXSkKKyAgICB2YXIgZmlsZUluZGV4
ID0gZmlsZXNMb29rdXBbdXJsXTsKKyAgICB2YXIgZmlsZSA9IGZpbGVzW2ZpbGVJbmRleF07Cisg
ICAgaWYgKCFmaWxlSW5kZXggfHwgIWZpbGUpIHsKKyAgICAgICAgZmlsZUluZGV4ID0gZmlsZXMu
bGVuZ3RoICsgMTsKKyAgICAgICAgaWYgKHVybC5sZW5ndGgpCisgICAgICAgICAgICBmaWxlc0xv
b2t1cFt1cmxdID0gZmlsZUluZGV4OworCisgICAgICAgIGZpbGUgPSBuZXcgT2JqZWN0KCk7Cisg
ICAgICAgIGZpbGUuc2NyaXB0cyA9IG5ldyBBcnJheSgpOworICAgICAgICBmaWxlLmJyZWFrcG9p
bnRzID0gbmV3IEFycmF5KCk7CisgICAgICAgIGZpbGUuc291cmNlID0gKGZpbGVTb3VyY2UubGVu
Z3RoID8gZmlsZVNvdXJjZSA6IHNvdXJjZSk7CisgICAgICAgIGZpbGUudXJsID0gKHVybC5sZW5n
dGggPyB1cmwgOiBudWxsKTsKKyAgICAgICAgZmlsZS5sb2FkZWQgPSBmYWxzZTsKKworICAgICAg
ICBmaWxlc1tmaWxlSW5kZXhdID0gZmlsZTsKKworICAgICAgICB2YXIgZmlsZXNTZWxlY3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZXMiKTsKKyAgICAgICAgdmFyIG9wdGlvbiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOworICAgICAgICBmaWxlc1tmaWxlSW5kZXhd
Lm1lbnVPcHRpb24gPSBvcHRpb247CisgICAgICAgIG9wdGlvbi52YWx1ZSA9IGZpbGVJbmRleDsK
KyAgICAgICAgb3B0aW9uLnRleHQgPSAoZmlsZS51cmwgPyBmaWxlLnVybCA6ICIodW5rbm93biBz
Y3JpcHQpIik7CisgICAgICAgIGZpbGVzU2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CisgICAg
fQorCisgICAgdmFyIHNvdXJjZU9iaiA9IG5ldyBPYmplY3QoKTsKKyAgICBzb3VyY2VPYmouc291
cmNlID0gc291cmNlOworICAgIHNvdXJjZU9iai5maWxlID0gZmlsZUluZGV4OworICAgIHNvdXJj
ZU9iai5iYXNlTGluZU51bWJlciA9IGJhc2VMaW5lTnVtYmVyOworICAgIGZpbGUuc2NyaXB0cy5w
dXNoKHNvdXJjZUlkKTsKKworICAgIHNjcmlwdHNbc291cmNlSWRdID0gc291cmNlT2JqOworCisg
ICAgaWYgKGN1cnJlbnRGaWxlID09IC0xKQorICAgICAgICBsb2FkRmlsZShmaWxlSW5kZXgsIHRy
dWUpOworfQorCitmdW5jdGlvbiB3aWxsRXhlY3V0ZVN0YXRlbWVudChzb3VyY2VJZCwgbGluZSkK
K3sKKyAgICB2YXIgc2NyaXB0ID0gc2NyaXB0c1tzb3VyY2VJZF07CisgICAgaWYgKGxpbmUgPD0g
MCB8fCAhc2NyaXB0KQorICAgICAgICByZXR1cm47CisKKyAgICB2YXIgZmlsZSA9IGZpbGVzW3Nj
cmlwdC5maWxlXTsKKyAgICBpZiAoIWZpbGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChz
b3VyY2VGaWxlc1tzb3VyY2VJZF0uYnJlYWtwb2ludHNbbGluZV0gPT0gMSkKKyAgICBpZiAoZmls
ZS5icmVha3BvaW50c1tsaW5lXSA9PSAxKQogICAgICAgICBwYXVzZSgpOwogCiAgICAgaWYgKGlz
UGF1c2VkKCkpIHsKLSAgICAgICAgaWYgKGN1cnJlbnRTb3VyY2VJZCAhPSBzb3VyY2VJZCkKLSAg
ICAgICAgICAgIGxvYWRTb3VyY2Uoc291cmNlSWQsdHJ1ZSk7CisgICAgICAgIGlmIChjdXJyZW50
RmlsZSAhPSBzY3JpcHQuZmlsZSkKKyAgICAgICAgICAgIGxvYWRGaWxlKHNjcmlwdC5maWxlLCB0
cnVlKTsKICAgICAgICAgaWYgKGN1cnJlbnRSb3cpCiAgICAgICAgICAgICByZW1vdmVTdHlsZUNs
YXNzKGN1cnJlbnRSb3csICJjdXJyZW50Iik7Ci0gICAgICAgIGlmICghc291cmNlRmlsZXNbc291
cmNlSWRdLmVsZW1lbnQpCisgICAgICAgIGlmICghZmlsZS5lbGVtZW50KQogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBpZiAoc291cmNlRmlsZXNbc291cmNlSWRdLmVsZW1lbnQuZmlyc3RD
aGlsZC5jaGlsZE5vZGVzLmxlbmd0aCA8IGxpbmUpCisgICAgICAgIGlmIChmaWxlLmVsZW1lbnQu
Zmlyc3RDaGlsZC5jaGlsZE5vZGVzLmxlbmd0aCA8IGxpbmUpCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgdXBkYXRlRnVuY3Rpb25TdGFjaygpOwogCi0gICAgICAgIGN1cnJlbnRSb3cg
PSBzb3VyY2VGaWxlc1tzb3VyY2VJZF0uZWxlbWVudC5maXJzdENoaWxkLmNoaWxkTm9kZXMuaXRl
bShsaW5lIC0gMSk7CisgICAgICAgIGN1cnJlbnRSb3cgPSBmaWxlLmVsZW1lbnQuZmlyc3RDaGls
ZC5jaGlsZE5vZGVzLml0ZW0obGluZSAtIDEpOwogICAgICAgICBhZGRTdHlsZUNsYXNzKGN1cnJl
bnRSb3csICJjdXJyZW50Iik7CiAKICAgICAgICAgdmFyIHNvdXJjZXNEaXYgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic291cmNlcyIpOwpAQCAtNTcxLDEyICs2MTksMTIgQEAgZnVuY3Rpb24g
d2lsbEV4ZWN1dGVTdGF0ZW1lbnQoc291cmNlSWQsbAogICAgIH0KIH0KIAotZnVuY3Rpb24gZGlk
RW50ZXJDYWxsRnJhbWUoc291cmNlSWQsbGluZSkKK2Z1bmN0aW9uIGRpZEVudGVyQ2FsbEZyYW1l
KHNvdXJjZUlkLCBsaW5lKQogewotICAgIHdpbGxFeGVjdXRlU3RhdGVtZW50KHNvdXJjZUlkLGxp
bmUpOworICAgIHdpbGxFeGVjdXRlU3RhdGVtZW50KHNvdXJjZUlkLCBsaW5lKTsKIH0KIAotZnVu
Y3Rpb24gd2lsbExlYXZlQ2FsbEZyYW1lKHNvdXJjZUlkLGxpbmUpCitmdW5jdGlvbiB3aWxsTGVh
dmVDYWxsRnJhbWUoc291cmNlSWQsIGxpbmUpCiB7Ci0gICAgd2lsbEV4ZWN1dGVTdGF0ZW1lbnQo
c291cmNlSWQsbGluZSk7CisgICAgd2lsbEV4ZWN1dGVTdGF0ZW1lbnQoc291cmNlSWQsIGxpbmUp
OwogfQo=
</data>
<flag name="review"
          id="2670"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>