From mboxrd@z Thu Jan 1 00:00:00 1970 From: sourab.gupta@intel.com Subject: [RFC 0/8] Introduce framework to forward multi context OA snapshots Date: Wed, 5 Aug 2015 11:22:49 +0530 Message-ID: <1438753977-20335-1-git-send-email-sourab.gupta@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 3016B6E039 for ; Tue, 4 Aug 2015 22:50:40 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Insoo Woo , Peter Zijlstra , Jabin Wu , Sourab Gupta List-Id: intel-gfx@lists.freedesktop.org RnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFAaW50ZWwuY29tPgoKVGhpcyBpcyB0aGUg dXBkYXRlZCBwYXRjaCBzZXJpZXModjMgLSBjaGFuZ2VzIGxpc3RlZCBhdCBlbmQpLCB3aGljaCBh ZGRzCnN1cHBvcnQgZm9yIGNhcHR1cmluZyBPQSBjb3VudGVyIHNuYXBzaG90cyBmb3IgbXVsdGlw bGUgY29udGV4dHMsIGJ5IGluc2VydGluZwpNSV9SRVBPUlRfUEVSRl9DT1VOVCBjb21tYW5kcyBp bnRvIENTLCBhbmQgZm9yd2FyZGluZyB0aGVzZSBzbmFwc2hvdHMgdG8KdXNlcnNwYWNlIHVzaW5n IHBlcmYgaW50ZXJmYWNlLgoKVGhpcyB3b3JrIGlzIGJhc2VkIG9uIFJvYmVydCBCcmFnZydzIHBl cmYgZXZlbnQgZnJhbWV3b3JrLCB0aGUgcGF0Y2hlcyBmb3IKd2hpY2ggd2VyZSBmbG9hdGVkIGVh cmxpZXI6CgpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hpdmVzL2ludGVsLWdmeC8y MDE1LU1heS8wNjYxMDIuaHRtbAoKUm9iZXJ0J3MgcGVyZiBldmVudCBmcmFtZXdvcmsgZW5hYmxl ZCBjYXB0dXJlIG9mIHBlcmlvZGljIE9BIGNvdW50ZXIgc25hcHNob3RzCmJ5IGNvbmZpZ3VyaW5n IHRoZSBPQSB1bml0IGR1cmluZyBwZXJmIGV2ZW50IGluaXQuIFRoZSByYXcgT0EgcmVwb3J0cyBn ZW5lcmF0ZWQKYnkgSFcgYXJlIHRoZW4gZm9yd2FyZGVkIHRvIHVzZXJzcGFjZSB1c2luZyBwZXJm IGFwaXMuCgpCdXQsIHRoZXJlIG1heSBiZSB1c2VjYXNlcyB3aGVyZWluIHdlIG5lZWQgbW9yZSB0 aGFuIHRoZSBwZXJpb2RpYyBPQSBjYXB0dXJlCmZ1bmN0aW9uYWxpdHkgd2hpY2ggaXMgc3VwcG9y dGVkIGJ5IHBlcmZfZXZlbnQgY3VycmVudGx5LiBGZXcgc3VjaCB1c2VjYXNlcyBhcmU6CiAgICAt IEFiaWxpdHkgdG8gY2FwdHVyZSBzeXN0ZW0gd2lkZSBtZXRyaWNzLiBUaGUgcmVwb3J0cyBjYXB0 dXJlZCBzaG91bGQgYmUKICAgICAgYWJsZSB0byBiZSBtYXBwZWQgYmFjayB0byBpbmRpdmlkdWFs IGNvbnRleHRzLgogICAgLSBBYmlsaXR5IHRvIGluamVjdCB0YWdzIGZvciB3b3JrLCBpbnRvIHRo ZSByZXBvcnRzLiBUaGlzIHByb3ZpZGVzCiAgICAgIHZpc2liaWxpdHkgaW50byB0aGUgbXVsdGlw bGUgc3RhZ2VzIG9mIHdvcmsgd2l0aGluIHNpbmdsZSBjb250ZXh0LgoKVGhpcyBmcmFtZXdvcmsg cHJvcG9zZWQgaGVyZSBtYXkgYWxzbyBiZSBzZWVuIGFzIGEgd2F5IHRvIG92ZXJjb21lIGEgbGlt aXRhdGlvbgpvZiBIYXN3ZWxsLCB3aGljaCBkb2Vzbid0IHdyaXRlIG91dCBhIGNvbnRleHQgSUQg d2l0aCBPQSByZXBvcnRzIGFuZCBoYW5kbGluZwp0aGlzIGluIHRoZSBrZXJuZWwgbWFrZXMgc2Vu c2Ugd2hlbiB3ZSBwbGFuIGZvciBjb21wYXRpYmlsaXR5IHdpdGggQnJvYWR3ZWxsCndoaWNoIGRv ZXNuJ3QgaW5jbHVkZSBjb250ZXh0IGlkIGluIHJlcG9ydHMuCgpUaGlzIGNhbiBiZSBhY2hpZXZl ZCBieSBpbnNlcnRpbmcgdGhlIGNvbW1hbmRzIGludG8gdGhlIHJpbmcsIGJlZm9yZSBhbmQgYWZ0 ZXIKdGhlIGJhdGNoYnVmZmVyLCB0byBkdW1wIHRoZSBPQSBjb3VudGVyIHNuYXBzaG90cy4gVGhl IHJlcG9ydHMgZ2VuZXJhdGVkIGNhbgpoYXZlIGFuIGFkZGl0aW9uYWwgZm9vdGVyIGFwcGVuZGVk IGZvciBjYXB0dXJpbmcgdGhlIG1ldGFkYXRhIGluZm9ybWF0aW9uIHN1Y2gKYXMgY3R4IGlkLCBw aWQsIHRhZ3MsIGV0Yy4gVGhlIHNwZWNpZmljIGlzc3VlIG9mIGNvdW50ZXIgd3JhcGFyb3VuZCBk dWUgdG8KbGFyZ2UgYmF0Y2hidWZmZXJzIGNhbiBiZSBzdWJ2ZXJ0ZWQgYnkgdXNpbmcgdGhlbSBp biBjb25qdW5jdGlvbiB3aXRoIHBlcmlvZGljCk9BIHNuYXBzaG90cy4gU3VjaCBwZXItQkIgZGF0 YSBjYW4gZ2l2ZSB1c2VmdWwgaW5mb3JtYXRpb24gdG8gdXNlcnNwYWNlIHRvb2xzCnRvIGFuYWx5 emUgcGVyZm9ybWFuY2UgYW5kIHRpbWluZyBpbmZvcm1hdGlvbiBhdCBiYXRjaGJ1ZmZlciBsZXZl bC4KCkFuIGFwcGxpY2F0aW9uIGludGVuZGluZyB0byBwcm9maWxlIGl0cyBvd24gY29udGV4dHMg Y2FuIGRvIHNvIGJ5IHN1Ym1pdHRpbmcKdGhlIE1JX1JFUE9SVF9QRVJGX0NPVU5UIGNvbW1hbmRz IGludG8gdGhlIENTIGZyb20gdGhlIHVzZXJzcGFjZSBpdHNlbGYuCkJ1dCBjb25zaWRlciB0aGUg dXNlY2FzZSBvZiBhIHN5c3RlbSB3aWRlIEdQVSBwcm9maWxlciB0b29sIHdoaWNoIG5lZWRzIHRo ZSAKZGF0YSBmb3IgYWxsIHRoZSB3b3JrbG9hZHMgYmVpbmcgc2NoZWR1bGVkIG9uIEdQVSBnbG9i YWxseS4gVGhlIHJlbGF0aXZlCmNvbXBsZXhpdHkgb2YgZG9pbmcgdGhpcyBpbiBrZXJuZWwgaXMg c2lnbmlmaWNhbnRseSBsZXNzIHRoYW4gc3VwcG9ydGluZyBzdWNoCmEgdXNlY2FzZSB0aHJvdWdo IHVzZXJzcGFjZS4KClRoaXMgZnJhbWV3b3JrIGlzIGludGVuZGVkIHRvIGZlZWQgaW50byB0aGUg cmVxdWlyZW1lbnQgb2Ygc3VjaCBzeXN0ZW0gd2lkZQpHUFUgcHJvZmlsZXJzLCB3aGljaCBtYXkg ZnVydGhlciB1dGlsaXplIHRoaXMgZGF0YSBmb3IgdXNlY2FzZXMgc3VjaCBhcwpwZXJmb3JtYW5j ZSBhbmFseXNpcyAoYXQgYSBnbG9iYWwgbGV2ZWwpLCBpZGVudGlmeWluZyBvcHRpbWl6YXRpb24g c2NlbmFyaW9zCmZvciBpbXByb3ZpbmcgR1BVIHV0aWxpemF0aW9uLCBDUFUgdnMgR1BVIHRpbWlu ZyBhbmFseXNpcywgZXRjLiBBZ2FpbiwgdGhpcyBpcwptYWRlIHBvc3NpYmxlIGJ5IHByZXNlbmNl IG9mIG1ldGFkYXRhIGluZm9ybWF0aW9uIHdpdGggaW5kaXZpZHVhbCByZXBvcnRzLCB3aGljaApp cyBlbmFibGVkIGJ5IHRoaXMgZnJhbWV3b3JrLgpPbmUgc3VjaCBzeXN0ZW0gd2lkZSBHUFUgcHJv ZmlsZXIgdG9vbCBpcyBNVlAoTW9kdWxhciBWaWRlbyBQcm9maWxlcikgdG9vbCwKdXNlZCBieSBt ZWRpYSB0ZWFtIGZvciBwcm9maWxpbmcgbWVkaWEgd29ya2xvYWRzLgoKVGhlIGN1cnJlbnQgaW1w bGVtZW50YXRpb24gYXBwcm9hY2ggaXMgdG8gZm9yd2FyZCB0aGVzZSBzYW1wbGVzIHRocm91Z2gg dGhlCnNhbWUgUEVSRl9TQU1QTEVfUkFXIHNhbXBsZSB0eXBlLCBhcyBiZWluZyBkb25lIGZvciBw ZXJpb2RpYyBzYW1wbGVzLCB3aXRoIGFuCmFkZGl0aW9uYWwgZm9vdGVyIGFwcGVuZGVkIGZvciBt ZXRhZGF0YSBpbmZvcm1hdGlvbi4gVGhlIHVzZXJzcGFjZSBjYW4gdGhlbgpkaXN0aW5ndWlzaCB0 aGVzZSBzYW1wbGVzIGJ5IGZpbHRlcmluZyBvdXQgb24gdGhlIGJhc2lzIG9mIHNhbXBsZSBzaXpl LgpPbmUgb2YgdGhlIG90aGVyIGFwcHJvYWNoZXMgYmVpbmcgY29udGVtcGxhdGVkIHJpZ2h0IG5v dyBpcyBjcmVhdGluZyBzZXBhcmF0ZQpzYW1wbGUgdHlwZXMgdG8gaGFuZGxlIHRoZXNlIGRpZmZl cmVudCBraW5kIG9mIHNhbXBsZXMuIFRoZXJlIHdvdWxkIGJlIGRpZmZlcmVudApmZCdzIGFzc29j aWF0ZWQgd2l0aCB0aGVzZSBkaWZmZXJlbnQgc2FtcGxlIHR5cGVzLCB0aG91Z2ggdGhleSBjYW4g YmUgYSBwYXJ0IG9mCm9uZSBldmVudCBncm91cC4gVGhlIHVzZXJzcGFjZSBjYW4gbGlzdGVuIHRv IGVpdGhlciBvciBib3RoIHRoZXNlIHNhbXBsZSB0eXBlcwp3aGlsZSBzcGVjaWZ5aW5nIGV2ZW50 IGF0dHJpYnV0ZXMgZHVyaW5nIGV2ZW50IGluaXQuCkJ1dCByaWdodCBub3csIEknbSBzZWVpbmcg dGhpcyB3b3JrIGFzIGEgZnV0dXJlIHJlZmluZW1lbnQsIGJhc2VkIG9uIGFjY2VwdGFuY2UKb2Yg Z2VuZXJhbCBmcmFtZXdvcmsgYXMgc3VjaC4gSSdtIGxvb2tpbmcsIGFzIG9mIG5vdywgdG8gZ2V0 IHRoZSBmZWVkYmFjayBvbgp0aGVzZSBpbml0aWFsIHBhdGNoZXMsIHcuci50LiB0aGUgdXNhZ2Ug b2YgcGVyZiBhcGlzIGFuZCB0aGUgaW50ZXJhY3Rpb24gd2l0aAppOTE1LgoKQW5vdGhlciBmZWF0 dXJlIGludHJvZHVjZWQgaW4gdGhlc2UgcGF0Y2hlcyBpcyBleGVjYnVmZmVyIHRhZ2dpbmcuIEl0 IGlzIGEKbWVjaGFuaXNtLCB3aGVyZWJ5IHRoZSByZXBvcnRzIGNvbGxlY3RlZCBhcmUgbWFya2Vk IHdpdGggYSB0YWcgcGFzc2VkIGJ5CnVzZXJzcGFjZSBkdXJpbmcgdGhlIGV4ZWNidWZmZXIgY2Fs bC4gVGhpcyB3YXkgdGhlIHVzZXJzcGFjZSB0b29sIGNhbiBhc3NvY2lhdGUKdGhlIHJlcG9ydHMg Y29sbGVjdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgZXhlY2J1ZmZlcnMuIFRoaXMgc2F0aWZp ZXMgdGhlCnJlcXVpcmVtZW50IHRvIGhhdmUgdmlzaWJpbGl0eSBpbnRvIG11bHRpcGxlIHN0YWdl cyAoaS5lLiBleGVjYnVmZmVycykgbHlpbmcKd2l0aGluIGEgc2luZ2xlIGNvbnRleHQuIApGb3Ig ZS5nLiBmb3IgdGhlIG1lZGlhIHBpcGVsaW5lLCBDb2RlY0hBTCBlbmNvZGluZyBzdGFnZSBoYXMg YSBzaW5nbGUgY29udGV4dCwKYW5kIGludm9sdmVzIG11bHRpcGxlIHN0YWdlcyBzdWNoIGFzIFNj YWxpbmcsIE1FLCBNQkVuYywgUEFLIGZvciB3aGljaCB0aGVyZQphcmUgc2VwYXJhdGUgZXhlY2J1 ZmZlciBjYWxscy4gVGhlcmUgaXMgYSBuZWVkIHRvIGhhdmUgdGhlIGdyYW51bGFyaXR5IG9mIHRo ZXNlCm11bHRpcGxlIHN0YWdlcyBvZiBhIGNvbnRleHQgZm9yIHRoZSByZXBvcnRzIGdlbmVyYXRl ZC4gVGhlIHByZXNlbmNlIG9mIGEKdGFnIGluIHJlcG9ydCBtZXRhZGF0YSBmdWxmaWxscyB0aGlz IHJlcXVpcmVtZW50LgoKT25lIG9mIHRoZSBwcmUtcmVxdWlzaXRlIGZvciB0aGlzIHdvcmsgaXMg cHJlc2VuY2Ugb2YgZ2xvYmFsbHkgdW5pcXVlIGlkCmFzc29jaWF0ZWQgd2l0aCBlYWNoIGNvbnRl eHQuIFRoZSBwcmVzZW50IGNvbnRleHQgaWQgaXMgc3BlY2lmaWMgdG8gZHJtIGZkLgpBcyBzdWNo LCBpdCBjYW4ndCB1bmlxdWVseSBiZSB1c2VkIHRvIGFzc29jaWF0ZSB0aGUgcmVwb3J0cyBnZW5l cmF0ZWQgd2l0aCB0aGUKY29ycmVzcG9uZGluZyBjb250ZXh0IHNjaGVkdWxlZCBmcm9tIHVzZXJz cGFjZSBpbiBhIGdsb2JhbCB3YXkuCkluIGFic2VuY2Ugb2YgZ2xvYmFsbHkgdW5pcXVlIGNvbnRl eHQgaWQsIG90aGVyIG1ldGFkYXRhIHN1Y2ggYXMgcGlkL3RhZ3MgaW4KY29uanVuY3Rpb24gd2l0 aCBjdHggaWQgbWF5IGJlIHVzZWQgdG8gYXNzb2NpYXRlIHJlcG9ydHMgd2l0aCB0aGUgY29ycmVz cG9uZGluZwpjb250ZXh0cy4KClRoZSBmaXJzdCBwYXRjaCBpbiB0aGUgc2VyaWVzIGludHJvZHVj ZXMgYSBnbG9iYWwgY29udGV4dCBpZCwgYW5kIHRoZQpzdWJzZXF1ZW50IHBhdGNoZXMgaW50cm9k dWNlIHRoZSBtdWx0aS1jb250ZXh0IE9BIGNhcHR1cmUgbW9kZSBhbmQgdGhlCm1lY2hhbmlzbSB0 byBmb3J3YXJkIHRoZXNlIHNuYXBzaG90cyB1c2luZyBwZXJmLgoKVGhpcyBwYXRjaCBzZXQgY3Vy cmVudGx5IHN1cHBvcnRzIEhhc3dlbGwuIEdlbjgrIHN1cHBvcnQgY2FuIGJlIGFkZGVkIHdoZW4K dGhlIGJhc2ljIGZyYW1ld29yayBpcyBhZ3JlZWQgdXBvbi4KCnYyOiBUaGlzIHBhdGNoIHNlcmll cyBoYXMgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHdydCB0aGUgb25lIGZsb2F0ZWQgZWFybGllcjoK ICAgIC0gUmVtb3Zpbmcgc3luY2hyb25vdXMgd2FpdHMgZHVyaW5nIGV2ZW50IHN0b3AvZGVzdHJv eQogICAgLSBzZWdyZWdhdGluZyB0aGUgYm9vay1rZWVwaW5nIGRhdGEgZm9yIHRoZSBzYW1wbGVz IGZyb20gZGVzdGluYXRpb24gYnVmZmVyCiAgICAgIGFuZCBjb2xsZWN0aW5nIGl0IGludG8gYSBz ZXBhcmF0ZSBsaXN0CiAgICAtIG1hbmFnaW5nIHRoZSBsaWZldGltZSBvZiBkZXN0aW5hdGlvbiBi dWZmZXIgd2l0aCB0aGUgaGVscCBvZiBnZW0gYWN0aXZlCiAgICAgIHJlZmVyZW5jZSB0cmFja2lu ZwogICAgLSBoYXZpbmcgdGhlIHNjb3BlIG9mIGk5MTUgZGV2aWNlIG11dGV4IGxpbWl0ZWQgdG8g cGxhY2VzIG9mIGdlbSBpbnRlcmFjdGlvbgogICAgICBhbmQgaGF2aW5nIHRoZSBwbXUgZGF0YSBz dHJ1Y3R1cmVzIHByb3RlY3RlZCB3aXRoIGEgcGVyIHBtdSBsb2NrCiAgICAtIHVzZXJzcGFjZSBj YW4gbm93IGNvbnRyb2wgdGhlIG1ldGFkYXRhIGl0IHdhbnRzIGJ5IHJlcXVlc3RpbmcgdGhlIHNh bWUKICAgICAgZHVyaW5nIGV2ZW50IGluaXQuIFRoZSBzYW1wbGUgaXMgc2VudCB3aXRoIHRoZSBy ZXF1ZXN0ZWQgbWV0YWRhdGEgaW4gYQogICAgICBwYWNrZWQgZm9ybWF0LgogICAgLSBTb21lIHBh dGNoZXMgbWVyZ2VkIHRvZ2V0aGVyIGFuZCBhIGZldyBtb3JlIGludHJvZHVjZWQKCnYzOiBDaGFu Z2VzIG1hZGU6CiAgICAtIEdsb2JhbCBpZCBmb3IgY3R4IGFsbG9jYXRlZCBmcm9tIGEgc2VwYXJh dGUgY3ljbGljIGlkciwgYW5kIG5vdCB0cnlpbmcgdG8KICAgICAgb3ZlcmxvYWQgZXhpc3Rpbmcg ZHJtIGZkIHNwZWNpZmljIGN0eCBpZCBmb3IgdGhpcyBwdXJwb3NlLgogICAgLSBNZWV0aW5nIHNl bWFudGljcyBmb3IgZmx1c2ggKGVuc3VyaW5nIHRvIGZsdXNoIHNhbXBsZXMgYmVmb3JlIHJldHVy bmluZykKICAgIC0gc3Bpbl9sb2NrcyB1c2VkIGluIHBsYWNlIG9mIHNwaW5fbG9ja19pcnFzYXZl CiAgICAtIGV4ZWNidWZmZXIgdGFnIG5vdyB1c2VzIHVwcGVyIDMyIGJpdHMgb2YgcnN2ZDEgZmll bGQuCiAgICAtIFNvbWUgY29kZSByZXN0cnVjdHVyaW5nL29wdGltaXphdGlvbiwgYmV0dGVyIG5v bWVuY2xhdHVyZSBhbmQgZXJyb3IKICAgICAgaGFuZGxpbmcuCgpTb3VyYWIgR3VwdGEgKDgpOgog IGRybS9pOTE1OiBJbnRyb2R1Y2UgZ2xvYmFsIGlkIGZvciBjb250ZXh0cwogIGRybS9pOTE1OiBJ bnRyb2R1Y2UgbW9kZSBmb3IgY2FwdHVyZSBvZiBtdWx0aSBjdHggT0EgcmVwb3J0cwogICAgc3lu Y2hyb25pemVkIHdpdGggUkNTCiAgZHJtL2k5MTU6IEFkZCBtZWNoYW5pc20gZm9yIGZvcndhcmRp bmcgQ1MgYmFzZWQgT0EgY291bnRlciBzbmFwc2hvdHMKICAgIHRocm91Z2ggcGVyZgogIGRybS9p OTE1OiBGb3J3YXJkIHBlcmlvZGljIGFuZCBDUyBiYXNlZCBPQSByZXBvcnRzIHNvcnRlZCBhY2Mg dG8KICAgIHRpbWVzdGFtcHMKICBkcm0vaTkxNTogSGFuZGxlIGV2ZW50IHN0b3AgYW5kIGRlc3Ry b3kgZm9yIGNvbW1hbmRzIGluIGZsaWdodAogIGRybS9pOTE1OiBJbnNlcnQgY29tbWFuZHMgZm9y IGNhcHR1cmUgb2YgT0EgY291bnRlcnMgaW4gdGhlIHJpbmcKICBkcm0vaTkxNTogQWRkIHN1cHBv cnQgZm9yIGhhdmluZyBwaWQgb3V0cHV0IHdpdGggT0EgcmVwb3J0CiAgZHJtL2k5MTU6IEFkZCBz dXBwb3J0IHRvIGFkZCBleGVjYnVmZmVyIHRhZ3MgdG8gT0EgY291bnRlciByZXBvcnRzCgogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgIDUzICsrLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAgIHwgIDE5ICsKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICAgNiArCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X29hX3BlcmYuYyAgICAgICAgfCA2MDQgKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0KIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCAgICAgICAgICAgICAgICB8ICAyNSAr LQogNSBmaWxlcyBjaGFuZ2VkLCA2MzUgaW5zZXJ0aW9ucygrKSwgNzIgZGVsZXRpb25zKC0pCgot LSAKMS44LjUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK