Zakwas vs pieczywo rzemieślnicze: które jest zdrowsze?
Porównanie chleba na zakwasie i pieczywa rzemieślniczego nie ma prostej odpowiedzi, ponieważ obie kategorie mogą obejmować zarówno bardzo wartościowy, jak i przeciętny produkt. W tym artykule wyjaśniamy, czym dokładnie różni się zakwas od chleba rzemieślniczego, jak fermentacja wpływa na strawność, indeks glikemiczny i przyswajalność składników mineralnych oraz dlaczego termin „rzemieślniczy” nie jest prawnie chroniony. Dowiesz się, na co zwracać uwagę na etykiecie, aby wybrać pieczywo rzeczywiście wspierające zdrowe jelita i prawidłowe odżywianie.
Chleb na zakwasie a chleb rzemieślniczy – które pieczywo jest zdrowsze?
Najważniejszy wniosek jest taki, że sourdough vs artisan bread to porównanie dwóch różnych kategorii: jedna opisuje sposób fermentacji, druga – styl wypieku i marketingowe postrzeganie produktu. Chleb rzemieślniczy może być pieczony na zakwasie albo na drożdżach piekarskich, z mąki pełnoziarnistej lub białej, z krótką lub długą fermentacją. O zdrowotnej wartości decydują więc konkretne cechy, a nie sama etykieta.
Czym różni się chleb na zakwasie od chleba rzemieślniczego?
Chleb na zakwasie definiuje stosowany zaczyn: zakwas zawierający dzikie drożdże i bakterie kwasu mlekowego, który fermentuje ciasto przez wiele godzin. Chleb rzemieślniczy to szerokie pojęcie oznaczające wypiek małoskalowy, często o lepszej jakości niż pieczywo przemysłowe, ale bez gwarancji dotyczących fermentacji, rodzaju mąki czy składu. Produkty te więc często się nakładają, lecz nie są tożsame.
Odkryj test mikrobiomu
Laboratorium UE z certyfikatem ISO • Próbka zachowuje stabilność podczas transportu • Dane zabezpieczone zgodnie z RODO
Najważniejsze wnioski na początek – fermentacja i jakość mąki mają znaczenie
- Długa fermentacja kwasowa może obniżyć zawartość kwasu fitynowego i poprawić przyswajalność minerałów.
- Rodzaj mąki – pełnoziarnista versus rafinowana – silnie wpływa na zawartość błonnika i mikroskładników.
- Obecność dodatków, emulgatorów i konserwantów pogarsza ogólną jakość produktu niezależnie od nazwy.
- Termin „rzemieślniczy” nie jest prawnie uregulowany i nie mówi nic o procesie fermentacji.
- Wybór powinien uwzględniać indywidualną tolerancję glutenu i reakcję glikemiczną.
Czym jest prawdziwy chleb na zakwasie?
Prawdziwy chleb na zakwasie powstaje z ciasta poddanego fermentacji kwasowo-alkoholowej z udziałem żywej kultury zwanej zakwasem. W odróżnieniu od pieczywa drożdżowego, gdzie używana jest pojedyncza szczep Saccharomyces cerevisiae, zakwas stanowi złożoną społeczność mikroorganizmów. Ta wielogodzinna fermentacja przekształca skrobię i białko mąki, wpływając na strukturę, smak oraz właściwości odżywcze gotowego bochenka.
Zakwas – naturalna fermentacja z udziałem dzikich drożdży i bakterii kwasu mlekowego
Zakwas rozwija się spontanicznie z mąki i wody, w której namnażają się szczepy bakterii kwasu mlekowego, głównie z rodzajów Lactobacillus i Pediococcus, oraz dzikie drożdże, takie jak Kazachstania lub Saccharomyces niepielęgnowane przemysłowo. Bakterie produkują kwas mlekowy i octowy, obniżając pH ciasta, co hamuje rozwój niepożądanej mikroflory i wspiera strukturę pieczywa. Proporcje tych mikroorganizmów zależą od temperatury, nawodnienia i rodzaju mąki, dlatego każdy zakwas ma nieco inny profil fermentacji.
Zobacz przykładowe rekomendacje z platformy InnerBuddies
Zapoznaj się z rekomendacjami platformy InnerBuddies dotyczącymi odżywiania, suplementów, dziennika żywieniowego i przepisów kulinarnych, które mogą zostać wygenerowane na podstawie testu mikrobiomu jelitowego
Ile trwa fermentacja i dlaczego to ważne?
Tradycyjna fermentacja zakwasowa trwa zwykle od 8 do 24 godzin, podczas gdy przemysłowe wypieki na drożdżach piekarskich mogą skracać ten proces do poniżej dwóch godzin. Dłuższy czas pozwala enzymom rozłożyć większą część kwasu fitynowego, który w niefermentowanym pieczywie może wiązać żelazo, cynk i magnez. Badania obserwacyjne wskazują, że produkcja kwasu mlekowego może także modyfikować strukturę glutenu, czyniąc pieczywo potencjalnie łatwiej strawnym dla części osób. Dokładny wpływ zależy jednak od technologii wypieku i indywidualnej wrażliwości organizmu.
Jak rozpoznać prawdziwy chleb na zakwasie w sklepie?
Najprostszym sposobem jest przeczytanie pełnego składu: powinien zawierać mąkę, wodę, sól i zakwas – bez drożdży piekarskich ani dodatków. Warto zwrócić uwagę na strukturę miękiszu o nieregularnych, różnej wielkości oczkach, wilgotną, sprężystą konsystencję oraz charakterystyczny lekko kwaśny aromat. Podejrzany jest krótki czas przydatności połączony z pełną listą konserwantów. Jeśli opis mówi „na zakwasie”, ale w składzie widnieją drożdże piekarskie lub regulator kwasowości, mamy do czynienia z wypiekiem drożdżowym wzbogacanym zakwasem, a nie klasycznym chlebem fermentowanym naturalnie.
Czym jest chleb rzemieślniczy?
Pojęcie chleba rzemieślniczego odnosi się do pieczywa wypiekanego w małych piekarniach lub restauracjach, często z naciskiem na tradycyjne metody i lokalne surowce. W przeciwieństwie do produkcji przemysłowej, gdzie proces jest silnie zautomatyzowany i skrócony, wypiek rzemieślniczy zwykle pozwala na dłuższe prowadzenie ciasta. Nie wynika z tego jednak automatyczna gwarancja zdrowotnej przewagi – wszystko zależy od użytej mąki, czasu fermentacji i dodatków.
„Rzemieślniczy” – termin bez prawnej definicji
W większości jurysdykcji, w tym w Polsce, słowo „rzemieślniczy” ani jego zagraniczne odpowiedniki nie są prawnie chronionym oznaczeniem dotyczącym procesu produkcji ani składu. Oznacza to, że producent może używać tej etykiety bez spełniania restryktywnych kryteriów. Analogicznie bywa z określeniem „wiejski” czy „tradycyjny”. Dlatego przy ocenie pieczywa warto kierować się listą składników, informacją o czasie fermentacji i wielkością piekarni, a nie samą nazwą marketingową produktu.
Szybki test w 2 minuty Czy test mikrobiomu jelitowego jest dla Ciebie przydatny? Odpowiedz na kilka krótkich pytań i sprawdź, czy test mikrobiomu jest dla Ciebie naprawdę przydatny. ✔ Zajmuje tylko 2 minuty ✔ Na podstawie Twoich objawów i stylu życia ✔ Jasna rekomendacja tak/nie Sprawdź, czy test jest dla mnie odpowiedni →Chleb rzemieślniczy a chleb przemysłowy – kluczowe różnice
- Piekarnia rzemieślnicza zwykle używa krótszych list składników, bez emulgatorów i konserwantów.
- Proces wypieku rzemieślniczego rzadziej opiera się na wysoce przetworzonej mące i poprawiaczach.
- Chleb przemysłowy często zawiera dodatki przedłużające trwałość i zmiękczające strukturę.
- Czas wyrastania ciasta rzemieślniczego jest zwykle dłuższy, co może wpływać na strawność.
- Piekarnie rzemieślnicze rzadziej stosują monotonny, identyczny profil smakowy uzyskany chemicznie.
Czy każdy chleb rzemieślniczy to chleb na zakwasie?
Nie. Wiele piekarni rzemieślniczych wypieka chleb na drożdżach piekarskich, ponieważ jest to prostsze, szybsze i bardziej przewidywalne w produkcji. Drożdże piekarskie przyspieszają fermentację, ale nie obniżają pH ciasta w takim stopniu jak bakterie kwasu mlekowego, więc nie redukują kwasu fitynowego w podobnym zakresie. Chleb rzemieślniczy na drożdżach z mąki pełnoziarnistej może być wartościowszy niż chleb na zakwasie z mąki rafinowanej – dlatego pojedyncza etykieta nie wystarczy do oceny.
Wartość odżywcza – porównanie chleba na zakwasie i chleba rzemieślniczego
Porównując wartość odżywczą obu kategorii, trzeba pamiętać, że zakwas opisuje metodę fermentacji, a rzemieślniczy – skalę i styl produkcji. Największy wpływ na końcowy profil żywieniowy ma rodzaj mąki, stopień przetworzenia, zawartość dodatków oraz czas i temperatura fermentacji. W praktyce oznacza to, że rozrzut wartości odżywczych w obu kategoriach jest szeroki, a najlepsze pieczywo rzemieślnicze może przewyższać przeciętny chleb na zakwasie z mąki białej.
Kalorie, węglowodany i białko – na co zwracać uwagę
Zawartość kalorii, węglowodanów i białka zależy głównie od rodzaju mąki i stopnia nawodnienia pieczywa, a nie od samego sposobu fermentacji. Bochenek o wyższej zawartości błonnika i białka zapewnia zwykle dłuższe uczucie sytości. Fermentacja nieznacznie zmienia profil aminokwasowy i strukturę skrobi, lecz nie przekształca białka chleba w źródło kompletnej proteiny. Dla osób kontrolujących masę ciała ważniejsza jest ogólna gęstość odżywcza diety niż sam wybór zakwasu.
Zawartość błonnika w zależności od rodzaju mąki
Najistotniejszym czynnikiem decydującym o zawartości błonnika jest to, czy użyto mąki pełnoziarnistej, graham czy rafinowanej. Mąka pełnoziarnista zachowuje otręby i zarodkiem, dostarczając rozpuszczalnego i nierozpuszczalnego błonnika wspierającego mikrobiom jelitowy i perystaltykę. Chleb pszenny na zakwasie z mąki białej może mieć mniej błonnika niż żytni chleb rzemieślniczy pieczony na drożdżach. Wartość gęstości błonnika podaje się zwykle na 100 g produktu, co ułatwia porównanie różnych bochenków.
Fermentacja a biodostępność składników mineralnych – rola kwasu fitynowego
Kwas fityny obecny w otrębach wiąże żelazo, cynk i wapń, zmniejszając ich wchłanianie w jelicie cienkim. Długotrwała fermentacja zakwasowa aktywuje fitazy – enzymy bakteryjne rozkładające kwas fityny – i może poprawić biodostępność tych mikroelementów. Efekt ten został zaobserwowany w badaniach laboratoryjnych i częściowo potwierdzony w studiach na ludziach, choć jego wielkość zależy od rodzaju mąki, czasu fermentacji i indywidualnych predyspozycji. Nie oznacza to, że chleb staje się pełnowartościowym suplementem mineralnym – pozostaje jednym z elementów zróżnicowanej diety.
Zostań członkiem społeczności InnerBuddies
Wykonuj badanie mikrobiomu jelitowego co kilka miesięcy i śledź swoje postępy, stosując się jednocześnie do naszych zaleceń
Witaminy z grupy B i inne mikroelementy
Mąka pszenna i żytnia są naturalnym źródłem witamin z grupy B, particularly tiaminy, niacyny i ryboflawiny. Bakterie kwasu mlekowego w trakcie fermentacji mogą syntetyzować dodatkowe ilości niektórych witamin i zmniejszać poziom antyżywieniowych związków. Biorąc jednak pod uwagę, że w wielu krajach mąka jest wzbogacana witaminami i żelazem, różnice między chlebem na zakwasie a rzemieślniczym są zwykle mniej istotne niż różnice w zawartości błonnika. Ostatecznie o realnym udziale w pokryciu zapotrzebowania decyduje cała dieta.
Strawalność i wpływ na zdrowie jelit
Dla wielu osób decydującym kryterium wyboru pieczywa jest reakcja układu pokarmowego – od uczucia pełności po wzdęcia i komfort jelitowy. Fermentacja zakwasowa wpływa na strukturę glutenu i skrobi, co może modyfikować doświadczenia związane z trawieniem. Równocześnie trzeba pamiętać, że przyczyny dolegliwości żołądkowo-jelitowych są wielorakie: obejmują czynniki dietetyczne, lekowe, metaboliczne, stresowe i medyczne, dlatego żaden produkt spożywczy nie jest uniwersalnym rozwiązaniem.
Jak fermentacja wpływa na gluten i strawność pieczywa
Podczas długiej fermentacji zakwasowej enzymy bakteryjne i roślinne rozkładają część białek glutenu, a obniżone pH aktywuje proteazy rozbijające ich strukturę. Badania laboratoryjne wykazały zmniejszoną ilość wykrywalnego glutenu w takim pieczywie po upieczeniu, lecz nie oznacza to eliminacji glutenu do poziomu bezpiecznego dla osób z celiakią. Część osób nietolerujących pszenicy zgłasza lepszą strawność chleba na zakwasie, jednak jest to doświadczenie subiektywne i nie potwierdzone jednoznacznymi markerami klinicznymi.
Chleb na zakwasie a mikrobiom jelitowy – prebiotyki i bakterie kwasu mlekowego
Fermentacja zakwasowa może zwiększać zawartość związków o charakterze prebiotycznym, takich jak związki fenolowe i częściowo rozłożone frakcje skrobi opornej, które stanowią pożywienie dla endogennych bakterii jelitowych. Żywe kultury obecne w świeżym pieczywie zwykle nie przeżywają pieczenia i refluksu kwasowego, więc nie są bezpośrednio dostarczane do jelit. Korzystny wpływ na mikrobiom przypisuje się głównie efektom pośrednim: wyższej zawartości błonnika, obniżeniu pH ciasta i produktom fermentacji, takim jak kwas mlekowy. Warto pamiętać, że wrażliwość indywidualna jest duża, a sam zakwas nie zastępuje zróżnicowanej diety bogatej w błonnik. Aby przyjrzeć się własnym wzorcom mikrobiologicznym w kontekście diety, można skorzystać z testu mikrobiomu InnerBuddies, który dostarcza edukacyjnej wglądu, a nie diagnozy medycznej.
Szybki test w 2 minuty Czy test mikrobiomu jelitowego jest dla Ciebie przydatny? Odpowiedz na kilka krótkich pytań i sprawdź, czy test mikrobiomu jest dla Ciebie naprawdę przydatny. ✔ Zajmuje tylko 2 minuty ✔ Na podstawie Twoich objawów i stylu życia ✔ Jasna rekomendacja tak/nie Sprawdź, czy test jest dla mnie odpowiedni →Czy chleb na zakwasie jest odpowiedni dla osób z nadwrażliwością na gluten?
Nie istnieje jedna uniwersalna odpowiedź. Osoby z celiakią lub alergią na pszenicę muszą unikać glutenu niezależnie od sposobu fermentacji, ponieważ nawet długie wypiekanie nie usuwa go całkowicie. Osoby z nieceliakową nadwrażliwością na gluten czasem zgłaszają lepszą tolerancję chleba na zakwasie, ale dowody naukowe w tej grupie są ograniczone i częściowo kontrowersyjne. Reakcja zależy od indywidualnego progu wrażliwości, rodzaju mąki i faktycznego czasu fermentacji. Decyzje dotyczące diety w przypadku podejścia nietolerancji powinny być konsultowane z lekarzem lub dietetykiem.
Dlaczego chleb na zakwasie nie jest chlebem bezglutenowym
Zakwas to proces fermentacyjny prowadzony najczęściej na bazie mąk pszennych lub żytnich, a więc zawierających gluten lub jego frakcje. Nawet jeśli fermentacja degraduje część białek, resztkowa zawartość glutenu pozostaje zbyt wysoka dla osób z celiakią. Chleb oznaczony jako „bezglutenowy” musi spełniać normy prawne dotyczące maksymalnej zawartości glutenu, zwykle poniżej 20 ppm, i powstawać z certyfikowanych surowców. Chleb na zakwasie z mąki żytniej czy pszennej nigdy nie spełni tych kryteriów, niezależnie od reklamy.
Wpływ na poziom cukru we krwi i uczucie sytości
Reakcja glikemiczna na chleb zależy od typu użytej mąki, stopnia przetworzenia, zawartości błonnika oraz indywidualnych czynników metabolicznych. Fermentacja zakwasowa modyfikuje strukturę skrobi i może wpłynąć na tempo jej trawienia, co zostało przedmiotem kilku niewielkich badań klinicznych. Równocześnie sposób podania – dodatki, łączenie z białkiem i tłuszczem, wielkość porcji – potrafi istotnie zmienić odpowiedź glikemiczną, czasem ważniejszą niż sam wybór chleba.
Indeks glikemiczny – dlaczego zakwas obniża odpowiedź glikemiczną
Indeks glikemiczny (IG) opisuje tempo, w jakim węglowodany z produktu podnoszą glukozę we krwi. Kilka badań控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控控