1. Haskell / Говнокод #19670

    −48

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    {-# LANGUAGE FlexibleInstances #-}
    module Connect where 
    
    import Data.List
    
    data Color = Black | White deriving (Show, Eq)
    
    data Start = Begin | End deriving (Show, Eq)
    
    data Tree a = Node a [Tree a] deriving  (Eq)
    
    instance Show (Tree (Int,Int)) where
        show = showTree 0
    
    showTree :: Int -> Tree (Int,Int) -> String
    showTree n (Node a s) = show a ++ "\n" ++ replicate n ' ' ++ concatMap (showTree (n+1)) s
    
    elemTree :: Eq a => a -> Tree a -> Bool
    elemTree e (Node a []) = if a == e then True else False
    elemTree e (Node a s) = if a == e then True else any (e `elemTree`) s 
        
    resultFor :: [String] -> Maybe Color
    resultFor = check
    
    charToColor :: Char -> Color
    charToColor 'X' = Black
    charToColor 'O' = White
    charToColor _ = error "Bad data!"
    
    check :: [[Char]] -> Maybe Color
    check s = if (null iob || null ioe) && (null ixb || null ixe) 
                then Nothing
                else let whb = any (\t -> any (`elemTree` t) ioe) $ map (go White Begin s []) iob 
                         whe = any (\t -> any (`elemTree` t) iob) $ map (go White End s []) ioe
                         blb = any (\t -> any (`elemTree` t) ixe) $ map (go Black Begin s []) ixb
                         ble = any (\t -> any (`elemTree` t) ixb) $ map (go Black End s []) ixe
                     in if whb || whe then Just White else if blb || ble then Just Black else Nothing
        where 
            iob = map (\y -> (0,y)) $ elemIndices 'O' (s !! 0)
            ioe = map (\y -> (length s,y)) $ elemIndices 'O' (last s)
            ixb = map (\x -> (x,0)) $ elemIndices 'X' (map head s)
            ixe = map (\x -> (x,length (s!!0))) $ elemIndices 'X' (map last s)
    
    search :: Foldable t =>
              Color
              -> [[Char]] -> t (Int, Int) -> (Int, Int) -> Maybe [(Int, Int)]
    search color arr from (cx, cy) = (\x -> if null x then Nothing else Just x) $ map fst $ filter snd $ concatMap 
        (\x -> map 
            (\y -> testCell color arr from (cx, cy) (x,y)) 
            (filter (\yy -> yy >= 0 && yy < length (arr!!0)) [cy-1, cy, cy+1])) 
        (filter (\xx -> xx >= 0 && xx < length arr) [cx-1,cx,cx+1])
    
    testCell :: Foldable t =>
                Color
                -> [[Char]]
                -> t (Int, Int)
                -> (Int, Int)
                -> (Int, Int)
                -> ((Int, Int), Bool)
    testCell color arr from (cx, cy) (x,y)
        |x == cx && y == cy = ((x,y),False)
        |cx - x == 1 && cy - y == 1 = ((x,y),False)
        |x - cx == 1 && y - cy == 1 = ((x,y),False)
        |(x,y) `elem` from = ((x,y),False) 
        |arr !! x !! y /= '.' && color == charToColor (arr !! x !! y) = ((x,y),True)
        |otherwise = ((x,y),False) 
    
    go :: Color
          -> Start
          -> [[Char]]
          -> [(Int, Int)]
          -> (Int, Int)
          -> Tree (Int, Int)
    go c s arr from (x,y) 
        |(c,s) == (White, Begin) && x == length arr - 1 = Node (x,y) []
        |(c,s) == (White, End) && x == 0 = Node (x,y) []
        |(c,s) == (Black, Begin) && y == length (arr !! 0) -1 = Node (x,y) []
        |(c,s) == (Black, End) && y == 0 = Node (x,y) []
        |otherwise = let f = search c arr from (x,y)
                     in case f of 
                             Nothing -> Node (x,y) []
                             Just r -> Node (x,y) $ map (go c s arr ((x,y):from)) r

    Запостил: Abbath, 22 Марта 2016

    Комментарии (94) RSS

    • показать все, что скрытопочему нету рубрики для OCaml? или Lisp?
      Ответить
    • Лол. Мои старания не пропали даром. Хаскель получил рубрику. Congratulations! шарики феерверки я пошел бухать. не шучу
      Ответить
      • Ура!

        Приятный прецедент. Какой язык будем форсить следующим?
        Ответить
        • Предлагаю следующим дропнуть баш и рубби
          > bash (5) Ruby (1)
          Там почти ничего нет
          Потом дропним ещё что-нибудь, пока не останется только один и я знаю кто.
          Ответить
          • Тот-который-никому-не-нравится-но-все-периодически-пишут?
            Ответить
          • > Там почти ничего нет

            Bash — 192 по состоянию на январь 2016:
            http://web.archive.org/web/20160122005904/http://govnokod.ru/bash

            Ruby — 157 по состоянию на сентябрь 2015:
            http://web.archive.org/web/20150920024531/http://govnokod.ru/ruby?

            Ещё почили Ассемблер и Visual Basic:
            http://web.archive.org/web/20150315004831/http://govnokod.ru/asm

            http://web.archive.org/web/20160122173209/http://govnokod.ru/vb
            Ответить
        • Предлагаю следующим форсить Nemerle. С его реализацией if внутри стандартной библиотеки через макросы и паттерн матчинг - это будет чуть более чем не сложно.
          Ответить
          • а немерле не умер ли в страшних муках, потому что что кроме джвух поляк, написавших его в для повышения ЧСВ, он никому не пригодился?

            Или как руби - есть фанбаза, которая яростно защищает, но юзает чуть реже чем никогда?
            Ответить
        • Rust / Go / D
          PS как я мог забыть про Lua
          Ответить
        • Еще Го набирает популярности, и го-внодизайна в этом языке ну просто очень много. Одни только циклы чего стоят.
          for _, x := range sliceOfRefs {
              x := x
              x.doSomething()
          }

          Если не сделать x := x, то все вызовы doSomething() будут сделаны у последнего элемента sliceOfRefs. Это уже не говоря о необходимости писать _ постоянно.
          Ответить
          • > то все вызовы doSomething() будут сделаны у последнего элемента sliceOfRefs

            Лол что? Если в замыкания x утаскивать (или писать go x.doSomething()), то проблема будет, как в JS. А просто в цикле всё будет ок.
            package main
            import "fmt"
            
            type x int
            
            func (self *x) doSomething() {
            	fmt.Println(*self)
            }
            
            func main() {
            	var a, b, c, d x = 1, 2, 3, 4
            	sliceOfRefs := []*x{ &a, &b, &c, &d }
            	for _, x := range sliceOfRefs {
            		x.doSomething()
            	}
            }

            Output:
            1
            2
            3
            4
            Ответить
            • Писал прямо в комментарии, поэтому что-то проустил. Но суть не в том, что проблема такая же, как и в ж.скрипте, а в замечательном решении. Ни один нормальный человек не догадается зачем нужен код х := х.
              Ответить
              • Дааа, супер-проблема. Назови переменную по-человечески, чтобы было понятно, зачем.
                capturedX := x

                То, что язык позволяет делать shadow локальных переменных - не то чтобы прям серьёзная проблема, кмк. Проблема в том, что завести новую переменную слишком просто?
                Ответить
                • Проблема в том, что авторы языка рекомендуют так делать. Ну и они так же как и борцуны за Яву выходят со всякими мифами и легендами о том как надо программировать, но в итоге плодят говно.

                  Более того, от переименования переменной смысл не меняется-то. Какому нормальному человеку прийдет в голову что от присваивания переменной значения это значение будет копироваться? Никому не нужно такое поведение в языке где присваивание во всех остальных ситуациях вполне ожидаемо себя ведет.
                  Ответить
                  • > от присваивания переменной значения это значение будет копироваться?

                    Не надо путать присваивания и объявления с инициализацией.
                    x := x это по определению var x = x

                    > присваивание во всех остальных ситуациях вполне ожидаемо себя ведет

                    Присваивание всегда копирует значение в переменную, во всех ситуациях и контекстах. Просто иногда значением является указатель или его более толстые аналоги.
                    Ответить
                    • Не всегда, а только в горячечном бреду Ц++.

                      Любой нормальный человек скажет, что var x = x - это noop, и скорее всего просто удалит эту строчку.
                      На следующем этапе, когда это неожидано что-то испортит, тот же человек с фанатической преданностью будет в цикле копировать все переменные объявленные вне цилка: потому что умом понять зачем это нужно невозможно.
                      Ну и если жизнь заставит работать с этим говном, то научится лепить из говна и палок что-то. Так же как это делают на Ц++ и Ко.
                      Ответить
                      • >var x = x
                        У крестанутых еще разница, есть var или нету.

                        a = b; // simple copy
                        T c = a; //copy constructor
                        Ответить
                      • > Любой нормальный человек скажет, что var x = x - это noop

                        Необоснованные обобщения. Некоторые люди всё же привыкли к lexical scope, который разжёван где только можно.

                        > умом понять зачем это нужно невозможно

                        Тогда даже scheme обладает описанным фатальным недостатком невозможности понимания. Ведь если класть одну и ту же переменную в замыкания, во всех замыканиях у неё будет одно и тоже значение, вот ведь незадача.

                        Ну и рациональ вполне доступно описана в доке
                        https://golang.org/doc/effective_go.html
                        Ответить
                  • >Какому нормальному человеку прийдет в голову что от присваивания переменной значения это значение будет копироваться?

                    Только на всю голову крестанутым крестоблядям. У них везде сайтэффекты зарыты, то копирующий конструктор, то еще какой std::move.
                    Ответить
            • показать все, что скрытоvanished
              Ответить
          • показать все, что скрытоvanished
            Ответить
    • показать все, что скрытоwh0cd464349 <a href=http://erythromycin.news/>erythromycin</a> <a href=http://buyfurosemide.casa/>this site</a> <a href=http://cafergot.email/>ordering cafegot</a> <a href=http://elocon.systems/>elocon</a> <a href=http://clindamycin.exposed/>clindamycin</a> <a href=http://acyclovir.sexy/>acyclovir</a> <a href=http://cheapmetformin.store/>cheap metformin</a>
      Ответить
    • показать все, что скрытоwh0cd442836 <a href=http://buy-levaquin.com/>view site</a>
      Ответить
    • показать все, что скрытоwh0cd627430 <a href=http://buycolchicine2.top/>buy colchicine</a> <a href=http://baclofen50.top/>baclofen</a> <a href=http://buybupropion8.top/>bupropion</a> <a href=http://buycephalexin15.top/>buy cephalexin</a>
      Ответить
    • показать все, что скрытоwh0cd681797 <a href=http://elimite16.gdn/>permethrin cream</a> <a href=http://buyprozac2016.us/>buy prozac online uk</a> <a href=http://revia2014.top/>buy revia online</a> <a href=http://amoxicillin911.gdn/>amoxicillin</a>
      Ответить
    • показать все, что скрытоwh0cd105343 <a href=http://motilium.us.com/>motilium</a>
      Ответить
    • показать все, что скрытоwh0cd746358 <a href=http://robaxinonline.us.com/>robaxin online</a> <a href=http://onlinediflucan.us.com/>generic for diflucan</a> <a href=http://onlinevermox.us.com/>Online Vermox</a>
      Ответить
    • показать все, что скрытоwh0cd855080 <a href=http://nexium.sexy/>nexium dr</a> <a href=http://zoloft.store/>related site</a> <a href=http://colchicine.shop/>colchicine</a> <a href=http://cialis20mg.sexy/>cialis</a>
      Ответить
    • wh0cd799594 <a href=http://prednisone24.us.org/>purchase prednisone</a>
      Ответить
    • wh0cd29465 <a href=http://buyvaltrex16.top/>valtrex</a> <a href=http://buyadalat16.top/>buy adalat</a> <a href=http://buydiclofenac3.top/>buy diclofenac</a> <a href=http://buyeurax365.top/>eurax</a> <a href=http://buyneurontin8.top/>neurontin 300mg</a> <a href=http://buylipitor-365.gdn/>buy lipitor</a> <a href=http://tadalafil1.top/>tadalafil</a> <a href=http://buyzoloft1.top/>zoloft</a>
      Ответить
      • Заработать биткоины без вложений быстро

        <a href=http://bolt53.blogspot.ru>заработать на форекс без вложений видео</a>
        <a href=http://bolt53.blogspot.ru>хочу заработать в сети без вложений</a>
        <a href=http://bolt53.blogspot.ru>как заработать подростку в 13 лет в интернете без вложений</a>
        <a href=http://bolt53.blogspot.ru>как заработать в интернете с нуля без вложений и затрат</a>
        <a href=http://bolt53.blogspot.ru>как заработать в интернете без вложений скачать</a>

        <a href=http://bolt53.blogspot.ru><img>http://s45.radikal.ru/i108/1703/1b/31c45f37a0d7.png</img></a>



        Дополнительный доход в интернете, который вполне может стать Вашим постоянным заработком.
        Для перехода жмите кнопку

        <a href=http://bolt53.blogspot.ru><img>http://s019.radikal.ru/i639/1703/88/f0c798898a35.png</img></a>
        <a href=http://bolt53.blogspot.ru>видео реально ли заработать в интернете без вложений</a>
        <a href=http://bolt53.blogspot.ru>как заработать в интернете без вложений сидя в декрете</a>
        <a href=http://bolt53.blogspot.ru>как заработать на киви кошельке без вложений сайты</a>
        <a href=http://bolt53.blogspot.ru>покер где можно заработать реальные деньги без вложений</a>
        <a href=http://bolt53.blogspot.ru>работа официально</a>

        <a href=http://mikrosaym.blogspot.ru>Выгодный кредит онлайн</a>
        <a href=http://bit.ly/2oI4psW>ВЫДАВАЙ МИКРОЗАЙМЫ С ГАРАНТИРОВАННОЙ ДОХОДНОСТЬЮ ОТ 192% ДО 265% ГОДОВЫХ И ЗАБУДЬ О ФИНАНСОВЫХ ПРОБЛЕМАХ</a>
        https://mikrosaym.blogspot.ru/ МГНОВЕННОЕ ФИНАНСИРОВАНИЕ ОНЛАЙН

        ~$$~
        Ответить
    • wh0cd561754 <a href=http://genericlevitra.us.org/>LEVITRA OVER THE COUNTER</a> <a href=http://onlinevermox.us.com/>online vermox</a> <a href=http://suprax.us.com/>purchase suprax</a> <a href=http://elocontopicalcream.us.com/>elocon topical cream</a>
      Ответить
    • wh0cd320545 <a href=http://erythromycin2.top/>ilosone</a> <a href=http://buyavodart2.top/>buy avodart</a> <a href=http://buyneurontin100.gdn/>neurontin</a> <a href=http://buyindocin3.top/>indocin</a> <a href=http://triamterene3.top/>triamterene</a> <a href=http://buyeurax10.gdn/>buy eurax</a> <a href=http://buyinderal9.top/>inderal</a> <a href=http://buyprednisolone2015.top/>buy prednisolone 5mg</a>
      Ответить
    • wh0cd701073 <a href=http://trazodone247.us.org/>trazodone tablets</a> <a href=http://costofviagra24.us.org/>Cost Of Viagra</a> <a href=http://baclofen24.us.org/>Baclofen Online</a>
      Ответить
    • wh0cd833554 <a href=http://toradol24.us.org/>Toradol</a> <a href=http://buyviagra24.us.org/>Buy Viagra Online</a> <a href=http://cheapviagra24.us.org/>generic viagra best price</a>
      Ответить
    • wh0cd821124 <a href=http://albuterol4.top/>albuterol</a> <a href=http://buylipitor-365.gdn/>lipitor</a> <a href=http://buyelimite-2016.gdn/>buy elimite</a> <a href=http://buyavodart250.top/>buy avodart</a> <a href=http://levitra1.gdn/>buy generic levitra online</a> <a href=http://zithromax2.top/>cheap zithromax online</a> <a href=http://celebrex-3.gdn/>celebrex</a>
      Ответить
    • wh0cd331868 <a href=http://onlinediclofenac.us.com/>purchase diclofenac</a> <a href=http://levitrainfo.se/>levitra</a> <a href=http://antabusemedication.us.com/>antabuse medication</a> <a href=http://yasmin247.us.com/>yasmin disney</a>
      Ответить
    • wh0cd257107 <a href=http://onlineinderal.us.com/>inderal 40mg 80mg</a> <a href=http://buylisinopril.us.org/>buy lisinopril</a> <a href=http://buyantabuse.us.com/>buy antabuse</a> <a href=http://cialis20mg247.us.org/>Cialis 20mg</a> <a href=http://buycelebrex.us.org/>Buy Celebrex</a>
      Ответить
    • wh0cd211828 <a href=http://viagraonline24.us.org/>buy viagra no prescription</a> <a href=http://tadalis24.us.org/>order tadalis</a> <a href=http://toradol24.us.org/>toradol price</a>
      Ответить
    • wh0cd494958 <a href=http://trazodone247.us.org/>clicking here</a> <a href=http://celebrex24.us.org/>drug celebrex</a>
      Ответить
    • wh0cd39663 <a href=http://effexor24.us.org/>Order Effexor</a> <a href=http://amitriptyline24.us.org/>elavil 25mg</a>
      Ответить
    • wh0cd712405 <a href=http://effexor2.top/>effexor</a> <a href=http://buyadalat365.top/>generic adalat</a> <a href=http://buyviagra9.top/>viagra</a> <a href=http://buyatenolol75.top/>atenolol</a>
      Ответить
    • wh0cd963802 <a href=http://zoloft-0.gdn/>zoloft</a> <a href=http://tetracycline17.top/>purchase tetracycline</a> <a href=http://buyindocin247.top/>indocin</a>
      Ответить
    • wh0cd365828 <a href=http://buyclomid6.top/>clomid tablet</a> <a href=http://buyazithromycin-8.top/>where can i buy azithromycin</a> <a href=http://sildenafil-247.top/>sildenafil</a> <a href=http://furosemide-9.gdn/>furosemide</a> <a href=http://cafergot2017.top/>cafergot</a> <a href=http://buystromectol11.top/>buy stromectol</a> <a href=http://kamagra365.gdn/>kamagra</a>
      Ответить
    • wh0cd29463 <a href=http://buyclindamycin6.gdn/>clindamycin</a> <a href=http://bupropion2012.gdn/>explained here</a> <a href=http://buycrestor20.top/>buy crestor</a> <a href=http://albuterol4.top/>inhaler albuterol</a> <a href=http://buyneurontin-7.gdn/>neurontin</a>
      Ответить
    • wh0cd972880 <a href=http://buy-acyclovir.com/>website here</a> <a href=http://diclofenac365.us.com/>Generic Diclofenac</a> <a href=http://buycephalexin.us.org/>buy cephalexin</a>
      Ответить
    • wh0cd257116 <a href=http://buyviagrasoft20.top/>buy viagra soft tabs</a> <a href=http://buyampicillin15.top/>more bonuses</a> <a href=http://yasmin10.top/>yasmin online</a> <a href=http://colchicine2010.gdn/>colchicine</a> <a href=http://trazodone-365.top/>trazodone hcl</a> <a href=http://buysynthroid2013.gdn/>order synthroid without prescription</a>
      Ответить
    • wh0cd138183 <a href=http://advair.us.com/>advair</a> <a href=http://buy-methotrexate.com/>Buy Methotrexate</a> <a href=http://zithromax.us.org/>zithromax</a> <a href=http://propranolol.biz/>buy propranolol</a>
      Ответить
    • wh0cd668244 <a href=http://prednisone247.us.org/>predisone with no presciption</a>
      Ответить
    • wh0cd211830 <a href=http://buycialis2015.top/>cialis levitra</a> <a href=http://buystromectol8.top/>stromectol</a> <a href=http://bupropion250.top/>bupropion</a> <a href=http://buytamoxifen-7.gdn/>tamoxifen</a> <a href=http://buyanafranil365.top/>info</a> <a href=http://tamoxifen15.top/>nolvadex tamoxifen citrate</a> <a href=http://motilium-2016.gdn/>motilium over the counter</a> <a href=http://seroquel16.gdn/>seroquel for depression and anxiety</a>
      Ответить
    • wh0cd354513 <a href=http://buyvaltrex-8.top/>buy valtrex</a> <a href=http://tretinoin-6.gdn/>tretinoin cream</a> <a href=http://lasix17.top/>lasix</a>
      Ответить
    • wh0cd831324 <a href=http://buysildalis247.top/>sildalis online</a> <a href=http://buytoradol25.gdn/>toradol for kidney stones</a> <a href=http://hydrochlorothiazide100.top/>microzide</a>
      Ответить
    • wh0cd105346 <a href=http://diclofenacsodium.us.com/>Diclofenac With No RX</a> <a href=http://cephalexin.us.org/>cephalexin online</a> <a href=http://onlinelasix.us.com/>lasix</a>
      Ответить
    • wh0cd387358 <a href=http://buycephalexin.us.org/>cephalexin online</a> <a href=http://propranolol.biz/>buy propranolol</a> <a href=http://avodart2016.us.com/>generic dutasteride</a> <a href=http://adalat.us.com/>generic adalat</a> <a href=http://effexor.us.com/>Effexor</a>
      Ответить
    • wh0cd299033 <a href=http://pioglitazone.us.com/>Metformin</a> <a href=http://elimite365.us.com/>elimite</a> <a href=http://cheapgenericviagra.us.com/>cheap generic viagra</a>
      Ответить
    • wh0cd843770 <a href=http://buyviagrasoft3.top/>viagra soft</a> <a href=http://buycitalopram2017.top/>citalopram</a> <a href=http://buylasix2014.top/>lasix purchase</a> <a href=http://buylisinopril2013.top/>lisinopril 10mg</a> <a href=http://eurax2011.top/>eurax</a> <a href=http://buyalbendazole-3.top/>continue reading</a>
      Ответить
    • wh0cd442835 <a href=http://albuterol2012.top/>albuterol prescription</a> <a href=http://lisinopril17.top/>lisinopril</a> <a href=http://buyanafranil100.top/>anafranil for depression</a> <a href=http://buybentyl-2015.gdn/>bentyl for diarrhea</a> <a href=http://abilify365.top/>abilify</a> <a href=http://buyazithromycin8.top/>buy azithromycin</a>
      Ответить
    • wh0cd365827 <a href=http://cymbaltamedication.us.com/>cymbalta tabs</a>
      Ответить
    • wh0cd898132 <a href=http://baclofen247.us.org/>Baclofen No Prescription</a>
      Ответить
    • wh0cd420187 <a href=http://valtrex15.top/>valtrex without prescription</a> <a href=http://lipitor-9.gdn/>lipitor</a> <a href=http://cafergot100.gdn/>cafergot</a> <a href=http://kamagra-247.gdn/>kamagra</a> <a href=http://buycitalopram12.top/>citalopram</a> <a href=http://atarax2.gdn/>atarax for hives</a> <a href=http://sildalis75.gdn/>generic sildalis</a> <a href=http://buyerythromycin2016.top/>erythromycin over the counter</a>
      Ответить
    • wh0cd474549 <a href=http://viagraonline24.us.org/>visit this link</a> <a href=http://medrol24.us.org/>medrol pak 4mg</a>
      Ответить
    • wh0cd908305 <a href=http://avana2011.top/>avana</a> <a href=http://anafranil365.top/>anafranil</a> <a href=http://lisinopril6.top/>lisinopril</a> <a href=http://lasix17.top/>lasix</a> <a href=http://buyvardenafil-247.gdn/>vardenafil tablets 20 mg</a>
      Ответить
    • vanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий