<?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>105185</bug_id>
          
          <creation_ts>2012-12-17 08:33:30 -0800</creation_ts>
          <short_desc>[CSSRegions] RenderFlowThread should keep a count of auto height regions</short_desc>
          <delta_ts>2013-01-27 23:26:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>AdobeTracked</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihnea Ovidenie">mihnea</reporter>
          <assigned_to name="Mihnea Ovidenie">mihnea</assigned_to>
          <cc>eric</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>792746</commentid>
    <comment_count>0</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-12-17 08:33:30 -0800</bug_when>
    <thetext>Right now, only the FlowThreadController keeps the count of all auto height regions from all the flow threads. By making each flow thread keep a count of its auto height regions, we can perform specific operations for the two pass layout only for the flow threads that have auto height regions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792758</commentid>
    <comment_count>1</comment_count>
      <attachid>179752</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-12-17 08:47:01 -0800</bug_when>
    <thetext>Created attachment 179752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792793</commentid>
    <comment_count>2</comment_count>
      <attachid>179752</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2012-12-17 09:38:18 -0800</bug_when>
    <thetext>Comment on attachment 179752
Patch

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

Looks good.

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:746
&gt; +    if (!needsLayout() || !hasAutoLogicalHeightRegions())

How is this working with dynamic changes from height: auto to some specific height? Is there a test for it?

&gt; Source/WebCore/rendering/RenderRegion.cpp:187
&gt; +    view()-&gt;flowThreadController()-&gt;incrementAutoLogicalHeightRegions();

Looks like view()-&gt;flowThreadController()-&gt;incrementAutoLogicalHeightRegions(); would actually look better on the FlowThread itself. Maybe we could rename it to something that says &quot;number of flow threads that have auto-height-regions&quot;. I understand if that comes in a different bug though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814004</commentid>
    <comment_count>3</comment_count>
      <attachid>184181</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2013-01-23 01:49:55 -0800</bug_when>
    <thetext>Created attachment 184181
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814007</commentid>
    <comment_count>4</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2013-01-23 01:51:27 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 179752 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=179752&amp;action=review
&gt; 
&gt; Looks good.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderFlowThread.cpp:746
&gt; &gt; +    if (!needsLayout() || !hasAutoLogicalHeightRegions())
&gt; 
&gt; How is this working with dynamic changes from height: auto to some specific height? Is there a test for it?
&gt; 

Yes, we have region-height-auto-to-defined.html and region-height-defined-to-auto.html (fast/regions)

&gt; &gt; Source/WebCore/rendering/RenderRegion.cpp:187
&gt; &gt; +    view()-&gt;flowThreadController()-&gt;incrementAutoLogicalHeightRegions();
&gt; 
&gt; Looks like view()-&gt;flowThreadController()-&gt;incrementAutoLogicalHeightRegions(); would actually look better on the FlowThread itself. Maybe we could rename it to something that says &quot;number of flow threads that have auto-height-regions&quot;. I understand if that comes in a different bug though.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814410</commentid>
    <comment_count>5</comment_count>
      <attachid>184181</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-23 11:25:53 -0800</bug_when>
    <thetext>Comment on attachment 184181
Patch 2

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

The change looks fine. Some comments on the naming.

&gt; Source/WebCore/ChangeLog:12
&gt; +        No new tests, change is covered by existing auto height tests.

It&apos;s a performance refactoring, you don&apos;t expect a change in behavior (which is why you don&apos;t add new tests).

&gt; Source/WebCore/ChangeLog:41
&gt; +        (WebCore::RenderView::checkTwoPassLayoutForAutoHeightRegions):

Filing in those details would help a lot in reading the changes.

&gt; Source/WebCore/rendering/FlowThreadController.cpp:103
&gt; -    ASSERT(isAutoLogicalHeightRegionsFlagConsistent());
&gt; +#ifndef NDEBUG
&gt; +    checkAutoLogicalHeightRegionsFlagConsistent();

I still prefer the ASSERT style here. That would remove the #ifndef need.

&gt; Source/WebCore/rendering/RenderFlowThread.cpp:744
&gt; +bool RenderFlowThread::isAutoLogicalHeightRegionsFlagConsistent() const

I don&apos;t understand this naming, especially the &apos;flag&apos; part. Can&apos;t we just use &apos;count&apos; instead of the pretty confusing flag?

&gt; Source/WebCore/rendering/RenderFlowThread.h:138
&gt; +    bool hasAutoLogicalHeightRegions() const { return m_autoLogicalHeightRegionsCount; }

Nit: You could probably just put the |isAutoLogicalHeightRegionsFlagConsistent| here. It would mean some extra iterations over your regions in debug but it would catch inconsistent count more thoroughly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815242</commentid>
    <comment_count>6</comment_count>
      <attachid>184439</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2013-01-24 01:44:57 -0800</bug_when>
    <thetext>Created attachment 184439
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816288</commentid>
    <comment_count>7</comment_count>
      <attachid>184677</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2013-01-24 23:16:11 -0800</bug_when>
    <thetext>Created attachment 184677
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816295</commentid>
    <comment_count>8</comment_count>
      <attachid>184677</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-24 23:22:30 -0800</bug_when>
    <thetext>Comment on attachment 184677
Patch for landing

Rejecting attachment 184677 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-04&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 184677, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
e left on device
patch: **** Can&apos;t create file /tmp/ppcebwTp : No space left on device
patch: **** Can&apos;t create file /tmp/pppL5J5p : No space left on device
patch: **** Can&apos;t create file /tmp/ppGzFxFp : No space left on device
patch: **** Can&apos;t create file /tmp/ppibEkSp : No space left on device
patch: **** Can&apos;t create file /tmp/ppA0Y8Gq : No space left on device

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/16124133</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817534</commentid>
    <comment_count>9</comment_count>
      <attachid>184940</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2013-01-27 23:08:09 -0800</bug_when>
    <thetext>Created attachment 184940
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817541</commentid>
    <comment_count>10</comment_count>
      <attachid>184940</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-27 23:26:25 -0800</bug_when>
    <thetext>Comment on attachment 184940
Patch for landing

Clearing flags on attachment: 184940

Committed r140948: &lt;http://trac.webkit.org/changeset/140948&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817542</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-27 23:26:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179752</attachid>
            <date>2012-12-17 08:47:01 -0800</date>
            <delta_ts>2013-01-23 01:49:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>105185.patch</filename>
            <type>text/plain</type>
            <size>7629</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MTQ5ODNhLi5lNGY2MWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTItMTItMTcgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAg
ICAgICAgW0NTU1JlZ2lvbnNdIFJlbmRlckZsb3dUaHJlYWQgc2hvdWxkIGtlZXAgYSBjb3VudCBv
ZiBhdXRvIGhlaWdodCByZWdpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDUxODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSaWdodCBub3csIG9ubHkgdGhlIEZsb3dUaHJlYWRDb250cm9sbGVyIGtl
ZXBzIHRoZSBjb3VudCBvZiBhbGwgYXV0byBoZWlnaHQgcmVnaW9ucyBmcm9tIGFsbCB0aGUgZmxv
dyB0aHJlYWRzLiBCeSBtYWtpbmcgZWFjaCBmbG93IHRocmVhZCBrZWVwIGEgY291bnQgb2YgaXRz
IGF1dG8gaGVpZ2h0IHJlZ2lvbnMsCisgICAgICAgIHdlIGNhbiBwZXJmb3JtIHNwZWNpZmljIG9w
ZXJhdGlvbnMgZm9yIHRoZSB0d28gcGFzcyBsYXlvdXQgb25seSBmb3IgdGhlIGZsb3cgdGhyZWFk
cyB0aGF0IGhhdmUgYXV0byBoZWlnaHQgcmVnaW9ucy4KKworICAgICAgICBObyBuZXcgZnVuY3Rp
b25hbGl0eSwgY292ZXJlZCBieSBleGlzdGluZyByZWdpb25zIHRlc3RzLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Rmxvd1RocmVhZDo6UmVuZGVyRmxvd1RocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
bG93VGhyZWFkOjphdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCk6IExpdmUgY2hlY2sgb2Yg
Y29tcHV0ZWQgYXV0byBoZWlnaHQgcmVnaW9ucyBjb3VudC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckZsb3dUaHJlYWQ6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQp
OiBCYWlsIG91dCBlYXJseSBpZiB0aGUgZmxvdyB0aHJlYWQgZG9lcyBub3QgaGF2ZSBhdXRvIGhl
aWdodCByZWdpb25zLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bWFya0F1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCk6IEJhaWwgb3V0IGVhcmx5IGlmIHRoZSBm
bG93IHRocmVhZCBkb2VzIG5vdCBoYXZlIGF1dG8gaGVpZ2h0IHJlZ2lvbnMuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVnaW9uLmNwcDogRmFjdG9yIGluY3JlbWVudC9kZWNyZW1lbnQgY29kZSBpbiBpbmNyZW1lbnQv
ZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRDb3VudCBzaW5jZSBpdCB1c2VkIGluIG1vcmUgdGhh
biBvbmUgcGxhY2UuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OmluY3JlbWVudEF1
dG9Mb2dpY2FsSGVpZ2h0Q291bnQpOiAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6
ZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJSZWdpb246OnVwZGF0ZVJlZ2lvbkhhc0F1dG9Mb2dpY2FsSGVpZ2h0RmxhZyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJSZWdpb246OmF0dGFjaFJlZ2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJSZWdpb246OmRldGFjaFJlZ2lvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clJlZ2lvbi5oOgorCiAyMDEyLTEyLTE3ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUGVyc2lzdCBBdWRpdCBzZWxlY3Rpb25z
IGFjcm9zcyBzZXNzaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dU
aHJlYWQuY3BwCmluZGV4IDIxNzA1ODMuLmI0NjkxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTU0LDYgKzU0LDcgQEAgUmVuZGVyRmxv
d1RocmVhZDo6UmVuZGVyRmxvd1RocmVhZChOb2RlKiBub2RlKQogICAgICwgbV9oYXNSZWdpb25z
V2l0aFN0eWxpbmcoZmFsc2UpCiAgICAgLCBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZl
bnQoZmFsc2UpCiAgICAgLCBtX3BhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZChmYWxzZSkKKyAgICAs
IG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQoMCkKIHsKICAgICBBU1NFUlQobm9kZS0+
ZG9jdW1lbnQoKS0+Y3NzUmVnaW9uc0VuYWJsZWQoKSk7CiAgICAgc2V0SXNBbm9ueW1vdXMoZmFs
c2UpOwpAQCAtNzMwLDYgKzczMSw3IEBAIHVuc2lnbmVkIFJlbmRlckZsb3dUaHJlYWQ6OmF1dG9M
b2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KCkgY29uc3QKICAgICAgICAgICAgIGF1dG9Mb2dpY2Fs
SGVpZ2h0UmVnaW9ucysrOwogICAgIH0KIAorICAgIEFTU0VSVChhdXRvTG9naWNhbEhlaWdodFJl
Z2lvbnMgPT0gbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCk7CiAgICAgcmV0dXJuIGF1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uczsKIH0KICNlbmRpZgpAQCAtNzQxLDEyICs3NDMsOSBAQCB2
b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRI
ZWlnaHQoKQogCiAgICAgLy8gV2UgbmVlZCB0byByZXNldCB0aGUgb3ZlcnJpZGUgbG9naWNhbCBj
b250ZW50IGhlaWdodCBmb3IgcmVnaW9ucyB3aXRoIGF1dG8gbG9naWNhbCBoZWlnaHQKICAgICAv
LyBvbmx5IGlmIHRoZSBmbG93IHRocmVhZCBjb250ZW50IG5lZWRzIGxheW91dC4KLSAgICBpZiAo
IW5lZWRzTGF5b3V0KCkpCisgICAgaWYgKCFuZWVkc0xheW91dCgpIHx8ICFoYXNBdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IG9wdGlt
aXplIHRoaXMgdG8gaXRlcmF0ZSB0aGUgcmVnaW9uIGNoYWluIG9ubHkgaWYgdGhlIGZsb3cgdGhy
ZWFkIGhhcyBhdXRvIGxvZ2ljYWwgaGVpZ2h0Ci0gICAgLy8gcmVnaW9uLgotCiAgICAgZm9yIChS
ZW5kZXJSZWdpb25MaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0
ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgUmVuZGVyUmVnaW9u
KiByZWdpb24gPSAqaXRlcjsKICAgICAgICAgaWYgKCFyZWdpb24tPmhhc0F1dG9Mb2dpY2FsSGVp
Z2h0KCkpCkBAIC03NjcsOCArNzY2LDggQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjptYXJrQXV0
b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KCkKICAgICBBU1NFUlQodmlldygpLT5sYXlv
dXRTdGF0ZSgpKTsKICAgICBBU1NFUlQodmlldygpLT5jb25zdHJhaW5lZEZsb3dUaHJlYWRzTGF5
b3V0UGhhc2UoKSk7CiAKLSAgICAvLyBGSVhNRTogb3B0aW1pemUgdGhpcyB0byBpdGVyYXRlIHRo
ZSByZWdpb24gY2hhaW4gb25seSBpZiB0aGUgZmxvdyB0aHJlYWQgaGFzIGF1dG8gbG9naWNhbCBo
ZWlnaHQKLSAgICAvLyByZWdpb24uCisgICAgaWYgKCFoYXNBdXRvTG9naWNhbEhlaWdodFJlZ2lv
bnMoKSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0OjppdGVy
YXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVu
ZCgpOyArK2l0ZXIpIHsKICAgICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAqaXRlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IGMzOTg3NGMu
LjM3YTYwNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93
VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQu
aApAQCAtMTM1LDYgKzEzNSw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgcGFnZUxvZ2ljYWxIZWln
aHRDaGFuZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQ7IH0K
IAorICAgIGJvb2wgaGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkgY29uc3QgeyByZXR1cm4g
bV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsgfQorICAgIHZvaWQgaW5jcmVtZW50QXV0
b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkgeyArK21fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291
bnQ7IH0KKyAgICB2b2lkIGRlY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpIHsgQVNT
RVJUKG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQgPiAwKTsgLS1tX2F1dG9Mb2dpY2Fs
SGVpZ2h0UmVnaW9uc0NvdW50OyB9CiAjaWZuZGVmIE5ERUJVRwogICAgIHVuc2lnbmVkIGF1dG9M
b2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KCkgY29uc3Q7CiAjZW5kaWYKQEAgLTE5Nyw2ICsyMDAs
OCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2hhc1JlZ2lvbnNXaXRoU3R5bGluZyA6IDE7CiAg
ICAgYm9vbCBtX2Rpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZlbnQgOiAxOwogICAgIGJvb2wg
bV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQgOiAxOworCisgICAgdW5zaWduZWQgbV9hdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnNDb3VudDsKIH07CiAKIGlubGluZSBSZW5kZXJGbG93VGhyZWFkKiB0
b1JlbmRlckZsb3dUaHJlYWQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCmluZGV4IGNlMGI5ZDQuLmMxZDIzMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCkBAIC0xNzcsNiArMTc3LDI1IEBA
IHZvaWQgUmVuZGVyUmVnaW9uOjpjaGVja1JlZ2lvblN0eWxlKCkKICAgICBtX2Zsb3dUaHJlYWQt
PmNoZWNrUmVnaW9uc1dpdGhTdHlsaW5nKCk7CiB9CiAKK3ZvaWQgUmVuZGVyUmVnaW9uOjppbmNy
ZW1lbnRBdXRvTG9naWNhbEhlaWdodENvdW50KCkKK3sKKyAgICBBU1NFUlQobV9mbG93VGhyZWFk
KTsKKyAgICBBU1NFUlQoaXNWYWxpZCgpKTsKKyAgICBBU1NFUlQobV9oYXNBdXRvTG9naWNhbEhl
aWdodCk7CisKKyAgICBtX2Zsb3dUaHJlYWQtPmluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVn
aW9ucygpOworICAgIHZpZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+aW5jcmVtZW50QXV0
b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7Cit9CisKK3ZvaWQgUmVuZGVyUmVnaW9uOjpkZWNyZW1l
bnRBdXRvTG9naWNhbEhlaWdodENvdW50KCkKK3sKKyAgICBBU1NFUlQobV9mbG93VGhyZWFkKTsK
KyAgICBBU1NFUlQoaXNWYWxpZCgpKTsKKworICAgIG1fZmxvd1RocmVhZC0+ZGVjcmVtZW50QXV0
b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7CisgICAgdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxl
cigpLT5kZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKK30KKwogdm9pZCBSZW5k
ZXJSZWdpb246OnVwZGF0ZVJlZ2lvbkhhc0F1dG9Mb2dpY2FsSGVpZ2h0RmxhZygpCiB7CiAgICAg
QVNTRVJUKG1fZmxvd1RocmVhZCk7CkBAIC0xODgsMTAgKzIwNywxMCBAQCB2b2lkIFJlbmRlclJl
Z2lvbjo6dXBkYXRlUmVnaW9uSGFzQXV0b0xvZ2ljYWxIZWlnaHRGbGFnKCkKICAgICBtX2hhc0F1
dG9Mb2dpY2FsSGVpZ2h0ID0gc2hvdWxkSGF2ZUF1dG9Mb2dpY2FsSGVpZ2h0KCk7CiAgICAgaWYg
KG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQgIT0gZGlkSGF2ZUF1dG9Mb2dpY2FsSGVpZ2h0KSB7CiAg
ICAgICAgIGlmIChtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0KQotICAgICAgICAgICAgdmlldygpLT5m
bG93VGhyZWFkQ29udHJvbGxlcigpLT5pbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMo
KTsKKyAgICAgICAgICAgIGluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0Q291bnQoKTsKICAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICBjbGVhck92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQo
KTsKLSAgICAgICAgICAgIHZpZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+ZGVjcmVtZW50
QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7CisgICAgICAgICAgICBkZWNyZW1lbnRBdXRvTG9n
aWNhbEhlaWdodENvdW50KCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0zMTQsMTcgKzMzMywx
NSBAQCB2b2lkIFJlbmRlclJlZ2lvbjo6YXR0YWNoUmVnaW9uKCkKIAogICAgIG1faGFzQXV0b0xv
Z2ljYWxIZWlnaHQgPSBzaG91bGRIYXZlQXV0b0xvZ2ljYWxIZWlnaHQoKTsKICAgICBpZiAoaGFz
QXV0b0xvZ2ljYWxIZWlnaHQoKSkKLSAgICAgICAgdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxl
cigpLT5pbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKKyAgICAgICAgaW5jcmVt
ZW50QXV0b0xvZ2ljYWxIZWlnaHRDb3VudCgpOwogfQogCiB2b2lkIFJlbmRlclJlZ2lvbjo6ZGV0
YWNoUmVnaW9uKCkKIHsKICAgICBpZiAobV9mbG93VGhyZWFkKSB7CiAgICAgICAgIG1fZmxvd1Ro
cmVhZC0+cmVtb3ZlUmVnaW9uRnJvbVRocmVhZCh0aGlzKTsKLSAgICAgICAgaWYgKGhhc0F1dG9M
b2dpY2FsSGVpZ2h0KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1ZhbGlkKCkpOwotICAgICAg
ICAgICAgdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5kZWNyZW1lbnRBdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnMoKTsKLSAgICAgICAgfQorICAgICAgICBpZiAoaGFzQXV0b0xvZ2ljYWxI
ZWlnaHQoKSkKKyAgICAgICAgICAgIGRlY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0Q291bnQoKTsK
ICAgICB9CiAgICAgbV9mbG93VGhyZWFkID0gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZWdpb24uaAppbmRleCA1NjE3YWU4Li45MTE1ZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlZ2lvbi5oCkBAIC0xNjksNiArMTY5LDkgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGNoZWNrUmVnaW9uU3R5bGUoKTsKICAgICB2b2lkIHVwZGF0ZVJlZ2lvbkhhc0F1dG9Mb2dp
Y2FsSGVpZ2h0RmxhZygpOwogCisgICAgdm9pZCBpbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdodENv
dW50KCk7CisgICAgdm9pZCBkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodENvdW50KCk7CisKIHBy
b3RlY3RlZDoKICAgICBSZW5kZXJGbG93VGhyZWFkKiBtX2Zsb3dUaHJlYWQ7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184181</attachid>
            <date>2013-01-23 01:49:55 -0800</date>
            <delta_ts>2013-01-24 01:44:57 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>105185-2.patch</filename>
            <type>text/plain</type>
            <size>15488</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YmY0NTc1Li4xZGYyMjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUg
QEAKKzIwMTMtMDEtMjMgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAg
ICAgICAgW0NTU1JlZ2lvbnNdIFJlbmRlckZsb3dUaHJlYWQgc2hvdWxkIGtlZXAgYSBjb3VudCBv
ZiBhdXRvIGhlaWdodCByZWdpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDUxODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBLZWVwIHRoZSBjb3VudCBvZiBhdXRvIGhlaWdodCByZWdpb25zIG9uIHRo
ZSBmbG93IHRocmVhZCBpbnN0ZWFkIG9mIGZsb3cgdGhyZWFkIGNvbnRyb2xsZXIuCisgICAgICAg
IFRoaXMgd2F5LCB3ZSBjYW4gc3RyZWFtbGluZSB0aGUgb3BlcmF0aW9ucyBhc3NvY2lhdGVkIHdp
dGggdGhlIHR3by1wYXNzIGxheW91dCBvbmx5IHRvIHRob3NlCisgICAgICAgIGZsb3cgdGhyZWFk
cyB0aGF0IGhhdmUgYXV0byBoZWlnaHQgcmVnaW9ucyBhc3NvY2lhdGVkLgorICAgICAgICBUaGUg
ZmxvdyB0aHJlYWQgY29udHJvbGxlciB3aWxsIGtlZXAgYSBjb3VudCBvZiBmbG93IHRocmVhZCB3
aXRoIGF1dG8gaGVpZ2h0IHJlZ2lvbnMgaW5zdGVhZC4KKyAgICAgICAgTm8gbmV3IHRlc3RzLCBj
aGFuZ2UgaXMgY292ZXJlZCBieSBleGlzdGluZyBhdXRvIGhlaWdodCB0ZXN0cy4KKworICAgICAg
ICAqIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGbG93VGhyZWFkQ29udHJvbGxlcjo6Rmxvd1RocmVhZENvbnRyb2xsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OmxheW91dFJlbmRlck5hbWVkRmxvd1RocmVh
ZHMpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OmNoZWNrQXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zRmxhZ0NvbnNpc3RlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Rmxv
d1RocmVhZENvbnRyb2xsZXI6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6Om1hcmtBdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9GbG93VGhy
ZWFkQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6
Omhhc0Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyk6CisgICAgICAgIChX
ZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6aW5jcmVtZW50Rmxvd1RocmVhZHNXaXRoQXV0
b0xvZ2ljYWxIZWlnaHRSZWdpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250
cm9sbGVyOjpkZWNyZW1lbnRGbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmxvd1RocmVhZDo6aXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGbGFnQ29u
c2lzdGVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpyZXNldFJlZ2lv
bnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckZsb3dUaHJlYWQ6OmluaXRpYWxpemVSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjptYXJrQXV0b0xvZ2ljYWxI
ZWlnaHRSZWdpb25zRm9yTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJl
YWQ6OmluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGbG93VGhyZWFkOjpkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclJlZ2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246Omlu
Y3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
UmVnaW9uOjpkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodENvdW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclJlZ2lvbjo6dXBkYXRlUmVnaW9uSGFzQXV0b0xvZ2ljYWxIZWlnaHRGbGFnKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6YXR0YWNoUmVnaW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6ZGV0YWNoUmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6Y2hlY2tUd29QYXNzTGF5b3V0Rm9yQXV0b0hl
aWdodFJlZ2lvbnMpOgorCiAyMDEzLTAxLTIyICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBub24tRU5BQkxFKERFVEFJTFNfRUxFTUVOVCkgYnVpbGQgZmFp
bHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVy
LmNwcAppbmRleCBmODU4NjIxLi4yYWU3NzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgRmxvd1Ro
cmVhZENvbnRyb2xsZXI6OkZsb3dUaHJlYWRDb250cm9sbGVyKFJlbmRlclZpZXcqIHZpZXcpCiAg
ICAgLCBtX2N1cnJlbnRSZW5kZXJGbG93VGhyZWFkKDApCiAgICAgLCBtX2lzUmVuZGVyTmFtZWRG
bG93VGhyZWFkT3JkZXJEaXJ0eShmYWxzZSkKICAgICAsIG1fbmVlZHNUd29QYXNzTGF5b3V0Rm9y
QXV0b0hlaWdodFJlZ2lvbnMoZmFsc2UpCi0gICAgLCBtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9u
c0NvdW50KDApCisgICAgLCBtX2Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9u
cygwKQogewogfQogCkBAIC05OSw4ICs5OSw5IEBAIHZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6
OnN0eWxlRGlkQ2hhbmdlKCkKIHZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6OmxheW91dFJlbmRl
ck5hbWVkRmxvd1RocmVhZHMoKQogewogICAgIEFTU0VSVChtX3JlbmRlck5hbWVkRmxvd1RocmVh
ZExpc3QpOwotCi0gICAgQVNTRVJUKGlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRmxhZ0NvbnNp
c3RlbnQoKSk7CisjaWZuZGVmIE5ERUJVRworICAgIGNoZWNrQXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zRmxhZ0NvbnNpc3RlbnQoKTsKKyNlbmRpZgogCiAgICAgLy8gUmVtb3ZlIHRoZSBsZWZ0LW92
ZXIgZmxvdyB0aHJlYWRzLgogICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QgdG9SZW1vdmVM
aXN0OwpAQCAtMTYxLDE5ICsxNjIsMTMgQEAgdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dW5y
ZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKE5vZGUqIGNvbnRlbnROb2RlKQogfQogCiAjaWZu
ZGVmIE5ERUJVRwotYm9vbCBGbG93VGhyZWFkQ29udHJvbGxlcjo6aXNBdXRvTG9naWNhbEhlaWdo
dFJlZ2lvbnNGbGFnQ29uc2lzdGVudCgpIGNvbnN0Cit2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVy
OjpjaGVja0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZsYWdDb25zaXN0ZW50KCkgY29uc3QKIHsK
ICAgICBpZiAoIWhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSkKLSAgICAgICAgcmV0dXJuICFo
YXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKLQotICAgIC8vIENvdW50IHRoZSBudW1iZXIg
b2YgYXV0byBoZWlnaHQgcmVnaW9ucwotICAgIHVuc2lnbmVkIGF1dG9Mb2dpY2FsSGVpZ2h0UmVn
aW9ucyA9IDA7Ci0gICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRvciBp
dGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1fcmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikgewotICAgICAgICBSZW5kZXJO
YW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVyOwotICAgICAgICBhdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnMgKz0gZmxvd1JlbmRlcmVyLT5hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnND
b3VudCgpOwotICAgIH0KKyAgICAgICAgQVNTRVJUKCFoYXNGbG93VGhyZWFkc1dpdGhBdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnMoKSk7CiAKLSAgICByZXR1cm4gYXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zID09IG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7CisgICAgZm9yIChSZW5kZXJO
YW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJl
YWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5k
KCk7ICsraXRlcikKKyAgICAgICAgQVNTRVJUKCgqaXRlciktPmlzQXV0b0xvZ2ljYWxIZWlnaHRS
ZWdpb25zRmxhZ0NvbnNpc3RlbnQoKSk7CiB9CiAjZW5kaWYKIApAQCAtMTg5LDYgKzE4NCw4IEBA
IGJvb2wgRmxvd1RocmVhZENvbnRyb2xsZXI6Omhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHNOZWVk
aW5nTGF5b3V0KCkgY29uc3QKIHZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6OnJlc2V0UmVnaW9u
c092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKQogewogICAgIEFTU0VSVChtX3ZpZXctPm5v
cm1hbExheW91dFBoYXNlKCkpOworICAgIEFTU0VSVChoYXNGbG93VGhyZWFkc1dpdGhBdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnMoKSk7CisKICAgICBmb3IgKFJlbmRlck5hbWVkRmxvd1RocmVhZExp
c3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmJlZ2luKCk7
IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5lbmQoKTsgKytpdGVyKQogICAg
ICAgICAoKml0ZXIpLT5yZXNldFJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7
CiB9CkBAIC0xOTYsNiArMTkzLDggQEAgdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6cmVzZXRS
ZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCgpCiB2b2lkIEZsb3dUaHJlYWRDb250
cm9sbGVyOjptYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KCkKIHsKICAgICBB
U1NFUlQobV92aWV3LT5jb25zdHJhaW5lZEZsb3dUaHJlYWRzTGF5b3V0UGhhc2UoKSk7CisgICAg
QVNTRVJUKGhhc0Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpKTsKKwog
ICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRlck5hbWVkRmxv
d1RocmVhZExpc3QtPmVuZCgpOyArK2l0ZXIpCiAgICAgICAgICgqaXRlciktPm1hcmtBdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmgKaW5kZXggOWYwY2EzMi4uNDQ4ZTExYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmgKQEAg
LTY3LDE0ICs2NywxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3Rlck5hbWVkRmxvd0NvbnRl
bnROb2RlKE5vZGUqLCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqKTsKICAgICB2b2lkIHVucmVnaXN0
ZXJOYW1lZEZsb3dDb250ZW50Tm9kZShOb2RlKik7CiAKLSAgICBib29sIGhhc0F1dG9Mb2dpY2Fs
SGVpZ2h0UmVnaW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25z
Q291bnQ7IH0KLSAgICB2b2lkIGluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpIHsg
KyttX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50OyB9Ci0gICAgdm9pZCBkZWNyZW1lbnRB
dXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSB7IEFTU0VSVChtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVn
aW9uc0NvdW50ID4gMCk7IC0tbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsgfQorICAg
IGJvb2wgaGFzRmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkgY29uc3Qg
eyByZXR1cm4gbV9mbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnM7IH0KKyAg
ICB2b2lkIGluY3JlbWVudEZsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygp
IHsgKyttX2Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uczsgfQorICAgIHZv
aWQgZGVjcmVtZW50Rmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkgeyBB
U1NFUlQobV9mbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMgPiAwKTsgLS1t
X2Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uczsgfQogCiAgICAgYm9vbCBo
YXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzTmVlZGluZ0xheW91dCgpIGNvbnN0OwogCiAjaWZuZGVm
IE5ERUJVRwotICAgIGJvb2wgaXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGbGFnQ29uc2lzdGVu
dCgpIGNvbnN0OworICAgIHZvaWQgY2hlY2tBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGbGFnQ29u
c2lzdGVudCgpIGNvbnN0OwogI2VuZGlmCiAKICAgICB2b2lkIHJlc2V0UmVnaW9uc092ZXJyaWRl
TG9naWNhbENvbnRlbnRIZWlnaHQoKTsKQEAgLTkxLDcgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBS
ZW5kZXJGbG93VGhyZWFkKiBtX2N1cnJlbnRSZW5kZXJGbG93VGhyZWFkOwogICAgIGJvb2wgbV9p
c1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGlydHk7CiAgICAgYm9vbCBtX25lZWRzVHdvUGFz
c0xheW91dEZvckF1dG9IZWlnaHRSZWdpb25zOwotICAgIHVuc2lnbmVkIG1fYXV0b0xvZ2ljYWxI
ZWlnaHRSZWdpb25zQ291bnQ7CisgICAgdW5zaWduZWQgbV9mbG93VGhyZWFkc1dpdGhBdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnM7CiAgICAgT3duUHRyPFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q+
IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDsKICAgICAvLyBtYXBzIGEgY29udGVudCBub2Rl
IHRvIGl0cyByZW5kZXIgZmxvdyB0aHJlYWQuCiAgICAgSGFzaE1hcDxOb2RlKiwgUmVuZGVyTmFt
ZWRGbG93VGhyZWFkKj4gbV9tYXBOYW1lZEZsb3dDb250ZW50Tm9kZXM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXggNDM5NWE0Yy4uYzA0N2E5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApA
QCAtNDksNiArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBJdCBzaG91bGQgbm90IGJl
IGNvbnN0cnVjdGVkIGFzIGEgcmVuZGVyZXIgZm9yIHRoZSBEb2N1bWVudC4KIFJlbmRlckZsb3dU
aHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogUmVuZGVy
QmxvY2soZG9jdW1lbnQpCisgICAgLCBtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KDAp
CiAgICAgLCBtX3JlZ2lvbnNJbnZhbGlkYXRlZChmYWxzZSkKICAgICAsIG1fcmVnaW9uc0hhdmVV
bmlmb3JtTG9naWNhbFdpZHRoKHRydWUpCiAgICAgLCBtX3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2lj
YWxIZWlnaHQodHJ1ZSkKQEAgLTc0MCw3ICs3NDEsNyBAQCBib29sIFJlbmRlckZsb3dUaHJlYWQ6
Om9iamVjdEluRmxvd1JlZ2lvbihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVu
ZAogfQogCiAjaWZuZGVmIE5ERUJVRwotdW5zaWduZWQgUmVuZGVyRmxvd1RocmVhZDo6YXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zQ291bnQoKSBjb25zdAorYm9vbCBSZW5kZXJGbG93VGhyZWFkOjpp
c0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZsYWdDb25zaXN0ZW50KCkgY29uc3QKIHsKICAgICB1
bnNpZ25lZCBhdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMgPSAwOwogICAgIGZvciAoUmVuZGVyUmVn
aW9uTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1fcmVnaW9uTGlzdC5iZWdpbigpOyBpdGVy
ICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdGVyKSB7CkBAIC03NDksNyArNzUwLDcgQEAgdW5z
aWduZWQgUmVuZGVyRmxvd1RocmVhZDo6YXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQoKSBj
b25zdAogICAgICAgICAgICAgYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKys7CiAgICAgfQogCi0g
ICAgcmV0dXJuIGF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uczsKKyAgICByZXR1cm4gYXV0b0xvZ2lj
YWxIZWlnaHRSZWdpb25zID09IG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7CiB9CiAj
ZW5kaWYKIApAQCAtNzU4LDggKzc1OSw4IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6cmVzZXRS
ZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCgpCiAgICAgQVNTRVJUKHZpZXcoKS0+
bGF5b3V0U3RhdGUoKSk7CiAgICAgQVNTRVJUKHZpZXcoKS0+bm9ybWFsTGF5b3V0UGhhc2UoKSk7
CiAKLSAgICAvLyBGSVhNRTogb3B0aW1pemUgdGhpcyB0byBpdGVyYXRlIHRoZSByZWdpb24gY2hh
aW4gb25seSBpZiB0aGUgZmxvdyB0aHJlYWQgaGFzIGF1dG8gbG9naWNhbCBoZWlnaHQKLSAgICAv
LyByZWdpb24uCisgICAgaWYgKCFoYXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSkKKyAgICAg
ICAgcmV0dXJuOwogCiAgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0OjppdGVyYXRvciBpdGVyID0g
bV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIp
IHsKICAgICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAqaXRlcjsKQEAgLTc4Miw2ICs3ODMs
OSBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENv
bnRlbnRIZWlnaHQoKQogdm9pZCBSZW5kZXJGbG93VGhyZWFkOjppbml0aWFsaXplUmVnaW9uc092
ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbikKIHsK
ICAgICBBU1NFUlQodmlldygpLT5ub3JtYWxMYXlvdXRQaGFzZSgpKTsKKyAgICBpZiAoIWhhc0F1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpKQorICAgICAgICByZXR1cm47CisKICAgICBSZW5kZXJS
ZWdpb25MaXN0OjppdGVyYXRvciByZWdpb25JdGVyID0gc3RhcnRSZWdpb24gPyBtX3JlZ2lvbkxp
c3QuZmluZChzdGFydFJlZ2lvbikgOiBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsKICAgICBmb3IgKDsg
cmVnaW9uSXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsrcmVnaW9uSXRlcikgewogICAgICAg
ICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICpyZWdpb25JdGVyOwpAQCAtNzk1LDggKzc5OSw4IEBA
IHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0Zvckxh
eW91dCgpCiAgICAgQVNTRVJUKHZpZXcoKS0+bGF5b3V0U3RhdGUoKSk7CiAgICAgQVNTRVJUKHZp
ZXcoKS0+Y29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dFBoYXNlKCkpOwogCi0gICAgLy8gRklY
TUU6IG9wdGltaXplIHRoaXMgdG8gaXRlcmF0ZSB0aGUgcmVnaW9uIGNoYWluIG9ubHkgaWYgdGhl
IGZsb3cgdGhyZWFkIGhhcyBhdXRvIGxvZ2ljYWwgaGVpZ2h0Ci0gICAgLy8gcmVnaW9uLgorICAg
IGlmICghaGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpCisgICAgICAgIHJldHVybjsKIAog
ICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVnaW9uTGlzdC5i
ZWdpbigpOyBpdGVyICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdGVyKSB7CiAgICAgICAgIFJl
bmRlclJlZ2lvbiogcmVnaW9uID0gKml0ZXI7CkBAIC05MTIsNiArOTE2LDIxIEBAIGJvb2wgUmVu
ZGVyRmxvd1RocmVhZDo6YWRkRm9yY2VkUmVnaW9uQnJlYWsoTGF5b3V0VW5pdCBvZmZzZXRCcmVh
a0luRmxvd1RocmVhZCwKICAgICByZXR1cm4gb3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodENv
bXB1dGVkOwogfQogCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmluY3JlbWVudEF1dG9Mb2dpY2Fs
SGVpZ2h0UmVnaW9ucygpCit7CisgICAgaWYgKCFtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0Nv
dW50KQorICAgICAgICB2aWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVyKCktPmluY3JlbWVudEZs
b3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpOworICAgICsrbV9hdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnNDb3VudDsKK30KKwordm9pZCBSZW5kZXJGbG93VGhyZWFkOjpkZWNy
ZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKQoreworICAgIEFTU0VSVChtX2F1dG9Mb2dp
Y2FsSGVpZ2h0UmVnaW9uc0NvdW50ID4gMCk7CisgICAgLS1tX2F1dG9Mb2dpY2FsSGVpZ2h0UmVn
aW9uc0NvdW50OworICAgIGlmICghbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCkKKyAg
ICAgICAgdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5kZWNyZW1lbnRGbG93VGhyZWFk
c1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKK30KKwogQ3VycmVudFJlbmRlckZsb3dU
aHJlYWRNYWludGFpbmVyOjpDdXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWluZXIoUmVuZGVy
Rmxvd1RocmVhZCogcmVuZGVyRmxvd1RocmVhZCkKICAgICA6IG1fcmVuZGVyRmxvd1RocmVhZChy
ZW5kZXJGbG93VGhyZWFkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93
VGhyZWFkLmgKaW5kZXggNmFkMGVhOC4uZTkxYjA5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCkBAIC0xMzUsOCArMTM1LDEyIEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9wYWdl
TG9naWNhbEhlaWdodENoYW5nZWQ7IH0KIAorICAgIGJvb2wgaGFzQXV0b0xvZ2ljYWxIZWlnaHRS
ZWdpb25zKCkgY29uc3QgeyByZXR1cm4gbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsg
fQorICAgIHZvaWQgaW5jcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7CisgICAgdm9p
ZCBkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKKwogI2lmbmRlZiBOREVCVUcK
LSAgICB1bnNpZ25lZCBhdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCgpIGNvbnN0OworICAg
IGJvb2wgaXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGbGFnQ29uc2lzdGVudCgpIGNvbnN0Owog
I2VuZGlmCiAKIHByb3RlY3RlZDoKQEAgLTE5Miw2ICsxOTYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
UmVuZGVyT2JqZWN0VG9SZWdpb25NYXAgbV9icmVha0JlZm9yZVRvUmVnaW9uTWFwOwogICAgIFJl
bmRlck9iamVjdFRvUmVnaW9uTWFwIG1fYnJlYWtBZnRlclRvUmVnaW9uTWFwOwogCisgICAgdW5z
aWduZWQgbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsKKwogICAgIGJvb2wgbV9yZWdp
b25zSW52YWxpZGF0ZWQgOiAxOwogICAgIGJvb2wgbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2Fs
V2lkdGggOiAxOwogICAgIGJvb2wgbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsSGVpZ2h0IDog
MTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKaW5kZXggOWZjMWY0
MS4uOTYzMTU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
Z2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAK
QEAgLTE4NSw2ICsxODUsMjMgQEAgdm9pZCBSZW5kZXJSZWdpb246OmNoZWNrUmVnaW9uU3R5bGUo
KQogICAgIG1fZmxvd1RocmVhZC0+Y2hlY2tSZWdpb25zV2l0aFN0eWxpbmcoKTsKIH0KIAordm9p
ZCBSZW5kZXJSZWdpb246OmluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0Q291bnQoKQoreworICAg
IEFTU0VSVChtX2Zsb3dUaHJlYWQpOworICAgIEFTU0VSVChpc1ZhbGlkKCkpOworICAgIEFTU0VS
VChtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0KTsKKworICAgIG1fZmxvd1RocmVhZC0+aW5jcmVtZW50
QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7Cit9CisKK3ZvaWQgUmVuZGVyUmVnaW9uOjpkZWNy
ZW1lbnRBdXRvTG9naWNhbEhlaWdodENvdW50KCkKK3sKKyAgICBBU1NFUlQobV9mbG93VGhyZWFk
KTsKKyAgICBBU1NFUlQoaXNWYWxpZCgpKTsKKworICAgIG1fZmxvd1RocmVhZC0+ZGVjcmVtZW50
QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7Cit9CisKIHZvaWQgUmVuZGVyUmVnaW9uOjp1cGRh
dGVSZWdpb25IYXNBdXRvTG9naWNhbEhlaWdodEZsYWcoKQogewogICAgIEFTU0VSVChtX2Zsb3dU
aHJlYWQpOwpAQCAtMTk2LDEwICsyMTMsMTAgQEAgdm9pZCBSZW5kZXJSZWdpb246OnVwZGF0ZVJl
Z2lvbkhhc0F1dG9Mb2dpY2FsSGVpZ2h0RmxhZygpCiAgICAgbV9oYXNBdXRvTG9naWNhbEhlaWdo
dCA9IHNob3VsZEhhdmVBdXRvTG9naWNhbEhlaWdodCgpOwogICAgIGlmIChtX2hhc0F1dG9Mb2dp
Y2FsSGVpZ2h0ICE9IGRpZEhhdmVBdXRvTG9naWNhbEhlaWdodCkgewogICAgICAgICBpZiAobV9o
YXNBdXRvTG9naWNhbEhlaWdodCkKLSAgICAgICAgICAgIHZpZXcoKS0+Zmxvd1RocmVhZENvbnRy
b2xsZXIoKS0+aW5jcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7CisgICAgICAgICAg
ICBpbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdodENvdW50KCk7CiAgICAgICAgIGVsc2UgewogICAg
ICAgICAgICAgY2xlYXJPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7Ci0gICAgICAgICAg
ICB2aWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVyKCktPmRlY3JlbWVudEF1dG9Mb2dpY2FsSGVp
Z2h0UmVnaW9ucygpOworICAgICAgICAgICAgZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRDb3Vu
dCgpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMzI5LDE3ICszNDYsMTUgQEAgdm9pZCBSZW5k
ZXJSZWdpb246OmF0dGFjaFJlZ2lvbigpCiAKICAgICBtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0ID0g
c2hvdWxkSGF2ZUF1dG9Mb2dpY2FsSGVpZ2h0KCk7CiAgICAgaWYgKGhhc0F1dG9Mb2dpY2FsSGVp
Z2h0KCkpCi0gICAgICAgIHZpZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+aW5jcmVtZW50
QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7CisgICAgICAgIGluY3JlbWVudEF1dG9Mb2dpY2Fs
SGVpZ2h0Q291bnQoKTsKIH0KIAogdm9pZCBSZW5kZXJSZWdpb246OmRldGFjaFJlZ2lvbigpCiB7
CiAgICAgaWYgKG1fZmxvd1RocmVhZCkgewogICAgICAgICBtX2Zsb3dUaHJlYWQtPnJlbW92ZVJl
Z2lvbkZyb21UaHJlYWQodGhpcyk7Ci0gICAgICAgIGlmIChoYXNBdXRvTG9naWNhbEhlaWdodCgp
KSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNWYWxpZCgpKTsKLSAgICAgICAgICAgIHZpZXcoKS0+
Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+ZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25z
KCk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkpCisgICAg
ICAgICAgICBkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodENvdW50KCk7CiAgICAgfQogICAgIG1f
Zmxvd1RocmVhZCA9IDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgK
aW5kZXggYTFmZTg3Yy4uNjdmOGNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZWdpb24uaApAQCAtMTY4LDYgKzE2OCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGVja1JlZ2lv
blN0eWxlKCk7CiAgICAgdm9pZCB1cGRhdGVSZWdpb25IYXNBdXRvTG9naWNhbEhlaWdodEZsYWco
KTsKIAorICAgIHZvaWQgaW5jcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRDb3VudCgpOworICAgIHZv
aWQgZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRDb3VudCgpOworCiBwcm90ZWN0ZWQ6CiAgICAg
UmVuZGVyRmxvd1RocmVhZCogbV9mbG93VGhyZWFkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAKaW5kZXggMWZkOWZlZC4uNjA5NzY3MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAgYm9vbCBSZW5kZXJW
aWV3OjpoYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCkgY29uc3QKIAogYm9vbCBSZW5kZXJWaWV3
OjpjaGVja1R3b1Bhc3NMYXlvdXRGb3JBdXRvSGVpZ2h0UmVnaW9ucygpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIGhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSAmJiBtX2Zsb3dUaHJlYWRDb250cm9s
bGVyLT5oYXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKKyAgICByZXR1cm4gaGFzUmVuZGVy
TmFtZWRGbG93VGhyZWFkcygpICYmIG1fZmxvd1RocmVhZENvbnRyb2xsZXItPmhhc0Zsb3dUaHJl
YWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpOwogfQogCiBGbG93VGhyZWFkQ29udHJv
bGxlciogUmVuZGVyVmlldzo6Zmxvd1RocmVhZENvbnRyb2xsZXIoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184439</attachid>
            <date>2013-01-24 01:44:57 -0800</date>
            <delta_ts>2013-01-24 23:16:04 -0800</delta_ts>
            <desc>Patch 3</desc>
            <filename>105185-3.patch</filename>
            <type>text/plain</type>
            <size>16201</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2OWM0MGMzLi42MjM2OTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDgg
QEAKKzIwMTMtMDEtMjQgIE1paG5lYSBPdmlkZW5pZSAgPG1paG5lYUBhZG9iZS5jb20+CisKKyAg
ICAgICAgW0NTU1JlZ2lvbnNdIFJlbmRlckZsb3dUaHJlYWQgc2hvdWxkIGtlZXAgYSBjb3VudCBv
ZiBhdXRvIGhlaWdodCByZWdpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDUxODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBLZWVwIHRoZSBjb3VudCBvZiBhdXRvIGhlaWdodCByZWdpb25zIG9uIHRo
ZSBmbG93IHRocmVhZCBpbnN0ZWFkIG9mIGZsb3cgdGhyZWFkIGNvbnRyb2xsZXIuCisgICAgICAg
IFRoaXMgd2F5LCB3ZSBjYW4gc3RyZWFtbGluZSB0aGUgb3BlcmF0aW9ucyBhc3NvY2lhdGVkIHdp
dGggdGhlIHR3by1wYXNzIGxheW91dCBvbmx5IHRvIHRob3NlCisgICAgICAgIGZsb3cgdGhyZWFk
cyB0aGF0IGhhdmUgYXV0byBoZWlnaHQgcmVnaW9ucyBhc3NvY2lhdGVkLgorICAgICAgICBUaGUg
ZmxvdyB0aHJlYWQgY29udHJvbGxlciB3aWxsIGtlZXAgYSBjb3VudCBvZiBmbG93IHRocmVhZCB3
aXRoIGF1dG8gaGVpZ2h0IHJlZ2lvbnMgaW5zdGVhZC4KKyAgICAgICAgVGhpcyBpcyBhIHBlcmZv
cm1hbmNlIHJlZmFjdG9yaW5nIHdpdGhvdXQgYW4gZXhwZWN0ZWQgY2hhbmdlIGluIGJlaGF2aW9y
LCB0aGVyZWZvcmUgbm8gbmV3IHRlc3RzIHdlcmUgYWRkZWQuCisKKyAgICAgICAgKiByZW5kZXJp
bmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwOiBLZWVwIGEgY291bnQgb2YgZmxvdyB0aHJlYWRz
IHdpdGggYXV0byBsb2dpY2FsIGhlaWdodCByZWdpb25zLgorICAgICAgICAoV2ViQ29yZTo6Rmxv
d1RocmVhZENvbnRyb2xsZXI6OkZsb3dUaHJlYWRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKTog
Q2hlY2sgdGhlIGNvdW50IG9mIGF1dG8gaGVpZ2h0IHJlZ2lvbnMgZm9yIGFsbCB0aGUgZmxvdyB0
aHJlYWRzLgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OmlzQXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zQ291bnRDb25zaXN0ZW50KToKKyAgICAgICAgTWFrZSBzdXJlIHRo
YXQgd2UgY2FsbCB0aGVzZSBtZXRob2RzIG9ubHkgd2hlbiB3ZSBoYXZlIGF1dG8gbG9naWNhbCBo
ZWlnaHQgcmVnaW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpy
ZXNldFJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjptYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9y
TGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpoYXNGbG93VGhyZWFkc1dpdGhB
dXRvTG9naWNhbEhlaWdodFJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENv
bnRyb2xsZXI6OmluY3JlbWVudEZsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9u
cyk6CisgICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6ZGVjcmVtZW50Rmxv
d1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6IEtlZXAgYSBjb3VudCBvZiBhdXRvIGxvZ2ljYWwgaGVp
Z2h0IHJlZ2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJG
bG93VGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmlzQXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zQ291bnRDb25zaXN0ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckZsb3dUaHJlYWQ6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQp
OiBJdGVyYXRlIHRoZSByZWdpb24gY2hhaW4gb25seSBpZiB0aGUgcmVnaW9uIGNoYWluIGhhcyBh
dXRvIGhlaWdodCByZWdpb25zLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6
aW5pdGlhbGl6ZVJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjptYXJrQXV0b0xvZ2ljYWxIZWlnaHRS
ZWdpb25zRm9yTGF5b3V0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhy
ZWFkOjppbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRmxvd1RocmVhZDo6ZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJSZWdpb24uY3BwOiBBZGQgaW5jcmVtZW50L2RlY3JlbWVudEF1dG9Mb2dpY2Fs
SGVpZ2h0Q291bnQgdG8gaW5jcmVhc2UvZGVjcmVhc2UKKyAgICAgICAgdGhlIGNvdW50ZXIgaW5z
aWRlIHRoZSBmbG93IHRocmVhZCBhbmQgdXNlIHRoZW0gdGhyb3VnaG91dCB0aGUgY29kZSBhcyBu
ZWVkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OmluY3JlbWVudEF1dG9Mb2dp
Y2FsSGVpZ2h0Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpkZWNyZW1l
bnRBdXRvTG9naWNhbEhlaWdodENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lv
bjo6dXBkYXRlUmVnaW9uSGFzQXV0b0xvZ2ljYWxIZWlnaHRGbGFnKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclJlZ2lvbjo6YXR0YWNoUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clJlZ2lvbjo6ZGV0YWNoUmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9u
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6Y2hlY2tUd29QYXNzTGF5b3V0Rm9yQXV0b0hlaWdodFJlZ2lvbnMpOiBV
c2UgdGhlIGNvdW50IG9mIGZsb3cgdGhyZWFkcyB3aXRoIGF1dG8gaGVpZ2h0IHJlZ2lvbnMKKyAg
ICAgICAgaW5zdGVhZCBvZiB0aGUgY291bnQgb2YgYXV0byBoZWlnaHQgcmVnaW9ucyB3aGVuIGRl
Y2lkaW5nIHdoZXRoZXIgd2Ugc2hvdWxkIGF0dGVtcHQgdGhlIDIgcGFzcyBsYXlvdXQgZm9yIGF1
dG8gaGVpZ2h0IHJlZ2lvbnMuCisKIDIwMTMtMDEtMjMgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBmb3JtLXJlbGF0ZWQgaW5zdHJ1bWVudGF0aW9ucywg
YW5kIHN1cHBvcnQgMzMrIGZlYXR1cmVzIGluIEZlYXR1cmVPYnNlcnZlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKaW5kZXggZjg1ODYy
MS4uZjBiMjMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJl
YWRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVh
ZENvbnRyb2xsZXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIEZsb3dUaHJlYWRDb250cm9sbGVyOjpG
bG93VGhyZWFkQ29udHJvbGxlcihSZW5kZXJWaWV3KiB2aWV3KQogICAgICwgbV9jdXJyZW50UmVu
ZGVyRmxvd1RocmVhZCgwKQogICAgICwgbV9pc1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGly
dHkoZmFsc2UpCiAgICAgLCBtX25lZWRzVHdvUGFzc0xheW91dEZvckF1dG9IZWlnaHRSZWdpb25z
KGZhbHNlKQotICAgICwgbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCgwKQorICAgICwg
bV9mbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoMCkKIHsKIH0KIApAQCAt
OTksOCArOTksNyBAQCB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjpzdHlsZURpZENoYW5nZSgp
CiB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjpsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRz
KCkKIHsKICAgICBBU1NFUlQobV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0KTsKLQotICAgIEFT
U0VSVChpc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZsYWdDb25zaXN0ZW50KCkpOworICAgIEFT
U0VSVChpc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50Q29uc2lzdGVudCgpKTsKIAogICAg
IC8vIFJlbW92ZSB0aGUgbGVmdC1vdmVyIGZsb3cgdGhyZWFkcy4KICAgICBSZW5kZXJOYW1lZEZs
b3dUaHJlYWRMaXN0IHRvUmVtb3ZlTGlzdDsKQEAgLTE2MSwxOSArMTYwLDE3IEBAIHZvaWQgRmxv
d1RocmVhZENvbnRyb2xsZXI6OnVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50Tm9kZShOb2RlKiBj
b250ZW50Tm9kZSkKIH0KIAogI2lmbmRlZiBOREVCVUcKLWJvb2wgRmxvd1RocmVhZENvbnRyb2xs
ZXI6OmlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRmxhZ0NvbnNpc3RlbnQoKSBjb25zdAorYm9v
bCBGbG93VGhyZWFkQ29udHJvbGxlcjo6aXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudENv
bnNpc3RlbnQoKSBjb25zdAogewogICAgIGlmICghaGFzUmVuZGVyTmFtZWRGbG93VGhyZWFkcygp
KQotICAgICAgICByZXR1cm4gIWhhc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpOworICAgICAg
ICByZXR1cm4gIWhhc0Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpOwog
Ci0gICAgLy8gQ291bnQgdGhlIG51bWJlciBvZiBhdXRvIGhlaWdodCByZWdpb25zCi0gICAgdW5z
aWduZWQgYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zID0gMDsKICAgICBmb3IgKFJlbmRlck5hbWVk
Rmxvd1RocmVhZExpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExp
c3QtPmJlZ2luKCk7IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5lbmQoKTsg
KytpdGVyKSB7Ci0gICAgICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCogZmxvd1JlbmRlcmVyID0g
Kml0ZXI7Ci0gICAgICAgIGF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyArPSBmbG93UmVuZGVyZXIt
PmF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KCk7CisgICAgICAgIGlmICghKCppdGVyKS0+
aXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudENvbnNpc3RlbnQoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICByZXR1cm4gYXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zID09IG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7CisgICAgcmV0dXJuIHRydWU7
CiB9CiAjZW5kaWYKIApAQCAtMTg5LDYgKzE4Niw4IEBAIGJvb2wgRmxvd1RocmVhZENvbnRyb2xs
ZXI6Omhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHNOZWVkaW5nTGF5b3V0KCkgY29uc3QKIHZvaWQg
Rmxvd1RocmVhZENvbnRyb2xsZXI6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRI
ZWlnaHQoKQogewogICAgIEFTU0VSVChtX3ZpZXctPm5vcm1hbExheW91dFBoYXNlKCkpOworICAg
IEFTU0VSVChoYXNGbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSk7CisK
ICAgICBmb3IgKFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3Jl
bmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmJlZ2luKCk7IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZs
b3dUaHJlYWRMaXN0LT5lbmQoKTsgKytpdGVyKQogICAgICAgICAoKml0ZXIpLT5yZXNldFJlZ2lv
bnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7CiB9CkBAIC0xOTYsNiArMTk1LDggQEAg
dm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6cmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29u
dGVudEhlaWdodCgpCiB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjptYXJrQXV0b0xvZ2ljYWxI
ZWlnaHRSZWdpb25zRm9yTGF5b3V0KCkKIHsKICAgICBBU1NFUlQobV92aWV3LT5jb25zdHJhaW5l
ZEZsb3dUaHJlYWRzTGF5b3V0UGhhc2UoKSk7CisgICAgQVNTRVJUKGhhc0Zsb3dUaHJlYWRzV2l0
aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpKTsKKwogICAgIGZvciAoUmVuZGVyTmFtZWRGbG93
VGhyZWFkTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+
YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmVuZCgpOyArK2l0
ZXIpCiAgICAgICAgICgqaXRlciktPm1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlv
dXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFk
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9s
bGVyLmgKaW5kZXggOWYwY2EzMi4uMjQyODEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmgKQEAgLTY3LDE0ICs2NywxNCBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKE5vZGUqLCBSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQqKTsKICAgICB2b2lkIHVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50Tm9kZShO
b2RlKik7CiAKLSAgICBib29sIGhhc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpIGNvbnN0IHsg
cmV0dXJuIG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7IH0KLSAgICB2b2lkIGluY3Jl
bWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpIHsgKyttX2F1dG9Mb2dpY2FsSGVpZ2h0UmVn
aW9uc0NvdW50OyB9Ci0gICAgdm9pZCBkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMo
KSB7IEFTU0VSVChtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50ID4gMCk7IC0tbV9hdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsgfQorICAgIGJvb2wgaGFzRmxvd1RocmVhZHNXaXRo
QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkgY29uc3QgeyByZXR1cm4gbV9mbG93VGhyZWFkc1dp
dGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnM7IH0KKyAgICB2b2lkIGluY3JlbWVudEZsb3dUaHJl
YWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpIHsgKyttX2Zsb3dUaHJlYWRzV2l0aEF1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uczsgfQorICAgIHZvaWQgZGVjcmVtZW50Rmxvd1RocmVhZHNX
aXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkgeyBBU1NFUlQobV9mbG93VGhyZWFkc1dpdGhB
dXRvTG9naWNhbEhlaWdodFJlZ2lvbnMgPiAwKTsgLS1tX2Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dp
Y2FsSGVpZ2h0UmVnaW9uczsgfQogCiAgICAgYm9vbCBoYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRz
TmVlZGluZ0xheW91dCgpIGNvbnN0OwogCiAjaWZuZGVmIE5ERUJVRwotICAgIGJvb2wgaXNBdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNGbGFnQ29uc2lzdGVudCgpIGNvbnN0OworICAgIGJvb2wgaXNB
dXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudENvbnNpc3RlbnQoKSBjb25zdDsKICNlbmRpZgog
CiAgICAgdm9pZCByZXNldFJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7CkBA
IC05MSw3ICs5MSw3IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyRmxvd1RocmVhZCogbV9jdXJyZW50
UmVuZGVyRmxvd1RocmVhZDsKICAgICBib29sIG1faXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRl
ckRpcnR5OwogICAgIGJvb2wgbV9uZWVkc1R3b1Bhc3NMYXlvdXRGb3JBdXRvSGVpZ2h0UmVnaW9u
czsKLSAgICB1bnNpZ25lZCBtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50OworICAgIHVu
c2lnbmVkIG1fZmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zOwogICAgIE93
blB0cjxSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0PiBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExp
c3Q7CiAgICAgLy8gbWFwcyBhIGNvbnRlbnQgbm9kZSB0byBpdHMgcmVuZGVyIGZsb3cgdGhyZWFk
LgogICAgIEhhc2hNYXA8Tm9kZSosIFJlbmRlck5hbWVkRmxvd1RocmVhZCo+IG1fbWFwTmFtZWRG
bG93Q29udGVudE5vZGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dU
aHJlYWQuY3BwCmluZGV4IDQzOTVhNGMuLjMwNWIyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogLy8gSXQgc2hvdWxkIG5vdCBiZSBjb25zdHJ1Y3RlZCBhcyBhIHJlbmRlcmVy
IGZvciB0aGUgRG9jdW1lbnQuCiBSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKERv
Y3VtZW50KiBkb2N1bWVudCkKICAgICA6IFJlbmRlckJsb2NrKGRvY3VtZW50KQorICAgICwgbV9h
dXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCgwKQogICAgICwgbV9yZWdpb25zSW52YWxpZGF0
ZWQoZmFsc2UpCiAgICAgLCBtX3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxXaWR0aCh0cnVlKQog
ICAgICwgbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2FsSGVpZ2h0KHRydWUpCkBAIC03NDAsNyAr
NzQxLDcgQEAgYm9vbCBSZW5kZXJGbG93VGhyZWFkOjpvYmplY3RJbkZsb3dSZWdpb24oY29uc3Qg
UmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJlbmQKIH0KIAogI2lmbmRlZiBOREVCVUcKLXVu
c2lnbmVkIFJlbmRlckZsb3dUaHJlYWQ6OmF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KCkg
Y29uc3QKK2Jvb2wgUmVuZGVyRmxvd1RocmVhZDo6aXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnND
b3VudENvbnNpc3RlbnQoKSBjb25zdAogewogICAgIHVuc2lnbmVkIGF1dG9Mb2dpY2FsSGVpZ2h0
UmVnaW9ucyA9IDA7CiAgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0Ojpjb25zdF9pdGVyYXRvciBp
dGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyAr
K2l0ZXIpIHsKQEAgLTc0OSw3ICs3NTAsNyBAQCB1bnNpZ25lZCBSZW5kZXJGbG93VGhyZWFkOjph
dXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCgpIGNvbnN0CiAgICAgICAgICAgICBhdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnMrKzsKICAgICB9CiAKLSAgICByZXR1cm4gYXV0b0xvZ2ljYWxIZWln
aHRSZWdpb25zOworICAgIHJldHVybiBhdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMgPT0gbV9hdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsKIH0KICNlbmRpZgogCkBAIC03NTgsOCArNzU5LDgg
QEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpyZXNldFJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxDb250
ZW50SGVpZ2h0KCkKICAgICBBU1NFUlQodmlldygpLT5sYXlvdXRTdGF0ZSgpKTsKICAgICBBU1NF
UlQodmlldygpLT5ub3JtYWxMYXlvdXRQaGFzZSgpKTsKIAotICAgIC8vIEZJWE1FOiBvcHRpbWl6
ZSB0aGlzIHRvIGl0ZXJhdGUgdGhlIHJlZ2lvbiBjaGFpbiBvbmx5IGlmIHRoZSBmbG93IHRocmVh
ZCBoYXMgYXV0byBsb2dpY2FsIGhlaWdodAotICAgIC8vIHJlZ2lvbi4KKyAgICBpZiAoIWhhc0F1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpKQorICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKFJl
bmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRl
ciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgewogICAgICAgICBSZW5kZXJSZWdpb24q
IHJlZ2lvbiA9ICppdGVyOwpAQCAtNzgyLDYgKzc4Myw5IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVh
ZDo6cmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCgpCiB2b2lkIFJlbmRl
ckZsb3dUaHJlYWQ6OmluaXRpYWxpemVSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdo
dChSZW5kZXJSZWdpb24qIHN0YXJ0UmVnaW9uKQogewogICAgIEFTU0VSVCh2aWV3KCktPm5vcm1h
bExheW91dFBoYXNlKCkpOworICAgIGlmICghaGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkp
CisgICAgICAgIHJldHVybjsKKwogICAgIFJlbmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIHJlZ2lv
bkl0ZXIgPSBzdGFydFJlZ2lvbiA/IG1fcmVnaW9uTGlzdC5maW5kKHN0YXJ0UmVnaW9uKSA6IG1f
cmVnaW9uTGlzdC5iZWdpbigpOwogICAgIGZvciAoOyByZWdpb25JdGVyICE9IG1fcmVnaW9uTGlz
dC5lbmQoKTsgKytyZWdpb25JdGVyKSB7CiAgICAgICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0g
KnJlZ2lvbkl0ZXI7CkBAIC03OTUsOCArNzk5LDggQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpt
YXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KCkKICAgICBBU1NFUlQodmlldygp
LT5sYXlvdXRTdGF0ZSgpKTsKICAgICBBU1NFUlQodmlldygpLT5jb25zdHJhaW5lZEZsb3dUaHJl
YWRzTGF5b3V0UGhhc2UoKSk7CiAKLSAgICAvLyBGSVhNRTogb3B0aW1pemUgdGhpcyB0byBpdGVy
YXRlIHRoZSByZWdpb24gY2hhaW4gb25seSBpZiB0aGUgZmxvdyB0aHJlYWQgaGFzIGF1dG8gbG9n
aWNhbCBoZWlnaHQKLSAgICAvLyByZWdpb24uCisgICAgaWYgKCFoYXNBdXRvTG9naWNhbEhlaWdo
dFJlZ2lvbnMoKSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0
OjppdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25M
aXN0LmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAqaXRl
cjsKQEAgLTkxMiw2ICs5MTYsMjEgQEAgYm9vbCBSZW5kZXJGbG93VGhyZWFkOjphZGRGb3JjZWRS
ZWdpb25CcmVhayhMYXlvdXRVbml0IG9mZnNldEJyZWFrSW5GbG93VGhyZWFkLAogICAgIHJldHVy
biBvdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0Q29tcHV0ZWQ7CiB9CiAKK3ZvaWQgUmVuZGVy
Rmxvd1RocmVhZDo6aW5jcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkKK3sKKyAgICBp
ZiAoIW1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQpCisgICAgICAgIHZpZXcoKS0+Zmxv
d1RocmVhZENvbnRyb2xsZXIoKS0+aW5jcmVtZW50Rmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxI
ZWlnaHRSZWdpb25zKCk7CisgICAgKyttX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50Owor
fQorCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmRlY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVn
aW9ucygpCit7CisgICAgQVNTRVJUKG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQgPiAw
KTsKKyAgICAtLW1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7CisgICAgaWYgKCFtX2F1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KQorICAgICAgICB2aWV3KCktPmZsb3dUaHJlYWRD
b250cm9sbGVyKCktPmRlY3JlbWVudEZsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVn
aW9ucygpOworfQorCiBDdXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWluZXI6OkN1cnJlbnRS
ZW5kZXJGbG93VGhyZWFkTWFpbnRhaW5lcihSZW5kZXJGbG93VGhyZWFkKiByZW5kZXJGbG93VGhy
ZWFkKQogICAgIDogbV9yZW5kZXJGbG93VGhyZWFkKHJlbmRlckZsb3dUaHJlYWQpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAppbmRleCBjNjViN2RhLi4z
MWQ3Njk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgK
QEAgLTEzNSw4ICsxMzUsMTIgQEAgcHVibGljOgogCiAgICAgYm9vbCBwYWdlTG9naWNhbEhlaWdo
dENoYW5nZWQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZDsgfQog
CisgICAgYm9vbCBoYXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSBjb25zdCB7IEFTU0VSVChp
c0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50Q29uc2lzdGVudCgpKTsgcmV0dXJuIG1fYXV0
b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7IH0KKyAgICB2b2lkIGluY3JlbWVudEF1dG9Mb2dp
Y2FsSGVpZ2h0UmVnaW9ucygpOworICAgIHZvaWQgZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRS
ZWdpb25zKCk7CisKICNpZm5kZWYgTkRFQlVHCi0gICAgdW5zaWduZWQgYXV0b0xvZ2ljYWxIZWln
aHRSZWdpb25zQ291bnQoKSBjb25zdDsKKyAgICBib29sIGlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zQ291bnRDb25zaXN0ZW50KCkgY29uc3Q7CiAjZW5kaWYKIAogcHJvdGVjdGVkOgpAQCAtMTky
LDYgKzE5Niw4IEBAIHByb3RlY3RlZDoKICAgICBSZW5kZXJPYmplY3RUb1JlZ2lvbk1hcCBtX2Jy
ZWFrQmVmb3JlVG9SZWdpb25NYXA7CiAgICAgUmVuZGVyT2JqZWN0VG9SZWdpb25NYXAgbV9icmVh
a0FmdGVyVG9SZWdpb25NYXA7CiAKKyAgICB1bnNpZ25lZCBtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVn
aW9uc0NvdW50OworCiAgICAgYm9vbCBtX3JlZ2lvbnNJbnZhbGlkYXRlZCA6IDE7CiAgICAgYm9v
bCBtX3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxXaWR0aCA6IDE7CiAgICAgYm9vbCBtX3JlZ2lv
bnNIYXZlVW5pZm9ybUxvZ2ljYWxIZWlnaHQgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVnaW9uLmNwcAppbmRleCA5ZmMxZjQxLi45NjMxNTZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcApAQCAtMTg1LDYgKzE4NSwyMyBAQCB2b2lkIFJl
bmRlclJlZ2lvbjo6Y2hlY2tSZWdpb25TdHlsZSgpCiAgICAgbV9mbG93VGhyZWFkLT5jaGVja1Jl
Z2lvbnNXaXRoU3R5bGluZygpOwogfQogCit2b2lkIFJlbmRlclJlZ2lvbjo6aW5jcmVtZW50QXV0
b0xvZ2ljYWxIZWlnaHRDb3VudCgpCit7CisgICAgQVNTRVJUKG1fZmxvd1RocmVhZCk7CisgICAg
QVNTRVJUKGlzVmFsaWQoKSk7CisgICAgQVNTRVJUKG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQpOwor
CisgICAgbV9mbG93VGhyZWFkLT5pbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsK
K30KKwordm9pZCBSZW5kZXJSZWdpb246OmRlY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0Q291bnQo
KQoreworICAgIEFTU0VSVChtX2Zsb3dUaHJlYWQpOworICAgIEFTU0VSVChpc1ZhbGlkKCkpOwor
CisgICAgbV9mbG93VGhyZWFkLT5kZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsK
K30KKwogdm9pZCBSZW5kZXJSZWdpb246OnVwZGF0ZVJlZ2lvbkhhc0F1dG9Mb2dpY2FsSGVpZ2h0
RmxhZygpCiB7CiAgICAgQVNTRVJUKG1fZmxvd1RocmVhZCk7CkBAIC0xOTYsMTAgKzIxMywxMCBA
QCB2b2lkIFJlbmRlclJlZ2lvbjo6dXBkYXRlUmVnaW9uSGFzQXV0b0xvZ2ljYWxIZWlnaHRGbGFn
KCkKICAgICBtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0ID0gc2hvdWxkSGF2ZUF1dG9Mb2dpY2FsSGVp
Z2h0KCk7CiAgICAgaWYgKG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQgIT0gZGlkSGF2ZUF1dG9Mb2dp
Y2FsSGVpZ2h0KSB7CiAgICAgICAgIGlmIChtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0KQotICAgICAg
ICAgICAgdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5pbmNyZW1lbnRBdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnMoKTsKKyAgICAgICAgICAgIGluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0
Q291bnQoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBjbGVhck92ZXJyaWRlTG9naWNh
bENvbnRlbnRIZWlnaHQoKTsKLSAgICAgICAgICAgIHZpZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xs
ZXIoKS0+ZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7CisgICAgICAgICAgICBk
ZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodENvdW50KCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBA
IC0zMjksMTcgKzM0NiwxNSBAQCB2b2lkIFJlbmRlclJlZ2lvbjo6YXR0YWNoUmVnaW9uKCkKIAog
ICAgIG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQgPSBzaG91bGRIYXZlQXV0b0xvZ2ljYWxIZWlnaHQo
KTsKICAgICBpZiAoaGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSkKLSAgICAgICAgdmlldygpLT5mbG93
VGhyZWFkQ29udHJvbGxlcigpLT5pbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsK
KyAgICAgICAgaW5jcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRDb3VudCgpOwogfQogCiB2b2lkIFJl
bmRlclJlZ2lvbjo6ZGV0YWNoUmVnaW9uKCkKIHsKICAgICBpZiAobV9mbG93VGhyZWFkKSB7CiAg
ICAgICAgIG1fZmxvd1RocmVhZC0+cmVtb3ZlUmVnaW9uRnJvbVRocmVhZCh0aGlzKTsKLSAgICAg
ICAgaWYgKGhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkpIHsKLSAgICAgICAgICAgIEFTU0VSVChpc1Zh
bGlkKCkpOwotICAgICAgICAgICAgdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5kZWNy
ZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKLSAgICAgICAgfQorICAgICAgICBpZiAo
aGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSkKKyAgICAgICAgICAgIGRlY3JlbWVudEF1dG9Mb2dpY2Fs
SGVpZ2h0Q291bnQoKTsKICAgICB9CiAgICAgbV9mbG93VGhyZWFkID0gMDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAppbmRleCBkOWVmNDVmLi4yNDIxZGM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCkBAIC0xNjgsNiArMTY4LDkgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNoZWNrUmVnaW9uU3R5bGUoKTsKICAgICB2b2lkIHVwZGF0ZVJl
Z2lvbkhhc0F1dG9Mb2dpY2FsSGVpZ2h0RmxhZygpOwogCisgICAgdm9pZCBpbmNyZW1lbnRBdXRv
TG9naWNhbEhlaWdodENvdW50KCk7CisgICAgdm9pZCBkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdo
dENvdW50KCk7CisKIHByb3RlY3RlZDoKICAgICBSZW5kZXJGbG93VGhyZWFkKiBtX2Zsb3dUaHJl
YWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAxZmQ5ZmVk
Li42MDk3NjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC0x
MDQ3LDcgKzEwNDcsNyBAQCBib29sIFJlbmRlclZpZXc6Omhhc1JlbmRlck5hbWVkRmxvd1RocmVh
ZHMoKSBjb25zdAogCiBib29sIFJlbmRlclZpZXc6OmNoZWNrVHdvUGFzc0xheW91dEZvckF1dG9I
ZWlnaHRSZWdpb25zKCkgY29uc3QKIHsKLSAgICByZXR1cm4gaGFzUmVuZGVyTmFtZWRGbG93VGhy
ZWFkcygpICYmIG1fZmxvd1RocmVhZENvbnRyb2xsZXItPmhhc0F1dG9Mb2dpY2FsSGVpZ2h0UmVn
aW9ucygpOworICAgIHJldHVybiBoYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCkgJiYgbV9mbG93
VGhyZWFkQ29udHJvbGxlci0+aGFzRmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zKCk7CiB9CiAKIEZsb3dUaHJlYWRDb250cm9sbGVyKiBSZW5kZXJWaWV3OjpmbG93VGhyZWFk
Q29udHJvbGxlcigpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184677</attachid>
            <date>2013-01-24 23:16:11 -0800</date>
            <delta_ts>2013-01-27 23:08:01 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-105185-20130125091301.patch</filename>
            <type>text/plain</type>
            <size>16719</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZThhNTExNTMxOWFjYjM3
