luxury-jewelry-website-performance.html
< BACK नरम ढीली रोशनी में ओक टेबल पर काली लैकर बॉक्स में हीरे का नेकलेस

लग्जरी ज्वेलरी साइट्स जो 1.5 सेकंड में लोड होती हैं

2021 में, Mayfair में आधारित एक ज्वेलरी ब्रांड हमारे पास आया जिसकी वेबसाइट सचमुच खूबसूरत थी — गहरे काले, पूरे-पृष्ठ की संपादकीय फोटोग्राफी, एक कस्टम सेरिफ टाइपफेस जिसकी कीमत मेरे पहले फ्रीलांस प्रोजेक्ट से ज्यादा थी। लेकिन यह 4G कनेक्शन पर 9.4 सेकंड में लोड होती थी। उनकी बाउंस रेट 74% पर थी। वे हर महीने £4,000 पेड सर्च पर खर्च कर रहे थे और उन क्लिक्स का अधिकांश भाग गायब हो रहा था, इससे पहले कि कोई भी प्रोडक्ट पूरी तरह रेंडर हो जाती।

वह प्रोजेक्ट साइट्स बनाने के मेरे 12 सालों का सबसे शिक्षाप्रद था। क्योंकि चुनौती सिर्फ "इसे तेज़ करो" नहीं है। यह "इसे तेज़ करो और फिर भी ऐसा लगे कि यह Bond Street पर Cartier बुटीक के बगल में हो।" ये दोनों चीज़ें विपरीत दिशा में खींच रही हैं जैसे लगती हैं। असल में नहीं। लेकिन आपको लगभग हर निर्णय के बारे में जानबूझकर होना पड़ता है।andstill feel like it belongs next to a Cartier boutique on Bond Street." Those two things feel like they're pulling in opposite directions. They're not. But you have to be deliberate about almost every decision.

लग्जरी ज्वेलरी साइट्स परफॉर्मेंस की खास समस्या क्यों हैं

अधिकांश ई-कॉमर्स परफॉर्मेंस सलाह मिड-मार्केट ब्रांड्स के लिए लिखी गई है। अपनी इमेजेज़ को कंप्रेस करो, CDN का उपयोग करो, फोल्ड के नीचे लेज़ी-लोड करो — हो गया। लग्जरी के स्तर पर ज्वेलरी इन नियमों का पालन नहीं करती, और अगर आप इन्हें सीधे लागू करने की कोशिश करते हो, तो आप एक ऐसी साइट के साथ समाप्त होगे जो तेज़ी से लोड होती है लेकिन Shopify ड्रॉपशिपिंग स्टोर जैसी दिखती है।

विशिष्ट समस्याएँ हैं:

  • मीडियम-फॉर्मेट कैमरों से शूट किए गए हीरो इमेज — हम 80MB से ऊपर के सोर्स फाइल्स की बात कर रहे हैं, कभी-कभी तो और भी ज्यादा— we're talking source files north of 80MB sometimes
  • निजी फाउंड्रीज़ से लोड किए गए कस्टम टाइपफेस, Google Fonts नहीं, जिसका मतलब है कि कोई कैशिंग शॉर्टकट नहीं, not Google Fonts, which means no caching shortcuts
  • पैरेलैक्स स्क्रॉल इफ़ेक्ट्स जो डेवलपर्स "माहौल के लिए" ऐड करते हैं और फिर कभी ऑडिट ही नहीं करतेthat developers add "for atmosphere" and then never audit
  • मल्टीपल एंगल के साथ प्रोडक्ट फोटोग्राफी — 8, 10, कभी-कभी तो 14 इमेज प्रति SKU— 8, 10, sometimes 14 images per SKU
  • वीडियो बैकग्राउंड्स जिन्हें किसी ने ब्रैंड डेक में साइन ऑफ कर दिया बिना वेब के लिए सोचेthat someone signed off on in a brand deck without considering the web

और इन सब के अंदर, अक्सर एक WordPress + WooCommerce स्टैक होता है, क्योंकि जब स्वतंत्र ज्वेलर्स हमारे पास आते हैं तो 60–70% वही चला रहे होते हैं।

एक रियल बेसलाइन से शुरुआत करें, गट फील से नहीं

किसी भी फाइल को छूने से पहले मेजर करें। मैं इस पर obsessive हूँ। Google PageSpeed Insights और WebPageTest को एक ही पेज पर साथ-साथ रन करें। PageSpeed आपको लैब स्कोर और Core Web Vitals ब्रेकडाउन देता है। WebPageTest आपको वाटरफॉल देता है — यही वह जगह है जहाँ आप असल में डायग्नोस कर सकते हैं कि आपको क्या मार रहा है।Google PageSpeed InsightsandWebPageTeston the same page simultaneously. PageSpeed gives you the lab score and the Core Web Vitals breakdown. WebPageTest gives you the waterfall — which is where you actually diagnose what's killing you.

तीन नंबरों पर खास ध्यान दें: LCP (Largest Contentful Paint), TBT (Total Blocking Time), और TTFB (Time to First Byte)। एक लक्जरी ज्वेलरी साइट के लिए, आपका दुश्मन लगभग हमेशा LCP है। वह हीरो इमेज — जिस पर मरमेड की अंगूठी संगमरमर की सतह पर है — शायद आपका LCP एलिमेंट है, और वह शायद बहुत बड़ी है और प्रीलोड नहीं की गई है।LCP(Largest Contentful Paint),TBT(Total Blocking Time), andTTFB(Time to First Byte). For a luxury jewellery site, your enemy is almost always LCP. That hero image — the one with the emerald ring on a marble surface — is probably your LCP element, and it's probably massive and not preloaded.

Seahawk में, हम किसी भी ऑप्टिमाइज़ेशन काम की शुरुआत से पहले एक शेयर्ड Notion टेबल में बेसलाइन डॉक्यूमेंट करते हैं। हर चेंज को इसके खिलाफ ट्रैक किया जाता है। यह बहुत साफ लगता है। आप सोच सकते हैं कि कितनी एजेंसियाँ इस स्टेप को स्किप कर देती हैं और फिर डेमोन्स्ट्रेट ही नहीं कर सकतीं कि उन्होंने असल में क्या इम्प्रूव किया।

इमेज पाइपलाइन ही सब कुछ है

यहीं आपके 80% लाभ आते हैं। इस पोस्ट का कोई और सेक्शन इतना महत्वपूर्ण नहीं है।

AVIF को पहले रखें, WebP को फॉलबैक के तौर पर

AVIF अब नया नहीं है लेकिन बहुत सी लक्जरी साइट अभी भी JPEG सर्व कर रही हैं क्योंकि "फोटोग्राफर JPEG देता है।" यह कोई बहाना नहीं है। AVIF आपको बराबर विजुअल क्वालिटी में JPEG से लगभग 50% छोटी फाइलें देता है। एक प्रोडक्ट इमेज जो JPEG में 1.2MB पर बैठी है, AVIF से आप 400–600KB तक चली जाती है बिना स्क्रीन पर कोई ध्यान देने योग्य क्वालिटी का फर्क रहे।

मैं Squoosh का इस्तेमाल मैनुअल एक-एक कन्वर्जन के लिए करता हूँ जब मैं बैच प्रोसेस पर कमिट करने से पहले क्वालिटी विजुअली चेक करना चाहता हूँ। WordPress पर प्रोडक्शन पाइपलाइन के लिए, ShortPixel AVIF कन्वर्जन ऑटोमैटिकली हैंडल करता है और क्वालिटी-टू-साइज रेशियो सबसे अच्छा है जो मैंने करीब 40 प्लगइन्स में टेस्ट किया है।Squooshfor manual one-off conversions when I want to check quality visually before committing to a batch process. For production pipelines on WordPress, ShortPixel handles AVIF conversion automatically and the quality-to-size ratio is the best I've tested across about 40 plugins.

सही साइज सर्व करें, सिर्फ सही फॉर्मेट नहीं

एक 4K प्रोडक्ट इमेज को 375px चौड़ी iPhone स्क्रीन पर सर्व करना लापरवाही है। WordPress का srcset थ्योरी में यह हैंडल करता है, लेकिन आपको यह सुनिश्चित करने की जरूरत है कि आपका थीम वास्तव में सही इंटरमीडिएट साइज जेनरेट — और सर्व — कर रहा है। अपनी wp_get_attachment_image कॉल्स को चेक करें। अपने थीम की add_image_size रजिस्ट्रेशन को चेक करें। अगर आपका थीम किसी ने सिर्फ thumbnail, medium, और large रजिस्टर करके बनाया है, तो जाकर एक product-mobile साइज 480px चौड़ाई पर जोड़ें और सुनिश्चित करें कि WooCommerce की गैलरी इसे इस्तेमाल कर रही है।srcsethandles this in theory, but you need to make sure your theme is actually generating — and serving — the right intermediate sizes. Check yourwp_get_attachment_imagecalls. Check your theme'sadd_image_sizeregistrations. If your theme was built by someone who just registeredthumbnail,medium, andlarge, go and add aproduct-mobilesize at 480px width and make sure WooCommerce's gallery is using it.

हीरो इमेज एक खास मामला है

इसे lazy-load न करें। मुझे पता है कि यह उल्टा लगता है, लेकिन अपने LCP एलिमेंट को lazy-load करने से यह लोड सीक्वेंस में और भी आगे चला जाता है। इसकी जगह preload करें। अपने <head> में:<head>:

<link rel="preload" as="image" href="/hero-ring.avif" fetchpriority="high">

उस एक लाइन ने Mayfair प्रोजेक्ट पर LCP को 0.8 सेकंड कम कर दिया। यह कोई बढ़ा-चढ़ाकर बात नहीं है। बस एक लाइन।

फ़ॉन्ट: उच्च-स्तरीय साइटों पर मौन प्रदर्शन हत्यारा

लग्जरी ब्रांड्स शायद ही कभी Google Fonts का इस्तेमाल करते हैं। वे Klim या Optimo जैसी फाउंड्रीज़ से टाइपफेस लाइसेंस कर रहे हैं, उन्हें self-host कर रहे हैं, और 4–6 weights लोड कर रहे हैं क्योंकि "ब्रांड गाइडलाइन्स कहती हैं।" मेरे पास ब्रांड मैनेजर एक स्पेक शीट लाए हैं जिसमें आठ फ़ॉन्ट वेरिएंट्स हैं, जबकि साइट उनमें से तीन का उपयोग करती है।

यहाँ मैं यह करता हूँ:

  1. ऑडिट करें कि कौन सी weights वास्तव में साइट पर दिखाई देती हैं। ब्राउज़र के computed styles पैनल का इस्तेमाल हर पेज टेम्प्लेट पर करें।
  2. फ़ॉन्ट्स को subset करें। Font Squirrel के Webfont Generator से आप उन ग्लिफ्स को हटा सकते हैं जिनकी आपको ज़रूरत नहीं है। सभी diacritics के साथ एक पूरा Latin टाइपफेस 280KB हो सकता है। केवल English-only characters को कवर करने वाली subset उसे 40KB तक लाता है।Font Squirrel's Webfont Generatorlets you strip out glyphs you don't need. A full Latin typeface with all diacritics might be 280KB. A subset covering English-only characters drops that to 40KB.
  3. font-display: swap का इस्तेमाल करें ताकि टेक्स्ट तुरंत दिखाई दे, फिर कस्टम फ़ॉन्ट लोड होने पर उसमें स्विच हो जाए। हाँ, एक संक्षिप्त flash होगा। हाँ, कुछ ब्रांड मैनेजर्स शिकायत करेंगे। उन्हें conversion data दिखाएं और वे शिकायत करना बंद कर देंगे।font-display: swapso text is visible immediately, then switches to the custom font when it loads. Yes, there's a brief flash. Yes, some brand managers will complain. Show them the conversion data and they stop complaining.
  4. अपने primary body font को उसी तरह preload करें जैसे आप hero image को preload करते हैं।

subsetting और preloading का संयोजन आमतौर पर luxury साइटों पर 300–600ms बचाता है। यह कुछ भी नहीं नहीं है।

JavaScript: ऑडिट करें कि आप वास्तव में क्या लोड कर रहे हैं

इसमें ईमानदारी जरूरी है। अपने ब्राउज़र का Network टैब खोलें, JS के लिए फ़िल्टर करें, और देखें कि क्या लोड हो रहा है। एक WooCommerce साइट पर जिसके पास कुछ सालों का प्लगइन जमाव है, मुझे आमतौर पर product page पर 2–4MB का JavaScript दिखता है। यह पागलपन है।

