<?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>93124</bug_id>
          
          <creation_ts>2012-08-03 07:54:47 -0700</creation_ts>
          <short_desc>[BlackBerry] InspectorOverlay class duplicated in WebCore</short_desc>
          <delta_ts>2012-08-07 12:09:55 -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>WebKit BlackBerry</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>
          <dependson>90880</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Konrad Piascik">kpiascik</reporter>
          <assigned_to name="Konrad Piascik">kpiascik</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>686749</commentid>
    <comment_count>0</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-08-03 07:54:47 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=90880 refactored DOMNodeHighligher to include a new class WebCore::InspectorOverlay.  A WebCore::InspectorOverlay class already exists in Source/WebKit/BlackBerry/WebCoreSupport/InspectorOverlay.h

This bug will change the namespace of the class to BlackBerry::WebKit from WebCore to resolve this conflict.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686788</commentid>
    <comment_count>1</comment_count>
      <attachid>156389</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-08-03 08:47:33 -0700</bug_when>
    <thetext>Created attachment 156389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686790</commentid>
    <comment_count>2</comment_count>
      <attachid>156389</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-08-03 08:49:33 -0700</bug_when>
    <thetext>Comment on attachment 156389
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686829</commentid>
    <comment_count>3</comment_count>
      <attachid>156389</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-08-03 09:25:59 -0700</bug_when>
    <thetext>Comment on attachment 156389
Patch

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

