From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18168 invoked by alias); 21 Aug 2002 01:06:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 18148 invoked by uid 71); 21 Aug 2002 01:06:01 -0000 Resent-Date: 21 Aug 2002 01:06:01 -0000 Resent-Message-ID: <20020821010601.18147.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, srijohnson@ucdavis.edu Received: (qmail 15042 invoked by uid 61); 21 Aug 2002 00:58:13 -0000 Message-Id: <20020821005813.15041.qmail@sources.redhat.com> Date: Tue, 20 Aug 2002 18:16:00 -0000 From: srijohnson@ucdavis.edu Reply-To: srijohnson@ucdavis.edu To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: preprocessor/7670: Missing overloaded functions X-SW-Source: 2002-08/txt/msg00431.txt.bz2 List-Id: >Number: 7670 >Category: preprocessor >Synopsis: Missing overloaded functions >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: support >Submitter-Id: net >Arrival-Date: Tue Aug 20 18:06:01 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Steve R. Johnson >Release: unknown-1.0 >Organization: >Environment: RedHat Linux (very customized by now) >Description: Koffice for KDE3 requires two more overloaded functions in the cmath header file: inline int pow(int __x, int __n) { return __pow_helper(__x, __n); } inline double pow(double __x, long int __n) { return __pow_helper(__x, __n); } >How-To-Repeat: N/A >Fix: I added these overloaded functions in the attached cmath file. This allowed koffice-1.1.1 for KDE3 to continue compiling. >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="cmath" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="cmath" Ly8gLSotIEMrKyAtKi0gQyBmb3J3YXJkaW5nIGhlYWRlci4KCi8vIENvcHlyaWdodCAoQykgMTk5 NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMgovLyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KLy8KLy8gVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBJU08gQysrIExpYnJh cnkuICBUaGlzIGxpYnJhcnkgaXMgZnJlZQovLyBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUKLy8gdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKLy8gRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCi8vIGFueSBs YXRlciB2ZXJzaW9uLgoKLy8gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi8vIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLy8gR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCi8vIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCi8vIHdp dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8g dGhlIEZyZWUKLy8gU29mdHdhcmUgRm91bmRhdGlvbiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUg MzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsCi8vIFVTQS4KCi8vIEFzIGEgc3BlY2lhbCBleGNl cHRpb24sIHlvdSBtYXkgdXNlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgZnJlZSBzb2Z0d2FyZQov LyBsaWJyYXJ5IHdpdGhvdXQgcmVzdHJpY3Rpb24uICBTcGVjaWZpY2FsbHksIGlmIG90aGVyIGZp bGVzIGluc3RhbnRpYXRlCi8vIHRlbXBsYXRlcyBvciB1c2UgbWFjcm9zIG9yIGlubGluZSBmdW5j dGlvbnMgZnJvbSB0aGlzIGZpbGUsIG9yIHlvdSBjb21waWxlCi8vIHRoaXMgZmlsZSBhbmQgbGlu ayBpdCB3aXRoIG90aGVyIGZpbGVzIHRvIHByb2R1Y2UgYW4gZXhlY3V0YWJsZSwgdGhpcwovLyBm aWxlIGRvZXMgbm90IGJ5IGl0c2VsZiBjYXVzZSB0aGUgcmVzdWx0aW5nIGV4ZWN1dGFibGUgdG8g YmUgY292ZXJlZCBieQovLyB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBUaGlzIGV4 Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyCi8vIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMg d2h5IHRoZSBleGVjdXRhYmxlIGZpbGUgbWlnaHQgYmUgY292ZXJlZCBieQovLyB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UuCgovLwovLyBJU08gQysrIDE0ODgyOiAyNi41ICBDIGxpYnJh cnkKLy8KCi8qKiBAZmlsZSBjbWF0aAogKiAgVGhpcyBpcyBhIFN0YW5kYXJkIEMrKyBMaWJyYXJ5 IGZpbGUuICBZb3Ugc2hvdWxkIEBjICNpbmNsdWRlIHRoaXMgZmlsZQogKiAgaW4geW91ciBwcm9n cmFtcywgcmF0aGVyIHRoYW4gYW55IG9mIHRoZSAiKi5oIiBpbXBsZW1lbnRhdGlvbiBmaWxlcy4K ICoKICogIFRoaXMgaXMgdGhlIEMrKyB2ZXJzaW9uIG9mIHRoZSBTdGFuZGFyZCBDIExpYnJhcnkg aGVhZGVyIEBjIG1hdGguaCwKICogIGFuZCBpdHMgY29udGVudHMgYXJlIChtb3N0bHkpIHRoZSBz YW1lIGFzIHRoYXQgaGVhZGVyLCBidXQgYXJlIGFsbAogKiAgY29udGFpbmVkIGluIHRoZSBuYW1l c3BhY2UgQGMgc3RkLgogKi8KCiNpZm5kZWYgX0NQUF9DTUFUSAojZGVmaW5lIF9DUFBfQ01BVEgg MQoKI3ByYWdtYSBHQ0Mgc3lzdGVtX2hlYWRlcgoKI2luY2x1ZGUgPGJpdHMvYysrY29uZmlnLmg+ CgojaW5jbHVkZSA8bWF0aC5oPgoKLy8gR2V0IHJpZCBvZiB0aG9zZSBtYWNyb3MgZGVmaW5lZCBp biA8bWF0aC5oPiBpbiBsaWV1IG9mIHJlYWwgZnVuY3Rpb25zLgojdW5kZWYgYWJzCiN1bmRlZiBk aXYKI3VuZGVmIGFjb3MKI3VuZGVmIGFzaW4KI3VuZGVmIGF0YW4KI3VuZGVmIGF0YW4yCiN1bmRl ZiBjZWlsCiN1bmRlZiBjb3MKI3VuZGVmIGNvc2gKI3VuZGVmIGV4cAojdW5kZWYgZmFicwojdW5k ZWYgZmxvb3IKI3VuZGVmIGZtb2QKI3VuZGVmIGZyZXhwCiN1bmRlZiBsZGV4cAojdW5kZWYgbG9n CiN1bmRlZiBsb2cxMAojdW5kZWYgbW9kZgojdW5kZWYgcG93CiN1bmRlZiBzaW4KI3VuZGVmIHNp bmgKI3VuZGVmIHNxcnQKI3VuZGVmIHRhbgojdW5kZWYgdGFuaAoKbmFtZXNwYWNlIHN0ZCAKewog IC8vIEZvcndhcmQgZGVjbGFyYXRpb24gb2YgYSBoZWxwZXIgZnVuY3Rpb24uICBUaGlzIHJlYWxs eSBzaG91bGQgYmUKICAvLyBhbiBgZXhwb3J0ZWQnIGZvcndhcmQgZGVjbGFyYXRpb24uCiAgdGVt cGxhdGU8dHlwZW5hbWUgX1RwPiBfVHAgX19jbWF0aF9wb3dlcihfVHAsIHVuc2lnbmVkIGludCk7 CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICBpbmxpbmUgX1RwCiAgICBfX2NtYXRoX2Ficyhf VHAgX194KQogICAgewogICAgICByZXR1cm4gX194IDwgX1RwKCkgPyAtX194IDogX194OwogICAg fQoKICBpbmxpbmUgZG91YmxlCiAgYWJzKGRvdWJsZSBfX3gpCiAgeyByZXR1cm4gX19idWlsdGlu X2ZhYnMoX194KTsgfQoKICBpbmxpbmUgZmxvYXQKICBhYnMoZmxvYXQgX194KQogIHsgcmV0dXJu IF9fYnVpbHRpbl9mYWJzZihfX3gpOyB9CgogIGlubGluZSBsb25nIGRvdWJsZQogIGFicyhsb25n IGRvdWJsZSBfX3gpCiAgeyByZXR1cm4gX19idWlsdGluX2ZhYnNsKF9feCk7IH0KCiNpZiBfR0xJ QkNQUF9IQVZFX0FDT1NGCiAgaW5saW5lIGZsb2F0IAogIGFjb3MoZmxvYXQgX194KSB7IHJldHVy biA6OmFjb3NmKF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgYWNvcyhmbG9hdCBfX3gp IHsgcmV0dXJuIDo6YWNvcyhzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1 c2luZyA6OmFjb3M7CiAgCiNpZiBfR0xJQkNQUF9IQVZFX0FDT1NMCiAgaW5saW5lIGxvbmcgZG91 YmxlIAogIGFjb3MobG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OmFjb3NsKF9feCk7IH0KI2Vs c2UKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgYWNvcyhsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJu IDo6YWNvcyhzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OmFz aW47CgojaWYgX0dMSUJDUFBfSEFWRV9BU0lORgogIGlubGluZSBmbG9hdCAKICBhc2luKGZsb2F0 IF9feCkgeyByZXR1cm4gOjphc2luZihfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIGFz aW4oZmxvYXQgX194KSB7IHJldHVybiA6OmFzaW4oc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gpKTsg fQojZW5kaWYKCiNpZiBfR0xJQkNQUF9IQVZFX0FTSU5MCiAgaW5saW5lIGxvbmcgZG91YmxlIAog IGFzaW4obG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OmFzaW5sKF9feCk7IH0KI2Vsc2UKICBp bmxpbmUgbG9uZyBkb3VibGUgCiAgYXNpbihsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6YXNp bihzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OmF0YW47Cgoj aWYgX0dMSUJDUFBfSEFWRV9BVEFORgogIGlubGluZSBmbG9hdCAKICBhdGFuKGZsb2F0IF9feCkg eyByZXR1cm4gOjphdGFuZihfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIGF0YW4oZmxv YXQgX194KSB7IHJldHVybiA6OmF0YW4oc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gpKTsgfQojZW5k aWYKCiNpZiBfR0xJQkNQUF9IQVZFX0FUQU5MCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGF0YW4o bG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OmF0YW5sKF9feCk7IH0KI2Vsc2UKICBpbmxpbmUg bG9uZyBkb3VibGUgCiAgYXRhbihsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6YXRhbihzdGF0 aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OmF0YW4yOwoKI2lmIF9H TElCQ1BQX0hBVkVfQVRBTjJGCiAgaW5saW5lIGZsb2F0IAogIGF0YW4yKGZsb2F0IF9feSwgZmxv YXQgX194KSB7IHJldHVybiA6OmF0YW4yZihfX3ksIF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgZmxv YXQgCiAgYXRhbjIoZmxvYXQgX195LCBmbG9hdCBfX3gpCiAgeyByZXR1cm4gOjphdGFuMihzdGF0 aWNfY2FzdDxkb3VibGU+KF9feSksIHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0KI2VuZGlm CgojaWYgX0dMSUJDUFBfSEFWRV9BVEFOMkwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgYXRhbjIo bG9uZyBkb3VibGUgX195LCBsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6YXRhbjJsKF9feSwg X194KTsgfQojZWxzZQogIGlubGluZSBsb25nIGRvdWJsZSAKICBhdGFuMihsb25nIGRvdWJsZSBf X3ksIGxvbmcgZG91YmxlIF9feCkgCiAgeyByZXR1cm4gOjphdGFuMihzdGF0aWNfY2FzdDxkb3Vi bGU+KF9feSksIHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0KI2VuZGlmCgogIHVzaW5nIDo6 Y2VpbDsKCiNpZiBfR0xJQkNQUF9IQVZFX0NFSUxGCiAgaW5saW5lIGZsb2F0IAogIGNlaWwoZmxv YXQgX194KSB7IHJldHVybiA6OmNlaWxmKF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAg Y2VpbChmbG9hdCBfX3gpIHsgcmV0dXJuIDo6Y2VpbChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkp OyB9CiNlbmRpZgoKI2lmIF9HTElCQ1BQX0hBVkVfQ0VJTEwKICBpbmxpbmUgbG9uZyBkb3VibGUg CiAgY2VpbChsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6Y2VpbGwoX194KTsgfQojZWxzZQog IGlubGluZSBsb25nIGRvdWJsZSAKICBjZWlsKGxvbmcgZG91YmxlIF9feCkgeyByZXR1cm4gOjpj ZWlsKHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0KI2VuZGlmCgogIHVzaW5nIDo6Y29zOwoK ICBpbmxpbmUgZmxvYXQKICBjb3MoZmxvYXQgX194KQogIHsgcmV0dXJuIF9fYnVpbHRpbl9jb3Nm KF9feCk7IH0KCiAgaW5saW5lIGxvbmcgZG91YmxlCiAgY29zKGxvbmcgZG91YmxlIF9feCkKICB7 IHJldHVybiBfX2J1aWx0aW5fY29zbChfX3gpOyB9CgogIHVzaW5nIDo6Y29zaDsKCiNpZiBfR0xJ QkNQUF9IQVZFX0NPU0hGCiAgaW5saW5lIGZsb2F0IAogIGNvc2goZmxvYXQgX194KSB7IHJldHVy biA6OmNvc2hmKF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgY29zaChmbG9hdCBfX3gp IHsgcmV0dXJuIDo6Y29zaChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKI2lm IF9HTElCQ1BQX0hBVkVfQ09TSEwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgY29zaChsb25nIGRv dWJsZSBfX3gpIHsgcmV0dXJuIDo6Y29zaGwoX194KTsgfQojZWxzZQogIGlubGluZSBsb25nIGRv dWJsZSAKICBjb3NoKGxvbmcgZG91YmxlIF9feCkgeyByZXR1cm4gOjpjb3NoKHN0YXRpY19jYXN0 PGRvdWJsZT4oX194KSk7IH0KI2VuZGlmCgogIHVzaW5nIDo6ZXhwOwoKI2lmIF9HTElCQ1BQX0hB VkVfRVhQRgogIGlubGluZSBmbG9hdCAKICBleHAoZmxvYXQgX194KSB7IHJldHVybiA6OmV4cGYo X194KTsgfQojZWxzZQogIGlubGluZSBmbG9hdCAKICBleHAoZmxvYXQgX194KSB7IHJldHVybiA6 OmV4cChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKI2lmIF9HTElCQ1BQX0hB VkVfRVhQTAogIGlubGluZSBsb25nIGRvdWJsZSAKICBleHAobG9uZyBkb3VibGUgX194KSB7IHJl dHVybiA6OmV4cGwoX194KTsgfQojZWxzZQogIGlubGluZSBsb25nIGRvdWJsZSAKICBleHAobG9u ZyBkb3VibGUgX194KSB7IHJldHVybiA6OmV4cChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9 CiNlbmRpZgoKICB1c2luZyA6OmZhYnM7CgogIGlubGluZSBmbG9hdAogIGZhYnMoZmxvYXQgX194 KQogIHsgcmV0dXJuIF9fYnVpbHRpbl9mYWJzZihfX3gpOyB9CgogIGlubGluZSBsb25nIGRvdWJs ZQogIGZhYnMobG9uZyBkb3VibGUgX194KQogIHsgcmV0dXJuIF9fYnVpbHRpbl9mYWJzbChfX3gp OyB9CgogIHVzaW5nIDo6Zmxvb3I7CgojaWYgX0dMSUJDUFBfSEFWRV9GTE9PUkYKICBpbmxpbmUg ZmxvYXQgCiAgZmxvb3IoZmxvYXQgX194KSB7IHJldHVybiA6OmZsb29yZihfX3gpOyB9CiNlbHNl CiAgaW5saW5lIGZsb2F0IAogIGZsb29yKGZsb2F0IF9feCkgeyByZXR1cm4gOjpmbG9vcihzdGF0 aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKI2lmIF9HTElCQ1BQX0hBVkVfRkxPT1JM CiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGZsb29yKGxvbmcgZG91YmxlIF9feCkgeyByZXR1cm4g OjpmbG9vcmwoX194KTsgfQojZWxzZQogIGlubGluZSBsb25nIGRvdWJsZSAKICBmbG9vcihsb25n IGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6Zmxvb3Ioc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gpKTsg fQojZW5kaWYKCiAgdXNpbmcgOjpmbW9kOwoKI2lmIF9HTElCQ1BQX0hBVkVfRk1PREYKICBpbmxp bmUgZmxvYXQgCiAgZm1vZChmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gOjpmbW9kZihf X3gsIF9feSk7IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgZm1vZChmbG9hdCBfX3gsIGZsb2F0 IF9feSkKICB7IHJldHVybiA6OmZtb2Qoc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gpLCBzdGF0aWNf Y2FzdDxkb3VibGU+KF9feSkpOyB9CiNlbmRpZgoKI2lmIF9HTElCQ1BQX0hBVkVfRk1PREwKICBp bmxpbmUgbG9uZyBkb3VibGUgCiAgZm1vZChsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9f eSkgeyByZXR1cm4gOjpmbW9kbChfX3gsIF9feSk7IH0KI2Vsc2UKICBpbmxpbmUgbG9uZyBkb3Vi bGUgCiAgZm1vZChsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkgCiAgeyByZXR1cm4g OjpmbW9kKHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3kp KTsgfQojZW5kaWYKCiAgdXNpbmcgOjpmcmV4cDsKCiNpZiBfR0xJQkNQUF9IQVZFX0ZSRVhQRgog IGlubGluZSBmbG9hdCAKICBmcmV4cChmbG9hdCBfX3gsIGludCogX19leHApIHsgcmV0dXJuIDo6 ZnJleHBmKF9feCwgX19leHApOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIGZyZXhwKGZsb2F0 IF9feCwgaW50KiBfX2V4cCkgeyByZXR1cm4gOjpmcmV4cChfX3gsIF9fZXhwKTsgfQojZW5kaWYK CiNpZiBfR0xJQkNQUF9IQVZFX0ZSRVhQTAogIGlubGluZSBsb25nIGRvdWJsZSAKICBmcmV4cChs b25nIGRvdWJsZSBfX3gsIGludCogX19leHApIHsgcmV0dXJuIDo6ZnJleHBsKF9feCwgX19leHAp OyB9CiNlbHNlCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGZyZXhwKGxvbmcgZG91YmxlIF9feCwg aW50KiBfX2V4cCkgCiAgeyByZXR1cm4gOjpmcmV4cChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCks IF9fZXhwKTsgfQojZW5kaWYKCiAgdXNpbmcgOjpsZGV4cDsKCiNpZiBfR0xJQkNQUF9IQVZFX0xE RVhQRgogIGlubGluZSBmbG9hdCAKICBsZGV4cChmbG9hdCBfX3gsIGludCBfX2V4cCkgeyByZXR1 cm4gOjpsZGV4cGYoX194LCBfX2V4cCk7IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgbGRleHAo ZmxvYXQgX194LCBpbnQgX19leHApCiAgeyByZXR1cm4gOjpsZGV4cChzdGF0aWNfY2FzdDxkb3Vi bGU+KF9feCksIF9fZXhwKTsgfQojZW5kaWYKCiNpZiBfR0xJQkNQUF9IQVZFX0xERVhQTAogIGlu bGluZSBsb25nIGRvdWJsZSAKICBsZGV4cChsb25nIGRvdWJsZSBfX3gsIGludCBfX2V4cCkgeyBy ZXR1cm4gOjpsZGV4cGwoX194LCBfX2V4cCk7IH0KI2Vsc2UKICBpbmxpbmUgbG9uZyBkb3VibGUg CiAgbGRleHAobG9uZyBkb3VibGUgX194LCBpbnQgX19leHApIAogIHsgcmV0dXJuIDo6bGRleHAo c3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gpLCBfX2V4cCk7IH0KI2VuZGlmCgogIHVzaW5nIDo6bG9n OwoKI2lmIF9HTElCQ1BQX0hBVkVfTE9HRgogIGlubGluZSBmbG9hdCAKICBsb2coZmxvYXQgX194 KSB7IHJldHVybiA6OmxvZ2YoX194KTsgfQojZWxzZQogIGlubGluZSBmbG9hdCBsb2coZmxvYXQg X194KQogIHsgcmV0dXJuIDo6bG9nKHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0KI2VuZGlm CgojaWYgX0dMSUJDUFBfSEFWRV9MT0dMCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGxvZyhsb25n IGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6bG9nbChfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGxvbmcg ZG91YmxlIAogIGxvZyhsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6bG9nKHN0YXRpY19jYXN0 PGRvdWJsZT4oX194KSk7IH0KI2VuZGlmCgogIHVzaW5nIDo6bG9nMTA7CgojaWYgX0dMSUJDUFBf SEFWRV9MT0cxMEYKICBpbmxpbmUgZmxvYXQgCiAgbG9nMTAoZmxvYXQgX194KSB7IHJldHVybiA6 OmxvZzEwZihfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIGxvZzEwKGZsb2F0IF9feCkg eyByZXR1cm4gOjpsb2cxMChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKI2lm IF9HTElCQ1BQX0hBVkVfTE9HMTBMCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGxvZzEwKGxvbmcg ZG91YmxlIF9feCkgeyByZXR1cm4gOjpsb2cxMGwoX194KTsgfQojZWxzZQogIGlubGluZSBsb25n IGRvdWJsZSAKICBsb2cxMChsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6bG9nMTAoc3RhdGlj X2Nhc3Q8ZG91YmxlPihfX3gpKTsgfQojZW5kaWYKCiAgdXNpbmcgOjptb2RmOwoKI2lmIF9HTElC Q1BQX0hBVkVfTU9ERkYKICBpbmxpbmUgZmxvYXQgCiAgbW9kZihmbG9hdCBfX3gsIGZsb2F0KiBf X2lwdHIpIHsgcmV0dXJuIDo6bW9kZmYoX194LCBfX2lwdHIpOyB9CiNlbHNlCiAgaW5saW5lIGZs b2F0IAogIG1vZGYoZmxvYXQgX194LCBmbG9hdCogX19pcHRyKQogIHsKICAgIGRvdWJsZSBfX3Rt cDsKICAgIGRvdWJsZSBfX3JlcyA9IDo6bW9kZihzdGF0aWNfY2FzdDxkb3VibGU+KF9feCksICZf X3RtcCk7CiAgICAqX19pcHRyID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KF9fdG1wKTsKICAgIHJldHVy biBfX3JlczsKICB9CiNlbmRpZgoKI2lmIF9HTElCQ1BQX0hBVkVfTU9ERkwKICBpbmxpbmUgbG9u ZyBkb3VibGUgCiAgbW9kZihsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlKiBfX2lwdHIpIHsg cmV0dXJuIDo6bW9kZmwoX194LCBfX2lwdHIpOyB9CiNlbHNlCiAgaW5saW5lIGxvbmcgZG91Ymxl IAogIG1vZGYobG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSogX19pcHRyKSAKICB7IAogICAg ZG91YmxlIF9fdG1wOwogICAgZG91YmxlIF9fcmVzID0gOjptb2RmKHN0YXRpY19jYXN0PGRvdWJs ZT4oX194KSwgJl9fdG1wKTsKICAgICogX19pcHRyID0gc3RhdGljX2Nhc3Q8bG9uZyBkb3VibGU+ KF9fdG1wKTsKICAgIHJldHVybiBfX3JlczsKICB9CiNlbmRpZgoKICB0ZW1wbGF0ZTx0eXBlbmFt ZSBfVHA+CiAgICBpbmxpbmUgX1RwCiAgICBfX3Bvd19oZWxwZXIoX1RwIF9feCwgaW50IF9fbikK ICAgIHsKICAgICAgcmV0dXJuIF9fbiA8IDAKICAgICAgICA/IF9UcCgxKS9fX2NtYXRoX3Bvd2Vy KF9feCwgLV9fbikKICAgICAgICA6IF9fY21hdGhfcG93ZXIoX194LCBfX24pOwogICAgfQoKICB1 c2luZyA6OnBvdzsKCiNpZiBfR0xJQkNQUF9IQVZFX1BPV0YKICBpbmxpbmUgZmxvYXQgCiAgcG93 KGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiA6OnBvd2YoX194LCBfX3kpOyB9CiNlbHNl CiAgaW5saW5lIGZsb2F0IAogIHBvdyhmbG9hdCBfX3gsIGZsb2F0IF9feSkKICB7IHJldHVybiA6 OnBvdyhzdGF0aWNfY2FzdDxkb3VibGU+KF9feCksIHN0YXRpY19jYXN0PGRvdWJsZT4oX195KSk7 IH0KI2VuZGlmCgojaWYgX0dMSUJDUFBfSEFWRV9QT1dMCiAgaW5saW5lIGxvbmcgZG91YmxlIAog IHBvdyhsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkgeyByZXR1cm4gOjpwb3dsKF9f eCwgX195KTsgfQojZWxzZQogIGlubGluZSBsb25nIGRvdWJsZSAKICBwb3cobG9uZyBkb3VibGUg X194LCBsb25nIGRvdWJsZSBfX3kpIAogIHsgcmV0dXJuIDo6cG93KHN0YXRpY19jYXN0PGRvdWJs ZT4oX194KSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3kpKTsgfQojZW5kaWYKCiAgaW5saW5lIGRv dWJsZSAKICBwb3coZG91YmxlIF9feCwgaW50IF9faSkKICB7IHJldHVybiBfX3Bvd19oZWxwZXIo X194LCBfX2kpOyB9CgogIGlubGluZSBmbG9hdCAKICBwb3coZmxvYXQgX194LCBpbnQgX19uKQog IHsgcmV0dXJuIF9fcG93X2hlbHBlcihfX3gsIF9fbik7IH0KCiAgaW5saW5lIGxvbmcgZG91Ymxl IAogIHBvdyhsb25nIGRvdWJsZSBfX3gsIGludCBfX24pCiAgeyByZXR1cm4gX19wb3dfaGVscGVy KF9feCwgX19uKTsgfQoKICBpbmxpbmUgaW50CiAgcG93KGludCBfX3gsIGludCBfX24pCiAgeyBy ZXR1cm4gX19wb3dfaGVscGVyKF9feCwgX19uKTsgfQoKICBpbmxpbmUgZG91YmxlCiAgcG93KGRv dWJsZSBfX3gsIGxvbmcgaW50IF9fbikKICB7IHJldHVybiBfX3Bvd19oZWxwZXIoX194LCBfX24p OyB9CgogIHVzaW5nIDo6c2luOwoKICBpbmxpbmUgZmxvYXQKICBzaW4oZmxvYXQgX194KQogIHsg cmV0dXJuIF9fYnVpbHRpbl9zaW5mKF9feCk7IH0KCiAgaW5saW5lIGxvbmcgZG91YmxlCiAgc2lu KGxvbmcgZG91YmxlIF9feCkKICB7IHJldHVybiBfX2J1aWx0aW5fc2lubChfX3gpOyB9CgogIHVz aW5nIDo6c2luaDsKCiNpZiBfR0xJQkNQUF9IQVZFX1NJTkhGCiAgaW5saW5lIGZsb2F0IAogIHNp bmgoZmxvYXQgX194KSB7IHJldHVybiA6OnNpbmhmKF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgZmxv YXQgCiAgc2luaChmbG9hdCBfX3gpIHsgcmV0dXJuIDo6c2luaChzdGF0aWNfY2FzdDxkb3VibGU+ KF9feCkpOyB9CiNlbmRpZgoKI2lmIF9HTElCQ1BQX0hBVkVfU0lOSEwKICBpbmxpbmUgbG9uZyBk b3VibGUgCiAgc2luaChsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6c2luaGwoX194KTsgfQoj ZWxzZQogIGlubGluZSBsb25nIGRvdWJsZSAKICBzaW5oKGxvbmcgZG91YmxlIF9feCkgeyByZXR1 cm4gOjpzaW5oKHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0KI2VuZGlmCgogIHVzaW5nIDo6 c3FydDsKCiAgaW5saW5lIGZsb2F0CiAgc3FydChmbG9hdCBfX3gpCiAgeyByZXR1cm4gX19idWls dGluX3NxcnRmKF9feCk7IH0KCiAgaW5saW5lIGxvbmcgZG91YmxlCiAgc3FydChsb25nIGRvdWJs ZSBfX3gpCiAgeyByZXR1cm4gX19idWlsdGluX3NxcnRsKF9feCk7IH0KCiAgdXNpbmcgOjp0YW47 CgojaWYgX0dMSUJDUFBfSEFWRV9UQU5GCiAgaW5saW5lIGZsb2F0IAogIHRhbihmbG9hdCBfX3gp IHsgcmV0dXJuIDo6dGFuZihfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIHRhbihmbG9h dCBfX3gpIHsgcmV0dXJuIDo6dGFuKHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0KI2VuZGlm CgojaWYgX0dMSUJDUFBfSEFWRV9UQU5MCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIHRhbihsb25n IGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6dGFubChfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGxvbmcg ZG91YmxlIAogIHRhbihsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6dGFuKHN0YXRpY19jYXN0 PGRvdWJsZT4oX194KSk7IH0KI2VuZGlmCgogIHVzaW5nIDo6dGFuaDsKCiNpZiBfR0xJQkNQUF9I QVZFX1RBTkhGCiAgaW5saW5lIGZsb2F0IAogIHRhbmgoZmxvYXQgX194KSB7IHJldHVybiA6OnRh bmhmKF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgdGFuaChmbG9hdCBfX3gpIHsgcmV0 dXJuIDo6dGFuaChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKI2lmIF9HTElC Q1BQX0hBVkVfVEFOSEwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgdGFuaChsb25nIGRvdWJsZSBf X3gpIHsgcmV0dXJuIDo6dGFuaGwoX194KTsgfQojZWxzZQogIGlubGluZSBsb25nIGRvdWJsZSAK ICB0YW5oKGxvbmcgZG91YmxlIF9feCkgeyByZXR1cm4gOjp0YW5oKHN0YXRpY19jYXN0PGRvdWJs ZT4oX194KSk7IH0KI2VuZGlmCn0gCgoKI2lmIF9HTElCQ1BQX1VTRV9DOTkKLy8gVGhlc2UgYXJl IHBvc3NpYmxlIG1hY3JvcyBpbXBvcnRlZCBmcm9tIEM5OS1sYW5kLiBGb3Igc3RyaWN0Ci8vIGNv bmZvcm1hbmNlLCByZW1vdmUgcG9zc2libGUgQzk5LWluamVjdGVkIG5hbWVzIGZyb20gdGhlIGds b2JhbAovLyBuYW1lc3BhY2UsIGFuZCBzZXF1ZXN0ZXIgdGhlbSBpbiB0aGUgX19nbnVfY3h4IGV4 dGVuc2lvbiBuYW1lc3BhY2UuIApuYW1lc3BhY2UgX19nbnVfY3h4CnsKICB0ZW1wbGF0ZTx0eXBl bmFtZSBfVHA+CiAgICBpbnQgCiAgICBfX2NhcHR1cmVfZnBjbGFzc2lmeShfVHAgX19mKSB7IHJl dHVybiBmcGNsYXNzaWZ5KF9fZik7IH0KCiAgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPgogICAgaW50 IAogICAgX19jYXB0dXJlX2lzZmluaXRlKF9UcCBfX2YpIHsgcmV0dXJuIGlzZmluaXRlKF9fZik7 IH0KCiAgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPgogICAgaW50IAogICAgX19jYXB0dXJlX2lzaW5m KF9UcCBfX2YpIHsgcmV0dXJuIGlzaW5mKF9fZik7IH0KCiAgdGVtcGxhdGU8dHlwZW5hbWUgX1Rw PgogICAgaW50IAogICAgX19jYXB0dXJlX2lzbmFuKF9UcCBfX2YpIHsgcmV0dXJuIGlzbmFuKF9f Zik7IH0KCiAgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPgogICAgaW50IAogICAgX19jYXB0dXJlX2lz bm9ybWFsKF9UcCBfX2YpIHsgcmV0dXJuIGlzbm9ybWFsKF9fZik7IH0KCiAgdGVtcGxhdGU8dHlw ZW5hbWUgX1RwPgogICAgaW50IAogICAgX19jYXB0dXJlX3NpZ25iaXQoX1RwIF9fZikgeyByZXR1 cm4gc2lnbmJpdChfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAg IF9fY2FwdHVyZV9pc2dyZWF0ZXIoX1RwIF9fZjEsIF9UcCBfX2YyKQogICAgeyByZXR1cm4gaXNn cmVhdGVyKF9fZjEsIF9fZjIpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgICBpbnQg CiAgICAgX19jYXB0dXJlX2lzZ3JlYXRlcmVxdWFsKF9UcCBfX2YxLCBfVHAgX19mMikgCiAgICAg eyByZXR1cm4gaXNncmVhdGVyZXF1YWwoX19mMSwgX19mMik7IH0KCiAgdGVtcGxhdGU8dHlwZW5h bWUgX1RwPgogICAgIGludCAKICAgICBfX2NhcHR1cmVfaXNsZXNzKF9UcCBfX2YxLCBfVHAgX19m MikgeyByZXR1cm4gaXNsZXNzKF9fZjEsIF9fZjIpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9U cD4KICAgICBpbnQgCiAgICAgX19jYXB0dXJlX2lzbGVzc2VxdWFsKF9UcCBfX2YxLCBfVHAgX19m MikgCiAgICAgeyByZXR1cm4gaXNsZXNzZXF1YWwoX19mMSwgX19mMik7IH0KCiAgdGVtcGxhdGU8 dHlwZW5hbWUgX1RwPgogICAgIGludCAKICAgICBfX2NhcHR1cmVfaXNsZXNzZ3JlYXRlcihfVHAg X19mMSwgX1RwIF9fZjIpIAogICAgIHsgcmV0dXJuIGlzbGVzc2dyZWF0ZXIoX19mMSwgX19mMik7 IH0KCiAgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPgogICAgIGludCAKICAgICBfX2NhcHR1cmVfaXN1 bm9yZGVyZWQoX1RwIF9fZjEsIF9UcCBfX2YyKSAKICAgICB7IHJldHVybiBpc3Vub3JkZXJlZChf X2YxLCBfX2YyKTsgfQp9IAojZW5kaWYKCiN1bmRlZiBmcGNsYXNzaWZ5CiN1bmRlZiBpc2Zpbml0 ZQojdW5kZWYgaXNpbmYKI3VuZGVmIGlzbmFuCiN1bmRlZiBpc25vcm1hbAojdW5kZWYgc2lnbmJp dAojdW5kZWYgaXNncmVhdGVyCiN1bmRlZiBpc2dyZWF0ZXJlcXVhbAojdW5kZWYgaXNsZXNzCiN1 bmRlZiBpc2xlc3NlcXVhbAojdW5kZWYgaXNsZXNzZ3JlYXRlcgojdW5kZWYgaXN1bm9yZGVyZWQK CiNpZiBfR0xJQkNQUF9VU0VfQzk5Cm5hbWVzcGFjZSBfX2dudV9jeHgKewogIHRlbXBsYXRlPHR5 cGVuYW1lIF9UcD4KICAgIGludAogICAgZnBjbGFzc2lmeShfVHAgX19mKSB7IHJldHVybiBfX2Nh cHR1cmVfZnBjbGFzc2lmeShfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGlu dAogICAgaXNmaW5pdGUoX1RwIF9fZikgeyByZXR1cm4gX19jYXB0dXJlX2lzZmluaXRlKF9fZik7 IH0KCiAgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPgogICAgaW50IAogICAgaXNpbmYoX1RwIF9fZikg eyByZXR1cm4gX19jYXB0dXJlX2lzaW5mKF9fZik7IH0KCiAgdGVtcGxhdGU8dHlwZW5hbWUgX1Rw PgogICAgaW50IAogICAgaXNuYW4oX1RwIF9fZikgeyByZXR1cm4gX19jYXB0dXJlX2lzbmFuKF9f Zik7IH0KCiAgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPgogICAgaW50IAogICAgaXNub3JtYWwoX1Rw IF9fZikgeyByZXR1cm4gX19jYXB0dXJlX2lzbm9ybWFsKF9fZik7IH0KCiAgdGVtcGxhdGU8dHlw ZW5hbWUgX1RwPgogICAgaW50IAogICAgc2lnbmJpdChfVHAgX19mKSB7IHJldHVybiBfX2NhcHR1 cmVfc2lnbmJpdChfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAg IGlzZ3JlYXRlcihfVHAgX19mMSwgX1RwIF9fZjIpIHsgcmV0dXJuIF9fY2FwdHVyZV9pc2dyZWF0 ZXIoX19mMSwgX19mMik7IH0KCiAgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPgogICAgaW50IAogICAg aXNncmVhdGVyZXF1YWwoX1RwIF9fZjEsIF9UcCBfX2YyKSAKICAgIHsgcmV0dXJuIF9fY2FwdHVy ZV9pc2dyZWF0ZXJlcXVhbChfX2YxLCBfX2YyKTsgfQoKICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+ CiAgICBpbnQgCiAgICBpc2xlc3MoX1RwIF9fZjEsIF9UcCBfX2YyKSB7IHJldHVybiBfX2NhcHR1 cmVfaXNsZXNzKF9fZjEsIF9fZjIpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGlu dCAKICAgIGlzbGVzc2VxdWFsKF9UcCBfX2YxLCBfVHAgX19mMikgCiAgICB7IHJldHVybiBfX2Nh cHR1cmVfaXNsZXNzZXF1YWwoX19mMSwgX19mMik7IH0KCiAgdGVtcGxhdGU8dHlwZW5hbWUgX1Rw PgogICAgaW50IAogICAgaXNsZXNzZ3JlYXRlcihfVHAgX19mMSwgX1RwIF9fZjIpIAogICAgeyBy ZXR1cm4gX19jYXB0dXJlX2lzbGVzc2dyZWF0ZXIoX19mMSwgX19mMik7IH0KCiAgdGVtcGxhdGU8 dHlwZW5hbWUgX1RwPgogICAgaW50IAogICAgaXN1bm9yZGVyZWQoX1RwIF9fZjEsIF9UcCBfX2Yy KSAKICAgIHsgcmV0dXJuIF9fY2FwdHVyZV9pc3Vub3JkZXJlZChfX2YxLCBfX2YyKTsgfQp9Cgpu YW1lc3BhY2Ugc3RkCnsKICB1c2luZyBfX2dudV9jeHg6OmZwY2xhc3NpZnk7CiAgdXNpbmcgX19n bnVfY3h4Ojppc2Zpbml0ZTsKICB1c2luZyBfX2dudV9jeHg6OmlzaW5mOwogIHVzaW5nIF9fZ251 X2N4eDo6aXNuYW47CiAgdXNpbmcgX19nbnVfY3h4Ojppc25vcm1hbDsKICB1c2luZyBfX2dudV9j eHg6OnNpZ25iaXQ7CiAgdXNpbmcgX19nbnVfY3h4Ojppc2dyZWF0ZXI7CiAgdXNpbmcgX19nbnVf Y3h4Ojppc2dyZWF0ZXJlcXVhbDsKICB1c2luZyBfX2dudV9jeHg6OmlzbGVzczsKICB1c2luZyBf X2dudV9jeHg6OmlzbGVzc2VxdWFsOwogIHVzaW5nIF9fZ251X2N4eDo6aXNsZXNzZ3JlYXRlcjsK ICB1c2luZyBfX2dudV9jeHg6OmlzdW5vcmRlcmVkOwp9CiNlbmRpZgogIAojaWZkZWYgX0dMSUJD UFBfTk9fVEVNUExBVEVfRVhQT1JUCiMgIGRlZmluZSBleHBvcnQKIyAgaW5jbHVkZSA8Yml0cy9j bWF0aC50Y2M+CiNlbmRpZgoKI2VuZGlmCg==