function artolo_build_site_from_csv_design() { if (!class_exists('Elementor\\Plugin')) { return ['success' => false, 'message' => 'Elementor is not active.']; } $products = json_decode(base64_decode('eyJjb3VudHMiOiB7IktpdGNoZW4gJiBEaW5pbmciOiA2LCAiQmF0aHJvb20gJiBXZWxsbmVzcyI6IDYsICJIb21lIERlY29yIjogNiwgIkhvbWUgQ29tZm9ydCI6IDYsICJDcmFmdHMvRElZIjogNiwgIkNsZWFuaW5nICYgVXRpbGl0eSI6IDZ9LCAiaXRlbXMiOiB7IktpdGNoZW4gJiBEaW5pbmciOiBbeyJuYW1lIjogIjEyIFBpZWNlIFN0YWlubGVzcyBTdGVlbCBDdXRsZXJ5IFNldCIsICJza3UiOiAiMTItUElFLVNFVCIsICJkZXNjcmlwdGlvbiI6ICJQcmFjdGljYWwgaG9tZSBlc3NlbnRpYWwgZGVzaWduZWQgZm9yIGV2ZXJ5ZGF5IHVzZSIsICJwcmljZSI6ICIiLCAiY2F0ZWdvcnkiOiAiS2l0Y2hlbiAmIERpbmluZyIsICJzb3VyY2VfY2F0ZWdvcnkiOiAiU2hvcCA+IEtpdGNoZW4gJiBEaW5pbmcgPiBLaXRjaGVuIFRvb2xzICYgVXRlbnNpbHMiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDMvMTItUGllY2UtU3RhaW5sZXNzLVN0ZWVsLUN1dGxlcnktU2V0LWUxNzc2MzY1NjA5NTM2LmpwZyIsICJ0YWdzIjogImN1dGxlcnkgc2V0LCBkaW5pbmcgdGFibGUsIGV2ZXJ5ZGF5IHVzZSwgZmxhdHdhcmUsIGtpdGNoZW4sIHNpbXBsZSBzdHlsZSwgc3RhaW5sZXNzIHN0ZWVsLCB1dGVuc2lscyJ9LCB7Im5hbWUiOiAiNTAtQ3ViZSBEb3VibGUgTGF5ZXIgSWNlIE1ha2VyIEJveCIsICJza3UiOiAiNTBDLURPVS1CT1giLCAiZGVzY3JpcHRpb24iOiAiQSBoaWdoLWNhcGFjaXR5LCBkdWFsLWxheWVyIGljZSB0cmF5IGZlYXR1cmluZyBhIHNlY3VyZSBzdG9yYWdlIGJpbiBhbmQgYSBzbGltIHByb2ZpbGUuIENvbXBhY3QgdW5pdCBwcm9kdWNlcyA1MCBjdWJlcyBhdCBvbmNlIGZvciBlZmZpY2llbnQgZnJlZXplciBvcmdhbml6YXRpb24uIiwgInByaWNlIjogIiIsICJjYXRlZ29yeSI6ICJLaXRjaGVuICYgRGluaW5nIiwgInNvdXJjZV9jYXRlZ29yeSI6ICJTaG9wID4gS2l0Y2hlbiAmIERpbmluZyIsICJpbWFnZSI6ICJodHRwczovL2FydG9sb3N0b3JlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wMi9TOTU4Zjg3N2YzOTA1NGNmYmI0NzNiZDRiMWMxYThjMjduLndlYnAiLCAidGFncyI6ICJkYWlseSB1c2UsIGtpdGNoZW4sIG1vZGVybiwgcGxhc3RpYywgc3RvcmFnZSwgdGFibGV0b3AifSwgeyJuYW1lIjogIjktSW5jaCBCb2hlbWlhbiBDZXJhbWljIFNhbGFkIFBsYXRlIiwgInNrdSI6ICI5SU4tQk9ILVBMQVRFIiwgImRlc2NyaXB0aW9uIjogIkEgdmlicmFudCwgc3F1YXJlIGNlcmFtaWMgcGxhdGUgZmVhdHVyaW5nIGFuIGFydGlzYW4gZmxvcmFsIHBhdHRlcm4gYW5kIGEgbWljcm93YXZlLXNhZmUgYnVpbGQuIFBlcmZlY3QgZm9yIGFkZGluZyBhcnRpc3RpYyBmbGFpciB0byBkYWlseSBwYXN0YSBhbmQgc2FsYWRzLiIsICJwcmljZSI6ICIiLCAiY2F0ZWdvcnkiOiAiS2l0Y2hlbiAmIERpbmluZyIsICJzb3VyY2VfY2F0ZWdvcnkiOiAiU2hvcCA+IEtpdGNoZW4gJiBEaW5pbmcgPiBDb2ZmZWUgJiBUZWEgQWNjZXNzb3JpZXMiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDIvU2ZmMzMwNzRmY2Y1NDQ2Nzc5OGFiMGM2YWZkMzYxM2U0QS53ZWJwIiwgInRhZ3MiOiAiY2VyYW1pYywgZGFpbHkgdXNlLCBkaW5pbmcsIGtpdGNoZW4sIHJldHJvLCB0YWJsZXRvcCJ9LCB7Im5hbWUiOiAiQm9oZW1pYW4gRW1ib3NzZWQgQ2VyYW1pYyBTb3VwIEJvd2wiLCAic2t1IjogIkQ2OUFCMTJLR1AzMDAwQUZIM0QwIiwgImRlc2NyaXB0aW9uIjogIkEgc29waGlzdGljYXRlZCBwb3JjZWxhaW4gc291cCBib3dsIGZlYXR1cmluZyBhbiBpbnRyaWNhdGUgZmxvcmFsIHJlbGllZiBhbmQgaGFuZC1wYWludGVkIGRldGFpbHMuIEhlYXZ5LWR1dHkgY29uc3RydWN0aW9uIGRlc2lnbmVkIGZvciBjb21mb3J0IGFuZCBkdXJhYmlsaXR5LiIsICJwcmljZSI6ICIiLCAiY2F0ZWdvcnkiOiAiS2l0Y2hlbiAmIERpbmluZyIsICJzb3VyY2VfY2F0ZWdvcnkiOiAiU2hvcCA+IEtpdGNoZW4gJiBEaW5pbmcgPiBDb2ZmZWUgJiBUZWEgQWNjZXNzb3JpZXMsIFNob3AgPiBLaXRjaGVuICYgRGluaW5nID4gRGlubmVyd2FyZSAmIFNlcnZld2FyZSIsICJpbWFnZSI6ICJodHRwczovL2FydG9sb3N0b3JlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wMi9TNDNhNGMxZTZjZmFiNDQ4OGFlZjM4MzI3ZWRlNTBjODRRLndlYnAiLCAidGFncyI6ICJjZXJhbWljLCBkYWlseSB1c2UsIGRpbmluZywga2l0Y2hlbiwgcmV0cm8sIHRhYmxldG9wIn0sIHsibmFtZSI6ICJCb2hlbWlhbiBIYW5kLVBhaW50ZWQgQ2VyYW1pYyBTYWxhZCBCb3dsIiwgInNrdSI6ICJCT0gtSEFOLUJPV0wiLCAiZGVzY3JpcHRpb24iOiAiQW4gYXJ0aXNhbi1pbnNwaXJlZCBjZXJhbWljIGJvd2wgZmVhdHVyaW5nIGEgdW5pcXVlIGZsb3JhbCBkZXNpZ24gYW5kIGFuIGludGVncmF0ZWQgaGFuZGxlLiBQZXJmZWN0bHkgd2VpZ2h0ZWQgZm9yIHNlcnZpbmcgZnJlc2ggc2FsYWRzIG9yIHNpZGUgZGlzaGVzLiIsICJwcmljZSI6ICIiLCAiY2F0ZWdvcnkiOiAiS2l0Y2hlbiAmIERpbmluZyIsICJzb3VyY2VfY2F0ZWdvcnkiOiAiU2hvcCA+IEtpdGNoZW4gJiBEaW5pbmcgPiBDb2ZmZWUgJiBUZWEgQWNjZXNzb3JpZXMsIFNob3AgPiBLaXRjaGVuICYgRGluaW5nID4gRGlubmVyd2FyZSAmIFNlcnZld2FyZSIsICJpbWFnZSI6ICJodHRwczovL2FydG9sb3N0b3JlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wMy9Cb2hlbWlhbi1IYW5kLVBhaW50ZWQtQ2VyYW1pYy1TYWxhZC1Cb3dsLndlYnAiLCAidGFncyI6ICJjZXJhbWljLCBkYWlseSB1c2UsIGRpbmluZywga2l0Y2hlbiwgcmV0cm8sIHNlcnZpbmcsIHRhYmxldG9wIn0sIHsibmFtZSI6ICJDYW4gU2hhcGUgR2xhc3MgQ3VwIiwgInNrdSI6ICJDQU4tU0hBLUNVUCIsICJkZXNjcmlwdGlvbiI6ICJBIGNvbnRlbXBvcmFyeSBnbGFzcyB0dW1ibGVyIG1vZGVsZWQgYWZ0ZXIgY2xhc3NpYyBzb2RhIGNhbnMgZm9yIGEgbWluaW1hbGlzdCBhbmQgbW9kZXJuIGJldmVyYWdlIHNlcnZpY2UuIiwgInByaWNlIjogIiIsICJjYXRlZ29yeSI6ICJLaXRjaGVuICYgRGluaW5nIiwgInNvdXJjZV9jYXRlZ29yeSI6ICJTaG9wID4gS2l0Y2hlbiAmIERpbmluZyA+IERyaW5rd2FyZSAmIEJhcndhcmUiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjUvMTIvU2EwNDhiNDAzOTk2NTQ1YzNhZTMzZDNiNGRlMjM0YjUxcS53ZWJwIiwgInRhZ3MiOiAiYmV2ZXJhZ2UgZ2xhc3MsIGRyaW5rd2FyZSwgZ2xhc3MgY3VwLCByZXVzYWJsZSBjdXAsIHN0cmF3IGN1cCJ9XSwgIkJhdGhyb29tICYgV2VsbG5lc3MiOiBbeyJuYW1lIjogIjEyIHBjcyBDb3R0b24gQmxlbmQgVG93ZWwiLCAic2t1IjogIjEyLVBDUy1UT1dFTCIsICJkZXNjcmlwdGlvbiI6ICJBIHNvZnQgd292ZW4gdG93ZWwgZm9yIGZhY2UsIGhhbmQsIG9yIGdlbmVyYWwgYmF0aHJvb20gdXNlIGluIGhvbWUgYW5kIGd1ZXN0IHNwYWNlcy4iLCAicHJpY2UiOiAiIiwgImNhdGVnb3J5IjogIkJhdGhyb29tICYgV2VsbG5lc3MiLCAic291cmNlX2NhdGVnb3J5IjogIlNob3AgPiBCYXRocm9vbSAmIFdlbGxuZXNzID4gQmF0aCBNYXRzICYgVG93ZWxzIiwgImltYWdlIjogImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzAzL1MyY2VjMjQwMWE5N2E0N2M2YmQ4OGUwODBhYzMzNzdkYzQud2VicCIsICJ0YWdzIjogImFic29yYmVudCwgYmF0aHJvb20sIGV2ZXJ5ZGF5IHVzZSwgbXVsdGlwdXJwb3NlLCBwb2x5ZXN0ZXIgY290dG9uLCB0ZXJyeSwgdG93ZWwsIHdvdmVuIn0sIHsibmFtZSI6ICI1LU1vZGUgSGlnaC1QcmVzc3VyZSBTaG93ZXIgSGVhZCIsICJza3UiOiAiNU1PLUhJRy1IRUFEIiwgImRlc2NyaXB0aW9uIjogIkEgaGlnaC1wZXJmb3JtYW5jZSBoYW5kaGVsZCBzaG93ZXIgbm96emxlIHdpdGggYSByZW1vdmFibGUgaGVhZCBmb3IgZWFzeSBjbGVhbmluZyBhbmQgaGlnaC12ZWxvY2l0eSB3YXRlciBvdXRwdXQuIiwgInByaWNlIjogIiIsICJjYXRlZ29yeSI6ICJCYXRocm9vbSAmIFdlbGxuZXNzIiwgInNvdXJjZV9jYXRlZ29yeSI6ICJTaG9wID4gQmF0aHJvb20gJiBXZWxsbmVzcyA+IFNob3dlciBIZWFkcyAmIEJpZGV0cyIsICJpbWFnZSI6ICJodHRwczovL2FydG9sb3N0b3JlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNS8xMi9TMTkzMTVlMDExMGUzNGMwZTk3MDQzYjYwNWFlNTkzODViLTEud2VicCIsICJ0YWdzIjogImFkanVzdGFibGUsIGJhdGhyb29tLCBwbGFzdGljLCBzaG93ZXJpbmcsIFdhdGVyIFNhdmluZyJ9LCB7Im5hbWUiOiAiQWJzb3JiZW50IEhhbmQgVG93ZWwiLCAic2t1IjogIlNPRi1BQlMtVE9XRUwiLCAiZGVzY3JpcHRpb24iOiAiU29mdCBhbmQgYWJzb3JiZW50IGZhY2UgdG93ZWwgZGVzaWduZWQgZm9yIGV2ZXJ5ZGF5IGJhdGhyb29tIHVzZSwgc3VpdGFibGUgZm9yIHdhc2hpbmcsIGRyeWluZywgYW5kIG11bHRpcHVycG9zZSBjbGVhbmluZyB0YXNrcy4iLCAicHJpY2UiOiAiMTEuOTkiLCAiY2F0ZWdvcnkiOiAiQmF0aHJvb20gJiBXZWxsbmVzcyIsICJzb3VyY2VfY2F0ZWdvcnkiOiAiU2hvcCA+IEJhdGhyb29tICYgV2VsbG5lc3MgPiBCYXRoIE1hdHMgJiBUb3dlbHMiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDMvUzllMDE4ZDRmYmQ4MDRlMjc4NGY4YjEyNjg0ZDY1MTYzSC53ZWJwIiwgInRhZ3MiOiAiYWJzb3JiZW50IHRvd2VsLCBiYXRocm9vbSBlc3NlbnRpYWxzLCBiYXRocm9vbSB0b3dlbCwgaGFuZCB0b3dlbCwgaG9tZSB0b3dlbCwgc29mdCB0b3dlbCwgdGVycnkgdG93ZWwifSwgeyJuYW1lIjogIkFkanVzdGFibGUgSGFuZGhlbGQgU2hvd2VyIEhlYWQiLCAic2t1IjogIkFESkhILVNIIiwgImRlc2NyaXB0aW9uIjogIkZpdmUgc3ByYXkgbW9kZXMgYW5kIGEgb25lLXRvdWNoIHN0b3AgZGVsaXZlciBwb3dlcmZ1bCwgd2F0ZXItc2F2aW5nIHNob3dlcnMgd2l0aCBidWlsdC1pbiBmaWx0cmF0aW9uIGZvciBnZW50bGVyIHdhdGVyIG9uIHNraW4uIFByZXNzIEFkZCB0byBDYXJ0IHRvIG9yZGVyIHlvdXJzIHRvZGF5LiIsICJwcmljZSI6ICIiLCAiY2F0ZWdvcnkiOiAiQmF0aHJvb20gJiBXZWxsbmVzcyIsICJzb3VyY2VfY2F0ZWdvcnkiOiAiU2hvcCA+IEJhdGhyb29tICYgV2VsbG5lc3MgPiBTaG93ZXIgSGVhZHMgJiBCaWRldHMiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvQWRqdXN0YWJsZS1IYW5kaGVsZC1TaG93ZXItSGVhZC5wbmciLCAidGFncyI6ICJhYnMgcGxhc3RpYywgYmF0aHJvb20gc2hvd2VyLCBoYW5kaGVsZCBzaG93ZXIsIEhpZ2gtUHJlc3N1cmUgU2hvd2VyLCBzaG93ZXIgZmlsdGVyLCBzaG93ZXIgaGVhZCwgV2F0ZXIgU2F2aW5nIn0sIHsibmFtZSI6ICJBZGp1c3RhYmxlIFNob3dlciBIZWFkIiwgInNrdSI6ICJCVEgtU0hPV0VSSEVBRCIsICJkZXNjcmlwdGlvbiI6ICJTd2l0Y2ggYmV0d2VlbiBnZW50bGUgc3ByYXkgYW5kIHN0cm9uZ2VyIHdhdGVyIGZsb3cgc2V0dGluZ3Mgd2l0aCBhIGhhbmRoZWxkIHNob3dlciBoZWFkIGRlc2lnbmVkIGZvciBldmVyeWRheSBjb21mb3J0IGFuZCBlYXNpZXIgcmluc2luZy4iLCAicHJpY2UiOiAiIiwgImNhdGVnb3J5IjogIkJhdGhyb29tICYgV2VsbG5lc3MiLCAic291cmNlX2NhdGVnb3J5IjogIlNob3AgPiBCYXRocm9vbSAmIFdlbGxuZXNzID4gU2hvd2VyIEhlYWRzICYgQmlkZXRzIiwgImltYWdlIjogImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L0FkanVzdGFibGUtU2hvd2VyLUhlYWQuanBlZyIsICJ0YWdzIjogImFicyBwbGFzdGljLCBiYXRocm9vbSwgYmF0aHJvb20gYWNjZXNzb3JpZXMsIGNsZWFuaW5nLCBkYWlseSB1c2UsIGhhbmRoZWxkLCBtb2Rlcm4sIHJvdGF0aW5nLCBzaG93ZXJpbmcsIFdhdGVyIFNhdmluZyJ9LCB7Im5hbWUiOiAiQ290dG9uIEJsZW5kIEhhbmQgVG93ZWwiLCAic2t1IjogIkNPVC1CTEUtVE9XRUwiLCAiZGVzY3JpcHRpb24iOiAiQSBzb2xpZC1jb2xvciBoYW5kIHRvd2VsIHdpdGggcXVpY2stZHJ5IHBlcmZvcm1hbmNlIGZvciByZWd1bGFyIGJhdGhyb29tIG9yIHNhbG9uLXN0eWxlIHVzZS4iLCAicHJpY2UiOiAiIiwgImNhdGVnb3J5IjogIkJhdGhyb29tICYgV2VsbG5lc3MiLCAic291cmNlX2NhdGVnb3J5IjogIlNob3AgPiBCYXRocm9vbSAmIFdlbGxuZXNzID4gQmF0aCBNYXRzICYgVG93ZWxzIiwgImltYWdlIjogImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzAzL1NiMjFhNjFlZGM4NjQ0ZWZhODQxOTJmNzYwODIwNzg0M0Yud2VicCIsICJ0YWdzIjogImJhdGhyb29tLCBjb3R0b24gYmxlbmQsIGV2ZXJ5ZGF5IHVzZSwgaGFuZCB0b3dlbCwgcG9seWVzdGVyLCBxdWljay1kcnksIHNvbGlkLCB3b3ZlbiJ9XSwgIkhvbWUgRGVjb3IiOiBbeyJuYW1lIjogIkFic3RyYWN0IEJsYWNrIFRlcnJhY290dGEgVmFzZSIsICJza3UiOiAiQUJTLUJMSy1WQVNFIiwgImRlc2NyaXB0aW9uIjogIkEgc3RyaWtpbmcsIHZpbnRhZ2UtaW5zcGlyZWQgYmxhY2sgcG9yY2VsYWluIHZhc2UgZmVhdHVyaW5nIGEgdGV4dHVyZWQgc3RvbmUgZmluaXNoIGFuZCBhYnN0cmFjdCBjb250b3Vycy4iLCAicHJpY2UiOiAiIiwgImNhdGVnb3J5IjogIkhvbWUgRGVjb3IiLCAic291cmNlX2NhdGVnb3J5IjogIkhvbWUgJiBMaXZpbmcgPiBIb21lIERlY29yID4gVmFzZXMiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDYvU2RiZTdiNmQxMWZjNzQ5MTFiOTJhNTJkMmM2YjhlZWFlOS53ZWJwIiwgInRhZ3MiOiAiYWJzdHJhY3QgcG90dGVyeSwgYmxhY2sgdmFzZSwgSmFwYW5lc2Ugc3R5bGUsIHBvcmNlbGFpbiBvcm5hbWVudCwgc3RvbmUgdGV4dHVyZSwgdGFibGV0b3AgdmFzZSwgdGVycmFjb3R0YSBkZWNvcmF0aW9uLCB2aW50YWdlIGNlbnRlcnBpZWNlIn0sIHsibmFtZSI6ICJDZXJhbWljIEh5ZHJvcG9uaWMgUGxhbnRlciIsICJza3UiOiAiQ0VSLUhZRFItUExOVFIiLCAiZGVzY3JpcHRpb24iOiAiRGVjb3JhdGl2ZSBjZXJhbWljIHBsYW50ZXIgc3VpdGFibGUgZm9yIGh5ZHJvcG9uaWMgcGxhbnRzLCBmbG93ZXJzLCBhbmQgZGVza3RvcCBib25zYWkgZGlzcGxheXMuIiwgInByaWNlIjogIiIsICJjYXRlZ29yeSI6ICJIb21lIERlY29yIiwgInNvdXJjZV9jYXRlZ29yeSI6ICJIb21lICYgTGl2aW5nID4gSG9tZSBEZWNvciA+IFZhc2VzIiwgImltYWdlIjogImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA2L0NlcmFtaWMtSHlkcm9wb25pYy1QbGFudGVyLmpwZWciLCAidGFncyI6ICJjZXJhbWljIGRlY29yLCBjZXJhbWljIHBsYW50ZXIsIGRlc2t0b3AgZGVjb3IsIGZsb3dlciBkaXNwbGF5LCBoeWRyb3BvbmljIHBsYW50ZXIsIGh5ZHJvcG9uaWMgdmFzZSwgaW5kb29yIHBsYW50cywgbWluaW1hbGlzdCBwbGFudGVyLCBwbGFudCBjb250YWluZXIsIHRhYmxldG9wIHBsYW50ZXIifSwgeyJuYW1lIjogIkNlcmFtaWMgSHlkcm9wb25pYyBWYXNlIiwgInNrdSI6ICJDRVItSFlEUi1WQVNFIiwgImRlc2NyaXB0aW9uIjogIk1pbmltYWxpc3QgY2VyYW1pYyB2YXNlIHNldCBkZXNpZ25lZCBmb3IgZHJpZWQgZmxvd2VycywgaHlkcm9wb25pYyBwbGFudHMsIGFuZCB0YWJsZXRvcCBkZWNvci4iLCAicHJpY2UiOiAiIiwgImNhdGVnb3J5IjogIkhvbWUgRGVjb3IiLCAic291cmNlX2NhdGVnb3J5IjogIkhvbWUgJiBMaXZpbmcgPiBIb21lIERlY29yID4gVmFzZXMiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDYvQ2VyYW1pYy1IeWRyb3BvbmljLVZhc2UtLmpwZWciLCAidGFncyI6ICJjZXJhbWljIGRlY29yLCBjZXJhbWljIHZhc2UsIGRlY29yYXRpdmUgdmFzZSwgZmxvd2VyIHZhc2UsIGhvbWUgZGVjb3IsIGh5ZHJvcG9uaWMgdmFzZSwgaW5kb29yIHBsYW50cywgbWluaW1hbGlzdCBkZWNvciwgcGxhbnQgcHJvcGFnYXRpb24sIHRhYmxldG9wIGRlY29yIn0sIHsibmFtZSI6ICJDZXJhbWljIFRhYmxldG9wIFN1Y2N1bGVudCBQb3QiLCAic2t1IjogIkNFUi1UQkwtUE9UIiwgImRlc2NyaXB0aW9uIjogIkEgdmVyc2F0aWxlIGNlcmFtaWMgcGxhbnQgcG90IGRlc2lnbmVkIHRvIGJyaW5nIGEgdG91Y2ggb2Ygc3R5bGUgdG8gbGl2aW5nIHJvb20gdGFibGVzLCBvZmZpY2UgZGVza3MsIG9yIGJhbGNvbnkgZGlzcGxheXMuIiwgInByaWNlIjogIiIsICJjYXRlZ29yeSI6ICJIb21lIERlY29yIiwgInNvdXJjZV9jYXRlZ29yeSI6ICJIb21lICYgTGl2aW5nID4gSG9tZSBEZWNvciA+IFZhc2VzIiwgImltYWdlIjogImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA2L1NiYmI3ZjkxYWZmYjA0YTRjYjkzZGNiNTk3ODNhYmY5NEoud2VicCIsICJ0YWdzIjogImJhbGNvbnkgZGVjb3JhdGlvbiwgY2VyYW1pYyBmbG93ZXJwb3QsIGN1dGUgcGxhbnRlciwgaW5kb29yIGdyZWVuIHBvdCwgbWluaSBnYXJkZW4gcG90LCBwbGFudCBjb250YWluZXIsIHN1Y2N1bGVudCBwb3QsIHRhYmxldG9wIHBsYW50ZXIifSwgeyJuYW1lIjogIkNlcmFtaWMgV2hpdGUgVmFzZXMgSHlkcm9wb25pY3MgU2NhbmRpbmF2aWFuIHN0eWxlIFNpbXBsZSBGbG93ZXIgUG90IFRhYmxlIEFjY2Vzc29yaWVzIEJhdGhyb29tIEFlc3RoZXRpYyBSb29tIERlY29yIERlY29yYXRpb24iLCAic2t1IjogIlNDQS1XSFQtVkFTRSIsICJkZXNjcmlwdGlvbiI6ICJBIGNsZWFuLCB3aGl0ZSBjZXJhbWljIHRhYmxldG9wIHZhc2UgZGVzaWduZWQgaW4gYSBzaW1wbGUgU2NhbmRpbmF2aWFuIHN0eWxlIGZvciBmcmVzaCBoeWRyb3BvbmljcyBvciBtb2Rlcm4gcm9vbSBkZWNvci4iLCAicHJpY2UiOiAiIiwgImNhdGVnb3J5IjogIkhvbWUgRGVjb3IiLCAic291cmNlX2NhdGVnb3J5IjogIkhvbWUgJiBMaXZpbmcgPiBIb21lIERlY29yID4gVmFzZXMiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDYvU2QzMmZiNTBmZTdhYjRkM2ViNjNhMGI4YWJhMzk2ZGMzUi53ZWJwIiwgInRhZ3MiOiAiYmF0aHJvb20gYWVzdGhldGljLCBoeWRyb3BvbmljIHBvdCwgbWluaW1hbGlzdCBwb3R0ZXJ5LCBtb2Rlcm4gZmxvd2VycG90LCBzY2FuZGluYXZpYW4gZGVjb3IsIHNpbXBsZSBwbGFudGVyLCB0YWJsZXRvcCBjZW50ZXJwaWVjZSwgd2hpdGUgdmFzZSJ9LCB7Im5hbWUiOiAiQ2xhc3NpYyBCcm93biBEaXN0cmVzc2VkIFZhc2UiLCAic2t1IjogIkNMUy1CUk4tVkFTRSIsICJkZXNjcmlwdGlvbiI6ICJBIEV1cm9wZWFuLWluc3BpcmVkIHNtYWxsIGJyb3duIGNlcmFtaWMganVnIHZhc2UgZGV0YWlsZWQgd2l0aCBhIGhpc3RvcmljIHNpZGUgaGFuZGxlIGFuZCBhIHJ1c3RpYyBkaXN0cmVzc2VkIGZpbmlzaC4iLCAicHJpY2UiOiAiMjguMTIiLCAiY2F0ZWdvcnkiOiAiSG9tZSBEZWNvciIsICJzb3VyY2VfY2F0ZWdvcnkiOiAiSG9tZSAmIExpdmluZyA+IEhvbWUgRGVjb3IgPiBWYXNlcyIsICJpbWFnZSI6ICJodHRwczovL2FydG9sb3N0b3JlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNi9DbGFzc2ljLUJyb3duLURpc3RyZXNzZWQtVmFzZS5qcGVnIiwgInRhZ3MiOiAiYm9va3NoZWxmIGRlY29yLCBicm93biBjZXJhbWljIHZhc2UsIGRpc3RyZXNzZWQgZmluaXNoLCBldXJvcGVhbiBzdHlsZSwgaGFuZGxlZCBwb3R0ZXJ5LCBydXN0aWMgZmxvd2VycG90LCBzbWFsbCB0YWJsZSBjZW50ZXJwaWVjZSwgdmludGFnZSBqdWcifV0sICJIb21lIENvbWZvcnQiOiBbeyJuYW1lIjogIjUtU3BlZWQgRm9sZGFibGUgTmVjayBGYW4iLCAic2t1IjogIjVTUC1GT0wtRkFOIiwgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBoYW5kcyBmcmVlIGFuZCBzdGF5IGNvb2wgb24gdGhlIGdvIHdpdGggYSB3ZWFyYWJsZSwgZml2ZS1zcGVlZCBuZWNrIGZhbiB0aGF0IGZvbGRzIGZvciBlYXN5IHN0b3JhZ2UuIiwgInByaWNlIjogIiIsICJjYXRlZ29yeSI6ICJIb21lIENvbWZvcnQiLCAic291cmNlX2NhdGVnb3J5IjogIlNob3AgPiBIb21lIENvbWZvcnQgJiBBaXIgUXVhbGl0eSA+IEZhbnMgJiBDb29saW5nIiwgImltYWdlIjogImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzAzL0ZvbGRhYmxlLU5lY2stRmFuLmpwZyIsICJ0YWdzIjogImNvb2xpbmcsIGRhaWx5IHVzZSwgaGFuZGhlbGQsIG1vZGVybiwgb2ZmaWNlLCBwbGFzdGljLCB0cmF2ZWwifSwgeyJuYW1lIjogIkFyb21hdGljIEVzc2VudGlhbCBPaWwgQ29sbGVjdGlvbiIsICJza3UiOiAiQVJPLUVTUy1DT0xMTiIsICJkZXNjcmlwdGlvbiI6ICJBIHRoZXJhcGV1dGljLWdyYWRlIG9pbCB2YXJpZXR5IHBhY2sgZm9ybXVsYXRlZCB0byBpbXByb3ZlIGFpciBxdWFsaXR5IGFuZCBwcm9tb3RlIGEgYmFsYW5jZWQgaG9tZSBlbnZpcm9ubWVudC4iLCAicHJpY2UiOiAiIiwgImNhdGVnb3J5IjogIkhvbWUgQ29tZm9ydCIsICJzb3VyY2VfY2F0ZWdvcnkiOiAiU2hvcCA+IEhvbWUgQ29tZm9ydCAmIEFpciBRdWFsaXR5ID4gSW5jZW5zZSAmIEFyb21hdGhlcmFweSIsICJpbWFnZSI6ICJodHRwczovL2FydG9sb3N0b3JlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNS8wMy81LmpwZyIsICJ0YWdzIjogImFyb21hdGhlcmFweSwgZGlmZnVzZXIgb2lsLCBlc3NlbnRpYWwgb2lscywgaG9tZSBzY2VudCwgd2VsbG5lc3MifSwgeyJuYW1lIjogIkFzc29ydGVkIEluY2Vuc2UgU3RpY2tzIFZhcmlldHkgUGFjayIsICJza3UiOiAiSU5DRU5TRS1WQVJJRVRZIiwgImRlc2NyaXB0aW9uIjogIlNldmVuIGdyb3VuZGluZyBzY2VudHMgZm9yIG1pbmQsIGJvZHksIGFuZCBob21lLiBBIGN1cmF0ZWQgd2VsbG5lc3MgY29sbGVjdGlvbiB0byBzdXBwb3J0IGNhbG0sIGNsYXJpdHksIGFuZCBldmVyeWRheSByaXR1YWxzLiIsICJwcmljZSI6ICIiLCAiY2F0ZWdvcnkiOiAiSG9tZSBDb21mb3J0IiwgInNvdXJjZV9jYXRlZ29yeSI6ICJTaG9wID4gSG9tZSBDb21mb3J0ICYgQWlyIFF1YWxpdHkgPiBJbmNlbnNlICYgQXJvbWF0aGVyYXB5IiwgImltYWdlIjogImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L0Fzc29ydGVkLUluY2Vuc2UtU3RpY2tzLVZhcmlldHktUGFjay5qcGVnIiwgInRhZ3MiOiAiQXJvbWF0aGVyYXB5IGVzc2VudGlhbHMsIGFyb21hdGhlcmFweSBpbmNlbnNlLCBIb21lIHdlbGxuZXNzIGRlY29yLCBpbmNlbnNlLCBNZWRpdGF0aW9uIGluY2Vuc2Ugc2V0LCBNaW5kZnVsbmVzcyBpbmNlbnNlLCBOYXR1cmFsIHNjZW50IGJ1bmRsZSwgU3RyZXNzIHJlbGllZiBhcm9tYXRpY3MsIFdlbGxuZXNzIGluY2Vuc2UgcGFjaywgWW9nYSBwcmFjdGljZSBhY2Nlc3NvcmllcyJ9LCB7Im5hbWUiOiAiQmFja2Zsb3cgSW5jZW5zZSBDb25lcyIsICJza3UiOiAiQkZMVy1DT05FUy1NSVgiLCAiZGVzY3JpcHRpb24iOiAiQmFja2Zsb3cgaW5jZW5zZSBjb25lcyBkZXNpZ25lZCBmb3Igd2F0ZXJmYWxsLXN0eWxlIGJ1cm5lcnMgd2l0aCBtdWx0aXBsZSBmcmFncmFuY2Ugb3B0aW9ucyBhbmQgYSBzbG93LWZsb3cgc21va2UgZWZmZWN0LiIsICJwcmljZSI6ICIiLCAiY2F0ZWdvcnkiOiAiSG9tZSBDb21mb3J0IiwgInNvdXJjZV9jYXRlZ29yeSI6ICJTaG9wID4gSG9tZSBDb21mb3J0ICYgQWlyIFF1YWxpdHkgPiBJbmNlbnNlICYgQXJvbWF0aGVyYXB5IiwgImltYWdlIjogImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA1L1MwZGQzYjQ3MDNlYmU0ZTA4ODZmMmJlNTczYjA5YTdlMkQud2VicCIsICJ0YWdzIjogImFyb21hdGhlcmFweSwgYmFja2Zsb3cgaW5jZW5zZSwgY29uZSBpbmNlbnNlLCBob21lIGZyYWdyYW5jZSwgaW5jZW5zZSBidXJuZXIgcmVmaWxsLCBpbmNlbnNlIGNvbmVzLCBqYXNtaW5lIGluY2Vuc2UsIGxpdmluZyByb29tIGRlY29yLCBtZWRpdGF0aW9uIGFjY2Vzc29yaWVzLCBzYW5kYWx3b29kIGluY2Vuc2UifSwgeyJuYW1lIjogIkJsYWRlbGVzcyBIYW5kIEZhbiIsICJza3UiOiAiQkxBLUhBTi1GQU4iLCAiZGVzY3JpcHRpb24iOiAiQSBtb2Rlcm4sIHNhZmUgYWlyZmxvdyBkZXZpY2UgdXRpbGl6aW5nIGJsYWRlbGVzcyB0ZWNobm9sb2d5IHRvIHByb3ZpZGUgY29uc2lzdGVudCBjb29saW5nIGluIGFueSByb29tLiIsICJwcmljZSI6ICIiLCAiY2F0ZWdvcnkiOiAiSG9tZSBDb21mb3J0IiwgInNvdXJjZV9jYXRlZ29yeSI6ICJTaG9wID4gSG9tZSBDb21mb3J0ICYgQWlyIFF1YWxpdHkgPiBGYW5zICYgQ29vbGluZyIsICJpbWFnZSI6ICJodHRwczovL2FydG9sb3N0b3JlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNS8wMy9TNmFjN2U0MzM2MjZmNDlmMzk1MWUzM2MzNTAxZTJmOThrLndlYnAiLCAidGFncyI6ICJibGFkZWxlc3MgZmFuLCBjb29saW5nIGZhbiwgbWluaSBmYW4sIHBvcnRhYmxlIGZhbiwgcmVjaGFyZ2VhYmxlIGZhbiJ9LCB7Im5hbWUiOiAiQ2VyYW1pYyBGYWNlIEluY2Vuc2UgQnVybmVyIiwgInNrdSI6ICJDRVItRkFDLUJVUk5FUiIsICJkZXNjcmlwdGlvbiI6ICJUdXJuIGFueSBxdWlldCBjb3JuZXIgaW50byBhIGNhbG1pbmcgbGl0dGxlIGVzY2FwZS4gVGhpcyBjZXJhbWljIGJhY2tmbG93IGluY2Vuc2UgYnVybmVyIGJsZW5kcyBzY3VscHR1cmFsIGJlYXV0eSB3aXRoIHNvZnQgZmxvd2luZyBzbW9rZSB0byBjcmVhdGUgYSB3YXJtLCBpbnRpbWF0ZSBtb29kICIsICJwcmljZSI6ICIiLCAiY2F0ZWdvcnkiOiAiSG9tZSBDb21mb3J0IiwgInNvdXJjZV9jYXRlZ29yeSI6ICJTaG9wID4gSG9tZSBDb21mb3J0ICYgQWlyIFF1YWxpdHkgPiBJbmNlbnNlICYgQXJvbWF0aGVyYXB5IiwgImltYWdlIjogImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzAzL1NmMGVmMDIyZjAxMjc0MGRlYmVhM2QzMzdmNDA3ZDcyZFoud2VicCIsICJ0YWdzIjogImJlZHJvb20sIGNlcmFtaWMsIGRlY29yYXRpbmcsIGZyYWdyYW5jZSwgaW5jZW5zZSwgbGl2aW5nIHJvb20ifV0sICJDcmFmdHMvRElZIjogW3sibmFtZSI6ICI0LVBpZWNlIFRyYXZlbCBDb21wcmVzc2lvbiBQYWNraW5nIEN1YmVzIiwgInNrdSI6ICI0UEktVFJBLUNVQkVTIiwgImRlc2NyaXB0aW9uIjogIkEgc3BhY2Utc2F2aW5nIDQtcGllY2Ugc2V0IG9mIHdhdGVyLXJlc2lzdGFudCBwb2x5ZXN0ZXIgcGFja2luZyBjdWJlcy4gRmVhdHVyZXMgYW4gYWR2YW5jZWQgY29tcHJlc3Npb24gc3lzdGVtIHRvIG1heGltaXplIGx1Z2dhZ2UgYW5kIGNsb3NldCBzcGFjZS4iLCAicHJpY2UiOiAiIiwgImNhdGVnb3J5IjogIkNyYWZ0cy9ESVkiLCAic291cmNlX2NhdGVnb3J5IjogIlNob3AgPiBIb21lIERlY29yICYgQ3JhZnRzID4gT3JnYW5pemVycyAmIFBvY2tldCBHYWRnZXRzIiwgImltYWdlIjogImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzAyL1M0YTcwOWZlNDkyZDU0ZDExYmM4OTY0MjVmODFjNWIxNDIud2VicCIsICJ0YWdzIjogImJlZHJvb20sIGZhYnJpYywgbW9kZXJuLCBvcmdhbml6aW5nLCBzdG9yYWdlLCB0cmF2ZWwifSwgeyJuYW1lIjogIkFiYWxvbmUgU2hlbGwgTmFpbCBBcnQgQ2hpcHMiLCAic2t1IjogIkFCTC1TSEVMTC1DSElQUyIsICJkZXNjcmlwdGlvbiI6ICJEZWNvcmF0aXZlIHNoZWxsIGdyYXZlbCBjaGlwcyBmb3IgY3JhZnRzLCBqZXdlbHJ5IHByb2plY3RzLCByZXNpbiBhcnQsIGFuZCBob21lIGTDqWNvciBkaXNwbGF5cy4gXFxuIFxcblt2aWRlbyB3aWR0aD1cIjcyMFwiIGhlaWdodD1cIjcyMFwiIG1wND1cImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlIiwgInByaWNlIjogIiIsICJjYXRlZ29yeSI6ICJDcmFmdHMvRElZIiwgInNvdXJjZV9jYXRlZ29yeSI6ICJTaG9wID4gSG9tZSBEZWNvciAmIENyYWZ0cyA+IEJlYWRzICYgQ3JhZnQgU3VwcGxpZXMiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvQWJhbG9uZS1TaGVsbC1OYWlsLUFydC1DaGlwcy5qcGVnIiwgInRhZ3MiOiAiYWJhbG9uZSBzaGVsbCwgYm9uc2FpIGRlY29yLCBkZWNvcmF0aXZlIGNoaXBzLCBkZWNvcmF0aXZlIHN0b25lcywgZGl5IGNyYWZ0cywgaXJyZWd1bGFyIHNoZWxsLCBqZXdlbHJ5IG1ha2luZywgbmFpbCBhcnQsIHJlc2luIGNyYWZ0LCBzaGVsbCBncmF2ZWwsIHZhc2UgZmlsbGVyIn0sIHsibmFtZSI6ICJBbWVyaWNhbiBUdXJxdW9pc2UgQmVhZHMiLCAic2t1IjogIkFNUkNOLVRSUS1CRFMiLCAiZGVzY3JpcHRpb24iOiAiTmF0dXJhbCBhbWVyaWNhbiB0dXJxdW9pc2UgYmVhZHMgc3VpdGFibGUgZm9yIGJyYWNlbGV0cywgbmVja2xhY2VzLCBlYXJyaW5ncywgYW5kIGhhbmRtYWRlIGpld2VscnkgcHJvamVjdHMgd2l0aCBkaXN0aW5jdGl2ZSBzdG9uZSBjb2xvciBhbmQgcGF0dGVybiB2YXJpYXRpb24uIiwgInByaWNlIjogIiIsICJjYXRlZ29yeSI6ICJDcmFmdHMvRElZIiwgInNvdXJjZV9jYXRlZ29yeSI6ICJTaG9wID4gSG9tZSBEZWNvciAmIENyYWZ0cyA+IEJlYWRzICYgQ3JhZnQgU3VwcGxpZXMiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDYvU2ZiOWRkMzczNzE2NjQ3ZDRhNzJhYTlhZWQ2NDYyNzQ3Ny02LndlYnAiLCAidGFncyI6ICJhbWVyaWNhbiB0dXJxdW9pc2UgYmVhZHMsIGJyYWNlbGV0IGJlYWRzLCBjcmFmdCBiZWFkcywgZGl5IGpld2VscnksIGpld2VscnkgbWFraW5nIGJlYWRzLCBuYXR1cmFsIHN0b25lIGJlYWRzLCBuZWNrbGFjZSBiZWFkcywgcm91bmQgYmVhZHMsIHR1cnF1b2lzZSBzdG9uZSBiZWFkcyJ9LCB7Im5hbWUiOiAiQXZlbnR1cmluZSBCZWFkcyIsICJza3UiOiAiQVZOVFJOLUJEUyIsICJkZXNjcmlwdGlvbiI6ICJOYXR1cmFsIGF2ZW50dXJpbmUgYmVhZHMgc3VpdGFibGUgZm9yIGJyYWNlbGV0cywgbmVja2xhY2VzLCBlYXJyaW5ncywgYW5kIGhhbmRtYWRlIGpld2VscnkgcHJvamVjdHMgd2l0aCBkaXN0aW5jdGl2ZSBzdG9uZSBjb2xvciBhbmQgcGF0dGVybiB2YXJpYXRpb24uIiwgInByaWNlIjogIiIsICJjYXRlZ29yeSI6ICJDcmFmdHMvRElZIiwgInNvdXJjZV9jYXRlZ29yeSI6ICJTaG9wID4gSG9tZSBEZWNvciAmIENyYWZ0cyA+IEJlYWRzICYgQ3JhZnQgU3VwcGxpZXMiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDYvU2RjODA4NDAyNjE0MjQyMzViOGM1MDFiZmUxMDYxYWY3dC02LndlYnAiLCAidGFncyI6ICJhdmVudHVyaW5lIGJlYWRzLCBicmFjZWxldCBiZWFkcywgY3JhZnQgYmVhZHMsIGRpeSBqZXdlbHJ5LCBncmVlbiBzdG9uZSBiZWFkcywgamV3ZWxyeSBtYWtpbmcgYmVhZHMsIG5hdHVyYWwgc3RvbmUgYmVhZHMsIG5lY2tsYWNlIGJlYWRzLCByb3VuZCBiZWFkcyJ9LCB7Im5hbWUiOiAiQnVybWVzZSBKYWRlIEJlYWRzIiwgInNrdSI6ICJCUk1TRS1KQURFLUJEUyIsICJkZXNjcmlwdGlvbiI6ICJOYXR1cmFsIGJ1cm1lc2UgamFkZSBiZWFkcyBzdWl0YWJsZSBmb3IgYnJhY2VsZXRzLCBuZWNrbGFjZXMsIGVhcnJpbmdzLCBhbmQgaGFuZG1hZGUgamV3ZWxyeSBwcm9qZWN0cyB3aXRoIGRpc3RpbmN0aXZlIHN0b25lIGNvbG9yIGFuZCBwYXR0ZXJuIHZhcmlhdGlvbi4iLCAicHJpY2UiOiAiIiwgImNhdGVnb3J5IjogIkNyYWZ0cy9ESVkiLCAic291cmNlX2NhdGVnb3J5IjogIlNob3AgPiBIb21lIERlY29yICYgQ3JhZnRzID4gQmVhZHMgJiBDcmFmdCBTdXBwbGllcyIsICJpbWFnZSI6ICJodHRwczovL2FydG9sb3N0b3JlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNi9TZGIzYTYyOThhMzU1NGQ0Y2E4Yjk2ZWZlMjIyMzc4MTJzLTUud2VicCIsICJ0YWdzIjogImJyYWNlbGV0IGJlYWRzLCBidXJtZXNlIGphZGUgYmVhZHMsIGNyYWZ0IGJlYWRzLCBkaXkgamV3ZWxyeSwgZ3JlZW4gamFkZSBiZWFkcywgamV3ZWxyeSBtYWtpbmcgYmVhZHMsIG5hdHVyYWwgc3RvbmUgYmVhZHMsIG5lY2tsYWNlIGJlYWRzLCByb3VuZCBiZWFkcyJ9LCB7Im5hbWUiOiAiQ2FuYWRhIEphZGUgQmVhZHMiLCAic2t1IjogIkNOREEtSkFERS1CRFMiLCAiZGVzY3JpcHRpb24iOiAiTmF0dXJhbCBjYW5hZGEgamFkZSBiZWFkcyBzdWl0YWJsZSBmb3IgYnJhY2VsZXRzLCBuZWNrbGFjZXMsIGVhcnJpbmdzLCBhbmQgaGFuZG1hZGUgamV3ZWxyeSBwcm9qZWN0cyB3aXRoIGRpc3RpbmN0aXZlIHN0b25lIGNvbG9yIGFuZCBwYXR0ZXJuIHZhcmlhdGlvbi4iLCAicHJpY2UiOiAiIiwgImNhdGVnb3J5IjogIkNyYWZ0cy9ESVkiLCAic291cmNlX2NhdGVnb3J5IjogIlNob3AgPiBIb21lIERlY29yICYgQ3JhZnRzID4gQmVhZHMgJiBDcmFmdCBTdXBwbGllcyIsICJpbWFnZSI6ICJodHRwczovL2FydG9sb3N0b3JlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNi9TY2I3YmFiNGRiMDE1NGYxOWJiOGM0MzZkN2VlMDdkNThyLTYud2VicCIsICJ0YWdzIjogImJyYWNlbGV0IGJlYWRzLCBjYW5hZGEgamFkZSBiZWFkcywgY3JhZnQgYmVhZHMsIGRpeSBqZXdlbHJ5LCBqYWRlIHN0b25lIGJlYWRzLCBqZXdlbHJ5IG1ha2luZyBiZWFkcywgbmF0dXJhbCBzdG9uZSBiZWFkcywgbmVja2xhY2UgYmVhZHMsIHJvdW5kIGJlYWRzIn1dLCAiQ2xlYW5pbmcgJiBVdGlsaXR5IjogW3sibmFtZSI6ICIyLWluLTEgR2FwIENsZWFuaW5nIEJydXNoIiwgInNrdSI6ICIySU4tR0FQLUJSVVNIIiwgImRlc2NyaXB0aW9uIjogIkNsZWFuIHRpZ2h0IHdpbmRvdyB0cmFja3MsIGdyb3V0IGxpbmVzLCBhbmQgbmFycm93IGNvcm5lcnMgcHJlY2lzZWx5IHdpdGggYSBjb21wYWN0LCBkdWFsLWhlYWRlZCBkZXRhaWxpbmcgYnJ1c2guIiwgInByaWNlIjogIiIsICJjYXRlZ29yeSI6ICJDbGVhbmluZyAmIFV0aWxpdHkiLCAic291cmNlX2NhdGVnb3J5IjogIlNob3AgPiBDbGVhbmluZyAmIFV0aWxpdHkgPiBWYWN1dW1zICYgQ2xlYW5pbmcgVG9vbHMiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDMvY29ybmVyLWNsZWFuaW5nLWJydXNoLnBuZyIsICJ0YWdzIjogImJhdGhyb29tLCBjbGVhbmluZywga2l0Y2hlbiwgbWluaW1hbGlzdCwgbW9kZXJuLCBvcmdhbml6aW5nLCBwbGFzdGljLCBwb3J0YWJsZSJ9LCB7Im5hbWUiOiAiMy1pbi0xIFdpbmRvdyBDbGVhbmluZyBTcXVlZWdlZSIsICJza3UiOiAiM0lOLVdJTi1TUVVHRUUiLCAiZGVzY3JpcHRpb24iOiAiQSBtdWx0aWZ1bmN0aW9uYWwgY2xlYW5pbmcgdG9vbCBjb21iaW5pbmcgYSBzcG9uZ2Ugc2NydWJiZXIsIGEgc2lsaWNvbmUgc3F1ZWVnZWUsIGFuZCBhIHNwcmF5IGZ1bmN0aW9uIGZvciBlZmZvcnRsZXNzIGdsYXNzIG1haW50ZW5hbmNlLiIsICJwcmljZSI6ICIiLCAiY2F0ZWdvcnkiOiAiQ2xlYW5pbmcgJiBVdGlsaXR5IiwgInNvdXJjZV9jYXRlZ29yeSI6ICJTaG9wID4gQ2xlYW5pbmcgJiBVdGlsaXR5ID4gVmFjdXVtcyAmIENsZWFuaW5nIFRvb2xzIiwgImltYWdlIjogImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI1LzExL1NlODhhZDYwNWRjYmY0MDA3OWY2ZWZkMmVjYjJjMWEwNjgud2VicCIsICJ0YWdzIjogImNsZWFuaW5nLCBnbGFzcywgcGxhc3RpYywgc3ByYXksIHNxdWVlZ2VlLCB3aW5kb3cifSwgeyJuYW1lIjogIjQtaW4tMSBSb3RhdGluZyBUaWxlIFNjcnViYmVyIiwgInNrdSI6ICI0SU4tUk9ULVNDUkJSIiwgImRlc2NyaXB0aW9uIjogIkEgaGVhdnktZHV0eSwgbXVsdGktc3VyZmFjZSBjbGVhbmluZyBicnVzaCBmZWF0dXJpbmcgYSAzNjDCsCByb3RhdGluZyBoZWFkIGFuZCBpbnRlZ3JhdGVkIHNjcmFwZXIuIERlZXAgY2xlYW5zIGdyb3V0LCBjb3JuZXJzLCBhbmQgc2hvd2VyIHRyYWNrcyB3aXRoIGVhc2UuIiwgInByaWNlIjogIiIsICJjYXRlZ29yeSI6ICJDbGVhbmluZyAmIFV0aWxpdHkiLCAic291cmNlX2NhdGVnb3J5IjogIlNob3AgPiBDbGVhbmluZyAmIFV0aWxpdHkgPiBWYWN1dW1zICYgQ2xlYW5pbmcgVG9vbHMiLCAiaW1hZ2UiOiAiaHR0cHM6Ly9hcnRvbG9zdG9yZS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDIvUzY1NjhlYjFiNjNhODRiNTg5NjQxYzYwMDE0MDFkMmQzRi53ZWJwIiwgInRhZ3MiOiAiIn0sIHsibmFtZSI6ICJDYXIgSGFuZGhlbGQgVmFjdXVtIENsZWFuZXIiLCAic2t1IjogIkNBUi1IQU4tVkFDVVVNIiwgImRlc2NyaXB0aW9uIjogIlBvd2VyZnVsIHN1Y3Rpb24sIG11bHRpcGxlIG5venpsZXMsIGFuZCBjb3JkbGVzcyBwb3J0YWJpbGl0eSBtYWtlIGl0IGlkZWFsIGZvciBjcnVtYnMsIGR1c3QsIGFuZCBwZXQgaGFpciBhdCBob21lIG9yIG9uIHRoZSBnby4iLCAicHJpY2UiOiAiMTkuOTkiLCAiY2F0ZWdvcnkiOiAiQ2xlYW5pbmcgJiBVdGlsaXR5IiwgInNvdXJjZV9jYXRlZ29yeSI6ICJTaG9wID4gQ2xlYW5pbmcgJiBVdGlsaXR5ID4gVmFjdXVtcyAmIENsZWFuaW5nIFRvb2xzIiwgImltYWdlIjogImh0dHBzOi8vYXJ0b2xvc3RvcmUuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzA0L0Nhci1IYW5kaGVsZC1WYWN1dW0tQ2xlYW5lci5wbmciLCAidGFncyI6ICJhdXRvIHZhY3V1bSwgY2FyIGNsZWFuZXIsIGNhciBkZXRhaWxpbmcsIGNhciB2YWN1dW0sIGNvcmRsZXNzIHZhY3V1bSwgaGFuZGhlbGQgdmFjdXVtLCBtaW5pIHZhY3V1bSwgcGV0IGhhaXIsIHBvcnRhYmxlIHZhY3V1bSwgc3Ryb25nIHN1Y3Rpb24ifSwgeyJuYW1lIjogIkNvcmRlZCBIYW5kaGVsZCBTdGVhbSBDbGVhbmVyIiwgInNrdSI6ICJIQU4tQ09SLVNURUFNIiwgImRlc2NyaXB0aW9uIjogIlBvd2VyZnVsIGhhbmRoZWxkIHN0ZWFtIGNsZWFuZXIgdGFja2xlcyBncmVhc2UsIGdyaW1lIGFuZCBzdGFpbnMgd2l0aCBoaWdow6LigqzigJh0ZW1wZXJhdHVyZSwgY2hlbWljYWzDouKCrOKAmGZyZWUgc3RlYW0gZm9yIGhvbWUsIGtpdGNoZW4sIGJhdGhyb29tIGFuZCBjYXIgc3VyZmFjZXMuIiwgInByaWNlIjogIjY3Ljk5IiwgImNhdGVnb3J5IjogIkNsZWFuaW5nICYgVXRpbGl0eSIsICJzb3VyY2VfY2F0ZWdvcnkiOiAiU2hvcCA+IENsZWFuaW5nICYgVXRpbGl0eSA+IFZhY3V1bXMgJiBDbGVhbmluZyBUb29scyIsICJpbWFnZSI6ICJodHRwczovL2FydG9sb3N0b3JlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC9TYWQ1OGM0MGRhMWMyNDBkYzg0Y2Q5NGQzZjdlNTZlZWR3LTIud2VicCIsICJ0YWdzIjogImNhciBkZXRhaWxpbmcgc3RlYW1lciwgY2hlbWljYWwtZnJlZS1jbGVhbmluZywgY29yZGVkIHN0ZWFtIGNsZWFuZXIsIGhhbmRoZWxkIHN0ZWFtIGNsZWFuZXIsIGhpZ2ggcHJlc3N1cmUsIGhpZ2ggdGVtcGVyYXR1cmUgc3RlYW0gY2xlYW5lciwgaG9tZSBraXRjaGVuIGJhdGhyb29tIGNsZWFuZXIifSwgeyJuYW1lIjogIkNvcmRsZXNzIENhciBWYWN1dW0iLCAic2t1IjogIkNPUi1DQVItVkFDVVVNIiwgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgaGFuZGhlbGQgdmFjdXVtIGZvciBxdWljayBjbGVhbnVwIGluIGNhcnMgYW5kIGFyb3VuZCB0aGUgaG91c2UuIiwgInByaWNlIjogIjE3Ljk5IiwgImNhdGVnb3J5IjogIkNsZWFuaW5nICYgVXRpbGl0eSIsICJzb3VyY2VfY2F0ZWdvcnkiOiAiU2hvcCA+IENsZWFuaW5nICYgVXRpbGl0eSA+IFZhY3V1bXMgJiBDbGVhbmluZyBUb29scyIsICJpbWFnZSI6ICJodHRwczovL2FydG9sb3N0b3JlLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC9Db3JkbGVzcy1DYXItVmFjdXVtLnBuZyIsICJ0YWdzIjogImF1dG8gaW50ZXJpb3IgY2xlYW5lciwgY2FyIHZhY3V1bSwgY29yZGxlc3MgdmFjdXVtLCBoYW5kaGVsZCB2YWN1dW0sIHBvcnRhYmxlIGNsZWFuZXIsIHNtYWxsIHNwYWNlIGNsZWFuaW5nLCB1c2IgdmFjdXVtLCB3ZXQgZHJ5IHZhY3V1bSJ9XX19'), true); $palette = [ 'paper' => '#fbfaf7', 'surface' => '#ffffff', 'linen' => '#f1e7d8', 'mist' => '#eef2ef', 'sage' => '#7f927d', 'clay' => '#b45f43', 'clay_dark' => '#8c3f2d', 'ink' => '#23201d', 'muted' => '#706861', 'line' => '#ded5ca', 'warm' => '#d9b58a' ]; $made = ['pages' => [], 'menu' => null, 'front_page' => null, 'notes' => []]; $uid = function() { return substr(str_replace('.', '', uniqid('', true)), -7); }; $dims = function($top, $right = null, $bottom = null, $left = null) { if ($right === null) $right = $bottom = $left = $top; return ['unit' => 'px', 'top' => $top, 'right' => $right, 'bottom' => $bottom, 'left' => $left, 'isLinked' => false]; }; $typ = function($family, $size, $weight = '400', $line = null) { $out = ['typography_typography' => 'custom', 'typography_font_family' => $family, 'typography_font_size' => ['unit' => 'px', 'size' => $size], 'typography_font_weight' => $weight]; if ($line) $out['typography_line_height'] = ['unit' => 'em', 'size' => $line]; return $out; }; $w = function($type, $settings = []) use ($uid) { return ['id' => $uid(), 'elType' => 'widget', 'widgetType' => $type, 'settings' => $settings, 'elements' => []]; }; $c = function($settings = [], $elements = []) use ($uid) { return ['id' => $uid(), 'elType' => 'container', 'settings' => $settings, 'elements' => $elements, 'isInner' => false]; }; $section = function($elements, $bg = null, $padTop = 88, $padBottom = 88) use ($c, $dims) { $settings = [ 'content_width' => 'boxed', 'boxed_width' => ['unit' => 'px', 'size' => 1180], 'flex_direction' => 'column', 'gap' => ['unit' => 'px', 'size' => 28], 'padding' => $dims($padTop, 24, $padBottom, 24) ]; if ($bg) { $settings['background_background'] = 'classic'; $settings['background_color'] = $bg; } return $c($settings, $elements); }; $heading = function($text, $tag = 'h2', $size = 42, $align = 'left') use ($w, $typ, $palette) { return $w('heading', array_merge(['title' => $text, 'header_size' => $tag, 'align' => $align, 'title_color' => $palette['ink']], $typ('Playfair Display', $size, '700', 1.12))); }; $text = function($html, $size = 17, $align = 'left') use ($w, $typ, $palette) { return $w('text-editor', array_merge(['editor' => $html, 'align' => $align, 'text_color' => $palette['muted']], $typ('Inter', $size, '400', 1.7))); }; $button = function($label, $url, $style = 'primary') use ($w, $typ, $palette) { $bg = $style === 'outline' ? '#ffffff00' : $palette['clay']; $color = $style === 'outline' ? $palette['clay_dark'] : '#ffffff'; return $w('button', array_merge([ 'text' => $label, 'link' => ['url' => $url], 'size' => 'md', 'button_type' => 'default', 'background_color' => $bg, 'button_text_color' => $color, 'border_radius' => ['unit' => 'px', 'size' => 8], 'border_border' => 'solid', 'border_width' => ['unit' => 'px', 'top' => 1, 'right' => 1, 'bottom' => 1, 'left' => 1, 'isLinked' => true], 'border_color' => $palette['clay'] ], $typ('Inter', 15, '700', 1.1))); }; $imageBox = function($title, $desc, $img = '') use ($w, $typ, $palette) { return $w('image-box', array_merge([ 'image' => ['url' => $img, 'id' => ''], 'image_size' => 'medium_large', 'title_text' => $title, 'description_text' => $desc, 'title_color' => $palette['ink'], 'description_color' => $palette['muted'], 'position' => 'top', 'text_align' => 'left', 'image_border_radius' => ['unit' => 'px', 'size' => 8], '_background_background' => 'classic', '_background_color' => '#ffffff', '_border_border' => 'solid', '_border_color' => $palette['line'], '_border_width' => ['unit'=>'px','top'=>1,'right'=>1,'bottom'=>1,'left'=>1,'isLinked'=>true], '_border_radius' => ['unit'=>'px','size'=>8], '_padding' => ['unit'=>'px','top'=>18,'right'=>18,'bottom'=>18,'left'=>18,'isLinked'=>true] ], $typ('Inter', 16, '600', 1.4))); }; $grid = function($children, $cols = 3) use ($c, $dims) { return $c(['content_width'=>'full','flex_direction'=>'row','flex_wrap'=>'wrap','gap'=>['unit'=>'px','size'=>22], 'padding'=>$dims(0), 'align_items'=>'stretch'], array_map(function($child) use ($c, $cols) { return $c(['content_width'=>'full','width'=>['unit'=>'%','size'=>100 / $cols], 'flex_direction'=>'column', 'gap'=>['unit'=>'px','size'=>14]], [$child]); }, $children)); }; $homeUrl = home_url('/'); $pageUrls = [ 'Home' => $homeUrl, 'About' => home_url('/about/'), 'Services' => home_url('/services/'), 'Listings' => home_url('/listings/'), 'Contact' => home_url('/contact/'), ]; $catCards = []; foreach ($products['items'] as $cat => $list) { $first = $list[0] ?? []; $catCards[] = $imageBox($cat, 'Curated ' . strtolower($cat) . ' products selected for practical daily routines.', $first['image'] ?? ''); } $featuredCards = []; foreach (array_slice(array_merge(...array_values($products['items'])), 0, 6) as $p) { $title = esc_html($p['name']); $desc = esc_html($p['description']); $featuredCards[] = $imageBox($title, $desc, $p['image']); } $home = [ $section([ $heading('ArtOlo Store', 'h1', 64, 'center'), $text('Practical home essentials, kitchen accessories, cleaning tools, decor finds, craft supplies, and everyday lifestyle products curated for calmer daily routines.', 20, 'center'), $c(['content_width'=>'full','flex_direction'=>'row','justify_content'=>'center','gap'=>['unit'=>'px','size'=>14]], [$button('Shop Listings', $pageUrls['Listings']), $button('Contact Us', $pageUrls['Contact'], 'outline')]) ], $palette['paper'], 116, 94), $section([$grid([$imageBox('Secure Checkout','Simple, protected shopping from browse to order.',''), $imageBox('Curated Selection','Useful products organized by how people actually use them.',''), $imageBox('Everyday Value','Affordable essentials for home, cleaning, kitchen, wellness, and comfort.','')], 3)], '#ffffff', 38, 44), $section([$heading('Shop By Need'), $text('Explore product families built from the CSV catalog categories.'), $grid($catCards, 3)], $palette['mist']), $section([$heading('Featured Products'), $text('A quick preview of catalog items pulled from the latest product CSV.'), $grid($featuredCards, 3), $button('View All Listings', $pageUrls['Listings'])], '#ffffff'), $section([$heading('Built Around Useful Living', 'h2', 42, 'center'), $text('ArtOlo focuses on products that solve small everyday problems: cleaner counters, easier prep, better storage, fresher rooms, and more enjoyable home routines.', 18, 'center'), $button('Learn About ArtOlo', $pageUrls['About'])], $palette['linen']) ]; $about = [ $section([$heading('About ArtOlo', 'h1', 58, 'center'), $text('An online-exclusive store for practical, carefully selected home and lifestyle products that make everyday routines smoother.', 20, 'center')], $palette['paper'], 100, 80), $section([$heading('Our Story'), $text('ArtOlo was built around a simple idea: home products should be useful, easy to understand, and organized around real daily needs. The catalog brings together kitchen tools, bathroom essentials, cleaning helpers, home comfort items, decor pieces, and creative supplies in one approachable store.')], '#ffffff'), $section([$grid([$imageBox('Practical First','Products are selected for clear everyday use, not just novelty.'), $imageBox('Organized Shopping','Categories mirror real routines like cooking, cleaning, wellness, comfort, and DIY.'), $imageBox('Online Convenience','Browse, compare, and order from an online-exclusive storefront available 24/7.')], 3)], $palette['mist']), $section([$heading('Mission'), $text('To help customers find affordable household products that make daily living feel easier, tidier, and more comfortable.'), $button('Browse Listings', $pageUrls['Listings'])], '#ffffff') ]; $services = [ $section([$heading('Services', 'h1', 58, 'center'), $text('ArtOlo is a curated online store, so the services experience is built around making product discovery simple and useful.', 20, 'center')], $palette['paper'], 100, 80), $section([$heading('How We Help'), $grid([$imageBox('Product Curation','Focused product groups reduce noisy browsing and help customers find useful items faster.'), $imageBox('Category Guidance','Kitchen, cleaning, bathroom, comfort, decor, and craft products are organized around daily routines.'), $imageBox('Customer Support','Contact options are easy to find, with support for questions before or after ordering.'), $imageBox('Order Confidence','Trust messaging, clear product summaries, and category CTAs support confident shopping.'), $imageBox('SEO-Ready Structure','Pages use clear headings, descriptive copy, and category-focused content for search clarity.'), $imageBox('Mobile Shopping','Layouts are built with responsive Elementor containers for clean browsing on phones and tablets.')], 3)], '#ffffff'), $section([$heading('How It Works'), $grid([$imageBox('1. Choose a Category','Start with the product family that matches your task or room.'), $imageBox('2. Compare Useful Finds','Review product summaries, images, and category context.'), $imageBox('3. Contact or Shop','Use the contact page for questions or continue into the store catalog.')], 3)], $palette['mist']), $section([$heading('FAQ'), $text('Is ArtOlo online only?
Yes, ArtOlo is an online-exclusive store available 24/7.

What kinds of products are included?
Home essentials, kitchen tools, cleaning solutions, bathroom and wellness items, decor, crafts, and comfort products.

Can customers ask questions before ordering?
Yes. The contact page includes a form and direct contact information.'), $button('Contact ArtOlo', $pageUrls['Contact'])], '#ffffff') ]; $listingChildren = []; foreach ($products['items'] as $cat => $list) { $cards = []; foreach ($list as $p) { $desc = esc_html($p['description']); if (!empty($p['sku'])) $desc .= '
SKU: ' . esc_html($p['sku']); $cards[] = $imageBox(esc_html($p['name']), $desc, $p['image']); } $listingChildren[] = $section([$heading($cat), $text('Representative products from the latest CSV catalog.'), $grid($cards, 3)], '#ffffff', 64, 64); } $listings = array_merge([ $section([$heading('Listings', 'h1', 58, 'center'), $text('Browse product groups populated from the latest ArtOlo product CSV: kitchen, bathroom, decor, comfort, crafts, and cleaning.', 20, 'center')], $palette['paper'], 100, 72), $section([$c(['content_width'=>'full','flex_direction'=>'row','flex_wrap'=>'wrap','justify_content'=>'center','gap'=>['unit'=>'px','size'=>12]], array_map(function($cat) use ($button) { return $button($cat, '#' . sanitize_title($cat), 'outline'); }, array_keys($products['items'])))], $palette['mist'], 28, 28) ], $listingChildren); $contactFormWidget = $w('form', [ 'form_name' => 'ArtOlo Contact Form', 'form_fields' => [ ['custom_id'=>'name','field_type'=>'text','field_label'=>'Name','placeholder'=>'Your name','required'=>'true','width'=>'100'], ['custom_id'=>'email','field_type'=>'email','field_label'=>'Email','placeholder'=>'you@example.com','required'=>'true','width'=>'100'], ['custom_id'=>'phone','field_type'=>'tel','field_label'=>'Phone','placeholder'=>'Optional phone number','width'=>'100'], ['custom_id'=>'message','field_type'=>'textarea','field_label'=>'Message','placeholder'=>'How can we help?','required'=>'true','width'=>'100'], ], 'button_text' => 'Send Message', 'email_to' => get_option('admin_email'), 'success_message' => 'Thanks, your message has been sent.', 'button_background_color' => $palette['clay'], 'button_text_color' => '#ffffff' ]); $contact = [ $section([$heading('Contact ArtOlo', 'h1', 58, 'center'), $text('Questions about products, orders, or the store? Send a message and the ArtOlo team will help.', 20, 'center')], $palette['paper'], 100, 72), $section([$grid([$imageBox('Email','info@artolostore.com'), $imageBox('Availability','Online support available 24/7'), $imageBox('Store Type','Online-exclusive home and lifestyle store')], 3), $contactFormWidget], '#ffffff'), $section([$heading('Helpful Links'), $text('Privacy Policy | Terms & Conditions | Shipping Policy | Returns & Refunds | My Account | Track Order', 17, 'center')], $palette['mist'], 48, 48) ]; $pages = [ ['title'=>'Home','slug'=>'home','data'=>$home,'seo'=>'Shop practical home essentials, kitchen accessories, cleaning tools, bathroom products, decor, crafts, and everyday lifestyle finds from ArtOlo Store.'], ['title'=>'About','slug'=>'about','data'=>$about,'seo'=>'Learn about ArtOlo Store, an online-exclusive destination for practical home and lifestyle products curated around daily routines.'], ['title'=>'Services','slug'=>'services','data'=>$services,'seo'=>'See how ArtOlo Store helps customers discover useful home, kitchen, cleaning, bathroom, comfort, decor, and craft products.'], ['title'=>'Listings','slug'=>'listings','data'=>$listings,'seo'=>'Browse ArtOlo product listings organized by Kitchen & Dining, Bathroom & Wellness, Home Decor, Home Comfort, Crafts/DIY, and Cleaning & Utility.'], ['title'=>'Contact','slug'=>'contact','data'=>$contact,'seo'=>'Contact ArtOlo Store for product questions, order help, and online-exclusive home and lifestyle store support.'], ]; foreach ($pages as $i => $p) { $existing = get_page_by_path($p['slug'], OBJECT, 'page'); $postarr = ['post_title'=>$p['title'], 'post_name'=>$p['slug'], 'post_type'=>'page', 'post_status'=>'publish', 'post_content'=>'', 'menu_order'=>$i]; if ($existing) { $postarr['ID'] = $existing->ID; $page_id = wp_update_post($postarr, true); } else { $page_id = wp_insert_post($postarr, true); } if (is_wp_error($page_id)) { $made['pages'][$p['title']] = $page_id->get_error_message(); continue; } update_post_meta($page_id, '_elementor_edit_mode', 'builder'); update_post_meta($page_id, '_elementor_template_type', 'wp-page'); update_post_meta($page_id, '_elementor_version', defined('ELEMENTOR_VERSION') ? ELEMENTOR_VERSION : '4.1.3'); update_post_meta($page_id, '_elementor_data', wp_slash(wp_json_encode($p['data']))); update_post_meta($page_id, '_elementor_page_settings', ['hide_title' => 'yes', 'page_layout' => 'full_width']); update_post_meta($page_id, '_wp_page_template', 'elementor_header_footer'); update_post_meta($page_id, 'rank_math_title', $p['title'] === 'Home' ? 'ArtOlo Store | Home Essentials, Kitchen Accessories & Everyday Products' : $p['title'] . ' | ArtOlo Store'); update_post_meta($page_id, 'rank_math_description', $p['seo']); update_post_meta($page_id, 'rank_math_focus_keyword', 'ArtOlo Store, home essentials, lifestyle products'); $made['pages'][$p['title']] = ['id'=>$page_id, 'url'=>get_permalink($page_id)]; } $menu_name = 'ArtOlo Main Menu'; $menu = wp_get_nav_menu_object($menu_name); $menu_id = $menu ? $menu->term_id : wp_create_nav_menu($menu_name); if (!is_wp_error($menu_id)) { $current = wp_get_nav_menu_items($menu_id); if ($current) foreach ($current as $item) wp_delete_post($item->ID, true); foreach (['Home','About','Services','Listings','Contact'] as $label) { $id = $made['pages'][$label]['id'] ?? 0; if ($id) wp_update_nav_menu_item($menu_id, 0, ['menu-item-title'=>$label, 'menu-item-object'=>'page', 'menu-item-object-id'=>$id, 'menu-item-type'=>'post_type', 'menu-item-status'=>'publish']); } $locations = get_theme_mod('nav_menu_locations', []); foreach (['menu_1','menu_2','menu_mobile'] as $loc) $locations[$loc] = $menu_id; set_theme_mod('nav_menu_locations', $locations); $made['menu'] = ['id'=>$menu_id, 'name'=>$menu_name, 'locations'=>['menu_1','menu_2','menu_mobile']]; } if (!empty($made['pages']['Home']['id'])) { update_option('show_on_front', 'page'); update_option('page_on_front', $made['pages']['Home']['id']); $made['front_page'] = $made['pages']['Home']['id']; } foreach (array_keys($products['items']) as $cat) { if (taxonomy_exists('product_cat') && !term_exists($cat, 'product_cat')) wp_insert_term($cat, 'product_cat'); } if (!class_exists('WPForms')) $made['notes'][] = 'WPForms is not installed/active, so the Contact page uses the registered native Elementor Form widget instead.'; if (!defined('ELEMENTOR_PRO_VERSION')) $made['notes'][] = 'Elementor Pro Theme Builder is not active, so header/footer were not created as Theme Builder templates.'; $made['notes'][] = 'All generated Elementor layout data uses container elements and native Elementor widgets; no HTML widgets were used.'; if (class_exists('Elementor\\Plugin')) { \Elementor\Plugin::$instance->files_manager->clear_cache(); } flush_rewrite_rules(false); return ['success'=>true, 'result'=>$made]; } return artolo_build_site_from_csv_design(); https://artolostore.com/post-sitemap.xml 2026-02-08T12:21:54+00:00 https://artolostore.com/page-sitemap.xml 2026-06-16T15:33:16+00:00 https://artolostore.com/elementskit_template-sitemap.xml 2026-02-03T10:41:59+00:00 https://artolostore.com/product-sitemap1.xml 2026-06-07T09:05:31+00:00 https://artolostore.com/product-sitemap2.xml 2026-06-07T05:47:35+00:00 https://artolostore.com/category-sitemap.xml 2026-02-08T12:21:54+00:00 https://artolostore.com/product_cat-sitemap.xml 2026-06-07T09:05:31+00:00