<?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>107592</bug_id>
          
          <creation_ts>2013-01-22 14:57:45 -0800</creation_ts>
          <short_desc>[Chromium] Correct auto-zoom when using compositor scaling</short_desc>
          <delta_ts>2019-07-18 16:38:15 -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>Layout and Rendering</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="Xianzhu Wang">wangxianzhu</reporter>
          <assigned_to name="Xianzhu Wang">wangxianzhu</assigned_to>
          <cc>abarth</cc>
    
    <cc>aelias</cc>
    
    <cc>enne</cc>
    
    <cc>extendermywifi</cc>
    
    <cc>jamesr</cc>
    
    <cc>klobag</cc>
    
    <cc>trchen</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>813446</commentid>
    <comment_count>0</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-22 14:57:45 -0800</bug_when>
    <thetext>Need to correct auto-zoom when using compositor scaling (applyDeviceScaleFactorInCompositor() and applyPageScaleFactorInCompositor()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813449</commentid>
    <comment_count>1</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-22 15:02:25 -0800</bug_when>
    <thetext>        1. The scale of auto-zoom should exclude deviceScaleFactor because the compositor will handle the scaling;
        2. Scroll location needs to be calculated differently when pageScaleFactor is handled by the compositor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813450</commentid>
    <comment_count>2</comment_count>
      <attachid>184056</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-22 15:04:03 -0800</bug_when>
    <thetext>Created attachment 184056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813486</commentid>
    <comment_count>3</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-22 15:38:06 -0800</bug_when>
    <thetext>The patch is now conflicting with aelias@&apos;s change. Will update after that change is landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813602</commentid>
    <comment_count>4</comment_count>
      <attachid>184090</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-22 17:27:22 -0800</bug_when>
    <thetext>Created attachment 184090
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813604</commentid>
    <comment_count>5</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2013-01-22 17:28:24 -0800</bug_when>
    <thetext>The new patch no longer conflicts with the patch of bug 107424.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817983</commentid>
    <comment_count>6</comment_count>
      <attachid>184090</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-28 12:31:16 -0800</bug_when>
    <thetext>Comment on attachment 184090
Updated patch

Thanks for the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818019</commentid>
    <comment_count>7</comment_count>
      <attachid>184090</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-28 13:09:51 -0800</bug_when>
    <thetext>Comment on attachment 184090
Updated patch

Clearing flags on attachment: 184090

Committed r140994: &lt;http://trac.webkit.org/changeset/140994&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818020</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-28 13:09:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184056</attachid>
            <date>2013-01-22 15:04:03 -0800</date>
            <delta_ts>2013-01-22 17:27:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107592-20130122230057.patch</filename>
            <type>text/plain</type>
            <size>26308</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGViMWM0MzI0NDZhMmJhY2ZlMGI0NmY4ZDk3ZWViZWJiODIzNWU3N2UuLmM4OWMxMzc1MjQwYzE1
NzM2MmU4NGMxMjdkMTI2MWJiOTAwNzExZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTMtMDEtMjIgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIENvcnJlY3QgYXV0by16b29tIHdoZW4g
dXNpbmcgY29tcG9zaXRvciBzY2FsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDc1OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAxLiBUaGUgc2NhbGUgb2YgYXV0by16b29tIHNob3VsZCBleGNsdWRl
IGRldmljZVNjYWxlRmFjdG9yIGJlY2F1c2UgdGhlIGNvbXBvc2l0b3Igd2lsbCBoYW5kbGUgdGhl
IHNjYWxpbmc7CisgICAgICAgIDIuIFNjcm9sbCBsb2NhdGlvbiBuZWVkcyB0byBiZSBjYWxjdWxh
dGVkIGRpZmZlcmVudGx5IHdoZW4gcGFnZVNjYWxlRmFjdG9yIGlzIGhhbmRsZWQgYnkgdGhlIGNv
bXBvc2l0b3IuCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6Y29tcHV0ZVNjYWxlQW5kU2Nyb2xsRm9ySGl0UmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjbGFtcE9mZnNldEF0U2NhbGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UGFnZVNjYWxlRmFjdG9yUHJlc2VydmluZ1Njcm9sbE9m
ZnNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQYWdlU2NhbGVGYWN0b3Ip
OgorICAgICAgICAqIHRlc3RzL1dlYkZyYW1lVGVzdC5jcHA6IFVwZGF0ZWQgdGVzdHMgRGl2QXV0
b1pvb21QYXJhbXNUZXN0LCBEaXZBdXRvWm9vbU11bHRpcGxlRGl2c1Rlc3QsIERpdkF1dG9ab29t
U2NhbGVCb3VuZHNUZXN0IGFuZCBEaXZBdXRvWm9vbVNjYWxlRm9udFNjYWxlRmFjdG9yVGVzdCwg
dG8gbWFrZSB0d28gdmVyc2lvbnMgb2YgdGhlbSAoV2ViS2l0U2NhbGluZyBhbmQgQ29tcG9zaXRv
clNjYWxpbmcpLgorCiAyMDEzLTAxLTIyICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4K
IAogICAgICAgICBUdXJuIG9uIEVOQUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUiBmb3IgQ2hyb21p
dW0gKGl0J3Mgc3RpbGwgZGlzYWJsZWQgYXQgcnVudGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBmZWQ0ZjhkNTEzZGUzMTg1YTMyZDQzYjM0YWJj
OWExMTgzOWVmNDdmLi45YmE1ZjE3ZDZmMDRkNjY3ZmE5YTZjODAyNjU5M2FlNTBiNjViMzFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xMTUxLDcg
KzExNTEsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlU2NhbGVBbmRTY3JvbGxGb3JIaXRS
ZWN0KGNvbnN0IFdlYlJlY3QmIGhpdFJlY3QsIEF1dG9abwogICAgICAgICAvLyAoYWZ0ZXIgZG91
YmxlIHRhcCwgZmluZCBpbiBwYWdlLCBldGMpLCB0aG91Z2ggdGhlIHVzZXIgc2hvdWxkIHN0aWxs
CiAgICAgICAgIC8vIGJlIGFsbG93ZWQgdG8gbWFudWFsbHkgcGluY2ggem9vbSBpbiBmdXJ0aGVy
IGlmIHRoZXkgZGVzaXJlLgogICAgICAgICBjb25zdCBmbG9hdCBkZWZhdWx0U2NhbGVXaGVuQWxy
ZWFkeUxlZ2libGUgPSBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3IgKiBkb3VibGVUYXBab29tQWxy
ZWFkeUxlZ2libGVSYXRpbzsKLSAgICAgICAgZmxvYXQgbGVnaWJsZVNjYWxlID0gZGV2aWNlU2Nh
bGVGYWN0b3IoKTsKKyAgICAgICAgZmxvYXQgbGVnaWJsZVNjYWxlID0gc2V0dGluZ3NJbXBsKCkt
PmFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSA/IDEgOiBkZXZpY2VTY2FsZUZh
Y3RvcigpOwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgICAgIGlmIChwYWdlKCkg
JiYgcGFnZSgpLT5zZXR0aW5ncygpKQogICAgICAgICAgICAgbGVnaWJsZVNjYWxlICo9IHBhZ2Uo
KS0+c2V0dGluZ3MoKS0+dGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoKTsKQEAgLTExNTks
OCArMTE1OSwxMiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlU2NhbGVBbmRTY3JvbGxGb3JI
aXRSZWN0KGNvbnN0IFdlYlJlY3QmIGhpdFJlY3QsIEF1dG9abwogICAgICAgICBpZiAobGVnaWJs
ZVNjYWxlIDwgZGVmYXVsdFNjYWxlV2hlbkFscmVhZHlMZWdpYmxlKQogICAgICAgICAgICAgbGVn
aWJsZVNjYWxlID0gKHNjYWxlID09IG1fbWluaW11bVBhZ2VTY2FsZUZhY3RvcikgPyBkZWZhdWx0
U2NhbGVXaGVuQWxyZWFkeUxlZ2libGUgOiBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3I7CiAKLSAg
ICAgICAgY29uc3QgZmxvYXQgZGVmYXVsdE1hcmdpbiA9IGRvdWJsZVRhcFpvb21Db250ZW50RGVm
YXVsdE1hcmdpbiAqIGRldmljZVNjYWxlRmFjdG9yKCk7Ci0gICAgICAgIGNvbnN0IGZsb2F0IG1p
bmltdW1NYXJnaW4gPSBkb3VibGVUYXBab29tQ29udGVudE1pbmltdW1NYXJnaW4gKiBkZXZpY2VT
Y2FsZUZhY3RvcigpOworICAgICAgICBmbG9hdCBkZWZhdWx0TWFyZ2luID0gZG91YmxlVGFwWm9v
bUNvbnRlbnREZWZhdWx0TWFyZ2luOworICAgICAgICBmbG9hdCBtaW5pbXVtTWFyZ2luID0gZG91
YmxlVGFwWm9vbUNvbnRlbnRNaW5pbXVtTWFyZ2luOworICAgICAgICBpZiAoIXNldHRpbmdzSW1w
bCgpLT5hcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkpIHsKKyAgICAgICAgICAg
IGRlZmF1bHRNYXJnaW4gKj0gZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICAgICAgICAgIG1pbmlt
dW1NYXJnaW4gKj0gZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICAgICAgfQogICAgICAgICAvLyBX
ZSB3YW50IHRoZSBtYXJnaW5zIHRvIGhhdmUgdGhlIHNhbWUgcGh5c2ljYWwgc2l6ZSwgd2hpY2gg
bWVhbnMgd2UKICAgICAgICAgLy8gbmVlZCB0byBleHByZXNzIHRoZW0gaW4gcG9zdC1zY2FsZSBz
aXplLiBUbyBkbyB0aGF0IHdlJ2QgbmVlZCB0byBrbm93CiAgICAgICAgIC8vIHRoZSBzY2FsZSB3
ZSdyZSBzY2FsaW5nIHRvLCBidXQgdGhhdCBkZXBlbmRzIG9uIHRoZSBtYXJnaW5zLiBJbnN0ZWFk
CkBAIC0xMTcxLDcgKzExNzUsMTAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6Y29tcHV0ZVNjYWxlQW5k
U2Nyb2xsRm9ySGl0UmVjdChjb25zdCBXZWJSZWN0JiBoaXRSZWN0LCBBdXRvWm8KICAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGRlZmF1bHRNYXJnaW4gKiByZWN0LndpZHRoIC8gbV9z
aXplLndpZHRoKSwKICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KG1pbmltdW1NYXJn
aW4gKiByZWN0LndpZHRoIC8gbV9zaXplLndpZHRoKSk7CiAgICAgICAgIC8vIEZpdCBibG9jayB0
byBzY3JlZW4sIHJlc3BlY3RpbmcgbGltaXRzLgotICAgICAgICBzY2FsZSAqPSBzdGF0aWNfY2Fz
dDxmbG9hdD4obV9zaXplLndpZHRoKSAvIHJlY3Qud2lkdGg7CisgICAgICAgIGlmIChzZXR0aW5n
c0ltcGwoKS0+YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkKKyAgICAgICAgICAg
IHNjYWxlID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fc2l6ZS53aWR0aCkgLyByZWN0LndpZHRoOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBzY2FsZSAqPSBzdGF0aWNfY2FzdDxmbG9hdD4obV9z
aXplLndpZHRoKSAvIHJlY3Qud2lkdGg7CiAgICAgICAgIHNjYWxlID0gbWluKHNjYWxlLCBsZWdp
YmxlU2NhbGUpOwogICAgICAgICBzY2FsZSA9IGNsYW1wUGFnZVNjYWxlRmFjdG9yVG9MaW1pdHMo
c2NhbGUpOwogCkBAIC0xMTk2LDggKzEyMDMsMTIgQEAgdm9pZCBXZWJWaWV3SW1wbDo6Y29tcHV0
ZVNjYWxlQW5kU2Nyb2xsRm9ySGl0UmVjdChjb25zdCBXZWJSZWN0JiBoaXRSZWN0LCBBdXRvWm8K
ICAgICAgICAgLy8gZG91YmxlLXRhcCB6b29tIHN0cmF0ZWd5IChmaXR0aW5nIHRoZSBjb250YWlu
aW5nIGJsb2NrIHRvIHRoZSBzY3JlZW4pCiAgICAgICAgIC8vIHRob3VnaC4KIAotICAgICAgICBm
bG9hdCBzY3JlZW5IZWlnaHQgPSBtX3NpemUuaGVpZ2h0IC8gc2NhbGUgKiBwYWdlU2NhbGVGYWN0
b3IoKTsKLSAgICAgICAgZmxvYXQgc2NyZWVuV2lkdGggPSBtX3NpemUud2lkdGggLyBzY2FsZSAq
IHBhZ2VTY2FsZUZhY3RvcigpOworICAgICAgICBmbG9hdCBzY3JlZW5IZWlnaHQgPSBtX3NpemUu
aGVpZ2h0IC8gc2NhbGU7CisgICAgICAgIGZsb2F0IHNjcmVlbldpZHRoID0gbV9zaXplLndpZHRo
IC8gc2NhbGU7CisgICAgICAgIGlmICghc2V0dGluZ3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFj
dG9ySW5Db21wb3NpdG9yKCkpIHsKKyAgICAgICAgICAgIHNjcmVlbkhlaWdodCAqPSBwYWdlU2Nh
bGVGYWN0b3IoKTsKKyAgICAgICAgICAgIHNjcmVlbldpZHRoICo9IHBhZ2VTY2FsZUZhY3Rvcigp
OworICAgICAgICB9CiAKICAgICAgICAgLy8gU2Nyb2xsIHRvIHZlcnRpY2FsbHkgYWxpZ24gdGhl
IGJsb2NrLgogICAgICAgICBpZiAocmVjdC5oZWlnaHQgPCBzY3JlZW5IZWlnaHQpIHsKQEAgLTEy
MjEsOCArMTIzMiwxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlU2NhbGVBbmRTY3JvbGxG
b3JIaXRSZWN0KGNvbnN0IFdlYlJlY3QmIGhpdFJlY3QsIEF1dG9abwogCiAgICAgc2NhbGUgPSBj
bGFtcFBhZ2VTY2FsZUZhY3RvclRvTGltaXRzKHNjYWxlKTsKICAgICBzY3JvbGwgPSBtYWluRnJh
bWVJbXBsKCktPmZyYW1lVmlldygpLT53aW5kb3dUb0NvbnRlbnRzKHNjcm9sbCk7Ci0gICAgZmxv
YXQgc2NhbGVEZWx0YSA9IHNjYWxlIC8gcGFnZVNjYWxlRmFjdG9yKCk7Ci0gICAgc2Nyb2xsID0g
V2ViUG9pbnQoc2Nyb2xsLnggKiBzY2FsZURlbHRhLCBzY3JvbGwueSAqIHNjYWxlRGVsdGEpOwor
ICAgIGlmICghc2V0dGluZ3NJbXBsKCktPmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9y
KCkpIHsKKyAgICAgICAgZmxvYXQgc2NhbGVEZWx0YSA9IHNjYWxlIC8gcGFnZVNjYWxlRmFjdG9y
KCk7CisgICAgICAgIHNjcm9sbCA9IFdlYlBvaW50KHNjcm9sbC54ICogc2NhbGVEZWx0YSwgc2Ny
b2xsLnkgKiBzY2FsZURlbHRhKTsKKyAgICB9CiAgICAgaWYgKCFpc0FuY2hvcikKICAgICAgICAg
c2Nyb2xsID0gY2xhbXBPZmZzZXRBdFNjYWxlKHNjcm9sbCwgc2NhbGUpOwogfQpAQCAtMjkxMSwx
NyArMjkyNCwyNCBAQCBmbG9hdCBXZWJWaWV3SW1wbDo6Y2xhbXBQYWdlU2NhbGVGYWN0b3JUb0xp
bWl0cyhmbG9hdCBzY2FsZUZhY3RvcikKIAogV2ViUG9pbnQgV2ViVmlld0ltcGw6OmNsYW1wT2Zm
c2V0QXRTY2FsZShjb25zdCBXZWJQb2ludCYgb2Zmc2V0LCBmbG9hdCBzY2FsZSkKIHsKLSAgICAv
LyBUaGlzIGlzIHRoZSBzY2FsZWQgY29udGVudCBzaXplLiBXZSBuZWVkIHRvIGNvbnZlcnQgaXQg
dG8gdGhlIG5ldyBzY2FsZSBmYWN0b3IuCiAgICAgV2ViU2l6ZSBjb250ZW50U2l6ZSA9IG1haW5G
cmFtZSgpLT5jb250ZW50c1NpemUoKTsKLSAgICBmbG9hdCBkZWx0YVNjYWxlID0gc2NhbGUgLyBw
YWdlU2NhbGVGYWN0b3IoKTsKLSAgICBpbnQgZG9jV2lkdGhBdE5ld1NjYWxlID0gY29udGVudFNp
emUud2lkdGggKiBkZWx0YVNjYWxlOwotICAgIGludCBkb2NIZWlnaHRBdE5ld1NjYWxlID0gY29u
dGVudFNpemUuaGVpZ2h0ICogZGVsdGFTY2FsZTsKLSAgICBpbnQgdmlld1dpZHRoID0gbV9zaXpl
LndpZHRoOwotICAgIGludCB2aWV3SGVpZ2h0ID0gbV9zaXplLmhlaWdodDsKKyAgICBpbnQgdmll
d1dpZHRoOworICAgIGludCB2aWV3SGVpZ2h0OworICAgIGlmIChzZXR0aW5nc0ltcGwoKS0+YXBw
bHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkgeworICAgICAgICB2aWV3V2lkdGggPSBt
X3NpemUud2lkdGggLyBzY2FsZTsKKyAgICAgICAgdmlld0hlaWdodCA9IG1fc2l6ZS5oZWlnaHQg
LyBzY2FsZTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBDb252ZXJ0IGNvbnRlbnRTaXplIHRv
IHRvIHRoZSBuZXcgc2NhbGUgZmFjdG9yLgorICAgICAgICBmbG9hdCBkZWx0YVNjYWxlID0gc2Nh
bGUgLyBwYWdlU2NhbGVGYWN0b3IoKTsKKyAgICAgICAgY29udGVudFNpemUud2lkdGggKj0gZGVs
dGFTY2FsZTsKKyAgICAgICAgY29udGVudFNpemUuaGVpZ2h0ICo9IGRlbHRhU2NhbGU7CisgICAg
ICAgIHZpZXdXaWR0aCA9IG1fc2l6ZS53aWR0aDsKKyAgICAgICAgdmlld0hlaWdodCA9IG1fc2l6
ZS5oZWlnaHQ7CisgICAgfQogCiAgICAgLy8gRW5mb3JjZSB0aGUgbWF4aW11bSBhbmQgbWluaW11
bSBzY3JvbGwgcG9zaXRpb25zIGF0IHRoZSBuZXcgc2NhbGUuCiAgICAgSW50UG9pbnQgY2xhbXBl
ZE9mZnNldCA9IG9mZnNldDsKLSAgICBjbGFtcGVkT2Zmc2V0ID0gY2xhbXBlZE9mZnNldC5zaHJ1
bmtUbyhJbnRQb2ludChkb2NXaWR0aEF0TmV3U2NhbGUgLSB2aWV3V2lkdGgsIGRvY0hlaWdodEF0
TmV3U2NhbGUgLSB2aWV3SGVpZ2h0KSk7CisgICAgY2xhbXBlZE9mZnNldCA9IGNsYW1wZWRPZmZz
ZXQuc2hydW5rVG8oSW50UG9pbnQoY29udGVudFNpemUud2lkdGggLSB2aWV3V2lkdGgsIGNvbnRl
bnRTaXplLmhlaWdodCAtIHZpZXdIZWlnaHQpKTsKICAgICBjbGFtcGVkT2Zmc2V0LmNsYW1wTmVn
YXRpdmVUb1plcm8oKTsKICAgICByZXR1cm4gY2xhbXBlZE9mZnNldDsKIH0KQEAgLTI5MzIsOCAr
Mjk1MiwxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQYWdlU2NhbGVGYWN0b3JQcmVzZXJ2aW5n
U2Nyb2xsT2Zmc2V0KGZsb2F0IHNjYWxlRmFjdG9yKQogICAgIHNjYWxlRmFjdG9yID0gY2xhbXBQ
YWdlU2NhbGVGYWN0b3JUb0xpbWl0cyhzY2FsZUZhY3Rvcik7CiAKICAgICBJbnRQb2ludCBzY3Jv
bGxPZmZzZXRBdE5ld1NjYWxlKG1haW5GcmFtZSgpLT5zY3JvbGxPZmZzZXQoKS53aWR0aCwgbWFp
bkZyYW1lKCktPnNjcm9sbE9mZnNldCgpLmhlaWdodCk7Ci0gICAgZmxvYXQgZGVsdGFTY2FsZSA9
IHNjYWxlRmFjdG9yIC8gcGFnZVNjYWxlRmFjdG9yKCk7Ci0gICAgc2Nyb2xsT2Zmc2V0QXROZXdT
Y2FsZS5zY2FsZShkZWx0YVNjYWxlLCBkZWx0YVNjYWxlKTsKKyAgICBpZiAoIXNldHRpbmdzSW1w
bCgpLT5hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKSB7CisgICAgICAgIGZsb2F0
IGRlbHRhU2NhbGUgPSBzY2FsZUZhY3RvciAvIHBhZ2VTY2FsZUZhY3RvcigpOworICAgICAgICBz
Y3JvbGxPZmZzZXRBdE5ld1NjYWxlLnNjYWxlKGRlbHRhU2NhbGUsIGRlbHRhU2NhbGUpOworICAg
IH0KIAogICAgIFdlYlBvaW50IGNsYW1wZWRPZmZzZXRBdE5ld1NjYWxlID0gY2xhbXBPZmZzZXRB
dFNjYWxlKHNjcm9sbE9mZnNldEF0TmV3U2NhbGUsIHNjYWxlRmFjdG9yKTsKICAgICBzZXRQYWdl
U2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IsIGNsYW1wZWRPZmZzZXRBdE5ld1NjYWxlKTsKQEAgLTI5
NDgsMTkgKzI5NzAsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQYWdlU2NhbGVGYWN0b3IoZmxv
YXQgc2NhbGVGYWN0b3IsIGNvbnN0IFdlYlBvaW50JiBvcmlnaW4pCiAgICAgICAgIHNjYWxlRmFj
dG9yID0gMTsKIAogICAgIHNjYWxlRmFjdG9yID0gY2xhbXBQYWdlU2NhbGVGYWN0b3JUb0xpbWl0
cyhzY2FsZUZhY3Rvcik7Ci0gICAgV2ViUG9pbnQgc2Nyb2xsT2Zmc2V0OwotICAgIGlmICghbV9w
YWdlLT5zZXR0aW5ncygpLT5hcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKSB7Ci0g
ICAgICAgIC8vIElmIHBhZ2Ugc2NhbGUgaXMgbm90IGFwcGxpZWQgaW4gdGhlIGNvbXBvc2l0b3Is
IHRoZW4gdGhlIHNjcm9sbCBvZmZzZXRzIHNob3VsZAotICAgICAgICAvLyBiZSBtb2RpZmllZCBi
eSB0aGUgc2NhbGUgZmFjdG9yLgotICAgICAgICBzY3JvbGxPZmZzZXQgPSBjbGFtcE9mZnNldEF0
U2NhbGUob3JpZ2luLCBzY2FsZUZhY3Rvcik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgSW50UG9p
bnQgb2Zmc2V0ID0gb3JpZ2luOwotICAgICAgICBXZWJTaXplIGNvbnRlbnRTaXplID0gbWFpbkZy
YW1lKCktPmNvbnRlbnRzU2l6ZSgpOwotICAgICAgICBvZmZzZXQuc2hydW5rVG8oSW50UG9pbnQo
Y29udGVudFNpemUud2lkdGggLSBtX3NpemUud2lkdGgsIGNvbnRlbnRTaXplLmhlaWdodCAtIG1f
c2l6ZS5oZWlnaHQpKTsKLSAgICAgICAgb2Zmc2V0LmNsYW1wTmVnYXRpdmVUb1plcm8oKTsKLSAg
ICAgICAgc2Nyb2xsT2Zmc2V0ID0gb2Zmc2V0OwotICAgIH0KLQorICAgIFdlYlBvaW50IHNjcm9s
bE9mZnNldCA9IGNsYW1wT2Zmc2V0QXRTY2FsZShvcmlnaW4sIHNjYWxlRmFjdG9yKTsKICAgICBw
YWdlKCktPnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvciwgc2Nyb2xsT2Zmc2V0KTsKICAg
ICBtX3BhZ2VTY2FsZUZhY3RvcklzU2V0ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAppbmRleCA4Mjk5YzA4NjA0ODE1MmQ1OWM1Y2Jj
ZTAxNzg1YzA3ZTgyMmY0ZTk0Li5kMTlkZDBlMTI0OWE2ZDliZDIzYjRjYzlkYTFkODk2ODM1MTYx
NmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3Bw
CkBAIC0zMzcsMTMgKzMzNywxNSBAQCB2b2lkIHNldFNjYWxlQW5kU2Nyb2xsQW5kTGF5b3V0KFdl
YktpdDo6V2ViVmlldyogd2ViVmlldywgV2ViUG9pbnQgc2Nyb2xsLCBmbG9hdAogICAgIHdlYlZp
ZXctPmxheW91dCgpOwogfQogCi1URVNUX0YoV2ViRnJhbWVUZXN0LCBEaXZBdXRvWm9vbVBhcmFt
c1Rlc3QpCitURVNUX0YoV2ViRnJhbWVUZXN0LCBEaXZBdXRvWm9vbVBhcmFtc1Rlc3RXZWJLaXRT
Y2FsaW5nKQogewogICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoImdldF9zY2FsZV9mb3Jf
YXV0b196b29tX2ludG9fZGl2X3Rlc3QuaHRtbCIpOwogCiAgICAgaW50IHZpZXdwb3J0V2lkdGgg
PSA2NDA7CiAgICAgaW50IHZpZXdwb3J0SGVpZ2h0ID0gNDgwOwogICAgIFdlYktpdDo6V2ViVmll
dyogd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2FkKG1fYmFz
ZVVSTCArICJnZXRfc2NhbGVfZm9yX2F1dG9fem9vbV9pbnRvX2Rpdl90ZXN0Lmh0bWwiKTsKKyAg
ICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3Np
dG9yKGZhbHNlKTsKKyAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseVBhZ2VTY2FsZUZh
Y3RvckluQ29tcG9zaXRvcihmYWxzZSk7CiAgICAgd2ViVmlldy0+c2V0RGV2aWNlU2NhbGVGYWN0
b3IoMi4wZik7CiAgICAgd2ViVmlldy0+cmVzaXplKFdlYlNpemUodmlld3BvcnRXaWR0aCwgdmll
d3BvcnRIZWlnaHQpKTsKICAgICB3ZWJWaWV3LT5zZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoMC4w
MWYsIDQpOwpAQCAtMzk0LDYgKzM5Niw2NCBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBEaXZBdXRv
Wm9vbVBhcmFtc1Rlc3QpCiAgICAgRVhQRUNUX05FQVIodmlld3BvcnRXaWR0aCAvIChmbG9hdCkg
d2lkZURpdi53aWR0aCwgc2NhbGUsIDAuMSk7CiB9CiAKK1RFU1RfRihXZWJGcmFtZVRlc3QsIERp
dkF1dG9ab29tUGFyYW1zVGVzdENvbXBvc2l0b3JTY2FsaW5nKQoreworICAgIHJlZ2lzdGVyTW9j
a2VkSHR0cFVSTExvYWQoImdldF9zY2FsZV9mb3JfYXV0b196b29tX2ludG9fZGl2X3Rlc3QuaHRt
bCIpOworCisgICAgY29uc3QgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSAyLjBmOworICAgIGlu
dCB2aWV3cG9ydFdpZHRoID0gNjQwIC8gZGV2aWNlU2NhbGVGYWN0b3I7CisgICAgaW50IHZpZXdw
b3J0SGVpZ2h0ID0gMTI4MCAvIGRldmljZVNjYWxlRmFjdG9yOworICAgIFdlYktpdDo6V2ViVmll
dyogd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2FkKG1fYmFz
ZVVSTCArICJnZXRfc2NhbGVfZm9yX2F1dG9fem9vbV9pbnRvX2Rpdl90ZXN0Lmh0bWwiKTsgLy8K
KyAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21w
b3NpdG9yKHRydWUpOworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5UGFnZVNjYWxl
RmFjdG9ySW5Db21wb3NpdG9yKHRydWUpOworICAgIHdlYlZpZXctPnNldERldmljZVNjYWxlRmFj
dG9yKGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICB3ZWJWaWV3LT5zZXRQYWdlU2NhbGVGYWN0b3JM
aW1pdHMoMC4wMWYsIDQpOworICAgIHdlYlZpZXctPnNldFBhZ2VTY2FsZUZhY3RvcigwLjVmLCBX
ZWJQb2ludCgwLCAwKSk7CisgICAgd2ViVmlldy0+cmVzaXplKFdlYlNpemUodmlld3BvcnRXaWR0
aCwgdmlld3BvcnRIZWlnaHQpKTsKKyAgICB3ZWJWaWV3LT5lbmFibGVGaXhlZExheW91dE1vZGUo
dHJ1ZSk7CisgICAgd2ViVmlldy0+bGF5b3V0KCk7CisKKyAgICBXZWJSZWN0IHdpZGVEaXYoMjAw
LCAxMDAsIDQwMCwgMTUwKTsKKyAgICBXZWJSZWN0IHRhbGxEaXYoMjAwLCAzMDAsIDQwMCwgODAw
KTsKKyAgICBXZWJSZWN0IGRvdWJsZVRhcFBvaW50V2lkZSh3aWRlRGl2LnggKyA1MCwgd2lkZURp
di55ICsgNTAsIDAsIDApOworICAgIFdlYlJlY3QgZG91YmxlVGFwUG9pbnRUYWxsKHRhbGxEaXYu
eCArIDUwLCB0YWxsRGl2LnkgKyA1MCwgMCwgMCk7CisgICAgZmxvYXQgc2NhbGU7CisgICAgV2Vi
UG9pbnQgc2Nyb2xsOworICAgIGJvb2wgaXNBbmNob3I7CisKKyAgICBXZWJWaWV3SW1wbCogd2Vi
Vmlld0ltcGwgPSBzdGF0aWNfY2FzdDxXZWJWaWV3SW1wbCo+KHdlYlZpZXcpOworICAgIC8vIFRl
c3QgZG91YmxlLXRhcCB6b29taW5nIGludG8gd2lkZSBkaXYuCisgICAgd2ViVmlld0ltcGwtPmNv
bXB1dGVTY2FsZUFuZFNjcm9sbEZvckhpdFJlY3QoZG91YmxlVGFwUG9pbnRXaWRlLCBXZWJWaWV3
SW1wbDo6RG91YmxlVGFwLCBzY2FsZSwgc2Nyb2xsLCBpc0FuY2hvcik7CisgICAgLy8gVGhlIGRp
diBzaG91bGQgaG9yaXpvbnRhbGx5IGZpbGwgdGhlIHNjcmVlbiAobW9kdWxvIG1hcmdpbnMpLCBh
bmQKKyAgICAvLyB2ZXJ0aWNhbGx5IGNlbnRlcmVkIChtb2R1bG8gaW50ZWdlciByb3VuZGluZyku
CisgICAgRVhQRUNUX05FQVIodmlld3BvcnRXaWR0aCAvIChmbG9hdCkgd2lkZURpdi53aWR0aCwg
c2NhbGUsIDAuMSk7CisgICAgRVhQRUNUX05FQVIod2lkZURpdi54LCBzY3JvbGwueCwgMjApOwor
ICAgIEVYUEVDVF9FUSgwLCBzY3JvbGwueSk7CisgICAgRVhQRUNUX0ZBTFNFKGlzQW5jaG9yKTsK
KworICAgIHNldFNjYWxlQW5kU2Nyb2xsQW5kTGF5b3V0KHdlYlZpZXdJbXBsLCBzY3JvbGwsIHNj
YWxlKTsKKworICAgIC8vIFRlc3Qgem9vbSBvdXQgYmFjayB0byBtaW5pbXVtIHNjYWxlLgorICAg
IHdlYlZpZXdJbXBsLT5jb21wdXRlU2NhbGVBbmRTY3JvbGxGb3JIaXRSZWN0KGRvdWJsZVRhcFBv
aW50V2lkZSwgV2ViVmlld0ltcGw6OkRvdWJsZVRhcCwgc2NhbGUsIHNjcm9sbCwgaXNBbmNob3Ip
OworICAgIEVYUEVDVF9GTE9BVF9FUSh3ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3Rv
cigpLCBzY2FsZSk7CisgICAgRVhQRUNUX1RSVUUoaXNBbmNob3IpOworCisgICAgc2V0U2NhbGVB
bmRTY3JvbGxBbmRMYXlvdXQod2ViVmlld0ltcGwsIFdlYlBvaW50KDAsIDApLCBzY2FsZSk7CisK
KyAgICAvLyBUZXN0IGRvdWJsZS10YXAgem9vbWluZyBpbnRvIHRhbGwgZGl2LgorICAgIHdlYlZp
ZXdJbXBsLT5jb21wdXRlU2NhbGVBbmRTY3JvbGxGb3JIaXRSZWN0KGRvdWJsZVRhcFBvaW50VGFs
bCwgV2ViVmlld0ltcGw6OkRvdWJsZVRhcCwgc2NhbGUsIHNjcm9sbCwgaXNBbmNob3IpOworICAg
IC8vIFRoZSBkaXYgc2hvdWxkIHN0YXJ0IGF0IHRoZSB0b3AgbGVmdCBvZiB0aGUgdmlld3BvcnQu
CisgICAgRVhQRUNUX05FQVIodmlld3BvcnRXaWR0aCAvIChmbG9hdCkgdGFsbERpdi53aWR0aCwg
c2NhbGUsIDAuMSk7CisgICAgRVhQRUNUX05FQVIodGFsbERpdi54LCBzY3JvbGwueCwgMjApOwor
ICAgIEVYUEVDVF9ORUFSKHRhbGxEaXYueSwgc2Nyb2xsLnksIDIwKTsKKyAgICBFWFBFQ1RfRkFM
U0UoaXNBbmNob3IpOworCisgICAgLy8gVGVzdCBmb3IgTm9uLWRvdWJsZXRhcCBzY2FsaW5nCisg
ICAgLy8gVGVzdCB6b29taW5nIGludG8gZGl2LgorICAgIHdlYlZpZXdJbXBsLT5jb21wdXRlU2Nh
bGVBbmRTY3JvbGxGb3JIaXRSZWN0KFdlYlJlY3QoMjUwLCAyNTAsIDEwLCAxMCksIFdlYlZpZXdJ
bXBsOjpGaW5kSW5QYWdlLCBzY2FsZSwgc2Nyb2xsLCBpc0FuY2hvcik7CisgICAgRVhQRUNUX05F
QVIodmlld3BvcnRXaWR0aCAvIChmbG9hdCkgd2lkZURpdi53aWR0aCwgc2NhbGUsIDAuMSk7Cit9
CisKIHZvaWQgc2ltdWxhdGVEb3VibGVUYXAoV2ViVmlld0ltcGwqIHdlYlZpZXdJbXBsLCBXZWJQ
b2ludCYgcG9pbnQsIGZsb2F0JiBzY2FsZSkKIHsKICAgICBXZWJQb2ludCBzY2FsZWRQb2ludChz
dGF0aWNfY2FzdDxpbnQ+KHBvaW50LnggKiB3ZWJWaWV3SW1wbC0+cGFnZVNjYWxlRmFjdG9yKCkp
LApAQCAtNDAzLDcgKzQ2Myw3IEBAIHZvaWQgc2ltdWxhdGVEb3VibGVUYXAoV2ViVmlld0ltcGwq
IHdlYlZpZXdJbXBsLCBXZWJQb2ludCYgcG9pbnQsIGZsb2F0JiBzY2FsZSkKICAgICBzY2FsZSA9
IHdlYlZpZXdJbXBsLT5wYWdlU2NhbGVGYWN0b3IoKTsKIH0KIAotVEVTVF9GKFdlYkZyYW1lVGVz
dCwgRGl2QXV0b1pvb21NdWx0aXBsZURpdnNUZXN0KQorVEVTVF9GKFdlYkZyYW1lVGVzdCwgRGl2
QXV0b1pvb21NdWx0aXBsZURpdnNUZXN0V2ViS2l0U2NhbGluZykKIHsKICAgICByZWdpc3Rlck1v
Y2tlZEh0dHBVUkxMb2FkKCJnZXRfbXVsdGlwbGVfZGl2c19mb3JfYXV0b196b29tX3Rlc3QuaHRt
bCIpOwogCkBAIC00MTEsNiArNDcxLDggQEAgVEVTVF9GKFdlYkZyYW1lVGVzdCwgRGl2QXV0b1pv
b21NdWx0aXBsZURpdnNUZXN0KQogICAgIGludCB2aWV3cG9ydEhlaWdodCA9IDQ4MDsKICAgICBm
bG9hdCBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVSYXRpbyA9IDEuMmY7CiAgICAgV2ViS2l0
OjpXZWJWaWV3KiB3ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExv
YWQobV9iYXNlVVJMICsgImdldF9tdWx0aXBsZV9kaXZzX2Zvcl9hdXRvX3pvb21fdGVzdC5odG1s
Iik7CisgICAgd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlEZXZpY2VTY2FsZUZhY3Rvcklu
Q29tcG9zaXRvcihmYWxzZSk7CisgICAgd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlQYWdl
U2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoZmFsc2UpOwogICAgIHdlYlZpZXctPmVuYWJsZUZpeGVk
TGF5b3V0TW9kZSh0cnVlKTsKICAgICB3ZWJWaWV3LT5yZXNpemUoV2ViU2l6ZSh2aWV3cG9ydFdp
ZHRoLCB2aWV3cG9ydEhlaWdodCkpOwogICAgIHdlYlZpZXctPnNldFBhZ2VTY2FsZUZhY3Rvckxp
bWl0cygxLCA0KTsKQEAgLTQzOSwxMCArNTAxLDUzIEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIERp
dkF1dG9ab29tTXVsdGlwbGVEaXZzVGVzdCkKICAgICBFWFBFQ1RfRkxPQVRfRVEod2ViVmlld0lt
cGwtPmRldmljZVNjYWxlRmFjdG9yKCksIHNjYWxlKTsKICAgICB3ZWJWaWV3SW1wbC0+YXBwbHlT
Y3JvbGxBbmRTY2FsZShXZWJTaXplKCksIDAuNmYpOwogICAgIHNpbXVsYXRlRG91YmxlVGFwKHdl
YlZpZXdJbXBsLCBib3R0b21Qb2ludCwgc2NhbGUpOwotICAgIEVYUEVDVF9GTE9BVF9FUSh3ZWJW
aWV3SW1wbC0+ZGV2aWNlU2NhbGVGYWN0b3IoKSwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9BVF9F
USh3ZWJWaWV3LT5kZXZpY2VTY2FsZUZhY3RvcigpLCBzY2FsZSk7CiB9CiAKLVRFU1RfRihXZWJG
cmFtZVRlc3QsIERpdkF1dG9ab29tU2NhbGVCb3VuZHNUZXN0KQorVEVTVF9GKFdlYkZyYW1lVGVz
dCwgRGl2QXV0b1pvb21NdWx0aXBsZURpdnNUZXN0Q29tcG9zaXRvclNjYWxpbmcpCit7CisgICAg
cmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgiZ2V0X211bHRpcGxlX2RpdnNfZm9yX2F1dG9fem9v
bV90ZXN0Lmh0bWwiKTsKKworICAgIGNvbnN0IGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gMi4w
ZjsKKyAgICBpbnQgdmlld3BvcnRXaWR0aCA9IDY0MCAvIGRldmljZVNjYWxlRmFjdG9yOworICAg
IGludCB2aWV3cG9ydEhlaWdodCA9IDEyODAgLyBkZXZpY2VTY2FsZUZhY3RvcjsKKyAgICBmbG9h
dCBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVSYXRpbyA9IDEuMmY7CisgICAgV2ViS2l0OjpX
ZWJWaWV3KiB3ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQo
bV9iYXNlVVJMICsgImdldF9tdWx0aXBsZV9kaXZzX2Zvcl9hdXRvX3pvb21fdGVzdC5odG1sIik7
CisgICAgd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29t
cG9zaXRvcih0cnVlKTsKKyAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseVBhZ2VTY2Fs
ZUZhY3RvckluQ29tcG9zaXRvcih0cnVlKTsKKyAgICB3ZWJWaWV3LT5lbmFibGVGaXhlZExheW91
dE1vZGUodHJ1ZSk7CisgICAgd2ViVmlldy0+cmVzaXplKFdlYlNpemUodmlld3BvcnRXaWR0aCwg
dmlld3BvcnRIZWlnaHQpKTsKKyAgICB3ZWJWaWV3LT5zZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMo
MC41ZiwgNCk7CisgICAgd2ViVmlldy0+c2V0RGV2aWNlU2NhbGVGYWN0b3IoZGV2aWNlU2NhbGVG
YWN0b3IpOworICAgIHdlYlZpZXctPnNldFBhZ2VTY2FsZUZhY3RvcigwLjVmLCBXZWJQb2ludCgw
LCAwKSk7CisgICAgd2ViVmlldy0+bGF5b3V0KCk7CisKKyAgICBXZWJWaWV3SW1wbCogd2ViVmll
d0ltcGwgPSBzdGF0aWNfY2FzdDxXZWJWaWV3SW1wbCo+KHdlYlZpZXcpOworICAgIHdlYlZpZXdJ
bXBsLT5zaG91bGRVc2VBbmltYXRlRG91YmxlVGFwVGltZVplcm9Gb3JUZXN0aW5nKHRydWUpOwor
CisgICAgV2ViUmVjdCB0b3BEaXYoMjAwLCAxMDAsIDIwMCwgMTUwKTsKKyAgICBXZWJSZWN0IGJv
dHRvbURpdigyMDAsIDMwMCwgMjAwLCAxNTApOworICAgIFdlYlBvaW50IHRvcFBvaW50KHRvcERp
di54ICsgNTAsIHRvcERpdi55ICsgNTApOworICAgIFdlYlBvaW50IGJvdHRvbVBvaW50KGJvdHRv
bURpdi54ICsgNTAsIGJvdHRvbURpdi55ICsgNTApOworICAgIGZsb2F0IHNjYWxlOworICAgIHNl
dFNjYWxlQW5kU2Nyb2xsQW5kTGF5b3V0KHdlYlZpZXdJbXBsLCBXZWJQb2ludCgwLCAwKSwgKHdl
YlZpZXdJbXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkpICogKDEgKyBkb3VibGVUYXBab29t
QWxyZWFkeUxlZ2libGVSYXRpbykgLyAyKTsKKworICAgIC8vIFRlc3QgZG91YmxlIHRhcCBvbiB0
d28gZGlmZmVyZW50IGRpdnMKKyAgICAvLyBBZnRlciBmaXJzdCB6b29tLCB3ZSBzaG91bGQgZ28g
YmFjayB0byBtaW5pbXVtIHBhZ2Ugc2NhbGUgd2l0aCBhIHNlY29uZCBkb3VibGUgdGFwLgorICAg
IHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJbXBsLCB0b3BQb2ludCwgc2NhbGUpOworICAgIEVY
UEVDVF9GTE9BVF9FUSgxLCBzY2FsZSk7CisgICAgc2ltdWxhdGVEb3VibGVUYXAod2ViVmlld0lt
cGwsIGJvdHRvbVBvaW50LCBzY2FsZSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKHdlYlZpZXdJbXBs
LT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCksIHNjYWxlKTsKKworICAgIC8vIElmIHRoZSB1c2Vy
IHBpbmNoIHpvb21zIGFmdGVyIGRvdWJsZSB0YXAsIGEgc2Vjb25kIGRvdWJsZSB0YXAgc2hvdWxk
IHpvb20gYmFjayB0byB0aGUgZGl2LgorICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJbXBs
LCB0b3BQb2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9BVF9FUSgxLCBzY2FsZSk7CisgICAg
d2ViVmlld0ltcGwtPmFwcGx5U2Nyb2xsQW5kU2NhbGUoV2ViU2l6ZSgpLCAwLjZmKTsKKyAgICBz
aW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1wbCwgYm90dG9tUG9pbnQsIHNjYWxlKTsKKyAgICBF
WFBFQ1RfRkxPQVRfRVEoMSwgc2NhbGUpOworfQorCitURVNUX0YoV2ViRnJhbWVUZXN0LCBEaXZB
dXRvWm9vbVNjYWxlQm91bmRzVGVzdFdlYktpdFNjYWxpbmcpCiB7CiAgICAgcmVnaXN0ZXJNb2Nr
ZWRIdHRwVVJMTG9hZCgiZ2V0X3NjYWxlX2JvdW5kc19jaGVja19mb3JfYXV0b196b29tX3Rlc3Qu
aHRtbCIpOwogCkBAIC00NTAsNiArNTU1LDggQEAgVEVTVF9GKFdlYkZyYW1lVGVzdCwgRGl2QXV0
b1pvb21TY2FsZUJvdW5kc1Rlc3QpCiAgICAgaW50IHZpZXdwb3J0SGVpZ2h0ID0gNDgwOwogICAg
IGZsb2F0IGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVJhdGlvID0gMS4yZjsKICAgICBXZWJL
aXQ6OldlYlZpZXcqIHdlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5k
TG9hZChtX2Jhc2VVUkwgKyAiZ2V0X3NjYWxlX2JvdW5kc19jaGVja19mb3JfYXV0b196b29tX3Rl
c3QuaHRtbCIpOworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5RGV2aWNlU2NhbGVG
YWN0b3JJbkNvbXBvc2l0b3IoZmFsc2UpOworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEFw
cGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGZhbHNlKTsKICAgICB3ZWJWaWV3LT5lbmFi
bGVGaXhlZExheW91dE1vZGUodHJ1ZSk7CiAgICAgd2ViVmlldy0+cmVzaXplKFdlYlNpemUodmll
d3BvcnRXaWR0aCwgdmlld3BvcnRIZWlnaHQpKTsKICAgICB3ZWJWaWV3LT5zZXRQYWdlU2NhbGVG
YWN0b3JMaW1pdHMoMSwgNCk7CkBAIC00OTksOCArNjA2LDY5IEBAIFRFU1RfRihXZWJGcmFtZVRl
c3QsIERpdkF1dG9ab29tU2NhbGVCb3VuZHNUZXN0KQogICAgIEVYUEVDVF9GTE9BVF9FUSh3ZWJW
aWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpLCBzY2FsZSk7CiB9CiAKK1RFU1RfRihX
ZWJGcmFtZVRlc3QsIERpdkF1dG9ab29tU2NhbGVCb3VuZHNUZXN0Q29tcG9zaXRvclNjYWxpbmcp
Cit7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgiZ2V0X3NjYWxlX2JvdW5kc19jaGVj
a19mb3JfYXV0b196b29tX3Rlc3QuaHRtbCIpOworCisgICAgaW50IHZpZXdwb3J0V2lkdGggPSAz
MjA7CisgICAgaW50IHZpZXdwb3J0SGVpZ2h0ID0gNDgwOworICAgIGZsb2F0IGRvdWJsZVRhcFpv
b21BbHJlYWR5TGVnaWJsZVJhdGlvID0gMS4yZjsKKyAgICBXZWJLaXQ6OldlYlZpZXcqIHdlYlZp
ZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZChtX2Jhc2VVUkwgKyAi
Z2V0X3NjYWxlX2JvdW5kc19jaGVja19mb3JfYXV0b196b29tX3Rlc3QuaHRtbCIpOworICAgIHdl
YlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3Io
dHJ1ZSk7CisgICAgd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlQYWdlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgd2ViVmlldy0+ZW5hYmxlRml4ZWRMYXlvdXRNb2RlKHRy
dWUpOworICAgIHdlYlZpZXctPnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0
SGVpZ2h0KSk7CisgICAgd2ViVmlldy0+c2V0RGV2aWNlU2NhbGVGYWN0b3IoMS41Zik7CisgICAg
d2ViVmlldy0+bGF5b3V0KCk7CisKKyAgICBXZWJWaWV3SW1wbCogd2ViVmlld0ltcGwgPSBzdGF0
aWNfY2FzdDxXZWJWaWV3SW1wbCo+KHdlYlZpZXcpOworICAgIHdlYlZpZXdJbXBsLT5zaG91bGRV
c2VBbmltYXRlRG91YmxlVGFwVGltZVplcm9Gb3JUZXN0aW5nKHRydWUpOworCisgICAgV2ViUmVj
dCBkaXYoMjAwLCAxMDAsIDIwMCwgMTUwKTsKKyAgICBXZWJQb2ludCBkb3VibGVUYXBQb2ludChk
aXYueCArIDUwLCBkaXYueSArIDUwKTsKKyAgICBmbG9hdCBzY2FsZTsKKworICAgIC8vIFRlc3Qg
ZG91YmxlIHRhcCBzY2FsZSBib3VuZHMuCisgICAgLy8gbWluaW11bVBhZ2VTY2FsZSA8IGRvdWJs
ZVRhcFpvb21BbHJlYWR5TGVnaWJsZVNjYWxlIDwgMQorICAgIHdlYlZpZXctPnNldFBhZ2VTY2Fs
ZUZhY3RvckxpbWl0cygwLjVmLCA0KTsKKyAgICBmbG9hdCBkb3VibGVUYXBab29tQWxyZWFkeUxl
Z2libGVTY2FsZSA9IHdlYlZpZXdJbXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkgKiBkb3Vi
bGVUYXBab29tQWxyZWFkeUxlZ2libGVSYXRpbzsKKyAgICBzZXRTY2FsZUFuZFNjcm9sbEFuZExh
eW91dCh3ZWJWaWV3SW1wbCwgV2ViUG9pbnQoMCwgMCksICh3ZWJWaWV3SW1wbC0+bWluaW11bVBh
Z2VTY2FsZUZhY3RvcigpKSAqICgxICsgZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlUmF0aW8p
IC8gMik7CisgICAgc2ltdWxhdGVEb3VibGVUYXAod2ViVmlld0ltcGwsIGRvdWJsZVRhcFBvaW50
LCBzY2FsZSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDEsIHNjYWxlKTsKKyAgICBzaW11bGF0ZURv
dWJsZVRhcCh3ZWJWaWV3SW1wbCwgZG91YmxlVGFwUG9pbnQsIHNjYWxlKTsKKyAgICBFWFBFQ1Rf
RkxPQVRfRVEod2ViVmlld0ltcGwtPm1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKSwgc2NhbGUpOwor
ICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJbXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUp
OworICAgIEVYUEVDVF9GTE9BVF9FUSgxLCBzY2FsZSk7CisKKyAgICAvLyBab29tIGluIHRvIHJl
c2V0IGRvdWJsZV90YXBfem9vbV9pbl9lZmZlY3QgZmxhZy4KKyAgICB3ZWJWaWV3SW1wbC0+YXBw
bHlTY3JvbGxBbmRTY2FsZShXZWJTaXplKCksIDEuMWYpOworICAgIC8vIDEgPCBtaW5pbXVtUGFn
ZVNjYWxlIDwgZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlU2NhbGUKKyAgICB3ZWJWaWV3LT5z
ZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoMS4xZiwgNCk7CisgICAgZG91YmxlVGFwWm9vbUFscmVh
ZHlMZWdpYmxlU2NhbGUgPSB3ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpICog
ZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlUmF0aW87CisgICAgc2V0U2NhbGVBbmRTY3JvbGxB
bmRMYXlvdXQod2ViVmlld0ltcGwsIFdlYlBvaW50KDAsIDApLCAod2ViVmlld0ltcGwtPm1pbmlt
dW1QYWdlU2NhbGVGYWN0b3IoKSkgKiAoMSArIGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVJh
dGlvKSAvIDIpOworICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJbXBsLCBkb3VibGVUYXBQ
b2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9BVF9FUSh3ZWJWaWV3SW1wbC0+bWluaW11bVBh
Z2VTY2FsZUZhY3RvcigpLCBzY2FsZSk7CisgICAgc2ltdWxhdGVEb3VibGVUYXAod2ViVmlld0lt
cGwsIGRvdWJsZVRhcFBvaW50LCBzY2FsZSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKGRvdWJsZVRh
cFpvb21BbHJlYWR5TGVnaWJsZVNjYWxlLCBzY2FsZSk7CisgICAgc2ltdWxhdGVEb3VibGVUYXAo
d2ViVmlld0ltcGwsIGRvdWJsZVRhcFBvaW50LCBzY2FsZSk7CisgICAgRVhQRUNUX0ZMT0FUX0VR
KHdlYlZpZXdJbXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCksIHNjYWxlKTsKKworICAgIC8v
IFpvb20gaW4gdG8gcmVzZXQgZG91YmxlX3RhcF96b29tX2luX2VmZmVjdCBmbGFnLgorICAgIHdl
YlZpZXdJbXBsLT5hcHBseVNjcm9sbEFuZFNjYWxlKFdlYlNpemUoKSwgMS4xZik7CisgICAgLy8g
bWluaW11bVBhZ2VTY2FsZSA8IDEgPCBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVTY2FsZQor
ICAgIHdlYlZpZXctPnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cygwLjk1ZiwgNCk7CisgICAgZG91
YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlU2NhbGUgPSB3ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VT
Y2FsZUZhY3RvcigpICogZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlUmF0aW87CisgICAgc2V0
U2NhbGVBbmRTY3JvbGxBbmRMYXlvdXQod2ViVmlld0ltcGwsIFdlYlBvaW50KDAsIDApLCAod2Vi
Vmlld0ltcGwtPm1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKSkgKiAoMSArIGRvdWJsZVRhcFpvb21B
bHJlYWR5TGVnaWJsZVJhdGlvKSAvIDIpOworICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJ
bXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9BVF9FUSh3ZWJWaWV3
SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpLCBzY2FsZSk7CisgICAgc2ltdWxhdGVEb3Vi
bGVUYXAod2ViVmlld0ltcGwsIGRvdWJsZVRhcFBvaW50LCBzY2FsZSk7CisgICAgRVhQRUNUX0ZM
T0FUX0VRKGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVNjYWxlLCBzY2FsZSk7CisgICAgc2lt
dWxhdGVEb3VibGVUYXAod2ViVmlld0ltcGwsIGRvdWJsZVRhcFBvaW50LCBzY2FsZSk7CisgICAg
RVhQRUNUX0ZMT0FUX0VRKHdlYlZpZXdJbXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCksIHNj
YWxlKTsKK30KKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi1URVNUX0YoV2ViRnJhbWVU
ZXN0LCBEaXZBdXRvWm9vbVNjYWxlRm9udFNjYWxlRmFjdG9yVGVzdCkKK1RFU1RfRihXZWJGcmFt
ZVRlc3QsIERpdkF1dG9ab29tU2NhbGVGb250U2NhbGVGYWN0b3JUZXN0V2ViS2l0U2NhbGluZykK
IHsKICAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJnZXRfc2NhbGVfYm91bmRzX2NoZWNr
X2Zvcl9hdXRvX3pvb21fdGVzdC5odG1sIik7CiAKQEAgLTUwOSw2ICs2NzcsOCBAQCBURVNUX0Yo
V2ViRnJhbWVUZXN0LCBEaXZBdXRvWm9vbVNjYWxlRm9udFNjYWxlRmFjdG9yVGVzdCkKICAgICBm
bG9hdCBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVSYXRpbyA9IDEuMmY7CiAgICAgZmxvYXQg
dGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IgPSAxLjEzZjsKICAgICBXZWJLaXQ6OldlYlZp
ZXcqIHdlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZChtX2Jh
c2VVUkwgKyAiZ2V0X3NjYWxlX2JvdW5kc19jaGVja19mb3JfYXV0b196b29tX3Rlc3QuaHRtbCIp
OworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNv
bXBvc2l0b3IoZmFsc2UpOworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5UGFnZVNj
YWxlRmFjdG9ySW5Db21wb3NpdG9yKGZhbHNlKTsKICAgICB3ZWJWaWV3LT5lbmFibGVGaXhlZExh
eW91dE1vZGUodHJ1ZSk7CiAgICAgd2ViVmlldy0+cmVzaXplKFdlYlNpemUodmlld3BvcnRXaWR0
aCwgdmlld3BvcnRIZWlnaHQpKTsKICAgICB3ZWJWaWV3LT5zZXRQYWdlU2NhbGVGYWN0b3JMaW1p
dHMoMSwgNCk7CkBAIC01NzQsNiArNzQ0LDgyIEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIERpdkF1
dG9ab29tU2NhbGVGb250U2NhbGVGYWN0b3JUZXN0KQogICAgIHNpbXVsYXRlRG91YmxlVGFwKHdl
YlZpZXdJbXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOwogICAgIEVYUEVDVF9GTE9BVF9FUShs
ZWdpYmxlU2NhbGUsIHNjYWxlKTsKIH0KKworVEVTVF9GKFdlYkZyYW1lVGVzdCwgRGl2QXV0b1pv
b21TY2FsZUZvbnRTY2FsZUZhY3RvclRlc3RDb21wb3NpdG9yU2NhbGluZykKK3sKKyAgICByZWdp
c3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJnZXRfc2NhbGVfYm91bmRzX2NoZWNrX2Zvcl9hdXRvX3pv
b21fdGVzdC5odG1sIik7CisKKyAgICBpbnQgdmlld3BvcnRXaWR0aCA9IDMyMDsKKyAgICBpbnQg
dmlld3BvcnRIZWlnaHQgPSA0ODA7CisgICAgZmxvYXQgZG91YmxlVGFwWm9vbUFscmVhZHlMZWdp
YmxlUmF0aW8gPSAxLjJmOworICAgIGZsb2F0IHRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9y
ID0gMS4xM2Y7CisgICAgV2ViS2l0OjpXZWJWaWV3KiB3ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVy
czo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNlVVJMICsgImdldF9zY2FsZV9ib3VuZHNfY2hl
Y2tfZm9yX2F1dG9fem9vbV90ZXN0Lmh0bWwiKTsKKyAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5z
ZXRBcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKHRydWUpOworICAgIHdlYlZpZXct
PnNldHRpbmdzKCktPnNldEFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKHRydWUpOwor
ICAgIHdlYlZpZXctPmVuYWJsZUZpeGVkTGF5b3V0TW9kZSh0cnVlKTsKKyAgICB3ZWJWaWV3LT5y
ZXNpemUoV2ViU2l6ZSh2aWV3cG9ydFdpZHRoLCB2aWV3cG9ydEhlaWdodCkpOworICAgIHdlYlZp
ZXctPmxheW91dCgpOworCisgICAgV2ViVmlld0ltcGwqIHdlYlZpZXdJbXBsID0gc3RhdGljX2Nh
c3Q8V2ViVmlld0ltcGwqPih3ZWJWaWV3KTsKKyAgICB3ZWJWaWV3SW1wbC0+c2hvdWxkVXNlQW5p
bWF0ZURvdWJsZVRhcFRpbWVaZXJvRm9yVGVzdGluZyh0cnVlKTsKKyAgICB3ZWJWaWV3SW1wbC0+
cGFnZSgpLT5zZXR0aW5ncygpLT5zZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3Rvcih0ZXh0
QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3Rvcik7CisKKyAgICBXZWJSZWN0IGRpdigyMDAsIDEwMCwg
MjAwLCAxNTApOworICAgIFdlYlBvaW50IGRvdWJsZVRhcFBvaW50KGRpdi54ICsgNTAsIGRpdi55
ICsgNTApOworICAgIGZsb2F0IHNjYWxlOworCisgICAgLy8gVGVzdCBkb3VibGUgdGFwIHNjYWxl
IGJvdW5kcy4KKyAgICAvLyBtaW5pbXVtUGFnZVNjYWxlIDwgZG91YmxlVGFwWm9vbUFscmVhZHlM
ZWdpYmxlU2NhbGUgPCAxIDwgdGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IKKyAgICBmbG9h
dCBsZWdpYmxlU2NhbGUgPSB0ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcjsKKyAgICBzZXRT
Y2FsZUFuZFNjcm9sbEFuZExheW91dCh3ZWJWaWV3SW1wbCwgV2ViUG9pbnQoMCwgMCksICh3ZWJW
aWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpKSAqICgxICsgZG91YmxlVGFwWm9vbUFs
cmVhZHlMZWdpYmxlUmF0aW8pIC8gMik7CisgICAgd2ViVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9y
TGltaXRzKDAuNWYsIDQpOworICAgIGZsb2F0IGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVNj
YWxlID0gd2ViVmlld0ltcGwtPm1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKSAqIGRvdWJsZVRhcFpv
b21BbHJlYWR5TGVnaWJsZVJhdGlvOworICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJbXBs
LCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9BVF9FUShsZWdpYmxlU2Nh
bGUsIHNjYWxlKTsKKyAgICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1wbCwgZG91YmxlVGFw
UG9pbnQsIHNjYWxlKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEod2ViVmlld0ltcGwtPm1pbmltdW1Q
YWdlU2NhbGVGYWN0b3IoKSwgc2NhbGUpOworICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJ
bXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9BVF9FUShsZWdpYmxl
U2NhbGUsIHNjYWxlKTsKKworICAgIC8vIFpvb20gaW4gdG8gcmVzZXQgZG91YmxlX3RhcF96b29t
X2luX2VmZmVjdCBmbGFnLgorICAgIHdlYlZpZXdJbXBsLT5hcHBseVNjcm9sbEFuZFNjYWxlKFdl
YlNpemUoKSwgMS4xZik7CisgICAgLy8gMSA8IHRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9y
IDwgbWluaW11bVBhZ2VTY2FsZSA8IGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVNjYWxlCisg
ICAgd2ViVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKDEuMmYsIDQpOworICAgIGRvdWJs
ZVRhcFpvb21BbHJlYWR5TGVnaWJsZVNjYWxlID0gd2ViVmlld0ltcGwtPm1pbmltdW1QYWdlU2Nh
bGVGYWN0b3IoKSAqIGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVJhdGlvOworICAgIHNldFNj
YWxlQW5kU2Nyb2xsQW5kTGF5b3V0KHdlYlZpZXdJbXBsLCBXZWJQb2ludCgwLCAwKSwgKHdlYlZp
ZXdJbXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkpICogKDEgKyBkb3VibGVUYXBab29tQWxy
ZWFkeUxlZ2libGVSYXRpbykgLyAyKTsKKyAgICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1w
bCwgZG91YmxlVGFwUG9pbnQsIHNjYWxlKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEod2ViVmlld0lt
cGwtPm1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKSwgc2NhbGUpOworICAgIHNpbXVsYXRlRG91Ymxl
VGFwKHdlYlZpZXdJbXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9B
VF9FUShkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVTY2FsZSwgc2NhbGUpOworICAgIHNpbXVs
YXRlRG91YmxlVGFwKHdlYlZpZXdJbXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOworICAgIEVY
UEVDVF9GTE9BVF9FUSh3ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpLCBzY2Fs
ZSk7CisKKyAgICAvLyBab29tIGluIHRvIHJlc2V0IGRvdWJsZV90YXBfem9vbV9pbl9lZmZlY3Qg
ZmxhZy4KKyAgICB3ZWJWaWV3SW1wbC0+YXBwbHlTY3JvbGxBbmRTY2FsZShXZWJTaXplKCksIDEu
MWYpOworICAgIC8vIG1pbmltdW1QYWdlU2NhbGUgPCAxIDwgdGV4dEF1dG9zaXppbmdGb250U2Nh
bGVGYWN0b3IgPCBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVTY2FsZQorICAgIHdlYlZpZXct
PnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cygwLjk1ZiwgNCk7CisgICAgZG91YmxlVGFwWm9vbUFs
cmVhZHlMZWdpYmxlU2NhbGUgPSB3ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3Rvcigp
ICogZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlUmF0aW87CisgICAgc2V0U2NhbGVBbmRTY3Jv
bGxBbmRMYXlvdXQod2ViVmlld0ltcGwsIFdlYlBvaW50KDAsIDApLCAod2ViVmlld0ltcGwtPm1p
bmltdW1QYWdlU2NhbGVGYWN0b3IoKSkgKiAoMSArIGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJs
ZVJhdGlvKSAvIDIpOworICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJbXBsLCBkb3VibGVU
YXBQb2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9BVF9FUSh3ZWJWaWV3SW1wbC0+bWluaW11
bVBhZ2VTY2FsZUZhY3RvcigpLCBzY2FsZSk7CisgICAgc2ltdWxhdGVEb3VibGVUYXAod2ViVmll
d0ltcGwsIGRvdWJsZVRhcFBvaW50LCBzY2FsZSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKGRvdWJs
ZVRhcFpvb21BbHJlYWR5TGVnaWJsZVNjYWxlLCBzY2FsZSk7CisgICAgc2ltdWxhdGVEb3VibGVU
YXAod2ViVmlld0ltcGwsIGRvdWJsZVRhcFBvaW50LCBzY2FsZSk7CisgICAgRVhQRUNUX0ZMT0FU
X0VRKHdlYlZpZXdJbXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCksIHNjYWxlKTsKKworICAg
IC8vIFpvb20gaW4gdG8gcmVzZXQgZG91YmxlX3RhcF96b29tX2luX2VmZmVjdCBmbGFnLgorICAg
IHdlYlZpZXdJbXBsLT5hcHBseVNjcm9sbEFuZFNjYWxlKFdlYlNpemUoKSwgMS4xZik7CisgICAg
Ly8gbWluaW11bVBhZ2VTY2FsZSA8IDEgPCBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVTY2Fs
ZSA8IHRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yCisgICAgd2ViVmlldy0+c2V0UGFnZVNj
YWxlRmFjdG9yTGltaXRzKDAuOWYsIDQpOworICAgIGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJs
ZVNjYWxlID0gd2ViVmlld0ltcGwtPm1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKSAqIGRvdWJsZVRh
cFpvb21BbHJlYWR5TGVnaWJsZVJhdGlvOworICAgIHNldFNjYWxlQW5kU2Nyb2xsQW5kTGF5b3V0
KHdlYlZpZXdJbXBsLCBXZWJQb2ludCgwLCAwKSwgKHdlYlZpZXdJbXBsLT5taW5pbXVtUGFnZVNj
YWxlRmFjdG9yKCkpICogKDEgKyBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVSYXRpbykgLyAy
KTsKKyAgICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1wbCwgZG91YmxlVGFwUG9pbnQsIHNj
YWxlKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEobGVnaWJsZVNjYWxlLCBzY2FsZSk7CisgICAgc2lt
dWxhdGVEb3VibGVUYXAod2ViVmlld0ltcGwsIGRvdWJsZVRhcFBvaW50LCBzY2FsZSk7CisgICAg
RVhQRUNUX0ZMT0FUX0VRKHdlYlZpZXdJbXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCksIHNj
YWxlKTsKKyAgICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1wbCwgZG91YmxlVGFwUG9pbnQs
IHNjYWxlKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEobGVnaWJsZVNjYWxlLCBzY2FsZSk7Cit9CiAj
ZW5kaWYKIAogLy8gVGhpcyB0ZXN0IGRlcGVuZHMgb24gY29kZSB0aGF0IGlzIGNvbXBpbGVkIGNv
bmRpdGlvbmFsbHkuIFdlIGxpa2VseSBuZWVkIHRvCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184090</attachid>
            <date>2013-01-22 17:27:22 -0800</date>
            <delta_ts>2013-01-28 13:09:51 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-107592-20130123012416.patch</filename>
            <type>text/plain</type>
            <size>22946</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDFmNmYxOTI3MjIxOGY4OTM5OGM0ODc4MmIxYmU3ODc4YzE1YmNmZTYuLmY5NzI3NDU2MWExMDdh
YWFiMWZkNGNjYTczZTFjYWU0MzE2YWI1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTMtMDEtMjIgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIENvcnJlY3QgYXV0by16b29tIHdoZW4g
dXNpbmcgY29tcG9zaXRvciBzY2FsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDc1OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAxLiBUaGUgc2NhbGUgb2YgYXV0by16b29tIHNob3VsZCBleGNsdWRl
IGRldmljZVNjYWxlRmFjdG9yIGJlY2F1c2UgdGhlIGNvbXBvc2l0b3Igd2lsbCBoYW5kbGUgdGhl
IHNjYWxpbmc7CisgICAgICAgIDIuIFNjcm9sbCBsb2NhdGlvbiBuZWVkcyB0byBiZSBjYWxjdWxh
dGVkIGRpZmZlcmVudGx5IHdoZW4gcGFnZVNjYWxlRmFjdG9yIGlzIGhhbmRsZWQgYnkgdGhlIGNv
bXBvc2l0b3IuCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6Y29tcHV0ZVNjYWxlQW5kU2Nyb2xsRm9ySGl0UmVjdCk6CisgICAg
ICAgICogdGVzdHMvV2ViRnJhbWVUZXN0LmNwcDogVXBkYXRlZCB0ZXN0cyBEaXZBdXRvWm9vbVBh
cmFtc1Rlc3QsIERpdkF1dG9ab29tTXVsdGlwbGVEaXZzVGVzdCwgRGl2QXV0b1pvb21TY2FsZUJv
dW5kc1Rlc3QgYW5kIERpdkF1dG9ab29tU2NhbGVGb250U2NhbGVGYWN0b3JUZXN0LCB0byBtYWtl
IHR3byB2ZXJzaW9ucyBvZiB0aGVtIChXZWJLaXRTY2FsaW5nIGFuZCBDb21wb3NpdG9yU2NhbGlu
ZykuCisKIDIwMTMtMDEtMjIgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSRUdSRVNTSU9OKHIxNDAzOTIpOiBJbmplY3RJREJLZXlUZXN0LlRvcExldmVsUHJvcGVy
dHlTdHJpbmdWYWx1ZSBpcyBjcmFzaGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCmluZGV4IGZlZDRmOGQ1MTNkZTMxODVhMzJkNDNiMzRhYmM5YTExODM5ZWY0
N2YuLjExZGQ4MzMzYWQ2YmE1NzA1ODNkNTRlZDFlNDE2ZmNmZDQyZTk0Y2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTExNTEsNyArMTE1MSw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OmNvbXB1dGVTY2FsZUFuZFNjcm9sbEZvckhpdFJlY3QoY29uc3Qg
V2ViUmVjdCYgaGl0UmVjdCwgQXV0b1pvCiAgICAgICAgIC8vIChhZnRlciBkb3VibGUgdGFwLCBm
aW5kIGluIHBhZ2UsIGV0YyksIHRob3VnaCB0aGUgdXNlciBzaG91bGQgc3RpbGwKICAgICAgICAg
Ly8gYmUgYWxsb3dlZCB0byBtYW51YWxseSBwaW5jaCB6b29tIGluIGZ1cnRoZXIgaWYgdGhleSBk
ZXNpcmUuCiAgICAgICAgIGNvbnN0IGZsb2F0IGRlZmF1bHRTY2FsZVdoZW5BbHJlYWR5TGVnaWJs
ZSA9IG1fbWluaW11bVBhZ2VTY2FsZUZhY3RvciAqIGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJs
ZVJhdGlvOwotICAgICAgICBmbG9hdCBsZWdpYmxlU2NhbGUgPSBkZXZpY2VTY2FsZUZhY3Rvcigp
OworICAgICAgICBmbG9hdCBsZWdpYmxlU2NhbGUgPSBzZXR0aW5nc0ltcGwoKS0+YXBwbHlEZXZp
Y2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpID8gMSA6IGRldmljZVNjYWxlRmFjdG9yKCk7CiAj
aWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICAgICAgaWYgKHBhZ2UoKSAmJiBwYWdlKCkt
PnNldHRpbmdzKCkpCiAgICAgICAgICAgICBsZWdpYmxlU2NhbGUgKj0gcGFnZSgpLT5zZXR0aW5n
cygpLT50ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcigpOwpAQCAtMTE1OSw4ICsxMTU5LDEy
IEBAIHZvaWQgV2ViVmlld0ltcGw6OmNvbXB1dGVTY2FsZUFuZFNjcm9sbEZvckhpdFJlY3QoY29u
c3QgV2ViUmVjdCYgaGl0UmVjdCwgQXV0b1pvCiAgICAgICAgIGlmIChsZWdpYmxlU2NhbGUgPCBk
ZWZhdWx0U2NhbGVXaGVuQWxyZWFkeUxlZ2libGUpCiAgICAgICAgICAgICBsZWdpYmxlU2NhbGUg
PSAoc2NhbGUgPT0gbV9taW5pbXVtUGFnZVNjYWxlRmFjdG9yKSA/IGRlZmF1bHRTY2FsZVdoZW5B
bHJlYWR5TGVnaWJsZSA6IG1fbWluaW11bVBhZ2VTY2FsZUZhY3RvcjsKIAotICAgICAgICBjb25z
dCBmbG9hdCBkZWZhdWx0TWFyZ2luID0gZG91YmxlVGFwWm9vbUNvbnRlbnREZWZhdWx0TWFyZ2lu
ICogZGV2aWNlU2NhbGVGYWN0b3IoKTsKLSAgICAgICAgY29uc3QgZmxvYXQgbWluaW11bU1hcmdp
biA9IGRvdWJsZVRhcFpvb21Db250ZW50TWluaW11bU1hcmdpbiAqIGRldmljZVNjYWxlRmFjdG9y
KCk7CisgICAgICAgIGZsb2F0IGRlZmF1bHRNYXJnaW4gPSBkb3VibGVUYXBab29tQ29udGVudERl
ZmF1bHRNYXJnaW47CisgICAgICAgIGZsb2F0IG1pbmltdW1NYXJnaW4gPSBkb3VibGVUYXBab29t
Q29udGVudE1pbmltdW1NYXJnaW47CisgICAgICAgIGlmICghc2V0dGluZ3NJbXBsKCktPmFwcGx5
RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkgeworICAgICAgICAgICAgZGVmYXVsdE1h
cmdpbiAqPSBkZXZpY2VTY2FsZUZhY3RvcigpOworICAgICAgICAgICAgbWluaW11bU1hcmdpbiAq
PSBkZXZpY2VTY2FsZUZhY3RvcigpOworICAgICAgICB9CiAgICAgICAgIC8vIFdlIHdhbnQgdGhl
IG1hcmdpbnMgdG8gaGF2ZSB0aGUgc2FtZSBwaHlzaWNhbCBzaXplLCB3aGljaCBtZWFucyB3ZQog
ICAgICAgICAvLyBuZWVkIHRvIGV4cHJlc3MgdGhlbSBpbiBwb3N0LXNjYWxlIHNpemUuIFRvIGRv
IHRoYXQgd2UnZCBuZWVkIHRvIGtub3cKICAgICAgICAgLy8gdGhlIHNjYWxlIHdlJ3JlIHNjYWxp
bmcgdG8sIGJ1dCB0aGF0IGRlcGVuZHMgb24gdGhlIG1hcmdpbnMuIEluc3RlYWQKQEAgLTExNzEs
NyArMTE3NSwxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlU2NhbGVBbmRTY3JvbGxGb3JI
aXRSZWN0KGNvbnN0IFdlYlJlY3QmIGhpdFJlY3QsIEF1dG9abwogICAgICAgICAgICAgICAgIHN0
YXRpY19jYXN0PGludD4oZGVmYXVsdE1hcmdpbiAqIHJlY3Qud2lkdGggLyBtX3NpemUud2lkdGgp
LAogICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obWluaW11bU1hcmdpbiAqIHJlY3Qu
d2lkdGggLyBtX3NpemUud2lkdGgpKTsKICAgICAgICAgLy8gRml0IGJsb2NrIHRvIHNjcmVlbiwg
cmVzcGVjdGluZyBsaW1pdHMuCi0gICAgICAgIHNjYWxlICo9IHN0YXRpY19jYXN0PGZsb2F0Piht
X3NpemUud2lkdGgpIC8gcmVjdC53aWR0aDsKKyAgICAgICAgaWYgKHNldHRpbmdzSW1wbCgpLT5h
cHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcigpKQorICAgICAgICAgICAgc2NhbGUgPSBz
dGF0aWNfY2FzdDxmbG9hdD4obV9zaXplLndpZHRoKSAvIHJlY3Qud2lkdGg7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHNjYWxlICo9IHN0YXRpY19jYXN0PGZsb2F0PihtX3NpemUud2lkdGgp
IC8gcmVjdC53aWR0aDsKICAgICAgICAgc2NhbGUgPSBtaW4oc2NhbGUsIGxlZ2libGVTY2FsZSk7
CiAgICAgICAgIHNjYWxlID0gY2xhbXBQYWdlU2NhbGVGYWN0b3JUb0xpbWl0cyhzY2FsZSk7CiAK
QEAgLTExOTYsOCArMTIwMywxMiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpjb21wdXRlU2NhbGVBbmRT
Y3JvbGxGb3JIaXRSZWN0KGNvbnN0IFdlYlJlY3QmIGhpdFJlY3QsIEF1dG9abwogICAgICAgICAv
LyBkb3VibGUtdGFwIHpvb20gc3RyYXRlZ3kgKGZpdHRpbmcgdGhlIGNvbnRhaW5pbmcgYmxvY2sg
dG8gdGhlIHNjcmVlbikKICAgICAgICAgLy8gdGhvdWdoLgogCi0gICAgICAgIGZsb2F0IHNjcmVl
bkhlaWdodCA9IG1fc2l6ZS5oZWlnaHQgLyBzY2FsZSAqIHBhZ2VTY2FsZUZhY3RvcigpOwotICAg
ICAgICBmbG9hdCBzY3JlZW5XaWR0aCA9IG1fc2l6ZS53aWR0aCAvIHNjYWxlICogcGFnZVNjYWxl
RmFjdG9yKCk7CisgICAgICAgIGZsb2F0IHNjcmVlbkhlaWdodCA9IG1fc2l6ZS5oZWlnaHQgLyBz
Y2FsZTsKKyAgICAgICAgZmxvYXQgc2NyZWVuV2lkdGggPSBtX3NpemUud2lkdGggLyBzY2FsZTsK
KyAgICAgICAgaWYgKCFzZXR0aW5nc0ltcGwoKS0+YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBv
c2l0b3IoKSkgeworICAgICAgICAgICAgc2NyZWVuSGVpZ2h0ICo9IHBhZ2VTY2FsZUZhY3Rvcigp
OworICAgICAgICAgICAgc2NyZWVuV2lkdGggKj0gcGFnZVNjYWxlRmFjdG9yKCk7CisgICAgICAg
IH0KIAogICAgICAgICAvLyBTY3JvbGwgdG8gdmVydGljYWxseSBhbGlnbiB0aGUgYmxvY2suCiAg
ICAgICAgIGlmIChyZWN0LmhlaWdodCA8IHNjcmVlbkhlaWdodCkgewpAQCAtMTIyMSw4ICsxMjMy
LDEwIEBAIHZvaWQgV2ViVmlld0ltcGw6OmNvbXB1dGVTY2FsZUFuZFNjcm9sbEZvckhpdFJlY3Qo
Y29uc3QgV2ViUmVjdCYgaGl0UmVjdCwgQXV0b1pvCiAKICAgICBzY2FsZSA9IGNsYW1wUGFnZVNj
YWxlRmFjdG9yVG9MaW1pdHMoc2NhbGUpOwogICAgIHNjcm9sbCA9IG1haW5GcmFtZUltcGwoKS0+
ZnJhbWVWaWV3KCktPndpbmRvd1RvQ29udGVudHMoc2Nyb2xsKTsKLSAgICBmbG9hdCBzY2FsZURl
bHRhID0gc2NhbGUgLyBwYWdlU2NhbGVGYWN0b3IoKTsKLSAgICBzY3JvbGwgPSBXZWJQb2ludChz
Y3JvbGwueCAqIHNjYWxlRGVsdGEsIHNjcm9sbC55ICogc2NhbGVEZWx0YSk7CisgICAgaWYgKCFz
ZXR0aW5nc0ltcGwoKS0+YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkgeworICAg
ICAgICBmbG9hdCBzY2FsZURlbHRhID0gc2NhbGUgLyBwYWdlU2NhbGVGYWN0b3IoKTsKKyAgICAg
ICAgc2Nyb2xsID0gV2ViUG9pbnQoc2Nyb2xsLnggKiBzY2FsZURlbHRhLCBzY3JvbGwueSAqIHNj
YWxlRGVsdGEpOworICAgIH0KICAgICBpZiAoIWlzQW5jaG9yKQogICAgICAgICBzY3JvbGwgPSBj
bGFtcE9mZnNldEF0U2NhbGUoc2Nyb2xsLCBzY2FsZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKaW5kZXggODI5OWMwODYwNDgxNTJkNTljNWNi
Y2UwMTc4NWMwN2U4MjJmNGU5NC4uZDE5ZGQwZTEyNDlhNmQ5YmQyM2I0Y2M5ZGExZDg5NjgzNTE2
MTZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNw
cApAQCAtMzM3LDEzICszMzcsMTUgQEAgdm9pZCBzZXRTY2FsZUFuZFNjcm9sbEFuZExheW91dChX
ZWJLaXQ6OldlYlZpZXcqIHdlYlZpZXcsIFdlYlBvaW50IHNjcm9sbCwgZmxvYXQKICAgICB3ZWJW
aWV3LT5sYXlvdXQoKTsKIH0KIAotVEVTVF9GKFdlYkZyYW1lVGVzdCwgRGl2QXV0b1pvb21QYXJh
bXNUZXN0KQorVEVTVF9GKFdlYkZyYW1lVGVzdCwgRGl2QXV0b1pvb21QYXJhbXNUZXN0V2ViS2l0
U2NhbGluZykKIHsKICAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJnZXRfc2NhbGVfZm9y
X2F1dG9fem9vbV9pbnRvX2Rpdl90ZXN0Lmh0bWwiKTsKIAogICAgIGludCB2aWV3cG9ydFdpZHRo
ID0gNjQwOwogICAgIGludCB2aWV3cG9ydEhlaWdodCA9IDQ4MDsKICAgICBXZWJLaXQ6OldlYlZp
ZXcqIHdlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZChtX2Jh
c2VVUkwgKyAiZ2V0X3NjYWxlX2Zvcl9hdXRvX3pvb21faW50b19kaXZfdGVzdC5odG1sIik7Cisg
ICAgd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9z
aXRvcihmYWxzZSk7CisgICAgd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlQYWdlU2NhbGVG
YWN0b3JJbkNvbXBvc2l0b3IoZmFsc2UpOwogICAgIHdlYlZpZXctPnNldERldmljZVNjYWxlRmFj
dG9yKDIuMGYpOwogICAgIHdlYlZpZXctPnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgsIHZp
ZXdwb3J0SGVpZ2h0KSk7CiAgICAgd2ViVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKDAu
MDFmLCA0KTsKQEAgLTM5NCw2ICszOTYsNjQgQEAgVEVTVF9GKFdlYkZyYW1lVGVzdCwgRGl2QXV0
b1pvb21QYXJhbXNUZXN0KQogICAgIEVYUEVDVF9ORUFSKHZpZXdwb3J0V2lkdGggLyAoZmxvYXQp
IHdpZGVEaXYud2lkdGgsIHNjYWxlLCAwLjEpOwogfQogCitURVNUX0YoV2ViRnJhbWVUZXN0LCBE
aXZBdXRvWm9vbVBhcmFtc1Rlc3RDb21wb3NpdG9yU2NhbGluZykKK3sKKyAgICByZWdpc3Rlck1v
Y2tlZEh0dHBVUkxMb2FkKCJnZXRfc2NhbGVfZm9yX2F1dG9fem9vbV9pbnRvX2Rpdl90ZXN0Lmh0
bWwiKTsKKworICAgIGNvbnN0IGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gMi4wZjsKKyAgICBp
bnQgdmlld3BvcnRXaWR0aCA9IDY0MCAvIGRldmljZVNjYWxlRmFjdG9yOworICAgIGludCB2aWV3
cG9ydEhlaWdodCA9IDEyODAgLyBkZXZpY2VTY2FsZUZhY3RvcjsKKyAgICBXZWJLaXQ6OldlYlZp
ZXcqIHdlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZChtX2Jh
c2VVUkwgKyAiZ2V0X3NjYWxlX2Zvcl9hdXRvX3pvb21faW50b19kaXZfdGVzdC5odG1sIik7IC8v
CisgICAgd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29t
cG9zaXRvcih0cnVlKTsKKyAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseVBhZ2VTY2Fs
ZUZhY3RvckluQ29tcG9zaXRvcih0cnVlKTsKKyAgICB3ZWJWaWV3LT5zZXREZXZpY2VTY2FsZUZh
Y3RvcihkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgd2ViVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9y
TGltaXRzKDAuMDFmLCA0KTsKKyAgICB3ZWJWaWV3LT5zZXRQYWdlU2NhbGVGYWN0b3IoMC41Ziwg
V2ViUG9pbnQoMCwgMCkpOworICAgIHdlYlZpZXctPnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lk
dGgsIHZpZXdwb3J0SGVpZ2h0KSk7CisgICAgd2ViVmlldy0+ZW5hYmxlRml4ZWRMYXlvdXRNb2Rl
KHRydWUpOworICAgIHdlYlZpZXctPmxheW91dCgpOworCisgICAgV2ViUmVjdCB3aWRlRGl2KDIw
MCwgMTAwLCA0MDAsIDE1MCk7CisgICAgV2ViUmVjdCB0YWxsRGl2KDIwMCwgMzAwLCA0MDAsIDgw
MCk7CisgICAgV2ViUmVjdCBkb3VibGVUYXBQb2ludFdpZGUod2lkZURpdi54ICsgNTAsIHdpZGVE
aXYueSArIDUwLCAwLCAwKTsKKyAgICBXZWJSZWN0IGRvdWJsZVRhcFBvaW50VGFsbCh0YWxsRGl2
LnggKyA1MCwgdGFsbERpdi55ICsgNTAsIDAsIDApOworICAgIGZsb2F0IHNjYWxlOworICAgIFdl
YlBvaW50IHNjcm9sbDsKKyAgICBib29sIGlzQW5jaG9yOworCisgICAgV2ViVmlld0ltcGwqIHdl
YlZpZXdJbXBsID0gc3RhdGljX2Nhc3Q8V2ViVmlld0ltcGwqPih3ZWJWaWV3KTsKKyAgICAvLyBU
ZXN0IGRvdWJsZS10YXAgem9vbWluZyBpbnRvIHdpZGUgZGl2LgorICAgIHdlYlZpZXdJbXBsLT5j
b21wdXRlU2NhbGVBbmRTY3JvbGxGb3JIaXRSZWN0KGRvdWJsZVRhcFBvaW50V2lkZSwgV2ViVmll
d0ltcGw6OkRvdWJsZVRhcCwgc2NhbGUsIHNjcm9sbCwgaXNBbmNob3IpOworICAgIC8vIFRoZSBk
aXYgc2hvdWxkIGhvcml6b250YWxseSBmaWxsIHRoZSBzY3JlZW4gKG1vZHVsbyBtYXJnaW5zKSwg
YW5kCisgICAgLy8gdmVydGljYWxseSBjZW50ZXJlZCAobW9kdWxvIGludGVnZXIgcm91bmRpbmcp
LgorICAgIEVYUEVDVF9ORUFSKHZpZXdwb3J0V2lkdGggLyAoZmxvYXQpIHdpZGVEaXYud2lkdGgs
IHNjYWxlLCAwLjEpOworICAgIEVYUEVDVF9ORUFSKHdpZGVEaXYueCwgc2Nyb2xsLngsIDIwKTsK
KyAgICBFWFBFQ1RfRVEoMCwgc2Nyb2xsLnkpOworICAgIEVYUEVDVF9GQUxTRShpc0FuY2hvcik7
CisKKyAgICBzZXRTY2FsZUFuZFNjcm9sbEFuZExheW91dCh3ZWJWaWV3SW1wbCwgc2Nyb2xsLCBz
Y2FsZSk7CisKKyAgICAvLyBUZXN0IHpvb20gb3V0IGJhY2sgdG8gbWluaW11bSBzY2FsZS4KKyAg
ICB3ZWJWaWV3SW1wbC0+Y29tcHV0ZVNjYWxlQW5kU2Nyb2xsRm9ySGl0UmVjdChkb3VibGVUYXBQ
b2ludFdpZGUsIFdlYlZpZXdJbXBsOjpEb3VibGVUYXAsIHNjYWxlLCBzY3JvbGwsIGlzQW5jaG9y
KTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEod2ViVmlld0ltcGwtPm1pbmltdW1QYWdlU2NhbGVGYWN0
b3IoKSwgc2NhbGUpOworICAgIEVYUEVDVF9UUlVFKGlzQW5jaG9yKTsKKworICAgIHNldFNjYWxl
QW5kU2Nyb2xsQW5kTGF5b3V0KHdlYlZpZXdJbXBsLCBXZWJQb2ludCgwLCAwKSwgc2NhbGUpOwor
CisgICAgLy8gVGVzdCBkb3VibGUtdGFwIHpvb21pbmcgaW50byB0YWxsIGRpdi4KKyAgICB3ZWJW
aWV3SW1wbC0+Y29tcHV0ZVNjYWxlQW5kU2Nyb2xsRm9ySGl0UmVjdChkb3VibGVUYXBQb2ludFRh
bGwsIFdlYlZpZXdJbXBsOjpEb3VibGVUYXAsIHNjYWxlLCBzY3JvbGwsIGlzQW5jaG9yKTsKKyAg
ICAvLyBUaGUgZGl2IHNob3VsZCBzdGFydCBhdCB0aGUgdG9wIGxlZnQgb2YgdGhlIHZpZXdwb3J0
LgorICAgIEVYUEVDVF9ORUFSKHZpZXdwb3J0V2lkdGggLyAoZmxvYXQpIHRhbGxEaXYud2lkdGgs
IHNjYWxlLCAwLjEpOworICAgIEVYUEVDVF9ORUFSKHRhbGxEaXYueCwgc2Nyb2xsLngsIDIwKTsK
KyAgICBFWFBFQ1RfTkVBUih0YWxsRGl2LnksIHNjcm9sbC55LCAyMCk7CisgICAgRVhQRUNUX0ZB
TFNFKGlzQW5jaG9yKTsKKworICAgIC8vIFRlc3QgZm9yIE5vbi1kb3VibGV0YXAgc2NhbGluZwor
ICAgIC8vIFRlc3Qgem9vbWluZyBpbnRvIGRpdi4KKyAgICB3ZWJWaWV3SW1wbC0+Y29tcHV0ZVNj
YWxlQW5kU2Nyb2xsRm9ySGl0UmVjdChXZWJSZWN0KDI1MCwgMjUwLCAxMCwgMTApLCBXZWJWaWV3
SW1wbDo6RmluZEluUGFnZSwgc2NhbGUsIHNjcm9sbCwgaXNBbmNob3IpOworICAgIEVYUEVDVF9O
RUFSKHZpZXdwb3J0V2lkdGggLyAoZmxvYXQpIHdpZGVEaXYud2lkdGgsIHNjYWxlLCAwLjEpOwor
fQorCiB2b2lkIHNpbXVsYXRlRG91YmxlVGFwKFdlYlZpZXdJbXBsKiB3ZWJWaWV3SW1wbCwgV2Vi
UG9pbnQmIHBvaW50LCBmbG9hdCYgc2NhbGUpCiB7CiAgICAgV2ViUG9pbnQgc2NhbGVkUG9pbnQo
c3RhdGljX2Nhc3Q8aW50Pihwb2ludC54ICogd2ViVmlld0ltcGwtPnBhZ2VTY2FsZUZhY3Rvcigp
KSwKQEAgLTQwMyw3ICs0NjMsNyBAQCB2b2lkIHNpbXVsYXRlRG91YmxlVGFwKFdlYlZpZXdJbXBs
KiB3ZWJWaWV3SW1wbCwgV2ViUG9pbnQmIHBvaW50LCBmbG9hdCYgc2NhbGUpCiAgICAgc2NhbGUg
PSB3ZWJWaWV3SW1wbC0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKLVRFU1RfRihXZWJGcmFtZVRl
c3QsIERpdkF1dG9ab29tTXVsdGlwbGVEaXZzVGVzdCkKK1RFU1RfRihXZWJGcmFtZVRlc3QsIERp
dkF1dG9ab29tTXVsdGlwbGVEaXZzVGVzdFdlYktpdFNjYWxpbmcpCiB7CiAgICAgcmVnaXN0ZXJN
b2NrZWRIdHRwVVJMTG9hZCgiZ2V0X211bHRpcGxlX2RpdnNfZm9yX2F1dG9fem9vbV90ZXN0Lmh0
bWwiKTsKIApAQCAtNDExLDYgKzQ3MSw4IEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIERpdkF1dG9a
b29tTXVsdGlwbGVEaXZzVGVzdCkKICAgICBpbnQgdmlld3BvcnRIZWlnaHQgPSA0ODA7CiAgICAg
ZmxvYXQgZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlUmF0aW8gPSAxLjJmOwogICAgIFdlYktp
dDo6V2ViVmlldyogd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRM
b2FkKG1fYmFzZVVSTCArICJnZXRfbXVsdGlwbGVfZGl2c19mb3JfYXV0b196b29tX3Rlc3QuaHRt
bCIpOworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJ
bkNvbXBvc2l0b3IoZmFsc2UpOworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5UGFn
ZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKGZhbHNlKTsKICAgICB3ZWJWaWV3LT5lbmFibGVGaXhl
ZExheW91dE1vZGUodHJ1ZSk7CiAgICAgd2ViVmlldy0+cmVzaXplKFdlYlNpemUodmlld3BvcnRX
aWR0aCwgdmlld3BvcnRIZWlnaHQpKTsKICAgICB3ZWJWaWV3LT5zZXRQYWdlU2NhbGVGYWN0b3JM
aW1pdHMoMSwgNCk7CkBAIC00MzksMTAgKzUwMSw1MyBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBE
aXZBdXRvWm9vbU11bHRpcGxlRGl2c1Rlc3QpCiAgICAgRVhQRUNUX0ZMT0FUX0VRKHdlYlZpZXdJ
bXBsLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBzY2FsZSk7CiAgICAgd2ViVmlld0ltcGwtPmFwcGx5
U2Nyb2xsQW5kU2NhbGUoV2ViU2l6ZSgpLCAwLjZmKTsKICAgICBzaW11bGF0ZURvdWJsZVRhcCh3
ZWJWaWV3SW1wbCwgYm90dG9tUG9pbnQsIHNjYWxlKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEod2Vi
Vmlld0ltcGwtPmRldmljZVNjYWxlRmFjdG9yKCksIHNjYWxlKTsKKyAgICBFWFBFQ1RfRkxPQVRf
RVEod2ViVmlldy0+ZGV2aWNlU2NhbGVGYWN0b3IoKSwgc2NhbGUpOwogfQogCi1URVNUX0YoV2Vi
RnJhbWVUZXN0LCBEaXZBdXRvWm9vbVNjYWxlQm91bmRzVGVzdCkKK1RFU1RfRihXZWJGcmFtZVRl
c3QsIERpdkF1dG9ab29tTXVsdGlwbGVEaXZzVGVzdENvbXBvc2l0b3JTY2FsaW5nKQoreworICAg
IHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoImdldF9tdWx0aXBsZV9kaXZzX2Zvcl9hdXRvX3pv
b21fdGVzdC5odG1sIik7CisKKyAgICBjb25zdCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IDIu
MGY7CisgICAgaW50IHZpZXdwb3J0V2lkdGggPSA2NDAgLyBkZXZpY2VTY2FsZUZhY3RvcjsKKyAg
ICBpbnQgdmlld3BvcnRIZWlnaHQgPSAxMjgwIC8gZGV2aWNlU2NhbGVGYWN0b3I7CisgICAgZmxv
YXQgZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlUmF0aW8gPSAxLjJmOworICAgIFdlYktpdDo6
V2ViVmlldyogd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2Fk
KG1fYmFzZVVSTCArICJnZXRfbXVsdGlwbGVfZGl2c19mb3JfYXV0b196b29tX3Rlc3QuaHRtbCIp
OworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNv
bXBvc2l0b3IodHJ1ZSk7CisgICAgd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0QXBwbHlQYWdlU2Nh
bGVGYWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgd2ViVmlldy0+ZW5hYmxlRml4ZWRMYXlv
dXRNb2RlKHRydWUpOworICAgIHdlYlZpZXctPnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgs
IHZpZXdwb3J0SGVpZ2h0KSk7CisgICAgd2ViVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRz
KDAuNWYsIDQpOworICAgIHdlYlZpZXctPnNldERldmljZVNjYWxlRmFjdG9yKGRldmljZVNjYWxl
RmFjdG9yKTsKKyAgICB3ZWJWaWV3LT5zZXRQYWdlU2NhbGVGYWN0b3IoMC41ZiwgV2ViUG9pbnQo
MCwgMCkpOworICAgIHdlYlZpZXctPmxheW91dCgpOworCisgICAgV2ViVmlld0ltcGwqIHdlYlZp
ZXdJbXBsID0gc3RhdGljX2Nhc3Q8V2ViVmlld0ltcGwqPih3ZWJWaWV3KTsKKyAgICB3ZWJWaWV3
SW1wbC0+c2hvdWxkVXNlQW5pbWF0ZURvdWJsZVRhcFRpbWVaZXJvRm9yVGVzdGluZyh0cnVlKTsK
KworICAgIFdlYlJlY3QgdG9wRGl2KDIwMCwgMTAwLCAyMDAsIDE1MCk7CisgICAgV2ViUmVjdCBi
b3R0b21EaXYoMjAwLCAzMDAsIDIwMCwgMTUwKTsKKyAgICBXZWJQb2ludCB0b3BQb2ludCh0b3BE
aXYueCArIDUwLCB0b3BEaXYueSArIDUwKTsKKyAgICBXZWJQb2ludCBib3R0b21Qb2ludChib3R0
b21EaXYueCArIDUwLCBib3R0b21EaXYueSArIDUwKTsKKyAgICBmbG9hdCBzY2FsZTsKKyAgICBz
ZXRTY2FsZUFuZFNjcm9sbEFuZExheW91dCh3ZWJWaWV3SW1wbCwgV2ViUG9pbnQoMCwgMCksICh3
ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpKSAqICgxICsgZG91YmxlVGFwWm9v
bUFscmVhZHlMZWdpYmxlUmF0aW8pIC8gMik7CisKKyAgICAvLyBUZXN0IGRvdWJsZSB0YXAgb24g
dHdvIGRpZmZlcmVudCBkaXZzCisgICAgLy8gQWZ0ZXIgZmlyc3Qgem9vbSwgd2Ugc2hvdWxkIGdv
IGJhY2sgdG8gbWluaW11bSBwYWdlIHNjYWxlIHdpdGggYSBzZWNvbmQgZG91YmxlIHRhcC4KKyAg
ICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1wbCwgdG9wUG9pbnQsIHNjYWxlKTsKKyAgICBF
WFBFQ1RfRkxPQVRfRVEoMSwgc2NhbGUpOworICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJ
bXBsLCBib3R0b21Qb2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9BVF9FUSh3ZWJWaWV3SW1w
bC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpLCBzY2FsZSk7CisKKyAgICAvLyBJZiB0aGUgdXNl
ciBwaW5jaCB6b29tcyBhZnRlciBkb3VibGUgdGFwLCBhIHNlY29uZCBkb3VibGUgdGFwIHNob3Vs
ZCB6b29tIGJhY2sgdG8gdGhlIGRpdi4KKyAgICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1w
bCwgdG9wUG9pbnQsIHNjYWxlKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMSwgc2NhbGUpOworICAg
IHdlYlZpZXdJbXBsLT5hcHBseVNjcm9sbEFuZFNjYWxlKFdlYlNpemUoKSwgMC42Zik7CisgICAg
c2ltdWxhdGVEb3VibGVUYXAod2ViVmlld0ltcGwsIGJvdHRvbVBvaW50LCBzY2FsZSk7CisgICAg
RVhQRUNUX0ZMT0FUX0VRKDEsIHNjYWxlKTsKK30KKworVEVTVF9GKFdlYkZyYW1lVGVzdCwgRGl2
QXV0b1pvb21TY2FsZUJvdW5kc1Rlc3RXZWJLaXRTY2FsaW5nKQogewogICAgIHJlZ2lzdGVyTW9j
a2VkSHR0cFVSTExvYWQoImdldF9zY2FsZV9ib3VuZHNfY2hlY2tfZm9yX2F1dG9fem9vbV90ZXN0
Lmh0bWwiKTsKIApAQCAtNDUwLDYgKzU1NSw4IEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIERpdkF1
dG9ab29tU2NhbGVCb3VuZHNUZXN0KQogICAgIGludCB2aWV3cG9ydEhlaWdodCA9IDQ4MDsKICAg
ICBmbG9hdCBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVSYXRpbyA9IDEuMmY7CiAgICAgV2Vi
S2l0OjpXZWJWaWV3KiB3ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0Fu
ZExvYWQobV9iYXNlVVJMICsgImdldF9zY2FsZV9ib3VuZHNfY2hlY2tfZm9yX2F1dG9fem9vbV90
ZXN0Lmh0bWwiKTsKKyAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseURldmljZVNjYWxl
RmFjdG9ySW5Db21wb3NpdG9yKGZhbHNlKTsKKyAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRB
cHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcihmYWxzZSk7CiAgICAgd2ViVmlldy0+ZW5h
YmxlRml4ZWRMYXlvdXRNb2RlKHRydWUpOwogICAgIHdlYlZpZXctPnJlc2l6ZShXZWJTaXplKHZp
ZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KSk7CiAgICAgd2ViVmlldy0+c2V0UGFnZVNjYWxl
RmFjdG9yTGltaXRzKDEsIDQpOwpAQCAtNDk5LDggKzYwNiw2OSBAQCBURVNUX0YoV2ViRnJhbWVU
ZXN0LCBEaXZBdXRvWm9vbVNjYWxlQm91bmRzVGVzdCkKICAgICBFWFBFQ1RfRkxPQVRfRVEod2Vi
Vmlld0ltcGwtPm1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKSwgc2NhbGUpOwogfQogCitURVNUX0Yo
V2ViRnJhbWVUZXN0LCBEaXZBdXRvWm9vbVNjYWxlQm91bmRzVGVzdENvbXBvc2l0b3JTY2FsaW5n
KQoreworICAgIHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoImdldF9zY2FsZV9ib3VuZHNfY2hl
Y2tfZm9yX2F1dG9fem9vbV90ZXN0Lmh0bWwiKTsKKworICAgIGludCB2aWV3cG9ydFdpZHRoID0g
MzIwOworICAgIGludCB2aWV3cG9ydEhlaWdodCA9IDQ4MDsKKyAgICBmbG9hdCBkb3VibGVUYXBa
b29tQWxyZWFkeUxlZ2libGVSYXRpbyA9IDEuMmY7CisgICAgV2ViS2l0OjpXZWJWaWV3KiB3ZWJW
aWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNlVVJMICsg
ImdldF9zY2FsZV9ib3VuZHNfY2hlY2tfZm9yX2F1dG9fem9vbV90ZXN0Lmh0bWwiKTsKKyAgICB3
ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseURldmljZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9y
KHRydWUpOworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldEFwcGx5UGFnZVNjYWxlRmFjdG9y
SW5Db21wb3NpdG9yKHRydWUpOworICAgIHdlYlZpZXctPmVuYWJsZUZpeGVkTGF5b3V0TW9kZSh0
cnVlKTsKKyAgICB3ZWJWaWV3LT5yZXNpemUoV2ViU2l6ZSh2aWV3cG9ydFdpZHRoLCB2aWV3cG9y
dEhlaWdodCkpOworICAgIHdlYlZpZXctPnNldERldmljZVNjYWxlRmFjdG9yKDEuNWYpOworICAg
IHdlYlZpZXctPmxheW91dCgpOworCisgICAgV2ViVmlld0ltcGwqIHdlYlZpZXdJbXBsID0gc3Rh
dGljX2Nhc3Q8V2ViVmlld0ltcGwqPih3ZWJWaWV3KTsKKyAgICB3ZWJWaWV3SW1wbC0+c2hvdWxk
VXNlQW5pbWF0ZURvdWJsZVRhcFRpbWVaZXJvRm9yVGVzdGluZyh0cnVlKTsKKworICAgIFdlYlJl
Y3QgZGl2KDIwMCwgMTAwLCAyMDAsIDE1MCk7CisgICAgV2ViUG9pbnQgZG91YmxlVGFwUG9pbnQo
ZGl2LnggKyA1MCwgZGl2LnkgKyA1MCk7CisgICAgZmxvYXQgc2NhbGU7CisKKyAgICAvLyBUZXN0
IGRvdWJsZSB0YXAgc2NhbGUgYm91bmRzLgorICAgIC8vIG1pbmltdW1QYWdlU2NhbGUgPCBkb3Vi
bGVUYXBab29tQWxyZWFkeUxlZ2libGVTY2FsZSA8IDEKKyAgICB3ZWJWaWV3LT5zZXRQYWdlU2Nh
bGVGYWN0b3JMaW1pdHMoMC41ZiwgNCk7CisgICAgZmxvYXQgZG91YmxlVGFwWm9vbUFscmVhZHlM
ZWdpYmxlU2NhbGUgPSB3ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpICogZG91
YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlUmF0aW87CisgICAgc2V0U2NhbGVBbmRTY3JvbGxBbmRM
YXlvdXQod2ViVmlld0ltcGwsIFdlYlBvaW50KDAsIDApLCAod2ViVmlld0ltcGwtPm1pbmltdW1Q
YWdlU2NhbGVGYWN0b3IoKSkgKiAoMSArIGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVJhdGlv
KSAvIDIpOworICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJbXBsLCBkb3VibGVUYXBQb2lu
dCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9BVF9FUSgxLCBzY2FsZSk7CisgICAgc2ltdWxhdGVE
b3VibGVUYXAod2ViVmlld0ltcGwsIGRvdWJsZVRhcFBvaW50LCBzY2FsZSk7CisgICAgRVhQRUNU
X0ZMT0FUX0VRKHdlYlZpZXdJbXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCksIHNjYWxlKTsK
KyAgICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1wbCwgZG91YmxlVGFwUG9pbnQsIHNjYWxl
KTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMSwgc2NhbGUpOworCisgICAgLy8gWm9vbSBpbiB0byBy
ZXNldCBkb3VibGVfdGFwX3pvb21faW5fZWZmZWN0IGZsYWcuCisgICAgd2ViVmlld0ltcGwtPmFw
cGx5U2Nyb2xsQW5kU2NhbGUoV2ViU2l6ZSgpLCAxLjFmKTsKKyAgICAvLyAxIDwgbWluaW11bVBh
Z2VTY2FsZSA8IGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVNjYWxlCisgICAgd2ViVmlldy0+
c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKDEuMWYsIDQpOworICAgIGRvdWJsZVRhcFpvb21BbHJl
YWR5TGVnaWJsZVNjYWxlID0gd2ViVmlld0ltcGwtPm1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKSAq
IGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVJhdGlvOworICAgIHNldFNjYWxlQW5kU2Nyb2xs
QW5kTGF5b3V0KHdlYlZpZXdJbXBsLCBXZWJQb2ludCgwLCAwKSwgKHdlYlZpZXdJbXBsLT5taW5p
bXVtUGFnZVNjYWxlRmFjdG9yKCkpICogKDEgKyBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVS
YXRpbykgLyAyKTsKKyAgICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1wbCwgZG91YmxlVGFw
UG9pbnQsIHNjYWxlKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEod2ViVmlld0ltcGwtPm1pbmltdW1Q
YWdlU2NhbGVGYWN0b3IoKSwgc2NhbGUpOworICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJ
bXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9BVF9FUShkb3VibGVU
YXBab29tQWxyZWFkeUxlZ2libGVTY2FsZSwgc2NhbGUpOworICAgIHNpbXVsYXRlRG91YmxlVGFw
KHdlYlZpZXdJbXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9BVF9F
USh3ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpLCBzY2FsZSk7CisKKyAgICAv
LyBab29tIGluIHRvIHJlc2V0IGRvdWJsZV90YXBfem9vbV9pbl9lZmZlY3QgZmxhZy4KKyAgICB3
ZWJWaWV3SW1wbC0+YXBwbHlTY3JvbGxBbmRTY2FsZShXZWJTaXplKCksIDEuMWYpOworICAgIC8v
IG1pbmltdW1QYWdlU2NhbGUgPCAxIDwgZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlU2NhbGUK
KyAgICB3ZWJWaWV3LT5zZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoMC45NWYsIDQpOworICAgIGRv
dWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVNjYWxlID0gd2ViVmlld0ltcGwtPm1pbmltdW1QYWdl
U2NhbGVGYWN0b3IoKSAqIGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVJhdGlvOworICAgIHNl
dFNjYWxlQW5kU2Nyb2xsQW5kTGF5b3V0KHdlYlZpZXdJbXBsLCBXZWJQb2ludCgwLCAwKSwgKHdl
YlZpZXdJbXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkpICogKDEgKyBkb3VibGVUYXBab29t
QWxyZWFkeUxlZ2libGVSYXRpbykgLyAyKTsKKyAgICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3
SW1wbCwgZG91YmxlVGFwUG9pbnQsIHNjYWxlKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEod2ViVmll
d0ltcGwtPm1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKSwgc2NhbGUpOworICAgIHNpbXVsYXRlRG91
YmxlVGFwKHdlYlZpZXdJbXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9G
TE9BVF9FUShkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVTY2FsZSwgc2NhbGUpOworICAgIHNp
bXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJbXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOworICAg
IEVYUEVDVF9GTE9BVF9FUSh3ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpLCBz
Y2FsZSk7Cit9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotVEVTVF9GKFdlYkZyYW1l
VGVzdCwgRGl2QXV0b1pvb21TY2FsZUZvbnRTY2FsZUZhY3RvclRlc3QpCitURVNUX0YoV2ViRnJh
bWVUZXN0LCBEaXZBdXRvWm9vbVNjYWxlRm9udFNjYWxlRmFjdG9yVGVzdFdlYktpdFNjYWxpbmcp
CiB7CiAgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgiZ2V0X3NjYWxlX2JvdW5kc19jaGVj
a19mb3JfYXV0b196b29tX3Rlc3QuaHRtbCIpOwogCkBAIC01MDksNiArNjc3LDggQEAgVEVTVF9G
KFdlYkZyYW1lVGVzdCwgRGl2QXV0b1pvb21TY2FsZUZvbnRTY2FsZUZhY3RvclRlc3QpCiAgICAg
ZmxvYXQgZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlUmF0aW8gPSAxLjJmOwogICAgIGZsb2F0
IHRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yID0gMS4xM2Y7CiAgICAgV2ViS2l0OjpXZWJW
aWV3KiB3ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9i
YXNlVVJMICsgImdldF9zY2FsZV9ib3VuZHNfY2hlY2tfZm9yX2F1dG9fem9vbV90ZXN0Lmh0bWwi
KTsKKyAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseURldmljZVNjYWxlRmFjdG9ySW5D
b21wb3NpdG9yKGZhbHNlKTsKKyAgICB3ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRBcHBseVBhZ2VT
Y2FsZUZhY3RvckluQ29tcG9zaXRvcihmYWxzZSk7CiAgICAgd2ViVmlldy0+ZW5hYmxlRml4ZWRM
YXlvdXRNb2RlKHRydWUpOwogICAgIHdlYlZpZXctPnJlc2l6ZShXZWJTaXplKHZpZXdwb3J0V2lk
dGgsIHZpZXdwb3J0SGVpZ2h0KSk7CiAgICAgd2ViVmlldy0+c2V0UGFnZVNjYWxlRmFjdG9yTGlt
aXRzKDEsIDQpOwpAQCAtNTc0LDYgKzc0NCw4MiBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBEaXZB
dXRvWm9vbVNjYWxlRm9udFNjYWxlRmFjdG9yVGVzdCkKICAgICBzaW11bGF0ZURvdWJsZVRhcCh3
ZWJWaWV3SW1wbCwgZG91YmxlVGFwUG9pbnQsIHNjYWxlKTsKICAgICBFWFBFQ1RfRkxPQVRfRVEo
bGVnaWJsZVNjYWxlLCBzY2FsZSk7CiB9CisKK1RFU1RfRihXZWJGcmFtZVRlc3QsIERpdkF1dG9a
b29tU2NhbGVGb250U2NhbGVGYWN0b3JUZXN0Q29tcG9zaXRvclNjYWxpbmcpCit7CisgICAgcmVn
aXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgiZ2V0X3NjYWxlX2JvdW5kc19jaGVja19mb3JfYXV0b196
b29tX3Rlc3QuaHRtbCIpOworCisgICAgaW50IHZpZXdwb3J0V2lkdGggPSAzMjA7CisgICAgaW50
IHZpZXdwb3J0SGVpZ2h0ID0gNDgwOworICAgIGZsb2F0IGRvdWJsZVRhcFpvb21BbHJlYWR5TGVn
aWJsZVJhdGlvID0gMS4yZjsKKyAgICBmbG9hdCB0ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3Rv
ciA9IDEuMTNmOworICAgIFdlYktpdDo6V2ViVmlldyogd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBl
cnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2FkKG1fYmFzZVVSTCArICJnZXRfc2NhbGVfYm91bmRzX2No
ZWNrX2Zvcl9hdXRvX3pvb21fdGVzdC5odG1sIik7CisgICAgd2ViVmlldy0+c2V0dGluZ3MoKS0+
c2V0QXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcih0cnVlKTsKKyAgICB3ZWJWaWV3
LT5zZXR0aW5ncygpLT5zZXRBcHBseVBhZ2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcih0cnVlKTsK
KyAgICB3ZWJWaWV3LT5lbmFibGVGaXhlZExheW91dE1vZGUodHJ1ZSk7CisgICAgd2ViVmlldy0+
cmVzaXplKFdlYlNpemUodmlld3BvcnRXaWR0aCwgdmlld3BvcnRIZWlnaHQpKTsKKyAgICB3ZWJW
aWV3LT5sYXlvdXQoKTsKKworICAgIFdlYlZpZXdJbXBsKiB3ZWJWaWV3SW1wbCA9IHN0YXRpY19j
YXN0PFdlYlZpZXdJbXBsKj4od2ViVmlldyk7CisgICAgd2ViVmlld0ltcGwtPnNob3VsZFVzZUFu
aW1hdGVEb3VibGVUYXBUaW1lWmVyb0ZvclRlc3RpbmcodHJ1ZSk7CisgICAgd2ViVmlld0ltcGwt
PnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IodGV4
dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IpOworCisgICAgV2ViUmVjdCBkaXYoMjAwLCAxMDAs
IDIwMCwgMTUwKTsKKyAgICBXZWJQb2ludCBkb3VibGVUYXBQb2ludChkaXYueCArIDUwLCBkaXYu
eSArIDUwKTsKKyAgICBmbG9hdCBzY2FsZTsKKworICAgIC8vIFRlc3QgZG91YmxlIHRhcCBzY2Fs
ZSBib3VuZHMuCisgICAgLy8gbWluaW11bVBhZ2VTY2FsZSA8IGRvdWJsZVRhcFpvb21BbHJlYWR5
TGVnaWJsZVNjYWxlIDwgMSA8IHRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yCisgICAgZmxv
YXQgbGVnaWJsZVNjYWxlID0gdGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3I7CisgICAgc2V0
U2NhbGVBbmRTY3JvbGxBbmRMYXlvdXQod2ViVmlld0ltcGwsIFdlYlBvaW50KDAsIDApLCAod2Vi
Vmlld0ltcGwtPm1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKSkgKiAoMSArIGRvdWJsZVRhcFpvb21B
bHJlYWR5TGVnaWJsZVJhdGlvKSAvIDIpOworICAgIHdlYlZpZXctPnNldFBhZ2VTY2FsZUZhY3Rv
ckxpbWl0cygwLjVmLCA0KTsKKyAgICBmbG9hdCBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVT
Y2FsZSA9IHdlYlZpZXdJbXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkgKiBkb3VibGVUYXBa
b29tQWxyZWFkeUxlZ2libGVSYXRpbzsKKyAgICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1w
bCwgZG91YmxlVGFwUG9pbnQsIHNjYWxlKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEobGVnaWJsZVNj
YWxlLCBzY2FsZSk7CisgICAgc2ltdWxhdGVEb3VibGVUYXAod2ViVmlld0ltcGwsIGRvdWJsZVRh
cFBvaW50LCBzY2FsZSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKHdlYlZpZXdJbXBsLT5taW5pbXVt
UGFnZVNjYWxlRmFjdG9yKCksIHNjYWxlKTsKKyAgICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3
SW1wbCwgZG91YmxlVGFwUG9pbnQsIHNjYWxlKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEobGVnaWJs
ZVNjYWxlLCBzY2FsZSk7CisKKyAgICAvLyBab29tIGluIHRvIHJlc2V0IGRvdWJsZV90YXBfem9v
bV9pbl9lZmZlY3QgZmxhZy4KKyAgICB3ZWJWaWV3SW1wbC0+YXBwbHlTY3JvbGxBbmRTY2FsZShX
ZWJTaXplKCksIDEuMWYpOworICAgIC8vIDEgPCB0ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3Rv
ciA8IG1pbmltdW1QYWdlU2NhbGUgPCBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVTY2FsZQor
ICAgIHdlYlZpZXctPnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cygxLjJmLCA0KTsKKyAgICBkb3Vi
bGVUYXBab29tQWxyZWFkeUxlZ2libGVTY2FsZSA9IHdlYlZpZXdJbXBsLT5taW5pbXVtUGFnZVNj
YWxlRmFjdG9yKCkgKiBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2libGVSYXRpbzsKKyAgICBzZXRT
Y2FsZUFuZFNjcm9sbEFuZExheW91dCh3ZWJWaWV3SW1wbCwgV2ViUG9pbnQoMCwgMCksICh3ZWJW
aWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpKSAqICgxICsgZG91YmxlVGFwWm9vbUFs
cmVhZHlMZWdpYmxlUmF0aW8pIC8gMik7CisgICAgc2ltdWxhdGVEb3VibGVUYXAod2ViVmlld0lt
cGwsIGRvdWJsZVRhcFBvaW50LCBzY2FsZSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKHdlYlZpZXdJ
bXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCksIHNjYWxlKTsKKyAgICBzaW11bGF0ZURvdWJs
ZVRhcCh3ZWJWaWV3SW1wbCwgZG91YmxlVGFwUG9pbnQsIHNjYWxlKTsKKyAgICBFWFBFQ1RfRkxP
QVRfRVEoZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlU2NhbGUsIHNjYWxlKTsKKyAgICBzaW11
bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1wbCwgZG91YmxlVGFwUG9pbnQsIHNjYWxlKTsKKyAgICBF
WFBFQ1RfRkxPQVRfRVEod2ViVmlld0ltcGwtPm1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKSwgc2Nh
bGUpOworCisgICAgLy8gWm9vbSBpbiB0byByZXNldCBkb3VibGVfdGFwX3pvb21faW5fZWZmZWN0
IGZsYWcuCisgICAgd2ViVmlld0ltcGwtPmFwcGx5U2Nyb2xsQW5kU2NhbGUoV2ViU2l6ZSgpLCAx
LjFmKTsKKyAgICAvLyBtaW5pbXVtUGFnZVNjYWxlIDwgMSA8IHRleHRBdXRvc2l6aW5nRm9udFNj
YWxlRmFjdG9yIDwgZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlU2NhbGUKKyAgICB3ZWJWaWV3
LT5zZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoMC45NWYsIDQpOworICAgIGRvdWJsZVRhcFpvb21B
bHJlYWR5TGVnaWJsZVNjYWxlID0gd2ViVmlld0ltcGwtPm1pbmltdW1QYWdlU2NhbGVGYWN0b3Io
KSAqIGRvdWJsZVRhcFpvb21BbHJlYWR5TGVnaWJsZVJhdGlvOworICAgIHNldFNjYWxlQW5kU2Ny
b2xsQW5kTGF5b3V0KHdlYlZpZXdJbXBsLCBXZWJQb2ludCgwLCAwKSwgKHdlYlZpZXdJbXBsLT5t
aW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkpICogKDEgKyBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2li
bGVSYXRpbykgLyAyKTsKKyAgICBzaW11bGF0ZURvdWJsZVRhcCh3ZWJWaWV3SW1wbCwgZG91Ymxl
VGFwUG9pbnQsIHNjYWxlKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEod2ViVmlld0ltcGwtPm1pbmlt
dW1QYWdlU2NhbGVGYWN0b3IoKSwgc2NhbGUpOworICAgIHNpbXVsYXRlRG91YmxlVGFwKHdlYlZp
ZXdJbXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9BVF9FUShkb3Vi
bGVUYXBab29tQWxyZWFkeUxlZ2libGVTY2FsZSwgc2NhbGUpOworICAgIHNpbXVsYXRlRG91Ymxl
VGFwKHdlYlZpZXdJbXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOworICAgIEVYUEVDVF9GTE9B
VF9FUSh3ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpLCBzY2FsZSk7CisKKyAg
ICAvLyBab29tIGluIHRvIHJlc2V0IGRvdWJsZV90YXBfem9vbV9pbl9lZmZlY3QgZmxhZy4KKyAg
ICB3ZWJWaWV3SW1wbC0+YXBwbHlTY3JvbGxBbmRTY2FsZShXZWJTaXplKCksIDEuMWYpOworICAg
IC8vIG1pbmltdW1QYWdlU2NhbGUgPCAxIDwgZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlU2Nh
bGUgPCB0ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcgorICAgIHdlYlZpZXctPnNldFBhZ2VT
Y2FsZUZhY3RvckxpbWl0cygwLjlmLCA0KTsKKyAgICBkb3VibGVUYXBab29tQWxyZWFkeUxlZ2li
bGVTY2FsZSA9IHdlYlZpZXdJbXBsLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkgKiBkb3VibGVU
YXBab29tQWxyZWFkeUxlZ2libGVSYXRpbzsKKyAgICBzZXRTY2FsZUFuZFNjcm9sbEFuZExheW91
dCh3ZWJWaWV3SW1wbCwgV2ViUG9pbnQoMCwgMCksICh3ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VT
Y2FsZUZhY3RvcigpKSAqICgxICsgZG91YmxlVGFwWm9vbUFscmVhZHlMZWdpYmxlUmF0aW8pIC8g
Mik7CisgICAgc2ltdWxhdGVEb3VibGVUYXAod2ViVmlld0ltcGwsIGRvdWJsZVRhcFBvaW50LCBz
Y2FsZSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKGxlZ2libGVTY2FsZSwgc2NhbGUpOworICAgIHNp
bXVsYXRlRG91YmxlVGFwKHdlYlZpZXdJbXBsLCBkb3VibGVUYXBQb2ludCwgc2NhbGUpOworICAg
IEVYUEVDVF9GTE9BVF9FUSh3ZWJWaWV3SW1wbC0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpLCBz
Y2FsZSk7CisgICAgc2ltdWxhdGVEb3VibGVUYXAod2ViVmlld0ltcGwsIGRvdWJsZVRhcFBvaW50
LCBzY2FsZSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKGxlZ2libGVTY2FsZSwgc2NhbGUpOworfQog
I2VuZGlmCiAKIC8vIFRoaXMgdGVzdCBkZXBlbmRzIG9uIGNvZGUgdGhhdCBpcyBjb21waWxlZCBj
b25kaXRpb25hbGx5LiBXZSBsaWtlbHkgbmVlZCB0bwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>