Bitcoin Forum
June 23, 2024, 08:16:57 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: Генерация хеша  (Read 6511 times)
Grumlin (OP)
Legendary
*
Offline Offline

Activity: 2891
Merit: 1149



View Profile WWW
March 29, 2013, 05:40:44 PM
 #1

Люди, кому не лень, объясните пожалуйста, желательно на пальцах, каким образом происходит генерация хеша?
из литературы
Quote
Созданный блок будет принят остальными пользователями только в том случае, если SHA-256 хэш заголовка равен или ниже определенной цели, которая вычисляется из параметра bits. Например, если значение bits 0x1a0115cb, то целью является 0x0115cb * 2**(8*(0x1a - 3)) = 0x0000000000000115cb0000000000000000000000000000000000000000000000. Максимально возможная цель (то есть минимальная сложность) определяется значением bits 0x1d00ffff.
Quote
Как система проверки правильности решения (правильности найденного блока) помогает безопасности Bitcoin?

Чтоб понять идею процесса майнинга, давайте рассмотрим вот это:

 полезная нагрузка = <некоторые данные, касательно событий происходящих в Bitcoin сети>
 nonce = 1
 hash = SHA2( SHA2( полезная нагрузка + nonce ) )

Работа, производимая майнером (добытчиком) заключается в постоянном увеличении значения "nonce" до тех пор пока хэш-функция не выдаст значение, которое обладает очень редким свойством: оно должно быть меньше чем определённое пороговое значение. (Другими словами: Хэш значение должно "начинаться с определённого количества нулей", если вы рассматриваете хэш в представлении с фиксированной длиной то именно так это формулируется)

Как можно увидеть, в результате майнинга мы ничего такого особенного не вычисляем. Мы просто пытаемся найти число (называемое "nonce") которое, будучи добавленным к полезной нагрузке даст в результате вычисления хэш функции результат с определёнными свойствами.
не совсем допонимаю, как же все таки этот хеш мы высчитываем, и как высчитывается сложность?


           ▄
         ▄███
         ▀████▄
       ▄  ▀████▄
      ███▄ ▀████▄
    ▄████   ▀████▄
   ▄████      ████▄
  ▄████        ████▄
 █████          █████
▀████▄          ▄████▀
  ▀████▄▄▄▄   ▄████▀
    ▀████▀  ▄████▀
LISK
       ▄▄▄▄▄▄▄
   ▄▄▀▀       ▀▀▄▄
  █               █ ▄
 █   █▀▄ ▀█▀ ▀█▀   █ ▀▄
 █   █▀▄  █   █    █  ▀▄
  █  ▀▀   ▀   ▀   █    █
▄▀ ▄▄           ▄▀    ▄▀
 ▀▀  ▀▀▄▄▄▄▄▄▄▀▀      ▀▄
        ▀▄▄      ▄▄▀▀▄▄▀
           ▀▀▀▀▀▀

                      ▄▄▄
  ▄█▄              ▄███████▄
  ▀████▄▄         ██████▀██████▀
    ▀▀▀████▄▄     ███████████▀
    ▀██▄███████▄▄███████████
     ▄▄▄▀██████████████████
      ▀████████████████████
▀█▄▄     ▀████████████████
  ▀████████████████▀█████
    ▀████████████▀▄▄███▀
       ▀▀██████████▀▀
           ▀▀▀▀▀

    ▄█▄            ▄█▄
   █████          █████
  ███████ ▄▄▄▄▄▄ ███████
 ▄██████████████████████▄
 ████████████████████████
██████████████████████████
██████▀▀          ▀▀██████
█████▀   ▄      ▄   ▀█████
 ████   ███    ███   ████
  ████   ▀      ▀   ████
   ▀████▄▄▄▄▄▄▄▄▄▄████▀
     ▀▀████████████▀▀

               ▄▄   ▄▄
              ▄▀ ▀▀█  █
             ▄▀     ▀▀
         ▄▄▄▄█▄
     ▄█▀▀▀▀▀▀▀▀▀▀█▄
 ▄▀▄▀              ▀▄▀▄
█  █   ▄█▄    ▄█▄   █  █
 ▀█    ▀█▀    ▀█▀    █▀
  █                  █
   █   ▀▄      ▄▀   █
    ▀▄   ▀▀▀▀▀▀   ▄▀
      ▀▀▄▄▄▄▄▄▄▄▀▀






   ▄▄████████████████▄▄
 ▄█████▀▀▀██████▀▀▀█████▄
