

Email : brigita.melantika@student.matanauniversity.ac.id
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.
Carilah definisi Optimasi, Optimisasi, atau Optimalisasi? Mana yang benar?
Optimasi merupakan suatu cara yang memiliki tujuan dengan memaksimalkan segala sesuatu hal yang diinginkan atau ingin dicapai.
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).
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.
Jelaskan apa yang dimaksud dengan optimasi terbatas dan optimasi tanpa kendala, berikan contohnya!
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}
\]
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:

Cari Metode atau algoritma yang sering digunakan pada Optimasi, berdasarkan:
Optimasi Satu Dimensi
Interval Halving SearchMethod
Fibonacci SearchMethod
Golden Section Search Method
Quadratic interpolation search method
Bisection Method
Brent Optimizer
Brent Optimizer with Derivatives
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
Model Optimasi Sederhana
Unconstrained Optimization Problem
Linear Programming
Quadratic Programming
Non-linear Programming
Pemrograman Linier
Simplex Method
Interior Point Method
Graphical Method
Open Solver
Pemrograman Kuadrat
Factoring
Use the square roots
Completing the square
The Quadratic Formula
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
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