<?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>37111</bug_id>
          
          <creation_ts>2010-04-05 13:43:00 -0700</creation_ts>
          <short_desc>Draw replacement text when plug-in host crashes</short_desc>
          <delta_ts>2010-04-05 14:49:41 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>208676</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-04-05 13:43:00 -0700</bug_when>
    <thetext>Currently, it&apos;s just an empty space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208677</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-04-05 13:43:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/7790327&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208681</commentid>
    <comment_count>2</comment_count>
      <attachid>52566</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-04-05 14:04:21 -0700</bug_when>
    <thetext>Created attachment 52566
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208685</commentid>
    <comment_count>3</comment_count>
      <attachid>52566</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-05 14:09:50 -0700</bug_when>
    <thetext>Comment on attachment 52566
proposed patch

&gt;      , m_showsMissingPluginIndicator(false)
&gt; +    , m_showsCrashedPluginIndicator(false)

An enum would be better than two booleans. We never want to show both.

&gt;      void setShowsMissingPluginIndicator(bool showsMissingPluginIndicator) { m_showsMissingPluginIndicator = showsMissingPluginIndicator; }
&gt;      bool showsMissingPluginIndicator() const { return m_showsMissingPluginIndicator; }
&gt; +    void setShowsCrashedPluginIndicator(bool showsCrashedPluginIndicator) { m_showsCrashedPluginIndicator = showsCrashedPluginIndicator; }
&gt; +    bool showsCrashedPluginIndicator() const { return m_showsCrashedPluginIndicator; }

I know that someone (Simon) suggested adding the getter to Kevin&apos;s original patch, but I don&apos;t think we need the getters. Nor do I think we need a way to set either value to false.

&gt; +2010-04-05  Alexey Proskuryakov  &lt;ap@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=37111
&gt; +        &lt;rdar://problem/7790327&gt; Draw replacement text when plug-in host crashes
&gt; +
&gt; +        * English.lproj/Localizable.strings: Added a string for plug-in failure.
&gt; +
&gt; +2010-04-05  Alexey Proskuryakov  &lt;ap@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Need a short description and bug URL (OOPS!)
&gt; +
&gt; +        * English.lproj/Localizable.strings:
&gt; +

Double change log.

I think this will break the build on platforms other than Mac because the crashedPluginText function will be called, but not defined.

An interesting way to sidestep that would be to have the API take a string and have WebHostedNetscapePluginView pass the string in. Then you&apos;d use a String instead of an enum in RenderEmbeddedObject.

r=me as long as you make it build on non-Mac platforms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208688</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-05 14:11:53 -0700</bug_when>
    <thetext>Attachment 52566 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1652169</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208690</commentid>
    <comment_count>5</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-04-05 14:13:30 -0700</bug_when>
    <thetext>Attachment 52566 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/1550283</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208713</commentid>
    <comment_count>6</comment_count>
      <attachid>52575</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-04-05 14:42:45 -0700</bug_when>
    <thetext>Created attachment 52575
updated patch

Updated patch. I chose to keep a common mechanism for both localized strings, since other ports may want to support out of process plug-ins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>208717</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-04-05 14:49:41 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/57095&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52566</attachid>
            <date>2010-04-05 14:04:21 -0700</date>
            <delta_ts>2010-04-05 14:42:45 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>PluginFailureText.txt</filename>
            <type>text/plain</type>
            <size>17357</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzA5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDQtMDUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MTExCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NzkwMzI3PiBEcmF3IHJlcGxhY2VtZW50IHRleHQgd2hlbiBwbHVnLWlu
IGhvc3QgY3Jhc2hlcworCisgICAgICAgICogcGFnZS9tYWMvV2ViQ29yZVZpZXdGYWN0b3J5Lmg6
CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9Mb2NhbGl6ZWRTdHJpbmdzTWFjLm1tOgorICAgICAgICBBZGRlZCBhIGxvY2FsaXph
YmxlIHN0cmluZyBmb3IgcGx1Zy1pbiBmYWlsdXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBNYWRlIFJlbmRlckVtYmVkZGVkT2JqZWN0LmggKGFuZCBk
ZXBlbmRlbmNpZXMpIHByaXZhdGUsCisgICAgICAgIHNpbmNlIGl0J3Mgbm93IHVzZWQgZnJvbSBX
ZWJLaXQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOiBB
ZGRlZCBhYmlsaXR5IHRvIGRyYXcgIlBsdWctaW4gRmFpbHVyZSIgdGV4dCBpbiBhZGRpdGlvbgor
ICAgICAgICB0byAiTWlzc2luZyBQbHVnLWluIi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RW1iZWRkZWRPYmplY3QuaDogQWRkZWQgYSBib29sZWFuIGZsYWcgZm9yIGNyYXNoZWQgcGx1Zy1p
biwgc2ltaWxhciB0bworICAgICAgICB0aGUgb25lIGZvciBtaXNzaW5nLgorCiAyMDEwLTA0LTA1
ICBDaHJpcyBGbGVpemFjaCAgPGNmbGVpemFjaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gNTcwMTgpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTkzLDcgKzE5Myw3IEBACiAJCTBG
NTgwQ0ZGMEYxMkRFOUIwMDUxRDY4OSAvKiBSZW5kZXJMYXllckJhY2tpbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTgwQ0ZCMEYxMkRFOUIwMDUx
RDY4OSAvKiBSZW5kZXJMYXllckJhY2tpbmcuaCAqLzsgfTsKIAkJMEY1ODBEMDAwRjEyREU5QjAw
NTFENjg5IC8qIFJlbmRlckxheWVyQmFja2luZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU4MENGQzBGMTJERTlCMDA1MUQ2ODkgLyogUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcCAqLzsgfTsKIAkJMEY1QjdBNTQxMEY2NUQ3QTAwMzc2MzAyIC8qIFJl
bmRlckVtYmVkZGVkT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNUI3QTUyMTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9i
amVjdC5jcHAgKi87IH07Ci0JCTBGNUI3QTU1MTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJl
ZGRlZE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY1QjdBNTMxMEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0LmggKi87
IH07CisJCTBGNUI3QTU1MTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVjdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1QjdBNTMx
MEY2NUQ3QTAwMzc2MzAyIC8qIFJlbmRlckVtYmVkZGVkT2JqZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2RUNENDUwRjI1MkYzNzAwQkRF
MjcxIC8qIENTU1Byb3BlcnR5TG9uZ2hhbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkVDRDQzMEYyNTJGMzcwMEJERTI3MSAvKiBDU1NQcm9wZXJ0
eUxvbmdoYW5kLmggKi87IH07CiAJCTBGNkVDRDQ2MEYyNTJGMzcwMEJERTI3MSAvKiBDU1NQcm9w
ZXJ0eUxvbmdoYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGNkVDRDQ0MEYyNTJGMzcwMEJERTI3MSAvKiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmNw
cCAqLzsgfTsKIAkJMEZDNzA1MjEwRUIxODE1NjAwQjkwQUQ4IC8qIEF0b21pY1N0cmluZ0hhc2gu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzcwNTIw
MEVCMTgxNTYwMEI5MEFEOCAvKiBBdG9taWNTdHJpbmdIYXNoLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI5MTcsNyArMjkxNyw3IEBACiAJCUE4
NzFERUQyMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZVNldC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREVDQTBBMTUzMEM3MDBCMTJB
NjggLyogUmVuZGVyRnJhbWVTZXQuY3BwICovOyB9OwogCQlBODcxREVEMzBBMTUzMEM3MDBCMTJB
NjggLyogUmVuZGVyRnJhbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4NzFERUNCMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZS5oICovOyB9
OwogCQlBODcxREVENDBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyRnJhbWUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURFQ0MwQTE1MzBDNzAw
QjEyQTY4IC8qIFJlbmRlckZyYW1lLmNwcCAqLzsgfTsKLQkJQTg3MURFRDUwQTE1MzBDNzAwQjEy
QTY4IC8qIFJlbmRlclBhcnRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4NzFERUNEMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0T2Jq
ZWN0LmggKi87IH07CisJCUE4NzFERUQ1MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0T2Jq
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcx
REVDRDBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydE9iamVjdC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4NzFERUQ2MEExNTMwQzcwMEIx
MkE2OCAvKiBSZW5kZXJQYXJ0T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERUNFMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0
T2JqZWN0LmNwcCAqLzsgfTsKIAkJQTg3MURFRDcwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBh
cnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFE
RUNGMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTg3MURGRTIwQTE1Mzc2QjAwQjEyQTY4IC8q
IFJlbmRlclJlcGxhY2VkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4NzFERkRFMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5jcHAg
Ki87IH07CkluZGV4OiBXZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9tYWMvV2ViQ29yZVZpZXdGYWN0b3J5LmgJKHJldmlzaW9u
IDU3MDE4KQorKysgV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQzLDYgKzE0Myw3IEBACiAtIChOU1N0cmluZyAqKUFYTWVudUxpc3RBY3Rp
b25WZXJiOwogCiAtIChOU1N0cmluZyAqKW1pc3NpbmdQbHVnaW5UZXh0OworLSAoTlNTdHJpbmcg
KiljcmFzaGVkUGx1Z2luVGV4dDsKIAogLSAoTlNTdHJpbmcgKiltdWx0aXBsZUZpbGVVcGxvYWRU
ZXh0Rm9yTnVtYmVyT2ZGaWxlczoodW5zaWduZWQpbnVtYmVyT2ZGaWxlczsKIC8vIEZUUCBEaXJl
Y3RvcnkgUmVsYXRlZApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHJldmlz
aW9uIDU3MDE4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEyOSw2ICsxMjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3Ry
aW5nIEFYTGlua0FjdGlvblZlcmIoKTsKIAogICAgIFN0cmluZyBtaXNzaW5nUGx1Z2luVGV4dCgp
OworICAgIFN0cmluZyBjcmFzaGVkUGx1Z2luVGV4dCgpOwogICAgIFN0cmluZyBtdWx0aXBsZUZp
bGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpOwogICAgIFN0cmluZyB1bmtub3du
RmlsZVNpemVUZXh0KCk7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsaXplZFN0
cmluZ3NNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxpemVk
U3RyaW5nc01hYy5tbQkocmV2aXNpb24gNTcwMTgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9M
b2NhbGl6ZWRTdHJpbmdzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03MDcsNiArNzA3LDE0IEBA
IFN0cmluZyBtaXNzaW5nUGx1Z2luVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitT
dHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKQoreworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gY3Jh
c2hlZFBsdWdpblRleHRdOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCiBTdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25l
ZCBudW1iZXJPZkZpbGVzKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKSW5k
ZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAJKHJldmlzaW9u
IDU3MDE4KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01OCwxNSArNTgsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogICAgIAotc3RhdGljIGNvbnN0IGZsb2F0IG1pc3Np
bmdQbHVnaW5Sb3VuZGVkUmVjdEhlaWdodCA9IDE4Owotc3RhdGljIGNvbnN0IGZsb2F0IG1pc3Np
bmdQbHVnaW5Sb3VuZGVkUmVjdExlZnRSaWdodFRleHRNYXJnaW4gPSA2Owotc3RhdGljIGNvbnN0
IGZsb2F0IG1pc3NpbmdQbHVnaW5Sb3VuZGVkUmVjdE9wYWNpdHkgPSAwLjIwZjsKLXN0YXRpYyBj
b25zdCBmbG9hdCBtaXNzaW5nUGx1Z2luUm91bmRlZFJlY3RSYWRpdXMgPSA1Owotc3RhdGljIGNv
bnN0IGZsb2F0IG1pc3NpbmdQbHVnaW5UZXh0T3BhY2l0eSA9IDAuNTVmOworc3RhdGljIGNvbnN0
IGZsb2F0IHJlcGxhY2VtZW50VGV4dFJvdW5kZWRSZWN0SGVpZ2h0ID0gMTg7CitzdGF0aWMgY29u
c3QgZmxvYXQgcmVwbGFjZW1lbnRUZXh0Um91bmRlZFJlY3RMZWZ0UmlnaHRUZXh0TWFyZ2luID0g
NjsKK3N0YXRpYyBjb25zdCBmbG9hdCByZXBsYWNlbWVudFRleHRSb3VuZGVkUmVjdE9wYWNpdHkg
PSAwLjIwZjsKK3N0YXRpYyBjb25zdCBmbG9hdCByZXBsYWNlbWVudFRleHRSb3VuZGVkUmVjdFJh
ZGl1cyA9IDU7CitzdGF0aWMgY29uc3QgZmxvYXQgcmVwbGFjZW1lbnRUZXh0VGV4dE9wYWNpdHkg
PSAwLjU1ZjsKIAogUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlJlbmRlckVtYmVkZGVkT2JqZWN0KEVs
ZW1lbnQqIGVsZW1lbnQpCiAgICAgOiBSZW5kZXJQYXJ0T2JqZWN0KGVsZW1lbnQpCiAgICAgLCBt
X3Nob3dzTWlzc2luZ1BsdWdpbkluZGljYXRvcihmYWxzZSkKKyAgICAsIG1fc2hvd3NDcmFzaGVk
UGx1Z2luSW5kaWNhdG9yKGZhbHNlKQogewogICAgIHZpZXcoKS0+ZnJhbWVWaWV3KCktPnNldElz
VmlzdWFsbHlOb25FbXB0eSgpOwogfQpAQCAtMzM1LDE4ICszMzYsMTkgQEAgdm9pZCBSZW5kZXJF
bWJlZGRlZE9iamVjdDo6dXBkYXRlV2lkZ2V0KAogCiB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0
OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgaW50IHR4LCBpbnQgdHkpCiB7Ci0gICAgaWYg
KG1fc2hvd3NNaXNzaW5nUGx1Z2luSW5kaWNhdG9yKSB7CisgICAgaWYgKG1fc2hvd3NNaXNzaW5n
UGx1Z2luSW5kaWNhdG9yIHx8IG1fc2hvd3NDcmFzaGVkUGx1Z2luSW5kaWNhdG9yKSB7CiAgICAg
ICAgIFJlbmRlclJlcGxhY2VkOjpwYWludChwYWludEluZm8sIHR4LCB0eSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgCiAgICAgUmVuZGVyUGFydE9iamVjdDo6cGFpbnQocGFpbnRJbmZv
LCB0eCwgdHkpOwogfQotICAgIAorCiB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWludFJl
cGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSkKIHsKLSAgICBpZiAo
IW1fc2hvd3NNaXNzaW5nUGx1Z2luSW5kaWNhdG9yKQorICAgIGlmICghbV9zaG93c01pc3NpbmdQ
bHVnaW5JbmRpY2F0b3IgJiYgIW1fc2hvd3NDcmFzaGVkUGx1Z2luSW5kaWNhdG9yKQogICAgICAg
ICByZXR1cm47CisgICAgQVNTRVJUKG1fc2hvd3NNaXNzaW5nUGx1Z2luSW5kaWNhdG9yICE9IG1f
c2hvd3NDcmFzaGVkUGx1Z2luSW5kaWNhdG9yKTsKIAogICAgIGlmIChwYWludEluZm8ucGhhc2Ug
PT0gUGFpbnRQaGFzZVNlbGVjdGlvbikKICAgICAgICAgcmV0dXJuOwpAQCAtMzcwLDI4ICszNzIs
MjggQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRSZXBsYWNlZAogICAgIEZvbnQg
Zm9udChmb250RGVzY3JpcHRpb24sIDAsIDApOwogICAgIGZvbnQudXBkYXRlKDApOwogICAgIAot
ICAgIFN0cmluZyBsYWJlbCA9IG1pc3NpbmdQbHVnaW5UZXh0KCk7CisgICAgU3RyaW5nIGxhYmVs
ID0gbV9zaG93c01pc3NpbmdQbHVnaW5JbmRpY2F0b3IgPyBtaXNzaW5nUGx1Z2luVGV4dCgpIDog
Y3Jhc2hlZFBsdWdpblRleHQoKTsKICAgICBUZXh0UnVuIHJ1bihsYWJlbC5jaGFyYWN0ZXJzKCks
IGxhYmVsLmxlbmd0aCgpKTsKICAgICBydW4uZGlzYWJsZVJvdW5kaW5nSGFja3MoKTsKICAgICBm
bG9hdCB0ZXh0V2lkdGggPSBmb250LmZsb2F0V2lkdGgocnVuKTsKICAgICAKLSAgICBGbG9hdFJl
Y3QgbWlzc2luZ1BsdWdpblJlY3Q7Ci0gICAgbWlzc2luZ1BsdWdpblJlY3Quc2V0U2l6ZShGbG9h
dFNpemUodGV4dFdpZHRoICsgbWlzc2luZ1BsdWdpblJvdW5kZWRSZWN0TGVmdFJpZ2h0VGV4dE1h
cmdpbiAqIDIsIG1pc3NpbmdQbHVnaW5Sb3VuZGVkUmVjdEhlaWdodCkpOwotICAgIG1pc3NpbmdQ
bHVnaW5SZWN0LnNldExvY2F0aW9uKEZsb2F0UG9pbnQoKHBsdWdpblJlY3Quc2l6ZSgpLndpZHRo
KCkgLyAyIC0gbWlzc2luZ1BsdWdpblJlY3Quc2l6ZSgpLndpZHRoKCkgLyAyKSArIHBsdWdpblJl
Y3QubG9jYXRpb24oKS54KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAocGx1Z2luUmVjdC5zaXplKCkuaGVpZ2h0KCkgLyAyIC0gbWlzc2luZ1BsdWdpblJl
Y3Quc2l6ZSgpLmhlaWdodCgpIC8gMikgKyBwbHVnaW5SZWN0LmxvY2F0aW9uKCkueSgpKSk7Cisg
ICAgRmxvYXRSZWN0IHJlcGxhY2VtZW50VGV4dFJlY3Q7CisgICAgcmVwbGFjZW1lbnRUZXh0UmVj
dC5zZXRTaXplKEZsb2F0U2l6ZSh0ZXh0V2lkdGggKyByZXBsYWNlbWVudFRleHRSb3VuZGVkUmVj
dExlZnRSaWdodFRleHRNYXJnaW4gKiAyLCByZXBsYWNlbWVudFRleHRSb3VuZGVkUmVjdEhlaWdo
dCkpOworICAgIHJlcGxhY2VtZW50VGV4dFJlY3Quc2V0TG9jYXRpb24oRmxvYXRQb2ludCgocGx1
Z2luUmVjdC5zaXplKCkud2lkdGgoKSAvIDIgLSByZXBsYWNlbWVudFRleHRSZWN0LnNpemUoKS53
aWR0aCgpIC8gMikgKyBwbHVnaW5SZWN0LmxvY2F0aW9uKCkueCgpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBsdWdpblJlY3Quc2l6ZSgpLmhlaWdodCgp
IC8gMiAtIHJlcGxhY2VtZW50VGV4dFJlY3Quc2l6ZSgpLmhlaWdodCgpIC8gMikgKyBwbHVnaW5S
ZWN0LmxvY2F0aW9uKCkueSgpKSk7CiAgICAKLSAgICBQYXRoIHBhdGggPSBQYXRoOjpjcmVhdGVS
b3VuZGVkUmVjdGFuZ2xlKG1pc3NpbmdQbHVnaW5SZWN0LCBGbG9hdFNpemUobWlzc2luZ1BsdWdp
blJvdW5kZWRSZWN0UmFkaXVzLCBtaXNzaW5nUGx1Z2luUm91bmRlZFJlY3RSYWRpdXMpKTsKKyAg
ICBQYXRoIHBhdGggPSBQYXRoOjpjcmVhdGVSb3VuZGVkUmVjdGFuZ2xlKHJlcGxhY2VtZW50VGV4
dFJlY3QsIEZsb2F0U2l6ZShyZXBsYWNlbWVudFRleHRSb3VuZGVkUmVjdFJhZGl1cywgcmVwbGFj
ZW1lbnRUZXh0Um91bmRlZFJlY3RSYWRpdXMpKTsKICAgICBjb250ZXh0LT5zYXZlKCk7CiAgICAg
Y29udGV4dC0+Y2xpcChwbHVnaW5SZWN0KTsKICAgICBjb250ZXh0LT5iZWdpblBhdGgoKTsKICAg
ICBjb250ZXh0LT5hZGRQYXRoKHBhdGgpOyAgCi0gICAgY29udGV4dC0+c2V0QWxwaGEobWlzc2lu
Z1BsdWdpblJvdW5kZWRSZWN0T3BhY2l0eSk7CisgICAgY29udGV4dC0+c2V0QWxwaGEocmVwbGFj
ZW1lbnRUZXh0Um91bmRlZFJlY3RPcGFjaXR5KTsKICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3Io
Q29sb3I6OndoaXRlLCBzdHlsZSgpLT5jb2xvclNwYWNlKCkpOwogICAgIGNvbnRleHQtPmZpbGxQ
YXRoKCk7CiAKLSAgICBGbG9hdFBvaW50IGxhYmVsUG9pbnQocm91bmRmKG1pc3NpbmdQbHVnaW5S
ZWN0LmxvY2F0aW9uKCkueCgpICsgKG1pc3NpbmdQbHVnaW5SZWN0LnNpemUoKS53aWR0aCgpIC0g
dGV4dFdpZHRoKSAvIDIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGYobWlzc2lu
Z1BsdWdpblJlY3QubG9jYXRpb24oKS55KCkrIChtaXNzaW5nUGx1Z2luUmVjdC5zaXplKCkuaGVp
Z2h0KCkgLSBmb250LmhlaWdodCgpKSAvIDIgKyBmb250LmFzY2VudCgpKSk7Ci0gICAgY29udGV4
dC0+c2V0QWxwaGEobWlzc2luZ1BsdWdpblRleHRPcGFjaXR5KTsKKyAgICBGbG9hdFBvaW50IGxh
YmVsUG9pbnQocm91bmRmKHJlcGxhY2VtZW50VGV4dFJlY3QubG9jYXRpb24oKS54KCkgKyAocmVw
bGFjZW1lbnRUZXh0UmVjdC5zaXplKCkud2lkdGgoKSAtIHRleHRXaWR0aCkgLyAyKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgcm91bmRmKHJlcGxhY2VtZW50VGV4dFJlY3QubG9jYXRpb24o
KS55KCkrIChyZXBsYWNlbWVudFRleHRSZWN0LnNpemUoKS5oZWlnaHQoKSAtIGZvbnQuaGVpZ2h0
KCkpIC8gMiArIGZvbnQuYXNjZW50KCkpKTsKKyAgICBjb250ZXh0LT5zZXRBbHBoYShyZXBsYWNl
bWVudFRleHRUZXh0T3BhY2l0eSk7CiAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKENvbG9yOjpi
bGFjaywgc3R5bGUoKS0+Y29sb3JTcGFjZSgpKTsKICAgICBjb250ZXh0LT5kcmF3QmlkaVRleHQo
Zm9udCwgcnVuLCBsYWJlbFBvaW50KTsKICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgJKHJldmlzaW9uIDU3MDE4KQor
KysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMzYsNiArMzYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVXaWRnZXQoYm9vbCBv
bmx5Q3JlYXRlTm9uTmV0c2NhcGVQbHVnaW5zKTsKICAgICB2b2lkIHNldFNob3dzTWlzc2luZ1Bs
dWdpbkluZGljYXRvcihib29sIHNob3dzTWlzc2luZ1BsdWdpbkluZGljYXRvcikgeyBtX3Nob3dz
TWlzc2luZ1BsdWdpbkluZGljYXRvciA9IHNob3dzTWlzc2luZ1BsdWdpbkluZGljYXRvcjsgfQog
ICAgIGJvb2wgc2hvd3NNaXNzaW5nUGx1Z2luSW5kaWNhdG9yKCkgY29uc3QgeyByZXR1cm4gbV9z
aG93c01pc3NpbmdQbHVnaW5JbmRpY2F0b3I7IH0KKyAgICB2b2lkIHNldFNob3dzQ3Jhc2hlZFBs
dWdpbkluZGljYXRvcihib29sIHNob3dzQ3Jhc2hlZFBsdWdpbkluZGljYXRvcikgeyBtX3Nob3dz
Q3Jhc2hlZFBsdWdpbkluZGljYXRvciA9IHNob3dzQ3Jhc2hlZFBsdWdpbkluZGljYXRvcjsgfQor
ICAgIGJvb2wgc2hvd3NDcmFzaGVkUGx1Z2luSW5kaWNhdG9yKCkgY29uc3QgeyByZXR1cm4gbV9z
aG93c0NyYXNoZWRQbHVnaW5JbmRpY2F0b3I7IH0KICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAgICAgdmlydHVhbCBib29sIGFsbG93c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBj
b25zdDsKICNlbmRpZgpAQCAtNTMsNiArNTUsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2
b2lkIGxheW91dCgpOwogICAgIGJvb2wgbV9zaG93c01pc3NpbmdQbHVnaW5JbmRpY2F0b3I7Cisg
ICAgYm9vbCBtX3Nob3dzQ3Jhc2hlZFBsdWdpbkluZGljYXRvcjsKIH07CiAKIGlubGluZSBSZW5k
ZXJFbWJlZGRlZE9iamVjdCogdG9SZW5kZXJFbWJlZGRlZE9iamVjdChSZW5kZXJPYmplY3QqIG9i
amVjdCkKSW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNTcwOTMpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDQtMDUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MTExCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83NzkwMzI3PiBEcmF3IHJlcGxhY2VtZW50IHRleHQgd2hlbiBwbHVn
LWluIGhvc3QgY3Jhc2hlcworCisgICAgICAgICogRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5z
dHJpbmdzOiBBZGRlZCBhIHN0cmluZyBmb3IgcGx1Zy1pbiBmYWlsdXJlLgorCisyMDEwLTA0LTA1
ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBh
bmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxl
LnN0cmluZ3M6CisKIDIwMTAtMDQtMDEgIExlYW5kcm8gUGVyZWlyYSAgPGxlYW5kcm9AcHJvZnVz
aW9uLm1vYmk+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgpJ
bmRleDogV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCShyZXZpc2lvbiA1
NzAxOCkKKysrIFdlYktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MJKHdvcmtp
bmcgY29weSkKQEAgLTE5Myw2ICsxOTMsOSBAQAogAC8AKgAgAEwAYQBiAGUAbAAgAHQAZQB4AHQA
IAB0AG8AIABiAGUAIAB1AHMAZQBkACAAdwBoAGUAbgAgAGEAIABwAGwAdQBnAGkAbgAgAGkAcwAg
AG0AaQBzAHMAaQBuAGcAIAAqAC8ACiAAIgBNAGkAcwBzAGkAbgBnACAAUABsAHUAZwAtAGkAbgAi
ACAAPQAgACIATQBpAHMAcwBpAG4AZwAgAFAAbAB1AGcALQBpAG4AIgA7AAogAAorAC8AKgAgAEwA
YQBiAGUAbAAgAHQAZQB4AHQAIAB0AG8AIABiAGUAIAB1AHMAZQBkACAAaQBmACAAcABsAHUAZwBp
AG4AIABoAG8AcwB0ACAAcAByAG8AYwBlAHMAcwAgAGgAYQBzACAAYwByAGEAcwBoAGUAZAAgACoA
LwAKKwAiAFAAbAB1AGcALQBpAG4AIABGAGEAaQBsAHUAcgBlACIAIAA9ACAAIgBQAGwAdQBnAC0A
aQBuACAARgBhAGkAbAB1AHIAZQAiADsACisACiAALwAqACAATgBvACAARwB1AGUAcwBzAGUAcwAg
AEYAbwB1AG4AZAAgAGMAbwBuAHQAZQB4AHQAIABtAGUAbgB1ACAAaQB0AGUAbQAgACoALwAKIAAi
AE4AbwAgAEcAdQBlAHMAcwBlAHMAIABGAG8AdQBuAGQAIgAgAD0AIAAiAE4AbwAgAEcAdQBlAHMA
cwBlAHMAIABGAG8AdQBuAGQAIgA7AAogAApJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU3MDkzKQorKysgV2Vi
S2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0w
NC0wNSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzcxMTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3OTAzMjc+
IERyYXcgcmVwbGFjZW1lbnQgdGV4dCB3aGVuIHBsdWctaW4gaG9zdCBjcmFzaGVzCisKKyAgICAg
ICAgKiBQbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcuaDogUmVtb3Zl
ZCBfcGx1Z2luRGllZCAtIGl0IHdhcyBvbmx5IHVzZWQKKyAgICAgICAgZm9yIGRyYXdpbmcgcmVw
bGFjZW1lbnQgaWNvbiwgYW5kIHRoaXMgaW5mb3JtYXRpb24gaXMgbm93IGluIFdlYkNvcmUuCisg
ICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcgcGx1Z2luSG9zdERpZWRdKTog
VGVsbCBSZW5kZXJFbWJlZGRlZE9iamVjdCB0aGF0IHRoZSBwbHVnLWluCisgICAgICAgIGhhcyBj
cmFzaGVkLgorICAgICAgICAoLVtXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcgZHJhd1JlY3Q6
XSk6IFVzZSBtaXNzaW5nUGx1Z2luVGV4dCBvciBjcmFzaGVkUGx1Z2luVGV4dAorICAgICAgICBh
cHByb3ByaWF0ZWx5LiBSZW5hbWVkIGNvbnN0YW50cyBhbmQgdmFyaWFibGVzLCBzaW5jZSB0aGV5
IGFwcGx5IHRvIGJvdGggbm93LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVmlld0Zh
Y3RvcnkubW06ICgtW1dlYlZpZXdGYWN0b3J5IGNyYXNoZWRQbHVnaW5UZXh0XSk6IEFkZGVkIGEg
c3RyaW5nCisgICAgICAgIGZvciBwbHVnLWluIGZhaWx1cmUuICAgICAgICAKKwogMjAxMC0wNC0w
MyAgeWFlbCBhaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhv
c3RlZE5ldHNjYXBlUGx1Z2luVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3LmgJKHJldmlzaW9uIDU3MDE4KQor
KysgV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcu
aAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNiBAQCBAaW50ZXJmYWNlIFdlYkhvc3RlZE5l
dHNjYXBlUGx1Z2luVmlldyA6CiAgICAgCiAgICAgTlNTaXplIF9wcmV2aW91c1NpemU7CiAgICAg
UmVmUHRyPFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5PiBfcHJveHk7Ci0gICAg
Qk9PTCBfcGx1Z2luSG9zdERpZWQ7CiB9CiAKIC0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdCly
CkluZGV4OiBXZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2lu
Vmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3Rl
ZE5ldHNjYXBlUGx1Z2luVmlldy5tbQkocmV2aXNpb24gNTcwMTgpCisrKyBXZWJLaXQvbWFjL1Bs
dWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQkod29ya2luZyBjb3B5
KQpAQCAtNDEsOCArNDEsOSBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxQbHVnSW5F
bGVtZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL3J1bnRpbWVfcm9vdC5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2Jq
Q0V4dHJhcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9ydW50aW1lX3Jvb3QuaD4KICNpbXBvcnQgPHJ1
bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4K
IApAQCAtMzU1LDcgKzM1Niw5IEBAIC0gKHZvaWQpc2VuZE1vZGlmaWVyRXZlbnRXaXRoS2V5Q29k
ZTooaW4KIAogLSAodm9pZClwbHVnaW5Ib3N0RGllZAogewotICAgIF9wbHVnaW5Ib3N0RGllZCA9
IFlFUzsKKyAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCogcmVuZGVyZXIgPSB0b1JlbmRlckVtYmVk
ZGVkT2JqZWN0KF9lbGVtZW50LT5yZW5kZXJlcigpKTsKKyAgICBpZiAocmVuZGVyZXIpCisgICAg
ICAgIHJlbmRlcmVyLT5zZXRTaG93c0NyYXNoZWRQbHVnaW5JbmRpY2F0b3IodHJ1ZSk7CiAKICAg
ICBfcGx1Z2luTGF5ZXIgPSBuaWw7CiAgICAgX3Byb3h5ID0gMDsKQEAgLTM4NywyNCArMzkwLDYg
QEAgLSAodm9pZClkcmF3UmVjdDooTlNSZWN0KXJlY3QKIAogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIAotICAgIGlmIChfcGx1Z2luSG9zdERpZWQpIHsKLSAgICAgICAgc3RhdGljIE5TSW1h
Z2UgKm51bGxQbHVnSW5JbWFnZTsKLSAgICAgICAgaWYgKCFudWxsUGx1Z0luSW1hZ2UpIHsKLSAg
ICAgICAgICAgIE5TQnVuZGxlICpidW5kbGUgPSBbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6W1dl
Ykhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldyBjbGFzc11dOwotICAgICAgICAgICAgbnVsbFBsdWdJ
bkltYWdlID0gW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0aENvbnRlbnRzT2ZGaWxlOltidW5kbGUg
cGF0aEZvclJlc291cmNlOkAibnVsbHBsdWdpbiIgb2ZUeXBlOkAidGlmZiJdXTsKLSAgICAgICAg
ICAgIFtudWxsUGx1Z0luSW1hZ2Ugc2V0RmxpcHBlZDpZRVNdOwotICAgICAgICB9Ci0gICAgICAg
IAotICAgICAgICBpZiAoIW51bGxQbHVnSW5JbWFnZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgCi0gICAgICAgIE5TU2l6ZSBpbWFnZVNpemUgPSBbbnVsbFBsdWdJbkltYWdlIHNpemVd
OwotICAgICAgICBOU1NpemUgdmlld1NpemUgPSBbc2VsZiBib3VuZHNdLnNpemU7Ci0gICAgICAg
IAotICAgICAgICBOU1BvaW50IHBvaW50ID0gTlNNYWtlUG9pbnQoKHZpZXdTaXplLndpZHRoIC0g
aW1hZ2VTaXplLndpZHRoKSAvIDIuMCwgKHZpZXdTaXplLmhlaWdodCAtIGltYWdlU2l6ZS5oZWln
aHQpIC8gMi4wKTsKLSAgICAgICAgW251bGxQbHVnSW5JbWFnZSBkcmF3QXRQb2ludDpwb2ludCBm
cm9tUmVjdDpOU1plcm9SZWN0IG9wZXJhdGlvbjpOU0NvbXBvc2l0ZVNvdXJjZU92ZXIgZnJhY3Rp
b246MS4wXTsKLSAgICB9CiB9CiAKIC0gKFBhc3NSZWZQdHI8SlNDOjpCaW5kaW5nczo6SW5zdGFu
Y2U+KWNyZWF0ZVBsdWdpbkJpbmRpbmdzSW5zdGFuY2U6KFBhc3NSZWZQdHI8SlNDOjpCaW5kaW5n
czo6Um9vdE9iamVjdD4pcm9vdE9iamVjdApJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJWaWV3RmFjdG9yeS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYlZpZXdGYWN0b3J5Lm1tCShyZXZpc2lvbiA1NzAxOCkKKysrIFdlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViVmlld0ZhY3RvcnkubW0JKHdvcmtpbmcgY29weSkKQEAgLTY0NSw2ICs2
NDUsMTEgQEAgLSAoTlNTdHJpbmcgKiltaXNzaW5nUGx1Z2luVGV4dAogICAgIHJldHVybiBVSV9T
VFJJTkcoIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBs
dWdpbiBpcyBtaXNzaW5nIik7CiB9CiAKKy0gKE5TU3RyaW5nICopY3Jhc2hlZFBsdWdpblRleHQK
K3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQbHVnLWluIEZhaWx1cmUiLCAiTGFiZWwgdGV4dCB0
byBiZSB1c2VkIGlmIHBsdWdpbiBob3N0IHByb2Nlc3MgaGFzIGNyYXNoZWQiKTsKK30KKwogLSAo
TlNTdHJpbmcgKiltdWx0aXBsZUZpbGVVcGxvYWRUZXh0Rm9yTnVtYmVyT2ZGaWxlczoodW5zaWdu
ZWQpbnVtYmVyT2ZGaWxlcwogewogICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpVSV9TVFJJTkcoIiVkIGZpbGVzIiwgIkxhYmVsIHRvIGRlc2NyaWJlIHRoZSBudW1iZXIgb2Yg
ZmlsZXMgc2VsZWN0ZWQgaW4gYSBmaWxlIHVwbG9hZCBjb250cm9sIHRoYXQgYWxsb3dzIG11bHRp
cGxlIGZpbGVzIiksIG51bWJlck9mRmlsZXNdOwo=
</data>
<flag name="review"
          id="36076"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="36077"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52575</attachid>
            <date>2010-04-05 14:42:45 -0700</date>
            <delta_ts>2010-04-05 14:44:31 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>PluginFailureText.txt</filename>
            <type>text/plain</type>
            <size>24478</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzA5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTAtMDQtMDUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MTExCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83NzkwMzI3PiBEcmF3IHJlcGxhY2VtZW50IHRleHQgd2hlbiBwbHVnLWluIGhv