NDU4YmQwZmZmYTg4OWIyYjhkMTBiZmVjYi4uOGRlNjQwYjQyMTM2NzVhOTc2YjExOTcyMWQ1MTg2
ZWZlNzRhNjg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAxLTI0ICBNaWhu
ZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXSBS
ZW5kZXJGbG93VGhyZWFkIHNob3VsZCBrZWVwIGEgY291bnQgb2YgYXV0byBoZWlnaHQgcmVnaW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MTg1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSnVsaWVuIENoYWZmcmFpeC4KKworICAgICAgICBLZWVw
IHRoZSBjb3VudCBvZiBhdXRvIGhlaWdodCByZWdpb25zIG9uIHRoZSBmbG93IHRocmVhZCBpbnN0
ZWFkIG9mIGZsb3cgdGhyZWFkIGNvbnRyb2xsZXIuCisgICAgICAgIFRoaXMgd2F5LCB3ZSBjYW4g
c3RyZWFtbGluZSB0aGUgb3BlcmF0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIHR3by1wYXNzIGxh
eW91dCBvbmx5IHRvIHRob3NlCisgICAgICAgIGZsb3cgdGhyZWFkcyB0aGF0IGhhdmUgYXV0byBo
ZWlnaHQgcmVnaW9ucyBhc3NvY2lhdGVkLgorICAgICAgICBUaGUgZmxvdyB0aHJlYWQgY29udHJv
bGxlciB3aWxsIGtlZXAgYSBjb3VudCBvZiBmbG93IHRocmVhZCB3aXRoIGF1dG8gaGVpZ2h0IHJl
Z2lvbnMgaW5zdGVhZC4KKyAgICAgICAgVGhpcyBpcyBhIHBlcmZvcm1hbmNlIHJlZmFjdG9yaW5n
IHdpdGhvdXQgYW4gZXhwZWN0ZWQgY2hhbmdlIGluIGJlaGF2aW9yLCB0aGVyZWZvcmUgbm8gbmV3
IHRlc3RzIHdlcmUgYWRkZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRy
b2xsZXIuY3BwOiBLZWVwIGEgY291bnQgb2YgZmxvdyB0aHJlYWRzIHdpdGggYXV0byBsb2dpY2Fs
IGhlaWdodCByZWdpb25zLgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6
OkZsb3dUaHJlYWRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250
cm9sbGVyOjpsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKTogQ2hlY2sgdGhlIGNvdW50IG9m
IGF1dG8gaGVpZ2h0IHJlZ2lvbnMgZm9yIGFsbCB0aGUgZmxvdyB0aHJlYWRzLgorICAgICAgICAo
V2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OmlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25z
Q291bnRDb25zaXN0ZW50KToKKyAgICAgICAgTWFrZSBzdXJlIHRoYXQgd2UgY2FsbCB0aGVzZSBt
ZXRob2RzIG9ubHkgd2hlbiB3ZSBoYXZlIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpyZXNldFJlZ2lvbnNPdmVycmlk
ZUxvZ2ljYWxDb250ZW50SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250
cm9sbGVyOjptYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZs
b3dUaHJlYWRDb250cm9sbGVyOjpoYXNGbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJl
Z2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OmluY3JlbWVu
dEZsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6ZGVjcmVtZW50Rmxvd1RocmVhZHNXaXRoQXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVh
ZC5jcHA6IEtlZXAgYSBjb3VudCBvZiBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbnMuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25z
Q291bnRDb25zaXN0ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnJl
c2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQpOiBJdGVyYXRlIHRoZSByZWdp
b24gY2hhaW4gb25seSBpZiB0aGUgcmVnaW9uIGNoYWluIGhhcyBhdXRvIGhlaWdodCByZWdpb25z
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6aW5pdGlhbGl6ZVJlZ2lvbnNP
dmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJGbG93VGhyZWFkOjptYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjppbmNyZW1lbnRBdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVh
ZDo6ZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyRmxvd1RocmVhZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24u
Y3BwOiBBZGQgaW5jcmVtZW50L2RlY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0Q291bnQgdG8gaW5j
cmVhc2UvZGVjcmVhc2UKKyAgICAgICAgdGhlIGNvdW50ZXIgaW5zaWRlIHRoZSBmbG93IHRocmVh
ZCBhbmQgdXNlIHRoZW0gdGhyb3VnaG91dCB0aGUgY29kZSBhcyBuZWVkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJSZWdpb246OmluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0Q291bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdo
dENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6dXBkYXRlUmVnaW9uSGFz
QXV0b0xvZ2ljYWxIZWlnaHRGbGFnKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6
YXR0YWNoUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6ZGV0YWNoUmVn
aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6Y2hl
Y2tUd29QYXNzTGF5b3V0Rm9yQXV0b0hlaWdodFJlZ2lvbnMpOiBVc2UgdGhlIGNvdW50IG9mIGZs
b3cgdGhyZWFkcyB3aXRoIGF1dG8gaGVpZ2h0IHJlZ2lvbnMKKyAgICAgICAgaW5zdGVhZCBvZiB0
aGUgY291bnQgb2YgYXV0byBoZWlnaHQgcmVnaW9ucyB3aGVuIGRlY2lkaW5nIHdoZXRoZXIgd2Ug
c2hvdWxkIGF0dGVtcHQgdGhlIDIgcGFzcyBsYXlvdXQgZm9yIGF1dG8gaGVpZ2h0IHJlZ2lvbnMu
CisKIDIwMTMtMDEtMjQgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQWRqdXN0IGRlc2lnbiBvZiB0aGUgQ2FsZW5kYXIgUGlja2VyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAppbmRleCBmODU4NjIx
MjRhZmFjZjU2ZmMxN2E5NWY1MDA2NzIxYmViZjU1NjhjLi5mMGIyMzIxZDFlNGI0ZDYwMjNhMzAw
ZGRhNTdhOGZkNmE0ZjMwMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Rmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9G
bG93VGhyZWFkQ29udHJvbGxlci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgRmxvd1RocmVhZENvbnRy
b2xsZXI6OkZsb3dUaHJlYWRDb250cm9sbGVyKFJlbmRlclZpZXcqIHZpZXcpCiAgICAgLCBtX2N1
cnJlbnRSZW5kZXJGbG93VGhyZWFkKDApCiAgICAgLCBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFk
T3JkZXJEaXJ0eShmYWxzZSkKICAgICAsIG1fbmVlZHNUd29QYXNzTGF5b3V0Rm9yQXV0b0hlaWdo
dFJlZ2lvbnMoZmFsc2UpCi0gICAgLCBtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KDAp
CisgICAgLCBtX2Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygwKQogewog
fQogCkBAIC05OSw4ICs5OSw3IEBAIHZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6OnN0eWxlRGlk
Q2hhbmdlKCkKIHZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6OmxheW91dFJlbmRlck5hbWVkRmxv
d1RocmVhZHMoKQogewogICAgIEFTU0VSVChtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QpOwot
Ci0gICAgQVNTRVJUKGlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRmxhZ0NvbnNpc3RlbnQoKSk7
CisgICAgQVNTRVJUKGlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnRDb25zaXN0ZW50KCkp
OwogCiAgICAgLy8gUmVtb3ZlIHRoZSBsZWZ0LW92ZXIgZmxvdyB0aHJlYWRzLgogICAgIFJlbmRl
ck5hbWVkRmxvd1RocmVhZExpc3QgdG9SZW1vdmVMaXN0OwpAQCAtMTYxLDE5ICsxNjAsMTcgQEAg
dm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dW5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2Rl
KE5vZGUqIGNvbnRlbnROb2RlKQogfQogCiAjaWZuZGVmIE5ERUJVRwotYm9vbCBGbG93VGhyZWFk
Q29udHJvbGxlcjo6aXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGbGFnQ29uc2lzdGVudCgpIGNv
bnN0Citib29sIEZsb3dUaHJlYWRDb250cm9sbGVyOjppc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9u
c0NvdW50Q29uc2lzdGVudCgpIGNvbnN0CiB7CiAgICAgaWYgKCFoYXNSZW5kZXJOYW1lZEZsb3dU
aHJlYWRzKCkpCi0gICAgICAgIHJldHVybiAhaGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7
CisgICAgICAgIHJldHVybiAhaGFzRmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zKCk7CiAKLSAgICAvLyBDb3VudCB0aGUgbnVtYmVyIG9mIGF1dG8gaGVpZ2h0IHJlZ2lvbnMK
LSAgICB1bnNpZ25lZCBhdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMgPSAwOwogICAgIGZvciAoUmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVuZGVyTmFtZWRGbG93
VGhyZWFkTGlzdC0+YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3Qt
PmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBmbG93UmVu
ZGVyZXIgPSAqaXRlcjsKLSAgICAgICAgYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zICs9IGZsb3dS
ZW5kZXJlci0+YXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQoKTsKKyAgICAgICAgaWYgKCEo
Kml0ZXIpLT5pc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50Q29uc2lzdGVudCgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHJldHVybiBhdXRvTG9naWNhbEhl
aWdodFJlZ2lvbnMgPT0gbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsKKyAgICByZXR1
cm4gdHJ1ZTsKIH0KICNlbmRpZgogCkBAIC0xODksNiArMTg2LDggQEAgYm9vbCBGbG93VGhyZWFk
Q29udHJvbGxlcjo6aGFzUmVuZGVyTmFtZWRGbG93VGhyZWFkc05lZWRpbmdMYXlvdXQoKSBjb25z
dAogdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6cmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2Fs
Q29udGVudEhlaWdodCgpCiB7CiAgICAgQVNTRVJUKG1fdmlldy0+bm9ybWFsTGF5b3V0UGhhc2Uo
KSk7CisgICAgQVNTRVJUKGhhc0Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9u
cygpKTsKKwogICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6aXRlcmF0b3IgaXRl
ciA9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRl
ck5hbWVkRmxvd1RocmVhZExpc3QtPmVuZCgpOyArK2l0ZXIpCiAgICAgICAgICgqaXRlciktPnJl
c2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKIH0KQEAgLTE5Niw2ICsx
OTUsOCBAQCB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjpyZXNldFJlZ2lvbnNPdmVycmlkZUxv
Z2ljYWxDb250ZW50SGVpZ2h0KCkKIHZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6Om1hcmtBdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQoKQogewogICAgIEFTU0VSVChtX3ZpZXctPmNv
bnN0cmFpbmVkRmxvd1RocmVhZHNMYXlvdXRQaGFzZSgpKTsKKyAgICBBU1NFUlQoaGFzRmxvd1Ro
cmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpOworCiAgICAgZm9yIChSZW5kZXJO
YW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJl
YWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5k
KCk7ICsraXRlcikKICAgICAgICAgKCppdGVyKS0+bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9u
c0ZvckxheW91dCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zs
b3dUaHJlYWRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVh
ZENvbnRyb2xsZXIuaAppbmRleCA5ZjBjYTMyMmNkNjU3M2M1NzI3MTI1MjUxZTA1OTFhNzI1Zjhh
MDI1Li4yNDI4MTBmMDY0ZWRiMmQzMGI1OWUzZTQwNmZhZDY5Mjg5MzFhMGE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaApAQCAtNjcsMTQg
KzY3LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZ2lzdGVyTmFtZWRGbG93Q29udGVudE5vZGUo
Tm9kZSosIFJlbmRlck5hbWVkRmxvd1RocmVhZCopOwogICAgIHZvaWQgdW5yZWdpc3Rlck5hbWVk
Rmxvd0NvbnRlbnROb2RlKE5vZGUqKTsKIAotICAgIGJvb2wgaGFzQXV0b0xvZ2ljYWxIZWlnaHRS
ZWdpb25zKCkgY29uc3QgeyByZXR1cm4gbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsg
fQotICAgIHZvaWQgaW5jcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkgeyArK21fYXV0
b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7IH0KLSAgICB2b2lkIGRlY3JlbWVudEF1dG9Mb2dp
Y2FsSGVpZ2h0UmVnaW9ucygpIHsgQVNTRVJUKG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291
bnQgPiAwKTsgLS1tX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50OyB9CisgICAgYm9vbCBo
YXNGbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSBjb25zdCB7IHJldHVy
biBtX2Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uczsgfQorICAgIHZvaWQg
aW5jcmVtZW50Rmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkgeyArK21f
Zmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zOyB9CisgICAgdm9pZCBkZWNy
ZW1lbnRGbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSB7IEFTU0VSVCht
X2Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyA+IDApOyAtLW1fZmxvd1Ro
cmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zOyB9CiAKICAgICBib29sIGhhc1JlbmRl
ck5hbWVkRmxvd1RocmVhZHNOZWVkaW5nTGF5b3V0KCkgY29uc3Q7CiAKICNpZm5kZWYgTkRFQlVH
Ci0gICAgYm9vbCBpc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZsYWdDb25zaXN0ZW50KCkgY29u
c3Q7CisgICAgYm9vbCBpc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50Q29uc2lzdGVudCgp
IGNvbnN0OwogI2VuZGlmCiAKICAgICB2b2lkIHJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENv
bnRlbnRIZWlnaHQoKTsKQEAgLTkxLDcgKzkxLDcgQEAgcHJpdmF0ZToKICAgICBSZW5kZXJGbG93
VGhyZWFkKiBtX2N1cnJlbnRSZW5kZXJGbG93VGhyZWFkOwogICAgIGJvb2wgbV9pc1JlbmRlck5h
bWVkRmxvd1RocmVhZE9yZGVyRGlydHk7CiAgICAgYm9vbCBtX25lZWRzVHdvUGFzc0xheW91dEZv
ckF1dG9IZWlnaHRSZWdpb25zOwotICAgIHVuc2lnbmVkIG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zQ291bnQ7CisgICAgdW5zaWduZWQgbV9mbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdo
dFJlZ2lvbnM7CiAgICAgT3duUHRyPFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q+IG1fcmVuZGVy
TmFtZWRGbG93VGhyZWFkTGlzdDsKICAgICAvLyBtYXBzIGEgY29udGVudCBub2RlIHRvIGl0cyBy
ZW5kZXIgZmxvdyB0aHJlYWQuCiAgICAgSGFzaE1hcDxOb2RlKiwgUmVuZGVyTmFtZWRGbG93VGhy
ZWFkKj4gbV9tYXBOYW1lZEZsb3dDb250ZW50Tm9kZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXggNDM5NWE0Yzg4YTE2MWU2ODQwYWU4ZmYx
OTg1ZTRmNmJkNzU0ODNkYy4uMzA1YjJhY2ZmNWQ5ZTU3ODA5MzM3OTdhZmI2MzUxYjIzZDhjZjky
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApA
QCAtNDksNiArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBJdCBzaG91bGQgbm90IGJl
IGNvbnN0cnVjdGVkIGFzIGEgcmVuZGVyZXIgZm9yIHRoZSBEb2N1bWVudC4KIFJlbmRlckZsb3dU
aHJlYWQ6OlJlbmRlckZsb3dUaHJlYWQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogUmVuZGVy
QmxvY2soZG9jdW1lbnQpCisgICAgLCBtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KDAp
CiAgICAgLCBtX3JlZ2lvbnNJbnZhbGlkYXRlZChmYWxzZSkKICAgICAsIG1fcmVnaW9uc0hhdmVV
bmlmb3JtTG9naWNhbFdpZHRoKHRydWUpCiAgICAgLCBtX3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2lj
YWxIZWlnaHQodHJ1ZSkKQEAgLTc0MCw3ICs3NDEsNyBAQCBib29sIFJlbmRlckZsb3dUaHJlYWQ6
Om9iamVjdEluRmxvd1JlZ2lvbihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVu
ZAogfQogCiAjaWZuZGVmIE5ERUJVRwotdW5zaWduZWQgUmVuZGVyRmxvd1RocmVhZDo6YXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zQ291bnQoKSBjb25zdAorYm9vbCBSZW5kZXJGbG93VGhyZWFkOjpp
c0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50Q29uc2lzdGVudCgpIGNvbnN0CiB7CiAgICAg
dW5zaWduZWQgYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zID0gMDsKICAgICBmb3IgKFJlbmRlclJl
Z2lvbkxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRl
ciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgewpAQCAtNzQ5LDcgKzc1MCw3IEBAIHVu
c2lnbmVkIFJlbmRlckZsb3dUaHJlYWQ6OmF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KCkg
Y29uc3QKICAgICAgICAgICAgIGF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucysrOwogICAgIH0KIAot
ICAgIHJldHVybiBhdXRvTG9naWNhbEhlaWdodFJlZ2lvbnM7CisgICAgcmV0dXJuIGF1dG9Mb2dp
Y2FsSGVpZ2h0UmVnaW9ucyA9PSBtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50OwogfQog
I2VuZGlmCiAKQEAgLTc1OCw4ICs3NTksOCBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnJlc2V0
UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKQogICAgIEFTU0VSVCh2aWV3KCkt
PmxheW91dFN0YXRlKCkpOwogICAgIEFTU0VSVCh2aWV3KCktPm5vcm1hbExheW91dFBoYXNlKCkp
OwogCi0gICAgLy8gRklYTUU6IG9wdGltaXplIHRoaXMgdG8gaXRlcmF0ZSB0aGUgcmVnaW9uIGNo
YWluIG9ubHkgaWYgdGhlIGZsb3cgdGhyZWFkIGhhcyBhdXRvIGxvZ2ljYWwgaGVpZ2h0Ci0gICAg
Ly8gcmVnaW9uLgorICAgIGlmICghaGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpCisgICAg
ICAgIHJldHVybjsKIAogICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6aXRlcmF0b3IgaXRlciA9
IG1fcmVnaW9uTGlzdC5iZWdpbigpOyBpdGVyICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdGVy
KSB7CiAgICAgICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gKml0ZXI7CkBAIC03ODIsNiArNzgz
LDkgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpyZXNldFJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxD
b250ZW50SGVpZ2h0KCkKIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6aW5pdGlhbGl6ZVJlZ2lvbnNP
dmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KFJlbmRlclJlZ2lvbiogc3RhcnRSZWdpb24pCiB7
CiAgICAgQVNTRVJUKHZpZXcoKS0+bm9ybWFsTGF5b3V0UGhhc2UoKSk7CisgICAgaWYgKCFoYXNB
dXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgUmVuZGVy
UmVnaW9uTGlzdDo6aXRlcmF0b3IgcmVnaW9uSXRlciA9IHN0YXJ0UmVnaW9uID8gbV9yZWdpb25M
aXN0LmZpbmQoc3RhcnRSZWdpb24pIDogbV9yZWdpb25MaXN0LmJlZ2luKCk7CiAgICAgZm9yICg7
IHJlZ2lvbkl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK3JlZ2lvbkl0ZXIpIHsKICAgICAg
ICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAqcmVnaW9uSXRlcjsKQEAgLTc5NSw4ICs3OTksOCBA
QCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6Om1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGb3JM
YXlvdXQoKQogICAgIEFTU0VSVCh2aWV3KCktPmxheW91dFN0YXRlKCkpOwogICAgIEFTU0VSVCh2
aWV3KCktPmNvbnN0cmFpbmVkRmxvd1RocmVhZHNMYXlvdXRQaGFzZSgpKTsKIAotICAgIC8vIEZJ
WE1FOiBvcHRpbWl6ZSB0aGlzIHRvIGl0ZXJhdGUgdGhlIHJlZ2lvbiBjaGFpbiBvbmx5IGlmIHRo
ZSBmbG93IHRocmVhZCBoYXMgYXV0byBsb2dpY2FsIGhlaWdodAotICAgIC8vIHJlZ2lvbi4KKyAg
ICBpZiAoIWhhc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpKQorICAgICAgICByZXR1cm47CiAK
ICAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3Qu
YmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgewogICAgICAgICBS
ZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOwpAQCAtOTEyLDYgKzkxNiwyMSBAQCBib29sIFJl
bmRlckZsb3dUaHJlYWQ6OmFkZEZvcmNlZFJlZ2lvbkJyZWFrKExheW91dFVuaXQgb2Zmc2V0QnJl
YWtJbkZsb3dUaHJlYWQsCiAgICAgcmV0dXJuIG92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHRD
b21wdXRlZDsKIH0KIAordm9pZCBSZW5kZXJGbG93VGhyZWFkOjppbmNyZW1lbnRBdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnMoKQoreworICAgIGlmICghbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnND
b3VudCkKKyAgICAgICAgdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5pbmNyZW1lbnRG
bG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKKyAgICArK21fYXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7Cit9CisKK3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6ZGVj
cmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkKK3sKKyAgICBBU1NFUlQobV9hdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnNDb3VudCA+IDApOworICAgIC0tbV9hdXRvTG9naWNhbEhlaWdodFJl
Z2lvbnNDb3VudDsKKyAgICBpZiAoIW1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQpCisg
ICAgICAgIHZpZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+ZGVjcmVtZW50Rmxvd1RocmVh
ZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7Cit9CisKIEN1cnJlbnRSZW5kZXJGbG93
VGhyZWFkTWFpbnRhaW5lcjo6Q3VycmVudFJlbmRlckZsb3dUaHJlYWRNYWludGFpbmVyKFJlbmRl
ckZsb3dUaHJlYWQqIHJlbmRlckZsb3dUaHJlYWQpCiAgICAgOiBtX3JlbmRlckZsb3dUaHJlYWQo
cmVuZGVyRmxvd1RocmVhZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5oCmluZGV4IGM2NWI3ZGE2MGMxMzBiZGM5MTdlZDM4MGVkMGNkNmUwNTc1NTRkZGUu
LjMxZDc2OTdhMTFhNGQ5MjBlMTI2ODI5NzI4MTBmYTBhZmUyZTE5MTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtMTM1LDggKzEzNSwxMiBAQCBw
dWJsaWM6CiAKICAgICBib29sIHBhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkOyB9CiAKKyAgICBib29sIGhhc0F1dG9Mb2dp
Y2FsSGVpZ2h0UmVnaW9ucygpIGNvbnN0IHsgQVNTRVJUKGlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zQ291bnRDb25zaXN0ZW50KCkpOyByZXR1cm4gbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnND
b3VudDsgfQorICAgIHZvaWQgaW5jcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7Cisg
ICAgdm9pZCBkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKKwogI2lmbmRlZiBO
REVCVUcKLSAgICB1bnNpZ25lZCBhdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCgpIGNvbnN0
OworICAgIGJvb2wgaXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudENvbnNpc3RlbnQoKSBj
b25zdDsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CkBAIC0xOTIsNiArMTk2LDggQEAgcHJvdGVjdGVk
OgogICAgIFJlbmRlck9iamVjdFRvUmVnaW9uTWFwIG1fYnJlYWtCZWZvcmVUb1JlZ2lvbk1hcDsK
ICAgICBSZW5kZXJPYmplY3RUb1JlZ2lvbk1hcCBtX2JyZWFrQWZ0ZXJUb1JlZ2lvbk1hcDsKIAor
ICAgIHVuc2lnbmVkIG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7CisKICAgICBib29s
IG1fcmVnaW9uc0ludmFsaWRhdGVkIDogMTsKICAgICBib29sIG1fcmVnaW9uc0hhdmVVbmlmb3Jt
TG9naWNhbFdpZHRoIDogMTsKICAgICBib29sIG1fcmVnaW9uc0hhdmVVbmlmb3JtTG9naWNhbEhl
aWdodCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVn
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCmluZGV4
IDlmYzFmNDE2NmI4MTM0ZTc2NjVmM2NmMWNiYjU5NmE1NjkxMjQ2Y2UuLjk2MzE1NmE1NjM1NTU1
NmE0OWQ3NDE4MmE1MDYyYTc4NjMyNjc1N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZWdpb24uY3BwCkBAIC0xODUsNiArMTg1LDIzIEBAIHZvaWQgUmVuZGVyUmVnaW9uOjpj
aGVja1JlZ2lvblN0eWxlKCkKICAgICBtX2Zsb3dUaHJlYWQtPmNoZWNrUmVnaW9uc1dpdGhTdHls
aW5nKCk7CiB9CiAKK3ZvaWQgUmVuZGVyUmVnaW9uOjppbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdo
dENvdW50KCkKK3sKKyAgICBBU1NFUlQobV9mbG93VGhyZWFkKTsKKyAgICBBU1NFUlQoaXNWYWxp
ZCgpKTsKKyAgICBBU1NFUlQobV9oYXNBdXRvTG9naWNhbEhlaWdodCk7CisKKyAgICBtX2Zsb3dU
aHJlYWQtPmluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpOworfQorCit2b2lkIFJl
bmRlclJlZ2lvbjo6ZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRDb3VudCgpCit7CisgICAgQVNT
RVJUKG1fZmxvd1RocmVhZCk7CisgICAgQVNTRVJUKGlzVmFsaWQoKSk7CisKKyAgICBtX2Zsb3dU
aHJlYWQtPmRlY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpOworfQorCiB2b2lkIFJl
bmRlclJlZ2lvbjo6dXBkYXRlUmVnaW9uSGFzQXV0b0xvZ2ljYWxIZWlnaHRGbGFnKCkKIHsKICAg
ICBBU1NFUlQobV9mbG93VGhyZWFkKTsKQEAgLTE5NiwxMCArMjEzLDEwIEBAIHZvaWQgUmVuZGVy
UmVnaW9uOjp1cGRhdGVSZWdpb25IYXNBdXRvTG9naWNhbEhlaWdodEZsYWcoKQogICAgIG1faGFz
QXV0b0xvZ2ljYWxIZWlnaHQgPSBzaG91bGRIYXZlQXV0b0xvZ2ljYWxIZWlnaHQoKTsKICAgICBp
ZiAobV9oYXNBdXRvTG9naWNhbEhlaWdodCAhPSBkaWRIYXZlQXV0b0xvZ2ljYWxIZWlnaHQpIHsK
ICAgICAgICAgaWYgKG1faGFzQXV0b0xvZ2ljYWxIZWlnaHQpCi0gICAgICAgICAgICB2aWV3KCkt
PmZsb3dUaHJlYWRDb250cm9sbGVyKCktPmluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9u
cygpOworICAgICAgICAgICAgaW5jcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRDb3VudCgpOwogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIGNsZWFyT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdo
dCgpOwotICAgICAgICAgICAgdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5kZWNyZW1l
bnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKKyAgICAgICAgICAgIGRlY3JlbWVudEF1dG9M
b2dpY2FsSGVpZ2h0Q291bnQoKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTMyOSwxNyArMzQ2
LDE1IEBAIHZvaWQgUmVuZGVyUmVnaW9uOjphdHRhY2hSZWdpb24oKQogCiAgICAgbV9oYXNBdXRv
TG9naWNhbEhlaWdodCA9IHNob3VsZEhhdmVBdXRvTG9naWNhbEhlaWdodCgpOwogICAgIGlmICho
YXNBdXRvTG9naWNhbEhlaWdodCgpKQotICAgICAgICB2aWV3KCktPmZsb3dUaHJlYWRDb250cm9s
bGVyKCktPmluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpOworICAgICAgICBpbmNy
ZW1lbnRBdXRvTG9naWNhbEhlaWdodENvdW50KCk7CiB9CiAKIHZvaWQgUmVuZGVyUmVnaW9uOjpk
ZXRhY2hSZWdpb24oKQogewogICAgIGlmIChtX2Zsb3dUaHJlYWQpIHsKICAgICAgICAgbV9mbG93
VGhyZWFkLT5yZW1vdmVSZWdpb25Gcm9tVGhyZWFkKHRoaXMpOwotICAgICAgICBpZiAoaGFzQXV0
b0xvZ2ljYWxIZWlnaHQoKSkgewotICAgICAgICAgICAgQVNTRVJUKGlzVmFsaWQoKSk7Ci0gICAg
ICAgICAgICB2aWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVyKCktPmRlY3JlbWVudEF1dG9Mb2dp
Y2FsSGVpZ2h0UmVnaW9ucygpOwotICAgICAgICB9CisgICAgICAgIGlmIChoYXNBdXRvTG9naWNh
bEhlaWdodCgpKQorICAgICAgICAgICAgZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRDb3VudCgp
OwogICAgIH0KICAgICBtX2Zsb3dUaHJlYWQgPSAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlZ2lvbi5oCmluZGV4IGQ5ZWY0NWZhMzkyNTAxMjM1ZmIzNWU4ZWE1NzA5NGZjMDQ2
MjcwNDEuLjI0MjFkYzkzZDdkYjRlMjA0YjQyZmUwMzA5NTA0Mjk4ZTVmZDU5YzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKQEAgLTE2OCw2ICsxNjgsOSBAQCBwcml2
YXRlOgogICAgIHZvaWQgY2hlY2tSZWdpb25TdHlsZSgpOwogICAgIHZvaWQgdXBkYXRlUmVnaW9u
SGFzQXV0b0xvZ2ljYWxIZWlnaHRGbGFnKCk7CiAKKyAgICB2b2lkIGluY3JlbWVudEF1dG9Mb2dp
Y2FsSGVpZ2h0Q291bnQoKTsKKyAgICB2b2lkIGRlY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0Q291
bnQoKTsKKwogcHJvdGVjdGVkOgogICAgIFJlbmRlckZsb3dUaHJlYWQqIG1fZmxvd1RocmVhZDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDFmZDlmZWRiMjg1
M2I4YzFkYWM3OTkyNGY4ZjZjMmZjMzMyYmZiNmQuLjYwOTc2NzJmOGE5NDNkMjUzMzEwMzVkZDA4
MzM4NjkwYjBmOTUyOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAK
QEAgLTEwNDcsNyArMTA0Nyw3IEBAIGJvb2wgUmVuZGVyVmlldzo6aGFzUmVuZGVyTmFtZWRGbG93
VGhyZWFkcygpIGNvbnN0CiAKIGJvb2wgUmVuZGVyVmlldzo6Y2hlY2tUd29QYXNzTGF5b3V0Rm9y
QXV0b0hlaWdodFJlZ2lvbnMoKSBjb25zdAogewotICAgIHJldHVybiBoYXNSZW5kZXJOYW1lZEZs
b3dUaHJlYWRzKCkgJiYgbV9mbG93VGhyZWFkQ29udHJvbGxlci0+aGFzQXV0b0xvZ2ljYWxIZWln
aHRSZWdpb25zKCk7CisgICAgcmV0dXJuIGhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSAmJiBt
X2Zsb3dUaHJlYWRDb250cm9sbGVyLT5oYXNGbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdo
dFJlZ2lvbnMoKTsKIH0KIAogRmxvd1RocmVhZENvbnRyb2xsZXIqIFJlbmRlclZpZXc6OmZsb3dU
aHJlYWRDb250cm9sbGVyKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184940</attachid>
            <date>2013-01-27 23:08:09 -0800</date>
            <delta_ts>2013-01-27 23:26:25 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-105185-20130128090456.patch</filename>
            <type>text/plain</type>
            <size>16778</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDIzMjIwOTJhOTNjY2Zl
ZmMyMjEyN2M3MzliZmRkZDgxY2U4OWZmMi4uZThjYjFkMjNjYmRiZGIwY2MzNThkYTEwY2NkN2Jk
NzY1NjdjYTc0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAxLTI3ICBNaWhu
ZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1NSZWdpb25zXSBS
ZW5kZXJGbG93VGhyZWFkIHNob3VsZCBrZWVwIGEgY291bnQgb2YgYXV0byBoZWlnaHQgcmVnaW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MTg1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSnVsaWVuIENoYWZmcmFpeC4KKworICAgICAgICBLZWVw
IHRoZSBjb3VudCBvZiBhdXRvIGhlaWdodCByZWdpb25zIG9uIHRoZSBmbG93IHRocmVhZCBpbnN0
ZWFkIG9mIGZsb3cgdGhyZWFkIGNvbnRyb2xsZXIuCisgICAgICAgIFRoaXMgd2F5LCB3ZSBjYW4g
c3RyZWFtbGluZSB0aGUgb3BlcmF0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIHR3by1wYXNzIGxh
eW91dCBvbmx5IHRvIHRob3NlCisgICAgICAgIGZsb3cgdGhyZWFkcyB0aGF0IGhhdmUgYXV0byBo
ZWlnaHQgcmVnaW9ucyBhc3NvY2lhdGVkLgorICAgICAgICBUaGUgZmxvdyB0aHJlYWQgY29udHJv
bGxlciB3aWxsIGtlZXAgYSBjb3VudCBvZiBmbG93IHRocmVhZCB3aXRoIGF1dG8gaGVpZ2h0IHJl
Z2lvbnMgaW5zdGVhZC4KKyAgICAgICAgVGhpcyBpcyBhIHBlcmZvcm1hbmNlIHJlZmFjdG9yaW5n
IHdpdGhvdXQgYW4gZXhwZWN0ZWQgY2hhbmdlIGluIGJlaGF2aW9yLCB0aGVyZWZvcmUgbm8gbmV3
IHRlc3RzIHdlcmUgYWRkZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRy
b2xsZXIuY3BwOiBLZWVwIGEgY291bnQgb2YgZmxvdyB0aHJlYWRzIHdpdGggYXV0byBsb2dpY2Fs
IGhlaWdodCByZWdpb25zLgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6
OkZsb3dUaHJlYWRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250
cm9sbGVyOjpsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKTogQ2hlY2sgdGhlIGNvdW50IG9m
IGF1dG8gaGVpZ2h0IHJlZ2lvbnMgZm9yIGFsbCB0aGUgZmxvdyB0aHJlYWRzLgorICAgICAgICAo
V2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OmlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25z
Q291bnRDb25zaXN0ZW50KToKKyAgICAgICAgTWFrZSBzdXJlIHRoYXQgd2UgY2FsbCB0aGVzZSBt
ZXRob2RzIG9ubHkgd2hlbiB3ZSBoYXZlIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpyZXNldFJlZ2lvbnNPdmVycmlk
ZUxvZ2ljYWxDb250ZW50SGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250
cm9sbGVyOjptYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZs
b3dUaHJlYWRDb250cm9sbGVyOjpoYXNGbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJl
Z2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OmluY3JlbWVu
dEZsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6ZGVjcmVtZW50Rmxvd1RocmVhZHNXaXRoQXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVh
ZC5jcHA6IEtlZXAgYSBjb3VudCBvZiBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHJlZ2lvbnMuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OmlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25z
Q291bnRDb25zaXN0ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnJl
c2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQpOiBJdGVyYXRlIHRoZSByZWdp
b24gY2hhaW4gb25seSBpZiB0aGUgcmVnaW9uIGNoYWluIGhhcyBhdXRvIGhlaWdodCByZWdpb25z
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6aW5pdGlhbGl6ZVJlZ2lvbnNP
dmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJGbG93VGhyZWFkOjptYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjppbmNyZW1lbnRBdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1RocmVh
ZDo6ZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyRmxvd1RocmVhZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24u
Y3BwOiBBZGQgaW5jcmVtZW50L2RlY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0Q291bnQgdG8gaW5j
cmVhc2UvZGVjcmVhc2UKKyAgICAgICAgdGhlIGNvdW50ZXIgaW5zaWRlIHRoZSBmbG93IHRocmVh
ZCBhbmQgdXNlIHRoZW0gdGhyb3VnaG91dCB0aGUgY29kZSBhcyBuZWVkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJSZWdpb246OmluY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0Q291bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdo
dENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6dXBkYXRlUmVnaW9uSGFz
QXV0b0xvZ2ljYWxIZWlnaHRGbGFnKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6
YXR0YWNoUmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6ZGV0YWNoUmVn
aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6Y2hl
Y2tUd29QYXNzTGF5b3V0Rm9yQXV0b0hlaWdodFJlZ2lvbnMpOiBVc2UgdGhlIGNvdW50IG9mIGZs
b3cgdGhyZWFkcyB3aXRoIGF1dG8gaGVpZ2h0IHJlZ2lvbnMKKyAgICAgICAgaW5zdGVhZCBvZiB0
aGUgY291bnQgb2YgYXV0byBoZWlnaHQgcmVnaW9ucyB3aGVuIGRlY2lkaW5nIHdoZXRoZXIgd2Ug
c2hvdWxkIGF0dGVtcHQgdGhlIDIgcGFzcyBsYXlvdXQgZm9yIGF1dG8gaGVpZ2h0IHJlZ2lvbnMu
CisKIDIwMTMtMDEtMjcgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtTaGFkb3cgRE9NXSBTZWxlY3RpbmcgYSBub2RlIHRvIGFub3RoZXIgbm9kZSBp
biBTaGFkb3dET00gZmlyZXMgJ2NsaWNrJyBldmVudCB1bmV4cGVjdGVkbHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCmluZGV4IGY4NTg2
MjEyNGFmYWNmNTZmYzE3YTk1ZjUwMDY3MjFiZWJmNTU2OGMuLmYwYjIzMjFkMWU0YjRkNjAyM2Ez
MDBkZGE1N2E4ZmQ2YTRmMzAzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcApAQCAtNTAsNyArNTAsNyBAQCBGbG93VGhyZWFkQ29u
dHJvbGxlcjo6Rmxvd1RocmVhZENvbnRyb2xsZXIoUmVuZGVyVmlldyogdmlldykKICAgICAsIG1f
Y3VycmVudFJlbmRlckZsb3dUaHJlYWQoMCkKICAgICAsIG1faXNSZW5kZXJOYW1lZEZsb3dUaHJl
YWRPcmRlckRpcnR5KGZhbHNlKQogICAgICwgbV9uZWVkc1R3b1Bhc3NMYXlvdXRGb3JBdXRvSGVp
Z2h0UmVnaW9ucyhmYWxzZSkKLSAgICAsIG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQo
MCkKKyAgICAsIG1fZmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKDApCiB7
CiB9CiAKQEAgLTk5LDggKzk5LDcgQEAgdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6c3R5bGVE
aWRDaGFuZ2UoKQogdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6bGF5b3V0UmVuZGVyTmFtZWRG
bG93VGhyZWFkcygpCiB7CiAgICAgQVNTRVJUKG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCk7
Ci0KLSAgICBBU1NFUlQoaXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGbGFnQ29uc2lzdGVudCgp
KTsKKyAgICBBU1NFUlQoaXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudENvbnNpc3RlbnQo
KSk7CiAKICAgICAvLyBSZW1vdmUgdGhlIGxlZnQtb3ZlciBmbG93IHRocmVhZHMuCiAgICAgUmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdCB0b1JlbW92ZUxpc3Q7CkBAIC0xNjEsMTkgKzE2MCwxNyBA
QCB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjp1bnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudE5v
ZGUoTm9kZSogY29udGVudE5vZGUpCiB9CiAKICNpZm5kZWYgTkRFQlVHCi1ib29sIEZsb3dUaHJl
YWRDb250cm9sbGVyOjppc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZsYWdDb25zaXN0ZW50KCkg
Y29uc3QKK2Jvb2wgRmxvd1RocmVhZENvbnRyb2xsZXI6OmlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zQ291bnRDb25zaXN0ZW50KCkgY29uc3QKIHsKICAgICBpZiAoIWhhc1JlbmRlck5hbWVkRmxv
d1RocmVhZHMoKSkKLSAgICAgICAgcmV0dXJuICFoYXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMo
KTsKKyAgICAgICAgcmV0dXJuICFoYXNGbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJl
Z2lvbnMoKTsKIAotICAgIC8vIENvdW50IHRoZSBudW1iZXIgb2YgYXV0byBoZWlnaHQgcmVnaW9u
cwotICAgIHVuc2lnbmVkIGF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyA9IDA7CiAgICAgZm9yIChS
ZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZs
b3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlz
dC0+ZW5kKCk7ICsraXRlcikgewotICAgICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dS
ZW5kZXJlciA9ICppdGVyOwotICAgICAgICBhdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMgKz0gZmxv
d1JlbmRlcmVyLT5hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCgpOworICAgICAgICBpZiAo
ISgqaXRlciktPmlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnRDb25zaXN0ZW50KCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgcmV0dXJuIGF1dG9Mb2dpY2Fs
SGVpZ2h0UmVnaW9ucyA9PSBtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50OworICAgIHJl
dHVybiB0cnVlOwogfQogI2VuZGlmCiAKQEAgLTE4OSw2ICsxODYsOCBAQCBib29sIEZsb3dUaHJl
YWRDb250cm9sbGVyOjpoYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzTmVlZGluZ0xheW91dCgpIGNv
bnN0CiB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjpyZXNldFJlZ2lvbnNPdmVycmlkZUxvZ2lj
YWxDb250ZW50SGVpZ2h0KCkKIHsKICAgICBBU1NFUlQobV92aWV3LT5ub3JtYWxMYXlvdXRQaGFz
ZSgpKTsKKyAgICBBU1NFUlQoaGFzRmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zKCkpOworCiAgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRvciBp
dGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1fcmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikKICAgICAgICAgKCppdGVyKS0+
cmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCgpOwogfQpAQCAtMTk2LDYg
KzE5NSw4IEBAIHZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6OnJlc2V0UmVnaW9uc092ZXJyaWRl
TG9naWNhbENvbnRlbnRIZWlnaHQoKQogdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6bWFya0F1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgpCiB7CiAgICAgQVNTRVJUKG1fdmlldy0+
Y29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dFBoYXNlKCkpOworICAgIEFTU0VSVChoYXNGbG93
VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSk7CisKICAgICBmb3IgKFJlbmRl
ck5hbWVkRmxvd1RocmVhZExpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1Ro
cmVhZExpc3QtPmJlZ2luKCk7IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5l
bmQoKTsgKytpdGVyKQogICAgICAgICAoKml0ZXIpLT5tYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zRm9yTGF5b3V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Rmxvd1RocmVhZENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhy
ZWFkQ29udHJvbGxlci5oCmluZGV4IDlmMGNhMzIyY2Q2NTczYzU3MjcxMjUyNTFlMDU5MWE3MjVm
OGEwMjUuLjI0MjgxMGYwNjRlZGIyZDMwYjU5ZTNlNDA2ZmFkNjkyODkzMWEwYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCkBAIC02Nywx
NCArNjcsMTQgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50Tm9k
ZShOb2RlKiwgUmVuZGVyTmFtZWRGbG93VGhyZWFkKik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyTmFt
ZWRGbG93Q29udGVudE5vZGUoTm9kZSopOwogCi0gICAgYm9vbCBoYXNBdXRvTG9naWNhbEhlaWdo
dFJlZ2lvbnMoKSBjb25zdCB7IHJldHVybiBtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50
OyB9Ci0gICAgdm9pZCBpbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSB7ICsrbV9h
dXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsgfQotICAgIHZvaWQgZGVjcmVtZW50QXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zKCkgeyBBU1NFUlQobV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnND
b3VudCA+IDApOyAtLW1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7IH0KKyAgICBib29s
IGhhc0Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpIGNvbnN0IHsgcmV0
dXJuIG1fZmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zOyB9CisgICAgdm9p
ZCBpbmNyZW1lbnRGbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSB7ICsr
bV9mbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnM7IH0KKyAgICB2b2lkIGRl
Y3JlbWVudEZsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpIHsgQVNTRVJU
KG1fZmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zID4gMCk7IC0tbV9mbG93
VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnM7IH0KIAogICAgIGJvb2wgaGFzUmVu
ZGVyTmFtZWRGbG93VGhyZWFkc05lZWRpbmdMYXlvdXQoKSBjb25zdDsKIAogI2lmbmRlZiBOREVC
VUcKLSAgICBib29sIGlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRmxhZ0NvbnNpc3RlbnQoKSBj
b25zdDsKKyAgICBib29sIGlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnRDb25zaXN0ZW50
KCkgY29uc3Q7CiAjZW5kaWYKIAogICAgIHZvaWQgcmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2Fs
Q29udGVudEhlaWdodCgpOwpAQCAtOTEsNyArOTEsNyBAQCBwcml2YXRlOgogICAgIFJlbmRlckZs
b3dUaHJlYWQqIG1fY3VycmVudFJlbmRlckZsb3dUaHJlYWQ7CiAgICAgYm9vbCBtX2lzUmVuZGVy
TmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0eTsKICAgICBib29sIG1fbmVlZHNUd29QYXNzTGF5b3V0
Rm9yQXV0b0hlaWdodFJlZ2lvbnM7Ci0gICAgdW5zaWduZWQgbV9hdXRvTG9naWNhbEhlaWdodFJl
Z2lvbnNDb3VudDsKKyAgICB1bnNpZ25lZCBtX2Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVp
Z2h0UmVnaW9uczsKICAgICBPd25QdHI8UmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdD4gbV9yZW5k
ZXJOYW1lZEZsb3dUaHJlYWRMaXN0OwogICAgIC8vIG1hcHMgYSBjb250ZW50IG5vZGUgdG8gaXRz
IHJlbmRlciBmbG93IHRocmVhZC4KICAgICBIYXNoTWFwPE5vZGUqLCBSZW5kZXJOYW1lZEZsb3dU
aHJlYWQqPiBtX21hcE5hbWVkRmxvd0NvbnRlbnROb2RlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAppbmRleCA0Mzk1YTRjODhhMTYxZTY4NDBhZThm
ZjE5ODVlNGY2YmQ3NTQ4M2RjLi4zMDViMmFjZmY1ZDllNTc4MDkzMzc5N2FmYjYzNTFiMjNkOGNm
OTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3Bw
CkBAIC00OSw2ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEl0IHNob3VsZCBub3Qg
YmUgY29uc3RydWN0ZWQgYXMgYSByZW5kZXJlciBmb3IgdGhlIERvY3VtZW50LgogUmVuZGVyRmxv
d1RocmVhZDo6UmVuZGVyRmxvd1RocmVhZChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBSZW5k
ZXJCbG9jayhkb2N1bWVudCkKKyAgICAsIG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQo
MCkKICAgICAsIG1fcmVnaW9uc0ludmFsaWRhdGVkKGZhbHNlKQogICAgICwgbV9yZWdpb25zSGF2
ZVVuaWZvcm1Mb2dpY2FsV2lkdGgodHJ1ZSkKICAgICAsIG1fcmVnaW9uc0hhdmVVbmlmb3JtTG9n
aWNhbEhlaWdodCh0cnVlKQpAQCAtNzQwLDcgKzc0MSw3IEBAIGJvb2wgUmVuZGVyRmxvd1RocmVh
ZDo6b2JqZWN0SW5GbG93UmVnaW9uKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBS
ZW5kCiB9CiAKICNpZm5kZWYgTkRFQlVHCi11bnNpZ25lZCBSZW5kZXJGbG93VGhyZWFkOjphdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCgpIGNvbnN0Citib29sIFJlbmRlckZsb3dUaHJlYWQ6
OmlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnRDb25zaXN0ZW50KCkgY29uc3QKIHsKICAg
ICB1bnNpZ25lZCBhdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMgPSAwOwogICAgIGZvciAoUmVuZGVy
UmVnaW9uTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1fcmVnaW9uTGlzdC5iZWdpbigpOyBp
dGVyICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdGVyKSB7CkBAIC03NDksNyArNzUwLDcgQEAg
dW5zaWduZWQgUmVuZGVyRmxvd1RocmVhZDo6YXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQo
KSBjb25zdAogICAgICAgICAgICAgYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKys7CiAgICAgfQog
Ci0gICAgcmV0dXJuIGF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uczsKKyAgICByZXR1cm4gYXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zID09IG1fYXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnQ7CiB9
CiAjZW5kaWYKIApAQCAtNzU4LDggKzc1OSw4IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6cmVz
ZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCgpCiAgICAgQVNTRVJUKHZpZXco
KS0+bGF5b3V0U3RhdGUoKSk7CiAgICAgQVNTRVJUKHZpZXcoKS0+bm9ybWFsTGF5b3V0UGhhc2Uo
KSk7CiAKLSAgICAvLyBGSVhNRTogb3B0aW1pemUgdGhpcyB0byBpdGVyYXRlIHRoZSByZWdpb24g
Y2hhaW4gb25seSBpZiB0aGUgZmxvdyB0aHJlYWQgaGFzIGF1dG8gbG9naWNhbCBoZWlnaHQKLSAg
ICAvLyByZWdpb24uCisgICAgaWYgKCFoYXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSkKKyAg
ICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0OjppdGVyYXRvciBpdGVy
ID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0
ZXIpIHsKICAgICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAqaXRlcjsKQEAgLTc4Miw2ICs3
ODMsOSBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNh
bENvbnRlbnRIZWlnaHQoKQogdm9pZCBSZW5kZXJGbG93VGhyZWFkOjppbml0aWFsaXplUmVnaW9u
c092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbikK
IHsKICAgICBBU1NFUlQodmlldygpLT5ub3JtYWxMYXlvdXRQaGFzZSgpKTsKKyAgICBpZiAoIWhh
c0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpKQorICAgICAgICByZXR1cm47CisKICAgICBSZW5k
ZXJSZWdpb25MaXN0OjppdGVyYXRvciByZWdpb25JdGVyID0gc3RhcnRSZWdpb24gPyBtX3JlZ2lv
bkxpc3QuZmluZChzdGFydFJlZ2lvbikgOiBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsKICAgICBmb3Ig
KDsgcmVnaW9uSXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsrcmVnaW9uSXRlcikgewogICAg
ICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICpyZWdpb25JdGVyOwpAQCAtNzk1LDggKzc5OSw4
IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0Zv
ckxheW91dCgpCiAgICAgQVNTRVJUKHZpZXcoKS0+bGF5b3V0U3RhdGUoKSk7CiAgICAgQVNTRVJU
KHZpZXcoKS0+Y29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dFBoYXNlKCkpOwogCi0gICAgLy8g
RklYTUU6IG9wdGltaXplIHRoaXMgdG8gaXRlcmF0ZSB0aGUgcmVnaW9uIGNoYWluIG9ubHkgaWYg
dGhlIGZsb3cgdGhyZWFkIGhhcyBhdXRvIGxvZ2ljYWwgaGVpZ2h0Ci0gICAgLy8gcmVnaW9uLgor
ICAgIGlmICghaGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpCisgICAgICAgIHJldHVybjsK
IAogICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVnaW9uTGlz
dC5iZWdpbigpOyBpdGVyICE9IG1fcmVnaW9uTGlzdC5lbmQoKTsgKytpdGVyKSB7CiAgICAgICAg
IFJlbmRlclJlZ2lvbiogcmVnaW9uID0gKml0ZXI7CkBAIC05MTIsNiArOTE2LDIxIEBAIGJvb2wg
UmVuZGVyRmxvd1RocmVhZDo6YWRkRm9yY2VkUmVnaW9uQnJlYWsoTGF5b3V0VW5pdCBvZmZzZXRC
cmVha0luRmxvd1RocmVhZCwKICAgICByZXR1cm4gb3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdo
dENvbXB1dGVkOwogfQogCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmluY3JlbWVudEF1dG9Mb2dp
Y2FsSGVpZ2h0UmVnaW9ucygpCit7CisgICAgaWYgKCFtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9u
c0NvdW50KQorICAgICAgICB2aWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVyKCktPmluY3JlbWVu
dEZsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpOworICAgICsrbV9hdXRv
TG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsKK30KKwordm9pZCBSZW5kZXJGbG93VGhyZWFkOjpk
ZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKQoreworICAgIEFTU0VSVChtX2F1dG9M
b2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50ID4gMCk7CisgICAgLS1tX2F1dG9Mb2dpY2FsSGVpZ2h0
UmVnaW9uc0NvdW50OworICAgIGlmICghbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudCkK
KyAgICAgICAgdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5kZWNyZW1lbnRGbG93VGhy
ZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsKK30KKwogQ3VycmVudFJlbmRlckZs
b3dUaHJlYWRNYWludGFpbmVyOjpDdXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWluZXIoUmVu
ZGVyRmxvd1RocmVhZCogcmVuZGVyRmxvd1RocmVhZCkKICAgICA6IG1fcmVuZGVyRmxvd1RocmVh
ZChyZW5kZXJGbG93VGhyZWFkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmgKaW5kZXggYzY1YjdkYTYwYzEzMGJkYzkxN2VkMzgwZWQwY2Q2ZTA1NzU1NGRk
ZS4uMzFkNzY5N2ExMWE0ZDkyMGUxMjY4Mjk3MjgxMGZhMGFmZTJlMTkxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCkBAIC0xMzUsOCArMTM1LDEyIEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQ7IH0KIAorICAgIGJvb2wgaGFzQXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zKCkgY29uc3QgeyBBU1NFUlQoaXNBdXRvTG9naWNhbEhlaWdodFJl
Z2lvbnNDb3VudENvbnNpc3RlbnQoKSk7IHJldHVybiBtX2F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9u
c0NvdW50OyB9CisgICAgdm9pZCBpbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKTsK
KyAgICB2b2lkIGRlY3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpOworCiAjaWZuZGVm
IE5ERUJVRwotICAgIHVuc2lnbmVkIGF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50KCkgY29u
c3Q7CisgICAgYm9vbCBpc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0NvdW50Q29uc2lzdGVudCgp
IGNvbnN0OwogI2VuZGlmCiAKIHByb3RlY3RlZDoKQEAgLTE5Miw2ICsxOTYsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgUmVuZGVyT2JqZWN0VG9SZWdpb25NYXAgbV9icmVha0JlZm9yZVRvUmVnaW9uTWFw
OwogICAgIFJlbmRlck9iamVjdFRvUmVnaW9uTWFwIG1fYnJlYWtBZnRlclRvUmVnaW9uTWFwOwog
CisgICAgdW5zaWduZWQgbV9hdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudDsKKwogICAgIGJv
b2wgbV9yZWdpb25zSW52YWxpZGF0ZWQgOiAxOwogICAgIGJvb2wgbV9yZWdpb25zSGF2ZVVuaWZv
cm1Mb2dpY2FsV2lkdGggOiAxOwogICAgIGJvb2wgbV9yZWdpb25zSGF2ZVVuaWZvcm1Mb2dpY2Fs
SGVpZ2h0IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKaW5k
ZXggOWZjMWY0MTY2YjgxMzRlNzY2NWYzY2YxY2JiNTk2YTU2OTEyNDZjZS4uOTYzMTU2YTU2MzU1
NTU2YTQ5ZDc0MTgyYTUwNjJhNzg2MzI2NzU3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlZ2lvbi5jcHAKQEAgLTE4NSw2ICsxODUsMjMgQEAgdm9pZCBSZW5kZXJSZWdpb246
OmNoZWNrUmVnaW9uU3R5bGUoKQogICAgIG1fZmxvd1RocmVhZC0+Y2hlY2tSZWdpb25zV2l0aFN0
eWxpbmcoKTsKIH0KIAordm9pZCBSZW5kZXJSZWdpb246OmluY3JlbWVudEF1dG9Mb2dpY2FsSGVp
Z2h0Q291bnQoKQoreworICAgIEFTU0VSVChtX2Zsb3dUaHJlYWQpOworICAgIEFTU0VSVChpc1Zh
bGlkKCkpOworICAgIEFTU0VSVChtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0KTsKKworICAgIG1fZmxv
d1RocmVhZC0+aW5jcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7Cit9CisKK3ZvaWQg
UmVuZGVyUmVnaW9uOjpkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodENvdW50KCkKK3sKKyAgICBB
U1NFUlQobV9mbG93VGhyZWFkKTsKKyAgICBBU1NFUlQoaXNWYWxpZCgpKTsKKworICAgIG1fZmxv
d1RocmVhZC0+ZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7Cit9CisKIHZvaWQg
UmVuZGVyUmVnaW9uOjp1cGRhdGVSZWdpb25IYXNBdXRvTG9naWNhbEhlaWdodEZsYWcoKQogewog
ICAgIEFTU0VSVChtX2Zsb3dUaHJlYWQpOwpAQCAtMTk2LDEwICsyMTMsMTAgQEAgdm9pZCBSZW5k
ZXJSZWdpb246OnVwZGF0ZVJlZ2lvbkhhc0F1dG9Mb2dpY2FsSGVpZ2h0RmxhZygpCiAgICAgbV9o
YXNBdXRvTG9naWNhbEhlaWdodCA9IHNob3VsZEhhdmVBdXRvTG9naWNhbEhlaWdodCgpOwogICAg
IGlmIChtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0ICE9IGRpZEhhdmVBdXRvTG9naWNhbEhlaWdodCkg
ewogICAgICAgICBpZiAobV9oYXNBdXRvTG9naWNhbEhlaWdodCkKLSAgICAgICAgICAgIHZpZXco
KS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+aW5jcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdp
b25zKCk7CisgICAgICAgICAgICBpbmNyZW1lbnRBdXRvTG9naWNhbEhlaWdodENvdW50KCk7CiAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgY2xlYXJPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVp
Z2h0KCk7Ci0gICAgICAgICAgICB2aWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVyKCktPmRlY3Jl
bWVudEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpOworICAgICAgICAgICAgZGVjcmVtZW50QXV0
b0xvZ2ljYWxIZWlnaHRDb3VudCgpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMzI5LDE3ICsz
NDYsMTUgQEAgdm9pZCBSZW5kZXJSZWdpb246OmF0dGFjaFJlZ2lvbigpCiAKICAgICBtX2hhc0F1
dG9Mb2dpY2FsSGVpZ2h0ID0gc2hvdWxkSGF2ZUF1dG9Mb2dpY2FsSGVpZ2h0KCk7CiAgICAgaWYg
KGhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkpCi0gICAgICAgIHZpZXcoKS0+Zmxvd1RocmVhZENvbnRy
b2xsZXIoKS0+aW5jcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7CisgICAgICAgIGlu
Y3JlbWVudEF1dG9Mb2dpY2FsSGVpZ2h0Q291bnQoKTsKIH0KIAogdm9pZCBSZW5kZXJSZWdpb246
OmRldGFjaFJlZ2lvbigpCiB7CiAgICAgaWYgKG1fZmxvd1RocmVhZCkgewogICAgICAgICBtX2Zs
b3dUaHJlYWQtPnJlbW92ZVJlZ2lvbkZyb21UaHJlYWQodGhpcyk7Ci0gICAgICAgIGlmIChoYXNB
dXRvTG9naWNhbEhlaWdodCgpKSB7Ci0gICAgICAgICAgICBBU1NFUlQoaXNWYWxpZCgpKTsKLSAg
ICAgICAgICAgIHZpZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+ZGVjcmVtZW50QXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zKCk7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKGhhc0F1dG9Mb2dp
Y2FsSGVpZ2h0KCkpCisgICAgICAgICAgICBkZWNyZW1lbnRBdXRvTG9naWNhbEhlaWdodENvdW50
KCk7CiAgICAgfQogICAgIG1fZmxvd1RocmVhZCA9IDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVnaW9uLmgKaW5kZXggZDllZjQ1ZmEzOTI1MDEyMzVmYjM1ZThlYTU3MDk0ZmMw
NDYyNzA0MS4uMjQyMWRjOTNkN2RiNGUyMDRiNDJmZTAzMDk1MDQyOThlNWZkNTljMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaApAQCAtMTY4LDYgKzE2OCw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBjaGVja1JlZ2lvblN0eWxlKCk7CiAgICAgdm9pZCB1cGRhdGVSZWdp
b25IYXNBdXRvTG9naWNhbEhlaWdodEZsYWcoKTsKIAorICAgIHZvaWQgaW5jcmVtZW50QXV0b0xv
Z2ljYWxIZWlnaHRDb3VudCgpOworICAgIHZvaWQgZGVjcmVtZW50QXV0b0xvZ2ljYWxIZWlnaHRD
b3VudCgpOworCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyRmxvd1RocmVhZCogbV9mbG93VGhyZWFk
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggMWZkOWZlZGIy
ODUzYjhjMWRhYzc5OTI0ZjhmNmMyZmMzMzJiZmI2ZC4uNjA5NzY3MmY4YTk0M2QyNTMzMTAzNWRk
MDgzMzg2OTBiMGY5NTI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cApAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAgYm9vbCBSZW5kZXJWaWV3OjpoYXNSZW5kZXJOYW1lZEZs
b3dUaHJlYWRzKCkgY29uc3QKIAogYm9vbCBSZW5kZXJWaWV3OjpjaGVja1R3b1Bhc3NMYXlvdXRG
b3JBdXRvSGVpZ2h0UmVnaW9ucygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGhhc1JlbmRlck5hbWVk
Rmxvd1RocmVhZHMoKSAmJiBtX2Zsb3dUaHJlYWRDb250cm9sbGVyLT5oYXNBdXRvTG9naWNhbEhl
aWdodFJlZ2lvbnMoKTsKKyAgICByZXR1cm4gaGFzUmVuZGVyTmFtZWRGbG93VGhyZWFkcygpICYm
IG1fZmxvd1RocmVhZENvbnRyb2xsZXItPmhhc0Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVp
Z2h0UmVnaW9ucygpOwogfQogCiBGbG93VGhyZWFkQ29udHJvbGxlciogUmVuZGVyVmlldzo6Zmxv
d1RocmVhZENvbnRyb2xsZXIoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>