jewellery साइट्स पर आमतौर पर ये culprits होते हैं:

  • Live chat widgets जो हर page पर 200KB का JS लोड करते हैं, उन pages सहित जहाँ कोई कभी chat नहीं खोलताthat load 200KB of JS on every page, including ones where no one ever opens the chat
  • Review platforms (Yotpo, Trustpilot) अपना पूरा SDK लोड कर रहे हैं जबकि आपको सिर्फ एक star rating widget चाहिए(Yotpo, Trustpilot) loading their full SDK when you only need a star rating widget
  • Klaviyo या Omnisend email pop-up scripts जो page load पर fire हो रहे हैं बजाय deferred होने केemail pop-up scripts firing on page load instead of being deferred
  • Instagram feed plugins जो दूसरे round के API calls और render-blocking scripts pull कर रहे हैंthat pull in a second round of API calls and render-blocking scripts

WordPress के लिए, मैं Asset CleanUp Pro का इस्तेमाल करता हूँ scripts और stylesheets को हर page template के हिसाब से disable करने के लिए। यह genuinely granular है ऐसे तरीके से जो WP Rocket का asset optimisation नहीं है। Live chat को सिर्फ contact page पर लोड करें। Klaviyo pop-up script को सिर्फ 3-second user interaction delay के बाद लोड करें। ये tricks नहीं हैं — ये बस responsible loading है।Asset CleanUp Proto disable scripts and stylesheets per page template. It's genuinely granular in a way that WP Rocket's asset optimisation isn't. Load the live chat only on the contact page. Load the Klaviyo pop-up script only after a 3-second user interaction delay. These aren't tricks — they're just responsible loading.

Hosting और Infrastructure: Top of the Stack पर सस्ता न करें

बात यह है — आप images और fonts और JavaScript के साथ सब कुछ सही कर सकते हैं, और फिर भी 600ms का TTFB पा सकते हैं क्योंकि server underpowered है या misconfigured है। Luxury clients के लिए, मैंने Kinsta को managed WordPress hosting के लिए standardise किया है। उनका infrastructure Google Cloud के C2 machines पर चलता है, full-page caching Nginx level पर होती है PHP के चलने से पहले, और उनका CDN (Cloudflare के network से powered) asset delivery को handle करता है।Kinstafor managed WordPress hosting. Their infrastructure runs on Google Cloud's C2 machines, full-page caching happens at the Nginx level before PHP ever runs, and their CDN (powered by Cloudflare's network) handles the asset delivery.

मैंने WP Engine और Flywheel को भी luxury projects पर use किया है। दोनों ठीक हैं। लेकिन Kinsta का TTFB मेरी testing में UK locations से consistently 80–140ms है, जो managed hosts के across मैंने measure किया है सबसे अच्छा।

एक चीज़ जो लोग नज़रअंदाज़ करते हैं: WooCommerce साइट्स पर डेटाबेस ऑप्टिमाइजेशन लगभग किसी भी दूसरे प्लेटफ़ॉर्म से ज़्यादा मायने रखती है। WooCommerce wp_options टेबल में आक्रामक तरीके से लिखता है, और एक साल के ऑपरेशन के बाद, उस टेबल में हज़ारों की संख्या में rows हो सकती हैं, जिनमें से कई transients हैं जो कभी साफ़ नहीं हुई। WP-Optimize Pro इसे संभालता है। इसे चलाएँ। इसे साप्ताहिक शेड्यूल पर सेट करें।database optimisation matters more on WooCommerce sites than almost any other platform.WooCommerce writes to thewp_optionstable aggressively, and after a year of operation, that table can have tens of thousands of rows, many of them transients that never got cleaned. WP-Optimize Pro handles this. Run it. Set it on a weekly schedule.

चेकआउट और प्रोडक्ट पेज होमपेज जैसे नहीं हैं

मैं ऐसी एजेंसियों को देखता हूँ जो होमपेज को 95 PageSpeed स्कोर तक ऑप्टिमाइज़ करती हैं और फिर प्रोडक्ट लिस्टिंग पेज, सिंगल प्रोडक्ट पेज और चेकआउट को अनदेखा करती हैं। वह पेजेस हैं जो रेवेन्यू ड्राइव करते हैं। एक ज्वेलरी साइट पर, सिंगल प्रोडक्ट पेज का सबसे ज़्यादा इमेज लोड होता है। वह वह जगह है जहाँ आपकी 14-एंगल प्रोडक्ट गैलरी रहती है।

WooCommerce प्रोडक्ट गैलरीज़ के लिए, मैं डिफ़ॉल्ट गैलरी को Splide.js का उपयोग करके एक लाइटवेट कस्टम इम्प्लीमेंटेशन से बदल देता हूँ — यह minified और gzipped में लगभग 28KB है, lazy loading को सही तरीके से हैंडल करता है, और डिफ़ॉल्ट WooCommerce Flexslider की तरह jQuery UI को pull नहीं करता। प्रोडक्ट पेज पर JavaScript पेलोड में फ़र्क ~380KB से ~90KB तक जाता है। मोबाइल पर यह एक सार्थक LCP सुधार है।Splide.js— it's about 28KB minified and gzipped, handles lazy loading properly, and doesn't pull in jQuery UI the way the default WooCommerce Flexslider does. The difference in JavaScript payload on a product page goes from ~380KB to ~90KB. That's a meaningful LCP improvement on mobile.

पहली इमेज को छोड़कर हर प्रोडक्ट इमेज को lazy-load करें। पहली इमेज को preload होना चाहिए। बाकी? उन्हें यूज़र जैसे-जैसे स्क्रॉल या गैलरी को टैप करता है वैसे-वैसे लोड होने दें।except the first one. The first image should be preloaded. The rest? Let them load as the user scrolls or taps through the gallery.

डिवाइस थ्रॉटलिंग के बजाय रियल डिवाइसेस पर टेस्ट करें

Chrome DevTools की थ्रॉटलिंग एक सिमुलेशन है। यह रिलेटिव कम्पेरिज़न के लिए उपयोगी है पर यह जमीनी सच नहीं है। मैं विशेष रूप से टेस्टिंग के लिए अपनी डेस्क पर एक Moto G Power (2021) — £150 से भी सस्ता Android फ़ोन — रखता हूँ। इसके पास एक मिड-रेंज प्रोसेसर है और कुछ-कुछ median global mobile hardware को दर्शाता है। जो DevTools दिखाता है और जो यह फ़ोन वास्तव में रेंडर करता है, उसके बीच का अंतर मुझे एक बार से ज़्यादा बरबाद कर चुका है।

Mayfair प्रोजेक्ट के लिए, DevTools ने "Fast 3G" थ्रॉटलिंग के तहत 1.3 सेकंड का LCP दिखाया। Moto G Power ने central London में एक असल 4G कनेक्शन पर 1.9 सेकंड दिखाए। वह समस्याएँ एक जैसी नहीं हैं। रियल डिवाइस टेस्टिंग ने हमें दिखाया कि main thread को एक font animation से block किया जा रहा था जो हमने जोड़ा था — heading typeface पर एक सूक्ष्म fade-in। देखने में खूबसूरत था। रियल hardware पर 400ms की कीमत चुकाई। हमने इसे हटा दिया।

---

FAQ

एक लक्जरी ज्वेलरी वेबसाइट के लिए यथार्थवादी लोड टाइम टार्गेट क्या है?

मिड-रेंज मोबाइल डिवाइस पर LCP के लिए 1.5 सेकंड से कम वही है जिसकी मैं कोशिश करता हूँ। कुछ एजेंसियां आपको बताएँगी कि लक्जरी के लिए 2 सेकंड ठीक है — और डेस्कटॉप के लिए वे पूरी तरह से गलत नहीं हैं, जहां आपका ज्वेलरी खरीदार दरअसल ब्राउज़ कर रहा होता है। लेकिन Google की रिसर्च दिखाती है कि 2.5 सेकंड की LCP थ्रेशोल्ड वह जगह है जहां कन्वर्शन रेट्स में पहले से ही काफी गिरावट शुरू हो जाती है। मैं मार्जिन रखना बेहतर समझता हूँ। 1.5s से कम आपको हेडरूम देता है, भले ही समय के साथ थर्ड-पार्टी स्क्रिप्ट्स जमा हो जाएँ।Google's researchshows that the 2.5 second LCP threshold is already where conversion rates start declining significantly. I'd rather have margin. Under 1.5s gives you headroom even as third-party scripts accumulate over time.

