<?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>78359</bug_id>
          
          <creation_ts>2012-02-10 07:22:49 -0800</creation_ts>
          <short_desc>[chromium] Remove obsolete zoom animation pathway.</short_desc>
          <delta_ts>2012-02-13 20:42:18 -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>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>andersca</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>554067</commentid>
    <comment_count>0</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-02-10 07:22:49 -0800</bug_when>
    <thetext>[chromium] Remove obsolete zoom animation pathway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554068</commentid>
    <comment_count>1</comment_count>
      <attachid>126514</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-02-10 07:25:33 -0800</bug_when>
    <thetext>Created attachment 126514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554070</commentid>
    <comment_count>2</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-02-10 07:26:45 -0800</bug_when>
    <thetext>Removes dead code from the now obsolete pathway for zoom animation. Includes removal of unused functions from testing/Internals*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554114</commentid>
    <comment_count>3</comment_count>
      <attachid>126514</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-10 09:23:45 -0800</bug_when>
    <thetext>Comment on attachment 126514
Patch

Attachment 126514 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11473690

New failing tests:
fast/dom/Range/scale-page-client-rects.html
fast/events/page-scaled-mouse-click-iframe.html
fast/frames/iframe-double-scale-contents.html
compositing/geometry/fixed-position-transform-composited-page-scale.html
fast/dom/window-inner-size-scaling.html
http/tests/inspector/inspect-element.html
fast/dom/Element/scale-page-bounding-client-rect.html
fast/events/scale-and-scroll-window.html
compositing/geometry/fixed-position-iframe-composited-page-scale.html
fast/events/scroll-in-scaled-page-with-overflow-hidden.html
fast/events/page-scaled-mouse-click.html
fast/events/scale-and-scroll-iframe-body.html
fast/dom/iframe-inner-size-scaling.html
compositing/scaling/tiled-layer-recursion.html
fast/repaint/background-scaling.html
compositing/geometry/fixed-position-composited-page-scale.html
fast/events/scale-and-scroll-body.html
accessibility/aria-describedby-on-input.html
fast/events/touch/page-scaled-touch-gesture-click.html
fast/events/scale-and-scroll-iframe-window.html
fast/frames/frame-set-scaling-hit.html
compositing/geometry/fixed-position-iframe-composited-page-scale-down.html
fast/frames/frame-set-rotation-hit.html
compositing/geometry/fixed-position-composited-page-scale-down.html
fast/dom/Element/scale-page-client-rects.html
compositing/geometry/fixed-position-transform-composited-page-scale-down.html
fast/dom/Range/scale-page-bounding-client-rect.html
fast/repaint/scale-page-shrink.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554123</commentid>
    <comment_count>4</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-02-10 09:42:44 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 126514 [details])
&gt; Attachment 126514 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/11473690
&gt; 
&gt; New failing tests:
&gt; fast/dom/Range/scale-page-client-rects.html
&gt; fast/events/page-scaled-mouse-click-iframe.html
&gt; fast/frames/iframe-double-scale-contents.html
&gt; compositing/geometry/fixed-position-transform-composited-page-scale.html
&gt; fast/dom/window-inner-size-scaling.html
&gt; http/tests/inspector/inspect-element.html
&gt; fast/dom/Element/scale-page-bounding-client-rect.html
&gt; fast/events/scale-and-scroll-window.html
&gt; compositing/geometry/fixed-position-iframe-composited-page-scale.html
&gt; fast/events/scroll-in-scaled-page-with-overflow-hidden.html
&gt; fast/events/page-scaled-mouse-click.html
&gt; fast/events/scale-and-scroll-iframe-body.html
&gt; fast/dom/iframe-inner-size-scaling.html
&gt; compositing/scaling/tiled-layer-recursion.html
&gt; fast/repaint/background-scaling.html
&gt; compositing/geometry/fixed-position-composited-page-scale.html
&gt; fast/events/scale-and-scroll-body.html
&gt; accessibility/aria-describedby-on-input.html
&gt; fast/events/touch/page-scaled-touch-gesture-click.html
&gt; fast/events/scale-and-scroll-iframe-window.html
&gt; fast/frames/frame-set-scaling-hit.html
&gt; compositing/geometry/fixed-position-iframe-composited-page-scale-down.html
&gt; fast/frames/frame-set-rotation-hit.html
&gt; compositing/geometry/fixed-position-composited-page-scale-down.html
&gt; fast/dom/Element/scale-page-client-rects.html
&gt; compositing/geometry/fixed-position-transform-composited-page-scale-down.html
&gt; fast/dom/Range/scale-page-bounding-client-rect.html
&gt; fast/repaint/scale-page-shrink.html

The removed pathway should have been inactive for quite a long time, so I&apos;m not sure (could be wrong) that these failures are related to this patch. I&apos;m getting massive failures when running the layout tests on ToT without this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554377</commentid>
    <comment_count>5</comment_count>
      <attachid>126580</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-02-10 14:09:21 -0800</bug_when>
    <thetext>Created attachment 126580
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554378</commentid>
    <comment_count>6</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-02-10 14:10:37 -0800</bug_when>
    <thetext>I was over-zealous and removed something that lead to the test breakage. This patch should fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554451</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-10 15:42:11 -0800</bug_when>
    <thetext>I like this idea a lot.  It looks like you&apos;ve hit conflicts with some of Anders&apos; cleanups in ScrollableArea, mind resolving that and re-uploading?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554511</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-02-10 17:07:55 -0800</bug_when>
    <thetext>This is great! I was just wondering the other day why the scrollable area needed to know about zoom transforms :) Glad that it&apos;s obsolete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554530</commentid>
    <comment_count>9</comment_count>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-02-10 18:18:41 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; I like this idea a lot.  It looks like you&apos;ve hit conflicts with some of Anders&apos; cleanups in ScrollableArea, mind resolving that and re-uploading?

NP, will do so tomorrow at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555207</commentid>
    <comment_count>10</comment_count>
      <attachid>126760</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-02-13 05:46:50 -0800</bug_when>
    <thetext>Created attachment 126760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555356</commentid>
    <comment_count>11</comment_count>
      <attachid>126760</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-13 10:16:57 -0800</bug_when>
    <thetext>Comment on attachment 126760
Patch

R=me.  Please fix the mac build failure before landing:

/var/folders/db/z_22lpwn061cd362c11ktng40000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders/WebKit2Prefix-dklphnaxgqneptaesbgjjhyuylhp/WebKit2Prefix.h -c /Volumes/Data/WebKit/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp -o /Volumes/Data/WebKit/WebKitBuild/WebKit2.build/Release/WebKit2.build/Objects-normal/x86_64/BuiltInPDFView.o
In file included from /Volumes/Data/WebKit/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.cpp:27:
/Volumes/Data/WebKit/Source/WebKit2/WebProcess/Plugins/PDF/BuiltInPDFView.h:143: error: &apos;ZoomAnimationState&apos; has not been declared

I think all you need to do is delete the override</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555366</commentid>
    <comment_count>12</comment_count>
      <attachid>126793</attachid>
    <who name="W. James MacLean">wjmaclean</who>
    <bug_when>2012-02-13 10:36:21 -0800</bug_when>
    <thetext>Created attachment 126793
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555916</commentid>
    <comment_count>13</comment_count>
      <attachid>126793</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 20:42:12 -0800</bug_when>
    <thetext>Comment on attachment 126793
Patch for landing

Clearing flags on attachment: 126793

Committed r107665: &lt;http://trac.webkit.org/changeset/107665&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555917</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 20:42:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126514</attachid>
            <date>2012-02-10 07:25:33 -0800</date>
            <delta_ts>2012-02-10 14:09:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78359-20120210102532.patch</filename>
            <type>text/plain</type>
            <size>23432</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3Mzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg2NDE1Mzc0YWI1OGFk
