<?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>44696</bug_id>
          
          <creation_ts>2010-08-26 11:10:33 -0700</creation_ts>
          <short_desc>Misc. cleanup from bug 32356</short_desc>
          <delta_ts>2010-08-27 10:04: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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Kasting">pkasting</reporter>
          <assigned_to name="Peter Kasting">pkasting</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>269966</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-08-26 11:10:33 -0700</bug_when>
    <thetext>While working on bug 32356, I&apos;ve touched a lot of code.  This bug is to hold a cleanup patch that splits out the non-functional changes I&apos;ve made (e.g. style guide compliance, better line wrapping, etc.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269971</commentid>
    <comment_count>1</comment_count>
      <attachid>65583</attachid>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-08-26 11:17:27 -0700</bug_when>
    <thetext>Created attachment 65583
patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269975</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-26 11:18:48 -0700</bug_when>
    <thetext>Attachment 65583 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/Scrollbar.cpp:150:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
WebCore/platform/Scrollbar.cpp:149:  Missing space before ( in switch(  [whitespace/parens] [5]
Total errors found: 2 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269979</commentid>
    <comment_count>3</comment_count>
      <attachid>65585</attachid>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-08-26 11:21:37 -0700</bug_when>
    <thetext>Created attachment 65585
patch v1.1

Fix style errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269996</commentid>
    <comment_count>4</comment_count>
      <attachid>65585</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-08-26 11:36:34 -0700</bug_when>
    <thetext>Comment on attachment 65585
patch v1.1

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270000</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-26 11:40:08 -0700</bug_when>
    <thetext>Attachment 65583 did not build on mac:
Build output: http://queues.webkit.org/results/3789566</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270007</commentid>
    <comment_count>6</comment_count>
      <attachid>65591</attachid>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-08-26 11:47:07 -0700</bug_when>
    <thetext>Created attachment 65591
patch v1.2

Fix Mac build error due to (wrong) compiler warning.  Carrying over dglazkov&apos;s r+ and cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270036</commentid>
    <comment_count>7</comment_count>
      <attachid>65591</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-08-26 12:37:09 -0700</bug_when>
    <thetext>Comment on attachment 65591
patch v1.2

cycling the rrrr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270499</commentid>
    <comment_count>8</comment_count>
      <attachid>65591</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-27 08:05:49 -0700</bug_when>
    <thetext>Comment on attachment 65591
patch v1.2

Rejecting patch 65591 from commit-queue.

Failed to run &quot;[u&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Dimitri Glazkov&apos;, u&apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
rImpl.cpp
Hunk #1 FAILED at 81.
Hunk #2 FAILED at 214.
2 out of 2 hunks FAILED -- saving rejects to file WebKit/chromium/src/WebScrollbarImpl.cpp.rej
patching file WebKit/chromium/src/WebViewImpl.cpp
Hunk #1 FAILED at 823.
1 out of 1 hunk FAILED -- saving rejects to file WebKit/chromium/src/WebViewImpl.cpp.rej
patching file WebKit/chromium/src/win/WebInputEventFactory.cpp
Hunk #1 FAILED at 398.
1 out of 1 hunk FAILED -- saving rejects to file WebKit/chromium/src/win/WebInputEventFactory.cpp.rej

Full output: http://queues.webkit.org/results/3851023</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270567</commentid>
    <comment_count>9</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-08-27 10:04:41 -0700</bug_when>
    <thetext>Shoot, I forgot to mark this fixed.  I landed this in r66126.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65583</attachid>
            <date>2010-08-26 11:17:27 -0700</date>
            <delta_ts>2010-08-26 11:21:37 -0700</delta_ts>
            <desc>patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19446</size>
            <attacher name="Peter Kasting">pkasting</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjExNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTAtMDgtMjYgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1pc2MuIGNsZWFudXAgc3BsaXQgb2ZmIGZyb20gYnVnIDMyMzU2LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ2OTYKKworICAgICAgICAqIFdlYkNv
cmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmxvY2FsWm9vbUZvclJlbmRlcmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OndoZWVsRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpzY3JvbGwpOgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGJhci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpp
c1Njcm9sbGJhcik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyQ2xpZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxiYXJDbGllbnQ6On5TY3JvbGxiYXJDbGllbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1Njcm9sbGJhclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGJhcjo6Y29udGV4dE1lbnUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNjcm9sbCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisKIDIwMTAtMDgtMjQgIFZhbmdlbGlzIEtv
a2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtl
bm5ldGggUnVzc2VsbC4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAkocmV2aXNpb24gNjYx
MTQpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjIyLDggKzEyMjIsOCBAQAogICAgICAgICAgICdzb3VyY2VzLyc6IFsKICAgICAgICAgICAg
IFsnZXhjbHVkZScsICdQb3NpeFxcLmNwcCQnXSwKICAgICAgICAgICAgIFsnaW5jbHVkZScsICcv
b3BlbnR5cGUvJ10sCi0gICAgICAgICAgICBbJ2luY2x1ZGUnLCAnL1RyYW5zcGFyZW5jeVdpblxc
LmNwcCQnXSwKICAgICAgICAgICAgIFsnaW5jbHVkZScsICcvU2tpYUZvbnRXaW5cXC5jcHAkJ10s
CisgICAgICAgICAgICBbJ2luY2x1ZGUnLCAnL1RyYW5zcGFyZW5jeVdpblxcLmNwcCQnXSwKICAg
ICAgICAgICBdLAogICAgICAgICAgICdkZWZpbmVzJzogWwogICAgICAgICAgICAgIyBNYXRjaCBT
YWZhcmkgYW5kIE1vemlsbGEgb24gV2luZG93cy4KSW5kZXg6IFdlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjEx
NCkKKysrIFdlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzMsOCAr
MjczLDggQEAgc3RhdGljIGZsb2F0IGxvY2FsWm9vbUZvclJlbmRlcmVyKFJlbmRlcgogICAgIC8v
IEZJWE1FOiBUaGlzIGRvZXMgdGhlIHdyb25nIHRoaW5nIGlmIHR3byBvcHBvc2luZyB6b29tcyBh
cmUgaW4gZWZmZWN0IGFuZCBjYW5jZWxlZCBlYWNoCiAgICAgLy8gb3RoZXIgb3V0LCBidXQgdGhl
IGFsdGVybmF0aXZlIGlzIHRoYXQgd2UnZCBoYXZlIHRvIGNyYXdsIHVwIHRoZSB3aG9sZSByZW5k
ZXIgdHJlZSBldmVyeQogICAgIC8vIHRpbWUgKG9yIHN0b3JlIGFuIGFkZGl0aW9uYWwgYml0IGlu
IHRoZSBSZW5kZXJTdHlsZSB0byBpbmRpY2F0ZSB0aGF0IGEgem9vbSB3YXMgc3BlY2lmaWVkKS4K
LSAgICBmbG9hdCB6b29tRmFjdG9yID0gMS4wZjsKLSAgICBpZiAocmVuZGVyZXItPnN0eWxlKCkt
PmVmZmVjdGl2ZVpvb20oKSAhPSAxLjBmKSB7CisgICAgZmxvYXQgem9vbUZhY3RvciA9IDE7Cisg
ICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkgIT0gMSkgewogICAgICAg
ICAvLyBOZWVkIHRvIGZpbmQgdGhlIG5lYXJlc3QgZW5jbG9zaW5nIFJlbmRlck9iamVjdCB0aGF0
IHNldCB1cAogICAgICAgICAvLyBhIGRpZmZlcmluZyB6b29tLCBhbmQgdGhlbiB3ZSBkaXZpZGUg
b3VyIHJlc3VsdCBieSBpdCB0byBlbGltaW5hdGUgdGhlIHpvb20uCiAgICAgICAgIFJlbmRlck9i
amVjdCogcHJldiA9IHJlbmRlcmVyOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCShyZXZp
c2lvbiA2NjExNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY2OSw3ICs2NjksNyBAQCB2b2lkIFNjcm9sbFZpZXc6OndoZWVsRXZlbnQoUGxh
dGZvcm1XaGVlCiAgICAgICAgIGlmIChlLmdyYW51bGFyaXR5KCkgPT0gU2Nyb2xsQnlQYWdlV2hl
ZWxFdmVudCkgewogICAgICAgICAgICAgQVNTRVJUKGRlbHRhWCA9PSAwKTsKICAgICAgICAgICAg
IGJvb2wgbmVnYXRpdmUgPSBkZWx0YVkgPCAwOwotICAgICAgICAgICAgZGVsdGFZID0gbWF4KG1h
eDxpbnQ+KHZpc2libGVIZWlnaHQoKSAqIFNjcm9sbGJhcjo6bWluRnJhY3Rpb25Ub1N0ZXBXaGVu
UGFnaW5nKCksIHZpc2libGVIZWlnaHQoKSAtIFNjcm9sbGJhcjo6bWF4T3ZlcmxhcEJldHdlZW5Q
YWdlcygpKSwgMSk7CisgICAgICAgICAgICBkZWx0YVkgPSBtYXgobWF4KHN0YXRpY19jYXN0PGZs
b2F0Pih2aXNpYmxlSGVpZ2h0KCkpICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRvU3RlcFdoZW5Q
YWdpbmcoKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZpc2libGVIZWlnaHQoKSAtIFNjcm9sbGJhcjo6
bWF4T3ZlcmxhcEJldHdlZW5QYWdlcygpKSksIDEuMGYpOwogICAgICAgICAgICAgaWYgKG5lZ2F0
aXZlKQogICAgICAgICAgICAgICAgIGRlbHRhWSA9IC1kZWx0YVk7CiAgICAgICAgIH0KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5oCShyZXZpc2lvbiA2NjExNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIGNsYXNzIFNjcm9s
bFZpZXcgOiBwdWJsaWMgV2lkZ2V0LCBwdWJsaWMKIHB1YmxpYzoKICAgICB+U2Nyb2xsVmlldygp
OwogCi0gICAgLy8gU2Nyb2xsYmFyQ2xpZW50IGZ1bmN0aW9uLiBGcmFtZVZpZXcgb3ZlcnJpZGVz
IHRoZSBvdGhlciB0d28uCisgICAgLy8gU2Nyb2xsYmFyQ2xpZW50IGZ1bmN0aW9uLiBGcmFtZVZp
ZXcgb3ZlcnJpZGVzIHRoZSBvdGhlcnMuCiAgICAgdmlydHVhbCB2b2lkIHZhbHVlQ2hhbmdlZChT
Y3JvbGxiYXIqKTsKICAgICAKICAgICAvLyBUaGUgd2luZG93IHRoYXRzIGhvc3RzIHRoZSBTY3Jv
bGxWaWV3LiBUaGUgU2Nyb2xsVmlldyB3aWxsIGNvbW11bmljYXRlIHNjcm9sbHMgYW5kIHJlcGFp
bnRzIHRvIHRoZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAkocmV2aXNpb24gNjYxMTQpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miwy
NCArMTQyLDIwIEBAIGJvb2wgU2Nyb2xsYmFyOjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGQKICAg
ICB9CiAjZW5kaWYKIAotICAgIGZsb2F0IHN0ZXAgPSAwOwotICAgIGlmICgoZGlyZWN0aW9uID09
IFNjcm9sbFVwICYmIG1fb3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIpIHx8IChkaXJl
Y3Rpb24gPT0gU2Nyb2xsTGVmdCAmJiBtX29yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxi
YXIpKQotICAgICAgICBzdGVwID0gLTE7Ci0gICAgZWxzZSBpZiAoKGRpcmVjdGlvbiA9PSBTY3Jv
bGxEb3duICYmIG1fb3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIpIHx8IChkaXJlY3Rp
b24gPT0gU2Nyb2xsUmlnaHQgJiYgbV9vcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFy
KSkKLSAgICAgICAgc3RlcCA9IDE7Ci0KLSAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlM
aW5lKQotICAgICAgICBzdGVwICo9IG1fbGluZVN0ZXA7Ci0gICAgZWxzZSBpZiAoZ3JhbnVsYXJp
dHkgPT0gU2Nyb2xsQnlQYWdlKQotICAgICAgICBzdGVwICo9IG1fcGFnZVN0ZXA7Ci0gICAgZWxz
ZSBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlEb2N1bWVudCkKLSAgICAgICAgc3RlcCAqPSBt
X3RvdGFsU2l6ZTsKLSAgICBlbHNlIGlmIChncmFudWxhcml0eSA9PSBTY3JvbGxCeVBpeGVsKQot
ICAgICAgICBzdGVwICo9IG1fcGl4ZWxTdGVwOworICAgIC8vIElnbm9yZSBwZXJwZW5kaWN1bGFy
IHNjcm9sbHMuCisgICAgaWYgKChtX29yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIp
ID8gKGRpcmVjdGlvbiA9PSBTY3JvbGxVcCB8fCBkaXJlY3Rpb24gPT0gU2Nyb2xsRG93bikgOiAo
ZGlyZWN0aW9uID09IFNjcm9sbExlZnQgfHwgZGlyZWN0aW9uID09IFNjcm9sbFJpZ2h0KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGZsb2F0IHN0ZXA7CisgICAgc3dpdGNoKGdyYW51bGFy
aXR5KSB7CisgICAgICBjYXNlIFNjcm9sbEJ5TGluZTogICAgIHN0ZXAgPSBtX2xpbmVTdGVwOyAg
YnJlYWs7CisgICAgICBjYXNlIFNjcm9sbEJ5UGFnZTogICAgIHN0ZXAgPSBtX3BhZ2VTdGVwOyAg
YnJlYWs7CisgICAgICBjYXNlIFNjcm9sbEJ5RG9jdW1lbnQ6IHN0ZXAgPSBtX3RvdGFsU2l6ZTsg
YnJlYWs7CisgICAgICBjYXNlIFNjcm9sbEJ5UGl4ZWw6ICAgIHN0ZXAgPSBtX3BpeGVsU3RlcDsg
YnJlYWs7CisgICAgfQorICAgIGlmIChkaXJlY3Rpb24gPT0gU2Nyb2xsVXAgfHwgZGlyZWN0aW9u
ID09IFNjcm9sbExlZnQpCisgICAgICAgIG11bHRpcGxpZXIgPSAtbXVsdGlwbGllcjsKIAotICAg
IGZsb2F0IG5ld1BvcyA9IG1fY3VycmVudFBvcyArIHN0ZXAgKiBtdWx0aXBsaWVyOwotICAgIGZs
b2F0IG1heFBvcyA9IG1fdG90YWxTaXplIC0gbV92aXNpYmxlU2l6ZTsKLSAgICByZXR1cm4gc2V0
Q3VycmVudFBvcyhtYXgobWluKG5ld1BvcywgbWF4UG9zKSwgMC4wZikpOworICAgIHJldHVybiBz
ZXRDdXJyZW50UG9zKG1heChtaW4obV9jdXJyZW50UG9zICsgKHN0ZXAgKiBtdWx0aXBsaWVyKSwg
c3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fdG90YWxTaXplIC0gbV92aXNpYmxlU2l6ZSkpLCAwLjBmKSk7
CiB9CiAKIHZvaWQgU2Nyb2xsYmFyOjp1cGRhdGVUaHVtYigpCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGJhci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFy
LmgJKHJldmlzaW9uIDY2MTE0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcm9wb3J0
aW9uKGludCB2aXNpYmxlU2l6ZSwgaW50IHRvdGFsU2l6ZSk7CiAgICAgdm9pZCBzZXRQcmVzc2Vk
UG9zKGludCBwKSB7IG1fcHJlc3NlZFBvcyA9IHA7IH0KIAotICAgIGJvb2wgc2Nyb2xsKFNjcm9s
bERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLjBmKTsK
KyAgICBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9h
dCBtdWx0aXBsaWVyID0gMSk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KEdyYXBoaWNz
Q29udGV4dCosIGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QpOwogCkBAIC0xMjQsOSArMTI0LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UG9pbnQgY29udmVydFRvQ29udGFpbmluZ1ZpZXco
Y29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAgICB2aXJ0dWFsIEludFBvaW50IGNvbnZlcnRGcm9t
Q29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKIAotcHJpdmF0ZToKLSAgICB2
aXJ0dWFsIGJvb2wgaXNTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KIHByb3Rl
Y3RlZDoKICAgICBTY3JvbGxiYXIoU2Nyb2xsYmFyQ2xpZW50KiwgU2Nyb2xsYmFyT3JpZW50YXRp
b24sIFNjcm9sbGJhckNvbnRyb2xTaXplLCBTY3JvbGxiYXJUaGVtZSogPSAwKTsKIApAQCAtMTQy
LDcgKzEzOSw2IEBAIHByb3RlY3RlZDoKICAgICBTY3JvbGxHcmFudWxhcml0eSBwcmVzc2VkUGFy
dFNjcm9sbEdyYW51bGFyaXR5KCk7CiAgICAgCiAgICAgdm9pZCBtb3ZlVGh1bWIoaW50IHBvcyk7
Ci0gICAgYm9vbCBzZXRDdXJyZW50UG9zKGZsb2F0IHBvcyk7CiAKICAgICBTY3JvbGxiYXJDbGll
bnQqIG1fY2xpZW50OwogICAgIFNjcm9sbGJhck9yaWVudGF0aW9uIG1fb3JpZW50YXRpb247CkBA
IC0xNjcsNiArMTYzLDExIEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fb3ZlcmxhcHNSZXNpemVy
OwogICAgIAogICAgIGJvb2wgbV9zdXBwcmVzc0ludmFsaWRhdGlvbjsKKworcHJpdmF0ZToKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAg
ICBib29sIHNldEN1cnJlbnRQb3MoZmxvYXQgcG9zKTsKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYmFyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxiYXJDbGllbnQuaAkocmV2aXNpb24gNjYxMTQpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGJhckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2Nyb2xsYmFyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2
aXJ0dWFsIH5TY3JvbGxiYXJDbGllbnQoKSB7fQorICAgIHZpcnR1YWwgflNjcm9sbGJhckNsaWVu
dCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB2YWx1ZUNoYW5nZWQoU2Nyb2xsYmFyKikgPSAwOwog
CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciosIGNv
bnN0IEludFJlY3QmKSA9IDA7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1Njcm9sbGJhclF0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1Njcm9sbGJhclF0LmNwcAko
cmV2aXNpb24gNjYxMTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L1Njcm9sbGJhclF0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzIsOSArNzIsNyBAQCBib29sIFNjcm9sbGJhcjo6Y29udGV4dE1l
bnUoY29uc3QgUGxhdGZvCiAgICAgY29uc3QgUVBvaW50IGdsb2JhbFBvcyA9IFFQb2ludChldmVu
dC5nbG9iYWxYKCksIGV2ZW50Lmdsb2JhbFkoKSk7CiAgICAgUUFjdGlvbiogYWN0aW9uU2VsZWN0
ZWQgPSBtZW51LmV4ZWMoZ2xvYmFsUG9zKTsKIAotICAgIGlmICghYWN0aW9uU2VsZWN0ZWQpCi0g
ICAgICAgIHsgLyogRG8gbm90aGluZyAqLyB9Ci0gICAgZWxzZSBpZiAoYWN0aW9uU2VsZWN0ZWQg
PT0gYWN0U2Nyb2xsSGVyZSkgeworICAgIGlmIChhY3Rpb25TZWxlY3RlZCA9PSBhY3RTY3JvbGxI
ZXJlKSB7CiAgICAgICAgIGNvbnN0IFFQb2ludCBwb3MgPSBjb252ZXJ0RnJvbUNvbnRhaW5pbmdX
aW5kb3coZXZlbnQucG9zKCkpOwogICAgICAgICBtb3ZlVGh1bWIoaG9yaXpvbnRhbCA/IHBvcy54
KCkgOiBwb3MueSgpKTsKICAgICB9IGVsc2UgaWYgKGFjdGlvblNlbGVjdGVkID09IGFjdFNjcm9s
bFRvcCkKQEAgLTgyLDEzICs4MCwxMyBAQCBib29sIFNjcm9sbGJhcjo6Y29udGV4dE1lbnUoY29u
c3QgUGxhdGZvCiAgICAgZWxzZSBpZiAoYWN0aW9uU2VsZWN0ZWQgPT0gYWN0U2Nyb2xsQm90dG9t
KQogICAgICAgICBzZXRWYWx1ZShtYXhpbXVtKCkpOwogICAgIGVsc2UgaWYgKGFjdGlvblNlbGVj
dGVkID09IGFjdFBhZ2VVcCkKLSAgICAgICAgc2Nyb2xsKGhvcml6b250YWwgPyBTY3JvbGxMZWZ0
OiBTY3JvbGxVcCwgU2Nyb2xsQnlQYWdlLCAxKTsKKyAgICAgICAgc2Nyb2xsKGhvcml6b250YWwg
PyBTY3JvbGxMZWZ0OiBTY3JvbGxVcCwgU2Nyb2xsQnlQYWdlKTsKICAgICBlbHNlIGlmIChhY3Rp
b25TZWxlY3RlZCA9PSBhY3RQYWdlRG93bikKLSAgICAgICAgc2Nyb2xsKGhvcml6b250YWwgPyBT
Y3JvbGxSaWdodCA6IFNjcm9sbERvd24sIFNjcm9sbEJ5UGFnZSwgMSk7CisgICAgICAgIHNjcm9s
bChob3Jpem9udGFsID8gU2Nyb2xsUmlnaHQgOiBTY3JvbGxEb3duLCBTY3JvbGxCeVBhZ2UpOwog
ICAgIGVsc2UgaWYgKGFjdGlvblNlbGVjdGVkID09IGFjdFNjcm9sbFVwKQotICAgICAgICBzY3Jv
bGwoaG9yaXpvbnRhbCA/IFNjcm9sbExlZnQgOiBTY3JvbGxVcCwgU2Nyb2xsQnlMaW5lLCAxKTsK
KyAgICAgICAgc2Nyb2xsKGhvcml6b250YWwgPyBTY3JvbGxMZWZ0IDogU2Nyb2xsVXAsIFNjcm9s
bEJ5TGluZSk7CiAgICAgZWxzZSBpZiAoYWN0aW9uU2VsZWN0ZWQgPT0gYWN0U2Nyb2xsRG93bikK
LSAgICAgICAgc2Nyb2xsKGhvcml6b250YWwgPyBTY3JvbGxSaWdodCA6IFNjcm9sbERvd24sIFNj
cm9sbEJ5TGluZSwgMSk7CisgICAgICAgIHNjcm9sbChob3Jpem9udGFsID8gU2Nyb2xsUmlnaHQg
OiBTY3JvbGxEb3duLCBTY3JvbGxCeUxpbmUpOwogI2VuZGlmIC8vIFFUX05PX0NPTlRFWFRNRU5V
CiAgICAgcmV0dXJuIHRydWU7CiB9CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkocmV2aXNpb24g
NjYxMTQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkod29ya2luZyBjb3B5KQpA
QCAtMjQ2LDcgKzI0Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgaW50IHZlcnRpY2FsU2Ny
b2xsYmFyV2lkdGgoKSBjb25zdDsKICAgICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgp
IGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEuMGYsIE5vZGUqKiBzdG9wTm9kZSA9IDAp
OworICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxh
cml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIE5vZGUqKiBzdG9wTm9kZSA9IDApOwogICAgIGJv
b2wgY2FuQmVTY3JvbGxlZEFuZEhhc1Njcm9sbGFibGVBcmVhKCkgY29uc3Q7CiAgICAgdmlydHVh
bCBib29sIGNhbkJlUHJvZ3JhbWF0aWNhbGx5U2Nyb2xsZWQoYm9vbCkgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIGF1dG9zY3JvbGwoKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJ
KHJldmlzaW9uIDY2MTE0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yMjM1LDEyICsyMjM1LDEwIEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNj
cm9sbChTY3JvbGxEaXJlY3Rpb24KICAgICBib29sIGRpZFZlcnRpY2FsU2Nyb2xsID0gZmFsc2U7
CiAgICAgCiAgICAgaWYgKG1faEJhcikgewotICAgICAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Ny
b2xsQnlEb2N1bWVudCkgewotICAgICAgICAgICAgLy8gU3BlY2lhbC1jYXNlIGZvciB0aGUgU2Ny
b2xsQnlEb2N1bWVudCBncmFudWxhcml0eS4gQSBkb2N1bWVudCBzY3JvbGwgY2FuIG9ubHkgYmUg
dXAgCi0gICAgICAgICAgICAvLyBvciBkb3duIGFuZCBpbiBib3RoIGNhc2VzIHRoZSBob3Jpem9u
dGFsIGJhciBnb2VzIGFsbCB0aGUgd2F5IHRvIHRoZSBsZWZ0LgotICAgICAgICAgICAgZGlkSG9y
aXpvbnRhbFNjcm9sbCA9IG1faEJhci0+c2Nyb2xsKFNjcm9sbExlZnQsIFNjcm9sbEJ5RG9jdW1l
bnQsIG11bHRpcGxpZXIpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGRpZEhvcml6b250
YWxTY3JvbGwgPSBtX2hCYXItPnNjcm9sbChkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCBtdWx0aXBs
aWVyKTsKKyAgICAgICAgLy8gU3BlY2lhbC1jYXNlIGZvciB0aGUgU2Nyb2xsQnlEb2N1bWVudCBn
cmFudWxhcml0eS4gQSBkb2N1bWVudCBzY3JvbGwKKyAgICAgICAgLy8gY2FuIG9ubHkgYmUgdXAg
b3IgZG93biBhbmQgaW4gYm90aCBjYXNlcyB0aGUgaG9yaXpvbnRhbCBiYXIgZ29lcyBhbGwKKyAg
ICAgICAgLy8gdGhlIHdheSB0byB0aGUgbGVmdC4KKyAgICAgICAgZGlkSG9yaXpvbnRhbFNjcm9s
bCA9IG1faEJhci0+c2Nyb2xsKChncmFudWxhcml0eSA9PSBTY3JvbGxCeURvY3VtZW50KSA/IFNj
cm9sbExlZnQgOiBkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCBtdWx0aXBsaWVyKTsKICAgICB9CiAK
ICAgICBpZiAobV92QmFyKQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCShyZXZpc2lvbiA2
NjExNCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI3NCw3ICsyNzQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVwZGF0ZVNjcm9sbEluZm9B
ZnRlckxheW91dCgpOwogCi0gICAgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEuMGYpOworICAgIGJvb2wgc2Nyb2xsKFNj
cm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxKTsK
ICAgICB2b2lkIGF1dG9zY3JvbGwoKTsKIAogICAgIHZvaWQgcmVzaXplKGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYsIGNvbnN0IEludFNpemUmKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmgJKHJldmlzaW9uIDY2MTE0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0
dWFsIGJvb2wgaXNQb2ludEluT3ZlcmZsb3dDb250cm9sKEhpdFRlc3RSZXN1bHQmLCBpbnQgeCwg
aW50IHksIGludCB0eCwgaW50IHR5KTsKIAotICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xs
RGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEuMGYsIE5v
ZGUqKiBzdG9wTm9kZSA9IDApOworICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0
aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEsIE5vZGUqKiBzdG9w
Tm9kZSA9IDApOwogCiAgICAgdmlydHVhbCB2b2lkIGNhbGNQcmVmV2lkdGhzKCk7CiAgICAgdmly
dHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlvbihib29sIGZpcnN0TGluZSwgYm9vbCBpc1Jvb3RMaW5l
Qm94KSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5oCShyZXZpc2lvbiA2NjExNCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHNldFNjcm9sbExlZnQoaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Ny
b2xsVG9wKGludCk7Ci0gICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNj
cm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMS4wZiwgTm9kZSoqIHN0b3BOb2Rl
ID0gMCk7CisgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdy
YW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgTm9kZSoqIHN0b3BOb2RlID0gMCk7CiAK
ICAgICBpbnQgdGV4dEJsb2NrV2lkdGgoKSBjb25zdDsKICAgICB2aXJ0dWFsIGZsb2F0IGdldEF2
Z0NoYXJXaWR0aChBdG9taWNTdHJpbmcgZmFtaWx5KTsKSW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NjExNCkKKysrIFdl
YktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDgt
MjYgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1pc2MuIGNsZWFudXAgc3BsaXQgb2Zm
IGZyb20gYnVnIDMyMzU2LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDQ2OTYKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdl
UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9y
Rm9yS2V5RXZlbnQpOgorCiAyMDEwLTA4LTI1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXgsIG5vIHJldmlldy4KSW5kZXg6IFdlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAkocmV2aXNpb24gNjYxMTQpCisr
KyBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMjYsMTAgKzIyNiw3IEBAIGJvb2wgV2ViUGFnZTo6cGVyZm9ybURlZmF1bHRCZWhh
dmlvckZvcksKICAgICAgICAgICAgIG1fcGFnZS0+Z29CYWNrKCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgVktfU1BBQ0U6Ci0gICAgICAgIGlmIChrZXlib2FyZEV2ZW50LnNoaWZ0S2V5KCkp
Ci0gICAgICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxVcCwgU2Nyb2xsQnlQYWdlKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xs
QnlQYWdlKTsKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwga2V5Ym9hcmRFdmVudC5zaGlmdEtleSgp
ID8gU2Nyb2xsVXAgOiBTY3JvbGxEb3duLCBTY3JvbGxCeVBhZ2UpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFZLX0xFRlQ6CiAgICAgICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbExlZnQsIFNj
cm9sbEJ5TGluZSk7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY2MTE0KQorKysgV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEw
LTA4LTI2ICBQZXRlciBLYXN0aW5nICA8cGthc3RpbmdAZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNaXNjLiBjbGVhbnVwIHNwbGl0
IG9mZiBmcm9tIGJ1ZyAzMjM1Ni4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ0Njk2CisKKyAgICAgICAgKiBzcmMvV2ViU2Nyb2xsYmFySW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlNjcm9sbGJhckltcGw6OnNldExvY2F0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU2Nyb2xsYmFySW1wbDo6b25Nb3VzZVdoZWVsKToKKyAgICAgICAgKiBz
cmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJvcGFn
YXRlU2Nyb2xsKToKKyAgICAgICAgKiBzcmMvd2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViSW5wdXRFdmVudEZhY3Rvcnk6Om1vdXNlV2hlZWxFdmVudCk6
CisKIDIwMTAtMDgtMjYgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZC4gUmV2ZXJ0IHI2NjEwMyBzaW5jZSBRdCB0ZXN0cyBhcmUgZmFp
bGluZy4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2Nyb2xsYmFySW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY3JvbGxiYXJJbXBsLmNwcAkocmV2
aXNpb24gNjYxMTQpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNjcm9sbGJhckltcGwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgV2ViU2Nyb2xsYmFySW1wbDo6
c2V0TG9jYXRpb24oY29uc3QKICAgICAgIG1fc2Nyb2xsYmFyLT5pbnZhbGlkYXRlKCk7CiAKICAg
ICBpbnQgbGVuZ3RoID0gbV9zY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNj
cm9sbGJhciA/IG1fc2Nyb2xsYmFyLT53aWR0aCgpIDogbV9zY3JvbGxiYXItPmhlaWdodCgpOwot
ICAgIGludCBwYWdlU3RlcCA9IG1heChtYXg8aW50PihsZW5ndGggKiBTY3JvbGxiYXI6Om1pbkZy
YWN0aW9uVG9TdGVwV2hlblBhZ2luZygpLCBsZW5ndGggLSBTY3JvbGxiYXI6Om1heE92ZXJsYXBC
ZXR3ZWVuUGFnZXMoKSksIDEpOworICAgIGludCBwYWdlU3RlcCA9IG1heChtYXgoc3RhdGljX2Nh
c3Q8aW50PihzdGF0aWNfY2FzdDxmbG9hdD4obGVuZ3RoKSAqIFNjcm9sbGJhcjo6bWluRnJhY3Rp
b25Ub1N0ZXBXaGVuUGFnaW5nKCkpLCBsZW5ndGggLSBTY3JvbGxiYXI6Om1heE92ZXJsYXBCZXR3
ZWVuUGFnZXMoKSksIDEpOwogICAgIG1fc2Nyb2xsYmFyLT5zZXRTdGVwcyhTY3JvbGxiYXI6OnBp
eGVsc1BlckxpbmVTdGVwKCksIHBhZ2VTdGVwKTsKICAgICBtX3Njcm9sbGJhci0+c2V0RW5hYmxl
ZChtX3Njcm9sbGJhci0+dG90YWxTaXplKCkgPiBsZW5ndGgpOwogICAgIG1fc2Nyb2xsYmFyLT5z
ZXRQcm9wb3J0aW9uKGxlbmd0aCwgbV9zY3JvbGxiYXItPnRvdGFsU2l6ZSgpKTsKQEAgLTIxNCw3
ICsyMTQsNyBAQCBib29sIFdlYlNjcm9sbGJhckltcGw6Om9uTW91c2VXaGVlbChjb25zCiAgICAg
ICAgICAgICBpZiAobW91c2V3aGVlbC5zY3JvbGxCeVBhZ2UpIHsKICAgICAgICAgICAgICAgICBB
U1NFUlQobV9zY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpOwog
ICAgICAgICAgICAgICAgIGJvb2wgbmVnYXRpdmUgPSBkZWx0YSA8IDA7Ci0gICAgICAgICAgICAg
ICAgZGVsdGEgPSBtYXgobWF4PGludD4obV9zY3JvbGxiYXItPnZpc2libGVTaXplKCkgKiBTY3Jv
bGxiYXI6Om1pbkZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZygpLCBtX3Njcm9sbGJhci0+dmlzaWJs
ZVNpemUoKSAtIFNjcm9sbGJhcjo6bWF4T3ZlcmxhcEJldHdlZW5QYWdlcygpKSwgMSk7CisgICAg
ICAgICAgICAgICAgZGVsdGEgPSBtYXgobWF4KHN0YXRpY19jYXN0PGZsb2F0PihtX3Njcm9sbGJh
ci0+dmlzaWJsZVNpemUoKSkgKiBTY3JvbGxiYXI6Om1pbkZyYWN0aW9uVG9TdGVwV2hlblBhZ2lu
ZygpLCBzdGF0aWNfY2FzdDxmbG9hdD4obV9zY3JvbGxiYXItPnZpc2libGVTaXplKCkgLSBTY3Jv
bGxiYXI6Om1heE92ZXJsYXBCZXR3ZWVuUGFnZXMoKSkpLCAxLjBmKTsKICAgICAgICAgICAgICAg
ICBpZiAobmVnYXRpdmUpCiAgICAgICAgICAgICAgICAgICAgIGRlbHRhICo9IC0xOwogICAgICAg
ICAgICAgfQpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDY2
MTE0KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgyMywxMyArODIzLDEwIEBAIGJvb2wgV2ViVmlld0ltcGw6OnByb3BhZ2F0ZVNjcm9s
bChTY3JvbGwKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBi
b29sIHNjcm9sbEhhbmRsZWQgPQotICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNjcm9s
bE92ZXJmbG93KHNjcm9sbERpcmVjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzY3JvbGxHcmFudWxhcml0eSk7CisgICAgYm9vbCBzY3JvbGxIYW5k
bGVkID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zY3JvbGxPdmVyZmxvdyhzY3JvbGxEaXJlY3Rp
b24sIHNjcm9sbEdyYW51bGFyaXR5KTsKICAgICBGcmFtZSogY3VycmVudEZyYW1lID0gZnJhbWU7
CiAgICAgd2hpbGUgKCFzY3JvbGxIYW5kbGVkICYmIGN1cnJlbnRGcmFtZSkgewotICAgICAgICBz
Y3JvbGxIYW5kbGVkID0gY3VycmVudEZyYW1lLT52aWV3KCktPnNjcm9sbChzY3JvbGxEaXJlY3Rp
b24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNjcm9sbEdyYW51bGFyaXR5KTsKKyAgICAgICAgc2Nyb2xsSGFuZGxlZCA9IGN1cnJlbnRGcmFt
ZS0+dmlldygpLT5zY3JvbGwoc2Nyb2xsRGlyZWN0aW9uLCBzY3JvbGxHcmFudWxhcml0eSk7CiAg
ICAgICAgIGN1cnJlbnRGcmFtZSA9IGN1cnJlbnRGcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKICAg
ICB9CiAgICAgcmV0dXJuIHNjcm9sbEhhbmRsZWQ7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3Jj
L3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCShyZXZpc2lvbiA2NjExNCkKKysr
IFdlYktpdC9jaHJvbWl1bS9zcmMvd2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzk4LDExICszOTgsMTEgQEAgV2ViTW91c2VXaGVlbEV2ZW50IFdlYklucHV0
RXZlbnRGYWN0b3J5OgogICAgIC8vCiAgICAgLy8gSG93IG1hbnkgcGl4ZWxzIHNob3VsZCB3ZSBz
Y3JvbGwgcGVyIGxpbmU/ICBHZWNrbyB1c2VzIHRoZSBoZWlnaHQgb2YgdGhlCiAgICAgLy8gY3Vy
cmVudCBsaW5lLCB3aGljaCBtZWFucyBzY3JvbGwgZGlzdGFuY2UgY2hhbmdlcyBhcyB5b3UgZ28g
dGhyb3VnaCB0aGUKLSAgICAvLyBwYWdlIG9yIGdvIHRvIGRpZmZlcmVudCBwYWdlcy4gIElFIDcg
aXMgfjUwIHB4L2xpbmUsIGFsdGhvdWdoIHRoZSB2YWx1ZQotICAgIC8vIHNlZW1zIHRvIHZhcnkg
c2xpZ2h0bHkgYnkgcGFnZSBhbmQgem9vbSBsZXZlbC4gIFNpbmNlIElFIDcgaGFzIGEgc21vb3Ro
aW5nCi0gICAgLy8gYWxnb3JpdGhtIG9uIHNjcm9sbGluZywgaXQgY2FuIGdldCBhd2F5IHdpdGgg
c2xpZ2h0bHkgbGFyZ2VyIHNjcm9sbCB2YWx1ZXMKLSAgICAvLyB3aXRob3V0IGZlZWxpbmcgamVy
a3kuICBIZXJlIHdlIHVzZSAxMDAgcHggcGVyIHRocmVlIGxpbmVzICh0aGUgZGVmYXVsdAotICAg
IC8vIHNjcm9sbCBhbW91bnQgaXMgdGhyZWUgbGluZXMgcGVyIHdoZWVsIHRpY2spLgorICAgIC8v
IHBhZ2Ugb3IgZ28gdG8gZGlmZmVyZW50IHBhZ2VzLiAgSUUgOCBpcyB+NjAgcHgvbGluZSwgYWx0
aG91Z2ggdGhlIHZhbHVlCisgICAgLy8gc2VlbXMgdG8gdmFyeSBzbGlnaHRseSBieSBwYWdlIGFu
ZCB6b29tIGxldmVsLiAgQWxzbywgSUUgZGVmYXVsdHMgdG8KKyAgICAvLyBzbW9vdGggc2Nyb2xs
aW5nIHdoaWxlIEZpcmVmb3ggZG9lc24ndCwgc28gaXQgY2FuIGdldCBhd2F5IHdpdGggc29tZXdo
YXQKKyAgICAvLyBsYXJnZXIgc2Nyb2xsIHZhbHVlcyB3aXRob3V0IGZlZWxpbmcgYXMgamVya3ku
ICBIZXJlIHdlIHVzZSAxMDAgcHggcGVyCisgICAgLy8gdGhyZWUgbGluZXMgKHRoZSBkZWZhdWx0
IHNjcm9sbCBhbW91bnQgaXMgdGhyZWUgbGluZXMgcGVyIHdoZWVsIHRpY2spLgogICAgIHN0YXRp
YyBjb25zdCBmbG9hdCBzY3JvbGxiYXJQaXhlbHNQZXJMaW5lID0gMTAwLjBmIC8gMy4wZjsKICAg
ICB3aGVlbERlbHRhIC89IFdIRUVMX0RFTFRBOwogICAgIGZsb2F0IHNjcm9sbERlbHRhID0gd2hl
ZWxEZWx0YTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65585</attachid>
            <date>2010-08-26 11:21:37 -0700</date>
            <delta_ts>2010-08-26 11:47:07 -0700</delta_ts>
            <desc>patch v1.1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19439</size>
            <attacher name="Peter Kasting">pkasting</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjExNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTAtMDgtMjYgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1pc2MuIGNsZWFudXAgc3BsaXQgb2ZmIGZyb20gYnVnIDMyMzU2LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ2OTYKKworICAgICAgICAqIFdlYkNv
cmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmxvY2FsWm9vbUZvclJlbmRlcmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OndoZWVsRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpzY3JvbGwpOgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGJhci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpp
c1Njcm9sbGJhcik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyQ2xpZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxiYXJDbGllbnQ6On5TY3JvbGxiYXJDbGllbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1Njcm9sbGJhclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGJhcjo6Y29udGV4dE1lbnUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNjcm9sbCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisKIDIwMTAtMDgtMjQgIFZhbmdlbGlzIEtv
a2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtl
bm5ldGggUnVzc2VsbC4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAkocmV2aXNpb24gNjYx
MTQpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjIyLDggKzEyMjIsOCBAQAogICAgICAgICAgICdzb3VyY2VzLyc6IFsKICAgICAgICAgICAg
IFsnZXhjbHVkZScsICdQb3NpeFxcLmNwcCQnXSwKICAgICAgICAgICAgIFsnaW5jbHVkZScsICcv
b3BlbnR5cGUvJ10sCi0gICAgICAgICAgICBbJ2luY2x1ZGUnLCAnL1RyYW5zcGFyZW5jeVdpblxc
LmNwcCQnXSwKICAgICAgICAgICAgIFsnaW5jbHVkZScsICcvU2tpYUZvbnRXaW5cXC5jcHAkJ10s
CisgICAgICAgICAgICBbJ2luY2x1ZGUnLCAnL1RyYW5zcGFyZW5jeVdpblxcLmNwcCQnXSwKICAg
ICAgICAgICBdLAogICAgICAgICAgICdkZWZpbmVzJzogWwogICAgICAgICAgICAgIyBNYXRjaCBT
YWZhcmkgYW5kIE1vemlsbGEgb24gV2luZG93cy4KSW5kZXg6IFdlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjEx
NCkKKysrIFdlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzMsOCAr
MjczLDggQEAgc3RhdGljIGZsb2F0IGxvY2FsWm9vbUZvclJlbmRlcmVyKFJlbmRlcgogICAgIC8v
IEZJWE1FOiBUaGlzIGRvZXMgdGhlIHdyb25nIHRoaW5nIGlmIHR3byBvcHBvc2luZyB6b29tcyBh
cmUgaW4gZWZmZWN0IGFuZCBjYW5jZWxlZCBlYWNoCiAgICAgLy8gb3RoZXIgb3V0LCBidXQgdGhl
IGFsdGVybmF0aXZlIGlzIHRoYXQgd2UnZCBoYXZlIHRvIGNyYXdsIHVwIHRoZSB3aG9sZSByZW5k
ZXIgdHJlZSBldmVyeQogICAgIC8vIHRpbWUgKG9yIHN0b3JlIGFuIGFkZGl0aW9uYWwgYml0IGlu
IHRoZSBSZW5kZXJTdHlsZSB0byBpbmRpY2F0ZSB0aGF0IGEgem9vbSB3YXMgc3BlY2lmaWVkKS4K
LSAgICBmbG9hdCB6b29tRmFjdG9yID0gMS4wZjsKLSAgICBpZiAocmVuZGVyZXItPnN0eWxlKCkt
PmVmZmVjdGl2ZVpvb20oKSAhPSAxLjBmKSB7CisgICAgZmxvYXQgem9vbUZhY3RvciA9IDE7Cisg
ICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkgIT0gMSkgewogICAgICAg
ICAvLyBOZWVkIHRvIGZpbmQgdGhlIG5lYXJlc3QgZW5jbG9zaW5nIFJlbmRlck9iamVjdCB0aGF0
IHNldCB1cAogICAgICAgICAvLyBhIGRpZmZlcmluZyB6b29tLCBhbmQgdGhlbiB3ZSBkaXZpZGUg
b3VyIHJlc3VsdCBieSBpdCB0byBlbGltaW5hdGUgdGhlIHpvb20uCiAgICAgICAgIFJlbmRlck9i
amVjdCogcHJldiA9IHJlbmRlcmVyOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCShyZXZp
c2lvbiA2NjExNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY2OSw3ICs2NjksNyBAQCB2b2lkIFNjcm9sbFZpZXc6OndoZWVsRXZlbnQoUGxh
dGZvcm1XaGVlCiAgICAgICAgIGlmIChlLmdyYW51bGFyaXR5KCkgPT0gU2Nyb2xsQnlQYWdlV2hl
ZWxFdmVudCkgewogICAgICAgICAgICAgQVNTRVJUKGRlbHRhWCA9PSAwKTsKICAgICAgICAgICAg
IGJvb2wgbmVnYXRpdmUgPSBkZWx0YVkgPCAwOwotICAgICAgICAgICAgZGVsdGFZID0gbWF4KG1h
eDxpbnQ+KHZpc2libGVIZWlnaHQoKSAqIFNjcm9sbGJhcjo6bWluRnJhY3Rpb25Ub1N0ZXBXaGVu
UGFnaW5nKCksIHZpc2libGVIZWlnaHQoKSAtIFNjcm9sbGJhcjo6bWF4T3ZlcmxhcEJldHdlZW5Q
YWdlcygpKSwgMSk7CisgICAgICAgICAgICBkZWx0YVkgPSBtYXgobWF4KHN0YXRpY19jYXN0PGZs
b2F0Pih2aXNpYmxlSGVpZ2h0KCkpICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRvU3RlcFdoZW5Q
YWdpbmcoKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZpc2libGVIZWlnaHQoKSAtIFNjcm9sbGJhcjo6
bWF4T3ZlcmxhcEJldHdlZW5QYWdlcygpKSksIDEuMGYpOwogICAgICAgICAgICAgaWYgKG5lZ2F0
aXZlKQogICAgICAgICAgICAgICAgIGRlbHRhWSA9IC1kZWx0YVk7CiAgICAgICAgIH0KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5oCShyZXZpc2lvbiA2NjExNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIGNsYXNzIFNjcm9s
bFZpZXcgOiBwdWJsaWMgV2lkZ2V0LCBwdWJsaWMKIHB1YmxpYzoKICAgICB+U2Nyb2xsVmlldygp
OwogCi0gICAgLy8gU2Nyb2xsYmFyQ2xpZW50IGZ1bmN0aW9uLiBGcmFtZVZpZXcgb3ZlcnJpZGVz
IHRoZSBvdGhlciB0d28uCisgICAgLy8gU2Nyb2xsYmFyQ2xpZW50IGZ1bmN0aW9uLiBGcmFtZVZp
ZXcgb3ZlcnJpZGVzIHRoZSBvdGhlcnMuCiAgICAgdmlydHVhbCB2b2lkIHZhbHVlQ2hhbmdlZChT
Y3JvbGxiYXIqKTsKICAgICAKICAgICAvLyBUaGUgd2luZG93IHRoYXRzIGhvc3RzIHRoZSBTY3Jv
bGxWaWV3LiBUaGUgU2Nyb2xsVmlldyB3aWxsIGNvbW11bmljYXRlIHNjcm9sbHMgYW5kIHJlcGFp
bnRzIHRvIHRoZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAkocmV2aXNpb24gNjYxMTQpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miwy
NCArMTQyLDIwIEBAIGJvb2wgU2Nyb2xsYmFyOjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGQKICAg
ICB9CiAjZW5kaWYKIAotICAgIGZsb2F0IHN0ZXAgPSAwOwotICAgIGlmICgoZGlyZWN0aW9uID09
IFNjcm9sbFVwICYmIG1fb3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIpIHx8IChkaXJl
Y3Rpb24gPT0gU2Nyb2xsTGVmdCAmJiBtX29yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxi
YXIpKQotICAgICAgICBzdGVwID0gLTE7Ci0gICAgZWxzZSBpZiAoKGRpcmVjdGlvbiA9PSBTY3Jv
bGxEb3duICYmIG1fb3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIpIHx8IChkaXJlY3Rp
b24gPT0gU2Nyb2xsUmlnaHQgJiYgbV9vcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFy
KSkKLSAgICAgICAgc3RlcCA9IDE7Ci0KLSAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlM
aW5lKQotICAgICAgICBzdGVwICo9IG1fbGluZVN0ZXA7Ci0gICAgZWxzZSBpZiAoZ3JhbnVsYXJp
dHkgPT0gU2Nyb2xsQnlQYWdlKQotICAgICAgICBzdGVwICo9IG1fcGFnZVN0ZXA7Ci0gICAgZWxz
ZSBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlEb2N1bWVudCkKLSAgICAgICAgc3RlcCAqPSBt
X3RvdGFsU2l6ZTsKLSAgICBlbHNlIGlmIChncmFudWxhcml0eSA9PSBTY3JvbGxCeVBpeGVsKQot
ICAgICAgICBzdGVwICo9IG1fcGl4ZWxTdGVwOworICAgIC8vIElnbm9yZSBwZXJwZW5kaWN1bGFy
IHNjcm9sbHMuCisgICAgaWYgKChtX29yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIp
ID8gKGRpcmVjdGlvbiA9PSBTY3JvbGxVcCB8fCBkaXJlY3Rpb24gPT0gU2Nyb2xsRG93bikgOiAo
ZGlyZWN0aW9uID09IFNjcm9sbExlZnQgfHwgZGlyZWN0aW9uID09IFNjcm9sbFJpZ2h0KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGZsb2F0IHN0ZXA7CisgICAgc3dpdGNoIChncmFudWxh
cml0eSkgeworICAgIGNhc2UgU2Nyb2xsQnlMaW5lOiAgICAgc3RlcCA9IG1fbGluZVN0ZXA7ICBi
cmVhazsKKyAgICBjYXNlIFNjcm9sbEJ5UGFnZTogICAgIHN0ZXAgPSBtX3BhZ2VTdGVwOyAgYnJl
YWs7CisgICAgY2FzZSBTY3JvbGxCeURvY3VtZW50OiBzdGVwID0gbV90b3RhbFNpemU7IGJyZWFr
OworICAgIGNhc2UgU2Nyb2xsQnlQaXhlbDogICAgc3RlcCA9IG1fcGl4ZWxTdGVwOyBicmVhazsK
KyAgICB9CisgICAgaWYgKGRpcmVjdGlvbiA9PSBTY3JvbGxVcCB8fCBkaXJlY3Rpb24gPT0gU2Ny
b2xsTGVmdCkKKyAgICAgICAgbXVsdGlwbGllciA9IC1tdWx0aXBsaWVyOwogCi0gICAgZmxvYXQg
bmV3UG9zID0gbV9jdXJyZW50UG9zICsgc3RlcCAqIG11bHRpcGxpZXI7Ci0gICAgZmxvYXQgbWF4
UG9zID0gbV90b3RhbFNpemUgLSBtX3Zpc2libGVTaXplOwotICAgIHJldHVybiBzZXRDdXJyZW50
UG9zKG1heChtaW4obmV3UG9zLCBtYXhQb3MpLCAwLjBmKSk7CisgICAgcmV0dXJuIHNldEN1cnJl
bnRQb3MobWF4KG1pbihtX2N1cnJlbnRQb3MgKyAoc3RlcCAqIG11bHRpcGxpZXIpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4obV90b3RhbFNpemUgLSBtX3Zpc2libGVTaXplKSksIDAuMGYpKTsKIH0KIAog
dm9pZCBTY3JvbGxiYXI6OnVwZGF0ZVRodW1iKCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYmFyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaAkocmV2
aXNpb24gNjYxMTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oCSh3b3JraW5nIGNv
cHkpCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByb3BvcnRpb24oaW50
IHZpc2libGVTaXplLCBpbnQgdG90YWxTaXplKTsKICAgICB2b2lkIHNldFByZXNzZWRQb3MoaW50
IHApIHsgbV9wcmVzc2VkUG9zID0gcDsgfQogCi0gICAgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0
aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEuMGYpOworICAgIGJv
b2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRp
cGxpZXIgPSAxKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0
KiwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCk7CiAKQEAgLTEyNCw5ICsxMjQsNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBJbnRQb2ludCBjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJ
bnRQb2ludCYpIGNvbnN0OwogICAgIHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZyb21Db250YWlu
aW5nVmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogCi1wcml2YXRlOgotICAgIHZpcnR1YWwg
Ym9vbCBpc1Njcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQogcHJvdGVjdGVkOgog
ICAgIFNjcm9sbGJhcihTY3JvbGxiYXJDbGllbnQqLCBTY3JvbGxiYXJPcmllbnRhdGlvbiwgU2Ny
b2xsYmFyQ29udHJvbFNpemUsIFNjcm9sbGJhclRoZW1lKiA9IDApOwogCkBAIC0xNDIsNyArMTM5
LDYgQEAgcHJvdGVjdGVkOgogICAgIFNjcm9sbEdyYW51bGFyaXR5IHByZXNzZWRQYXJ0U2Nyb2xs
R3JhbnVsYXJpdHkoKTsKICAgICAKICAgICB2b2lkIG1vdmVUaHVtYihpbnQgcG9zKTsKLSAgICBi
b29sIHNldEN1cnJlbnRQb3MoZmxvYXQgcG9zKTsKIAogICAgIFNjcm9sbGJhckNsaWVudCogbV9j
bGllbnQ7CiAgICAgU2Nyb2xsYmFyT3JpZW50YXRpb24gbV9vcmllbnRhdGlvbjsKQEAgLTE2Nyw2
ICsxNjMsMTEgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9vdmVybGFwc1Jlc2l6ZXI7CiAgICAg
CiAgICAgYm9vbCBtX3N1cHByZXNzSW52YWxpZGF0aW9uOworCitwcml2YXRlOgorICAgIHZpcnR1
YWwgYm9vbCBpc1Njcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworICAgIGJvb2wg
c2V0Q3VycmVudFBvcyhmbG9hdCBwb3MpOwogfTsKIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxiYXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGJhckNsaWVudC5oCShyZXZpc2lvbiA2NjExNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YmFyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTY3JvbGxiYXJDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwg
flNjcm9sbGJhckNsaWVudCgpIHt9CisgICAgdmlydHVhbCB+U2Nyb2xsYmFyQ2xpZW50KCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHZhbHVlQ2hhbmdlZChTY3JvbGxiYXIqKSA9IDA7CiAKICAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiwgY29uc3QgSW50
UmVjdCYpID0gMDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvU2Nyb2xsYmFyUXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvU2Nyb2xsYmFyUXQuY3BwCShyZXZpc2lv
biA2NjExNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvU2Nyb2xsYmFyUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03Miw5ICs3Miw3IEBAIGJvb2wgU2Nyb2xsYmFyOjpjb250ZXh0TWVudShjb25z
dCBQbGF0Zm8KICAgICBjb25zdCBRUG9pbnQgZ2xvYmFsUG9zID0gUVBvaW50KGV2ZW50Lmdsb2Jh
bFgoKSwgZXZlbnQuZ2xvYmFsWSgpKTsKICAgICBRQWN0aW9uKiBhY3Rpb25TZWxlY3RlZCA9IG1l
bnUuZXhlYyhnbG9iYWxQb3MpOwogCi0gICAgaWYgKCFhY3Rpb25TZWxlY3RlZCkKLSAgICAgICAg
eyAvKiBEbyBub3RoaW5nICovIH0KLSAgICBlbHNlIGlmIChhY3Rpb25TZWxlY3RlZCA9PSBhY3RT
Y3JvbGxIZXJlKSB7CisgICAgaWYgKGFjdGlvblNlbGVjdGVkID09IGFjdFNjcm9sbEhlcmUpIHsK
ICAgICAgICAgY29uc3QgUVBvaW50IHBvcyA9IGNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdyhl
dmVudC5wb3MoKSk7CiAgICAgICAgIG1vdmVUaHVtYihob3Jpem9udGFsID8gcG9zLngoKSA6IHBv
cy55KCkpOwogICAgIH0gZWxzZSBpZiAoYWN0aW9uU2VsZWN0ZWQgPT0gYWN0U2Nyb2xsVG9wKQpA
QCAtODIsMTMgKzgwLDEzIEBAIGJvb2wgU2Nyb2xsYmFyOjpjb250ZXh0TWVudShjb25zdCBQbGF0
Zm8KICAgICBlbHNlIGlmIChhY3Rpb25TZWxlY3RlZCA9PSBhY3RTY3JvbGxCb3R0b20pCiAgICAg
ICAgIHNldFZhbHVlKG1heGltdW0oKSk7CiAgICAgZWxzZSBpZiAoYWN0aW9uU2VsZWN0ZWQgPT0g
YWN0UGFnZVVwKQotICAgICAgICBzY3JvbGwoaG9yaXpvbnRhbCA/IFNjcm9sbExlZnQ6IFNjcm9s
bFVwLCBTY3JvbGxCeVBhZ2UsIDEpOworICAgICAgICBzY3JvbGwoaG9yaXpvbnRhbCA/IFNjcm9s
bExlZnQ6IFNjcm9sbFVwLCBTY3JvbGxCeVBhZ2UpOwogICAgIGVsc2UgaWYgKGFjdGlvblNlbGVj
dGVkID09IGFjdFBhZ2VEb3duKQotICAgICAgICBzY3JvbGwoaG9yaXpvbnRhbCA/IFNjcm9sbFJp
Z2h0IDogU2Nyb2xsRG93biwgU2Nyb2xsQnlQYWdlLCAxKTsKKyAgICAgICAgc2Nyb2xsKGhvcml6
b250YWwgPyBTY3JvbGxSaWdodCA6IFNjcm9sbERvd24sIFNjcm9sbEJ5UGFnZSk7CiAgICAgZWxz
ZSBpZiAoYWN0aW9uU2VsZWN0ZWQgPT0gYWN0U2Nyb2xsVXApCi0gICAgICAgIHNjcm9sbChob3Jp
em9udGFsID8gU2Nyb2xsTGVmdCA6IFNjcm9sbFVwLCBTY3JvbGxCeUxpbmUsIDEpOworICAgICAg
ICBzY3JvbGwoaG9yaXpvbnRhbCA/IFNjcm9sbExlZnQgOiBTY3JvbGxVcCwgU2Nyb2xsQnlMaW5l
KTsKICAgICBlbHNlIGlmIChhY3Rpb25TZWxlY3RlZCA9PSBhY3RTY3JvbGxEb3duKQotICAgICAg
ICBzY3JvbGwoaG9yaXpvbnRhbCA/IFNjcm9sbFJpZ2h0IDogU2Nyb2xsRG93biwgU2Nyb2xsQnlM
aW5lLCAxKTsKKyAgICAgICAgc2Nyb2xsKGhvcml6b250YWwgPyBTY3JvbGxSaWdodCA6IFNjcm9s
bERvd24sIFNjcm9sbEJ5TGluZSk7CiAjZW5kaWYgLy8gUVRfTk9fQ09OVEVYVE1FTlUKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiA2NjExNCkK
KysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYs
NyArMjQ2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBpbnQgdmVydGljYWxTY3JvbGxiYXJX
aWR0aCgpIGNvbnN0OwogICAgIGludCBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFy
aXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMS4wZiwgTm9kZSoqIHN0b3BOb2RlID0gMCk7CisgICAg
dmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBm
bG9hdCBtdWx0aXBsaWVyID0gMSwgTm9kZSoqIHN0b3BOb2RlID0gMCk7CiAgICAgYm9vbCBjYW5C
ZVNjcm9sbGVkQW5kSGFzU2Nyb2xsYWJsZUFyZWEoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZChib29sKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgYXV0b3Njcm9sbCgpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNp
b24gNjYxMTQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIyMzUsMTIgKzIyMzUsMTAgQEAgYm9vbCBSZW5kZXJMYXllcjo6c2Nyb2xsKFNj
cm9sbERpcmVjdGlvbgogICAgIGJvb2wgZGlkVmVydGljYWxTY3JvbGwgPSBmYWxzZTsKICAgICAK
ICAgICBpZiAobV9oQmFyKSB7Ci0gICAgICAgIGlmIChncmFudWxhcml0eSA9PSBTY3JvbGxCeURv
Y3VtZW50KSB7Ci0gICAgICAgICAgICAvLyBTcGVjaWFsLWNhc2UgZm9yIHRoZSBTY3JvbGxCeURv
Y3VtZW50IGdyYW51bGFyaXR5LiBBIGRvY3VtZW50IHNjcm9sbCBjYW4gb25seSBiZSB1cCAKLSAg
ICAgICAgICAgIC8vIG9yIGRvd24gYW5kIGluIGJvdGggY2FzZXMgdGhlIGhvcml6b250YWwgYmFy
IGdvZXMgYWxsIHRoZSB3YXkgdG8gdGhlIGxlZnQuCi0gICAgICAgICAgICBkaWRIb3Jpem9udGFs
U2Nyb2xsID0gbV9oQmFyLT5zY3JvbGwoU2Nyb2xsTGVmdCwgU2Nyb2xsQnlEb2N1bWVudCwgbXVs
dGlwbGllcik7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgZGlkSG9yaXpvbnRhbFNjcm9s
bCA9IG1faEJhci0+c2Nyb2xsKGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHksIG11bHRpcGxpZXIpOwor
ICAgICAgICAvLyBTcGVjaWFsLWNhc2UgZm9yIHRoZSBTY3JvbGxCeURvY3VtZW50IGdyYW51bGFy
aXR5LiBBIGRvY3VtZW50IHNjcm9sbAorICAgICAgICAvLyBjYW4gb25seSBiZSB1cCBvciBkb3du
IGFuZCBpbiBib3RoIGNhc2VzIHRoZSBob3Jpem9udGFsIGJhciBnb2VzIGFsbAorICAgICAgICAv
LyB0aGUgd2F5IHRvIHRoZSBsZWZ0LgorICAgICAgICBkaWRIb3Jpem9udGFsU2Nyb2xsID0gbV9o
QmFyLT5zY3JvbGwoKGdyYW51bGFyaXR5ID09IFNjcm9sbEJ5RG9jdW1lbnQpID8gU2Nyb2xsTGVm
dCA6IGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHksIG11bHRpcGxpZXIpOwogICAgIH0KIAogICAgIGlm
IChtX3ZCYXIpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHJldmlzaW9uIDY2MTE0KQor
KysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjc0
LDcgKzI3NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5
b3V0KCk7CiAKLSAgICBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFy
aXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMS4wZik7CisgICAgYm9vbCBzY3JvbGwoU2Nyb2xsRGly
ZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEpOwogICAgIHZv
aWQgYXV0b3Njcm9sbCgpOwogCiAgICAgdm9pZCByZXNpemUoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiwgY29uc3QgSW50U2l6ZSYpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAko
cmV2aXNpb24gNjYxMTQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgJKHdv
cmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9v
bCBpc1BvaW50SW5PdmVyZmxvd0NvbnRyb2woSGl0VGVzdFJlc3VsdCYsIGludCB4LCBpbnQgeSwg
aW50IHR4LCBpbnQgdHkpOwogCi0gICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rp
b24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMS4wZiwgTm9kZSoqIHN0
b3BOb2RlID0gMCk7CisgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNj
cm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSwgTm9kZSoqIHN0b3BOb2RlID0g
MCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FsY1ByZWZXaWR0aHMoKTsKICAgICB2aXJ0dWFsIGlu
dCBiYXNlbGluZVBvc2l0aW9uKGJvb2wgZmlyc3RMaW5lLCBib29sIGlzUm9vdExpbmVCb3gpIGNv
bnN0OwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmgJKHJldmlzaW9uIDY2MTE0KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDcgKzgyLDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGludCBzY3JvbGxIZWlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxUb3Ao
aW50KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3Jh
bnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLjBmLCBOb2RlKiogc3RvcE5vZGUgPSAwKTsK
KyAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLCBOb2RlKiogc3RvcE5vZGUgPSAwKTsKIAogICAgIGlu
dCB0ZXh0QmxvY2tXaWR0aCgpIGNvbnN0OwogICAgIHZpcnR1YWwgZmxvYXQgZ2V0QXZnQ2hhcldp
ZHRoKEF0b21pY1N0cmluZyBmYW1pbHkpOwpJbmRleDogV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDY2MTE0KQorKysgV2ViS2l0Mi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wOC0yNiAgUGV0
ZXIgS2FzdGluZyAgPHBrYXN0aW5nQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWlzYy4gY2xlYW51cCBzcGxpdCBvZmYgZnJvbSBi
dWcgMzIzNTYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NDY5NgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLZXlF
dmVudCk6CisKIDIwMTAtMDgtMjUgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIEJ1aWxkIGZpeCwgbm8gcmV2aWV3LgpJbmRleDogV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwCShyZXZpc2lvbiA2NjExNCkKKysrIFdlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIyNiwxMCArMjI2LDcgQEAgYm9vbCBXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9y
SwogICAgICAgICAgICAgbV9wYWdlLT5nb0JhY2soKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBWS19TUEFDRToKLSAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQuc2hpZnRLZXkoKSkKLSAgICAg
ICAgICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbFVwLCBTY3JvbGxCeVBhZ2UpOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxEb3duLCBTY3JvbGxCeVBhZ2Up
OworICAgICAgICBzY3JvbGwobV9wYWdlLCBrZXlib2FyZEV2ZW50LnNoaWZ0S2V5KCkgPyBTY3Jv
bGxVcCA6IFNjcm9sbERvd24sIFNjcm9sbEJ5UGFnZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVktfTEVGVDoKICAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsTGVmdCwgU2Nyb2xsQnlM
aW5lKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjYxMTQpCisrKyBXZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDgtMjYg
IFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1pc2MuIGNsZWFudXAgc3BsaXQgb2ZmIGZy
b20gYnVnIDMyMzU2LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDQ2OTYKKworICAgICAgICAqIHNyYy9XZWJTY3JvbGxiYXJJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU2Nyb2xsYmFySW1wbDo6c2V0TG9jYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTY3JvbGxiYXJJbXBsOjpvbk1vdXNlV2hlZWwpOgorICAgICAgICAqIHNyYy9XZWJW
aWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcm9wYWdhdGVTY3Jv
bGwpOgorICAgICAgICAqIHNyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnB1dEV2ZW50RmFjdG9yeTo6bW91c2VXaGVlbEV2ZW50KToKKwogMjAx
MC0wOC0yNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLiBSZXZlcnQgcjY2MTAzIHNpbmNlIFF0IHRlc3RzIGFyZSBmYWlsaW5nLgpJ
bmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTY3JvbGxiYXJJbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNjcm9sbGJhckltcGwuY3BwCShyZXZpc2lvbiA2
NjExNCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2Nyb2xsYmFySW1wbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBXZWJTY3JvbGxiYXJJbXBsOjpzZXRMb2Nh
dGlvbihjb25zdAogICAgICAgbV9zY3JvbGxiYXItPmludmFsaWRhdGUoKTsKIAogICAgIGludCBs
ZW5ndGggPSBtX3Njcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFy
ID8gbV9zY3JvbGxiYXItPndpZHRoKCkgOiBtX3Njcm9sbGJhci0+aGVpZ2h0KCk7Ci0gICAgaW50
IHBhZ2VTdGVwID0gbWF4KG1heDxpbnQ+KGxlbmd0aCAqIFNjcm9sbGJhcjo6bWluRnJhY3Rpb25U
b1N0ZXBXaGVuUGFnaW5nKCksIGxlbmd0aCAtIFNjcm9sbGJhcjo6bWF4T3ZlcmxhcEJldHdlZW5Q
YWdlcygpKSwgMSk7CisgICAgaW50IHBhZ2VTdGVwID0gbWF4KG1heChzdGF0aWNfY2FzdDxpbnQ+
KHN0YXRpY19jYXN0PGZsb2F0PihsZW5ndGgpICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRvU3Rl
cFdoZW5QYWdpbmcoKSksIGxlbmd0aCAtIFNjcm9sbGJhcjo6bWF4T3ZlcmxhcEJldHdlZW5QYWdl
cygpKSwgMSk7CiAgICAgbV9zY3JvbGxiYXItPnNldFN0ZXBzKFNjcm9sbGJhcjo6cGl4ZWxzUGVy
TGluZVN0ZXAoKSwgcGFnZVN0ZXApOwogICAgIG1fc2Nyb2xsYmFyLT5zZXRFbmFibGVkKG1fc2Ny
b2xsYmFyLT50b3RhbFNpemUoKSA+IGxlbmd0aCk7CiAgICAgbV9zY3JvbGxiYXItPnNldFByb3Bv
cnRpb24obGVuZ3RoLCBtX3Njcm9sbGJhci0+dG90YWxTaXplKCkpOwpAQCAtMjE0LDcgKzIxNCw3
IEBAIGJvb2wgV2ViU2Nyb2xsYmFySW1wbDo6b25Nb3VzZVdoZWVsKGNvbnMKICAgICAgICAgICAg
IGlmIChtb3VzZXdoZWVsLnNjcm9sbEJ5UGFnZSkgewogICAgICAgICAgICAgICAgIEFTU0VSVCht
X3Njcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBWZXJ0aWNhbFNjcm9sbGJhcik7CiAgICAgICAg
ICAgICAgICAgYm9vbCBuZWdhdGl2ZSA9IGRlbHRhIDwgMDsKLSAgICAgICAgICAgICAgICBkZWx0
YSA9IG1heChtYXg8aW50PihtX3Njcm9sbGJhci0+dmlzaWJsZVNpemUoKSAqIFNjcm9sbGJhcjo6
bWluRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nKCksIG1fc2Nyb2xsYmFyLT52aXNpYmxlU2l6ZSgp
IC0gU2Nyb2xsYmFyOjptYXhPdmVybGFwQmV0d2VlblBhZ2VzKCkpLCAxKTsKKyAgICAgICAgICAg
ICAgICBkZWx0YSA9IG1heChtYXgoc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fc2Nyb2xsYmFyLT52aXNp
YmxlU2l6ZSgpKSAqIFNjcm9sbGJhcjo6bWluRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nKCksIHN0
YXRpY19jYXN0PGZsb2F0PihtX3Njcm9sbGJhci0+dmlzaWJsZVNpemUoKSAtIFNjcm9sbGJhcjo6
bWF4T3ZlcmxhcEJldHdlZW5QYWdlcygpKSksIDEuMGYpOwogICAgICAgICAgICAgICAgIGlmIChu
ZWdhdGl2ZSkKICAgICAgICAgICAgICAgICAgICAgZGVsdGEgKj0gLTE7CiAgICAgICAgICAgICB9
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkocmV2aXNpb24gNjYxMTQpCisr
KyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODIzLDEzICs4MjMsMTAgQEAgYm9vbCBXZWJWaWV3SW1wbDo6cHJvcGFnYXRlU2Nyb2xsKFNjcm9s
bAogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGJvb2wgc2Ny
b2xsSGFuZGxlZCA9Ci0gICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2Nyb2xsT3ZlcmZs
b3coc2Nyb2xsRGlyZWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNjcm9sbEdyYW51bGFyaXR5KTsKKyAgICBib29sIHNjcm9sbEhhbmRsZWQgPSBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNjcm9sbE92ZXJmbG93KHNjcm9sbERpcmVjdGlvbiwgc2Ny
b2xsR3JhbnVsYXJpdHkpOwogICAgIEZyYW1lKiBjdXJyZW50RnJhbWUgPSBmcmFtZTsKICAgICB3
aGlsZSAoIXNjcm9sbEhhbmRsZWQgJiYgY3VycmVudEZyYW1lKSB7Ci0gICAgICAgIHNjcm9sbEhh
bmRsZWQgPSBjdXJyZW50RnJhbWUtPnZpZXcoKS0+c2Nyb2xsKHNjcm9sbERpcmVjdGlvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xs
R3JhbnVsYXJpdHkpOworICAgICAgICBzY3JvbGxIYW5kbGVkID0gY3VycmVudEZyYW1lLT52aWV3
KCktPnNjcm9sbChzY3JvbGxEaXJlY3Rpb24sIHNjcm9sbEdyYW51bGFyaXR5KTsKICAgICAgICAg
Y3VycmVudEZyYW1lID0gY3VycmVudEZyYW1lLT50cmVlKCktPnBhcmVudCgpOwogICAgIH0KICAg
ICByZXR1cm4gc2Nyb2xsSGFuZGxlZDsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvd2luL1dl
YklucHV0RXZlbnRGYWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3Jj
L3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9yeS5jcHAJKHJldmlzaW9uIDY2MTE0KQorKysgV2ViS2l0
L2Nocm9taXVtL3NyYy93aW4vV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOTgsMTEgKzM5OCwxMSBAQCBXZWJNb3VzZVdoZWVsRXZlbnQgV2ViSW5wdXRFdmVudEZh
Y3Rvcnk6CiAgICAgLy8KICAgICAvLyBIb3cgbWFueSBwaXhlbHMgc2hvdWxkIHdlIHNjcm9sbCBw
ZXIgbGluZT8gIEdlY2tvIHVzZXMgdGhlIGhlaWdodCBvZiB0aGUKICAgICAvLyBjdXJyZW50IGxp
bmUsIHdoaWNoIG1lYW5zIHNjcm9sbCBkaXN0YW5jZSBjaGFuZ2VzIGFzIHlvdSBnbyB0aHJvdWdo
IHRoZQotICAgIC8vIHBhZ2Ugb3IgZ28gdG8gZGlmZmVyZW50IHBhZ2VzLiAgSUUgNyBpcyB+NTAg
cHgvbGluZSwgYWx0aG91Z2ggdGhlIHZhbHVlCi0gICAgLy8gc2VlbXMgdG8gdmFyeSBzbGlnaHRs
eSBieSBwYWdlIGFuZCB6b29tIGxldmVsLiAgU2luY2UgSUUgNyBoYXMgYSBzbW9vdGhpbmcKLSAg
ICAvLyBhbGdvcml0aG0gb24gc2Nyb2xsaW5nLCBpdCBjYW4gZ2V0IGF3YXkgd2l0aCBzbGlnaHRs
eSBsYXJnZXIgc2Nyb2xsIHZhbHVlcwotICAgIC8vIHdpdGhvdXQgZmVlbGluZyBqZXJreS4gIEhl
cmUgd2UgdXNlIDEwMCBweCBwZXIgdGhyZWUgbGluZXMgKHRoZSBkZWZhdWx0Ci0gICAgLy8gc2Ny
b2xsIGFtb3VudCBpcyB0aHJlZSBsaW5lcyBwZXIgd2hlZWwgdGljaykuCisgICAgLy8gcGFnZSBv
ciBnbyB0byBkaWZmZXJlbnQgcGFnZXMuICBJRSA4IGlzIH42MCBweC9saW5lLCBhbHRob3VnaCB0
aGUgdmFsdWUKKyAgICAvLyBzZWVtcyB0byB2YXJ5IHNsaWdodGx5IGJ5IHBhZ2UgYW5kIHpvb20g
bGV2ZWwuICBBbHNvLCBJRSBkZWZhdWx0cyB0bworICAgIC8vIHNtb290aCBzY3JvbGxpbmcgd2hp
bGUgRmlyZWZveCBkb2Vzbid0LCBzbyBpdCBjYW4gZ2V0IGF3YXkgd2l0aCBzb21ld2hhdAorICAg
IC8vIGxhcmdlciBzY3JvbGwgdmFsdWVzIHdpdGhvdXQgZmVlbGluZyBhcyBqZXJreS4gIEhlcmUg
d2UgdXNlIDEwMCBweCBwZXIKKyAgICAvLyB0aHJlZSBsaW5lcyAodGhlIGRlZmF1bHQgc2Nyb2xs
IGFtb3VudCBpcyB0aHJlZSBsaW5lcyBwZXIgd2hlZWwgdGljaykuCiAgICAgc3RhdGljIGNvbnN0
IGZsb2F0IHNjcm9sbGJhclBpeGVsc1BlckxpbmUgPSAxMDAuMGYgLyAzLjBmOwogICAgIHdoZWVs
RGVsdGEgLz0gV0hFRUxfREVMVEE7CiAgICAgZmxvYXQgc2Nyb2xsRGVsdGEgPSB3aGVlbERlbHRh
Owo=
</data>
<flag name="review"
          id="54393"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="54394"
          type_id="3"
          status="+"
          setter="dglazkov"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65591</attachid>
            <date>2010-08-26 11:47:07 -0700</date>
            <delta_ts>2010-08-27 08:05:49 -0700</delta_ts>
            <desc>patch v1.2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19422</size>
            <attacher name="Peter Kasting">pkasting</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjExNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTAtMDgtMjYgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1pc2MuIGNsZWFudXAgc3BsaXQgb2ZmIGZyb20gYnVnIDMyMzU2LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ2OTYKKworICAgICAgICAqIFdlYkNv
cmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmxvY2FsWm9vbUZvclJlbmRlcmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OndoZWVsRXZlbnQpOgor
ICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpzY3JvbGwpOgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGJhci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpp
c1Njcm9sbGJhcik6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyQ2xpZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxiYXJDbGllbnQ6On5TY3JvbGxiYXJDbGllbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1Njcm9sbGJhclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGJhcjo6Y29udGV4dE1lbnUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnNjcm9sbCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisKIDIwMTAtMDgtMjQgIFZhbmdlbGlzIEtv
a2tldmlzICA8dmFuZ2VsaXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtl
bm5ldGggUnVzc2VsbC4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAkocmV2aXNpb24gNjYx
MTQpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjIyLDggKzEyMjIsOCBAQAogICAgICAgICAgICdzb3VyY2VzLyc6IFsKICAgICAgICAgICAg
IFsnZXhjbHVkZScsICdQb3NpeFxcLmNwcCQnXSwKICAgICAgICAgICAgIFsnaW5jbHVkZScsICcv
b3BlbnR5cGUvJ10sCi0gICAgICAgICAgICBbJ2luY2x1ZGUnLCAnL1RyYW5zcGFyZW5jeVdpblxc
LmNwcCQnXSwKICAgICAgICAgICAgIFsnaW5jbHVkZScsICcvU2tpYUZvbnRXaW5cXC5jcHAkJ10s
CisgICAgICAgICAgICBbJ2luY2x1ZGUnLCAnL1RyYW5zcGFyZW5jeVdpblxcLmNwcCQnXSwKICAg
ICAgICAgICBdLAogICAgICAgICAgICdkZWZpbmVzJzogWwogICAgICAgICAgICAgIyBNYXRjaCBT
YWZhcmkgYW5kIE1vemlsbGEgb24gV2luZG93cy4KSW5kZXg6IFdlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjEx
NCkKKysrIFdlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzMsOCAr
MjczLDggQEAgc3RhdGljIGZsb2F0IGxvY2FsWm9vbUZvclJlbmRlcmVyKFJlbmRlcgogICAgIC8v
IEZJWE1FOiBUaGlzIGRvZXMgdGhlIHdyb25nIHRoaW5nIGlmIHR3byBvcHBvc2luZyB6b29tcyBh
cmUgaW4gZWZmZWN0IGFuZCBjYW5jZWxlZCBlYWNoCiAgICAgLy8gb3RoZXIgb3V0LCBidXQgdGhl
IGFsdGVybmF0aXZlIGlzIHRoYXQgd2UnZCBoYXZlIHRvIGNyYXdsIHVwIHRoZSB3aG9sZSByZW5k
ZXIgdHJlZSBldmVyeQogICAgIC8vIHRpbWUgKG9yIHN0b3JlIGFuIGFkZGl0aW9uYWwgYml0IGlu
IHRoZSBSZW5kZXJTdHlsZSB0byBpbmRpY2F0ZSB0aGF0IGEgem9vbSB3YXMgc3BlY2lmaWVkKS4K
LSAgICBmbG9hdCB6b29tRmFjdG9yID0gMS4wZjsKLSAgICBpZiAocmVuZGVyZXItPnN0eWxlKCkt
PmVmZmVjdGl2ZVpvb20oKSAhPSAxLjBmKSB7CisgICAgZmxvYXQgem9vbUZhY3RvciA9IDE7Cisg
ICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLT5lZmZlY3RpdmVab29tKCkgIT0gMSkgewogICAgICAg
ICAvLyBOZWVkIHRvIGZpbmQgdGhlIG5lYXJlc3QgZW5jbG9zaW5nIFJlbmRlck9iamVjdCB0aGF0
IHNldCB1cAogICAgICAgICAvLyBhIGRpZmZlcmluZyB6b29tLCBhbmQgdGhlbiB3ZSBkaXZpZGUg
b3VyIHJlc3VsdCBieSBpdCB0byBlbGltaW5hdGUgdGhlIHpvb20uCiAgICAgICAgIFJlbmRlck9i
amVjdCogcHJldiA9IHJlbmRlcmVyOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCShyZXZp
c2lvbiA2NjExNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY2OSw3ICs2NjksNyBAQCB2b2lkIFNjcm9sbFZpZXc6OndoZWVsRXZlbnQoUGxh
dGZvcm1XaGVlCiAgICAgICAgIGlmIChlLmdyYW51bGFyaXR5KCkgPT0gU2Nyb2xsQnlQYWdlV2hl
ZWxFdmVudCkgewogICAgICAgICAgICAgQVNTRVJUKGRlbHRhWCA9PSAwKTsKICAgICAgICAgICAg
IGJvb2wgbmVnYXRpdmUgPSBkZWx0YVkgPCAwOwotICAgICAgICAgICAgZGVsdGFZID0gbWF4KG1h
eDxpbnQ+KHZpc2libGVIZWlnaHQoKSAqIFNjcm9sbGJhcjo6bWluRnJhY3Rpb25Ub1N0ZXBXaGVu
UGFnaW5nKCksIHZpc2libGVIZWlnaHQoKSAtIFNjcm9sbGJhcjo6bWF4T3ZlcmxhcEJldHdlZW5Q
YWdlcygpKSwgMSk7CisgICAgICAgICAgICBkZWx0YVkgPSBtYXgobWF4KHN0YXRpY19jYXN0PGZs
b2F0Pih2aXNpYmxlSGVpZ2h0KCkpICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRvU3RlcFdoZW5Q
YWdpbmcoKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZpc2libGVIZWlnaHQoKSAtIFNjcm9sbGJhcjo6
bWF4T3ZlcmxhcEJldHdlZW5QYWdlcygpKSksIDEuMGYpOwogICAgICAgICAgICAgaWYgKG5lZ2F0
aXZlKQogICAgICAgICAgICAgICAgIGRlbHRhWSA9IC1kZWx0YVk7CiAgICAgICAgIH0KSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5oCShyZXZpc2lvbiA2NjExNCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIGNsYXNzIFNjcm9s
bFZpZXcgOiBwdWJsaWMgV2lkZ2V0LCBwdWJsaWMKIHB1YmxpYzoKICAgICB+U2Nyb2xsVmlldygp
OwogCi0gICAgLy8gU2Nyb2xsYmFyQ2xpZW50IGZ1bmN0aW9uLiBGcmFtZVZpZXcgb3ZlcnJpZGVz
IHRoZSBvdGhlciB0d28uCisgICAgLy8gU2Nyb2xsYmFyQ2xpZW50IGZ1bmN0aW9uLiBGcmFtZVZp
ZXcgb3ZlcnJpZGVzIHRoZSBvdGhlcnMuCiAgICAgdmlydHVhbCB2b2lkIHZhbHVlQ2hhbmdlZChT
Y3JvbGxiYXIqKTsKICAgICAKICAgICAvLyBUaGUgd2luZG93IHRoYXRzIGhvc3RzIHRoZSBTY3Jv
bGxWaWV3LiBUaGUgU2Nyb2xsVmlldyB3aWxsIGNvbW11bmljYXRlIHNjcm9sbHMgYW5kIHJlcGFp
bnRzIHRvIHRoZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAkocmV2aXNpb24gNjYxMTQpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miwy
NCArMTQyLDIwIEBAIGJvb2wgU2Nyb2xsYmFyOjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGQKICAg
ICB9CiAjZW5kaWYKIAorICAgIC8vIElnbm9yZSBwZXJwZW5kaWN1bGFyIHNjcm9sbHMuCisgICAg
aWYgKChtX29yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpID8gKGRpcmVjdGlvbiA9
PSBTY3JvbGxVcCB8fCBkaXJlY3Rpb24gPT0gU2Nyb2xsRG93bikgOiAoZGlyZWN0aW9uID09IFNj
cm9sbExlZnQgfHwgZGlyZWN0aW9uID09IFNjcm9sbFJpZ2h0KSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGZsb2F0IHN0ZXAgPSAwOwotICAgIGlmICgoZGlyZWN0aW9uID09IFNjcm9sbFVw
ICYmIG1fb3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIpIHx8IChkaXJlY3Rpb24gPT0g
U2Nyb2xsTGVmdCAmJiBtX29yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpKQotICAg
ICAgICBzdGVwID0gLTE7Ci0gICAgZWxzZSBpZiAoKGRpcmVjdGlvbiA9PSBTY3JvbGxEb3duICYm
IG1fb3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIpIHx8IChkaXJlY3Rpb24gPT0gU2Ny
b2xsUmlnaHQgJiYgbV9vcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKSkKLSAgICAg
ICAgc3RlcCA9IDE7Ci0KLSAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlMaW5lKQotICAg
ICAgICBzdGVwICo9IG1fbGluZVN0ZXA7Ci0gICAgZWxzZSBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Ny
b2xsQnlQYWdlKQotICAgICAgICBzdGVwICo9IG1fcGFnZVN0ZXA7Ci0gICAgZWxzZSBpZiAoZ3Jh
bnVsYXJpdHkgPT0gU2Nyb2xsQnlEb2N1bWVudCkKLSAgICAgICAgc3RlcCAqPSBtX3RvdGFsU2l6
ZTsKLSAgICBlbHNlIGlmIChncmFudWxhcml0eSA9PSBTY3JvbGxCeVBpeGVsKQotICAgICAgICBz
dGVwICo9IG1fcGl4ZWxTdGVwOworICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKKyAgICBjYXNl
IFNjcm9sbEJ5TGluZTogICAgIHN0ZXAgPSBtX2xpbmVTdGVwOyAgYnJlYWs7CisgICAgY2FzZSBT
Y3JvbGxCeVBhZ2U6ICAgICBzdGVwID0gbV9wYWdlU3RlcDsgIGJyZWFrOworICAgIGNhc2UgU2Ny
b2xsQnlEb2N1bWVudDogc3RlcCA9IG1fdG90YWxTaXplOyBicmVhazsKKyAgICBjYXNlIFNjcm9s
bEJ5UGl4ZWw6ICAgIHN0ZXAgPSBtX3BpeGVsU3RlcDsgYnJlYWs7CisgICAgfQorICAgIGlmIChk
aXJlY3Rpb24gPT0gU2Nyb2xsVXAgfHwgZGlyZWN0aW9uID09IFNjcm9sbExlZnQpCisgICAgICAg
IG11bHRpcGxpZXIgPSAtbXVsdGlwbGllcjsKIAotICAgIGZsb2F0IG5ld1BvcyA9IG1fY3VycmVu
dFBvcyArIHN0ZXAgKiBtdWx0aXBsaWVyOwotICAgIGZsb2F0IG1heFBvcyA9IG1fdG90YWxTaXpl
IC0gbV92aXNpYmxlU2l6ZTsKLSAgICByZXR1cm4gc2V0Q3VycmVudFBvcyhtYXgobWluKG5ld1Bv
cywgbWF4UG9zKSwgMC4wZikpOworICAgIHJldHVybiBzZXRDdXJyZW50UG9zKG1heChtaW4obV9j
dXJyZW50UG9zICsgKHN0ZXAgKiBtdWx0aXBsaWVyKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fdG90
YWxTaXplIC0gbV92aXNpYmxlU2l6ZSkpLCAwLjBmKSk7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyOjp1
cGRhdGVUaHVtYigpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgJKHJldmlzaW9uIDY2MTE0KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzks
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcm9wb3J0aW9uKGludCB2aXNpYmxlU2l6ZSwgaW50
IHRvdGFsU2l6ZSk7CiAgICAgdm9pZCBzZXRQcmVzc2VkUG9zKGludCBwKSB7IG1fcHJlc3NlZFBv
cyA9IHA7IH0KIAotICAgIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVs
YXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxLjBmKTsKKyAgICBib29sIHNjcm9sbChTY3JvbGxE
aXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSk7CiAgICAg
CiAgICAgdmlydHVhbCB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3Qm
IGRhbWFnZVJlY3QpOwogCkBAIC0xMjQsOSArMTI0LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
SW50UG9pbnQgY29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdDsK
ICAgICB2aXJ0dWFsIEludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50
UG9pbnQmKSBjb25zdDsKIAotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxiYXIo
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KIHByb3RlY3RlZDoKICAgICBTY3JvbGxiYXIoU2Ny
b2xsYmFyQ2xpZW50KiwgU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRyb2xTaXpl
LCBTY3JvbGxiYXJUaGVtZSogPSAwKTsKIApAQCAtMTQyLDcgKzEzOSw2IEBAIHByb3RlY3RlZDoK
ICAgICBTY3JvbGxHcmFudWxhcml0eSBwcmVzc2VkUGFydFNjcm9sbEdyYW51bGFyaXR5KCk7CiAg
ICAgCiAgICAgdm9pZCBtb3ZlVGh1bWIoaW50IHBvcyk7Ci0gICAgYm9vbCBzZXRDdXJyZW50UG9z
KGZsb2F0IHBvcyk7CiAKICAgICBTY3JvbGxiYXJDbGllbnQqIG1fY2xpZW50OwogICAgIFNjcm9s
bGJhck9yaWVudGF0aW9uIG1fb3JpZW50YXRpb247CkBAIC0xNjcsNiArMTYzLDExIEBAIHByb3Rl
Y3RlZDoKICAgICBib29sIG1fb3ZlcmxhcHNSZXNpemVyOwogICAgIAogICAgIGJvb2wgbV9zdXBw
cmVzc0ludmFsaWRhdGlvbjsKKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxi
YXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBib29sIHNldEN1cnJlbnRQb3MoZmxv
YXQgcG9zKTsKIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJDbGllbnQuaAkocmV2
aXNpb24gNjYxMTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhckNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
U2Nyb2xsYmFyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TY3JvbGxiYXJDbGllbnQo
KSB7fQorICAgIHZpcnR1YWwgflNjcm9sbGJhckNsaWVudCgpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCB2YWx1ZUNoYW5nZWQoU2Nyb2xsYmFyKikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGludmFs
aWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKSA9IDA7CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1Njcm9sbGJhclF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL3F0L1Njcm9sbGJhclF0LmNwcAkocmV2aXNpb24gNjYxMTQpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL3F0L1Njcm9sbGJhclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsOSAr
NzIsNyBAQCBib29sIFNjcm9sbGJhcjo6Y29udGV4dE1lbnUoY29uc3QgUGxhdGZvCiAgICAgY29u
c3QgUVBvaW50IGdsb2JhbFBvcyA9IFFQb2ludChldmVudC5nbG9iYWxYKCksIGV2ZW50Lmdsb2Jh
bFkoKSk7CiAgICAgUUFjdGlvbiogYWN0aW9uU2VsZWN0ZWQgPSBtZW51LmV4ZWMoZ2xvYmFsUG9z
KTsKIAotICAgIGlmICghYWN0aW9uU2VsZWN0ZWQpCi0gICAgICAgIHsgLyogRG8gbm90aGluZyAq
LyB9Ci0gICAgZWxzZSBpZiAoYWN0aW9uU2VsZWN0ZWQgPT0gYWN0U2Nyb2xsSGVyZSkgeworICAg
IGlmIChhY3Rpb25TZWxlY3RlZCA9PSBhY3RTY3JvbGxIZXJlKSB7CiAgICAgICAgIGNvbnN0IFFQ
b2ludCBwb3MgPSBjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3coZXZlbnQucG9zKCkpOwogICAg
ICAgICBtb3ZlVGh1bWIoaG9yaXpvbnRhbCA/IHBvcy54KCkgOiBwb3MueSgpKTsKICAgICB9IGVs
c2UgaWYgKGFjdGlvblNlbGVjdGVkID09IGFjdFNjcm9sbFRvcCkKQEAgLTgyLDEzICs4MCwxMyBA
QCBib29sIFNjcm9sbGJhcjo6Y29udGV4dE1lbnUoY29uc3QgUGxhdGZvCiAgICAgZWxzZSBpZiAo
YWN0aW9uU2VsZWN0ZWQgPT0gYWN0U2Nyb2xsQm90dG9tKQogICAgICAgICBzZXRWYWx1ZShtYXhp
bXVtKCkpOwogICAgIGVsc2UgaWYgKGFjdGlvblNlbGVjdGVkID09IGFjdFBhZ2VVcCkKLSAgICAg
ICAgc2Nyb2xsKGhvcml6b250YWwgPyBTY3JvbGxMZWZ0OiBTY3JvbGxVcCwgU2Nyb2xsQnlQYWdl
LCAxKTsKKyAgICAgICAgc2Nyb2xsKGhvcml6b250YWwgPyBTY3JvbGxMZWZ0OiBTY3JvbGxVcCwg
U2Nyb2xsQnlQYWdlKTsKICAgICBlbHNlIGlmIChhY3Rpb25TZWxlY3RlZCA9PSBhY3RQYWdlRG93
bikKLSAgICAgICAgc2Nyb2xsKGhvcml6b250YWwgPyBTY3JvbGxSaWdodCA6IFNjcm9sbERvd24s
IFNjcm9sbEJ5UGFnZSwgMSk7CisgICAgICAgIHNjcm9sbChob3Jpem9udGFsID8gU2Nyb2xsUmln
aHQgOiBTY3JvbGxEb3duLCBTY3JvbGxCeVBhZ2UpOwogICAgIGVsc2UgaWYgKGFjdGlvblNlbGVj
dGVkID09IGFjdFNjcm9sbFVwKQotICAgICAgICBzY3JvbGwoaG9yaXpvbnRhbCA/IFNjcm9sbExl
ZnQgOiBTY3JvbGxVcCwgU2Nyb2xsQnlMaW5lLCAxKTsKKyAgICAgICAgc2Nyb2xsKGhvcml6b250
YWwgPyBTY3JvbGxMZWZ0IDogU2Nyb2xsVXAsIFNjcm9sbEJ5TGluZSk7CiAgICAgZWxzZSBpZiAo
YWN0aW9uU2VsZWN0ZWQgPT0gYWN0U2Nyb2xsRG93bikKLSAgICAgICAgc2Nyb2xsKGhvcml6b250
YWwgPyBTY3JvbGxSaWdodCA6IFNjcm9sbERvd24sIFNjcm9sbEJ5TGluZSwgMSk7CisgICAgICAg
IHNjcm9sbChob3Jpem9udGFsID8gU2Nyb2xsUmlnaHQgOiBTY3JvbGxEb3duLCBTY3JvbGxCeUxp
bmUpOwogI2VuZGlmIC8vIFFUX05PX0NPTlRFWFRNRU5VCiAgICAgcmV0dXJuIHRydWU7CiB9Cklu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAkocmV2aXNpb24gNjYxMTQpCisrKyBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMjQ2LDcgKzI0Niw3IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgaW50IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoKSBjb25zdDsKICAg
ICBpbnQgaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9v
bCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlw
bGllciA9IDEuMGYsIE5vZGUqKiBzdG9wTm9kZSA9IDApOworICAgIHZpcnR1YWwgYm9vbCBzY3Jv
bGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlwbGllciA9
IDEsIE5vZGUqKiBzdG9wTm9kZSA9IDApOwogICAgIGJvb2wgY2FuQmVTY3JvbGxlZEFuZEhhc1Nj
cm9sbGFibGVBcmVhKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGNhbkJlUHJvZ3JhbWF0aWNh
bGx5U2Nyb2xsZWQoYm9vbCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGF1dG9zY3JvbGwoKTsK
SW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDY2MTE0KQorKysgV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjM1LDEy
ICsyMjM1LDEwIEBAIGJvb2wgUmVuZGVyTGF5ZXI6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24KICAg
ICBib29sIGRpZFZlcnRpY2FsU2Nyb2xsID0gZmFsc2U7CiAgICAgCiAgICAgaWYgKG1faEJhcikg
ewotICAgICAgICBpZiAoZ3JhbnVsYXJpdHkgPT0gU2Nyb2xsQnlEb2N1bWVudCkgewotICAgICAg
ICAgICAgLy8gU3BlY2lhbC1jYXNlIGZvciB0aGUgU2Nyb2xsQnlEb2N1bWVudCBncmFudWxhcml0
eS4gQSBkb2N1bWVudCBzY3JvbGwgY2FuIG9ubHkgYmUgdXAgCi0gICAgICAgICAgICAvLyBvciBk
b3duIGFuZCBpbiBib3RoIGNhc2VzIHRoZSBob3Jpem9udGFsIGJhciBnb2VzIGFsbCB0aGUgd2F5
IHRvIHRoZSBsZWZ0LgotICAgICAgICAgICAgZGlkSG9yaXpvbnRhbFNjcm9sbCA9IG1faEJhci0+
c2Nyb2xsKFNjcm9sbExlZnQsIFNjcm9sbEJ5RG9jdW1lbnQsIG11bHRpcGxpZXIpOwotICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIGRpZEhvcml6b250YWxTY3JvbGwgPSBtX2hCYXItPnNjcm9s
bChkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCBtdWx0aXBsaWVyKTsKKyAgICAgICAgLy8gU3BlY2lh
bC1jYXNlIGZvciB0aGUgU2Nyb2xsQnlEb2N1bWVudCBncmFudWxhcml0eS4gQSBkb2N1bWVudCBz
Y3JvbGwKKyAgICAgICAgLy8gY2FuIG9ubHkgYmUgdXAgb3IgZG93biBhbmQgaW4gYm90aCBjYXNl
cyB0aGUgaG9yaXpvbnRhbCBiYXIgZ29lcyBhbGwKKyAgICAgICAgLy8gdGhlIHdheSB0byB0aGUg
bGVmdC4KKyAgICAgICAgZGlkSG9yaXpvbnRhbFNjcm9sbCA9IG1faEJhci0+c2Nyb2xsKChncmFu
dWxhcml0eSA9PSBTY3JvbGxCeURvY3VtZW50KSA/IFNjcm9sbExlZnQgOiBkaXJlY3Rpb24sIGdy
YW51bGFyaXR5LCBtdWx0aXBsaWVyKTsKICAgICB9CiAKICAgICBpZiAobV92QmFyKQpJbmRleDog
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCShyZXZpc2lvbiA2NjExNCkKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NCw3ICsyNzQsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCgpOwogCi0gICAgYm9v
bCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgbXVsdGlw
bGllciA9IDEuMGYpOworICAgIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3Jh
bnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxKTsKICAgICB2b2lkIGF1dG9zY3JvbGwoKTsK
IAogICAgIHZvaWQgcmVzaXplKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGNvbnN0IEludFNp
emUmKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgJKHJldmlzaW9uIDY2MTE0KQor
KysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC02
OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQb2ludEluT3ZlcmZs
b3dDb250cm9sKEhpdFRlc3RSZXN1bHQmLCBpbnQgeCwgaW50IHksIGludCB0eCwgaW50IHR5KTsK
IAotICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxh
cml0eSwgZmxvYXQgbXVsdGlwbGllciA9IDEuMGYsIE5vZGUqKiBzdG9wTm9kZSA9IDApOworICAg
IHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwg
ZmxvYXQgbXVsdGlwbGllciA9IDEsIE5vZGUqKiBzdG9wTm9kZSA9IDApOwogCiAgICAgdmlydHVh
bCB2b2lkIGNhbGNQcmVmV2lkdGhzKCk7CiAgICAgdmlydHVhbCBpbnQgYmFzZWxpbmVQb3NpdGlv
bihib29sIGZpcnN0TGluZSwgYm9vbCBpc1Jvb3RMaW5lQm94KSBjb25zdDsKSW5kZXg6IFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCShyZXZpc2lv
biA2NjExNCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbExl
ZnQoaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGludCk7Ci0gICAgdmlydHVh
bCBib29sIHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBt
dWx0aXBsaWVyID0gMS4wZiwgTm9kZSoqIHN0b3BOb2RlID0gMCk7CisgICAgdmlydHVhbCBib29s
IHNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBs
aWVyID0gMSwgTm9kZSoqIHN0b3BOb2RlID0gMCk7CiAKICAgICBpbnQgdGV4dEJsb2NrV2lkdGgo
KSBjb25zdDsKICAgICB2aXJ0dWFsIGZsb2F0IGdldEF2Z0NoYXJXaWR0aChBdG9taWNTdHJpbmcg
ZmFtaWx5KTsKSW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
Q2hhbmdlTG9nCShyZXZpc2lvbiA2NjExNCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDgtMjYgIFBldGVyIEthc3RpbmcgIDxwa2Fz
dGluZ0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1pc2MuIGNsZWFudXAgc3BsaXQgb2ZmIGZyb20gYnVnIDMyMzU2LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQ2OTYKKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQpOgorCiAyMDEwLTA4
LTI1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWls
ZCBmaXgsIG5vIHJldmlldy4KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dl
YlBhZ2VRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQv
V2ViUGFnZVF0LmNwcAkocmV2aXNpb24gNjYxMTQpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9xdC9XZWJQYWdlUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYsMTAgKzIyNiw3IEBA
IGJvb2wgV2ViUGFnZTo6cGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcksKICAgICAgICAgICAgIG1f
cGFnZS0+Z29CYWNrKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVktfU1BBQ0U6Ci0gICAg
ICAgIGlmIChrZXlib2FyZEV2ZW50LnNoaWZ0S2V5KCkpCi0gICAgICAgICAgICBzY3JvbGwobV9w
YWdlLCBTY3JvbGxVcCwgU2Nyb2xsQnlQYWdlKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
c2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgc2Nyb2xs
KG1fcGFnZSwga2V5Ym9hcmRFdmVudC5zaGlmdEtleSgpID8gU2Nyb2xsVXAgOiBTY3JvbGxEb3du
LCBTY3JvbGxCeVBhZ2UpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFZLX0xFRlQ6CiAgICAg
ICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbExlZnQsIFNjcm9sbEJ5TGluZSk7CkluZGV4OiBXZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cJKHJldmlzaW9uIDY2MTE0KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA4LTI2ICBQZXRlciBLYXN0aW5nICA8
cGthc3RpbmdAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNaXNjLiBjbGVhbnVwIHNwbGl0IG9mZiBmcm9tIGJ1ZyAzMjM1Ni4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0Njk2CisKKyAg
ICAgICAgKiBzcmMvV2ViU2Nyb2xsYmFySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNj
cm9sbGJhckltcGw6OnNldExvY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2Nyb2xsYmFy
SW1wbDo6b25Nb3VzZVdoZWVsKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJvcGFnYXRlU2Nyb2xsKToKKyAgICAgICAgKiBz
cmMvd2luL1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5w
dXRFdmVudEZhY3Rvcnk6Om1vdXNlV2hlZWxFdmVudCk6CisKIDIwMTAtMDgtMjYgIFl1cnkgU2Vt
aWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gUmV2
ZXJ0IHI2NjEwMyBzaW5jZSBRdCB0ZXN0cyBhcmUgZmFpbGluZy4KSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2Nyb2xsYmFySW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTY3JvbGxiYXJJbXBsLmNwcAkocmV2aXNpb24gNjYxMTQpCisrKyBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNjcm9sbGJhckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MSw3
ICs4MSw3IEBAIHZvaWQgV2ViU2Nyb2xsYmFySW1wbDo6c2V0TG9jYXRpb24oY29uc3QKICAgICAg
IG1fc2Nyb2xsYmFyLT5pbnZhbGlkYXRlKCk7CiAKICAgICBpbnQgbGVuZ3RoID0gbV9zY3JvbGxi
YXItPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhciA/IG1fc2Nyb2xsYmFyLT53
aWR0aCgpIDogbV9zY3JvbGxiYXItPmhlaWdodCgpOwotICAgIGludCBwYWdlU3RlcCA9IG1heCht
YXg8aW50PihsZW5ndGggKiBTY3JvbGxiYXI6Om1pbkZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZygp
LCBsZW5ndGggLSBTY3JvbGxiYXI6Om1heE92ZXJsYXBCZXR3ZWVuUGFnZXMoKSksIDEpOworICAg
IGludCBwYWdlU3RlcCA9IG1heChtYXgoc3RhdGljX2Nhc3Q8aW50PihzdGF0aWNfY2FzdDxmbG9h
dD4obGVuZ3RoKSAqIFNjcm9sbGJhcjo6bWluRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nKCkpLCBs
ZW5ndGggLSBTY3JvbGxiYXI6Om1heE92ZXJsYXBCZXR3ZWVuUGFnZXMoKSksIDEpOwogICAgIG1f
c2Nyb2xsYmFyLT5zZXRTdGVwcyhTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCksIHBhZ2VT
dGVwKTsKICAgICBtX3Njcm9sbGJhci0+c2V0RW5hYmxlZChtX3Njcm9sbGJhci0+dG90YWxTaXpl
KCkgPiBsZW5ndGgpOwogICAgIG1fc2Nyb2xsYmFyLT5zZXRQcm9wb3J0aW9uKGxlbmd0aCwgbV9z
Y3JvbGxiYXItPnRvdGFsU2l6ZSgpKTsKQEAgLTIxNCw3ICsyMTQsNyBAQCBib29sIFdlYlNjcm9s
bGJhckltcGw6Om9uTW91c2VXaGVlbChjb25zCiAgICAgICAgICAgICBpZiAobW91c2V3aGVlbC5z
Y3JvbGxCeVBhZ2UpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQobV9zY3JvbGxiYXItPm9yaWVu
dGF0aW9uKCkgPT0gVmVydGljYWxTY3JvbGxiYXIpOwogICAgICAgICAgICAgICAgIGJvb2wgbmVn
YXRpdmUgPSBkZWx0YSA8IDA7Ci0gICAgICAgICAgICAgICAgZGVsdGEgPSBtYXgobWF4PGludD4o
bV9zY3JvbGxiYXItPnZpc2libGVTaXplKCkgKiBTY3JvbGxiYXI6Om1pbkZyYWN0aW9uVG9TdGVw
V2hlblBhZ2luZygpLCBtX3Njcm9sbGJhci0+dmlzaWJsZVNpemUoKSAtIFNjcm9sbGJhcjo6bWF4
T3ZlcmxhcEJldHdlZW5QYWdlcygpKSwgMSk7CisgICAgICAgICAgICAgICAgZGVsdGEgPSBtYXgo
bWF4KHN0YXRpY19jYXN0PGZsb2F0PihtX3Njcm9sbGJhci0+dmlzaWJsZVNpemUoKSkgKiBTY3Jv
bGxiYXI6Om1pbkZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZygpLCBzdGF0aWNfY2FzdDxmbG9hdD4o
bV9zY3JvbGxiYXItPnZpc2libGVTaXplKCkgLSBTY3JvbGxiYXI6Om1heE92ZXJsYXBCZXR3ZWVu
UGFnZXMoKSkpLCAxLjBmKTsKICAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUpCiAgICAgICAg
ICAgICAgICAgICAgIGRlbHRhICo9IC0xOwogICAgICAgICAgICAgfQpJbmRleDogV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDY2MTE0KQorKysgV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyMywxMyArODIzLDEwIEBA
IGJvb2wgV2ViVmlld0ltcGw6OnByb3BhZ2F0ZVNjcm9sbChTY3JvbGwKICAgICBpZiAoIWZyYW1l
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBib29sIHNjcm9sbEhhbmRsZWQgPQotICAg
ICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNjcm9sbE92ZXJmbG93KHNjcm9sbERpcmVjdGlv
biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxH
cmFudWxhcml0eSk7CisgICAgYm9vbCBzY3JvbGxIYW5kbGVkID0gZnJhbWUtPmV2ZW50SGFuZGxl
cigpLT5zY3JvbGxPdmVyZmxvdyhzY3JvbGxEaXJlY3Rpb24sIHNjcm9sbEdyYW51bGFyaXR5KTsK
ICAgICBGcmFtZSogY3VycmVudEZyYW1lID0gZnJhbWU7CiAgICAgd2hpbGUgKCFzY3JvbGxIYW5k
bGVkICYmIGN1cnJlbnRGcmFtZSkgewotICAgICAgICBzY3JvbGxIYW5kbGVkID0gY3VycmVudEZy
YW1lLT52aWV3KCktPnNjcm9sbChzY3JvbGxEaXJlY3Rpb24sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbEdyYW51bGFyaXR5KTsKKyAg
ICAgICAgc2Nyb2xsSGFuZGxlZCA9IGN1cnJlbnRGcmFtZS0+dmlldygpLT5zY3JvbGwoc2Nyb2xs
RGlyZWN0aW9uLCBzY3JvbGxHcmFudWxhcml0eSk7CiAgICAgICAgIGN1cnJlbnRGcmFtZSA9IGN1
cnJlbnRGcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKICAgICB9CiAgICAgcmV0dXJuIHNjcm9sbEhh
bmRsZWQ7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL3dpbi9XZWJJbnB1dEV2ZW50RmFjdG9y
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy93aW4vV2ViSW5wdXRFdmVu
dEZhY3RvcnkuY3BwCShyZXZpc2lvbiA2NjExNCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvd2lu
L1dlYklucHV0RXZlbnRGYWN0b3J5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzk4LDExICszOTgs
MTEgQEAgV2ViTW91c2VXaGVlbEV2ZW50IFdlYklucHV0RXZlbnRGYWN0b3J5OgogICAgIC8vCiAg
ICAgLy8gSG93IG1hbnkgcGl4ZWxzIHNob3VsZCB3ZSBzY3JvbGwgcGVyIGxpbmU/ICBHZWNrbyB1
c2VzIHRoZSBoZWlnaHQgb2YgdGhlCiAgICAgLy8gY3VycmVudCBsaW5lLCB3aGljaCBtZWFucyBz
Y3JvbGwgZGlzdGFuY2UgY2hhbmdlcyBhcyB5b3UgZ28gdGhyb3VnaCB0aGUKLSAgICAvLyBwYWdl
IG9yIGdvIHRvIGRpZmZlcmVudCBwYWdlcy4gIElFIDcgaXMgfjUwIHB4L2xpbmUsIGFsdGhvdWdo
IHRoZSB2YWx1ZQotICAgIC8vIHNlZW1zIHRvIHZhcnkgc2xpZ2h0bHkgYnkgcGFnZSBhbmQgem9v
bSBsZXZlbC4gIFNpbmNlIElFIDcgaGFzIGEgc21vb3RoaW5nCi0gICAgLy8gYWxnb3JpdGhtIG9u
IHNjcm9sbGluZywgaXQgY2FuIGdldCBhd2F5IHdpdGggc2xpZ2h0bHkgbGFyZ2VyIHNjcm9sbCB2
YWx1ZXMKLSAgICAvLyB3aXRob3V0IGZlZWxpbmcgamVya3kuICBIZXJlIHdlIHVzZSAxMDAgcHgg
cGVyIHRocmVlIGxpbmVzICh0aGUgZGVmYXVsdAotICAgIC8vIHNjcm9sbCBhbW91bnQgaXMgdGhy
ZWUgbGluZXMgcGVyIHdoZWVsIHRpY2spLgorICAgIC8vIHBhZ2Ugb3IgZ28gdG8gZGlmZmVyZW50
IHBhZ2VzLiAgSUUgOCBpcyB+NjAgcHgvbGluZSwgYWx0aG91Z2ggdGhlIHZhbHVlCisgICAgLy8g
c2VlbXMgdG8gdmFyeSBzbGlnaHRseSBieSBwYWdlIGFuZCB6b29tIGxldmVsLiAgQWxzbywgSUUg
ZGVmYXVsdHMgdG8KKyAgICAvLyBzbW9vdGggc2Nyb2xsaW5nIHdoaWxlIEZpcmVmb3ggZG9lc24n
dCwgc28gaXQgY2FuIGdldCBhd2F5IHdpdGggc29tZXdoYXQKKyAgICAvLyBsYXJnZXIgc2Nyb2xs
IHZhbHVlcyB3aXRob3V0IGZlZWxpbmcgYXMgamVya3kuICBIZXJlIHdlIHVzZSAxMDAgcHggcGVy
CisgICAgLy8gdGhyZWUgbGluZXMgKHRoZSBkZWZhdWx0IHNjcm9sbCBhbW91bnQgaXMgdGhyZWUg
bGluZXMgcGVyIHdoZWVsIHRpY2spLgogICAgIHN0YXRpYyBjb25zdCBmbG9hdCBzY3JvbGxiYXJQ
aXhlbHNQZXJMaW5lID0gMTAwLjBmIC8gMy4wZjsKICAgICB3aGVlbERlbHRhIC89IFdIRUVMX0RF
TFRBOwogICAgIGZsb2F0IHNjcm9sbERlbHRhID0gd2hlZWxEZWx0YTsK
</data>
<flag name="review"
          id="54403"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="54404"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>