▄████▀  ▀▀▀    ▀▀▀  ▀████▄
████▀                ▀████
███▀                  ▀███
███       ▄    ▄       ███
██▀      ███  ███      ▀██
██       ▀█▀  ▀█▀       ██
██▄     ▄        ▄     ▄██
▀██▄     ▀▀▄▄▄▄▀▀     ███▀
 ▀███▄▄▄▄▄▄████▄▄▄▄▄▄███▀
   ▀▀████████████████▀▀

   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀

   ▄▄████████████████████▄▄
 ▄██████████████████████████▄
▄████████████████████████████▄
██████████ ▀▀█████████████████
██████████     ▀▀█████████████
██████████         ▀▀█████████
██████████         ▄▄█████████
██████████     ▄▄█████████████
██████████ ▄▄█████████████████
▀████████████████████████████▀
 ▀██████████████████████████▀
   ▀▀████████████████████▀▀


  ▄▄███████████████▄▄
 █████████████████████
███████████████████████
███████████▀    ███████
██████████  ▄██████████
██████████  ███████████
████████      ▄████████
██████████  ███████████
██████████  ███████████
██████████  ███████████
 █████████████████████
  ▀▀███████████████▀▀
Vicus
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


View Profile
March 29, 2013, 05:43:40 PM
 #2

Насчет хеша: http://ru.wikipedia.org/wiki/SHA-2
Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
March 29, 2013, 05:53:50 PM
 #3

не совсем допонимаю, как же все таки этот хеш мы высчитываем, и как высчитывается сложность?

По хэшу:
Берем [ПредыдущийХэш]+[Нонс].
Хэшируем с помощью SHA256 2 раза: SHA256(SHA256([ПредыдущийХэш]+[Нонс])).
Считаем сколько ноликов впереди.
Если ноликов достаточно много, то мы нашли нужный Нонс, иначе подставляем другой Нонс (обычно предыдущий увеличиваем на 1).

По сложности:
Смотрим за сколько минут в среднем находится Нонс.
Меняем требование на число ноликов так, чтобы в среднем было 10 минут.
Grumlin (OP)
Legendary
*
Offline Offline

Activity: 2891
Merit: 1149



View Profile WWW
March 29, 2013, 06:06:30 PM
 #4

не совсем допонимаю, как же все таки этот хеш мы высчитываем, и как высчитывается сложность?

По хэшу:
Берем [ПредыдущийХэш]+[Нонс].
Хэшируем с помощью SHA256 2 раза: SHA256(SHA256([ПредыдущийХэш]+[Нонс])).
Считаем сколько ноликов впереди.
Если ноликов достаточно много, то мы нашли нужный Нонс, иначе подставляем другой Нонс (обычно предыдущий увеличиваем на 1).

По сложности:
Смотрим за сколько минут в среднем находится Нонс.
Меняем требование на число ноликов так, чтобы в среднем было 10 минут.
как то не совсем описана, считаем количество ноликов. это прикольно, а если математически, то как?

плюс ещё, Берем [ПредыдущийХэш]+[Нонс], мы что делаем, записываем в строку "хеш+число" и от этой строки находим хеш, либо мы к предыдыщему хешу както математически прибавляем нонс?

про сложность я имел ввиду, как она вообще щитается? т.е. откуда само число появляется? и как мы определяем, что хеш соответствует сложности?


           ▄
         ▄███
         ▀████▄
       ▄  ▀████▄
      ███▄ ▀████▄
    ▄████   ▀████▄
   ▄████      ████▄
  ▄████        ████▄
 █████          █████
▀████▄          ▄████▀
  ▀████▄▄▄▄   ▄████▀
    ▀████▀  ▄████▀
LISK
       ▄▄▄▄▄▄▄
   ▄▄▀▀       ▀▀▄▄
  █               █ ▄
 █   █▀▄ ▀█▀ ▀█▀   █ ▀▄
 █   █▀▄  █   █    █  ▀▄
  █  ▀▀   ▀   ▀   █    █
▄▀ ▄▄           ▄▀    ▄▀
 ▀▀  ▀▀▄▄▄▄▄▄▄▀▀      ▀▄
        ▀▄▄      ▄▄▀▀▄▄▀
           ▀▀▀▀▀▀

                      ▄▄▄
  ▄█▄              ▄███████▄
  ▀████▄▄         ██████▀██████▀
    ▀▀▀████▄▄     ███████████▀
    ▀██▄███████▄▄███████████
     ▄▄▄▀██████████████████
      ▀████████████████████
