<?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>99862</bug_id>
          
          <creation_ts>2012-10-19 12:14:34 -0700</creation_ts>
          <short_desc>[chromium] Restrict link highlights to targets that display a hand-cursor</short_desc>
          <delta_ts>2012-10-30 14:29:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="W. James MacLean">wjmaclean</reporter>
          <assigned_to name="W. James MacLean">wjmaclean</assigned_to>
          <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>746519</commentid>
    <comment_count>0</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-19 12:14:34 -0700</bug_when>
    <thetext>[chromium] Restrict link highlights to targets that display a hand-cursor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746522</commentid>
    <comment_count>1</comment_count>
      <attachid>169671</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-19 12:18:56 -0700</bug_when>
    <thetext>Created attachment 169671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746544</commentid>
    <comment_count>2</comment_count>
      <attachid>169676</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-19 12:40:55 -0700</bug_when>
    <thetext>Created attachment 169676
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746547</commentid>
    <comment_count>3</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-19 12:41:43 -0700</bug_when>
    <thetext>Add fixed to rotated div layout test in this revised patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746561</commentid>
    <comment_count>4</comment_count>
      <attachid>169676</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-19 12:54:53 -0700</bug_when>
    <thetext>Comment on attachment 169676
Patch

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

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1179
&gt; +static bool invokesHandCursor(Node* node, bool shiftKey)

This seems like a strange heuristic to be applying in the WebKit layer.  Normally this is the sort of decision that WebCore would make.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747622</commentid>
    <comment_count>5</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-22 09:35:19 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 169676 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169676&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1179
&gt; &gt; +static bool invokesHandCursor(Node* node, bool shiftKey)
&gt; 
&gt; This seems like a strange heuristic to be applying in the WebKit layer.  Normally this is the sort of decision that WebCore would make.

Agreed, but there doesn&apos;t seem to be a simple way to ask WebCore if a particular node *would* get a hand cursor (I looked at re-factoring EventHandler::selectCursor() to see if I could separate the logic used for auto-cursor selection in a way that would allow it to be used externally, but it seemed  difficult to get a clean re-factoring). I can present a CL based on this if you prefer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748181</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-22 19:17:57 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 169676 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169676&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1179
&gt; &gt; &gt; +static bool invokesHandCursor(Node* node, bool shiftKey)
&gt; &gt; 
&gt; &gt; This seems like a strange heuristic to be applying in the WebKit layer.  Normally this is the sort of decision that WebCore would make.
&gt; 
&gt; Agreed, but there doesn&apos;t seem to be a simple way to ask WebCore if a particular node *would* get a hand cursor (I looked at re-factoring EventHandler::selectCursor() to see if I could separate the logic used for auto-cursor selection in a way that would allow it to be used externally, but it seemed  difficult to get a clean re-factoring). I can present a CL based on this if you prefer.

I&apos;d like to explore that direction.  This case seems very similar.  We&apos;re doing a hit-test and want to see what the resulting cursor is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754494</commentid>
    <comment_count>7</comment_count>
      <attachid>171481</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-30 10:29:04 -0700</bug_when>
    <thetext>Created attachment 171481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754495</commentid>
    <comment_count>8</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-10-30 10:30:57 -0700</bug_when>
    <thetext>I&apos;ve re-factored this to keep all the logic for determining when a handCursor() is appropriate in EventHandler, short of consulting node-&gt;style()-cursor().

PTAL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754640</commentid>
    <comment_count>9</comment_count>
      <attachid>171481</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-30 13:55:23 -0700</bug_when>
    <thetext>Comment on attachment 171481
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754657</commentid>
    <comment_count>10</comment_count>
      <attachid>171481</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-30 14:29:53 -0700</bug_when>
    <thetext>Comment on attachment 171481
Patch

Clearing flags on attachment: 171481

Committed r132945: &lt;http://trac.webkit.org/changeset/132945&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754658</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-30 14:29:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169671</attachid>
            <date>2012-10-19 12:18:56 -0700</date>
            <delta_ts>2012-10-19 12:40:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99862-20121019151740.patch</filename>
            <type>text/plain</type>
            <size>10522</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDlhZGJjNDBmODQ2YzkwMzg3NjEzZDhjMjE0ZGJmMGU4MWNlZjVkYjUuLjUwMzQ5YzhmOTJiMjIx
