<?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>81105</bug_id>
          
          <creation_ts>2012-03-14 07:42:43 -0700</creation_ts>
          <short_desc>[BlackBerry] Syncing up left over bits in Api from our local branch to upstream</short_desc>
          <delta_ts>2012-03-16 10:17:21 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nima Ghanavatian">nima.ghanavatian</reporter>
          <assigned_to name="Nima Ghanavatian">nima.ghanavatian</assigned_to>
          <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>578377</commentid>
    <comment_count>0</comment_count>
    <who name="Nima Ghanavatian">nima.ghanavatian</who>
    <bug_when>2012-03-14 07:42:43 -0700</bug_when>
    <thetext>This is a consolidation of various changes that are in our local dev branch but do not appear in our upstreamed port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578416</commentid>
    <comment_count>1</comment_count>
      <attachid>131856</attachid>
    <who name="Nima Ghanavatian">nima.ghanavatian</who>
    <bug_when>2012-03-14 08:24:41 -0700</bug_when>
    <thetext>Created attachment 131856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578420</commentid>
    <comment_count>2</comment_count>
      <attachid>131856</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-14 08:30:30 -0700</bug_when>
    <thetext>Comment on attachment 131856
Patch

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

&gt; Source/WebKit/blackberry/Api/WebPage.cpp:197
&gt; +        return WebCore::PlatformEvent::MousePressed;

The WebCore:: prefix is probably not needed, but we can do that cleanup later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578421</commentid>
    <comment_count>3</comment_count>
      <attachid>131856</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-14 08:31:46 -0700</bug_when>
    <thetext>Comment on attachment 131856
Patch

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

LGTM.

&gt;&gt; Source/WebKit/blackberry/Api/WebPage.cpp:197
&gt;&gt; +        return WebCore::PlatformEvent::MousePressed;
&gt; 
&gt; The WebCore:: prefix is probably not needed, but we can do that cleanup later.

The WebCore:: prefix is probably not needed, but we can do that cleanup later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578514</commentid>
    <comment_count>4</comment_count>
      <attachid>131856</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 10:05:22 -0700</bug_when>
    <thetext>Comment on attachment 131856
Patch

Clearing flags on attachment: 131856

Committed r110712: &lt;http://trac.webkit.org/changeset/110712&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578515</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 10:05:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580542</commentid>
    <comment_count>6</comment_count>
    <who name="Nima Ghanavatian">nima.ghanavatian</who>
    <bug_when>2012-03-16 08:33:31 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580543</commentid>
    <comment_count>7</comment_count>
      <attachid>132290</attachid>
    <who name="Nima Ghanavatian">nima.ghanavatian</who>
    <bug_when>2012-03-16 08:33:34 -0700</bug_when>
    <thetext>Created attachment 132290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580547</commentid>
    <comment_count>8</comment_count>
      <attachid>132290</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-16 08:47:33 -0700</bug_when>
    <thetext>Comment on attachment 132290
Patch

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

&gt; Source/WebKit/blackberry/Api/BackingStore.cpp:2596
&gt; +        WebCore::IntRect(WebCore::IntPoint(0, 0), m_webPage-&gt;d-&gt;transformedViewportSize()));

You don&apos;t have to fix it in this patch, but indenting is strange. We also prefer IntPoint::zero.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580562</commentid>
    <comment_count>9</comment_count>
      <attachid>132290</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-03-16 09:09:54 -0700</bug_when>
    <thetext>Comment on attachment 132290
Patch

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

Looks good. Note that we can remove some WebCore:: prefixes, but that can be done in a later patch.

&gt;&gt; Source/WebKit/blackberry/Api/BackingStore.cpp:2596
&gt;&gt; +        WebCore::IntRect(WebCore::IntPoint(0, 0), m_webPage-&gt;d-&gt;transformedViewportSize()));
&gt; 
&gt; You don&apos;t have to fix it in this patch, but indenting is strange. We also prefer IntPoint::zero.

You don&apos;t have to fix it in this patch, but indenting is strange. We also prefer IntPoint::zero.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580627</commentid>
    <comment_count>10</comment_count>
      <attachid>132290</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 10:17:16 -0700</bug_when>
    <thetext>Comment on attachment 132290
Patch

Clearing flags on attachment: 132290

Committed r111024: &lt;http://trac.webkit.org/changeset/111024&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580628</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-16 10:17:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131856</attachid>
            <date>2012-03-14 08:24:41 -0700</date>
            <delta_ts>2012-03-16 08:33:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81105-20120314112150.patch</filename>
            <type>text/plain</type>
            <size>17263</size>
            <attacher name="Nima Ghanavatian">nima.ghanavatian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCBiZTNlZjQ1YzA5YzY1OTI1ZTY1NjBkNjVmOGZmNmQ4MjAzMzk1YmY1Li5kNzQyNWI2ZThl
OTg3MjUyMWJjYjkwYTJiODVkZDAxMzNkODkzY2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMi0wMy0xMyAgTmltYSBHaGFuYXZhdGlhbiAgPG5n
aGFuYXZhdGlhbkByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBTeW5jaW5nIHVwIGxl
ZnQgb3ZlciBiaXRzIGluIEFwaSBmcm9tIG91ciBsb2NhbCBicmFuY2ggdG8gdXBzdHJlYW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMTA1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvQmFja2lu
Z1N0b3JlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6QmFja2luZ1N0b3JlUHJp
dmF0ZTo6cmVuZGVyQ29udGVudHMpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNr
aW5nU3RvcmVQcml2YXRlOjppc0FjdGl2ZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OkJhY2tpbmdTdG9yZTo6Y3JlYXRlQmFja2luZ1N0b3JlTWVtb3J5KToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkJhY2tpbmdTdG9yZTo6cmVsZWFzZUJh
Y2tpbmdTdG9yZU1lbW9yeSk6CisgICAgICAgICogQXBpL0JhY2tpbmdTdG9yZS5oOgorICAgICAg
ICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6dG9XZWJD
b3JlTW91c2VFdmVudFR5cGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdl
UHJpdmF0ZTo6aW5pdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2
YXRlOjpzZXRMb2FkU3RhdGUpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdl
UHJpdmF0ZTo6YWN0aXZlTm9kZUNvbnRleHQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0
OjpXZWJQYWdlOjphY3RpdmVOb2RlQ29udGV4dCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OldlYlBhZ2VQcml2YXRlOjp1cGRhdGVDdXJzb3IpOgorICAgICAgICAoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6Y29udGV4dE5vZGUpOgorICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6aGFuZGxlTW91c2VFdmVudCk6CisgICAgICAgICog
QXBpL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgIChXZWJQ
YWdlUHJpdmF0ZSk6CisKIDIwMTItMDMtMTMgIE1pa2UgRmVudG9uICA8bWlmZW50b25AcmltLmNv
bT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gSW5wdXQgZm9jdXMgc3RhdGUgc2hvdWxkIHVuZm9j
dXMgdGhlIGZyYW1lIHNlbGVjdGlvbiBpbnN0ZWFkIG9mIHRoZSBmaWVsZC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvQmFja2luZ1N0b3JlLmNwcAppbmRleCAwZGY2MTM3YzYwZjVh
YWJhYmJjYzE4NTA1NjhlMTZlMDUzODkxOWJmLi5iOGRmYjc3ZjIyOTQ2ZGMwN2EzZjA0ZTgzZmI2
Mjg1OTk3ODM3MDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0Jh
Y2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5n
U3RvcmUuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZv
cm1FeGVjdXRhYmxlTWVzc2FnZS5oPgogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUludFJl
Y3RSZWdpb24uaD4KKyNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1Mb2cuaD4KICNpbmNsdWRl
IDxCbGFja0JlcnJ5UGxhdGZvcm1NZXNzYWdlLmg+CiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRm
b3JtTWVzc2FnZUNsaWVudC5oPgogI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybVdpbmRvdy5o
PgpAQCAtMjIyOSw3ICsyMjMwLDcgQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2YXRlOjpyZW5kZXJD
b250ZW50cyhCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6OkJ1ZmZlcioKICAgICAgICAg
aWYgKG1fd2ViUGFnZS0+ZC0+bV9wYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmVuYWJsZWQo
KSkgewogICAgICAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSBtX2Ns
aWVudC0+ZnJhbWUoKS0+dmlldygpLT5zY3JvbGxQb3NpdGlvbigpOwogICAgICAgICAgICAgZ3Jh
cGhpY3NDb250ZXh0LnRyYW5zbGF0ZShzY3JvbGxQb3NpdGlvbi54KCksIHNjcm9sbFBvc2l0aW9u
LnkoKSk7Ci0gICAgICAgICAgICBtX3dlYlBhZ2UtPmQtPm1fcGFnZS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLT5kcmF3Tm9kZUhpZ2hsaWdodChncmFwaGljc0NvbnRleHQpOworICAgICAgICAgICAg
bV93ZWJQYWdlLT5kLT5tX3BhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZHJhd0hpZ2hsaWdo
dChncmFwaGljc0NvbnRleHQpOwogICAgICAgICB9CiAjZW5kaWYKIApAQCAtMjU2Miw3ICsyNTYz
LDcgQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2YXRlOjpkcmF3QW5kQmxlbmRMYXllcnNGb3JEaXJl
Y3RSZW5kZXJpbmcoY29uc3QgUGxhdGZvcm06OkkKIAogYm9vbCBCYWNraW5nU3RvcmVQcml2YXRl
Ojppc0FjdGl2ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEJhY2tpbmdTdG9yZVByaXZhdGU6OnNf
Y3VycmVudEJhY2tpbmdTdG9yZU93bmVyID09IG1fd2ViUGFnZSAmJiAhU3VyZmFjZVBvb2w6Omds
b2JhbFN1cmZhY2VQb29sKCktPmlzRW1wdHkoKTsKKyAgICByZXR1cm4gQmFja2luZ1N0b3JlUHJp
dmF0ZTo6c19jdXJyZW50QmFja2luZ1N0b3JlT3duZXIgPT0gbV93ZWJQYWdlICYmIFN1cmZhY2VQ
b29sOjpnbG9iYWxTdXJmYWNlUG9vbCgpLT5pc0FjdGl2ZSgpOwogfQogCiBCYWNraW5nU3RvcmU6
OkJhY2tpbmdTdG9yZShXZWJQYWdlKiB3ZWJQYWdlLCBCYWNraW5nU3RvcmVDbGllbnQqIGNsaWVu
dCkKQEAgLTI2NDgsNiArMjY0OSwxNiBAQCBib29sIEJhY2tpbmdTdG9yZTo6aXNEaXJlY3RSZW5k
ZXJpbmdUb1dpbmRvdygpIGNvbnN0CiAgICAgcmV0dXJuIGQtPnNob3VsZERpcmVjdFJlbmRlcmlu
Z1RvV2luZG93KCk7CiB9CiAKK3ZvaWQgQmFja2luZ1N0b3JlOjpjcmVhdGVCYWNraW5nU3RvcmVN
ZW1vcnkoKQoreworICAgIFN1cmZhY2VQb29sOjpnbG9iYWxTdXJmYWNlUG9vbCgpLT5jcmVhdGVC
dWZmZXJzKCk7Cit9CisKK3ZvaWQgQmFja2luZ1N0b3JlOjpyZWxlYXNlQmFja2luZ1N0b3JlTWVt
b3J5KCkKK3sKKyAgICBTdXJmYWNlUG9vbDo6Z2xvYmFsU3VyZmFjZVBvb2woKS0+cmVsZWFzZUJ1
ZmZlcnMoKTsKK30KKwogYm9vbCBCYWNraW5nU3RvcmU6OmRlZmVyc0JsaXQoKSBjb25zdAogewog
ICAgICAgICByZXR1cm4gZC0+bV9kZWZlcnNCbGl0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvQmFja2luZ1N0b3JlLmgKaW5kZXggNzMxOTQ4NTlmZjM1OWY3YjM1ODA5M2RlOTg3Zjcw
ZmUxYWUyY2M3ZC4uOWYwZGRmNzhkNGU2M2FkNzRhZmJmYTJmODkzMDQyZjJlODc1MzkzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0JhY2tpbmdTdG9yZS5oCkBAIC03NCw2ICs3
NCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNEaXJlY3RSZW5kZXJpbmdUb1dpbmRvdygpIGNv
bnN0OwogCisgICAgdm9pZCBjcmVhdGVCYWNraW5nU3RvcmVNZW1vcnkoKTsKKyAgICB2b2lkIHJl
bGVhc2VCYWNraW5nU3RvcmVNZW1vcnkoKTsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3Mg
QmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNraW5nU3RvcmVDbGllbnQ7CiAgICAgZnJpZW5kIGNsYXNz
IEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlBhZ2UuY3BwCmluZGV4IGQ0MzRlODM2M2ExMWE3NDVlMzExOWI5NjA2ZTMwNjExZjM0ZTM2
NzcuLjViZjJiNTY3OWZjYTY0MGI2OGU0NTM5NGIwMmYyMWU2MTZlMGM3NjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNTUsNyArNTUsNiBAQAogI2luY2x1
ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE1lZGlhRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlv
bXMuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgpAQCAtMTM5LDggKzEzOCw4IEBACiAjaW5j
bHVkZSA8bWVtYWxsb2MuaD4KICNlbmRpZgogCi0jaWYgRU5BQkxFKFNLSUFfR1BVX0NBTlZBUykK
LSNpbmNsdWRlICJCbGFja0JlcnJ5UGxhdGZvcm1HcmFwaGljcy5oIgorI2lmIEVOQUJMRShBQ0NF
TEVSQVRFRF8yRF9DQU5WQVMpCisjaW5jbHVkZSAiU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaCIK
ICNpbmNsdWRlICJHckNvbnRleHQuaCIKICNlbmRpZgogCkBAIC0xOTEsMTYgKzE5MCwxNiBAQCBz
dGF0aWMgS1VSTCBwYXJzZVVybChjb25zdCBTdHJpbmcmIHVybCkKIH0KIAogLy8gSGVscGVyIGZ1
bmN0aW9ucyB0byBjb252ZXJ0IHRvIGFuZCBmcm9tIFdlYkNvcmUgdHlwZXMuCi1zdGF0aWMgaW5s
aW5lIE1vdXNlRXZlbnRUeXBlIHRvV2ViQ29yZU1vdXNlRXZlbnRUeXBlKGNvbnN0IFBsYXRmb3Jt
OjpNb3VzZUV2ZW50OjpUeXBlIHR5cGUpCitzdGF0aWMgaW5saW5lIFdlYkNvcmU6OlBsYXRmb3Jt
RXZlbnQ6OlR5cGUgdG9XZWJDb3JlTW91c2VFdmVudFR5cGUoY29uc3QgQmxhY2tCZXJyeTo6UGxh
dGZvcm06Ok1vdXNlRXZlbnQ6OlR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAg
ICBjYXNlIFBsYXRmb3JtOjpNb3VzZUV2ZW50OjpNb3VzZUJ1dHRvbkRvd246Ci0gICAgICAgIHJl
dHVybiBNb3VzZUV2ZW50UHJlc3NlZDsKKyAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpN
b3VzZUV2ZW50OjpNb3VzZUJ1dHRvbkRvd246CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQbGF0
Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQ7CiAgICAgY2FzZSBQbGF0Zm9ybTo6TW91c2VFdmVudDo6
TW91c2VCdXR0b25VcDoKLSAgICAgICAgcmV0dXJuIE1vdXNlRXZlbnRSZWxlYXNlZDsKKyAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Ok1vdXNlUmVsZWFzZWQ7CiAgICAgY2Fz
ZSBQbGF0Zm9ybTo6TW91c2VFdmVudDo6TW91c2VNb3ZlOgogICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHJldHVybiBNb3VzZUV2ZW50TW92ZWQ7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpQbGF0Zm9y
bUV2ZW50OjpNb3VzZU1vdmVkOwogICAgIH0KIH0KIApAQCAtNDI0LDkgKzQyMyw5IEBAIHZvaWQg
V2ViUGFnZVByaXZhdGU6OmluaXQoY29uc3QgV2ViU3RyaW5nJiBwYWdlR3JvdXBOYW1lKQogI2Vs
c2UKICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG1fZ2VvbG9jYXRpb25DbGll
bnQ7CiAKLSAgICBwYWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGllbnQgPSBuZXcgRGV2aWNlTW90
aW9uQ2xpZW50QmxhY2tCZXJyeSh0aGlzKTsKLSAgICBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRh
dGlvbkNsaWVudCA9IG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudEJsYWNrQmVycnkodGhpcyk7
CiAgICAgbV9wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOworICAgIFdlYkNvcmU6OnByb3Zp
ZGVEZXZpY2VPcmllbnRhdGlvblRvKG1fcGFnZSwgbmV3IERldmljZU9yaWVudGF0aW9uQ2xpZW50
QmxhY2tCZXJyeSh0aGlzKSk7CisgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU1vdGlvblRvKG1f
cGFnZSwgbmV3IERldmljZU1vdGlvbkNsaWVudEJsYWNrQmVycnkodGhpcykpOwogCiAjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCiAgICAgV2ViQ29yZTo6cHJvdmlkZU5vdGlmaWNhdGlvbihtX3Bh
Z2UsIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6Omluc3RhbmNlKCkpOwpAQCAtNDYwLDcgKzQ1
OSw3IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmluaXQoY29uc3QgV2ViU3RyaW5nJiBwYWdlR3Jv
dXBOYW1lKQogICAgIFBsYXRmb3JtOjpTZXR0aW5ncyogc2V0dGluZ3MgPSBQbGF0Zm9ybTo6U2V0
dGluZ3M6OmdldCgpOwogICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0V2ViR0xFbmFibGVkKHNl
dHRpbmdzICYmIHNldHRpbmdzLT5pc1dlYkdMU3VwcG9ydGVkKCkpOwogI2VuZGlmCi0jaWYgRU5B
QkxFKFNLSUFfR1BVX0NBTlZBUykKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQog
ICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0Q2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyh0
cnVlKTsKICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFi
bGVkKHRydWUpOwogI2VuZGlmCkBAIC03NzgsMTEgKzc3NywxMSBAQCB2b2lkIFdlYlBhZ2VQcml2
YXRlOjpzZXRMb2FkU3RhdGUoTG9hZFN0YXRlIHN0YXRlKQogICAgICAgICB7CiAgICAgICAgICAg
ICB1bnNjaGVkdWxlWm9vbUFib3V0UG9pbnQoKTsKIAotI2lmIEVOQUJMRShTS0lBX0dQVV9DQU5W
QVMpCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICAgICAgICAgIGlmICht
X3BhZ2UtPnNldHRpbmdzKCktPmNhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmcoKSkgewogICAg
ICAgICAgICAgICAgIC8vIEZyZWUgR1BVIHJlc291cmNlcyBhcyB3ZSdyZSBvbiBhIG5ldyBwYWdl
LgogICAgICAgICAgICAgICAgIC8vIFRoaXMgd2lsbCBoZWxwIHVzIHRvIGZyZWUgbWVtb3J5IHBy
ZXNzdXJlLgotICAgICAgICAgICAgICAgIFBsYXRmb3JtOjpHcmFwaGljczo6bWFrZVNoYXJlZFJl
c291cmNlQ29udGV4dEN1cnJlbnQoUGxhdGZvcm06OkdyYXBoaWNzOjpHTEVTMik7CisgICAgICAg
ICAgICAgICAgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OmdldCgpLT5tYWtlQ29udGV4dEN1cnJl
bnQoKTsKICAgICAgICAgICAgICAgICBHckNvbnRleHQqIGdyQ29udGV4dCA9IFBsYXRmb3JtOjpH
cmFwaGljczo6Z2V0R3JDb250ZXh0KCk7CiAgICAgICAgICAgICAgICAgZ3JDb250ZXh0LT5mcmVl
R3B1UmVzb3VyY2VzKCk7CiAgICAgICAgICAgICB9CkBAIC0xOTkyLDkgKzE5OTEsOSBAQCBib29s
IFdlYlBhZ2VQcml2YXRlOjp1c2VGaXhlZExheW91dCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLVBsYXRmb3JtOjpXZWJDb250ZXh0IFdlYlBhZ2VQcml2YXRlOjp3ZWJDb250ZXh0KFRh
cmdldERldGVjdGlvblN0cmF0ZWd5IHN0cmF0ZWd5KQorQWN0aXZlTm9kZUNvbnRleHQgV2ViUGFn
ZVByaXZhdGU6OmFjdGl2ZU5vZGVDb250ZXh0KFRhcmdldERldGVjdGlvblN0cmF0ZWd5IHN0cmF0
ZWd5KQogewotICAgIFBsYXRmb3JtOjpXZWJDb250ZXh0IGNvbnRleHQ7CisgICAgQWN0aXZlTm9k
ZUNvbnRleHQgY29udGV4dDsKIAogICAgIFJlZlB0cjxOb2RlPiBub2RlID0gY29udGV4dE5vZGUo
c3RyYXRlZ3kpOwogICAgIG1fY3VycmVudENvbnRleHROb2RlID0gbm9kZTsKQEAgLTIwMTMsMTAg
KzIwMTIsMTAgQEAgUGxhdGZvcm06OldlYkNvbnRleHQgV2ViUGFnZVByaXZhdGU6OndlYkNvbnRl
eHQoVGFyZ2V0RGV0ZWN0aW9uU3RyYXRlZ3kgc3RyYXRlZ3kKIAogICAgICAgICBTdHJpbmcgcGF0
dGVybiA9IGZpbmRQYXR0ZXJuU3RyaW5nRm9yVXJsKGhyZWYpOwogICAgICAgICBpZiAoIXBhdHRl
cm4uaXNFbXB0eSgpKQotICAgICAgICAgICAgY29udGV4dC5zZXRQYXR0ZXJuKHBhdHRlcm4udXRm
OCgpLmRhdGEoKSk7CisgICAgICAgICAgICBjb250ZXh0LnNldFBhdHRlcm4ocGF0dGVybik7CiAK
ICAgICAgICAgaWYgKCFocmVmLnN0cmluZygpLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgY29u
dGV4dC5zZXRVcmwoaHJlZi5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGNv
bnRleHQuc2V0VXJsKGhyZWYuc3RyaW5nKCkpOwogCiAgICAgICAgICAgICAvLyBMaW5rcyBhcmUg
bm9uLXNlbGVjdGFibGUgYnkgZGVmYXVsdCwgYnV0IHNlbGVjdGlvbiBzaG91bGQgYmUgYWxsb3dl
ZAogICAgICAgICAgICAgLy8gcHJvdmlkaW5nIHRoZSBwYWdlIGlzIHNlbGVjdGFibGUsIHVzZSB0
aGUgcGFyZW50IHRvIGRldGVybWluZSBpdC4KQEAgLTIwMjYsNzUgKzIwMjUsNTggQEAgUGxhdGZv
cm06OldlYkNvbnRleHQgV2ViUGFnZVByaXZhdGU6OndlYkNvbnRleHQoVGFyZ2V0RGV0ZWN0aW9u
U3RyYXRlZ3kgc3RyYXRlZ3kKICAgICB9CiAKICAgICBpZiAoIW5vZGVBbGxvd1NlbGVjdGlvbk92
ZXJyaWRlICYmICFub2RlLT5jYW5TdGFydFNlbGVjdGlvbigpKQotICAgICAgICBjb250ZXh0LnJl
c2V0RmxhZyhQbGF0Zm9ybTo6V2ViQ29udGV4dDo6SXNTZWxlY3RhYmxlKTsKKyAgICAgICAgY29u
dGV4dC5yZXNldEZsYWcoQWN0aXZlTm9kZUNvbnRleHQ6OklzU2VsZWN0YWJsZSk7CiAKICAgICBp
ZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7CiAgICAgICAgIEhUTUxJbWFnZUVsZW1lbnQqIGlt
YWdlRWxlbWVudCA9IDA7Ci0gICAgICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9
IDA7Ci0KICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbWdUYWcpKQog
ICAgICAgICAgICAgaW1hZ2VFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+
KG5vZGUuZ2V0KCkpOwogICAgICAgICBlbHNlIGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1l
czo6YXJlYVRhZykpCiAgICAgICAgICAgICBpbWFnZUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1M
QXJlYUVsZW1lbnQqPihub2RlLmdldCgpKS0+aW1hZ2VFbGVtZW50KCk7Ci0KLSAgICAgICAgaWYg
KHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZS5nZXQoKSktPmlzTWVkaWFFbGVtZW50KCkp
Ci0gICAgICAgICAgICBtZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50
Kj4obm9kZS5nZXQoKSk7Ci0KICAgICAgICAgaWYgKGltYWdlRWxlbWVudCAmJiBpbWFnZUVsZW1l
bnQtPnJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAgIGNvbnRleHQuc2V0RmxhZyhQbGF0Zm9ybTo6
V2ViQ29udGV4dDo6SXNJbWFnZSk7CiAgICAgICAgICAgICAvLyBGSVhNRTogQXQgdGhlIG1lYW4g
dGltZSwgd2Ugb25seSBzaG93ICJTYXZlIEltYWdlIiB3aGVuIHRoZSBpbWFnZSBkYXRhIGlzIGF2
YWlsYWJsZS4KICAgICAgICAgICAgIGlmIChDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2Ug
PSBpbWFnZUVsZW1lbnQtPmNhY2hlZEltYWdlKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoY2Fj
aGVkUmVzb3VyY2UtPmlzTG9hZGVkKCkgJiYgY2FjaGVkUmVzb3VyY2UtPmRhdGEoKSkgewogICAg
ICAgICAgICAgICAgICAgICBTdHJpbmcgdXJsID0gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1M
U3BhY2VzKGltYWdlRWxlbWVudC0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3JjQXR0cikuc3Ry
aW5nKCkpOwotICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnNldFNyYyhub2RlLT5kb2N1bWVu
dCgpLT5jb21wbGV0ZVVSTCh1cmwpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAg
ICAgICAgICAgICBjb250ZXh0LnNldEltYWdlU3JjKG5vZGUtPmRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKHVybCkuc3RyaW5nKCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIFN0cmluZyBhbHQgPSBpbWFnZUVsZW1lbnQtPmFsdFRleHQoKTsKICAgICAgICAg
ICAgIGlmICghYWx0LmlzTnVsbCgpKQotICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0QWx0KGFs
dC51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChtZWRpYUVsZW1lbnQp
IHsKLSAgICAgICAgICAgIGlmIChtZWRpYUVsZW1lbnQtPmhhc0F1ZGlvKCkpCi0gICAgICAgICAg
ICAgICAgY29udGV4dC5zZXRGbGFnKFBsYXRmb3JtOjpXZWJDb250ZXh0OjpJc0F1ZGlvKTsKLSAg
ICAgICAgICAgIGlmIChtZWRpYUVsZW1lbnQtPmhhc1ZpZGVvKCkpCi0gICAgICAgICAgICAgICAg
Y29udGV4dC5zZXRGbGFnKFBsYXRmb3JtOjpXZWJDb250ZXh0OjpJc1ZpZGVvKTsKLQotICAgICAg
ICAgICAgU3RyaW5nIHNyYyA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhtZWRp
YUVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNyY0F0dHIpLnN0cmluZygpKTsKLSAg
ICAgICAgICAgIGNvbnRleHQuc2V0U3JjKG5vZGUtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNy
Yykuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgY29udGV4dC5zZXRJ
bWFnZUFsdChhbHQpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG5vZGUtPmlzVGV4dE5v
ZGUoKSkgewogICAgICAgICBUZXh0KiBjdXJUZXh0ID0gc3RhdGljX2Nhc3Q8VGV4dCo+KG5vZGUu
Z2V0KCkpOwogICAgICAgICBpZiAoIWN1clRleHQtPndob2xlVGV4dCgpLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIGNvbnRleHQuc2V0VGV4dChjdXJUZXh0LT53aG9sZVRleHQoKS51dGY4KCkuZGF0
YSgpKTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dChjdXJUZXh0LT53aG9sZVRleHQoKSk7
CiAgICAgfQogCiAgICAgaWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSkgewogICAgICAgICBFbGVt
ZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUtPnNoYWRvd0FuY2VzdG9y
Tm9kZSgpKTsKICAgICAgICAgaWYgKERPTVN1cHBvcnQ6OmlzVGV4dEJhc2VkQ29udGVudEVkaXRh
YmxlRWxlbWVudChlbGVtZW50KSkgewotICAgICAgICAgICAgY29udGV4dC5zZXRGbGFnKFBsYXRm
b3JtOjpXZWJDb250ZXh0OjpJc0lucHV0KTsKKyAgICAgICAgICAgIGNvbnRleHQuc2V0RmxhZyhB
Y3RpdmVOb2RlQ29udGV4dDo6SXNJbnB1dCk7CiAgICAgICAgICAgICBpZiAoZWxlbWVudC0+aGFz
VGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkKLSAgICAgICAgICAgICAgICBjb250ZXh0LnNl
dEZsYWcoUGxhdGZvcm06OldlYkNvbnRleHQ6OklzU2luZ2xlTGluZSk7CisgICAgICAgICAgICAg
ICAgY29udGV4dC5zZXRGbGFnKEFjdGl2ZU5vZGVDb250ZXh0OjpJc1NpbmdsZUxpbmUpOwogICAg
ICAgICAgICAgaWYgKERPTVN1cHBvcnQ6OmlzUGFzc3dvcmRFbGVtZW50KGVsZW1lbnQpKQotICAg
ICAgICAgICAgICAgIGNvbnRleHQuc2V0RmxhZyhQbGF0Zm9ybTo6V2ViQ29udGV4dDo6SXNQYXNz
d29yZCk7CisgICAgICAgICAgICAgICAgY29udGV4dC5zZXRGbGFnKEFjdGl2ZU5vZGVDb250ZXh0
OjpJc1Bhc3N3b3JkKTsKIAogICAgICAgICAgICAgU3RyaW5nIGVsZW1lbnRUZXh0KERPTVN1cHBv
cnQ6OmlucHV0RWxlbWVudFRleHQoZWxlbWVudCkpOwogICAgICAgICAgICAgaWYgKCFlbGVtZW50
VGV4dC5zdHJpcFdoaXRlU3BhY2UoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgY29udGV4
dC5zZXRUZXh0KGVsZW1lbnRUZXh0LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGNv
bnRleHQuc2V0VGV4dChlbGVtZW50VGV4dCk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAo
bm9kZS0+aXNGb2N1c2FibGUoKSkKLSAgICAgICAgY29udGV4dC5zZXRGbGFnKFBsYXRmb3JtOjpX
ZWJDb250ZXh0OjpJc0ZvY3VzYWJsZSk7CisgICAgICAgIGNvbnRleHQuc2V0RmxhZyhBY3RpdmVO
b2RlQ29udGV4dDo6SXNGb2N1c2FibGUpOwogCiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKLVBs
YXRmb3JtOjpXZWJDb250ZXh0IFdlYlBhZ2U6OndlYkNvbnRleHQoVGFyZ2V0RGV0ZWN0aW9uU3Ry
YXRlZ3kgc3RyYXRlZ3kpIGNvbnN0CitBY3RpdmVOb2RlQ29udGV4dCBXZWJQYWdlOjphY3RpdmVO
b2RlQ29udGV4dChUYXJnZXREZXRlY3Rpb25TdHJhdGVneSBzdHJhdGVneSkgY29uc3QKIHsKLSAg
ICByZXR1cm4gZC0+d2ViQ29udGV4dChzdHJhdGVneSk7CisgICAgcmV0dXJuIGQtPmFjdGl2ZU5v
ZGVDb250ZXh0KHN0cmF0ZWd5KTsKIH0KIAogdm9pZCBXZWJQYWdlUHJpdmF0ZTo6dXBkYXRlQ3Vy
c29yKCkKQEAgLTIxMDcsNyArMjA4OSw3IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OnVwZGF0ZUN1
cnNvcigpCiAgICAgZWxzZSBpZiAobV9sYXN0TW91c2VFdmVudC5idXR0b24oKSA9PSBSaWdodEJ1
dHRvbikKICAgICAgICAgYnV0dG9uTWFzayA9IFBsYXRmb3JtOjpNb3VzZUV2ZW50OjpTY3JlZW5S
aWdodE1vdXNlQnV0dG9uOwogCi0gICAgUGxhdGZvcm06Ok1vdXNlRXZlbnQgZXZlbnQoYnV0dG9u
TWFzaywgYnV0dG9uTWFzaywgbWFwVG9UcmFuc2Zvcm1lZChtX2xhc3RNb3VzZUV2ZW50LnBvcygp
KSwgbWFwVG9UcmFuc2Zvcm1lZChtX2xhc3RNb3VzZUV2ZW50Lmdsb2JhbFBvcygpKSwgMCwgMCk7
CisgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok1vdXNlRXZlbnQgZXZlbnQoYnV0dG9uTWFzaywg
YnV0dG9uTWFzaywgbWFwVG9UcmFuc2Zvcm1lZChtX2xhc3RNb3VzZUV2ZW50LnBvc2l0aW9uKCkp
LCBtYXBUb1RyYW5zZm9ybWVkKG1fbGFzdE1vdXNlRXZlbnQuZ2xvYmFsUG9zKCkpLCAwLCAwKTsK
ICAgICBtX3dlYlBhZ2UtPm1vdXNlRXZlbnQoZXZlbnQpOwogfQogCkBAIC0yNDE1LDcgKzIzOTcs
NyBAQCBQYXNzUmVmUHRyPE5vZGU+IFdlYlBhZ2VQcml2YXRlOjpjb250ZXh0Tm9kZShUYXJnZXRE
ZXRlY3Rpb25TdHJhdGVneSBzdHJhdGVneSkKICAgICBpZiAoaXNUb3VjaGluZykKICAgICAgICAg
Y29udGVudFBvcyA9IGxhc3RGYXRGaW5nZXJzUmVzdWx0LmFkanVzdGVkUG9zaXRpb24oKTsKICAg
ICBlbHNlCi0gICAgICAgIGNvbnRlbnRQb3MgPSBtYXBGcm9tVmlld3BvcnRUb0NvbnRlbnRzKG1f
bGFzdE1vdXNlRXZlbnQucG9zKCkpOworICAgICAgICBjb250ZW50UG9zID0gbWFwRnJvbVZpZXdw
b3J0VG9Db250ZW50cyhtX2xhc3RNb3VzZUV2ZW50LnBvc2l0aW9uKCkpOwogCiAgICAgaWYgKHN0
cmF0ZWd5ID09IFJlY3RCYXNlZCkgewogICAgICAgICBGYXRGaW5nZXJzUmVzdWx0IHJlc3VsdCA9
IEZhdEZpbmdlcnModGhpcywgbGFzdEZhdEZpbmdlcnNSZXN1bHQuYWRqdXN0ZWRQb3NpdGlvbigp
LCBGYXRGaW5nZXJzOjpUZXh0KS5maW5kQmVzdFBvaW50KCk7CkBAIC0zNTExLDEwICszNDkzLDEw
IEBAIGJvb2wgV2ViUGFnZVByaXZhdGU6OmhhbmRsZU1vdXNlRXZlbnQoUGxhdGZvcm1Nb3VzZUV2
ZW50JiBtb3VzZUV2ZW50KQogewogICAgIEV2ZW50SGFuZGxlciogZXZlbnRIYW5kbGVyID0gbV9t
YWluRnJhbWUtPmV2ZW50SGFuZGxlcigpOwogCi0gICAgaWYgKG1vdXNlRXZlbnQuZXZlbnRUeXBl
KCkgPT0gTW91c2VFdmVudE1vdmVkKQorICAgIGlmIChtb3VzZUV2ZW50LnR5cGUoKSA9PSBXZWJD
b3JlOjpQbGF0Zm9ybUV2ZW50OjpNb3VzZU1vdmVkKQogICAgICAgICByZXR1cm4gZXZlbnRIYW5k
bGVyLT5tb3VzZU1vdmVkKG1vdXNlRXZlbnQpOwogCi0gICAgaWYgKG1vdXNlRXZlbnQuZXZlbnRU
eXBlKCkgPT0gTW91c2VFdmVudFNjcm9sbCkKKyAgICBpZiAobW91c2VFdmVudC50eXBlKCkgPT0g
V2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6TW91c2VTY3JvbGwpCiAgICAgICAgIHJldHVybiB0cnVl
OwogCiAgICAgTm9kZSogbm9kZSA9IDA7CkBAIC0zNTI2LDEyICszNTA4LDExIEBAIGJvb2wgV2Vi
UGFnZVByaXZhdGU6OmhhbmRsZU1vdXNlRXZlbnQoUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2
ZW50KQogICAgIH0KIAogICAgIGlmICghbm9kZSkgewotICAgICAgICBIaXRUZXN0UmVzdWx0IHJl
c3VsdCA9IGV2ZW50SGFuZGxlci0+aGl0VGVzdFJlc3VsdEF0UG9pbnQobWFwRnJvbVZpZXdwb3J0
VG9Db250ZW50cyhtb3VzZUV2ZW50LnBvcygpKSwgZmFsc2UgLyphbGxvd1NoYWRvd0NvbnRlbnQq
Lyk7CisgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gZXZlbnRIYW5kbGVyLT5oaXRUZXN0
UmVzdWx0QXRQb2ludChtYXBGcm9tVmlld3BvcnRUb0NvbnRlbnRzKG1vdXNlRXZlbnQucG9zaXRp
b24oKSksIGZhbHNlIC8qYWxsb3dTaGFkb3dDb250ZW50Ki8pOwogICAgICAgICBub2RlID0gcmVz
dWx0LmlubmVyTm9kZSgpOwogICAgIH0KIAotICAgIGlmIChtb3VzZUV2ZW50LmV2ZW50VHlwZSgp
ID09IE1vdXNlRXZlbnRQcmVzc2VkKSB7Ci0gICAgICAgIG1faW5wdXRIYW5kbGVyLT5lbmFibGVJ
bnB1dE1vZGUoKTsKKyAgICBpZiAobW91c2VFdmVudC50eXBlKCkgPT0gV2ViQ29yZTo6UGxhdGZv
cm1FdmVudDo6TW91c2VQcmVzc2VkKSB7CiAgICAgICAgIGlmIChtX2lucHV0SGFuZGxlci0+d2ls
bE9wZW5Qb3B1cEZvck5vZGUobm9kZSkpIHsKICAgICAgICAgICAgIC8vIERvIG5vdCBhbGxvdyBh
bnkgaHVtYW4gZ2VuZXJhdGVkIG1vdXNlIG9yIGtleWJvYXJkIGV2ZW50cyB0byBzZWxlY3QgPG9w
dGlvbj5zIGluIHRoZSBsaXN0IGJveAogICAgICAgICAgICAgLy8gYmVjYXVzZSB3ZSB1c2UgYSBw
b3AgdXAgZGlhbG9nIHRvIGhhbmRsZSB0aGUgYWN0dWFsIHNlbGVjdGlvbnMuIFRoaXMgcHJldmVu
dHMgb3B0aW9ucyBmcm9tCkBAIC0zNTUxLDcgKzM1MzIsNyBAQCBib29sIFdlYlBhZ2VQcml2YXRl
OjpoYW5kbGVNb3VzZUV2ZW50KFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCkKICAgICAg
ICAgICAgIH0KICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBldmVudEhhbmRsZXItPmhhbmRs
ZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKLSAgICB9IGVsc2UgaWYgKG1vdXNlRXZlbnQu
ZXZlbnRUeXBlKCkgPT0gTW91c2VFdmVudFJlbGVhc2VkKSB7CisgICAgfSBlbHNlIGlmIChtb3Vz
ZUV2ZW50LnR5cGUoKSA9PSBXZWJDb3JlOjpQbGF0Zm9ybUV2ZW50OjpNb3VzZVJlbGVhc2VkKSB7
CiAgICAgICAgIC8vIEZJWE1FOiBGb3IgPHNlbGVjdD4gYW5kIDxvcHRpb25zPiBlbGVtZW50cywg
d2UgZXhwbGljaXRseSBkbyBub3QgZm9yd2FyZCB0aGlzIGV2ZW50IHRvIFdlYkNvcmUgc28KICAg
ICAgICAgLy8gYXMgdG8gcHJlc2VydmUgc3ltbWV0cnkgd2l0aCB0aGUgTW91c2VFdmVudFByZXNz
ZWQgaGFuZGxpbmcgKGFib3ZlKS4gVGhpcyBoYXMgdGhlIHNpZGUtZWZmZWN0IHRoYXQKICAgICAg
ICAgLy8gbW91c2V1cCBldmVudHMgYXJlIG5vdCBmaXJlZCBvbiBzdWNoIGVsZW1lbnRzIGZvciBo
dW1hbiBnZW5lcmF0ZWQgbW91c2UgcmVsZWFzZSBldmVudHMuIFNlZSBSSU0gQnVnICMxNTc5Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaAppbmRleCBlOWVlZDIzMDRjMDY3YzM3
ZDNmNjNjYTEwYzc5ZWM4MjJhM2I5ODJhLi4zYTg4M2NlNjYwNWRlNTMyNDIyNzU4YmQwMjI2OTg0
MzI4YjMxOGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaApAQCAtMTks
MTIgKzE5LDEwIEBACiAjaWZuZGVmIFdlYlBhZ2VfaAogI2RlZmluZSBXZWJQYWdlX2gKIAorI2lu
Y2x1ZGUgIkFjdGl2ZU5vZGVDb250ZXh0LmgiCiAjaW5jbHVkZSAiQmxhY2tCZXJyeUdsb2JhbC5o
IgotI2luY2x1ZGUgIldlYlN0cmluZy5oIgotCiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3Jt
R3VhcmRlZFBvaW50ZXIuaD4KICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1JbnB1dEV2ZW50
cy5oPgotI2luY2x1ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybVdlYkNvbnRleHQuaD4KICNpbmNsdWRl
IDxpbWYvaW5wdXRfZGF0YS5oPgogI2luY2x1ZGUgPG5ldHdvcmsvTmV0d29ya1JlcXVlc3QuaD4K
IApAQCAtMjU5LDcgKzI1Nyw3IEBAIHB1YmxpYzoKIAogICAgIFdlYlN0cmluZyB0ZXh0SGFzQXR0
cmlidXRlKGNvbnN0IFdlYlN0cmluZyYgcXVlcnkpIGNvbnN0OwogCi0gICAgUGxhdGZvcm06Oldl
YkNvbnRleHQgd2ViQ29udGV4dChUYXJnZXREZXRlY3Rpb25TdHJhdGVneSkgY29uc3Q7CisgICAg
QWN0aXZlTm9kZUNvbnRleHQgYWN0aXZlTm9kZUNvbnRleHQoVGFyZ2V0RGV0ZWN0aW9uU3RyYXRl
Z3kpIGNvbnN0OwogCiAgICAgdHlwZWRlZiBpbnRwdHJfdCBCYWNrRm9yd2FyZElkOwogICAgIHN0
cnVjdCBCYWNrRm9yd2FyZEVudHJ5IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZV9wLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2VfcC5oCmluZGV4IDFlM2QyMjY1YjVhNjE3NjNjZGE0YzE1NDZkYzA5OTY5YjYxMjA2NDIuLmVk
MzczOWMyMjhiYzY1M2JhOTg3MDlkMDEyY2NhZWRiMzYwMzNhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaApAQCAtMjY2LDcgKzI2Niw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIG5vdGlmeVBsdWdpblJlY3RDaGFuZ2VkKGludCBpZCwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgcmVjdENoYW5nZWQpOwogCiAgICAgLy8gQ29udGV4dCBNZXRob2RzLgotICAgIFBsYXRm
b3JtOjpXZWJDb250ZXh0IHdlYkNvbnRleHQoVGFyZ2V0RGV0ZWN0aW9uU3RyYXRlZ3kpOworICAg
IEFjdGl2ZU5vZGVDb250ZXh0IGFjdGl2ZU5vZGVDb250ZXh0KFRhcmdldERldGVjdGlvblN0cmF0
ZWd5KTsKICAgICBQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IGNvbnRleHROb2RlKFRhcmdldERl
dGVjdGlvblN0cmF0ZWd5KTsKIAogI2lmIEVOQUJMRShWSUVXUE9SVF9SRUZMT1cpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132290</attachid>
            <date>2012-03-16 08:33:34 -0700</date>
            <delta_ts>2012-03-16 10:17:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81105-20120316113041.patch</filename>
            <type>text/plain</type>
            <size>11243</size>
            <attacher name="Nima Ghanavatian">nima.ghanavatian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpp
bmRleCA4YmI0ZDFhOTVhNWNhYzhmNmIwODFmZGI1M2U1N2RkNDliOGIyNzhkLi5hYmZhODIxZWUz
NmI5ODg0OWYyY2E2YWUwZTg4YTdlNjU1ZTQyMjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wMy0xNiAgTmltYSBHaGFuYXZhdGlhbiAgPG5n
aGFuYXZhdGlhbkByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBTeW5jaW5nIHVwIGxl
ZnQgb3ZlciBiaXRzIGluIEFwaSBmcm9tIG91ciBsb2NhbCBicmFuY2ggdG8gdXBzdHJlYW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMTA1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaGVz
IGZpeGVzIHVwIGEgcHJldmlvdXMgc3luYyBkb25lIGluIHRoaXMgZGlyZWN0b3J5IGFuZCBhZGRz
IHNvbWUgbmV3IGJpdHMKKyAgICAgICAgYXMgd2VsbC4gIFRoaXMgaXMgYWNjdXJhdGUgYXMgb2Yg
ZGRlYTE1MjhiMzdiMjk5MjU2MzhmZTExODMzMThiM2MzOTk0ZjFmOCBpbiBvdXIKKyAgICAgICAg
bG9jYWwgcmVwby4KKworICAgICAgICAqIEFwaS9CYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAo
QmxhY2tCZXJyeTo6V2ViS2l0OjpCYWNraW5nU3RvcmVQcml2YXRlOjpkcmF3QW5kQmxlbmRMYXll
cnNGb3JEaXJlY3RSZW5kZXJpbmcpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNr
QmVycnk6OldlYktpdDo6QmFja2luZ1N0b3JlUHJpdmF0ZTo6ZHJhd0xheWVyc09uQ29tbWl0SWZO
ZWVkZWQpOgorICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6
OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OndlYkNvbnRleHQpOgorICAgICAgICAoQmxhY2tCZXJy
eTo6V2ViS2l0OjpXZWJQYWdlOjp3ZWJDb250ZXh0KToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6V2ViUGFnZVByaXZhdGU6OmhhbmRsZU1vdXNlRXZlbnQpOgorICAgICAgICAqIEFwaS9X
ZWJQYWdlLmg6CisgICAgICAgICogQXBpL1dlYlBhZ2VfcC5oOgorICAgICAgICAoV2ViUGFnZVBy
aXZhdGUpOgorCiAyMDEyLTAzLTE2ICBSb2JpbiBDYW8gIDxyb2Jpbi5jYW9AdG9yY2htb2JpbGUu
Y29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBDYW4gbm90IG9wZW4gY2VydGFpbiBsaW5r
cyBmcm9tIGJyaWRnZSBhcHBsaWNhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9BcGkvQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvQmFja2luZ1N0b3JlLmNwcAppbmRleCBlNTgwNmIzYWE3MzAyZDU2OGQ4N2M5MGFhMmQxODAw
YTI4MWQzZDI5Li5iNGE0YWRkZjExNDFiNGViMGUzYmY2MmE3MjI2Yzc1MTBlOTEzZGQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0JhY2tpbmdTdG9yZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9CYWNraW5nU3RvcmUuY3BwCkBAIC0yNTY4
LDYgKzI1NjgsNDYgQEAgdm9pZCBCYWNraW5nU3RvcmVQcml2YXRlOjpkcmF3QW5kQmxlbmRMYXll
cnNGb3JEaXJlY3RSZW5kZXJpbmcoY29uc3QgUGxhdGZvcm06OkkKICAgICBibGVuZENvbXBvc2l0
aW5nU3VyZmFjZSh2aXNpYmxlRGlydHlSZWN0KTsKICNlbmRpZgogfQorCitib29sIEJhY2tpbmdT
dG9yZVByaXZhdGU6OmRyYXdMYXllcnNPbkNvbW1pdElmTmVlZGVkKCkKK3sKKyAgICAvLyBDaGVj
ayBpZiByZW5kZXJpbmcgY2F1c2VkIGEgY29tbWl0IGFuZCB3ZSBuZWVkIHRvIHJlZHJhdyB0aGUg
bGF5ZXJzCisgICAgaWYgKCFtX25lZWRzRHJhd0xheWVyc09uQ29tbWl0KQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBtX25lZWRzRHJhd0xheWVyc09uQ29tbWl0ID0gZmFsc2U7CisgICAg
bV93ZWJQYWdlLT5kLT5kcmF3TGF5ZXJzT25Db21taXQoKTsKKworICAgIHJldHVybiB0cnVlOwor
fQorCit2b2lkIEJhY2tpbmdTdG9yZVByaXZhdGU6OmRyYXdBbmRCbGVuZExheWVyc0ZvckRpcmVj
dFJlbmRlcmluZyhjb25zdCBQbGF0Zm9ybTo6SW50UmVjdCYgZGlydHlSZWN0KQoreworICAgIEFT
U0VSVChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6dXNlckludGVyZmFjZVRocmVhZE1lc3NhZ2VDbGll
bnQoKS0+aXNDdXJyZW50VGhyZWFkKCkpOworICAgIGlmICghQmxhY2tCZXJyeTo6UGxhdGZvcm06
OnVzZXJJbnRlcmZhY2VUaHJlYWRNZXNzYWdlQ2xpZW50KCktPmlzQ3VycmVudFRocmVhZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICAvLyBCZWNhdXNlIHdlJ3JlIGJlaW5nIGNhbGxlZCBzeW5j
IGZyb20gdGhlIFdlYktpdCB0aHJlYWQsIHdlIGNhbiB1c2UKKyAgICAvLyByZWd1bGFyIFdlYlBh
Z2Ugc2l6ZSBhbmQgdHJhbnNmb3JtYXRpb24gZnVuY3Rpb25zIHdpdGhvdXQgY29uY2VybnMuCisg
ICAgV2ViQ29yZTo6SW50UmVjdCBjb250ZW50c1JlY3QgPSB2aXNpYmxlQ29udGVudHNSZWN0KCk7
CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHVudHJhbnNmb3JtZWRDb250ZW50c1JlY3QgPSBtX3dl
YlBhZ2UtPmQtPm1hcEZyb21UcmFuc2Zvcm1lZEZsb2F0UmVjdChXZWJDb3JlOjpGbG9hdFJlY3Qo
Y29udGVudHNSZWN0KSk7CisgICAgV2ViQ29yZTo6SW50UmVjdCBjb250ZW50c1NjcmVlblJlY3Qg
PSBtX2NsaWVudC0+bWFwRnJvbVRyYW5zZm9ybWVkQ29udGVudHNUb1RyYW5zZm9ybWVkVmlld3Bv
cnQoY29udGVudHNSZWN0KTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGRzdFJlY3QgPSBpbnRlcnNl
Y3Rpb24oY29udGVudHNTY3JlZW5SZWN0LAorICAgICAgICBXZWJDb3JlOjpJbnRSZWN0KFdlYkNv
cmU6OkludFBvaW50KDAsIDApLCBtX3dlYlBhZ2UtPmQtPnRyYW5zZm9ybWVkVmlld3BvcnRTaXpl
KCkpKTsKKworICAgIC8vIENoZWNrIGlmIHJlbmRlcmluZyBjYXVzZWQgYSBjb21taXQgYW5kIHdl
IG5lZWQgdG8gcmVkcmF3IHRoZSBsYXllcnMuCisgICAgbV9uZWVkc0RyYXdMYXllcnNPbkNvbW1p
dCA9IGZhbHNlOworICAgIG1fd2ViUGFnZS0+ZC0+ZHJhd1N1YkxheWVycyhkc3RSZWN0LCB1bnRy
YW5zZm9ybWVkQ29udGVudHNSZWN0KTsKKworI2lmIEVOQUJMRV9DT01QT1NJVElOR19TVVJGQUNF
CisgICAgLy8gU2VlIGFib3ZlIGNvbW1lbnQgYWJvdXQgc3luYyBjYWxsaW5nLCB2aXNpYmxlQ29u
dGVudHNSZWN0KCkgaXMgc2FmZSBoZXJlLgorICAgIFBsYXRmb3JtOjpJbnRSZWN0IHZpc2libGVE
aXJ0eVJlY3QgPSBkaXJ0eVJlY3Q7CisgICAgdmlzaWJsZURpcnR5UmVjdC5pbnRlcnNlY3Qodmlz
aWJsZUNvbnRlbnRzUmVjdCgpKTsKKyAgICB2aXNpYmxlRGlydHlSZWN0ID0gbV9jbGllbnQtPm1h
cEZyb21UcmFuc2Zvcm1lZENvbnRlbnRzVG9UcmFuc2Zvcm1lZFZpZXdwb3J0KHZpc2libGVEaXJ0
eVJlY3QpOworCisgICAgYmxlbmRDb21wb3NpdGluZ1N1cmZhY2UodmlzaWJsZURpcnR5UmVjdCk7
CisjZW5kaWYKK30KICNlbmRpZgogCiBib29sIEJhY2tpbmdTdG9yZVByaXZhdGU6OmlzQWN0aXZl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IGQw
ZDUyYjQ3ODJjNmY2OTUxN2I0NmQ5ZTQ2ZGFmOGQ4ZDY2YTVlMzQuLmE1YmMzZTQ2YWNkMmUwODc3
NzY0YTE2MzViYzYzZDMwNDQ3MTczMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5w
dXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIVFRQ
UGFyc2Vycy5oIgpAQCAtMjAwOCw5ICsyMDA5LDkgQEAgYm9vbCBXZWJQYWdlUHJpdmF0ZTo6dXNl
Rml4ZWRMYXlvdXQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1BY3RpdmVOb2RlQ29u
dGV4dCBXZWJQYWdlUHJpdmF0ZTo6YWN0aXZlTm9kZUNvbnRleHQoVGFyZ2V0RGV0ZWN0aW9uU3Ry
YXRlZ3kgc3RyYXRlZ3kpCitQbGF0Zm9ybTo6V2ViQ29udGV4dCBXZWJQYWdlUHJpdmF0ZTo6d2Vi
Q29udGV4dChUYXJnZXREZXRlY3Rpb25TdHJhdGVneSBzdHJhdGVneSkKIHsKLSAgICBBY3RpdmVO
b2RlQ29udGV4dCBjb250ZXh0OworICAgIFBsYXRmb3JtOjpXZWJDb250ZXh0IGNvbnRleHQ7CiAK
ICAgICBSZWZQdHI8Tm9kZT4gbm9kZSA9IGNvbnRleHROb2RlKHN0cmF0ZWd5KTsKICAgICBtX2N1
cnJlbnRDb250ZXh0Tm9kZSA9IG5vZGU7CkBAIC0yMDI5LDEwICsyMDMwLDEwIEBAIEFjdGl2ZU5v
ZGVDb250ZXh0IFdlYlBhZ2VQcml2YXRlOjphY3RpdmVOb2RlQ29udGV4dChUYXJnZXREZXRlY3Rp
b25TdHJhdGVneSBzdHJhCiAKICAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBmaW5kUGF0dGVyblN0
cmluZ0ZvclVybChocmVmKTsKICAgICAgICAgaWYgKCFwYXR0ZXJuLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgIGNvbnRleHQuc2V0UGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgIGNvbnRleHQu
c2V0UGF0dGVybihwYXR0ZXJuLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgICAgIGlmICghaHJlZi5z
dHJpbmcoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGNvbnRleHQuc2V0VXJsKGhyZWYuc3Ry
aW5nKCkpOworICAgICAgICAgICAgY29udGV4dC5zZXRVcmwoaHJlZi5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKIAogICAgICAgICAgICAgLy8gTGlua3MgYXJlIG5vbi1zZWxlY3RhYmxlIGJ5IGRl
ZmF1bHQsIGJ1dCBzZWxlY3Rpb24gc2hvdWxkIGJlIGFsbG93ZWQKICAgICAgICAgICAgIC8vIHBy
b3ZpZGluZyB0aGUgcGFnZSBpcyBzZWxlY3RhYmxlLCB1c2UgdGhlIHBhcmVudCB0byBkZXRlcm1p
bmUgaXQuCkBAIC0yMDQyLDU4ICsyMDQzLDc1IEBAIEFjdGl2ZU5vZGVDb250ZXh0IFdlYlBhZ2VQ
cml2YXRlOjphY3RpdmVOb2RlQ29udGV4dChUYXJnZXREZXRlY3Rpb25TdHJhdGVneSBzdHJhCiAg
ICAgfQogCiAgICAgaWYgKCFub2RlQWxsb3dTZWxlY3Rpb25PdmVycmlkZSAmJiAhbm9kZS0+Y2Fu
U3RhcnRTZWxlY3Rpb24oKSkKLSAgICAgICAgY29udGV4dC5yZXNldEZsYWcoQWN0aXZlTm9kZUNv
bnRleHQ6OklzU2VsZWN0YWJsZSk7CisgICAgICAgIGNvbnRleHQucmVzZXRGbGFnKFBsYXRmb3Jt
OjpXZWJDb250ZXh0OjpJc1NlbGVjdGFibGUpOwogCiAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1l
bnQoKSkgewogICAgICAgICBIVE1MSW1hZ2VFbGVtZW50KiBpbWFnZUVsZW1lbnQgPSAwOworICAg
ICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSAwOworCiAgICAgICAgIGlmIChu
b2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW1nVGFnKSkKICAgICAgICAgICAgIGltYWdlRWxl
bWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbWFnZUVsZW1lbnQqPihub2RlLmdldCgpKTsKICAgICAg
ICAgZWxzZSBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmFyZWFUYWcpKQogICAgICAg
ICAgICAgaW1hZ2VFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEFyZWFFbGVtZW50Kj4obm9kZS5n
ZXQoKSktPmltYWdlRWxlbWVudCgpOworCisgICAgICAgIGlmIChzdGF0aWNfY2FzdDxIVE1MRWxl
bWVudCo+KG5vZGUuZ2V0KCkpLT5pc01lZGlhRWxlbWVudCgpKQorICAgICAgICAgICAgbWVkaWFF
bGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KG5vZGUuZ2V0KCkpOworCiAg
ICAgICAgIGlmIChpbWFnZUVsZW1lbnQgJiYgaW1hZ2VFbGVtZW50LT5yZW5kZXJlcigpKSB7Cisg
ICAgICAgICAgICBjb250ZXh0LnNldEZsYWcoUGxhdGZvcm06OldlYkNvbnRleHQ6OklzSW1hZ2Up
OwogICAgICAgICAgICAgLy8gRklYTUU6IEF0IHRoZSBtZWFuIHRpbWUsIHdlIG9ubHkgc2hvdyAi
U2F2ZSBJbWFnZSIgd2hlbiB0aGUgaW1hZ2UgZGF0YSBpcyBhdmFpbGFibGUuCiAgICAgICAgICAg
ICBpZiAoQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlID0gaW1hZ2VFbGVtZW50LT5jYWNo
ZWRJbWFnZSgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGNhY2hlZFJlc291cmNlLT5pc0xvYWRl
ZCgpICYmIGNhY2hlZFJlc291cmNlLT5kYXRhKCkpIHsKICAgICAgICAgICAgICAgICAgICAgU3Ry
aW5nIHVybCA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhpbWFnZUVsZW1lbnQt
PmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnNyY0F0dHIpLnN0cmluZygpKTsKLSAgICAgICAgICAg
ICAgICAgICAgY29udGV4dC5zZXRJbWFnZVNyYyhub2RlLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVS
TCh1cmwpLnN0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zZXRTcmMobm9k
ZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBTdHJpbmcgYWx0
ID0gaW1hZ2VFbGVtZW50LT5hbHRUZXh0KCk7CiAgICAgICAgICAgICBpZiAoIWFsdC5pc051bGwo
KSkKLSAgICAgICAgICAgICAgICBjb250ZXh0LnNldEltYWdlQWx0KGFsdCk7CisgICAgICAgICAg
ICAgICAgY29udGV4dC5zZXRBbHQoYWx0LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKG1lZGlhRWxlbWVudCkgeworICAgICAgICAgICAgaWYgKG1lZGlhRWxlbWVudC0+
aGFzQXVkaW8oKSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LnNldEZsYWcoUGxhdGZvcm06Oldl
YkNvbnRleHQ6OklzQXVkaW8pOworICAgICAgICAgICAgaWYgKG1lZGlhRWxlbWVudC0+aGFzVmlk
ZW8oKSkKKyAgICAgICAgICAgICAgICBjb250ZXh0LnNldEZsYWcoUGxhdGZvcm06OldlYkNvbnRl
eHQ6OklzVmlkZW8pOworCisgICAgICAgICAgICBTdHJpbmcgc3JjID0gc3RyaXBMZWFkaW5nQW5k
VHJhaWxpbmdIVE1MU3BhY2VzKG1lZGlhRWxlbWVudC0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6
c3JjQXR0cikuc3RyaW5nKCkpOworICAgICAgICAgICAgY29udGV4dC5zZXRTcmMobm9kZS0+ZG9j
dW1lbnQoKS0+Y29tcGxldGVVUkwoc3JjKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgfQogICAgIH0KIAogICAgIGlmIChub2RlLT5pc1RleHROb2RlKCkpIHsKICAgICAgICAgVGV4
dCogY3VyVGV4dCA9IHN0YXRpY19jYXN0PFRleHQqPihub2RlLmdldCgpKTsKICAgICAgICAgaWYg
KCFjdXJUZXh0LT53aG9sZVRleHQoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBjb250ZXh0LnNl
dFRleHQoY3VyVGV4dC0+d2hvbGVUZXh0KCkpOworICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0
KGN1clRleHQtPndob2xlVGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KIAogICAgIGlmIChu
b2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IHN0YXRp
Y19jYXN0PEVsZW1lbnQqPihub2RlLT5zaGFkb3dBbmNlc3Rvck5vZGUoKSk7CiAgICAgICAgIGlm
IChET01TdXBwb3J0Ojppc1RleHRCYXNlZENvbnRlbnRFZGl0YWJsZUVsZW1lbnQoZWxlbWVudCkp
IHsKLSAgICAgICAgICAgIGNvbnRleHQuc2V0RmxhZyhBY3RpdmVOb2RlQ29udGV4dDo6SXNJbnB1
dCk7CisgICAgICAgICAgICBjb250ZXh0LnNldEZsYWcoUGxhdGZvcm06OldlYkNvbnRleHQ6Oklz
SW5wdXQpOwogICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpp
bnB1dFRhZykpCi0gICAgICAgICAgICAgICAgY29udGV4dC5zZXRGbGFnKEFjdGl2ZU5vZGVDb250
ZXh0OjpJc1NpbmdsZUxpbmUpOworICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0RmxhZyhQbGF0
Zm9ybTo6V2ViQ29udGV4dDo6SXNTaW5nbGVMaW5lKTsKICAgICAgICAgICAgIGlmIChET01TdXBw
b3J0Ojppc1Bhc3N3b3JkRWxlbWVudChlbGVtZW50KSkKLSAgICAgICAgICAgICAgICBjb250ZXh0
LnNldEZsYWcoQWN0aXZlTm9kZUNvbnRleHQ6OklzUGFzc3dvcmQpOworICAgICAgICAgICAgICAg
IGNvbnRleHQuc2V0RmxhZyhQbGF0Zm9ybTo6V2ViQ29udGV4dDo6SXNQYXNzd29yZCk7CiAKICAg
ICAgICAgICAgIFN0cmluZyBlbGVtZW50VGV4dChET01TdXBwb3J0OjppbnB1dEVsZW1lbnRUZXh0
KGVsZW1lbnQpKTsKICAgICAgICAgICAgIGlmICghZWxlbWVudFRleHQuc3RyaXBXaGl0ZVNwYWNl
KCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0VGV4dChlbGVtZW50VGV4
dCk7CisgICAgICAgICAgICAgICAgY29udGV4dC5zZXRUZXh0KGVsZW1lbnRUZXh0LnV0ZjgoKS5k
YXRhKCkpOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG5vZGUtPmlzRm9jdXNhYmxlKCkp
Ci0gICAgICAgIGNvbnRleHQuc2V0RmxhZyhBY3RpdmVOb2RlQ29udGV4dDo6SXNGb2N1c2FibGUp
OworICAgICAgICBjb250ZXh0LnNldEZsYWcoUGxhdGZvcm06OldlYkNvbnRleHQ6OklzRm9jdXNh
YmxlKTsKIAogICAgIHJldHVybiBjb250ZXh0OwogfQogCi1BY3RpdmVOb2RlQ29udGV4dCBXZWJQ
YWdlOjphY3RpdmVOb2RlQ29udGV4dChUYXJnZXREZXRlY3Rpb25TdHJhdGVneSBzdHJhdGVneSkg
Y29uc3QKK1BsYXRmb3JtOjpXZWJDb250ZXh0IFdlYlBhZ2U6OndlYkNvbnRleHQoVGFyZ2V0RGV0
ZWN0aW9uU3RyYXRlZ3kgc3RyYXRlZ3kpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGQtPmFjdGl2ZU5v
ZGVDb250ZXh0KHN0cmF0ZWd5KTsKKyAgICByZXR1cm4gZC0+d2ViQ29udGV4dChzdHJhdGVneSk7
CiB9CiAKIHZvaWQgV2ViUGFnZVByaXZhdGU6OnVwZGF0ZUN1cnNvcigpCkBAIC0zNTQ5LDYgKzM1
NjcsNyBAQCBib29sIFdlYlBhZ2VQcml2YXRlOjpoYW5kbGVNb3VzZUV2ZW50KFBsYXRmb3JtTW91
c2VFdmVudCYgbW91c2VFdmVudCkKICAgICB9CiAKICAgICBpZiAobW91c2VFdmVudC50eXBlKCkg
PT0gV2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkKSB7CisgICAgICAgIG1faW5w
dXRIYW5kbGVyLT5lbmFibGVJbnB1dE1vZGUoKTsKICAgICAgICAgaWYgKG1faW5wdXRIYW5kbGVy
LT53aWxsT3BlblBvcHVwRm9yTm9kZShub2RlKSkgewogICAgICAgICAgICAgLy8gRG8gbm90IGFs
bG93IGFueSBodW1hbiBnZW5lcmF0ZWQgbW91c2Ugb3Iga2V5Ym9hcmQgZXZlbnRzIHRvIHNlbGVj
dCA8b3B0aW9uPnMgaW4gdGhlIGxpc3QgYm94CiAgICAgICAgICAgICAvLyBiZWNhdXNlIHdlIHVz
ZSBhIHBvcCB1cCBkaWFsb2cgdG8gaGFuZGxlIHRoZSBhY3R1YWwgc2VsZWN0aW9ucy4gVGhpcyBw
cmV2ZW50cyBvcHRpb25zIGZyb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgK
aW5kZXggM2E4ODNjZTY2MDVkZTUzMjQyMjc1OGJkMDIyNjk4NDMyOGIzMThjZi4uZTllZWQyMzA0
YzA2N2MzN2QzZjYzY2ExMGM3OWVjODIyYTNiOTgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0FwaS9XZWJQYWdlLmgKQEAgLTE5LDEwICsxOSwxMiBAQAogI2lmbmRlZiBXZWJQYWdlX2gKICNk
ZWZpbmUgV2ViUGFnZV9oCiAKLSNpbmNsdWRlICJBY3RpdmVOb2RlQ29udGV4dC5oIgogI2luY2x1
ZGUgIkJsYWNrQmVycnlHbG9iYWwuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKwogI2luY2x1
ZGUgPEJsYWNrQmVycnlQbGF0Zm9ybUd1YXJkZWRQb2ludGVyLmg+CiAjaW5jbHVkZSA8QmxhY2tC
ZXJyeVBsYXRmb3JtSW5wdXRFdmVudHMuaD4KKyNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1X
ZWJDb250ZXh0Lmg+CiAjaW5jbHVkZSA8aW1mL2lucHV0X2RhdGEuaD4KICNpbmNsdWRlIDxuZXR3
b3JrL05ldHdvcmtSZXF1ZXN0Lmg+CiAKQEAgLTI1Nyw3ICsyNTksNyBAQCBwdWJsaWM6CiAKICAg
ICBXZWJTdHJpbmcgdGV4dEhhc0F0dHJpYnV0ZShjb25zdCBXZWJTdHJpbmcmIHF1ZXJ5KSBjb25z
dDsKIAotICAgIEFjdGl2ZU5vZGVDb250ZXh0IGFjdGl2ZU5vZGVDb250ZXh0KFRhcmdldERldGVj
dGlvblN0cmF0ZWd5KSBjb25zdDsKKyAgICBQbGF0Zm9ybTo6V2ViQ29udGV4dCB3ZWJDb250ZXh0
KFRhcmdldERldGVjdGlvblN0cmF0ZWd5KSBjb25zdDsKIAogICAgIHR5cGVkZWYgaW50cHRyX3Qg
QmFja0ZvcndhcmRJZDsKICAgICBzdHJ1Y3QgQmFja0ZvcndhcmRFbnRyeSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAppbmRleCBiYjRkZjVkOWZkYTQxNDEzOTE1N2I4
ZDhjMDBjNzQ1ZmJjNjQ5MWZkLi40MDQ3YTYxMzhiMDQxODMyODMwMDdmYjE5YWY5NzJlNmRhMmM0
MDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKQEAgLTI2Niw3
ICsyNjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3RpZnlQbHVnaW5SZWN0Q2hhbmdlZChpbnQg
aWQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RDaGFuZ2VkKTsKIAogICAgIC8vIENvbnRl
eHQgTWV0aG9kcy4KLSAgICBBY3RpdmVOb2RlQ29udGV4dCBhY3RpdmVOb2RlQ29udGV4dChUYXJn
ZXREZXRlY3Rpb25TdHJhdGVneSk7CisgICAgUGxhdGZvcm06OldlYkNvbnRleHQgd2ViQ29udGV4
dChUYXJnZXREZXRlY3Rpb25TdHJhdGVneSk7CiAgICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpOb2Rl
PiBjb250ZXh0Tm9kZShUYXJnZXREZXRlY3Rpb25TdHJhdGVneSk7CiAKICNpZiBFTkFCTEUoVklF
V1BPUlRfUkVGTE9XKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>