क्या मैं फुल-ब्लीड वीडियो बैकग्राउंड रख सकता हूँ और फिर भी 1.5 सेकंड हिट कर सकता हूँ?

मोबाइल पर शायद ही कभी। जो मैं इसकी जगह करता हूँ: मोबाइल पर एक पोस्टर इमेज (ऑप्टिमाइज़्ड AVIF) सर्व करता हूँ, वीडियो केवल डेस्कटॉप पर एक CSS ब्रेकपॉइंट के ऊपर लोड करता हूँ। आप Network Information API के जरिए कनेक्शन स्पीड डिटेक्ट करने के लिए JavaScript का एक छोटा सा हिस्सा इस्तेमाल कर सकते हैं और धीमे कनेक्शन पर वीडियो लोडिंग को पूरी तरह स्किप कर सकते हैं। यह एक सिंगल सॉल्यूशन जितना एलिगेंट नहीं है, लेकिन यह उन कंस्ट्रेंट्स के बारे में ईमानदार है।

क्या मैं एक लक्जरी ज्वेलरी साइट पर Elementor या Divi जैसा पेज बिल्डर इस्तेमाल करूँ?

मैं दोनों से एक क्लाइंट को दूर रखूँगा जो कस्टम बिल्ड पर गंभीर पैसे खर्च कर रहा है। ये महत्वपूर्ण CSS और JavaScript ओवरहेड इंजेक्ट करते हैं जिन्हें सर्जिकली हटाना मुश्किल है। Seahawk में लक्जरी प्रोजेक्ट्स के लिए, हम एक लाइटवेट कस्टम थीम या ब्लॉक-बेस्ड थीम (केवल आवश्यक ब्लॉक्स रजिस्टर के साथ Kadence) पर बिल्ड करते हैं और पेज बिल्डर को पिक्चर से बाहर रखते हैं। अगर क्लाइंट को मार्केटिंग टीम एडिटेबिलिटी की जरूरत है, तो हम नेटिव WordPress ब्लॉक एडिटर का उपयोग करते हैं कस्टम ब्लॉक्स के एक सीमित सेट के साथ।

लॉन्च के बाद साइट स्पीड को कितनी बार फिर से टेस्ट करना चाहिए?

कम से कम मासिक। WooCommerce प्लगइन अपडेट्स, नई मार्केटिंग स्क्रिप्ट्स जो क्लाइंट बिना आपको बताए इंस्टॉल करता है, एम्बेडेड Instagram फीड्स वाले सीज़नल कैंपेन लैंडिंग पेज — ये सब समय के साथ परफॉर्मेंस को खराब करते हैं। मैं ऑनगोइंग रिटेनर क्लाइंट्स के लिए त्रैमासिक परफॉर्मेंस ऑडिट शेड्यूल करता हूँ। पूरा रीबिल्ड नहीं, बस एक 2-घंटे का ऑडिट एक लिखित रिपोर्ट और प्रायोरिटी फिक्स लिस्ट के साथ। ज्यादातर रिटेनर क्लाइंट्स इसे अविश्वसनीय रूप से मूल्यवान पाते हैं क्योंकि उन्होंने आमतौर पर पिछली चेक के बाद से तीन नई चीजें इंस्टॉल की होती हैं।

---

स्पीड और लक्जरी विरोधी नहीं हैं। दोनों सम्मान के बारे में हैं — प्रोडक्ट के लिए सम्मान और जो व्यक्ति इसे देख रहा है उसके लिए सम्मान। एक साइट जो किसी को प्रतीक्षा करने के लिए मजबूर करती है, वह ऐसी साइट है जिसने पहले से ही उन्हें कुछ बता दिया है कि आप उनके समय को कितना महत्व देते हैं। फंडामेंटल्स को सही तरीके से प्राप्त करें, इस बारे में ईमानदार रहें कि आसलन में क्या स्लोनेस का कारण बन रहा है, और रियल हार्डवेयर पर टेस्ट करें। 1.5-सेकंड का टार्गेट प्राप्त किया जा सकता है। मैंने इसे 40-इमेज प्रोडक्ट गैलरीज़ और Swiss फाउंड्रीज़ से कस्टम serif टाइपफेस्स के साथ साइट्स पर हिट किया है। यह सिर्फ ज्यादा इंटेंशन लेता है जितना ज्यादातर बिल्ड्स को मिलता है।

< BACK