{"id":1385,"date":"2024-07-08T08:27:36","date_gmt":"2024-07-08T08:27:36","guid":{"rendered":"https:\/\/www.elitek.si\/?p=1385"},"modified":"2024-12-31T11:08:08","modified_gmt":"2024-12-31T11:08:08","slug":"kako-smo-stranki-optimizirali-hitrost-magento-spletne-trgovine","status":"publish","type":"post","link":"https:\/\/dev-webpage.elitek.si\/sl\/kako-smo-stranki-optimizirali-hitrost-magento-spletne-trgovine\/","title":{"rendered":"Kako smo stranki optimizirali hitrost Magento spletne trgovine"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"510\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/speed-1024x510.png\" alt=\"\" class=\"wp-image-1940\" style=\"width:100%;height:auto;margin-bottom: 30px;\" srcset=\"https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/speed-1024x510.png 1024w, https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/speed-300x150.png 300w, https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/speed-768x383.png 768w, https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/speed.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Stranka je pristopila do nas s hudimi te\u017eavami s hitrostjo svoje Magento spletne trgovine.<\/p>\n\n\n\n<p>Spletno trgovino je postavil drugi izvajalec, ki ni poskrbel za kakovostno izdelavo, oziroma nima dovollj znanja z optimizacijo hitrosti delovanja aplikacije.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Potek dela:<\/h2>\n\n\n\n<p>Pridobili smo vse dostope bodisi do programske kode in podatkovne baze spletne trgovine. Trgovino smo postavili lokalno na lastna okolja, kjer smo lahko naredili analizo trenutnega stanja aplikacije.<\/p>\n\n\n\n<p>Prvo kar smo ugotovili, da ima stranka \u017ee kar zastarelo verzijo Magento platforme. V\u010dasih je preskok za veliko verzij kar zahteven postopek, sploh ker se velikokrat zahteva tudi nadgradnjo PHP verzije, ki vpliva tudi na preostale 3th party name\u0161\u010dene plugine. Z nekaj truda nam je na koncu uspelo izvesti tudi nadgradnjo Magento trgovine, nekaj name\u0161\u010denih pluginov in PHP verzije.<\/p>\n\n\n\n<p>S tem smo tudi poskrbeli za bistveno izbolj\u0161anje varnosti spletne trgovine.<\/p>\n\n\n\n<p>Po kon\u010dani nadgradni smo se lotili optimizacije hitrosti. Za re\u0161evanje performan\u010dnih te\u017eav spletnih aplikacij in Magento platforme uporabljamo BlackFire.io orodje. To orodje omogo\u010da natan\u010dno profiliranje posameznega procesa (requesta), ki se izvede na spletno trgovino, bodisi \u010das izvajanja PHP kode in izvajanje poizvedb (querijev) na bazo.<\/p>\n\n\n\n<p>S tem orodjem smo preverili vse glavne strani spletne trgovine in sicer naslovnico, stran kategorije, stran izdelka, ko\u0161arico in checkout.<\/p>\n\n\n\n<p>Na koncu smo izvedli \u0161e pregled kriti\u010dnih poizvedb \/ querijev, ki se izvajajo na bazi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Naslovnica<\/h2>\n\n\n\n<p>Pri analizi naslovnice smo ugotovili, da je najve\u010dje ozko grlo datoteka \u201cmobilemenu.phtml\u201d, ki sestavi mobilno navigacijo iz Magento kategorij in ro\u010dno definiranih povezav. Za pridobivanje kategorij iz Magenta se na podatkovno bazo izvedejo 3 identi\u010dne poizvedbe, ki uporabijo left join na tabelo core_url_rewrite. Ta konkreten left join ne uporablja definiranih indexov, ampak naredi range scan celotne tabele, kar ni optimalno in zelo upo\u010dasni poizvedbo \/ query.<\/p>\n\n\n\n<p>Prav tako se logika iz datoteke mobilemenu.phtml izvede vsaki\u010d ko se nalo\u017ei stran, torej na vsak request se nalo\u017ei blok ki upodobi template mobilemenu.phtml.<\/p>\n\n\n\n<p>Torej ta blok ne uporablja predpomnilnika (\u201cblock cache\u201d) \u010deprav bi ga lahko. Namre\u010d v prikazu navigacije &nbsp;(ime kategorije in URL), se kategorije ne tako pogosto spreminjajo, zato je hranjenje v predpomnilnik \u201cblock cache\u201d kar za\u017eeljeno. S tem, ko dolo\u010den blok (.phtml) spravimo v \u201cblock cache\u201d, se le ta izvede enkrat, nato se hrani v pomnilniku (redis) do nadaljnega. S tem so vsi nadaljni requesti bistveno hitrej\u0161i.<\/p>\n\n\n\n<p>Z na\u0161o optimizacijo poizvedbe in uporabo predpomnilnika smo \u010das nalaganja naslovnice skraj\u0161ali za kar 98%.<\/p>\n\n\n\n<p>TTFB (Time to first byte) naslovnice pred optimizacijo: 16 sek<br>TTFB po optimizaciji: 0.22 sek<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"667\" height=\"64\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-5.png\" alt=\"\" class=\"wp-image-1409\" srcset=\"https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-5.png 667w, https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-5-300x29.png 300w\" sizes=\"auto, (max-width: 667px) 100vw, 667px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"671\" height=\"64\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-6.png\" alt=\"\" class=\"wp-image-1412\" srcset=\"https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-6.png 671w, https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-6-300x29.png 300w\" sizes=\"auto, (max-width: 671px) 100vw, 671px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-cover\" style=\"min-height:150px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-100 has-background-dim has-background-gradient\" style=\"background:linear-gradient(135deg,rgb(154,206,241) 0%,rgb(60,111,143) 100%)\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained\">\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<p class=\"has-text-align-left\">Imate tudi vi te\u017eave s hitrostjo va\u0161e trgovine? <br><strong>Tudi vam lahko pomagamo optimizirati va\u0161o Magento spletno trgovino<\/strong>!<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-5590e8cb wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-font-size is-style-outline has-medium-font-size is-style-outline--1\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.elitek.si\/sl\/kontaktirajte-nas\/\" style=\"border-radius:26px\">Kontaktirajte nas<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Stran kategorije<\/h2>\n\n\n\n<p>Pri analizi izvajanja strani kategorije smo ugotovili, da je ravno tako problemati\u010dna datoteka \u201c<a>mobilemenu<\/a>.phtml\u201d, ki se o\u010ditno izvaja na vseh straneh.<\/p>\n\n\n\n<p>\u017de z predhodnjo optimizacijo te datoteke, smo na strani kategorije bistveno pohitrili delovanje.<\/p>\n\n\n\n<p>Iz 15.8 sekund smo smo \u010das izvajanja kategorije pohitrili na 0.86 sekund.<\/p>\n\n\n\n<p><img decoding=\"async\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAApcAAABACAYAAABPyFwvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAADUuSURBVHhe7Z0HlF1V1cf3a1MzM5mUKZn0PgkEBSFBioFQBAFBEBVRjL2XZW+fbalruWxYsSsoSBRFQQhdBAIBQksI6T2TyfTeXvvO78w7cPPyZua9yZvJBPY\/62buu\/fcc0\/d+3\/22edcX9xAFAqFQqFQKBSKLMCf+KtQKBQKhUKhUBwxlFwqFAqFQqFQKLIGOy1+0kknJX4qFAqFQqFQKBTDh1ouFQqFQqFQKBRZg5JLhUKhUCgUCkXWoORSoVAoFAqFQpE1KLlUKBQKhUKhUGQNSi4VCoVCoVAoFFmDkkuFQqFQKBQKRdag5FKhUCgUCoVCkTUouVQoFAqFQqFQZA2jsol6bm6ujB8\/XpYtWyYLFy6U0tJSCQQCMnPmTMnPz5dIJCIdHR2yb98+G37Hjh2yadMm2bx5sxw8eNBeUygUCoVCoVCMfYwouYRIVldXWxI5YcIEmTJliv2bl5cnfr9fSkpKJBgMSiwWk76+Pmlvb7fPtba2SmNjozQ1NUlNTY1s3LhRtm3bJvv377f3FQqFQqFQKBRjE1knl1gisVJCJJcuXSrEPWfOHCkqKkqEyAyQzHXr1smzzz5rrZl79uyRtrY2a+1UKBQKhUKhUIwtZJ1cYqWEVF599dVSXl5up7+zga6uLmu5vO666yzZdFZOhUKhUCgUCsXYQVbJ5VVXXSXnnHOOHH\/88XbaO9swSbXH6tWr5Y477pBHH300cUehUCgUCoVCMRZwxAwQyyQLdK655ho577zzZNasWekRy1hMoi3NEo9GExeGhs\/ns3FDht\/4xjfKJZdcYqfhua5QKBQKhUKRCqzvwGWPIxQKJa4qRgpHbLmsqKiQE044Qd75znfaKXEW66SDeG+vdDz4gASo6KqpEiyvEJ+p\/HTR0NAgL7zwgtxyyy2ydu1auyBIoVAoXm4o9eXKFF+hjDd\/weZYi7TF+6RP0h+YKxSvVGCQKi4utqQSQxhoaWmxB4uHWVCsyD6OyHKZk5MjCxYskEsvvdSuDE+XWIJYb4+033GbtN6ySrqeWCvR1hbmvRN3h8akSZPk1a9+tVxxxRW2wTAqUSgUipcLfOZf0Ijouf4SuSA0U96ds8ge1f5SQzRz7D2\/CZMMruRIwPzTGR3FKxsQS2Y3p02bJscdd5wsWrTIHpzPmDHD3hsJFz6FSODrBr\/+9a8TPzMD09IQy1NOOSVxJX1guex84D7pe2Gj9G7cIOHduyT\/NaeIP5TD\/Hci1OCA3E6fPl0KCwulublZ98RUKBQvC4QMbcRSWR0olcuDc2SWv1gKDJ3k+kxzHvIFLIsMS0y65aWdMyCbBb6QrAhNNVfj0hzvTdxRKF5ZwOCEEer000+XqqoqSyQd2Hube\/AHtjxk5lMtmNnFsMnliSeeaP0eWbwDycsE8UhEos1N0vKn30usp0dMzUq0rdUSzNzqxeIzFe\/LYDRRVlZmV49DMDkUCoXiWAOWRojj6YEpcl5wuj1eFZgsZf4Ca4nEkglyDLGs8BXK4sAEOSlQJhXmPuNxiGa+LyhXhubJskCFTPLlGTrqk73xDvucYvjAR4+p1blz51oSEo1G7TEUWA\/ANnxYyTCC8Ew4HE7cVYwUmM1k\/cfixYtl3Lhx1jrJjjN8oAWXOsglhyOg\/GV7w+7u7kQMiiPFsMnlO97xDnnVq14lEydOTFxJH9HGBund+Lx03Ht3\/1Q4IwYIpiGcObNmS6CoWPymI6YLRiSsIu\/s7LR+mAqFQnGsgOltiOAiQxZfG6yUxf4J1lJZbkgjZLEjHpGmeI\/Ux7sTlkisk0Ep8eXKBHOMk5CUmueLfCEbPs8cEE\/u55rzPkM6D8a7+l+myBgQS\/QcBJH9m3H\/Qt\/09vYOSTBZ8Dp79mxrOYNcAjWAjBwo78rKSpk6dar9y0dbqCP2y+YLgGxniJ+lI\/jUZUFBga1jDkdCqV\/FkSFjcgnDp5N87nOfG5avI6vDwzu2S+f\/\/it927YkrhoYghk3owZ\/fqGETAcOlpUnbqQHRoeMPJ544gld3KNQKI4JMI09yZ9vieXpwSlyaqBCxvlyJGIIYYv0Sp0hhbvi7bIj3ia7Ym2yP94pPeZut0TN3aj5F5NSf57M8BdJmYkHq+bOeKss8U+y5BLCWeLPladjDSZk3PxTZALICgtBICtYLbGC8WU5LJJYuTgGIyLoxyVLllhy6tYkuM8cK7IH6gNySF3NmzfPknkszXACFu7s2rVLdu\/ebYkl5JGZTu5hmGLmFU5D3fLb3aNelWQOHxmTy8mTJ8tpp50mb3jDGzImliBG5T7+mLT\/+1aJhw8ngZEDNZK7cJHkzp2XuJIeMHEzXUHD2LLFQ1oVCoVijAL\/yDeGZsuKwDSZ7S+21\/bGOuSRWK3cGtkh\/4hslyeiB2VDrNGuEud4MlonD0Vr7F+IZ5mvwJJIrJfT\/ONkcWCiFJrfTJMHfX6Z7isyzzdJlyGlusI8M0BWcP3Cagl5AVi3MGZgXKmvr7fGjIFICOSUXVQgLVjQmF1Tcpl9UL5wkzPOOMNaKyGMEETWYWBwqqurO8ToxD2I5oEDB+xggech\/9Qrfph8BZDw6sIwfGRMLlkd\/oEPfMD6KWSKaFentK66UTruv1eiDfWJq4ciHglLzvQZEigrk0DJ+MTV9ADZxf\/ytttuS1wZ+\/D7A3bUpXt1KhSvHOBByRT2R3KWyGL\/REMOc6Td0MFbDJm8PbJTnjNkkqlwrI2gUEI2DM+4BTxMdzeaME\/F6qU23mVkiMgkn1GSJvbWeJ88FKuRB6L7ZUu8RZ6IHJQeQyzVDpMe0CUQDQwpkEhHLB0gmBAYtuJjmhsSkmqKXMnlyAMr5fz586W6utrWCboU0o+R6fnnn5eenh57jYECK8WZLqe+cGuAQNbW1tow1Lnzz+TrgpwzaIBoKjJHRvtc0kHobP\/3f\/\/3ov9IJmi783bpWH2H9G3dIrHugX2Aii+7QorOv1ByFyxMXEkPNJiOjg65\/PLLbSdmdHK0AXnMzc2XgsJiKRlfLsUlZRIK5pnG7jfCJm6O\/hVqNGJ3YIHt6+sxDb5DurpapK2lxoTrNdcRXqoeFIpjHRN8eXJCYJK8JThPCg1h3B\/rlLWxg\/J49KDUx7oscfSC6fLqwAR7\/se+F14knQ6TDamc7S+RJYGJcnZgqiWSz0Tr5ZlYg2yLtZr4dVFPuoCgQETwlYQYQja8g3\/kszMIQBghi0y5Yh2DsHgBKV2+fLklqBAZLGnD\/bIcRJUt\/ziwpP785z+3cTJlzwJbCFYy\/va3v9l3Ji9UgUihw88880xLkNHt5AuizL7REC506VgFZU+9zJkzxxJBrJWQQcqD+iDPLNyBGGKRxOhEOA4A+SSMKxsGErgucB\/LJfXG9DkryQmzfft2W9fo54HAc3Ap3CeSAXn94x\/\/aONMNQhxYAaW9gJhZhaW+nPgHu3x5JNPttZW0oL19f7777fpTG57RxsZWS6pIKYIaJCZIGYKNLx\/n7SuuknCO7dLrGPw74LnzJ4joRmzJGQafaTuoERNwWHR9BcUJEKkBp2PTnLffffZSqShHQ30E8oCKZ1QachkhSGVFabhTpfyygUypapaJk2eZe5NN9enmGOijC8lTJUJO9WcT7XnhePKTF5KJSe3iBgllDPOCAS+RhSUWFR9ShWKYxW5ErA+kucEp8k087cl3ivPGhJ4X2SftUCmsi+eFZwqy4NV9rnbIjsPC8GUNz6anRK2+2IW+3IkYBRwZzxs42aKfCigsJmRYk9AlDYEA6Bo3Upp7mH5gSyh3FCaqRQuxIVwxMMiGOJFNh8LiyXIG4SNtEPCMFpwkG50DEocwwUkASIKqYGYcT2ZkGXDckm9UAeQx1NPPVVe97rXyYoVK+Qvf\/mLTQf1cvHFF1vLHaSD9EOUONatW2cJFun3AvJMfBdccIEll9QP4TnnXfgpQljGIpyeJ83kmXRTD5S\/I4IQfdomxJI80W5ph9SVdxGPqzcIJnXDX0gc9wjnfDG5R9jBCCbv4YMyWEdJE+lze2tyjxlV6oF4BgJ1whaP1DN86z\/\/+Y+9TjskvvPPP9\/68NK3uE87Jf3U1VgbDGRELqlImDl\/M0Hf7l2WWHY99F+JmwofCnyxJzR1mp0eb7\/zP9K17gn7XLp+mGw3gGCE+R8N5OYVyOSyqXLK0otl1pzTDJlcKAWFU02nKDGEF0dwtjwIS59pFL74AUMWcSDG8ppjGi+WSwhqyDTyIjOiKjdxzZcJE+ebDjGFdaLS2XUQ\/wHzprEtpBUKxeFga6HjAhOtnyX2MKavH4selD3xgeXVSYHJssBfaleW44eZquf373kZtYuB5vvHy0Rfvg3PVkQN8aG3WEGhQlze9ra3yXvf+1658cYbrTKFiLClyyc\/+Un70QqIDQoTZbZnz57DZoggQ1j9LrroIvnIRz4ir3\/961\/cWWTDhg1WGY5lgglZ44CwACxg6BLKAlLCuVsYAunGggYBgQDs3bvXPuOQDXJJvNQB5U89UI78\/tOf\/mTJCvFjufz73\/8uf\/3rXy0hueeee+zB6uhURhbc2yAx5OfPf\/6z\/Pvf\/7YWS\/J85ZVXWl\/ETZs2JUKPLVCWEEX216bcKWOIJIQS\/0pXV7RnLIBuQZWrT0CZYq2EsFEn1KUjmXAH7kEyeZd7H\/cIl0zUHSDk69evt5ZEyp6\/tA\/aOoT3rrvuGpRYgve97312CyWILelxLn4MGuhzn\/nMZ+Rf\/\/qXrF69Wp599lnbDthrfOPGjYe1vaONjLamZxUWTDwTtN+zWpp+\/UvpMH\/TRXBymTkmS7SjXdrvvUs67l5tv+bTfuftiRCDA8sqjWm0EQyG5Izlb5EV531EjjvhrdLVU2KEEA2W0cqhwrSgICTFRX75yw0\/ki2bTIdoa0zcORwIr\/z8PCkrr5KFi5fJ0td+QGbNvURKxs8zgly\/LjAUmEJCKX7\/+9+3I1iAUEUgo0Df85732DDpAEGGEEcAI3TGGn7\/+9\/Lpz71KXnNa15j8\/i\/\/\/3PfprV5fvliquvvtrmnWkt6mgso9pXKif6y+w5C3QejxyULeZvNtAe75O7Invk+ViT3baILY7OD0w3JHZgn24ULfLyO9\/5jm3XbvEKcgcr2DnnnCNf\/vKX5aGHHpJPf\/rT8o1vfEOeeuop+cIXvmA3qMaC4gVKnz2QufeVr3xFPvrRj1rFCgmCbKK4xzIgJo4ws8r4mWeeseTAi5qaGmsV3Llz52HkOtvA6vXd737XkiemVmnnXkCCIB8QSSxYEF93DERm3LQyYXiG6XDIEaSS\/LswyeBdb3\/72y2xvfPOO+Wf\/\/ynrWPawGj1O96FPHNkkTp4\/PHHrbsBRBoyRxuDpC1dutQSUMAg4eGHH7YHFk7CISMJw2DITTUTB\/FxbNu2zT7Lu7ASUhcDgXKDfLqyZ7tGOBPbI\/7gBz9IhEoNSCj6iLTQ3pDbXrhZgMcee+xFYgmRvf766215sJjJ5dML8kR9rVq1yj5388032\/rCIjvS9ZURM6GxpWpwA6F99R3S+eAD0rdtc\/9elmmib9cOQ0rvkqZf\/UIi+\/dJvNuMFnbvMgT1Lom2NNvtjAYDnSaTdB4peFdeXqEsPfUKQzimmkbGN4B95tw01N590tuz+5AjGOw0R58RSm1mlHTANPRa0xj3S7hvr3mq1pDOuBQWhCXobznkuUjffonHGkyDyZfKKTOlatpJMrn8JPN+JZiDgfbgRqFOYTKaveaaa6xAoqMieIaCa\/\/Eg7AhrrEGBP6TTz5plQRCEksG1qKXu1M6ZAhFAVEay7AboPsLpMrX77P+VLTOLtzJ5iZB+GOujzXafTFZjT7PP17yzHtTfSoS0B8YgGDBefDBB63FxQE\/MhQXPmpYYyBZKEuUHP2GaTysP16ghFFc9C0WVWDdxLKCJcxNNSeD8NzDagp5RQGSpnTXA2QTEEfy9vTTT9s003eSLa38xpK1efNmSwYg246IZBsQvxtuuEFuvfVW+45kMussm2eddZZ8+MMfthbOlStXWrLitdZ5ARF94IEHrDXsYx\/7mHz961+XL37xi3aQ9sgjj9h6Ts4z\/YuBB++599575dprr7Vkl3CQM9rRaIC+jjwHEGNkHftYeok05IkBk5PRyHf8YmnHHFiPeQYQxvlsOhAX5U5bIBx5pCwHKk8vIIqQRMqfdgRRpK0MBNo+llEMIBBABjRYLb0gvdQX5U17JH2UA2TXWVyTLdQQbPoU9YXv5o9\/\/GP7l7zQb1OR0WwiI+2IUqWBDQU+7di3fZsllr0vbJSoqaRMEDbCqPuJtdL10IMS6+jo\/6JPW6v0btsiPc9vsPthDgYqdzSVTOG4iTJ1+hJD9KrF5x9nyKXfVL4RAPF22bLpUamr3SS93bXS13NQtm55VGprnpf2tr2GeLZagQ4P9vt6pLurRrZuflTaWnfZ85bmnTY8z\/V0Q0JfkM0vPGJIZr2thwkTp0tZRbUUl8w27x3bSvVoAkKIAOFACGN9X7Zsmb2OAkSQUg+ATseitXPPPddO\/\/H9ejop5c0UCz5KnCOUuc80IvG4jo6z9XnnnWedsnmP14KOwMN6g2Ud3xnSgPLkIG4ElyOvxI9QwGrE9hrEhRDiPnngPmkjrWeffba89rWvte9g9My0DQfnCBKUEQfPkheeI27SSfp5dzassJQvZISyY1qRNJE28ss0HGUEUEKkmyk+\/nKfNAFG4fh1kz7ioWySrZH8ZnBA+RM\/CxxQDq6OxzJK7cbneXarID7PiIWxTbLvQ7051mxJK5+L5J3secl5KqCoUFBY4hiY4FbkQFujbWDV4joWGbchNQeyNrntYGFjQIOlEwXNNCVT6Fh1XBtIBnVKPVKvrq2icGn3xM\/v0QJ5hFRARshrqmllQP\/iPuTZS1ayDcoNKxpEl\/JMBumg\/iALkC76OJY9ZAd\/U+lsypM+hUziPtOwlLO3HyWXOXXnCAuEjrZCHUOgSONAVtJsg3Q7eUAaSTd58Op85B7pcWkiP9x3BJG8OFnhwnnTT1gXrysH3pmOfEG+IdMYZNE\/+I3cHwi0fbc3J1ZVpuWpUy8glFhoKWvaI\/VM\/0B+Mtij7SUPOsgnlkvqC8JKG2Lg4OKgjEYSGflcIvBRAgMJCAtTQdGmRusr2fngfRJrz9xiEuvskFhriyGpyf6ZPonHopK3yCjaov494VKBgv\/vf\/87Sj4IPqmsqpbjT3i96WCs9u6\/Go\/3STRcI6tW\/cakJ2g6rRnVxWNy3723GqLYZBpv3DbeNWvuNyTjdJk0mU9YNsndd\/3TdOBcQzzb5EDNTln72ANGMS+WcF+PIUEbze\/7ZdbMSsnJLTfxIkwKxReYKC1Nm03R655cqUDnhvQw6kY4M2UMgcHXCIsDis8JWywnF154oSUthGM6AqWKsEHRff7zn7dCHKGN8zakiakhOjEj1csuu8zuAYuSRLAgdLESANIA4brqqqssMUL4oFDpU4RzQgWS+qY3vclOLRLe+VlhSeE+VgL82Bgdcx9BBpnD1+pDH\/qQDcO0DwKH6TSsHShLBAqC5i1veYslt5BW0okyhTwcqXUTYYaMYOqUMoWI8w787VBiCEHSAIH\/xCc+YfOEAnQEEkXFlCqkEn89BCflT7qwNqBAqSPyTfopH+oIeUSZUC933323JTMjLTiHi3n+ErthOqu72Qz9hvDmw1aGJ4Nti14dmGxXg4N\/R3YOuTynzcifav8Eu3cmU+JPx+rtVkdsvJ4MypUtW9y2LfQTBkdYSVB41AGkAmsV5YqCpaxpt1hMGJzR3hwgW1j0aHOAOqN9MiBCgWPJ4T1e0Hfok\/Sjb33rW9YaiHxEKUOqeM9o1SnvoQ95fevIP20UskHa6VtuwQtKnfCp0kfeyQN5IcxwfC6BIw6QQGc9ZGqa61iOqSPkA3pv69atVp7Rz9GByLzkvo3cYREQaVq1apW1VjMgQHciU5BZyD0vYaGfIdPon26ggdxAvkA2kWGjAfILCXaE2BmT6PduIEBdcLjpetorB+XCgIkyRC\/QHmn\/tGHqlDonDGGRlRy0Sa4RjvwiiwYDuuHNb36zLUtkOXKedvPcc88d1kboS8g8+hIy8x\/\/+Idta+gK+l6qbRV5hnzxDHWMm5azsHuBPEbGoh\/oj5QPbYH6QteQn5FERsN8V5mDIbxvr3Q8+IC03HSDxIawMGaKeF+vdN53j11BHjPnA4GG4R3FjCRYvBMI5Etvz6GjvGg0Iq0t9YZPxkwjWSxz558rpZNfZ0jLRUbo1spT69aaDrnThq2avkQqpiwzBPMUK2D9piE3NtSZht5rFOkZ9rnJlefI\/IVnG0V8oukIOMX3ly0dvry80vyl46j1ciAgYBAoH\/\/4x20b\/tnPfmaVnOtgCChIEB0Rv5R3vetd8v73v9+SIoggU4P4jSFYES6\/+tWvrABhah2BgVM1zyKkOGdaD8GMgzaCn3i4DpliessJBd6PYqUeEWAoYIQ+pO+rX\/2qXVjxm9\/8xhIyfGcQVAgXhBXChbggc3wxCxAPQsW1fwQcv8k\/z5B\/lD\/+dRDpH\/7whzavEDaePRKQLt7LO1HE3\/72t+Xd7363nY4h31hJGW0TjjRBCJm2h7D\/6Ec\/ejGPKKnPfvaztnwhLfjuQdgBRJtypDyZPmXPXRQkCod4xzqm+IySk5B0xyN2s\/R0cHKwXCr9L239xiciJ\/r6v\/YyGPjkI1\/0AfP9pXaj9VRAwUJ6UpEjprVRupQ7hBNFS91C6iH4KEyIxWBwYZFtv\/3tb60STQZKnTZKPaKcaQMsMvne975n2wB1rDgc1BkLcegvt9xyiyUR+OKxYwqDTWQLMsMLyhniQr3Q79asWWMJKc\/hGwgJgdxgTfOCeoPEEAZZiQy56aabrO8tdUa\/PxpAFjB4gXBDupBjtB+INVPJECraF7yAdsyBvIeI0rYJg5WaPoD8Ig5k1XCnjilHDAi0eQb7uJAg09EPvNcLyCtkHv3yk5\/8JK12TlmvXLnSGiCY5qafuIGcF5B\/rJTUF3oLWc+AhPqCdCKDRxIZSWMqYyi2y9R11yMPJ34NAtPA7apwc\/gHsUKmgiWXg1hZaFijJYysv6M5ktbrSMQ05oMH98lxxy+R4pJyU26msH1h6e7pMAK6yDQyNmvtX5no8xWZKAJGUHTa0WeVKZPm5iZDAnZLeUW\/YMjPi0pfb4vpBHvMaGi6BEP9DQNCEgoF+9Mhozd1NBaBQKTjpYIbsSJMUJgIYS8QLFxjD1emeyCGjCCxTtARnVBwUycIdc45EGY4j9PmIKA8y8if+LBSIIgRIpA7RoxYCRDg1DWWU645INggo1iJUKqMlJnSwJfSWXYA78C6Q154Ph2rAXlkURPCCGFKurHCoGzIK4cXKAvKE98qBJ87+I1yGoiMIidIL2WHxYn0oQCx4GAtcMC\/j1E04RD+kGXShQLjGa7h50cZ008ApBv\/KUgNChEBSpljdXm5YpFvgl2Y43CC\/bTjyCoGB\/oL\/eH222+3CxQge1jD3\/rWt1olSvujjaYC7QPXDxYJUYc33HCDHdh4rWEO+GTiokKfwW8Q6yW+gBCGY2HQAPplcf\/UcTrGDfoXxGigfpQO6J9Y+LHie0FaKLdUAwYvqAtvGCfTBnqO8PRl9tj85je\/Kb\/4xS+sbGTw5\/roaAI5CichvRi\/IMyQQiyb5IP7uHsgZ5AVDm6aGRlMGGQ3solniYN6Acgy7qcDyDgyjnc7INvQAegDZGYyocONimeYFYOsY\/RgoMDsGeXJbwb+lDHthDg++MEPWtKLjsBHk3wOBOQv9QWxZDDObB1xQUyJaySRUa9l5DLY1BmWyvCBGgnv7rfIDQRfTq4EJ5fLuAsvluCUKvFlOOLBpxM\/zIGA8nHm8ZGG7YRJHTE3xy\/BQER27NhsG1O4r00aG7bKvr1PG+G6Q+bMXShTqmZI7YF9pgGxUXyOIaN9poF32w5QYBp2OBK2Zd3b2yM9Xbtlz651cqBmq\/WtnDK1WnJC\/cqGV9uV6AMIg1cSnKBJBeqJ+xAWrCOQPQSwAx2UewgGRpL4I6IY6cSQwmQFQHxOACOI6LCQW57BMZtpXQQGZJBRKe\/kfdQplk+ENEqZtur1o+J9KCeUMIKBNJFuCCZTLM46QHoRXNyDIKY7mKJfMHJHaWORZXqMOMlfsuDjHZQnaUk+iMflPxmkBZLIs5yTD6xbzn\/PAfJM+l1fRdhRTrgbsE0KH0NA0KNAKRNIMGUAkaYMkUeUDxYKSNBgQvZYRsgMHL2LcZJ\/jySoG+ob6w4WGMqd9kI9Qvwpd+ogGdQXyhElSX1BRFHknKdqN8g9iCqzCVhbqFOUPYoVC\/dozUQdCZATyBUICrKA9j4QsP4yIKWMIBdeWZQJ6BNYJunPzvcYeUOckB3Xx5zVjvfSz+k7DODoX1zjPunFRYW65b5XLgHkHPEyWCZOBgK4ulD\/DIiJYzRAP3d9nTw4WUBZkAfkBbNUpIm2hpykPUEmsfBxcM417hEGucIzPEscxOXkDLKLMMjsweQszyP\/0R\/ER3lhmECmUTbIfp7nN+5UGBKoHwZVuDO4NOGzTPkiP\/lN3mj\/5AcLKHFynT7FPaefktsQOok2Rn2RD+qKATn15abqRxIZkUsy7GX\/yYi2m8IzlRVtHWRbDVNpAVM4eUtOkOJL39RvucyQXA4FCtIprJFGzDSWKIt3PF5Qubl+CQUNudy+Vfp6w9LdVSfNTZsNOXxO2lo7ZMHCE2XqtHlGMDfL7DmLJC5Bm16fj9ET03tB6yfF1HpXV7t0d+6SXTufNmXfYEjpHJk0eb4EXySX\/QQgFqfRv7IJJm0TZZcKCCM6MsLECWM6ubOKMOqF3DB9wIGAYD9XhAIdezDhz7MII57HVxN\/SA6UDIBcIdBJQ3K7RGB5\/c+IB0FBnTolzHP8du9xSLY6DAbyidJA+DFFzRQnigUlSP64n2whQghRntdff\/0hB1MrXOf9qUCayKc3\/fx273EgfheG8iV\/TJszlefKkHqg7CDh5J0wvNdLaIjbGxfvQHBSdzwD0eE5Dq5zJOd1tOBWhdOa8KVMB0xvd9p9bftxINZp\/TWHAgTUkdAoa8jTayqHgUEQhO93v\/udJX\/4ZkIEscDTdqkfFKkjF87iTd1hjcbyyWICV4epwPPUIRZM2hjTfRAHCBP9MHlwNxZBHkgvB8SOtuwdTAHaOddQ+hAMwiInBpMvyaCdu7YOuaB\/Ud5u4R+DM8odMgKZoNwh6vR5yC\/vh8Bg\/WezbmZESAfkkwEn8goCRhgv6DfIC\/olzyBHIWK0AYhTsmwbKfA+uAh5xypIO+G3A+TLEXcG9\/R1ygCXJSyYHJyTP8qdMAxgeAad4ECcxA2R45w8DjZDRLni1uT8zGm31ANtgT4CeSTtlCHWZuqCmSv8LNleCh9njjvuuMP2N96NrCW9tH\/iw1UIXUCfJO2uvZFuZ3hwQO45\/3zShX7imqsvrwwdCWRVwsbYJqir38dnILAQp\/D0M2Xixz8lgYJCyZk91+5reawiHO42BBILykuNjk819vS22gosL+eLO+VSOqFKqhedLCvf8xVzPt9cmyVnLn+jTJ9xvGl4bJETMCOZKrn6nR83EijXKNCYaayFpiHOk9z88bL4+GWy4ty3yvkXvE9a24LmHf3CCEXb0HDQ\/MVnamiF83IGQnagkSXCGAFx3XXX2elkOj\/+MHQ2gKDEf5KOx1QPfoxM\/yGAEbaAOHgHoGM7hcAInw6P7xLbgLBvJsfKlSvt1B4+nAgKyJV7nwOExzuNwvsRYAhtR4AQLPxGoAxXICD4EGr4KLLo5Wtf+5r1dfzpT39q3zeQcqM8GawhiN2BoHblkAqkGwFPfgHpx5pC+Q+kgIgPwsoUDmlyZciBTyjTsTxLGRCfV2mj9ChHR1w4hzjjN0V5I1yZTkcIY5lxmy8fDUAK2eQc6yOruNPB3ZE9sjP+0owRC3pqYkO7QRT4gta\/E7Dn5VALhwYDdYolBIsy\/QBfO5Q751izIJKQF9oRpAnLPdvaoBwho7Rb2gQkJxWxp64Ij9UfJYnsZLBIfxhqcDcWgbKH3ED2vKDdInuwctEGyVcmxNnJOA7O6YsshMMvm0Ej7gRf+tKXLMFhD1\/uIXvof1iRIRnUI1ZHCA33kFP45THNDeFB\/rGqGJnmBf0T6zN\/2buUcDxDnbLwhAHHaABLOtY+\/EohwbSRZFDOyHTnLw+5IxxEkQOZTrkjewlDfSBHkkEZUEZY7hkg8e6BACkkHM+wYJEpbfZ1RXb\/4Q9\/sLoEWUsZY8CALKK\/KU\/e4Q7kLXKOsPwmPp4hncRFX0M\/sRDbHczyIN+9wOLKO4mfNQC\/\/OUv7ZQ79YVOGiwv2UBGq8UR1CQs2dHXIdrYIL2bNkrftq2JK4ej+NLLpfCsFZJTUYmGloDphGw3FDlQY\/+mg6ILLpLQtOkDWjzZwR6BNpiVNZvo6WmTpsZdhkgusL6T0Wi7NDXtlKefWiMXXfJOQyTnGsXHZ7UmmXv5Eo4EjGDIE39wgvSF88y5eSbil95wyISbIG3NO2Tf\/h1SWMCWBldKT994+6zPX2IaY9AI9P73dnZ2SN3BnbJ7+x0SCUPqh2maeJmDNkvHY3RP52d6AKEE6UC4oCQR8kzB0eEQvAgfpotYkAOpwQLAaBdliuLEAgqppI1xnxEi7+EZ\/P+wWrBamsUnhMXnhtE+ihiBghUVJYOTN8QHweX8IIkHCyOCgXQhWPBbI12MaAlDHyQthCH9DqSNuIkLxYPiIG5IIcoMAYWjP\/nnN2lEWNFfiN9rAcgUpAtiwQIc4uYdEAVIHYuHUAaUIxYelB8WLdLlrAGUCwoS8CyEhPxwjXIjjRANyCFxEBf1hAsDeeAa\/pekg+kjLDg8g4AHKHysMyh9rkNgRhtMaM\/0F9vPPuYZ8vdgtMaSzVSffHRgyyL8LOckVouvCm+zlsjBUOErkJMD5fZTkMyC3BzZJq2GYPKuwYASRilD9txqZNoZyhpCgd8uAwAsLm4gB2HHAkabxJqJdYXnKW\/IFYoUUspBvUBciMc7QKHdMSigbvHt5BlIAXWMjzDhScfRArqPvg0BgaSgsOnXXlBWyAQsRBBo2iHPUaacc1COkDvaMfknDghbum2RdyBL8IHlWeIgPVjwmFpl5woO+gFtnL5FuREWHz0G1pwTD88xtUpYnmFxIGGQge45L\/hNnyReBqjoWUglMhUShBwcrTriPa5tQrg4KGvyRllwDxlEPbh6o6ycrOQa7RWZjIxCzkLqeJZz2iJhIXkcxOdtr6lAWpC99A2IJgs2KSMIPrrDGQYoX8oMWZ6qXaNTIOpsS8R9QNr4+hBWTohh8sE9ZKk3jcRLHaOP8IGnfmk3tBPiG66hIl1kRC7pEChjnFBTIcZelJtekL6tqUcwgYmTpOj8CyWverH4TOUBX07InOeLz3S6sBlR2O2Hkgr7RZhK95sGVPyGSyRUWSG+AaZYGCUMNKIZCcRifNGhxxC8HgkEWZ3LaNRny2v+\/GWGFBZJLI5PhCGGRtDH44zC\/eY3i3j6R+TkmHPC5IS6jRAqNMJ1phSPn2MIaP91nqFowuGItDQfkPq6rdJYv0k6O1itOTqd+lgEggeBj9Kkw9IJ6bQIQ8gG4JzrkCOIoZtuQBFAYBAObv8\/4kFxMvJEeaJs6cgoD0gm1gGmQ1COCCY6PsoDgYVyQajxHtKENQfhhgCAECLQEGSQKUbTECTCEwaBhfAjTbwH5c5zXnKJdYIRKz6aKEBHLvlNOAg200Auf5QN03IoGcilN65MQf7JFyQdwen8s0g\/ygolhvBFhkAGnUB0lmFG6JQHaSJtkBbiQGEzNUTeXRgO4qWsqQuUBZZL3kEe6PvkmXrjN9OtPE\/ZUM7co85HGxBFtgea6i+UHAnI9lir3eeSzzYOhkp\/geQaedEQ7zGEdP+QvZ3tjhabY5IvX7riEbk1ssNuQ5SOlKCMITAMXByBBLRxFlvRD7z+eFxnIEOZcg8FRxmzkIJ2QBuFkLiDtsY7vEoVRUc7IB4sS7zHPUe9DaXYRxrpkEvyQ5uCnNBfOZzVFZLjDtopYekLEA3+0ufTAc9RVsgTV36UDddo51zn4NxL9qhHCDzl7sqSe5S59znkImlxzyWD6+SfZ4iPg75N\/AM9M1Jw76NOqB\/kBnmgTJFFyAjKnnMIPvKXv8gfZDj16azHAIJMW2Nwz0AV2U09k8d080bZUaY8Q1pc+XiJHPVC+SX3AQfKknuOWALiJR6IZ6qDOknVR7jGPVdXvJd4RqM\/ZUQuySAFj2Uile9M3BRg35ZNlmCaUktcfQl51Yuk8Mzl9rvhDlj6AqXjJWiIJ\/tjRuvrTOmajpYi8z7TUXOmz5Rx55wnwQmHf96RSqEgMf9SiF7BONKAYLa11ZpyYXPWfqIxefJUKSisNPewNqY\/rZOfzxcXyg2JmCI9vSHbAPsFSJ\/Jn2m0rbVGIG2Vpsat0tGOaXt0O\/WxBkfqEOwoOzo9AgAhBLHinJEc9yCMkC8EFXWIkkOJ4C8DMQGuH0BCITaMChFEtDcEGpYx3skAB0sBcSDA3IEjN4LNPcN7GKmSHpQ2bZf0Qqx4D2GIA6sQaUWYIvwc6aLNO\/BuFDtCknyuNOQS8ks4pwwRrKQB5Uc4gMKHHHjjyhTkA3IJKcQSAjmmPEg\/01iM6BFspJ38OyuKE7LkDcGLwCfvhIFsYNmBHJI2N9KnfAlDXUGEuE5c5NUpGIglcVJ2hEF5cJ3yORrEEvQZgjfVP04qDLks8uUYUhmR2rhRGnFDBBJhUoFvhLdJWPbFOywhHQhIGTZLPzNYJbP8JeY5n+w3z9wbMQQtDTlBXdEuaQ9eBcQ55UY5oqS8oB1SrvQRQLtndgBymnykIpaA96IkiQNCyfMQVYhXKgU82kiXXCIbaIu0T\/oXZAa54wgMIBzP0t8ozyPpcwpDYgwXgcQjf5AXlCkyhkU1gPKmHrhG\/UEuGfjzm3uubpDvDGwIwzV0AvWs9TM8+EzhxlEG6YJpC7ZrwVk4FVpuvEFa\/vwniXUf7hNUes17ZNyKc+2UdjLYHD1mFE\/d174svdu2WitoMrB2Fr3hEhl\/5dskWFaeuPoS6NQ0LKbgjiaCwTwZV1QmM2afZhrydNP4+7+80i\/6MweCt6ur2yjNemlu2i11teskFu0yHWPkRx+K7ABrI5Y2BCGWRAemxWmv7PcI+UpW3EcKpmTYZ5JtfxC8IwkIMVOfuBKwmbyzaCgOBRuinxaotEenIZd\/Dm+SddF6+13wIwUkFF\/Oz+eeJGW+fKmLd8t9kb2yOrLHUEsdhA4XDCSZQmUwCZlmMMiAbSAwQGJwxcwIpMcBMgMBpV+6gZXiyAG5hMw7ax\/lzqwJoLyd1dgLBkzIJ1c\/DGoY8AIIJtZGr8VRkRkyXtADs0\/+cL4XuQurpXD52YlfhyJn9hzxF7y0GbAX1oJZOE4mfODDdiV5KvgNucRnMzA+9TdMGTGzyvBogyny1pZ9sv6Zv8lDD1wrj\/zvF\/LUkzfLju2PGHK4Xzo6WqS7u9McXVa4cHR3Y5XpMiOlZqmrqzckGcvLennu2fvM87+WJx+7TjZtuElq9z8sUbt4R4nlsQQEGb6DEC9Wqve7TMy3CouBGpaabI6QGZVjRYTMYsnjUIwNbIo1yxPROmu1LDB08OLgLFkRPHSj6+EAiyVW0Y\/mnmCJZW88Krtj7fJI9IASy1EGJAfLOW44EBRIJTIAqzAzELiDKLHMHiCQDGZTAQs4gwE3SwPgClyjjlKBGQ8llkeGjKbFAZXIiIuFACiu5Olxpq7N+Ey6n3jcaNRDrRaFp50uwYqKAQmm+HyWQPZufsF+X5xpdodgxRQpOHmpjDtrhfjZQNwzzQBoWEx\/4USbbevP8MB2EezHFTXFEJZIuEt6upulrbVGmht3SGPDNmms32L3v2yo2yINDZvt76amrdLSvN2Q053S3rZHujpxlG418eA\/Q3mqkjgWgWJhaoaDUTVbUbCQh\/7DtC\/+h9kSZvhV4veI9ZA+wf6EKDMU3EjCEWb8TVlNjKwY6Xcei2B6OuaLS5chl4v8pZLjC1hiyF++qEOJZVpq+G\/O9Y+XZYFyWRKYKLnm9\/p4o6yN1lqCmc6UuGJw0J6xckFSmDKFgAwG+jx9GhcMzpk5wH2AZ9WiP7LAnYjpb+qLRWFwAmQt0+EAckl9UIcs9mQwgNvMSM\/uvJIwLHJJRaEY8XfCfOyF3RDdH5Dwzu129bjpVYk7IrnHnyChqmkSKDp0OxYvfEb59jzztJ0a53OPIFA6QfLN+8addY7kzJp9GLEETFHg18V0w1gDJDMa7TNCBmtlsyHCjYY0Ntijk6Ojvv93V70hoI322+O9Pc128\/VoxIzGlFQe80C5IMg4mCLHJwvfSkbObjV3tkC\/xNcRQcoKbXy7BhrVZxtYTAErglWBpgY9OWxkgunlMstfbLcLKvblSIkvVzriYQkbKhjxDb6C3AFJyNd65gTGy6sDk+yqchbx7I51yOPRg7Ih1igdJkbFkYH+y8wC+g8\/UMjIUO2bgRVh6HsQTIwyEEu1WI48GOhS\/pS187HGbce580Eu8aekbpBZ1CnEEpmsyA4y9rl0YCsRvhvMatlkX4YoCybWrpHGX\/5Moq2tpmf2d8KiSy+XkksuNQRxjv2dEqYTN\/78Wmn7z2125TiW0LwTT7aLeIrOPT8R6FDQ4dnTi2X2A5m5FQqFYqzhtGClnB+YLrMT2wzti3fKPZE9duq8LtZlLY5QzH6a2f8\/Wwv1e3D7rMVzgSGW5wZNHL5iSzRZkX5jeIs8G2uwG64rFK9EwEsglBBIfGBZyMgHGgCLyyCdGMrcIi0dDGcXGVsuHTDvU3lUDFuqeMH+kzlz5tpFN3FTsREsmIYAxlpaJP\/E10iockoi5OHo2bhButY8LOFd\/SsPiy+7QkqveocUnJR6+yPAPmhsQYLfmkKhUBwr2BvrkH7vy5hU+QuFb4ifGJgsS4MVsiQwyW6Ezn6YTJkz9V3gC8n0QJFUBybI8mCVvDk0Ty4MzpRKX6EEfH6pjXfLXyNb5eFIjbTE1UKmeOUCy6VzNWJBLVwFlyEAf8GSjGHK+cQqsothWy4B025sS4Rvl9sv0Itoc7P07d0tvc9vkM41D0nfls1ScuXbpPCM5ZI7f0Ei1KFo+t2vpG\/nDvEFjFA97ngpOPU0u9G6P+\/Qz2gBphjZm4+PsjMKUZO2QqE41lBoCCOkcqavWC4MzZByX4H9NCT7UrbHw3ZhjnejdeefmZ8gm3nmL9sZrY82ytOxetkZa5O2ON\/jUYWpUABnCHPbE+GGBF\/A3UExMjgicgnYzBmCyeeH2DuPBQtexPBTqT0gvRs3WNKIRTN33gL7NxU67r9H4uYZf3GJ9a\/k2+OpwOpX9kRjj0Gmw4dyrlYoFIqxCrYQKjJEka\/qTPONkzJ\/vpQa2ljiz7E+me4b4Q7YOvHPhERi\/ayJd9r9L3cZYslCIYVCcShY0MN2RQBfTJ0GH1kcMbnEcZZVWXwDmE+AYc1MJpheWB\/MgF8C4wZe1DMU8KFgGwG+5cz+gPw22UjcVSgUimMXbCM0w19sv+Qz3V9kP+WIJdOLxniP3cNyvyGWa6K1lmQO9WlHhUKhGC0cMbn0gm\/C8u1i9u4bSeBfibUScqlQKBQKhUKhGDvIKrlkCxT2uePb43ypg+1QkleSDxes5mK7AL4bzkov7zeJFQqFQqFQKBRjA1kllwCCyV5S7vNLkE1Wk7MlwHDAVgEs2mEanM1Q2ROQ\/al093yFQqFQKBSKsYesk0svsGBy8Bk6\/DIhnmxYip8mWwOwkTSWTZME61zrNpfFIokfJRvV8jH5tWvX2m9+6h6WCoVCoVAoFGMbI0ouHSCRkMvly5dbf0ymyyGYrDRnewCIZWtrq917CmClXL9+vT3YSV+hUCgUCoVCcWxgVMglVkoOCCXbAbjfWC35i+WSw+05xV8IJ4fuQ6VQKBQKhUJx7GBUyKVCoVAoFAqF4pWB7CzlVigUCoVCoVAoDJRcKhQKhUKhUCiyBiWXCoVCoVAoFIqsQX0uFQqFIk2cFqiUM4NViV+KsYY1kQPyYHR\/4pdCoThaUHKpUCgUaeKy4Gy5MjQv8Usx1nBrZIfcHN6a+KVQKI4WdFpcoVAoFAqFQpE1WMtl4lyhUCgUCoVCoTgCiPw\/7EIhA2GKp3UAAAAASUVORK5CYII=\" alt=\"\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"673\" height=\"63\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-11.png\" alt=\"\" class=\"wp-image-1433\" srcset=\"https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-11.png 673w, https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-11-300x28.png 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Ozko grlo predstavlja tudi datoteka uaee.phtml, ki je del 3th party modula Tatvic_Uaee in se uporablja za po\u0161iljanje razli\u010dnih podatkov in dogodkov v orodje Google Analytics. Po podrobni analizi izvorne kode omenjene datoteke, smo na\u0161li glavni izvor performan\u010dnih te\u017eav in jih tudi odpravili.<\/p>\n\n\n\n<p>S tem smo \u0161e dodatno zmanj\u0161ali \u010das nalaganja strani kategorije za dodatnih 0.4 sekunda.<\/p>\n\n\n\n<p>Tako je bil TTFB po izvedeni optimizaciji strani kategorije pi\u010dlih 0.4 sekunde<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"677\" height=\"65\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-8.png\" alt=\"\" class=\"wp-image-1421\" srcset=\"https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-8.png 677w, https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-8-300x29.png 300w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Stran izdelka<\/h2>\n\n\n\n<p>Tudi tukaj je optimizacija datoteke \u201cmobilemenu.phtml\u201d bistveno pripomogla k \u010dasu izvajanja strani izdelka. Pred za\u010detkom optimizacije je stran izdelka potrebovala kar 26 sekund. Po optimizaciji datoteke \u201cmobilemenu.phtml\u201d pa se je \u010das izvajanja strani izdelka zmanj\u0161al na 2.6 sekunde, ki sicer \u0161e vedno ni bilo dovolj.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"662\" height=\"69\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-12.png\" alt=\"\" class=\"wp-image-1439\" srcset=\"https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-12.png 662w, https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-12-300x31.png 300w\" sizes=\"auto, (max-width: 662px) 100vw, 662px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"664\" height=\"66\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-13.png\" alt=\"\" class=\"wp-image-1442\" srcset=\"https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-13.png 664w, https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-13-300x30.png 300w\" sizes=\"auto, (max-width: 664px) 100vw, 664px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Veliko ozko grlo pa predstavlja tudi stranska navigacija na strani izdelka. Namre\u010d spletna trgovina ima tudi na strani izdelka v levem stolpcu prikazano celotno kategorizacijsko drevo. Za prikaz stranske navigacije se uporablja 3th party modul \u201cCodnitive_Sidenav\u201d, ki prav tako povzro\u010da performan\u010dne te\u017eave.<\/p>\n\n\n\n<p>V tem primeru \u017eal zaradi na\u010dina delovanja ni bilo mogo\u010de uporabiti predpomnilnika, smo pa v izvorni kodi na\u0161li komentar ki nakazuje na to, da se izvajalec modula zaveda te\u017eave, ampak zahteva nakup &#8220;Ultra&#8221; verzije modula za bolj\u0161e delovanje.<\/p>\n\n\n\n<p>Po podrobnej\u0161i analizi izvorne kode modula, smo kljub vsemu na\u0161li glavni vzrok po\u010dasnega delovanja in ga tudi uspe\u0161no odpravili. S tem smo skraj\u0161ali vsako nalaganje strani izdelka \u0161e za dodatni 2,5 sekunde. Tako je kon\u010dni \u010das nalaganja strani izdelka 0.5 sekunde.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"669\" height=\"66\" src=\"https:\/\/www.elitek.si\/wp-content\/uploads\/2024\/07\/image-14.png\" alt=\"\" class=\"wp-image-1448\" srcset=\"https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-14.png 669w, https:\/\/dev-webpage.elitek.si\/wp-content\/uploads\/2024\/07\/image-14-300x30.png 300w\" sizes=\"auto, (max-width: 669px) 100vw, 669px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>V primerjavi z za\u010detnim stanjem smo \u010das nalaganja strani izdelka izbolj\u0161ali za 97%.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Optimizacija poizvedb \/ querijev na podatkovno bazo<\/h2>\n\n\n\n<p>Pri analizi poizvedb smo zaznali konkretno poizvedbo, ki je bila glavni razlog za po\u010dasno delovanje strani. Po podrobnem pregledu smo ugotovili, da poizvedba\/query ne uporablja indeksov, zato smo opravili optimizacijo, ki je \u010das querija skraj\u0161ala iz 5 sekund na 10 milisekund. Omenjena poizvedba se je na na vsaki strani izvedla 3 krat, kar pomeni da je bilo vsako nalaganje strani zaradi le-te upo\u010dasnjeno za okvirno 15 sekund.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Povzetek<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>&nbsp;<\/td><td>Pred optimizacijo<\/td><td>Po optimizacijo<\/td><td>% izbolj\u0161anja<\/td><\/tr><tr><td> Naslovnica<\/td><td>18 sekund<\/td><td>0.2 sekunde<\/td><td>-98%<\/td><\/tr><tr><td> Stran kategorije<\/td><td>19 sekund<\/td><td>0.45 sekunde<\/td><td>-97%<\/td><\/tr><tr><td> Stran izdelka<\/td><td>26 sekund<\/td><td>0.5 sekunde<\/td><td>-97%<\/td><\/tr><tr><td> Ko\u0161arica<\/td><td>18 sekund<\/td><td>0.4 sekunde<\/td><td>-97%<\/td><\/tr><tr><td> Checkout<\/td><td>18 sekund<\/td><td>0.4 sekunde<\/td><td>-97%<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Obstoje\u010da trgovina je imela velike performan\u010dne te\u017eave, saj je bilo za\u010detno stanje znatno prepo\u010dasno, kot je standard za Magento trgovino.<\/p>\n\n\n\n<p>Ravno tako je ta projekt vnovi\u010d pokazal, da je na tr\u017ei\u0161\u010du veliko slabo narejenih 3th party pluginov, ki lahko znatno upo\u010dasnijo delovanje va\u0161e spletne trgovine.<\/p>\n\n\n\n<p>Vedno predlagamo zmerno uporabo 3th party pluginov in le tam kjer je res potrebno. Po namestitvi pa je potrebno \u0161e natan\u010dno preveriti in analizirati hitrost delovanja name\u0161\u010denega plugina.<\/p>\n\n\n\n<p>S tem projektom smo naro\u010dniku znatno pohitrili delovanje njegove spletne trgovine.Izvedli smo tudi posodobitev Magento platforme in s tem tudi bistveno izbolj\u0161ali varnost spletne trgovine in njenih podatkov.<\/p>\n\n\n\n<p>\u010ce imate tudi vi te\u017eave s hitrostjo va\u0161e spletne trgovine, vas vabimo da nas kontaktirate.<\/p>\n\n\n\n<div class=\"wp-block-cover\" style=\"min-height:150px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-background-dim-100 has-background-dim has-background-gradient\" style=\"background:linear-gradient(135deg,rgb(154,206,241) 0%,rgb(60,111,143) 100%)\"><\/span><div class=\"wp-block-cover__inner-container is-layout-constrained wp-block-cover-is-layout-constrained\">\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<p class=\"has-text-align-left\">Imate tudi vi te\u017eave s hitrostjo va\u0161e trgovine? <br><strong>Tudi vam lahko pomagamo optimizirati va\u0161o Magento spletno trgovino<\/strong>!<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-5590e8cb wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-font-size is-style-outline has-medium-font-size is-style-outline--2\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.elitek.si\/sl\/kontaktirajte-nas\/\" style=\"border-radius:26px\">Kontaktirajte nas<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Stranka je pristopila do nas s hudimi te\u017eavami s hitrostjo svoje Magento spletne trgovine. Spletno trgovino je postavil drugi izvajalec, ki ni poskrbel za kakovostno izdelavo, oziroma nima dovollj znanja z optimizacijo hitrosti delovanja aplikacije. Potek dela: Pridobili smo vse dostope bodisi do programske kode in podatkovne baze spletne trgovine. Trgovino smo postavili lokalno na [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1940,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1385","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-sl"],"acf":[],"_links":{"self":[{"href":"https:\/\/dev-webpage.elitek.si\/sl\/wp-json\/wp\/v2\/posts\/1385","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev-webpage.elitek.si\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev-webpage.elitek.si\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev-webpage.elitek.si\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dev-webpage.elitek.si\/sl\/wp-json\/wp\/v2\/comments?post=1385"}],"version-history":[{"count":26,"href":"https:\/\/dev-webpage.elitek.si\/sl\/wp-json\/wp\/v2\/posts\/1385\/revisions"}],"predecessor-version":[{"id":2068,"href":"https:\/\/dev-webpage.elitek.si\/sl\/wp-json\/wp\/v2\/posts\/1385\/revisions\/2068"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dev-webpage.elitek.si\/sl\/wp-json\/wp\/v2\/media\/1940"}],"wp:attachment":[{"href":"https:\/\/dev-webpage.elitek.si\/sl\/wp-json\/wp\/v2\/media?parent=1385"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev-webpage.elitek.si\/sl\/wp-json\/wp\/v2\/categories?post=1385"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev-webpage.elitek.si\/sl\/wp-json\/wp\/v2\/tags?post=1385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}