<?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>69064</bug_id>
          
          <creation_ts>2011-09-28 23:42:15 -0700</creation_ts>
          <short_desc>[GTK] Dragging a selection does not produce a drag image</short_desc>
          <delta_ts>2011-09-29 10:34:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</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="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>kling</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>475258</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-28 23:42:15 -0700</bug_when>
    <thetext>When dragging a selection there is no drag image and instead the default icon is used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475264</commentid>
    <comment_count>1</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-28 23:53:11 -0700</bug_when>
    <thetext>CCing a few more people since my patch touches their work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475269</commentid>
    <comment_count>2</comment_count>
      <attachid>109129</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-28 23:59:42 -0700</bug_when>
    <thetext>Created attachment 109129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475272</commentid>
    <comment_count>3</comment_count>
      <attachid>109129</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 00:04:27 -0700</bug_when>
    <thetext>Comment on attachment 109129
Patch

Attachment 109129 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9880826</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475277</commentid>
    <comment_count>4</comment_count>
      <attachid>109129</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-09-29 00:13:00 -0700</bug_when>
    <thetext>Comment on attachment 109129
Patch

Attachment 109129 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/9888426</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475281</commentid>
    <comment_count>5</comment_count>
      <attachid>109129</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-29 00:19:24 -0700</bug_when>
    <thetext>Comment on attachment 109129
Patch

Clearing review flag. I&apos;ll fix the bustage tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475322</commentid>
    <comment_count>6</comment_count>
      <attachid>109129</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-09-29 02:08:32 -0700</bug_when>
    <thetext>Comment on attachment 109129
Patch

Attachment 109129 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9900020</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475404</commentid>
    <comment_count>7</comment_count>
      <attachid>109157</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-29 07:06:46 -0700</bug_when>
    <thetext>Created attachment 109157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475443</commentid>
    <comment_count>8</comment_count>
      <attachid>109157</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-09-29 09:00:57 -0700</bug_when>
    <thetext>Comment on attachment 109157
Patch

Great idea! r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475511</commentid>
    <comment_count>9</comment_count>
      <attachid>109157</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 10:34:47 -0700</bug_when>
    <thetext>Comment on attachment 109157
Patch

Clearing flags on attachment: 109157

Committed r96339: &lt;http://trac.webkit.org/changeset/96339&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475512</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-29 10:34:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109129</attachid>
            <date>2011-09-28 23:59:42 -0700</date>
            <delta_ts>2011-09-29 07:06:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69064-20110928235941.patch</filename>
            <type>text/plain</type>
            <size>22852</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYyOTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXgg
ZGIxNGJkZGIxMDA1MDRiNTllM2U2ZGU1Y2Q0YWMzMTc5Y2Y1Zjg4Zi4uMGYwMTc5NWY1ZjI1M2Jj
ODY0Yjk0YzZlMWU3NzBjNTI0NTIxMWE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKQEAg
LTIwLDcgKzIwLDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgIGJpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXJFZmwuY3BwCiAgIHBhZ2UvZWZsL0RyYWdDb250cm9sbGVyRWZsLmNw
cAogICBwYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCi0gIHBhZ2UvZWZsL0ZyYW1lRWZsLmNw
cAogICBwbGF0Zm9ybS9DdXJzb3IuY3BwCiAgIHBsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuY3Bw
CiAgIHBsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYTRhNDdj
M2IyNjFhNGQ1YzI4NGUyNzU5OWJhNDdiMmRhNDY4ZjVkLi5mMDNkODBmZjQ2MTZiMmE0MmUwZDFi
NDMyYTE0NGNiMGU5OGUyNTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzkgQEAKIDIwMTEtMDkt
MjggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCisgICAgICAgIFtH
VEtdIERyYWdnaW5nIGEgc2VsZWN0aW9uIGRvZXMgbm90IHByb2R1Y2UgYSBkcmFnIGltYWdlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIENocm9t
aXVtJ3MgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbiBvZiBGcmFtZTo6bm9kZUltYWdlIGFuZAorICAg
ICAgICBGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZXRpb24gdG8gRnJhbWUuY3BwIGFuZCBzaW1wbHkg
ZXhjbHVkZWQgdmlhCisgICAgICAgICNpZmRlZnMgcGxhdGZvcm1zIHRoYXQgZG8gbm90IGhhdmUg
dGhlaXIgb3duIGltcGxlbWVudGF0aW9uLiBSZW1vdmVkCisgICAgICAgIGFsbCBlbXB0eSBpbXBs
ZW1lbnRhdGlvbnMgb2YgdGhlc2UgZnVuY3Rpb25zIGFuZCBRdCdzIHdoaWNoIHdhcworICAgICAg
ICBmdW5jdGlvbmFsbHkgaWRlbnRpY2FsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRHJhZy1h
bmQtZHJvcCBkcmFnIGltYWdlIGZ1bmN0aW9uYWxpdHkgY2hhbmdlcworICAgICAgICBhcmUgaW5j
cmVkaWJseSBkaWZmaWN1bHQgdG8gdGVzdCBpbiBhIG5vbi1tYW51YWwgd2F5LgorCisgICAgICAg
ICogQ01ha2VMaXN0c0VmbC50eHQ6IERlbGlzdCBGcmFtZUVmbC5jcHAuCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogRGVsaXN0IEZyYW1lR3RrLmNwcC4KKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6IERlbGlzdCByZW1vdmVkIEZyYW1lKi5jcHAuCisgICAgICAgICogV2ViQ29yZS5wcm86
IERlbGlzdCBGcmFtZVF0LmNwcC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDogTW92ZWQgRnJh
bWVDaHJvbWl1bSBpbXBsZW1lbnRhdGlvbiBoZXJlLgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVk
RnJhbWVQYWludGluZ1N0YXRlOjpTY29wZWRGcmFtZVBhaW50aW5nU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2NvcGVkRnJhbWVQYWludGluZ1N0YXRlOjp+U2NvcGVkRnJhbWVQYWludGluZ1N0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpub2RlSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWU6OmRyYWdJbWFnZUZvclNlbGVjdGlvbik6CisgICAgICAgICogcGFnZS9jaHJv
bWl1bS9GcmFtZUNocm9taXVtLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL2VmbC9GcmFt
ZUVmbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGFnZS9ndGsvRnJhbWVHdGsuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIHBhZ2UvcXQvRnJhbWVRdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
cGFnZS93eC9GcmFtZVd4LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvQ2xp
cGJvYXJkR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZEd0azo6Y3JlYXRlRHJh
Z0ltYWdlKTogQ2FsbCBub2RlSW1hZ2UgdG8gZ2V0CisgICAgICAgIHRoZSBkcmFnIGltYWdlIGZv
ciBhIG5vZGUuCisKKzIwMTEtMDktMjggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgorCiAgICAgICAgIFtHVEtdIE1vdmUgZHJhZy1hbmQtZHJvcCBjb2RlIHdoaWNoIGNh
biBiZSBzaGFyZWQgd2l0aCBXZWJLaXQyIHRvIFdlYkNvcmUKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODkwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCmluZGV4IDc4MjI2YTFjM2Y2ZDE5MGMyMjIwOWZhOWU5ODhlZGJhN2FlMzljNzAuLjFl
NWY3NTQwOTYyY2Q1OTc1Njc1ZmE4MTM0ZmFmODRjOGMzM2UyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtMzk1NCw3ICszOTU0LDYgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9GcmFtZVNlbGVjdGlvbkd0ay5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcCBcCi0JU291cmNlL1dlYkNvcmUv
cGFnZS9ndGsvRnJhbWVHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9X
aWRnZXRCYWNraW5nU3RvcmUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCAwNDIwNGVhNmFiYzZkNDZiM2YwZDUxMjY3Y2RkZDY5YTAxYWE1
NzE3Li5jYmNmOWNiOGNhMmRlZTYzMWQ1MzljZWI3MWVjYjA2ZDJlNTkxMmU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0yOTY3LDEzICsyOTY3LDEwIEBACiAgICAgICAgICAgICAncGFnZS9jaHJvbWl1
bS9DaHJvbWVDbGllbnRDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdwYWdlL2Nocm9taXVtL0Ry
YWdDb250cm9sbGVyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwYWdlL2Nocm9taXVtL0V2
ZW50SGFuZGxlckNocm9taXVtLmNwcCcsCi0gICAgICAgICAgICAncGFnZS9jaHJvbWl1bS9GcmFt
ZUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwu
Y3BwJywKICAgICAgICAgICAgICdwYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwJywKLSAgICAg
ICAgICAgICdwYWdlL2VmbC9GcmFtZUVmbC5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvZ3RrL0Ry
YWdDb250cm9sbGVyR3RrLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9ndGsvRXZlbnRIYW5kbGVy
R3RrLmNwcCcsCi0gICAgICAgICAgICAncGFnZS9ndGsvRnJhbWVHdGsuY3BwJywKICAgICAgICAg
ICAgICdwYWdlL21hYy9DaHJvbWVNYWMubW0nLAogICAgICAgICAgICAgJ3BhZ2UvbWFjL0RyYWdD
b250cm9sbGVyTWFjLm1tJywKICAgICAgICAgICAgICdwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW0nLApAQCAtMjk4MSw3ICsyOTc4LDYgQEAKICAgICAgICAgICAgICdwYWdlL21hYy9QYWdlTWFj
LmNwcCcsCiAgICAgICAgICAgICAncGFnZS9xdC9EcmFnQ29udHJvbGxlclF0LmNwcCcsCiAgICAg
ICAgICAgICAncGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHAnLAotICAgICAgICAgICAgJ3BhZ2Uv
cXQvRnJhbWVRdC5jcHAnLAogICAgICAgICAgICAgJ3BhZ2Uvd2luL0RyYWdDb250cm9sbGVyV2lu
LmNwcCcsCiAgICAgICAgICAgICAncGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcCcsCiAgICAg
ICAgICAgICAncGFnZS93aW4vRnJhbWVDR1dpbi5jcHAnLApAQCAtMjk5MSw3ICsyOTg3LDYgQEAK
ICAgICAgICAgICAgICdwYWdlL3dpbmNlL0ZyYW1lV2luQ0UuY3BwJywKICAgICAgICAgICAgICdw
YWdlL3d4L0RyYWdDb250cm9sbGVyV3guY3BwJywKICAgICAgICAgICAgICdwYWdlL3d4L0V2ZW50
SGFuZGxlcld4LmNwcCcsCi0gICAgICAgICAgICAncGFnZS93eC9GcmFtZVd4LmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vQXJlbmEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9BcmVu
YS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KaW5kZXggNzFiODllOTRjYzkwNmEzYmI2NmE5YmMyMjZiYzUxZTA5ZTNmZjk4Yi4uZWMy
MDIzYzM3ZWQyYTZkODIxMjVkNTI2ODRkZWMxZGM5OWMyYjRmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAg
LTI1ODIsNyArMjU4Miw2IEBAIFNPVVJDRVMgKz0gXAogICAgIGFjY2Vzc2liaWxpdHkvcXQvQWNj
ZXNzaWJpbGl0eU9iamVjdFF0LmNwcCBcCiAgICAgcGFnZS9xdC9EcmFnQ29udHJvbGxlclF0LmNw
cCBcCiAgICAgcGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHAgXAotICAgIHBhZ2UvcXQvRnJhbWVR
dC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1RyYW5zZm9ybWF0aW9uTWF0cml4UXQu
Y3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9xdC9Db2xvclF0LmNwcCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDdkY2U0
MzlmMzYxOWRlMTNiY2FhY2U4ZmU4MTAyNDJmMDMxMTEwZGEuLmY1Y2RiNTE3NTE3Y2Y0ZDU1YzJi
ZDhkNDkyMTEwMTM5NzE4YTQxMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC05LDYgKzksNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA1IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQG55cG9wLmNv
bT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEdvb2dsZSBJbmMuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTEwNTgsNCArMTA1OSw4NSBAQCB2b2lkIEZyYW1lOjpub3RpZnlDaHJvbWVD
bGllbnRXaGVlbEV2ZW50SGFuZGxlckNvdW50Q2hhbmdlZCgpIGNvbnN0CiAgICAgbV9wYWdlLT5j
aHJvbWUoKS0+Y2xpZW50KCktPm51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoY291bnQpOwog
fQogCisjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFdY
KQorY2xhc3MgU2NvcGVkRnJhbWVQYWludGluZ1N0YXRlIHsKKyAgICBTY29wZWRGcmFtZVBhaW50
aW5nU3RhdGUoRnJhbWUqIHRoZUZyYW1lLCBSZW5kZXJPYmplY3QqIHRoZVJlbmRlcmVyKQorICAg
ICAgICA6IGZyYW1lKHRoZUZyYW1lKQorICAgICAgICAsIHJlbmRlcmVyKHRoZVJlbmRlcmVyKQor
ICAgICAgICAsIHBhaW50QmVoYXZpb3IoZnJhbWUtPnZpZXcoKS0+cGFpbnRCZWhhdmlvcigpKQor
ICAgICAgICAsIGJhY2tncm91bmRDb2xvcihmcmFtZS0+dmlldygpLT5iYXNlQmFja2dyb3VuZENv
bG9yKCkpCisgICAgeworICAgIH0KKworICAgIH5TY29wZWRGcmFtZVBhaW50aW5nU3RhdGUoKQor
ICAgIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyKQorICAgICAgICAgICAgcmVuZGVyZXItPnVwZGF0
ZURyYWdTdGF0ZShmYWxzZSk7CisgICAgICAgIGZyYW1lLT52aWV3KCktPnNldFBhaW50QmVoYXZp
b3IocGFpbnRCZWhhdmlvcik7CisgICAgICAgIGZyYW1lLT52aWV3KCktPnNldEJhc2VCYWNrZ3Jv
dW5kQ29sb3IoYmFja2dyb3VuZENvbG9yKTsKKyAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0Tm9k
ZVRvRHJhdygwKTsKKyAgICB9CisKKyAgICBGcmFtZSogZnJhbWU7CisgICAgUmVuZGVyT2JqZWN0
KiByZW5kZXJlcjsKKyAgICBQYWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3I7CisgICAgQ29sb3Ig
YmFja2dyb3VuZENvbG9yOworfTsKKworRHJhZ0ltYWdlUmVmIEZyYW1lOjpub2RlSW1hZ2UoTm9k
ZSogbm9kZSkKK3sKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIo
KTsKKyAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNvbnN0IFNj
b3BlZFN0YXRlIHN0YXRlKHRoaXMsIHJlbmRlcmVyKTsKKworICAgIHJlbmRlcmVyLT51cGRhdGVE
cmFnU3RhdGUodHJ1ZSk7CisgICAgbV92aWV3LT5zZXRQYWludEJlaGF2aW9yKHN0YXRlLnBhaW50
QmVoYXZpb3IgfCBQYWludEJlaGF2aW9yRmxhdHRlbkNvbXBvc2l0aW5nTGF5ZXJzKTsKKworICAg
IC8vIFdoZW4gZ2VuZXJhdGluZyB0aGUgZHJhZyBpbWFnZSBmb3IgYW4gZWxlbWVudCwgaWdub3Jl
IHRoZSBkb2N1bWVudCBiYWNrZ3JvdW5kLgorICAgIG1fdmlldy0+c2V0QmFzZUJhY2tncm91bmRD
b2xvcihjb2xvcldpdGhPdmVycmlkZUFscGhhKENvbG9yOjp3aGl0ZSwgMS4wKSk7CisgICAgbV9k
b2MtPnVwZGF0ZUxheW91dCgpOworICAgIG1fdmlldy0+c2V0Tm9kZVRvRHJhdyhub2RlKTsgLy8g
RW5hYmxlIHNwZWNpYWwgc3ViLXRyZWUgZHJhd2luZyBtb2RlLgorCisgICAgSW50UmVjdCB0b3BM
ZXZlbFJlY3Q7CisgICAgSW50UmVjdCBwYWludGluZ1JlY3QgPSByZW5kZXJlci0+cGFpbnRpbmdS
b290UmVjdCh0b3BMZXZlbFJlY3QpOworCisgICAgT3duUHRyPEltYWdlQnVmZmVyPiBidWZmZXIo
SW1hZ2VCdWZmZXI6OmNyZWF0ZShwYWludGluZ1JlY3Quc2l6ZSgpKSk7CisgICAgaWYgKCFidWZm
ZXIpCisgICAgICAgIHJldHVybiAwOworICAgIGJ1ZmZlci0+Y29udGV4dCgpLT50cmFuc2xhdGUo
LXBhaW50aW5nUmVjdC54KCksIC1wYWludGluZ1JlY3QueSgpKTsKKyAgICBidWZmZXItPmNvbnRl
eHQoKS0+Y2xpcChGbG9hdFJlY3QoMCwgMCwgcGFpbnRpbmdSZWN0Lm1heFgoKSwgcGFpbnRpbmdS
ZWN0Lm1heFkoKSkpOworCisgICAgbV92aWV3LT5wYWludENvbnRlbnRzKGJ1ZmZlci0+Y29udGV4
dCgpLCBwYWludGluZ1JlY3QpOworCisgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+
Y29weUltYWdlKCk7CisgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShpbWFnZS5n
ZXQoKSk7Cit9CisKK0RyYWdJbWFnZVJlZiBGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCkK
K3sKKyAgICBpZiAoIXNlbGVjdGlvbigpLT5pc1JhbmdlKCkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgY29uc3QgU2NvcGVkU3RhdGUgc3RhdGUodGhpcywgMCk7CisgICAgbV92aWV3LT5zZXRQ
YWludEJlaGF2aW9yKFBhaW50QmVoYXZpb3JTZWxlY3Rpb25Pbmx5KTsKKyAgICBtX2RvYy0+dXBk
YXRlTGF5b3V0KCk7CisKKyAgICBJbnRSZWN0IHBhaW50aW5nUmVjdCA9IGVuY2xvc2luZ0ludFJl
Y3Qoc2VsZWN0aW9uKCktPmJvdW5kcygpKTsKKworICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVm
ZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUocGFpbnRpbmdSZWN0LnNpemUoKSkpOworICAgIGlmICgh
YnVmZmVyKQorICAgICAgICByZXR1cm4gMDsKKyAgICBidWZmZXItPmNvbnRleHQoKS0+dHJhbnNs
YXRlKC1wYWludGluZ1JlY3QueCgpLCAtcGFpbnRpbmdSZWN0LnkoKSk7CisgICAgYnVmZmVyLT5j
b250ZXh0KCktPmNsaXAoRmxvYXRSZWN0KDAsIDAsIHBhaW50aW5nUmVjdC5tYXhYKCksIHBhaW50
aW5nUmVjdC5tYXhZKCkpKTsKKworICAgIG1fdmlldy0+cGFpbnRDb250ZW50cyhidWZmZXItPmNv
bnRleHQoKSwgcGFpbnRpbmdSZWN0KTsKKworICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBidWZm
ZXItPmNvcHlJbWFnZSgpOworICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoaW1h
Z2UuZ2V0KCkpOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jaHJvbWl1bS9GcmFtZUNocm9taXVtLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY2hyb21pdW0vRnJhbWVDaHJvbWl1bS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDJmNWY3YzZiOWNjODU3MjM0MTE0NmZlMDhiYjBkMWEwNjI0NmQ0
MTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9jaHJvbWl1bS9GcmFtZUNocm9taXVtLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDEyMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOCBHb29n
bGUgSW5jLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIK
LQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVk
ZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKLSNpbmNsdWRl
ICJSZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAiU2V0dGluZ3MuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1uYW1lc3BhY2UgewotCi1zdHJ1Y3QgU2NvcGVkU3RhdGUgewotICAgIFNjb3BlZFN0
YXRlKEZyYW1lKiB0aGVGcmFtZSwgUmVuZGVyT2JqZWN0KiB0aGVSZW5kZXJlcikKLSAgICAgICAg
OiBmcmFtZSh0aGVGcmFtZSkKLSAgICAgICAgLCByZW5kZXJlcih0aGVSZW5kZXJlcikKLSAgICAg
ICAgLCBwYWludEJlaGF2aW9yKGZyYW1lLT52aWV3KCktPnBhaW50QmVoYXZpb3IoKSkKLSAgICAg
ICAgLCBiYWNrZ3JvdW5kQ29sb3IoZnJhbWUtPnZpZXcoKS0+YmFzZUJhY2tncm91bmRDb2xvcigp
KQotICAgIHsKLSAgICB9Ci0KLSAgICB+U2NvcGVkU3RhdGUoKQotICAgIHsKLSAgICAgICAgaWYg
KHJlbmRlcmVyKQotICAgICAgICAgICAgcmVuZGVyZXItPnVwZGF0ZURyYWdTdGF0ZShmYWxzZSk7
Ci0gICAgICAgIGZyYW1lLT52aWV3KCktPnNldFBhaW50QmVoYXZpb3IocGFpbnRCZWhhdmlvcik7
Ci0gICAgICAgIGZyYW1lLT52aWV3KCktPnNldEJhc2VCYWNrZ3JvdW5kQ29sb3IoYmFja2dyb3Vu
ZENvbG9yKTsKLSAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0Tm9kZVRvRHJhdygwKTsKLSAgICB9
Ci0KLSAgICBGcmFtZSogZnJhbWU7Ci0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlcjsKLSAgICBQ
YWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3I7Ci0gICAgQ29sb3IgYmFja2dyb3VuZENvbG9yOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UKLQotRHJhZ0ltYWdlUmVmIEZyYW1lOjpub2RlSW1hZ2UoTm9k
ZSogbm9kZSkKLXsKLSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIo
KTsKLSAgICBpZiAoIXJlbmRlcmVyKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGNvbnN0IFNj
b3BlZFN0YXRlIHN0YXRlKHRoaXMsIHJlbmRlcmVyKTsKLQotICAgIHJlbmRlcmVyLT51cGRhdGVE
cmFnU3RhdGUodHJ1ZSk7Ci0gICAgbV92aWV3LT5zZXRQYWludEJlaGF2aW9yKHN0YXRlLnBhaW50
QmVoYXZpb3IgfCBQYWludEJlaGF2aW9yRmxhdHRlbkNvbXBvc2l0aW5nTGF5ZXJzKTsKLSAgICAv
LyBXaGVuIGdlbmVyYXRpbmcgdGhlIGRyYWcgaW1hZ2UgZm9yIGFuIGVsZW1lbnQsIGlnbm9yZSB0
aGUgZG9jdW1lbnQgYmFja2dyb3VuZC4KLSAgICBtX3ZpZXctPnNldEJhc2VCYWNrZ3JvdW5kQ29s
b3IoY29sb3JXaXRoT3ZlcnJpZGVBbHBoYShDb2xvcjo6d2hpdGUsIDEuMCkpOwotICAgIG1fZG9j
LT51cGRhdGVMYXlvdXQoKTsKLSAgICBtX3ZpZXctPnNldE5vZGVUb0RyYXcobm9kZSk7IC8vIEVu
YWJsZSBzcGVjaWFsIHN1Yi10cmVlIGRyYXdpbmcgbW9kZS4KLQotICAgIEludFJlY3QgdG9wTGV2
ZWxSZWN0OwotICAgIEludFJlY3QgcGFpbnRpbmdSZWN0ID0gcmVuZGVyZXItPnBhaW50aW5nUm9v
dFJlY3QodG9wTGV2ZWxSZWN0KTsKLQotICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyKElt
YWdlQnVmZmVyOjpjcmVhdGUocGFpbnRpbmdSZWN0LnNpemUoKSkpOwotICAgIGlmICghYnVmZmVy
KQotICAgICAgICByZXR1cm4gMDsKLSAgICBidWZmZXItPmNvbnRleHQoKS0+dHJhbnNsYXRlKC1w
YWludGluZ1JlY3QueCgpLCAtcGFpbnRpbmdSZWN0LnkoKSk7Ci0gICAgYnVmZmVyLT5jb250ZXh0
KCktPmNsaXAoRmxvYXRSZWN0KDAsIDAsIHBhaW50aW5nUmVjdC5tYXhYKCksIHBhaW50aW5nUmVj
dC5tYXhZKCkpKTsKLQotICAgIG1fdmlldy0+cGFpbnRDb250ZW50cyhidWZmZXItPmNvbnRleHQo
KSwgcGFpbnRpbmdSZWN0KTsKLQotICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBidWZmZXItPmNv
cHlJbWFnZSgpOwotICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2UuZ2V0
KCkpOwotfQotCi1EcmFnSW1hZ2VSZWYgRnJhbWU6OmRyYWdJbWFnZUZvclNlbGVjdGlvbigpCi17
Ci0gICAgaWYgKCFzZWxlY3Rpb24oKS0+aXNSYW5nZSgpKQotICAgICAgICByZXR1cm4gMDsKLQot
ICAgIGNvbnN0IFNjb3BlZFN0YXRlIHN0YXRlKHRoaXMsIDApOwotICAgIG1fdmlldy0+c2V0UGFp
bnRCZWhhdmlvcihQYWludEJlaGF2aW9yU2VsZWN0aW9uT25seSk7Ci0gICAgbV9kb2MtPnVwZGF0
ZUxheW91dCgpOwotCi0gICAgSW50UmVjdCBwYWludGluZ1JlY3QgPSBlbmNsb3NpbmdJbnRSZWN0
KHNlbGVjdGlvbigpLT5ib3VuZHMoKSk7Ci0KLSAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZl
cihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHBhaW50aW5nUmVjdC5zaXplKCkpKTsKLSAgICBpZiAoIWJ1
ZmZlcikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgYnVmZmVyLT5jb250ZXh0KCktPnRyYW5zbGF0
ZSgtcGFpbnRpbmdSZWN0LngoKSwgLXBhaW50aW5nUmVjdC55KCkpOwotICAgIGJ1ZmZlci0+Y29u
dGV4dCgpLT5jbGlwKEZsb2F0UmVjdCgwLCAwLCBwYWludGluZ1JlY3QubWF4WCgpLCBwYWludGlu
Z1JlY3QubWF4WSgpKSk7Ci0KLSAgICBtX3ZpZXctPnBhaW50Q29udGVudHMoYnVmZmVyLT5jb250
ZXh0KCksIHBhaW50aW5nUmVjdCk7Ci0KLSAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gYnVmZmVy
LT5jb3B5SW1hZ2UoKTsKLSAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbUltYWdlKGltYWdl
LmdldCgpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9lZmwvRnJhbWVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwv
RnJhbWVFZmwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMWJlOWNhYTkyNmE4
MDIxODRmMDc0NTNhMDZiODdiMzJhZDExZmY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0ZyYW1lRWZsLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgg
SU5kVCAtIEluc3RpdHV0byBOb2tpYSBkZSBUZWNub2xvZ2lhCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDktMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwotICogQ29weXJpZ2h0IChDKSAyMDA5
LTIwMTAgU2Ftc3VuZyBFbGVjdHJvbmljcwotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJGcmFtZS5oIgotCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1EcmFnSW1hZ2VSZWYgRnJhbWU6Om5vZGVJbWFnZShOb2RlKiBub2Rl
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLURyYWdJbWFn
ZVJlZiBGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCkKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiAwOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2d0ay9GcmFtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9GcmFtZUd0ay5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0YTBmOGJiODBiOWIzMjIwYTkxMDhk
ZGFjZWUzMTgxNWFmMmVlODEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRnJhbWVHdGsuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJGcmFtZS5oIgotCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1EcmFnSW1hZ2VSZWYgRnJhbWU6Om5vZGVJbWFnZShOb2RlKikKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCi1EcmFnSW1hZ2VSZWYgRnJhbWU6
OmRyYWdJbWFnZUZvclNlbGVjdGlvbigpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gMDsKLX0KLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9xdC9GcmFt
ZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvcXQvRnJhbWVRdC5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDk2YWRiMWFiY2I4NjBlMWM4NmFiZWZiZWZkZjFkODE0MzFjODll
MDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9xdC9GcmFtZVF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDY4ICswLDAg
QEAKLS8qCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNp
bmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAiSW1hZ2VCdWZmZXIu
aCIKLQotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotRHJhZ0ltYWdlUmVmIEZyYW1lOjpub2RlSW1hZ2UoTm9kZSopCi17Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotRHJhZ0ltYWdlUmVmIEZyYW1lOjpkcmFnSW1h
Z2VGb3JTZWxlY3Rpb24oKQotewotICAgIGlmICghc2VsZWN0aW9uKCktPmlzUmFuZ2UoKSkKLSAg
ICAgICAgcmV0dXJuIDA7Ci0KLSAgICBtX2RvYy0+dXBkYXRlTGF5b3V0KCk7Ci0KLSAgICBJbnRS
ZWN0IHBhaW50aW5nUmVjdCA9IGVuY2xvc2luZ0ludFJlY3Qoc2VsZWN0aW9uKCktPmJvdW5kcygp
KTsKLSAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlcihJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHBh
aW50aW5nUmVjdC5zaXplKCkpKTsKLSAgICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIDA7
Ci0KLSAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBidWZmZXItPmNvbnRleHQoKTsKLSAg
ICBjb250ZXh0LT50cmFuc2xhdGUoLXBhaW50aW5nUmVjdC54KCksIC1wYWludGluZ1JlY3QueSgp
KTsKLSAgICBjb250ZXh0LT5jbGlwKEZsb2F0UmVjdCgwLCAwLCBwYWludGluZ1JlY3QubWF4WCgp
LCBwYWludGluZ1JlY3QubWF4WSgpKSk7Ci0KLSAgICBQYWludEJlaGF2aW9yIHByZXZpb3VzUGFp
bnRCZWhhdmlvciA9IG1fdmlldy0+cGFpbnRCZWhhdmlvcigpOwotICAgIG1fdmlldy0+c2V0UGFp
bnRCZWhhdmlvcihQYWludEJlaGF2aW9yU2VsZWN0aW9uT25seSk7Ci0gICAgbV92aWV3LT5wYWlu
dENvbnRlbnRzKGNvbnRleHQsIHBhaW50aW5nUmVjdCk7Ci0gICAgbV92aWV3LT5zZXRQYWludEJl
aGF2aW9yKHByZXZpb3VzUGFpbnRCZWhhdmlvcik7Ci0KLSAgICBSZWZQdHI8SW1hZ2U+IGltYWdl
ID0gYnVmZmVyLT5jb3B5SW1hZ2UoKTsKLSAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbUlt
YWdlKGltYWdlLmdldCgpKTsKLX0KLQotfQotLy8gdmltOiB0cz00IHN3PTQgZXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd3gvRnJhbWVXeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3d4L0ZyYW1lV3guY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YzE2YWRj
YTc1MjgwNTdjYTY4MTZhN2FhNWRhNTE2MzFlZGI3MTZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd3gvRnJhbWVXeC5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA5IEtldmluIE9sbGl2aWVyIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4uICBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRnJhbWUu
aCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LURyYWdJbWFnZVJlZiBGcmFtZTo6bm9kZUltYWdlKE5vZGUqKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLURyYWdJbWFnZVJlZiBGcmFtZTo6ZHJhZ0ltYWdl
Rm9yU2VsZWN0aW9uKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwot
fQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJk
R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCmlu
ZGV4IDA1MzU2MGY5ZjQwZTk1OWI4MmJjYTg5MmM1NDc5MjY3Y2FlYTQ0ODguLjZmM2FjYmUzYzc5
NDM0MzJiMGFhMmQ4NTE3YjQ1YjFkZjA5YjFiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCkBAIC0yNTksMTAgKzI1OSwxMyBAQCB2b2lkIENsaXBi
b2FyZEd0azo6c2V0RHJhZ0ltYWdlKENhY2hlZEltYWdlKiBpbWFnZSwgTm9kZSogZWxlbWVudCwg
Y29uc3QgSW50UG9pbgogRHJhZ0ltYWdlUmVmIENsaXBib2FyZEd0azo6Y3JlYXRlRHJhZ0ltYWdl
KEludFBvaW50JiBsb2NhdGlvbikgY29uc3QKIHsKICAgICBsb2NhdGlvbiA9IG1fZHJhZ0xvYzsK
LSAgICBpZiAoIW1fZHJhZ0ltYWdlKQotICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBj
cmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UobV9kcmFnSW1hZ2UtPmltYWdlKCkpOworICAgIGlmICht
X2RyYWdJbWFnZSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShtX2Ry
YWdJbWFnZS0+aW1hZ2UoKSk7CisgICAgaWYgKG1fZHJhZ0ltYWdlRWxlbWVudCAmJiBtX2ZyYW1l
KQorICAgICAgICByZXR1cm4gbV9mcmFtZS0+bm9kZUltYWdlKG1fZHJhZ0ltYWdlRWxlbWVudC5n
ZXQoKSk7CisKKyAgICByZXR1cm4gMDsgLy8gV2UgZG8gbm90IGhhdmUgZW5vdWdoIGluZm9ybWF0
aW9uIHRvIGNyZWF0ZSBhIGRyYWcgaW1hZ2UsIHVzZSB0aGUgZGVmYXVsdCBpY29uLgogfQogCiBz
dGF0aWMgQ2FjaGVkSW1hZ2UqIGdldENhY2hlZEltYWdlKEVsZW1lbnQqIGVsZW1lbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109157</attachid>
            <date>2011-09-29 07:06:46 -0700</date>
            <delta_ts>2011-09-29 10:34:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69064-20110929070645.patch</filename>
            <type>text/plain</type>
            <size>23103</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTYyOTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXgg
ZGIxNGJkZGIxMDA1MDRiNTllM2U2ZGU1Y2Q0YWMzMTc5Y2Y1Zjg4Zi4uMGYwMTc5NWY1ZjI1M2Jj
ODY0Yjk0YzZlMWU3NzBjNTI0NTIxMWE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKQEAg
LTIwLDcgKzIwLDYgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgIGJpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXJFZmwuY3BwCiAgIHBhZ2UvZWZsL0RyYWdDb250cm9sbGVyRWZsLmNw
cAogICBwYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCi0gIHBhZ2UvZWZsL0ZyYW1lRWZsLmNw
cAogICBwbGF0Zm9ybS9DdXJzb3IuY3BwCiAgIHBsYXRmb3JtL2VmbC9DbGlwYm9hcmRFZmwuY3Bw
CiAgIHBsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYTRhNDdj
M2IyNjFhNGQ1YzI4NGUyNzU5OWJhNDdiMmRhNDY4ZjVkLi5mMDNkODBmZjQ2MTZiMmE0MmUwZDFi
NDMyYTE0NGNiMGU5OGUyNTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzkgQEAKIDIwMTEtMDkt
MjggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCisgICAgICAgIFtH
VEtdIERyYWdnaW5nIGEgc2VsZWN0aW9uIGRvZXMgbm90IHByb2R1Y2UgYSBkcmFnIGltYWdlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTA2NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIENocm9t
aXVtJ3MgZ2VuZXJpYyBpbXBsZW1lbnRhdGlvbiBvZiBGcmFtZTo6bm9kZUltYWdlIGFuZAorICAg
ICAgICBGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZXRpb24gdG8gRnJhbWUuY3BwIGFuZCBzaW1wbHkg
ZXhjbHVkZWQgdmlhCisgICAgICAgICNpZmRlZnMgcGxhdGZvcm1zIHRoYXQgZG8gbm90IGhhdmUg
dGhlaXIgb3duIGltcGxlbWVudGF0aW9uLiBSZW1vdmVkCisgICAgICAgIGFsbCBlbXB0eSBpbXBs
ZW1lbnRhdGlvbnMgb2YgdGhlc2UgZnVuY3Rpb25zIGFuZCBRdCdzIHdoaWNoIHdhcworICAgICAg
ICBmdW5jdGlvbmFsbHkgaWRlbnRpY2FsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRHJhZy1h
bmQtZHJvcCBkcmFnIGltYWdlIGZ1bmN0aW9uYWxpdHkgY2hhbmdlcworICAgICAgICBhcmUgaW5j
cmVkaWJseSBkaWZmaWN1bHQgdG8gdGVzdCBpbiBhIG5vbi1tYW51YWwgd2F5LgorCisgICAgICAg
ICogQ01ha2VMaXN0c0VmbC50eHQ6IERlbGlzdCBGcmFtZUVmbC5jcHAuCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogRGVsaXN0IEZyYW1lR3RrLmNwcC4KKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6IERlbGlzdCByZW1vdmVkIEZyYW1lKi5jcHAuCisgICAgICAgICogV2ViQ29yZS5wcm86
IERlbGlzdCBGcmFtZVF0LmNwcC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDogTW92ZWQgRnJh
bWVDaHJvbWl1bSBpbXBsZW1lbnRhdGlvbiBoZXJlLgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVk
RnJhbWVQYWludGluZ1N0YXRlOjpTY29wZWRGcmFtZVBhaW50aW5nU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2NvcGVkRnJhbWVQYWludGluZ1N0YXRlOjp+U2NvcGVkRnJhbWVQYWludGluZ1N0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpub2RlSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWU6OmRyYWdJbWFnZUZvclNlbGVjdGlvbik6CisgICAgICAgICogcGFnZS9jaHJv
bWl1bS9GcmFtZUNocm9taXVtLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL2VmbC9GcmFt
ZUVmbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGFnZS9ndGsvRnJhbWVHdGsuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIHBhZ2UvcXQvRnJhbWVRdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
cGFnZS93eC9GcmFtZVd4LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvQ2xp
cGJvYXJkR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZEd0azo6Y3JlYXRlRHJh
Z0ltYWdlKTogQ2FsbCBub2RlSW1hZ2UgdG8gZ2V0CisgICAgICAgIHRoZSBkcmFnIGltYWdlIGZv
ciBhIG5vZGUuCisKKzIwMTEtMDktMjggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgorCiAgICAgICAgIFtHVEtdIE1vdmUgZHJhZy1hbmQtZHJvcCBjb2RlIHdoaWNoIGNh
biBiZSBzaGFyZWQgd2l0aCBXZWJLaXQyIHRvIFdlYkNvcmUKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODkwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCmluZGV4IDc4MjI2YTFjM2Y2ZDE5MGMyMjIwOWZhOWU5ODhlZGJhN2FlMzljNzAuLjFl
NWY3NTQwOTYyY2Q1OTc1Njc1ZmE4MTM0ZmFmODRjOGMzM2UyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtMzk1NCw3ICszOTU0LDYgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9GcmFtZVNlbGVjdGlvbkd0ay5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcCBcCi0JU291cmNlL1dlYkNvcmUv
cGFnZS9ndGsvRnJhbWVHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9X
aWRnZXRCYWNraW5nU3RvcmUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCAwNDIwNGVhNmFiYzZkNDZiM2YwZDUxMjY3Y2RkZDY5YTAxYWE1
NzE3Li5jYmNmOWNiOGNhMmRlZTYzMWQ1MzljZWI3MWVjYjA2ZDJlNTkxMmU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0yOTY3LDEzICsyOTY3LDEwIEBACiAgICAgICAgICAgICAncGFnZS9jaHJvbWl1
bS9DaHJvbWVDbGllbnRDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdwYWdlL2Nocm9taXVtL0Ry
YWdDb250cm9sbGVyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwYWdlL2Nocm9taXVtL0V2
ZW50SGFuZGxlckNocm9taXVtLmNwcCcsCi0gICAgICAgICAgICAncGFnZS9jaHJvbWl1bS9GcmFt
ZUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9lZmwvRHJhZ0NvbnRyb2xsZXJFZmwu
Y3BwJywKICAgICAgICAgICAgICdwYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwJywKLSAgICAg
ICAgICAgICdwYWdlL2VmbC9GcmFtZUVmbC5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvZ3RrL0Ry
YWdDb250cm9sbGVyR3RrLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9ndGsvRXZlbnRIYW5kbGVy
R3RrLmNwcCcsCi0gICAgICAgICAgICAncGFnZS9ndGsvRnJhbWVHdGsuY3BwJywKICAgICAgICAg
ICAgICdwYWdlL21hYy9DaHJvbWVNYWMubW0nLAogICAgICAgICAgICAgJ3BhZ2UvbWFjL0RyYWdD
b250cm9sbGVyTWFjLm1tJywKICAgICAgICAgICAgICdwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW0nLApAQCAtMjk4MSw3ICsyOTc4LDYgQEAKICAgICAgICAgICAgICdwYWdlL21hYy9QYWdlTWFj
LmNwcCcsCiAgICAgICAgICAgICAncGFnZS9xdC9EcmFnQ29udHJvbGxlclF0LmNwcCcsCiAgICAg
ICAgICAgICAncGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHAnLAotICAgICAgICAgICAgJ3BhZ2Uv
cXQvRnJhbWVRdC5jcHAnLAogICAgICAgICAgICAgJ3BhZ2Uvd2luL0RyYWdDb250cm9sbGVyV2lu
LmNwcCcsCiAgICAgICAgICAgICAncGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcCcsCiAgICAg
ICAgICAgICAncGFnZS93aW4vRnJhbWVDR1dpbi5jcHAnLApAQCAtMjk5MSw3ICsyOTg3LDYgQEAK
ICAgICAgICAgICAgICdwYWdlL3dpbmNlL0ZyYW1lV2luQ0UuY3BwJywKICAgICAgICAgICAgICdw
YWdlL3d4L0RyYWdDb250cm9sbGVyV3guY3BwJywKICAgICAgICAgICAgICdwYWdlL3d4L0V2ZW50
SGFuZGxlcld4LmNwcCcsCi0gICAgICAgICAgICAncGFnZS93eC9GcmFtZVd4LmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vQXJlbmEuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9BcmVu
YS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Bc3luY0ZpbGVTeXN0ZW0uY3BwJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KaW5kZXggNzFiODllOTRjYzkwNmEzYmI2NmE5YmMyMjZiYzUxZTA5ZTNmZjk4Yi4uZWMy
MDIzYzM3ZWQyYTZkODIxMjVkNTI2ODRkZWMxZGM5OWMyYjRmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAg
LTI1ODIsNyArMjU4Miw2IEBAIFNPVVJDRVMgKz0gXAogICAgIGFjY2Vzc2liaWxpdHkvcXQvQWNj
ZXNzaWJpbGl0eU9iamVjdFF0LmNwcCBcCiAgICAgcGFnZS9xdC9EcmFnQ29udHJvbGxlclF0LmNw
cCBcCiAgICAgcGFnZS9xdC9FdmVudEhhbmRsZXJRdC5jcHAgXAotICAgIHBhZ2UvcXQvRnJhbWVR
dC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1RyYW5zZm9ybWF0aW9uTWF0cml4UXQu
Y3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9xdC9Db2xvclF0LmNwcCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvRm9udFF0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDdkY2U0
MzlmMzYxOWRlMTNiY2FhY2U4ZmU4MTAyNDJmMDMxMTEwZGEuLmI4MzIzNjcxYmQyOTdjOTU2ODFk
OGRkNzNmMjdmMjkwNjYzMmFlOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC05LDYgKzksNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA1IEFsZXhleSBQcm9za3VyeWFrb3YgPGFwQG55cG9wLmNv
bT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEdvb2dsZSBJbmMuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTU4LDYgKzU5LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNs
dWRlICJIVE1MVGFibGVDZWxsRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIK
KyNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYUZlYXR1cmVOYW1l
cy5oIgpAQCAtMTA1OCw0ICsxMDYwLDg1IEBAIHZvaWQgRnJhbWU6Om5vdGlmeUNocm9tZUNsaWVu
dFdoZWVsRXZlbnRIYW5kbGVyQ291bnRDaGFuZ2VkKCkgY29uc3QKICAgICBtX3BhZ2UtPmNocm9t
ZSgpLT5jbGllbnQoKS0+bnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChjb3VudCk7CiB9CiAK
KyNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV1gpCitz
dHJ1Y3QgU2NvcGVkRnJhbWVQYWludGluZ1N0YXRlIHsKKyAgICBTY29wZWRGcmFtZVBhaW50aW5n
U3RhdGUoRnJhbWUqIHRoZUZyYW1lLCBSZW5kZXJPYmplY3QqIHRoZVJlbmRlcmVyKQorICAgICAg
ICA6IGZyYW1lKHRoZUZyYW1lKQorICAgICAgICAsIHJlbmRlcmVyKHRoZVJlbmRlcmVyKQorICAg
ICAgICAsIHBhaW50QmVoYXZpb3IoZnJhbWUtPnZpZXcoKS0+cGFpbnRCZWhhdmlvcigpKQorICAg
ICAgICAsIGJhY2tncm91bmRDb2xvcihmcmFtZS0+dmlldygpLT5iYXNlQmFja2dyb3VuZENvbG9y
KCkpCisgICAgeworICAgIH0KKworICAgIH5TY29wZWRGcmFtZVBhaW50aW5nU3RhdGUoKQorICAg
IHsKKyAgICAgICAgaWYgKHJlbmRlcmVyKQorICAgICAgICAgICAgcmVuZGVyZXItPnVwZGF0ZURy
YWdTdGF0ZShmYWxzZSk7CisgICAgICAgIGZyYW1lLT52aWV3KCktPnNldFBhaW50QmVoYXZpb3Io
cGFpbnRCZWhhdmlvcik7CisgICAgICAgIGZyYW1lLT52aWV3KCktPnNldEJhc2VCYWNrZ3JvdW5k
Q29sb3IoYmFja2dyb3VuZENvbG9yKTsKKyAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0Tm9kZVRv
RHJhdygwKTsKKyAgICB9CisKKyAgICBGcmFtZSogZnJhbWU7CisgICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlcjsKKyAgICBQYWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3I7CisgICAgQ29sb3IgYmFj
a2dyb3VuZENvbG9yOworfTsKKworRHJhZ0ltYWdlUmVmIEZyYW1lOjpub2RlSW1hZ2UoTm9kZSog
bm9kZSkKK3sKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsK
KyAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNvbnN0IFNjb3Bl
ZEZyYW1lUGFpbnRpbmdTdGF0ZSBzdGF0ZSh0aGlzLCByZW5kZXJlcik7CisKKyAgICByZW5kZXJl
ci0+dXBkYXRlRHJhZ1N0YXRlKHRydWUpOworICAgIG1fdmlldy0+c2V0UGFpbnRCZWhhdmlvcihz
dGF0ZS5wYWludEJlaGF2aW9yIHwgUGFpbnRCZWhhdmlvckZsYXR0ZW5Db21wb3NpdGluZ0xheWVy
cyk7CisKKyAgICAvLyBXaGVuIGdlbmVyYXRpbmcgdGhlIGRyYWcgaW1hZ2UgZm9yIGFuIGVsZW1l
bnQsIGlnbm9yZSB0aGUgZG9jdW1lbnQgYmFja2dyb3VuZC4KKyAgICBtX3ZpZXctPnNldEJhc2VC
YWNrZ3JvdW5kQ29sb3IoY29sb3JXaXRoT3ZlcnJpZGVBbHBoYShDb2xvcjo6d2hpdGUsIDEuMCkp
OworICAgIG1fZG9jLT51cGRhdGVMYXlvdXQoKTsKKyAgICBtX3ZpZXctPnNldE5vZGVUb0RyYXco
bm9kZSk7IC8vIEVuYWJsZSBzcGVjaWFsIHN1Yi10cmVlIGRyYXdpbmcgbW9kZS4KKworICAgIElu
dFJlY3QgdG9wTGV2ZWxSZWN0OworICAgIEludFJlY3QgcGFpbnRpbmdSZWN0ID0gcmVuZGVyZXIt
PnBhaW50aW5nUm9vdFJlY3QodG9wTGV2ZWxSZWN0KTsKKworICAgIE93blB0cjxJbWFnZUJ1ZmZl
cj4gYnVmZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUocGFpbnRpbmdSZWN0LnNpemUoKSkpOworICAg
IGlmICghYnVmZmVyKQorICAgICAgICByZXR1cm4gMDsKKyAgICBidWZmZXItPmNvbnRleHQoKS0+
dHJhbnNsYXRlKC1wYWludGluZ1JlY3QueCgpLCAtcGFpbnRpbmdSZWN0LnkoKSk7CisgICAgYnVm
ZmVyLT5jb250ZXh0KCktPmNsaXAoRmxvYXRSZWN0KDAsIDAsIHBhaW50aW5nUmVjdC5tYXhYKCks
IHBhaW50aW5nUmVjdC5tYXhZKCkpKTsKKworICAgIG1fdmlldy0+cGFpbnRDb250ZW50cyhidWZm
ZXItPmNvbnRleHQoKSwgcGFpbnRpbmdSZWN0KTsKKworICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2Ug
PSBidWZmZXItPmNvcHlJbWFnZSgpOworICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1h
Z2UoaW1hZ2UuZ2V0KCkpOworfQorCitEcmFnSW1hZ2VSZWYgRnJhbWU6OmRyYWdJbWFnZUZvclNl
bGVjdGlvbigpCit7CisgICAgaWYgKCFzZWxlY3Rpb24oKS0+aXNSYW5nZSgpKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIGNvbnN0IFNjb3BlZEZyYW1lUGFpbnRpbmdTdGF0ZSBzdGF0ZSh0aGlz
LCAwKTsKKyAgICBtX3ZpZXctPnNldFBhaW50QmVoYXZpb3IoUGFpbnRCZWhhdmlvclNlbGVjdGlv
bk9ubHkpOworICAgIG1fZG9jLT51cGRhdGVMYXlvdXQoKTsKKworICAgIEludFJlY3QgcGFpbnRp
bmdSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChzZWxlY3Rpb24oKS0+Ym91bmRzKCkpOworCisgICAg
T3duUHRyPEltYWdlQnVmZmVyPiBidWZmZXIoSW1hZ2VCdWZmZXI6OmNyZWF0ZShwYWludGluZ1Jl
Y3Quc2l6ZSgpKSk7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiAwOworICAgIGJ1
ZmZlci0+Y29udGV4dCgpLT50cmFuc2xhdGUoLXBhaW50aW5nUmVjdC54KCksIC1wYWludGluZ1Jl
Y3QueSgpKTsKKyAgICBidWZmZXItPmNvbnRleHQoKS0+Y2xpcChGbG9hdFJlY3QoMCwgMCwgcGFp
bnRpbmdSZWN0Lm1heFgoKSwgcGFpbnRpbmdSZWN0Lm1heFkoKSkpOworCisgICAgbV92aWV3LT5w
YWludENvbnRlbnRzKGJ1ZmZlci0+Y29udGV4dCgpLCBwYWludGluZ1JlY3QpOworCisgICAgUmVm
UHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdlKCk7CisgICAgcmV0dXJuIGNyZWF0
ZURyYWdJbWFnZUZyb21JbWFnZShpbWFnZS5nZXQoKSk7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Nocm9taXVt
L0ZyYW1lQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jaHJvbWl1bS9GcmFtZUNo
cm9taXVtLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmY1ZjdjNmI5Y2M4NTcy
MzQxMTQ2ZmUwOGJiMGQxYTA2MjQ2ZDQxOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Nocm9taXVtL0ZyYW1lQ2hyb21p
dW0uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
Q29weXJpZ2h0IChDKSAyMDA4IEdvb2dsZSBJbmMuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJGcmFtZS5oIgotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRl
ICJGbG9hdFJlY3QuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIgotI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKLSNpbmNsdWRlICJTZXR0aW5n
cy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLW5hbWVzcGFjZSB7Ci0KLXN0cnVjdCBTY29w
ZWRTdGF0ZSB7Ci0gICAgU2NvcGVkU3RhdGUoRnJhbWUqIHRoZUZyYW1lLCBSZW5kZXJPYmplY3Qq
IHRoZVJlbmRlcmVyKQotICAgICAgICA6IGZyYW1lKHRoZUZyYW1lKQotICAgICAgICAsIHJlbmRl
cmVyKHRoZVJlbmRlcmVyKQotICAgICAgICAsIHBhaW50QmVoYXZpb3IoZnJhbWUtPnZpZXcoKS0+
cGFpbnRCZWhhdmlvcigpKQotICAgICAgICAsIGJhY2tncm91bmRDb2xvcihmcmFtZS0+dmlldygp
LT5iYXNlQmFja2dyb3VuZENvbG9yKCkpCi0gICAgewotICAgIH0KLQotICAgIH5TY29wZWRTdGF0
ZSgpCi0gICAgewotICAgICAgICBpZiAocmVuZGVyZXIpCi0gICAgICAgICAgICByZW5kZXJlci0+
dXBkYXRlRHJhZ1N0YXRlKGZhbHNlKTsKLSAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0UGFpbnRC
ZWhhdmlvcihwYWludEJlaGF2aW9yKTsKLSAgICAgICAgZnJhbWUtPnZpZXcoKS0+c2V0QmFzZUJh
Y2tncm91bmRDb2xvcihiYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICBmcmFtZS0+dmlldygpLT5z
ZXROb2RlVG9EcmF3KDApOwotICAgIH0KLQotICAgIEZyYW1lKiBmcmFtZTsKLSAgICBSZW5kZXJP
YmplY3QqIHJlbmRlcmVyOwotICAgIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvcjsKLSAgICBD
b2xvciBiYWNrZ3JvdW5kQ29sb3I7Ci19OwotCi19IC8vIG5hbWVzcGFjZQotCi1EcmFnSW1hZ2VS
ZWYgRnJhbWU6Om5vZGVJbWFnZShOb2RlKiBub2RlKQotewotICAgIFJlbmRlck9iamVjdCogcmVu
ZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwotICAgIGlmICghcmVuZGVyZXIpCi0gICAgICAgIHJl
dHVybiAwOwotCi0gICAgY29uc3QgU2NvcGVkU3RhdGUgc3RhdGUodGhpcywgcmVuZGVyZXIpOwot
Ci0gICAgcmVuZGVyZXItPnVwZGF0ZURyYWdTdGF0ZSh0cnVlKTsKLSAgICBtX3ZpZXctPnNldFBh
aW50QmVoYXZpb3Ioc3RhdGUucGFpbnRCZWhhdmlvciB8IFBhaW50QmVoYXZpb3JGbGF0dGVuQ29t
cG9zaXRpbmdMYXllcnMpOwotICAgIC8vIFdoZW4gZ2VuZXJhdGluZyB0aGUgZHJhZyBpbWFnZSBm
b3IgYW4gZWxlbWVudCwgaWdub3JlIHRoZSBkb2N1bWVudCBiYWNrZ3JvdW5kLgotICAgIG1fdmll
dy0+c2V0QmFzZUJhY2tncm91bmRDb2xvcihjb2xvcldpdGhPdmVycmlkZUFscGhhKENvbG9yOjp3
aGl0ZSwgMS4wKSk7Ci0gICAgbV9kb2MtPnVwZGF0ZUxheW91dCgpOwotICAgIG1fdmlldy0+c2V0
Tm9kZVRvRHJhdyhub2RlKTsgLy8gRW5hYmxlIHNwZWNpYWwgc3ViLXRyZWUgZHJhd2luZyBtb2Rl
LgotCi0gICAgSW50UmVjdCB0b3BMZXZlbFJlY3Q7Ci0gICAgSW50UmVjdCBwYWludGluZ1JlY3Qg
PSByZW5kZXJlci0+cGFpbnRpbmdSb290UmVjdCh0b3BMZXZlbFJlY3QpOwotCi0gICAgT3duUHRy
PEltYWdlQnVmZmVyPiBidWZmZXIoSW1hZ2VCdWZmZXI6OmNyZWF0ZShwYWludGluZ1JlY3Quc2l6
ZSgpKSk7Ci0gICAgaWYgKCFidWZmZXIpCi0gICAgICAgIHJldHVybiAwOwotICAgIGJ1ZmZlci0+
Y29udGV4dCgpLT50cmFuc2xhdGUoLXBhaW50aW5nUmVjdC54KCksIC1wYWludGluZ1JlY3QueSgp
KTsKLSAgICBidWZmZXItPmNvbnRleHQoKS0+Y2xpcChGbG9hdFJlY3QoMCwgMCwgcGFpbnRpbmdS
ZWN0Lm1heFgoKSwgcGFpbnRpbmdSZWN0Lm1heFkoKSkpOwotCi0gICAgbV92aWV3LT5wYWludENv
bnRlbnRzKGJ1ZmZlci0+Y29udGV4dCgpLCBwYWludGluZ1JlY3QpOwotCi0gICAgUmVmUHRyPElt
YWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdlKCk7Ci0gICAgcmV0dXJuIGNyZWF0ZURyYWdJ
bWFnZUZyb21JbWFnZShpbWFnZS5nZXQoKSk7Ci19Ci0KLURyYWdJbWFnZVJlZiBGcmFtZTo6ZHJh
Z0ltYWdlRm9yU2VsZWN0aW9uKCkKLXsKLSAgICBpZiAoIXNlbGVjdGlvbigpLT5pc1JhbmdlKCkp
Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgY29uc3QgU2NvcGVkU3RhdGUgc3RhdGUodGhpcywg
MCk7Ci0gICAgbV92aWV3LT5zZXRQYWludEJlaGF2aW9yKFBhaW50QmVoYXZpb3JTZWxlY3Rpb25P
bmx5KTsKLSAgICBtX2RvYy0+dXBkYXRlTGF5b3V0KCk7Ci0KLSAgICBJbnRSZWN0IHBhaW50aW5n
UmVjdCA9IGVuY2xvc2luZ0ludFJlY3Qoc2VsZWN0aW9uKCktPmJvdW5kcygpKTsKLQotICAgIE93
blB0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVyKEltYWdlQnVmZmVyOjpjcmVhdGUocGFpbnRpbmdSZWN0
LnNpemUoKSkpOwotICAgIGlmICghYnVmZmVyKQotICAgICAgICByZXR1cm4gMDsKLSAgICBidWZm
ZXItPmNvbnRleHQoKS0+dHJhbnNsYXRlKC1wYWludGluZ1JlY3QueCgpLCAtcGFpbnRpbmdSZWN0
LnkoKSk7Ci0gICAgYnVmZmVyLT5jb250ZXh0KCktPmNsaXAoRmxvYXRSZWN0KDAsIDAsIHBhaW50
aW5nUmVjdC5tYXhYKCksIHBhaW50aW5nUmVjdC5tYXhZKCkpKTsKLQotICAgIG1fdmlldy0+cGFp
bnRDb250ZW50cyhidWZmZXItPmNvbnRleHQoKSwgcGFpbnRpbmdSZWN0KTsKLQotICAgIFJlZlB0
cjxJbWFnZT4gaW1hZ2UgPSBidWZmZXItPmNvcHlJbWFnZSgpOwotICAgIHJldHVybiBjcmVhdGVE
cmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2UuZ2V0KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9GcmFtZUVmbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9GcmFtZUVmbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGIxYmU5Y2FhOTI2YTgwMjE4NGYwNzQ1M2EwNmI4N2IzMmFkMTFmZjcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9lZmwvRnJhbWVFZmwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOCBJTmRUIC0gSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9n
aWEKLSAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1z
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0KLSNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLURyYWdJbWFnZVJlZiBGcmFt
ZTo6bm9kZUltYWdlKE5vZGUqIG5vZGUpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gMDsKLX0KLQotRHJhZ0ltYWdlUmVmIEZyYW1lOjpkcmFnSW1hZ2VGb3JTZWxlY3Rpb24o
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0ZyYW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvZ3RrL0ZyYW1lR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTRhMGY4YmI4MGI5YjMyMjBhOTEwOGRkYWNlZTMxODE1YWYyZWU4MS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9G
cmFtZUd0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLURyYWdJbWFnZVJlZiBGcmFtZTo6bm9k
ZUltYWdlKE5vZGUqKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19
Ci0KLURyYWdJbWFnZVJlZiBGcmFtZTo6ZHJhZ0ltYWdlRm9yU2VsZWN0aW9uKCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3F0L0ZyYW1lUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9xdC9G
cmFtZVF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZhZGIxYWJjYjg2MGUx
Yzg2YWJlZmJlZmRmMWQ4MTQzMWM4OWUwNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3F0L0ZyYW1lUXQuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIK
LSNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgotCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EcmFnSW1hZ2VSZWYgRnJhbWU6Om5vZGVJbWFnZShO
b2RlKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCi1EcmFn
SW1hZ2VSZWYgRnJhbWU6OmRyYWdJbWFnZUZvclNlbGVjdGlvbigpCi17Ci0gICAgaWYgKCFzZWxl
Y3Rpb24oKS0+aXNSYW5nZSgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIG1fZG9jLT51cGRh
dGVMYXlvdXQoKTsKLQotICAgIEludFJlY3QgcGFpbnRpbmdSZWN0ID0gZW5jbG9zaW5nSW50UmVj
dChzZWxlY3Rpb24oKS0+Ym91bmRzKCkpOwotICAgIE93blB0cjxJbWFnZUJ1ZmZlcj4gYnVmZmVy
KEltYWdlQnVmZmVyOjpjcmVhdGUocGFpbnRpbmdSZWN0LnNpemUoKSkpOwotICAgIGlmICghYnVm
ZmVyKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9
IGJ1ZmZlci0+Y29udGV4dCgpOwotICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtcGFpbnRpbmdSZWN0
LngoKSwgLXBhaW50aW5nUmVjdC55KCkpOwotICAgIGNvbnRleHQtPmNsaXAoRmxvYXRSZWN0KDAs
IDAsIHBhaW50aW5nUmVjdC5tYXhYKCksIHBhaW50aW5nUmVjdC5tYXhZKCkpKTsKLQotICAgIFBh
aW50QmVoYXZpb3IgcHJldmlvdXNQYWludEJlaGF2aW9yID0gbV92aWV3LT5wYWludEJlaGF2aW9y
KCk7Ci0gICAgbV92aWV3LT5zZXRQYWludEJlaGF2aW9yKFBhaW50QmVoYXZpb3JTZWxlY3Rpb25P
bmx5KTsKLSAgICBtX3ZpZXctPnBhaW50Q29udGVudHMoY29udGV4dCwgcGFpbnRpbmdSZWN0KTsK
LSAgICBtX3ZpZXctPnNldFBhaW50QmVoYXZpb3IocHJldmlvdXNQYWludEJlaGF2aW9yKTsKLQot
ICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2UgPSBidWZmZXItPmNvcHlJbWFnZSgpOwotICAgIHJldHVy
biBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoaW1hZ2UuZ2V0KCkpOwotfQotCi19Ci0vLyB2aW06
IHRzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93eC9GcmFtZVd4
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd3gvRnJhbWVXeC5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDZjMTZhZGNhNzUyODA1N2NhNjgxNmE3YWE1ZGE1MTYzMWVkYjcxNmEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS93eC9GcmFtZVd4LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgS2V2aW4gT2xsaXZpZXIgPGtldmlub0B0aGVvbGxp
dmllcnMuY29tPi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRHJhZ0ltYWdlUmVmIEZyYW1lOjpub2RlSW1hZ2UoTm9k
ZSopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotRHJhZ0lt
YWdlUmVmIEZyYW1lOjpkcmFnSW1hZ2VGb3JTZWxlY3Rpb24oKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0NsaXBib2FyZEd0ay5jcHAKaW5kZXggMDUzNTYwZjlmNDBlOTU5YjgyYmNhODkyYzU0Nzky
NjdjYWVhNDQ4OC4uNmYzYWNiZTNjNzk0MzQzMmIwYWEyZDg1MTdiNDViMWRmMDliMWIzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHAKQEAgLTI1OSwx
MCArMjU5LDEzIEBAIHZvaWQgQ2xpcGJvYXJkR3RrOjpzZXREcmFnSW1hZ2UoQ2FjaGVkSW1hZ2Uq
IGltYWdlLCBOb2RlKiBlbGVtZW50LCBjb25zdCBJbnRQb2luCiBEcmFnSW1hZ2VSZWYgQ2xpcGJv
YXJkR3RrOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvY2F0aW9uKSBjb25zdAogewogICAg
IGxvY2F0aW9uID0gbV9kcmFnTG9jOwotICAgIGlmICghbV9kcmFnSW1hZ2UpCi0gICAgICAgIHJl
dHVybiAwOwogCi0gICAgcmV0dXJuIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShtX2RyYWdJbWFn
ZS0+aW1hZ2UoKSk7CisgICAgaWYgKG1fZHJhZ0ltYWdlKQorICAgICAgICByZXR1cm4gY3JlYXRl
RHJhZ0ltYWdlRnJvbUltYWdlKG1fZHJhZ0ltYWdlLT5pbWFnZSgpKTsKKyAgICBpZiAobV9kcmFn
SW1hZ2VFbGVtZW50ICYmIG1fZnJhbWUpCisgICAgICAgIHJldHVybiBtX2ZyYW1lLT5ub2RlSW1h
Z2UobV9kcmFnSW1hZ2VFbGVtZW50LmdldCgpKTsKKworICAgIHJldHVybiAwOyAvLyBXZSBkbyBu
b3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gY3JlYXRlIGEgZHJhZyBpbWFnZSwgdXNlIHRo
ZSBkZWZhdWx0IGljb24uCiB9CiAKIHN0YXRpYyBDYWNoZWRJbWFnZSogZ2V0Q2FjaGVkSW1hZ2Uo
RWxlbWVudCogZWxlbWVudCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>