N2I2NGE4ZTBhNjZhZGEzMmE2NzFlMDRiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTItMTAtMTkgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVzdHJpY3QgbGluayBoaWdobGln
aHRzIHRvIHRhcmdldHMgdGhhdCBkaXNwbGF5IGEgaGFuZC1jdXJzb3IKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5ODYyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gYXZvaWQgYXBwbHlpbmcgaGlnaGxp
Z2h0cyB0byBpbmFwcHJvcHJpYXRlIHRhcmdldHMsIHN1Y2ggYXMgbGFyZ2UgZGl2cyB3aXRoCisg
ICAgICAgIGNsaWNrIGhhbmRsZXJzIGluc3RhbGxlZCwgdGVzdCBjYW5kaWRhdGUgdGFyZ2V0cyBh
bmQgb25seSBoaWdobGlnaHQgdGhlbSBpZiB0aGV5CisgICAgICAgIHdvdWxkIG5vcm1hbGx5IGRp
c3BsYXkgYSBoYW5kIGN1cnNvciBvbiBtb3VzZSBvdmVyLiBUaGlzIGlzIGEgaGV1cmlzdGljLCBi
dXQgaGFzCisgICAgICAgIGJlZW4gdGVzdGVkIGFuZCBmb3VuZCBlZmZlY3RpdmUgaW4gcHJhY3Rp
Y2UuCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6aW52b2tl
c0hhbmRDdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YmVzdFRvdWNoTGlu
a05vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5hYmxlVG91Y2hIaWdobGln
aHQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwp
OgorICAgICAgICAqIHRlc3RzL0xpbmtIaWdobGlnaHRUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRFU1QpOgorICAgICAgICAqIHRlc3RzL2RhdGEvdGVzdF90b3VjaF9saW5rX2hpZ2hsaWdo
dC5odG1sOgorCiAyMDEyLTEwLTE3ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOTUkgcHJvdmlkZSBkYXRhIGZvciBtaXhp
bmcgd2l0aCB0Y21hbGxvYyBoZWFwIGR1bXBzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCmluZGV4IDgwYmY1MzdjMzg1ODI4ZTMxNmMyNGRkODk0MjgxZTE0NGM5
MjMyMWYuLjhjMTc2NDRiNzk3NGQ2NDcxZGVkMjg0YzM4N2UyN2FlZjI1NDYxODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTY3MSw3ICs2NzEsNyBA
QCBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2
ZW50JiBldmVudCkKICAgICAgICAgLy8gUXVldWUgYSBoaWdobGlnaHQgYW5pbWF0aW9uLCB0aGVu
IGhhbmQgb2ZmIHRvIHJlZ3VsYXIgaGFuZGxlci4KICNpZiBPUyhMSU5VWCkKICAgICAgICAgaWYg
KHNldHRpbmdzSW1wbCgpLT5nZXN0dXJlVGFwSGlnaGxpZ2h0RW5hYmxlZCgpKQotICAgICAgICAg
ICAgZW5hYmxlVG91Y2hIaWdobGlnaHQoSW50UG9pbnQoZXZlbnQueCwgZXZlbnQueSkpOworICAg
ICAgICAgICAgZW5hYmxlVG91Y2hIaWdobGlnaHQoZXZlbnQpOwogI2VuZGlmCiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKQEAgLTExNzYs
MTUgKzExNzYsNDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6Y29tcHV0ZVNjYWxlQW5kU2Nyb2xsRm9y
SGl0UmVjdChjb25zdCBXZWJSZWN0JiBoaXRSZWN0LCBBdXRvWm8KICAgICAgICAgc2Nyb2xsID0g
Y2xhbXBPZmZzZXRBdFNjYWxlKHNjcm9sbCwgc2NhbGUpOwogfQogCi1zdGF0aWMgYm9vbCBoaWdo
bGlnaHRDb25kaXRpb25zKE5vZGUqIG5vZGUpCitzdGF0aWMgYm9vbCBpbnZva2VzSGFuZEN1cnNv
cihOb2RlKiBub2RlLCBib29sIHNoaWZ0S2V5KQogewotICAgIHJldHVybiBub2RlLT5zdXBwb3J0
c0ZvY3VzKCkKLSAgICAgICAgICAgfHwgbm9kZS0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1l
cygpLmNsaWNrRXZlbnQpCi0gICAgICAgICAgIHx8IG5vZGUtPmhhc0V2ZW50TGlzdGVuZXJzKGV2
ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCkKLSAgICAgICAgICAgfHwgbm9kZS0+aGFzRXZlbnRM
aXN0ZW5lcnMoZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCk7CisgICAgLy8gVGhpcyBpcyBhIHBh
cnRpYWwgZXh0cmFjdGlvbiBvZiB0aGUgbG9naWMgdXNlZCBpbiBFdmVudEhhbmRsZXI6OnNlbGVj
dEN1cnNvcigpLAorICAgIC8vIGJ1dCBkZXNpZ25lZCB0byB3b3JrIHdpdGggdGhlIHJhdyBOb2Rl
IHJldHVybmVkIGZyb20gRXZlbnRIYW5kbGVyOjpiZXN0Q2xpY2thYmxlTm9kZUZvclRvdWNoUG9p
bnQoKS4KKyAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgbmljZSB0byBmaW5kIGEgZ29vZCByZWZh
Y3RvcmluZyBvZiBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcigpCisgICAgLy8gdG8gZXh0cmFj
dCB0aGUgbG9naWMgZm9yIGRldGVybWluaW5nIGF1dG8tY3Vyc29yIHR5cGVzIGluIGEgc2ltcGxl
ciBmYXNoaW9uIChpLmUuIG5vdAorICAgIC8vIHJlcXVpcmluZyBhIE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdCkgdGhhdCBjb3VsZCBiZSByZS11c2VkIGhlcmUuCisgICAgaWYgKCFub2RlIHx8
ICFub2RlLT5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBib29sIGlz
SGFuZEN1cnNvciA9IG5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCktPmN1cnNvcigpID09IENVUlNP
Ul9QT0lOVEVSOworICAgIGlmICghaXNIYW5kQ3Vyc29yICYmIG5vZGUtPnJlbmRlcmVyKCktPnN0
eWxlKCktPmN1cnNvcigpID09IENVUlNPUl9BVVRPKSB7CisgICAgICAgIGJvb2wgZWRpdGFibGUg
PSBub2RlLT5yZW5kZXJlcklzRWRpdGFibGUoKTsKKyAgICAgICAgYm9vbCBlZGl0YWJsZUxpbmtF
bmFibGVkID0gZmFsc2U7CisKKyAgICAgICAgaWYgKGVkaXRhYmxlKSB7CisgICAgICAgICAgICBG
cmFtZSogZnJhbWUgPSBub2RlLT5yZW5kZXJlcigpLT5mcmFtZSgpOworICAgICAgICAgICAgQVNT
RVJUKGZyYW1lICYmIGZyYW1lLT5zZXR0aW5ncygpKTsKKyAgICAgICAgICAgIHN3aXRjaCAoZnJh
bWUtPnNldHRpbmdzKCktPmVkaXRhYmxlTGlua0JlaGF2aW9yKCkpIHsKKyAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKKyAg
ICAgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQWx3YXlzTGl2ZToKKyAgICAgICAgICAgICAgICBl
ZGl0YWJsZUxpbmtFbmFibGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgRWRpdGFibGVMaW5rTmV2ZXJMaXZlOgorICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAg
ICAgICAgICAgICAgZWRpdGFibGVMaW5rRW5hYmxlZCA9IGZyYW1lLT5zZWxlY3Rpb24oKS0+cm9v
dEVkaXRhYmxlRWxlbWVudCgpICE9IG5vZGUtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSB8fCBzaGlm
dEtleTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRWRpdGFibGVM
aW5rT25seUxpdmVXaXRoU2hpZnRLZXk6CisgICAgICAgICAgICAgICAgZWRpdGFibGVMaW5rRW5h
YmxlZCA9IHNoaWZ0S2V5OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIGlmIChub2RlLT5pc0xpbmsoKSB8fCAoKG5vZGUtPmhhc1RhZ05h
bWUoSFRNTE5hbWVzOjppbnB1dFRhZykgJiYgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+
KG5vZGUpLT5pc0ltYWdlQnV0dG9uKCkpICYmICghZWRpdGFibGUgfHwgZWRpdGFibGVMaW5rRW5h
YmxlZCkpKQorICAgICAgICAgICAgaXNIYW5kQ3Vyc29yID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGlzSGFuZEN1cnNvcjsKIH0KIAotTm9kZSogV2ViVmlld0ltcGw6OmJlc3RUb3VjaExpbmtO
b2RlKEludFBvaW50IHRvdWNoRXZlbnRMb2NhdGlvbikKK05vZGUqIFdlYlZpZXdJbXBsOjpiZXN0
VG91Y2hMaW5rTm9kZShjb25zdCBXZWJHZXN0dXJlRXZlbnQmIHRvdWNoRXZlbnQpCiB7CiAgICAg
aWYgKCFtX3BhZ2UgfHwgIW1fcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybiAwOwpA
QCAtMTE5MywyNyArMTIyNSwyMyBAQCBOb2RlKiBXZWJWaWV3SW1wbDo6YmVzdFRvdWNoTGlua05v
ZGUoSW50UG9pbnQgdG91Y2hFdmVudExvY2F0aW9uKQogCiAgICAgLy8gRklYTUU6IFNob3VsZCBh
Y2NlcHQgYSBzZWFyY2ggcmVnaW9uIGZyb20gdGhlIGNhbGxlciBpbnN0ZWFkIG9mIGhhcmQtY29k
aW5nIHRoZSBzaXplLgogICAgIEludFNpemUgdG91Y2hFdmVudFNlYXJjaFJlZ2lvblNpemUoNCwg
Mik7CisgICAgSW50UG9pbnQgdG91Y2hFdmVudExvY2F0aW9uKHRvdWNoRXZlbnQueCwgdG91Y2hF
dmVudC55KTsKICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+YmVzdENs
aWNrYWJsZU5vZGVGb3JUb3VjaFBvaW50KHRvdWNoRXZlbnRMb2NhdGlvbiwgdG91Y2hFdmVudFNl
YXJjaFJlZ2lvblNpemUsIHRvdWNoRXZlbnRMb2NhdGlvbiwgYmVzdFRvdWNoTm9kZSk7CiAgICAg
Ly8gYmVzdENsaWNrYWJsZU5vZGVGb3JUb3VjaFBvaW50KCkgZG9lc24ndCBhbHdheXMgcmV0dXJu
IGEgbm9kZSB0aGF0IGlzIGEgbGluaywgc28gbGV0J3MgdHJ5IGFuZCBmaW5kCiAgICAgLy8gYSBs
aW5rIHRvIGhpZ2hsaWdodC4KLSAgICB3aGlsZSAoYmVzdFRvdWNoTm9kZSAmJiAhaGlnaGxpZ2h0
Q29uZGl0aW9ucyhiZXN0VG91Y2hOb2RlKSkKKyAgICBib29sIHNoaWZ0S2V5ID0gdG91Y2hFdmVu
dC5tb2RpZmllcnMgJiBXZWJHZXN0dXJlRXZlbnQ6OlNoaWZ0S2V5OworICAgIHdoaWxlIChiZXN0
VG91Y2hOb2RlICYmICFpbnZva2VzSGFuZEN1cnNvcihiZXN0VG91Y2hOb2RlLCBzaGlmdEtleSkp
CiAgICAgICAgIGJlc3RUb3VjaE5vZGUgPSBiZXN0VG91Y2hOb2RlLT5wYXJlbnROb2RlKCk7CiAK
LSAgICAvLyBJZiB0aGUgZG9jdW1lbnQvYm9keSBoYXZlIGNsaWNrIGhhbmRsZXJzIGluc3RhbGxl
ZCwgd2UgZG9uJ3Qgd2FudCB0byBkZWZhdWx0IHRvIGFwcGx5aW5nIHRoZSBoaWdobGlnaHQgdG8g
dGhlIGVudGlyZSBSZW5kZXJWaWV3LCBvciB0aGUKLSAgICAvLyBlbnRpcmUgYm9keS4KLSAgICBS
ZW5kZXJPYmplY3QqIHRvdWNoTm9kZVJlbmRlcmVyID0gYmVzdFRvdWNoTm9kZSA/IGJlc3RUb3Vj
aE5vZGUtPnJlbmRlcmVyKCkgOiAwOwotICAgIGlmIChiZXN0VG91Y2hOb2RlICYmICghdG91Y2hO
b2RlUmVuZGVyZXIgfHwgdG91Y2hOb2RlUmVuZGVyZXItPmlzUmVuZGVyVmlldygpIHx8IHRvdWNo
Tm9kZVJlbmRlcmVyLT5pc0JvZHkoKSkpCi0gICAgICAgIHJldHVybiAwOwotCiAgICAgcmV0dXJu
IGJlc3RUb3VjaE5vZGU7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OmVuYWJsZVRvdWNoSGlnaGxp
Z2h0KEludFBvaW50IHRvdWNoRXZlbnRMb2NhdGlvbikKK3ZvaWQgV2ViVmlld0ltcGw6OmVuYWJs
ZVRvdWNoSGlnaGxpZ2h0KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgdG91Y2hFdmVudCkKIHsKICAg
ICAvLyBBbHdheXMgY2xlYXIgYW55IGV4aXN0aW5nIGhpZ2hsaWdodCB3aGVuIHRoaXMgaXMgaW52
b2tlZCwgZXZlbiBpZiB3ZSBkb24ndCBnZXQgYSBuZXcgdGFyZ2V0IHRvIGhpZ2hsaWdodC4KICAg
ICBtX2xpbmtIaWdobGlnaHQuY2xlYXIoKTsKIAotICAgIE5vZGUqIHRvdWNoTm9kZSA9IGJlc3RU
b3VjaExpbmtOb2RlKHRvdWNoRXZlbnRMb2NhdGlvbik7CisgICAgTm9kZSogdG91Y2hOb2RlID0g
YmVzdFRvdWNoTGlua05vZGUodG91Y2hFdmVudCk7CiAKICAgICBpZiAoIXRvdWNoTm9kZSB8fCAh
dG91Y2hOb2RlLT5yZW5kZXJlcigpIHx8ICF0b3VjaE5vZGUtPnJlbmRlcmVyKCktPmVuY2xvc2lu
Z0xheWVyKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oCmluZGV4IDQ3OTA3ZjEyNDE3ZTNmMjIwYWM4YjAwZjkzNjBhZWZhYWEwZGFmNDIu
Ljg4ODhlYTkwOGUxOWMyYjFjMmFlZjk3ZjMxYjljZmQ2OWU3YzIxYTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtNTYyLDggKzU2Miw4IEBAIHB1YmxpYzoK
IAogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKICAgICB2b2lkIGNvbXB1dGVTY2FsZUFuZFNj
cm9sbEZvckhpdFJlY3QoY29uc3QgV2ViUmVjdCYgaGl0UmVjdCwgQXV0b1pvb21UeXBlLCBmbG9h
dCYgc2NhbGUsIFdlYlBvaW50JiBzY3JvbGwsIGJvb2wmIGlzQW5jaG9yKTsKLSAgICBXZWJDb3Jl
OjpOb2RlKiBiZXN0VG91Y2hMaW5rTm9kZShXZWJDb3JlOjpJbnRQb2ludCB0b3VjaEV2ZW50TG9j
YXRpb24pOwotICAgIHZvaWQgZW5hYmxlVG91Y2hIaWdobGlnaHQoV2ViQ29yZTo6SW50UG9pbnQg
dG91Y2hFdmVudExvY2F0aW9uKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBiZXN0VG91Y2hMaW5rTm9k
ZShjb25zdCBXZWJHZXN0dXJlRXZlbnQmIHRvdWNoRXZlbnQpOworICAgIHZvaWQgZW5hYmxlVG91
Y2hIaWdobGlnaHQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiB0b3VjaEV2ZW50KTsKICNlbmRpZgog
ICAgIHZvaWQgYW5pbWF0ZVpvb21Bcm91bmRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYs
IEF1dG9ab29tVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvTGlua0hpZ2hsaWdodFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9M
aW5rSGlnaGxpZ2h0VGVzdC5jcHAKaW5kZXggZWFmZTIzMDdmMWZkZWJmNzJiZTg1NWVhNjA3ZGQy
ODQxZTczNGZmNC4uMmZkYjM4NGVmMDgzYTg4Y2VkNjA0MmI4ZGJhZWRmNWM5YWI2ODU1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MaW5rSGlnaGxpZ2h0VGVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MaW5rSGlnaGxpZ2h0VGVzdC5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJVUkxUZXN0SGVscGVycy5oIgogI2luY2x1
ZGUgIldlYkNvbXBvc2l0b3JJbml0aWFsaXplci5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCisj
aW5jbHVkZSAiV2ViSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAjaW5j
bHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViQ29udGVudExheWVyLmg+
CkBAIC01OSwyOCArNjAsNDAgQEAgVEVTVChMaW5rSGlnaGxpZ2h0VGVzdCwgdmVyaWZ5V2ViVmll
d0ltcGxJbnRlZ3JhdGlvbikKICAgICB3ZWJWaWV3SW1wbC0+cmVzaXplKFdlYlNpemUocGFnZVdp
ZHRoLCBwYWdlSGVpZ2h0KSk7CiAgICAgd2ViVmlld0ltcGwtPmxheW91dCgpOwogCisgICAgV2Vi
R2VzdHVyZUV2ZW50IHRvdWNoRXZlbnQ7CisKICAgICAvLyBUaGUgY29vcmRpbmF0ZXMgYmVsb3cg
YXJlIGxpbmtlZCB0byBhYnNvbHV0ZSBwb3NpdGlvbnMgaW4gdGhlIHJlZmVyZW5jZWQgLmh0bWwg
ZmlsZS4KLSAgICBJbnRQb2ludCB0b3VjaEV2ZW50TG9jYXRpb24oMjAsIDIwKTsKLSAgICBOb2Rl
KiB0b3VjaE5vZGUgPSB3ZWJWaWV3SW1wbC0+YmVzdFRvdWNoTGlua05vZGUodG91Y2hFdmVudExv
Y2F0aW9uKTsKKyAgICB0b3VjaEV2ZW50LnggPSAyMDsKKyAgICB0b3VjaEV2ZW50LnkgPSAyMDsK
KyAgICBOb2RlKiB0b3VjaE5vZGUgPSB3ZWJWaWV3SW1wbC0+YmVzdFRvdWNoTGlua05vZGUodG91
Y2hFdmVudCk7CiAgICAgQVNTRVJUX1RSVUUodG91Y2hOb2RlKTsKIAotICAgIHRvdWNoRXZlbnRM
b2NhdGlvbiA9IEludFBvaW50KDIwLCA0MCk7Ci0gICAgRVhQRUNUX0ZBTFNFKHdlYlZpZXdJbXBs
LT5iZXN0VG91Y2hMaW5rTm9kZSh0b3VjaEV2ZW50TG9jYXRpb24pKTsKKyAgICB0b3VjaEV2ZW50
LnkgPSA0MDsKKyAgICBFWFBFQ1RfRkFMU0Uod2ViVmlld0ltcGwtPmJlc3RUb3VjaExpbmtOb2Rl
KHRvdWNoRXZlbnQpKTsKIAotICAgIHRvdWNoRXZlbnRMb2NhdGlvbiA9IEludFBvaW50KDIwLCAy
MCk7CisgICAgdG91Y2hFdmVudC55ID0gMjA7CiAgICAgLy8gU2hvdWxkbid0IGNyYXNoLgogCi0g
ICAgd2ViVmlld0ltcGwtPmVuYWJsZVRvdWNoSGlnaGxpZ2h0KHRvdWNoRXZlbnRMb2NhdGlvbik7
CisgICAgd2ViVmlld0ltcGwtPmVuYWJsZVRvdWNoSGlnaGxpZ2h0KHRvdWNoRXZlbnQpOwogICAg
IEVYUEVDVF9UUlVFKHdlYlZpZXdJbXBsLT5saW5rSGlnaGxpZ2h0KCkpOwogICAgIEVYUEVDVF9U
UlVFKHdlYlZpZXdJbXBsLT5saW5rSGlnaGxpZ2h0KCktPmNvbnRlbnRMYXllcigpKTsKICAgICBF
WFBFQ1RfVFJVRSh3ZWJWaWV3SW1wbC0+bGlua0hpZ2hsaWdodCgpLT5jbGlwTGF5ZXIoKSk7CiAK
ICAgICAvLyBGaW5kIGEgdGFyZ2V0IGluc2lkZSBhIHNjcm9sbGFibGUgZGl2CiAKLSAgICB0b3Vj
aEV2ZW50TG9jYXRpb24gPSBJbnRQb2ludCgyMCwgMTAwKTsKLSAgICB3ZWJWaWV3SW1wbC0+ZW5h
YmxlVG91Y2hIaWdobGlnaHQodG91Y2hFdmVudExvY2F0aW9uKTsKKyAgICB0b3VjaEV2ZW50Lnkg
PSAxMDA7CisgICAgd2ViVmlld0ltcGwtPmVuYWJsZVRvdWNoSGlnaGxpZ2h0KHRvdWNoRXZlbnQp
OwogICAgIEFTU0VSVF9UUlVFKHdlYlZpZXdJbXBsLT5saW5rSGlnaGxpZ2h0KCkpOwogCisgICAg
Ly8gRG9uJ3QgaGlnaGxpZ2h0IGlmIG5vICJoYW5kIGN1cnNvciIKKyAgICB0b3VjaEV2ZW50Lnkg
PSAyMjA7IC8vIEFuIEEtbGluayB3aXRoIGNyb3NzLWhhaXIgY3Vyc29yLgorICAgIHdlYlZpZXdJ
bXBsLT5lbmFibGVUb3VjaEhpZ2hsaWdodCh0b3VjaEV2ZW50KTsKKyAgICBBU1NFUlRfRkFMU0Uo
d2ViVmlld0ltcGwtPmxpbmtIaWdobGlnaHQoKSk7CisKKyAgICB0b3VjaEV2ZW50LnkgPSAyNjA7
IC8vIEEgdGV4dCBpbnB1dCBib3guCisgICAgd2ViVmlld0ltcGwtPmVuYWJsZVRvdWNoSGlnaGxp
Z2h0KHRvdWNoRXZlbnQpOworICAgIEFTU0VSVF9GQUxTRSh3ZWJWaWV3SW1wbC0+bGlua0hpZ2hs
aWdodCgpKTsKKwogICAgIHdlYlZpZXdJbXBsLT5jbG9zZSgpOwogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvdGVzdF90b3VjaF9saW5rX2hp
Z2hsaWdodC5odG1sIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3Rlc3RfdG91
Y2hfbGlua19oaWdobGlnaHQuaHRtbAppbmRleCAyMzk0YjI2MjQ5MGVkMGI4NjdkYTVjM2FkZGQ5
MmViYzM5MjAzZmI2Li5lM2UyOWE2MmJjMDk0ZjExZmQ1MGU5ZjBlYTMzM2U3ZTM3NGIwMzA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvdGVzdF90b3VjaF9s
aW5rX2hpZ2hsaWdodC5odG1sCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0
YS90ZXN0X3RvdWNoX2xpbmtfaGlnaGxpZ2h0Lmh0bWwKQEAgLTI0LDYgKzI0LDExIEBACiAgICAg
ICAgIFNvbWUgc3R1ZmYuPGJyPgogICAgICAgICBTb21lIHN0dWZmLjxicj4KICAgICA8L2Rpdj4K
KyAgICA8IS0tIERvbid0IGhpZ2hsaWdodCBpZiBubyBoYW5kIGN1cnNvci4gLS0+CisgICAgPGEg
aHJlZj0iaHR0cDovL3d3dy50ZXN0LmNvbSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVm
dDogMjBweDsgdG9wOiAyMjBweDsgd2lkdGg6IDIwMHB4OyBjdXJzb3I6IGNyb3NzaGFpcjsiPkEg
bGluayB0byAqbm90KiBoaWdobGlnaHQ8L2E+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAyMHB4OyB0b3A6IDI2MHB4OyB3aWR0aDogMjAwcHg7Ij4KKyAgICAgICAg
PGlucHV0IHR5cGU9InRleHQiPiA8IS0tIFRoaXMgd2lsbCBoYXZlIGFuIEktYmVhbSBjdXJzb3Iu
IC0tPgorICAgIDwvZGl2PgogPCEtLSBUaGUgZm9sbG93aW5nIGlzIHRoZSB0ZXh0IGZvciB0aGUg
aWZyYW1lIHRhZyBiZWxvdzoKIDxodG1sPgogPGJvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169676</attachid>
            <date>2012-10-19 12:40:55 -0700</date>
            <delta_ts>2012-10-30 10:29:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99862-20121019153938.patch</filename>
            <type>text/plain</type>
            <size>13245</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxOTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDlhZGJjNDBmODQ2YzkwMzg3NjEzZDhjMjE0ZGJmMGU4MWNlZjVkYjUuLjUwMzQ5YzhmOTJiMjIx
N2I2NGE4ZTBhNjZhZGEzMmE2NzFlMDRiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTItMTAtMTkgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVzdHJpY3QgbGluayBoaWdobGln
aHRzIHRvIHRhcmdldHMgdGhhdCBkaXNwbGF5IGEgaGFuZC1jdXJzb3IKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5ODYyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gYXZvaWQgYXBwbHlpbmcgaGlnaGxp
Z2h0cyB0byBpbmFwcHJvcHJpYXRlIHRhcmdldHMsIHN1Y2ggYXMgbGFyZ2UgZGl2cyB3aXRoCisg
ICAgICAgIGNsaWNrIGhhbmRsZXJzIGluc3RhbGxlZCwgdGVzdCBjYW5kaWRhdGUgdGFyZ2V0cyBh
bmQgb25seSBoaWdobGlnaHQgdGhlbSBpZiB0aGV5CisgICAgICAgIHdvdWxkIG5vcm1hbGx5IGRp
c3BsYXkgYSBoYW5kIGN1cnNvciBvbiBtb3VzZSBvdmVyLiBUaGlzIGlzIGEgaGV1cmlzdGljLCBi
dXQgaGFzCisgICAgICAgIGJlZW4gdGVzdGVkIGFuZCBmb3VuZCBlZmZlY3RpdmUgaW4gcHJhY3Rp
Y2UuCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6aW52b2tl
c0hhbmRDdXJzb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YmVzdFRvdWNoTGlu
a05vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5hYmxlVG91Y2hIaWdobGln
aHQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwp
OgorICAgICAgICAqIHRlc3RzL0xpbmtIaWdobGlnaHRUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRFU1QpOgorICAgICAgICAqIHRlc3RzL2RhdGEvdGVzdF90b3VjaF9saW5rX2hpZ2hsaWdo
dC5odG1sOgorCiAyMDEyLTEwLTE3ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOTUkgcHJvdmlkZSBkYXRhIGZvciBtaXhp
bmcgd2l0aCB0Y21hbGxvYyBoZWFwIGR1bXBzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCmluZGV4IDgwYmY1MzdjMzg1ODI4ZTMxNmMyNGRkODk0MjgxZTE0NGM5
MjMyMWYuLjhjMTc2NDRiNzk3NGQ2NDcxZGVkMjg0YzM4N2UyN2FlZjI1NDYxODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTY3MSw3ICs2NzEsNyBA
QCBib29sIFdlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2
ZW50JiBldmVudCkKICAgICAgICAgLy8gUXVldWUgYSBoaWdobGlnaHQgYW5pbWF0aW9uLCB0aGVu
IGhhbmQgb2ZmIHRvIHJlZ3VsYXIgaGFuZGxlci4KICNpZiBPUyhMSU5VWCkKICAgICAgICAgaWYg
KHNldHRpbmdzSW1wbCgpLT5nZXN0dXJlVGFwSGlnaGxpZ2h0RW5hYmxlZCgpKQotICAgICAgICAg
ICAgZW5hYmxlVG91Y2hIaWdobGlnaHQoSW50UG9pbnQoZXZlbnQueCwgZXZlbnQueSkpOworICAg
ICAgICAgICAgZW5hYmxlVG91Y2hIaWdobGlnaHQoZXZlbnQpOwogI2VuZGlmCiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgV2ViSW5wdXRFdmVudDo6R2VzdHVyZVRhcENhbmNlbDoKQEAgLTExNzYs
MTUgKzExNzYsNDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6Y29tcHV0ZVNjYWxlQW5kU2Nyb2xsRm9y
SGl0UmVjdChjb25zdCBXZWJSZWN0JiBoaXRSZWN0LCBBdXRvWm8KICAgICAgICAgc2Nyb2xsID0g
Y2xhbXBPZmZzZXRBdFNjYWxlKHNjcm9sbCwgc2NhbGUpOwogfQogCi1zdGF0aWMgYm9vbCBoaWdo
bGlnaHRDb25kaXRpb25zKE5vZGUqIG5vZGUpCitzdGF0aWMgYm9vbCBpbnZva2VzSGFuZEN1cnNv
cihOb2RlKiBub2RlLCBib29sIHNoaWZ0S2V5KQogewotICAgIHJldHVybiBub2RlLT5zdXBwb3J0
c0ZvY3VzKCkKLSAgICAgICAgICAgfHwgbm9kZS0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1l
cygpLmNsaWNrRXZlbnQpCi0gICAgICAgICAgIHx8IG5vZGUtPmhhc0V2ZW50TGlzdGVuZXJzKGV2
ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCkKLSAgICAgICAgICAgfHwgbm9kZS0+aGFzRXZlbnRM
aXN0ZW5lcnMoZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCk7CisgICAgLy8gVGhpcyBpcyBhIHBh
cnRpYWwgZXh0cmFjdGlvbiBvZiB0aGUgbG9naWMgdXNlZCBpbiBFdmVudEhhbmRsZXI6OnNlbGVj
dEN1cnNvcigpLAorICAgIC8vIGJ1dCBkZXNpZ25lZCB0byB3b3JrIHdpdGggdGhlIHJhdyBOb2Rl
IHJldHVybmVkIGZyb20gRXZlbnRIYW5kbGVyOjpiZXN0Q2xpY2thYmxlTm9kZUZvclRvdWNoUG9p
bnQoKS4KKyAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgbmljZSB0byBmaW5kIGEgZ29vZCByZWZh
Y3RvcmluZyBvZiBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcigpCisgICAgLy8gdG8gZXh0cmFj
dCB0aGUgbG9naWMgZm9yIGRldGVybWluaW5nIGF1dG8tY3Vyc29yIHR5cGVzIGluIGEgc2ltcGxl
ciBmYXNoaW9uIChpLmUuIG5vdAorICAgIC8vIHJlcXVpcmluZyBhIE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdCkgdGhhdCBjb3VsZCBiZSByZS11c2VkIGhlcmUuCisgICAgaWYgKCFub2RlIHx8
ICFub2RlLT5yZW5kZXJlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBib29sIGlz
SGFuZEN1cnNvciA9IG5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCktPmN1cnNvcigpID09IENVUlNP
Ul9QT0lOVEVSOworICAgIGlmICghaXNIYW5kQ3Vyc29yICYmIG5vZGUtPnJlbmRlcmVyKCktPnN0
eWxlKCktPmN1cnNvcigpID09IENVUlNPUl9BVVRPKSB7CisgICAgICAgIGJvb2wgZWRpdGFibGUg
PSBub2RlLT5yZW5kZXJlcklzRWRpdGFibGUoKTsKKyAgICAgICAgYm9vbCBlZGl0YWJsZUxpbmtF
bmFibGVkID0gZmFsc2U7CisKKyAgICAgICAgaWYgKGVkaXRhYmxlKSB7CisgICAgICAgICAgICBG
cmFtZSogZnJhbWUgPSBub2RlLT5yZW5kZXJlcigpLT5mcmFtZSgpOworICAgICAgICAgICAgQVNT
RVJUKGZyYW1lICYmIGZyYW1lLT5zZXR0aW5ncygpKTsKKyAgICAgICAgICAgIHN3aXRjaCAoZnJh
bWUtPnNldHRpbmdzKCktPmVkaXRhYmxlTGlua0JlaGF2aW9yKCkpIHsKKyAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjoKKyAg
ICAgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQWx3YXlzTGl2ZToKKyAgICAgICAgICAgICAgICBl
ZGl0YWJsZUxpbmtFbmFibGVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgRWRpdGFibGVMaW5rTmV2ZXJMaXZlOgorICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtMaXZlV2hlbk5vdEZvY3VzZWQ6CisgICAg
ICAgICAgICAgICAgZWRpdGFibGVMaW5rRW5hYmxlZCA9IGZyYW1lLT5zZWxlY3Rpb24oKS0+cm9v
dEVkaXRhYmxlRWxlbWVudCgpICE9IG5vZGUtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSB8fCBzaGlm
dEtleTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRWRpdGFibGVM
aW5rT25seUxpdmVXaXRoU2hpZnRLZXk6CisgICAgICAgICAgICAgICAgZWRpdGFibGVMaW5rRW5h
YmxlZCA9IHNoaWZ0S2V5OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIGlmIChub2RlLT5pc0xpbmsoKSB8fCAoKG5vZGUtPmhhc1RhZ05h
bWUoSFRNTE5hbWVzOjppbnB1dFRhZykgJiYgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+
KG5vZGUpLT5pc0ltYWdlQnV0dG9uKCkpICYmICghZWRpdGFibGUgfHwgZWRpdGFibGVMaW5rRW5h
YmxlZCkpKQorICAgICAgICAgICAgaXNIYW5kQ3Vyc29yID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGlzSGFuZEN1cnNvcjsKIH0KIAotTm9kZSogV2ViVmlld0ltcGw6OmJlc3RUb3VjaExpbmtO
b2RlKEludFBvaW50IHRvdWNoRXZlbnRMb2NhdGlvbikKK05vZGUqIFdlYlZpZXdJbXBsOjpiZXN0
VG91Y2hMaW5rTm9kZShjb25zdCBXZWJHZXN0dXJlRXZlbnQmIHRvdWNoRXZlbnQpCiB7CiAgICAg
aWYgKCFtX3BhZ2UgfHwgIW1fcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybiAwOwpA
QCAtMTE5MywyNyArMTIyNSwyMyBAQCBOb2RlKiBXZWJWaWV3SW1wbDo6YmVzdFRvdWNoTGlua05v
ZGUoSW50UG9pbnQgdG91Y2hFdmVudExvY2F0aW9uKQogCiAgICAgLy8gRklYTUU6IFNob3VsZCBh
Y2NlcHQgYSBzZWFyY2ggcmVnaW9uIGZyb20gdGhlIGNhbGxlciBpbnN0ZWFkIG9mIGhhcmQtY29k
aW5nIHRoZSBzaXplLgogICAgIEludFNpemUgdG91Y2hFdmVudFNlYXJjaFJlZ2lvblNpemUoNCwg
Mik7CisgICAgSW50UG9pbnQgdG91Y2hFdmVudExvY2F0aW9uKHRvdWNoRXZlbnQueCwgdG91Y2hF
dmVudC55KTsKICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+YmVzdENs
aWNrYWJsZU5vZGVGb3JUb3VjaFBvaW50KHRvdWNoRXZlbnRMb2NhdGlvbiwgdG91Y2hFdmVudFNl
YXJjaFJlZ2lvblNpemUsIHRvdWNoRXZlbnRMb2NhdGlvbiwgYmVzdFRvdWNoTm9kZSk7CiAgICAg
Ly8gYmVzdENsaWNrYWJsZU5vZGVGb3JUb3VjaFBvaW50KCkgZG9lc24ndCBhbHdheXMgcmV0dXJu
IGEgbm9kZSB0aGF0IGlzIGEgbGluaywgc28gbGV0J3MgdHJ5IGFuZCBmaW5kCiAgICAgLy8gYSBs
aW5rIHRvIGhpZ2hsaWdodC4KLSAgICB3aGlsZSAoYmVzdFRvdWNoTm9kZSAmJiAhaGlnaGxpZ2h0
Q29uZGl0aW9ucyhiZXN0VG91Y2hOb2RlKSkKKyAgICBib29sIHNoaWZ0S2V5ID0gdG91Y2hFdmVu
dC5tb2RpZmllcnMgJiBXZWJHZXN0dXJlRXZlbnQ6OlNoaWZ0S2V5OworICAgIHdoaWxlIChiZXN0
VG91Y2hOb2RlICYmICFpbnZva2VzSGFuZEN1cnNvcihiZXN0VG91Y2hOb2RlLCBzaGlmdEtleSkp
CiAgICAgICAgIGJlc3RUb3VjaE5vZGUgPSBiZXN0VG91Y2hOb2RlLT5wYXJlbnROb2RlKCk7CiAK
LSAgICAvLyBJZiB0aGUgZG9jdW1lbnQvYm9keSBoYXZlIGNsaWNrIGhhbmRsZXJzIGluc3RhbGxl
ZCwgd2UgZG9uJ3Qgd2FudCB0byBkZWZhdWx0IHRvIGFwcGx5aW5nIHRoZSBoaWdobGlnaHQgdG8g
dGhlIGVudGlyZSBSZW5kZXJWaWV3LCBvciB0aGUKLSAgICAvLyBlbnRpcmUgYm9keS4KLSAgICBS
ZW5kZXJPYmplY3QqIHRvdWNoTm9kZVJlbmRlcmVyID0gYmVzdFRvdWNoTm9kZSA/IGJlc3RUb3Vj
aE5vZGUtPnJlbmRlcmVyKCkgOiAwOwotICAgIGlmIChiZXN0VG91Y2hOb2RlICYmICghdG91Y2hO
b2RlUmVuZGVyZXIgfHwgdG91Y2hOb2RlUmVuZGVyZXItPmlzUmVuZGVyVmlldygpIHx8IHRvdWNo
Tm9kZVJlbmRlcmVyLT5pc0JvZHkoKSkpCi0gICAgICAgIHJldHVybiAwOwotCiAgICAgcmV0dXJu
IGJlc3RUb3VjaE5vZGU7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OmVuYWJsZVRvdWNoSGlnaGxp
Z2h0KEludFBvaW50IHRvdWNoRXZlbnRMb2NhdGlvbikKK3ZvaWQgV2ViVmlld0ltcGw6OmVuYWJs
ZVRvdWNoSGlnaGxpZ2h0KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgdG91Y2hFdmVudCkKIHsKICAg
ICAvLyBBbHdheXMgY2xlYXIgYW55IGV4aXN0aW5nIGhpZ2hsaWdodCB3aGVuIHRoaXMgaXMgaW52
b2tlZCwgZXZlbiBpZiB3ZSBkb24ndCBnZXQgYSBuZXcgdGFyZ2V0IHRvIGhpZ2hsaWdodC4KICAg
ICBtX2xpbmtIaWdobGlnaHQuY2xlYXIoKTsKIAotICAgIE5vZGUqIHRvdWNoTm9kZSA9IGJlc3RU
b3VjaExpbmtOb2RlKHRvdWNoRXZlbnRMb2NhdGlvbik7CisgICAgTm9kZSogdG91Y2hOb2RlID0g
YmVzdFRvdWNoTGlua05vZGUodG91Y2hFdmVudCk7CiAKICAgICBpZiAoIXRvdWNoTm9kZSB8fCAh
dG91Y2hOb2RlLT5yZW5kZXJlcigpIHx8ICF0b3VjaE5vZGUtPnJlbmRlcmVyKCktPmVuY2xvc2lu
Z0xheWVyKCkpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oCmluZGV4IDQ3OTA3ZjEyNDE3ZTNmMjIwYWM4YjAwZjkzNjBhZWZhYWEwZGFmNDIu
Ljg4ODhlYTkwOGUxOWMyYjFjMmFlZjk3ZjMxYjljZmQ2OWU3YzIxYTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtNTYyLDggKzU2Miw4IEBAIHB1YmxpYzoK
IAogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKICAgICB2b2lkIGNvbXB1dGVTY2FsZUFuZFNj
cm9sbEZvckhpdFJlY3QoY29uc3QgV2ViUmVjdCYgaGl0UmVjdCwgQXV0b1pvb21UeXBlLCBmbG9h
dCYgc2NhbGUsIFdlYlBvaW50JiBzY3JvbGwsIGJvb2wmIGlzQW5jaG9yKTsKLSAgICBXZWJDb3Jl
OjpOb2RlKiBiZXN0VG91Y2hMaW5rTm9kZShXZWJDb3JlOjpJbnRQb2ludCB0b3VjaEV2ZW50TG9j
YXRpb24pOwotICAgIHZvaWQgZW5hYmxlVG91Y2hIaWdobGlnaHQoV2ViQ29yZTo6SW50UG9pbnQg
dG91Y2hFdmVudExvY2F0aW9uKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBiZXN0VG91Y2hMaW5rTm9k
ZShjb25zdCBXZWJHZXN0dXJlRXZlbnQmIHRvdWNoRXZlbnQpOworICAgIHZvaWQgZW5hYmxlVG91
Y2hIaWdobGlnaHQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiB0b3VjaEV2ZW50KTsKICNlbmRpZgog
ICAgIHZvaWQgYW5pbWF0ZVpvb21Bcm91bmRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYs
IEF1dG9ab29tVHlwZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvTGlua0hpZ2hsaWdodFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9M
aW5rSGlnaGxpZ2h0VGVzdC5jcHAKaW5kZXggZWFmZTIzMDdmMWZkZWJmNzJiZTg1NWVhNjA3ZGQy
ODQxZTczNGZmNC4uMmZkYjM4NGVmMDgzYTg4Y2VkNjA0MmI4ZGJhZWRmNWM5YWI2ODU1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MaW5rSGlnaGxpZ2h0VGVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MaW5rSGlnaGxpZ2h0VGVzdC5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJVUkxUZXN0SGVscGVycy5oIgogI2luY2x1
ZGUgIldlYkNvbXBvc2l0b3JJbml0aWFsaXplci5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCisj
aW5jbHVkZSAiV2ViSW5wdXRFdmVudC5oIgogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCiAjaW5j
bHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViQ29udGVudExheWVyLmg+
CkBAIC01OSwyOCArNjAsNDAgQEAgVEVTVChMaW5rSGlnaGxpZ2h0VGVzdCwgdmVyaWZ5V2ViVmll
d0ltcGxJbnRlZ3JhdGlvbikKICAgICB3ZWJWaWV3SW1wbC0+cmVzaXplKFdlYlNpemUocGFnZVdp
ZHRoLCBwYWdlSGVpZ2h0KSk7CiAgICAgd2ViVmlld0ltcGwtPmxheW91dCgpOwogCisgICAgV2Vi
R2VzdHVyZUV2ZW50IHRvdWNoRXZlbnQ7CisKICAgICAvLyBUaGUgY29vcmRpbmF0ZXMgYmVsb3cg
YXJlIGxpbmtlZCB0byBhYnNvbHV0ZSBwb3NpdGlvbnMgaW4gdGhlIHJlZmVyZW5jZWQgLmh0bWwg
ZmlsZS4KLSAgICBJbnRQb2ludCB0b3VjaEV2ZW50TG9jYXRpb24oMjAsIDIwKTsKLSAgICBOb2Rl
KiB0b3VjaE5vZGUgPSB3ZWJWaWV3SW1wbC0+YmVzdFRvdWNoTGlua05vZGUodG91Y2hFdmVudExv
Y2F0aW9uKTsKKyAgICB0b3VjaEV2ZW50LnggPSAyMDsKKyAgICB0b3VjaEV2ZW50LnkgPSAyMDsK
KyAgICBOb2RlKiB0b3VjaE5vZGUgPSB3ZWJWaWV3SW1wbC0+YmVzdFRvdWNoTGlua05vZGUodG91
Y2hFdmVudCk7CiAgICAgQVNTRVJUX1RSVUUodG91Y2hOb2RlKTsKIAotICAgIHRvdWNoRXZlbnRM
b2NhdGlvbiA9IEludFBvaW50KDIwLCA0MCk7Ci0gICAgRVhQRUNUX0ZBTFNFKHdlYlZpZXdJbXBs
LT5iZXN0VG91Y2hMaW5rTm9kZSh0b3VjaEV2ZW50TG9jYXRpb24pKTsKKyAgICB0b3VjaEV2ZW50
LnkgPSA0MDsKKyAgICBFWFBFQ1RfRkFMU0Uod2ViVmlld0ltcGwtPmJlc3RUb3VjaExpbmtOb2Rl
KHRvdWNoRXZlbnQpKTsKIAotICAgIHRvdWNoRXZlbnRMb2NhdGlvbiA9IEludFBvaW50KDIwLCAy
MCk7CisgICAgdG91Y2hFdmVudC55ID0gMjA7CiAgICAgLy8gU2hvdWxkbid0IGNyYXNoLgogCi0g
ICAgd2ViVmlld0ltcGwtPmVuYWJsZVRvdWNoSGlnaGxpZ2h0KHRvdWNoRXZlbnRMb2NhdGlvbik7
CisgICAgd2ViVmlld0ltcGwtPmVuYWJsZVRvdWNoSGlnaGxpZ2h0KHRvdWNoRXZlbnQpOwogICAg
IEVYUEVDVF9UUlVFKHdlYlZpZXdJbXBsLT5saW5rSGlnaGxpZ2h0KCkpOwogICAgIEVYUEVDVF9U
UlVFKHdlYlZpZXdJbXBsLT5saW5rSGlnaGxpZ2h0KCktPmNvbnRlbnRMYXllcigpKTsKICAgICBF
WFBFQ1RfVFJVRSh3ZWJWaWV3SW1wbC0+bGlua0hpZ2hsaWdodCgpLT5jbGlwTGF5ZXIoKSk7CiAK
ICAgICAvLyBGaW5kIGEgdGFyZ2V0IGluc2lkZSBhIHNjcm9sbGFibGUgZGl2CiAKLSAgICB0b3Vj
aEV2ZW50TG9jYXRpb24gPSBJbnRQb2ludCgyMCwgMTAwKTsKLSAgICB3ZWJWaWV3SW1wbC0+ZW5h
YmxlVG91Y2hIaWdobGlnaHQodG91Y2hFdmVudExvY2F0aW9uKTsKKyAgICB0b3VjaEV2ZW50Lnkg
PSAxMDA7CisgICAgd2ViVmlld0ltcGwtPmVuYWJsZVRvdWNoSGlnaGxpZ2h0KHRvdWNoRXZlbnQp
OwogICAgIEFTU0VSVF9UUlVFKHdlYlZpZXdJbXBsLT5saW5rSGlnaGxpZ2h0KCkpOwogCisgICAg
Ly8gRG9uJ3QgaGlnaGxpZ2h0IGlmIG5vICJoYW5kIGN1cnNvciIKKyAgICB0b3VjaEV2ZW50Lnkg
PSAyMjA7IC8vIEFuIEEtbGluayB3aXRoIGNyb3NzLWhhaXIgY3Vyc29yLgorICAgIHdlYlZpZXdJ
bXBsLT5lbmFibGVUb3VjaEhpZ2hsaWdodCh0b3VjaEV2ZW50KTsKKyAgICBBU1NFUlRfRkFMU0Uo
d2ViVmlld0ltcGwtPmxpbmtIaWdobGlnaHQoKSk7CisKKyAgICB0b3VjaEV2ZW50LnkgPSAyNjA7
IC8vIEEgdGV4dCBpbnB1dCBib3guCisgICAgd2ViVmlld0ltcGwtPmVuYWJsZVRvdWNoSGlnaGxp
Z2h0KHRvdWNoRXZlbnQpOworICAgIEFTU0VSVF9GQUxTRSh3ZWJWaWV3SW1wbC0+bGlua0hpZ2hs
aWdodCgpKTsKKwogICAgIHdlYlZpZXdJbXBsLT5jbG9zZSgpOwogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvdGVzdF90b3VjaF9saW5rX2hp
Z2hsaWdodC5odG1sIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3Rlc3RfdG91
Y2hfbGlua19oaWdobGlnaHQuaHRtbAppbmRleCAyMzk0YjI2MjQ5MGVkMGI4NjdkYTVjM2FkZGQ5
MmViYzM5MjAzZmI2Li5lM2UyOWE2MmJjMDk0ZjExZmQ1MGU5ZjBlYTMzM2U3ZTM3NGIwMzA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvdGVzdF90b3VjaF9s
aW5rX2hpZ2hsaWdodC5odG1sCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0
YS90ZXN0X3RvdWNoX2xpbmtfaGlnaGxpZ2h0Lmh0bWwKQEAgLTI0LDYgKzI0LDExIEBACiAgICAg
ICAgIFNvbWUgc3R1ZmYuPGJyPgogICAgICAgICBTb21lIHN0dWZmLjxicj4KICAgICA8L2Rpdj4K
KyAgICA8IS0tIERvbid0IGhpZ2hsaWdodCBpZiBubyBoYW5kIGN1cnNvci4gLS0+CisgICAgPGEg
aHJlZj0iaHR0cDovL3d3dy50ZXN0LmNvbSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVm
dDogMjBweDsgdG9wOiAyMjBweDsgd2lkdGg6IDIwMHB4OyBjdXJzb3I6IGNyb3NzaGFpcjsiPkEg
bGluayB0byAqbm90KiBoaWdobGlnaHQ8L2E+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFi
c29sdXRlOyBsZWZ0OiAyMHB4OyB0b3A6IDI2MHB4OyB3aWR0aDogMjAwcHg7Ij4KKyAgICAgICAg
PGlucHV0IHR5cGU9InRleHQiPiA8IS0tIFRoaXMgd2lsbCBoYXZlIGFuIEktYmVhbSBjdXJzb3Iu
IC0tPgorICAgIDwvZGl2PgogPCEtLSBUaGUgZm9sbG93aW5nIGlzIHRoZSB0ZXh0IGZvciB0aGUg
aWZyYW1lIHRhZyBiZWxvdzoKIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDE2MjhiNTc2MDdlNWMy
Y2E4NmVmNGI1NmVkZThlMjg3NWUyZjc3ZC4uMWViZTk3OThlNmQ2MDIzNjYxNmJiM2VlOWUxMzkx
N2M1N2I0OWNkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEwLTE5ICBXLiBKYW1lcyBN
YWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFJl
c3RyaWN0IGxpbmsgaGlnaGxpZ2h0cyB0byB0YXJnZXRzIHRoYXQgZGlzcGxheSBhIGhhbmQtY3Vy
c29yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTg2
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGF2
b2lkIGFwcGx5aW5nIGhpZ2hsaWdodHMgdG8gaW5hcHByb3ByaWF0ZSB0YXJnZXRzLCBzdWNoIGFz
IGxhcmdlIGRpdnMgd2l0aAorICAgICAgICBjbGljayBoYW5kbGVycyBpbnN0YWxsZWQsIHRlc3Qg
Y2FuZGlkYXRlIHRhcmdldHMgYW5kIG9ubHkgaGlnaGxpZ2h0IHRoZW0gaWYgdGhleQorICAgICAg
ICB3b3VsZCBub3JtYWxseSBkaXNwbGF5IGEgaGFuZCBjdXJzb3Igb24gbW91c2Ugb3Zlci4gVGhp
cyBpcyBhIGhldXJpc3RpYywgYnV0IGhhcworICAgICAgICBiZWVuIHRlc3RlZCBhbmQgZm91bmQg
ZWZmZWN0aXZlIGluIHByYWN0aWNlLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvY29tcG9zaXRpbmcvZ2VzdHVyZXMvZ2VzdHVyZS10YXBIaWdobGlnaHQtc2ltcGxlLXJvdGF0
ZWQtZGl2Lmh0bWw6CisKIDIwMTItMTAtMTkgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdt
YWlsLmNvbT4KIAogICAgICAgICBbV0syXVtHVEtdIEZ1bGxzY3JlZW4gdGVzdHMgdGltaW5nIG91
dCBpbiBib3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51
eC9jb21wb3NpdGluZy9nZXN0dXJlcy9nZXN0dXJlLXRhcEhpZ2hsaWdodC1zaW1wbGUtcm90YXRl
ZC1kaXYuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0
aW5nL2dlc3R1cmVzL2dlc3R1cmUtdGFwSGlnaGxpZ2h0LXNpbXBsZS1yb3RhdGVkLWRpdi5odG1s
CmluZGV4IDY3ODVkOGY2MzQzM2E2YzBhYmM5NjI2MTg0MzUwZDkzOGI5YzJhYTEuLmQxYjA4Mjdm
YTkxZmFiZTQwMDhkYjAxZWM1ZWRiM2M3M2E1ZTQ4ZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlc3R1cmVzL2dlc3R1cmUtdGFw
SGlnaGxpZ2h0LXNpbXBsZS1yb3RhdGVkLWRpdi5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlc3R1cmVzL2dlc3R1cmUtdGFwSGlnaGxp
Z2h0LXNpbXBsZS1yb3RhdGVkLWRpdi5odG1sCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Ci08ZGl2IGlkPSJ0YXJnZXREaXYi
IG9uY2xpY2s9ImRvTm90aGluZygpOyIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDog
NDBweDsgdG9wOiA0MHB4OyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyAtd2Via2l0LXRyYW5z
Zm9ybTogcm90YXRlKDIyLjVkZWcpOyBib3JkZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6
IDJweDsgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDI1NSwgMCwgMC41KTsi
PgorPGRpdiBpZD0idGFyZ2V0RGl2IiBvbmNsaWNrPSJkb05vdGhpbmcoKTsiIHN0eWxlPSJwb3Np
dGlvbjogYWJzb2x1dGU7IGxlZnQ6IDQwcHg7IHRvcDogNDBweDsgd2lkdGg6IDUwcHg7IGhlaWdo
dDogNTBweDsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyMi41ZGVnKTsgYm9yZGVyLXN0eWxl
OiBzb2xpZDsgYm9yZGVyLXdpZHRoOiAycHg7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjog
cmdiYSgwLCAyNTUsIDAsIDAuNSk7IGN1cnNvcjogUG9pbnRlciI+CiA8YnI+PGNlbnRlcj5UYXJn
ZXQ8L2NlbnRlcj48YnI+CiA8L2Rpdj4KIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsg
bGVmdDogMTBweDsgdG9wOiAxMTBweDsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7
Ij4KQEAgLTE1LDcgKzE1LDcgQEAgZnVuY3Rpb24gZG9Ob3RoaW5nKCkgeyB9CiBmdW5jdGlvbiBy
dW5UZXN0KCkgewogICAgIHZhciBjbGllbnRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RhcmdldERpdicpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgIHggPSAoY2xpZW50UmVj
dC5sZWZ0ICsgY2xpZW50UmVjdC5yaWdodCkgLyAyOwotICAgIHkgPSAoY2xpZW50UmVjdC50b3Ag
KyBjbGllbnRSZWN0LmJvdHRvbSkgLyAyOworICAgIHkgPSAoMC43NSAqIGNsaWVudFJlY3QudG9w
ICsgMC4yNSAqIGNsaWVudFJlY3QuYm90dG9tKTsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwogICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171481</attachid>
            <date>2012-10-30 10:29:04 -0700</date>
            <delta_ts>2012-10-30 14:29:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99862-20121030132729.patch</filename>
            <type>text/plain</type>
            <size>16881</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyOTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTUwM2E4OTAwZjkzZTZi
YzJiNmIzZjM0ZDQ0YjRlMjIyMzY0MGU5MS4uYWEyN2Y3MDRlNDdiM2MzODU1M2E5MjlkNjA1OTZk
ZWY5ZDNiMDIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTEwLTMwICBXLiBK
YW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIFJlc3RyaWN0IGxpbmsgaGlnaGxpZ2h0cyB0byB0YXJnZXRzIHRoYXQgZGlzcGxheSBhIGhh
bmQtY3Vyc29yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05OTg2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRvIGF2b2lkIGFwcGx5aW5nIGhpZ2hsaWdodHMgdG8gaW5hcHByb3ByaWF0ZSB0YXJnZXRzLCBz
dWNoIGFzIGxhcmdlIGRpdnMgd2l0aAorICAgICAgICBjbGljayBoYW5kbGVycyBpbnN0YWxsZWQs
IHRlc3QgY2FuZGlkYXRlIHRhcmdldHMgYW5kIG9ubHkgaGlnaGxpZ2h0IHRoZW0gaWYgdGhleQor
ICAgICAgICB3b3VsZCBub3JtYWxseSBkaXNwbGF5IGEgaGFuZCBjdXJzb3Igb24gbW91c2Ugb3Zl
ci4gVGhpcyBpcyBhIGhldXJpc3RpYywgYnV0IGhhcworICAgICAgICBiZWVuIHRlc3RlZCBhbmQg
Zm91bmQgZWZmZWN0aXZlIGluIHByYWN0aWNlLgorCisgICAgICAgIFRoaXMgQ0wgcmVmYWN0b3Jz
IEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKCkgdG8gbWFrZSB0aGUgbG9naWMgZm9yIGRldGVy
bWluaW5nCisgICAgICAgIGlmIENVUlNPUl9BVVRPIHNob3VsZCByZXNvbHZlIHRvIENVUlNPUl9Q
T0lOVEVSIGF2YWlsYWJsZSBvdXRzaWRlIEV2ZW50SGFuZGxlci4KKworICAgICAgICBSZWxpZXMg
b24gZXhpc3RpbmcgY3Vyc29yIHRlc3RzLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1c2VIYW5kQ3Vyc29yKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZWxlY3RD
dXJzb3IpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgIChFdmVudEhh
bmRsZXIpOgorCiAyMDEyLTEwLTMwICBLb25kYXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBh
bGx5QGludGVsLmNvbT4KIAogICAgICAgICBbUXRdW0VGTF1bQUNdIFdoaWxlIFVzaW5nIFdlYkdM
LCBNaW5pQnJvd3NlciBzZWdmYXVsdHMgb24gUmVmcmVzaGluZyB0aGUgcGFnZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggMWI1ZmYzYjBkMzZhYjc5MmRkNTA2MDk1Y2QwOGNmZTY5NWNi
ZmFjZC4uODc1MWFhYzIxZTAzMGY1ZDQ2OTFkODU2MTM4MWY1NWU3ZDA3ZGM1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0xMC0zMCAgVy4gSmFtZXMg
TWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBS
ZXN0cmljdCBsaW5rIGhpZ2hsaWdodHMgdG8gdGFyZ2V0cyB0aGF0IGRpc3BsYXkgYSBoYW5kLWN1
cnNvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk4
NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBh
dm9pZCBhcHBseWluZyBoaWdobGlnaHRzIHRvIGluYXBwcm9wcmlhdGUgdGFyZ2V0cywgc3VjaCBh
cyBsYXJnZSBkaXZzIHdpdGgKKyAgICAgICAgY2xpY2sgaGFuZGxlcnMgaW5zdGFsbGVkLCB0ZXN0
IGNhbmRpZGF0ZSB0YXJnZXRzIGFuZCBvbmx5IGhpZ2hsaWdodCB0aGVtIGlmIHRoZXkKKyAgICAg
ICAgd291bGQgbm9ybWFsbHkgZGlzcGxheSBhIGhhbmQgY3Vyc29yIG9uIG1vdXNlIG92ZXIuIFRo
aXMgaXMgYSBoZXVyaXN0aWMsIGJ1dCBoYXMKKyAgICAgICAgYmVlbiB0ZXN0ZWQgYW5kIGZvdW5k
IGVmZmVjdGl2ZSBpbiBwcmFjdGljZS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAg
ICAgICAoV2ViS2l0OjppbnZva2VzSGFuZEN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpiZXN0VG91Y2hMaW5rTm9kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjplbmFibGVUb3VjaEhpZ2hsaWdodCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6Cisg
ICAgICAgIChXZWJWaWV3SW1wbCk6CisgICAgICAgICogdGVzdHMvTGlua0hpZ2hsaWdodFRlc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisgICAgICAgICogdGVzdHMvZGF0YS90ZXN0
X3RvdWNoX2xpbmtfaGlnaGxpZ2h0Lmh0bWw6CisKIDIwMTItMTAtMzAgIEtlbnQgVGFtdXJhICA8
dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgY29kZSBmb3Igb2xk
IGlucHV0W3R5cGU9ZGF0ZV0gVUkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRl
eCA0YmVmZTA0YjY2MjJmYmRhYmE3OTU4Y2U2MGExZjE3YWQ3OTY3NmQxLi44N2VkNjkwNzhjYmQw
MzI4NWRmOThhOGRmYTVjYzUxOTlmZThiNzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCkBAIC0xMzE1LDYgKzEzMTUsNDEgQEAgc3RhdGljIGJvb2wgbm9kZUlzTm90QmVpbmdF
ZGl0ZWQoTm9kZSogbm9kZSwgRnJhbWUqIGZyYW1lKQogICAgIHJldHVybiBmcmFtZS0+c2VsZWN0
aW9uKCktPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSAhPSBub2RlLT5yb290RWRpdGFibGVFbGVtZW50
KCk7CiB9CiAKK2Jvb2wgRXZlbnRIYW5kbGVyOjp1c2VIYW5kQ3Vyc29yKE5vZGUqIG5vZGUsIGJv
b2wgaXNPdmVyTGluaywgYm9vbCBzaGlmdEtleSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGJvb2wgZWRpdGFibGUgPSBub2RlLT5yZW5kZXJlcklzRWRp
dGFibGUoKTsKKyAgICBib29sIGVkaXRhYmxlTGlua0VuYWJsZWQgPSBmYWxzZTsKKworICAgIC8v
IElmIHRoZSBsaW5rIGlzIGVkaXRhYmxlLCB0aGVuIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHNldHRp
bmdzIHRvIHNlZSB3aGV0aGVyIG9yIG5vdCB0aGUgbGluayBzaG91bGQgYmUgZm9sbG93ZWQKKyAg
ICBpZiAoZWRpdGFibGUpIHsKKyAgICAgICAgQVNTRVJUKG1fZnJhbWUtPnNldHRpbmdzKCkpOwor
ICAgICAgICBzd2l0Y2ggKG1fZnJhbWUtPnNldHRpbmdzKCktPmVkaXRhYmxlTGlua0JlaGF2aW9y
KCkpIHsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtEZWZhdWx0
QmVoYXZpb3I6CisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQWx3YXlzTGl2ZToKKyAgICAgICAg
ICAgIGVkaXRhYmxlTGlua0VuYWJsZWQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisKKyAg
ICAgICAgY2FzZSBFZGl0YWJsZUxpbmtOZXZlckxpdmU6CisgICAgICAgICAgICBlZGl0YWJsZUxp
bmtFbmFibGVkID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIEVk
aXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDoKKyAgICAgICAgICAgIGVkaXRhYmxlTGlua0Vu
YWJsZWQgPSBub2RlSXNOb3RCZWluZ0VkaXRlZChub2RlLCBtX2ZyYW1lKSB8fCBzaGlmdEtleTsK
KyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rT25seUxpdmVX
aXRoU2hpZnRLZXk6CisgICAgICAgICAgICBlZGl0YWJsZUxpbmtFbmFibGVkID0gc2hpZnRLZXk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAoKGlz
T3ZlckxpbmsgfHwgaXNTdWJtaXRJbWFnZShub2RlKSkgJiYgKCFlZGl0YWJsZSB8fCBlZGl0YWJs
ZUxpbmtFbmFibGVkKSk7Cit9CisKIE9wdGlvbmFsQ3Vyc29yIEV2ZW50SGFuZGxlcjo6c2VsZWN0
Q3Vyc29yKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2ZW50LCBTY3JvbGxi
YXIqIHNjcm9sbGJhcikKIHsKICAgICBpZiAobV9yZXNpemVMYXllciAmJiBtX3Jlc2l6ZUxheWVy
LT5pblJlc2l6ZU1vZGUoKSkKQEAgLTEzNzUsMzQgKzE0MTAsMTAgQEAgT3B0aW9uYWxDdXJzb3Ig
RXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0cyYgZXYKICAgICBzd2l0Y2ggKHN0eWxlID8gc3R5bGUtPmN1cnNvcigpIDogQ1VSU09SX0FV
VE8pIHsKICAgICBjYXNlIENVUlNPUl9BVVRPOiB7CiAgICAgICAgIGJvb2wgZWRpdGFibGUgPSAo
bm9kZSAmJiBub2RlLT5yZW5kZXJlcklzRWRpdGFibGUoKSk7Ci0gICAgICAgIGJvb2wgZWRpdGFi
bGVMaW5rRW5hYmxlZCA9IGZhbHNlOwotCi0gICAgICAgIC8vIElmIHRoZSBsaW5rIGlzIGVkaXRh
YmxlLCB0aGVuIHdlIG5lZWQgdG8gY2hlY2sgdGhlIHNldHRpbmdzIHRvIHNlZSB3aGV0aGVyIG9y
IG5vdCB0aGUgbGluayBzaG91bGQgYmUgZm9sbG93ZWQKLSAgICAgICAgaWYgKGVkaXRhYmxlKSB7
Ci0gICAgICAgICAgICBBU1NFUlQobV9mcmFtZS0+c2V0dGluZ3MoKSk7Ci0gICAgICAgICAgICBz
d2l0Y2ggKG1fZnJhbWUtPnNldHRpbmdzKCktPmVkaXRhYmxlTGlua0JlaGF2aW9yKCkpIHsKLSAg
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0RlZmF1bHRC
ZWhhdmlvcjoKLSAgICAgICAgICAgIGNhc2UgRWRpdGFibGVMaW5rQWx3YXlzTGl2ZToKLSAgICAg
ICAgICAgICAgICBlZGl0YWJsZUxpbmtFbmFibGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLQotICAgICAgICAgICAgY2FzZSBFZGl0YWJsZUxpbmtOZXZlckxpdmU6Ci0gICAgICAg
ICAgICAgICAgZWRpdGFibGVMaW5rRW5hYmxlZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwogCi0gICAgICAgICAgICBjYXNlIEVkaXRhYmxlTGlua0xpdmVXaGVuTm90Rm9jdXNlZDoK
LSAgICAgICAgICAgICAgICBlZGl0YWJsZUxpbmtFbmFibGVkID0gbm9kZUlzTm90QmVpbmdFZGl0
ZWQobm9kZSwgbV9mcmFtZSkgfHwgZXZlbnQuZXZlbnQoKS5zaGlmdEtleSgpOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNlIEVkaXRhYmxlTGlu
a09ubHlMaXZlV2l0aFNoaWZ0S2V5OgotICAgICAgICAgICAgICAgIGVkaXRhYmxlTGlua0VuYWJs
ZWQgPSBldmVudC5ldmVudCgpLnNoaWZ0S2V5KCk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoKGV2ZW50LmlzT3Zlckxpbmso
KSB8fCBpc1N1Ym1pdEltYWdlKG5vZGUpKSAmJiAoIWVkaXRhYmxlIHx8IGVkaXRhYmxlTGlua0Vu
YWJsZWQpKQorICAgICAgICBpZiAodXNlSGFuZEN1cnNvcihub2RlLCBldmVudC5pc092ZXJMaW5r
KCksIGV2ZW50LmV2ZW50KCkuc2hpZnRLZXkoKSkpCiAgICAgICAgICAgICByZXR1cm4gaGFuZEN1
cnNvcigpOworCiAgICAgICAgIGJvb2wgaW5SZXNpemVyID0gZmFsc2U7CiAgICAgICAgIGlmIChy
ZW5kZXJlcikgewogICAgICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBsYXllciA9IHJlbmRlcmVy
LT5lbmNsb3NpbmdMYXllcigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCA4
NjkzOGUwNTYyZjNkZmRkMzRhOWYzM2U2YjAwN2VkMTlhNTFkMjg2Li45M2M2YjEwZWI5ODc0NGZi
ZjU2N2E4MTlmMjgxNjhmMzIyYTFjMWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgK
QEAgLTIzNCw2ICsyMzQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVUb3VjaEV2ZW50KGNv
bnN0IFBsYXRmb3JtVG91Y2hFdmVudCYpOwogI2VuZGlmCiAKKyAgICBib29sIHVzZUhhbmRDdXJz
b3IoTm9kZSosIGJvb2wgaXNPdmVyTGluaywgYm9vbCBzaGlmdEtleSk7CisKIHByaXZhdGU6CiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBzdGF0aWMgRHJhZ1N0YXRlJiBkcmFnU3RhdGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA4NjNj
M2VlZmQ3YjU2MDFiMTMwNzVjMzMwZTE2NDFiZDkxN2I4MmE0Li41YmY0Yzg4YjQxNGE1NTY0ZWQw
MDI3ZTUyYTZmMmZhY2YxYmQ2YWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCkBAIC02NzMsNyArNjczLDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFuZGxl
R2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgZXZlbnQpCiAgICAgICAgIC8vIFF1
ZXVlIGEgaGlnaGxpZ2h0IGFuaW1hdGlvbiwgdGhlbiBoYW5kIG9mZiB0byByZWd1bGFyIGhhbmRs
ZXIuCiAjaWYgT1MoTElOVVgpCiAgICAgICAgIGlmIChzZXR0aW5nc0ltcGwoKS0+Z2VzdHVyZVRh
cEhpZ2hsaWdodEVuYWJsZWQoKSkKLSAgICAgICAgICAgIGVuYWJsZVRvdWNoSGlnaGxpZ2h0KElu
dFBvaW50KGV2ZW50LngsIGV2ZW50LnkpKTsKKyAgICAgICAgICAgIGVuYWJsZVRvdWNoSGlnaGxp
Z2h0KGV2ZW50KTsKICNlbmRpZgogICAgICAgICBicmVhazsKICAgICBjYXNlIFdlYklucHV0RXZl
bnQ6Okdlc3R1cmVUYXBDYW5jZWw6CkBAIC0xMTY5LDE1ICsxMTY5LDE3IEBAIHZvaWQgV2ViVmll
d0ltcGw6OmNvbXB1dGVTY2FsZUFuZFNjcm9sbEZvckhpdFJlY3QoY29uc3QgV2ViUmVjdCYgaGl0
UmVjdCwgQXV0b1pvCiAgICAgICAgIHNjcm9sbCA9IGNsYW1wT2Zmc2V0QXRTY2FsZShzY3JvbGws
IHNjYWxlKTsKIH0KIAotc3RhdGljIGJvb2wgaGlnaGxpZ2h0Q29uZGl0aW9ucyhOb2RlKiBub2Rl
KQorc3RhdGljIGJvb2wgaW52b2tlc0hhbmRDdXJzb3IoTm9kZSogbm9kZSwgYm9vbCBzaGlmdEtl
eSwgRnJhbWUqIGZyYW1lKQogewotICAgIHJldHVybiBub2RlLT5zdXBwb3J0c0ZvY3VzKCkKLSAg
ICAgICAgICAgfHwgbm9kZS0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLmNsaWNrRXZl
bnQpCi0gICAgICAgICAgIHx8IG5vZGUtPmhhc0V2ZW50TGlzdGVuZXJzKGV2ZW50TmFtZXMoKS5t
b3VzZWRvd25FdmVudCkKLSAgICAgICAgICAgfHwgbm9kZS0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZl
bnROYW1lcygpLm1vdXNldXBFdmVudCk7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJl
cigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBFQ3Vyc29yIGN1cnNvciA9IG5vZGUt
PnJlbmRlcmVyKCktPnN0eWxlKCktPmN1cnNvcigpOworICAgIHJldHVybiBjdXJzb3IgPT0gQ1VS
U09SX1BPSU5URVIKKyAgICAgICAgfHwgKGN1cnNvciA9PSBDVVJTT1JfQVVUTyAmJiBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCktPnVzZUhhbmRDdXJzb3Iobm9kZSwgbm9kZS0+aXNMaW5rKCksIHNoaWZ0
S2V5KSk7CiB9CiAKLU5vZGUqIFdlYlZpZXdJbXBsOjpiZXN0VG91Y2hMaW5rTm9kZShJbnRQb2lu
dCB0b3VjaEV2ZW50TG9jYXRpb24pCitOb2RlKiBXZWJWaWV3SW1wbDo6YmVzdFRvdWNoTGlua05v
ZGUoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiB0b3VjaEV2ZW50KQogewogICAgIGlmICghbV9wYWdl
IHx8ICFtX3BhZ2UtPm1haW5GcmFtZSgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTExODYsMjcg
KzExODgsMjMgQEAgTm9kZSogV2ViVmlld0ltcGw6OmJlc3RUb3VjaExpbmtOb2RlKEludFBvaW50
IHRvdWNoRXZlbnRMb2NhdGlvbikKIAogICAgIC8vIEZJWE1FOiBTaG91bGQgYWNjZXB0IGEgc2Vh
cmNoIHJlZ2lvbiBmcm9tIHRoZSBjYWxsZXIgaW5zdGVhZCBvZiBoYXJkLWNvZGluZyB0aGUgc2l6
ZS4KICAgICBJbnRTaXplIHRvdWNoRXZlbnRTZWFyY2hSZWdpb25TaXplKDQsIDIpOworICAgIElu
dFBvaW50IHRvdWNoRXZlbnRMb2NhdGlvbih0b3VjaEV2ZW50LngsIHRvdWNoRXZlbnQueSk7CiAg
ICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmJlc3RDbGlja2FibGVOb2Rl
Rm9yVG91Y2hQb2ludCh0b3VjaEV2ZW50TG9jYXRpb24sIHRvdWNoRXZlbnRTZWFyY2hSZWdpb25T
aXplLCB0b3VjaEV2ZW50TG9jYXRpb24sIGJlc3RUb3VjaE5vZGUpOwogICAgIC8vIGJlc3RDbGlj
a2FibGVOb2RlRm9yVG91Y2hQb2ludCgpIGRvZXNuJ3QgYWx3YXlzIHJldHVybiBhIG5vZGUgdGhh
dCBpcyBhIGxpbmssIHNvIGxldCdzIHRyeSBhbmQgZmluZAogICAgIC8vIGEgbGluayB0byBoaWdo
bGlnaHQuCi0gICAgd2hpbGUgKGJlc3RUb3VjaE5vZGUgJiYgIWhpZ2hsaWdodENvbmRpdGlvbnMo
YmVzdFRvdWNoTm9kZSkpCisgICAgYm9vbCBzaGlmdEtleSA9IHRvdWNoRXZlbnQubW9kaWZpZXJz
ICYgV2ViR2VzdHVyZUV2ZW50OjpTaGlmdEtleTsKKyAgICB3aGlsZSAoYmVzdFRvdWNoTm9kZSAm
JiAhaW52b2tlc0hhbmRDdXJzb3IoYmVzdFRvdWNoTm9kZSwgc2hpZnRLZXksIG1fcGFnZS0+bWFp
bkZyYW1lKCkpKQogICAgICAgICBiZXN0VG91Y2hOb2RlID0gYmVzdFRvdWNoTm9kZS0+cGFyZW50
Tm9kZSgpOwogCi0gICAgLy8gSWYgdGhlIGRvY3VtZW50L2JvZHkgaGF2ZSBjbGljayBoYW5kbGVy
cyBpbnN0YWxsZWQsIHdlIGRvbid0IHdhbnQgdG8gZGVmYXVsdCB0byBhcHBseWluZyB0aGUgaGln
aGxpZ2h0IHRvIHRoZSBlbnRpcmUgUmVuZGVyVmlldywgb3IgdGhlCi0gICAgLy8gZW50aXJlIGJv
ZHkuCi0gICAgUmVuZGVyT2JqZWN0KiB0b3VjaE5vZGVSZW5kZXJlciA9IGJlc3RUb3VjaE5vZGUg
PyBiZXN0VG91Y2hOb2RlLT5yZW5kZXJlcigpIDogMDsKLSAgICBpZiAoYmVzdFRvdWNoTm9kZSAm
JiAoIXRvdWNoTm9kZVJlbmRlcmVyIHx8IHRvdWNoTm9kZVJlbmRlcmVyLT5pc1JlbmRlclZpZXco
KSB8fCB0b3VjaE5vZGVSZW5kZXJlci0+aXNCb2R5KCkpKQotICAgICAgICByZXR1cm4gMDsKLQog
ICAgIHJldHVybiBiZXN0VG91Y2hOb2RlOwogfQogCi12b2lkIFdlYlZpZXdJbXBsOjplbmFibGVU
b3VjaEhpZ2hsaWdodChJbnRQb2ludCB0b3VjaEV2ZW50TG9jYXRpb24pCit2b2lkIFdlYlZpZXdJ
bXBsOjplbmFibGVUb3VjaEhpZ2hsaWdodChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIHRvdWNoRXZl
bnQpCiB7CiAgICAgLy8gQWx3YXlzIGNsZWFyIGFueSBleGlzdGluZyBoaWdobGlnaHQgd2hlbiB0
aGlzIGlzIGludm9rZWQsIGV2ZW4gaWYgd2UgZG9uJ3QgZ2V0IGEgbmV3IHRhcmdldCB0byBoaWdo
bGlnaHQuCiAgICAgbV9saW5rSGlnaGxpZ2h0LmNsZWFyKCk7CiAKLSAgICBOb2RlKiB0b3VjaE5v
ZGUgPSBiZXN0VG91Y2hMaW5rTm9kZSh0b3VjaEV2ZW50TG9jYXRpb24pOworICAgIE5vZGUqIHRv
dWNoTm9kZSA9IGJlc3RUb3VjaExpbmtOb2RlKHRvdWNoRXZlbnQpOwogCiAgICAgaWYgKCF0b3Vj
aE5vZGUgfHwgIXRvdWNoTm9kZS0+cmVuZGVyZXIoKSB8fCAhdG91Y2hOb2RlLT5yZW5kZXJlcigp
LT5lbmNsb3NpbmdMYXllcigpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCAyZWM1ZDY3NWUzZmEzOWQ2YzliNTZjZTM0MjgwZTJm
ODQ2NjJmNmJiLi4zNTQ4ODlmZGU4ZDM3MDM2NDBkNTQyMTc5MGRiNzY3NjY2NDMxODQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTU2NSw4ICs1NjUsOCBA
QCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiAgICAgdm9pZCBjb21wdXRl
U2NhbGVBbmRTY3JvbGxGb3JIaXRSZWN0KGNvbnN0IFdlYlJlY3QmIGhpdFJlY3QsIEF1dG9ab29t
VHlwZSwgZmxvYXQmIHNjYWxlLCBXZWJQb2ludCYgc2Nyb2xsLCBib29sJiBpc0FuY2hvcik7Ci0g
ICAgV2ViQ29yZTo6Tm9kZSogYmVzdFRvdWNoTGlua05vZGUoV2ViQ29yZTo6SW50UG9pbnQgdG91
Y2hFdmVudExvY2F0aW9uKTsKLSAgICB2b2lkIGVuYWJsZVRvdWNoSGlnaGxpZ2h0KFdlYkNvcmU6
OkludFBvaW50IHRvdWNoRXZlbnRMb2NhdGlvbik7CisgICAgV2ViQ29yZTo6Tm9kZSogYmVzdFRv
dWNoTGlua05vZGUoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiB0b3VjaEV2ZW50KTsKKyAgICB2b2lk
IGVuYWJsZVRvdWNoSGlnaGxpZ2h0KGNvbnN0IFdlYkdlc3R1cmVFdmVudCYgdG91Y2hFdmVudCk7
CiAjZW5kaWYKICAgICB2b2lkIGFuaW1hdGVab29tQXJvdW5kUG9pbnQoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmLCBBdXRvWm9vbVR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0xpbmtIaWdobGlnaHRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvTGlua0hpZ2hsaWdodFRlc3QuY3BwCmluZGV4IGVhZmUyMzA3ZjFmZGViZjcyYmU4
NTVlYTYwN2RkMjg0MWU3MzRmZjQuLjJmZGIzODRlZjA4M2E4OGNlZDYwNDJiOGRiYWVkZjVjOWFi
Njg1NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGlua0hpZ2hs
aWdodFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGlua0hpZ2hs
aWdodFRlc3QuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiVVJMVGVzdEhlbHBlcnMu
aCIKICNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIuaCIKICNpbmNsdWRlICJXZWJG
cmFtZS5oIgorI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKICNpbmNsdWRlICJXZWJWaWV3SW1w
bC5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkNvbnRl
bnRMYXllci5oPgpAQCAtNTksMjggKzYwLDQwIEBAIFRFU1QoTGlua0hpZ2hsaWdodFRlc3QsIHZl
cmlmeVdlYlZpZXdJbXBsSW50ZWdyYXRpb24pCiAgICAgd2ViVmlld0ltcGwtPnJlc2l6ZShXZWJT
aXplKHBhZ2VXaWR0aCwgcGFnZUhlaWdodCkpOwogICAgIHdlYlZpZXdJbXBsLT5sYXlvdXQoKTsK
IAorICAgIFdlYkdlc3R1cmVFdmVudCB0b3VjaEV2ZW50OworCiAgICAgLy8gVGhlIGNvb3JkaW5h
dGVzIGJlbG93IGFyZSBsaW5rZWQgdG8gYWJzb2x1dGUgcG9zaXRpb25zIGluIHRoZSByZWZlcmVu
Y2VkIC5odG1sIGZpbGUuCi0gICAgSW50UG9pbnQgdG91Y2hFdmVudExvY2F0aW9uKDIwLCAyMCk7
Ci0gICAgTm9kZSogdG91Y2hOb2RlID0gd2ViVmlld0ltcGwtPmJlc3RUb3VjaExpbmtOb2RlKHRv
dWNoRXZlbnRMb2NhdGlvbik7CisgICAgdG91Y2hFdmVudC54ID0gMjA7CisgICAgdG91Y2hFdmVu
dC55ID0gMjA7CisgICAgTm9kZSogdG91Y2hOb2RlID0gd2ViVmlld0ltcGwtPmJlc3RUb3VjaExp
bmtOb2RlKHRvdWNoRXZlbnQpOwogICAgIEFTU0VSVF9UUlVFKHRvdWNoTm9kZSk7CiAKLSAgICB0
b3VjaEV2ZW50TG9jYXRpb24gPSBJbnRQb2ludCgyMCwgNDApOwotICAgIEVYUEVDVF9GQUxTRSh3
ZWJWaWV3SW1wbC0+YmVzdFRvdWNoTGlua05vZGUodG91Y2hFdmVudExvY2F0aW9uKSk7CisgICAg
dG91Y2hFdmVudC55ID0gNDA7CisgICAgRVhQRUNUX0ZBTFNFKHdlYlZpZXdJbXBsLT5iZXN0VG91
Y2hMaW5rTm9kZSh0b3VjaEV2ZW50KSk7CiAKLSAgICB0b3VjaEV2ZW50TG9jYXRpb24gPSBJbnRQ
b2ludCgyMCwgMjApOworICAgIHRvdWNoRXZlbnQueSA9IDIwOwogICAgIC8vIFNob3VsZG4ndCBj
cmFzaC4KIAotICAgIHdlYlZpZXdJbXBsLT5lbmFibGVUb3VjaEhpZ2hsaWdodCh0b3VjaEV2ZW50
TG9jYXRpb24pOworICAgIHdlYlZpZXdJbXBsLT5lbmFibGVUb3VjaEhpZ2hsaWdodCh0b3VjaEV2
ZW50KTsKICAgICBFWFBFQ1RfVFJVRSh3ZWJWaWV3SW1wbC0+bGlua0hpZ2hsaWdodCgpKTsKICAg
ICBFWFBFQ1RfVFJVRSh3ZWJWaWV3SW1wbC0+bGlua0hpZ2hsaWdodCgpLT5jb250ZW50TGF5ZXIo
KSk7CiAgICAgRVhQRUNUX1RSVUUod2ViVmlld0ltcGwtPmxpbmtIaWdobGlnaHQoKS0+Y2xpcExh
eWVyKCkpOwogCiAgICAgLy8gRmluZCBhIHRhcmdldCBpbnNpZGUgYSBzY3JvbGxhYmxlIGRpdgog
Ci0gICAgdG91Y2hFdmVudExvY2F0aW9uID0gSW50UG9pbnQoMjAsIDEwMCk7Ci0gICAgd2ViVmll
d0ltcGwtPmVuYWJsZVRvdWNoSGlnaGxpZ2h0KHRvdWNoRXZlbnRMb2NhdGlvbik7CisgICAgdG91
Y2hFdmVudC55ID0gMTAwOworICAgIHdlYlZpZXdJbXBsLT5lbmFibGVUb3VjaEhpZ2hsaWdodCh0
b3VjaEV2ZW50KTsKICAgICBBU1NFUlRfVFJVRSh3ZWJWaWV3SW1wbC0+bGlua0hpZ2hsaWdodCgp
KTsKIAorICAgIC8vIERvbid0IGhpZ2hsaWdodCBpZiBubyAiaGFuZCBjdXJzb3IiCisgICAgdG91
Y2hFdmVudC55ID0gMjIwOyAvLyBBbiBBLWxpbmsgd2l0aCBjcm9zcy1oYWlyIGN1cnNvci4KKyAg
ICB3ZWJWaWV3SW1wbC0+ZW5hYmxlVG91Y2hIaWdobGlnaHQodG91Y2hFdmVudCk7CisgICAgQVNT
RVJUX0ZBTFNFKHdlYlZpZXdJbXBsLT5saW5rSGlnaGxpZ2h0KCkpOworCisgICAgdG91Y2hFdmVu
dC55ID0gMjYwOyAvLyBBIHRleHQgaW5wdXQgYm94LgorICAgIHdlYlZpZXdJbXBsLT5lbmFibGVU
b3VjaEhpZ2hsaWdodCh0b3VjaEV2ZW50KTsKKyAgICBBU1NFUlRfRkFMU0Uod2ViVmlld0ltcGwt
PmxpbmtIaWdobGlnaHQoKSk7CisKICAgICB3ZWJWaWV3SW1wbC0+Y2xvc2UoKTsKIH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3Rlc3RfdG91
Y2hfbGlua19oaWdobGlnaHQuaHRtbCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0
YS90ZXN0X3RvdWNoX2xpbmtfaGlnaGxpZ2h0Lmh0bWwKaW5kZXggMjM5NGIyNjI0OTBlZDBiODY3
ZGE1YzNhZGRkOTJlYmMzOTIwM2ZiNi4uZTNlMjlhNjJiYzA5NGYxMWZkNTBlOWYwZWEzMzNlN2Uz
NzRiMDMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3Rl
c3RfdG91Y2hfbGlua19oaWdobGlnaHQuaHRtbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL2RhdGEvdGVzdF90b3VjaF9saW5rX2hpZ2hsaWdodC5odG1sCkBAIC0yNCw2ICsyNCwx
MSBAQAogICAgICAgICBTb21lIHN0dWZmLjxicj4KICAgICAgICAgU29tZSBzdHVmZi48YnI+CiAg
ICAgPC9kaXY+CisgICAgPCEtLSBEb24ndCBoaWdobGlnaHQgaWYgbm8gaGFuZCBjdXJzb3IuIC0t
PgorICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cudGVzdC5jb20iIHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IGxlZnQ6IDIwcHg7IHRvcDogMjIwcHg7IHdpZHRoOiAyMDBweDsgY3Vyc29yOiBjcm9z
c2hhaXI7Ij5BIGxpbmsgdG8gKm5vdCogaGlnaGxpZ2h0PC9hPgorICAgIDxkaXYgc3R5bGU9InBv
c2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMjBweDsgdG9wOiAyNjBweDsgd2lkdGg6IDIwMHB4OyI+
CisgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0Ij4gPCEtLSBUaGlzIHdpbGwgaGF2ZSBhbiBJLWJl
YW0gY3Vyc29yLiAtLT4KKyAgICA8L2Rpdj4KIDwhLS0gVGhlIGZvbGxvd2luZyBpcyB0aGUgdGV4
dCBmb3IgdGhlIGlmcmFtZSB0YWcgYmVsb3c6CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRhMWMy
YTRjNjE0MzM5ZTNhMTE5ZDlkZTcwOWRiYWNkNGM2MzA4NmQuLjI3YmQyNmExODE2ZGE4ODgwNzcw
MDQxZDcyZTU4ODZhNDkwZTgxOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMC0zMCAg
Vy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2No
cm9taXVtXSBSZXN0cmljdCBsaW5rIGhpZ2hsaWdodHMgdG8gdGFyZ2V0cyB0aGF0IGRpc3BsYXkg
YSBoYW5kLWN1cnNvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTk4NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUbyBhdm9pZCBhcHBseWluZyBoaWdobGlnaHRzIHRvIGluYXBwcm9wcmlhdGUgdGFyZ2V0
cywgc3VjaCBhcyBsYXJnZSBkaXZzIHdpdGgKKyAgICAgICAgY2xpY2sgaGFuZGxlcnMgaW5zdGFs
bGVkLCB0ZXN0IGNhbmRpZGF0ZSB0YXJnZXRzIGFuZCBvbmx5IGhpZ2hsaWdodCB0aGVtIGlmIHRo
ZXkKKyAgICAgICAgd291bGQgbm9ybWFsbHkgZGlzcGxheSBhIGhhbmQgY3Vyc29yIG9uIG1vdXNl
IG92ZXIuIFRoaXMgaXMgYSBoZXVyaXN0aWMsIGJ1dCBoYXMKKyAgICAgICAgYmVlbiB0ZXN0ZWQg
YW5kIGZvdW5kIGVmZmVjdGl2ZSBpbiBwcmFjdGljZS4KKworICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlc3R1cmVzL2dlc3R1cmUtdGFwSGlnaGxpZ2h0LXNp
bXBsZS1yb3RhdGVkLWRpdi5odG1sOgorCiAyMDEyLTEwLTMwICBFbWlsIEEgRWtsdW5kICA8ZWFl
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbc3ViaXhlbF0gQ2hhbmdlIExpbmVXaWR0aDo6c2hy
aW5rQXZhaWxhYmxlV2lkdGhGb3JOZXdGbG9hdElmTmVlZGVkIHRvIG5vdCBwaXhlbCBzbmFwCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jb21wb3NpdGlu
Zy9nZXN0dXJlcy9nZXN0dXJlLXRhcEhpZ2hsaWdodC1zaW1wbGUtcm90YXRlZC1kaXYuaHRtbCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlc3R1cmVz
L2dlc3R1cmUtdGFwSGlnaGxpZ2h0LXNpbXBsZS1yb3RhdGVkLWRpdi5odG1sCmluZGV4IDY3ODVk
OGY2MzQzM2E2YzBhYmM5NjI2MTg0MzUwZDkzOGI5YzJhYTEuLmQxYjA4MjdmYTkxZmFiZTQwMDhk
YjAxZWM1ZWRiM2M3M2E1ZTQ4ZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2NvbXBvc2l0aW5nL2dlc3R1cmVzL2dlc3R1cmUtdGFwSGlnaGxpZ2h0LXNp
bXBsZS1yb3RhdGVkLWRpdi5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L2NvbXBvc2l0aW5nL2dlc3R1cmVzL2dlc3R1cmUtdGFwSGlnaGxpZ2h0LXNpbXBsZS1y
b3RhdGVkLWRpdi5odG1sCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+Ci08ZGl2IGlkPSJ0YXJnZXREaXYiIG9uY2xpY2s9ImRv
Tm90aGluZygpOyIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogNDBweDsgdG9wOiA0
MHB4OyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRl
KDIyLjVkZWcpOyBib3JkZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDJweDsgLXdlYmtp
dC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDI1NSwgMCwgMC41KTsiPgorPGRpdiBpZD0i
dGFyZ2V0RGl2IiBvbmNsaWNrPSJkb05vdGhpbmcoKTsiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1
dGU7IGxlZnQ6IDQwcHg7IHRvcDogNDBweDsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsgLXdl
YmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyMi41ZGVnKTsgYm9yZGVyLXN0eWxlOiBzb2xpZDsgYm9y
ZGVyLXdpZHRoOiAycHg7IC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogcmdiYSgwLCAyNTUs
IDAsIDAuNSk7IGN1cnNvcjogUG9pbnRlciI+CiA8YnI+PGNlbnRlcj5UYXJnZXQ8L2NlbnRlcj48
YnI+CiA8L2Rpdj4KIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgbGVmdDogMTBweDsg
dG9wOiAxMTBweDsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7Ij4KQEAgLTE1LDcg
KzE1LDcgQEAgZnVuY3Rpb24gZG9Ob3RoaW5nKCkgeyB9CiBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgIHZhciBjbGllbnRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldERpdicp
LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgIHggPSAoY2xpZW50UmVjdC5sZWZ0ICsgY2xp
ZW50UmVjdC5yaWdodCkgLyAyOwotICAgIHkgPSAoY2xpZW50UmVjdC50b3AgKyBjbGllbnRSZWN0
LmJvdHRvbSkgLyAyOworICAgIHkgPSAoMC43NSAqIGNsaWVudFJlY3QudG9wICsgMC4yNSAqIGNs
aWVudFJlY3QuYm90dG9tKTsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>