ZTM0M2M4YTFkNGQyYTA2MzMzM2NkMmYxMS4uZmMwNDlkMjA0ZjJlYzk2YzdiYTcxYjY2NDNhNmMy
ZWFhYjQzMmY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTAyLTEwICBXLiBK
YW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIFJlbW92ZSBvYnNvbGV0ZSB6b29tIGFuaW1hdGlvbiBwYXRod2F5LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzNTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBmb3IgZXhpc3RpbmcgcGF0
aHdheXMgc2hvdWxkIG5vdCBiZSBicm9rZW4uIFRlc3RzIGZvciByZW1vdmVkIHBhdGh3YXkgcmVt
b3ZlZCBwcmV2aW91c2x5LgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBkZWFkIGNvZGUg
ZnJvbSB0aGUgcHJldmlvdXMgaW5jYXJuYXRpb24gb2Ygem9vbSBhbmltYXRpb24gZm9yIGNocm9t
aXVtLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3LmNwcDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAoRnJhbWVW
aWV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3IpOgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmg6CisgICAgICAgIChTY3JvbGxBbmltYXRvcik6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdG9yTm9uZTo6U2Nyb2xsQW5pbWF0b3JOb25lKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmg6CisgICAgICAgIChTY3JvbGxBbmltYXRvck5vbmUp
OgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoU2Nyb2xsYWJsZUFyZWEpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKwogMjAxMi0wMi0xMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogaW1wbGVtZW50IHVuZG8gZm9yIHNldE91dGVySFRN
TCB2aWEgdW5kby1pbmcgbmVzdGVkIHByaW1pdGl2ZSBjb21tYW5kcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggNDc5MzVhMGZhMDQxY2RkYzc2NGQxMmZiYWI3ZTA2YTMwODg1Y2MwZS4u
ZjFhYmRlNTg2NzAzYjQyNTQzM2Y5MTI0YWViODAyNmE2ZWFiZjFmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMi0xMCAgVy4gSmFtZXMgTWFjTGVh
biAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUg
b2Jzb2xldGUgem9vbSBhbmltYXRpb24gcGF0aHdheS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW1vdmVzIGRlYWQgY29kZSBmcm9t
IHRoZSBwcmV2aW91cyBpbmNhcm5hdGlvbiBvZiB6b29tIGFuaW1hdGlvbiBmb3IgY2hyb21pdW0u
CisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorCiAyMDEyLTAyLTA5ICBLZW5pY2hp
IElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgV2ViU29ja2V0
IGV4dGVuc2lvbiBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXgg
MTRhMTk4YTgxNmEzMzZiZWVmZjJhMDliNWIwOTRmZmJlNTU0YzM0Ni4uYWJjYzUxNzhlZGQ4OWVi
Zjc4ZTQzM2M1MWM2OGRjZjRmMTllNzA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcApAQCAtMjM2Miw2ICsyMzYyLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1
cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlRG91
YmxlVGFwOgorICAgICAgICBicmVhazsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVT
Y3JvbGxCZWdpbjoKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQ6IHsK
ICAgICAgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IGMwYjg1ODcxZmZlMDJjODgzZGJlODIzYjBlMzU2OWY3NjZiZWZi
MDYuLmU0MjNlYThhN2M0MWU1M2Q2MTg5YjI1MjZiOTYyNmUzODA2YmIzZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTcwLDkgKzcwLDYgQEAKIAogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKLSNpZiBQ
TEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCi0jZW5kaWYKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFNWRykKQEAgLTEyMjIsMjYgKzEyMTksNiBAQCB2b2lkIEZyYW1lVmll
dzo6cmVtb3ZlV2lkZ2V0VG9VcGRhdGUoUmVuZGVyRW1iZWRkZWRPYmplY3QqIG9iamVjdCkKICAg
ICBtX3dpZGdldFVwZGF0ZVNldC0+cmVtb3ZlKG9iamVjdCk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3
Ojp6b29tQW5pbWF0b3JUcmFuc2Zvcm1DaGFuZ2VkKGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9h
dCB5LCBab29tQW5pbWF0aW9uU3RhdGUgc3RhdGUpCi17Ci0gICAgaWYgKHN0YXRlID09IFpvb21B
bmltYXRpb25GaW5pc2hpbmcpIHsKLSAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5w
YWdlKCkpCi0gICAgICAgICAgICBwYWdlLT5zZXRQYWdlU2NhbGVGYWN0b3IocGFnZS0+cGFnZVNj
YWxlRmFjdG9yKCkgKiBzY2FsZSwgSW50UG9pbnQoc2NhbGUgKiBzY3JvbGxYKCkgLSB4LCBzY2Fs
ZSAqIHNjcm9sbFkoKSAtIHkpKTsKLSAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS0+cmVzZXRab29t
KCk7Ci0gICAgfQotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmIChS
ZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpKSB7Ci0gICAgICAgIGlmIChyb290
LT51c2VzQ29tcG9zaXRpbmcoKSkgewotICAgICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLT5z
Y2hlZHVsZUxheWVyRmx1c2goKTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgICAg
IFRSQUNFX0VWRU5UKCJGcmFtZVZpZXc6Onpvb21BbmltYXRvclRyYW5zZm9ybUNoYW5nZWQiLCB0
aGlzLCAwKTsKLSNlbmRpZgotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCi19Ci0KIHZvaWQgRnJh
bWVWaWV3OjpzZXRNZWRpYVR5cGUoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCiB7CiAgICAgbV9t
ZWRpYVR5cGUgPSBtZWRpYVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCA3NWJmZWVj
ZTVjZjFmOWFkZWU1OWEyMzBjMjkwYTJiZDRjOWZkYjc0Li4wNTFjZGNkNjczNGJhMWVmNDFmOGQ4
ZmRiYTRmZjE4MjA3ODZiMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTE3MCw4ICsx
NzAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRGaXhlZEVsZW1lbnRzQWZ0
ZXJTY3JvbGxpbmcoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgem9vbUFuaW1h
dG9yVHJhbnNmb3JtQ2hhbmdlZChmbG9hdCwgZmxvYXQsIGZsb2F0LCBab29tQW5pbWF0aW9uU3Rh
dGUpOwotCiAgICAgU3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0TWVkaWFU
eXBlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgYWRqdXN0TWVkaWFUeXBlRm9yUHJpbnRpbmco
Ym9vbCBwcmludGluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5j
cHAKaW5kZXggZjczYzVjYzA2NDMzYzNlYTZkZDU1YWUxMTNjMDI5NDYyOWI0YTg4NC4uOTQyMzYz
ZTVjZWFmZDRlMDQ2Yzk2YzdmOGRlM2IzMDYwYTNhZjI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtNTIsOSArNTIsNiBAQCBTY3JvbGxBbmltYXRv
cjo6U2Nyb2xsQW5pbWF0b3IoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhKQogICAgIDog
bV9zY3JvbGxhYmxlQXJlYShzY3JvbGxhYmxlQXJlYSkKICAgICAsIG1fY3VycmVudFBvc1goMCkK
ICAgICAsIG1fY3VycmVudFBvc1koMCkKLSAgICAsIG1fY3VycmVudFpvb21TY2FsZSgxKQotICAg
ICwgbV9jdXJyZW50Wm9vbVRyYW5zWCgwKQotICAgICwgbV9jdXJyZW50Wm9vbVRyYW5zWSgwKQog
ewogfQogCkBAIC0xNDEsMzEgKzEzOCw0IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6Om5vdGlmeVBv
c2l0aW9uQ2hhbmdlZCgpCiAgICAgbV9zY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsT2Zmc2V0RnJv
bUFuaW1hdGlvbihJbnRQb2ludChtX2N1cnJlbnRQb3NYLCBtX2N1cnJlbnRQb3NZKSk7CiB9CiAK
LXZvaWQgU2Nyb2xsQW5pbWF0b3I6Om5vdGlmeVpvb21DaGFuZ2VkKFpvb21BbmltYXRpb25TdGF0
ZSBzdGF0ZSkKLXsKLSAgICBtX3Njcm9sbGFibGVBcmVhLT56b29tQW5pbWF0b3JUcmFuc2Zvcm1D
aGFuZ2VkKG1fY3VycmVudFpvb21TY2FsZSwgbV9jdXJyZW50Wm9vbVRyYW5zWCwgbV9jdXJyZW50
Wm9vbVRyYW5zWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRlID09IFpvb21BbmltYXRpb25Db250aW51aW5nID8gU2Nyb2xsYWJsZUFyZWE6
Olpvb21BbmltYXRpb25Db250aW51aW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFNj
cm9sbGFibGVBcmVhOjpab29tQW5pbWF0aW9uRmluaXNoaW5nKTsKLX0KLQotRmxvYXRQb2ludCBT
Y3JvbGxBbmltYXRvcjo6em9vbVRyYW5zbGF0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRmxv
YXRQb2ludChtX2N1cnJlbnRab29tVHJhbnNYLCBtX2N1cnJlbnRab29tVHJhbnNZKTsKLX0KLQot
dm9pZCBTY3JvbGxBbmltYXRvcjo6cmVzZXRab29tKCkKLXsKLSAgICBtX2N1cnJlbnRab29tU2Nh
bGUgPSAxOwotICAgIG1fY3VycmVudFpvb21UcmFuc1ggPSAwOwotICAgIG1fY3VycmVudFpvb21U
cmFuc1kgPSAwOwotfQotCi12b2lkIFNjcm9sbEFuaW1hdG9yOjpzZXRab29tUGFyYW1ldGVyc0Zv
clRlc3QoZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHkpCi17Ci0gICAgbV9jdXJyZW50Wm9v
bVNjYWxlID0gc2NhbGU7Ci0gICAgbV9jdXJyZW50Wm9vbVRyYW5zWCA9ICgxIC0gc2NhbGUpICog
eDsKLSAgICBtX2N1cnJlbnRab29tVHJhbnNZID0gKDEgLSBzY2FsZSkgKiB5OwotICAgIG5vdGlm
eVpvb21DaGFuZ2VkKFpvb21BbmltYXRpb25Db250aW51aW5nKTsgLy8gRG9uJ3QgbGV0IHBhZ2Ug
cmUtc2NhbGUuCi19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IGIzM2M0NTgxMmI0MTY4ZDk0ZWMwYTU3N2IzNTI4
YzM3NTEyMDJjNDIuLjcyY2ViYzk3MDQyMDhlOTYzOWY4Y2EzZGE4YzQ4YTcwZDIwZGQ4NDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApAQCAtNDcsOCArNDcsNiBA
QCBjbGFzcyBQbGF0Zm9ybUdlc3R1cmVFdmVudDsKIAogY2xhc3MgU2Nyb2xsQW5pbWF0b3Igewog
cHVibGljOgotICAgIGVudW0gWm9vbUFuaW1hdGlvblN0YXRlIHsgWm9vbUFuaW1hdGlvbkNvbnRp
bnVpbmcsIFpvb21BbmltYXRpb25GaW5pc2hpbmcgfTsKLQogICAgIHN0YXRpYyBQYXNzT3duUHRy
PFNjcm9sbEFuaW1hdG9yPiBjcmVhdGUoU2Nyb2xsYWJsZUFyZWEqKTsKIAogICAgIHZpcnR1YWwg
flNjcm9sbEFuaW1hdG9yKCk7CkBAIC05MSwyNiArODksMTYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopIHsgfQogICAgIHZp
cnR1YWwgdm9pZCB3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKSB7IH0K
IAotICAgIGZsb2F0IHpvb21TY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFpvb21TY2Fs
ZTsgfQotICAgIEZsb2F0UG9pbnQgem9vbVRyYW5zbGF0aW9uKCkgY29uc3Q7Ci0gICAgdmlydHVh
bCB2b2lkIHJlc2V0Wm9vbSgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRab29tUGFyYW1ldGVyc0Zv
clRlc3QoZmxvYXQsIGZsb2F0LCBmbG9hdCk7Ci0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2Ny
b2xsYmFyUGFydGljaXBhdGVJbkhpdFRlc3RpbmcoU2Nyb2xsYmFyKikgeyByZXR1cm4gdHJ1ZTsg
fQogCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsQW5pbWF0b3IoU2Nyb2xsYWJsZUFyZWEqKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQb3NpdGlvbkNoYW5nZWQoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5Wm9vbUNoYW5nZWQoWm9vbUFuaW1hdGlvblN0YXRlKTsKIAogICAgIFNjcm9sbGFi
bGVBcmVhKiBtX3Njcm9sbGFibGVBcmVhOwogICAgIGZsb2F0IG1fY3VycmVudFBvc1g7IC8vIFdl
IGF2b2lkIHVzaW5nIGEgRmxvYXRQb2ludCBpbiBvcmRlciB0byByZWR1Y2UKICAgICBmbG9hdCBt
X2N1cnJlbnRQb3NZOyAvLyBzdWJjbGFzcyBjb2RlIGNvbXBsZXhpdHkuCi0KLSAgICBmbG9hdCBt
X2N1cnJlbnRab29tU2NhbGU7Ci0gICAgZmxvYXQgbV9jdXJyZW50Wm9vbVRyYW5zWDsKLSAgICBm
bG9hdCBtX2N1cnJlbnRab29tVHJhbnNZOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKaW5kZXgg
M2QxNDcyYjM4MTY3YzJhMjU2NDIyMTQ0OWMzMTNkOTJiYjU1MTQ3OS4uMDgzYTE4YTcwMWFmZjE1
NmEyYTZiYTc5ZTg0MDg3NjIxODY5OGQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCkBAIC0zNzEsMzYgKzM3MSwxMCBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OnVwZGF0ZVZpc2libGVMZW5ndGgoaW50IHZpc2li
bGVMZW5ndGgpCiAgICAgbV92aXNpYmxlTGVuZ3RoID0gdmlzaWJsZUxlbmd0aDsKIH0KIAotU2Ny
b2xsQW5pbWF0b3JOb25lOjpab29tRGF0YTo6Wm9vbURhdGEoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3JOb25lKiBwYXJlbnQpCi0gICAgOiBtX3BhcmVudChwYXJlbnQpCi0gICAgLCBtX2lzQW5pbWF0
aW5nKGZhbHNlKQotewotfQotCi1ib29sIFNjcm9sbEFuaW1hdG9yTm9uZTo6Wm9vbURhdGE6OmFu
aW1hdGVab29tKGRvdWJsZSBjdXJyZW50VGltZSkKLXsKLSAgICBtX2xhc3RBbmltYXRpb25UaW1l
ID0gY3VycmVudFRpbWU7Ci0gICAgZG91YmxlIGRlbHRhVGltZSA9IGN1cnJlbnRUaW1lIC0gbV9z
dGFydFRpbWU7Ci0KLSAgICBpZiAoZGVsdGFUaW1lID4gbV9hbmltYXRpb25UaW1lKSB7Ci0gICAg
ICAgIG1fcGFyZW50LT5tX2N1cnJlbnRab29tU2NhbGUgPSBtX2Rlc2lyZWRTY2FsZTsKLSAgICAg
ICAgbV9wYXJlbnQtPm1fY3VycmVudFpvb21UcmFuc1ggPSBtX2Rlc2lyZWRUcmFuc1g7Ci0gICAg
ICAgIG1fcGFyZW50LT5tX2N1cnJlbnRab29tVHJhbnNZID0gbV9kZXNpcmVkVHJhbnNZOwotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgZG91YmxlIGVsYXBzZWRUaW1lRnJhY3Rp
b24gPSBkZWx0YVRpbWUgLyBtX2FuaW1hdGlvblRpbWU7Ci0gICAgbV9wYXJlbnQtPm1fY3VycmVu
dFpvb21TY2FsZSA9IGVsYXBzZWRUaW1lRnJhY3Rpb24gKiAobV9kZXNpcmVkU2NhbGUgLSBtX3N0
YXJ0U2NhbGUpICsgbV9zdGFydFNjYWxlOwotICAgIG1fcGFyZW50LT5tX2N1cnJlbnRab29tVHJh
bnNYID0gZWxhcHNlZFRpbWVGcmFjdGlvbiAqIG1fZGVzaXJlZFRyYW5zWDsKLSAgICBtX3BhcmVu
dC0+bV9jdXJyZW50Wm9vbVRyYW5zWSA9IGVsYXBzZWRUaW1lRnJhY3Rpb24gKiBtX2Rlc2lyZWRU
cmFuc1k7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIFNjcm9sbEFuaW1hdG9yTm9uZTo6U2Nyb2xs
QW5pbWF0b3JOb25lKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKICAgICA6IFNjcm9s
bEFuaW1hdG9yKHNjcm9sbGFibGVBcmVhKQogICAgICwgbV9ob3Jpem9udGFsRGF0YSh0aGlzLCAm
bV9jdXJyZW50UG9zWCwgc2Nyb2xsYWJsZUFyZWEtPnZpc2libGVXaWR0aCgpKQogICAgICwgbV92
ZXJ0aWNhbERhdGEodGhpcywgJm1fY3VycmVudFBvc1ksIHNjcm9sbGFibGVBcmVhLT52aXNpYmxl
SGVpZ2h0KCkpCi0gICAgLCBtX3pvb21EYXRhKHRoaXMpCiAgICAgLCBtX2FuaW1hdGlvblRpbWVy
KHRoaXMsICZTY3JvbGxBbmltYXRvck5vbmU6OmFuaW1hdGlvblRpbWVyRmlyZWQpCiB7CiB9CkBA
IC00NzAsNjMgKzQ0NCw2IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjpzY3JvbGxUb09mZnNl
dFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0CiAgICAgbm90aWZ5UG9z
aXRpb25DaGFuZ2VkKCk7CiB9CiAKLSNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCi12b2lkIFNj
cm9sbEFuaW1hdG9yTm9uZTo6em9vbShjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgcGdlKQot
ewotICAgIEFTU0VSVChwZ2UudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVU
YXApOwotICAgIC8vIEZJWE1FOiBtb2RpZnkgdGhpcyBzbyB3ZSBjYW4gc3RhcnQgZXZlbiBpZiB0
aGUgdGltZXIgaXMgYWN0aXZlLgotICAgIGlmICghbV9hbmltYXRpb25UaW1lci5pc0FjdGl2ZSgp
KSB7Ci0gICAgICAgIG1fY3VycmVudFpvb21TY2FsZSA9IDE7Ci0gICAgICAgIG1fY3VycmVudFpv
b21UcmFuc1ggPSAwOwotICAgICAgICBtX2N1cnJlbnRab29tVHJhbnNZID0gMDsKLQotICAgICAg
ICBkb3VibGUgY3VycmVudFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OwotICAgICAgICBmbG9hdCBzY2FsZSA9IHBnZS5kZWx0YVgoKTsKLQotICAgICAgICBtX3pvb21E
YXRhLm1fc3RhcnRUaW1lID0gY3VycmVudFRpbWUgLSBrVGlja1RpbWUgLyAyOwotICAgICAgICBt
X3pvb21EYXRhLm1fc3RhcnRTY2FsZSA9IG1fY3VycmVudFpvb21TY2FsZTsKLSAgICAgICAgbV96
b29tRGF0YS5tX2Rlc2lyZWRTY2FsZSA9IHNjYWxlOwotICAgICAgICAvLyBGSVhNRTogRG9jdW1l
bnQgdGhlbiBzaW1wbGlmeSB0aGUgZm9sbG93aW5nIGVxdWF0aW9ucy4KLSAgICAgICAgbV96b29t
RGF0YS5tX2Rlc2lyZWRUcmFuc1ggPSAoMSAtIHNjYWxlKSAqIHBnZS5nbG9iYWxQb3NpdGlvbigp
LngoKTsKLSAgICAgICAgbV96b29tRGF0YS5tX2Rlc2lyZWRUcmFuc1kgPSAoMSAtIHNjYWxlKSAq
IHBnZS5nbG9iYWxQb3NpdGlvbigpLnkoKTsKLSNpZiBFTkFCTEUoRE9VQkxFX1RBUF9DRU5URVJT
KQotICAgICAgICBpZiAocGdlLnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlRG91Ymxl
VGFwKSB7Ci0gICAgICAgICAgICAvLyBab29tIHRvIGNlbnRyZSBvZiBkaXNwbGF5LiBQaW5jaC10
by16b29tIG1heSBub3Qgd2FudCB0aGlzIGJlaGF2aW91ci4KLSAgICAgICAgICAgIG1fem9vbURh
dGEubV9kZXNpcmVkVHJhbnNYICs9IG1fc2Nyb2xsYWJsZUFyZWEtPnZpc2libGVXaWR0aCgpIC8g
MiAtIHBnZS5nbG9iYWxQb3NpdGlvbigpLngoKTsKLSAgICAgICAgICAgIG1fem9vbURhdGEubV9k
ZXNpcmVkVHJhbnNZICs9IG1fc2Nyb2xsYWJsZUFyZWEtPnZpc2libGVIZWlnaHQoKSAvIDIgLSBw
Z2UuZ2xvYmFsUG9zaXRpb24oKS55KCk7Ci0gICAgICAgIH0KLSNlbmRpZgotICAgICAgICBtX3pv
b21EYXRhLm1fbGFzdEFuaW1hdGlvblRpbWUgPSBjdXJyZW50VGltZTsKLSAgICAgICAgbV96b29t
RGF0YS5tX2FuaW1hdGlvblRpbWUgPSBrWm9vbVRpY2tzICoga1RpY2tUaW1lOwotCi0gICAgICAg
IGJvb2wgaXNDb250aW51aW5nID0gbV96b29tRGF0YS5hbmltYXRlWm9vbShjdXJyZW50VGltZSk7
Ci0KLSAgICAgICAgZG91YmxlIGRlbHRhVG9OZXh0RnJhbWUgPSBjZWlsKChjdXJyZW50VGltZSAt
IG1fc3RhcnRUaW1lKSAqIGtGcmFtZVJhdGUpIC8ga0ZyYW1lUmF0ZSAtIChjdXJyZW50VGltZSAt
IG1fc3RhcnRUaW1lKTsKLSAgICAgICAgZG91YmxlIG5leHRUaW1lckludGVydmFsID0gbWF4KGtN
aW5pbXVtVGltZXJJbnRlcnZhbCwgZGVsdGFUb05leHRGcmFtZSk7Ci0gICAgICAgIGlmIChpc0Nv
bnRpbnVpbmcpIHsKLSAgICAgICAgICAgIG1fYW5pbWF0aW9uVGltZXIuc3RhcnRPbmVTaG90KG5l
eHRUaW1lckludGVydmFsKTsKLSAgICAgICAgICAgIG1fem9vbURhdGEubV9pc0FuaW1hdGluZyA9
IHRydWU7Ci0gICAgICAgICAgICBub3RpZnlab29tQ2hhbmdlZChab29tQW5pbWF0aW9uQ29udGlu
dWluZyk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbm90aWZ5Wm9vbUNoYW5nZWQoWm9v
bUFuaW1hdGlvbkZpbmlzaGluZyk7Ci0gICAgfQotfQotCi12b2lkIFNjcm9sbEFuaW1hdG9yTm9u
ZTo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBwZ2UpCi17
Ci0gICAgVFJBQ0VfRVZFTlQoIlNjcm9sbEFuaW1hdG9yTm9uZTo6aGFuZGxlR2VzdHVyZUV2ZW50
IiwgdGhpcywgMCk7Ci0gICAgc3dpdGNoIChwZ2UudHlwZSgpKSB7Ci0gICAgY2FzZSBQbGF0Zm9y
bUV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOgotICAgICAgICB6b29tKHBnZSk7Ci0gICAgICAgIGJy
ZWFrOwotCi0gICAgZGVmYXVsdDoKLSAgICAgICAgLy8gVE9ETzogYWRkIGFueSBvdGhlciBldmVu
dCB0eXBlcyB3ZSBzaG91bGQgaGFuZGxlCi0gICAgICAgIHsgfQotICAgIH0KLX0KLSNlbmRpZgot
CiB2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6d2lsbEVuZExpdmVSZXNpemUoKQogewogICAgIHVw
ZGF0ZVZpc2libGVMZW5ndGhzKCk7CkBAIC01NjMsMTkgKzQ4MCw2IEBAIHZvaWQgU2Nyb2xsQW5p
bWF0b3JOb25lOjphbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFNjcm9sbEFuaW1hdG9yTm9uZT4q
IHRpbWVyKQogICAgIGlmIChtX3ZlcnRpY2FsRGF0YS5tX3N0YXJ0VGltZSAmJiBtX3ZlcnRpY2Fs
RGF0YS5hbmltYXRlU2Nyb2xsKGN1cnJlbnRUaW1lICsgZGVsdGFUb05leHRGcmFtZSkpCiAgICAg
ICAgIGNvbnRpbnVlQW5pbWF0aW9uID0gdHJ1ZTsKIAotICAgIGlmIChtX3pvb21EYXRhLm1faXNB
bmltYXRpbmcpIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgVFJBQ0VfRVZFTlQo
IlNjcm9sbEFuaW1hdG9yTm9uZTo6bm90aWZ5Wm9vbUNoYW5nZWQiLCB0aGlzLCAwKTsKLSNlbmRp
ZgotICAgICAgICBpZiAobV96b29tRGF0YS5tX3N0YXJ0VGltZSAmJiBtX3pvb21EYXRhLmFuaW1h
dGVab29tKGN1cnJlbnRUaW1lICsgZGVsdGFUb05leHRGcmFtZSkpIHsKLSAgICAgICAgICAgIGNv
bnRpbnVlQW5pbWF0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAgIG5vdGlmeVpvb21DaGFuZ2VkKFpv
b21BbmltYXRpb25Db250aW51aW5nKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG5v
dGlmeVpvb21DaGFuZ2VkKFpvb21BbmltYXRpb25GaW5pc2hpbmcpOwotICAgICAgICAgICAgbV96
b29tRGF0YS5tX2lzQW5pbWF0aW5nID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBp
ZiAoY29udGludWVBbmltYXRpb24pIHsKICAgICAgICAgZG91YmxlIG5leHRUaW1lckludGVydmFs
ID0gbWF4KGtNaW5pbXVtVGltZXJJbnRlcnZhbCwgZGVsdGFUb05leHRGcmFtZSk7CiAgICAgICAg
IHRpbWVyLT5zdGFydE9uZVNob3QobmV4dFRpbWVySW50ZXJ2YWwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuaAppbmRleCBmOTRkNTIzOWI3MTliNjIwMjRj
MThiNDcxYjUxNTdiZDRjNTMxY2YyLi40ZDY5YTdjNGE2NDYzNzI1YmUxMGE2YTY2NWNlYjc5ZGEz
MjE1YjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ck5vbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUu
aApAQCAtNTAsMTEgKzUwLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Ny
b2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBt
dWx0aXBsaWVyKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0
aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKIAotI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKLSAg
ICB2aXJ0dWFsIHZvaWQgem9vbShjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYpOwotICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQm
KTsKLSNlbmRpZgotCiAgICAgdmlydHVhbCB2b2lkIHdpbGxFbmRMaXZlUmVzaXplKCk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwpAQCAtMTMx
LDM1ICsxMjYsMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICBpbnQgbV92aXNpYmxlTGVuZ3RoOwog
ICAgIH07CiAKLSAgICAvLyBXaGlsZSB6b29taW5nLCBzY2FsZSwgcG9zWCBhbmQgcG9zWSBuZWVk
IHRvIHN0YXkgdGlnaHRseSBjb3VwbGVkLCBzbyB1c2UgYSBzZXBhcmF0ZQotICAgIC8vIGRhdGEg
c3RydWN0dXJlLgotICAgIHN0cnVjdCBab29tRGF0YSB7Ci0gICAgICAgIFpvb21EYXRhKFNjcm9s
bEFuaW1hdG9yTm9uZSogcGFyZW50KTsKLSAgICAgICAgYm9vbCBhbmltYXRlWm9vbShkb3VibGUg
Y3VycmVudFRpbWUpOwotCi0gICAgICAgIFNjcm9sbEFuaW1hdG9yTm9uZSogbV9wYXJlbnQ7Ci0g
ICAgICAgIGJvb2wgbV9pc0FuaW1hdGluZzsKLQotICAgICAgICBkb3VibGUgbV9zdGFydFRpbWU7
Ci0KLSAgICAgICAgZG91YmxlIG1fYW5pbWF0aW9uVGltZTsKLSAgICAgICAgZG91YmxlIG1fbGFz
dEFuaW1hdGlvblRpbWU7Ci0KLSAgICAgICAgZG91YmxlIG1fc3RhcnRTY2FsZTsKLSAgICAgICAg
ZG91YmxlIG1fZGVzaXJlZFNjYWxlOwotICAgICAgICBkb3VibGUgbV9kZXNpcmVkVHJhbnNYOwot
ICAgICAgICBkb3VibGUgbV9kZXNpcmVkVHJhbnNZOwotICAgIH07Ci0KLSAgICBmcmllbmQgc3Ry
dWN0IFpvb21EYXRhOwotCiAgICAgdm9pZCBhbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFNjcm9s
bEFuaW1hdG9yTm9uZT4qKTsKICAgICB2b2lkIHN0b3BBbmltYXRpb25UaW1lcklmTmVlZGVkKCk7
CiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpOwogCiAgICAgUGVyQXhpc0RhdGEgbV9o
b3Jpem9udGFsRGF0YTsKICAgICBQZXJBeGlzRGF0YSBtX3ZlcnRpY2FsRGF0YTsKLSAgICBab29t
RGF0YSBtX3pvb21EYXRhOwogCiAgICAgZG91YmxlIG1fc3RhcnRUaW1lOwogICAgIFRpbWVyPFNj
cm9sbEFuaW1hdG9yTm9uZT4gbV9hbmltYXRpb25UaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCA5OWI5YmFiYzM0NjlmMjI1MmY1MDlhZWI0Mzg4
MWQzZWU4YjcyNTZkLi4wNjI0ZWMwY2RiZGU3NDA5NDgzM2MwYjAyNTAxYTBhNDlkN2FkYmJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0xNDgsMTEg
KzE0OCw2IEBAIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvWU9mZnNldFdpdGhvdXRBbmlt
YXRpb24oZmxvYXQgeSkKICAgICBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oRmxvYXRQ
b2ludChzY3JvbGxBbmltYXRvcigpLT5jdXJyZW50UG9zaXRpb24oKS54KCksIHkpKTsKIH0KIAot
dm9pZCBTY3JvbGxhYmxlQXJlYTo6em9vbUFuaW1hdG9yVHJhbnNmb3JtQ2hhbmdlZChmbG9hdCwg
ZmxvYXQsIGZsb2F0LCBab29tQW5pbWF0aW9uU3RhdGUpCi17Ci0gICAgLy8gUmVxdWlyZXMgRnJh
bWVWaWV3IHRvIG92ZXJyaWRlIHRoaXMuCi19Ci0KIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OmhhbmRs
ZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAg
IHJldHVybiBzY3JvbGxBbmltYXRvcigpLT5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggMzUzYjZmMDc0NmQ4
ODJiNjZmNDNjYWQ2MTMzZDk3M2MwMGVjZjA1NC4uZTg2MzNlMmEyMDYyY2I0YjRiY2M1YTliMjY4
ZjllNmFjNGI3YWQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5o
CkBAIC00MiwxNiArNDIsMTIgQEAgY2xhc3MgR3JhcGhpY3NMYXllcjsKIAogY2xhc3MgU2Nyb2xs
YWJsZUFyZWEgewogcHVibGljOgotICAgIGVudW0gWm9vbUFuaW1hdGlvblN0YXRlIHsgWm9vbUFu
aW1hdGlvbkNvbnRpbnVpbmcsIFpvb21BbmltYXRpb25GaW5pc2hpbmcgfTsKLQogICAgIGJvb2wg
c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxp
ZXIgPSAxKTsKICAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBG
bG9hdFBvaW50Jik7CiAgICAgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oU2Ny
b2xsYmFyT3JpZW50YXRpb24sIGZsb2F0IG9mZnNldCk7CiAgICAgdm9pZCBzY3JvbGxUb1hPZmZz
ZXRXaXRob3V0QW5pbWF0aW9uKGZsb2F0IHgpOwogICAgIHZvaWQgc2Nyb2xsVG9ZT2Zmc2V0V2l0
aG91dEFuaW1hdGlvbihmbG9hdCB4KTsKIAotICAgIHZpcnR1YWwgdm9pZCB6b29tQW5pbWF0b3JU
cmFuc2Zvcm1DaGFuZ2VkKGZsb2F0LCBmbG9hdCwgZmxvYXQsIFpvb21BbmltYXRpb25TdGF0ZSk7
Ci0KICAgICBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7
CiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogICAgIHZvaWQgaGFuZGxlR2VzdHVyZUV2ZW50
KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCBjMmIwNDVkY2ExNGU4ZWViYWY2ZjBmMDQzN2RkMWRi
ODcxYjMxZmUzLi5iM2ExMDE2YzdiYzM1ZTRiZTg0ZTgwMzNjNjgxMWRlM2ZmYTU1OGUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTM2LDE0ICsz
Niw2IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKLSNpZiBF
TkFCTEUoR0VTVFVSRV9FVkVOVFMpCi0jaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCIK
LSNlbmRpZgotCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0jaW5jbHVkZSAiU2Nyb2xs
QW5pbWF0b3IuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQogI2luY2x1ZGUg
IkNvbG9yQ2hvb3Nlci5oIgogI2VuZGlmCkBAIC0xNzIsNDMgKzE2NCw2IEBAIHZvaWQgSW50ZXJu
YWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4
Y2VwdGlvbkNvZGUmCiAgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxl
ZChlbmFibGVkKTsKIH0KIAotdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVTY3JvbGxB
bmltYXRvcihib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIEludGVybmFs
U2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7Ci0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcp
Ci0gICAgc2V0dGluZ3MoKS0+c2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoZW5hYmxlZCk7Ci0jZWxz
ZQotICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKLSNlbmRpZgotfQotCi12b2lkIEludGVybmFs
U2V0dGluZ3M6OnNldFpvb21BbmltYXRvclRyYW5zZm9ybShmbG9hdCBzY2FsZSwgZmxvYXQgdHgs
IGZsb2F0IHR5LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBJbnRlcm5hbFNldHRpbmdzR3Vh
cmRGb3JGcmFtZSgpOwotCi0jaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQotICAgIFBsYXRmb3Jt
R2VzdHVyZUV2ZW50IHBnZShQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlRG91YmxlVGFwLCBJbnRQb2lu
dCh0eCwgdHkpLCBJbnRQb2ludCh0eCwgdHkpLCAwLCBzY2FsZSwgMC5mLCAwLCAwLCAwLCAwKTsK
LSAgICBmcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlR2VzdHVyZUV2ZW50KHBnZSk7Ci0j
ZWxzZQotICAgIFVOVVNFRF9QQVJBTShzY2FsZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHR4KTsKLSAg
ICBVTlVTRURfUEFSQU0odHkpOwotI2VuZGlmCi19Ci0KLXZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0Wm9vbVBhcmFtZXRlcnMoZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHksIEV4Y2VwdGlv
bkNvZGUmIGVjKQotewotICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvckZyYW1lVmlldygpOwot
Ci0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0gICAgZnJhbWUoKS0+dmlldygpLT5zY3Jv
bGxBbmltYXRvcigpLT5zZXRab29tUGFyYW1ldGVyc0ZvclRlc3Qoc2NhbGUsIHgsIHkpOwotI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0oc2NhbGUpOwotICAgIFVOVVNFRF9QQVJBTSh4KTsKLSAgICBV
TlVTRURfUEFSQU0oeSk7Ci0jZW5kaWYKLX0KLQogdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRN
b2NrU2Nyb2xsYmFyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOwpAQCAtMjUzLDE4ICsyMDgs
NiBAQCBib29sIEludGVybmFsU2V0dGluZ3M6OnVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKEV4
Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVybiBzZXR0aW5ncygpLT51bmlmaWVkVGV4dENoZWNr
ZXJFbmFibGVkKCk7CiB9CiAKLWZsb2F0IEludGVybmFsU2V0dGluZ3M6OnBhZ2VTY2FsZUZhY3Rv
cihFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JQYWdl
UmV0dXJuKDApOwotICAgIHJldHVybiBwYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOwotfQotCi12
b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3Rv
ciwgaW50IHgsIGludCB5LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBJbnRlcm5hbFNldHRp
bmdzR3VhcmRGb3JQYWdlKCk7Ci0gICAgcGFnZSgpLT5zZXRQYWdlU2NhbGVGYWN0b3Ioc2NhbGVG
YWN0b3IsIEludFBvaW50KHgsIHkpKTsKLX0KLQogdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRQ
ZXJUaWxlRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCA2NDgwMDkyNmM0ZDBmMWNjNGFhMzEyZGUx
MDA1YmRhOTVjYzYwOGUzLi44NGQxZjE0ODMxZWMwODgzZTE5MzFjOTQ1OWQ5Zjg2NDc3MTJjZGVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtNTIsMTcg
KzUyLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xs
YWJsZUZyYW1lcyhib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEFj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0
aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oZmxv
YXQgc2NhbGUsIGZsb2F0IHR4LCBmbG9hdCB0eSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQg
c2V0Wm9vbVBhcmFtZXRlcnMoZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHksIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChib29sIGVuYWJsZWQs
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0VuYWJsZWQoYm9vbCBl
bmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9EdXJhdGlv
bkluU2Vjb25kcyhkb3VibGUgZHVyYXRpb25JblNlY29uZHMsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB2b2lkIHNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoYm9vbCwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoYm9vbCwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIGJvb2wgdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRXhj
ZXB0aW9uQ29kZSYpOwotICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcihFeGNlcHRpb25Db2RlJik7
Ci0gICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4LCBp
bnQgeSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0UGVyVGlsZURyYXdpbmdFbmFibGVk
KGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VG91Y2hFdmVudEVt
dWxhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IDAzNjAwODM4NGVlYzE3
NmY3NTgzZGJkMDllNjEwMGJlMmI2ODc4NzcuLjhlNDJlYTI5ZGI4YzhiZGRhMzYxZDQzYzgxNGRm
YTc2MjRmNmJlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbApAQCAtMzMsMTcgKzMzLDEyIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNl
dEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Nyb2xsYWJsZUZyYW1lcyhpbiBib29sZWFuIGVuYWJsZWQp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2lu
Z0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0
b3IoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9p
ZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oaW4gZmxvYXQgc2NhbGUsIGluIGZsb2F0IHR4LCBp
biBmbG9hdCB0eSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0Wm9vbVBh
cmFtZXRlcnMoaW4gZmxvYXQgc2NhbGUsIGluIGZsb2F0IHgsIGluIGZsb2F0IHkpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChpbiBi
b29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldFBh
c3N3b3JkRWNob0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgdm9pZCBzZXRQYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhpbiBkb3Vi
bGUgZHVyYXRpb25JblNlY29uZHMpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lk
IHNldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoaW4gYm9vbGVhbiBlbmFibGVk
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENoZWNr
aW5nRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAg
ICAgICAgYm9vbGVhbiB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZCgpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKLSAgICAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yKGluIGZsb2F0IHNjYWxlRmFj
dG9yLCBpbiBsb25nIHgsIGluIGxvbmcgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IHZvaWQgc2V0VG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IDA2ZTM0Y2QzY2JiYzBkZTE3OGIxMjE3ZmE0MDM4OTliNzIwOTdiZjYuLmJj
NDEyNWE2ZGExZTUxNGE5ZjYwYWQ2NTliNzc0NjZiNzZhMWY1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTUzLDE0ICs1Myw2IEBACiAjaW5jbHVkZSAiU3BlbGxDaGVj
a2VyLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAKLSNpZiBFTkFCTEUoR0VTVFVSRV9F
VkVOVFMpCi0jaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCIKLSNlbmRpZgotCi0jaWYg
RU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0jaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKLSNl
bmRpZgotCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQogI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5o
IgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5k
ZXggMGYzNTM3OTA2ODQ3ZjQ1MjI2ZjQ3YzFlZTY3MDk4N2E4OTE0YjEzYS4uZjg0NzU1ZmY1YmJl
ZTg1YTIyZWRhZTc3ODY1MTY3NjJlNjliZTM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtOTksNyArOTksNiBAQAogI2luY2x1ZGUgIlJlbmRlcldp
ZGdldC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiU2NoZW1lUmVn
aXN0cnkuaCIKLSNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126580</attachid>
            <date>2012-02-10 14:09:21 -0800</date>
            <delta_ts>2012-02-13 05:46:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78359-20120210170920.patch</filename>
            <type>text/plain</type>
            <size>23234</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3Mzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjg2NDE1Mzc0YWI1OGFk
ZTM0M2M4YTFkNGQyYTA2MzMzM2NkMmYxMS4uZmMwNDlkMjA0ZjJlYzk2YzdiYTcxYjY2NDNhNmMy
ZWFhYjQzMmY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTAyLTEwICBXLiBK
YW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIFJlbW92ZSBvYnNvbGV0ZSB6b29tIGFuaW1hdGlvbiBwYXRod2F5LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzNTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBmb3IgZXhpc3RpbmcgcGF0
aHdheXMgc2hvdWxkIG5vdCBiZSBicm9rZW4uIFRlc3RzIGZvciByZW1vdmVkIHBhdGh3YXkgcmVt
b3ZlZCBwcmV2aW91c2x5LgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBkZWFkIGNvZGUg
ZnJvbSB0aGUgcHJldmlvdXMgaW5jYXJuYXRpb24gb2Ygem9vbSBhbmltYXRpb24gZm9yIGNocm9t
aXVtLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3LmNwcDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAoRnJhbWVW
aWV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3IpOgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmg6CisgICAgICAgIChTY3JvbGxBbmltYXRvcik6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdG9yTm9uZTo6U2Nyb2xsQW5pbWF0b3JOb25lKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmg6CisgICAgICAgIChTY3JvbGxBbmltYXRvck5vbmUp
OgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAoU2Nyb2xsYWJsZUFyZWEpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKwogMjAxMi0wMi0xMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogaW1wbGVtZW50IHVuZG8gZm9yIHNldE91dGVySFRN
TCB2aWEgdW5kby1pbmcgbmVzdGVkIHByaW1pdGl2ZSBjb21tYW5kcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggNDc5MzVhMGZhMDQxY2RkYzc2NGQxMmZiYWI3ZTA2YTMwODg1Y2MwZS4u
ZjFhYmRlNTg2NzAzYjQyNTQzM2Y5MTI0YWViODAyNmE2ZWFiZjFmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMi0xMCAgVy4gSmFtZXMgTWFjTGVh
biAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUg
b2Jzb2xldGUgem9vbSBhbmltYXRpb24gcGF0aHdheS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW1vdmVzIGRlYWQgY29kZSBmcm9t
IHRoZSBwcmV2aW91cyBpbmNhcm5hdGlvbiBvZiB6b29tIGFuaW1hdGlvbiBmb3IgY2hyb21pdW0u
CisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorCiAyMDEyLTAyLTA5ICBLZW5pY2hp
IElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgV2ViU29ja2V0
IGV4dGVuc2lvbiBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXgg
MTRhMTk4YTgxNmEzMzZiZWVmZjJhMDliNWIwOTRmZmJlNTU0YzM0Ni4uYWJjYzUxNzhlZGQ4OWVi
Zjc4ZTQzM2M1MWM2OGRjZjRmMTllNzA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcApAQCAtMjM2Miw2ICsyMzYyLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZUdlc3R1
cmVFdmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50KQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlRG91
YmxlVGFwOgorICAgICAgICBicmVhazsKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVT
Y3JvbGxCZWdpbjoKICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVTY3JvbGxFbmQ6IHsK
ICAgICAgICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IGMwYjg1ODcxZmZlMDJjODgzZGJlODIzYjBlMzU2OWY3NjZiZWZi
MDYuLmU0MjNlYThhN2M0MWU1M2Q2MTg5YjI1MjZiOTYyNmUzODA2YmIzZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTcwLDkgKzcwLDYgQEAKIAogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKLSNpZiBQ
TEFURk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCi0jZW5kaWYKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFNWRykKQEAgLTEyMjIsMjYgKzEyMTksNiBAQCB2b2lkIEZyYW1lVmll
dzo6cmVtb3ZlV2lkZ2V0VG9VcGRhdGUoUmVuZGVyRW1iZWRkZWRPYmplY3QqIG9iamVjdCkKICAg
ICBtX3dpZGdldFVwZGF0ZVNldC0+cmVtb3ZlKG9iamVjdCk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3
Ojp6b29tQW5pbWF0b3JUcmFuc2Zvcm1DaGFuZ2VkKGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9h
dCB5LCBab29tQW5pbWF0aW9uU3RhdGUgc3RhdGUpCi17Ci0gICAgaWYgKHN0YXRlID09IFpvb21B
bmltYXRpb25GaW5pc2hpbmcpIHsKLSAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5w
YWdlKCkpCi0gICAgICAgICAgICBwYWdlLT5zZXRQYWdlU2NhbGVGYWN0b3IocGFnZS0+cGFnZVNj
YWxlRmFjdG9yKCkgKiBzY2FsZSwgSW50UG9pbnQoc2NhbGUgKiBzY3JvbGxYKCkgLSB4LCBzY2Fs
ZSAqIHNjcm9sbFkoKSAtIHkpKTsKLSAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS0+cmVzZXRab29t
KCk7Ci0gICAgfQotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmIChS
ZW5kZXJWaWV3KiByb290ID0gcm9vdFJlbmRlcmVyKHRoaXMpKSB7Ci0gICAgICAgIGlmIChyb290
LT51c2VzQ29tcG9zaXRpbmcoKSkgewotICAgICAgICAgICAgcm9vdC0+Y29tcG9zaXRvcigpLT5z
Y2hlZHVsZUxheWVyRmx1c2goKTsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgICAg
IFRSQUNFX0VWRU5UKCJGcmFtZVZpZXc6Onpvb21BbmltYXRvclRyYW5zZm9ybUNoYW5nZWQiLCB0
aGlzLCAwKTsKLSNlbmRpZgotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCi19Ci0KIHZvaWQgRnJh
bWVWaWV3OjpzZXRNZWRpYVR5cGUoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCiB7CiAgICAgbV9t
ZWRpYVR5cGUgPSBtZWRpYVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCA3NWJmZWVj
ZTVjZjFmOWFkZWU1OWEyMzBjMjkwYTJiZDRjOWZkYjc0Li4wNTFjZGNkNjczNGJhMWVmNDFmOGQ4
ZmRiYTRmZjE4MjA3ODZiMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTE3MCw4ICsx
NzAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRGaXhlZEVsZW1lbnRzQWZ0
ZXJTY3JvbGxpbmcoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgem9vbUFuaW1h
dG9yVHJhbnNmb3JtQ2hhbmdlZChmbG9hdCwgZmxvYXQsIGZsb2F0LCBab29tQW5pbWF0aW9uU3Rh
dGUpOwotCiAgICAgU3RyaW5nIG1lZGlhVHlwZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0TWVkaWFU
eXBlKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgYWRqdXN0TWVkaWFUeXBlRm9yUHJpbnRpbmco
Ym9vbCBwcmludGluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5j
cHAKaW5kZXggZjczYzVjYzA2NDMzYzNlYTZkZDU1YWUxMTNjMDI5NDYyOWI0YTg4NC4uOTQyMzYz
ZTVjZWFmZDRlMDQ2Yzk2YzdmOGRlM2IzMDYwYTNhZjI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtNTIsOSArNTIsNiBAQCBTY3JvbGxBbmltYXRv
cjo6U2Nyb2xsQW5pbWF0b3IoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhKQogICAgIDog
bV9zY3JvbGxhYmxlQXJlYShzY3JvbGxhYmxlQXJlYSkKICAgICAsIG1fY3VycmVudFBvc1goMCkK
ICAgICAsIG1fY3VycmVudFBvc1koMCkKLSAgICAsIG1fY3VycmVudFpvb21TY2FsZSgxKQotICAg
ICwgbV9jdXJyZW50Wm9vbVRyYW5zWCgwKQotICAgICwgbV9jdXJyZW50Wm9vbVRyYW5zWSgwKQog
ewogfQogCkBAIC0xNDEsMzEgKzEzOCw0IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3I6Om5vdGlmeVBv
c2l0aW9uQ2hhbmdlZCgpCiAgICAgbV9zY3JvbGxhYmxlQXJlYS0+c2V0U2Nyb2xsT2Zmc2V0RnJv
bUFuaW1hdGlvbihJbnRQb2ludChtX2N1cnJlbnRQb3NYLCBtX2N1cnJlbnRQb3NZKSk7CiB9CiAK
LXZvaWQgU2Nyb2xsQW5pbWF0b3I6Om5vdGlmeVpvb21DaGFuZ2VkKFpvb21BbmltYXRpb25TdGF0
ZSBzdGF0ZSkKLXsKLSAgICBtX3Njcm9sbGFibGVBcmVhLT56b29tQW5pbWF0b3JUcmFuc2Zvcm1D
aGFuZ2VkKG1fY3VycmVudFpvb21TY2FsZSwgbV9jdXJyZW50Wm9vbVRyYW5zWCwgbV9jdXJyZW50
Wm9vbVRyYW5zWSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRlID09IFpvb21BbmltYXRpb25Db250aW51aW5nID8gU2Nyb2xsYWJsZUFyZWE6
Olpvb21BbmltYXRpb25Db250aW51aW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFNj
cm9sbGFibGVBcmVhOjpab29tQW5pbWF0aW9uRmluaXNoaW5nKTsKLX0KLQotRmxvYXRQb2ludCBT
Y3JvbGxBbmltYXRvcjo6em9vbVRyYW5zbGF0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gRmxv
YXRQb2ludChtX2N1cnJlbnRab29tVHJhbnNYLCBtX2N1cnJlbnRab29tVHJhbnNZKTsKLX0KLQot
dm9pZCBTY3JvbGxBbmltYXRvcjo6cmVzZXRab29tKCkKLXsKLSAgICBtX2N1cnJlbnRab29tU2Nh
bGUgPSAxOwotICAgIG1fY3VycmVudFpvb21UcmFuc1ggPSAwOwotICAgIG1fY3VycmVudFpvb21U
cmFuc1kgPSAwOwotfQotCi12b2lkIFNjcm9sbEFuaW1hdG9yOjpzZXRab29tUGFyYW1ldGVyc0Zv
clRlc3QoZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHkpCi17Ci0gICAgbV9jdXJyZW50Wm9v
bVNjYWxlID0gc2NhbGU7Ci0gICAgbV9jdXJyZW50Wm9vbVRyYW5zWCA9ICgxIC0gc2NhbGUpICog
eDsKLSAgICBtX2N1cnJlbnRab29tVHJhbnNZID0gKDEgLSBzY2FsZSkgKiB5OwotICAgIG5vdGlm
eVpvb21DaGFuZ2VkKFpvb21BbmltYXRpb25Db250aW51aW5nKTsgLy8gRG9uJ3QgbGV0IHBhZ2Ug
cmUtc2NhbGUuCi19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5oCmluZGV4IGIzM2M0NTgxMmI0MTY4ZDk0ZWMwYTU3N2IzNTI4
YzM3NTEyMDJjNDIuLjcyY2ViYzk3MDQyMDhlOTYzOWY4Y2EzZGE4YzQ4YTcwZDIwZGQ4NDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApAQCAtNDcsOCArNDcsNiBA
QCBjbGFzcyBQbGF0Zm9ybUdlc3R1cmVFdmVudDsKIAogY2xhc3MgU2Nyb2xsQW5pbWF0b3Igewog
cHVibGljOgotICAgIGVudW0gWm9vbUFuaW1hdGlvblN0YXRlIHsgWm9vbUFuaW1hdGlvbkNvbnRp
bnVpbmcsIFpvb21BbmltYXRpb25GaW5pc2hpbmcgfTsKLQogICAgIHN0YXRpYyBQYXNzT3duUHRy
PFNjcm9sbEFuaW1hdG9yPiBjcmVhdGUoU2Nyb2xsYWJsZUFyZWEqKTsKIAogICAgIHZpcnR1YWwg
flNjcm9sbEFuaW1hdG9yKCk7CkBAIC05MSwyNiArODksMTYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopIHsgfQogICAgIHZp
cnR1YWwgdm9pZCB3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKSB7IH0K
IAotICAgIGZsb2F0IHpvb21TY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFpvb21TY2Fs
ZTsgfQotICAgIEZsb2F0UG9pbnQgem9vbVRyYW5zbGF0aW9uKCkgY29uc3Q7Ci0gICAgdmlydHVh
bCB2b2lkIHJlc2V0Wm9vbSgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRab29tUGFyYW1ldGVyc0Zv
clRlc3QoZmxvYXQsIGZsb2F0LCBmbG9hdCk7Ci0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2Ny
b2xsYmFyUGFydGljaXBhdGVJbkhpdFRlc3RpbmcoU2Nyb2xsYmFyKikgeyByZXR1cm4gdHJ1ZTsg
fQogCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsQW5pbWF0b3IoU2Nyb2xsYWJsZUFyZWEqKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlQb3NpdGlvbkNoYW5nZWQoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgbm90aWZ5Wm9vbUNoYW5nZWQoWm9vbUFuaW1hdGlvblN0YXRlKTsKIAogICAgIFNjcm9sbGFi
bGVBcmVhKiBtX3Njcm9sbGFibGVBcmVhOwogICAgIGZsb2F0IG1fY3VycmVudFBvc1g7IC8vIFdl
IGF2b2lkIHVzaW5nIGEgRmxvYXRQb2ludCBpbiBvcmRlciB0byByZWR1Y2UKICAgICBmbG9hdCBt
X2N1cnJlbnRQb3NZOyAvLyBzdWJjbGFzcyBjb2RlIGNvbXBsZXhpdHkuCi0KLSAgICBmbG9hdCBt
X2N1cnJlbnRab29tU2NhbGU7Ci0gICAgZmxvYXQgbV9jdXJyZW50Wm9vbVRyYW5zWDsKLSAgICBm
bG9hdCBtX2N1cnJlbnRab29tVHJhbnNZOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKaW5kZXgg
M2QxNDcyYjM4MTY3YzJhMjU2NDIyMTQ0OWMzMTNkOTJiYjU1MTQ3OS4uMDgzYTE4YTcwMWFmZjE1
NmEyYTZiYTc5ZTg0MDg3NjIxODY5OGQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCkBAIC0zNzEsMzYgKzM3MSwxMCBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OnVwZGF0ZVZpc2libGVMZW5ndGgoaW50IHZpc2li
bGVMZW5ndGgpCiAgICAgbV92aXNpYmxlTGVuZ3RoID0gdmlzaWJsZUxlbmd0aDsKIH0KIAotU2Ny
b2xsQW5pbWF0b3JOb25lOjpab29tRGF0YTo6Wm9vbURhdGEoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3JOb25lKiBwYXJlbnQpCi0gICAgOiBtX3BhcmVudChwYXJlbnQpCi0gICAgLCBtX2lzQW5pbWF0
aW5nKGZhbHNlKQotewotfQotCi1ib29sIFNjcm9sbEFuaW1hdG9yTm9uZTo6Wm9vbURhdGE6OmFu
aW1hdGVab29tKGRvdWJsZSBjdXJyZW50VGltZSkKLXsKLSAgICBtX2xhc3RBbmltYXRpb25UaW1l
ID0gY3VycmVudFRpbWU7Ci0gICAgZG91YmxlIGRlbHRhVGltZSA9IGN1cnJlbnRUaW1lIC0gbV9z
dGFydFRpbWU7Ci0KLSAgICBpZiAoZGVsdGFUaW1lID4gbV9hbmltYXRpb25UaW1lKSB7Ci0gICAg
ICAgIG1fcGFyZW50LT5tX2N1cnJlbnRab29tU2NhbGUgPSBtX2Rlc2lyZWRTY2FsZTsKLSAgICAg
ICAgbV9wYXJlbnQtPm1fY3VycmVudFpvb21UcmFuc1ggPSBtX2Rlc2lyZWRUcmFuc1g7Ci0gICAg
ICAgIG1fcGFyZW50LT5tX2N1cnJlbnRab29tVHJhbnNZID0gbV9kZXNpcmVkVHJhbnNZOwotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgZG91YmxlIGVsYXBzZWRUaW1lRnJhY3Rp
b24gPSBkZWx0YVRpbWUgLyBtX2FuaW1hdGlvblRpbWU7Ci0gICAgbV9wYXJlbnQtPm1fY3VycmVu
dFpvb21TY2FsZSA9IGVsYXBzZWRUaW1lRnJhY3Rpb24gKiAobV9kZXNpcmVkU2NhbGUgLSBtX3N0
YXJ0U2NhbGUpICsgbV9zdGFydFNjYWxlOwotICAgIG1fcGFyZW50LT5tX2N1cnJlbnRab29tVHJh
bnNYID0gZWxhcHNlZFRpbWVGcmFjdGlvbiAqIG1fZGVzaXJlZFRyYW5zWDsKLSAgICBtX3BhcmVu
dC0+bV9jdXJyZW50Wm9vbVRyYW5zWSA9IGVsYXBzZWRUaW1lRnJhY3Rpb24gKiBtX2Rlc2lyZWRU
cmFuc1k7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIFNjcm9sbEFuaW1hdG9yTm9uZTo6U2Nyb2xs
QW5pbWF0b3JOb25lKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKICAgICA6IFNjcm9s
bEFuaW1hdG9yKHNjcm9sbGFibGVBcmVhKQogICAgICwgbV9ob3Jpem9udGFsRGF0YSh0aGlzLCAm
bV9jdXJyZW50UG9zWCwgc2Nyb2xsYWJsZUFyZWEtPnZpc2libGVXaWR0aCgpKQogICAgICwgbV92
ZXJ0aWNhbERhdGEodGhpcywgJm1fY3VycmVudFBvc1ksIHNjcm9sbGFibGVBcmVhLT52aXNpYmxl
SGVpZ2h0KCkpCi0gICAgLCBtX3pvb21EYXRhKHRoaXMpCiAgICAgLCBtX2FuaW1hdGlvblRpbWVy
KHRoaXMsICZTY3JvbGxBbmltYXRvck5vbmU6OmFuaW1hdGlvblRpbWVyRmlyZWQpCiB7CiB9CkBA
IC00NzAsNjMgKzQ0NCw2IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjpzY3JvbGxUb09mZnNl
dFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0CiAgICAgbm90aWZ5UG9z
aXRpb25DaGFuZ2VkKCk7CiB9CiAKLSNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCi12b2lkIFNj
cm9sbEFuaW1hdG9yTm9uZTo6em9vbShjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgcGdlKQot
ewotICAgIEFTU0VSVChwZ2UudHlwZSgpID09IFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVU
YXApOwotICAgIC8vIEZJWE1FOiBtb2RpZnkgdGhpcyBzbyB3ZSBjYW4gc3RhcnQgZXZlbiBpZiB0
aGUgdGltZXIgaXMgYWN0aXZlLgotICAgIGlmICghbV9hbmltYXRpb25UaW1lci5pc0FjdGl2ZSgp
KSB7Ci0gICAgICAgIG1fY3VycmVudFpvb21TY2FsZSA9IDE7Ci0gICAgICAgIG1fY3VycmVudFpv
b21UcmFuc1ggPSAwOwotICAgICAgICBtX2N1cnJlbnRab29tVHJhbnNZID0gMDsKLQotICAgICAg
ICBkb3VibGUgY3VycmVudFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
OwotICAgICAgICBmbG9hdCBzY2FsZSA9IHBnZS5kZWx0YVgoKTsKLQotICAgICAgICBtX3pvb21E
YXRhLm1fc3RhcnRUaW1lID0gY3VycmVudFRpbWUgLSBrVGlja1RpbWUgLyAyOwotICAgICAgICBt
X3pvb21EYXRhLm1fc3RhcnRTY2FsZSA9IG1fY3VycmVudFpvb21TY2FsZTsKLSAgICAgICAgbV96
b29tRGF0YS5tX2Rlc2lyZWRTY2FsZSA9IHNjYWxlOwotICAgICAgICAvLyBGSVhNRTogRG9jdW1l
bnQgdGhlbiBzaW1wbGlmeSB0aGUgZm9sbG93aW5nIGVxdWF0aW9ucy4KLSAgICAgICAgbV96b29t
RGF0YS5tX2Rlc2lyZWRUcmFuc1ggPSAoMSAtIHNjYWxlKSAqIHBnZS5nbG9iYWxQb3NpdGlvbigp
LngoKTsKLSAgICAgICAgbV96b29tRGF0YS5tX2Rlc2lyZWRUcmFuc1kgPSAoMSAtIHNjYWxlKSAq
IHBnZS5nbG9iYWxQb3NpdGlvbigpLnkoKTsKLSNpZiBFTkFCTEUoRE9VQkxFX1RBUF9DRU5URVJT
KQotICAgICAgICBpZiAocGdlLnR5cGUoKSA9PSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlRG91Ymxl
VGFwKSB7Ci0gICAgICAgICAgICAvLyBab29tIHRvIGNlbnRyZSBvZiBkaXNwbGF5LiBQaW5jaC10
by16b29tIG1heSBub3Qgd2FudCB0aGlzIGJlaGF2aW91ci4KLSAgICAgICAgICAgIG1fem9vbURh
dGEubV9kZXNpcmVkVHJhbnNYICs9IG1fc2Nyb2xsYWJsZUFyZWEtPnZpc2libGVXaWR0aCgpIC8g
MiAtIHBnZS5nbG9iYWxQb3NpdGlvbigpLngoKTsKLSAgICAgICAgICAgIG1fem9vbURhdGEubV9k
ZXNpcmVkVHJhbnNZICs9IG1fc2Nyb2xsYWJsZUFyZWEtPnZpc2libGVIZWlnaHQoKSAvIDIgLSBw
Z2UuZ2xvYmFsUG9zaXRpb24oKS55KCk7Ci0gICAgICAgIH0KLSNlbmRpZgotICAgICAgICBtX3pv
b21EYXRhLm1fbGFzdEFuaW1hdGlvblRpbWUgPSBjdXJyZW50VGltZTsKLSAgICAgICAgbV96b29t
RGF0YS5tX2FuaW1hdGlvblRpbWUgPSBrWm9vbVRpY2tzICoga1RpY2tUaW1lOwotCi0gICAgICAg
IGJvb2wgaXNDb250aW51aW5nID0gbV96b29tRGF0YS5hbmltYXRlWm9vbShjdXJyZW50VGltZSk7
Ci0KLSAgICAgICAgZG91YmxlIGRlbHRhVG9OZXh0RnJhbWUgPSBjZWlsKChjdXJyZW50VGltZSAt
IG1fc3RhcnRUaW1lKSAqIGtGcmFtZVJhdGUpIC8ga0ZyYW1lUmF0ZSAtIChjdXJyZW50VGltZSAt
IG1fc3RhcnRUaW1lKTsKLSAgICAgICAgZG91YmxlIG5leHRUaW1lckludGVydmFsID0gbWF4KGtN
aW5pbXVtVGltZXJJbnRlcnZhbCwgZGVsdGFUb05leHRGcmFtZSk7Ci0gICAgICAgIGlmIChpc0Nv
bnRpbnVpbmcpIHsKLSAgICAgICAgICAgIG1fYW5pbWF0aW9uVGltZXIuc3RhcnRPbmVTaG90KG5l
eHRUaW1lckludGVydmFsKTsKLSAgICAgICAgICAgIG1fem9vbURhdGEubV9pc0FuaW1hdGluZyA9
IHRydWU7Ci0gICAgICAgICAgICBub3RpZnlab29tQ2hhbmdlZChab29tQW5pbWF0aW9uQ29udGlu
dWluZyk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbm90aWZ5Wm9vbUNoYW5nZWQoWm9v
bUFuaW1hdGlvbkZpbmlzaGluZyk7Ci0gICAgfQotfQotCi12b2lkIFNjcm9sbEFuaW1hdG9yTm9u
ZTo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBwZ2UpCi17
Ci0gICAgVFJBQ0VfRVZFTlQoIlNjcm9sbEFuaW1hdG9yTm9uZTo6aGFuZGxlR2VzdHVyZUV2ZW50
IiwgdGhpcywgMCk7Ci0gICAgc3dpdGNoIChwZ2UudHlwZSgpKSB7Ci0gICAgY2FzZSBQbGF0Zm9y
bUV2ZW50OjpHZXN0dXJlRG91YmxlVGFwOgotICAgICAgICB6b29tKHBnZSk7Ci0gICAgICAgIGJy
ZWFrOwotCi0gICAgZGVmYXVsdDoKLSAgICAgICAgLy8gVE9ETzogYWRkIGFueSBvdGhlciBldmVu
dCB0eXBlcyB3ZSBzaG91bGQgaGFuZGxlCi0gICAgICAgIHsgfQotICAgIH0KLX0KLSNlbmRpZgot
CiB2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6d2lsbEVuZExpdmVSZXNpemUoKQogewogICAgIHVw
ZGF0ZVZpc2libGVMZW5ndGhzKCk7CkBAIC01NjMsMTkgKzQ4MCw2IEBAIHZvaWQgU2Nyb2xsQW5p
bWF0b3JOb25lOjphbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFNjcm9sbEFuaW1hdG9yTm9uZT4q
IHRpbWVyKQogICAgIGlmIChtX3ZlcnRpY2FsRGF0YS5tX3N0YXJ0VGltZSAmJiBtX3ZlcnRpY2Fs
RGF0YS5hbmltYXRlU2Nyb2xsKGN1cnJlbnRUaW1lICsgZGVsdGFUb05leHRGcmFtZSkpCiAgICAg
ICAgIGNvbnRpbnVlQW5pbWF0aW9uID0gdHJ1ZTsKIAotICAgIGlmIChtX3pvb21EYXRhLm1faXNB
bmltYXRpbmcpIHsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgVFJBQ0VfRVZFTlQo
IlNjcm9sbEFuaW1hdG9yTm9uZTo6bm90aWZ5Wm9vbUNoYW5nZWQiLCB0aGlzLCAwKTsKLSNlbmRp
ZgotICAgICAgICBpZiAobV96b29tRGF0YS5tX3N0YXJ0VGltZSAmJiBtX3pvb21EYXRhLmFuaW1h
dGVab29tKGN1cnJlbnRUaW1lICsgZGVsdGFUb05leHRGcmFtZSkpIHsKLSAgICAgICAgICAgIGNv
bnRpbnVlQW5pbWF0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAgIG5vdGlmeVpvb21DaGFuZ2VkKFpv
b21BbmltYXRpb25Db250aW51aW5nKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG5v
dGlmeVpvb21DaGFuZ2VkKFpvb21BbmltYXRpb25GaW5pc2hpbmcpOwotICAgICAgICAgICAgbV96
b29tRGF0YS5tX2lzQW5pbWF0aW5nID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBp
ZiAoY29udGludWVBbmltYXRpb24pIHsKICAgICAgICAgZG91YmxlIG5leHRUaW1lckludGVydmFs
ID0gbWF4KGtNaW5pbXVtVGltZXJJbnRlcnZhbCwgZGVsdGFUb05leHRGcmFtZSk7CiAgICAgICAg
IHRpbWVyLT5zdGFydE9uZVNob3QobmV4dFRpbWVySW50ZXJ2YWwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuaAppbmRleCBmOTRkNTIzOWI3MTliNjIwMjRj
MThiNDcxYjUxNTdiZDRjNTMxY2YyLi40ZDY5YTdjNGE2NDYzNzI1YmUxMGE2YTY2NWNlYjc5ZGEz
MjE1YjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ck5vbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUu
aApAQCAtNTAsMTEgKzUwLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Ny
b2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBt
dWx0aXBsaWVyKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0
aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKIAotI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKLSAg
ICB2aXJ0dWFsIHZvaWQgem9vbShjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYpOwotICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQm
KTsKLSNlbmRpZgotCiAgICAgdmlydHVhbCB2b2lkIHdpbGxFbmRMaXZlUmVzaXplKCk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwpAQCAtMTMx
LDM1ICsxMjYsMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICBpbnQgbV92aXNpYmxlTGVuZ3RoOwog
ICAgIH07CiAKLSAgICAvLyBXaGlsZSB6b29taW5nLCBzY2FsZSwgcG9zWCBhbmQgcG9zWSBuZWVk
IHRvIHN0YXkgdGlnaHRseSBjb3VwbGVkLCBzbyB1c2UgYSBzZXBhcmF0ZQotICAgIC8vIGRhdGEg
c3RydWN0dXJlLgotICAgIHN0cnVjdCBab29tRGF0YSB7Ci0gICAgICAgIFpvb21EYXRhKFNjcm9s
bEFuaW1hdG9yTm9uZSogcGFyZW50KTsKLSAgICAgICAgYm9vbCBhbmltYXRlWm9vbShkb3VibGUg
Y3VycmVudFRpbWUpOwotCi0gICAgICAgIFNjcm9sbEFuaW1hdG9yTm9uZSogbV9wYXJlbnQ7Ci0g
ICAgICAgIGJvb2wgbV9pc0FuaW1hdGluZzsKLQotICAgICAgICBkb3VibGUgbV9zdGFydFRpbWU7
Ci0KLSAgICAgICAgZG91YmxlIG1fYW5pbWF0aW9uVGltZTsKLSAgICAgICAgZG91YmxlIG1fbGFz
dEFuaW1hdGlvblRpbWU7Ci0KLSAgICAgICAgZG91YmxlIG1fc3RhcnRTY2FsZTsKLSAgICAgICAg
ZG91YmxlIG1fZGVzaXJlZFNjYWxlOwotICAgICAgICBkb3VibGUgbV9kZXNpcmVkVHJhbnNYOwot
ICAgICAgICBkb3VibGUgbV9kZXNpcmVkVHJhbnNZOwotICAgIH07Ci0KLSAgICBmcmllbmQgc3Ry
dWN0IFpvb21EYXRhOwotCiAgICAgdm9pZCBhbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFNjcm9s
bEFuaW1hdG9yTm9uZT4qKTsKICAgICB2b2lkIHN0b3BBbmltYXRpb25UaW1lcklmTmVlZGVkKCk7
CiAgICAgdm9pZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpOwogCiAgICAgUGVyQXhpc0RhdGEgbV9o
b3Jpem9udGFsRGF0YTsKICAgICBQZXJBeGlzRGF0YSBtX3ZlcnRpY2FsRGF0YTsKLSAgICBab29t
RGF0YSBtX3pvb21EYXRhOwogCiAgICAgZG91YmxlIG1fc3RhcnRUaW1lOwogICAgIFRpbWVyPFNj
cm9sbEFuaW1hdG9yTm9uZT4gbV9hbmltYXRpb25UaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCA5OWI5YmFiYzM0NjlmMjI1MmY1MDlhZWI0Mzg4
MWQzZWU4YjcyNTZkLi4wNjI0ZWMwY2RiZGU3NDA5NDgzM2MwYjAyNTAxYTBhNDlkN2FkYmJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0xNDgsMTEg
KzE0OCw2IEBAIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvWU9mZnNldFdpdGhvdXRBbmlt
YXRpb24oZmxvYXQgeSkKICAgICBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oRmxvYXRQ
b2ludChzY3JvbGxBbmltYXRvcigpLT5jdXJyZW50UG9zaXRpb24oKS54KCksIHkpKTsKIH0KIAot
dm9pZCBTY3JvbGxhYmxlQXJlYTo6em9vbUFuaW1hdG9yVHJhbnNmb3JtQ2hhbmdlZChmbG9hdCwg
ZmxvYXQsIGZsb2F0LCBab29tQW5pbWF0aW9uU3RhdGUpCi17Ci0gICAgLy8gUmVxdWlyZXMgRnJh
bWVWaWV3IHRvIG92ZXJyaWRlIHRoaXMuCi19Ci0KIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OmhhbmRs
ZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAg
IHJldHVybiBzY3JvbGxBbmltYXRvcigpLT5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggMzUzYjZmMDc0NmQ4
ODJiNjZmNDNjYWQ2MTMzZDk3M2MwMGVjZjA1NC4uZTg2MzNlMmEyMDYyY2I0YjRiY2M1YTliMjY4
ZjllNmFjNGI3YWQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5o
CkBAIC00MiwxNiArNDIsMTIgQEAgY2xhc3MgR3JhcGhpY3NMYXllcjsKIAogY2xhc3MgU2Nyb2xs
YWJsZUFyZWEgewogcHVibGljOgotICAgIGVudW0gWm9vbUFuaW1hdGlvblN0YXRlIHsgWm9vbUFu
aW1hdGlvbkNvbnRpbnVpbmcsIFpvb21BbmltYXRpb25GaW5pc2hpbmcgfTsKLQogICAgIGJvb2wg
c2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxp
ZXIgPSAxKTsKICAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBG
bG9hdFBvaW50Jik7CiAgICAgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oU2Ny
b2xsYmFyT3JpZW50YXRpb24sIGZsb2F0IG9mZnNldCk7CiAgICAgdm9pZCBzY3JvbGxUb1hPZmZz
ZXRXaXRob3V0QW5pbWF0aW9uKGZsb2F0IHgpOwogICAgIHZvaWQgc2Nyb2xsVG9ZT2Zmc2V0V2l0
aG91dEFuaW1hdGlvbihmbG9hdCB4KTsKIAotICAgIHZpcnR1YWwgdm9pZCB6b29tQW5pbWF0b3JU
cmFuc2Zvcm1DaGFuZ2VkKGZsb2F0LCBmbG9hdCwgZmxvYXQsIFpvb21BbmltYXRpb25TdGF0ZSk7
Ci0KICAgICBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7
CiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogICAgIHZvaWQgaGFuZGxlR2VzdHVyZUV2ZW50
KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCBjMmIwNDVkY2ExNGU4ZWViYWY2ZjBmMDQzN2RkMWRi
ODcxYjMxZmUzLi4yODg0ZTU2NjExODc4OWMwZGUwNzUwMWUxYTExNGVkZTQ1OGExNTcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTM2LDE0ICsz
Niw2IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKLSNpZiBF
TkFCTEUoR0VTVFVSRV9FVkVOVFMpCi0jaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCIK
LSNlbmRpZgotCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0jaW5jbHVkZSAiU2Nyb2xs
QW5pbWF0b3IuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQogI2luY2x1ZGUg
IkNvbG9yQ2hvb3Nlci5oIgogI2VuZGlmCkBAIC0xNzIsNDMgKzE2NCw2IEBAIHZvaWQgSW50ZXJu
YWxTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4
Y2VwdGlvbkNvZGUmCiAgICAgc2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxl
ZChlbmFibGVkKTsKIH0KIAotdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRFbmFibGVTY3JvbGxB
bmltYXRvcihib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIEludGVybmFs
U2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7Ci0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcp
Ci0gICAgc2V0dGluZ3MoKS0+c2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoZW5hYmxlZCk7Ci0jZWxz
ZQotICAgIFVOVVNFRF9QQVJBTShlbmFibGVkKTsKLSNlbmRpZgotfQotCi12b2lkIEludGVybmFs
U2V0dGluZ3M6OnNldFpvb21BbmltYXRvclRyYW5zZm9ybShmbG9hdCBzY2FsZSwgZmxvYXQgdHgs
IGZsb2F0IHR5LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBJbnRlcm5hbFNldHRpbmdzR3Vh
cmRGb3JGcmFtZSgpOwotCi0jaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQotICAgIFBsYXRmb3Jt
R2VzdHVyZUV2ZW50IHBnZShQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlRG91YmxlVGFwLCBJbnRQb2lu
dCh0eCwgdHkpLCBJbnRQb2ludCh0eCwgdHkpLCAwLCBzY2FsZSwgMC5mLCAwLCAwLCAwLCAwKTsK
LSAgICBmcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlR2VzdHVyZUV2ZW50KHBnZSk7Ci0j
ZWxzZQotICAgIFVOVVNFRF9QQVJBTShzY2FsZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHR4KTsKLSAg
ICBVTlVTRURfUEFSQU0odHkpOwotI2VuZGlmCi19Ci0KLXZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0Wm9vbVBhcmFtZXRlcnMoZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHksIEV4Y2VwdGlv
bkNvZGUmIGVjKQotewotICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvckZyYW1lVmlldygpOwot
Ci0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0gICAgZnJhbWUoKS0+dmlldygpLT5zY3Jv
bGxBbmltYXRvcigpLT5zZXRab29tUGFyYW1ldGVyc0ZvclRlc3Qoc2NhbGUsIHgsIHkpOwotI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0oc2NhbGUpOwotICAgIFVOVVNFRF9QQVJBTSh4KTsKLSAgICBV
TlVTRURfUEFSQU0oeSk7Ci0jZW5kaWYKLX0KLQogdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRN
b2NrU2Nyb2xsYmFyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOwpAQCAtMjUzLDEyICsyMDgs
NiBAQCBib29sIEludGVybmFsU2V0dGluZ3M6OnVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKEV4
Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVybiBzZXR0aW5ncygpLT51bmlmaWVkVGV4dENoZWNr
ZXJFbmFibGVkKCk7CiB9CiAKLWZsb2F0IEludGVybmFsU2V0dGluZ3M6OnBhZ2VTY2FsZUZhY3Rv
cihFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JQYWdl
UmV0dXJuKDApOwotICAgIHJldHVybiBwYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOwotfQotCiB2
b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3Rv
ciwgaW50IHgsIGludCB5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJbnRlcm5hbFNldHRp
bmdzR3VhcmRGb3JQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oCmluZGV4IDY0ODAwOTI2YzRkMGYxY2M0YWEzMTJkZTEwMDViZGE5NWNjNjA4ZTMuLmVmNjZj
OTk1OTUyM2M0OGVlMWI1ODE4NDg5MWNlMDllYWFmYzlkZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC01MiwxNiArNTIsMTIgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJhbWVzKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxl
ZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEFjY2VsZXJhdGVk
RmlsdGVyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBz
ZXRFbmFibGVTY3JvbGxBbmltYXRvcihib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAg
ICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShmbG9hdCBzY2FsZSwgZmxvYXQgdHgsIGZs
b2F0IHR5LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRab29tUGFyYW1ldGVycyhmbG9h
dCBzY2FsZSwgZmxvYXQgeCwgZmxvYXQgeSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0
TW9ja1Njcm9sbGJhcnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgc2V0UGFzc3dvcmRFY2hvRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUm
KTsKICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0R1cmF0aW9uSW5TZWNvbmRzKGRvdWJsZSBkdXJh
dGlvbkluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0Rml4ZWRFbGVtZW50
c0xheW91dFJlbGF0aXZlVG9GcmFtZShib29sLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBz
ZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChib29sLCBFeGNlcHRpb25Db2RlJik7CiAgICAg
Ym9vbCB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChFeGNlcHRpb25Db2RlJik7Ci0gICAgZmxv
YXQgcGFnZVNjYWxlRmFjdG9yKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFBhZ2VTY2Fs
ZUZhY3RvcihmbG9hdCBzY2FsZUZhY3RvciwgaW50IHgsIGludCB5LCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBzZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgdm9pZCBzZXRUb3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZChib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsCmluZGV4IDAzNjAwODM4NGVlYzE3NmY3NTgzZGJkMDllNjEwMGJlMmI2ODc4
NzcuLmRkOTUxOWVjMjcwOGRjZTQ5OTkyNzRiZTQ5ODRiY2VhNjY4NmZjMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtMzMsMTYgKzMzLDEyIEBA
IG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yU2Ny
b2xsYWJsZUZyYW1lcyhpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
ICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFi
bGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZp
bHRlcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0g
ICAgICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoaW4gYm9vbGVhbiBlbmFibGVkKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zv
cm0oaW4gZmxvYXQgc2NhbGUsIGluIGZsb2F0IHR4LCBpbiBmbG9hdCB0eSkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0Wm9vbVBhcmFtZXRlcnMoaW4gZmxvYXQgc2NhbGUs
IGluIGZsb2F0IHgsIGluIGZsb2F0IHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2
b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0VuYWJsZWQoaW4gYm9v
bGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRQYXNz
d29yZEVjaG9EdXJhdGlvbkluU2Vjb25kcyhpbiBkb3VibGUgZHVyYXRpb25JblNlY29uZHMpIHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEZpeGVkRWxlbWVudHNMYXlvdXRS
ZWxhdGl2ZVRvRnJhbWUoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICAgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChpbiBib29sZWFuIGVu
YWJsZWQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgYm9vbGVhbiB1bmlmaWVkVGV4
dENoZWNraW5nRW5hYmxlZCgpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgZmxvYXQg
cGFnZVNjYWxlRmFjdG9yKCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0
UGFnZVNjYWxlRmFjdG9yKGluIGZsb2F0IHNjYWxlRmFjdG9yLCBpbiBsb25nIHgsIGluIGxvbmcg
eSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0VG91Y2hFdmVudEVtdWxh
dGlvbkVuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAg
ICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDA2ZTM0Y2QzY2JiYzBk
ZTE3OGIxMjE3ZmE0MDM4OTliNzIwOTdiZjYuLmJjNDEyNWE2ZGExZTUxNGE5ZjYwYWQ2NTliNzc0
NjZiNzZhMWY1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTUzLDE0
ICs1Myw2IEBACiAjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJh
dG9yLmgiCiAKLSNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCi0jaW5jbHVkZSAiUGxhdGZvcm1H
ZXN0dXJlRXZlbnQuaCIKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCi0j
aW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKElOUFVUX0NP
TE9SKQogI2luY2x1ZGUgIkNvbG9yQ2hvb3Nlci5oIgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMGYzNTM3OTA2ODQ3ZjQ1MjI2ZjQ3YzFl
ZTY3MDk4N2E4OTE0YjEzYS4uZjg0NzU1ZmY1YmJlZTg1YTIyZWRhZTc3ODY1MTY3NjJlNjliZTM3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtOTks
NyArOTksNiBAQAogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlJlc291cmNl
SGFuZGxlLmgiCiAjaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJTY3JvbGxB
bmltYXRvci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlQb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126760</attachid>
            <date>2012-02-13 05:46:50 -0800</date>
            <delta_ts>2012-02-13 10:36:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78359-20120213084649.patch</filename>
            <type>text/plain</type>
            <size>23344</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJlYzViYTYzMWUzNDc5
NGVkZWJjMDAxMjhkZTljYWZiODQ1OTgxMy4uMGYwZDA3MGNlOWMzMTBmYzM4N2VkYWUxYTQ0MzVh
MTRhNmE5NGFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTAyLTEzICBXLiBK
YW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIFJlbW92ZSBvYnNvbGV0ZSB6b29tIGFuaW1hdGlvbiBwYXRod2F5LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzNTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBmb3IgZXhpc3RpbmcgcGF0
aHdheXMgc2hvdWxkIG5vdCBiZSBicm9rZW4uIFRlc3RzIGZvciByZW1vdmVkIHBhdGh3YXkgcmVt
b3ZlZCBwcmV2aW91c2x5LgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBkZWFkIGNvZGUg
ZnJvbSB0aGUgcHJldmlvdXMgaW5jYXJuYXRpb24gb2Ygem9vbSBhbmltYXRpb24gZm9yIGNocm9t
aXVtLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3LmNwcDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAoRnJhbWVW
aWV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3IpOgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmg6CisgICAgICAgIChTY3JvbGxBbmltYXRvcik6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdG9yTm9uZTo6U2Nyb2xsQW5pbWF0b3JOb25lKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmg6CisgICAgICAgIChTY3JvbGxBbmltYXRvck5vbmUp
OgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHA6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJ
bnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRs
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKwogMjAxMi0wMi0xMyAgUGF2ZWwg
RmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
d3JhcCBzZXR0aW5ncyBzZWxlY3RvciB0ZXh0IGFuZCBhZGRpbmcgYSBydWxlIHdpdGggdW5kb2Fi
bGUgYWN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMjhlMjFjYmQwNDgwNDJj
ZjkzNTRiYmFmMmRmYTkwNjA4NmUwMDk3OC4uNzRhZjZlZjBmOWNkODM1ZTI5OWJkNGYwOGM1ODMy
MDkxMzU3MGZiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMi0wMi0xMyAgVy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgb2Jzb2xldGUgem9vbSBhbmltYXRpb24gcGF0aHdh
eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzU5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCByZW1vdmVzIGRlYWQgY29kZSBmcm9tIHRoZSBwcmV2aW91cyBpbmNhcm5hdGlvbiBvZiB6
b29tIGFuaW1hdGlvbiBmb3IgY2hyb21pdW0uCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorCiAyMDEyLTAyLTEzICBZb3NpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbRm9ybXNdIFVzZSBlbnVtIGluc3RlYWQgb2YgYm9vbCBmb3IgSFRNTElucHV0
RWxlbWVudDo6c2V0VmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAx
NGExOThhODE2YTMzNmJlZWZmMmEwOWI1YjA5NGZmYmU1NTRjMzQ2Li5hYmNjNTE3OGVkZDg5ZWJm
NzhlNDMzYzUxYzY4ZGNmNGYxOWU3MDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCkBAIC0yMzYyLDYgKzIzNjIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVy
ZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3Vi
bGVUYXA6CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNj
cm9sbEJlZ2luOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEVuZDogewog
ICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLT52aWV3KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggODhlMmI0ZTlhZWNlYTM4Mjg2M2M0ODVjYjUwMGM2OGRjMTczM2Rj
ZC4uMzgyNWYyMzk3YjQ0MWY4M2U3N2QzOTg5MzVmMDUxYzY2OGYyNDdkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcApAQCAtNzAsOSArNzAsNiBAQAogCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgotI2lmIFBM
QVRGT1JNKENIUk9NSVVNKQotI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKLSNlbmRpZgogI2VuZGlm
CiAKICNpZiBFTkFCTEUoU1ZHKQpAQCAtMTIyMiwyNiArMTIxOSw2IEBAIHZvaWQgRnJhbWVWaWV3
OjpyZW1vdmVXaWRnZXRUb1VwZGF0ZShSZW5kZXJFbWJlZGRlZE9iamVjdCogb2JqZWN0KQogICAg
IG1fd2lkZ2V0VXBkYXRlU2V0LT5yZW1vdmUob2JqZWN0KTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6
Onpvb21BbmltYXRvclRyYW5zZm9ybUNoYW5nZWQoZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0
IHksIFpvb21BbmltYXRpb25TdGF0ZSBzdGF0ZSkKLXsKLSAgICBpZiAoc3RhdGUgPT0gWm9vbUFu
aW1hdGlvbkZpbmlzaGluZykgewotICAgICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBh
Z2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPnNldFBhZ2VTY2FsZUZhY3RvcihwYWdlLT5wYWdlU2Nh
bGVGYWN0b3IoKSAqIHNjYWxlLCBJbnRQb2ludChzY2FsZSAqIHNjcm9sbFgoKSAtIHgsIHNjYWxl
ICogc2Nyb2xsWSgpIC0geSkpOwotICAgICAgICBzY3JvbGxBbmltYXRvcigpLT5yZXNldFpvb20o
KTsKLSAgICB9Ci0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKFJl
bmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcykpIHsKLSAgICAgICAgaWYgKHJvb3Qt
PnVzZXNDb21wb3NpdGluZygpKSB7Ci0gICAgICAgICAgICByb290LT5jb21wb3NpdG9yKCktPnNj
aGVkdWxlTGF5ZXJGbHVzaCgpOwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICAgICAg
VFJBQ0VfRVZFTlQoIkZyYW1lVmlldzo6em9vbUFuaW1hdG9yVHJhbnNmb3JtQ2hhbmdlZCIsIHRo
aXMsIDApOwotI2VuZGlmCi0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLX0KLQogdm9pZCBGcmFt
ZVZpZXc6OnNldE1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICAgICBtX21l
ZGlhVHlwZSA9IG1lZGlhVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGFkMTU0YTQ1
NWZlZmExZjFmMDFjZWNiYmRhZGM5N2JlMzQ5YzJmODIuLjgzZDhlYjBiMjJhMmU3NGFkZDlhY2U0
MWNmYjczOWRjYzZlMDkwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMTcxLDggKzE3
MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0
aW9uKFNjcm9sbERpcmVjdGlvbikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHJlcXVlc3RTY3Jv
bGxQb3NpdGlvblVwZGF0ZShjb25zdCBJbnRQb2ludCYpIE9WRVJSSURFOwogCi0gICAgdmlydHVh
bCB2b2lkIHpvb21BbmltYXRvclRyYW5zZm9ybUNoYW5nZWQoZmxvYXQsIGZsb2F0LCBmbG9hdCwg
Wm9vbUFuaW1hdGlvblN0YXRlKTsKLQogICAgIFN0cmluZyBtZWRpYVR5cGUoKSBjb25zdDsKICAg
ICB2b2lkIHNldE1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGFkanVzdE1lZGlh
VHlwZUZvclByaW50aW5nKGJvb2wgcHJpbnRpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IGY3M2M1Y2MwNjQzM2MzZWE2ZGQ1NWFlMTEzYzAyOTQ2
MjliNGE4ODQuLjk0MjM2M2U1Y2VhZmQ0ZTA0NmM5NmM3ZjhkZTNiMzA2MGEzYWYyNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTUyLDkgKzUyLDYg
QEAgU2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxh
YmxlQXJlYSkKICAgICA6IG1fc2Nyb2xsYWJsZUFyZWEoc2Nyb2xsYWJsZUFyZWEpCiAgICAgLCBt
X2N1cnJlbnRQb3NYKDApCiAgICAgLCBtX2N1cnJlbnRQb3NZKDApCi0gICAgLCBtX2N1cnJlbnRa
b29tU2NhbGUoMSkKLSAgICAsIG1fY3VycmVudFpvb21UcmFuc1goMCkKLSAgICAsIG1fY3VycmVu
dFpvb21UcmFuc1koMCkKIHsKIH0KIApAQCAtMTQxLDMxICsxMzgsNCBAQCB2b2lkIFNjcm9sbEFu
aW1hdG9yOjpub3RpZnlQb3NpdGlvbkNoYW5nZWQoKQogICAgIG1fc2Nyb2xsYWJsZUFyZWEtPnNl
dFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24oSW50UG9pbnQobV9jdXJyZW50UG9zWCwgbV9jdXJy
ZW50UG9zWSkpOwogfQogCi12b2lkIFNjcm9sbEFuaW1hdG9yOjpub3RpZnlab29tQ2hhbmdlZCha
b29tQW5pbWF0aW9uU3RhdGUgc3RhdGUpCi17Ci0gICAgbV9zY3JvbGxhYmxlQXJlYS0+em9vbUFu
aW1hdG9yVHJhbnNmb3JtQ2hhbmdlZChtX2N1cnJlbnRab29tU2NhbGUsIG1fY3VycmVudFpvb21U
cmFuc1gsIG1fY3VycmVudFpvb21UcmFuc1ksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9PSBab29tQW5pbWF0aW9uQ29udGludWluZyA/
IFNjcm9sbGFibGVBcmVhOjpab29tQW5pbWF0aW9uQ29udGludWluZwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOiBTY3JvbGxhYmxlQXJlYTo6Wm9vbUFuaW1hdGlvbkZpbmlzaGluZyk7Ci19
Ci0KLUZsb2F0UG9pbnQgU2Nyb2xsQW5pbWF0b3I6Onpvb21UcmFuc2xhdGlvbigpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIEZsb2F0UG9pbnQobV9jdXJyZW50Wm9vbVRyYW5zWCwgbV9jdXJyZW50Wm9v
bVRyYW5zWSk7Ci19Ci0KLXZvaWQgU2Nyb2xsQW5pbWF0b3I6OnJlc2V0Wm9vbSgpCi17Ci0gICAg
bV9jdXJyZW50Wm9vbVNjYWxlID0gMTsKLSAgICBtX2N1cnJlbnRab29tVHJhbnNYID0gMDsKLSAg
ICBtX2N1cnJlbnRab29tVHJhbnNZID0gMDsKLX0KLQotdm9pZCBTY3JvbGxBbmltYXRvcjo6c2V0
Wm9vbVBhcmFtZXRlcnNGb3JUZXN0KGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9hdCB5KQotewot
ICAgIG1fY3VycmVudFpvb21TY2FsZSA9IHNjYWxlOwotICAgIG1fY3VycmVudFpvb21UcmFuc1gg
PSAoMSAtIHNjYWxlKSAqIHg7Ci0gICAgbV9jdXJyZW50Wm9vbVRyYW5zWSA9ICgxIC0gc2NhbGUp
ICogeTsKLSAgICBub3RpZnlab29tQ2hhbmdlZChab29tQW5pbWF0aW9uQ29udGludWluZyk7IC8v
IERvbid0IGxldCBwYWdlIHJlLXNjYWxlLgotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCA2OTg0Y2IzN2RkYzFk
MmU2MTdlMzczNGRkNzYzN2Q2MzlmOWMzYjc3Li4yZDFlOWEzMWJmYjVhMmU4NDFmNGJjMDc1ZjAy
ZDk3NjZjOWFlZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgK
QEAgLTQ3LDggKzQ3LDYgQEAgY2xhc3MgUGxhdGZvcm1HZXN0dXJlRXZlbnQ7CiAKIGNsYXNzIFNj
cm9sbEFuaW1hdG9yIHsKIHB1YmxpYzoKLSAgICBlbnVtIFpvb21BbmltYXRpb25TdGF0ZSB7IFpv
b21BbmltYXRpb25Db250aW51aW5nLCBab29tQW5pbWF0aW9uRmluaXNoaW5nIH07Ci0KICAgICBz
dGF0aWMgUGFzc093blB0cjxTY3JvbGxBbmltYXRvcj4gY3JlYXRlKFNjcm9sbGFibGVBcmVhKik7
CiAKICAgICB2aXJ0dWFsIH5TY3JvbGxBbmltYXRvcigpOwpAQCAtOTEsMTEgKzg5LDYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJh
ciopIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcihT
Y3JvbGxiYXIqKSB7IH0KIAotICAgIGZsb2F0IHpvb21TY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
Y3VycmVudFpvb21TY2FsZTsgfQotICAgIEZsb2F0UG9pbnQgem9vbVRyYW5zbGF0aW9uKCkgY29u
c3Q7Ci0gICAgdmlydHVhbCB2b2lkIHJlc2V0Wm9vbSgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRa
b29tUGFyYW1ldGVyc0ZvclRlc3QoZmxvYXQsIGZsb2F0LCBmbG9hdCk7Ci0KICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkU2Nyb2xsYmFyUGFydGljaXBhdGVJbkhpdFRlc3RpbmcoU2Nyb2xsYmFyKikg
eyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNvbnRlbnRBcmVhU2Ny
b2xsZWQoKSB7IH0KQEAgLTEwNCwxNSArOTcsMTAgQEAgcHJvdGVjdGVkOgogICAgIFNjcm9sbEFu
aW1hdG9yKFNjcm9sbGFibGVBcmVhKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UG9zaXRp
b25DaGFuZ2VkKCk7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVpvb21DaGFuZ2VkKFpvb21Bbmlt
YXRpb25TdGF0ZSk7CiAKICAgICBTY3JvbGxhYmxlQXJlYSogbV9zY3JvbGxhYmxlQXJlYTsKICAg
ICBmbG9hdCBtX2N1cnJlbnRQb3NYOyAvLyBXZSBhdm9pZCB1c2luZyBhIEZsb2F0UG9pbnQgaW4g
b3JkZXIgdG8gcmVkdWNlCiAgICAgZmxvYXQgbV9jdXJyZW50UG9zWTsgLy8gc3ViY2xhc3MgY29k
ZSBjb21wbGV4aXR5LgotCi0gICAgZmxvYXQgbV9jdXJyZW50Wm9vbVNjYWxlOwotICAgIGZsb2F0
IG1fY3VycmVudFpvb21UcmFuc1g7Ci0gICAgZmxvYXQgbV9jdXJyZW50Wm9vbVRyYW5zWTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxBbmltYXRvck5vbmUuY3BwCmluZGV4IDNkMTQ3MmIzODE2N2MyYTI1NjQyMjE0NDljMzEz
ZDkyYmI1NTE0NzkuLjA4M2ExOGE3MDFhZmYxNTZhMmE2YmE3OWU4NDA4NzYyMTg2OThkNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcApAQCAt
MzcxLDM2ICszNzEsMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjp1
cGRhdGVWaXNpYmxlTGVuZ3RoKGludCB2aXNpYmxlTGVuZ3RoKQogICAgIG1fdmlzaWJsZUxlbmd0
aCA9IHZpc2libGVMZW5ndGg7CiB9CiAKLVNjcm9sbEFuaW1hdG9yTm9uZTo6Wm9vbURhdGE6Olpv
b21EYXRhKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZSogcGFyZW50KQotICAgIDogbV9wYXJl
bnQocGFyZW50KQotICAgICwgbV9pc0FuaW1hdGluZyhmYWxzZSkKLXsKLX0KLQotYm9vbCBTY3Jv
bGxBbmltYXRvck5vbmU6Olpvb21EYXRhOjphbmltYXRlWm9vbShkb3VibGUgY3VycmVudFRpbWUp
Ci17Ci0gICAgbV9sYXN0QW5pbWF0aW9uVGltZSA9IGN1cnJlbnRUaW1lOwotICAgIGRvdWJsZSBk
ZWx0YVRpbWUgPSBjdXJyZW50VGltZSAtIG1fc3RhcnRUaW1lOwotCi0gICAgaWYgKGRlbHRhVGlt
ZSA+IG1fYW5pbWF0aW9uVGltZSkgewotICAgICAgICBtX3BhcmVudC0+bV9jdXJyZW50Wm9vbVNj
YWxlID0gbV9kZXNpcmVkU2NhbGU7Ci0gICAgICAgIG1fcGFyZW50LT5tX2N1cnJlbnRab29tVHJh
bnNYID0gbV9kZXNpcmVkVHJhbnNYOwotICAgICAgICBtX3BhcmVudC0+bV9jdXJyZW50Wm9vbVRy
YW5zWSA9IG1fZGVzaXJlZFRyYW5zWTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQot
ICAgIGRvdWJsZSBlbGFwc2VkVGltZUZyYWN0aW9uID0gZGVsdGFUaW1lIC8gbV9hbmltYXRpb25U
aW1lOwotICAgIG1fcGFyZW50LT5tX2N1cnJlbnRab29tU2NhbGUgPSBlbGFwc2VkVGltZUZyYWN0
aW9uICogKG1fZGVzaXJlZFNjYWxlIC0gbV9zdGFydFNjYWxlKSArIG1fc3RhcnRTY2FsZTsKLSAg
ICBtX3BhcmVudC0+bV9jdXJyZW50Wm9vbVRyYW5zWCA9IGVsYXBzZWRUaW1lRnJhY3Rpb24gKiBt
X2Rlc2lyZWRUcmFuc1g7Ci0gICAgbV9wYXJlbnQtPm1fY3VycmVudFpvb21UcmFuc1kgPSBlbGFw
c2VkVGltZUZyYWN0aW9uICogbV9kZXNpcmVkVHJhbnNZOwotICAgIHJldHVybiB0cnVlOwotfQot
CiBTY3JvbGxBbmltYXRvck5vbmU6OlNjcm9sbEFuaW1hdG9yTm9uZShTY3JvbGxhYmxlQXJlYSog
c2Nyb2xsYWJsZUFyZWEpCiAgICAgOiBTY3JvbGxBbmltYXRvcihzY3JvbGxhYmxlQXJlYSkKICAg
ICAsIG1faG9yaXpvbnRhbERhdGEodGhpcywgJm1fY3VycmVudFBvc1gsIHNjcm9sbGFibGVBcmVh
LT52aXNpYmxlV2lkdGgoKSkKICAgICAsIG1fdmVydGljYWxEYXRhKHRoaXMsICZtX2N1cnJlbnRQ
b3NZLCBzY3JvbGxhYmxlQXJlYS0+dmlzaWJsZUhlaWdodCgpKQotICAgICwgbV96b29tRGF0YSh0
aGlzKQogICAgICwgbV9hbmltYXRpb25UaW1lcih0aGlzLCAmU2Nyb2xsQW5pbWF0b3JOb25lOjph
bmltYXRpb25UaW1lckZpcmVkKQogewogfQpAQCAtNDcwLDYzICs0NDQsNiBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTm9uZTo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmIG9mZnNldAogICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZCgpOwogfQogCi0jaWYgRU5B
QkxFKEdFU1RVUkVfRVZFTlRTKQotdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6Onpvb20oY29uc3Qg
UGxhdGZvcm1HZXN0dXJlRXZlbnQmIHBnZSkKLXsKLSAgICBBU1NFUlQocGdlLnR5cGUoKSA9PSBQ
bGF0Zm9ybUV2ZW50OjpHZXN0dXJlRG91YmxlVGFwKTsKLSAgICAvLyBGSVhNRTogbW9kaWZ5IHRo
aXMgc28gd2UgY2FuIHN0YXJ0IGV2ZW4gaWYgdGhlIHRpbWVyIGlzIGFjdGl2ZS4KLSAgICBpZiAo
IW1fYW5pbWF0aW9uVGltZXIuaXNBY3RpdmUoKSkgewotICAgICAgICBtX2N1cnJlbnRab29tU2Nh
bGUgPSAxOwotICAgICAgICBtX2N1cnJlbnRab29tVHJhbnNYID0gMDsKLSAgICAgICAgbV9jdXJy
ZW50Wm9vbVRyYW5zWSA9IDA7Ci0KLSAgICAgICAgZG91YmxlIGN1cnJlbnRUaW1lID0gV1RGOjpt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKLSAgICAgICAgZmxvYXQgc2NhbGUgPSBwZ2Uu
ZGVsdGFYKCk7Ci0KLSAgICAgICAgbV96b29tRGF0YS5tX3N0YXJ0VGltZSA9IGN1cnJlbnRUaW1l
IC0ga1RpY2tUaW1lIC8gMjsKLSAgICAgICAgbV96b29tRGF0YS5tX3N0YXJ0U2NhbGUgPSBtX2N1
cnJlbnRab29tU2NhbGU7Ci0gICAgICAgIG1fem9vbURhdGEubV9kZXNpcmVkU2NhbGUgPSBzY2Fs
ZTsKLSAgICAgICAgLy8gRklYTUU6IERvY3VtZW50IHRoZW4gc2ltcGxpZnkgdGhlIGZvbGxvd2lu
ZyBlcXVhdGlvbnMuCi0gICAgICAgIG1fem9vbURhdGEubV9kZXNpcmVkVHJhbnNYID0gKDEgLSBz
Y2FsZSkgKiBwZ2UuZ2xvYmFsUG9zaXRpb24oKS54KCk7Ci0gICAgICAgIG1fem9vbURhdGEubV9k
ZXNpcmVkVHJhbnNZID0gKDEgLSBzY2FsZSkgKiBwZ2UuZ2xvYmFsUG9zaXRpb24oKS55KCk7Ci0j
aWYgRU5BQkxFKERPVUJMRV9UQVBfQ0VOVEVSUykKLSAgICAgICAgaWYgKHBnZS50eXBlKCkgPT0g
UGxhdGZvcm1FdmVudDo6R2VzdHVyZURvdWJsZVRhcCkgewotICAgICAgICAgICAgLy8gWm9vbSB0
byBjZW50cmUgb2YgZGlzcGxheS4gUGluY2gtdG8tem9vbSBtYXkgbm90IHdhbnQgdGhpcyBiZWhh
dmlvdXIuCi0gICAgICAgICAgICBtX3pvb21EYXRhLm1fZGVzaXJlZFRyYW5zWCArPSBtX3Njcm9s
bGFibGVBcmVhLT52aXNpYmxlV2lkdGgoKSAvIDIgLSBwZ2UuZ2xvYmFsUG9zaXRpb24oKS54KCk7
Ci0gICAgICAgICAgICBtX3pvb21EYXRhLm1fZGVzaXJlZFRyYW5zWSArPSBtX3Njcm9sbGFibGVB
cmVhLT52aXNpYmxlSGVpZ2h0KCkgLyAyIC0gcGdlLmdsb2JhbFBvc2l0aW9uKCkueSgpOwotICAg
ICAgICB9Ci0jZW5kaWYKLSAgICAgICAgbV96b29tRGF0YS5tX2xhc3RBbmltYXRpb25UaW1lID0g
Y3VycmVudFRpbWU7Ci0gICAgICAgIG1fem9vbURhdGEubV9hbmltYXRpb25UaW1lID0ga1pvb21U
aWNrcyAqIGtUaWNrVGltZTsKLQotICAgICAgICBib29sIGlzQ29udGludWluZyA9IG1fem9vbURh
dGEuYW5pbWF0ZVpvb20oY3VycmVudFRpbWUpOwotCi0gICAgICAgIGRvdWJsZSBkZWx0YVRvTmV4
dEZyYW1lID0gY2VpbCgoY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZSkgKiBrRnJhbWVSYXRlKSAv
IGtGcmFtZVJhdGUgLSAoY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZSk7Ci0gICAgICAgIGRvdWJs
ZSBuZXh0VGltZXJJbnRlcnZhbCA9IG1heChrTWluaW11bVRpbWVySW50ZXJ2YWwsIGRlbHRhVG9O
ZXh0RnJhbWUpOwotICAgICAgICBpZiAoaXNDb250aW51aW5nKSB7Ci0gICAgICAgICAgICBtX2Fu
aW1hdGlvblRpbWVyLnN0YXJ0T25lU2hvdChuZXh0VGltZXJJbnRlcnZhbCk7Ci0gICAgICAgICAg
ICBtX3pvb21EYXRhLm1faXNBbmltYXRpbmcgPSB0cnVlOwotICAgICAgICAgICAgbm90aWZ5Wm9v
bUNoYW5nZWQoWm9vbUFuaW1hdGlvbkNvbnRpbnVpbmcpOwotICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIG5vdGlmeVpvb21DaGFuZ2VkKFpvb21BbmltYXRpb25GaW5pc2hpbmcpOwotICAgIH0K
LX0KLQotdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBQ
bGF0Zm9ybUdlc3R1cmVFdmVudCYgcGdlKQotewotICAgIFRSQUNFX0VWRU5UKCJTY3JvbGxBbmlt
YXRvck5vbmU6OmhhbmRsZUdlc3R1cmVFdmVudCIsIHRoaXMsIDApOwotICAgIHN3aXRjaCAocGdl
LnR5cGUoKSkgewotICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZURvdWJsZVRhcDoKLSAg
ICAgICAgem9vbShwZ2UpOwotICAgICAgICBicmVhazsKLQotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IC8vIFRPRE86IGFkZCBhbnkgb3RoZXIgZXZlbnQgdHlwZXMgd2Ugc2hvdWxkIGhhbmRsZQotICAg
ICAgICB7IH0KLSAgICB9Ci19Ci0jZW5kaWYKLQogdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6Ondp
bGxFbmRMaXZlUmVzaXplKCkKIHsKICAgICB1cGRhdGVWaXNpYmxlTGVuZ3RocygpOwpAQCAtNTYz
LDE5ICs0ODAsNiBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJl
ZChUaW1lcjxTY3JvbGxBbmltYXRvck5vbmU+KiB0aW1lcikKICAgICBpZiAobV92ZXJ0aWNhbERh
dGEubV9zdGFydFRpbWUgJiYgbV92ZXJ0aWNhbERhdGEuYW5pbWF0ZVNjcm9sbChjdXJyZW50VGlt
ZSArIGRlbHRhVG9OZXh0RnJhbWUpKQogICAgICAgICBjb250aW51ZUFuaW1hdGlvbiA9IHRydWU7
CiAKLSAgICBpZiAobV96b29tRGF0YS5tX2lzQW5pbWF0aW5nKSB7Ci0jaWYgUExBVEZPUk0oQ0hS
T01JVU0pCi0gICAgICAgIFRSQUNFX0VWRU5UKCJTY3JvbGxBbmltYXRvck5vbmU6Om5vdGlmeVpv
b21DaGFuZ2VkIiwgdGhpcywgMCk7Ci0jZW5kaWYKLSAgICAgICAgaWYgKG1fem9vbURhdGEubV9z
dGFydFRpbWUgJiYgbV96b29tRGF0YS5hbmltYXRlWm9vbShjdXJyZW50VGltZSArIGRlbHRhVG9O
ZXh0RnJhbWUpKSB7Ci0gICAgICAgICAgICBjb250aW51ZUFuaW1hdGlvbiA9IHRydWU7Ci0gICAg
ICAgICAgICBub3RpZnlab29tQ2hhbmdlZChab29tQW5pbWF0aW9uQ29udGludWluZyk7Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBub3RpZnlab29tQ2hhbmdlZChab29tQW5pbWF0aW9u
RmluaXNoaW5nKTsKLSAgICAgICAgICAgIG1fem9vbURhdGEubV9pc0FuaW1hdGluZyA9IGZhbHNl
OwotICAgICAgICB9Ci0gICAgfQotCiAgICAgaWYgKGNvbnRpbnVlQW5pbWF0aW9uKSB7CiAgICAg
ICAgIGRvdWJsZSBuZXh0VGltZXJJbnRlcnZhbCA9IG1heChrTWluaW11bVRpbWVySW50ZXJ2YWws
IGRlbHRhVG9OZXh0RnJhbWUpOwogICAgICAgICB0aW1lci0+c3RhcnRPbmVTaG90KG5leHRUaW1l
ckludGVydmFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yTm9uZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25l
LmgKaW5kZXggZjk0ZDUyMzliNzE5YjYyMDI0YzE4YjQ3MWI1MTU3YmQ0YzUzMWNmMi4uNGQ2OWE3
YzRhNjQ2MzcyNWJlMTBhNmE2NjVjZWI3OWRhMzIxNWI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmgKQEAgLTUwLDExICs1MCw2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFu
dWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CiAgICAgdmlydHVhbCB2b2lk
IHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAKLSNp
ZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCi0gICAgdmlydHVhbCB2b2lkIHpvb20oY29uc3QgUGxh
dGZvcm1HZXN0dXJlRXZlbnQmKTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlR2VzdHVyZUV2ZW50
KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7Ci0jZW5kaWYKLQogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRWZXJ0aWNhbFNj
cm9sbGJhcihTY3JvbGxiYXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSG9yaXpvbnRhbFNj
cm9sbGJhcihTY3JvbGxiYXIqKTsKQEAgLTEzMSwzNSArMTI2LDEyIEBAIHByb3RlY3RlZDoKICAg
ICAgICAgaW50IG1fdmlzaWJsZUxlbmd0aDsKICAgICB9OwogCi0gICAgLy8gV2hpbGUgem9vbWlu
Zywgc2NhbGUsIHBvc1ggYW5kIHBvc1kgbmVlZCB0byBzdGF5IHRpZ2h0bHkgY291cGxlZCwgc28g
dXNlIGEgc2VwYXJhdGUKLSAgICAvLyBkYXRhIHN0cnVjdHVyZS4KLSAgICBzdHJ1Y3QgWm9vbURh
dGEgewotICAgICAgICBab29tRGF0YShTY3JvbGxBbmltYXRvck5vbmUqIHBhcmVudCk7Ci0gICAg
ICAgIGJvb2wgYW5pbWF0ZVpvb20oZG91YmxlIGN1cnJlbnRUaW1lKTsKLQotICAgICAgICBTY3Jv
bGxBbmltYXRvck5vbmUqIG1fcGFyZW50OwotICAgICAgICBib29sIG1faXNBbmltYXRpbmc7Ci0K
LSAgICAgICAgZG91YmxlIG1fc3RhcnRUaW1lOwotCi0gICAgICAgIGRvdWJsZSBtX2FuaW1hdGlv
blRpbWU7Ci0gICAgICAgIGRvdWJsZSBtX2xhc3RBbmltYXRpb25UaW1lOwotCi0gICAgICAgIGRv
dWJsZSBtX3N0YXJ0U2NhbGU7Ci0gICAgICAgIGRvdWJsZSBtX2Rlc2lyZWRTY2FsZTsKLSAgICAg
ICAgZG91YmxlIG1fZGVzaXJlZFRyYW5zWDsKLSAgICAgICAgZG91YmxlIG1fZGVzaXJlZFRyYW5z
WTsKLSAgICB9OwotCi0gICAgZnJpZW5kIHN0cnVjdCBab29tRGF0YTsKLQogICAgIHZvaWQgYW5p
bWF0aW9uVGltZXJGaXJlZChUaW1lcjxTY3JvbGxBbmltYXRvck5vbmU+Kik7CiAgICAgdm9pZCBz
dG9wQW5pbWF0aW9uVGltZXJJZk5lZWRlZCgpOwogICAgIHZvaWQgdXBkYXRlVmlzaWJsZUxlbmd0
aHMoKTsKIAogICAgIFBlckF4aXNEYXRhIG1faG9yaXpvbnRhbERhdGE7CiAgICAgUGVyQXhpc0Rh
dGEgbV92ZXJ0aWNhbERhdGE7Ci0gICAgWm9vbURhdGEgbV96b29tRGF0YTsKIAogICAgIGRvdWJs
ZSBtX3N0YXJ0VGltZTsKICAgICBUaW1lcjxTY3JvbGxBbmltYXRvck5vbmU+IG1fYW5pbWF0aW9u
VGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJl
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXgg
ZGY1Zjg4MDk0MTc5NjM4Mjg2NWJhMzhhMGIxYzRkYjE0N2M3YzYwNy4uZTYxYmIwYWViZGQ3OWJk
YWUxYzNkZmM4YzRhZjA0NGY0N2Q3YmZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGFibGVBcmVhLmNwcApAQCAtMTUzLDExICsxNTMsNiBAQCB2b2lkIFNjcm9sbGFibGVBcmVh
Ojpub3RpZnlTY3JvbGxQb3NpdGlvbkNoYW5nZWQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uKQog
ICAgIHNjcm9sbEFuaW1hdG9yKCktPm5vdGlmeUNvbnRlbnRBcmVhU2Nyb2xsZWQoKTsKIH0KIAot
dm9pZCBTY3JvbGxhYmxlQXJlYTo6em9vbUFuaW1hdG9yVHJhbnNmb3JtQ2hhbmdlZChmbG9hdCwg
ZmxvYXQsIGZsb2F0LCBab29tQW5pbWF0aW9uU3RhdGUpCi17Ci0gICAgLy8gUmVxdWlyZXMgRnJh
bWVWaWV3IHRvIG92ZXJyaWRlIHRoaXMuCi19Ci0KIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OmhhbmRs
ZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAg
IHJldHVybiBzY3JvbGxBbmltYXRvcigpLT5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggOTRkYTVkYTFiN2Yz
MGFmNmM5MWU0OTZiMDlhNjgxNmU0Mjk0OTAxMC4uMGEyYTE2NDg4Y2Y3MzJkOTNkYzcxYjg4YWJi
NDFhZTNlZmU3YWViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5o
CkBAIC00Miw4ICs0Miw2IEBAIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiAKIGNsYXNzIFNjcm9sbGFi
bGVBcmVhIHsKIHB1YmxpYzoKLSAgICBlbnVtIFpvb21BbmltYXRpb25TdGF0ZSB7IFpvb21Bbmlt
YXRpb25Db250aW51aW5nLCBab29tQW5pbWF0aW9uRmluaXNoaW5nIH07Ci0KICAgICBib29sIHNj
cm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVy
ID0gMSk7CiAgICAgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxv
YXRQb2ludCYpOwogICAgIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKFNjcm9s
bGJhck9yaWVudGF0aW9uLCBmbG9hdCBvZmZzZXQpOwpAQCAtNTcsOCArNTUsNiBAQCBwdWJsaWM6
CiAgICAgLy8gZXhwZWN0IGl0IHRvIGhhcHBlbiBzb21ldGltZSBpbiB0aGUgZnV0dXJlLgogICAg
IHZpcnR1YWwgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgSW50UG9pbnQm
KSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHpvb21BbmltYXRvclRyYW5z
Zm9ybUNoYW5nZWQoZmxvYXQsIGZsb2F0LCBmbG9hdCwgWm9vbUFuaW1hdGlvblN0YXRlKTsKLQog
ICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKICNp
ZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiAgICAgdm9pZCBoYW5kbGVHZXN0dXJlRXZlbnQoY29u
c3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCmluZGV4IGMyYjA0NWRjYTE0ZThlZWJhZjZmMGYwNDM3ZGQxZGI4NzFi
MzFmZTMuLjI4ODRlNTY2MTE4Nzg5YzBkZTA3NTAxZTFhMTE0ZWRlNDU4YTE1NzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMzYsMTQgKzM2LDYg
QEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAotI2lmIEVOQUJM
RShHRVNUVVJFX0VWRU5UUykKLSNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVFdmVudC5oIgotI2Vu
ZGlmCi0KLSNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSNpbmNsdWRlICJTY3JvbGxBbmlt
YXRvci5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAjaW5jbHVkZSAiQ29s
b3JDaG9vc2VyLmgiCiAjZW5kaWYKQEAgLTE3Miw0MyArMTY0LDYgQEAgdm9pZCBJbnRlcm5hbFNl
dHRpbmdzOjpzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0
aW9uQ29kZSYKICAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGVu
YWJsZWQpOwogfQogCi12b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZVNjcm9sbEFuaW1h
dG9yKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgSW50ZXJuYWxTZXR0
aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKLSNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSAg
ICBzZXR0aW5ncygpLT5zZXRFbmFibGVTY3JvbGxBbmltYXRvcihlbmFibGVkKTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOwotI2VuZGlmCi19Ci0KLXZvaWQgSW50ZXJuYWxTZXR0
aW5nczo6c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGZsb2F0IHNjYWxlLCBmbG9hdCB0eCwgZmxv
YXQgdHksIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZv
ckZyYW1lKCk7Ci0KLSNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCi0gICAgUGxhdGZvcm1HZXN0
dXJlRXZlbnQgcGdlKFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVUYXAsIEludFBvaW50KHR4
LCB0eSksIEludFBvaW50KHR4LCB0eSksIDAsIHNjYWxlLCAwLmYsIDAsIDAsIDAsIDApOwotICAg
IGZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZlbnQocGdlKTsKLSNlbHNl
Ci0gICAgVU5VU0VEX1BBUkFNKHNjYWxlKTsKLSAgICBVTlVTRURfUEFSQU0odHgpOwotICAgIFVO
VVNFRF9QQVJBTSh0eSk7Ci0jZW5kaWYKLX0KLQotdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRa
b29tUGFyYW1ldGVycyhmbG9hdCBzY2FsZSwgZmxvYXQgeCwgZmxvYXQgeSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCi17Ci0gICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yRnJhbWVWaWV3KCk7Ci0KLSNp
ZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSAgICBmcmFtZSgpLT52aWV3KCktPnNjcm9sbEFu
aW1hdG9yKCktPnNldFpvb21QYXJhbWV0ZXJzRm9yVGVzdChzY2FsZSwgeCwgeSk7Ci0jZWxzZQot
ICAgIFVOVVNFRF9QQVJBTShzY2FsZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHgpOwotICAgIFVOVVNF
RF9QQVJBTSh5KTsKLSNlbmRpZgotfQotCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldE1vY2tT
Y3JvbGxiYXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CkBAIC0yNTMsMTIgKzIwOCw2IEBA
IGJvb2wgSW50ZXJuYWxTZXR0aW5nczo6dW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRXhjZXB0
aW9uQ29kZSYgZWMpCiAgICAgcmV0dXJuIHNldHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hlY2tlckVu
YWJsZWQoKTsKIH0KIAotZmxvYXQgSW50ZXJuYWxTZXR0aW5nczo6cGFnZVNjYWxlRmFjdG9yKEV4
Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclBhZ2VSZXR1
cm4oMCk7Ci0gICAgcmV0dXJuIHBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7Ci19Ci0KIHZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0UGFnZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yLCBp
bnQgeCwgaW50IHksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEludGVybmFsU2V0dGluZ3NH
dWFyZEZvclBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgK
aW5kZXggNjQ4MDA5MjZjNGQwZjFjYzRhYTMxMmRlMTAwNWJkYTk1Y2M2MDhlMy4uZWY2NmM5OTU5
NTIzYzQ4ZWUxYjU4MTg0ODkxY2UwOWVhYWZjOWRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTUyLDE2ICs1MiwxMiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJv
b2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0
ZXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldEVu
YWJsZVNjcm9sbEFuaW1hdG9yKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZv
aWQgc2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGZsb2F0IHNjYWxlLCBmbG9hdCB0eCwgZmxvYXQg
dHksIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldFpvb21QYXJhbWV0ZXJzKGZsb2F0IHNj
YWxlLCBmbG9hdCB4LCBmbG9hdCB5LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRNb2Nr
U2Nyb2xsYmFyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRQYXNzd29yZEVjaG9FbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoZG91YmxlIGR1cmF0aW9u
SW5TZWNvbmRzLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRGaXhlZEVsZW1lbnRzTGF5
b3V0UmVsYXRpdmVUb0ZyYW1lKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFVu
aWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBib29s
IHVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBmbG9hdCBw
YWdlU2NhbGVGYWN0b3IoRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFj
dG9yKGZsb2F0IHNjYWxlRmFjdG9yLCBpbnQgeCwgaW50IHksIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB2b2lkIHNldFBlclRpbGVEcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIHNldFRvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5pZGwKaW5kZXggMDM2MDA4Mzg0ZWVjMTc2Zjc1ODNkYmQwOWU2MTAwYmUyYjY4Nzg3Ny4u
ZGQ5NTE5ZWMyNzA4ZGNlNDk5OTI3NGJlNDk4NGJjZWE2Njg2ZmMxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC0zMywxNiArMzMsMTIgQEAgbW9k
dWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxh
YmxlRnJhbWVzKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAg
ICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVy
c0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAg
ICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmltYXRvcihpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNl
cyhET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShp
biBmbG9hdCBzY2FsZSwgaW4gZmxvYXQgdHgsIGluIGZsb2F0IHR5KSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKLSAgICAgICAgdm9pZCBzZXRab29tUGFyYW1ldGVycyhpbiBmbG9hdCBzY2FsZSwgaW4g
ZmxvYXQgeCwgaW4gZmxvYXQgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQg
c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRW5hYmxlZChpbiBib29sZWFu
IGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldFBhc3N3b3Jk
RWNob0R1cmF0aW9uSW5TZWNvbmRzKGluIGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcykgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0
aXZlVG9GcmFtZShpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAg
ICAgICB2b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxl
ZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBib29sZWFuIHVuaWZpZWRUZXh0Q2hl
Y2tpbmdFbmFibGVkKCkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICBmbG9hdCBwYWdl
U2NhbGVGYWN0b3IoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRQYWdl
U2NhbGVGYWN0b3IoaW4gZmxvYXQgc2NhbGVGYWN0b3IsIGluIGxvbmcgeCwgaW4gbG9uZyB5KSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRUb3VjaEV2ZW50RW11bGF0aW9u
RW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMTI2NDdkZmUzMTc5MzY4Mzlm
OTEzMzRjODg2NWQ3NGM3NzZjZWVlOC4uODAxMzNlYWI1NTAwODM2OTIwOTVmY2M0MDNhNzhmOTQ1
ZWQwNDExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTMsMTQgKzUz
LDYgQEAKICNpbmNsdWRlICJTcGVsbENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3Iu
aCIKIAotI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKLSNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1
cmVFdmVudC5oIgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSNpbmNs
dWRlICJTY3JvbGxBbmltYXRvci5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoSU5QVVRfQ09MT1Ip
CiAjaW5jbHVkZSAiQ29sb3JDaG9vc2VyLmgiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA3M2M4NmIzODQ0YjE1OTcwZGQxMjVjMGJjZGVl
MjViYjE3MDVjNTc4Li41NWI5YTFkYWNmNGE5OWQyZTc3OGU3OTcyZGQ0MGMzYzA5ZjJhODk2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC05OSw3ICs5
OSw2IEBACiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGUuaCIKICNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgotI2luY2x1ZGUgIlNjcm9sbEFuaW1h
dG9yLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWN1cml0eVBv
bGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126793</attachid>
            <date>2012-02-13 10:36:21 -0800</date>
            <delta_ts>2012-02-13 20:42:12 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78359-20120213133620.patch</filename>
            <type>text/plain</type>
            <size>25099</size>
            <attacher name="W. James MacLean">wjmaclean</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJlYzViYTYzMWUzNDc5
NGVkZWJjMDAxMjhkZTljYWZiODQ1OTgxMy4uZTRkOGZmZmI3NGY0M2U2MDQwZGJmNjcyNDcyMTU1
YjAxMWQ5NmE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTAyLTEzICBXLiBK
YW1lcyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIFJlbW92ZSBvYnNvbGV0ZSB6b29tIGFuaW1hdGlvbiBwYXRod2F5LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgzNTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KKworICAgICAgICBUZXN0cyBmb3IgZXhpc3RpbmcgcGF0
aHdheXMgc2hvdWxkIG5vdCBiZSBicm9rZW4uIFRlc3RzIGZvciByZW1vdmVkIHBhdGh3YXkgcmVt
b3ZlZCBwcmV2aW91c2x5LgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBkZWFkIGNvZGUg
ZnJvbSB0aGUgcHJldmlvdXMgaW5jYXJuYXRpb24gb2Ygem9vbSBhbmltYXRpb24gZm9yIGNocm9t
aXVtLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3LmNwcDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAoRnJhbWVW
aWV3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6U2Nyb2xsQW5pbWF0b3IpOgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmg6CisgICAgICAgIChTY3JvbGxBbmltYXRvcik6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbEFuaW1hdG9yTm9uZTo6U2Nyb2xsQW5pbWF0b3JOb25lKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmg6CisgICAgICAgIChTY3JvbGxBbmltYXRvck5vbmUp
OgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHA6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChJ
bnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRs
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKwogMjAxMi0wMi0xMyAgUGF2ZWwg
RmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
d3JhcCBzZXR0aW5ncyBzZWxlY3RvciB0ZXh0IGFuZCBhZGRpbmcgYSBydWxlIHdpdGggdW5kb2Fi
bGUgYWN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMjhlMjFjYmQwNDgwNDJj
ZjkzNTRiYmFmMmRmYTkwNjA4NmUwMDk3OC4uMjU4ZWE1ZDNiMzQ5NTk4YjE0YzJkMTAyZGVmNGRi
N2FhNGY5OGExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMi0wMi0xMyAgVy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgb2Jzb2xldGUgem9vbSBhbmltYXRpb24gcGF0aHdh
eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzU5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgVGhpcyBw
YXRjaCByZW1vdmVzIGRlYWQgY29kZSBmcm9tIHRoZSBwcmV2aW91cyBpbmNhcm5hdGlvbiBvZiB6
b29tIGFuaW1hdGlvbiBmb3IgY2hyb21pdW0uCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorCiAyMDEyLTAyLTEzICBZb3NpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbRm9ybXNdIFVzZSBlbnVtIGluc3RlYWQgb2YgYm9vbCBmb3IgSFRNTElucHV0
RWxlbWVudDo6c2V0VmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjMzFjMDMwMDUxNDg5MmEwM2E0NzEyMTgz
MGM1MmNjNjBjYzJhYTcyLi42ZTc2Njg3N2JlOGZmYTU5NDBiMTNlMzBjYzkzOTllNTMxZjlkOTI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDItMTMgIFcuIEphbWVzIE1hY0xl
YW4gIDx3am1hY2xlYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVtb3Zl
IG9ic29sZXRlIHpvb20gYW5pbWF0aW9uIHBhdGh3YXkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IEph
bWVzIFJvYmluc29uLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBkZWFkIGNvZGUgZnJv
bSB0aGUgcHJldmlvdXMgaW5jYXJuYXRpb24gb2Ygem9vbSBhbmltYXRpb24gZm9yIGNocm9taXVt
LgorCisgICAgICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuaDoKKyAg
ICAgICAgKEJ1aWx0SW5QREZWaWV3KToKKwogMjAxMi0wMi0xMSAgU2hlcmlmZiBCb3QgIDx3ZWJr
aXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjEwNzQzNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAxNGExOThh
ODE2YTMzNmJlZWZmMmEwOWI1YjA5NGZmYmU1NTRjMzQ2Li5hYmNjNTE3OGVkZDg5ZWJmNzhlNDMz
YzUxYzY4ZGNmNGYxOWU3MDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC0yMzYyLDYgKzIzNjIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlR2VzdHVyZUV2ZW50
KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KICAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVUYXA6
CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEJl
Z2luOgogICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZVNjcm9sbEVuZDogewogICAgICAg
ICBGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLT52aWV3KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKaW5kZXggODhlMmI0ZTlhZWNlYTM4Mjg2M2M0ODVjYjUwMGM2OGRjMTczM2RjZC4uMzgy
NWYyMzk3YjQ0MWY4M2U3N2QzOTg5MzVmMDUxYzY2OGYyNDdkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcApAQCAtNzAsOSArNzAsNiBAQAogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogI2luY2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgotI2lmIFBMQVRGT1JN
KENIUk9NSVVNKQotI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKLSNlbmRpZgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoU1ZHKQpAQCAtMTIyMiwyNiArMTIxOSw2IEBAIHZvaWQgRnJhbWVWaWV3OjpyZW1v
dmVXaWRnZXRUb1VwZGF0ZShSZW5kZXJFbWJlZGRlZE9iamVjdCogb2JqZWN0KQogICAgIG1fd2lk
Z2V0VXBkYXRlU2V0LT5yZW1vdmUob2JqZWN0KTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6Onpvb21B
bmltYXRvclRyYW5zZm9ybUNoYW5nZWQoZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHksIFpv
b21BbmltYXRpb25TdGF0ZSBzdGF0ZSkKLXsKLSAgICBpZiAoc3RhdGUgPT0gWm9vbUFuaW1hdGlv
bkZpbmlzaGluZykgewotICAgICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkK
LSAgICAgICAgICAgIHBhZ2UtPnNldFBhZ2VTY2FsZUZhY3RvcihwYWdlLT5wYWdlU2NhbGVGYWN0
b3IoKSAqIHNjYWxlLCBJbnRQb2ludChzY2FsZSAqIHNjcm9sbFgoKSAtIHgsIHNjYWxlICogc2Ny
b2xsWSgpIC0geSkpOwotICAgICAgICBzY3JvbGxBbmltYXRvcigpLT5yZXNldFpvb20oKTsKLSAg
ICB9Ci0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKFJlbmRlclZp
ZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcykpIHsKLSAgICAgICAgaWYgKHJvb3QtPnVzZXND
b21wb3NpdGluZygpKSB7Ci0gICAgICAgICAgICByb290LT5jb21wb3NpdG9yKCktPnNjaGVkdWxl
TGF5ZXJGbHVzaCgpOwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICAgICAgVFJBQ0Vf
RVZFTlQoIkZyYW1lVmlldzo6em9vbUFuaW1hdG9yVHJhbnNmb3JtQ2hhbmdlZCIsIHRoaXMsIDAp
OwotI2VuZGlmCi0gICAgICAgIH0KLSAgICB9Ci0jZW5kaWYKLX0KLQogdm9pZCBGcmFtZVZpZXc6
OnNldE1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICAgICBtX21lZGlhVHlw
ZSA9IG1lZGlhVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGFkMTU0YTQ1NWZlZmEx
ZjFmMDFjZWNiYmRhZGM5N2JlMzQ5YzJmODIuLjgzZDhlYjBiMjJhMmU3NGFkZDlhY2U0MWNmYjcz
OWRjYzZlMDkwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMTcxLDggKzE3MSw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFNj
cm9sbERpcmVjdGlvbikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShjb25zdCBJbnRQb2ludCYpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lk
IHpvb21BbmltYXRvclRyYW5zZm9ybUNoYW5nZWQoZmxvYXQsIGZsb2F0LCBmbG9hdCwgWm9vbUFu
aW1hdGlvblN0YXRlKTsKLQogICAgIFN0cmluZyBtZWRpYVR5cGUoKSBjb25zdDsKICAgICB2b2lk
IHNldE1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGFkanVzdE1lZGlhVHlwZUZv
clByaW50aW5nKGJvb2wgcHJpbnRpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3IuY3BwCmluZGV4IGY3M2M1Y2MwNjQzM2MzZWE2ZGQ1NWFlMTEzYzAyOTQ2MjliNGE4
ODQuLjk0MjM2M2U1Y2VhZmQ0ZTA0NmM5NmM3ZjhkZTNiMzA2MGEzYWYyNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTUyLDkgKzUyLDYgQEAgU2Ny
b2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJl
YSkKICAgICA6IG1fc2Nyb2xsYWJsZUFyZWEoc2Nyb2xsYWJsZUFyZWEpCiAgICAgLCBtX2N1cnJl
bnRQb3NYKDApCiAgICAgLCBtX2N1cnJlbnRQb3NZKDApCi0gICAgLCBtX2N1cnJlbnRab29tU2Nh
bGUoMSkKLSAgICAsIG1fY3VycmVudFpvb21UcmFuc1goMCkKLSAgICAsIG1fY3VycmVudFpvb21U
cmFuc1koMCkKIHsKIH0KIApAQCAtMTQxLDMxICsxMzgsNCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9y
Ojpub3RpZnlQb3NpdGlvbkNoYW5nZWQoKQogICAgIG1fc2Nyb2xsYWJsZUFyZWEtPnNldFNjcm9s
bE9mZnNldEZyb21BbmltYXRpb24oSW50UG9pbnQobV9jdXJyZW50UG9zWCwgbV9jdXJyZW50UG9z
WSkpOwogfQogCi12b2lkIFNjcm9sbEFuaW1hdG9yOjpub3RpZnlab29tQ2hhbmdlZChab29tQW5p
bWF0aW9uU3RhdGUgc3RhdGUpCi17Ci0gICAgbV9zY3JvbGxhYmxlQXJlYS0+em9vbUFuaW1hdG9y
VHJhbnNmb3JtQ2hhbmdlZChtX2N1cnJlbnRab29tU2NhbGUsIG1fY3VycmVudFpvb21UcmFuc1gs
IG1fY3VycmVudFpvb21UcmFuc1ksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGF0ZSA9PSBab29tQW5pbWF0aW9uQ29udGludWluZyA/IFNjcm9s
bGFibGVBcmVhOjpab29tQW5pbWF0aW9uQ29udGludWluZwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOiBTY3JvbGxhYmxlQXJlYTo6Wm9vbUFuaW1hdGlvbkZpbmlzaGluZyk7Ci19Ci0KLUZs
b2F0UG9pbnQgU2Nyb2xsQW5pbWF0b3I6Onpvb21UcmFuc2xhdGlvbigpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIEZsb2F0UG9pbnQobV9jdXJyZW50Wm9vbVRyYW5zWCwgbV9jdXJyZW50Wm9vbVRyYW5z
WSk7Ci19Ci0KLXZvaWQgU2Nyb2xsQW5pbWF0b3I6OnJlc2V0Wm9vbSgpCi17Ci0gICAgbV9jdXJy
ZW50Wm9vbVNjYWxlID0gMTsKLSAgICBtX2N1cnJlbnRab29tVHJhbnNYID0gMDsKLSAgICBtX2N1
cnJlbnRab29tVHJhbnNZID0gMDsKLX0KLQotdm9pZCBTY3JvbGxBbmltYXRvcjo6c2V0Wm9vbVBh
cmFtZXRlcnNGb3JUZXN0KGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9hdCB5KQotewotICAgIG1f
Y3VycmVudFpvb21TY2FsZSA9IHNjYWxlOwotICAgIG1fY3VycmVudFpvb21UcmFuc1ggPSAoMSAt
IHNjYWxlKSAqIHg7Ci0gICAgbV9jdXJyZW50Wm9vbVRyYW5zWSA9ICgxIC0gc2NhbGUpICogeTsK
LSAgICBub3RpZnlab29tQ2hhbmdlZChab29tQW5pbWF0aW9uQ29udGludWluZyk7IC8vIERvbid0
IGxldCBwYWdlIHJlLXNjYWxlLgotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCA2OTg0Y2IzN2RkYzFkMmU2MTdl
MzczNGRkNzYzN2Q2MzlmOWMzYjc3Li4yZDFlOWEzMWJmYjVhMmU4NDFmNGJjMDc1ZjAyZDk3NjZj
OWFlZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTQ3
LDggKzQ3LDYgQEAgY2xhc3MgUGxhdGZvcm1HZXN0dXJlRXZlbnQ7CiAKIGNsYXNzIFNjcm9sbEFu
aW1hdG9yIHsKIHB1YmxpYzoKLSAgICBlbnVtIFpvb21BbmltYXRpb25TdGF0ZSB7IFpvb21Bbmlt
YXRpb25Db250aW51aW5nLCBab29tQW5pbWF0aW9uRmluaXNoaW5nIH07Ci0KICAgICBzdGF0aWMg
UGFzc093blB0cjxTY3JvbGxBbmltYXRvcj4gY3JlYXRlKFNjcm9sbGFibGVBcmVhKik7CiAKICAg
ICB2aXJ0dWFsIH5TY3JvbGxBbmltYXRvcigpOwpAQCAtOTEsMTEgKzg5LDYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopIHsg
fQogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxi
YXIqKSB7IH0KIAotICAgIGZsb2F0IHpvb21TY2FsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVu
dFpvb21TY2FsZTsgfQotICAgIEZsb2F0UG9pbnQgem9vbVRyYW5zbGF0aW9uKCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlc2V0Wm9vbSgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRab29tUGFy
YW1ldGVyc0ZvclRlc3QoZmxvYXQsIGZsb2F0LCBmbG9hdCk7Ci0KICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkU2Nyb2xsYmFyUGFydGljaXBhdGVJbkhpdFRlc3RpbmcoU2Nyb2xsYmFyKikgeyByZXR1
cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNvbnRlbnRBcmVhU2Nyb2xsZWQo
KSB7IH0KQEAgLTEwNCwxNSArOTcsMTAgQEAgcHJvdGVjdGVkOgogICAgIFNjcm9sbEFuaW1hdG9y
KFNjcm9sbGFibGVBcmVhKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UG9zaXRpb25DaGFu
Z2VkKCk7Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVpvb21DaGFuZ2VkKFpvb21BbmltYXRpb25T
dGF0ZSk7CiAKICAgICBTY3JvbGxhYmxlQXJlYSogbV9zY3JvbGxhYmxlQXJlYTsKICAgICBmbG9h
dCBtX2N1cnJlbnRQb3NYOyAvLyBXZSBhdm9pZCB1c2luZyBhIEZsb2F0UG9pbnQgaW4gb3JkZXIg
dG8gcmVkdWNlCiAgICAgZmxvYXQgbV9jdXJyZW50UG9zWTsgLy8gc3ViY2xhc3MgY29kZSBjb21w
bGV4aXR5LgotCi0gICAgZmxvYXQgbV9jdXJyZW50Wm9vbVNjYWxlOwotICAgIGZsb2F0IG1fY3Vy
cmVudFpvb21UcmFuc1g7Ci0gICAgZmxvYXQgbV9jdXJyZW50Wm9vbVRyYW5zWTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRvck5vbmUuY3BwCmluZGV4IDNkMTQ3MmIzODE2N2MyYTI1NjQyMjE0NDljMzEzZDkyYmI1
NTE0NzkuLjA4M2ExOGE3MDFhZmYxNTZhMmE2YmE3OWU4NDA4NzYyMTg2OThkNzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcApAQCAtMzcxLDM2
ICszNzEsMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjp1cGRhdGVW
aXNpYmxlTGVuZ3RoKGludCB2aXNpYmxlTGVuZ3RoKQogICAgIG1fdmlzaWJsZUxlbmd0aCA9IHZp
c2libGVMZW5ndGg7CiB9CiAKLVNjcm9sbEFuaW1hdG9yTm9uZTo6Wm9vbURhdGE6Olpvb21EYXRh
KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZSogcGFyZW50KQotICAgIDogbV9wYXJlbnQocGFy
ZW50KQotICAgICwgbV9pc0FuaW1hdGluZyhmYWxzZSkKLXsKLX0KLQotYm9vbCBTY3JvbGxBbmlt
YXRvck5vbmU6Olpvb21EYXRhOjphbmltYXRlWm9vbShkb3VibGUgY3VycmVudFRpbWUpCi17Ci0g
ICAgbV9sYXN0QW5pbWF0aW9uVGltZSA9IGN1cnJlbnRUaW1lOwotICAgIGRvdWJsZSBkZWx0YVRp
bWUgPSBjdXJyZW50VGltZSAtIG1fc3RhcnRUaW1lOwotCi0gICAgaWYgKGRlbHRhVGltZSA+IG1f
YW5pbWF0aW9uVGltZSkgewotICAgICAgICBtX3BhcmVudC0+bV9jdXJyZW50Wm9vbVNjYWxlID0g
bV9kZXNpcmVkU2NhbGU7Ci0gICAgICAgIG1fcGFyZW50LT5tX2N1cnJlbnRab29tVHJhbnNYID0g
bV9kZXNpcmVkVHJhbnNYOwotICAgICAgICBtX3BhcmVudC0+bV9jdXJyZW50Wm9vbVRyYW5zWSA9
IG1fZGVzaXJlZFRyYW5zWTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGRv
dWJsZSBlbGFwc2VkVGltZUZyYWN0aW9uID0gZGVsdGFUaW1lIC8gbV9hbmltYXRpb25UaW1lOwot
ICAgIG1fcGFyZW50LT5tX2N1cnJlbnRab29tU2NhbGUgPSBlbGFwc2VkVGltZUZyYWN0aW9uICog
KG1fZGVzaXJlZFNjYWxlIC0gbV9zdGFydFNjYWxlKSArIG1fc3RhcnRTY2FsZTsKLSAgICBtX3Bh
cmVudC0+bV9jdXJyZW50Wm9vbVRyYW5zWCA9IGVsYXBzZWRUaW1lRnJhY3Rpb24gKiBtX2Rlc2ly
ZWRUcmFuc1g7Ci0gICAgbV9wYXJlbnQtPm1fY3VycmVudFpvb21UcmFuc1kgPSBlbGFwc2VkVGlt
ZUZyYWN0aW9uICogbV9kZXNpcmVkVHJhbnNZOwotICAgIHJldHVybiB0cnVlOwotfQotCiBTY3Jv
bGxBbmltYXRvck5vbmU6OlNjcm9sbEFuaW1hdG9yTm9uZShTY3JvbGxhYmxlQXJlYSogc2Nyb2xs
YWJsZUFyZWEpCiAgICAgOiBTY3JvbGxBbmltYXRvcihzY3JvbGxhYmxlQXJlYSkKICAgICAsIG1f
aG9yaXpvbnRhbERhdGEodGhpcywgJm1fY3VycmVudFBvc1gsIHNjcm9sbGFibGVBcmVhLT52aXNp
YmxlV2lkdGgoKSkKICAgICAsIG1fdmVydGljYWxEYXRhKHRoaXMsICZtX2N1cnJlbnRQb3NZLCBz
Y3JvbGxhYmxlQXJlYS0+dmlzaWJsZUhlaWdodCgpKQotICAgICwgbV96b29tRGF0YSh0aGlzKQog
ICAgICwgbV9hbmltYXRpb25UaW1lcih0aGlzLCAmU2Nyb2xsQW5pbWF0b3JOb25lOjphbmltYXRp
b25UaW1lckZpcmVkKQogewogfQpAQCAtNDcwLDYzICs0NDQsNiBAQCB2b2lkIFNjcm9sbEFuaW1h
dG9yTm9uZTo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQm
IG9mZnNldAogICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZCgpOwogfQogCi0jaWYgRU5BQkxFKEdF
U1RVUkVfRVZFTlRTKQotdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6Onpvb20oY29uc3QgUGxhdGZv
cm1HZXN0dXJlRXZlbnQmIHBnZSkKLXsKLSAgICBBU1NFUlQocGdlLnR5cGUoKSA9PSBQbGF0Zm9y
bUV2ZW50OjpHZXN0dXJlRG91YmxlVGFwKTsKLSAgICAvLyBGSVhNRTogbW9kaWZ5IHRoaXMgc28g
d2UgY2FuIHN0YXJ0IGV2ZW4gaWYgdGhlIHRpbWVyIGlzIGFjdGl2ZS4KLSAgICBpZiAoIW1fYW5p
bWF0aW9uVGltZXIuaXNBY3RpdmUoKSkgewotICAgICAgICBtX2N1cnJlbnRab29tU2NhbGUgPSAx
OwotICAgICAgICBtX2N1cnJlbnRab29tVHJhbnNYID0gMDsKLSAgICAgICAgbV9jdXJyZW50Wm9v
bVRyYW5zWSA9IDA7Ci0KLSAgICAgICAgZG91YmxlIGN1cnJlbnRUaW1lID0gV1RGOjptb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKLSAgICAgICAgZmxvYXQgc2NhbGUgPSBwZ2UuZGVsdGFY
KCk7Ci0KLSAgICAgICAgbV96b29tRGF0YS5tX3N0YXJ0VGltZSA9IGN1cnJlbnRUaW1lIC0ga1Rp
Y2tUaW1lIC8gMjsKLSAgICAgICAgbV96b29tRGF0YS5tX3N0YXJ0U2NhbGUgPSBtX2N1cnJlbnRa
b29tU2NhbGU7Ci0gICAgICAgIG1fem9vbURhdGEubV9kZXNpcmVkU2NhbGUgPSBzY2FsZTsKLSAg
ICAgICAgLy8gRklYTUU6IERvY3VtZW50IHRoZW4gc2ltcGxpZnkgdGhlIGZvbGxvd2luZyBlcXVh
dGlvbnMuCi0gICAgICAgIG1fem9vbURhdGEubV9kZXNpcmVkVHJhbnNYID0gKDEgLSBzY2FsZSkg
KiBwZ2UuZ2xvYmFsUG9zaXRpb24oKS54KCk7Ci0gICAgICAgIG1fem9vbURhdGEubV9kZXNpcmVk
VHJhbnNZID0gKDEgLSBzY2FsZSkgKiBwZ2UuZ2xvYmFsUG9zaXRpb24oKS55KCk7Ci0jaWYgRU5B
QkxFKERPVUJMRV9UQVBfQ0VOVEVSUykKLSAgICAgICAgaWYgKHBnZS50eXBlKCkgPT0gUGxhdGZv
cm1FdmVudDo6R2VzdHVyZURvdWJsZVRhcCkgewotICAgICAgICAgICAgLy8gWm9vbSB0byBjZW50
cmUgb2YgZGlzcGxheS4gUGluY2gtdG8tem9vbSBtYXkgbm90IHdhbnQgdGhpcyBiZWhhdmlvdXIu
Ci0gICAgICAgICAgICBtX3pvb21EYXRhLm1fZGVzaXJlZFRyYW5zWCArPSBtX3Njcm9sbGFibGVB
cmVhLT52aXNpYmxlV2lkdGgoKSAvIDIgLSBwZ2UuZ2xvYmFsUG9zaXRpb24oKS54KCk7Ci0gICAg
ICAgICAgICBtX3pvb21EYXRhLm1fZGVzaXJlZFRyYW5zWSArPSBtX3Njcm9sbGFibGVBcmVhLT52
aXNpYmxlSGVpZ2h0KCkgLyAyIC0gcGdlLmdsb2JhbFBvc2l0aW9uKCkueSgpOwotICAgICAgICB9
Ci0jZW5kaWYKLSAgICAgICAgbV96b29tRGF0YS5tX2xhc3RBbmltYXRpb25UaW1lID0gY3VycmVu
dFRpbWU7Ci0gICAgICAgIG1fem9vbURhdGEubV9hbmltYXRpb25UaW1lID0ga1pvb21UaWNrcyAq
IGtUaWNrVGltZTsKLQotICAgICAgICBib29sIGlzQ29udGludWluZyA9IG1fem9vbURhdGEuYW5p
bWF0ZVpvb20oY3VycmVudFRpbWUpOwotCi0gICAgICAgIGRvdWJsZSBkZWx0YVRvTmV4dEZyYW1l
ID0gY2VpbCgoY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZSkgKiBrRnJhbWVSYXRlKSAvIGtGcmFt
ZVJhdGUgLSAoY3VycmVudFRpbWUgLSBtX3N0YXJ0VGltZSk7Ci0gICAgICAgIGRvdWJsZSBuZXh0
VGltZXJJbnRlcnZhbCA9IG1heChrTWluaW11bVRpbWVySW50ZXJ2YWwsIGRlbHRhVG9OZXh0RnJh
bWUpOwotICAgICAgICBpZiAoaXNDb250aW51aW5nKSB7Ci0gICAgICAgICAgICBtX2FuaW1hdGlv
blRpbWVyLnN0YXJ0T25lU2hvdChuZXh0VGltZXJJbnRlcnZhbCk7Ci0gICAgICAgICAgICBtX3pv
b21EYXRhLm1faXNBbmltYXRpbmcgPSB0cnVlOwotICAgICAgICAgICAgbm90aWZ5Wm9vbUNoYW5n
ZWQoWm9vbUFuaW1hdGlvbkNvbnRpbnVpbmcpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IG5vdGlmeVpvb21DaGFuZ2VkKFpvb21BbmltYXRpb25GaW5pc2hpbmcpOwotICAgIH0KLX0KLQot
dm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBQbGF0Zm9y
bUdlc3R1cmVFdmVudCYgcGdlKQotewotICAgIFRSQUNFX0VWRU5UKCJTY3JvbGxBbmltYXRvck5v
bmU6OmhhbmRsZUdlc3R1cmVFdmVudCIsIHRoaXMsIDApOwotICAgIHN3aXRjaCAocGdlLnR5cGUo
KSkgewotICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZURvdWJsZVRhcDoKLSAgICAgICAg
em9vbShwZ2UpOwotICAgICAgICBicmVhazsKLQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIC8vIFRP
RE86IGFkZCBhbnkgb3RoZXIgZXZlbnQgdHlwZXMgd2Ugc2hvdWxkIGhhbmRsZQotICAgICAgICB7
IH0KLSAgICB9Ci19Ci0jZW5kaWYKLQogdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OndpbGxFbmRM
aXZlUmVzaXplKCkKIHsKICAgICB1cGRhdGVWaXNpYmxlTGVuZ3RocygpOwpAQCAtNTYzLDE5ICs0
ODAsNiBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZChUaW1l
cjxTY3JvbGxBbmltYXRvck5vbmU+KiB0aW1lcikKICAgICBpZiAobV92ZXJ0aWNhbERhdGEubV9z
dGFydFRpbWUgJiYgbV92ZXJ0aWNhbERhdGEuYW5pbWF0ZVNjcm9sbChjdXJyZW50VGltZSArIGRl
bHRhVG9OZXh0RnJhbWUpKQogICAgICAgICBjb250aW51ZUFuaW1hdGlvbiA9IHRydWU7CiAKLSAg
ICBpZiAobV96b29tRGF0YS5tX2lzQW5pbWF0aW5nKSB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0gICAgICAgIFRSQUNFX0VWRU5UKCJTY3JvbGxBbmltYXRvck5vbmU6Om5vdGlmeVpvb21DaGFu
Z2VkIiwgdGhpcywgMCk7Ci0jZW5kaWYKLSAgICAgICAgaWYgKG1fem9vbURhdGEubV9zdGFydFRp
bWUgJiYgbV96b29tRGF0YS5hbmltYXRlWm9vbShjdXJyZW50VGltZSArIGRlbHRhVG9OZXh0RnJh
bWUpKSB7Ci0gICAgICAgICAgICBjb250aW51ZUFuaW1hdGlvbiA9IHRydWU7Ci0gICAgICAgICAg
ICBub3RpZnlab29tQ2hhbmdlZChab29tQW5pbWF0aW9uQ29udGludWluZyk7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBub3RpZnlab29tQ2hhbmdlZChab29tQW5pbWF0aW9uRmluaXNo
aW5nKTsKLSAgICAgICAgICAgIG1fem9vbURhdGEubV9pc0FuaW1hdGluZyA9IGZhbHNlOwotICAg
ICAgICB9Ci0gICAgfQotCiAgICAgaWYgKGNvbnRpbnVlQW5pbWF0aW9uKSB7CiAgICAgICAgIGRv
dWJsZSBuZXh0VGltZXJJbnRlcnZhbCA9IG1heChrTWluaW11bVRpbWVySW50ZXJ2YWwsIGRlbHRh
VG9OZXh0RnJhbWUpOwogICAgICAgICB0aW1lci0+c3RhcnRPbmVTaG90KG5leHRUaW1lckludGVy
dmFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
Tm9uZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmgKaW5k
ZXggZjk0ZDUyMzliNzE5YjYyMDI0YzE4YjQ3MWI1MTU3YmQ0YzUzMWNmMi4uNGQ2OWE3YzRhNjQ2
MzcyNWJlMTBhNmE2NjVjZWI3OWRhMzIxNWI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0b3JOb25lLmgKQEAgLTUwLDExICs1MCw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0
eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllcik7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9s
bFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAKLSNpZiBFTkFC
TEUoR0VTVFVSRV9FVkVOVFMpCi0gICAgdmlydHVhbCB2b2lkIHpvb20oY29uc3QgUGxhdGZvcm1H
ZXN0dXJlRXZlbnQmKTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0
IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7Ci0jZW5kaWYKLQogICAgIHZpcnR1YWwgdm9pZCB3aWxs
RW5kTGl2ZVJlc2l6ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRWZXJ0aWNhbFNjcm9sbGJh
cihTY3JvbGxiYXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJh
cihTY3JvbGxiYXIqKTsKQEAgLTEzMSwzNSArMTI2LDEyIEBAIHByb3RlY3RlZDoKICAgICAgICAg
aW50IG1fdmlzaWJsZUxlbmd0aDsKICAgICB9OwogCi0gICAgLy8gV2hpbGUgem9vbWluZywgc2Nh
bGUsIHBvc1ggYW5kIHBvc1kgbmVlZCB0byBzdGF5IHRpZ2h0bHkgY291cGxlZCwgc28gdXNlIGEg
c2VwYXJhdGUKLSAgICAvLyBkYXRhIHN0cnVjdHVyZS4KLSAgICBzdHJ1Y3QgWm9vbURhdGEgewot
ICAgICAgICBab29tRGF0YShTY3JvbGxBbmltYXRvck5vbmUqIHBhcmVudCk7Ci0gICAgICAgIGJv
b2wgYW5pbWF0ZVpvb20oZG91YmxlIGN1cnJlbnRUaW1lKTsKLQotICAgICAgICBTY3JvbGxBbmlt
YXRvck5vbmUqIG1fcGFyZW50OwotICAgICAgICBib29sIG1faXNBbmltYXRpbmc7Ci0KLSAgICAg
ICAgZG91YmxlIG1fc3RhcnRUaW1lOwotCi0gICAgICAgIGRvdWJsZSBtX2FuaW1hdGlvblRpbWU7
Ci0gICAgICAgIGRvdWJsZSBtX2xhc3RBbmltYXRpb25UaW1lOwotCi0gICAgICAgIGRvdWJsZSBt
X3N0YXJ0U2NhbGU7Ci0gICAgICAgIGRvdWJsZSBtX2Rlc2lyZWRTY2FsZTsKLSAgICAgICAgZG91
YmxlIG1fZGVzaXJlZFRyYW5zWDsKLSAgICAgICAgZG91YmxlIG1fZGVzaXJlZFRyYW5zWTsKLSAg
ICB9OwotCi0gICAgZnJpZW5kIHN0cnVjdCBab29tRGF0YTsKLQogICAgIHZvaWQgYW5pbWF0aW9u
VGltZXJGaXJlZChUaW1lcjxTY3JvbGxBbmltYXRvck5vbmU+Kik7CiAgICAgdm9pZCBzdG9wQW5p
bWF0aW9uVGltZXJJZk5lZWRlZCgpOwogICAgIHZvaWQgdXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsK
IAogICAgIFBlckF4aXNEYXRhIG1faG9yaXpvbnRhbERhdGE7CiAgICAgUGVyQXhpc0RhdGEgbV92
ZXJ0aWNhbERhdGE7Ci0gICAgWm9vbURhdGEgbV96b29tRGF0YTsKIAogICAgIGRvdWJsZSBtX3N0
YXJ0VGltZTsKICAgICBUaW1lcjxTY3JvbGxBbmltYXRvck5vbmU+IG1fYW5pbWF0aW9uVGltZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXggZGY1Zjg4
MDk0MTc5NjM4Mjg2NWJhMzhhMGIxYzRkYjE0N2M3YzYwNy4uZTYxYmIwYWViZGQ3OWJkYWUxYzNk
ZmM4YzRhZjA0NGY0N2Q3YmZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmNwcApAQCAtMTUzLDExICsxNTMsNiBAQCB2b2lkIFNjcm9sbGFibGVBcmVhOjpub3Rp
ZnlTY3JvbGxQb3NpdGlvbkNoYW5nZWQoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uKQogICAgIHNj
cm9sbEFuaW1hdG9yKCktPm5vdGlmeUNvbnRlbnRBcmVhU2Nyb2xsZWQoKTsKIH0KIAotdm9pZCBT
Y3JvbGxhYmxlQXJlYTo6em9vbUFuaW1hdG9yVHJhbnNmb3JtQ2hhbmdlZChmbG9hdCwgZmxvYXQs
IGZsb2F0LCBab29tQW5pbWF0aW9uU3RhdGUpCi17Ci0gICAgLy8gUmVxdWlyZXMgRnJhbWVWaWV3
IHRvIG92ZXJyaWRlIHRoaXMuCi19Ci0KIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OmhhbmRsZVdoZWVs
RXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQogewogICAgIHJldHVy
biBzY3JvbGxBbmltYXRvcigpLT5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggOTRkYTVkYTFiN2YzMGFmNmM5
MWU0OTZiMDlhNjgxNmU0Mjk0OTAxMC4uMGEyYTE2NDg4Y2Y3MzJkOTNkYzcxYjg4YWJiNDFhZTNl
ZmU3YWViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC00
Miw4ICs0Miw2IEBAIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiAKIGNsYXNzIFNjcm9sbGFibGVBcmVh
IHsKIHB1YmxpYzoKLSAgICBlbnVtIFpvb21BbmltYXRpb25TdGF0ZSB7IFpvb21BbmltYXRpb25D
b250aW51aW5nLCBab29tQW5pbWF0aW9uRmluaXNoaW5nIH07Ci0KICAgICBib29sIHNjcm9sbChT
Y3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSk7
CiAgICAgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2lu
dCYpOwogICAgIHZvaWQgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKFNjcm9sbGJhck9y
aWVudGF0aW9uLCBmbG9hdCBvZmZzZXQpOwpAQCAtNTcsOCArNTUsNiBAQCBwdWJsaWM6CiAgICAg
Ly8gZXhwZWN0IGl0IHRvIGhhcHBlbiBzb21ldGltZSBpbiB0aGUgZnV0dXJlLgogICAgIHZpcnR1
YWwgYm9vbCByZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoY29uc3QgSW50UG9pbnQmKSB7IHJl
dHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCB2b2lkIHpvb21BbmltYXRvclRyYW5zZm9ybUNo
YW5nZWQoZmxvYXQsIGZsb2F0LCBmbG9hdCwgWm9vbUFuaW1hdGlvblN0YXRlKTsKLQogICAgIGJv
b2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKICNpZiBFTkFC
TEUoR0VTVFVSRV9FVkVOVFMpCiAgICAgdm9pZCBoYW5kbGVHZXN0dXJlRXZlbnQoY29uc3QgUGxh
dGZvcm1HZXN0dXJlRXZlbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwCmluZGV4IGMyYjA0NWRjYTE0ZThlZWJhZjZmMGYwNDM3ZGQxZGI4NzFiMzFmZTMu
LjI4ODRlNTY2MTE4Nzg5YzBkZTA3NTAxZTFhMTE0ZWRlNDU4YTE1NzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMzYsMTQgKzM2LDYgQEAKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAotI2lmIEVOQUJMRShHRVNU
VVJFX0VWRU5UUykKLSNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVFdmVudC5oIgotI2VuZGlmCi0K
LSNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5o
IgotI2VuZGlmCi0KICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAjaW5jbHVkZSAiQ29sb3JDaG9v
c2VyLmgiCiAjZW5kaWYKQEAgLTE3Miw0MyArMTY0LDYgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdz
OjpzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29k
ZSYKICAgICBzZXR0aW5ncygpLT5zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGVuYWJsZWQp
OwogfQogCi12b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGJv
b2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgSW50ZXJuYWxTZXR0aW5nc0d1
YXJkRm9yU2V0dGluZ3MoKTsKLSNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSAgICBzZXR0
aW5ncygpLT5zZXRFbmFibGVTY3JvbGxBbmltYXRvcihlbmFibGVkKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKGVuYWJsZWQpOwotI2VuZGlmCi19Ci0KLXZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGZsb2F0IHNjYWxlLCBmbG9hdCB0eCwgZmxvYXQgdHks
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvckZyYW1l
KCk7Ci0KLSNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCi0gICAgUGxhdGZvcm1HZXN0dXJlRXZl
bnQgcGdlKFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVEb3VibGVUYXAsIEludFBvaW50KHR4LCB0eSks
IEludFBvaW50KHR4LCB0eSksIDAsIHNjYWxlLCAwLmYsIDAsIDAsIDAsIDApOwotICAgIGZyYW1l
KCktPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVHZXN0dXJlRXZlbnQocGdlKTsKLSNlbHNlCi0gICAg
VU5VU0VEX1BBUkFNKHNjYWxlKTsKLSAgICBVTlVTRURfUEFSQU0odHgpOwotICAgIFVOVVNFRF9Q
QVJBTSh0eSk7Ci0jZW5kaWYKLX0KLQotdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRab29tUGFy
YW1ldGVycyhmbG9hdCBzY2FsZSwgZmxvYXQgeCwgZmxvYXQgeSwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yRnJhbWVWaWV3KCk7Ci0KLSNpZiBFTkFC
TEUoU01PT1RIX1NDUk9MTElORykKLSAgICBmcmFtZSgpLT52aWV3KCktPnNjcm9sbEFuaW1hdG9y
KCktPnNldFpvb21QYXJhbWV0ZXJzRm9yVGVzdChzY2FsZSwgeCwgeSk7Ci0jZWxzZQotICAgIFVO
VVNFRF9QQVJBTShzY2FsZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHgpOwotICAgIFVOVVNFRF9QQVJB
TSh5KTsKLSNlbmRpZgotfQotCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldE1vY2tTY3JvbGxi
YXJzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEludGVy
bmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CkBAIC0yNTMsMTIgKzIwOCw2IEBAIGJvb2wg
SW50ZXJuYWxTZXR0aW5nczo6dW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRXhjZXB0aW9uQ29k
ZSYgZWMpCiAgICAgcmV0dXJuIHNldHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQo
KTsKIH0KIAotZmxvYXQgSW50ZXJuYWxTZXR0aW5nczo6cGFnZVNjYWxlRmFjdG9yKEV4Y2VwdGlv
bkNvZGUmIGVjKQotewotICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclBhZ2VSZXR1cm4oMCk7
Ci0gICAgcmV0dXJuIHBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7Ci19Ci0KIHZvaWQgSW50ZXJu
YWxTZXR0aW5nczo6c2V0UGFnZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yLCBpbnQgeCwg
aW50IHksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZv
clBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXgg
NjQ4MDA5MjZjNGQwZjFjYzRhYTMxMmRlMTAwNWJkYTk1Y2M2MDhlMy4uZWY2NmM5OTU5NTIzYzQ4
ZWUxYjU4MTg0ODkxY2UwOWVhYWZjOWRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmgKQEAgLTUyLDE2ICs1MiwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRF
bmFibGVDb21wb3NpdGluZ0ZvclNjcm9sbGFibGVGcmFtZXMoYm9vbCBlbmFibGVkLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5h
YmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldEVuYWJsZVNj
cm9sbEFuaW1hdG9yKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0
Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGZsb2F0IHNjYWxlLCBmbG9hdCB0eCwgZmxvYXQgdHksIEV4
Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldFpvb21QYXJhbWV0ZXJzKGZsb2F0IHNjYWxlLCBm
bG9hdCB4LCBmbG9hdCB5LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRNb2NrU2Nyb2xs
YmFyc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRQ
YXNzd29yZEVjaG9FbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZv
aWQgc2V0UGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHMoZG91YmxlIGR1cmF0aW9uSW5TZWNv
bmRzLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVs
YXRpdmVUb0ZyYW1lKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFVuaWZpZWRU
ZXh0Q2hlY2tpbmdFbmFibGVkKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBib29sIHVuaWZp
ZWRUZXh0Q2hlY2tpbmdFbmFibGVkKEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBmbG9hdCBwYWdlU2Nh
bGVGYWN0b3IoRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yKGZs
b2F0IHNjYWxlRmFjdG9yLCBpbnQgeCwgaW50IHksIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IHNldFBlclRpbGVEcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICB2b2lkIHNldFRvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGwKaW5kZXggMDM2MDA4Mzg0ZWVjMTc2Zjc1ODNkYmQwOWU2MTAwYmUyYjY4Nzg3Ny4uZGQ5NTE5
ZWMyNzA4ZGNlNDk5OTI3NGJlNDk4NGJjZWE2Njg2ZmMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC0zMywxNiArMzMsMTIgQEAgbW9kdWxlIHdp
bmRvdyB7CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JTY3JvbGxhYmxlRnJh
bWVzKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZv
aWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNl
cyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJs
ZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9p
ZCBzZXRFbmFibGVTY3JvbGxBbmltYXRvcihpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShpbiBmbG9h
dCBzY2FsZSwgaW4gZmxvYXQgdHgsIGluIGZsb2F0IHR5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgdm9pZCBzZXRab29tUGFyYW1ldGVycyhpbiBmbG9hdCBzY2FsZSwgaW4gZmxvYXQg
eCwgaW4gZmxvYXQgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0TW9j
a1Njcm9sbGJhcnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgICAgIHZvaWQgc2V0UGFzc3dvcmRFY2hvRW5hYmxlZChpbiBib29sZWFuIGVuYWJs
ZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldFBhc3N3b3JkRWNob0R1
cmF0aW9uSW5TZWNvbmRzKGluIGRvdWJsZSBkdXJhdGlvbkluU2Vjb25kcykgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9G
cmFtZShpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2
b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFp
c2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBib29sZWFuIHVuaWZpZWRUZXh0Q2hlY2tpbmdF
bmFibGVkKCkgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgICAgICBmbG9hdCBwYWdlU2NhbGVG
YWN0b3IoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRQYWdlU2NhbGVG
YWN0b3IoaW4gZmxvYXQgc2NhbGVGYWN0b3IsIGluIGxvbmcgeCwgaW4gbG9uZyB5KSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRUb3VjaEV2ZW50RW11bGF0aW9uRW5hYmxl
ZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMTI2NDdkZmUzMTc5MzY4MzlmOTEzMzRj
ODg2NWQ3NGM3NzZjZWVlOC4uODAxMzNlYWI1NTAwODM2OTIwOTVmY2M0MDNhNzhmOTQ1ZWQwNDEx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTMsMTQgKzUzLDYgQEAK
ICNpbmNsdWRlICJTcGVsbENoZWNrZXIuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKIAot
I2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKLSNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVFdmVu
dC5oIgotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSNpbmNsdWRlICJT
Y3JvbGxBbmltYXRvci5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAjaW5j
bHVkZSAiQ29sb3JDaG9vc2VyLmgiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAppbmRleCA3M2M4NmIzODQ0YjE1OTcwZGQxMjVjMGJjZGVlMjViYjE3
MDVjNTc4Li41NWI5YTFkYWNmNGE5OWQyZTc3OGU3OTcyZGQ0MGMzYzA5ZjJhODk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC05OSw3ICs5OSw2IEBA
CiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIK
ICNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgotI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWN1cml0eVBvbGljeS5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3LmgKaW5kZXggYzE4NWMxODcxMmU5NzM3
MDE1OThmZTk4ZjU2YWQ2NDE5NGNjZDU4MC4uZDZjMzY0ZjAwZmQ5MWU4NTY0OWU2OGQ3OTgyODlm
ZWQ3Y2ZjN2RiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9CdWlsdEluUERGVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvQnVpbHRJblBERlZpZXcuaApAQCAtMTQwLDcgKzE0MCw2IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIGlzT25BY3RpdmVQYWdlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29s
IHNob3VsZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0g
Ly8gSWYgd2UgcmV0dXJuIHRydWUsIFNjcm9sbEFuaW1hdG9yTWFjIHdpbGwga2VlcCBjeWNsaW5n
IGEgdGltZXIgZm9yZXZlciwgd2FpdGluZyBmb3IgYSBnb29kIHRpbWUgdG8gYW5pbWF0ZS4KICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyU3R5bGVDaGFuZ2VkKGludCBuZXdTdHlsZSwgYm9vbCBm
b3JjZVVwZGF0ZSk7Ci0gICAgdmlydHVhbCB2b2lkIHpvb21BbmltYXRvclRyYW5zZm9ybUNoYW5n
ZWQoZmxvYXQsIGZsb2F0LCBmbG9hdCwgWm9vbUFuaW1hdGlvblN0YXRlKSB7IH0KIAogICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhlIG90aGVyIGNvbnZlcnNpb24gZnVuY3Rpb25zOyB0aGlzIG9u
ZSBpcyBlbm91Z2ggdG8gZ2V0IHNjcm9sbGJhciBoaXQgdGVzdGluZyB3b3JraW5nLgogICAgIHZp
cnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xs
YmFyKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciosIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBw
YXJlbnRQb2ludCkgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>