▀█▄▄     ▀████████████████
  ▀████████████████▀█████
    ▀████████████▀▄▄███▀
       ▀▀██████████▀▀
           ▀▀▀▀▀

    ▄█▄            ▄█▄
   █████          █████
  ███████ ▄▄▄▄▄▄ ███████
 ▄██████████████████████▄
 ████████████████████████
██████████████████████████
██████▀▀          ▀▀██████
█████▀   ▄      ▄   ▀█████
 ████   ███    ███   ████
  ████   ▀      ▀   ████
   ▀████▄▄▄▄▄▄▄▄▄▄████▀
     ▀▀████████████▀▀

               ▄▄   ▄▄
              ▄▀ ▀▀█  █
             ▄▀     ▀▀
         ▄▄▄▄█▄
     ▄█▀▀▀▀▀▀▀▀▀▀█▄
 ▄▀▄▀              ▀▄▀▄
█  █   ▄█▄    ▄█▄   █  █
 ▀█    ▀█▀    ▀█▀    █▀
  █                  █
   █   ▀▄      ▄▀   █
    ▀▄   ▀▀▀▀▀▀   ▄▀
      ▀▀▄▄▄▄▄▄▄▄▀▀






   ▄▄████████████████▄▄
 ▄█████▀▀▀██████▀▀▀█████▄
▄████▀  ▀▀▀    ▀▀▀  ▀████▄
████▀                ▀████
███▀                  ▀███
███       ▄    ▄       ███
██▀      ███  ███      ▀██
██       ▀█▀  ▀█▀       ██
██▄     ▄        ▄     ▄██
▀██▄     ▀▀▄▄▄▄▀▀     ███▀
 ▀███▄▄▄▄▄▄████▄▄▄▄▄▄███▀
   ▀▀████████████████▀▀

   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀

   ▄▄████████████████████▄▄
 ▄██████████████████████████▄
▄████████████████████████████▄
██████████ ▀▀█████████████████
██████████     ▀▀█████████████
██████████         ▀▀█████████
██████████         ▄▄█████████
██████████     ▄▄█████████████
██████████ ▄▄█████████████████
▀████████████████████████████▀
 ▀██████████████████████████▀
   ▀▀████████████████████▀▀


  ▄▄███████████████▄▄
 █████████████████████
███████████████████████
███████████▀    ███████
██████████  ▄██████████
██████████  ███████████
████████      ▄████████
██████████  ███████████
██████████  ███████████
██████████  ███████████
 █████████████████████
  ▀▀███████████████▀▀
Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
March 29, 2013, 06:31:52 PM
 #5

как то не совсем описана, считаем количество ноликов. это прикольно, а если математически, то как?

плюс ещё, Берем [ПредыдущийХэш]+[Нонс], мы что делаем, записываем в строку "хеш+число" и от этой строки находим хеш, либо мы к предыдыщему хешу както математически прибавляем нонс?

про сложность я имел ввиду, как она вообще щитается? т.е. откуда само число появляется? и как мы определяем, что хеш соответствует сложности?

256 битов, полученных с помощью SHA256, являются 256-битным числом. Оно должно быть меньше определенного значения, зависящего от сложности. Больше сложность - меньше значение. Это если без подсчета ноликов.

[ПредыдущийХэш]+[Нонс] по сути записываем в строку. Хотя там не только эти 2 значения.

Сложность считается так - берем среднее значение времени, за которое были найдены нонсы последних блоков. Предположим, получили 5 минут. Значит сложность надо увеличить в 2 раза.
naima53
Hero Member
*****
Offline Offline

Activity: 616
Merit: 502



View Profile
March 29, 2013, 06:37:36 PM
 #6


Сложность считается так - берем среднее значение времени, за которое были найдены нонсы последних блоков. Предположим, получили 5 минут. Значит сложность надо увеличить в 2 раза.
А если время ускорилось?  Roll Eyes

Donate me) 16f6iWHHkVEnDReeBQPT9GwCNwUfPTXrp2
Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
March 29, 2013, 06:43:00 PM
 #7


Сложность считается так - берем среднее значение времени, за которое были найдены нонсы последних блоков. Предположим, получили 5 минут. Значит сложность надо увеличить в 2 раза.
А если время ускорилось?  Roll Eyes

Это если время ускорилось. Если, к примеру, стало 20 минут, то сложность надо уменьшить в 2 раза.
naima53
Hero Member
*****
Offline Offline

Activity: 616
Merit: 502



View Profile
March 29, 2013, 06:48:29 PM
 #8

Это если время ускорилось. Если, к примеру, стало 20 минут, то сложность надо уменьшить в 2 раза.
Так, а что является источником времени? Среднее время, выставленное на машинах нод?

Donate me) 16f6iWHHkVEnDReeBQPT9GwCNwUfPTXrp2
Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
March 29, 2013, 06:52:57 PM
 #9

Это если время ускорилось. Если, к примеру, стало 20 минут, то сложность надо уменьшить в 2 раза.
Так, а что является источником времени? Среднее время, выставленное на машинах нод?

Timestamp в блоках.
naima53
Hero Member
*****
Offline Offline

Activity: 616
Merit: 502



View Profile
March 29, 2013, 06:55:59 PM
 #10

Это если время ускорилось. Если, к примеру, стало 20 минут, то сложность надо уменьшить в 2 раза.
Так, а что является источником времени? Среднее время, выставленное на машинах нод?

Timestamp в блоках.
А там откуда берется?

Donate me) 16f6iWHHkVEnDReeBQPT9GwCNwUfPTXrp2
Grumlin (OP)
Legendary
*
Offline Offline

Activity: 2891
Merit: 1149



View Profile WWW
March 29, 2013, 06:59:28 PM
 #11

[ПредыдущийХэш]+[Нонс] по сути записываем в строку. Хотя там не только эти 2 значения.
не путайте меня и людей, это операция сложения


           ▄
         ▄███
         ▀████▄
       ▄  ▀████▄
      ███▄ ▀████▄
    ▄████   ▀████▄
   ▄████      ████▄
  ▄████        ████▄
 █████          █████
▀████▄          ▄████▀
  ▀████▄▄▄▄   ▄████▀
    ▀████▀  ▄████▀
LISK
       ▄▄▄▄▄▄▄
   ▄▄▀▀       ▀▀▄▄
  █               █ ▄
 █   █▀▄ ▀█▀ ▀█▀   █ ▀▄
 █   █▀▄  █   █    █  ▀▄
  █  ▀▀   ▀   ▀   █    █
▄▀ ▄▄           ▄▀    ▄▀
 ▀▀  ▀▀▄▄▄▄▄▄▄▀▀      ▀▄
        ▀▄▄      ▄▄▀▀▄▄▀
           ▀▀▀▀▀▀

                      ▄▄▄
  ▄█▄              ▄███████▄
  ▀████▄▄         ██████▀██████▀
    ▀▀▀████▄▄     ███████████▀
    ▀██▄███████▄▄███████████
     ▄▄▄▀██████████████████
      ▀████████████████████
▀█▄▄     ▀████████████████
  ▀████████████████▀█████
    ▀████████████▀▄▄███▀
       ▀▀██████████▀▀
           ▀▀▀▀▀

    ▄█▄            ▄█▄
   █████          █████
  ███████ ▄▄▄▄▄▄ ███████
 ▄██████████████████████▄
 ████████████████████████
██████████████████████████
██████▀▀          ▀▀██████
█████▀   ▄      ▄   ▀█████
 ████   ███    ███   ████
  ████   ▀      ▀   ████
   ▀████▄▄▄▄▄▄▄▄▄▄████▀
     ▀▀████████████▀▀

               ▄▄   ▄▄
              ▄▀ ▀▀█  █
             ▄▀     ▀▀
         ▄▄▄▄█▄
     ▄█▀▀▀▀▀▀▀▀▀▀█▄
 ▄▀▄▀              ▀▄▀▄
█  █   ▄█▄    ▄█▄   █  █
 ▀█    ▀█▀    ▀█▀    █▀
  █                  █
   █   ▀▄      ▄▀   █
    ▀▄   ▀▀▀▀▀▀   ▄▀
      ▀▀▄▄▄▄▄▄▄▄▀▀






   ▄▄████████████████▄▄
 ▄█████▀▀▀██████▀▀▀█████▄
▄████▀  ▀▀▀    ▀▀▀  ▀████▄
████▀                ▀████
███▀                  ▀███
███       ▄    ▄       ███
██▀      ███  ███      ▀██
██       ▀█▀  ▀█▀       ██
██▄     ▄        ▄     ▄██
▀██▄     ▀▀▄▄▄▄▀▀     ███▀
 ▀███▄▄▄▄▄▄████▄▄▄▄▄▄███▀
   ▀▀████████████████▀▀

   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀

   ▄▄████████████████████▄▄
 ▄██████████████████████████▄
▄████████████████████████████▄
██████████ ▀▀█████████████████
██████████     ▀▀█████████████
██████████         ▀▀█████████
██████████         ▄▄█████████
██████████     ▄▄█████████████
██████████ ▄▄█████████████████
▀████████████████████████████▀
 ▀██████████████████████████▀
   ▀▀████████████████████▀▀


  ▄▄███████████████▄▄
 █████████████████████
███████████████████████
███████████▀    ███████
██████████  ▄██████████
██████████  ███████████
████████      ▄████████
██████████  ███████████
██████████  ███████████
██████████  ███████████
 █████████████████████
  ▀▀███████████████▀▀
Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
March 29, 2013, 06:59:45 PM
 #12

Это если время ускорилось. Если, к примеру, стало 20 минут, то сложность надо уменьшить в 2 раза.
Так, а что является источником времени? Среднее время, выставленное на машинах нод?

Timestamp в блоках.
А там откуда берется?

Записывает майнер. Особо не помухлюет, потому что блоки с очень большим расхождением между реальным временем и заявленным игнорируются.
naima53
Hero Member
*****
Offline Offline

Activity: 616
Merit: 502



View Profile
March 29, 2013, 07:02:00 PM
 #13

Это если время ускорилось. Если, к примеру, стало 20 минут, то сложность надо уменьшить в 2 раза.
Так, а что является источником времени? Среднее время, выставленное на машинах нод?

Timestamp в блоках.
А там откуда берется?

Записывает майнер. Особо не помухлюет, потому что блоки с очень большим расхождением между реальным временем и заявленным игнорируются.
Что есть "реальным"? Статистика (среднее) по всем майнерам?
Иными словами Вы хотите сказать что у нас полная привязка к системной дате юзеров майнеров (хоть и распределенная) ?

Donate me) 16f6iWHHkVEnDReeBQPT9GwCNwUfPTXrp2
Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
March 29, 2013, 07:03:56 PM
 #14

Что есть "реальным"? Статистика (среднее) по всем майнерам?
Иными словами Вы хотите сказать что у нас полная привязка к системной дате юзеров майнеров (хоть и распределенная) ?

Реальное для каждого майнера свое. То, которые выставлено на компе.
Balthazar
Legendary
*
Offline Offline

Activity: 3108
Merit: 1359



View Profile
March 29, 2013, 08:06:45 PM
 #15

Ё-мое, как можно не понимать таких вещей)

В качестве времени в сети используется значение, расчитываемое на базе локальногомвремени нод с отбросом неправдоподобно расходящихся значений. От него и должны плясать таймстампы, если сильно отличается (в биткоине "сильно" это 7200 секунд), то блок отклоняется.
gades
Sr. Member
****
Offline Offline

Activity: 432
Merit: 254



View Profile WWW
March 29, 2013, 08:12:42 PM
 #16

De-decentralization of Bitcoin
The Bitcoin Confiscation Of April 5, 2013

Интересны ссылки у вас в подписи Smiley

naima53
Hero Member
*****
Offline Offline

Activity: 616
Merit: 502



View Profile
March 29, 2013, 08:56:36 PM
 #17

Ё-мое, как можно не понимать таких вещей)
Я вот подумал гипотетически если все ноды ускорят время одновременно в 10 раз(не переведут стрелки а именно ускорят), то мы будем иметь в 10 раз снижение сложности?

Donate me) 16f6iWHHkVEnDReeBQPT9GwCNwUfPTXrp2
Come-from-Beyond
Legendary
*
Offline Offline

Activity: 2142
Merit: 1009

Newbie


View Profile
March 29, 2013, 08:58:37 PM
 #18

Ё-мое, как можно не понимать таких вещей)
Я вот подумал гипотетически если все ноды ускорят время одновременно в 10 раз(не переведут стрелки а именно ускорят), то мы будем иметь в 10 раз снижение сложности?

Тогда им проще договориться, что сложность просто надо считать опять равной 1.
WhiteShum
Legendary
*
Offline Offline

Activity: 1834
Merit: 1001



View Profile
March 29, 2013, 09:05:42 PM
 #19

De-decentralization of Bitcoin
The Bitcoin Confiscation Of April 5, 2013

Интересны ссылки у вас в подписи Smiley

А если подумать головой и поискать что это был за закон,то все фантазии сразу отпадут  Undecided

