Email             :
RPubs            : https://rpubs.com/brigitatiaraem/
Jurusan          : Statistika
Address         : ARA Center, Matana University Tower
                         Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.


1 Carilah definisi Optimasi, Optimisasi, atau Optimalisasi? Mana yang benar?

  1. Optimasi merupakan suatu cara yang memiliki tujuan dengan memaksimalkan segala sesuatu hal yang diinginkan atau ingin dicapai.

  2. Optimisasi merupakan suatu cara yang digunakan dalam memecahkan suatu masalah dengan menemukan solusi dengan meminimalkan atau memaksimalkan fungsi tujuan yang dipakai dalam suatu kendala (jika ada).

  3. Optimalisasi merupakan suatu cara yang ditujukan untuk mendapatkan nilai terbaik atau nilai maksimal dari fungsi yang ada dalam suatu rumusan masalah.

Dari ketiga pengertian dalam optimasi, optimisasi, atau optimalisasi ini memiliki pengertian dengan makna yang sama. Bagi saya, semua benar dan tidak ada yang salah. Hanya saja penggunaan kata optimasi lebih sering digunakan daripada optimalisasi dan optimisasi.

2 Jelaskan apa yang dimaksud dengan optimasi terbatas dan optimasi tanpa kendala, berikan contohnya!

2.1 Optimasi Terbatas atau Constrained Optimization

Suatu cara yang digunakan untuk memaksimumkan atau meminimumkan suatu fungsi tujuan yang ada dengan berbagai kendala dalam suatu rumusan masalah. Pada perusahaan, adanya kendala ini dapat menjadi penghambat tercapainya suatu optimisasi tanpa kendala atau mengurangi kebebasan berperilaku.

Berikut contoh dari optimasi terbatas.

Diketahui.

\[ \begin{align} ∏ =f(X,Y) &=\ 100X–4X2–XY–5Y2+120Y\\ X+Y&=\ 20 \end{align} \]

Maka, hitunglang laba yang optimal.

Fungsi kendala:

\[ \begin{align} X+Y&=\ 20\\ X&=20-Y \end{align} \]

Persamaan optimisasi dengan kendala

\[ \begin{align} ∏ &=\ 100X – 4X2 – XY – 5Y2 + 120Y\\ &=\ 100(20 – Y) – 4(20 – Y)2 – (20 – Y)Y – 5Y2 + 120Y\\ &=\ 2000 – 100Y – 4(400 – 40Y + Y2 ) – 20Y + Y2 – 5Y2 + 120Y\\ &=\ 2000 – 100Y – 1600 + 160Y – 4 Y2 – 20Y + Y2 – 5Y2 + 120Y\\ &=\ – 4 Y2 + Y2 – 5Y2 – 100Y + 160Y – 20Y + 120Y + 2000 – 1600\\ &=\ – 8 Y2 + 160 Y + 400 \end{align} \]

Untuk memaksimumkan optimisasi tanpa kendala di atas, kita harus menurunkan persamaan tersebut, yaitu:

\[ \begin{align} ∂π/∂Y &=\ -16Y+160=0\\ -16Y &=\ -160\\ Y&=\ 10 \end{align} \]

Langkah selanjutnya adalah mensubsitusikan nilai Y=10 kedalam persamaan kendala, maka perhitungan adalah sebagai berikut:

\[ \begin{align} X + Y &=\ 20\\ X + 10 &=\ 20\\ X &=\ 20 – 10\\ X &=\ 10 \end{align} \]

Berdasarkan pada perhitungan di atas, maka dapat diketahui perusahaan akan memperoleh laba yang optimal ketika perusahaan menjual produk X sebesar 10 unit dan menjual produk Y sebesar 10 unit. Laba optimal yang akan diperoleh perusahaan adalah sebagai berikut:

\[ \begin{align} ∏ &=\ 100X – 4X^2 – XY – 5Y^2 + 120Y\\ &=\ 100 (10) – 4(10)^2 – (10)(10) – 5(10)^2 + 120 (10)\\ &=\ 1000 – 400 – 100 – 500 + 1200\\ &=\ 1200 \end{align} \]

2.2 Optimasi Tanpa Kendala atau Unconstrained optimization

Suatu proses yang digunakna untuk memaksimalkan atau meminimalkan suatu fungsi tujuan yang bergantuung pad variable bilangan riil tanpa adanya batasan pada nilai.

Berikut contoh optimasi tanpa kendala.

Diketahui: TC = 200 + 25Q

Hitung: Biaya rata-rata (average cost) & Biaya marjinal (marginal cost)

Pembahasan:

\[ \begin{align} TC &=\ 200 + 25Q\\ Y’ &=\ MC = 25\\ AC&=\ TC/Q\\ AC&=\ (200+25Q)/Q= (200/Q)+25 \end{align} \]

Berdasarkan pada perhitungan di atas, maka jumlah MC adalah sebesar 25 dan jumlah AC adalah (200/Q)+25. Jika dijelaskan dalam tabel, yaitu sebagai berikut:

3 Cari Metode atau algoritma yang sering digunakan pada Optimasi, berdasarkan:

3.1 Optimasi Satu Dimensi

Interval Halving SearchMethod

Fibonacci SearchMethod

Golden Section Search Method

Quadratic interpolation search method

Bisection Method

Brent Optimizer

Brent Optimizer with Derivatives

3.2 Optimasi Multidimensi

The Downhill Simplex Method of Nelder and Mead

Conjugate Gradient Optimizers

Quasi-Newton Methods

Hooke and Jeeve’s method

Spendley, Hext and Himsworth’s method

Nelder and Mead’s method

3.3 Model Optimasi Sederhana

Unconstrained Optimization Problem

Linear Programming

Quadratic Programming

Non-linear Programming

3.4 Pemrograman Linier

Simplex Method

Interior Point Method

Graphical Method

Open Solver

3.5 Pemrograman Kuadrat

Factoring

Use the square roots

Completing the square

The Quadratic Formula

3.6 Pemrograman Nonlinier

Augmented Lagrangian methods

Reduced Gradient Mothods

Sequential Quadratic Programming

Feasible Sequential Quadratic Programming

Penalty andBarrier Methods

Sequential Linear Programming

Generalized Reduced Gradient Methods

4 Berikan penjelasan melalui contoh sederhana mengenai penerapan Optimasi Sains Data dalam kehidupan sehari-hari!

Optimasi sains data adalah suatu cara yang diterapkan guna untuk memaksimalkan suatu yang menguntungkan dan meminimumkan yang merugikan pada kehidupan sehari-hari. Sebagai gambaran, memaksimalkan seperti pendapatan dan meminimumkan seperti pengeluaran kebutuhan. Dengan adanya optimasi sains data pada kehidupan sehari ini dapatmencari berbagai solusi yang ada pada setiap kendala yang dijumpai dengan nilai optimal yang seimbang.

Contoh yang dapat diterapkan dalam kehidupan sehari seperti saat berbelanja online dengan menggunakan aplikasi e-commerce. Maka dihadapkan pilihan jasa pengiriman pada saat check out produk. Jasa pengiriman memiliki jangka waktu pengiriman, biaya, dan tingkat kepercayaan jasa kirim. Dengan adanya optimasi ini, jasa pengiriman yang digunakna akan lebih cepat, hemat, dan terpercaya.

LS0tDQp0aXRsZTogIk9QVElNQVNJIg0Kc3VidGl0bGU6ICJXRUVLIDIiDQphdXRob3I6ICJCcmlnaXRhIFRpYXJhIEVsZ2l0eWFuYSBNZWxhbnRpa2EgKDIwMjA0OTIwMDAxKSINCmRhdGU6ICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIGh0bWxfZG9jdW1lbnQ6IG51bGwNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDoNCiAgICAgIGNvbGxhcHNlZDogeWVzDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICB0aGVtZTogc2FuZHN0b25lDQogICAgY3NzOiBzdHlsZTEuY3NzDQogICAgaGlnaGxpZ2h0OiBtb25vY2hyb21lDQotLS0NCg0KYGBge3IgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChjbGFzcy5zb3VyY2UgPSAibm9jb3B5IiwNCiAgICAgICAgICAgICAgICAgICAgICBjbGFzcy5vdXRwdXQgPSAibm9jb3B5IiwNCiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gRiwNCiAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5nID0gRikNCmBgYA0KDQo8aW1nIHN0eWxlPSJmbG9hdDogcmlnaHQ7IG1hcmdpbjogMHB4IDEwMHB4IDBweCAwcHg7IHdpZHRoOjI1JSIgc3JjPSJmb3RvYmFydWt1LmpwZWciLz4gDQoNCmBgYHtyIGxvZ28sIGVjaG89RkFMU0UsZmlnLmFsaWduPSdjZW50ZXInLCBvdXQud2lkdGggPSAnMzAlJ30NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJsb2dvbWF0YW5hLnBuZyIpDQpgYGANCg0KRW1haWwgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7OiAgYnJpZ2l0YS5tZWxhbnRpa2FAc3R1ZGVudC5tYXRhbmF1bml2ZXJzaXR5LmFjLmlkIDxicj4NClJQdWJzICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IGh0dHBzOi8vcnB1YnMuY29tL2JyaWdpdGF0aWFyYWVtLyA8YnI+DQpKdXJ1c2FuICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDs6IFtTdGF0aXN0aWthXShodHRwczovL21hdGFuYXVuaXZlcnNpdHkuYWMuaWQvP2x5PWFjYWRlbWljJmM9c2IpIDxicj4NCkFkZHJlc3MgICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IEFSQSBDZW50ZXIsIE1hdGFuYSBVbml2ZXJzaXR5IFRvd2VyIDxicj4NCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7IEpsLiBDQkQgQmFyYXQgS2F2LCBSVC4xLCBDdXJ1ZyBTYW5nZXJlbmcsIEtlbGFwYSBEdWEsIFRhbmdlcmFuZywgQmFudGVuIDE1ODEwLg0KDQoqKioqDQoNCiMgQ2FyaWxhaCBkZWZpbmlzaSBPcHRpbWFzaSwgT3B0aW1pc2FzaSwgYXRhdSBPcHRpbWFsaXNhc2k/IE1hbmEgeWFuZyBiZW5hcj8NCg0KYS4JT3B0aW1hc2kgbWVydXBha2FuIHN1YXR1IGNhcmEgeWFuZyBtZW1pbGlraSB0dWp1YW4gZGVuZ2FuIG1lbWFrc2ltYWxrYW4gc2VnYWxhIHNlc3VhdHUgaGFsIHlhbmcgZGlpbmdpbmthbiBhdGF1IGluZ2luIGRpY2FwYWkuDQoNCmIuCU9wdGltaXNhc2kgbWVydXBha2FuIHN1YXR1IGNhcmEgeWFuZyBkaWd1bmFrYW4gZGFsYW0gbWVtZWNhaGthbiBzdWF0dSBtYXNhbGFoIGRlbmdhbiBtZW5lbXVrYW4gc29sdXNpIGRlbmdhbiBtZW1pbmltYWxrYW4gYXRhdSBtZW1ha3NpbWFsa2FuIGZ1bmdzaSB0dWp1YW4geWFuZyBkaXBha2FpIGRhbGFtIHN1YXR1IGtlbmRhbGEgKGppa2EgYWRhKS4NCg0KYy4JT3B0aW1hbGlzYXNpIG1lcnVwYWthbiBzdWF0dSBjYXJhIHlhbmcgZGl0dWp1a2FuIHVudHVrIG1lbmRhcGF0a2FuIG5pbGFpIHRlcmJhaWsgYXRhdSBuaWxhaSBtYWtzaW1hbCBkYXJpIGZ1bmdzaSB5YW5nIGFkYSBkYWxhbSBzdWF0dSBydW11c2FuIG1hc2FsYWguDQoNCkRhcmkga2V0aWdhIHBlbmdlcnRpYW4gZGFsYW0gb3B0aW1hc2ksIG9wdGltaXNhc2ksIGF0YXUgb3B0aW1hbGlzYXNpIGluaSBtZW1pbGlraSBwZW5nZXJ0aWFuIGRlbmdhbiBtYWtuYSB5YW5nIHNhbWEuIEJhZ2kgc2F5YSwgc2VtdWEgYmVuYXIgZGFuIHRpZGFrIGFkYSB5YW5nIHNhbGFoLiBIYW55YSBzYWphIHBlbmdndW5hYW4ga2F0YSBvcHRpbWFzaSBsZWJpaCBzZXJpbmcgZGlndW5ha2FuIGRhcmlwYWRhIG9wdGltYWxpc2FzaSBkYW4gb3B0aW1pc2FzaS4NCg0KIyBKZWxhc2thbiBhcGEgeWFuZyBkaW1ha3N1ZCBkZW5nYW4gb3B0aW1hc2kgdGVyYmF0YXMgZGFuIG9wdGltYXNpIHRhbnBhIGtlbmRhbGEsIGJlcmlrYW4gY29udG9obnlhIQ0KDQojIyBPcHRpbWFzaSBUZXJiYXRhcyBhdGF1IENvbnN0cmFpbmVkIE9wdGltaXphdGlvbiANCg0KU3VhdHUgY2FyYSB5YW5nIGRpZ3VuYWthbiB1bnR1ayBtZW1ha3NpbXVta2FuIGF0YXUgbWVtaW5pbXVta2FuIHN1YXR1IGZ1bmdzaSB0dWp1YW4geWFuZyBhZGEgZGVuZ2FuIGJlcmJhZ2FpIGtlbmRhbGEgZGFsYW0gc3VhdHUgcnVtdXNhbiBtYXNhbGFoLiBQYWRhIHBlcnVzYWhhYW4sIGFkYW55YSBrZW5kYWxhIGluaSBkYXBhdCBtZW5qYWRpIHBlbmdoYW1iYXQgdGVyY2FwYWlueWEgc3VhdHUgb3B0aW1pc2FzaSB0YW5wYSBrZW5kYWxhIGF0YXUgbWVuZ3VyYW5naSBrZWJlYmFzYW4gYmVycGVyaWxha3UuICANCg0KQmVyaWt1dCBjb250b2ggZGFyaSBvcHRpbWFzaSB0ZXJiYXRhcy4NCg0KRGlrZXRhaHVpLg0KDQokJA0KXGJlZ2lue2FsaWdufQ0K4oiPID1mKFgsWSkgJj1cIDEwMFjigJM0WDLigJNYWeKAkzVZMisxMjBZXFwNClgrWSY9XCAyMA0KXGVuZHthbGlnbn0NCiQkDQogDQpNYWthLCBoaXR1bmdsYW5nIGxhYmEgeWFuZyBvcHRpbWFsLg0KDQpGdW5nc2kga2VuZGFsYToNCg0KJCQNClxiZWdpbnthbGlnbn0NClgrWSY9XCAyMFxcDQpYJj0yMC1ZDQpcZW5ke2FsaWdufQ0KJCQNCg0KUGVyc2FtYWFuIG9wdGltaXNhc2kgZGVuZ2FuIGtlbmRhbGENCg0KJCQNClxiZWdpbnthbGlnbn0NCuKIjyAmPVwgMTAwWCDigJMgNFgyIOKAkyBYWSDigJMgNVkyICsgMTIwWVxcDQomPVwgMTAwKDIwIOKAkyBZKSDigJMgNCgyMCDigJMgWSkyIOKAkyAoMjAg4oCTIFkpWSDigJMgNVkyICsgMTIwWVxcDQomPVwgMjAwMCDigJMgMTAwWSDigJMgNCg0MDAg4oCTIDQwWSArIFkyICkg4oCTIDIwWSArIFkyIOKAkyA1WTIgKyAxMjBZXFwgDQomPVwgMjAwMCDigJMgMTAwWSDigJMgMTYwMCArIDE2MFkg4oCTIDQgWTIg4oCTIDIwWSArIFkyIOKAkyA1WTIgKyAxMjBZXFwgDQomPVwg4oCTIDQgWTIgKyBZMiDigJMgNVkyIOKAkyAxMDBZICsgMTYwWSDigJMgMjBZICsgMTIwWSArIDIwMDAg4oCTIDE2MDBcXCANCiY9XCDigJMgOCBZMiArIDE2MCBZICsgNDAwDQpcZW5ke2FsaWdufQ0KJCQNCg0KVW50dWsgbWVtYWtzaW11bWthbiBvcHRpbWlzYXNpIHRhbnBhIGtlbmRhbGEgZGkgYXRhcywga2l0YSBoYXJ1cw0KbWVudXJ1bmthbiBwZXJzYW1hYW4gdGVyc2VidXQsIHlhaXR1OiANCg0KJCQNClxiZWdpbnthbGlnbn0NCuKIgs+AL+KIglkgJj1cIC0xNlkrMTYwPTBcXA0KLTE2WSAmPVwgLTE2MFxcIA0KWSY9XCAxMA0KXGVuZHthbGlnbn0NCiQkDQoNCkxhbmdrYWggc2VsYW5qdXRueWEgYWRhbGFoIG1lbnN1YnNpdHVzaWthbiBuaWxhaSBZPTEwIGtlZGFsYW0gcGVyc2FtYWFuIGtlbmRhbGEsIG1ha2EgcGVyaGl0dW5nYW4gYWRhbGFoIHNlYmFnYWkgYmVyaWt1dDoNCg0KJCQNClxiZWdpbnthbGlnbn0NClggKyBZICY9XCAyMFxcDQpYICsgMTAgJj1cIDIwXFwNClggJj1cIDIwIOKAkyAxMFxcDQpYICY9XCAxMA0KXGVuZHthbGlnbn0NCiQkDQoNCkJlcmRhc2Fya2FuIHBhZGEgcGVyaGl0dW5nYW4gZGkgYXRhcywgbWFrYSBkYXBhdCBkaWtldGFodWkgcGVydXNhaGFhbiBha2FuIG1lbXBlcm9sZWggbGFiYSB5YW5nIG9wdGltYWwga2V0aWthIHBlcnVzYWhhYW4gbWVuanVhbCBwcm9kdWsgWCBzZWJlc2FyIDEwIHVuaXQgZGFuIG1lbmp1YWwgcHJvZHVrIFkgc2ViZXNhciAxMCB1bml0LiBMYWJhIG9wdGltYWwgeWFuZyBha2FuIGRpcGVyb2xlaCBwZXJ1c2FoYWFuIGFkYWxhaCBzZWJhZ2FpIGJlcmlrdXQ6IA0KDQokJA0KXGJlZ2lue2FsaWdufQ0K4oiPICY9XCAxMDBYIOKAkyA0WF4yIOKAkyBYWSDigJMgNVleMiArIDEyMFlcXA0KJj1cIDEwMCAoMTApIOKAkyA0KDEwKV4yIOKAkyAoMTApKDEwKSDigJMgNSgxMCleMiArIDEyMCAoMTApXFwgDQomPVwgMTAwMCDigJMgNDAwIOKAkyAxMDAg4oCTIDUwMCArIDEyMDBcXCANCiY9XCAxMjAwDQpcZW5ke2FsaWdufQ0KJCQNCg0KIyMgT3B0aW1hc2kgVGFucGEgS2VuZGFsYSBhdGF1IFVuY29uc3RyYWluZWQgb3B0aW1pemF0aW9uIA0KDQpTdWF0dSBwcm9zZXMgeWFuZyBkaWd1bmFrbmEgdW50dWsgbWVtYWtzaW1hbGthbiBhdGF1IG1lbWluaW1hbGthbiBzdWF0dSBmdW5nc2kgdHVqdWFuIHlhbmcgYmVyZ2FudHV1bmcgcGFkIHZhcmlhYmxlIGJpbGFuZ2FuIHJpaWwgdGFucGEgYWRhbnlhIGJhdGFzYW4gcGFkYSBuaWxhaS4gDQoNCkJlcmlrdXQgY29udG9oIG9wdGltYXNpIHRhbnBhIGtlbmRhbGEuDQoNCkRpa2V0YWh1aTogVEMgPSAyMDAgKyAyNVENCg0KSGl0dW5nOiBCaWF5YSByYXRhLXJhdGEgKGF2ZXJhZ2UgY29zdCkgJiBCaWF5YSBtYXJqaW5hbCAobWFyZ2luYWwgY29zdCkNCg0KUGVtYmFoYXNhbjogDQoNCiQkDQpcYmVnaW57YWxpZ259DQpUQyAmPVwgMjAwICsgMjVRXFwNCiBZ4oCZICY9XCBNQyA9IDI1XFwNCiBBQyY9XCBUQy9RXFwNCiBBQyY9XCAoMjAwKzI1USkvUT0gKDIwMC9RKSsyNQ0KIFxlbmR7YWxpZ259DQokJA0KDQpCZXJkYXNhcmthbiBwYWRhIHBlcmhpdHVuZ2FuIGRpIGF0YXMsIG1ha2EganVtbGFoIE1DIGFkYWxhaCBzZWJlc2FyIDI1IGRhbiBqdW1sYWggQUMgYWRhbGFoICgyMDAvUSkrMjUuIEppa2EgZGlqZWxhc2thbiBkYWxhbSB0YWJlbCwgeWFpdHUgc2ViYWdhaSBiZXJpa3V0Og0KDQo8aW1nIHN0eWxlPSJmbG9hdDogY2VudGVyOyBtYXJnaW46IDBweCAxMDBweCAwcHggMHB4OyB3aWR0aDoyNSUiIHNyYz0idGFucGFrZW5kYWxhLnBuZyIvPiANCg0KIyBDYXJpIE1ldG9kZSBhdGF1IGFsZ29yaXRtYSB5YW5nIHNlcmluZyBkaWd1bmFrYW4gcGFkYSBPcHRpbWFzaSwgYmVyZGFzYXJrYW46DQoNCiMjIE9wdGltYXNpIFNhdHUgRGltZW5zaQ0KSW50ZXJ2YWwgSGFsdmluZyBTZWFyY2hNZXRob2QNCg0KRmlib25hY2NpIFNlYXJjaE1ldGhvZA0KDQpHb2xkZW4gU2VjdGlvbiBTZWFyY2ggTWV0aG9kDQoNClF1YWRyYXRpYyBpbnRlcnBvbGF0aW9uIHNlYXJjaCBtZXRob2QNCg0KQmlzZWN0aW9uIE1ldGhvZA0KDQpCcmVudCBPcHRpbWl6ZXINCg0KQnJlbnQgT3B0aW1pemVyIHdpdGggRGVyaXZhdGl2ZXMNCg0KIyMgT3B0aW1hc2kgTXVsdGlkaW1lbnNpDQoNClRoZSBEb3duaGlsbCBTaW1wbGV4IE1ldGhvZCBvZiBOZWxkZXIgYW5kIE1lYWQNCiAgICAgDQpDb25qdWdhdGUgR3JhZGllbnQgT3B0aW1pemVycw0KICAgICANClF1YXNpLU5ld3RvbiBNZXRob2RzDQogICAgIA0KSG9va2UgYW5kIEplZXZl4oCZcyBtZXRob2QNCiAgICAgDQpTcGVuZGxleSwgSGV4dCBhbmQgSGltc3dvcnRo4oCZcyBtZXRob2QNCiAgICAgDQpOZWxkZXIgYW5kIE1lYWTigJlzIG1ldGhvZA0KICAgICANCiMjIE1vZGVsIE9wdGltYXNpIFNlZGVyaGFuYQ0KDQpVbmNvbnN0cmFpbmVkIE9wdGltaXphdGlvbiBQcm9ibGVtDQoNCkxpbmVhciBQcm9ncmFtbWluZw0KDQpRdWFkcmF0aWMgUHJvZ3JhbW1pbmcNCg0KTm9uLWxpbmVhciBQcm9ncmFtbWluZw0KDQojIyBQZW1yb2dyYW1hbiBMaW5pZXINCg0KU2ltcGxleCBNZXRob2QNCg0KSW50ZXJpb3IgUG9pbnQgTWV0aG9kDQoNCkdyYXBoaWNhbCBNZXRob2QNCg0KT3BlbiBTb2x2ZXINCg0KIyMgUGVtcm9ncmFtYW4gS3VhZHJhdA0KDQpGYWN0b3JpbmcNCg0KVXNlIHRoZSBzcXVhcmUgcm9vdHMNCg0KQ29tcGxldGluZyB0aGUgc3F1YXJlDQoNClRoZSBRdWFkcmF0aWMgRm9ybXVsYQ0KDQojIyBQZW1yb2dyYW1hbiBOb25saW5pZXINCg0KQXVnbWVudGVkIExhZ3JhbmdpYW4gbWV0aG9kcw0KDQpSZWR1Y2VkIEdyYWRpZW50IE1vdGhvZHMNCg0KU2VxdWVudGlhbCBRdWFkcmF0aWMgUHJvZ3JhbW1pbmcNCg0KRmVhc2libGUgU2VxdWVudGlhbCBRdWFkcmF0aWMgUHJvZ3JhbW1pbmcNCg0KUGVuYWx0eSBhbmRCYXJyaWVyIE1ldGhvZHMNCg0KU2VxdWVudGlhbCBMaW5lYXIgUHJvZ3JhbW1pbmcNCg0KR2VuZXJhbGl6ZWQgUmVkdWNlZCBHcmFkaWVudCBNZXRob2RzDQoNCiMgQmVyaWthbiBwZW5qZWxhc2FuIG1lbGFsdWkgY29udG9oIHNlZGVyaGFuYSBtZW5nZW5haSBwZW5lcmFwYW4gT3B0aW1hc2kgU2FpbnMgRGF0YSBkYWxhbSBrZWhpZHVwYW4gc2VoYXJpLWhhcmkhDQoNCk9wdGltYXNpIHNhaW5zIGRhdGEgYWRhbGFoIHN1YXR1IGNhcmEgeWFuZyBkaXRlcmFwa2FuIGd1bmEgdW50dWsgbWVtYWtzaW1hbGthbiBzdWF0dSB5YW5nIG1lbmd1bnR1bmdrYW4gZGFuIG1lbWluaW11bWthbiB5YW5nIG1lcnVnaWthbiBwYWRhIGtlaGlkdXBhbiBzZWhhcmktaGFyaS4gU2ViYWdhaSBnYW1iYXJhbiwgbWVtYWtzaW1hbGthbiBzZXBlcnRpIHBlbmRhcGF0YW4gZGFuIG1lbWluaW11bWthbiBzZXBlcnRpIHBlbmdlbHVhcmFuIGtlYnV0dWhhbi4gRGVuZ2FuIGFkYW55YSBvcHRpbWFzaSBzYWlucyBkYXRhIHBhZGEga2VoaWR1cGFuIHNlaGFyaSBpbmkgZGFwYXRtZW5jYXJpIGJlcmJhZ2FpIHNvbHVzaSB5YW5nIGFkYSBwYWRhIHNldGlhcCBrZW5kYWxhIHlhbmcgZGlqdW1wYWkgZGVuZ2FuIG5pbGFpIG9wdGltYWwgeWFuZyBzZWltYmFuZy4NCg0KQ29udG9oIHlhbmcgZGFwYXQgZGl0ZXJhcGthbiBkYWxhbSBrZWhpZHVwYW4gc2VoYXJpIHNlcGVydGkgc2FhdCBiZXJiZWxhbmphIG9ubGluZSBkZW5nYW4gbWVuZ2d1bmFrYW4gYXBsaWthc2kgZS1jb21tZXJjZS4gTWFrYSBkaWhhZGFwa2FuIHBpbGloYW4gamFzYSBwZW5naXJpbWFuIHBhZGEgc2FhdCBjaGVjayBvdXQgcHJvZHVrLiBKYXNhIHBlbmdpcmltYW4gbWVtaWxpa2kgamFuZ2thIHdha3R1IHBlbmdpcmltYW4sIGJpYXlhLCBkYW4gdGluZ2thdCBrZXBlcmNheWFhbiBqYXNhIGtpcmltLiBEZW5nYW4gYWRhbnlhIG9wdGltYXNpIGluaSwgamFzYSBwZW5naXJpbWFuIHlhbmcgZGlndW5ha25hIGFrYW4gbGViaWggY2VwYXQsIGhlbWF0LCBkYW4gdGVycGVyY2F5YS4NCg0K