c3QgY3Jhc2hlcworCisgICAgICAgICogcGFnZS9tYWMvV2ViQ29yZVZpZXdGYWN0b3J5Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9Mb2NhbGl6ZWRTdHJpbmdzTWFjLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2Nh
bGl6ZWRTdHJpbmdzR3RrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25z
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwOgorICAg
ICAgICBBZGRlZCBhIGxvY2FsaXphYmxlIHN0cmluZyBmb3IgcGx1Zy1pbiBmYWlsdXJlIChvbmx5
IHVzZWQgb24gTWFjIGF0IHRoZSBtb21lbnQpLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOiBNYWRlIFJlbmRlckVtYmVkZGVkT2JqZWN0LmggKGFuZCBkZXBl
bmRlbmNpZXMpIHByaXZhdGUsCisgICAgICAgIHNpbmNlIGl0J3Mgbm93IHVzZWQgZnJvbSBXZWJL
aXQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlJlbmRlckVtYmVkZGVkT2JqZWN0
KTptIFJlbW92ZWQgbV9zaG93c01pc3NpbmdQbHVnaW5JbmRpY2F0b3IKKyAgICAgICAgaW5pdGlh
bGl6ZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6dXBkYXRlV2lk
Z2V0KTogQ2hlY2sgbV9yZXBsYWNlbWVudFRleHQgaW5zdGVhZCBvZiB0aGUgcmVtb3ZlZAorICAg
ICAgICBtX3Nob3dzTWlzc2luZ1BsdWdpbkluZGljYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckVtYmVkZGVkT2JqZWN0OjpzZXRTaG93c01pc3NpbmdQbHVnaW5JbmRpY2F0b3IpOiBMb2Fk
IG1fcmVwbGFjZW1lbnRUZXh0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OnNldFNob3dzQ3Jhc2hlZFBsdWdpbkluZGljYXRvcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50KTogQ2hlY2sgbV9yZXBsYWNlbWVudFRl
eHQgaW5zdGVhZCBvZiB0aGUgcmVtb3ZlZAorICAgICAgICBtX3Nob3dzTWlzc2luZ1BsdWdpbklu
ZGljYXRvci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWludFJl
cGxhY2VkKTogRHJhdyBhcmJpdHJhcnkgdGV4dCBmcm9tIG1fcmVwbGFjZW1lbnRUZXh0CisgICAg
ICAgIGluc3RlZCBvZiBqdXN0ICJNaXNzaW5nIFBsdWctaW4iLiBSZW5hbWVkIGNvbnN0YW50cyBh
bmQgdmFyaWFibGVzIGFjY29yZGluZ2x5LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0Lmg6IENoYW5nZWQgYm9vbGVhbiBmb3IgbWlzc2luZyBwbHVnLWluIHRvIGEg
U3RyaW5nIGhvbGRpbmcKKyAgICAgICAgYWN0dWFsIHJlcGxhY2VtZW50IHRleHQuCisKKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOiAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRQ
bHVnaW4pOiBBZGFwdGVkIGZvciB0aGUgY2hhbmdlIGluCisgICAgICAgIHNldFNob3dzTWlzc2lu
Z1BsdWdpbkluZGljYXRvcigpLCB3aGljaCBubyBsb25nZXIgdGFrZXMgYW4gYXJndW1lbnQuCisK
KyAgICAgICAgKiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHA6IEV4cG9ydGVkIFJlbmRlckVtYmVk
ZGVkT2JqZWN0OjpzZXRTaG93c0NyYXNoZWRQbHVnaW5JbmRpY2F0b3IoKS4KKwogMjAxMC0wNC0w
NSAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkocmV2aXNpb24gNTcwMTgpCisrKyBX
ZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTQzMyw2ICs0MzMsNyBA
QCBfX1pON1dlYkNvcmUxOVRleHRSZXNvdXJjZURlY29kZXI2ZGVjb2RlCiBfX1pON1dlYkNvcmUx
OVRleHRSZXNvdXJjZURlY29kZXJDMUVSS05TXzZTdHJpbmdFUktOU18xMlRleHRFbmNvZGluZ0Vi
CiBfX1pON1dlYkNvcmUxOVRleHRSZXNvdXJjZURlY29kZXJEMUV2CiBfX1pON1dlYkNvcmUxOWFw
cGxpY2F0aW9uSXNTYWZhcmlFdgorX19aTjdXZWJDb3JlMjBSZW5kZXJFbWJlZGRlZE9iamVjdDMw
c2V0U2hvd3NDcmFzaGVkUGx1Z2luSW5kaWNhdG9yRXYKIF9fWk43V2ViQ29yZTIwUmVzb3VyY2VS
ZXNwb25zZUJhc2UyNHNldEV4cGVjdGVkQ29udGVudExlbmd0aEV4CiBfX1pON1dlYkNvcmUyMFJl
c291cmNlUmVzcG9uc2VCYXNlQzJFdgogX19aTjdXZWJDb3JlMjFQbGF0Zm9ybUtleWJvYXJkRXZl
bnQyNGRpc2FtYmlndWF0ZUtleURvd25FdmVudEVOUzBfNFR5cGVFYgpJbmRleDogV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDU3MDE4KQorKysgV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTE5Myw3ICsxOTMsNyBAQAogCQkwRjU4MENGRjBGMTJERTlCMDA1MUQ2ODkgLyogUmVuZGVyTGF5
ZXJCYWNraW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjU4MENGQjBGMTJERTlCMDA1MUQ2ODkgLyogUmVuZGVyTGF5ZXJCYWNraW5nLmggKi87IH07
CiAJCTBGNTgwRDAwMEYxMkRFOUIwMDUxRDY4OSAvKiBSZW5kZXJMYXllckJhY2tpbmcuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1ODBDRkMwRjEy
REU5QjAwNTFENjg5IC8qIFJlbmRlckxheWVyQmFja2luZy5jcHAgKi87IH07CiAJCTBGNUI3QTU0
MTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVCN0E1MjEwRjY1RDdBMDAzNzYz
MDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwICovOyB9OwotCQkwRjVCN0E1NTEwRjY1RDdB
MDAzNzYzMDIgLyogUmVuZGVyRW1iZWRkZWRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUI3QTUzMTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5k
ZXJFbWJlZGRlZE9iamVjdC5oICovOyB9OworCQkwRjVCN0E1NTEwRjY1RDdBMDAzNzYzMDIgLyog
UmVuZGVyRW1iZWRkZWRPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNUI3QTUzMTBGNjVEN0EwMDM3NjMwMiAvKiBSZW5kZXJFbWJlZGRlZE9i
amVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGNkVDRDQ1MEYyNTJGMzcwMEJERTI3MSAvKiBDU1NQcm9wZXJ0eUxvbmdoYW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZFQ0Q0MzBGMjUyRjM3
MDBCREUyNzEgLyogQ1NTUHJvcGVydHlMb25naGFuZC5oICovOyB9OwogCQkwRjZFQ0Q0NjBGMjUy
RjM3MDBCREUyNzEgLyogQ1NTUHJvcGVydHlMb25naGFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjZFQ0Q0NDBGMjUyRjM3MDBCREUyNzEgLyog
Q1NTUHJvcGVydHlMb25naGFuZC5jcHAgKi87IH07CiAJCTBGQzcwNTIxMEVCMTgxNTYwMEI5MEFE
OCAvKiBBdG9taWNTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkM3MDUyMDBFQjE4MTU2MDBCOTBBRDggLyogQXRvbWljU3RyaW5nSGFz
aC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0y
OTE3LDcgKzI5MTcsNyBAQAogCQlBODcxREVEMjBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyRnJh
bWVTZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTg3MURFQ0EwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lU2V0LmNwcCAqLzsgfTsKIAkJ
QTg3MURFRDMwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREVDQjBBMTUzMEM3MDBCMTJBNjgg
LyogUmVuZGVyRnJhbWUuaCAqLzsgfTsKIAkJQTg3MURFRDQwQTE1MzBDNzAwQjEyQTY4IC8qIFJl
bmRlckZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4NzFERUNDMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZS5jcHAgKi87IH07Ci0J
CUE4NzFERUQ1MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0T2JqZWN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREVDRDBBMTUzMEM3MDBC
MTJBNjggLyogUmVuZGVyUGFydE9iamVjdC5oICovOyB9OworCQlBODcxREVENTBBMTUzMEM3MDBC
MTJBNjggLyogUmVuZGVyUGFydE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTg3MURFQ0QwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnRP
YmplY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBODcxREVENjBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydE9iamVjdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREVDRTBBMTUzMEM3
MDBCMTJBNjggLyogUmVuZGVyUGFydE9iamVjdC5jcHAgKi87IH07CiAJCUE4NzFERUQ3MEExNTMw
QzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODcxREVDRjBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4NzFE
RkUyMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREZERTBBMTUzNzZCMDBCMTJBNjgg
LyogUmVuZGVyUmVwbGFjZWQuY3BwICovOyB9OwpJbmRleDogV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAko
cmV2aXNpb24gNTcwMTgpCisrKyBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzODksNyArMTM4OSw3IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmxvYWRQbHVn
aW4oUmVuZGVyRW1iZWQKICAgICAgICAgICAgIHJlbmRlcmVyLT5ub2RlKCktPnNldE5lZWRzU3R5
bGVSZWNhbGMoU3ludGhldGljU3R5bGVDaGFuZ2UpOwogI2VuZGlmCiAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgcmVuZGVyZXItPnNldFNob3dzTWlzc2luZ1BsdWdpbkluZGljYXRvcih0cnVl
KTsKKyAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRTaG93c01pc3NpbmdQbHVnaW5JbmRpY2F0b3Io
KTsKICAgICB9CiAKICAgICByZXR1cm4gd2lkZ2V0ICE9IDA7CkluZGV4OiBXZWJDb3JlL3BhZ2Uv
bWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9tYWMv
V2ViQ29yZVZpZXdGYWN0b3J5LmgJKHJldmlzaW9uIDU3MDE4KQorKysgV2ViQ29yZS9wYWdlL21h
Yy9XZWJDb3JlVmlld0ZhY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMTQzLDYgKzE0Myw3IEBA
CiAtIChOU1N0cmluZyAqKUFYTWVudUxpc3RBY3Rpb25WZXJiOwogCiAtIChOU1N0cmluZyAqKW1p
c3NpbmdQbHVnaW5UZXh0OworLSAoTlNTdHJpbmcgKiljcmFzaGVkUGx1Z2luVGV4dDsKIAogLSAo
TlNTdHJpbmcgKiltdWx0aXBsZUZpbGVVcGxvYWRUZXh0Rm9yTnVtYmVyT2ZGaWxlczoodW5zaWdu
ZWQpbnVtYmVyT2ZGaWxlczsKIC8vIEZUUCBEaXJlY3RvcnkgUmVsYXRlZApJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHJldmlzaW9uIDU3MDE4KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyOSw2ICsxMjksNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIEFYTGlua0FjdGlvblZlcmIoKTsKIAog
ICAgIFN0cmluZyBtaXNzaW5nUGx1Z2luVGV4dCgpOworICAgIFN0cmluZyBjcmFzaGVkUGx1Z2lu
VGV4dCgpOwogICAgIFN0cmluZyBtdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJl
ck9mRmlsZXMpOwogICAgIFN0cmluZyB1bmtub3duRmlsZVNpemVUZXh0KCk7CiAKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCShyZXZpc2lvbiA1
NzAxOCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNDEsNiArMzQxLDEyIEBAIFN0cmluZyBtaXNzaW5nUGx1Z2luVGV4
dCgpCiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiTWlzc2luZyBQbHVnLWluIikpOwog
fQogCitTdHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoXygiUGx1Zy1pbiBGYWlsdXJlIikpOworfQor
CiBTdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25lZCBudW1iZXJPZkZpbGVzKQog
ewogICAgIC8vIEZJWE1FOiBJZiB0aGlzIGZpbGUgZ2V0cyBsb2NhbGl6ZWQsIHRoaXMgc2hvdWxk
IHJlYWxseSBiZSBsb2NhbGl6ZWQgYXMgb25lIHN0cmluZyB3aXRoIGEgd2lsZGNhcmQgZm9yIHRo
ZSBudW1iZXIuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbGl6ZWRTdHJpbmdzTWFj
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsaXplZFN0cmluZ3NN
YWMubW0JKHJldmlzaW9uIDU3MDE4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxpemVk
U3RyaW5nc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzA3LDYgKzcwNywxNCBAQCBTdHJpbmcg
bWlzc2luZ1BsdWdpblRleHQoKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorU3RyaW5nIGNy
YXNoZWRQbHVnaW5UZXh0KCkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Cisg
ICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIGNyYXNoZWRQbHVn
aW5UZXh0XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKwogU3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQgbnVtYmVy
T2ZGaWxlcykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL3F0L0xvY2FsaXphdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vcXQvTG9jYWxpemF0aW9ucy5jcHAJKHJldmlzaW9uIDU3MDE4KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9Mb2NhbGl6YXRpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU2LDYg
KzM1NiwxMiBAQCBTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKQogICAgIHJldHVybiBRQ29yZUFw
cGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJl
bCB0ZXh0IHRvIGJlIHVzZWQgd2hlbiBhIHBsdWctaW4gaXMgbWlzc2luZyIpOwogfQogCitTdHJp
bmcgY3Jhc2hlZFBsdWdpblRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCiBTdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4dCh1bnNpZ25l
ZCkKIHsKICAgICByZXR1cm4gU3RyaW5nKCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3d4L0xv
Y2FsaXplZFN0cmluZ3NXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93eC9M
b2NhbGl6ZWRTdHJpbmdzV3guY3BwCShyZXZpc2lvbiA1NzAxOCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgyLDQgKzM4
MiwxMCBAQCBTdHJpbmcgbWlzc2luZ1BsdWdpblRleHQoKQogICAgIHJldHVybiBTdHJpbmcoIk1p
c3NpbmcgUGx1Zy1pbiIpOwogfQogCitTdHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygiUGx1Zy1pbiBGYWlsdXJlIik7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAJKHJldmlzaW9uIDU3MDE4KQorKysgV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCwxNSAr
NTgsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OwogICAgIAotc3RhdGljIGNvbnN0IGZsb2F0IG1pc3NpbmdQbHVnaW5Sb3VuZGVkUmVjdEhlaWdo
dCA9IDE4Owotc3RhdGljIGNvbnN0IGZsb2F0IG1pc3NpbmdQbHVnaW5Sb3VuZGVkUmVjdExlZnRS
aWdodFRleHRNYXJnaW4gPSA2Owotc3RhdGljIGNvbnN0IGZsb2F0IG1pc3NpbmdQbHVnaW5Sb3Vu
ZGVkUmVjdE9wYWNpdHkgPSAwLjIwZjsKLXN0YXRpYyBjb25zdCBmbG9hdCBtaXNzaW5nUGx1Z2lu
Um91bmRlZFJlY3RSYWRpdXMgPSA1Owotc3RhdGljIGNvbnN0IGZsb2F0IG1pc3NpbmdQbHVnaW5U
ZXh0T3BhY2l0eSA9IDAuNTVmOworc3RhdGljIGNvbnN0IGZsb2F0IHJlcGxhY2VtZW50VGV4dFJv
dW5kZWRSZWN0SGVpZ2h0ID0gMTg7CitzdGF0aWMgY29uc3QgZmxvYXQgcmVwbGFjZW1lbnRUZXh0
Um91bmRlZFJlY3RMZWZ0UmlnaHRUZXh0TWFyZ2luID0gNjsKK3N0YXRpYyBjb25zdCBmbG9hdCBy
ZXBsYWNlbWVudFRleHRSb3VuZGVkUmVjdE9wYWNpdHkgPSAwLjIwZjsKK3N0YXRpYyBjb25zdCBm
bG9hdCByZXBsYWNlbWVudFRleHRSb3VuZGVkUmVjdFJhZGl1cyA9IDU7CitzdGF0aWMgY29uc3Qg
ZmxvYXQgcmVwbGFjZW1lbnRUZXh0VGV4dE9wYWNpdHkgPSAwLjU1ZjsKIAogUmVuZGVyRW1iZWRk
ZWRPYmplY3Q6OlJlbmRlckVtYmVkZGVkT2JqZWN0KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgOiBS
ZW5kZXJQYXJ0T2JqZWN0KGVsZW1lbnQpCi0gICAgLCBtX3Nob3dzTWlzc2luZ1BsdWdpbkluZGlj
YXRvcihmYWxzZSkKIHsKICAgICB2aWV3KCktPmZyYW1lVmlldygpLT5zZXRJc1Zpc3VhbGx5Tm9u
RW1wdHkoKTsKIH0KQEAgLTE1Niw3ICsxNTUsNyBAQCBzdGF0aWMgdm9pZCBtYXBEYXRhUGFyYW1U
b1NyYyhWZWN0b3I8U3RyCiAKIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnVwZGF0ZVdpZGdl
dChib29sIG9ubHlDcmVhdGVOb25OZXRzY2FwZVBsdWdpbnMpCiB7Ci0gICAgaWYgKG1fc2hvd3NN
aXNzaW5nUGx1Z2luSW5kaWNhdG9yIHx8ICFub2RlKCkpIC8vIENoZWNrIHRoZSBub2RlIGluIGNh
c2UgZGVzdHJveSgpIGhhcyBiZWVuIGNhbGxlZC4KKyAgICBpZiAoIW1fcmVwbGFjZW1lbnRUZXh0
LmlzTnVsbCgpIHx8ICFub2RlKCkpIC8vIENoZWNrIHRoZSBub2RlIGluIGNhc2UgZGVzdHJveSgp
IGhhcyBiZWVuIGNhbGxlZC4KICAgICAgICAgcmV0dXJuOwogCiAgICAgU3RyaW5nIHVybDsKQEAg
LTMzMywxOSArMzMyLDI5IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnVwZGF0ZVdpZGdl
dCgKICNlbmRpZgogfQogCit2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpzZXRTaG93c01pc3Np
bmdQbHVnaW5JbmRpY2F0b3IoKQoreworICAgIG1fcmVwbGFjZW1lbnRUZXh0ID0gbWlzc2luZ1Bs
dWdpblRleHQoKTsKK30KKwordm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6c2V0U2hvd3NDcmFz
aGVkUGx1Z2luSW5kaWNhdG9yKCkKK3sKKyAgICBtX3JlcGxhY2VtZW50VGV4dCA9IGNyYXNoZWRQ
bHVnaW5UZXh0KCk7Cit9CisKIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSkKIHsKLSAgICBpZiAobV9zaG93c01pc3Np
bmdQbHVnaW5JbmRpY2F0b3IpIHsKKyAgICBpZiAoIW1fcmVwbGFjZW1lbnRUZXh0LmlzTnVsbCgp
KSB7CiAgICAgICAgIFJlbmRlclJlcGxhY2VkOjpwYWludChwYWludEluZm8sIHR4LCB0eSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCiAgICAgUmVuZGVyUGFydE9iamVjdDo6cGFpbnQo
cGFpbnRJbmZvLCB0eCwgdHkpOwogfQotICAgIAorCiB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0
OjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSkKIHsK
LSAgICBpZiAoIW1fc2hvd3NNaXNzaW5nUGx1Z2luSW5kaWNhdG9yKQorICAgIGlmICghbV9yZXBs
YWNlbWVudFRleHQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChwYWludEluZm8ucGhhc2Ug
PT0gUGFpbnRQaGFzZVNlbGVjdGlvbikKQEAgLTM3MCwyOCArMzc5LDI3IEBAIHZvaWQgUmVuZGVy
RW1iZWRkZWRPYmplY3Q6OnBhaW50UmVwbGFjZWQKICAgICBGb250IGZvbnQoZm9udERlc2NyaXB0
aW9uLCAwLCAwKTsKICAgICBmb250LnVwZGF0ZSgwKTsKICAgICAKLSAgICBTdHJpbmcgbGFiZWwg
PSBtaXNzaW5nUGx1Z2luVGV4dCgpOwotICAgIFRleHRSdW4gcnVuKGxhYmVsLmNoYXJhY3RlcnMo
KSwgbGFiZWwubGVuZ3RoKCkpOworICAgIFRleHRSdW4gcnVuKG1fcmVwbGFjZW1lbnRUZXh0LmNo
YXJhY3RlcnMoKSwgbV9yZXBsYWNlbWVudFRleHQubGVuZ3RoKCkpOwogICAgIHJ1bi5kaXNhYmxl
Um91bmRpbmdIYWNrcygpOwogICAgIGZsb2F0IHRleHRXaWR0aCA9IGZvbnQuZmxvYXRXaWR0aChy
dW4pOwogICAgIAotICAgIEZsb2F0UmVjdCBtaXNzaW5nUGx1Z2luUmVjdDsKLSAgICBtaXNzaW5n
UGx1Z2luUmVjdC5zZXRTaXplKEZsb2F0U2l6ZSh0ZXh0V2lkdGggKyBtaXNzaW5nUGx1Z2luUm91
bmRlZFJlY3RMZWZ0UmlnaHRUZXh0TWFyZ2luICogMiwgbWlzc2luZ1BsdWdpblJvdW5kZWRSZWN0
SGVpZ2h0KSk7Ci0gICAgbWlzc2luZ1BsdWdpblJlY3Quc2V0TG9jYXRpb24oRmxvYXRQb2ludCgo
cGx1Z2luUmVjdC5zaXplKCkud2lkdGgoKSAvIDIgLSBtaXNzaW5nUGx1Z2luUmVjdC5zaXplKCku
d2lkdGgoKSAvIDIpICsgcGx1Z2luUmVjdC5sb2NhdGlvbigpLngoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbHVnaW5SZWN0LnNpemUoKS5oZWlnaHQo
KSAvIDIgLSBtaXNzaW5nUGx1Z2luUmVjdC5zaXplKCkuaGVpZ2h0KCkgLyAyKSArIHBsdWdpblJl
Y3QubG9jYXRpb24oKS55KCkpKTsKKyAgICBGbG9hdFJlY3QgcmVwbGFjZW1lbnRUZXh0UmVjdDsK
KyAgICByZXBsYWNlbWVudFRleHRSZWN0LnNldFNpemUoRmxvYXRTaXplKHRleHRXaWR0aCArIHJl
cGxhY2VtZW50VGV4dFJvdW5kZWRSZWN0TGVmdFJpZ2h0VGV4dE1hcmdpbiAqIDIsIHJlcGxhY2Vt
ZW50VGV4dFJvdW5kZWRSZWN0SGVpZ2h0KSk7CisgICAgcmVwbGFjZW1lbnRUZXh0UmVjdC5zZXRM
b2NhdGlvbihGbG9hdFBvaW50KChwbHVnaW5SZWN0LnNpemUoKS53aWR0aCgpIC8gMiAtIHJlcGxh
Y2VtZW50VGV4dFJlY3Quc2l6ZSgpLndpZHRoKCkgLyAyKSArIHBsdWdpblJlY3QubG9jYXRpb24o
KS54KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGx1
Z2luUmVjdC5zaXplKCkuaGVpZ2h0KCkgLyAyIC0gcmVwbGFjZW1lbnRUZXh0UmVjdC5zaXplKCku
aGVpZ2h0KCkgLyAyKSArIHBsdWdpblJlY3QubG9jYXRpb24oKS55KCkpKTsKICAgIAotICAgIFBh
dGggcGF0aCA9IFBhdGg6OmNyZWF0ZVJvdW5kZWRSZWN0YW5nbGUobWlzc2luZ1BsdWdpblJlY3Qs
IEZsb2F0U2l6ZShtaXNzaW5nUGx1Z2luUm91bmRlZFJlY3RSYWRpdXMsIG1pc3NpbmdQbHVnaW5S
b3VuZGVkUmVjdFJhZGl1cykpOworICAgIFBhdGggcGF0aCA9IFBhdGg6OmNyZWF0ZVJvdW5kZWRS
ZWN0YW5nbGUocmVwbGFjZW1lbnRUZXh0UmVjdCwgRmxvYXRTaXplKHJlcGxhY2VtZW50VGV4dFJv
dW5kZWRSZWN0UmFkaXVzLCByZXBsYWNlbWVudFRleHRSb3VuZGVkUmVjdFJhZGl1cykpOwogICAg
IGNvbnRleHQtPnNhdmUoKTsKICAgICBjb250ZXh0LT5jbGlwKHBsdWdpblJlY3QpOwogICAgIGNv
bnRleHQtPmJlZ2luUGF0aCgpOwogICAgIGNvbnRleHQtPmFkZFBhdGgocGF0aCk7ICAKLSAgICBj
b250ZXh0LT5zZXRBbHBoYShtaXNzaW5nUGx1Z2luUm91bmRlZFJlY3RPcGFjaXR5KTsKKyAgICBj
b250ZXh0LT5zZXRBbHBoYShyZXBsYWNlbWVudFRleHRSb3VuZGVkUmVjdE9wYWNpdHkpOwogICAg
IGNvbnRleHQtPnNldEZpbGxDb2xvcihDb2xvcjo6d2hpdGUsIHN0eWxlKCktPmNvbG9yU3BhY2Uo
KSk7CiAgICAgY29udGV4dC0+ZmlsbFBhdGgoKTsKIAotICAgIEZsb2F0UG9pbnQgbGFiZWxQb2lu
dChyb3VuZGYobWlzc2luZ1BsdWdpblJlY3QubG9jYXRpb24oKS54KCkgKyAobWlzc2luZ1BsdWdp
blJlY3Quc2l6ZSgpLndpZHRoKCkgLSB0ZXh0V2lkdGgpIC8gMiksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIHJvdW5kZihtaXNzaW5nUGx1Z2luUmVjdC5sb2NhdGlvbigpLnkoKSsgKG1pc3Np
bmdQbHVnaW5SZWN0LnNpemUoKS5oZWlnaHQoKSAtIGZvbnQuaGVpZ2h0KCkpIC8gMiArIGZvbnQu
YXNjZW50KCkpKTsKLSAgICBjb250ZXh0LT5zZXRBbHBoYShtaXNzaW5nUGx1Z2luVGV4dE9wYWNp
dHkpOworICAgIEZsb2F0UG9pbnQgbGFiZWxQb2ludChyb3VuZGYocmVwbGFjZW1lbnRUZXh0UmVj
dC5sb2NhdGlvbigpLngoKSArIChyZXBsYWNlbWVudFRleHRSZWN0LnNpemUoKS53aWR0aCgpIC0g
dGV4dFdpZHRoKSAvIDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICByb3VuZGYocmVwbGFj
ZW1lbnRUZXh0UmVjdC5sb2NhdGlvbigpLnkoKSsgKHJlcGxhY2VtZW50VGV4dFJlY3Quc2l6ZSgp
LmhlaWdodCgpIC0gZm9udC5oZWlnaHQoKSkgLyAyICsgZm9udC5hc2NlbnQoKSkpOworICAgIGNv
bnRleHQtPnNldEFscGhhKHJlcGxhY2VtZW50VGV4dFRleHRPcGFjaXR5KTsKICAgICBjb250ZXh0
LT5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrLCBzdHlsZSgpLT5jb2xvclNwYWNlKCkpOwogICAg
IGNvbnRleHQtPmRyYXdCaWRpVGV4dChmb250LCBydW4sIGxhYmVsUG9pbnQpOwogICAgIGNvbnRl
eHQtPnJlc3RvcmUoKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2Jq
ZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuaAkocmV2aXNpb24gNTcwMTgpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRl
ZE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw4ICszNCw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5SZW5kZXJFbWJlZGRlZE9iamVjdCgpOwogCiAgICAgdm9pZCB1cGRhdGVXaWRnZXQo
Ym9vbCBvbmx5Q3JlYXRlTm9uTmV0c2NhcGVQbHVnaW5zKTsKLSAgICB2b2lkIHNldFNob3dzTWlz
c2luZ1BsdWdpbkluZGljYXRvcihib29sIHNob3dzTWlzc2luZ1BsdWdpbkluZGljYXRvcikgeyBt
X3Nob3dzTWlzc2luZ1BsdWdpbkluZGljYXRvciA9IHNob3dzTWlzc2luZ1BsdWdpbkluZGljYXRv
cjsgfQotICAgIGJvb2wgc2hvd3NNaXNzaW5nUGx1Z2luSW5kaWNhdG9yKCkgY29uc3QgeyByZXR1
cm4gbV9zaG93c01pc3NpbmdQbHVnaW5JbmRpY2F0b3I7IH0KKyAgICB2b2lkIHNldFNob3dzTWlz
c2luZ1BsdWdpbkluZGljYXRvcigpOworICAgIHZvaWQgc2V0U2hvd3NDcmFzaGVkUGx1Z2luSW5k
aWNhdG9yKCk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwg
Ym9vbCBhbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3Q7CiAjZW5kaWYKQEAgLTUy
LDcgKzUyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgp
OwotICAgIGJvb2wgbV9zaG93c01pc3NpbmdQbHVnaW5JbmRpY2F0b3I7CisgICAgU3RyaW5nIG1f
cmVwbGFjZW1lbnRUZXh0OwogfTsKIAogaW5saW5lIFJlbmRlckVtYmVkZGVkT2JqZWN0KiB0b1Jl
bmRlckVtYmVkZGVkT2JqZWN0KFJlbmRlck9iamVjdCogb2JqZWN0KQpJbmRleDogV2ViS2l0L0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NzA5NCkK
KysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAx
MC0wNC0wNSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzcxMTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3OTAzMjc+
IERyYXcgcmVwbGFjZW1lbnQgdGV4dCB3aGVuIHBsdWctaW4gaG9zdCBjcmFzaGVzCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3MTExCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83NzkwMzI3PiBEcmF3IHJlcGxhY2VtZW50IHRleHQgd2hlbiBwbHVn
LWluIGhvc3QgY3Jhc2hlcworCisgICAgICAgICogRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5z
dHJpbmdzOiBBZGRlZCBhIHN0cmluZyBmb3IgcGx1Zy1pbiBmYWlsdXJlLgorCiAyMDEwLTA0LTAx
ICBMZWFuZHJvIFBlcmVpcmEgIDxsZWFuZHJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEd1c3Rhdm8gTm9yb25oYSBTaWx2YS4KSW5kZXg6IFdlYktpdC9FbmdsaXNoLmxw
cm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0VuZ2xpc2gubHBy
b2ovTG9jYWxpemFibGUuc3RyaW5ncwkocmV2aXNpb24gNTcwMTgpCisrKyBXZWJLaXQvRW5nbGlz
aC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMsNiArMTkz
LDkgQEAKIAAvACoAIABMAGEAYgBlAGwAIAB0AGUAeAB0ACAAdABvACAAYgBlACAAdQBzAGUAZAAg
AHcAaABlAG4AIABhACAAcABsAHUAZwBpAG4AIABpAHMAIABtAGkAcwBzAGkAbgBnACAAKgAvAAog
ACIATQBpAHMAcwBpAG4AZwAgAFAAbAB1AGcALQBpAG4AIgAgAD0AIAAiAE0AaQBzAHMAaQBuAGcA
IABQAGwAdQBnAC0AaQBuACIAOwAKIAAKKwAvACoAIABMAGEAYgBlAGwAIAB0AGUAeAB0ACAAdABv
ACAAYgBlACAAdQBzAGUAZAAgAGkAZgAgAHAAbAB1AGcAaQBuACAAaABvAHMAdAAgAHAAcgBvAGMA
ZQBzAHMAIABoAGEAcwAgAGMAcgBhAHMAaABlAGQAIAAqAC8ACisAIgBQAGwAdQBnAC0AaQBuACAA
RgBhAGkAbAB1AHIAZQAiACAAPQAgACIAUABsAHUAZwAtAGkAbgAgAEYAYQBpAGwAdQByAGUAIgA7
AAorAAogAC8AKgAgAE4AbwAgAEcAdQBlAHMAcwBlAHMAIABGAG8AdQBuAGQAIABjAG8AbgB0AGUA
eAB0ACAAbQBlAG4AdQAgAGkAdABlAG0AIAAqAC8ACiAAIgBOAG8AIABHAHUAZQBzAHMAZQBzACAA
RgBvAHUAbgBkACIAIAA9ACAAIgBOAG8AIABHAHUAZQBzAHMAZQBzACAARgBvAHUAbgBkACIAOwAK
IAAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNTcwOTQpCisrKyBXZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDQtMDUgIEFs
ZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM3MTExCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NzkwMzI3PiBEcmF3IHJlcGxh
Y2VtZW50IHRleHQgd2hlbiBwbHVnLWluIGhvc3QgY3Jhc2hlcworCisgICAgICAgICogc3JjL0xv
Y2FsaXplZFN0cmluZ3MuY3BwOiAoV2ViQ29yZTo6Y3Jhc2hlZFBsdWdpblRleHQpOiBBZGRlZCBh
IHN0dWIgc3RyaW5nIGZvciBwbHVnLWluCisgICAgICAgIGZhaWx1cmUuCisKIDIwMTAtMDQtMDQg
IFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJl
dmlld2VkLiBSb2xsaW5nIG91dCBjaHJvbWl1bSBjaGFuZ2VzIHI1NzAyOCBhbmQgcjU3MDMyIApJ
bmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsaXplZFN0cmluZ3MuY3BwCShyZXZpc2lvbiA1
NzAxOCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5ncy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE4MSw2ICsxODEsMTIgQEAgU3RyaW5nIG1pc3NpbmdQbHVnaW5UZXh0KCkK
ICAgICByZXR1cm4gU3RyaW5nKCJNaXNzaW5nIFBsdWctaW4iKTsKIH0KIAorU3RyaW5nIGNyYXNo
ZWRQbHVnaW5UZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoIlBsdWctaW4gRmFpbHVyZSIpOworfQorCiBTdHJpbmcgbXVsdGlwbGVGaWxlVXBsb2FkVGV4
dCh1bnNpZ25lZCBudW1iZXJPZkZpbGVzKQogewogICAgIHJldHVybiBxdWVyeShXZWJMb2NhbGl6
ZWRTdHJpbmc6Ok11bHRpcGxlRmlsZVVwbG9hZFRleHQsIG51bWJlck9mRmlsZXMpOwpJbmRleDog
V2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDU3MDk0KQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNC0wNSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzcxMTEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc3OTAzMjc+IERyYXcgcmVwbGFjZW1lbnQgdGV4dCB3aGVuIHBsdWctaW4g
aG9zdCBjcmFzaGVzCisKKyAgICAgICAgKiBQbHVnaW5zL0hvc3RlZC9XZWJIb3N0ZWROZXRzY2Fw
ZVBsdWdpblZpZXcuaDogUmVtb3ZlZCBfcGx1Z2luRGllZCAtIGl0IHdhcyBvbmx5IHVzZWQKKyAg
ICAgICAgZm9yIGRyYXdpbmcgcmVwbGFjZW1lbnQgaWNvbiwgYW5kIHRoaXMgaW5mb3JtYXRpb24g
aXMgbm93IGluIFdlYkNvcmUuCisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0
c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZp
ZXcgcGx1Z2luSG9zdERpZWRdKTogVGVsbCBSZW5kZXJFbWJlZGRlZE9iamVjdCB0aGF0IHRoZSBw
bHVnLWluCisgICAgICAgIGhhcyBjcmFzaGVkLgorICAgICAgICAoLVtXZWJIb3N0ZWROZXRzY2Fw
ZVBsdWdpblZpZXcgZHJhd1JlY3Q6XSk6IFJlbW92ZWQgdGhlIGNhc2UgZm9yIGNyYXNoZWQgcGx1
Zy1pbiBob3N0LiBJdCBpcworICAgICAgICBoYW5kbGVkIGJ5IFdlYkNvcmUgbm93LgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3RvcnkubW06ICgtW1dlYlZpZXdGYWN0b3J5
IGNyYXNoZWRQbHVnaW5UZXh0XSk6IEFkZGVkIGEgc3RyaW5nCisgICAgICAgIGZvciBwbHVnLWlu
IGZhaWx1cmUuICAgICAgICAKKwogMjAxMC0wNC0wMyAgeWFlbCBhaGFyb24gIDx5YWVsLmFoYXJv
bkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBX
ZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQvV2ViSG9zdGVkTmV0c2NhcGVQ
bHVnaW5WaWV3LmgJKHJldmlzaW9uIDU3MDE4KQorKysgV2ViS2l0L21hYy9QbHVnaW5zL0hvc3Rl
ZC9XZWJIb3N0ZWROZXRzY2FwZVBsdWdpblZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyAr
NDUsNiBAQCBAaW50ZXJmYWNlIFdlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldyA6CiAgICAgCiAg
ICAgTlNTaXplIF9wcmV2aW91c1NpemU7CiAgICAgUmVmUHRyPFdlYktpdDo6TmV0c2NhcGVQbHVn
aW5JbnN0YW5jZVByb3h5PiBfcHJveHk7Ci0gICAgQk9PTCBfcGx1Z2luSG9zdERpZWQ7CiB9CiAK
IC0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClyCkluZGV4OiBXZWJLaXQvbWFjL1BsdWdpbnMv
SG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNjYXBlUGx1Z2luVmlldy5tbQkocmV2
aXNpb24gNTcwMTgpCisrKyBXZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYkhvc3RlZE5ldHNj
YXBlUGx1Z2luVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDEsOCArNDEsOSBAQAogI2ltcG9y
dCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxQbHVnSW5FbGVtZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3Jl
L3J1bnRpbWVfcm9vdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4dHJhcy5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9ydW50aW1lX3Jvb3QuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5o
PgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KIApAQCAtMzU1LDcgKzM1Niw5IEBAIC0gKHZv
aWQpc2VuZE1vZGlmaWVyRXZlbnRXaXRoS2V5Q29kZTooaW4KIAogLSAodm9pZClwbHVnaW5Ib3N0
RGllZAogewotICAgIF9wbHVnaW5Ib3N0RGllZCA9IFlFUzsKKyAgICBSZW5kZXJFbWJlZGRlZE9i
amVjdCogcmVuZGVyZXIgPSB0b1JlbmRlckVtYmVkZGVkT2JqZWN0KF9lbGVtZW50LT5yZW5kZXJl
cigpKTsKKyAgICBpZiAocmVuZGVyZXIpCisgICAgICAgIHJlbmRlcmVyLT5zZXRTaG93c0NyYXNo
ZWRQbHVnaW5JbmRpY2F0b3IoKTsKIAogICAgIF9wbHVnaW5MYXllciA9IG5pbDsKICAgICBfcHJv
eHkgPSAwOwpAQCAtMzg3LDI0ICszOTAsNiBAQCAtICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVj
dAogCiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCi0gICAgaWYgKF9wbHVnaW5Ib3N0RGll
ZCkgewotICAgICAgICBzdGF0aWMgTlNJbWFnZSAqbnVsbFBsdWdJbkltYWdlOwotICAgICAgICBp
ZiAoIW51bGxQbHVnSW5JbWFnZSkgewotICAgICAgICAgICAgTlNCdW5kbGUgKmJ1bmRsZSA9IFtO
U0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV2ViSG9zdGVkTmV0c2NhcGVQbHVnaW5WaWV3IGNsYXNz
XV07Ci0gICAgICAgICAgICBudWxsUGx1Z0luSW1hZ2UgPSBbW05TSW1hZ2UgYWxsb2NdIGluaXRX
aXRoQ29udGVudHNPZkZpbGU6W2J1bmRsZSBwYXRoRm9yUmVzb3VyY2U6QCJudWxscGx1Z2luIiBv
ZlR5cGU6QCJ0aWZmIl1dOwotICAgICAgICAgICAgW251bGxQbHVnSW5JbWFnZSBzZXRGbGlwcGVk
OllFU107Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmICghbnVsbFBsdWdJbkltYWdl
KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICAgICAgTlNTaXplIGltYWdlU2l6
ZSA9IFtudWxsUGx1Z0luSW1hZ2Ugc2l6ZV07Ci0gICAgICAgIE5TU2l6ZSB2aWV3U2l6ZSA9IFtz
ZWxmIGJvdW5kc10uc2l6ZTsKLSAgICAgICAgCi0gICAgICAgIE5TUG9pbnQgcG9pbnQgPSBOU01h
a2VQb2ludCgodmlld1NpemUud2lkdGggLSBpbWFnZVNpemUud2lkdGgpIC8gMi4wLCAodmlld1Np
emUuaGVpZ2h0IC0gaW1hZ2VTaXplLmhlaWdodCkgLyAyLjApOwotICAgICAgICBbbnVsbFBsdWdJ
bkltYWdlIGRyYXdBdFBvaW50OnBvaW50IGZyb21SZWN0Ok5TWmVyb1JlY3Qgb3BlcmF0aW9uOk5T
Q29tcG9zaXRlU291cmNlT3ZlciBmcmFjdGlvbjoxLjBdOwotICAgIH0KIH0KIAogLSAoUGFzc1Jl
ZlB0cjxKU0M6OkJpbmRpbmdzOjpJbnN0YW5jZT4pY3JlYXRlUGx1Z2luQmluZGluZ3NJbnN0YW5j
ZTooUGFzc1JlZlB0cjxKU0M6OkJpbmRpbmdzOjpSb290T2JqZWN0Pilyb290T2JqZWN0CkluZGV4
OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpZXdGYWN0b3J5Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3RvcnkubW0JKHJldmlzaW9u
IDU3MDE4KQorKysgV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFjdG9yeS5tbQko
d29ya2luZyBjb3B5KQpAQCAtNjQ1LDYgKzY0NSwxMSBAQCAtIChOU1N0cmluZyAqKW1pc3NpbmdQ
bHVnaW5UZXh0CiAgICAgcmV0dXJuIFVJX1NUUklORygiTWlzc2luZyBQbHVnLWluIiwgIkxhYmVs
IHRleHQgdG8gYmUgdXNlZCB3aGVuIGEgcGx1Z2luIGlzIG1pc3NpbmciKTsKIH0KIAorLSAoTlNT
dHJpbmcgKiljcmFzaGVkUGx1Z2luVGV4dAoreworICAgIHJldHVybiBVSV9TVFJJTkcoIlBsdWct
aW4gRmFpbHVyZSIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgaWYgcGx1Z2luIGhvc3QgcHJvY2Vz
cyBoYXMgY3Jhc2hlZCIpOworfQorCiAtIChOU1N0cmluZyAqKW11bHRpcGxlRmlsZVVwbG9hZFRl
eHRGb3JOdW1iZXJPZkZpbGVzOih1bnNpZ25lZCludW1iZXJPZkZpbGVzCiB7CiAgICAgcmV0dXJu
IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OlVJX1NUUklORygiJWQgZmlsZXMiLCAiTGFiZWwg
dG8gZGVzY3JpYmUgdGhlIG51bWJlciBvZiBmaWxlcyBzZWxlY3RlZCBpbiBhIGZpbGUgdXBsb2Fk
IGNvbnRyb2wgdGhhdCBhbGxvd3MgbXVsdGlwbGUgZmlsZXMiKSwgbnVtYmVyT2ZGaWxlc107Cklu
ZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5n
ZUxvZwkocmV2aXNpb24gNTcwOTQpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA0LTA1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8
YXBAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzExMQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzc5MDMyNz4gRHJhdyByZXBsYWNlbWVudCB0ZXh0IHdoZW4gcGx1
Zy1pbiBob3N0IGNyYXNoZXMKKworICAgICAgICAqIFdlYkNvcmVMb2NhbGl6ZWRTdHJpbmdzLmNw
cDogKFdlYkNvcmU6OmNyYXNoZWRQbHVnaW5UZXh0KTogQWRkZWQgYSBzdHViIHN0cmluZyBmb3Ig
cGx1Zy1pbgorICAgICAgICBmYWlsdXJlLgorCiAyMDEwLTA0LTAyICBSYWZhZWwgV2VpbnN0ZWlu
ICA8cmFmYWVsd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KSW5kZXg6IFdlYktpdC93aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwCShyZXZpc2lvbiA1
NzAxOCkKKysrIFdlYktpdC93aW4vV2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05OCw2ICs5OCw3IEBAIFN0cmluZyBXZWJDb3JlOjp1bmtub3duRmlsZVNpemVU
ZXh0KCkgeyAKIFN0cmluZyBXZWJDb3JlOjp1cGxvYWRGaWxlVGV4dCgpIHsgcmV0dXJuIFN0cmlu
ZyhMUENUU1RSX1VJX1NUUklORygiVXBsb2FkIGZpbGUiLCAiKFdpbmRvd3MpIEZvcm0gc3VibWl0
IGZpbGUgdXBsb2FkIGRpYWxvZyB0aXRsZSIpKTsgfQogU3RyaW5nIFdlYkNvcmU6OmFsbEZpbGVz
VGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygiQWxsIEZpbGVzIiwgIihX
aW5kb3dzKSBGb3JtIHN1Ym1pdCBmaWxlIHVwbG9hZCBhbGwgZmlsZXMgcG9wLXVwIikpOyB9CiBT
dHJpbmcgV2ViQ29yZTo6bWlzc2luZ1BsdWdpblRleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNU
Ul9VSV9TVFJJTkcoIk1pc3NpbmcgUGx1Zy1pbiIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgd2hl
biBhIHBsdWdpbiBpcyBtaXNzaW5nIikpOyB9CitTdHJpbmcgV2ViQ29yZTo6Y3Jhc2hlZFBsdWdp
blRleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoIlBsdWctaW4gRmFpbHVy
ZSIsICJMYWJlbCB0ZXh0IHRvIGJlIHVzZWQgaWYgcGx1Z2luIGhvc3QgcHJvY2VzcyBoYXMgY3Jh
c2hlZCIpKTsgfQogU3RyaW5nIFdlYkNvcmU6OmltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxl
bmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgCiB7IAogICAgIHN0YXRpYyBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IGZvcm1hdChBZG9wdENGLCBVSV9TVFJJTkcoIiVAICVkXHhDM1x4OTclZCBwaXhl
bHMiLCAid2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGlj
YXRpb24gc3ltYm9sLCBub3QgeCkiKSk7Cg==
</data>
<flag name="review"
          id="36088"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>