п.с. когда обороты битков достигнут Х,то он может и останется децентрализованным,в чем я сомневаюсь на 99%,частично будет анонимным,
но будет подконтролен "уолл-стрит",никаких очередных теорий заговора,просто бизнес.
Grumlin (OP)
Legendary
*
Offline Offline

Activity: 2891
Merit: 1149



View Profile WWW
March 29, 2013, 09:13:11 PM
 #20

интересует вопрос, есть блок https://blockchain.info/block/00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048, если взять, предыдущий хеш, взять нонсе(перевести её в 16 систему), приплюсовать их, потом взять два раза sha 256, нифига не получается следующий хеш. Кто нибудь объяснит мне, откуда что берется?


           ▄
         ▄███
         ▀████▄
       ▄  ▀████▄
      ███▄ ▀████▄
    ▄████   ▀████▄
   ▄████      ████▄
  ▄████        ████▄
 █████          █████
▀████▄          ▄████▀
  ▀████▄▄▄▄   ▄████▀
    ▀████▀  ▄████▀
LISK
       ▄▄▄▄▄▄▄
   ▄▄▀▀       ▀▀▄▄
  █               █ ▄
 █   █▀▄ ▀█▀ ▀█▀   █ ▀▄
 █   █▀▄  █   █    █  ▀▄
  █  ▀▀   ▀   ▀   █    █
▄▀ ▄▄           ▄▀    ▄▀
 ▀▀  ▀▀▄▄▄▄▄▄▄▀▀      ▀▄
        ▀▄▄      ▄▄▀▀▄▄▀
           ▀▀▀▀▀▀

                      ▄▄▄
  ▄█▄              ▄███████▄
  ▀████▄▄         ██████▀██████▀
    ▀▀▀████▄▄     ███████████▀
    ▀██▄███████▄▄███████████
     ▄▄▄▀██████████████████
      ▀████████████████████
▀█▄▄     ▀████████████████
  ▀████████████████▀█████
    ▀████████████▀▄▄███▀
       ▀▀██████████▀▀
           ▀▀▀▀▀

    ▄█▄            ▄█▄
   █████          █████
  ███████ ▄▄▄▄▄▄ ███████
 ▄██████████████████████▄
 ████████████████████████
██████████████████████████
██████▀▀          ▀▀██████
█████▀   ▄      ▄   ▀█████
 ████   ███    ███   ████
  ████   ▀      ▀   ████
   ▀████▄▄▄▄▄▄▄▄▄▄████▀
     ▀▀████████████▀▀

               ▄▄   ▄▄
              ▄▀ ▀▀█  █
             ▄▀     ▀▀
         ▄▄▄▄█▄
     ▄█▀▀▀▀▀▀▀▀▀▀█▄
 ▄▀▄▀              ▀▄▀▄
█  █   ▄█▄    ▄█▄   █  █
 ▀█    ▀█▀    ▀█▀    █▀
  █                  █
   █   ▀▄      ▄▀   █
    ▀▄   ▀▀▀▀▀▀   ▄▀
      ▀▀▄▄▄▄▄▄▄▄▀▀






   ▄▄████████████████▄▄
 ▄█████▀▀▀██████▀▀▀█████▄
▄████▀  ▀▀▀    ▀▀▀  ▀████▄
████▀                ▀████
███▀                  ▀███
███       ▄    ▄       ███
██▀      ███  ███      ▀██
██       ▀█▀  ▀█▀       ██
██▄     ▄        ▄     ▄██
▀██▄     ▀▀▄▄▄▄▀▀     ███▀
 ▀███▄▄▄▄▄▄████▄▄▄▄▄▄███▀
   ▀▀████████████████▀▀

   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀

   ▄▄████████████████████▄▄
 ▄██████████████████████████▄
▄████████████████████████████▄
██████████ ▀▀█████████████████
██████████     ▀▀█████████████
██████████         ▀▀█████████
██████████         ▄▄█████████
██████████     ▄▄█████████████
██████████ ▄▄█████████████████
▀████████████████████████████▀
 ▀██████████████████████████▀
   ▀▀████████████████████▀▀


  ▄▄███████████████▄▄
 █████████████████████
███████████████████████
███████████▀    ███████
██████████  ▄██████████
██████████  ███████████
████████      ▄████████
██████████  ███████████
██████████  ███████████
██████████  ███████████
 █████████████████████
  ▀▀███████████████▀▀
Pages: [1] 2 3 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!