&gt; Source/WebKit/blackberry/WebCoreSupport/InspectorOverlay.cpp:32
&gt; -namespace WebCore {
&gt; +namespace BlackBerry {
&gt; +namespace WebKit {
&gt;  

I think it should be in WebKitSupport instead, no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686921</commentid>
    <comment_count>4</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-08-03 10:31:02 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 156389 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=156389&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/InspectorOverlay.cpp:32
&gt; &gt; -namespace WebCore {
&gt; &gt; +namespace BlackBerry {
&gt; &gt; +namespace WebKit {
&gt; &gt;  
&gt; 
&gt; I think it should be in WebKitSupport instead, no?

Is it OK to have the move as a separate commit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687037</commentid>
    <comment_count>5</comment_count>
      <attachid>156389</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-03 12:36:34 -0700</bug_when>
    <thetext>Comment on attachment 156389
Patch

Clearing flags on attachment: 156389

Committed r124639: &lt;http://trac.webkit.org/changeset/124639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687038</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-03 12:36:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687070</commentid>
    <comment_count>7</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-08-03 12:58:56 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687071</commentid>
    <comment_count>8</comment_count>
      <attachid>156441</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-08-03 12:58:58 -0700</bug_when>
    <thetext>Created attachment 156441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687072</commentid>
    <comment_count>9</comment_count>
      <attachid>156441</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-08-03 12:59:47 -0700</bug_when>
    <thetext>Comment on attachment 156441
Patch

forgot cmake changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689203</commentid>
    <comment_count>10</comment_count>
      <attachid>156959</attachid>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-08-07 11:12:11 -0700</bug_when>
    <thetext>Created attachment 156959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689207</commentid>
    <comment_count>11</comment_count>
      <attachid>156959</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-08-07 11:16:50 -0700</bug_when>
    <thetext>Comment on attachment 156959
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689258</commentid>
    <comment_count>12</comment_count>
      <attachid>156959</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-07 12:09:49 -0700</bug_when>
    <thetext>Comment on attachment 156959
Patch

Clearing flags on attachment: 156959

Committed r124905: &lt;http://trac.webkit.org/changeset/124905&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689260</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-07 12:09:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156389</attachid>
            <date>2012-08-03 08:47:33 -0700</date>
            <delta_ts>2012-08-03 12:36:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93124-20120803114716.patch</filename>
            <type>text/plain</type>
            <size>10510</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCA4MWU4MTY3ZGZkYzEzOWM0N2RmMmJkMmEwZjNjYjY3ZTU5Y2UzNWZhLi41Yjk5NzliODdl
YThhMDE2OTg2MTdiMWQ0Y2MwNmQzYzdiNWE1YTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMi0wOC0wMyAgS29ucmFkIFBpYXNjaWsgIDxrcGlh
c2Npa0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBJbnNwZWN0b3JPdmVybGF5IGNs
YXNzIGR1cGxpY2F0ZWQgaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTMxMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDaGFuZ2VkIG5hbWVzcGFjZSBvZiBJbnNwZWN0b3JPdmVybGF5IGZy
b20gV2ViQ29yZSB0bworICAgICAgICBCbGFja0JlcnJ5OjpXZWJLaXQKKworICAgICAgICAqIEFw
aS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpzZXRJbnNwZWN0b3JPdmVybGF5Q2xpZW50KToKKyAgICAg
ICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgIChXZWJQYWdlUHJpdmF0ZSk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpJbnNwZWN0b3JPdmVybGF5OjpjcmVhdGUpOgorICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpJbnNwZWN0b3JPdmVybGF5OjpJbnNwZWN0b3JPdmVybGF5KToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6SW5zcGVjdG9yT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVk
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SW5zcGVjdG9yT3ZlcmxheTo6cGFpbnRD
b250ZW50cyk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Okluc3BlY3Rvck92ZXJsYXk6
OnNob3dEZWJ1Z0JvcmRlcnMpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnNwZWN0
b3JPdmVybGF5OjpzaG93UmVwYWludENvdW50ZXIpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpJbnNwZWN0b3JPdmVybGF5Ojpjb250ZW50c1Zpc2libGUpOgorICAgICAgICAoQmxhY2tC
ZXJyeTo6V2ViS2l0OjpJbnNwZWN0b3JPdmVybGF5Ojp1cGRhdGUpOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChJbnNwZWN0b3JPdmVybGF5Q2xpZW50KToKKyAgICAgICAgKEluc3BlY3Rvck92ZXJsYXkpOgor
ICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnNwZWN0b3JPdmVybGF5Ojpub3RpZnlBbmlt
YXRpb25TdGFydGVkKToKKwogMjAxMi0wOC0wMyAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxzc29uQHJp
bS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIE92ZXJsYXlzIGRpc3BsYXkgY2hlY2tlcmJv
YXJkIHRoYXQgZG9lc24ndCByZXNvbHZlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlLmNwcAppbmRleCBmZWYxNjYxZWU0OWI2YzMwZWVmZmM2ZTJjMDNhYjdlY2ZlMWMzMmI0Li40
MDdiNzEyMzA5ZGU3NjQxODI2NjAyZTE0NGZjNmZiMTQwY2ZhMDU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTY0MzEsMTEgKzY0MzEsMTEgQEAgUGFnZVBv
cHVwQmxhY2tCZXJyeSogV2ViUGFnZTo6cG9wdXAoKQogICAgIHJldHVybiBkLT5tX3NlbGVjdFBv
cHVwOwogfQogCi12b2lkIFdlYlBhZ2VQcml2YXRlOjpzZXRJbnNwZWN0b3JPdmVybGF5Q2xpZW50
KFdlYkNvcmU6Okluc3BlY3Rvck92ZXJsYXk6Okluc3BlY3Rvck92ZXJsYXlDbGllbnQqIGluc3Bl
Y3Rvck92ZXJsYXlDbGllbnQpCit2b2lkIFdlYlBhZ2VQcml2YXRlOjpzZXRJbnNwZWN0b3JPdmVy
bGF5Q2xpZW50KEluc3BlY3Rvck92ZXJsYXk6Okluc3BlY3Rvck92ZXJsYXlDbGllbnQqIGluc3Bl
Y3Rvck92ZXJsYXlDbGllbnQpCiB7CiAgICAgaWYgKGluc3BlY3Rvck92ZXJsYXlDbGllbnQpIHsK
ICAgICAgICAgaWYgKCFtX2luc3BlY3Rvck92ZXJsYXkpCi0gICAgICAgICAgICBtX2luc3BlY3Rv
ck92ZXJsYXkgPSBXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpjcmVhdGUodGhpcywgaW5zcGVj
dG9yT3ZlcmxheUNsaWVudCk7CisgICAgICAgICAgICBtX2luc3BlY3Rvck92ZXJsYXkgPSBJbnNw
ZWN0b3JPdmVybGF5OjpjcmVhdGUodGhpcywgaW5zcGVjdG9yT3ZlcmxheUNsaWVudCk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIG1faW5zcGVjdG9yT3ZlcmxheS0+c2V0Q2xpZW50KGluc3Bl
Y3Rvck92ZXJsYXlDbGllbnQpOwogICAgICAgICBtX2luc3BlY3Rvck92ZXJsYXktPnVwZGF0ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaCBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKaW5kZXggOGIxNjYwZDUx
MjZlZTgzYmQwMWZiYzNkMjYyOGI0OTM5NTAyNWE0MS4uMjY5YTgwN2M2NTFlMWQzMzZmOGU5ZmQ5
NTU2ZTQzNjliMTc5YjE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2Vf
cC5oCkBAIC00NTQsNyArNDU0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZWZlcnJlZFRhc2tz
VGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxXZWJQYWdlUHJpdmF0ZT4qKTsKIAotICAgIHZvaWQg
c2V0SW5zcGVjdG9yT3ZlcmxheUNsaWVudChXZWJDb3JlOjpJbnNwZWN0b3JPdmVybGF5OjpJbnNw
ZWN0b3JPdmVybGF5Q2xpZW50Kik7CisgICAgdm9pZCBzZXRJbnNwZWN0b3JPdmVybGF5Q2xpZW50
KEluc3BlY3Rvck92ZXJsYXk6Okluc3BlY3Rvck92ZXJsYXlDbGllbnQqKTsKIAogICAgIHZvaWQg
YXBwbHlTaXplT3ZlcnJpZGUoaW50IG92ZXJyaWRlV2lkdGgsIGludCBvdmVycmlkZUhlaWdodCk7
CiAgICAgdm9pZCBzZXRUZXh0Wm9vbUZhY3RvcihmbG9hdCk7CkBAIC01OTUsNyArNTk1LDcgQEAg
cHVibGljOgogICAgIFJlZlB0cjxXZWJDb3JlOjpET01XcmFwcGVyV29ybGQ+IG1faXNvbGF0ZWRX
b3JsZDsKICAgICBib29sIG1faGFzSW5SZWdpb25TY3JvbGxhYmxlQXJlYXM7CiAgICAgYm9vbCBt
X3VwZGF0ZURlbGVnYXRlZE92ZXJsYXlzRGlzcGF0Y2hlZDsKLSAgICBPd25QdHI8V2ViQ29yZTo6
SW5zcGVjdG9yT3ZlcmxheT4gbV9pbnNwZWN0b3JPdmVybGF5OworICAgIE93blB0cjxJbnNwZWN0
b3JPdmVybGF5PiBtX2luc3BlY3Rvck92ZXJsYXk7CiAKICAgICAvLyBUaGVyZSBpcyBubyBuZWVk
IHRvIGluaXRpYWxpemUgdGhlIGZvbGxvd2luZyBtZW1iZXJzIGluIFdlYlBhZ2VQcml2YXRlJ3Mg
Y29uc3RydWN0b3IsCiAgICAgLy8gYmVjYXVzZSB0aGV5IGFyZSBvbmx5IHVzZWQgYnkgV2ViUGFn
ZVRhc2tzIGFuZCB0aGUgdGFza3Mgd2lsbCBpbml0aWFsaXplIHRoZW0gd2hlbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVu
dEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9J
bnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggZTUxNjMxNTQxZWMxNTAzZjU5ZmRlYTdj
YzRkZTljM2Y1NmU1NjU5Zi4uMmFmMzc1MjZhZTY0NGNiODMzZDM3YzhkN2RkOThjYWM4NDk3MjIx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0lu
c3BlY3RvckNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0zNCw3ICszNCw3
IEBAIGNsYXNzIFdlYlBhZ2VQcml2YXRlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IEluc3BlY3RvckNsaWVudEJsYWNrQmVycnkgOiBwdWJsaWMgSW5zcGVjdG9yQ2xpZW50LCBwdWJs
aWMgSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLCBwdWJsaWMgSW5zcGVjdG9yT3ZlcmxheTo6SW5z
cGVjdG9yT3ZlcmxheUNsaWVudCB7CitjbGFzcyBJbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5IDog
cHVibGljIEluc3BlY3RvckNsaWVudCwgcHVibGljIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbCwg
cHVibGljIEJsYWNrQmVycnk6OldlYktpdDo6SW5zcGVjdG9yT3ZlcmxheTo6SW5zcGVjdG9yT3Zl
cmxheUNsaWVudCB7CiBwdWJsaWM6CiAgICAgSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeShCbGFj
a0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKik7CiAgICAgdmlydHVhbCB2b2lkIGluc3Bl
Y3RvckRlc3Ryb3llZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwCmluZGV4IDllZTVmNjUxN2Vm
YzNkODNmYzliOWM4Yzk0MzMxZGUwYTc0Mzg5ZjYuLmVlNWQzMzM0NmEzMmM5ZTM3NzQwNDMyZDNm
N2EyZmI0Y2U1MDgxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTI3LDQwICsyNyw0
MSBAQAogI2luY2x1ZGUgIldlYlBhZ2VfcC5oIgogCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKK25h
bWVzcGFjZSBCbGFja0JlcnJ5IHsKK25hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzT3duUHRyPElu
c3BlY3Rvck92ZXJsYXk+IEluc3BlY3Rvck92ZXJsYXk6OmNyZWF0ZShCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlBhZ2VQcml2YXRlKiBwYWdlLCBJbnNwZWN0b3JPdmVybGF5Q2xpZW50KiBjbGllbnQp
CitQYXNzT3duUHRyPEluc3BlY3Rvck92ZXJsYXk+IEluc3BlY3Rvck92ZXJsYXk6OmNyZWF0ZShX
ZWJQYWdlUHJpdmF0ZSogcGFnZSwgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCogY2xpZW50KQogewog
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yT3ZlcmxheShwYWdlLCBjbGllbnQpKTsK
IH0KIAotSW5zcGVjdG9yT3ZlcmxheTo6SW5zcGVjdG9yT3ZlcmxheShCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlBhZ2VQcml2YXRlKiBwYWdlLCBJbnNwZWN0b3JPdmVybGF5Q2xpZW50KiBjbGllbnQp
CitJbnNwZWN0b3JPdmVybGF5OjpJbnNwZWN0b3JPdmVybGF5KFdlYlBhZ2VQcml2YXRlKiBwYWdl
LCBJbnNwZWN0b3JPdmVybGF5Q2xpZW50KiBjbGllbnQpCiAgICAgOiBtX3dlYlBhZ2UocGFnZSkK
ICAgICAsIG1fY2xpZW50KGNsaWVudCkKIHsKIH0KIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLXZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVkKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQordm9pZCBJbnNwZWN0b3JPdmVybGF5Ojpub3RpZnlTeW5j
UmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCiB7CiAgICAgbV93
ZWJQYWdlLT5ub3RpZnlTeW5jUmVxdWlyZWQobGF5ZXIpOwogfQogCi12b2lkIEluc3BlY3Rvck92
ZXJsYXk6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGlu
Q2xpcCkKK3ZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
aW5DbGlwKQogewogICAgIGNvbnRleHQuc2F2ZSgpOwotICAgIEludFBvaW50IHNjcm9sbFBvc2l0
aW9uID0gbV93ZWJQYWdlLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+dmlldygpLT5zY3JvbGxQb3Np
dGlvbigpOworICAgIFdlYkNvcmU6OkludFBvaW50IHNjcm9sbFBvc2l0aW9uID0gbV93ZWJQYWdl
LT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+dmlldygpLT5zY3JvbGxQb3NpdGlvbigpOwogICAgIGNv
bnRleHQudHJhbnNsYXRlKHNjcm9sbFBvc2l0aW9uLngoKSwgc2Nyb2xsUG9zaXRpb24ueSgpKTsK
ICAgICBtX2NsaWVudC0+cGFpbnRJbnNwZWN0b3JPdmVybGF5KGNvbnRleHQpOwogICAgIGNvbnRl
eHQucmVzdG9yZSgpOwogfQogCi1ib29sIEluc3BlY3Rvck92ZXJsYXk6OnNob3dEZWJ1Z0JvcmRl
cnMoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Citib29sIEluc3BlY3Rvck92ZXJs
YXk6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fd2ViUGFnZS0+c2hvd0RlYnVnQm9yZGVycyhsYXllcik7
CiB9CiAKLWJvb2wgSW5zcGVjdG9yT3ZlcmxheTo6c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAorYm9vbCBJbnNwZWN0b3JPdmVybGF5OjpzaG93UmVw
YWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fd2ViUGFnZS0+c2hvd1JlcGFpbnRDb3VudGVyKGxheWVyKTsKIH0KQEAg
LTgyLDkgKzgzLDkgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojp1cGRhdGUoKQogewogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoIW1fb3ZlcmxheSkgewotICAgICAg
ICBtX292ZXJsYXkgPSBhZG9wdFB0cihuZXcgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJPdmVybGF5
KHRoaXMpKTsKLSAgICAgICAgY29uc3QgSW50U2l6ZSBzaXplID0gbV93ZWJQYWdlLT5jb250ZW50
c1NpemUoKTsKLSAgICAgICAgbV9vdmVybGF5LT5zZXRTaXplKEZsb2F0U2l6ZShzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCkpKTsKKyAgICAgICAgbV9vdmVybGF5ID0gYWRvcHRQdHIobmV3IFdl
Yk92ZXJsYXkodGhpcykpOworICAgICAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplIHNpemUgPSBt
X3dlYlBhZ2UtPmNvbnRlbnRzU2l6ZSgpOworICAgICAgICBtX292ZXJsYXktPnNldFNpemUoV2Vi
Q29yZTo6RmxvYXRTaXplKHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOwogICAgICAgICBt
X3dlYlBhZ2UtPm1fd2ViUGFnZS0+YWRkT3ZlcmxheShtX292ZXJsYXkuZ2V0KCkpOwogICAgIH0K
IApAQCAtOTUsMyArOTYsNCBAQCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZSgpCiB9CiAK
IH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9JbnNwZWN0b3JPdmVybGF5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvSW5zcGVjdG9yT3ZlcmxheS5oCmluZGV4IDIxNTM5MWYyZjRhYzAyNzY1Mzg3NDBmNjk1
MTI2MDkzMTc0ZTAwN2YuLmUzNDFmMzY0ZmI3MWQxNzlhMGVlNTc0Y2JlNGYzMGZjNDYwN2U0MDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNw
ZWN0b3JPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0luc3BlY3Rvck92ZXJsYXkuaApAQCAtMjQsMjUgKzI0LDIzIEBACiAjaW5jbHVkZSA8d3Rm
L093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKLW5hbWVzcGFjZSBCbGFj
a0JlcnJ5IHsKLW5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2ViUGFnZVByaXZhdGU7Ci19Ci19
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEdy
YXBoaWNzTGF5ZXI7Cit9CiAKK25hbWVzcGFjZSBCbGFja0JlcnJ5IHsKK25hbWVzcGFjZSBXZWJL
aXQgeworY2xhc3MgV2ViUGFnZVByaXZhdGU7CiAKIGNsYXNzIEluc3BlY3Rvck92ZXJsYXkgOiBw
dWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllckNsaWVudCB7CiBwdWJsaWM6CiAgICAgY2xhc3Mg
SW5zcGVjdG9yT3ZlcmxheUNsaWVudCB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRJbnNwZWN0b3JPdmVybGF5KEdyYXBoaWNzQ29udGV4dCYpID0gMDsKKyAgICAgICAg
dmlydHVhbCB2b2lkIHBhaW50SW5zcGVjdG9yT3ZlcmxheShXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQmKSA9IDA7CiAgICAgfTsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3Rvck92ZXJs
YXk+IGNyZWF0ZShCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKiwgSW5zcGVjdG9y
T3ZlcmxheUNsaWVudCopOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3Rvck92ZXJsYXk+
IGNyZWF0ZShXZWJQYWdlUHJpdmF0ZSosIEluc3BlY3Rvck92ZXJsYXlDbGllbnQqKTsKIAogICAg
IH5JbnNwZWN0b3JPdmVybGF5KCk7CiAKQEAgLTUwLDI2ICs0OCwyNiBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGNsZWFyKCk7CiAgICAgdm9pZCB1cGRhdGUoKTsKLSAgICB2b2lkIHBhaW50V2ViRnJh
bWUoR3JhcGhpY3NDb250ZXh0Jik7CisgICAgdm9pZCBwYWludFdlYkZyYW1lKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCYpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBkb3VibGUgdGltZSkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChj
b25zdCBHcmFwaGljc0xheWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29u
c3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGlu
Z1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApOwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVi
dWdCb3JkZXJzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wg
c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKiwgZG91YmxlIHRpbWUpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWly
ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZpcnR1YWwgdm9pZCBwYWlu
dENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgaW5DbGlwKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVy
cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7
CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JPdmVybGF5KEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViUGFnZVByaXZhdGUqLCBJbnNwZWN0b3JPdmVybGF5Q2xpZW50Kik7CisgICAgSW5z
cGVjdG9yT3ZlcmxheShXZWJQYWdlUHJpdmF0ZSosIEluc3BlY3Rvck92ZXJsYXlDbGllbnQqKTsK
ICAgICB2b2lkIGludmFsaWRhdGVXZWJGcmFtZSgpOwogCi0gICAgQmxhY2tCZXJyeTo6V2ViS2l0
OjpXZWJQYWdlUHJpdmF0ZSogbV93ZWJQYWdlOworICAgIFdlYlBhZ2VQcml2YXRlKiBtX3dlYlBh
Z2U7CiAgICAgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCogbV9jbGllbnQ7Ci0gICAgT3duUHRyPEJs
YWNrQmVycnk6OldlYktpdDo6V2ViT3ZlcmxheT4gbV9vdmVybGF5OworICAgIE93blB0cjxXZWJP
dmVybGF5PiBtX292ZXJsYXk7CiB9OwogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorfSAvLyBuYW1lc3BhY2UgQmxhY2tCZXJyeQogCiAjZW5kaWYgLyog
SW5zcGVjdG9yT3ZlcmxheV9oICovCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156441</attachid>
            <date>2012-08-03 12:58:58 -0700</date>
            <delta_ts>2012-08-03 12:59:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93124-20120803155841.patch</filename>
            <type>text/plain</type>
            <size>14240</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCAyM2Q4Mzc2Njc5NmE4N2UwMDA1OGIxMzVmNjU3MjczMzZlNGU3Njg2Li5hNjllZDhlZTA0
YjY0NmUwNzk5MWYwODY5NWNjM2YxMzM2M2EzODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTMsNiArMywzNSBAQAogICAgICAgICBbQmxhY2tCZXJyeV0gSW5zcGVjdG9yT3Zl
cmxheSBjbGFzcyBkdXBsaWNhdGVkIGluIFdlYkNvcmUKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTI0CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZWQgSW5zcGVjdG9yT3ZlcmxheSBmaWxlcyBmcm9t
IFdlYkNvcmVTdXBwb3J0IHRvIFdlYktpdFN1cHBvcnQgdG8KKyAgICAgICAgYmV0dGVyIGFsaWdu
IGRpcmVjdG9yeSBzdHJ1Y3R1cmUgd2l0aCB0aGUgbmFtZXNwYWNlLgorCisgICAgICAgICogV2Vi
S2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmNwcC4KKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Okluc3BlY3Rvck92ZXJs
YXk6OmNyZWF0ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Okluc3BlY3Rvck92ZXJs
YXk6Okluc3BlY3Rvck92ZXJsYXkpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnNw
ZWN0b3JPdmVybGF5Ojpub3RpZnlTeW5jUmVxdWlyZWQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpJbnNwZWN0b3JPdmVybGF5OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6SW5zcGVjdG9yT3ZlcmxheTo6c2hvd0RlYnVnQm9yZGVycyk6CisgICAg
ICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Okluc3BlY3Rvck92ZXJsYXk6OnNob3dSZXBhaW50Q291
bnRlcik6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Okluc3BlY3Rvck92ZXJsYXk6On5J
bnNwZWN0b3JPdmVybGF5KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SW5zcGVjdG9y
T3ZlcmxheTo6Y2xlYXIpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnNwZWN0b3JP
dmVybGF5Ojp1cGRhdGUpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3Zlcmxh
eS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0luc3BlY3Rvck92ZXJsYXkuaC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKEluc3BlY3Rvck92ZXJsYXkpOgorICAgICAgICAoSW5zcGVjdG9yT3Zlcmxh
eUNsaWVudCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Okluc3BlY3Rvck92ZXJsYXk6
OnNldENsaWVudCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Okluc3BlY3Rvck92ZXJs
YXk6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQpOgorCisyMDEyLTA4LTAzICBLb25yYWQgUGlhc2Np
ayAgPGtwaWFzY2lrQHJpbS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIEluc3BlY3Rvck92
ZXJsYXkgY2xhc3MgZHVwbGljYXRlZCBpbiBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzEyNAorCiAgICAgICAgIFJldmlld2VkIGJ5IFJv
YiBCdWlzLgogCiAgICAgICAgIENoYW5nZWQgbmFtZXNwYWNlIG9mIEluc3BlY3Rvck92ZXJsYXkg
ZnJvbSBXZWJDb3JlIHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGVlNWQzMzM0NmEzMmM5ZTM3NzQwNDMyZDNmN2EyZmI0Y2U1MDgxNGUuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsOTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0g
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
LSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5
LmgiCi0KLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKLSNpbmNs
dWRlICJXZWJQYWdlX3AuaCIKLQotCi1uYW1lc3BhY2UgQmxhY2tCZXJyeSB7Ci1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotUGFzc093blB0cjxJbnNwZWN0b3JPdmVybGF5PiBJbnNwZWN0b3JPdmVybGF5
OjpjcmVhdGUoV2ViUGFnZVByaXZhdGUqIHBhZ2UsIEluc3BlY3Rvck92ZXJsYXlDbGllbnQqIGNs
aWVudCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3Rvck92ZXJsYXkocGFnZSwg
Y2xpZW50KSk7Ci19Ci0KLUluc3BlY3Rvck92ZXJsYXk6Okluc3BlY3Rvck92ZXJsYXkoV2ViUGFn
ZVByaXZhdGUqIHBhZ2UsIEluc3BlY3Rvck92ZXJsYXlDbGllbnQqIGNsaWVudCkKLSAgICA6IG1f
d2ViUGFnZShwYWdlKQotICAgICwgbV9jbGllbnQoY2xpZW50KQotewotfQotCi0jaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojpub3RpZnlTeW5j
UmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCi17Ci0gICAgbV93
ZWJQYWdlLT5ub3RpZnlTeW5jUmVxdWlyZWQobGF5ZXIpOwotfQotCi12b2lkIEluc3BlY3Rvck92
ZXJsYXk6OnBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCkKLXsKLSAgICBjb250ZXh0
LnNhdmUoKTsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IG1fd2ViUGFn
ZS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPnZpZXcoKS0+c2Nyb2xsUG9zaXRpb24oKTsKLSAgICBj
b250ZXh0LnRyYW5zbGF0ZShzY3JvbGxQb3NpdGlvbi54KCksIHNjcm9sbFBvc2l0aW9uLnkoKSk7
Ci0gICAgbV9jbGllbnQtPnBhaW50SW5zcGVjdG9yT3ZlcmxheShjb250ZXh0KTsKLSAgICBjb250
ZXh0LnJlc3RvcmUoKTsKLX0KLQotYm9vbCBJbnNwZWN0b3JPdmVybGF5OjpzaG93RGVidWdCb3Jk
ZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAotewotICAgIHJl
dHVybiBtX3dlYlBhZ2UtPnNob3dEZWJ1Z0JvcmRlcnMobGF5ZXIpOwotfQotCi1ib29sIEluc3Bl
Y3Rvck92ZXJsYXk6OnNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKiBsYXllcikgY29uc3QKLXsKLSAgICByZXR1cm4gbV93ZWJQYWdlLT5zaG93UmVwYWludENv
dW50ZXIobGF5ZXIpOwotfQotI2VuZGlmCi0KLUluc3BlY3Rvck92ZXJsYXk6On5JbnNwZWN0b3JP
dmVybGF5KCkgeyB9Ci0KLXZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6Y2xlYXIoKQotewotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAobV9vdmVybGF5KSB7Ci0gICAgICAg
IG1fb3ZlcmxheS0+cmVtb3ZlRnJvbVBhcmVudCgpOwotICAgICAgICBtX292ZXJsYXkgPSBudWxs
cHRyOwotICAgIH0KLSNlbmRpZgotfQotCi12b2lkIEluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZSgp
Ci17Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlmICghbV9vdmVybGF5
KSB7Ci0gICAgICAgIG1fb3ZlcmxheSA9IGFkb3B0UHRyKG5ldyBXZWJPdmVybGF5KHRoaXMpKTsK
LSAgICAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSBzaXplID0gbV93ZWJQYWdlLT5jb250ZW50
c1NpemUoKTsKLSAgICAgICAgbV9vdmVybGF5LT5zZXRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZShz
aXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKLSAgICAgICAgbV93ZWJQYWdlLT5tX3dlYlBh
Z2UtPmFkZE92ZXJsYXkobV9vdmVybGF5LmdldCgpKTsKLSAgICB9Ci0KLSAgICBtX292ZXJsYXkt
PnNldERyYXdzQ29udGVudCh0cnVlKTsKLSAgICBtX292ZXJsYXktPnNldE9wYWNpdHkoMS4wKTsK
LSAgICBtX292ZXJsYXktPmludmFsaWRhdGUoKTsKLSNlbmRpZgotfQotCi19Ci19CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yT3Zl
cmxheS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rv
ck92ZXJsYXkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTM0MWYzNjRmYjcxZDE3
OWEwZWU1NzRjYmU0ZjMwZmM0NjA3ZTQwMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yT3ZlcmxheS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0g
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
Ci0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaWZuZGVmIEluc3BlY3Rvck92ZXJs
YXlfaAotI2RlZmluZSBJbnNwZWN0b3JPdmVybGF5X2gKLQotI2luY2x1ZGUgIldlYk92ZXJsYXku
aCIKLSNpbmNsdWRlIDxHcmFwaGljc0xheWVyQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8d3RmL093blB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LWNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLWNsYXNzIEdyYXBoaWNzTGF5ZXI7Ci19Ci0KLW5hbWVz
cGFjZSBCbGFja0JlcnJ5IHsKLW5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2ViUGFnZVByaXZh
dGU7Ci0KLWNsYXNzIEluc3BlY3Rvck92ZXJsYXkgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgY2xhc3MgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCB7
Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRJbnNwZWN0b3JPdmVybGF5
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYpID0gMDsKLSAgICB9OwotCi0gICAgc3RhdGljIFBh
c3NPd25QdHI8SW5zcGVjdG9yT3ZlcmxheT4gY3JlYXRlKFdlYlBhZ2VQcml2YXRlKiwgSW5zcGVj
dG9yT3ZlcmxheUNsaWVudCopOwotCi0gICAgfkluc3BlY3Rvck92ZXJsYXkoKTsKLQotICAgIHZv
aWQgc2V0Q2xpZW50KEluc3BlY3Rvck92ZXJsYXlDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9
IGNsaWVudDsgfQotCi0gICAgdm9pZCBjbGVhcigpOwotICAgIHZvaWQgdXBkYXRlKCk7Ci0gICAg
dm9pZCBwYWludFdlYkZyYW1lKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYpOwotCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRp
b25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXAp
OwotICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBjb25zdDsKLSNlbmRpZgotCi1wcml2YXRlOgot
ICAgIEluc3BlY3Rvck92ZXJsYXkoV2ViUGFnZVByaXZhdGUqLCBJbnNwZWN0b3JPdmVybGF5Q2xp
ZW50Kik7Ci0gICAgdm9pZCBpbnZhbGlkYXRlV2ViRnJhbWUoKTsKLQotICAgIFdlYlBhZ2VQcml2
YXRlKiBtX3dlYlBhZ2U7Ci0gICAgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCogbV9jbGllbnQ7Ci0g
ICAgT3duUHRyPFdlYk92ZXJsYXk+IG1fb3ZlcmxheTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdAotfSAvLyBuYW1lc3BhY2UgQmxhY2tCZXJyeQotCi0jZW5kaWYgLyogSW5zcGVjdG9yT3Zl
cmxheV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9JbnNwZWN0b3JPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlNWQzMzM0NmEzMmM5
ZTM3NzQwNDMyZDNmN2EyZmI0Y2U1MDgxNGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmNwcApAQCAtMCww
ICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkluc3BlY3Rvck92ZXJsYXkuaCIKKworI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgorI2luY2x1ZGUgIldlYlBhZ2Vf
cC5oIgorCisKK25hbWVzcGFjZSBCbGFja0JlcnJ5IHsKK25hbWVzcGFjZSBXZWJLaXQgeworCitQ
YXNzT3duUHRyPEluc3BlY3Rvck92ZXJsYXk+IEluc3BlY3Rvck92ZXJsYXk6OmNyZWF0ZShXZWJQ
YWdlUHJpdmF0ZSogcGFnZSwgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCogY2xpZW50KQoreworICAg
IHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yT3ZlcmxheShwYWdlLCBjbGllbnQpKTsKK30K
KworSW5zcGVjdG9yT3ZlcmxheTo6SW5zcGVjdG9yT3ZlcmxheShXZWJQYWdlUHJpdmF0ZSogcGFn
ZSwgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCogY2xpZW50KQorICAgIDogbV93ZWJQYWdlKHBhZ2Up
CisgICAgLCBtX2NsaWVudChjbGllbnQpCit7Cit9CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCit2b2lkIEluc3BlY3Rvck92ZXJsYXk6Om5vdGlmeVN5bmNSZXF1aXJlZChjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllcikKK3sKKyAgICBtX3dlYlBhZ2UtPm5vdGlm
eVN5bmNSZXF1aXJlZChsYXllcik7Cit9CisKK3ZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6cGFpbnRD
b250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKQoreworICAgIGNvbnRleHQuc2F2ZSgpOworICAg
IFdlYkNvcmU6OkludFBvaW50IHNjcm9sbFBvc2l0aW9uID0gbV93ZWJQYWdlLT5mb2N1c2VkT3JN
YWluRnJhbWUoKS0+dmlldygpLT5zY3JvbGxQb3NpdGlvbigpOworICAgIGNvbnRleHQudHJhbnNs
YXRlKHNjcm9sbFBvc2l0aW9uLngoKSwgc2Nyb2xsUG9zaXRpb24ueSgpKTsKKyAgICBtX2NsaWVu
dC0+cGFpbnRJbnNwZWN0b3JPdmVybGF5KGNvbnRleHQpOworICAgIGNvbnRleHQucmVzdG9yZSgp
OworfQorCitib29sIEluc3BlY3Rvck92ZXJsYXk6OnNob3dEZWJ1Z0JvcmRlcnMoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd2ViUGFn
ZS0+c2hvd0RlYnVnQm9yZGVycyhsYXllcik7Cit9CisKK2Jvb2wgSW5zcGVjdG9yT3ZlcmxheTo6
c2hvd1JlcGFpbnRDb3VudGVyKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyKSBj
b25zdAoreworICAgIHJldHVybiBtX3dlYlBhZ2UtPnNob3dSZXBhaW50Q291bnRlcihsYXllcik7
Cit9CisjZW5kaWYKKworSW5zcGVjdG9yT3ZlcmxheTo6fkluc3BlY3Rvck92ZXJsYXkoKSB7IH0K
Kwordm9pZCBJbnNwZWN0b3JPdmVybGF5OjpjbGVhcigpCit7CisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQorICAgIGlmIChtX292ZXJsYXkpIHsKKyAgICAgICAgbV9vdmVybGF5LT5y
ZW1vdmVGcm9tUGFyZW50KCk7CisgICAgICAgIG1fb3ZlcmxheSA9IG51bGxwdHI7CisgICAgfQor
I2VuZGlmCit9CisKK3ZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6dXBkYXRlKCkKK3sKKyNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgaWYgKCFtX292ZXJsYXkpIHsKKyAgICAgICAg
bV9vdmVybGF5ID0gYWRvcHRQdHIobmV3IFdlYk92ZXJsYXkodGhpcykpOworICAgICAgICBjb25z
dCBXZWJDb3JlOjpJbnRTaXplIHNpemUgPSBtX3dlYlBhZ2UtPmNvbnRlbnRzU2l6ZSgpOworICAg
ICAgICBtX292ZXJsYXktPnNldFNpemUoV2ViQ29yZTo6RmxvYXRTaXplKHNpemUud2lkdGgoKSwg
c2l6ZS5oZWlnaHQoKSkpOworICAgICAgICBtX3dlYlBhZ2UtPm1fd2ViUGFnZS0+YWRkT3Zlcmxh
eShtX292ZXJsYXkuZ2V0KCkpOworICAgIH0KKworICAgIG1fb3ZlcmxheS0+c2V0RHJhd3NDb250
ZW50KHRydWUpOworICAgIG1fb3ZlcmxheS0+c2V0T3BhY2l0eSgxLjApOworICAgIG1fb3Zlcmxh
eS0+aW52YWxpZGF0ZSgpOworI2VuZGlmCit9CisKK30KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuaCBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMzQxZjM2NGZiNzFkMTc5YTBlZTU3NGNiZTRmMzBmYzQ2MDdlNDAzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVj
dG9yT3ZlcmxheS5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisgKi8KKworI2lmbmRlZiBJbnNwZWN0b3JPdmVybGF5X2gKKyNkZWZpbmUgSW5zcGVj
dG9yT3ZlcmxheV9oCisKKyNpbmNsdWRlICJXZWJPdmVybGF5LmgiCisjaW5jbHVkZSA8R3JhcGhp
Y3NMYXllckNsaWVudC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7CitjbGFzcyBHcmFwaGljc0xheWVyOworfQorCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7Citu
YW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcml2YXRlOworCitjbGFzcyBJbnNwZWN0
b3JPdmVybGF5IDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDbGllbnQgeworcHVibGlj
OgorICAgIGNsYXNzIEluc3BlY3Rvck92ZXJsYXlDbGllbnQgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHBhaW50SW5zcGVjdG9yT3ZlcmxheShXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQmKSA9IDA7CisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3Rvck92
ZXJsYXk+IGNyZWF0ZShXZWJQYWdlUHJpdmF0ZSosIEluc3BlY3Rvck92ZXJsYXlDbGllbnQqKTsK
KworICAgIH5JbnNwZWN0b3JPdmVybGF5KCk7CisKKyAgICB2b2lkIHNldENsaWVudChJbnNwZWN0
b3JPdmVybGF5Q2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKworICAgIHZv
aWQgY2xlYXIoKTsKKyAgICB2b2lkIHVwZGF0ZSgpOworICAgIHZvaWQgcGFpbnRXZWJGcmFtZShX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKTsKKworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBu
b3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZp
cnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKKyAgICB2aXJ0dWFsIGJvb2wg
c2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgY29uc3Q7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBJbnNwZWN0b3JPdmVybGF5
KFdlYlBhZ2VQcml2YXRlKiwgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCopOworICAgIHZvaWQgaW52
YWxpZGF0ZVdlYkZyYW1lKCk7CisKKyAgICBXZWJQYWdlUHJpdmF0ZSogbV93ZWJQYWdlOworICAg
IEluc3BlY3Rvck92ZXJsYXlDbGllbnQqIG1fY2xpZW50OworICAgIE93blB0cjxXZWJPdmVybGF5
PiBtX292ZXJsYXk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKK30gLy8gbmFtZXNwYWNl
IEJsYWNrQmVycnkKKworI2VuZGlmIC8qIEluc3BlY3Rvck92ZXJsYXlfaCAqLwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156959</attachid>
            <date>2012-08-07 11:12:11 -0700</date>
            <delta_ts>2012-08-07 12:09:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93124-20120807141203.patch</filename>
            <type>text/plain</type>
            <size>15888</size>
            <attacher name="Konrad Piascik">kpiascik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NjM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE2ZWYxNDA2ZTYwOGYyZWVl
ZWQwNWIxZWFhOWE0MmYxOGYwYzI2NzguLjlhMWQ1MDFmYmRlMGIwZjQ0YzRjNzI3NDBjZGNlOGY3
NGY5M2MxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDgtMDcgIEtvbnJhZCBQ
aWFzY2lrICA8a3BpYXNjaWtAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gSW5zcGVj
dG9yT3ZlcmxheSBjbGFzcyBkdXBsaWNhdGVkIGluIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTI0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCBJbnNwZWN0b3JPdmVybGF5IGJ1
aWxkIHBhdGguCisKKyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisKIDIwMTIt
MDgtMDEgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tC
ZXJyeV0gSW1wbGVtZW50IEluUmVnaW9uU2Nyb2xsZXIgY2xhc3MgYXMgYSBpbi1yZWdpb24gc2Ny
b2xsIGNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDIzZDgzNzY2
Nzk2YTg3ZTAwMDU4YjEzNWY2NTcyNzMzNmU0ZTc2ODYuLjBhZDA5NDAwOTgzMDM2OWYwMjY5MjA0
YTJlYTI4Mjk2ODZmMzdlY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMxIEBACisyMDEyLTA4LTA3ICBLb25yYWQgUGlhc2NpayAgPGtwaWFzY2lrQHJpbS5jb20+
CisKKyAgICAgICAgW0JsYWNrQmVycnldIEluc3BlY3Rvck92ZXJsYXkgY2xhc3MgZHVwbGljYXRl
ZCBpbiBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MzEyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1vdmVkIGZpbGVzIHRvIGJldHRlciBhbGlnbiB3aXRoIG5hbWVzcGFjZSBuYW1lcy4KKwor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheS5jcHA6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yT3Zlcmxh
eS5jcHAuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJ
bnNwZWN0b3JPdmVybGF5OjpjcmVhdGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJ
bnNwZWN0b3JPdmVybGF5OjpJbnNwZWN0b3JPdmVybGF5KToKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6SW5zcGVjdG9yT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVpcmVkKToKKyAgICAgICAg
KEJsYWNrQmVycnk6OldlYktpdDo6SW5zcGVjdG9yT3ZlcmxheTo6cGFpbnRDb250ZW50cyk6Cisg
ICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6Okluc3BlY3Rvck92ZXJsYXk6OnNob3dEZWJ1Z0Jv
cmRlcnMpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnNwZWN0b3JPdmVybGF5Ojpz
aG93UmVwYWludENvdW50ZXIpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnNwZWN0
b3JPdmVybGF5Ojp+SW5zcGVjdG9yT3ZlcmxheSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6Okluc3BlY3Rvck92ZXJsYXk6OmNsZWFyKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktp
dDo6SW5zcGVjdG9yT3ZlcmxheTo6dXBkYXRlKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0lu
c3BlY3Rvck92ZXJsYXkuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmguCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChJbnNwZWN0b3JPdmVybGF5KToKKyAgICAgICAgKElu
c3BlY3Rvck92ZXJsYXlDbGllbnQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJbnNw
ZWN0b3JPdmVybGF5OjpzZXRDbGllbnQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpJ
bnNwZWN0b3JPdmVybGF5Ojpub3RpZnlBbmltYXRpb25TdGFydGVkKToKKwogMjAxMi0wOC0wMyAg
S29ucmFkIFBpYXNjaWsgIDxrcGlhc2Npa0ByaW0uY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5
XSBJbnNwZWN0b3JPdmVybGF5IGNsYXNzIGR1cGxpY2F0ZWQgaW4gV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQppbmRleCA4ZGFiYzg1ZWNiMTdmMDczNGM0YjJkZDFl
NDQ1YjMxZGQwYzg2Nzg5Li5lZTExZWQ2Njk1MzNmYWM3Yzk0MWI4MWIyNDIzMDIxNDdmN2E0ZWRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtODQsNyArODQsNiBA
QCBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBv
cnQvR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKICAgICBibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0ljb25EYXRhYmFzZUNsaWVudEJsYWNrQmVycnkuY3BwCiAgICAg
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAot
ICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheS5jcHAKICAgICBi
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0phdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkuY3Bw
CiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBs
LmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvVmlicmF0aW9uQ2xpZW50QmxhY2tC
ZXJyeS5jcHAKQEAgLTEwMiw2ICsxMDEsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNFUwog
ICAgIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwCiAgICAgYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0luUmVnaW9uU2Nyb2xsYWJsZUFyZWEuY3BwCiAgICAgYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0luUmVnaW9uU2Nyb2xsZXIuY3BwCisgICAgYmxhY2tiZXJyeS9X
ZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L1JlbmRlclF1ZXVlLmNwcAogICAgIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxl
Y3Rpb25IYW5kbGVyLmNwcAogICAgIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9TZWxlY3Rpb25P
dmVybGF5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlZTVkMzMzNDZhMzJjOWUzNzc0MDQzMmQzZjdhMmZiNGNlNTA4MTRlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDk5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4g
TW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwot
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYwotICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiSW5zcGVjdG9yT3ZlcmxheS5oIgot
Ci0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZVZpZXcuaCIKLSNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCi0jaW5jbHVkZSAi
V2ViUGFnZV9wLmgiCi0KLQotbmFtZXNwYWNlIEJsYWNrQmVycnkgewotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLVBhc3NPd25QdHI8SW5zcGVjdG9yT3ZlcmxheT4gSW5zcGVjdG9yT3ZlcmxheTo6Y3Jl
YXRlKFdlYlBhZ2VQcml2YXRlKiBwYWdlLCBJbnNwZWN0b3JPdmVybGF5Q2xpZW50KiBjbGllbnQp
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JPdmVybGF5KHBhZ2UsIGNsaWVu
dCkpOwotfQotCi1JbnNwZWN0b3JPdmVybGF5OjpJbnNwZWN0b3JPdmVybGF5KFdlYlBhZ2VQcml2
YXRlKiBwYWdlLCBJbnNwZWN0b3JPdmVybGF5Q2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3dlYlBh
Z2UocGFnZSkKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKLXsKLX0KLQotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKLXZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6bm90aWZ5U3luY1JlcXVp
cmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyKQotewotICAgIG1fd2ViUGFn
ZS0+bm90aWZ5U3luY1JlcXVpcmVkKGxheWVyKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JPdmVybGF5
OjpwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludGluZ1Bo
YXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbkNsaXApCi17Ci0gICAgY29udGV4dC5zYXZl
KCk7Ci0gICAgV2ViQ29yZTo6SW50UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSBtX3dlYlBhZ2UtPmZv
Y3VzZWRPck1haW5GcmFtZSgpLT52aWV3KCktPnNjcm9sbFBvc2l0aW9uKCk7Ci0gICAgY29udGV4
dC50cmFuc2xhdGUoc2Nyb2xsUG9zaXRpb24ueCgpLCBzY3JvbGxQb3NpdGlvbi55KCkpOwotICAg
IG1fY2xpZW50LT5wYWludEluc3BlY3Rvck92ZXJsYXkoY29udGV4dCk7Ci0gICAgY29udGV4dC5y
ZXN0b3JlKCk7Ci19Ci0KLWJvb2wgSW5zcGVjdG9yT3ZlcmxheTo6c2hvd0RlYnVnQm9yZGVycyhj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllcikgY29uc3QKLXsKLSAgICByZXR1cm4g
bV93ZWJQYWdlLT5zaG93RGVidWdCb3JkZXJzKGxheWVyKTsKLX0KLQotYm9vbCBJbnNwZWN0b3JP
dmVybGF5OjpzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciog
bGF5ZXIpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+c2hvd1JlcGFpbnRDb3VudGVy
KGxheWVyKTsKLX0KLSNlbmRpZgotCi1JbnNwZWN0b3JPdmVybGF5Ojp+SW5zcGVjdG9yT3Zlcmxh
eSgpIHsgfQotCi12b2lkIEluc3BlY3Rvck92ZXJsYXk6OmNsZWFyKCkKLXsKLSNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKG1fb3ZlcmxheSkgewotICAgICAgICBtX292
ZXJsYXktPnJlbW92ZUZyb21QYXJlbnQoKTsKLSAgICAgICAgbV9vdmVybGF5ID0gbnVsbHB0cjsK
LSAgICB9Ci0jZW5kaWYKLX0KLQotdm9pZCBJbnNwZWN0b3JPdmVybGF5Ojp1cGRhdGUoKQotewot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBpZiAoIW1fb3ZlcmxheSkgewot
ICAgICAgICBtX292ZXJsYXkgPSBhZG9wdFB0cihuZXcgV2ViT3ZlcmxheSh0aGlzKSk7Ci0gICAg
ICAgIGNvbnN0IFdlYkNvcmU6OkludFNpemUgc2l6ZSA9IG1fd2ViUGFnZS0+Y29udGVudHNTaXpl
KCk7Ci0gICAgICAgIG1fb3ZlcmxheS0+c2V0U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUoc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKSk7Ci0gICAgICAgIG1fd2ViUGFnZS0+bV93ZWJQYWdlLT5h
ZGRPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSk7Ci0gICAgfQotCi0gICAgbV9vdmVybGF5LT5zZXRE
cmF3c0NvbnRlbnQodHJ1ZSk7Ci0gICAgbV9vdmVybGF5LT5zZXRPcGFjaXR5KDEuMCk7Ci0gICAg
bV9vdmVybGF5LT5pbnZhbGlkYXRlKCk7Ci0jZW5kaWYKLX0KLQotfQotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3BlY3Rvck92ZXJsYXku
aCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JPdmVy
bGF5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzNDFmMzY0ZmI3MWQxNzlhMGVl
NTc0Y2JlNGYzMGZjNDYwN2U0MDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3Rvck92ZXJsYXkuaAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICog
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2lmbmRlZiBJbnNwZWN0b3JPdmVybGF5X2gK
LSNkZWZpbmUgSW5zcGVjdG9yT3ZlcmxheV9oCi0KLSNpbmNsdWRlICJXZWJPdmVybGF5LmgiCi0j
aW5jbHVkZSA8R3JhcGhpY3NMYXllckNsaWVudC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4K
LSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFz
cyBHcmFwaGljc0NvbnRleHQ7Ci1jbGFzcyBHcmFwaGljc0xheWVyOwotfQotCi1uYW1lc3BhY2Ug
QmxhY2tCZXJyeSB7Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYlBhZ2VQcml2YXRlOwot
Ci1jbGFzcyBJbnNwZWN0b3JPdmVybGF5IDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJD
bGllbnQgewotcHVibGljOgotICAgIGNsYXNzIEluc3BlY3Rvck92ZXJsYXlDbGllbnQgewotICAg
IHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB2b2lkIHBhaW50SW5zcGVjdG9yT3ZlcmxheShXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQmKSA9IDA7Ci0gICAgfTsKLQotICAgIHN0YXRpYyBQYXNzT3du
UHRyPEluc3BlY3Rvck92ZXJsYXk+IGNyZWF0ZShXZWJQYWdlUHJpdmF0ZSosIEluc3BlY3Rvck92
ZXJsYXlDbGllbnQqKTsKLQotICAgIH5JbnNwZWN0b3JPdmVybGF5KCk7Ci0KLSAgICB2b2lkIHNl
dENsaWVudChJbnNwZWN0b3JPdmVybGF5Q2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGll
bnQ7IH0KLQotICAgIHZvaWQgY2xlYXIoKTsKLSAgICB2b2lkIHVwZGF0ZSgpOwotICAgIHZvaWQg
cGFpbnRXZWJGcmFtZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKTsKLQotI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3Rh
cnRlZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopOwotICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcihjb25zdCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgY29uc3Q7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBJ
bnNwZWN0b3JPdmVybGF5KFdlYlBhZ2VQcml2YXRlKiwgSW5zcGVjdG9yT3ZlcmxheUNsaWVudCop
OwotICAgIHZvaWQgaW52YWxpZGF0ZVdlYkZyYW1lKCk7Ci0KLSAgICBXZWJQYWdlUHJpdmF0ZSog
bV93ZWJQYWdlOwotICAgIEluc3BlY3Rvck92ZXJsYXlDbGllbnQqIG1fY2xpZW50OwotICAgIE93
blB0cjxXZWJPdmVybGF5PiBtX292ZXJsYXk7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LX0gLy8gbmFtZXNwYWNlIEJsYWNrQmVycnkKLQotI2VuZGlmIC8qIEluc3BlY3Rvck92ZXJsYXlf
aCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQv
SW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9JbnNwZWN0b3JPdmVybGF5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTVkMzMzNDZhMzJjOWUzNzc0
MDQzMmQzZjdhMmZiNGNlNTA4MTRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5zcGVjdG9yT3ZlcmxheS5jcHAKQEAgLTAsMCArMSw5
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCisKKyNpbmNsdWRlICJG
cmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlX3AuaCIK
KworCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc093
blB0cjxJbnNwZWN0b3JPdmVybGF5PiBJbnNwZWN0b3JPdmVybGF5OjpjcmVhdGUoV2ViUGFnZVBy
aXZhdGUqIHBhZ2UsIEluc3BlY3Rvck92ZXJsYXlDbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1
cm4gYWRvcHRQdHIobmV3IEluc3BlY3Rvck92ZXJsYXkocGFnZSwgY2xpZW50KSk7Cit9CisKK0lu
c3BlY3Rvck92ZXJsYXk6Okluc3BlY3Rvck92ZXJsYXkoV2ViUGFnZVByaXZhdGUqIHBhZ2UsIElu
c3BlY3Rvck92ZXJsYXlDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fd2ViUGFnZShwYWdlKQorICAg
ICwgbV9jbGllbnQoY2xpZW50KQoreworfQorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQordm9pZCBJbnNwZWN0b3JPdmVybGF5Ojpub3RpZnlTeW5jUmVxdWlyZWQoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCit7CisgICAgbV93ZWJQYWdlLT5ub3RpZnlTeW5j
UmVxdWlyZWQobGF5ZXIpOworfQorCit2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnBhaW50Q29udGVu
dHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIGluQ2xpcCkKK3sKKyAgICBjb250ZXh0LnNhdmUoKTsKKyAgICBXZWJD
b3JlOjpJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IG1fd2ViUGFnZS0+Zm9jdXNlZE9yTWFpbkZy
YW1lKCktPnZpZXcoKS0+c2Nyb2xsUG9zaXRpb24oKTsKKyAgICBjb250ZXh0LnRyYW5zbGF0ZShz
Y3JvbGxQb3NpdGlvbi54KCksIHNjcm9sbFBvc2l0aW9uLnkoKSk7CisgICAgbV9jbGllbnQtPnBh
aW50SW5zcGVjdG9yT3ZlcmxheShjb250ZXh0KTsKKyAgICBjb250ZXh0LnJlc3RvcmUoKTsKK30K
KworYm9vbCBJbnNwZWN0b3JPdmVybGF5OjpzaG93RGVidWdCb3JkZXJzKGNvbnN0IFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqIGxheWVyKSBjb25zdAoreworICAgIHJldHVybiBtX3dlYlBhZ2UtPnNo
b3dEZWJ1Z0JvcmRlcnMobGF5ZXIpOworfQorCitib29sIEluc3BlY3Rvck92ZXJsYXk6OnNob3dS
ZXBhaW50Q291bnRlcihjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBsYXllcikgY29uc3QK
K3sKKyAgICByZXR1cm4gbV93ZWJQYWdlLT5zaG93UmVwYWludENvdW50ZXIobGF5ZXIpOworfQor
I2VuZGlmCisKK0luc3BlY3Rvck92ZXJsYXk6On5JbnNwZWN0b3JPdmVybGF5KCkgeyB9CisKK3Zv
aWQgSW5zcGVjdG9yT3ZlcmxheTo6Y2xlYXIoKQoreworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKKyAgICBpZiAobV9vdmVybGF5KSB7CisgICAgICAgIG1fb3ZlcmxheS0+cmVtb3Zl
RnJvbVBhcmVudCgpOworICAgICAgICBtX292ZXJsYXkgPSBudWxscHRyOworICAgIH0KKyNlbmRp
ZgorfQorCit2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZSgpCit7CisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGlmICghbV9vdmVybGF5KSB7CisgICAgICAgIG1fb3Zl
cmxheSA9IGFkb3B0UHRyKG5ldyBXZWJPdmVybGF5KHRoaXMpKTsKKyAgICAgICAgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSBzaXplID0gbV93ZWJQYWdlLT5jb250ZW50c1NpemUoKTsKKyAgICAgICAg
bV9vdmVybGF5LT5zZXRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZShzaXplLndpZHRoKCksIHNpemUu
aGVpZ2h0KCkpKTsKKyAgICAgICAgbV93ZWJQYWdlLT5tX3dlYlBhZ2UtPmFkZE92ZXJsYXkobV9v
dmVybGF5LmdldCgpKTsKKyAgICB9CisKKyAgICBtX292ZXJsYXktPnNldERyYXdzQ29udGVudCh0
cnVlKTsKKyAgICBtX292ZXJsYXktPnNldE9wYWNpdHkoMS4wKTsKKyAgICBtX292ZXJsYXktPmlu
dmFsaWRhdGUoKTsKKyNlbmRpZgorfQorCit9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmggYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnNwZWN0b3JPdmVybGF5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTM0MWYzNjRmYjcxZDE3OWEwZWU1NzRjYmU0ZjMwZmM0NjA3ZTQwMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0luc3BlY3Rvck92
ZXJsYXkuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2Vh
cmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorICovCisKKyNpZm5kZWYgSW5zcGVjdG9yT3ZlcmxheV9oCisjZGVmaW5lIEluc3BlY3Rvck92
ZXJsYXlfaAorCisjaW5jbHVkZSAiV2ViT3ZlcmxheS5oIgorI2luY2x1ZGUgPEdyYXBoaWNzTGF5
ZXJDbGllbnQuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgR3JhcGhpY3NDb250ZXh0Owor
Y2xhc3MgR3JhcGhpY3NMYXllcjsKK30KKworbmFtZXNwYWNlIEJsYWNrQmVycnkgeworbmFtZXNw
YWNlIFdlYktpdCB7CitjbGFzcyBXZWJQYWdlUHJpdmF0ZTsKKworY2xhc3MgSW5zcGVjdG9yT3Zl
cmxheSA6IHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50IHsKK3B1YmxpYzoKKyAg
ICBjbGFzcyBJbnNwZWN0b3JPdmVybGF5Q2xpZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZp
cnR1YWwgdm9pZCBwYWludEluc3BlY3Rvck92ZXJsYXkoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JikgPSAwOworICAgIH07CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JPdmVybGF5
PiBjcmVhdGUoV2ViUGFnZVByaXZhdGUqLCBJbnNwZWN0b3JPdmVybGF5Q2xpZW50Kik7CisKKyAg
ICB+SW5zcGVjdG9yT3ZlcmxheSgpOworCisgICAgdm9pZCBzZXRDbGllbnQoSW5zcGVjdG9yT3Zl
cmxheUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CisKKyAgICB2b2lkIGNs
ZWFyKCk7CisgICAgdm9pZCB1cGRhdGUoKTsKKyAgICB2b2lkIHBhaW50V2ViRnJhbWUoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0Jik7CisKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
U3luY1JlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2Us
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGluQ2xpcCk7CisgICAgdmlydHVhbCBib29sIHNob3dE
ZWJ1Z0JvcmRlcnMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopIGNvbnN0OworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgSW5zcGVjdG9yT3ZlcmxheShXZWJQ
YWdlUHJpdmF0ZSosIEluc3BlY3Rvck92ZXJsYXlDbGllbnQqKTsKKyAgICB2b2lkIGludmFsaWRh
dGVXZWJGcmFtZSgpOworCisgICAgV2ViUGFnZVByaXZhdGUqIG1fd2ViUGFnZTsKKyAgICBJbnNw
ZWN0b3JPdmVybGF5Q2xpZW50KiBtX2NsaWVudDsKKyAgICBPd25QdHI8V2ViT3ZlcmxheT4gbV9v
dmVybGF5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cit9IC8vIG5hbWVzcGFjZSBCbGFj
a0JlcnJ5CisKKyNlbmRpZiAvKiBJbnNwZWN0b3JPdmVybGF5X2ggKi8K
</data>

          </attachment>
      

    </bug>

</bugzilla>